Logs on 2023-03-21 (liberachat/#haskell)
| 00:09:51 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:a807:948e:ff4f:3b94) |
| 00:14:19 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:a807:948e:ff4f:3b94) (Ping timeout: 256 seconds) |
| 00:23:13 | × | Umeaboy quits (~Umeaboy@94-255-145-133.cust.bredband2.com) (Quit: Leaving) |
| 00:31:32 | × | gdd quits (~gdd@2001:470:1f13:187:2eb4:3062:b059:4462) (Ping timeout: 265 seconds) |
| 00:31:53 | <dminuoso> | https://gist.github.com/dminuoso/e17a7de0657cb707078176bdb081b806 |
| 00:31:57 | → | gdd joins (~gdd@2001:470:1f13:187:2eb4:3062:b059:4462) |
| 00:32:00 | dminuoso | has a low tolerance for Show |
| 00:33:22 | → | freeside joins (~mengwong@103.252.202.85) |
| 00:33:49 | × | acidjnk_new quits (~acidjnk@p200300d6e715c4967481643c9dce377b.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
| 00:35:29 | <geekosaur> | I'm confused. where does `Control.Concurrent.myThreadId` roundtrip through Show? |
| 00:37:49 | × | freeside quits (~mengwong@103.252.202.85) (Ping timeout: 265 seconds) |
| 00:38:14 | <dminuoso> | geekosaur: Oh, if you ever want to visualize it (say the thread id in a logger), you cant do much with a ThreadId other than show it. |
| 00:38:28 | <dminuoso> | I suppose I can just use myThreadId instead of the manual IO action at least. |
| 00:39:44 | <geekosaur> | oh, right. that's kinda useless |
| 00:40:12 | <geekosaur> | although I guess yours also has the advantage that it doesn't pin the thread since it goes behind the RTS's back |
| 00:40:34 | <dminuoso> | myThreadId doesnt really do anything else |
| 00:40:46 | <geekosaur> | see the comment on ThreadId |
| 00:41:06 | <dminuoso> | ah huh |
| 00:42:21 | <dminuoso> | So I guess I save myself an extra allocation. |
| 00:42:35 | <dminuoso> | Good. So I can finally label my software with high performance. |
| 00:46:38 | <dminuoso> | On that note should probably bind getThreadId to ThreadId# -> IO CULLong instead to sequence it properly |
| 00:46:50 | <dminuoso> | Otherwise lazyness could bite me back |
| 00:46:55 | <dminuoso> | Perhaps? |
| 00:49:02 | → | mauke_ joins (~mauke@user/mauke) |
| 00:51:12 | × | mauke quits (~mauke@user/mauke) (Ping timeout: 264 seconds) |
| 00:51:12 | mauke_ | is now known as mauke |
| 00:52:05 | <c_wraith> | hidden deep in base, there's https://hackage.haskell.org/package/base-4.18.0.0/docs/GHC-Conc-Sync.html#v:threadCapability |
| 00:52:33 | <c_wraith> | Which seems like exactly the primitive you'd want for striping a data structure |
| 00:53:16 | → | mrmr9 joins (~mrmr@user/mrmr) |
| 00:53:49 | <dminuoso> | striping? |
| 00:54:34 | <c_wraith> | Sometimes (depending on the use case) you can split your data structure into multiple independent sections so that concurrent access to different sections doesn't cause contention |
| 00:55:05 | <c_wraith> | It works great for things that work like counters |
| 00:55:50 | <dminuoso> | Given that you dont have guarantees about capabilities, how is the capability number going to help? |
| 00:56:03 | <dminuoso> | That is, you might end up with some capabilities unused |
| 00:56:20 | → | sp00kins joins (~sp00kins@2601:5c9:4200:77b::b6) |
| 00:56:33 | × | inversed quits (~inversed@bcdcac82.skybroadband.com) (Ping timeout: 246 seconds) |
| 00:57:20 | <c_wraith> | well, striping based on capability id is going to prevent active contention unless the capability changes threads inside the critical section |
| 00:58:04 | <c_wraith> | doing something like may let you drastically reduce the contention in an STM system, for instance |
| 00:58:59 | <dminuoso> | Sure, but it would need some careful deliberation. If you do something naive like "let n be the capability number, so a worker always works every nth element" it could leave work undone |
| 00:59:26 | <dminuoso> | But maybe you and I are thinking of different workloads or ways to stripe |
| 00:59:46 | <c_wraith> | well sure. doing that would be incorrect. You'd do something like "this thread is on capability 1, so it uses the TVars in bucket 1" |
| 01:00:50 | <dminuoso> | Ohh I see. |
| 01:00:53 | <c_wraith> | though given that capability count can increase at runtime, you'd probably want a mod or something in there to deal with suddenly seeing capability id 1000 when you only have 8 buckets |
| 01:01:10 | <dminuoso> | So something like capability indexed "workers" (fsvo worker) |
| 01:01:26 | <c_wraith> | well. capability-indexed data. |
| 01:01:43 | <dminuoso> | right |
| 01:02:13 | <c_wraith> | but yeah. for *some* use cases, that can really help. |
| 01:02:36 | × | machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 255 seconds) |
| 01:02:51 | <c_wraith> | there are plenty of use cases where it's bad, of course :) |
| 01:02:53 | <dminuoso> | That's a cool trick to remember definitely. |
| 01:06:55 | × | elevenkb quits (~elevenkb@105.186.233.148) (Quit: Client closed) |
| 01:10:31 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 01:11:13 | → | inversed joins (~inversed@bcdcac82.skybroadband.com) |
| 01:16:38 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 01:20:42 | <Artem[m]> | anyone knows what means .\ at the end of a function name in a .prof file? When I have a function foo in my program, the profiling report would occasionally (for some foos) include foo.\. I use automatic cost center inclusion for all functions if this matters. |
| 01:20:52 | → | bramhaag joins (~bramhaag@134.195.121.39) |
| 01:20:54 | × | bramhaag quits (~bramhaag@134.195.121.39) (Remote host closed the connection) |
| 01:20:58 | <slack1256> | Artem[m]: I want to know too... |
| 01:21:07 | → | bramhaag joins (~bramhaag@134.195.121.39) |
| 01:21:08 | × | bramhaag quits (~bramhaag@134.195.121.39) (Remote host closed the connection) |
| 01:21:20 | → | bramhaag joins (~bramhaag@134.195.121.39) |
| 01:21:20 | × | bramhaag quits (~bramhaag@134.195.121.39) (Remote host closed the connection) |
| 01:21:29 | → | bramhaag joins (~bramhaag@134.195.121.39) |
| 01:21:30 | × | bramhaag quits (~bramhaag@134.195.121.39) (Remote host closed the connection) |
| 01:21:39 | → | bramhaag joins (~bramhaag@134.195.121.39) |
| 01:21:40 | × | bramhaag quits (~bramhaag@134.195.121.39) (Remote host closed the connection) |
| 01:21:50 | → | bramhaag joins (~bramhaag@134.195.121.39) |
| 01:21:50 | × | bramhaag quits (~bramhaag@134.195.121.39) (Remote host closed the connection) |
| 01:22:00 | → | bramhaag joins (~bramhaag@134.195.121.39) |
| 01:22:01 | × | bramhaag quits (~bramhaag@134.195.121.39) (Read error: Connection reset by peer) |
| 01:22:12 | → | bramhaag joins (~bramhaag@134.195.121.39) |
| 01:22:13 | × | bramhaag quits (~bramhaag@134.195.121.39) (Remote host closed the connection) |
| 01:22:26 | → | bramhaag joins (~bramhaag@134.195.121.39) |
| 01:22:26 | × | bramhaag quits (~bramhaag@134.195.121.39) (Remote host closed the connection) |
| 01:22:42 | → | bramhaag joins (~bramhaag@134.195.121.39) |
| 01:22:43 | × | bramhaag quits (~bramhaag@134.195.121.39) (Read error: Connection reset by peer) |
| 01:23:06 | → | bramhaag joins (~bramhaag@134.195.121.39) |
| 01:23:06 | × | bramhaag quits (~bramhaag@134.195.121.39) (Remote host closed the connection) |
| 01:23:41 | → | bramhaag joins (~bramhaag@134.195.121.39) |
| 01:23:42 | × | bramhaag quits (~bramhaag@134.195.121.39) (Remote host closed the connection) |
| 01:24:42 | → | bramhaag joins (~bramhaag@134.195.121.39) |
| 01:24:43 | × | bramhaag quits (~bramhaag@134.195.121.39) (Remote host closed the connection) |
| 01:25:53 | → | bramhaag joins (~bramhaag@134.195.121.39) |
| 01:25:54 | × | bramhaag quits (~bramhaag@134.195.121.39) (Remote host closed the connection) |
| 01:26:03 | → | bramhaag joins (~bramhaag@134.195.121.39) |
| 01:26:04 | × | bramhaag quits (~bramhaag@134.195.121.39) (Remote host closed the connection) |
| 01:26:13 | → | bramhaag joins (~bramhaag@134.195.121.39) |
| 01:26:13 | × | bramhaag quits (~bramhaag@134.195.121.39) (Remote host closed the connection) |
| 01:26:23 | → | bramhaag joins (~bramhaag@134.195.121.39) |
| 01:26:24 | × | bramhaag quits (~bramhaag@134.195.121.39) (Remote host closed the connection) |
| 01:26:34 | → | bramhaag joins (~bramhaag@134.195.121.39) |
| 01:26:35 | × | bramhaag quits (~bramhaag@134.195.121.39) (Remote host closed the connection) |
| 01:26:45 | → | bramhaag joins (~bramhaag@134.195.121.39) |
| 01:26:45 | × | bramhaag quits (~bramhaag@134.195.121.39) (Remote host closed the connection) |
| 01:26:58 | → | bramhaag joins (~bramhaag@134.195.121.39) |
| 01:27:29 | × | mrmr9 quits (~mrmr@user/mrmr) (Read error: Connection reset by peer) |
| 01:29:24 | → | mrmr9 joins (~mrmr@user/mrmr) |
| 01:31:47 | × | mrmr9 quits (~mrmr@user/mrmr) (Read error: Connection reset by peer) |
| 01:32:21 | × | gurkenglas quits (~gurkengla@dynamic-002-247-245-038.2.247.pool.telefonica.de) (Ping timeout: 250 seconds) |
| 01:35:08 | <bramhaag> | I'm trying to parse a programming language with many ambiguities. It is so ambiguous that lexing does not make a lot of sense. I wanted to use parser combinators, but megaparsec does not have a built-in way to generate all parse trees, and ReadP is not flexible enough for my use case. Happy in GLR mode will be my last resort, does anyone have any |
| 01:35:08 | <bramhaag> | other suggestions maybe? |
| 01:36:45 | → | mrmr9 joins (~mrmr@user/mrmr) |
| 01:39:03 | × | mrmr9 quits (~mrmr@user/mrmr) (Read error: Connection reset by peer) |
| 01:44:27 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 255 seconds) |
| 01:48:37 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 01:53:27 | <sm> | bramhaag: even megaparsec's expression parser ? |
| 01:55:02 | → | freeside joins (~mengwong@103.252.202.85) |
| 01:56:58 | <bramhaag> | sm: tbh haven't tried the expression parser. Though I'm not sure if it can deal with custom disambiguation heuristics? |
| 01:57:58 | <sm> | probably not, but it helps parse "combinations of things in any order" so I figured it might be worth a try |
| 01:58:12 | <bramhaag> | An example of what I'm trying to parse: https://paste.tomsmeding.com/2asgHwHG Keywords are not reserved, and marked with * * here. Disambiguation rule is as follows: if ambiguity arises, uppercase words are considered keywords, otherwise identifiers |
| 01:58:14 | <sm> | you could process the result further afterward |
| 02:01:01 | × | sp00kins quits (~sp00kins@2601:5c9:4200:77b::b6) (Quit: sp00kins) |
| 02:01:54 | → | sp00kins joins (~sp00kins@c-73-171-2-129.hsd1.va.comcast.net) |
| 02:02:16 | <bramhaag> | I think it would be easiest to apply said heuristic to a parse forest, as in that case the ambiguous situations are clear. I don't see an immediate way to disambiguate the result of a megaparsec parser |
| 02:03:17 | × | sp00kins quits (~sp00kins@c-73-171-2-129.hsd1.va.comcast.net) (Client Quit) |
| 02:07:39 | × | freeside quits (~mengwong@103.252.202.85) (Ping timeout: 260 seconds) |
| 02:11:34 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:a807:948e:ff4f:3b94) |
| 02:16:07 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:a807:948e:ff4f:3b94) (Ping timeout: 250 seconds) |
| 02:19:20 | × | wroathe quits (~wroathe@user/wroathe) (Quit: leaving) |
| 02:19:21 | × | sagax quits (~sagax_nb@user/sagax) (Remote host closed the connection) |
| 02:20:59 | × | phma quits (~phma@2001:5b0:211c:53d8:9ceb:db03:6719:e454) (Ping timeout: 248 seconds) |
| 02:30:25 | × | hrberg quits (~quassel@171.79-160-161.customer.lyse.net) (Ping timeout: 250 seconds) |
| 02:32:22 | → | hrberg joins (~quassel@171.79-160-161.customer.lyse.net) |
| 02:34:41 | → | freeside joins (~mengwong@103.252.202.85) |
| 02:39:21 | × | freeside quits (~mengwong@103.252.202.85) (Ping timeout: 255 seconds) |
| 02:42:12 | → | eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
| 02:43:29 | → | cassiopea joins (~cassiopea@user/cassiopea) |
| 02:46:55 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
| 02:53:25 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 02:54:28 | × | jero98772 quits (~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) (Remote host closed the connection) |
| 02:56:26 | × | gmg quits (~user@user/gehmehgeh) (Ping timeout: 255 seconds) |
| 03:00:33 | → | freeside joins (~mengwong@103.252.202.85) |
| 03:02:06 | → | razetime joins (~Thunderbi@43.254.111.18) |
| 03:07:56 | × | freeside quits (~mengwong@103.252.202.85) (Ping timeout: 268 seconds) |
| 03:10:49 | → | Katarushisu1 joins (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) |
| 03:12:39 | × | Katarushisu quits (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) (Ping timeout: 255 seconds) |
| 03:12:39 | Katarushisu1 | is now known as Katarushisu |
| 03:15:23 | × | td_ quits (~td@i5387092A.versanet.de) (Ping timeout: 265 seconds) |
| 03:17:04 | → | td_ joins (~td@i5387090D.versanet.de) |
| 03:25:27 | × | waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 250 seconds) |
| 03:30:37 | → | freeside joins (~mengwong@103.252.202.85) |
| 03:31:41 | → | motherfsck joins (~motherfsc@user/motherfsck) |
| 03:38:55 | × | freeside quits (~mengwong@103.252.202.85) (Ping timeout: 276 seconds) |
| 03:39:19 | × | gdr3941 quits (~user@2601:483:4800:5740:bd6c:6a59:14bf:bde4) (Ping timeout: 250 seconds) |
| 03:44:36 | × | razetime quits (~Thunderbi@43.254.111.18) (Ping timeout: 255 seconds) |
| 03:47:16 | → | razetime joins (~Thunderbi@43.254.111.18) |
| 03:47:17 | × | motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 265 seconds) |
| 03:48:01 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
| 03:48:01 | → | finn_elija joins (~finn_elij@user/finn-elija/x-0085643) |
| 03:48:01 | finn_elija | is now known as FinnElija |
| 03:48:25 | → | gdr3941 joins (~user@2601:483:4800:5740:bd6c:6a59:14bf:bde4) |
| 03:49:38 | → | freeside joins (~mengwong@103.252.202.85) |
| 03:54:03 | × | freeside quits (~mengwong@103.252.202.85) (Ping timeout: 255 seconds) |
| 03:55:02 | × | gdr3941 quits (~user@2601:483:4800:5740:bd6c:6a59:14bf:bde4) (Ping timeout: 246 seconds) |
| 03:58:41 | → | motherfsck joins (~motherfsc@user/motherfsck) |
| 04:01:54 | → | mbuf joins (~Shakthi@49.207.178.186) |
| 04:03:02 | → | gdr3941 joins (~user@2601:483:4800:5740:bd6c:6a59:14bf:bde4) |
| 04:07:35 | × | gdr3941 quits (~user@2601:483:4800:5740:bd6c:6a59:14bf:bde4) (Ping timeout: 260 seconds) |
| 04:14:16 | → | freeside joins (~mengwong@103.252.202.85) |
| 04:20:23 | → | gdr3941 joins (~user@2601:483:4800:5740:bd6c:6a59:14bf:bde4) |
| 04:20:31 | × | freeside quits (~mengwong@103.252.202.85) (Ping timeout: 276 seconds) |
| 04:21:34 | × | msavoritias quits (cb716af6b3@irc.cheogram.com) (Ping timeout: 252 seconds) |
| 04:23:03 | → | trev joins (~trev@user/trev) |
| 04:24:24 | → | vglfr joins (~vglfr@88.155.43.4) |
| 04:25:25 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 04:27:43 | × | gdr3941 quits (~user@2601:483:4800:5740:bd6c:6a59:14bf:bde4) (Remote host closed the connection) |
| 04:27:56 | → | gdr3941 joins (~user@2601:483:4800:5740:bd6c:6a59:14bf:bde4) |
| 04:31:28 | → | mikoto-chan joins (~mikoto-ch@dy54z4y1t9qnwdj1ryyby-4.rev.dnainternet.fi) |
| 04:32:47 | × | gdr3941 quits (~user@2601:483:4800:5740:bd6c:6a59:14bf:bde4) (Ping timeout: 246 seconds) |
| 04:37:55 | → | harveypwca joins (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) |
| 04:38:15 | × | Square quits (~Square4@user/square) (Ping timeout: 250 seconds) |
| 04:39:36 | → | freeside joins (~mengwong@103.252.202.85) |
| 04:39:50 | × | bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 246 seconds) |
| 04:40:04 | × | johnw quits (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) (Quit: ZNC - http://znc.in) |
| 04:43:53 | × | freeside quits (~mengwong@103.252.202.85) (Ping timeout: 250 seconds) |
| 04:44:52 | → | gdr3941 joins (~user@2601:483:4800:5740:bd6c:6a59:14bf:bde4) |
| 04:51:38 | × | gdr3941 quits (~user@2601:483:4800:5740:bd6c:6a59:14bf:bde4) (Ping timeout: 252 seconds) |
| 04:53:07 | → | freeside joins (~mengwong@103.252.202.85) |
| 04:55:17 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 04:57:30 | × | freeside quits (~mengwong@103.252.202.85) (Ping timeout: 252 seconds) |
| 05:01:31 | × | foul_owl quits (~kerry@157.97.134.62) (Quit: WeeChat 2.3) |
| 05:03:48 | → | gdr3941 joins (~user@c-73-58-202-143.hsd1.tn.comcast.net) |
| 05:08:08 | × | echoreply quits (~echoreply@45.32.163.16) (Quit: WeeChat 2.8) |
| 05:09:13 | × | gdr3941 quits (~user@c-73-58-202-143.hsd1.tn.comcast.net) (Remote host closed the connection) |
| 05:09:26 | → | gdr3941 joins (~user@c-73-58-202-143.hsd1.tn.comcast.net) |
| 05:15:34 | → | echoreply joins (~echoreply@2001:19f0:9002:1f3b:5400:ff:fe6f:8b8d) |
| 05:16:42 | × | gdr3941 quits (~user@c-73-58-202-143.hsd1.tn.comcast.net) (Ping timeout: 265 seconds) |
| 05:19:15 | → | gdr3941 joins (~user@c-73-58-202-143.hsd1.tn.comcast.net) |
| 05:24:13 | × | gdr3941 quits (~user@c-73-58-202-143.hsd1.tn.comcast.net) (Ping timeout: 268 seconds) |
| 05:24:52 | × | shriekingnoise quits (~shrieking@186.137.175.87) (Quit: Quit) |
| 05:25:13 | → | shriekingnoise joins (~shrieking@186.137.175.87) |
| 05:25:37 | × | razetime quits (~Thunderbi@43.254.111.18) (Quit: See You Space Cowboy) |
| 05:25:51 | → | razetime joins (~Thunderbi@43.254.111.18) |
| 05:28:03 | → | gdr3941 joins (~user@c-73-58-202-143.hsd1.tn.comcast.net) |
| 05:31:55 | × | mikoto-chan quits (~mikoto-ch@dy54z4y1t9qnwdj1ryyby-4.rev.dnainternet.fi) (Ping timeout: 248 seconds) |
| 05:32:25 | × | gdr3941 quits (~user@c-73-58-202-143.hsd1.tn.comcast.net) (Ping timeout: 250 seconds) |
| 05:34:24 | × | slack1256 quits (~slack1256@181.42.50.18) (Ping timeout: 255 seconds) |
| 05:37:08 | → | freeside joins (~mengwong@103.252.202.85) |
| 05:41:51 | → | gdr3941 joins (~user@c-73-58-202-143.hsd1.tn.comcast.net) |
| 05:42:35 | × | freeside quits (~mengwong@103.252.202.85) (Ping timeout: 248 seconds) |
| 05:50:43 | × | motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 260 seconds) |
| 06:00:29 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 06:01:48 | → | foul_owl joins (~kerry@71.212.143.88) |
| 06:04:31 | × | shriekingnoise quits (~shrieking@186.137.175.87) (Ping timeout: 276 seconds) |
| 06:06:42 | × | harveypwca quits (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving) |
| 06:07:21 | → | msavoritias joins (cb716af6b3@irc.cheogram.com) |
| 06:08:41 | → | johnw joins (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) |
| 06:09:00 | → | freeside joins (~mengwong@103.252.202.85) |
| 06:12:06 | × | jmorris quits (uid537181@id-537181.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
| 06:14:42 | × | freeside quits (~mengwong@103.252.202.85) (Ping timeout: 265 seconds) |
| 06:14:55 | × | razetime quits (~Thunderbi@43.254.111.18) (Ping timeout: 276 seconds) |
| 06:19:14 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 06:24:48 | × | trev quits (~trev@user/trev) (Ping timeout: 255 seconds) |
| 06:39:33 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 06:43:06 | → | freeside joins (~mengwong@103.252.202.85) |
| 06:46:36 | × | gdr3941 quits (~user@c-73-58-202-143.hsd1.tn.comcast.net) (Ping timeout: 265 seconds) |
| 06:48:00 | → | pyook joins (~pyook@user/puke) |
| 06:48:39 | × | freeside quits (~mengwong@103.252.202.85) (Ping timeout: 255 seconds) |
| 06:49:52 | → | jmorris joins (uid537181@id-537181.uxbridge.irccloud.com) |
| 06:53:32 | → | trev joins (~trev@user/trev) |
| 06:58:21 | → | gdr3941 joins (~user@c-73-58-202-143.hsd1.tn.comcast.net) |
| 07:00:20 | × | byorgey quits (~byorgey@155.138.238.211) (Quit: Lost terminal) |
| 07:06:04 | → | freeside joins (~mengwong@103.252.202.85) |
| 07:06:12 | × | gdr3941 quits (~user@c-73-58-202-143.hsd1.tn.comcast.net) (Ping timeout: 252 seconds) |
| 07:06:24 | → | Guest9660 joins (~Md@2a02:6b66:d2b1:0:2917:6e02:d698:a5d8) |
| 07:10:46 | × | freeside quits (~mengwong@103.252.202.85) (Ping timeout: 265 seconds) |
| 07:11:14 | → | gdr3941 joins (~user@c-73-58-202-143.hsd1.tn.comcast.net) |
| 07:11:51 | → | freeside joins (~mengwong@103.252.202.85) |
| 07:15:55 | × | gdr3941 quits (~user@c-73-58-202-143.hsd1.tn.comcast.net) (Ping timeout: 248 seconds) |
| 07:17:17 | → | razetime joins (~Thunderbi@117.193.0.81) |
| 07:19:12 | × | razetime quits (~Thunderbi@117.193.0.81) (Client Quit) |
| 07:19:28 | × | freeside quits (~mengwong@103.252.202.85) (Ping timeout: 265 seconds) |
| 07:20:15 | → | kenran joins (~user@user/kenran) |
| 07:22:13 | → | gdr3941 joins (~user@c-73-58-202-143.hsd1.tn.comcast.net) |
| 07:23:54 | → | titibandit_ joins (~titibandi@xdsl-87-78-162-189.nc.de) |
| 07:24:47 | × | titibandit_ quits (~titibandi@xdsl-87-78-162-189.nc.de) (Remote host closed the connection) |
| 07:29:07 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 07:32:17 | × | gehmehgeh quits (~user@user/gehmehgeh) (Ping timeout: 255 seconds) |
| 07:32:31 | × | vglfr quits (~vglfr@88.155.43.4) (Ping timeout: 265 seconds) |
| 07:32:38 | → | freeside joins (~mengwong@122.11.248.245) |
| 07:33:54 | → | vicfred joins (~vicfred@user/vicfred) |
| 07:36:43 | × | vicfred quits (~vicfred@user/vicfred) (Client Quit) |
| 07:37:15 | → | vicfred joins (~vicfred@user/vicfred) |
| 07:44:20 | → | sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
| 07:44:36 | → | smallville7123 joins (~Android@cpe-172-193-72-46.qld.foxtel.net.au) |
| 07:46:02 | → | coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
| 07:49:46 | → | machinedgod joins (~machinedg@node-1w7jr9yirp0ap2d6xfacos1ph.ipv6.telus.net) |
| 07:54:11 | → | zeenk joins (~zeenk@2a02:2f04:a307:2300::7fe) |
| 07:56:38 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:6861:4c48:824b:2934) |
| 07:57:10 | × | euandreh quits (~Thunderbi@189.6.18.7) (Ping timeout: 265 seconds) |
| 08:00:15 | → | gurkenglas joins (~gurkengla@dynamic-002-247-245-038.2.247.pool.telefonica.de) |
| 08:02:20 | → | CiaoSen joins (~Jura@p200300c9571fe6002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 08:05:05 | → | vpan joins (~0@212.117.1.172) |
| 08:05:11 | <dminuoso> | bramhaag: Why does lexing not make a lot of sense? |
| 08:05:40 | <dminuoso> | I think most issues from "lexing is difficult" arise from thinking about lexing in the wrong direcftion. |
| 08:06:01 | <dminuoso> | That is, lexers dont push tokens into a parser, a parser demands tokens as needed - and you can do that with non-determinism just fine. |
| 08:06:08 | <tomsmeding> | bramhaag: https://hackage.haskell.org/package/Earley also seems to give you all parse trees |
| 08:06:12 | <dminuoso> | (It might have severe performance implications, but that's another story) |
| 08:08:30 | → | mastarija joins (~mastarija@188.252.199.22) |
| 08:08:58 | <mauke> | oh, like perl-style context-dependent lexing? |
| 08:11:27 | × | werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 250 seconds) |
| 08:11:54 | → | werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
| 08:12:56 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 08:19:19 | × | hugo quits (znc@verdigris.lysator.liu.se) (Ping timeout: 246 seconds) |
| 08:20:10 | <tomsmeding> | Artem[m]: isn't that a lambda within foo? |
| 08:23:34 | × | vicfred quits (~vicfred@user/vicfred) (Quit: leaving) |
| 08:23:40 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
| 08:24:59 | × | Guest9660 quits (~Md@2a02:6b66:d2b1:0:2917:6e02:d698:a5d8) (Quit: Leaving) |
| 08:28:10 | × | gdr3941 quits (~user@c-73-58-202-143.hsd1.tn.comcast.net) (Ping timeout: 276 seconds) |
| 08:28:21 | × | werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 250 seconds) |
| 08:28:35 | × | smallville7123 quits (~Android@cpe-172-193-72-46.qld.foxtel.net.au) (Ping timeout: 265 seconds) |
| 08:30:25 | → | werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
| 08:30:59 | → | acidjnk_new joins (~acidjnk@p200300d6e715c49690267839e4058790.dip0.t-ipconnect.de) |
| 08:32:36 | × | foul_owl quits (~kerry@71.212.143.88) (Ping timeout: 255 seconds) |
| 08:33:48 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 08:34:24 | → | hugo joins (znc@verdigris.lysator.liu.se) |
| 08:39:03 | → | chomwitt joins (~chomwitt@2a02:587:7a19:3600:1ac0:4dff:fedb:a3f1) |
| 08:39:33 | → | gdr3941 joins (~user@c-73-58-202-143.hsd1.tn.comcast.net) |
| 08:43:10 | × | ft quits (~ft@p3e9bc443.dip0.t-ipconnect.de) (Quit: leaving) |
| 08:46:56 | × | gdr3941 quits (~user@c-73-58-202-143.hsd1.tn.comcast.net) (Ping timeout: 246 seconds) |
| 08:47:27 | <mon_aaraj> | I've been wanting to learn (well, i actually want to "grok") can extensions for a while. I do know that when employed in haskell, they allow us to make abstractions more efficient (i've heard about how it can make stuff faster), what else do kan extensions allow? and what resources would you recommend for me to learn or grok kan extensions, at least for a programming context? |
| 08:48:16 | → | foul_owl joins (~kerry@157.97.134.63) |
| 08:48:33 | → | chele joins (~chele@user/chele) |
| 08:50:26 | <dminuoso> | mauke: many parsers do it that way. |
| 08:50:56 | <dminuoso> | Fairly sure even GHC does it |
| 08:51:26 | <dminuoso> | The happy documentation has some extensive examples in this direction |
| 08:51:49 | <dminuoso> | In fact, if you think about how production rules are made, you cant really do it any other way |
| 08:58:20 | → | gdr3941 joins (~user@c-73-58-202-143.hsd1.tn.comcast.net) |
| 09:00:08 | × | JonathanWatson[m quits (~jjwmatrix@2001:470:69fc:105::2:a544) (Quit: You have been kicked for being idle) |
| 09:00:42 | → | gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
| 09:03:10 | × | gdr3941 quits (~user@c-73-58-202-143.hsd1.tn.comcast.net) (Ping timeout: 252 seconds) |
| 09:03:49 | → | razetime joins (~Thunderbi@117.193.0.81) |
| 09:06:02 | → | michalz joins (~michalz@185.246.207.215) |
| 09:06:33 | → | gdr3941 joins (~user@c-73-58-202-143.hsd1.tn.comcast.net) |
| 09:06:46 | <tomsmeding> | bramhaag: to be honest, that sounds like a pretty bad programming language to work in, if its syntax is dependent on whether whole expressions end up ambiguous or not :p |
| 09:11:15 | × | gdr3941 quits (~user@c-73-58-202-143.hsd1.tn.comcast.net) (Ping timeout: 250 seconds) |
| 09:13:40 | → | gdr3941 joins (~user@c-73-58-202-143.hsd1.tn.comcast.net) |
| 09:20:09 | → | elkcl_ joins (~elkcl@broadband-37-110-27-252.ip.moscow.rt.ru) |
| 09:22:07 | × | elkcl quits (~elkcl@broadband-37-110-27-252.ip.moscow.rt.ru) (Ping timeout: 276 seconds) |
| 09:22:07 | elkcl_ | is now known as elkcl |
| 09:28:19 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 09:29:39 | × | jmorris quits (uid537181@id-537181.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
| 09:31:11 | × | eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 09:31:33 | × | Putonlalla quits (~Putonlall@it-cyan.it.jyu.fi) (Ping timeout: 255 seconds) |
| 09:32:00 | → | euandreh joins (~Thunderbi@189.6.18.7) |
| 09:33:28 | × | gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8) |
| 09:35:29 | → | Umeaboy joins (~Umeaboy@94-255-145-133.cust.bredband2.com) |
| 09:38:29 | → | vglfr joins (~vglfr@88.155.27.80) |
| 09:44:31 | × | pyook quits (~pyook@user/puke) () |
| 09:47:52 | → | kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be) |
| 09:50:36 | <dminuoso> | Is there an elegant way to express `let [a,b,c,d] = take 4 xs` without triggering incomppete-uni-patterns? |
| 09:50:48 | <dminuoso> | Something that will locally suppress this error? |
| 09:51:17 | <dminuoso> | maybe a kind of `let [a,b,c,d] | magicGhcThing = take 4 xs` ? |
| 09:52:09 | <dminuoso> | Gah I clearly recall this exists. |
| 09:52:23 | <merijn> | ~ ? :p |
| 09:53:10 | <dminuoso> | merijn: not enough on 9.2.6 |
| 09:53:22 | <dminuoso> | pattern coverage checker has become good |
| 09:54:11 | <dminuoso> | Ohh no, I was thinking about considerAccessible |
| 09:54:21 | <dminuoso> | Ah, but perhaps I can use this. |
| 09:56:02 | <dminuoso> | Perhaps pattern synonym + COMPLETE is the only solution here |
| 09:57:25 | × | elkcl quits (~elkcl@broadband-37-110-27-252.ip.moscow.rt.ru) (Remote host closed the connection) |
| 09:58:31 | <tomsmeding> | dminuoso: is that 4 a static or runtime value |
| 09:58:53 | <tomsmeding> | let a :> b :> c :> d :> HNil = take @4 xs |
| 09:59:28 | → | elkcl joins (~elkcl@broadband-37-110-27-252.ip.moscow.rt.ru) |
| 10:00:18 | → | Putonlalla joins (~Putonlall@it-cyan.it.jyu.fi) |
| 10:01:28 | <dminuoso> | tomsmeding: its static and in reality its 16. |
| 10:01:46 | <dminuoso> | IP addresses as usual :) |
| 10:01:56 | <tomsmeding> | ah :) |
| 10:02:12 | <tomsmeding> | but yeah, the "right" solution is to use a length-indexed vector |
| 10:02:20 | <tomsmeding> | where right /= most convenient |
| 10:03:12 | <tomsmeding> | if you feel really adventurous you can replace "take @4 xs" by "unsafeCoerce (take 4 xs)" above |
| 10:03:31 | <tomsmeding> | if you've checked that the HList implementation is representationally equivalent to usual lists >:D |
| 10:04:51 | <tomsmeding> | dminuoso: also what if xs is too short |
| 10:05:40 | <Umeaboy> | What am I doing wrong here? I was planning to use an already built rpm from petersen to build ghc for Mageia: https://copr.fedorainfracloud.org/coprs/umeaman/ghc/build/5685686/ |
| 10:06:01 | <Umeaboy> | I know the package exists because I can download it manually. |
| 10:06:44 | <Umeaboy> | I see that it's missing an xml file, but if one uses the instructions to add external repos it should find it. |
| 10:07:04 | <dminuoso> | tomsmeding: its never going to happen |
| 10:07:07 | <Umeaboy> | I'd like some help if anyone is willing to help. |
| 10:07:15 | → | gemmaro joins (~user@240f:74:d1f0:1:ba1:e787:c9e:b1dc) |
| 10:07:42 | <dminuoso> | tomsmeding: this is the full original line: |
| 10:07:46 | <dminuoso> | let [w1, w2, w3, w4, w5, w6, w7, w8, w9, w10, w11, w12, w13, w14, w15, w16] = take 16 (ws ++ repeat 0) |
| 10:07:58 | <dminuoso> | I kind of wish pattern coverage would *see* that cant possibly be partial. |
| 10:08:04 | <tomsmeding> | dminuoso: that `++ repeat 0` |
| 10:08:24 | <dminuoso> | tomsmeding: Dont ask. |
| 10:08:43 | <tomsmeding> | let w1 :> ... :> w16 :> HNil = takeStream @16 (paddedStream 0 ws) |
| 10:08:44 | → | tcard joins (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) |
| 10:08:52 | <tomsmeding> | data Stream a = More a (Stream a) |
| 10:09:22 | <dminuoso> | I think I may as well just use a pattern synonym then |
| 10:09:28 | <tomsmeding> | paddedStream p (x:xs) = x `More` paddedStream p xs ; paddedStream p [] = fix (p `More`) |
| 10:09:29 | <dminuoso> | rather than sprinkle hlists over this |
| 10:09:39 | <tomsmeding> | :p yeah |
| 10:10:14 | <dminuoso> | Alternatively maybe a GHC plugin! |
| 10:10:25 | <tomsmeding> | O.o |
| 10:10:26 | <dminuoso> | Id love to explain that to my colleagues. |
| 10:10:36 | <dminuoso> | "But there was this benign warning.. |
| 10:10:50 | <[Leary]> | It's not like you need HList. You can just use the stream constructor itself in your pattern match, right? |
| 10:11:31 | <tomsmeding> | fair point |
| 10:12:02 | <[Leary]> | Write a `padToStream :: a -> [a] -> Stream a`, then do `let w1:.w2:. (...) = padToStream ws in (...)`. |
| 10:12:22 | <[Leary]> | (where data Stream a = a :. Stream a) |
| 10:13:17 | × | mbuf quits (~Shakthi@49.207.178.186) (Quit: Leaving) |
| 10:14:55 | × | hugo quits (znc@verdigris.lysator.liu.se) (Ping timeout: 265 seconds) |
| 10:17:49 | × | gdr3941 quits (~user@c-73-58-202-143.hsd1.tn.comcast.net) (Ping timeout: 265 seconds) |
| 10:19:29 | → | ubert1 joins (~Thunderbi@2a02:8109:abc0:6434:de79:4694:671d:d823) |
| 10:21:35 | → | hugo joins (znc@verdigris.lysator.liu.se) |
| 10:28:49 | → | gdr3941 joins (~user@c-73-58-202-143.hsd1.tn.comcast.net) |
| 10:31:40 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:a807:948e:ff4f:3b94) |
| 10:31:50 | × | hugo quits (znc@verdigris.lysator.liu.se) (Ping timeout: 265 seconds) |
| 10:32:43 | × | son0p quits (~ff@181.136.122.143) (Ping timeout: 250 seconds) |
| 10:33:00 | → | phma joins (~phma@2001:5b0:211c:53d8:fa79:3596:87fb:9a7b) |
| 10:35:55 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:a807:948e:ff4f:3b94) (Ping timeout: 248 seconds) |
| 10:38:28 | → | hugo joins (znc@verdigris.lysator.liu.se) |
| 10:40:38 | → | yoneda joins (~mike@193.206.102.122) |
| 10:44:31 | → | jerg joins (~jerg@2001:a61:2611:1701:e737:6af:a06e:d388) |
| 10:49:15 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 10:49:53 | → | __monty__ joins (~toonn@user/toonn) |
| 10:57:12 | × | chomwitt quits (~chomwitt@2a02:587:7a19:3600:1ac0:4dff:fedb:a3f1) (Ping timeout: 264 seconds) |
| 10:58:22 | → | freeside_ joins (~mengwong@202.161.55.11) |
| 11:00:55 | × | freeside quits (~mengwong@122.11.248.245) (Ping timeout: 276 seconds) |
| 11:11:37 | → | kenaryn joins (~aurele@cre71-h03-89-88-44-27.dsl.sta.abo.bbox.fr) |
| 11:12:00 | → | MasseR46 joins (thelounge@2001:bc8:47a0:1521::1) |
| 11:14:56 | × | vglfr quits (~vglfr@88.155.27.80) (Ping timeout: 246 seconds) |
| 11:19:43 | <Artem[m]> | <tomsmeding> "Artem: isn't that a lambda..." <- Oh, that makes sense, thank you. Judging by the line numbers reported, it's a branch of a case, but it'd make sense that it's turned into a lambda I guess |
| 11:20:02 | × | jespada quits (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Ping timeout: 268 seconds) |
| 11:21:17 | → | nschoe joins (~q@141.101.51.197) |
| 11:22:03 | × | kenaryn quits (~aurele@cre71-h03-89-88-44-27.dsl.sta.abo.bbox.fr) (Quit: leaving) |
| 11:27:35 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 11:31:30 | → | jespada joins (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) |
| 11:36:12 | × | gdr3941 quits (~user@c-73-58-202-143.hsd1.tn.comcast.net) (Ping timeout: 255 seconds) |
| 11:38:53 | → | gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
| 11:40:23 | <dminuoso> | Is there a reason why one might call `unmask bracket acq rel foo` rather than `bracket acq rel (unmask foo)`? |
| 11:40:41 | <dminuoso> | err, `unmask (bracket acq rel foo)` vs `bracket acq rel (unmask foo)` |
| 11:42:16 | <Artem[m]> | Actually, there's a lambda there |
| 11:43:18 | <dminuoso> | Oh, sure. Im just rewriting a snippet I was staring it. |
| 11:43:23 | <dminuoso> | Think bracket_ then. |
| 11:43:42 | → | szkl joins (uid110435@id-110435.uxbridge.irccloud.com) |
| 11:47:07 | × | kee quits (~~kee@user/wizzwizz4) (Ping timeout: 252 seconds) |
| 11:47:29 | × | euandreh quits (~Thunderbi@189.6.18.7) (Ping timeout: 246 seconds) |
| 11:47:47 | → | notzmv joins (~zmv@user/notzmv) |
| 11:48:54 | → | gdr3941 joins (~user@c-73-58-202-143.hsd1.tn.comcast.net) |
| 11:51:55 | → | kee joins (~~kee@user/wizzwizz4) |
| 11:53:35 | × | CiaoSen quits (~Jura@p200300c9571fe6002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 248 seconds) |
| 12:06:11 | × | xff0x quits (~xff0x@ai098135.d.east.v6connect.net) (Ping timeout: 264 seconds) |
| 12:06:17 | → | euandreh joins (~Thunderbi@189.6.18.7) |
| 12:07:57 | → | xff0x joins (~xff0x@178.255.149.135) |
| 12:10:42 | × | dsrt^ quits (~dsrt@c-24-30-76-89.hsd1.ga.comcast.net) (Remote host closed the connection) |
| 12:22:33 | × | xff0x quits (~xff0x@178.255.149.135) (Ping timeout: 255 seconds) |
| 12:23:13 | × | jespada quits (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Ping timeout: 250 seconds) |
| 12:23:48 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer) |
| 12:24:16 | → | xff0x joins (~xff0x@ai098135.d.east.v6connect.net) |
| 12:27:18 | × | razetime quits (~Thunderbi@117.193.0.81) (Quit: See You Space Cowboy) |
| 12:34:36 | × | jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 265 seconds) |
| 12:34:38 | <Artem[m]> | dminuoso: I'm sorry for not being clear but I was replying to something else (my own message above) |
| 12:34:51 | → | jespada joins (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) |
| 12:36:34 | × | gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8) |
| 12:41:11 | → | son0p joins (~ff@181.136.122.143) |
| 12:43:18 | × | sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
| 12:44:25 | → | sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
| 12:44:45 | × | gdr3941 quits (~user@c-73-58-202-143.hsd1.tn.comcast.net) (Ping timeout: 265 seconds) |
| 12:46:13 | × | gurkenglas quits (~gurkengla@dynamic-002-247-245-038.2.247.pool.telefonica.de) (Ping timeout: 276 seconds) |
| 12:47:30 | → | gurkenglas joins (~gurkengla@dynamic-002-247-245-038.2.247.pool.telefonica.de) |
| 12:57:32 | → | gdr3941 joins (~user@c-73-58-202-143.hsd1.tn.comcast.net) |
| 13:01:08 | → | Guest19 joins (~Guest19@145.107.112.113) |
| 13:04:13 | × | gdr3941 quits (~user@c-73-58-202-143.hsd1.tn.comcast.net) (Ping timeout: 246 seconds) |
| 13:09:42 | → | gdr3941 joins (~user@c-73-58-202-143.hsd1.tn.comcast.net) |
| 13:13:45 | × | gdr3941 quits (~user@c-73-58-202-143.hsd1.tn.comcast.net) (Remote host closed the connection) |
| 13:13:59 | → | gdr3941 joins (~user@c-73-58-202-143.hsd1.tn.comcast.net) |
| 13:14:20 | <dminuoso> | Artem[m]: Ah, well incidentally it was right in my context too. :-P |
| 13:14:36 | <dminuoso> | Given that bracket takes a function as its third argument bracket :: IO a -> (a -> IO b) -> (a -> IO c) -> IO c |
| 13:18:34 | × | gurkenglas quits (~gurkengla@dynamic-002-247-245-038.2.247.pool.telefonica.de) (Ping timeout: 246 seconds) |
| 13:19:45 | → | CiaoSen joins (~Jura@p200300c9571fe6002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 13:20:40 | × | gdr3941 quits (~user@c-73-58-202-143.hsd1.tn.comcast.net) (Ping timeout: 276 seconds) |
| 13:23:56 | → | gdr3941 joins (~user@c-73-58-202-143.hsd1.tn.comcast.net) |
| 13:31:22 | → | gurkenglas joins (~gurkengla@dynamic-002-247-245-038.2.247.pool.telefonica.de) |
| 13:39:35 | → | vglfr joins (~vglfr@88.155.34.83) |
| 13:47:12 | × | L29Ah quits (~L29Ah@wikipedia/L29Ah) (Read error: Connection reset by peer) |
| 13:51:11 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 13:51:43 | → | stackdroid18 joins (14094@de1.hashbang.sh) |
| 13:52:33 | × | kaskal quits (~kaskal@089144220250.atnat0029.highway.webapn.at) (Ping timeout: 255 seconds) |
| 13:57:15 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 265 seconds) |
| 14:00:43 | × | gurkenglas quits (~gurkengla@dynamic-002-247-245-038.2.247.pool.telefonica.de) (Ping timeout: 248 seconds) |
| 14:00:48 | × | jerg quits (~jerg@2001:a61:2611:1701:e737:6af:a06e:d388) (Quit: Leaving) |
| 14:02:22 | → | gurkenglas joins (~gurkengla@dynamic-002-247-245-038.2.247.pool.telefonica.de) |
| 14:04:13 | → | motherfsck joins (~motherfsc@user/motherfsck) |
| 14:05:21 | → | jero98772 joins (~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) |
| 14:05:22 | × | irrgit__ quits (~irrgit@86.106.90.226) (Read error: Connection reset by peer) |
| 14:05:42 | → | ratapaca joins (~ratapaca@98.40.240.33) |
| 14:06:22 | × | ratapaca quits (~ratapaca@98.40.240.33) (Client Quit) |
| 14:06:35 | → | jushur joins (~human@user/jushur) |
| 14:11:47 | × | jero98772 quits (~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) (Read error: Connection reset by peer) |
| 14:18:51 | → | mmhat joins (~mmh@p200300f1c715f7a1ee086bfffe095315.dip0.t-ipconnect.de) |
| 14:18:53 | × | mmhat quits (~mmh@p200300f1c715f7a1ee086bfffe095315.dip0.t-ipconnect.de) (Client Quit) |
| 14:20:39 | × | kimjetwav quits (~user@2607:fea8:235e:b600:9f24:e4a7:bfdd:ae72) (Ping timeout: 250 seconds) |
| 14:21:19 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Ping timeout: 248 seconds) |
| 14:21:44 | → | thegeekinside joins (~thegeekin@189.141.115.134) |
| 14:27:53 | × | gdr3941 quits (~user@c-73-58-202-143.hsd1.tn.comcast.net) (Remote host closed the connection) |
| 14:28:07 | → | gdr3941 joins (~user@c-73-58-202-143.hsd1.tn.comcast.net) |
| 14:31:03 | × | CiaoSen quits (~Jura@p200300c9571fe6002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 14:33:01 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 265 seconds) |
| 14:33:30 | × | vglfr quits (~vglfr@88.155.34.83) (Ping timeout: 255 seconds) |
| 14:33:51 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 14:34:46 | → | shriekingnoise joins (~shrieking@186.137.175.87) |
| 14:35:54 | × | perrierjouet quits (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 3.8) |
| 14:36:01 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 14:39:28 | × | mei quits (~mei@user/mei) (Remote host closed the connection) |
| 14:41:55 | → | mei joins (~mei@user/mei) |
| 14:42:30 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 14:42:57 | → | Square joins (~Square4@user/square) |
| 14:47:35 | → | vglfr joins (~vglfr@88.155.34.83) |
| 14:49:00 | → | chomwitt joins (~chomwitt@ppp-94-67-191-224.home.otenet.gr) |
| 14:50:53 | → | perrierjouet joins (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) |
| 14:56:19 | × | jushur quits (~human@user/jushur) (Quit: ¯\_(ツ)_/¯) |
| 14:59:09 | → | Guest72 joins (~Guest72@ext-1-398.eduroam.chalmers.se) |
| 14:59:39 | <Guest72> | Hi! Does anyone know if forkIO reuses threadIDs? |
| 15:00:03 | <Guest72> | Create a thread, kill it with killThread, create a new thread. What is the convention when creating the threadID of the new thread? Their lifetimes never overlapped |
| 15:00:31 | <TheMatten[m]> | Is there equivalent of https://gitlab.haskell.org/ghc/ghc-wasm-meta for JS backend? |
| 15:00:56 | × | lagash quits (lagash@lagash.shelltalk.net) (Quit: ZNC - https://znc.in) |
| 15:02:29 | → | lagash joins (lagash@lagash.shelltalk.net) |
| 15:03:35 | <geekosaur> | Guest72, it could, but if you are holding an old ThreadId then it won't (and in fact won't gc the old thread) |
| 15:04:49 | <Guest72> | Hm I am not retaining them, so that should be fine |
| 15:05:16 | <Guest72> | There does not seem to be a way to query the RTS of how many threads are alive |
| 15:08:23 | × | gemmaro quits (~user@240f:74:d1f0:1:ba1:e787:c9e:b1dc) (Ping timeout: 260 seconds) |
| 15:10:30 | <merijn> | Guest72: Threads aren't GCed until there are no more references to the ThreadId, so a threadid can never refer to a "different thread", as the original will only disappear when there's no mor references |
| 15:10:50 | <merijn> | ah, I'm too slow |
| 15:11:23 | <Guest72> | I've read the documentation, I understand that. I was merely wondering if there are any assumptions to be made of how threadIDs are generated |
| 15:12:29 | <tokie> | I am reading a haskell book and one of the exercises in the Applicative chapter is having me implement Functor and Applicative for a given newtype called 'Constant', and I am super stuck on how to write the pure function: https://play.haskell.org/saved/u9NPjWc0 any thoughts? |
| 15:13:23 | <merijn> | tokie: That type on pure seems (aka *is*) to restrictive |
| 15:13:53 | <tokie> | i thought the type of pure is sorta defined by the Applicative class? i.e. it must be pure a -> f a |
| 15:14:06 | × | vglfr quits (~vglfr@88.155.34.83) (Ping timeout: 265 seconds) |
| 15:14:16 | <merijn> | tokie: Yes, but you're already using 'a' for the first argument to Constant, which is probably confusing you |
| 15:14:50 | <merijn> | Consider rewriting the Applicative instance as "instance Monoid x => Applicative (Constant x) where pure :: a -> Constant k a" |
| 15:15:05 | <merijn> | eh |
| 15:15:07 | <merijn> | s/k/x |
| 15:16:24 | × | perrierjouet quits (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 3.8) |
| 15:17:53 | <tokie> | like this? https://play.haskell.org/saved/BmMHfxX7 |
| 15:18:47 | <merijn> | tokie: Right, at which point you should get a type error for your current implementation of pure :) |
| 15:18:49 | <tokie> | i would think that wouldn't work because 'a' is the type that's lifted into Constant |
| 15:18:57 | <tokie> | merijn: right |
| 15:19:12 | <tokie> | i understand that type error |
| 15:19:27 | <merijn> | tokie: So, to avoid spoilers, the best hint I can give is "now stare and meditate really hard what the only possible implementation could be" :) |
| 15:19:38 | × | vpan quits (~0@212.117.1.172) (Remote host closed the connection) |
| 15:19:40 | <tokie> | i do like that you didn't give the answer, lol |
| 15:19:42 | <merijn> | Don't forget to revisit your Functor implementation for inspiration too |
| 15:19:42 | <tokie> | thanks |
| 15:20:36 | <merijn> | tokie: Consider this: Why does your fmap implementation not use the function you give it? |
| 15:22:15 | <merijn> | tokie: Or, consider this, according to functor and applicative laws "fmap f (pure x)" is equivalent to "pure (f x)". So consider the implications of f = (+1) and x = 5 |
| 15:22:23 | × | mastarija quits (~mastarija@188.252.199.22) (Quit: WeeChat 3.7.1) |
| 15:26:04 | × | lagash quits (lagash@lagash.shelltalk.net) (Quit: ZNC - https://znc.in) |
| 15:27:09 | <Guest72> | If I have tried to write some code where I continuously kill workers and spawn the same number of new ones, but the threadIDs keep increasing, does that mean that I am spawning more than I am killing? |
| 15:27:16 | <Guest72> | I am not retaining the ThreadIDs in any datastructures of my own |
| 15:27:36 | <EvanR> | Guest72, I'm kind of glad you can't find out all active threadIDs. Probably would be abused more than used for justice xD |
| 15:27:47 | <Guest72> | Lmao |
| 15:27:50 | <Guest72> | Agreed |
| 15:27:59 | <Guest72> | I m trying something out, feels greasy |
| 15:28:03 | <Guest72> | I am* |
| 15:28:05 | <merijn> | Guest72: Pretty sure threadids basically just increment until they roll over |
| 15:28:14 | <glguy> | Guest72: file descriptor behavior in POSIX is defined to reuse the lowest available number, but things like process ids typically just continually increment |
| 15:28:20 | <glguy> | I'd expect thread ids to work like process ids |
| 15:28:48 | <Guest72> | That is my understanding/guess as well, but it never hurts to ask |
| 15:28:50 | <merijn> | Guest72: So the ability to get a "reused" threadid is mostly theoretical |
| 15:28:58 | <EvanR> | if you can't observe threads remaining after welcome ran out, it's not happening |
| 15:28:58 | <Guest72> | Great |
| 15:29:45 | <Guest72> | I will assume things are fine for now |
| 15:29:51 | <Guest72> | We will see if things blow up |
| 15:30:32 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 15:30:42 | <EvanR> | you can attach a finalizer to the threads which print a final "I'm dead (threadID)" |
| 15:30:42 | → | lagash joins (lagash@lagash.shelltalk.net) |
| 15:31:46 | <merijn> | The trickiest bit is that you need to do some complicated weak reference dance if you wanna store threadids without them accidentally keeping the thread alive |
| 15:32:14 | <Guest72> | I have no desire to keep the threadIDs around though |
| 15:32:21 | <merijn> | but if you're not doing that and not doing stupid things (like trying to recover threadid's from user input), you should be fine |
| 15:32:40 | <Guest72> | I tried an alternative approach where I 'reset' a thread instead, but I don't have time to finish implementing this now |
| 15:32:42 | <Guest72> | https://stackoverflow.com/questions/75802589/haskell-asychronous-exceptions |
| 15:32:45 | <Guest72> | Any input is welcome |
| 15:32:54 | <Guest72> | I have to sign off now, but thanks for the discussion |
| 15:32:56 | <EvanR> | yeah a weak reference on the threadID itself, weak refs have a finalizer feature |
| 15:33:04 | × | Guest72 quits (~Guest72@ext-1-398.eduroam.chalmers.se) (Quit: Client closed) |
| 15:36:24 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:a807:948e:ff4f:3b94) |
| 15:36:40 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 15:36:50 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 15:38:45 | × | ddellacosta quits (~ddellacos@146.70.165.10) (Quit: WeeChat 3.8) |
| 15:40:12 | → | ddellacosta joins (~ddellacos@146.70.165.10) |
| 15:40:38 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:a807:948e:ff4f:3b94) (Ping timeout: 246 seconds) |
| 15:41:45 | → | jushur joins (~human@user/jushur) |
| 15:47:41 | × | Guest19 quits (~Guest19@145.107.112.113) (Quit: Client closed) |
| 15:48:38 | × | EvanR quits (~EvanR@user/evanr) (Quit: Leaving) |
| 15:55:40 | × | Vq quits (~vq@90-227-192-206-no77.tbcn.telia.com) (Ping timeout: 265 seconds) |
| 15:57:12 | → | Vq joins (~vq@90-227-192-206-no77.tbcn.telia.com) |
| 16:05:57 | × | szkl quits (uid110435@id-110435.uxbridge.irccloud.com) (Ping timeout: 250 seconds) |
| 16:05:59 | × | sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
| 16:06:22 | × | coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
| 16:07:05 | → | sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
| 16:09:33 | → | szkl joins (uid110435@id-110435.uxbridge.irccloud.com) |
| 16:12:13 | → | EvanR joins (~EvanR@user/evanr) |
| 16:14:35 | <c_wraith> | EvanR: https://hackage.haskell.org/package/base-4.18.0.0/docs/GHC-Conc.html#v:listThreads |
| 16:14:44 | <c_wraith> | note, however, that it's still buggy |
| 16:14:57 | <c_wraith> | It crashes ghci if run interactively |
| 16:15:13 | <EvanR> | I'm flabbergasted |
| 16:16:43 | → | perrierjouet joins (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) |
| 16:20:04 | <geekosaur> | <<loop>>? |
| 16:21:08 | → | sp00kins joins (~sp00kins@c-71-62-172-98.hsd1.va.comcast.net) |
| 16:21:57 | → | waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) |
| 16:22:35 | → | gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
| 16:22:49 | <c_wraith> | oh, it doesn't crash ghci by itself. You have to fork a few threads off first. Then you start seeing heap corruption when you call listThreads. |
| 16:23:03 | <c_wraith> | stuff like internal error: scavenge_one: strange object 655378800 |
| 16:23:19 | × | motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 276 seconds) |
| 16:23:39 | <c_wraith> | so.. something is not ok in ghc 9.6.1, as yet! |
| 16:26:18 | <EvanR> | jeez |
| 16:27:56 | <geekosaur> | interesting, doesn't exist in 9.2.5 |
| 16:29:50 | → | econo joins (uid147250@user/econo) |
| 16:37:09 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:b104:ea11:1f21:4a05) |
| 16:38:00 | <c_wraith> | no, listThreads is new to 9.6 |
| 16:38:12 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:b104:ea11:1f21:4a05) (Remote host closed the connection) |
| 16:38:14 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:6861:4c48:824b:2934) (Quit: WeeChat 2.8) |
| 16:38:26 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:b104:ea11:1f21:4a05) |
| 16:38:36 | × | krei-se quits (~krei-se@p57af2793.dip0.t-ipconnect.de) (Ping timeout: 255 seconds) |
| 16:38:43 | → | krei-se- joins (~krei-se@p50874388.dip0.t-ipconnect.de) |
| 16:40:42 | × | nschoe quits (~q@141.101.51.197) (Ping timeout: 268 seconds) |
| 16:49:58 | × | cheater quits (~Username@user/cheater) (Ping timeout: 246 seconds) |
| 16:50:28 | → | cheater joins (~Username@user/cheater) |
| 16:55:34 | × | cheater quits (~Username@user/cheater) (Ping timeout: 246 seconds) |
| 16:56:54 | → | CiaoSen joins (~Jura@p200300c9571fe6002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 16:58:14 | × | lagash quits (lagash@lagash.shelltalk.net) (Quit: ZNC - https://znc.in) |
| 16:59:40 | → | lagash joins (lagash@lagash.shelltalk.net) |
| 17:01:11 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 17:05:59 | → | cheater joins (~Username@user/cheater) |
| 17:07:37 | → | cheater_ joins (~Username@user/cheater) |
| 17:10:33 | × | cheater quits (~Username@user/cheater) (Ping timeout: 255 seconds) |
| 17:10:42 | cheater_ | is now known as cheater |
| 17:11:54 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
| 17:14:22 | → | coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
| 17:16:22 | → | coot_ joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
| 17:18:15 | × | jushur quits (~human@user/jushur) (Quit: ¯\_(ツ)_/¯) |
| 17:19:46 | × | coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Ping timeout: 265 seconds) |
| 17:19:48 | coot_ | is now known as coot |
| 17:19:51 | → | jushur joins (~human@user/jushur) |
| 17:19:59 | × | waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 264 seconds) |
| 17:21:31 | → | waleee joins (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) |
| 17:24:11 | × | gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8) |
| 17:24:35 | → | cheater_ joins (~Username@user/cheater) |
| 17:25:24 | × | mei quits (~mei@user/mei) (Ping timeout: 255 seconds) |
| 17:27:07 | × | cheater quits (~Username@user/cheater) (Ping timeout: 248 seconds) |
| 17:27:09 | cheater_ | is now known as cheater |
| 17:27:21 | × | gdr3941 quits (~user@c-73-58-202-143.hsd1.tn.comcast.net) (Ping timeout: 256 seconds) |
| 17:27:52 | → | gdr3941 joins (~user@c-73-58-202-143.hsd1.tn.comcast.net) |
| 17:29:09 | → | mei joins (~mei@user/mei) |
| 17:31:45 | × | zeenk quits (~zeenk@2a02:2f04:a307:2300::7fe) (Quit: Konversation terminated!) |
| 17:31:58 | × | ubert1 quits (~Thunderbi@2a02:8109:abc0:6434:de79:4694:671d:d823) (Quit: ubert1) |
| 17:32:05 | × | kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 27.1)) |
| 17:35:26 | × | yoneda quits (~mike@193.206.102.122) (Quit: leaving) |
| 17:36:50 | → | cheater_ joins (~Username@user/cheater) |
| 17:37:50 | → | cheater__ joins (~Username@user/cheater) |
| 17:38:11 | × | cheater quits (~Username@user/cheater) (Ping timeout: 246 seconds) |
| 17:38:15 | cheater__ | is now known as cheater |
| 17:41:36 | × | cheater_ quits (~Username@user/cheater) (Ping timeout: 264 seconds) |
| 17:47:08 | × | troydm quits (~troydm@user/troydm) (Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset) |
| 17:48:14 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:b104:ea11:1f21:4a05) (Remote host closed the connection) |
| 17:48:25 | × | kenran quits (~user@user/kenran) (Remote host closed the connection) |
| 17:49:07 | × | gdr3941 quits (~user@c-73-58-202-143.hsd1.tn.comcast.net) (Ping timeout: 246 seconds) |
| 17:50:47 | → | gdr3941 joins (~user@c-73-58-202-143.hsd1.tn.comcast.net) |
| 17:53:13 | × | EvanR quits (~EvanR@user/evanr) (Quit: Leaving) |
| 17:54:04 | → | EvanR joins (~EvanR@user/evanr) |
| 17:54:15 | × | gdr3941 quits (~user@c-73-58-202-143.hsd1.tn.comcast.net) (Remote host closed the connection) |
| 17:54:28 | → | gdr3941 joins (~user@c-73-58-202-143.hsd1.tn.comcast.net) |
| 18:01:53 | → | troydm joins (~troydm@user/troydm) |
| 18:05:23 | → | cheater_ joins (~Username@user/cheater) |
| 18:07:39 | × | cheater quits (~Username@user/cheater) (Ping timeout: 246 seconds) |
| 18:07:58 | → | cheater__ joins (~Username@user/cheater) |
| 18:07:58 | cheater__ | is now known as cheater |
| 18:09:55 | × | cheater_ quits (~Username@user/cheater) (Ping timeout: 260 seconds) |
| 18:12:08 | × | gdr3941 quits (~user@c-73-58-202-143.hsd1.tn.comcast.net) (Remote host closed the connection) |
| 18:12:22 | → | gdr3941 joins (~user@c-73-58-202-143.hsd1.tn.comcast.net) |
| 18:14:32 | → | codaraxis joins (~codaraxis@user/codaraxis) |
| 18:14:48 | gabiruh_ | is now known as gabiruh |
| 18:15:05 | × | gdr3941 quits (~user@c-73-58-202-143.hsd1.tn.comcast.net) (Remote host closed the connection) |
| 18:15:19 | → | gdr3941 joins (~user@c-73-58-202-143.hsd1.tn.comcast.net) |
| 18:17:10 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:b104:ea11:1f21:4a05) |
| 18:21:06 | → | jmdaemon joins (~jmdaemon@user/jmdaemon) |
| 18:22:20 | → | cheater_ joins (~Username@user/cheater) |
| 18:22:31 | × | cheater quits (~Username@user/cheater) (Ping timeout: 260 seconds) |
| 18:22:35 | cheater_ | is now known as cheater |
| 18:23:41 | <Square> | Anyone know if someone works on a JVM backend, with GHC's new pluggable backend support? |
| 18:24:05 | → | lbseale_ joins (~quassel@user/ep1ctetus) |
| 18:25:01 | × | lbseale quits (~quassel@user/ep1ctetus) (Ping timeout: 265 seconds) |
| 18:25:15 | × | CiaoSen quits (~Jura@p200300c9571fe6002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 248 seconds) |
| 18:29:57 | × | mei quits (~mei@user/mei) (Remote host closed the connection) |
| 18:32:24 | → | mei joins (~mei@user/mei) |
| 18:32:34 | → | vglfr joins (~vglfr@88.155.10.218) |
| 18:38:37 | × | jushur quits (~human@user/jushur) (Quit: ¯\_(ツ)_/¯) |
| 18:40:20 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 18:41:57 | → | cheater_ joins (~Username@user/cheater) |
| 18:43:53 | → | motherfsck joins (~motherfsc@user/motherfsck) |
| 18:43:55 | × | cheater quits (~Username@user/cheater) (Ping timeout: 248 seconds) |
| 18:44:21 | <[exa]> | Square: there was eta but not sure what's the status of that |
| 18:45:40 | <Square> | [exa], last I checked it seemed like abandon ware. One could hope this new GHC functionality could make maintenance easier? |
| 18:45:47 | <Square> | ...for a similar project |
| 18:46:08 | <[exa]> | I kinda guess there's no real need for that at this point, for javafolk most of the design space is covered by scala |
| 18:46:37 | <[exa]> | but yeah generally it should be much simpler now |
| 18:46:46 | × | cheater_ quits (~Username@user/cheater) (Ping timeout: 265 seconds) |
| 18:46:56 | <geekosaur> | my strong impression from last time this was considered is that the main reason for a JVM-backed ghc was access to Java classes, but FFIing to them would be really problematic because Java and Haskell types don't line up real well |
| 18:47:08 | <[exa]> | related reading: https://wiki.haskell.org/GHC/FAQ#Why_isn.27t_GHC_available_for_.NET_or_on_the_JVM.3F |
| 18:47:10 | <geekosaur> | also the JVM was missing some key features like tail calls at the time |
| 18:48:51 | <Square> | geekosaur, I think the tail call feature has been added to the JVM since. |
| 18:49:23 | <geekosaur> | right, but that still leaves the problem that Haskell and Java types pretty much don't mix |
| 18:49:42 | <geekosaur> | the old "primitive" types do, but modern Java doesn't even use them |
| 18:50:14 | <Square> | geekosaur, true. Java got a version of sum types recently. Not sure if that could help it along. |
| 18:50:43 | <[exa]> | Square: citation needed on the tail calls in jvm |
| 18:52:22 | <[exa]> | anyway, why java? |
| 18:52:49 | × | gdr3941 quits (~user@c-73-58-202-143.hsd1.tn.comcast.net) (Ping timeout: 276 seconds) |
| 18:53:16 | → | jushur joins (~human@user/jushur) |
| 18:53:39 | <Square> | [exa], googled. Seem I might be wrong. I was sure I read that somewhere. I know Scala team wanted it. https://bugs.openjdk.org/browse/JDK-6804517 |
| 18:54:20 | <Square> | [exa], a way to migrate parts of a codebase to Haskell |
| 18:54:39 | <geekosaur> | tail calls will be very important for an implementation of STG for the JVM |
| 18:57:31 | → | gdr3941 joins (~user@c-73-58-202-143.hsd1.tn.comcast.net) |
| 19:05:49 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 19:06:04 | <[exa]> | Square: plain rewrite >>>>> migrate parts |
| 19:06:16 | → | califax joins (~califax@user/califx) |
| 19:06:32 | <Square> | [exa], my superiors don't dig that =/ |
| 19:07:05 | <Square> | [exa], any ideas on how I can convince them? |
| 19:07:05 | → | mikoto-chan joins (~mikoto-ch@87-95-58-79.bb.dnainternet.fi) |
| 19:08:40 | <[exa]> | ah you don't own the project... in that case probably better not push too much |
| 19:08:41 | <Square> | (I've made a very complete POC on all essential parts in semi short time, but they are dead set on partial rewrite) |
| 19:08:44 | <[exa]> | (or try scala) |
| 19:09:41 | <Square> | I used Scala professionally pre version 3. I just found Haskell >>>>> Scala. |
| 19:09:57 | → | euandreh1 joins (~Thunderbi@189.6.18.7) |
| 19:10:42 | × | euandreh quits (~Thunderbi@189.6.18.7) (Ping timeout: 255 seconds) |
| 19:10:43 | euandreh1 | is now known as euandreh |
| 19:11:23 | → | ft joins (~ft@p3e9bc443.dip0.t-ipconnect.de) |
| 19:14:55 | × | gurkenglas quits (~gurkengla@dynamic-002-247-245-038.2.247.pool.telefonica.de) (Ping timeout: 276 seconds) |
| 19:15:06 | × | gdr3941 quits (~user@c-73-58-202-143.hsd1.tn.comcast.net) (Remote host closed the connection) |
| 19:15:20 | → | gdr3941 joins (~user@c-73-58-202-143.hsd1.tn.comcast.net) |
| 19:15:39 | × | werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 255 seconds) |
| 19:16:00 | → | gurkenglas joins (~gurkengla@dynamic-089-204-139-175.89.204.139.pool.telefonica.de) |
| 19:16:15 | → | werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
| 19:18:40 | <sm> | Square: maybe there are are some parts you can break out as separate processes ? |
| 19:21:11 | × | machinedgod quits (~machinedg@node-1w7jr9yirp0ap2d6xfacos1ph.ipv6.telus.net) (Quit: Lost terminal) |
| 19:21:32 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 19:23:25 | × | stackdroid18 quits (14094@de1.hashbang.sh) (Quit: hasta la vista... tchau!) |
| 19:26:01 | <EvanR> | java-bridge worked as far as I could tell but that was years ago |
| 19:26:24 | <EvanR> | it spawned a jvm and did a bunch of marshalling through JNI |
| 19:29:43 | <shapr> | I want to use inline-rust |
| 19:31:45 | → | cheater joins (~Username@user/cheater) |
| 19:32:11 | <Square> | EvanR, sm, I'll look into that |
| 19:33:24 | → | slack1256 joins (~slack1256@181.42.50.18) |
| 19:36:28 | × | jushur quits (~human@user/jushur) (Quit: ¯\_(ツ)_/¯) |
| 19:37:56 | × | cheater quits (~Username@user/cheater) (Ping timeout: 246 seconds) |
| 19:38:26 | → | kimjetwav joins (~user@2607:fea8:235e:b600:3d66:fa8b:402c:9466) |
| 19:39:39 | → | cheater joins (~Username@user/cheater) |
| 19:46:25 | <jean-paul[m]> | There's a thing called inline-java now. |
| 19:47:09 | → | stef204 joins (~stef204@user/stef204) |
| 19:48:43 | × | cheater quits (~Username@user/cheater) (Ping timeout: 276 seconds) |
| 19:52:28 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:b104:ea11:1f21:4a05) (Remote host closed the connection) |
| 19:52:38 | → | cheater joins (~Username@user/cheater) |
| 19:55:15 | <Umeaboy> | How come noarch is not selectable as chroot in copr? There are some noarch only packages. |
| 19:56:26 | × | vglfr quits (~vglfr@88.155.10.218) (Ping timeout: 246 seconds) |
| 19:57:31 | <geekosaur> | because, while you can have noarch packages, you cannot have a working system composed only of noarch packages |
| 19:58:35 | <geekosaur> | closest you get here is to build your noarch packages on multiple archs and then verify they're identical |
| 19:58:46 | × | cheater quits (~Username@user/cheater) (Ping timeout: 252 seconds) |
| 20:01:06 | → | cheater joins (~Username@user/cheater) |
| 20:01:12 | × | cheater quits (~Username@user/cheater) (Remote host closed the connection) |
| 20:06:29 | → | cheater joins (~Username@user/cheater) |
| 20:10:29 | × | coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
| 20:12:58 | → | irrgit_ joins (~irrgit@86.106.90.226) |
| 20:20:24 | <jean-paul[m]> | What does "&" signify in `foreign import capi unsafe "foo.h &some_foo" ...`? |
| 20:21:24 | <ddellacosta> | function pointer I believe |
| 20:22:42 | × | jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 268 seconds) |
| 20:23:02 | × | trev quits (~trev@user/trev) (Remote host closed the connection) |
| 20:23:44 | <jean-paul[m]> | That was my first guess ... but some_foo doesn't appear to be anything but a regular ol' C function. |
| 20:24:09 | → | jushur joins (~human@user/jushur) |
| 20:24:15 | <geekosaur> | it means a value. (I think the intent is to suggest that the ffi is taking a pointer to the value, ,but it also works with e.g. CPP defines which don't have pointers) |
| 20:24:50 | <jean-paul[m]> | Ohh, right, so you get a pointer to the function ... okay, that fits. |
| 20:24:59 | <jean-paul[m]> | Thanks ddellacosta, geekosaur |
| 20:25:12 | <EvanR> | address of some_foo |
| 20:25:55 | → | kenran joins (~user@user/kenran) |
| 20:26:37 | <geekosaur> | oh, sorry, I ewas thinking of `value`. lemme dig |
| 20:28:00 | <geekosaur> | ah, half right. If a Haskell program needs to access a C variable bar of integer type, `foreign import ccall "&" bar :: Ptr CInt` must be used to obtain a pointer referring to the variable. The variable can be read and updated using the routines provided by the module Foreign.Storable (cf. Section 37). |
| 20:28:12 | <geekosaur> | (per Haskell2010) |
| 20:28:45 | <geekosaur> | so it's a (pointer to a) variable |
| 20:28:52 | × | mikoto-chan quits (~mikoto-ch@87-95-58-79.bb.dnainternet.fi) (Ping timeout: 268 seconds) |
| 20:30:09 | × | Midjak quits (~Midjak@82.66.147.146) (Quit: This computer has gone to sleep) |
| 20:33:00 | → | ph88 joins (~ph88@ip5b426553.dynamic.kabel-deutschland.de) |
| 20:34:26 | × | lagash quits (lagash@lagash.shelltalk.net) (Quit: ZNC - https://znc.in) |
| 20:37:35 | → | lagash joins (lagash@lagash.shelltalk.net) |
| 20:40:59 | × | mei quits (~mei@user/mei) (Remote host closed the connection) |
| 20:43:17 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:f11a:e633:cebd:41d0) |
| 20:43:26 | → | mei joins (~mei@user/mei) |
| 20:47:58 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds) |
| 20:48:40 | × | gdr3941 quits (~user@c-73-58-202-143.hsd1.tn.comcast.net) (Ping timeout: 246 seconds) |
| 20:48:57 | → | gdr3941 joins (~user@c-73-58-202-143.hsd1.tn.comcast.net) |
| 20:49:28 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:f11a:e633:cebd:41d0) (Quit: WeeChat 2.8) |
| 20:52:57 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:b104:ea11:1f21:4a05) |
| 20:53:00 | × | werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Quit: leaving) |
| 20:53:39 | → | werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
| 20:53:41 | × | gdr3941 quits (~user@c-73-58-202-143.hsd1.tn.comcast.net) (Ping timeout: 250 seconds) |
| 20:55:05 | → | slac33371 joins (~slack1256@191.126.99.81) |
| 20:55:34 | × | slac33371 quits (~slack1256@191.126.99.81) (Remote host closed the connection) |
| 20:55:48 | <Athas> | Time to go through the GHC update dance again! Every time this happens, I feel the urge to decrease my dependency footprint. |
| 20:57:27 | × | slack1256 quits (~slack1256@181.42.50.18) (Ping timeout: 260 seconds) |
| 20:57:35 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:b104:ea11:1f21:4a05) (Ping timeout: 256 seconds) |
| 20:58:12 | → | gdr3941 joins (~user@c-73-58-202-143.hsd1.tn.comcast.net) |
| 20:58:15 | × | zer0bitz quits (~zer0bitz@2001:2003:f443:d600:f18c:e067:2e85:d2af) (Read error: Connection reset by peer) |
| 21:02:43 | <EvanR> | that's it. This time no dependence on GHC |
| 21:02:53 | × | xsarnik quits (xsarnik@lounge.fi.muni.cz) (Quit: Ping timeout (120 seconds)) |
| 21:03:08 | <EvanR> | chatGPT should be able to compile my haskell or at least interpret it right |
| 21:03:25 | → | xsarnik joins (xsarnik@lounge.fi.muni.cz) |
| 21:04:08 | → | jmdaemon joins (~jmdaemon@user/jmdaemon) |
| 21:05:09 | × | sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
| 21:06:31 | → | sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
| 21:14:17 | → | merijn joins (~merijn@c-001-001-015.client.esciencecenter.eduvpn.nl) |
| 21:18:09 | × | sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
| 21:19:24 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 21:19:28 | → | sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
| 21:19:30 | × | merijn quits (~merijn@c-001-001-015.client.esciencecenter.eduvpn.nl) (Ping timeout: 265 seconds) |
| 21:19:41 | × | gdr3941 quits (~user@c-73-58-202-143.hsd1.tn.comcast.net) (Ping timeout: 256 seconds) |
| 21:19:48 | → | califax joins (~califax@user/califx) |
| 21:19:52 | × | michalz quits (~michalz@185.246.207.215) (Remote host closed the connection) |
| 21:20:14 | → | MironZ2 joins (~MironZ@nat-infra.ehlab.uk) |
| 21:21:15 | × | MironZ quits (~MironZ@nat-infra.ehlab.uk) (Ping timeout: 248 seconds) |
| 21:21:15 | MironZ2 | is now known as MironZ |
| 21:24:25 | → | gdr3941 joins (~user@c-73-58-202-143.hsd1.tn.comcast.net) |
| 21:28:27 | → | nschoe joins (~q@2a01:e0a:8e:a190:a230:bd48:1492:9e9a) |
| 21:30:07 | × | cassiopea quits (~cassiopea@user/cassiopea) (Ping timeout: 276 seconds) |
| 21:37:22 | → | cassiopea joins (~cassiopea@user/cassiopea) |
| 21:39:58 | <mesaoptimizer2> | EvanR: I used chatGPT-4 to migrate my project from Golang to Haskell. It was fun. Had to debug a bit of hallucination but the logic was sound in general |
| 21:40:54 | <mesaoptimizer2> | Hell, I spent 4.5 hours setting up emacs as an IDE for Haskell, and it took me only 6 hours to migrate the project. Things are going to be very different in an year or two |
| 21:41:42 | <mesaoptimizer2> | (Why did it take me 4.5 hours? Well, Fedora ghcup issues, then emacs HLS issues) |
| 21:47:08 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 21:56:00 | → | zeenk joins (~zeenk@2a02:2f04:a307:2300::7fe) |
| 21:57:45 | × | nullsh quits (nullsh@user/nexeq) (Changing host) |
| 21:57:45 | → | nullsh joins (nullsh@user/nullsh) |
| 21:59:14 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 21:59:27 | × | sp00kins quits (~sp00kins@c-71-62-172-98.hsd1.va.comcast.net) (Quit: sp00kins) |
| 22:03:15 | × | nschoe quits (~q@2a01:e0a:8e:a190:a230:bd48:1492:9e9a) (Quit: Switching off) |
| 22:08:26 | × | kenran quits (~user@user/kenran) (Remote host closed the connection) |
| 22:09:20 | × | ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
| 22:11:10 | × | kimiamania quits (~65804703@user/kimiamania) (Quit: Ping timeout (120 seconds)) |
| 22:11:17 | × | Umeaboy quits (~Umeaboy@94-255-145-133.cust.bredband2.com) (Quit: Leaving) |
| 22:11:33 | → | kimiamania joins (~65804703@user/kimiamania) |
| 22:11:42 | × | mjs2600 quits (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Ping timeout: 265 seconds) |
| 22:11:55 | × | bgs quits (~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection) |
| 22:12:09 | → | mjs2600 joins (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) |
| 22:13:38 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Ping timeout: 265 seconds) |
| 22:14:21 | × | mei quits (~mei@user/mei) (Remote host closed the connection) |
| 22:16:09 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 22:16:42 | → | mei joins (~mei@user/mei) |
| 22:16:59 | × | inversed quits (~inversed@bcdcac82.skybroadband.com) (Quit: Connection error?!) |
| 22:19:38 | → | inversed joins (~inversed@bcdcac82.skybroadband.com) |
| 22:24:26 | <Square> | what is the notion like "exp1 / exp2" seen on anchor here called https://en.wikipedia.org/wiki/Lambda_cube#(%CE%BB%E2%86%92)_Simply_typed_lambda_calculus ? Some predicate implies something? |
| 22:25:58 | <Square> | Also, what is required to understand the expression? How would one actually read/word it? |
| 22:26:13 | <Square> | for simply typed case |
| 22:26:41 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 22:26:49 | <geekosaur> | did you follow the link "typing rule"? |
| 22:26:51 | × | qhong quits (~qhong@rescomp-21-400677.stanford.edu) (Ping timeout: 248 seconds) |
| 22:26:57 | <geekosaur> | (type theory has its own notation) |
| 22:28:24 | <Square> | geekosaur, ops. I did not. thanks |
| 22:30:30 | × | zeenk quits (~zeenk@2a02:2f04:a307:2300::7fe) (Quit: Konversation terminated!) |
| 22:32:40 | → | merijn joins (~merijn@c-001-001-015.client.esciencecenter.eduvpn.nl) |
| 22:34:49 | × | stef204 quits (~stef204@user/stef204) (Quit: WeeChat 3.8) |
| 22:38:34 | → | lxi joins (~quassel@2a02:2f08:4706:3500:ae8e:3958:a6a4:da79) |
| 22:44:20 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 22:45:28 | → | codaraxis__ joins (~codaraxis@user/codaraxis) |
| 22:45:31 | × | codaraxis quits (~codaraxis@user/codaraxis) (Ping timeout: 276 seconds) |
| 22:57:56 | <EvanR> | Square, where exactly on the page are you referring |
| 23:03:48 | × | jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 264 seconds) |
| 23:06:04 | <int-e> | Square: Oh is that / supposed to be a horizontal bar? It's an inference rule, with premises on top and a conclusion on the bottom. The first one of those links to https://en.wikipedia.org/wiki/Typing_rule |
| 23:07:21 | × | merijn quits (~merijn@c-001-001-015.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds) |
| 23:07:45 | <int-e> | (those aren't expressions either, syntactically; they're called "type judgements" and have a context (generically, Gamma), a turnstile |-, an expression, a colon :, and a type. |
| 23:07:48 | <int-e> | ) |
| 23:08:20 | <Square> | EvanR, it was the first expression (displayed as a small picture) after the paragraph headline "(λ→) Simply typed lambda calculus". |
| 23:09:23 | <Square> | okok.. I'll dwell deeper into this when I have time. |
| 23:14:42 | → | Tuplanolla joins (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) |
| 23:18:22 | <int-e> | . o O ( "delve" ) |
| 23:21:39 | → | jmdaemon joins (~jmdaemon@user/jmdaemon) |
| 23:24:20 | → | wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com) |
| 23:24:20 | × | wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
| 23:24:20 | → | wroathe joins (~wroathe@user/wroathe) |
| 23:24:20 | <Square> | int-e, ops. English.. sigh. |
| 23:28:58 | × | bjobjo quits (~bjobjo@user/bjobjo) (Ping timeout: 246 seconds) |
| 23:30:58 | → | bjobjo joins (~bjobjo@user/bjobjo) |
| 23:31:04 | × | inversed quits (~inversed@bcdcac82.skybroadband.com) (Quit: Connection error?!) |
| 23:37:59 | × | chomwitt quits (~chomwitt@ppp-94-67-191-224.home.otenet.gr) (Ping timeout: 260 seconds) |
| 23:42:24 | → | inversed joins (~inversed@bcdcac82.skybroadband.com) |
| 23:42:26 | → | jwiegley joins (~jwiegley@76-234-69-149.lightspeed.frokca.sbcglobal.net) |
| 23:43:12 | → | codaraxis joins (~codaraxis@user/codaraxis) |
| 23:44:45 | × | codaraxis__ quits (~codaraxis@user/codaraxis) (Ping timeout: 255 seconds) |
| 23:47:23 | × | acidjnk_new quits (~acidjnk@p200300d6e715c49690267839e4058790.dip0.t-ipconnect.de) (Ping timeout: 248 seconds) |
| 23:50:51 | × | sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
| 23:52:08 | → | sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
| 23:58:51 | <sm> | mesaoptimizer2: thanks for sharing time costs, I like to see those |
| 23:59:15 | <sm> | and congrats on the port! |
| 23:59:26 | ChanServ | sets mode +o johnw |
| 23:59:28 | jwiegley | is kicked by johnw (Kicked by johnw) |
| 23:59:31 | johnw | sets mode -o johnw |
| 23:59:43 | <johnw> | yes, I kicked myself :) |
| 23:59:57 | <sm> | johnw :) |
All times are in UTC on 2023-03-21.