Logs on 2024-03-05 (liberachat/#haskell)
| 00:00:36 | <geekosaur> | yeh, freeze files are a reasonable thing to check in, build plans not so much |
| 00:01:01 | × | tri quits (~tri@172.59.9.202) (Remote host closed the connection) |
| 00:03:04 | <glguy> | Why blame me? |
| 00:03:47 | <haskellbridge> | <sm> A bit more than build plan documentation then, it is also a cache to save reparsing yaml files and looking up package versions in snapshots. But that's not usually noticeable. |
| 00:04:10 | <glguy> | The documentation said that they made them so that you could commit them in source control and enable users on other machines to get the same build |
| 00:04:30 | <glguy> | with the advantage that you don't have to write them yourself |
| 00:05:22 | <geekosaur> | still sounds more like a freeze file than a lock file |
| 00:06:39 | <glguy> | I think the choice of the word "freeze" or "lock" just varies by the particular build too rather than having semantic importance |
| 00:07:09 | <glguy> | They're never like a cvs lock directory |
| 00:07:28 | → | dsrt^ joins (~cd@c-98-242-74-66.hsd1.ga.comcast.net) |
| 00:07:30 | <haskellbridge> | <sm> in common practice just a stack.yaml and your package.yaml or .cabal file gives the same reproducibility, but the .lock file covers some evil corner cases that could bite you (rarely) |
| 00:08:09 | <haskellbridge> | <sm> yes, freezing in place / locking in place sounds similar to me |
| 00:08:30 | → | peterbecich joins (~Thunderbi@047-229-123-186.res.spectrum.com) |
| 00:09:10 | <geekosaur> | not to me, I kinda expect a lock file to do something like preventing multiple programs from accessing the same resource |
| 00:09:34 | × | rvalue quits (~rvalue@user/rvalue) (Ping timeout: 246 seconds) |
| 00:09:49 | <glguy> | well a lot of build tools have coopted the term, so you'll have to adapt :( |
| 00:09:53 | <haskellbridge> | <sm> sure, that's another more common usage |
| 00:10:41 | <glguy> | but I know what you mean |
| 00:11:06 | <hololeap> | why doesn't the tfdeps function here trigger a non-exhaustive pattern warning? https://0x0.st/H7SF.txt |
| 00:11:36 | <geekosaur> | because `~` is irrefutable? |
| 00:12:41 | <glguy> | hololeap: on recent GHC -Wall includes -Wincomplete-uni-patterns, which covers that |
| 00:12:45 | <geekosaur> | specifically, it makes the pattern always match and only throw later |
| 00:12:59 | <haskellbridge> | <sm> ph88: I'd say if you're NASA, yes check it in, otherwise no real need, and any reduction in dirty files churn when you're trying to do other git stuff is valuable |
| 00:13:32 | <hololeap> | % foo ~(Just x) = x |
| 00:13:33 | <yahb2> | <no output> |
| 00:13:42 | <hololeap> | % map foo [Just 3, Nothing] |
| 00:13:42 | <yahb2> | *** Exception: <interactive>:277:1-17: Non-exhaustive patterns in Just x |
| 00:15:10 | <hololeap> | so it has the same problems, but handles the error lazily? or is this a valid design pattern somehow? |
| 00:15:18 | <glguy> | > let foo ~(Just x) = ('a', x) in fst (foo Nothing) |
| 00:15:19 | <lambdabot> | 'a' |
| 00:15:45 | × | gawen quits (~gawen@user/gawen) (Quit: cya) |
| 00:15:49 | <glguy> | You only write ~ patterns when you *know* you aren't going to use the things bound by the pattern when it wouldn't have matched |
| 00:15:51 | <geekosaur> | it's useful when the pattern might not actually be forced, or to break strict evaluation loops |
| 00:16:13 | × | notzmv quits (~daniel@user/notzmv) (Ping timeout: 255 seconds) |
| 00:16:42 | <glguy> | and you can't write a ~ pattern with multiple cases, so if you're writing one you're saying you know when that constructor is going to match out of band |
| 00:17:08 | → | gawen joins (~gawen@user/gawen) |
| 00:17:39 | → | rvalue joins (~rvalue@user/rvalue) |
| 00:17:54 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Ping timeout: 260 seconds) |
| 00:18:05 | × | srz quits (~srz@181.228.49.93) (Ping timeout: 240 seconds) |
| 00:18:22 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 00:18:41 | → | notzmv joins (~daniel@user/notzmv) |
| 00:18:53 | × | poscat quits (~poscat@user/poscat) (Quit: Bye) |
| 00:20:09 | → | redmp joins (~redmp@lib-02-subnet-194.rdns.cenic.net) |
| 00:20:13 | <geekosaur> | @src unzip |
| 00:20:13 | <lambdabot> | unzip = foldr (\(a,b) ~(as,bs) -> (a:as,b:bs)) ([],[]) |
| 00:21:23 | <redmp> | Hi, I'm attempting to use CApiFFI by calling ghc at the command line, but I'm finding that on the first call to ghc I get a boatload of "implicit declaration" errors but I don't get them on subsequent calls. I think this is because something isn't being copied to the tmpdir wher the capi file is being generated on the first call. |
| 00:21:24 | → | poscat joins (~poscat@user/poscat) |
| 00:22:10 | <redmp> | What is the correct sequence of ghc or gcc commands to compile an .hs using CApiFFI and their corresponding .c files? |
| 00:22:40 | <redmp> | Thanks in advance... |
| 00:23:07 | × | bontaq quits (~user@ool-45779c03.dyn.optonline.net) (Ping timeout: 272 seconds) |
| 00:23:08 | × | Inst quits (~Inst@120.244.192.75) (Ping timeout: 260 seconds) |
| 00:25:55 | <mauke> | I don't think there is such a thing as a corresponding .c file |
| 00:26:26 | <mauke> | redmp: what's your foreign import and what is the error message? |
| 00:28:31 | <jackdk> | mauke: https://www.haskell.org/ghc/blog/20210709-capi-usage.html GHC compiles `CApiFFI` imports by constructing a C file containing a stub, and compiling that. This lets it `foreign import` things with awkward calling conventions or macros. I've never used it so I don't think I can actually help here, though. |
| 00:28:35 | <geekosaur> | with CApiFFI? there is, because it has to go through the C compiler to support e.g. CPP |
| 00:28:52 | <geekosaur> | but the file shouldn't vbe retained between runs |
| 00:29:20 | <glguy> | redmp: Please construct an example file and failing command and put that on a pastebin so we can see what you mean |
| 00:29:29 | <redmp> | mauke: I'm referring to a project directory containing, e.g. a foo.hs and foo.c; I could also put a foo.h in there if it's necessary. |
| 00:29:35 | <redmp> | glguy: ok, I'll make a repro. Sorry. |
| 00:31:24 | <mauke> | by "corresponding .c file" I meant the implementation of the C function |
| 00:31:35 | <mauke> | not the intermediate code generated by ghc |
| 00:32:36 | <mauke> | but the implementation doesn't have to be in C and is irrelevant to "implicit declaration" warnings/errors, because those come from the compiler and missing symbols would show up in the linking phase |
| 00:34:20 | <redmp> | https://termbin.com/gmex |
| 00:35:08 | <mauke> | yeah, your functions have no declarations anywhere |
| 00:35:34 | <glguy> | redmp: when you're using the CApiFFI you need to tell GHC which header the function you're calling is in. https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/ffi.html#the-capi-calling-convention |
| 00:35:39 | <mauke> | which is not an issue with the usual FFI, but with the CAPI stuff ghc generates and compiles a little piece of C code |
| 00:35:49 | <mauke> | so you do need a valid declaration in scope |
| 00:35:50 | <glguy> | That's the header.h part of foreign import capi "header.h f" f :: CInt -> IO CInt |
| 00:36:13 | <redmp> | ah, ok, i thought adding the header in there was optional.. i have different problems when i add the header in there, but let me try it and see |
| 00:36:29 | × | peterbecich quits (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 240 seconds) |
| 00:37:08 | <mauke> | the header is syntactically optional in foreign imports, but omitting it makes no sense with capi |
| 00:37:10 | <geekosaur> | one thing which I'm not sure if it will cause problems or not here, but if you are using `int` in C then you should use `CInt` in Haskell |
| 00:38:21 | <mauke> | (I would have to check the report on whether Int in foreign C declarations automatically maps to CInt with conversions) |
| 00:38:45 | <glguy> | redmp: Also, don't name the files foo.c and foo.hs, make sure the foo is different between those |
| 00:38:53 | <redmp> | geekosaur: Yes, I'm using Foreign.C.Types in my real code. :) |
| 00:39:14 | <redmp> | Ah, ok, I'll make sure the names are distinct too. |
| 00:40:25 | <glguy> | redmp: https://termbin.com/6b23 |
| 00:41:26 | <glguy> | Haskell Int maps to HsInt and will be 32-bit or 64-bit depending on the platform |
| 00:41:36 | <glguy> | CInt will map to whatever int is in C, which is probably 32-bit |
| 00:53:17 | <redmp> | hmm, so, i'm having trouble replicating the thing in my project in the repro, so that's going to take a bit longer |
| 00:53:44 | → | Natch joins (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) |
| 00:53:51 | <redmp> | but i tried what's in your paste, glguy and when i do `ghc Foo.hs impl.c` ghc only builds the o/hi files, no the executable |
| 00:58:17 | <redmp> | here's a paste: https://termbin.com/73o2 |
| 00:58:39 | <redmp> | i changed my files to match glguy's and performed the same command, but only got o/hi files.. after adding `-main-is` everything worked |
| 00:59:17 | <geekosaur> | you called it `Module Foo` |
| 00:59:41 | <geekosaur> | it needs to be `Module Main` for Haskell to treat it as an executable, or use `-main-is` |
| 01:00:07 | <mauke> | well, glguy did |
| 01:00:41 | <redmp> | ah, my mistake |
| 01:00:46 | <geekosaur> | are we looking at the same paste? 6b23 uses `module Main` |
| 01:00:50 | <mauke> | oh, no |
| 01:01:01 | <mauke> | sorry, I got confused |
| 01:01:35 | → | srz joins (~srz@181.228.49.93) |
| 01:02:29 | <geekosaur> | (also I incorrectly capitalized `module` twice, oops) |
| 01:08:24 | <redmp> | clearly this is confusing; thank you both for your help |
| 01:08:51 | <redmp> | the problem about duplicate definitions seems to have been because i was incorrectly including structs in my header; it's been awhile since i've used c, i guess |
| 01:09:15 | <redmp> | s/both/three/g |
| 01:11:10 | × | srz quits (~srz@181.228.49.93) (Quit: Leaving) |
| 01:11:10 | <mauke> | struct definitions themselves are fine |
| 01:11:14 | <mauke> | global variables aren't |
| 01:14:41 | → | tri joins (~tri@ool-18bc2e74.dyn.optonline.net) |
| 01:19:36 | × | tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 260 seconds) |
| 01:22:10 | × | Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
| 01:22:44 | × | ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
| 01:24:16 | × | xff0x quits (~xff0x@2405:6580:b080:900:44af:d746:5b50:d1a) (Ping timeout: 260 seconds) |
| 01:27:05 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 01:28:29 | → | megaTherion joins (~therion@unix.io) |
| 01:33:17 | → | peterbecich joins (~Thunderbi@047-229-123-186.res.spectrum.com) |
| 01:35:30 | <redmp> | mauke: thanks |
| 01:36:03 | <redmp> | here's the repro for that behavior (two pastes; i recommend diffing them): `curl -s https://termbin.com/uxbt > before; curl -s https://termbin.com/wrw7 > after; vimdiff before after` |
| 01:37:01 | <geekosaur> | yeh, you had the struct definition in the .c file instead of the h file |
| 01:37:25 | <geekosaur> | so the .h file couldn't refer to it and the .c file found the implicit definition created from the dangling ref in the .h file |
| 01:39:03 | <redmp> | ahh.. ok.. for some reason i thought structs belonged in the c file; i forgot all my c i guess... sorry for asking what ended up being c questions in #haskell! |
| 01:39:03 | × | jargon quits (~jargon@154.sub-174-205-226.myvzw.com) (Read error: Connection reset by peer) |
| 01:39:47 | <geekosaur> | struct *variables* go in the c file, definitions should usually be in the header |
| 01:41:36 | → | jargon joins (~jargon@154.sub-174-205-226.myvzw.com) |
| 01:45:28 | × | megaTherion quits (~therion@unix.io) (Ping timeout: 246 seconds) |
| 01:46:01 | × | redmp quits (~redmp@lib-02-subnet-194.rdns.cenic.net) (Ping timeout: 264 seconds) |
| 01:46:25 | × | jargon quits (~jargon@154.sub-174-205-226.myvzw.com) (Read error: Connection reset by peer) |
| 01:46:38 | → | bilegeek joins (~bilegeek@2600:1008:b05e:f8ee:8cc2:4fc:3c7e:f54a) |
| 01:48:53 | × | zenstoic quits (uid461840@id-461840.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 01:52:37 | × | ystael quits (~ystael@user/ystael) (Ping timeout: 264 seconds) |
| 01:55:42 | → | megaTherion joins (~therion@unix.io) |
| 01:59:13 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 264 seconds) |
| 02:00:45 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 02:02:15 | → | shapr` joins (~user@c-24-218-186-89.hsd1.ma.comcast.net) |
| 02:03:55 | × | kritzefitz quits (~kritzefit@debian/kritzefitz) (Ping timeout: 256 seconds) |
| 02:04:10 | → | kritzefitz joins (~kritzefit@debian/kritzefitz) |
| 02:04:17 | × | shapr quits (~user@c-24-218-186-89.hsd1.ma.comcast.net) (Ping timeout: 252 seconds) |
| 02:05:13 | × | otto_s quits (~user@p4ff27284.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
| 02:06:54 | → | otto_s joins (~user@p4ff27284.dip0.t-ipconnect.de) |
| 02:12:14 | → | xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
| 02:12:28 | × | rembo10 quits (~rembo10@main.remulis.com) (Quit: ZNC 1.8.2 - https://znc.in) |
| 02:13:14 | → | rembo10 joins (~rembo10@main.remulis.com) |
| 02:14:09 | → | flounders joins (~flounders@24.246.176.178) |
| 02:28:47 | × | machinedgod quits (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 264 seconds) |
| 02:46:04 | × | peterbecich quits (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 255 seconds) |
| 02:49:37 | × | otto_s quits (~user@p4ff27284.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
| 02:58:56 | → | otto_s joins (~user@p5de2fd4c.dip0.t-ipconnect.de) |
| 03:06:45 | × | td_ quits (~td@i53870912.versanet.de) (Ping timeout: 255 seconds) |
| 03:08:24 | → | td_ joins (~td@i5387092D.versanet.de) |
| 03:13:26 | × | emmanuelux quits (~emmanuelu@user/emmanuelux) (Quit: au revoir) |
| 03:15:03 | shapr` | is now known as shapr |
| 03:17:12 | → | travgm joins (~travgm@2600:100e:a121:944a:1dab:9849:35ba:9926) |
| 03:17:18 | × | travgm quits (~travgm@2600:100e:a121:944a:1dab:9849:35ba:9926) (Changing host) |
| 03:17:18 | → | travgm joins (~travgm@fsf/member/travgm) |
| 03:26:47 | × | mulk quits (~mulk@p5b2dc813.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 03:27:58 | → | mulk joins (~mulk@pd9514963.dip0.t-ipconnect.de) |
| 03:31:11 | × | shapr quits (~user@c-24-218-186-89.hsd1.ma.comcast.net) (Quit: sleep) |
| 03:35:52 | → | rosco joins (~rosco@175.136.155.53) |
| 03:37:39 | → | jargon joins (~jargon@154.sub-174-205-226.myvzw.com) |
| 03:47:22 | × | otto_s quits (~user@p5de2fd4c.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
| 03:47:32 | → | otto_s joins (~user@p5de2fd4c.dip0.t-ipconnect.de) |
| 03:47:58 | × | kritzefitz quits (~kritzefit@debian/kritzefitz) (Ping timeout: 264 seconds) |
| 03:49:17 | → | kritzefitz joins (~kritzefit@debian/kritzefitz) |
| 04:01:24 | × | thegeekinside quits (~thegeekin@189.217.83.221) (Read error: Connection reset by peer) |
| 04:05:35 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
| 04:06:25 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 04:08:58 | × | MironZ quits (~MironZ@nat-infra.ehlab.uk) (Quit: Ping timeout (120 seconds)) |
| 04:09:18 | → | MironZ joins (~MironZ@nat-infra.ehlab.uk) |
| 04:10:04 | → | peterbecich joins (~Thunderbi@047-229-123-186.res.spectrum.com) |
| 04:14:50 | → | tri joins (~tri@ool-18bc2e74.dyn.optonline.net) |
| 04:21:54 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds) |
| 04:22:21 | → | euleritian joins (~euleritia@dynamic-176-006-199-043.176.6.pool.telefonica.de) |
| 04:29:00 | → | aforemny_ joins (~aforemny@i59F516FE.versanet.de) |
| 04:29:05 | × | aforemny quits (~aforemny@2001:9e8:6cce:2800:bc66:ad8e:ad93:7074) (Ping timeout: 268 seconds) |
| 04:34:01 | × | mulk quits (~mulk@pd9514963.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
| 04:36:21 | → | mulk joins (~mulk@pd9514963.dip0.t-ipconnect.de) |
| 04:39:50 | → | benkard joins (~mulk@pd9514963.dip0.t-ipconnect.de) |
| 04:41:23 | × | mulk quits (~mulk@pd9514963.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
| 04:41:23 | benkard | is now known as mulk |
| 04:41:53 | → | tri_ joins (~tri@2607:fb90:b193:c180:52f:34db:e1d:860f) |
| 04:43:35 | × | travgm quits (~travgm@fsf/member/travgm) (Ping timeout: 268 seconds) |
| 04:45:12 | → | motherfsck joins (~motherfsc@user/motherfsck) |
| 04:45:17 | × | tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 256 seconds) |
| 04:45:53 | → | thegeekinside joins (~thegeekin@189.217.83.221) |
| 04:56:59 | × | RedNifre quits (~RedNifre@dslb-092-074-165-102.092.074.pools.vodafone-ip.de) (Ping timeout: 252 seconds) |
| 05:02:08 | → | _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
| 05:04:51 | × | euleritian quits (~euleritia@dynamic-176-006-199-043.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 05:05:04 | → | igemnace joins (~ian@user/igemnace) |
| 05:05:10 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 05:09:43 | → | RedNifre joins (~RedNifre@dslb-088-072-205-004.088.072.pools.vodafone-ip.de) |
| 05:20:33 | → | michalz joins (~michalz@185.246.207.221) |
| 05:22:43 | × | michalz quits (~michalz@185.246.207.221) (Client Quit) |
| 05:25:22 | → | michalz joins (~michalz@185.246.207.193) |
| 05:27:52 | × | krei-se quits (~krei-se@p57af21c9.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 05:29:38 | × | bilegeek quits (~bilegeek@2600:1008:b05e:f8ee:8cc2:4fc:3c7e:f54a) (Quit: Leaving) |
| 05:43:42 | → | krei-se joins (~krei-se@p57af28c6.dip0.t-ipconnect.de) |
| 05:48:20 | × | tri_ quits (~tri@2607:fb90:b193:c180:52f:34db:e1d:860f) (Remote host closed the connection) |
| 05:51:27 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds) |
| 05:51:45 | → | redmp joins (~redmp@mobile-166-171-251-254.mycingular.net) |
| 05:52:42 | → | euleritian joins (~euleritia@dynamic-176-006-199-043.176.6.pool.telefonica.de) |
| 05:57:52 | × | euleritian quits (~euleritia@dynamic-176-006-199-043.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 05:58:25 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 05:59:22 | × | justache quits (~justache@user/justache) (Quit: ZNC 1.8.2 - https://znc.in) |
| 06:00:16 | × | rosco quits (~rosco@175.136.155.53) (Quit: Lost terminal) |
| 06:04:02 | → | justache joins (~justache@user/justache) |
| 06:04:11 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
| 06:04:34 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 06:10:49 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 272 seconds) |
| 06:12:37 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 06:12:54 | → | euleritian joins (~euleritia@dynamic-176-006-199-043.176.6.pool.telefonica.de) |
| 06:15:55 | × | justache quits (~justache@user/justache) (Remote host closed the connection) |
| 06:16:16 | → | justache joins (~justache@user/justache) |
| 06:20:47 | → | oneeyedalien joins (~oneeyedal@user/oneeyedalien) |
| 06:22:06 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 06:23:03 | × | oneeyedalien quits (~oneeyedal@user/oneeyedalien) (Client Quit) |
| 06:33:32 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 06:37:27 | × | _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection) |
| 06:43:50 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 260 seconds) |
| 06:49:44 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 06:55:53 | → | travgm joins (~travgm@2600:100e:a121:ea44:71d:e84c:de8a:1a30) |
| 06:58:27 | → | acidjnk_new3 joins (~acidjnk@p200300d6e737e73474a39a603313c7aa.dip0.t-ipconnect.de) |
| 07:01:28 | → | oo_miguel joins (~Thunderbi@78-11-181-16.static.ip.netia.com.pl) |
| 07:03:27 | × | Maxdamantus quits (~Maxdamant@user/maxdamantus) (Ping timeout: 255 seconds) |
| 07:09:02 | → | Maxdamantus joins (~Maxdamant@user/maxdamantus) |
| 07:14:40 | × | Square2 quits (~Square4@user/square) (Ping timeout: 268 seconds) |
| 07:16:04 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 07:19:52 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 07:29:18 | × | titibandit quits (~titibandi@user/titibandit) (Quit: leaving) |
| 07:30:42 | → | titibandit joins (~titibandi@user/titibandit) |
| 07:34:20 | × | peterbecich quits (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds) |
| 07:47:05 | × | notzmv quits (~daniel@user/notzmv) (Ping timeout: 272 seconds) |
| 07:47:28 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
| 07:52:54 | → | notzmv- joins (~daniel@user/notzmv) |
| 07:53:30 | notzmv- | is now known as notzmv |
| 07:54:49 | × | euleritian quits (~euleritia@dynamic-176-006-199-043.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 07:55:06 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 08:02:14 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 08:02:23 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 08:03:49 | → | Silver_X joins (~Silver_X@182.178.208.55) |
| 08:07:18 | → | danza joins (~francesco@151.43.175.12) |
| 08:07:29 | → | dshk joins (~dshk@77.50.49.68) |
| 08:10:49 | × | redmp quits (~redmp@mobile-166-171-251-254.mycingular.net) (Ping timeout: 246 seconds) |
| 08:19:25 | → | CiaoSen joins (~Jura@2a05:5800:2b7:2400:e6b9:7aff:fe80:3d03) |
| 08:24:15 | → | misterfish joins (~misterfis@84.53.85.146) |
| 08:32:38 | × | thegeekinside quits (~thegeekin@189.217.83.221) (Read error: Connection reset by peer) |
| 08:33:24 | → | travgm_ joins (~travgm@2600:100e:a121:ebe6:ed23:e82:949:259f) |
| 08:36:29 | × | travgm quits (~travgm@2600:100e:a121:ea44:71d:e84c:de8a:1a30) (Ping timeout: 272 seconds) |
| 08:36:38 | → | gmg joins (~user@user/gehmehgeh) |
| 08:43:27 | → | drdo5 joins (~drdo@bl5-29-74.dsl.telepac.pt) |
| 08:44:07 | × | drdo quits (~drdo@bl5-29-74.dsl.telepac.pt) (Ping timeout: 260 seconds) |
| 08:44:07 | drdo5 | is now known as drdo |
| 08:46:17 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 08:48:15 | → | ph88 joins (~ph88@2a02:8109:9e26:c800:4df3:360d:e959:c357) |
| 08:48:39 | <ph88> | How can i get ApplicativeDo to work correctly with optparse-applicative? https://bpa.st/GVBA |
| 08:50:30 | <tomsmeding> | ph88: that function is inherently monadic because whether you execute the 'option auto $ long "to"' action depends on the _result_ of an ealier action ('option str $ long "to"') |
| 08:50:37 | <tomsmeding> | *earlier |
| 08:51:30 | <ph88> | i don't want to parse it twice actually, let me try something else then |
| 08:51:50 | <tomsmeding> | for a computation to be Applicative, the tree of all "monadic" actions must be known statically |
| 08:52:03 | <tomsmeding> | because you only have (<*>) :: f (a -> b) -> f a -> f b |
| 08:52:21 | <tomsmeding> | which actions to take cannot depend on values computed inside the "monad" |
| 08:52:21 | → | machinedgod joins (~machinedg@d173-183-246-216.abhsia.telus.net) |
| 08:52:40 | <tomsmeding> | (ApplicativeDo is a little more stringent about how you format your code as well, but this is the fundamental requirement) |
| 08:54:04 | <ph88> | how can i fail the applicative when i use do notation ? |
| 08:54:13 | <tomsmeding> | :t empty |
| 08:54:14 | <lambdabot> | Alternative f => f a |
| 08:54:24 | → | danza_ joins (~francesco@151.57.193.118) |
| 08:56:00 | <ph88> | which actions to take cannot depend on values computed inside the "monad" o_O |
| 08:56:59 | × | danza quits (~francesco@151.43.175.12) (Ping timeout: 264 seconds) |
| 08:57:05 | <tomsmeding> | I cannot describe it better :') |
| 08:57:09 | <ncf> | it's probably a good thing that it's optparse-applicative and not optparse-monadic. you usually want to know statically all the available flags; interactions between them are processed later |
| 08:58:05 | <ph88> | tomsmeding, the description was good, i'm just flabbergasted as to what the implications of that are |
| 08:58:15 | <tomsmeding> | that's Applicative for you :p |
| 08:58:28 | <tomsmeding> | good exercise may be to try breaking that rule using (<*>) (you can't) |
| 08:59:27 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 08:59:50 | <ph88> | I'm confused https://bpa.st/XYPQ |
| 08:59:51 | <ncf> | closest you'll get is a parser of parsers, and then guess what class you need to turn that into a parser |
| 09:00:04 | <tomsmeding> | lol |
| 09:00:37 | <tomsmeding> | ph88: do you want to restrict the argument that you can pass to an option? |
| 09:00:53 | <ph88> | yes either the word "current" or a integer-like string |
| 09:01:00 | <ph88> | otherwise fail |
| 09:03:37 | <tomsmeding> | ph88: the first argument of 'option' is a ReadM, which is a monad |
| 09:03:57 | <tomsmeding> | perhaps `maybeReader _ <$> str` |
| 09:04:04 | <tomsmeding> | or eitherReader |
| 09:04:33 | × | ft quits (~ft@p508db2e6.dip0.t-ipconnect.de) (Quit: leaving) |
| 09:05:30 | → | chele joins (~chele@user/chele) |
| 09:07:55 | <ph88> | tomsmeding, like this should be ok no? https://bpa.st/DHRQ |
| 09:08:30 | <tomsmeding> | I guess, does it work? :p |
| 09:08:34 | → | arahael joins (~arahael@119-18-0-146.771200.syd.nbn.aussiebb.net) |
| 09:10:58 | <tomsmeding> | "for an applicative parser that looks suspiciously monadic" |
| 09:15:42 | × | econo_ quits (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity) |
| 09:18:55 | × | ph88 quits (~ph88@2a02:8109:9e26:c800:4df3:360d:e959:c357) (Ping timeout: 255 seconds) |
| 09:22:13 | → | ph88 joins (~ph88@2a02:8109:9e26:c800:8195:4ef:5c19:e61) |
| 09:26:14 | × | chiselfuse quits (~chiselfus@user/chiselfuse) (Ping timeout: 260 seconds) |
| 09:27:04 | → | chiselfuse joins (~chiselfus@user/chiselfuse) |
| 09:27:17 | × | danza_ quits (~francesco@151.57.193.118) (Ping timeout: 240 seconds) |
| 09:29:19 | × | tzh quits (~tzh@c-73-164-206-160.hsd1.or.comcast.net) (Quit: zzz) |
| 09:31:25 | <ph88> | haha yes that's right :D |
| 09:36:40 | → | jinsun_ joins (~jinsun@user/jinsun) |
| 09:36:40 | jinsun | is now known as Guest6034 |
| 09:36:40 | jinsun_ | is now known as jinsun |
| 09:37:04 | × | Guest6034 quits (~jinsun@user/jinsun) (Ping timeout: 260 seconds) |
| 09:46:25 | → | Aazam joins (~Aazam@2409:40c0:220:65e9:9ab7:a24f:ee60:d820) |
| 09:48:56 | <Aazam> | Hello, I came across haskell through gsoc and am interested in it. Is it possible to get started with it as a beginner in haskell? |
| 09:49:39 | → | danse-nr3 joins (~danse@151.57.193.118) |
| 09:49:50 | → | Guest11 joins (~Guest11@2001:fb1:10a:22db:a0e6:903a:b3c0:c5ee) |
| 09:50:34 | × | Guest11 quits (~Guest11@2001:fb1:10a:22db:a0e6:903a:b3c0:c5ee) (Client Quit) |
| 09:51:50 | <probie> | Get started with GSOC, or get started with Haskell? |
| 09:52:28 | <Aazam> | With GSOC specifically |
| 09:53:56 | <Aazam> | The Continuous Integration Log Explorer idea seems to be the most beginner friendly |
| 09:55:11 | × | danse-nr3 quits (~danse@151.57.193.118) (Ping timeout: 264 seconds) |
| 09:56:57 | × | ski quits (~ski@ext-1-033.eduroam.chalmers.se) (Ping timeout: 256 seconds) |
| 09:57:04 | → | danse-nr3 joins (~danse@151.57.193.118) |
| 09:57:19 | × | danse-nr3 quits (~danse@151.57.193.118) (Remote host closed the connection) |
| 09:57:43 | → | danse-nr3 joins (~danse@151.57.193.118) |
| 10:00:46 | × | gmg quits (~user@user/gehmehgeh) (Ping timeout: 260 seconds) |
| 10:01:36 | → | gmg joins (~user@user/gehmehgeh) |
| 10:03:30 | → | ski joins (~ski@ext-1-033.eduroam.chalmers.se) |
| 10:05:03 | → | ph88^ joins (~ph88@2a02:8109:9e26:c800:4cc1:1b38:872e:9a01) |
| 10:08:20 | × | ph88 quits (~ph88@2a02:8109:9e26:c800:8195:4ef:5c19:e61) (Ping timeout: 256 seconds) |
| 10:14:01 | × | xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 272 seconds) |
| 10:14:54 | → | travgm__ joins (~travgm@2600:100e:a121:ec65:d102:4dd6:658b:db04) |
| 10:17:24 | × | travgm_ quits (~travgm@2600:100e:a121:ebe6:ed23:e82:949:259f) (Ping timeout: 256 seconds) |
| 10:20:48 | × | tnks quits (sid412124@id-412124.helmsley.irccloud.com) (Ping timeout: 256 seconds) |
| 10:21:39 | × | Aazam quits (~Aazam@2409:40c0:220:65e9:9ab7:a24f:ee60:d820) (Quit: Client closed) |
| 10:21:54 | → | tnks joins (sid412124@id-412124.helmsley.irccloud.com) |
| 10:27:30 | → | jinsun_ joins (~jinsun@user/jinsun) |
| 10:27:30 | jinsun | is now known as Guest1732 |
| 10:27:30 | × | Guest1732 quits (~jinsun@user/jinsun) (Killed (platinum.libera.chat (Nickname regained by services))) |
| 10:27:30 | jinsun_ | is now known as jinsun |
| 10:29:01 | → | cfricke joins (~cfricke@user/cfricke) |
| 10:29:17 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 240 seconds) |
| 10:39:54 | → | Aazam joins (~Aazam@152.58.3.71) |
| 10:42:18 | → | __monty__ joins (~toonn@user/toonn) |
| 10:45:25 | × | Aazam quits (~Aazam@152.58.3.71) (Quit: Client closed) |
| 10:51:36 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 10:54:24 | → | img joins (~img@user/img) |
| 10:55:53 | × | img quits (~img@user/img) (Client Quit) |
| 10:56:52 | × | waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 260 seconds) |
| 10:58:20 | → | img joins (~img@user/img) |
| 11:04:43 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
| 11:07:04 | → | xff0x joins (~xff0x@2405:6580:b080:900:c534:620a:b520:a93b) |
| 11:09:36 | → | noumenon joins (~noumenon@113.51-175-156.customer.lyse.net) |
| 11:18:10 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 255 seconds) |
| 11:23:54 | → | [[PSYCHIATRIST joins (~PSYCHIAT@46.197.13.174) |
| 11:24:17 | × | Silver_X quits (~Silver_X@182.178.208.55) (Quit: Leaving) |
| 11:25:17 | → | bontaq joins (~user@ool-45779c03.dyn.optonline.net) |
| 11:27:23 | → | xiliuya joins (~xiliuya@user/xiliuya) |
| 11:27:23 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 11:28:34 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 11:38:43 | × | CiaoSen quits (~Jura@2a05:5800:2b7:2400:e6b9:7aff:fe80:3d03) (Ping timeout: 246 seconds) |
| 11:51:33 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 11:51:48 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 11:54:07 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 246 seconds) |
| 11:56:22 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 11:57:15 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
| 11:58:21 | → | Inst joins (~Inst@120.244.192.75) |
| 12:00:00 | → | TheCoffeMaker_ joins (~TheCoffeM@200.114.213.75) |
| 12:00:32 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Read error: Connection reset by peer) |
| 12:04:50 | → | akegalj joins (~akegalj@141-136-172-38.dsl.iskon.hr) |
| 12:06:08 | × | akegalj quits (~akegalj@141-136-172-38.dsl.iskon.hr) (Client Quit) |
| 12:11:34 | × | phma quits (phma@2001:5b0:215d:ea48:1b4d:6bdb:657b:30e6) (Read error: Connection reset by peer) |
| 12:12:26 | → | phma joins (phma@2001:5b0:211b:d448:4014:b5f0:331f:c237) |
| 12:13:57 | × | Maxdamantus quits (~Maxdamant@user/maxdamantus) (Ping timeout: 255 seconds) |
| 12:17:40 | → | Maxdamantus joins (~Maxdamant@user/maxdamantus) |
| 12:24:16 | × | xiliuya quits (~xiliuya@user/xiliuya) (Quit: bye~) |
| 12:26:59 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 12:27:55 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 12:33:29 | × | danse-nr3 quits (~danse@151.57.193.118) (Ping timeout: 268 seconds) |
| 12:37:07 | → | Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
| 12:40:37 | × | mhatta quits (~mhatta@www21123ui.sakura.ne.jp) (Quit: ZNC 1.8.2+deb4+b2 - https://znc.in) |
| 12:45:23 | × | misterfish quits (~misterfis@84.53.85.146) (Ping timeout: 272 seconds) |
| 12:50:05 | → | __monty_1 joins (~toonn@user/toonn) |
| 12:51:43 | × | __monty__ quits (~toonn@user/toonn) (Ping timeout: 272 seconds) |
| 12:53:05 | × | [[PSYCHIATRIST quits (~PSYCHIAT@46.197.13.174) (Quit: Connection closed) |
| 13:07:43 | → | danse-nr3 joins (~danse@151.57.207.152) |
| 13:10:47 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 13:15:10 | → | kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be) |
| 13:18:21 | → | shapr joins (~user@c-24-218-186-89.hsd1.ma.comcast.net) |
| 13:36:33 | × | ph88^ quits (~ph88@2a02:8109:9e26:c800:4cc1:1b38:872e:9a01) (Remote host closed the connection) |
| 13:36:57 | → | ubert joins (~Thunderbi@2a02:8109:ab8a:5a00:f00e:a21c:b8c6:8c07) |
| 13:40:23 | → | CiaoSen joins (~Jura@2a05:5800:2b7:2400:e6b9:7aff:fe80:3d03) |
| 13:42:50 | → | srz joins (~srz@181.228.49.93) |
| 13:49:19 | → | ph88 joins (~ph88@2a02:8109:9e26:c800:9462:9eb1:5c9f:778b) |
| 13:49:42 | <ph88> | Anyone an idea how can i model the relations between two data types. Sometimes they are isomorphic and can be converted from/to. Other times it's a one way operation and some data will be lost. (context is database migrations between two versions of a model) |
| 13:52:06 | <Hecate> | ph88: https://hackage.haskell.org/package/DataVersion-0.1.0.1/docs/Data-Migration.html |
| 13:52:43 | <Hecate> | and there's also https://hackage.haskell.org/package/versioning-0.3.2.0/docs/Versioning-Base.html |
| 13:55:20 | <ph88> | Hecate, Data.Migration looks nice but i don't see anything there to indicate it can be a one-way operation. And Versioning i don't like because it puts extra stuff in my actual types |
| 14:00:50 | <ph88> | Would like to do something like this https://bpa.st/DPPQ |
| 14:01:06 | <ph88> | like path files -> like patch files |
| 14:02:31 | → | thegeekinside joins (~thegeekin@189.217.83.221) |
| 14:05:05 | × | thegeekinside quits (~thegeekin@189.217.83.221) (Read error: Connection reset by peer) |
| 14:05:28 | → | tri joins (~tri@ool-18bc2e74.dyn.optonline.net) |
| 14:25:57 | → | ystael joins (~ystael@user/ystael) |
| 14:26:30 | <Hecate> | ph88: I see |
| 14:26:48 | <Hecate> | I think simple stuff like a datatype and functions might just be the correct way to go |
| 14:27:07 | <ph88> | alright i will start with some simple functions |
| 14:27:19 | → | thegeekinside joins (~thegeekin@189.217.83.221) |
| 14:32:17 | → | misterfish joins (~misterfis@84.53.85.146) |
| 14:34:47 | × | tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection) |
| 14:36:35 | × | srz quits (~srz@181.228.49.93) (Ping timeout: 264 seconds) |
| 14:37:49 | → | alexherbo2 joins (~alexherbo@2a02-8440-3140-5d56-4059-aaad-724e-08c0.rev.sfr.net) |
| 14:52:12 | → | rscastilho2024 joins (rscastilho@179.221.142.47) |
| 14:52:40 | × | rscastilho2024 quits (rscastilho@179.221.142.47) (Remote host closed the connection) |
| 15:00:09 | × | dshk quits (~dshk@77.50.49.68) (Remote host closed the connection) |
| 15:03:25 | → | srz joins (~srz@181.228.49.93) |
| 15:03:33 | × | jargon quits (~jargon@154.sub-174-205-226.myvzw.com) (Read error: Connection reset by peer) |
| 15:08:31 | × | infinity0 quits (~infinity0@pwned.gg) (Remote host closed the connection) |
| 15:09:00 | __monty_1 | is now known as __monty__ |
| 15:12:36 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds) |
| 15:14:32 | → | euleritian joins (~euleritia@dynamic-176-006-204-213.176.6.pool.telefonica.de) |
| 15:20:32 | × | misterfish quits (~misterfis@84.53.85.146) (Ping timeout: 260 seconds) |
| 15:27:29 | → | zenstoic joins (uid461840@id-461840.hampstead.irccloud.com) |
| 15:37:34 | × | CiaoSen quits (~Jura@2a05:5800:2b7:2400:e6b9:7aff:fe80:3d03) (Ping timeout: 256 seconds) |
| 15:43:19 | → | zetef joins (~quassel@95.77.17.251) |
| 15:45:46 | → | santiagopim joins (~user@90.167.66.131) |
| 15:52:53 | × | ephemient quits (uid407513@id-407513.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 15:53:18 | → | rosco joins (~rosco@175.136.155.53) |
| 16:05:12 | × | alexherbo2 quits (~alexherbo@2a02-8440-3140-5d56-4059-aaad-724e-08c0.rev.sfr.net) (Remote host closed the connection) |
| 16:05:37 | → | alexherbo2 joins (~alexherbo@2a02-8440-3140-5d56-4059-aaad-724e-08c0.rev.sfr.net) |
| 16:12:14 | × | euleritian quits (~euleritia@dynamic-176-006-204-213.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 16:12:28 | × | srz quits (~srz@181.228.49.93) (Ping timeout: 255 seconds) |
| 16:12:37 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 16:13:06 | × | natechan quits (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Quit: WeeChat 2.9) |
| 16:13:17 | × | danse-nr3 quits (~danse@151.57.207.152) (Ping timeout: 240 seconds) |
| 16:15:58 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.1.1) |
| 16:19:13 | → | infinity0 joins (~infinity0@pwned.gg) |
| 16:20:25 | → | danse-nr3 joins (~danse@151.57.207.152) |
| 16:41:48 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 16:42:56 | → | califax joins (~califax@user/califx) |
| 16:43:49 | → | oneeyedalien joins (~oneeyedal@user/oneeyedalien) |
| 16:50:08 | × | EvanR quits (~EvanR@user/evanr) (Ping timeout: 260 seconds) |
| 16:56:18 | × | igemnace quits (~ian@user/igemnace) (Quit: WeeChat 4.2.1) |
| 16:56:28 | → | tri joins (~tri@ool-18bc2e74.dyn.optonline.net) |
| 16:57:11 | × | rvalue quits (~rvalue@user/rvalue) (Quit: ZNC - https://znc.in) |
| 16:57:18 | × | tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection) |
| 16:57:30 | → | rvalue joins (~rvalue@user/rvalue) |
| 16:58:39 | → | tri joins (~tri@ool-18bc2e74.dyn.optonline.net) |
| 17:02:25 | × | danse-nr3 quits (~danse@151.57.207.152) (Ping timeout: 255 seconds) |
| 17:05:11 | × | tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 252 seconds) |
| 17:05:26 | × | notzmv quits (~daniel@user/notzmv) (Ping timeout: 268 seconds) |
| 17:05:43 | → | tzh joins (~tzh@c-73-164-206-160.hsd1.or.comcast.net) |
| 17:05:51 | × | alexherbo2 quits (~alexherbo@2a02-8440-3140-5d56-4059-aaad-724e-08c0.rev.sfr.net) (Remote host closed the connection) |
| 17:12:32 | × | zetef quits (~quassel@95.77.17.251) (Remote host closed the connection) |
| 17:12:52 | × | ubert quits (~Thunderbi@2a02:8109:ab8a:5a00:f00e:a21c:b8c6:8c07) (Quit: ubert) |
| 17:14:05 | × | machinedgod quits (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 240 seconds) |
| 17:17:19 | → | _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
| 17:20:47 | → | Nixkernal_ joins (~Nixkernal@243.212.61.188.dynamic.wline.res.cust.swisscom.ch) |
| 17:21:38 | → | redmp joins (~redmp@mobile-166-171-251-145.mycingular.net) |
| 17:25:26 | × | kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection) |
| 17:26:06 | → | tri joins (~tri@ool-18bc2e74.dyn.optonline.net) |
| 17:27:26 | × | tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection) |
| 17:29:52 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds) |
| 17:29:54 | → | danse-nr3 joins (~danse@151.57.222.28) |
| 17:31:23 | × | danse-nr3 quits (~danse@151.57.222.28) (Remote host closed the connection) |
| 17:31:47 | → | danse-nr3 joins (~danse@151.57.222.28) |
| 17:33:05 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 17:34:20 | × | rvalue quits (~rvalue@user/rvalue) (Ping timeout: 252 seconds) |
| 17:35:03 | × | Buggys quits (Buggys@shelltalk.net) (Remote host closed the connection) |
| 17:36:05 | × | danse-nr3 quits (~danse@151.57.222.28) (Ping timeout: 240 seconds) |
| 17:37:24 | × | euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.) |
| 17:41:56 | → | rvalue joins (~rvalue@user/rvalue) |
| 17:43:14 | → | tri joins (~tri@ool-18bc2e74.dyn.optonline.net) |
| 17:45:38 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 17:46:37 | × | zenstoic quits (uid461840@id-461840.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 17:47:00 | → | euphores joins (~SASL_euph@user/euphores) |
| 17:48:28 | × | tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 256 seconds) |
| 17:50:48 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds) |
| 17:51:00 | → | euleritian joins (~euleritia@dynamic-176-006-204-213.176.6.pool.telefonica.de) |
| 17:56:12 | → | srz joins (~srz@181.228.49.93) |
| 18:03:44 | → | travgm joins (~travgm@238.sub-97-138-17.myvzw.com) |
| 18:04:08 | → | Square joins (~Square@user/square) |
| 18:04:56 | × | travgm__ quits (~travgm@2600:100e:a121:ec65:d102:4dd6:658b:db04) (Ping timeout: 268 seconds) |
| 18:07:53 | → | EvanR joins (~EvanR@user/evanr) |
| 18:09:51 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 18:11:19 | → | peterbecich joins (~Thunderbi@047-229-123-186.res.spectrum.com) |
| 18:12:31 | → | tri joins (~tri@ool-18bc2e74.dyn.optonline.net) |
| 18:16:47 | × | tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection) |
| 18:16:58 | × | rosco quits (~rosco@175.136.155.53) (Quit: Lost terminal) |
| 18:16:59 | → | tri joins (~tri@ool-18bc2e74.dyn.optonline.net) |
| 18:17:27 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 18:18:21 | × | tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection) |
| 18:18:26 | → | underlap joins (~underlap@213.31.186.28) |
| 18:18:32 | × | euleritian quits (~euleritia@dynamic-176-006-204-213.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 18:18:49 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 18:18:51 | × | underlap quits (~underlap@213.31.186.28) (Client Quit) |
| 18:19:59 | × | peterbecich quits (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds) |
| 18:22:22 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 18:23:15 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 18:32:23 | × | mei quits (~mei@user/mei) (Remote host closed the connection) |
| 18:33:59 | → | tri joins (~tri@ool-18bc2e74.dyn.optonline.net) |
| 18:34:04 | → | Vajb joins (~Vajb@n7kymlrhl8zspe1o45k-1.v6.elisa-mobile.fi) |
| 18:34:48 | → | mei joins (~mei@user/mei) |
| 18:39:30 | → | dshk joins (~dshk@77.50.49.68) |
| 18:40:41 | × | tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 272 seconds) |
| 18:44:23 | → | rainbyte joins (~rainbyte@186.22.19.215) |
| 18:46:17 | → | tri joins (~tri@ool-18bc2e74.dyn.optonline.net) |
| 18:47:18 | × | tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection) |
| 18:57:58 | → | Buggys joins (Buggys@Buggy.shelltalk.net) |
| 18:58:12 | → | target_i joins (~target_i@user/target-i/x-6023099) |
| 19:00:33 | → | tri joins (~tri@ool-18bc2e74.dyn.optonline.net) |
| 19:01:54 | × | tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection) |
| 19:10:27 | × | cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 4.1.2) |
| 19:12:15 | × | dcoutts quits (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 260 seconds) |
| 19:15:31 | <zwro> | can anyone point to a good resource for someone wanting to learn Functional Reactive Programming from first principles? |
| 19:15:47 | → | notzmv joins (~daniel@user/notzmv) |
| 19:18:56 | → | tri joins (~tri@ool-18bc2e74.dyn.optonline.net) |
| 19:23:12 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 19:23:14 | × | tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 252 seconds) |
| 19:23:46 | → | Guest73 joins (~Guest34@2a09:bac1:3680:40::2e4:39) |
| 19:23:58 | × | Guest73 quits (~Guest34@2a09:bac1:3680:40::2e4:39) (Client Quit) |
| 19:27:52 | → | califax joins (~califax@user/califx) |
| 19:28:22 | <EvanR> | first principles would arguably be conal's earlier papers on fran, and then conal's blog |
| 19:30:11 | <EvanR> | which would give you a good basis to consider the difficulties and also identify how modern FRP ignores all that |
| 19:30:35 | <EvanR> | and so diluted the brand a lot |
| 19:31:07 | <EvanR> | arrowized FRP got a lot of the theory straightened out, but there aren't many implementations |
| 19:37:42 | → | tri joins (~tri@ool-18bc2e74.dyn.optonline.net) |
| 19:38:17 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 19:39:00 | × | tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection) |
| 19:39:35 | × | TheCoffeMaker_ quits (~TheCoffeM@200.114.213.75) (Ping timeout: 272 seconds) |
| 19:39:36 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 19:40:38 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Excess Flood) |
| 19:41:00 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 19:42:31 | → | tri joins (~tri@ool-18bc2e74.dyn.optonline.net) |
| 19:42:52 | × | tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection) |
| 19:43:04 | → | tri joins (~tri@ool-18bc2e74.dyn.optonline.net) |
| 19:43:44 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Excess Flood) |
| 19:44:22 | × | tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection) |
| 19:45:37 | → | tri joins (~tri@ool-18bc2e74.dyn.optonline.net) |
| 19:46:55 | × | tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection) |
| 19:51:07 | × | mei quits (~mei@user/mei) (Remote host closed the connection) |
| 19:52:36 | → | waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
| 19:52:50 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 19:53:29 | → | f-a joins (ff2a@joined.irc.for-some.fun) |
| 19:53:33 | → | mei joins (~mei@user/mei) |
| 19:53:55 | <f-a> | Is there a sensible way of converting from Word32 to [Word8] (or a tuple of four Word8)? |
| 19:56:35 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
| 19:57:37 | <mauke> | oh, several |
| 19:58:50 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 20:00:14 | <probie> | > let x = 0x12345678 :: Word32 in [fromIntegral (x `shiftR` (8 * n)) .&. 0xff | n <- [0..3]] |
| 20:00:15 | <lambdabot> | [120,86,52,18] |
| 20:00:45 | × | average quits (uid473595@user/average) (Quit: Connection closed for inactivity) |
| 20:02:00 | <mauke> | conv n | n < 10 = "afew" | n < 100 = "some" | n < 1000 = "many" | otherwise = "alot" |
| 20:03:10 | <f-a> | makes sense probie |
| 20:03:33 | <ncf> | https://hackage.haskell.org/package/network-3.1.4.0/docs/Network-Socket.html#v:hostAddressToTuple |
| 20:03:39 | × | son0p quits (~ff@186.121.56.175) (Ping timeout: 268 seconds) |
| 20:04:19 | → | tri joins (~tri@ool-18bc2e74.dyn.optonline.net) |
| 20:05:57 | <probie> | ncf: You've got to be careful with that, because it changes result depending on the endianness of your system |
| 20:06:10 | <EvanR> | divMod or a combination of right shifts and AND by 255 is like popping from a byte stack |
| 20:06:45 | <EvanR> | so a sensible way to express it is (,,,) <$> pop <*> pop <*> pop <*> pop xD |
| 20:06:59 | <EvanR> | where the Word is the state |
| 20:07:19 | <mauke> | https://hackage.haskell.org/package/data-serializer-0.3.5/docs/Data-Serializer.html#v:toBytes I guess? |
| 20:07:46 | × | shapr quits (~user@c-24-218-186-89.hsd1.ma.comcast.net) (Quit: brb) |
| 20:09:00 | × | tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 256 seconds) |
| 20:09:20 | → | tri joins (~tri@ool-18bc2e74.dyn.optonline.net) |
| 20:10:24 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 20:10:36 | → | xnuk joins (~Xnuk@112.72.131.90) |
| 20:10:38 | × | tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection) |
| 20:10:55 | × | xnuk quits (~Xnuk@112.72.131.90) (Client Quit) |
| 20:11:28 | → | xnuk joins (~Xnuk@112.72.131.90) |
| 20:12:14 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Quit: So long and thanks for all the fish) |
| 20:14:55 | → | WonDerDan joins (~WonDerDan@dkxwfwyb5vptjs3sw1yht-3.rev.dnainternet.fi) |
| 20:15:44 | → | tri joins (~tri@ool-18bc2e74.dyn.optonline.net) |
| 20:17:03 | × | tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection) |
| 20:21:57 | × | dshk quits (~dshk@77.50.49.68) (Remote host closed the connection) |
| 20:22:30 | × | gmg quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 20:23:59 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 20:25:54 | → | tri joins (~tri@ool-18bc2e74.dyn.optonline.net) |
| 20:26:50 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 20:27:19 | × | tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection) |
| 20:29:21 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 256 seconds) |
| 20:30:31 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 20:33:58 | × | xnuk quits (~Xnuk@112.72.131.90) (Quit: WeeChat 4.2.1) |
| 20:36:21 | → | ft joins (~ft@p508db2e6.dip0.t-ipconnect.de) |
| 20:36:44 | → | tri joins (~tri@ool-18bc2e74.dyn.optonline.net) |
| 20:38:05 | × | tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection) |
| 20:42:18 | → | tri joins (~tri@ool-18bc2e74.dyn.optonline.net) |
| 20:47:33 | × | WonDerDan quits (~WonDerDan@dkxwfwyb5vptjs3sw1yht-3.rev.dnainternet.fi) (Quit: Client closed) |
| 20:48:58 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 20:51:43 | × | srz quits (~srz@181.228.49.93) (Ping timeout: 246 seconds) |
| 21:00:57 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 21:01:55 | → | lisbeths joins (uid135845@id-135845.lymington.irccloud.com) |
| 21:07:15 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
| 21:08:00 | → | zetef joins (~quassel@95.77.17.251) |
| 21:08:29 | × | _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection) |
| 21:10:48 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 21:10:59 | → | WonDerDann56 joins (~WonDerDan@dkxwfwyb5vptjs3sw1yht-3.rev.dnainternet.fi) |
| 21:11:17 | WonDerDann56 | is now known as WonDerDan |
| 21:15:31 | × | zetef quits (~quassel@95.77.17.251) (Ping timeout: 246 seconds) |
| 21:15:33 | → | zetef_ joins (~quassel@5.2.182.98) |
| 21:20:30 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 21:27:32 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 252 seconds) |
| 21:32:39 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 21:35:17 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Excess Flood) |
| 21:35:39 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 21:35:59 | × | WonDerDan quits (~WonDerDan@dkxwfwyb5vptjs3sw1yht-3.rev.dnainternet.fi) (Quit: Client closed) |
| 21:36:01 | → | dcoutts joins (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) |
| 21:36:45 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 21:40:31 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 21:49:46 | → | pavonia joins (~user@user/siracusa) |
| 21:51:18 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
| 21:51:51 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 21:52:07 | × | todi quits (~todi@p57803331.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 21:54:24 | × | mulk quits (~mulk@pd9514963.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
| 21:58:31 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 22:01:31 | → | mulk joins (~mulk@pd9514963.dip0.t-ipconnect.de) |
| 22:04:39 | → | d34df00d joins (~d34df00d@2600:1702:4f1b:7c10::43) |
| 22:04:45 | <d34df00d> | Hi! |
| 22:05:11 | <d34df00d> | Is there any easy lens spell with the type `Lens' a b1 -> Lens' a b2 -> Lens' a (b1, b2)`? |
| 22:07:11 | <dibblego> | no, since it is not a valid lens as the result, but there is alongside |
| 22:07:29 | <d34df00d> | dibblego: hmm, why isn't it valid? |
| 22:07:40 | <dibblego> | it violates the lens laws |
| 22:08:24 | × | michalz quits (~michalz@185.246.207.193) (Quit: ZNC 1.8.2 - https://znc.in) |
| 22:08:43 | <d34df00d> | If you mean the ones here https://hackage.haskell.org/package/lens-5.2.3/docs/Control-Lens-Lens.html#t:Lens then I'm not sure I can build an example of such a violation. |
| 22:10:58 | <ncf> | d34df00d: see https://hackage.haskell.org/package/lens-5.2.2/docs/Control-Lens-Unsound.html#v:lensProduct |
| 22:11:26 | <dibblego> | I once wrote the code that demonstrates the law breaking, but it was so long ago, and I cannot find it |
| 22:11:39 | <ncf> | the type system can't enforce that your two lenses aren't overlapping |
| 22:11:48 | <ncf> | if they are, you don't get a valid lens |
| 22:12:27 | → | son0p joins (~ff@186.121.59.199) |
| 22:14:30 | × | hueso quits (~root@user/hueso) (Quit: No Ping reply in 180 seconds.) |
| 22:14:41 | → | hueso joins (~root@user/hueso) |
| 22:15:09 | <d34df00d> | ncf: ah, interesting! I was too focused on my use case where they are indeed disjoint so I didn't think about this. |
| 22:15:17 | <d34df00d> | Thanks for the example! |
| 22:18:35 | × | zetef_ quits (~quassel@5.2.182.98) (Read error: Connection reset by peer) |
| 22:20:55 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 22:22:47 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 22:28:05 | → | tan00kee joins (~paul@pauloliver.dev) |
| 22:28:35 | × | tan00kee quits (~paul@pauloliver.dev) (Client Quit) |
| 22:31:46 | → | machinedgod joins (~machinedg@d173-183-246-216.abhsia.telus.net) |
| 22:32:14 | × | target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving) |
| 22:39:51 | → | shapr joins (~user@c-24-218-186-89.hsd1.ma.comcast.net) |
| 22:40:43 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 22:42:42 | × | ph88 quits (~ph88@2a02:8109:9e26:c800:9462:9eb1:5c9f:778b) (Remote host closed the connection) |
| 22:56:04 | → | peterbecich joins (~Thunderbi@047-229-123-186.res.spectrum.com) |
| 22:57:36 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 22:59:43 | × | oo_miguel quits (~Thunderbi@78-11-181-16.static.ip.netia.com.pl) (Ping timeout: 272 seconds) |
| 23:00:07 | → | alexherbo2 joins (~alexherbo@2a02-8440-3441-6a66-5159-b84e-cd08-6cc7.rev.sfr.net) |
| 23:01:54 | × | alexherbo2 quits (~alexherbo@2a02-8440-3441-6a66-5159-b84e-cd08-6cc7.rev.sfr.net) (Remote host closed the connection) |
| 23:03:47 | × | Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Read error: Connection reset by peer) |
| 23:04:45 | → | Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
| 23:07:28 | × | Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
| 23:07:40 | × | peterbecich quits (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds) |
| 23:07:47 | → | Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
| 23:12:06 | → | sroso joins (~sroso@user/SrOso) |
| 23:27:31 | <Axman6> | d34df00d: a simple example is when both arguments are the same lens, if you have (1,2) & both _1 _1 .~ (3,4), what's the result? |
| 23:36:04 | → | peterbecich joins (~Thunderbi@047-229-123-186.res.spectrum.com) |
| 23:45:12 | → | jamkhan joins (~jamkhan@2607:fb91:21e1:d11c:60e6:3c72:98d5:47c2) |
| 23:45:15 | × | bontaq quits (~user@ool-45779c03.dyn.optonline.net) (Ping timeout: 260 seconds) |
| 23:46:36 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 23:48:35 | × | Square quits (~Square@user/square) (Ping timeout: 264 seconds) |
| 23:55:46 | → | Square2 joins (~Square4@user/square) |
| 23:56:20 | → | random-jellyfish joins (~developer@user/random-jellyfish) |
All times are in UTC on 2024-03-05.