Logs: freenode/#haskell
| 2020-10-03 12:09:59 | <kuribas> | tomjaguarpaw: it's trying to run stack |
| 2020-10-03 12:10:11 | <kuribas> | I want it to run cabal |
| 2020-10-03 12:10:28 | <kuribas> | if it can run stack from this directory, it should run cabal as well from this directory. |
| 2020-10-03 12:11:31 | × | vnz quits (~vnz@unaffiliated/vnz) (Quit: ZNC - http://znc.in) |
| 2020-10-03 12:12:09 | <tomjaguarpaw> | Yes, one would hope that would be possible. I'm just making a suggestion that could be used to futher analyse the situation. |
| 2020-10-03 12:12:35 | <kuribas> | these tools are pretty fiddly |
| 2020-10-03 12:13:21 | → | vnz joins (~vnz@2001:bc8:604:94f::1) |
| 2020-10-03 12:13:21 | × | vnz quits (~vnz@2001:bc8:604:94f::1) (Changing host) |
| 2020-10-03 12:13:21 | → | vnz joins (~vnz@unaffiliated/vnz) |
| 2020-10-03 12:13:41 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 2020-10-03 12:13:41 | → | polyrain joins (~polyrain@2001:8003:e501:6901:ac77:4652:cb2e:48b1) |
| 2020-10-03 12:14:11 | <fendor> | text has no pattern synonyms to access it first characters? |
| 2020-10-03 12:14:32 | → | Tops2 joins (~Tobias@dyndsl-095-033-018-208.ewe-ip-backbone.de) |
| 2020-10-03 12:15:04 | → | Tops22 joins (~Tobias@dyndsl-095-033-018-208.ewe-ip-backbone.de) |
| 2020-10-03 12:15:16 | <kuribas> | tomjaguarpaw: there's a stack.yaml, maybe that's why it works? |
| 2020-10-03 12:16:04 | <tomjaguarpaw> | kuribas: possibly. What happens if you delete the stack.yaml? |
| 2020-10-03 12:16:32 | → | Tops23 joins (~Tobias@dyndsl-095-033-018-208.ewe-ip-backbone.de) |
| 2020-10-03 12:17:25 | × | Tops21 quits (~Tobias@dyndsl-095-033-018-208.ewe-ip-backbone.de) (Ping timeout: 240 seconds) |
| 2020-10-03 12:18:07 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds) |
| 2020-10-03 12:18:58 | × | Tops2 quits (~Tobias@dyndsl-095-033-018-208.ewe-ip-backbone.de) (Ping timeout: 246 seconds) |
| 2020-10-03 12:20:01 | × | Tops22 quits (~Tobias@dyndsl-095-033-018-208.ewe-ip-backbone.de) (Ping timeout: 246 seconds) |
| 2020-10-03 12:20:42 | ← | dzwonki parts (~dzwonki@188.147.38.8.nat.umts.dynamic.t-mobile.pl) ("WeeChat 2.9") |
| 2020-10-03 12:22:31 | × | mpereira quits (~mpereira@2a02:810d:f40:d96:b959:4f4b:dea:4c5d) (Remote host closed the connection) |
| 2020-10-03 12:23:48 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 2020-10-03 12:25:29 | × | Guest_92 quits (021afdb0@2.26.253.176) (Ping timeout: 245 seconds) |
| 2020-10-03 12:25:30 | → | Tops2 joins (~Tobias@dyndsl-095-033-018-208.ewe-ip-backbone.de) |
| 2020-10-03 12:26:02 | → | Tops21 joins (~Tobias@dyndsl-095-033-018-208.ewe-ip-backbone.de) |
| 2020-10-03 12:26:38 | <kuribas> | tomjaguarpaw: running it in the ./grin directory doesn't even do anything |
| 2020-10-03 12:27:17 | × | raichoo quits (~raichoo@dslb-188-101-190-053.188.101.pools.vodafone-ip.de) (Quit: Lost terminal) |
| 2020-10-03 12:27:22 | <kuribas> | these tools suck so badly |
| 2020-10-03 12:27:29 | → | snakemasterflex joins (~snakemast@213.100.206.23) |
| 2020-10-03 12:27:41 | <tomjaguarpaw> | Yup, the command line and ambient Unix system makes a very poor interface |
| 2020-10-03 12:27:45 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
| 2020-10-03 12:27:51 | × | NinjaTrappeur quits (~ninja@unaffiliated/ninjatrappeur) (Quit: WeeChat 2.9) |
| 2020-10-03 12:28:04 | × | Tops23 quits (~Tobias@dyndsl-095-033-018-208.ewe-ip-backbone.de) (Ping timeout: 246 seconds) |
| 2020-10-03 12:28:40 | → | NinjaTrappeur joins (~ninja@unaffiliated/ninjatrappeur) |
| 2020-10-03 12:29:22 | <kuribas> | tomjaguarpaw: I am running it from vscode |
| 2020-10-03 12:29:27 | × | Zetagon quits (~leo@c151-177-52-233.bredband.comhem.se) (Quit: WeeChat 2.8) |
| 2020-10-03 12:29:53 | <tomjaguarpaw> | Sure, but hls itself has the whole Unix system to contend with. |
| 2020-10-03 12:30:12 | <kuribas> | what does haskell project management have to do with unix? |
| 2020-10-03 12:30:38 | × | Tops2 quits (~Tobias@dyndsl-095-033-018-208.ewe-ip-backbone.de) (Ping timeout: 272 seconds) |
| 2020-10-03 12:30:57 | <tomjaguarpaw> | It is ill-defined what actually constitutes a Haskell source tree. There is an informal idea that it as a hierarchy of directories with .hs files in appropriate places and some .cabal files and maybe a cabal.project file in the correct place. |
| 2020-10-03 12:31:03 | × | thir quits (~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 2020-10-03 12:31:11 | <tomjaguarpaw> | Not "free of place and time", as Rich Hickey would put it |
| 2020-10-03 12:31:24 | → | thir joins (~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de) |
| 2020-10-03 12:33:28 | <kuribas> | that's not UNIX fault, but the haskell project structure. |
| 2020-10-03 12:33:45 | <kuribas> | it's overcomplicated |
| 2020-10-03 12:33:46 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 2020-10-03 12:33:49 | <tomjaguarpaw> | I never said it was Unix's fault. |
| 2020-10-03 12:34:24 | <tomjaguarpaw> | It's very much the fault of all these tools for not starting by precisely defining the interface to the ambient system. |
| 2020-10-03 12:34:38 | <kuribas> | indeed |
| 2020-10-03 12:34:52 | <tomjaguarpaw> | Or rather, by precisely defining which parts of the ambient system they will use in their interface |
| 2020-10-03 12:34:56 | × | snakemasterflex quits (~snakemast@213.100.206.23) (Ping timeout: 260 seconds) |
| 2020-10-03 12:35:22 | <tomjaguarpaw> | What does it mean if a file exists but is not readable? Who knows? What does it mean if a .cabal file is a symlink? Who knows? It's all just "defined" by the implementation. |
| 2020-10-03 12:35:34 | <kuribas> | IMO also the problem is how bad these tools report errors. |
| 2020-10-03 12:35:37 | <tomjaguarpaw> | What does it mean if a file vanishes half way through compilation? Who knows? |
| 2020-10-03 12:35:50 | <tomjaguarpaw> | Yes, the error reporting is often abysmal. |
| 2020-10-03 12:36:24 | <tomjaguarpaw> | Rather than saying "no cabal file found" it should say "I looked in all these places but didn't find a cabal file: ..." |
| 2020-10-03 12:36:33 | <tomjaguarpaw> | Then you can start to get a clue about how to fix it. |
| 2020-10-03 12:36:37 | <kuribas> | indeed |
| 2020-10-03 12:36:50 | × | thir quits (~thir@p200300f27f0fc60004d129737887aa72.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 2020-10-03 12:38:05 | <maerwald> | fendor: make one :) |
| 2020-10-03 12:38:23 | <fendor> | maerwald, fair enough, good idea, thanks! |
| 2020-10-03 12:38:30 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
| 2020-10-03 12:38:53 | <tomjaguarpaw> | Or just use a function! unconsText :: Text -> Maybe (Char, Text). No need to go outside of Haskell98! |
| 2020-10-03 12:39:03 | <maerwald> | the syntax for pattern synonyms is confusing imo |
| 2020-10-03 12:39:11 | <maerwald> | I can never memorize it |
| 2020-10-03 12:39:31 | <maerwald> | tomjaguarpaw: a function is not a pattern synonym |
| 2020-10-03 12:40:02 | <tomjaguarpaw> | Indeed. I think I'm missing the point of the need for such a synonym. |
| 2020-10-03 12:40:13 | <maerwald> | you mean the need for pattern matching? |
| 2020-10-03 12:40:19 | → | Zetagon joins (~leo@c151-177-52-233.bredband.comhem.se) |
| 2020-10-03 12:40:44 | <tomjaguarpaw> | No, for the synonym. If you define functions (simple Haskell, boring Haskell) `unconsText` and `consText` why do you need the synonym? |
| 2020-10-03 12:41:06 | <maerwald> | Why do you need pattern matching at all when you can have functions? |
| 2020-10-03 12:41:38 | <tomjaguarpaw> | There's no way of matching on user-defined sum types without pattern matching! |
| 2020-10-03 12:41:58 | <maerwald> | the compiler could emit functions instead |
| 2020-10-03 12:42:07 | <tomjaguarpaw> | Sure, but it doesn't. |
| 2020-10-03 12:42:14 | <maerwald> | why? |
| 2020-10-03 12:43:05 | <tomjaguarpaw> | Well, you need some primitive form of pattern matching, else how are you going to deconstruct the result of the function? |
| 2020-10-03 12:43:22 | <tomjaguarpaw> | But given that Maybe and (,) already exist, `unConsText :: Text -> Maybe (Char, Text)` seems fine to me |
| 2020-10-03 12:43:59 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 2020-10-03 12:44:12 | <maerwald> | no, the answer is: because it's convenient |
| 2020-10-03 12:44:16 | <maerwald> | you don't need it at all |
| 2020-10-03 12:45:53 | <tomjaguarpaw> | OK, thanks for the answer. Nonetheless I don't see that "case myText of { ConsText c rest -> ...; NilText -> ... }" is more convenient than "case unconsText myText of { Just (c, rest) -> ... ; Nothing -> ... }", and the latter is far less confusing. PatternSynonyms are not standard Haskell after all. |
| 2020-10-03 12:46:26 | <maerwald> | I usually avoid arguing about other ppls style and assume they know what they are doing :) |
| 2020-10-03 12:46:54 | <tomjaguarpaw> | A reasonable policy. |
| 2020-10-03 12:47:02 | <maerwald> | Additionally, pattern synonyms allow the COMPLETE pragma, which you don't have with functions. |
| 2020-10-03 12:48:17 | <kuribas> | https://gist.github.com/kuribas/0a828d64c9d2564d8045289dca0ae515 |
| 2020-10-03 12:48:21 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds) |
| 2020-10-03 12:48:21 | <kuribas> | tomjaguarpaw: ^ |
| 2020-10-03 12:48:40 | <kuribas> | what's this /grin/a ? |
| 2020-10-03 12:49:23 | <kuribas> | I added the hie.yaml file |
| 2020-10-03 12:49:30 | <tomjaguarpaw> | maerwald: I am making a suggestion that applies to the case of fendor, not a suggestion to avoid pattern synonyms under all circumstances. |
| 2020-10-03 12:49:54 | <maerwald> | tomjaguarpaw: I think he knows that there is a function :p |
| 2020-10-03 12:50:39 | <kuribas> | tomjaguarpaw: this is what I mean with the tools suck. I just hope that it will improve in the near future. |
| 2020-10-03 12:51:16 | <kuribas> | tomjaguarpaw: I'll just go back to emacs and recursive grep |
| 2020-10-03 12:51:33 | <tomjaguarpaw> | maerwald: That seems to be a vital piece of context I was missing. |
| 2020-10-03 12:52:06 | <maerwald> | kuribas: I did that too, until I started working on a project where it's policy to put "::" after a newline, so it broke my grepping for function definitions |
| 2020-10-03 12:52:44 | <kuribas> | maerwald: grep-fu is a complicated skill :) |
| 2020-10-03 12:52:48 | <maerwald> | I started to use codex with hasktags again, but it was broken |
| 2020-10-03 12:53:01 | <fendor> | Well, I liked to have something like: (x:'+':y:r) for text. In this case, I like it more than the nested case statement |
All times are in UTC.