2024-01-22 00:02:23 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2024-01-22 00:19:47 +0100 | acidjnk | (~acidjnk@p200300d6e737e7801d66593b084f6414.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
2024-01-22 00:27:54 +0100 | czy | (~user@114.226.59.181) |
2024-01-22 00:28:37 +0100 | foul_owl | (~kerry@174-21-148-34.tukw.qwest.net) (Ping timeout: 264 seconds) |
2024-01-22 00:33:39 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-95.elisa-laajakaista.fi) (Quit: Leaving.) |
2024-01-22 00:40:39 +0100 | foul_owl | (~kerry@185.216.231.180) |
2024-01-22 00:42:13 +0100 | Guest|71 | (~Guest|71@host-89-240-137-154.as13285.net) |
2024-01-22 00:42:59 +0100 | Guest|71 | (~Guest|71@host-89-240-137-154.as13285.net) (Client Quit) |
2024-01-22 00:46:06 +0100 | jargon | (~jargon@211.sub-174-205-225.myvzw.com) (Remote host closed the connection) |
2024-01-22 00:48:38 +0100 | Lycurgus | (~georg@user/Lycurgus) |
2024-01-22 00:49:13 +0100 | <cheater> | i'd like for cabal to be able to run packages with a Main in them |
2024-01-22 00:49:37 +0100 | <cheater> | just like cabal run packagename -x -y "blah" --my-arg -foo |
2024-01-22 00:49:55 +0100 | <cheater> | or idk |
2024-01-22 00:49:59 +0100 | <cheater> | cabal main packagename |
2024-01-22 00:50:14 +0100 | <cheater> | or whatever keyword isn't being used yet and makes sense |
2024-01-22 00:50:23 +0100 | <cheater> | cabal exec packagename? |
2024-01-22 00:50:45 +0100 | <Lycurgus> | why? what's wrong with ghcrun and stuff? |
2024-01-22 00:51:15 +0100 | <cheater> | well idk that ghcrun will download a package and build it in the background given just the package name and then just run the main |
2024-01-22 00:51:24 +0100 | <Lycurgus> | i c |
2024-01-22 00:51:30 +0100 | <cheater> | also you could do like |
2024-01-22 00:51:48 +0100 | <cheater> | cabal exec https://path/to/github/repo/containing/package |
2024-01-22 00:51:53 +0100 | <cheater> | that'd be nice |
2024-01-22 00:52:17 +0100 | <cheater> | and even cabal exec /path/to/package or cabal exec ../path/to/package |
2024-01-22 00:52:52 +0100 | <cheater> | and you could do -x executablename or -t testname |
2024-01-22 00:52:59 +0100 | <cheater> | that'd be nice |
2024-01-22 00:53:04 +0100 | <Lycurgus> | stack runghc maybe |
2024-01-22 00:54:21 +0100 | <cheater> | stack 🤮 |
2024-01-22 00:56:43 +0100 | <geekosaur> | cabal has scripts too these days |
2024-01-22 00:57:51 +0100 | <geekosaur> | https://cabal.readthedocs.io/en/3.8/cabal-commands.html#cabal-run see at "supports running script files" |
2024-01-22 01:05:52 +0100 | <geekosaur> | as to the original question: cabal exec program -b package -- args ? |
2024-01-22 01:06:18 +0100 | <geekosaur> | (remember that a package may have multiple executables) |
2024-01-22 01:06:45 +0100 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
2024-01-22 01:07:35 +0100 | <geekosaur> | oh, if the package has exactly one executable, cabal run package already does what you want |
2024-01-22 01:08:09 +0100 | <geekosaur> | otherwise you have to select one, looks like cabal run <package>:exe:<programname> |
2024-01-22 01:08:49 +0100 | <geekosaur> | you do need the -- to distingush between cabal and program options |
2024-01-22 01:17:54 +0100 | jargon | (~jargon@211.sub-174-205-225.myvzw.com) |
2024-01-22 01:24:23 +0100 | ph88 | (~ph88@ip5b403f30.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds) |
2024-01-22 01:26:36 +0100 | gooba_ | (~gooba@90-231-13-185-no3430.tbcn.telia.com) (Remote host closed the connection) |
2024-01-22 01:27:03 +0100 | gooba | (~gooba@90-231-13-185-no3430.tbcn.telia.com) |
2024-01-22 01:30:12 +0100 | alexherbo2 | (~alexherbo@2a02-8440-3240-7a11-1531-9b44-c763-5134.rev.sfr.net) (Ping timeout: 250 seconds) |
2024-01-22 01:39:26 +0100 | <cheater> | geekosaur: i don't mean scripts, i mean executing the main of a package |
2024-01-22 01:39:41 +0100 | <cheater> | like eg a http server could just serve a directory of html and other files |
2024-01-22 01:39:48 +0100 | TonyStone | (~TonyStone@074-076-057-186.res.spectrum.com) (Quit: Leaving) |
2024-01-22 01:39:52 +0100 | <geekosaur> | everything from "as to the original question" above |
2024-01-22 01:39:54 +0100 | <cheater> | a json parser could do some json stuff |
2024-01-22 01:40:19 +0100 | <cheater> | "cabal run package already does what you want" really? |
2024-01-22 01:40:44 +0100 | <cheater> | interesting |
2024-01-22 01:41:04 +0100 | <cheater> | maybe we should just have more libraries provide useful executables then |
2024-01-22 01:41:16 +0100 | <cheater> | that sort of thing is popular in python and it actually works pretty well |
2024-01-22 01:46:41 +0100 | <newsham> | `stack run module` |
2024-01-22 01:47:00 +0100 | <newsham> | https://docs.haskellstack.org/en/stable/ |
2024-01-22 01:47:24 +0100 | <newsham> | that might give you an experience closer to some of the JS and python package tools |
2024-01-22 02:04:55 +0100 | <geekosaur> | there is one other thing. you can't arbitrarily execute a library, because Haskell is compiled to native code and the OS imposes a strict distinction between executables and libraries. |
2024-01-22 02:05:40 +0100 | <geekosaur> | (shared libraries can be executable, but this requires building in a special executable stub which can't be written in Haskell) |
2024-01-22 02:06:39 +0100 | <geekosaur> | Python is interpreted, so both libraries and programs are scripts and can be executed |
2024-01-22 02:07:11 +0100 | <geekosaur> | same with JS. this is also true of runghc, but you need -main-is to override ghc looking for Main.main as the entry point |
2024-01-22 02:07:42 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) |
2024-01-22 02:12:02 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 256 seconds) |
2024-01-22 02:12:49 +0100 | average | (uid473595@user/average) |
2024-01-22 02:13:45 +0100 | <shapr> | howdy newsham, long time no see |
2024-01-22 02:18:59 +0100 | <newsham> | hey shapr. indeed. i dont jump on irc too often anymore. howdy? |
2024-01-22 02:22:15 +0100 | <cheater> | geekosaur: that's why i suggested putting this in the package manager instead of making it like some sort of OS-level thing |
2024-01-22 02:23:33 +0100 | <geekosaur> | the package manager can't override the OS here |
2024-01-22 02:23:51 +0100 | <geekosaur> | if you want to execute the library, it has to be rebuilt as an application |
2024-01-22 02:24:14 +0100 | <geekosaur> | or interpreted |
2024-01-22 02:25:21 +0100 | <geekosaur> | also note that neither cabal nor stack knows if a library has a "main" hidden in it somewhere, you would have to specify where to look (again, main-is) |
2024-01-22 02:25:50 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:a989:ba9c:c8d7:9054) (Remote host closed the connection) |
2024-01-22 02:26:23 +0100 | <haskellbridge> | 05<irregularsphere> cheater: "popular in python and it actually works pretty well" hmm, python uses venvs nowadays |
2024-01-22 02:26:52 +0100 | <cheater> | i don't see how that's relevant |
2024-01-22 02:27:24 +0100 | <haskellbridge> | 05<irregularsphere> I think you wanted the package manager to provide binaries system-wide? |
2024-01-22 02:27:31 +0100 | <cheater> | geekosaur: you'd just look at the cabal file and load the first listed executable. |
2024-01-22 02:27:45 +0100 | <cheater> | irregular: not really |
2024-01-22 02:28:01 +0100 | <haskellbridge> | 05<irregularsphere> ah, I missed the point then |
2024-01-22 02:28:12 +0100 | <haskellbridge> | 05<irregularsphere> your point* |
2024-01-22 02:28:13 +0100 | <geekosaur> | cabal and stack already support that, I'm talking about trying to execute a library as is, like you were talking about earlier |
2024-01-22 02:31:17 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:a989:ba9c:c8d7:9054) |
2024-01-22 02:32:36 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 268 seconds) |
2024-01-22 02:33:16 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2024-01-22 02:35:17 +0100 | <haskellbridge> | 05<irregularsphere> can a library also have Main.main? |
2024-01-22 02:35:18 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:a989:ba9c:c8d7:9054) (Read error: Connection reset by peer) |
2024-01-22 02:36:37 +0100 | <cheater> | geekosaur: i wasn't talking about anything like that :) |
2024-01-22 02:39:46 +0100 | <geekosaur> | oh sorry, I thought I'd seen mention of Python's __main__ thing |
2024-01-22 02:41:18 +0100 | <haskellbridge> | 05<irregularsphere> ...yeah i don't get what you two were saying, sorry |
2024-01-22 02:43:50 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds) |
2024-01-22 02:45:19 +0100 | <geekosaur> | irregularsphere, a library can't usefully have a Main module because it would take quite a lot of work to convince either cabal or stack to build an executable from it |
2024-01-22 02:46:02 +0100 | <geekosaur> | and if you tried to build a normal executable using the library it would lead to a linker error because Main.main was defined twice |
2024-01-22 02:47:08 +0100 | <haskellbridge> | 14<maerwald> That's a bug due to text package using C++ |
2024-01-22 02:47:45 +0100 | <geekosaur> | hm, actually I'm not sure of that, it might work as long as there were no external references to anything defined in the library's Main |
2024-01-22 02:56:44 +0100 | <cheater> | can y'all report this repository with an AI-generated "haskell book"? it's full of bullshit and the guy's just trying to get clout in the community by creating disinformation. https://github.com/dogweather/forkful (here's how you can report it: https://imgur.com/a/YKup5w7 ) |
2024-01-22 02:58:52 +0100 | <cheater> | he literally just had chat gpt generate a book with no work put into it and posted it without any fact checking |
2024-01-22 02:59:20 +0100 | <cheater> | but he didn't forget to post his linkedin url |
2024-01-22 03:01:54 +0100 | <shapr> | newsham: howdy! |
2024-01-22 03:01:57 +0100 | shapr | hops quietly |
2024-01-22 03:02:16 +0100 | <shapr> | newsham: do you ever end up in the Boston area? |
2024-01-22 03:02:46 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) |
2024-01-22 03:03:01 +0100 | <newsham> | i havent been there since the early 2000s. |
2024-01-22 03:03:58 +0100 | <newsham> | i used to work for a couple companies based there and had to travel there occasionally for work.. that was a long time ago. |
2024-01-22 03:05:57 +0100 | tri_ | (~tri@2607:fb90:555e:511c:45c4:7a0:b2dd:b24a) |
2024-01-22 03:06:03 +0100 | tri_ | (~tri@2607:fb90:555e:511c:45c4:7a0:b2dd:b24a) (Client Quit) |
2024-01-22 03:08:55 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:a989:ba9c:c8d7:9054) |
2024-01-22 03:09:41 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 252 seconds) |
2024-01-22 03:28:23 +0100 | <shapr> | aw, too bad |
2024-01-22 03:33:31 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) |
2024-01-22 03:34:17 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
2024-01-22 03:36:48 +0100 | lockywolf | (~lockywolf@public.lockywolf.net) (Quit: ZNC 1.8.2 - https://znc.in) |
2024-01-22 03:39:12 +0100 | <haskellbridge> | 05<irregularsphere> cheater: the "Deep Dives" on that repo don't feel like deep dives at all |
2024-01-22 03:40:12 +0100 | <cheater> | irregular: dude, it's ALL chat gpt. the "creator" of this crap posted it on the subreddit and admitted to it. |
2024-01-22 03:40:29 +0100 | <cheater> | there's zero actual lucid thought behind this, it's all just computer generated spam |
2024-01-22 03:40:36 +0100 | <cheater> | please report the repo to github |
2024-01-22 03:40:44 +0100 | lockywolf | (~lockywolf@public.lockywolf.net) |
2024-01-22 03:40:52 +0100 | <haskellbridge> | 05<irregularsphere> I'm not sure how LLMs can even nail links to documentation at all |
2024-01-22 03:41:04 +0100 | <cheater> | doesn't matter |
2024-01-22 03:41:15 +0100 | <newsham> | i'm on oahu. let me know if you visit. its a nice place to visit. :) |
2024-01-22 03:41:27 +0100 | <haskellbridge> | 05<irregularsphere> Also I'm unsure of what to report it _for_ |
2024-01-22 03:41:58 +0100 | <haskellbridge> | 05<irregularsphere> yeah I don't feel good about reporting |
2024-01-22 03:42:14 +0100 | <cheater> | i posted the imgur link, that shows you what to report it for |
2024-01-22 03:42:21 +0100 | <cheater> | github has an explicit anti-disinformation policy |
2024-01-22 03:42:41 +0100 | <cheater> | https://docs.github.com/en/site-policy/acceptable-use-policies/github-misinformation-and-disinform… |
2024-01-22 03:43:00 +0100 | <cheater> | "You may not post content that presents a distorted view of reality, whether it is inaccurate or false (misinformation) or is intentionally deceptive (disinformation), where such content is likely to result in harm to the public" |
2024-01-22 03:43:19 +0100 | <cheater> | here's the "how to report" link again: https://imgur.com/a/YKup5w7 |
2024-01-22 03:43:32 +0100 | <cheater> | idk what you're not feeling good about, it's just chat gpt generated garbage |
2024-01-22 03:45:14 +0100 | mima | (~mmh@aftr-62-216-211-125.dynamic.mnet-online.de) (Ping timeout: 260 seconds) |
2024-01-22 03:45:19 +0100 | <cheater> | https://www.reddit.com/r/haskell/comments/19bw1zi/my_difficulty_with_haskell_documentation_led_me/ |
2024-01-22 03:45:27 +0100 | <cheater> | here's the original thread (thankfully deleted by mods) |
2024-01-22 03:46:02 +0100 | <cheater> | this guy's logic is basically he'll create some gpt diarrhea, post it for everyone to contend with, and then he expects useful gnomes from the haskell community will push PR's to fix the idiocy contained within |
2024-01-22 03:46:29 +0100 | <cheater> | direct quote: |
2024-01-22 03:46:32 +0100 | <cheater> | "Yep, I'm using an LLM to write the initial article which is stored in a public repo. There, readers can submit PRs. Every page has an "Edit on GitHub" link for it. " |
2024-01-22 03:49:09 +0100 | <cheater> | "I'm a former editor of an academic journal" *headdesk* |
2024-01-22 03:50:50 +0100 | <haskellbridge> | 05<irregularsphere> Not sure if it was intentionally deceptive, but yes it's inaccurate on some occasions. I still don't feel good about reporting at all though. |
2024-01-22 03:50:59 +0100 | <haskellbridge> | 05<irregularsphere> cheater: _where did he say that?_ |
2024-01-22 03:51:05 +0100 | <haskellbridge> | 05<irregularsphere> _what?_ |
2024-01-22 03:51:12 +0100 | <cheater> | he said that on the reddit link i posted. |
2024-01-22 03:51:27 +0100 | <cheater> | his replies are collapsed because he's been mass-downvoted. you'll have to expand them. |
2024-01-22 03:51:45 +0100 | <cheater> | don't be naive. he just wants clout for auto-generated spam. |
2024-01-22 03:52:37 +0100 | <cheater> | if we allow this garbage to stay online we'll soon enough have people coming in here with bad preconceptions, it'll be w3schools all over again (i'm sure there are some people here who remember *that* battle) |
2024-01-22 04:08:53 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 240 seconds) |
2024-01-22 04:11:07 +0100 | <cheater> | after searching far and wide i have indeed confirmed that this guy was an editor of an academic journal |
2024-01-22 04:11:14 +0100 | <cheater> | for two years |
2024-01-22 04:11:28 +0100 | <cheater> | one year editing for spelling mistakes and one year being "managing editor" |
2024-01-22 04:11:34 +0100 | <cheater> | 15 years ago |
2024-01-22 04:11:43 +0100 | <cheater> | for an animal law review journal. |
2024-01-22 04:11:44 +0100 | bitmapper | (uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2024-01-22 04:12:00 +0100 | <haskellbridge> | 05<irregularsphere> ...yeah that's a me problem, I'm naive. |
2024-01-22 04:12:18 +0100 | <cheater> | you'd think he'd make less of a fuss about having edited the spelling in a few boring articles nearly two decades ago |
2024-01-22 04:12:48 +0100 | <cheater> | just fyi that guy's a coder by education, he has nothing to do with either law nor animals |
2024-01-22 04:13:01 +0100 | <cheater> | so it's not like he was doing high-fly scientific editing there |
2024-01-22 04:13:38 +0100 | <haskellbridge> | 05<irregularsphere> Will check the reddit first, it's blocked in my country but there's a workaround in my laptop (i'm on mobile rn) |
2024-01-22 04:14:22 +0100 | <cheater> | try just using something like redective |
2024-01-22 04:15:54 +0100 | <haskellbridge> | 05<irregularsphere> nevermind i know a libreddit instance |
2024-01-22 04:16:11 +0100 | roboguy_ | (~roboguy_@2605:a601:ac73:5e00:1dfa:9d7b:ec47:6fda) |
2024-01-22 04:22:37 +0100 | average | (uid473595@user/average) (Quit: Connection closed for inactivity) |
2024-01-22 04:22:56 +0100 | trev | (~trev@user/trev) |
2024-01-22 04:26:10 +0100 | <haskellbridge> | 05<irregularsphere> yeah sorry can't handle this burden |
2024-01-22 04:26:57 +0100 | roboguy_ | (~roboguy_@2605:a601:ac73:5e00:1dfa:9d7b:ec47:6fda) (Quit: Leaving...) |
2024-01-22 04:27:47 +0100 | foul_owl | (~kerry@185.216.231.180) (Ping timeout: 252 seconds) |
2024-01-22 04:30:13 +0100 | <haskellbridge> | 05<irregularsphere> i never have had experience in reporting something* |
2024-01-22 04:42:12 +0100 | foul_owl | (~kerry@157.97.134.168) |
2024-01-22 04:42:22 +0100 | terrorjack | (~terrorjac@2a01:4f8:c17:87f8::) (Quit: The Lounge - https://thelounge.chat) |
2024-01-22 04:45:14 +0100 | terrorjack | (~terrorjac@2a01:4f8:c17:87f8::) |
2024-01-22 04:51:38 +0100 | emmanuelux_ | (~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer) |
2024-01-22 04:52:19 +0100 | emmanuelux_ | (~emmanuelu@user/emmanuelux) |
2024-01-22 04:52:59 +0100 | emmanuelux_ | (~emmanuelu@user/emmanuelux) (Remote host closed the connection) |
2024-01-22 04:55:59 +0100 | td_ | (~td@i5387090B.versanet.de) (Ping timeout: 268 seconds) |
2024-01-22 04:56:45 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) |
2024-01-22 04:57:15 +0100 | td_ | (~td@i53870929.versanet.de) |
2024-01-22 04:59:35 +0100 | img | (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
2024-01-22 05:00:43 +0100 | img | (~img@user/img) |
2024-01-22 05:16:25 +0100 | tri | (~tri@172.58.228.124) |
2024-01-22 05:17:11 +0100 | <tri> | good evening, I am trying to add a new haskell file to a cabal project but cabal isn't letting me to |
2024-01-22 05:18:13 +0100 | <tri> | https://paste.tomsmeding.com/BkDn0P4p |
2024-01-22 05:18:31 +0100 | <tri> | these are my cabal project file and the Monad.hs file im trying to add to the project |
2024-01-22 05:19:11 +0100 | aforemny | (~aforemny@i59F516D1.versanet.de) |
2024-01-22 05:20:15 +0100 | aforemny_ | (~aforemny@i59F516DB.versanet.de) (Ping timeout: 256 seconds) |
2024-01-22 05:21:13 +0100 | <monochrom> | Is Monad.hs under app/ ? |
2024-01-22 05:21:42 +0100 | <tri> | yes |
2024-01-22 05:21:48 +0100 | <tri> | hmm actually... |
2024-01-22 05:22:09 +0100 | <tri> | i changed it from exposed-modules to other-modules and it works 95% now |
2024-01-22 05:22:26 +0100 | <tri> | i can import a function in Monad.hs into the Main.hs and use it there |
2024-01-22 05:22:40 +0100 | <monochrom> | Oh! exposed-modules makes no sense in an executable. It's other-modules. |
2024-01-22 05:22:41 +0100 | <tri> | and when i run cabal build, cabal sees the 2 modules |
2024-01-22 05:22:44 +0100 | czy` | (~user@114.226.59.181) |
2024-01-22 05:22:47 +0100 | <tri> | however* |
2024-01-22 05:23:04 +0100 | <tri> | the compiler, haskell language server, is still having red squiggly line |
2024-01-22 05:23:13 +0100 | <tri> | let me restart vscode and see |
2024-01-22 05:24:18 +0100 | <tri> | oh it's gone after the restart, i guess it's a glitch |
2024-01-22 05:24:24 +0100 | <tri> | thank you for your help |
2024-01-22 05:25:01 +0100 | <tri> | how do you add a hackage into your cabal project? |
2024-01-22 05:25:21 +0100 | <tri> | i manually add a hackage by editing the cabal file |
2024-01-22 05:25:31 +0100 | <monochrom> | package? build-depends |
2024-01-22 05:25:43 +0100 | <tri> | i googled a bit and see that i could use cabal install |
2024-01-22 05:25:48 +0100 | <tri> | yes, add a package from Hackage |
2024-01-22 05:26:46 +0100 | <tri> | but i somehow remember that cabal install actually install the cabal project into my PATH or something like that, and it's night time, im tired to run it and having to go clean up if it's actually install into my PATH |
2024-01-22 05:26:54 +0100 | <tri> | so i figure i should ask someone |
2024-01-22 05:27:07 +0100 | <monochrom> | Right, add to build-depends instead. |
2024-01-22 05:27:43 +0100 | <tri> | yes, as you said, i manually edit the cabal config file to add a package |
2024-01-22 05:27:54 +0100 | <tri> | but could you tell me what's the cabal command for it? |
2024-01-22 05:28:20 +0100 | <monochrom> | None. Edit the cabal file. |
2024-01-22 05:28:28 +0100 | <tri> | holy cow |
2024-01-22 05:28:31 +0100 | <tri> | oh ok thank you |
2024-01-22 05:28:59 +0100 | <tri> | by the way, thank you for being active here, i see you day and night here |
2024-01-22 05:29:17 +0100 | Square | (~Square@user/square) (Ping timeout: 268 seconds) |
2024-01-22 05:38:34 +0100 | roboguy_ | (~roboguy_@2605:a601:ac73:5e00:1dfa:9d7b:ec47:6fda) |
2024-01-22 05:39:48 +0100 | jargon | (~jargon@211.sub-174-205-225.myvzw.com) (Remote host closed the connection) |
2024-01-22 05:40:34 +0100 | roboguy_ | (~roboguy_@2605:a601:ac73:5e00:1dfa:9d7b:ec47:6fda) (Client Quit) |
2024-01-22 05:43:26 +0100 | <tri> | https://paste.tomsmeding.com/BbHBf2PZ |
2024-01-22 05:43:55 +0100 | <tri> | is there anyway i can print the value of x inside this do notation? |
2024-01-22 05:44:25 +0100 | <tri> | it's a do of List monad, so i figured i cannot put an IO inside |
2024-01-22 05:44:52 +0100 | <tri> | but is there a way to get it working?, i want to see what value of x is |
2024-01-22 05:50:02 +0100 | <tri> | actually this is what i have so far |
2024-01-22 05:50:02 +0100 | <tri> | https://paste.tomsmeding.com/Jluwq2t4 |
2024-01-22 05:50:27 +0100 | <tri> | but it's still not printing, i guess because that IO () is lazily evalulated, so it's not running |
2024-01-22 05:51:00 +0100 | <tri> | and because it's being wrapped inside a list monad do notation, there is no way to get it out to have it run |
2024-01-22 05:55:03 +0100 | newsham | (~newsham@2603-800c-2c01-6825-e4e3-3d73-a50d-4edf.res6.spectrum.com) (Quit: Client closed) |
2024-01-22 06:03:52 +0100 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
2024-01-22 06:04:56 +0100 | <jackdk> | tri: https://hackage.haskell.org/package/base-4.17.0.0/docs/Debug-Trace.html#v:traceShowM might be what you want but might also be unexpected |
2024-01-22 06:07:53 +0100 | <tri> | jackdk: that works for me. Thank you |
2024-01-22 06:08:11 +0100 | michalz | (~michalz@185.246.207.221) |
2024-01-22 06:12:04 +0100 | <jackdk> | tri: note that this subverts the whole "purity" thing that Haskell is going for, and is strictly a debugging tool |
2024-01-22 06:12:25 +0100 | <tri> | i understand. thank you |
2024-01-22 06:22:58 +0100 | szkl | (uid110435@id-110435.uxbridge.irccloud.com) |
2024-01-22 06:26:37 +0100 | michalz | (~michalz@185.246.207.221) (Quit: ZNC 1.8.2 - https://znc.in) |
2024-01-22 06:29:29 +0100 | michalz | (~michalz@185.246.207.197) |
2024-01-22 06:32:53 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 240 seconds) |
2024-01-22 06:41:38 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2024-01-22 06:42:22 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-01-22 06:46:47 +0100 | tri | (~tri@172.58.228.124) (Remote host closed the connection) |
2024-01-22 06:51:27 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) |
2024-01-22 06:57:48 +0100 | igemnace | (~ian@user/igemnace) |
2024-01-22 06:58:17 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 256 seconds) |
2024-01-22 07:00:04 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) |
2024-01-22 07:04:32 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 252 seconds) |
2024-01-22 07:05:55 +0100 | qqq | (~qqq@92.43.167.61) |
2024-01-22 07:06:09 +0100 | causal | (~eric@50.35.85.7) (Quit: WeeChat 4.1.1) |
2024-01-22 07:08:22 +0100 | shriekingnoise | (~shrieking@186.137.175.87) (Ping timeout: 264 seconds) |
2024-01-22 07:11:33 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds) |
2024-01-22 07:12:30 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-01-22 07:17:06 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2024-01-22 07:20:41 +0100 | acidjnk | (~acidjnk@p200300d6e737e732388182bf15709a86.dip0.t-ipconnect.de) |
2024-01-22 07:25:07 +0100 | sroso | (~sroso@user/SrOso) |
2024-01-22 07:28:29 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds) |
2024-01-22 07:29:09 +0100 | euleritian | (~euleritia@dynamic-176-006-179-031.176.6.pool.telefonica.de) |
2024-01-22 07:35:36 +0100 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection) |
2024-01-22 07:40:21 +0100 | CiaoSen | (~Jura@2a05:5800:2c2:a100:ca4b:d6ff:fec1:99da) |
2024-01-22 07:51:05 +0100 | igemnace | (~ian@user/igemnace) (Read error: Connection reset by peer) |
2024-01-22 08:06:23 +0100 | <haskellbridge> | 05<irregularsphere> tri: can't you just do this: seq expr expr |
2024-01-22 08:08:51 +0100 | igemnace | (~ian@user/igemnace) |
2024-01-22 08:12:37 +0100 | <haskellbridge> | 05<irregularsphere> otherwise jackdk's advice is more idiomatic i guess |
2024-01-22 08:13:11 +0100 | <haskellbridge> | 05<irregularsphere> jackdk: well, if the only side effect is printing a string it should be good enough |
2024-01-22 08:13:41 +0100 | <jackdk> | I mean sure but I've had to help people unlearn an over-reliance on Debug.Trace as an application logging tool. |
2024-01-22 08:14:05 +0100 | <haskellbridge> | 05<irregularsphere> wait, what!? |
2024-01-22 08:14:20 +0100 | <haskellbridge> | 05<irregularsphere> ha fair lol :P |
2024-01-22 08:14:33 +0100 | sroso | (~sroso@user/SrOso) (Ping timeout: 268 seconds) |
2024-01-22 08:16:22 +0100 | sroso | (~sroso@user/SrOso) |
2024-01-22 08:17:19 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds) |
2024-01-22 08:18:32 +0100 | <EvanR> | seq expr expr = expr |
2024-01-22 08:21:17 +0100 | califax | (~califax@user/califx) (Remote host closed the connection) |
2024-01-22 08:22:57 +0100 | califax | (~califax@user/califx) |
2024-01-22 08:31:14 +0100 | califax | (~califax@user/califx) (Remote host closed the connection) |
2024-01-22 08:32:48 +0100 | califax | (~califax@user/califx) |
2024-01-22 08:35:29 +0100 | califax | (~califax@user/califx) (Remote host closed the connection) |
2024-01-22 08:37:55 +0100 | califax | (~califax@user/califx) |
2024-01-22 08:40:55 +0100 | califax | (~califax@user/califx) (Remote host closed the connection) |
2024-01-22 08:41:29 +0100 | califax | (~califax@user/califx) |
2024-01-22 08:42:10 +0100 | szkl | (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
2024-01-22 08:45:06 +0100 | califax | (~califax@user/califx) (Remote host closed the connection) |
2024-01-22 08:46:42 +0100 | califax | (~califax@user/califx) |
2024-01-22 08:47:07 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2024-01-22 08:48:59 +0100 | <mauke> | yeah, this is not a matter of laziness |
2024-01-22 08:49:08 +0100 | <mauke> | > let x = putStrLn "hi" in length [x, x, x] |
2024-01-22 08:49:10 +0100 | <lambdabot> | 3 |
2024-01-22 08:49:15 +0100 | <mauke> | > let x = putStrLn "hi" in x `seq` length [x, x, x] |
2024-01-22 08:49:16 +0100 | <lambdabot> | 3 |
2024-01-22 08:52:19 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection) |
2024-01-22 08:52:42 +0100 | <haskellbridge> | 05<irregularsphere> right |
2024-01-22 08:52:51 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2024-01-22 08:53:10 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-01-22 08:53:31 +0100 | <haskellbridge> | 05<irregularsphere> yeah i remembered there being a `unsafePerformIO` function but, well, it's unsafe |
2024-01-22 08:56:01 +0100 | <int-e> | Maybe don't look at how Debug.Trace.trace is implemented then :) |
2024-01-22 08:59:10 +0100 | <dminuoso_> | unsafePerformIO is unsafe in some really funny ways. |
2024-01-22 09:00:47 +0100 | <dminuoso_> | For instance, in some situations it can lead do things like aliasing IORefs unexpectedly. |
2024-01-22 09:01:20 +0100 | oo_miguel | (~Thunderbi@78-11-179-96.static.ip.netia.com.pl) |
2024-01-22 09:01:36 +0100 | <dminuoso_> | And such things is what unsafe is really alludes to. Not that the mere presence of `unsafePerformIO` is unsafe, but if program correctness somehow depends on the effects, thats when you should be paying maximum attention and understand the internals. |
2024-01-22 09:02:10 +0100 | cfricke | (~cfricke@user/cfricke) |
2024-01-22 09:02:35 +0100 | <int-e> | . o O ( The next lecture will be about reallyUnsafePtrEquality# ) |
2024-01-22 09:03:18 +0100 | fendor | (~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c) |
2024-01-22 09:06:41 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection) |
2024-01-22 09:07:07 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2024-01-22 09:08:28 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection) |
2024-01-22 09:08:56 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2024-01-22 09:15:50 +0100 | phma | (phma@2001:5b0:211f:a328:df89:a9c1:b8f3:9c33) (Quit: Konversation terminated!) |
2024-01-22 09:16:43 +0100 | phma | (phma@2001:5b0:211f:a328:df89:a9c1:b8f3:9c33) |
2024-01-22 09:19:40 +0100 | <phma> | There's a strange bug in Wring https://github.com/phma/wring-twistree : it hangs encrypting a 59049-byte file when compiled without optimization. |
2024-01-22 09:20:13 +0100 | <phma> | If I run it in ghci, it works fine, just takes several seconds longer. |
2024-01-22 09:20:28 +0100 | <phma> | If I compile it with -O2, it works fine. |
2024-01-22 09:20:46 +0100 | <phma> | Any idea how to troubleshoot this bug? |
2024-01-22 09:22:04 +0100 | CiaoSen | (~Jura@2a05:5800:2c2:a100:ca4b:d6ff:fec1:99da) (Ping timeout: 268 seconds) |
2024-01-22 09:23:18 +0100 | <phma> | I'm using stack with ghc 9.4.5. |
2024-01-22 09:24:28 +0100 | euleritian | (~euleritia@dynamic-176-006-179-031.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-01-22 09:24:45 +0100 | econo_ | (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity) |
2024-01-22 09:24:45 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-01-22 09:24:53 +0100 | <dminuoso_> | phma: Debug symbols, attach lldb, and interrupt? |
2024-01-22 09:26:19 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
2024-01-22 09:27:38 +0100 | califax | (~califax@user/califx) (Remote host closed the connection) |
2024-01-22 09:27:43 +0100 | <haskellbridge> | 05<irregularsphere> int-e: no i saw unsafePerformIO before Debug.Trace.trace's impl |
2024-01-22 09:27:54 +0100 | <phma> | can I attach gdb? I don't know lldb well |
2024-01-22 09:27:58 +0100 | <dminuoso_> | phma: Sure. |
2024-01-22 09:28:17 +0100 | <dminuoso_> | See https://ghc.gitlab.haskell.org/ghc/doc/users_guide/debug-info.html |
2024-01-22 09:28:49 +0100 | mima | (~mmh@aftr-62-216-211-136.dynamic.mnet-online.de) |
2024-01-22 09:28:56 +0100 | <dminuoso_> | phma: Keep note of sections 9.2 and 9.3 of that website. |
2024-01-22 09:29:19 +0100 | <phma> | do I put -g in ghc-options in package.yaml? |
2024-01-22 09:30:30 +0100 | <dminuoso_> | I dont use stack/hpack, so I cant say. |
2024-01-22 09:31:37 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 264 seconds) |
2024-01-22 09:34:26 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-01-22 09:34:46 +0100 | califax | (~califax@user/califx) |
2024-01-22 09:35:08 +0100 | szkl | (uid110435@id-110435.uxbridge.irccloud.com) |
2024-01-22 09:37:48 +0100 | califax | (~califax@user/califx) (Remote host closed the connection) |
2024-01-22 09:38:05 +0100 | califax | (~califax@user/califx) |
2024-01-22 09:38:32 +0100 | Batzy | (~quassel@user/batzy) (Ping timeout: 252 seconds) |
2024-01-22 09:41:32 +0100 | <phma> | diminuoso_: It got up to 59049, I attached gdb, and it said 0x0000000000d03c44 in ?? (). |
2024-01-22 09:41:56 +0100 | <phma> | I said where, the backtrace is uninformative. |
2024-01-22 09:42:21 +0100 | <phma> | #0 0x0000000000d03c44 in ?? () |
2024-01-22 09:42:23 +0100 | <phma> | #1 0x0000000000000000 in ?? () |
2024-01-22 09:44:06 +0100 | kuribas | (~user@2a02:1808:86:1b83:b509:a89:6607:72d4) |
2024-01-22 09:49:10 +0100 | yoneda | (~mike@193.206.102.122) |
2024-01-22 09:54:17 +0100 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
2024-01-22 09:54:59 +0100 | <phma> | When I run file, it does not say "with debug info". ghc-options in WringTwistree.cabal says -g2. |
2024-01-22 09:55:04 +0100 | kuribas | (~user@2a02:1808:86:1b83:b509:a89:6607:72d4) (Ping timeout: 268 seconds) |
2024-01-22 10:03:14 +0100 | m5zs7k | (aquares@web10.mydevil.net) (Ping timeout: 260 seconds) |
2024-01-22 10:04:25 +0100 | kuribas | (~user@2a02:1808:86:1b83:7770:d0e2:fe93:8b14) |
2024-01-22 10:05:06 +0100 | m5zs7k | (aquares@web10.mydevil.net) |
2024-01-22 10:07:11 +0100 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2024-01-22 10:09:17 +0100 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 240 seconds) |
2024-01-22 10:12:01 +0100 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
2024-01-22 10:21:43 +0100 | mmhat | (~mmh@p200300f1c724f915ee086bfffe095315.dip0.t-ipconnect.de) |
2024-01-22 10:23:45 +0100 | <phma> | diminuoso_: I got it to not strip the binary (and everything else, which took quite a while), then ran the binary from the command line (not the shell script), and got this: |
2024-01-22 10:24:07 +0100 | <phma> | 0x0000000000cfbf21 in containerszm0zi6zi7_DataziSequenceziInternal_zdwtake_info () |
2024-01-22 10:25:26 +0100 | <phma> | No idea what that means. where still says just two lines, #1 being 0 (??). |
2024-01-22 10:29:15 +0100 | <phma> | I did "n" and found myself in stg_BLACKHOLE_info. |
2024-01-22 10:31:21 +0100 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 256 seconds) |
2024-01-22 10:31:35 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 260 seconds) |
2024-01-22 10:31:54 +0100 | ft | (~ft@p508dbda4.dip0.t-ipconnect.de) (Quit: leaving) |
2024-01-22 10:32:26 +0100 | yeahitsme | (~bob@user/yeahitsme) |
2024-01-22 10:33:25 +0100 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
2024-01-22 10:40:13 +0100 | gehmehgeh | (~user@user/gehmehgeh) |
2024-01-22 10:40:59 +0100 | tzh | (~tzh@c-71-193-181-0.hsd1.or.comcast.net) (Quit: zzz) |
2024-01-22 10:43:05 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
2024-01-22 10:53:27 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:a989:ba9c:c8d7:9054) (Remote host closed the connection) |
2024-01-22 11:00:06 +0100 | kuribas` | (~user@ip-188-118-57-242.reverse.destiny.be) |
2024-01-22 11:01:10 +0100 | fansly | (~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f) |
2024-01-22 11:01:25 +0100 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 276 seconds) |
2024-01-22 11:01:57 +0100 | kuribas | (~user@2a02:1808:86:1b83:7770:d0e2:fe93:8b14) (Ping timeout: 256 seconds) |
2024-01-22 11:02:55 +0100 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
2024-01-22 11:32:17 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:f06f:8f74:1e14:400c) |
2024-01-22 11:52:27 +0100 | alexherbo2 | (~alexherbo@2a02-8440-3341-1bdb-4d7f-e84a-cae7-751c.rev.sfr.net) |
2024-01-22 12:08:22 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 246 seconds) |
2024-01-22 12:24:27 +0100 | fansly | (~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f) (Read error: Connection reset by peer) |
2024-01-22 12:24:38 +0100 | fansly | (~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f) |
2024-01-22 12:26:58 +0100 | fansly | (~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f) (Read error: Connection reset by peer) |
2024-01-22 12:28:07 +0100 | fansly | (~fansly@182.0.167.78) |
2024-01-22 12:31:03 +0100 | fansly | (~fansly@182.0.167.78) (Read error: Connection reset by peer) |
2024-01-22 12:33:16 +0100 | fansly | (~fansly@103.3.221.236) |
2024-01-22 12:34:50 +0100 | jespada | (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Quit: Textual IRC Client: www.textualapp.com) |
2024-01-22 12:34:59 +0100 | sroso | (~sroso@user/SrOso) (Quit: Leaving :)) |
2024-01-22 12:37:54 +0100 | jespada | (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) |
2024-01-22 12:47:25 +0100 | Feuermagier | Guest1022 |
2024-01-22 12:47:25 +0100 | Feuermagier_ | (~Feuermagi@user/feuermagier) |
2024-01-22 12:47:25 +0100 | Guest1022 | (~Feuermagi@user/feuermagier) (Killed (lithium.libera.chat (Nickname regained by services))) |
2024-01-22 12:47:25 +0100 | Feuermagier_ | Feuermagier |
2024-01-22 12:56:05 +0100 | fansly | (~fansly@103.3.221.236) (Ping timeout: 240 seconds) |
2024-01-22 12:56:27 +0100 | fansly | (~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f) |
2024-01-22 12:57:28 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
2024-01-22 13:00:21 +0100 | picnoir | (~picnoir@about/aquilenet/vodoo/NinjaTrappeur) (Ping timeout: 245 seconds) |
2024-01-22 13:02:09 +0100 | Axman6 | (~Axman6@user/axman6) (Remote host closed the connection) |
2024-01-22 13:02:19 +0100 | ph88 | (~ph88@ip5b403f30.dynamic.kabel-deutschland.de) |
2024-01-22 13:03:22 +0100 | ph88 | (~ph88@ip5b403f30.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
2024-01-22 13:07:46 +0100 | qrpnxz | (~qrpnxz@fsf/member/qrpnxz) (Quit: Leaving.) |
2024-01-22 13:18:34 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2024-01-22 13:18:59 +0100 | euleritian | (~euleritia@77.22.252.56) |
2024-01-22 13:19:08 +0100 | Axman6 | (~Axman6@user/axman6) |
2024-01-22 13:25:43 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Ping timeout: 240 seconds) |
2024-01-22 13:28:02 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2024-01-22 13:34:11 +0100 | ph88 | (~ph88@ip5b403f30.dynamic.kabel-deutschland.de) |
2024-01-22 13:34:21 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-01-22 13:34:58 +0100 | <ph88> | How can i make function allPredicate :: [a -> Bool] -> (a -> Bool) ? to be used with all :: (a -> Bool) -> [a] -> Bool later on |
2024-01-22 13:35:56 +0100 | <nullie> | ph88: id? |
2024-01-22 13:35:57 +0100 | fansly | (~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f) (Remote host closed the connection) |
2024-01-22 13:36:10 +0100 | <nullie> | oh, nevermind |
2024-01-22 13:37:23 +0100 | <nullie> | ph88: https://hackage.haskell.org/package/swish-0.10.7.0/docs/src/Swish.RDF.Query.html#allp |
2024-01-22 13:37:26 +0100 | <kuribas`> | ph88: what does it do? |
2024-01-22 13:38:36 +0100 | mechap | (~mechap@user/mechap) |
2024-01-22 13:38:38 +0100 | <kuribas`> | :t getAll . foldmap (fmap All) |
2024-01-22 13:38:39 +0100 | <lambdabot> | error: |
2024-01-22 13:38:39 +0100 | <lambdabot> | • Variable not in scope: foldmap :: (f0 Bool -> f0 All) -> a -> All |
2024-01-22 13:38:39 +0100 | <lambdabot> | • Perhaps you meant one of these: |
2024-01-22 13:38:47 +0100 | <kuribas`> | :t getAll . foldMap (fmap All) |
2024-01-22 13:38:48 +0100 | <lambdabot> | error: |
2024-01-22 13:38:48 +0100 | <lambdabot> | • Couldn't match type ‘f All’ with ‘All’ |
2024-01-22 13:38:48 +0100 | <lambdabot> | Expected type: t (f Bool) -> All |
2024-01-22 13:39:08 +0100 | <kuribas`> | :t fmap getAll . foldMap (fmap All) |
2024-01-22 13:39:09 +0100 | <lambdabot> | (Functor f, Foldable t, Monoid (f All)) => t (f Bool) -> f Bool |
2024-01-22 13:40:14 +0100 | <ph88> | interesting monoid ^^ |
2024-01-22 13:40:38 +0100 | <kuribas`> | :t even <> odd |
2024-01-22 13:40:39 +0100 | <lambdabot> | error: |
2024-01-22 13:40:39 +0100 | <lambdabot> | • Could not deduce (Semigroup Bool) arising from a use of ‘<>’ |
2024-01-22 13:40:40 +0100 | <lambdabot> | from the context: Integral a |
2024-01-22 13:40:50 +0100 | <ph88> | i'm looking for a solution without a monoid if possible, let me look in the implementation to see if i can extract how it works from there |
2024-01-22 13:41:35 +0100 | <ph88> | hhmm looks too complicated for me |
2024-01-22 13:41:57 +0100 | <haskellbridge> | 05<irregularsphere> you can do something with foldl' and && |
2024-01-22 13:42:31 +0100 | <kuribas`> | :t fmap All even <> fmap All odd |
2024-01-22 13:42:33 +0100 | <lambdabot> | Integral a => a -> All |
2024-01-22 13:42:56 +0100 | <kuribas`> | ph88: you can write a trivial "boring" implementation. |
2024-01-22 13:43:29 +0100 | <ph88> | with fold' and && as irregularsphere suggested ? |
2024-01-22 13:43:39 +0100 | <kuribas`> | for example |
2024-01-22 13:43:44 +0100 | <nullie> | and and map maybe |
2024-01-22 13:43:51 +0100 | <haskellbridge> | 05<irregularsphere> you can do this boringly: allPredicate fs a = foldl' (&&) $ map (a &) fs |
2024-01-22 13:43:55 +0100 | <haskellbridge> | 05<irregularsphere> let me test for one moment |
2024-01-22 13:44:14 +0100 | <haskellbridge> | 05<irregularsphere> whoops first error |
2024-01-22 13:45:05 +0100 | <ph88> | foldl' && id xs ? |
2024-01-22 13:45:06 +0100 | <haskellbridge> | 05<irregularsphere> allPredicate fs a = foldl' (&&) True $ map (a &) fs |
2024-01-22 13:45:43 +0100 | <haskellbridge> | 05<irregularsphere> you can't && functions |
2024-01-22 13:45:49 +0100 | <ph88> | oh ye that's true |
2024-01-22 13:45:50 +0100 | <haskellbridge> | 05<irregularsphere> (&&) :: Bool -> Bool -> Bool |
2024-01-22 13:46:50 +0100 | <nullie> | :t \ps -> \x -> and [p x | p < ps] |
2024-01-22 13:46:51 +0100 | <lambdabot> | error: |
2024-01-22 13:46:51 +0100 | <lambdabot> | • Couldn't match expected type ‘t -> Bool’ with actual type ‘Expr’ |
2024-01-22 13:46:51 +0100 | <lambdabot> | • The function ‘p’ is applied to one argument, |
2024-01-22 13:47:07 +0100 | <nullie> | :t \ps -> \x -> and [p x | p <- ps] |
2024-01-22 13:47:07 +0100 | <haskellbridge> | 05<irregularsphere> (though for my solution it's pretty clear that allPredicate [] a = True) |
2024-01-22 13:47:07 +0100 | <ph88> | foldl' (\b a -> (\x -> b x && a x)) id xs |
2024-01-22 13:47:08 +0100 | <lambdabot> | [t -> Bool] -> t -> Bool |
2024-01-22 13:47:31 +0100 | Batzy | (~quassel@user/batzy) |
2024-01-22 13:48:05 +0100 | <haskellbridge> | 05<irregularsphere> ah wait |
2024-01-22 13:48:20 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2024-01-22 13:48:22 +0100 | <haskellbridge> | 05<irregularsphere> right, allPredicate fs a = and $ map (a &) fs |
2024-01-22 13:49:24 +0100 | <ph88> | never seen & before, have to look it up what it does |
2024-01-22 13:49:41 +0100 | <haskellbridge> | 05<irregularsphere> yeah it's the inverse of $ in terms of application |
2024-01-22 13:49:43 +0100 | <probie> | It's just `flip ($)` |
2024-01-22 13:49:57 +0100 | <haskellbridge> | 05<irregularsphere> yeah |
2024-01-22 13:50:08 +0100 | <haskellbridge> | 05<irregularsphere> so ($ a) works fine as well as (a &) |
2024-01-22 13:50:18 +0100 | <haskellbridge> | 15<Jade> which is just `flip id` ;) |
2024-01-22 13:51:01 +0100 | <nullie> | :t ($) |
2024-01-22 13:51:03 +0100 | <lambdabot> | (a -> b) -> a -> b |
2024-01-22 13:51:22 +0100 | <haskellbridge> | 05<irregularsphere> yeah $ is basically id with infix 0 |
2024-01-22 13:51:30 +0100 | <haskellbridge> | 15<Jade> yep |
2024-01-22 13:51:42 +0100 | fansly | (~fansly@103.3.221.236) |
2024-01-22 13:51:46 +0100 | <haskellbridge> | 15<Jade> I just added those to the docs of $ |
2024-01-22 13:51:55 +0100 | <haskellbridge> | 05<irregularsphere> oh, nice! |
2024-01-22 13:52:26 +0100 | <ph88> | thanks guys :) |
2024-01-22 13:52:39 +0100 | <haskellbridge> | 05<irregularsphere> ~~jade: ...shouldn't it be obvious given the type of $~~ |
2024-01-22 13:52:56 +0100 | <haskellbridge> | 05<irregularsphere> ph88: yw, good luck! |
2024-01-22 13:54:59 +0100 | <haskellbridge> | 15<Jade> I gave a small explanation that `a -> a` is the same as `(a -> b) -> (a -> b)` by substitution and then trivially `(a -> b) -> a -> b` because of associativity :) |
2024-01-22 13:55:32 +0100 | <haskellbridge> | 15<Jade> s/the same as// |
2024-01-22 13:56:21 +0100 | AlexZenon | (~alzenon@94.233.241.143) (Ping timeout: 256 seconds) |
2024-01-22 13:57:42 +0100 | <dminuoso_> | Jade: It is not the same. |
2024-01-22 14:01:39 +0100 | <haskellbridge> | 05<irregularsphere> Jade: I would prefer if you just explained that `$` is just `id` restricted to `(a -> b) -> (a -> b)`. |
2024-01-22 14:02:10 +0100 | <haskellbridge> | 05<irregularsphere> (or `id` but only for `a -> b`) |
2024-01-22 14:04:04 +0100 | <dminuoso_> | Jade: They are unifiable. If you want to call them the same, you'd have to define what equality on types is exactly. |
2024-01-22 14:04:57 +0100 | gehmehgeh | (~user@user/gehmehgeh) (Remote host closed the connection) |
2024-01-22 14:04:57 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection) |
2024-01-22 14:04:58 +0100 | califax | (~califax@user/califx) (Remote host closed the connection) |
2024-01-22 14:05:31 +0100 | califax | (~califax@user/califx) |
2024-01-22 14:05:54 +0100 | gehmehgeh | (~user@user/gehmehgeh) |
2024-01-22 14:06:17 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2024-01-22 14:06:40 +0100 | <haskellbridge> | 05<irregularsphere> "`a -> a` is the same as `(b -> c) -> (b -> c)`" can be abused to conclude "for any `a -> a` it must be a `(b -> c) -> (b -> c)`", which in this case, has trivial counterexamples, such as: `() -> ()` is not a form of `(b -> c) -> (b -> c)`. |
2024-01-22 14:07:41 +0100 | fansly | (~fansly@103.3.221.236) (Ping timeout: 256 seconds) |
2024-01-22 14:07:43 +0100 | califax | (~califax@user/califx) (Read error: Connection reset by peer) |
2024-01-22 14:08:21 +0100 | califax | (~califax@user/califx) |
2024-01-22 14:08:29 +0100 | fansly | (~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f) |
2024-01-22 14:11:07 +0100 | AlexZenon | (~alzenon@94.233.241.143) |
2024-01-22 14:15:52 +0100 | iakov | (~user@2a02:8106:244:b000:57f6:37d4:b4f4:dc14) |
2024-01-22 14:19:58 +0100 | <iakov> | Hello ! I have a https://github.com/obsidiansystems/obelisk project running, and i whould like to use rhyolite as a dependency. I have a 'hetzner' nixos instance running, which I created with nixos-infect. Building and running on my local machine works fine, but when deploying using obelisk with `ob deploy push`, the process on the remote nixos machine complains that it cannot find the rhyolite package. |
2024-01-22 14:20:21 +0100 | <iakov> | error: opening file '/nix/store/jlyfl0n6a36r6sw2rnk2aic8zz6i08z1-rhyolite/default.nix': No such file or directory |
2024-01-22 14:20:28 +0100 | <dminuoso_> | irregularsphere: What does "is the same as" mean, exactly? |
2024-01-22 14:21:26 +0100 | <dminuoso_> | If we consider Leibnitz equality, they are absolutely not the same. |
2024-01-22 14:21:40 +0100 | <dminuoso_> | There's terms that will type check with a type of `a -> a` but not with `(b -> c) -> (b -> c)` |
2024-01-22 14:22:00 +0100 | <iakov> | (sorry for not asking a fully detailed question, i'm not used to IRC - and pressed 'Enter' prematurely, before finishing the question and elaborating on the details.) |
2024-01-22 14:22:04 +0100 | <dminuoso_> | As the simplest example |
2024-01-22 14:23:06 +0100 | <dminuoso_> | % :t (id :: (b -> c) -> (b -> c)) () -- irregularsphere |
2024-01-22 14:23:06 +0100 | <yahb2> | <interactive>:1:30: error: ; • Couldn't match expected type ‘b -> c’ with actual type ‘()’ ; • In the first argument of ‘id :: (b -> c) -> (b -> c)’, namely ; ‘()’ ; In the ex... |
2024-01-22 14:23:18 +0100 | <iakov> | Currently, as described in the 'deployment' section of the obelisk readme, it's required to create a module.nix which is supposed to contain the configuration for the machine. Do I have to pass the rhyolite dependency to the module.nix too ? |
2024-01-22 14:23:36 +0100 | <dminuoso_> | % :t (id :: a -> a) () -- c.f. |
2024-01-22 14:23:36 +0100 | <yahb2> | (id :: a -> a) () -- c.f. :: () |
2024-01-22 14:23:45 +0100 | <haskellbridge> | 05<irregularsphere> dminuoso: yeah I thought "`t0` is the same as `t1`" as in "for any `x: t0`, then x is in `t1` and vice versa" |
2024-01-22 14:23:52 +0100 | <haskellbridge> | 05<irregularsphere> similar to set equality |
2024-01-22 14:23:59 +0100 | <haskellbridge> | 05<irregularsphere> dunno, never that experienced with philosophy |
2024-01-22 14:29:05 +0100 | siw5ohs0 | (~aiw5ohs0@user/aiw5ohs0) |
2024-01-22 14:29:14 +0100 | siw5ohs0 | (~aiw5ohs0@user/aiw5ohs0) (Leaving) |
2024-01-22 14:29:18 +0100 | <dminuoso_> | irregularsphere: The comparison works only for monotypes. |
2024-01-22 14:29:27 +0100 | <dminuoso_> | Quantified types are.. well quantified. |
2024-01-22 14:29:48 +0100 | <dminuoso_> | That is, the `a` in `id :: a -> a` is not a single type |
2024-01-22 14:29:52 +0100 | aljazmc | (~aljazmc@user/aljazmc) |
2024-01-22 14:30:05 +0100 | <dminuoso_> | It might be more obvious if you include the implicit quantification: id :: forall a. a -> a` |
2024-01-22 14:30:53 +0100 | <haskellbridge> | 05<irregularsphere> ...it might take a year or two to get myself comfortable with these terms |
2024-01-22 14:31:26 +0100 | shriekingnoise | (~shrieking@186.137.175.87) |
2024-01-22 14:31:44 +0100 | <dminuoso_> | irregularsphere: Its also called a type schema. You can really interpret that line as reading `forall choices choices of a, id has type a -> a` |
2024-01-22 14:32:24 +0100 | <dminuoso_> | And you can make any such choice, `for a ~ Int, id has type Int -> Int` |
2024-01-22 14:32:30 +0100 | <dminuoso_> | So you can think of this as id having many types. |
2024-01-22 14:32:45 +0100 | <haskellbridge> | 05<irregularsphere> yeah actually to make myself clearer what i actually mean is that "`s0` is the same thing `s1`", to me, means "for any type `x` with the form `s0` then `x` also has the form `s1` and vice versa" |
2024-01-22 14:33:09 +0100 | <dminuoso_> | I think you might enjoy a dive into type theory. |
2024-01-22 14:33:17 +0100 | <haskellbridge> | 05<irregularsphere> wow the terminology in this functional programming universe is wild |
2024-01-22 14:33:38 +0100 | <haskellbridge> | 05<irregularsphere> way different from where I came from (imperative/object-oriented) |
2024-01-22 14:33:41 +0100 | <dminuoso_> | irregularsphere: This is not just theoretic nonsense, by the way. |
2024-01-22 14:33:53 +0100 | <dminuoso_> | In GHC, there's a direct correspondence to how this is compiled. |
2024-01-22 14:34:10 +0100 | <haskellbridge> | 05<irregularsphere> I know, I usually look up terminology whenever I enounter a new one. |
2024-01-22 14:35:33 +0100 | <kuribas`> | polymorphic id is a function from a type to a monomorphic function. |
2024-01-22 14:35:56 +0100 | <kuribas`> | But you don't apply it directly, the type inference engine derives the type then applies it. |
2024-01-22 14:36:28 +0100 | <kuribas`> | (forall a.a -> a) applied to Int becomes Int -> Int |
2024-01-22 14:36:50 +0100 | <haskellbridge> | 05<irregularsphere> does monomorphic basically mean "unique type" |
2024-01-22 14:37:15 +0100 | <dminuoso_> | In System F lingo, you would write: /\a. \x^a -> x : ∀a. a -> a |
2024-01-22 14:37:25 +0100 | <dminuoso_> | So there's even a binder there. |
2024-01-22 14:37:36 +0100 | <dminuoso_> | Which demonstrates its a kind of abstraction over a type. |
2024-01-22 14:38:37 +0100 | picnoir | (~picnoir@about/aquilenet/vodoo/NinjaTrappeur) |
2024-01-22 14:39:08 +0100 | <haskellbridge> | 05<irregularsphere> I feel dumbfounded right now |
2024-01-22 14:39:31 +0100 | <dminuoso_> | And this translates directly to GHC Haskell too. |
2024-01-22 14:39:43 +0100 | <dminuoso_> | So if there's a binder over a type, we should be able to apply `id` to a type. Lets do that: |
2024-01-22 14:39:47 +0100 | <dminuoso_> | % :set -XTypeApplications |
2024-01-22 14:39:47 +0100 | <yahb2> | <no output> |
2024-01-22 14:39:49 +0100 | <dminuoso_> | % :t id |
2024-01-22 14:39:49 +0100 | <yahb2> | id :: a -> a |
2024-01-22 14:39:51 +0100 | <dminuoso_> | % :t id @Int |
2024-01-22 14:39:51 +0100 | <yahb2> | id @Int :: Int -> Int |
2024-01-22 14:39:54 +0100 | <dminuoso_> | % :t id @Int 10 |
2024-01-22 14:39:54 +0100 | <yahb2> | id @Int 10 :: Int |
2024-01-22 14:40:19 +0100 | <dminuoso_> | See how we apply id to two arguments here? One is a type argument, the other a value level argument. |
2024-01-22 14:40:34 +0100 | <dminuoso_> | And that's what instantiates `a` of `a -> a` at a particular type. |
2024-01-22 14:40:43 +0100 | <dminuoso_> | GHC inserts these applications automatically and transparently for you everywhere. |
2024-01-22 14:41:24 +0100 | <haskellbridge> | 05<irregularsphere> to be fair I'm never getting the gist (of entire meaning of words) with examples, it's probably better for me if I looked them up. Thanks though! |
2024-01-22 14:42:21 +0100 | <haskellbridge> | 05<irregularsphere> Is Stanford Encyclopedia of Philosophy a good resource? |
2024-01-22 14:42:31 +0100 | <dminuoso_> | What for, exactly? |
2024-01-22 14:43:04 +0100 | <dminuoso_> | Anyway. All I wanted to get across, is that in most senses of the word "equality", `a` is not equal to `b -> c` |
2024-01-22 14:43:23 +0100 | <haskellbridge> | 05<irregularsphere> Various stuff. It appeared when I searched "lambda calculus" or "type theory". |
2024-01-22 14:43:36 +0100 | <dminuoso_> | However, with a bit more careful definitions one could say that they are unifiable, but not in general (because we need to be careful about quantifiers here) |
2024-01-22 14:44:29 +0100 | <dminuoso_> | If you want to learn about type theory, Benjamin C. Pierce's Types and Programming Languages is probably one of the most widely read books. |
2024-01-22 14:44:37 +0100 | <dminuoso_> | It's a good entry into practical type theory |
2024-01-22 14:44:50 +0100 | <exarkun> | One thing I realized at some point is that in the Haskell space, words have meaning and learning the actually meaning is extremely valuable. This, in contrast to a lot of imperative spaces where words are vague and used to mean either a lot of different things or nothing at all and you can hand-wave your way through most of it. |
2024-01-22 14:45:26 +0100 | <exarkun> | So the imperative programming technique of just charging forward without a firm understanding doesn't lead to much success in Haskell. |
2024-01-22 14:45:35 +0100 | <exarkun> | (That's my personal experience, anyway) |
2024-01-22 14:45:43 +0100 | Lycurgus | (~georg@user/Lycurgus) (Quit: leaving) |
2024-01-22 14:45:59 +0100 | azimut_ | (~azimut@gateway/tor-sasl/azimut) |
2024-01-22 14:46:07 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Ping timeout: 240 seconds) |
2024-01-22 14:46:31 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds) |
2024-01-22 14:47:55 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2024-01-22 14:48:02 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2024-01-22 14:48:43 +0100 | azimut_ | (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
2024-01-22 14:49:28 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2024-01-22 14:51:50 +0100 | alexherbo2 | (~alexherbo@2a02-8440-3341-1bdb-4d7f-e84a-cae7-751c.rev.sfr.net) (Remote host closed the connection) |
2024-01-22 14:52:09 +0100 | alexherbo2 | (~alexherbo@2a02-8440-3341-1bdb-4d7f-e84a-cae7-751c.rev.sfr.net) |
2024-01-22 14:55:43 +0100 | xiliuya | (~xiliuya@user/xiliuya) |
2024-01-22 14:57:10 +0100 | xiliuya | (~xiliuya@user/xiliuya) (Client Quit) |
2024-01-22 14:57:31 +0100 | xiliuya | (~xiliuya@user/xiliuya) |
2024-01-22 14:58:38 +0100 | iakov | (~user@2a02:8106:244:b000:57f6:37d4:b4f4:dc14) (Quit: rcirc on GNU Emacs 28.3) |
2024-01-22 15:07:06 +0100 | <haskellbridge> | 15<Jade> this is why I removed the "is the same as" ^^ |
2024-01-22 15:07:07 +0100 | <haskellbridge> | 15<Jade> I didn't find the right phrasing in that moment, but yes, I wanted to say that in the specific case of `$`, the type variable `a` takes the form of `b -> c` |
2024-01-22 15:07:14 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-01-22 15:12:31 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) (Ping timeout: 260 seconds) |
2024-01-22 15:13:38 +0100 | <dminuoso_> | Im pondering how to express this concisely. |
2024-01-22 15:15:47 +0100 | <haskellbridge> | 05<irregularsphere> any `(b -> c) -> (b -> c)` is an `a -> a` |
2024-01-22 15:16:44 +0100 | <dminuoso_> | I am wondering whether it is that rabbit hole leading down to homotopy type theory that somehow describes this relationship `id = ($)` |
2024-01-22 15:16:56 +0100 | <dminuoso_> | Because that's what you're reallying trying to say, here. |
2024-01-22 15:17:37 +0100 | <dminuoso_> | From a Damas Milner type inference perspective, getting from `a` to `b -> c` here is two separate steps. Substitution and generalization. |
2024-01-22 15:17:41 +0100 | <haskellbridge> | 05<irregularsphere> I thought searching terminology would be _fun_, not lead me down to _4 different rabbitholes at once!_ |
2024-01-22 15:17:49 +0100 | <dminuoso_> | But Im not sure whether that gives any sort of relationships between the types themselves. |
2024-01-22 15:17:58 +0100 | <ncf> | you don't need homotopy type theory to be explicit about type arguments |
2024-01-22 15:18:03 +0100 | <dminuoso_> | Other than "they are unifiable" |
2024-01-22 15:18:11 +0100 | <ncf> | ($) {x} {y} = id {x → y} |
2024-01-22 15:19:58 +0100 | <ncf> | or, if you like, ($) = id ∘ (→) |
2024-01-22 15:20:10 +0100 | <dminuoso_> | ncf: Mmm, maybe the real problem here is that this is only implicitly described by `id = ($)` and all attempts above are just a rather verbose way of describingthat. |
2024-01-22 15:20:27 +0100 | <dminuoso_> | Or `($) = id` rather, since we are in Haskell. |
2024-01-22 15:22:24 +0100 | tt1231 | (~tt123@2603-6010-8700-4a81-219f-50d3-618a-a6ee.res6.spectrum.com) (Quit: The Lounge - https://thelounge.chat) |
2024-01-22 15:24:36 +0100 | tt1231 | (~tt123@2603-6010-8700-4a81-219f-50d3-618a-a6ee.res6.spectrum.com) |
2024-01-22 15:27:08 +0100 | <haskellbridge> | 05<irregularsphere> apparently i discovered an interesting thing |
2024-01-22 15:27:27 +0100 | <haskellbridge> | 05<irregularsphere> `main = print (map (-1) [1,2,3] :: [Integer])` is invalid (where - is taken as a negation sign) |
2024-01-22 15:27:33 +0100 | <haskellbridge> | 05<irregularsphere> `main = print (map (+ (-1)) [1,2,3] :: [Integer])` is valid |
2024-01-22 15:28:34 +0100 | dsrt^ | (~cd@c-98-242-74-66.hsd1.ga.comcast.net) (Ping timeout: 276 seconds) |
2024-01-22 15:31:38 +0100 | Square | (~Square@user/square) |
2024-01-22 15:31:45 +0100 | fansly | (~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f) (Remote host closed the connection) |
2024-01-22 15:34:08 +0100 | thegeekinside | (~thegeekin@189.180.85.240) |
2024-01-22 15:37:12 +0100 | fansly | (~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f) |
2024-01-22 15:41:16 +0100 | <tomsmeding> | yeah, that's why `subtract` exists |
2024-01-22 15:41:23 +0100 | <tomsmeding> | map (subtract 1) |
2024-01-22 15:42:18 +0100 | <haskellbridge> | 05<irregularsphere> ah right |
2024-01-22 15:42:54 +0100 | <tomsmeding> | it's a bit of an infelicity in the syntax :p |
2024-01-22 15:47:01 +0100 | michalz_ | (~michalz@185.246.207.218) |
2024-01-22 15:48:02 +0100 | michalz | (~michalz@185.246.207.197) (Ping timeout: 256 seconds) |
2024-01-22 15:48:37 +0100 | igemnace | (~ian@user/igemnace) (Read error: Connection reset by peer) |
2024-01-22 15:49:02 +0100 | <yushyin> | maybe unpopular opinion, but I'm actually ok with -XLexicalNegation |
2024-01-22 15:49:11 +0100 | igemnace | (~ian@user/igemnace) |
2024-01-22 15:52:32 +0100 | Square2 | (~Square4@user/square) |
2024-01-22 15:54:31 +0100 | califax | (~califax@user/califx) (Ping timeout: 240 seconds) |
2024-01-22 15:54:50 +0100 | earthy | (~arthurvl@2a02-a469-f5e2-1-83d2-ca43-57a2-dc81.fixed6.kpn.net) (Ping timeout: 256 seconds) |
2024-01-22 15:55:41 +0100 | califax | (~califax@user/califx) |
2024-01-22 15:55:49 +0100 | Square | (~Square@user/square) (Ping timeout: 268 seconds) |
2024-01-22 15:56:31 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Ping timeout: 240 seconds) |
2024-01-22 15:58:22 +0100 | mmhat | (~mmh@p200300f1c724f915ee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2024-01-22 15:58:44 +0100 | mmhat | (~mmh@p200300f1c724f91bee086bfffe095315.dip0.t-ipconnect.de) |
2024-01-22 15:58:47 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2024-01-22 15:59:28 +0100 | alexherbo2 | (~alexherbo@2a02-8440-3341-1bdb-4d7f-e84a-cae7-751c.rev.sfr.net) (Remote host closed the connection) |
2024-01-22 15:59:39 +0100 | sadie72 | (~sadie@199.96.187.158) |
2024-01-22 16:02:57 +0100 | dsrt^ | (~cd@c-98-242-74-66.hsd1.ga.comcast.net) |
2024-01-22 16:03:16 +0100 | stiell | (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
2024-01-22 16:03:34 +0100 | sadie72 | (~sadie@199.96.187.158) (Client Quit) |
2024-01-22 16:03:52 +0100 | stiell | (~stiell@gateway/tor-sasl/stiell) |
2024-01-22 16:04:23 +0100 | dsrt^ | (~cd@c-98-242-74-66.hsd1.ga.comcast.net) (Remote host closed the connection) |
2024-01-22 16:07:46 +0100 | azimut_ | (~azimut@gateway/tor-sasl/azimut) |
2024-01-22 16:08:31 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds) |
2024-01-22 16:08:49 +0100 | azimut_ | (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
2024-01-22 16:09:19 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2024-01-22 16:10:27 +0100 | xiliuya | (~xiliuya@user/xiliuya) (Quit: bye) |
2024-01-22 16:10:39 +0100 | average | (uid473595@user/average) |
2024-01-22 16:14:37 +0100 | <tomsmeding> | % :set -XLexicalNegation |
2024-01-22 16:14:37 +0100 | <yahb2> | <no output> |
2024-01-22 16:14:43 +0100 | <tomsmeding> | % :t ((-1), (- 1)) |
2024-01-22 16:14:43 +0100 | <yahb2> | ((-1), (- 1)) :: (Num a1, Num a2) => (a1, a2 -> a2) |
2024-01-22 16:15:06 +0100 | tomsmeding | is okay with that too |
2024-01-22 16:17:17 +0100 | euleritian | (~euleritia@77.22.252.56) (Ping timeout: 252 seconds) |
2024-01-22 16:17:43 +0100 | euleritian | (~euleritia@dynamic-176-006-199-114.176.6.pool.telefonica.de) |
2024-01-22 16:18:39 +0100 | noumenon | (~noumenon@113.51-175-156.customer.lyse.net) |
2024-01-22 16:19:41 +0100 | califax | (~califax@user/califx) (Remote host closed the connection) |
2024-01-22 16:20:06 +0100 | califax | (~califax@user/califx) |
2024-01-22 16:24:30 +0100 | iakov2 | (~iakov@2a02:8106:244:b000:57f6:37d4:b4f4:dc14) |
2024-01-22 16:26:09 +0100 | califax | (~califax@user/califx) (Remote host closed the connection) |
2024-01-22 16:26:40 +0100 | califax | (~califax@user/califx) |
2024-01-22 16:31:37 +0100 | elkcl | (~elkcl@broadband-95-84-226-240.ip.moscow.rt.ru) (Ping timeout: 276 seconds) |
2024-01-22 16:34:27 +0100 | <monochrom> | MultiwayIf |
2024-01-22 16:35:06 +0100 | <tomsmeding> | hm? |
2024-01-22 16:35:21 +0100 | <monochrom> | That's another of my favourite unpopular extension! |
2024-01-22 16:36:05 +0100 | <tomsmeding> | is it unpopular? I love it |
2024-01-22 16:36:14 +0100 | xacktm | (xacktm@user/xacktm) (Remote host closed the connection) |
2024-01-22 16:36:22 +0100 | <monochrom> | Not enough to make it into GHC2021. |
2024-01-22 16:36:32 +0100 | <tomsmeding> | I don't use it very often, but I have no qualms about using it when it's convenient |
2024-01-22 16:38:13 +0100 | elkcl | (~elkcl@broadband-95-84-226-240.ip.moscow.rt.ru) |
2024-01-22 16:40:45 +0100 | <dminuoso_> | OrPatterns to me is dead on arrival. |
2024-01-22 16:41:03 +0100 | <tomsmeding> | wasn't that the thing where you couldn't bind variables in the alternatives? |
2024-01-22 16:41:04 +0100 | <dminuoso_> | I dislike it so much because of what Im missing out. |
2024-01-22 16:41:07 +0100 | <dminuoso_> | tomsmeding: Right! |
2024-01-22 16:41:14 +0100 | <tomsmeding> | then it's pointless (ha!) |
2024-01-22 16:41:15 +0100 | <dminuoso_> | The one thing that made the whole thing interesting in the first place. |
2024-01-22 16:42:11 +0100 | <tomsmeding> | although it's easy to extend it to include binding, I guess |
2024-01-22 16:42:37 +0100 | <dminuoso_> | tomsmeding: It was pulled out for some reasons. |
2024-01-22 16:42:53 +0100 | <dminuoso_> | As far as I gathered it, it would have been massively complicated for.. reasons? |
2024-01-22 16:43:19 +0100 | <tomsmeding> | there were probably reasons |
2024-01-22 16:43:29 +0100 | <dminuoso_> | Oh there definitely were. It was part of the original proposal. |
2024-01-22 16:43:38 +0100 | <dminuoso_> | They just werent discussed in detail on the issue tracker |
2024-01-22 16:44:37 +0100 | <dminuoso_> | I think this is one of the examples where Haskell is at the end more of a research base that just doesnt compromise for utility. |
2024-01-22 16:45:07 +0100 | <tomsmeding> | we got a surprising amount of utility for being a research base, then :) |
2024-01-22 16:45:51 +0100 | <dminuoso_> | Oh sure, Im not saying these two things cant be compatible. |
2024-01-22 16:46:28 +0100 | <dminuoso_> | But the interests arent quite aligned with average joe fixing bug reports on some haskell clump. |
2024-01-22 16:47:15 +0100 | fansly | (~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f) (Remote host closed the connection) |
2024-01-22 16:47:20 +0100 | <tomsmeding> | yeah |
2024-01-22 16:51:03 +0100 | <kuribas`> | I really miss guards in idris. |
2024-01-22 16:51:03 +0100 | ystael | (~ystael@user/ystael) |
2024-01-22 16:51:13 +0100 | <kuribas`> | But I suppose it is hard to implement with dependent types. |
2024-01-22 16:51:22 +0100 | <tomsmeding> | why would it be? |
2024-01-22 16:51:33 +0100 | <dminuoso_> | Its just syntax in the end. |
2024-01-22 16:51:35 +0100 | <tomsmeding> | what's difficult about pattern matching on a boolean |
2024-01-22 16:52:17 +0100 | <tomsmeding> | I suspect it's more that "if everything has intrinsic type information, boolean blindness is even worse so pattern matching on booleans is almost never useful" |
2024-01-22 16:52:47 +0100 | <tomsmeding> | perhaps for you that assumption on "everything" is false ;) |
2024-01-22 16:54:28 +0100 | fansly | (~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f) |
2024-01-22 17:01:56 +0100 | <tomsmeding> | I have just one problem with MultiwayIf and that's that I can never remember which of Multi{w,W}ayIf{,s} it is |
2024-01-22 17:05:39 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-01-22 17:09:48 +0100 | <c_wraith> | eh. GHC suggests the right one if you get it wrong |
2024-01-22 17:09:49 +0100 | <tomsmeding> | dminuoso_: I see this text in the proposal: "Correctly specifying the semantics is hard and caused the parent proposal to become dormant after no progress has been made." |
2024-01-22 17:09:58 +0100 | <tomsmeding> | c_wraith: true |
2024-01-22 17:10:11 +0100 | <dminuoso_> | tomsmeding: Yeah, it was rather nebulous. |
2024-01-22 17:10:58 +0100 | <tomsmeding> | I would've said "just disallow OrPatterns with GADT-like constructors or use of ExistentialQuantification" |
2024-01-22 17:11:05 +0100 | <tomsmeding> | can always fix that later |
2024-01-22 17:11:16 +0100 | <tomsmeding> | I get that making that work nicely would've been hard |
2024-01-22 17:12:09 +0100 | <ph88> | does anyone know a haskell equivelant of this function? https://pursuit.purescript.org/packages/purescript-foldable-traversable/6.0.0/docs/Data.Foldable#v… |
2024-01-22 17:12:35 +0100 | <tomsmeding> | :t and |
2024-01-22 17:12:36 +0100 | <dminuoso_> | tomsmeding: But yeah, its a difficult one opposed to Der{iving,ive}Strategies, Der{iving,ive}Via, EmptyDataDecl{s,arations}, ImplicitParam{s,eters}, MonadComprehensions but ParallelListComp, or Non{D,d}ecreasingIndention (things I learn...) |
2024-01-22 17:12:36 +0100 | <lambdabot> | Foldable t => t Bool -> Bool |
2024-01-22 17:12:57 +0100 | <tomsmeding> | dminuoso_: point taken :p |
2024-01-22 17:14:18 +0100 | euleritian | (~euleritia@dynamic-176-006-199-114.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-01-22 17:14:24 +0100 | <tomsmeding> | ph88: did you want anything more than what 'and' already does? |
2024-01-22 17:14:31 +0100 | <dminuoso_> | At least GHC seems to accept alternate British spelling which is great, because Im consistently inconsistent with my z's and s's. |
2024-01-22 17:14:38 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-01-22 17:14:45 +0100 | <dminuoso_> | Generali{s,z}edNewtypeDeriving are both valid. :) |
2024-01-22 17:15:12 +0100 | <tomsmeding> | I'm consistently consistent with s but have grudgingly accepted that elements of syntax and built-in names are conventionally z |
2024-01-22 17:15:31 +0100 | <c_wraith> | I suppose given that it's the *Glasgow* Haskell compiler, we're lucky it accepts z at all |
2024-01-22 17:15:40 +0100 | <tomsmeding> | you will see me write `color: #000; # black colour` in css |
2024-01-22 17:16:01 +0100 | <tomsmeding> | (not in this instance because the comment is superfluous, but you get the point) |
2024-01-22 17:16:36 +0100 | <dminuoso_> | c_wraith: Even more surprising that the American spelling was there first, then. |
2024-01-22 17:16:55 +0100 | <dminuoso_> | But maybe the American spelling was deemed to cause less bikeshedding on the proposal? |
2024-01-22 17:16:57 +0100 | <ph88> | tomsmeding, yes to accept function f (a -> Bool) -> (a -> Bool) |
2024-01-22 17:17:23 +0100 | <tomsmeding> | ph88: then you're essentially asking for the HeytingAlgebra type class |
2024-01-22 17:17:33 +0100 | <ph88> | is it available in haskell ? |
2024-01-22 17:17:35 +0100 | <tomsmeding> | because the folding logic is already there in foldMap |
2024-01-22 17:17:48 +0100 | <tomsmeding> | if you write the type class, then you can use foldMap to use it |
2024-01-22 17:18:01 +0100 | <ph88> | oh ok nothing out of the box, np |
2024-01-22 17:18:14 +0100 | <tomsmeding> | yeah no I haven't seen such a type class before in haskell |
2024-01-22 17:18:29 +0100 | <tomsmeding> | but no reason it couldn't be written |
2024-01-22 17:18:43 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.1.1) |
2024-01-22 17:19:11 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 264 seconds) |
2024-01-22 17:19:17 +0100 | euleritian | (~euleritia@dynamic-176-006-199-114.176.6.pool.telefonica.de) |
2024-01-22 17:21:44 +0100 | <tomsmeding> | :t (and .) . sequence -- ph88 |
2024-01-22 17:21:45 +0100 | <lambdabot> | Traversable t => t (a -> Bool) -> a -> Bool |
2024-01-22 17:22:16 +0100 | <tomsmeding> | sequence the `t (a -> Bool)` to `a -> t Bool`, then `and` it |
2024-01-22 17:22:40 +0100 | <tomsmeding> | if you don't need the generality of the type class, this gets you the functionality of that particular instance concisely |
2024-01-22 17:25:19 +0100 | <ph88> | tomsmeding, interesting solution :))) |
2024-01-22 17:27:06 +0100 | billchenchina | (~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) |
2024-01-22 17:28:30 +0100 | target_i | (~target_i@217.175.14.39) |
2024-01-22 17:28:49 +0100 | euleritian | (~euleritia@dynamic-176-006-199-114.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-01-22 17:29:07 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-01-22 17:30:22 +0100 | <kuribas`> | tomsmeding: it's not just a trivial compile to "if", since guards interact with pattern matching. |
2024-01-22 17:30:25 +0100 | cfricke | (~cfricke@user/cfricke) (Quit: WeeChat 4.1.2) |
2024-01-22 17:31:05 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2024-01-22 17:31:06 +0100 | <kuribas`> | foo (Bar x) | fun(x) = ... ; foo y = ... |
2024-01-22 17:31:34 +0100 | <c_wraith> | that doesn't add too much complexity |
2024-01-22 17:31:38 +0100 | <tomsmeding> | kuribas`: that's true. I guess it becomes harder if you want the evidence that guards are false to influence coverage checking |
2024-01-22 17:31:53 +0100 | <tomsmeding> | but I guess one could just not do that |
2024-01-22 17:31:53 +0100 | <kuribas`> | tomsmeding: and idris is already buggy when it comes to coverage checking. |
2024-01-22 17:31:55 +0100 | <kuribas`> | yeah |
2024-01-22 17:31:56 +0100 | <tomsmeding> | haskell also doesn't really do that |
2024-01-22 17:32:03 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-01-22 17:32:05 +0100 | <c_wraith> | Though IIRC Haskell2010 makes PatternGuards on by default? |
2024-01-22 17:32:45 +0100 | <tomsmeding> | can't you just let coverage checking ignore boolean guards? |
2024-01-22 17:32:50 +0100 | <tomsmeding> | I think that would be sound |
2024-01-22 17:33:28 +0100 | <tomsmeding> | actually, let it ignore all guards, would still be sound |
2024-01-22 17:34:10 +0100 | <tomsmeding> | doing something more intelligent with pattern guards would perhaps be harder, but there it would even be unclear to what extent you want that evidence to be taken into account |
2024-01-22 17:34:14 +0100 | <c_wraith> | sound in what sense? totality checking? |
2024-01-22 17:34:19 +0100 | <tomsmeding> | yes |
2024-01-22 17:34:28 +0100 | <c_wraith> | You can't ignore guards for that |
2024-01-22 17:38:18 +0100 | <c_wraith> | and I retract my earlier statement. In the context of totality checking, that example from kuribas` *does* add a ton of complexity |
2024-01-22 17:38:49 +0100 | <tomsmeding> | only if you want to determine total functions as being total, right? |
2024-01-22 17:39:03 +0100 | <tomsmeding> | not if you just want that if you declare a function to be total, it really is total |
2024-01-22 17:39:10 +0100 | <tomsmeding> | the first I could call completeness, the second soundness |
2024-01-22 17:41:19 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Ping timeout: 240 seconds) |
2024-01-22 17:43:19 +0100 | <tomsmeding> | totality checking is best-effort in any case |
2024-01-22 17:44:02 +0100 | <tomsmeding> | completeness is impossible to achieve, so being a bit more incomplete in the presence of boolean guards sounds okay to me |
2024-01-22 17:44:22 +0100 | <tomsmeding> | though if you also have pattern guards it might be nice to be able to get some evidence from that, which is indeed harder |
2024-01-22 17:44:45 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-01-22 17:47:25 +0100 | <c_wraith> | I would say completeness is getting the correct answer for everything (known impossible) and soundness is not accepting any incorrect program (at the cost of rejecting some correct ones). If you just ignore guards, you've lost soundness. |
2024-01-22 17:47:52 +0100 | <c_wraith> | If you treat all guards as never matching, you retain soundness, but it's not very useful! |
2024-01-22 17:48:59 +0100 | <tomsmeding> | oh right, yes, what I meant (but didn't say) is indeed to treat guards as never-matching |
2024-01-22 17:49:07 +0100 | <tomsmeding> | well, for boolean guards it's almost impossible to do better |
2024-01-22 17:49:14 +0100 | <tomsmeding> | pattern guards I'm not sure about |
2024-01-22 17:49:18 +0100 | Square | (~Square@user/square) |
2024-01-22 17:49:46 +0100 | <tomsmeding> | the information you get from a boolean guard is a single equality (of the boolean expression with true/false depending on in which branch you area) |
2024-01-22 17:49:48 +0100 | <tomsmeding> | *are |
2024-01-22 17:50:25 +0100 | <tomsmeding> | I guess you could use that as another fact you can re-check in all subsequent situations to detect contradictions |
2024-01-22 17:51:05 +0100 | <tomsmeding> | that wouldn't be too hard I feel (though disclaimer, I know nothing about how dependently-typed coverage checkers actually work), and doing anything better would suddenly involve serious analysis of your program |
2024-01-22 17:51:07 +0100 | <tomsmeding> | beyond the types |
2024-01-22 17:52:45 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2024-01-22 17:53:17 +0100 | Square2 | (~Square4@user/square) (Ping timeout: 268 seconds) |
2024-01-22 17:53:34 +0100 | fansly | (~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f) (Remote host closed the connection) |
2024-01-22 17:56:35 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
2024-01-22 17:56:54 +0100 | econo_ | (uid147250@id-147250.tinside.irccloud.com) |
2024-01-22 17:57:11 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2024-01-22 17:57:43 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Ping timeout: 240 seconds) |
2024-01-22 17:58:07 +0100 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
2024-01-22 17:58:08 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) |
2024-01-22 17:59:27 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection) |
2024-01-22 18:00:05 +0100 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 240 seconds) |
2024-01-22 18:00:28 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) |
2024-01-22 18:04:24 +0100 | <kuribas`> | tomsmeding: so you assume the guard never matches, and look if it still is total? Wouldn't that make any function with guards automatically non-total? |
2024-01-22 18:06:35 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 264 seconds) |
2024-01-22 18:06:56 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) |
2024-01-22 18:07:08 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2024-01-22 18:07:19 +0100 | califax | (~califax@user/califx) (Remote host closed the connection) |
2024-01-22 18:08:49 +0100 | califax | (~califax@user/califx) |
2024-01-22 18:08:51 +0100 | <tomsmeding> | kuribas`: do you have an example of a function where my cowardly policy of "assume guards never match" would not be usable? |
2024-01-22 18:10:46 +0100 | iakov2 | (~iakov@2a02:8106:244:b000:57f6:37d4:b4f4:dc14) (Ping timeout: 250 seconds) |
2024-01-22 18:11:12 +0100 | califax | (~califax@user/califx) (Remote host closed the connection) |
2024-01-22 18:11:34 +0100 | califax | (~califax@user/califx) |
2024-01-22 18:11:46 +0100 | <kuribas`> | tomsmeding: you just remove all clauses, no? |
2024-01-22 18:12:02 +0100 | <kuribas`> | foo x | x = 1 | otherwise = 2 |
2024-01-22 18:12:14 +0100 | <kuribas`> | no clauses remain... |
2024-01-22 18:12:22 +0100 | <tomsmeding> | right, I assume that all guards never match unless they simplify to 'true' :p |
2024-01-22 18:12:39 +0100 | <kuribas`> | How do I know if they simplify to true? |
2024-01-22 18:13:23 +0100 | <kuribas`> | That sounds wrong... foo x | x = partial_fun x | otherwise = 2 |
2024-01-22 18:13:25 +0100 | <tomsmeding> | do the WHNF evaluation process that the type checker will need to do anyhow when checking a dependently-typed program? |
2024-01-22 18:13:42 +0100 | <kuribas`> | It's partial, but ignoring guard 1 makes it total... |
2024-01-22 18:13:51 +0100 | <tomsmeding> | how would partial_fun have typechecked |
2024-01-22 18:14:07 +0100 | <tomsmeding> | like, you still need to check the right-hand sides |
2024-01-22 18:14:16 +0100 | <tomsmeding> | you only do this for coverage checking, not for reachability checking |
2024-01-22 18:14:24 +0100 | <kuribas`> | tomsmeding: partial_fun : Bool -> Int |
2024-01-22 18:14:38 +0100 | califax | (~califax@user/califx) (Remote host closed the connection) |
2024-01-22 18:14:41 +0100 | <kuribas`> | hmm |
2024-01-22 18:15:24 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:f06f:8f74:1e14:400c) (Remote host closed the connection) |
2024-01-22 18:15:41 +0100 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
2024-01-22 18:15:51 +0100 | <kuribas`> | right, so this covers, but is not total... |
2024-01-22 18:16:06 +0100 | <kuribas`> | So the ignored clauses still need to be total. |
2024-01-22 18:16:07 +0100 | <tomsmeding> | the 'otherwise' branch makes it total |
2024-01-22 18:16:13 +0100 | califax | (~califax@user/califx) |
2024-01-22 18:17:18 +0100 | <tomsmeding> | yes, I'm imagining the algorithm to be this: 1. desugar `foo x | guard1 = rhs1 | guard2 = rhs2` to `foo x | guard1 = rhs1 ; foo x | guard2 = rhs2` |
2024-01-22 18:17:40 +0100 | <tomsmeding> | 2. when encountering a case with a guard, typecheck it as if the guard weren't there |
2024-01-22 18:17:56 +0100 | <tomsmeding> | 3. then continue with the rest of the cases as if that guard-having case weren't there |
2024-01-22 18:18:07 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Ping timeout: 240 seconds) |
2024-01-22 18:18:20 +0100 | <tomsmeding> | oh 1.5. rewrite `foo x | guard = rhs` to `foo x = rhs` if `guard` evaluates to `true` |
2024-01-22 18:18:46 +0100 | <kuribas`> | tomsmeding: well, type check the guard as 'bool' :) |
2024-01-22 18:18:53 +0100 | <tomsmeding> | and that |
2024-01-22 18:19:40 +0100 | <tomsmeding> | that's not the difficult part of the algorithm ;) |
2024-01-22 18:20:50 +0100 | <kuribas`> | tomsmeding: that's missing an `else` ... |
2024-01-22 18:23:43 +0100 | <tomsmeding> | s/if/whenever/ |
2024-01-22 18:24:03 +0100 | <tomsmeding> | when (guard evaluates to true) $ do the rewrite |
2024-01-22 18:25:13 +0100 | <kuribas`> | gtg |
2024-01-22 18:25:26 +0100 | kuribas` | (~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 27.1)) |
2024-01-22 18:27:22 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-01-22 18:28:43 +0100 | tzh | (~tzh@c-71-193-181-0.hsd1.or.comcast.net) |
2024-01-22 18:31:10 +0100 | <shapr> | @quote |
2024-01-22 18:31:10 +0100 | <lambdabot> | EFF says: Making surveillance part of a holiday tradition is essentially setting up a plush police state in your own home. |
2024-01-22 18:31:42 +0100 | wlhn | (~wenzel@dl5fq-8yqkt42rsn1837y-3.rev.dnainternet.fi) (Quit: Leaving) |
2024-01-22 18:36:24 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2024-01-22 18:36:44 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-01-22 18:41:07 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2024-01-22 18:43:34 +0100 | billchenchina | (~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) (Ping timeout: 276 seconds) |
2024-01-22 18:49:20 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-01-22 18:51:53 +0100 | califax | (~califax@user/califx) (Remote host closed the connection) |
2024-01-22 18:53:23 +0100 | califax | (~califax@user/califx) |
2024-01-22 18:56:11 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 268 seconds) |
2024-01-22 18:56:49 +0100 | euleritian | (~euleritia@dynamic-176-006-199-114.176.6.pool.telefonica.de) |
2024-01-22 18:57:16 +0100 | euleritian | (~euleritia@dynamic-176-006-199-114.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-01-22 18:57:39 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-01-22 19:01:43 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 246 seconds) |
2024-01-22 19:02:45 +0100 | euleritian | (~euleritia@dynamic-046-114-104-075.46.114.pool.telefonica.de) |
2024-01-22 19:03:50 +0100 | euleritian | (~euleritia@dynamic-046-114-104-075.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-01-22 19:04:03 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-01-22 19:06:42 +0100 | earthy | (~arthurvl@2a02-a469-f5e2-1-83d2-ca43-57a2-dc81.fixed6.kpn.net) |
2024-01-22 19:07:17 +0100 | califax | (~califax@user/califx) (Remote host closed the connection) |
2024-01-22 19:08:24 +0100 | califax | (~califax@user/califx) |
2024-01-22 19:12:41 +0100 | fansly | (~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f) |
2024-01-22 19:17:16 +0100 | mc47 | (~mc47@xmonad/TheMC47) |
2024-01-22 19:31:45 +0100 | billchenchina | (~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) |
2024-01-22 19:35:30 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Quit: ChaiTRex) |
2024-01-22 19:37:33 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2024-01-22 19:39:45 +0100 | billchenchina | (~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) (Ping timeout: 256 seconds) |
2024-01-22 19:43:44 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) |
2024-01-22 19:53:59 +0100 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2024-01-22 19:55:01 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds) |
2024-01-22 20:01:45 +0100 | target_i | (~target_i@217.175.14.39) (Quit: leaving) |
2024-01-22 20:10:29 +0100 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
2024-01-22 20:12:27 +0100 | michalz_ | (~michalz@185.246.207.218) (Quit: ZNC 1.8.2 - https://znc.in) |
2024-01-22 20:12:57 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-95.elisa-laajakaista.fi) |
2024-01-22 20:16:35 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds) |
2024-01-22 20:17:31 +0100 | euleritian | (~euleritia@dynamic-046-114-104-075.46.114.pool.telefonica.de) |
2024-01-22 20:18:59 +0100 | APic | (apic@apic.name) (Ping timeout: 256 seconds) |
2024-01-22 20:20:00 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
2024-01-22 20:21:45 +0100 | sadie-sorceress | (~sadie-sor@199.96.191.158) |
2024-01-22 20:28:14 +0100 | dtman34_ | (~dtman34@2601:447:d000:93c9:ad99:f215:9ba0:8a79) (Quit: ZNC 1.8.2+deb3.1 - https://znc.in) |
2024-01-22 20:28:35 +0100 | dtman34 | (~dtman34@2601:447:d000:93c9:26e6:4184:3fb9:5726) |
2024-01-22 20:31:27 +0100 | iakov | (~iakov@2a02:8106:244:b000:57f6:37d4:b4f4:dc14) |
2024-01-22 20:36:05 +0100 | euleritian | (~euleritia@dynamic-046-114-104-075.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-01-22 20:36:21 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-01-22 20:43:18 +0100 | sadie-sorceress | (~sadie-sor@199.96.191.158) (Ping timeout: 250 seconds) |
2024-01-22 20:43:53 +0100 | sadie-sorceress | (~sadie-sor@199.96.187.158) |
2024-01-22 20:45:45 +0100 | <cheater> | when i have a bunch of packages called aaa, bbb, ccc inside a directory called top, and in top i have cabal.project that does "packages: ./aaa \n ./bbb \n ./ccc", and aaa lists bbb as a dependency, should aaa be able to find bbb inside ../bbb relative to where aaa.cabal is located? |
2024-01-22 20:46:41 +0100 | <tomsmeding> | cheater: yes |
2024-01-22 20:47:02 +0100 | <tomsmeding> | assuming that the cabal file inside bbb/ gives package name bbb |
2024-01-22 20:47:10 +0100 | <cheater> | yeah |
2024-01-22 20:47:19 +0100 | <cheater> | how far is cabal.project searched for? |
2024-01-22 20:47:28 +0100 | <cheater> | just the parent directory, or up to fs root? |
2024-01-22 20:47:45 +0100 | <tomsmeding> | more than just parent directory, may well be fs root |
2024-01-22 20:47:57 +0100 | <tomsmeding> | perhaps it stops at ~, not sure |
2024-01-22 20:49:50 +0100 | <haskellbridge> | 15<Jade (@jade_m.org> does anyone know what, if any, tooling uses the output of `-fshow-loaded-modules` in ghci? |
2024-01-22 20:52:50 +0100 | sadie-sorceress | (~sadie-sor@199.96.187.158) (Ping timeout: 250 seconds) |
2024-01-22 20:53:20 +0100 | Feuermagier | Guest1958 |
2024-01-22 20:53:20 +0100 | Feuermagier_ | (~Feuermagi@user/feuermagier) |
2024-01-22 20:53:20 +0100 | Guest1958 | (~Feuermagi@user/feuermagier) (Killed (tungsten.libera.chat (Nickname regained by services))) |
2024-01-22 20:53:20 +0100 | Feuermagier_ | Feuermagier |
2024-01-22 20:53:29 +0100 | <cheater> | thanks tom |
2024-01-22 20:55:29 +0100 | APic | (apic@apic.name) |
2024-01-22 20:55:31 +0100 | tabemann_ | (~tabemann@2600:1700:7990:24e0:8418:7d48:7fca:df7f) (Remote host closed the connection) |
2024-01-22 20:55:45 +0100 | tabemann_ | (~tabemann@2600:1700:7990:24e0:aad7:ae4:6df1:f3e8) |
2024-01-22 21:02:05 +0100 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2024-01-22 21:04:33 +0100 | xacktm | (xacktm@user/xacktm) |
2024-01-22 21:04:37 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-01-22 21:07:35 +0100 | earthy | (~arthurvl@2a02-a469-f5e2-1-83d2-ca43-57a2-dc81.fixed6.kpn.net) (Ping timeout: 256 seconds) |
2024-01-22 21:08:37 +0100 | earthy | (~arthurvl@2a02-a469-f5e2-1-83d2-ca43-57a2-dc81.fixed6.kpn.net) |
2024-01-22 21:17:12 +0100 | coot | (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |
2024-01-22 21:19:30 +0100 | iakov | (~iakov@2a02:8106:244:b000:57f6:37d4:b4f4:dc14) (Quit: Client closed) |
2024-01-22 21:21:20 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-01-22 21:23:25 +0100 | stilgart | (~Christoph@chezlefab.net) |
2024-01-22 21:31:57 +0100 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2024-01-22 21:32:26 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection) |
2024-01-22 21:33:26 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) |
2024-01-22 21:35:45 +0100 | trev | (~trev@user/trev) (Quit: trev) |
2024-01-22 21:37:33 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:f06f:8f74:1e14:400c) |
2024-01-22 21:38:14 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 256 seconds) |
2024-01-22 21:38:15 +0100 | sadie-sorceress | (~sadie-sor@199.96.187.158) |
2024-01-22 21:41:58 +0100 | thegeekinside | (~thegeekin@189.180.85.240) (Ping timeout: 264 seconds) |
2024-01-22 21:42:11 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:f06f:8f74:1e14:400c) (Ping timeout: 260 seconds) |
2024-01-22 21:42:51 +0100 | gooba | (~gooba@90-231-13-185-no3430.tbcn.telia.com) (Remote host closed the connection) |
2024-01-22 21:43:13 +0100 | gooba | (~gooba@90-231-13-185-no3430.tbcn.telia.com) |
2024-01-22 21:44:28 +0100 | jargon | (~jargon@211.sub-174-205-225.myvzw.com) |
2024-01-22 21:51:23 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
2024-01-22 21:51:57 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2024-01-22 21:52:10 +0100 | noumenon | (~noumenon@113.51-175-156.customer.lyse.net) (Quit: Leaving) |
2024-01-22 21:53:48 +0100 | ft | (~ft@p508dbda4.dip0.t-ipconnect.de) |
2024-01-22 21:58:01 +0100 | causal | (~eric@50.35.85.7) |
2024-01-22 22:02:29 +0100 | <dminuoso_> | tomsmeding: Stopping at ~ seems quite arbitrary, especially since not all paths have ~ as an intermediate directory. |
2024-01-22 22:02:45 +0100 | <tomsmeding> | yeah it probably doesn't |
2024-01-22 22:02:58 +0100 | <tomsmeding> | I think git by default stops at ~ |
2024-01-22 22:03:33 +0100 | <tomsmeding> | was just mentioning the possibility in case it helps someone debug weird stuff :) |
2024-01-22 22:04:07 +0100 | sadie-sorceress | (~sadie-sor@199.96.187.158) (Quit: Client closed) |
2024-01-22 22:07:09 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) |
2024-01-22 22:09:07 +0100 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection) |
2024-01-22 22:10:45 +0100 | siw5ohs0 | (~aiw5ohs0@user/aiw5ohs0) |
2024-01-22 22:11:06 +0100 | siw5ohs0 | (~aiw5ohs0@user/aiw5ohs0) (Leaving) |
2024-01-22 22:13:37 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 260 seconds) |
2024-01-22 22:16:18 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
2024-01-22 22:16:37 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2024-01-22 22:24:08 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2024-01-22 22:24:17 +0100 | fansly | (~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f) (Remote host closed the connection) |
2024-01-22 22:24:33 +0100 | fansly | (~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f) |
2024-01-22 22:28:16 +0100 | iakov | (~iakov@2a02:8106:244:b000:bb8c:d849:459b:3c4) |
2024-01-22 22:28:17 +0100 | fansly | (~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f) (Read error: Connection reset by peer) |
2024-01-22 22:31:43 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:f06f:8f74:1e14:400c) |
2024-01-22 22:34:10 +0100 | thegeekinside | (~thegeekin@189.180.85.240) |
2024-01-22 22:37:41 +0100 | elkcl | (~elkcl@broadband-95-84-226-240.ip.moscow.rt.ru) (Ping timeout: 240 seconds) |
2024-01-22 22:43:22 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) |
2024-01-22 22:44:30 +0100 | Square2 | (~Square4@user/square) |
2024-01-22 22:44:52 +0100 | elkcl | (~elkcl@broadband-95-84-226-240.ip.moscow.rt.ru) |
2024-01-22 22:47:19 +0100 | Square | (~Square@user/square) (Ping timeout: 276 seconds) |
2024-01-22 22:47:58 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 264 seconds) |
2024-01-22 22:49:58 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) |
2024-01-22 22:57:18 +0100 | actioninja7 | (~actioninj@user/actioninja) |
2024-01-22 22:58:39 +0100 | actioninja | (~actioninj@user/actioninja) (Ping timeout: 256 seconds) |
2024-01-22 22:58:40 +0100 | actioninja7 | actioninja |
2024-01-22 22:58:57 +0100 | tomboy64 | (~tomboy64@user/tomboy64) (Read error: Connection reset by peer) |
2024-01-22 22:59:20 +0100 | tomboy64 | (~tomboy64@user/tomboy64) |
2024-01-22 23:00:22 +0100 | Square2 | Square |
2024-01-22 23:01:59 +0100 | tomboy64 | (~tomboy64@user/tomboy64) (Client Quit) |
2024-01-22 23:02:17 +0100 | tomboy64 | (~tomboy64@user/tomboy64) |
2024-01-22 23:02:58 +0100 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
2024-01-22 23:19:31 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2024-01-22 23:21:53 +0100 | aljazmc | (~aljazmc@user/aljazmc) (Quit: Leaving) |
2024-01-22 23:28:37 +0100 | CrunchyFlakes | (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) (Ping timeout: 264 seconds) |
2024-01-22 23:42:17 +0100 | <ph88> | what's the easiest way to crash a program from anywhere in the code? I want to make absolutely sure some section of the code is being hit |
2024-01-22 23:42:32 +0100 | <Rembane> | ph88: error "AAA" |
2024-01-22 23:42:41 +0100 | <ph88> | thanks |
2024-01-22 23:42:56 +0100 | <Rembane> | np! |
2024-01-22 23:43:33 +0100 | <haskellbridge> | 15<Jade> depending on strictness and the structure of your code, you might want to `seq` that |
2024-01-22 23:44:19 +0100 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |
2024-01-22 23:45:16 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) |
2024-01-22 23:46:07 +0100 | Guest15 | (~Guest29@86-82-248-239.fixed.kpn.net) |
2024-01-22 23:46:07 +0100 | igemnace | (~ian@user/igemnace) (Read error: Connection reset by peer) |
2024-01-22 23:47:55 +0100 | <tri> | do i use the async package to work with asynchronous and multithreading in haskell? |
2024-01-22 23:48:23 +0100 | <tri> | just like in c#, before people have to work with thread directly, now most things are done via async await |
2024-01-22 23:50:11 +0100 | <geekosaur> | yes |
2024-01-22 23:50:15 +0100 | <geekosaur> | @where parconc |
2024-01-22 23:50:15 +0100 | <lambdabot> | https://www.safaribooksonline.com/library/view/parallel-and-concurrent/9781449335939/ |
2024-01-22 23:50:41 +0100 | <EvanR> | async is great |
2024-01-22 23:50:55 +0100 | <EvanR> | esp when your thread strategies become anything other than trivial |
2024-01-22 23:50:59 +0100 | <ph88> | how can i send debug output to something else than stdout and stderr and then capture it ? |
2024-01-22 23:51:12 +0100 | <tri> | than kyou |
2024-01-22 23:51:17 +0100 | fendor | (~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c) (Remote host closed the connection) |
2024-01-22 23:51:23 +0100 | <ph88> | capture it, i mean save stdout, stderr and other output together to a file |
2024-01-22 23:51:25 +0100 | <EvanR> | pipe stderr to another process or file when running the program xD |
2024-01-22 23:51:36 +0100 | <EvanR> | with the shell |
2024-01-22 23:51:47 +0100 | <ph88> | from the haskell program i want to send output to new pipe not stdout or stderr |
2024-01-22 23:52:05 +0100 | <Rembane> | Open file, write all the stuff, close file? |
2024-01-22 23:52:05 +0100 | <EvanR> | System.Process has the means to do that but it's somewhat more involved than shell |
2024-01-22 23:52:14 +0100 | <EvanR> | or that |
2024-01-22 23:52:53 +0100 | <Guest15> | Can someone help me write a function with the accelerate libary, so I have this function of form ''propagateL :: Elt a => Acc (Vector Bool) -> Acc (Vector a) -> Acc (Vector a)'' with for example input acc vector bool of form (True, False, False, True, False) and input acc vector int of form (2, 3, 4, 5, 6). Then it would generate output (2, |
2024-01-22 23:52:53 +0100 | <Guest15> | 2, 2, 5, 5). I now have this https://paste.tomsmeding.com/84SCGJXN but the shapes are wrong because the indices are not in correct shape, and a reshape function doesnt owrk |
2024-01-22 23:52:59 +0100 | <EvanR> | I've used a logger thread to over-engineer the task of handling logs from various components |
2024-01-22 23:53:21 +0100 | <ph88> | https://hackage.haskell.org/package/base-4.19.0.0/docs/src/GHC.IO.FD.html#stdin can i do it like this and make pipe number 3 ? |
2024-01-22 23:53:36 +0100 | <EvanR> | it just loops waiting on an MVar to become not empty and logs the contents |
2024-01-22 23:54:37 +0100 | <geekosaur> | ph88, fd 3 might already be in use |
2024-01-22 23:55:04 +0100 | <geekosaur> | 0, 1, 2 are passed in by the OS (and on Windows, 3 and 4) |
2024-01-22 23:55:35 +0100 | <ph88> | maybe i should use this? https://hackage.haskell.org/package/base-4.19.0.0/docs/GHC-IO-Handle.html#v:mkFileHandle |
2024-01-22 23:55:37 +0100 | jmdaemon | (~jmdaemon@user/jmdaemon) |
2024-01-22 23:55:40 +0100 | <geekosaur> | files opened by the application will start with the next available fd |
2024-01-22 23:56:10 +0100 | <ph88> | can i send output directly to console over a new pipe? |
2024-01-22 23:56:29 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 240 seconds) |
2024-01-22 23:56:46 +0100 | <geekosaur> | but you also have that any part of the code that writes to stdout or stderr will do exactly that; the only way to intervene is to reopen those on some other resource |
2024-01-22 23:58:22 +0100 | <ph88> | like this https://stackoverflow.com/q/26153251/1833322 |