2023-05-20 00:00:06 +0200 | <EvanR> | hololeap, have you looked at bytestring-trie |
2023-05-20 00:01:54 +0200 | <hololeap> | no, not yet |
2023-05-20 00:02:25 +0200 | motherfsck | (~motherfsc@user/motherfsck) (Ping timeout: 240 seconds) |
2023-05-20 00:04:25 +0200 | <geekosaur> | but he's feeding it from cabal data that all uses String |
2023-05-20 00:06:40 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-05-20 00:12:18 +0200 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8) |
2023-05-20 00:12:47 +0200 | user____3 | (~user@dynamic-046-114-177-008.46.114.pool.telefonica.de) (Ping timeout: 240 seconds) |
2023-05-20 00:17:26 +0200 | falafel | (~falafel@2603-8000-d700-115c-e4af-b9a0-55a4-148f.res6.spectrum.com) |
2023-05-20 00:17:39 +0200 | motherfsck | (~motherfsc@user/motherfsck) |
2023-05-20 00:26:46 +0200 | evincar | (~evincar@user/evincar) (Ping timeout: 268 seconds) |
2023-05-20 00:31:05 +0200 | freeside_ | (~mengwong@103.252.202.151) |
2023-05-20 00:32:50 +0200 | zer0bitz | (~zer0bitz@user/zer0bitz) |
2023-05-20 00:34:08 +0200 | zer0bitz_ | (~zer0bitz@user/zer0bitz) (Ping timeout: 248 seconds) |
2023-05-20 00:34:37 +0200 | gmg | (~user@user/gehmehgeh) (Remote host closed the connection) |
2023-05-20 00:35:43 +0200 | freeside_ | (~mengwong@103.252.202.151) (Ping timeout: 256 seconds) |
2023-05-20 00:37:55 +0200 | evincar | (~evincar@user/evincar) |
2023-05-20 00:39:14 +0200 | acidjnk | (~acidjnk@p200300d6e7072f02cde83c9df9d46ae6.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
2023-05-20 00:39:46 +0200 | Pickchea | (~private@user/pickchea) (Quit: Leaving) |
2023-05-20 00:40:02 +0200 | zeenk | (~zeenk@2a02:2f04:a105:f00::fba) (Quit: Konversation terminated!) |
2023-05-20 00:40:08 +0200 | gptke | (~gptke@138.84.54.255) |
2023-05-20 00:41:23 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 256 seconds) |
2023-05-20 00:42:38 +0200 | use-value | (~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf) (Remote host closed the connection) |
2023-05-20 00:42:57 +0200 | use-value | (~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf) |
2023-05-20 00:43:15 +0200 | zmt00 | (~zmt00@user/zmt00) (Read error: Connection reset by peer) |
2023-05-20 00:43:42 +0200 | <gptke> | Malcolm in the Middle Season 8 Episodes 1 and 2: 2. Reese Wilkerson Teams with Canadian Mountie Secret Agents to Trap and Torture Pedophile Tom Cruise https://justpaste.it/Tom_Cruise_BDSM_Tortured_Reese 1. Reese meets Edna Skilton, Fills Her Pussy with Shit, and Fucks that poopy cooter! https://justpaste.it/Reese_Fucks_Edna_Skilton_Malcolm |
2023-05-20 00:43:56 +0200 | ChanServ | +o geekosaur |
2023-05-20 00:44:05 +0200 | geekosaur | +b *!*@138.84.54.255 |
2023-05-20 00:44:05 +0200 | gptke | geekosaur (gptke) |
2023-05-20 00:44:21 +0200 | geekosaur | -o geekosaur |
2023-05-20 00:44:36 +0200 | zmt00 | (~zmt00@user/zmt00) |
2023-05-20 00:46:54 +0200 | spatchkaa | (~spatchkaa@S010600fc8da47b63.gv.shawcable.net) () |
2023-05-20 00:47:03 +0200 | <jade[m]> | what the actual fuck |
2023-05-20 00:47:39 +0200 | <geekosaur> | the latest style of IRC spam, the links probably are to recent chrome and firefox exploits |
2023-05-20 00:49:10 +0200 | szkl | (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
2023-05-20 00:58:13 +0200 | <probie> | Two links this time |
2023-05-20 01:08:42 +0200 | vandita | (~vandit@80-95-69-254.pool.digikabel.hu) (Ping timeout: 268 seconds) |
2023-05-20 01:08:46 +0200 | <geekosaur> | yeh. seems to always be to justpaste.it too |
2023-05-20 01:09:58 +0200 | vandita | (~vandit@84-236-10-12.pool.digikabel.hu) |
2023-05-20 01:11:23 +0200 | <DigitalKiwi> | "fun" fact one of my favorite paste sites is dpaste.com and dpaste.org and dpaste.com is blocked by malwarebytes plugin for trojan and justpaste.in is not lol |
2023-05-20 01:12:09 +0200 | xameer | (~xameer@144.48.224.179) (Remote host closed the connection) |
2023-05-20 01:13:04 +0200 | xameer | (~xameer@144.48.224.179) |
2023-05-20 01:13:28 +0200 | <jade[m]> | it's gonna get really fun now because google introduced a .zip TLD |
2023-05-20 01:13:49 +0200 | <jade[m]> | surely noone is gonna maliciously use that for malware |
2023-05-20 01:14:22 +0200 | theesm | (2cbdf4b38a@2604:bf00:561:2000::11c8) |
2023-05-20 01:14:34 +0200 | <jade[m]> | (that sentence barely made any sense - malware is malicious by definition - but I suppose you understand what I mean |
2023-05-20 01:14:41 +0200 | freeside_ | (~mengwong@103.252.202.151) |
2023-05-20 01:15:31 +0200 | <DigitalKiwi> | i got an email the other day that had a bank statement "pdf" that had an .exe extension if tried to download lol |
2023-05-20 01:17:55 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
2023-05-20 01:19:57 +0200 | spatchkaa | (~spatchkaa@S010600fc8da47b63.gv.shawcable.net) |
2023-05-20 01:20:05 +0200 | freeside_ | (~mengwong@103.252.202.151) (Ping timeout: 240 seconds) |
2023-05-20 01:20:57 +0200 | <DigitalKiwi> | https://www.dropbox.com/s/g66q0akd2sdcfzo/Screenshot%202023-05-19%2018.20.11.png?dl=0 |
2023-05-20 01:21:25 +0200 | <DigitalKiwi> | nice try but my store never left demo mode and got deleted anyway |
2023-05-20 01:24:42 +0200 | Tuplanolla | (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.) |
2023-05-20 01:27:04 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2023-05-20 01:31:52 +0200 | mauke_ | (~mauke@user/mauke) |
2023-05-20 01:32:23 +0200 | euandreh | (~Thunderbi@189.6.18.7) (Ping timeout: 240 seconds) |
2023-05-20 01:33:01 +0200 | motherfsck | (~motherfsc@user/motherfsck) (Ping timeout: 240 seconds) |
2023-05-20 01:33:31 +0200 | mauke | (~mauke@user/mauke) (Ping timeout: 240 seconds) |
2023-05-20 01:33:31 +0200 | mauke_ | mauke |
2023-05-20 01:37:32 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-05-20 01:43:27 +0200 | euandreh | (~Thunderbi@189.6.18.7) |
2023-05-20 01:55:28 +0200 | freeside_ | (~mengwong@103.252.202.151) |
2023-05-20 02:01:51 +0200 | freeside_ | (~mengwong@103.252.202.151) (Ping timeout: 256 seconds) |
2023-05-20 02:03:00 +0200 | califax | (~califax@user/califx) (Remote host closed the connection) |
2023-05-20 02:05:38 +0200 | <probie> | Does anyone else wish there were automatically erased newtypes (or some other lightweight way to reorder type variables)? |
2023-05-20 02:06:12 +0200 | <davean> | probie: how does erasing new types reorder type variables? |
2023-05-20 02:06:30 +0200 | <probie> | as in something like `newtype Flip f b a = Flip (f a b)` |
2023-05-20 02:07:04 +0200 | califax | (~califax@user/califx) |
2023-05-20 02:07:26 +0200 | <probie> | so I could do something like `type (~>) f g = forall a . f a -> g a`, `foo :: Flip f b ~> g`, but not have to worry about `Flip` in the definition of foo |
2023-05-20 02:08:37 +0200 | spatchkaa | (~spatchkaa@S010600fc8da47b63.gv.shawcable.net) (Quit: Client closed) |
2023-05-20 02:09:04 +0200 | <davean> | but thats a newtype - the point of which is nominal |
2023-05-20 02:09:13 +0200 | <davean> | if you wanted what you describe why not use type etc? |
2023-05-20 02:09:41 +0200 | <davean> | or a type function? |
2023-05-20 02:09:58 +0200 | <probie> | You can't partially apply type synonyms (or type families) though, but you can partially apply a newtype |
2023-05-20 02:10:49 +0200 | <davean> | but you've declared something nominally about Flip, so it isn't just (f a b) |
2023-05-20 02:10:54 +0200 | <davean> | So youre errasure is incorrect |
2023-05-20 02:11:21 +0200 | <probie> | which is why I want something new |
2023-05-20 02:11:48 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 240 seconds) |
2023-05-20 02:13:43 +0200 | <probie> | ignore most of my original statement - I was still thinking how best to phrase it, and simply bumped the enter key. The sort of thing I really want is a type level function for rearranging things that can be partially applied |
2023-05-20 02:21:03 +0200 | <davean> | That makes a ton more sense!@ |
2023-05-20 02:26:46 +0200 | <probie> | I have something like `data T (a :: *) (b :: *) (r :: * -> * -> *)`, but I keep needing to swap between `r` being the first argument, and `r` being the last argument. It needs to be the last argument for typeclass purposes |
2023-05-20 02:28:47 +0200 | boukenshaou | (~Boukensha@223.178.86.188) |
2023-05-20 02:30:27 +0200 | <probie> | But I want to be able to use something like `type (~>>) f g = forall a b . f a b -> g a b`, so then I can write a function with a nice readable type (with `r` now being the first parameter) like `(T f ~>> f) -> (Fix2 T ~>> f)` without needing to sprinkle foralls everywhere |
2023-05-20 02:30:41 +0200 | boukenshaou | (~Boukensha@223.178.86.188) (Client Quit) |
2023-05-20 02:30:58 +0200 | boukenshaou | (~Boukensha@223.178.86.188) |
2023-05-20 02:34:18 +0200 | bgs | (~bgs@212-85-160-171.dynamic.telemach.net) |
2023-05-20 02:34:48 +0200 | ctearrrrrrrrrrrr | (~ctearrrrr@73.237.206.60) (Remote host closed the connection) |
2023-05-20 02:40:01 +0200 | falafel | (~falafel@2603-8000-d700-115c-e4af-b9a0-55a4-148f.res6.spectrum.com) (Ping timeout: 240 seconds) |
2023-05-20 02:46:25 +0200 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2023-05-20 02:53:43 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) |
2023-05-20 02:53:43 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
2023-05-20 02:53:43 +0200 | wroathe | (~wroathe@user/wroathe) |
2023-05-20 02:54:06 +0200 | NetworkPolicy | (~NetworkPo@S01069050ca4e3573.cg.shawcable.net) |
2023-05-20 02:57:29 +0200 | evincar | (~evincar@user/evincar) (Ping timeout: 246 seconds) |
2023-05-20 02:57:55 +0200 | <NetworkPolicy> | is haskell just syntactic sugar? |
2023-05-20 02:59:34 +0200 | boukenshaou | (~Boukensha@223.178.86.188) (Remote host closed the connection) |
2023-05-20 03:04:04 +0200 | bgs | (~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection) |
2023-05-20 03:08:27 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-05-20 03:11:01 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2023-05-20 03:13:01 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 240 seconds) |
2023-05-20 03:13:28 +0200 | <nitrix> | Sometimes it's syntactic junk food. |
2023-05-20 03:14:13 +0200 | <NetworkPolicy> | fine line between syntactic sugar and semantic fat imo |
2023-05-20 03:14:29 +0200 | <nitrix> | Probably depends on the lenses you're wearing that day. |
2023-05-20 03:17:09 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2023-05-20 03:18:55 +0200 | <NetworkPolicy> | I'd like to find a programming language capatable make life decisions through mathematical game theory |
2023-05-20 03:19:25 +0200 | vandita | (~vandit@84-236-10-12.pool.digikabel.hu) (Ping timeout: 240 seconds) |
2023-05-20 03:19:28 +0200 | <NetworkPolicy> | so every decision I make that's sufficiently complex I could code it into a program and have it decide the outcome |
2023-05-20 03:21:19 +0200 | <SrPx> | https://twitter.com/VictorTaelin/status/1659724812057452549 |
2023-05-20 03:21:32 +0200 | <NetworkPolicy> | or ranked outcome - reward based on my aversion to risk at that moment |
2023-05-20 03:21:33 +0200 | vandita | (~vandit@176-241-62-236.pool.digikabel.hu) |
2023-05-20 03:25:06 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-05-20 03:25:09 +0200 | remsen | (ianremsen@tilde.team) |
2023-05-20 03:29:15 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
2023-05-20 03:29:35 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 240 seconds) |
2023-05-20 03:31:15 +0200 | <nitrix> | SrPx, Someone took "paper" quite literally :) |
2023-05-20 03:31:43 +0200 | <SrPx> | ^^ |
2023-05-20 03:38:42 +0200 | Lycurgus | (~juan@user/Lycurgus) |
2023-05-20 03:40:30 +0200 | dsrt^ | (~dsrt@73.237.206.60) |
2023-05-20 03:42:36 +0200 | <hololeap> | NetworkPolicy: sounds like the programming language called "reality" |
2023-05-20 03:49:37 +0200 | sympt | (~sympt@user/sympt) (Quit: Ping timeout (120 seconds)) |
2023-05-20 03:50:32 +0200 | sympt | (~sympt@user/sympt) |
2023-05-20 03:51:51 +0200 | NetworkPolicy | (~NetworkPo@S01069050ca4e3573.cg.shawcable.net) (Quit: Client closed) |
2023-05-20 03:52:55 +0200 | nate2 | (~nate@98.45.169.16) |
2023-05-20 03:53:33 +0200 | evincar | (~evincar@user/evincar) |
2023-05-20 03:57:28 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
2023-05-20 03:58:17 +0200 | nate2 | (~nate@98.45.169.16) (Ping timeout: 268 seconds) |
2023-05-20 04:01:11 +0200 | evincar | (~evincar@user/evincar) (Ping timeout: 240 seconds) |
2023-05-20 04:01:27 +0200 | Lycurgus | (~juan@user/Lycurgus) (Quit: Exeunt: personae.ai-integration.biz) |
2023-05-20 04:03:44 +0200 | caryhartline | (~caryhartl@168.182.58.169) |
2023-05-20 04:04:02 +0200 | evincar | (~evincar@user/evincar) |
2023-05-20 04:09:35 +0200 | td_ | (~td@i53870931.versanet.de) (Ping timeout: 240 seconds) |
2023-05-20 04:10:23 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
2023-05-20 04:11:46 +0200 | td_ | (~td@i53870916.versanet.de) |
2023-05-20 04:24:08 +0200 | NetworkPolicy | (~NetworkPo@S01069050ca4e3573.cg.shawcable.net) |
2023-05-20 04:26:24 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-05-20 04:26:34 +0200 | <NetworkPolicy> | hololeap: i mean, it might be a subset of reality not an entire simulation im just talking individual decisions not TREE(3). |
2023-05-20 04:27:38 +0200 | <NetworkPolicy> | it'd be like having an entire team of experts working for you on each decision |
2023-05-20 04:28:31 +0200 | waleee | (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 240 seconds) |
2023-05-20 04:28:33 +0200 | <NetworkPolicy> | you wouldn't need to use it for anything simple like what do i eat for breakfast. but major life decisions where there's a cost to failure |
2023-05-20 04:29:14 +0200 | <NetworkPolicy> | any language that claims to be mathematical should be able to do this easily |
2023-05-20 04:30:14 +0200 | monochrom | is a logician, takes advantage of the mistaken wording (but still very precise and unambiguous) of "for every decision there exists a program". |
2023-05-20 04:31:19 +0200 | <monochrom> | Let a decision D be given. For example D = "I decide to sleep now". Then the program that outputs D is `main = putStrLn "sleep now!"` |
2023-05-20 04:41:28 +0200 | terrorjack | (~terrorjac@2a01:4f8:c17:87f8::) (Quit: The Lounge - https://thelounge.chat) |
2023-05-20 04:42:55 +0200 | terrorjack | (~terrorjac@2a01:4f8:c17:87f8::) |
2023-05-20 04:54:56 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
2023-05-20 04:55:18 +0200 | kimjetwav | (~user@2607:fea8:235e:b600:7132:be12:79fb:18e8) (Ping timeout: 250 seconds) |
2023-05-20 04:55:25 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2023-05-20 04:55:58 +0200 | falafel | (~falafel@2603-8000-d700-115c-25e2-07e8-7aef-02db.res6.spectrum.com) |
2023-05-20 04:56:26 +0200 | NetworkPolicy | (~NetworkPo@S01069050ca4e3573.cg.shawcable.net) (Quit: Client closed) |
2023-05-20 04:57:16 +0200 | NetworkPolicy | (~NetworkPo@S01069050ca4e3573.cg.shawcable.net) |
2023-05-20 04:57:31 +0200 | evincar | (~evincar@user/evincar) (Ping timeout: 240 seconds) |
2023-05-20 04:58:26 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2023-05-20 04:59:46 +0200 | evincar | (~evincar@user/evincar) |
2023-05-20 04:59:47 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 256 seconds) |
2023-05-20 05:01:24 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) |
2023-05-20 05:01:24 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
2023-05-20 05:01:24 +0200 | wroathe | (~wroathe@user/wroathe) |
2023-05-20 05:10:47 +0200 | vandita | (~vandit@176-241-62-236.pool.digikabel.hu) (Ping timeout: 240 seconds) |
2023-05-20 05:12:33 +0200 | use-value | (~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf) (Remote host closed the connection) |
2023-05-20 05:12:44 +0200 | vandita | (~vandit@92-249-182-123.pool.digikabel.hu) |
2023-05-20 05:12:52 +0200 | use-value | (~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf) |
2023-05-20 05:14:21 +0200 | cheater_ | (~Username@user/cheater) |
2023-05-20 05:15:34 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 265 seconds) |
2023-05-20 05:15:36 +0200 | cheater_ | cheater |
2023-05-20 05:17:21 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2023-05-20 05:23:24 +0200 | cheater_ | (~Username@user/cheater) |
2023-05-20 05:25:51 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 268 seconds) |
2023-05-20 05:25:59 +0200 | cheater_ | cheater |
2023-05-20 05:30:05 +0200 | xameer | (~xameer@144.48.224.179) (Ping timeout: 240 seconds) |
2023-05-20 05:35:57 +0200 | bgs | (~bgs@212-85-160-171.dynamic.telemach.net) |
2023-05-20 05:40:22 +0200 | trev | (~trev@user/trev) |
2023-05-20 05:40:47 +0200 | freeside_ | (~mengwong@103.252.202.151) |
2023-05-20 05:42:40 +0200 | cheater_ | (~Username@user/cheater) |
2023-05-20 05:43:41 +0200 | extor | (~extor@ns3018124.ip-149-202-82.eu) (Quit: ZNC 1.8.2+deb2build5 - https://znc.in) |
2023-05-20 05:43:48 +0200 | foul_owl | (~kerry@71.212.137.212) (Ping timeout: 240 seconds) |
2023-05-20 05:45:01 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 240 seconds) |
2023-05-20 05:45:05 +0200 | cheater_ | cheater |
2023-05-20 05:47:57 +0200 | freeside_ | (~mengwong@103.252.202.151) (Ping timeout: 256 seconds) |
2023-05-20 05:57:10 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-05-20 05:59:03 +0200 | foul_owl | (~kerry@212.102.47.39) |
2023-05-20 06:08:25 +0200 | evincar | (~evincar@user/evincar) (Ping timeout: 240 seconds) |
2023-05-20 06:14:23 +0200 | czy | (~user@host-140-24.ilcub310.champaign.il.us.clients.pavlovmedia.net) |
2023-05-20 06:15:31 +0200 | ddellacosta | (~ddellacos@146.70.185.10) (Ping timeout: 240 seconds) |
2023-05-20 06:16:38 +0200 | ddellacosta | (~ddellacos@143.244.47.75) |
2023-05-20 06:17:48 +0200 | yaroot_ | (~yaroot@p3001131-ipngn7601souka.saitama.ocn.ne.jp) |
2023-05-20 06:17:59 +0200 | evincar | (~evincar@user/evincar) |
2023-05-20 06:19:01 +0200 | tessier | (~treed@ec2-184-72-149-67.compute-1.amazonaws.com) |
2023-05-20 06:19:08 +0200 | yaroot | (~yaroot@2400:4052:ac0:d900:1cf4:2aff:fe51:c04c) (Ping timeout: 240 seconds) |
2023-05-20 06:19:09 +0200 | yaroot_ | yaroot |
2023-05-20 06:30:58 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 265 seconds) |
2023-05-20 06:34:48 +0200 | tessier | (~treed@ec2-184-72-149-67.compute-1.amazonaws.com) (Ping timeout: 240 seconds) |
2023-05-20 06:35:45 +0200 | NetworkPolicy | (~NetworkPo@S01069050ca4e3573.cg.shawcable.net) () |
2023-05-20 06:36:24 +0200 | econo | (uid147250@user/econo) |
2023-05-20 06:37:13 +0200 | tessier | (~treed@ec2-184-72-149-67.compute-1.amazonaws.com) |
2023-05-20 06:37:51 +0200 | xameer | (~xameer@144.48.224.179) |
2023-05-20 06:38:31 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 240 seconds) |
2023-05-20 06:44:29 +0200 | freeside_ | (~mengwong@103.252.202.151) |
2023-05-20 06:49:59 +0200 | freeside_ | (~mengwong@103.252.202.151) (Ping timeout: 240 seconds) |
2023-05-20 06:50:59 +0200 | wiosna | (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) |
2023-05-20 06:51:00 +0200 | falafel | (~falafel@2603-8000-d700-115c-25e2-07e8-7aef-02db.res6.spectrum.com) (Ping timeout: 250 seconds) |
2023-05-20 07:01:50 +0200 | vito_ | (sid1962@id-1962.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
2023-05-20 07:04:19 +0200 | <Inst> | does anyone here use data files in cabal? |
2023-05-20 07:04:25 +0200 | <Inst> | i suppose a lot of people do |
2023-05-20 07:04:27 +0200 | <Inst> | on Windows? |
2023-05-20 07:05:44 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds) |
2023-05-20 07:12:23 +0200 | vglfr | (~vglfr@209.198.137.192) (Ping timeout: 240 seconds) |
2023-05-20 07:12:35 +0200 | vglfr | (~vglfr@209.198.137.192) |
2023-05-20 07:12:50 +0200 | <Inst> | nope |
2023-05-20 07:12:52 +0200 | <Inst> | oh well |
2023-05-20 07:16:05 +0200 | vandita | (~vandit@92-249-182-123.pool.digikabel.hu) (Ping timeout: 240 seconds) |
2023-05-20 07:16:49 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2023-05-20 07:18:11 +0200 | vandita | (~vandit@92-249-193-45.pool.digikabel.hu) |
2023-05-20 07:22:24 +0200 | evincar | (~evincar@user/evincar) (Ping timeout: 268 seconds) |
2023-05-20 07:25:14 +0200 | vglfr | (~vglfr@209.198.137.192) (Ping timeout: 246 seconds) |
2023-05-20 07:26:13 +0200 | vglfr | (~vglfr@209.198.137.192) |
2023-05-20 07:26:33 +0200 | <probie> | Data files are rare, as "on Windows" is probably also less common than you'd think (and you've asked the question late at night for the US, and early in the morning for Europe further reducing the pool of active users to respond) |
2023-05-20 07:27:10 +0200 | <probie> | s/as "on Windows"/and "on Windows"/ |
2023-05-20 07:27:10 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-05-20 07:34:04 +0200 | evincar | (~evincar@user/evincar) |
2023-05-20 07:35:54 +0200 | <Inst> | yeah i'm wondering if cabal is bugging out |
2023-05-20 07:36:02 +0200 | <Inst> | and since we're looking at double rare, no one has tested this |
2023-05-20 07:41:42 +0200 | harveypwca | (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) |
2023-05-20 07:45:59 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2023-05-20 07:46:23 +0200 | vglfr | (~vglfr@209.198.137.192) (Ping timeout: 256 seconds) |
2023-05-20 07:50:32 +0200 | vglfr | (~vglfr@2a0d:3344:1b4f:9e10:dcf5:c871:1414:3355) |
2023-05-20 07:54:24 +0200 | nate2 | (~nate@98.45.169.16) |
2023-05-20 07:59:01 +0200 | machinedgod | (~machinedg@88.128.88.155) |
2023-05-20 07:59:05 +0200 | nate2 | (~nate@98.45.169.16) (Ping timeout: 240 seconds) |
2023-05-20 08:00:23 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 240 seconds) |
2023-05-20 08:06:21 +0200 | abrantesasf | (abrantesas@gateway/vpn/protonvpn/abrantesasf) |
2023-05-20 08:09:33 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
2023-05-20 08:10:31 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2023-05-20 08:28:07 +0200 | falafel | (~falafel@2603-8000-d700-115c-e9b9-b6fb-0482-eed0.res6.spectrum.com) |
2023-05-20 08:28:59 +0200 | acidjnk | (~acidjnk@p200300d6e7072f309de47f84a0a0c5f9.dip0.t-ipconnect.de) |
2023-05-20 08:33:16 +0200 | falafel | (~falafel@2603-8000-d700-115c-e9b9-b6fb-0482-eed0.res6.spectrum.com) (Ping timeout: 250 seconds) |
2023-05-20 08:36:17 +0200 | jinsun | (~jinsun@user/jinsun) |
2023-05-20 08:38:29 +0200 | vglfr | (~vglfr@2a0d:3344:1b4f:9e10:dcf5:c871:1414:3355) (Read error: Connection reset by peer) |
2023-05-20 08:38:54 +0200 | vglfr | (~vglfr@209.198.137.192) |
2023-05-20 08:38:57 +0200 | vglfr | (~vglfr@209.198.137.192) (Read error: Connection reset by peer) |
2023-05-20 08:39:11 +0200 | vglfr | (~vglfr@209.198.137.192) |
2023-05-20 08:41:11 +0200 | vglfr | (~vglfr@209.198.137.192) (Read error: Connection reset by peer) |
2023-05-20 08:41:14 +0200 | extor | (~extor@ns3018124.ip-149-202-82.eu) |
2023-05-20 08:42:32 +0200 | vglfr | (~vglfr@209.198.137.192) |
2023-05-20 08:43:37 +0200 | vglfr | (~vglfr@209.198.137.192) (Read error: Connection reset by peer) |
2023-05-20 08:45:12 +0200 | abrantesasf | (abrantesas@gateway/vpn/protonvpn/abrantesasf) (Remote host closed the connection) |
2023-05-20 08:45:19 +0200 | wiosna | (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) (Ping timeout: 256 seconds) |
2023-05-20 08:46:54 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) |
2023-05-20 08:47:37 +0200 | vglfr | (~vglfr@2a0d:3344:1b4f:9e10:dcf5:c871:1414:3355) |
2023-05-20 08:57:38 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) (Ping timeout: 246 seconds) |
2023-05-20 08:57:45 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-05-20 09:02:59 +0200 | davl_ | (~davl@207.154.228.18) |
2023-05-20 09:03:13 +0200 | davl | (~davl@207.154.228.18) (Ping timeout: 265 seconds) |
2023-05-20 09:03:37 +0200 | freeside_ | (~mengwong@103.252.202.151) |
2023-05-20 09:07:42 +0200 | oo_miguel | (~Thunderbi@77.252.47.84) |
2023-05-20 09:08:28 +0200 | freeside_ | (~mengwong@103.252.202.151) (Ping timeout: 268 seconds) |
2023-05-20 09:08:40 +0200 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
2023-05-20 09:09:16 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) |
2023-05-20 09:10:36 +0200 | wiosna | (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) |
2023-05-20 09:17:25 +0200 | vandita | (~vandit@92-249-193-45.pool.digikabel.hu) (Ping timeout: 240 seconds) |
2023-05-20 09:19:33 +0200 | vandita | (~vandit@92-249-182-123.pool.digikabel.hu) |
2023-05-20 09:24:06 +0200 | zeenk | (~zeenk@2a02:2f04:a105:f00::fba) |
2023-05-20 09:27:47 +0200 | freeside_ | (~mengwong@103.252.202.151) |
2023-05-20 09:31:11 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 240 seconds) |
2023-05-20 09:32:31 +0200 | freeside_ | (~mengwong@103.252.202.151) (Ping timeout: 268 seconds) |
2023-05-20 09:32:55 +0200 | vglfr | (~vglfr@2a0d:3344:1b4f:9e10:dcf5:c871:1414:3355) (Ping timeout: 256 seconds) |
2023-05-20 09:47:30 +0200 | vglfr | (~vglfr@2a0d:3344:1b4f:9e10:dcf5:c871:1414:3355) |
2023-05-20 09:49:47 +0200 | evincar | (~evincar@user/evincar) (Ping timeout: 268 seconds) |
2023-05-20 09:53:52 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-05-20 09:59:44 +0200 | <[exa]> | Inst: what's the issue? (I'm normally installing datafiles and it works everywhere) |
2023-05-20 10:01:50 +0200 | freeside_ | (~mengwong@103.252.202.151) |
2023-05-20 10:03:51 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |
2023-05-20 10:06:11 +0200 | <Inst> | well, i don't get an error message when the data files can't be found, more importantly, i don't get the asset folder built into my test build |
2023-05-20 10:06:28 +0200 | freeside_ | (~mengwong@103.252.202.151) (Ping timeout: 240 seconds) |
2023-05-20 10:07:49 +0200 | gmg | (~user@user/gehmehgeh) |
2023-05-20 10:08:13 +0200 | <[exa]> | what's your cabal config and how do you produce the test build? |
2023-05-20 10:10:34 +0200 | <Inst> | define cabal config, cabal file? |
2023-05-20 10:11:50 +0200 | <Inst> | https://paste.tomsmeding.com/GhGBqCiV |
2023-05-20 10:13:40 +0200 | <Inst> | and, nothing's in the paths |
2023-05-20 10:19:44 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds) |
2023-05-20 10:23:01 +0200 | vglfr | (~vglfr@2a0d:3344:1b4f:9e10:dcf5:c871:1414:3355) (Ping timeout: 240 seconds) |
2023-05-20 10:32:45 +0200 | Tuplanolla | (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) |
2023-05-20 10:33:20 +0200 | <Inst> | hmmm, it seems the present problem is that while |
2023-05-20 10:37:00 +0200 | ShalokShalom | (~ShalokSha@mobiledyn-62-240-134-108.mrsn.at) |
2023-05-20 10:38:21 +0200 | paulpaul1076 | (~textual@95-29-4-192.broadband.corbina.ru) (Remote host closed the connection) |
2023-05-20 10:39:51 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-05-20 10:41:41 +0200 | ShalokShalom | (~ShalokSha@mobiledyn-62-240-134-108.mrsn.at) (Client Quit) |
2023-05-20 10:42:12 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:510d:16a:b9b3:3b4) (Remote host closed the connection) |
2023-05-20 10:48:48 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 240 seconds) |
2023-05-20 10:49:08 +0200 | freeside_ | (~mengwong@103.252.202.151) |
2023-05-20 10:49:47 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2023-05-20 10:50:08 +0200 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
2023-05-20 10:50:31 +0200 | <Inst> | cabal can see the files, it won't load it to the dist newstyle |
2023-05-20 10:53:25 +0200 | freeside_ | (~mengwong@103.252.202.151) (Ping timeout: 240 seconds) |
2023-05-20 10:53:26 +0200 | Pickchea | (~private@user/pickchea) |
2023-05-20 10:56:28 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 240 seconds) |
2023-05-20 10:56:51 +0200 | harveypwca | (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving) |
2023-05-20 11:00:17 +0200 | <sclv> | thats by design iirc. it doesn’t copy them for inplace builds, only “install” builds? |
2023-05-20 11:00:52 +0200 | zer0bitz_ | (~zer0bitz@user/zer0bitz) |
2023-05-20 11:01:52 +0200 | zer0bitz | (~zer0bitz@user/zer0bitz) (Ping timeout: 248 seconds) |
2023-05-20 11:04:22 +0200 | zer0bitz | (~zer0bitz@user/zer0bitz) |
2023-05-20 11:05:17 +0200 | calamaxes[m] | (~calamaxes@2001:470:69fc:105::3:47b2) (Remote host closed the connection) |
2023-05-20 11:05:28 +0200 | zer0bitz_ | (~zer0bitz@user/zer0bitz) (Ping timeout: 240 seconds) |
2023-05-20 11:08:09 +0200 | zer0bitz_ | (~zer0bitz@user/zer0bitz) |
2023-05-20 11:08:39 +0200 | freeside_ | (~mengwong@103.252.202.151) |
2023-05-20 11:09:28 +0200 | zer0bitz | (~zer0bitz@user/zer0bitz) (Ping timeout: 240 seconds) |
2023-05-20 11:12:02 +0200 | radioredwagon | (~radioredw@user/radioredwagon) |
2023-05-20 11:12:40 +0200 | m1dnight | (~christoph@78-22-4-67.access.telenet.be) (Quit: WeeChat 3.8) |
2023-05-20 11:13:14 +0200 | vandita | (~vandit@92-249-182-123.pool.digikabel.hu) (Ping timeout: 265 seconds) |
2023-05-20 11:14:31 +0200 | <Inst> | not copied into install builds either |
2023-05-20 11:14:52 +0200 | vandita | (~vandit@178-164-188-109.pool.digikabel.hu) |
2023-05-20 11:16:28 +0200 | freeside_ | (~mengwong@103.252.202.151) (Ping timeout: 240 seconds) |
2023-05-20 11:18:30 +0200 | img | (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
2023-05-20 11:19:24 +0200 | img | (~img@user/img) |
2023-05-20 11:21:00 +0200 | m1dnight | (~christoph@78-22-4-67.access.telenet.be) |
2023-05-20 11:21:28 +0200 | zer0bitz_ | (~zer0bitz@user/zer0bitz) (Ping timeout: 240 seconds) |
2023-05-20 11:21:31 +0200 | zer0bitz | (~zer0bitz@user/zer0bitz) |
2023-05-20 11:22:01 +0200 | jle` | (~jle`@cpe-23-240-75-236.socal.res.rr.com) (Ping timeout: 240 seconds) |
2023-05-20 11:24:20 +0200 | jle` | (~jle`@cpe-23-240-75-236.socal.res.rr.com) |
2023-05-20 11:25:48 +0200 | img | (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
2023-05-20 11:29:44 +0200 | MajorBiscuit | (~MajorBisc@2001:1c00:2492:e200:7978:ae95:74b8:679a) |
2023-05-20 11:30:56 +0200 | img | (~img@user/img) |
2023-05-20 11:31:17 +0200 | radioredwagon | (~radioredw@user/radioredwagon) (Quit: Leaving) |
2023-05-20 11:35:19 +0200 | zeenk | (~zeenk@2a02:2f04:a105:f00::fba) (Remote host closed the connection) |
2023-05-20 11:35:40 +0200 | zeenk | (~zeenk@2a02:2f04:a105:f00::7fe) |
2023-05-20 11:36:05 +0200 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2023-05-20 11:38:47 +0200 | xameer | (~xameer@144.48.224.179) (Ping timeout: 240 seconds) |
2023-05-20 11:40:49 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2023-05-20 11:42:04 +0200 | trev | (~trev@user/trev) (Quit: trev) |
2023-05-20 11:42:35 +0200 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
2023-05-20 11:45:08 +0200 | oo_miguel | (~Thunderbi@77.252.47.84) (Ping timeout: 240 seconds) |
2023-05-20 11:45:40 +0200 | freeside_ | (~mengwong@103.252.202.151) |
2023-05-20 11:46:32 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds) |
2023-05-20 11:46:47 +0200 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
2023-05-20 11:47:52 +0200 | user____3 | (~user@dynamic-046-114-181-048.46.114.pool.telefonica.de) |
2023-05-20 11:47:58 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
2023-05-20 11:49:33 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2023-05-20 11:51:44 +0200 | freeside_ | (~mengwong@103.252.202.151) (Ping timeout: 250 seconds) |
2023-05-20 11:52:49 +0200 | L29Ah | (~L29Ah@wikipedia/L29Ah) () |
2023-05-20 11:53:44 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-05-20 11:55:54 +0200 | nate2 | (~nate@98.45.169.16) |
2023-05-20 11:56:12 +0200 | ddellacosta | (~ddellacos@143.244.47.75) (Ping timeout: 268 seconds) |
2023-05-20 11:58:41 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) |
2023-05-20 11:59:35 +0200 | machinedgod | (~machinedg@88.128.88.155) (Remote host closed the connection) |
2023-05-20 12:01:08 +0200 | nate2 | (~nate@98.45.169.16) (Ping timeout: 268 seconds) |
2023-05-20 12:04:21 +0200 | titibandit | (~titibandi@user/titibandit) |
2023-05-20 12:06:29 +0200 | acidjnk | (~acidjnk@p200300d6e7072f309de47f84a0a0c5f9.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
2023-05-20 12:07:27 +0200 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8) |
2023-05-20 12:19:42 +0200 | xameer | (~xameer@144.48.224.179) |
2023-05-20 12:27:59 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 240 seconds) |
2023-05-20 12:31:36 +0200 | cheater | (~Username@user/cheater) |
2023-05-20 12:34:55 +0200 | freeside_ | (~mengwong@103.252.202.151) |
2023-05-20 12:39:21 +0200 | freeside_ | (~mengwong@103.252.202.151) (Ping timeout: 256 seconds) |
2023-05-20 12:39:58 +0200 | Luj | (~Luj@2a01:e0a:5f9:9681:5880:c9ff:fe9f:3dfb) (Quit: The Lounge - https://thelounge.chat) |
2023-05-20 12:40:05 +0200 | gensyst | (~gensyst@user/gensyst) |
2023-05-20 12:40:36 +0200 | <gensyst> | When/how are async exceptions actually usually used/called in PRACTICE? Apart from early termination with Ctrl-C, what else? |
2023-05-20 12:40:51 +0200 | <gensyst> | When/why do threads usually throwTo another thread? |
2023-05-20 12:41:02 +0200 | <gensyst> | what are the practical use cases out there? |
2023-05-20 12:41:08 +0200 | user____3 | (~user@dynamic-046-114-181-048.46.114.pool.telefonica.de) (Ping timeout: 250 seconds) |
2023-05-20 12:41:42 +0200 | Luj | (~Luj@2a01:e0a:5f9:9681:5880:c9ff:fe9f:3dfb) |
2023-05-20 12:45:10 +0200 | MajorBiscuit | (~MajorBisc@2001:1c00:2492:e200:7978:ae95:74b8:679a) (Quit: WeeChat 3.6) |
2023-05-20 12:53:35 +0200 | xameer | (~xameer@144.48.224.179) (Remote host closed the connection) |
2023-05-20 12:54:31 +0200 | <probie> | gensyst: It's a way to implement asynchronous message passing between threads in Haskell |
2023-05-20 12:56:20 +0200 | <gensyst> | what does that mean? |
2023-05-20 12:56:38 +0200 | xff0x | (~xff0x@ai098135.d.east.v6connect.net) (Quit: xff0x) |
2023-05-20 12:58:28 +0200 | xff0x | (~xff0x@ai098135.d.east.v6connect.net) |
2023-05-20 12:58:50 +0200 | <gensyst> | probie, |
2023-05-20 13:00:04 +0200 | <probie> | gensyst: If I have two threads currently executing code, and one thread wants to tell the other to stop what it's doing and do something else "right now", it can do that by throwing an exception at the other thread |
2023-05-20 13:00:30 +0200 | <probie> | e.g. main thread for a board game telling an ai thread it needs to yield a move right now |
2023-05-20 13:04:08 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 240 seconds) |
2023-05-20 13:04:19 +0200 | cheater | (~Username@user/cheater) |
2023-05-20 13:05:32 +0200 | <gensyst> | probie, as in the "ai thread" normally doing other things (things other than yielding moves)? |
2023-05-20 13:06:02 +0200 | xameer | (~xameer@144.48.224.179) |
2023-05-20 13:06:03 +0200 | <gensyst> | is this really a contrived use case? how would other languages do it? is this related to green threads? |
2023-05-20 13:06:24 +0200 | <[Leary]> | gensyst: Suppose you're performing some parallel search, but you only need some fixed number of results. The moment you have them, you want to send async exceptions to kill all the other threads so they stop eating your processor. This is a low level interface, however, and mostly you want to work at a higher level via e.g. stm, async, ki. |
2023-05-20 13:07:29 +0200 | <mauke> | gensyst: "other things" = searching for a better move |
2023-05-20 13:07:30 +0200 | phma | (~phma@host-67-44-208-177.hnremote.net) (Read error: Connection reset by peer) |
2023-05-20 13:08:05 +0200 | phma | (~phma@host-67-44-208-203.hnremote.net) |
2023-05-20 13:09:22 +0200 | trev | (~trev@user/trev) |
2023-05-20 13:11:27 +0200 | xff0x | (~xff0x@ai098135.d.east.v6connect.net) (Quit: xff0x) |
2023-05-20 13:12:55 +0200 | xff0x | (~xff0x@ai098135.d.east.v6connect.net) |
2023-05-20 13:13:10 +0200 | vglfr | (~vglfr@209.198.137.192) |
2023-05-20 13:13:47 +0200 | Pickchea | (~private@user/pickchea) (Quit: Leaving) |
2023-05-20 13:14:54 +0200 | use-value1 | (~Thunderbi@2a00:23c6:8a03:2f01:2973:25bc:e202:9763) |
2023-05-20 13:16:06 +0200 | <tomsmeding> | gensyst: System.Timeout.timeout |
2023-05-20 13:16:13 +0200 | <gensyst> | [Leary], for async, are you referring to cancel? https://hackage.haskell.org/package/async-2.2.4/docs/Control-Concurrent-Async.html#v:cancel |
2023-05-20 13:16:44 +0200 | <gensyst> | interesting. |
2023-05-20 13:16:52 +0200 | <gensyst> | i'm just curious, is this mechanism unique to haskell? |
2023-05-20 13:17:23 +0200 | <tomsmeding> | isn't this also kind of how posix signals work |
2023-05-20 13:17:35 +0200 | <tomsmeding> | modulo their idiosyncracies |
2023-05-20 13:17:56 +0200 | use-value | (~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf) (Ping timeout: 265 seconds) |
2023-05-20 13:17:56 +0200 | use-value1 | use-value |
2023-05-20 13:19:01 +0200 | <gensyst> | what i mean is, do i also have to "always worry about async exceptions" when writing code in other languages? |
2023-05-20 13:19:11 +0200 | xameer | (~xameer@144.48.224.179) (Remote host closed the connection) |
2023-05-20 13:19:13 +0200 | waleee | (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) |
2023-05-20 13:19:19 +0200 | <gensyst> | (it's been a while since i seriously used other languages so i forgot, if I ever knew) |
2023-05-20 13:19:29 +0200 | xameer | (~xameer@144.48.224.179) |
2023-05-20 13:21:28 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 240 seconds) |
2023-05-20 13:23:35 +0200 | <tomsmeding> | many languages have synchronous exceptions and usually worrying about those is bad enough |
2023-05-20 13:23:44 +0200 | vandita | (~vandit@178-164-188-109.pool.digikabel.hu) (Ping timeout: 248 seconds) |
2023-05-20 13:23:59 +0200 | <tomsmeding> | c++, java's exceptions, e.g. std::badalloc |
2023-05-20 13:24:20 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-05-20 13:24:54 +0200 | <[Leary]> | gensyst: `cancel` is one case, but normally the cancellation happens under the hood, e.g. in `race`. The `ki` equivalent is the automatic killing of all scoped threads upon exiting the scope. |
2023-05-20 13:25:23 +0200 | vandita | (~vandit@91-83-11-193.pool.digikabel.hu) |
2023-05-20 13:25:44 +0200 | zeenk | (~zeenk@2a02:2f04:a105:f00::7fe) (Quit: Konversation terminated!) |
2023-05-20 13:26:05 +0200 | <gensyst> | And what about the whole program killing Ctr+C case? how long time does the program (that handles async exceptions) get to cleanup (e.g. close database handle)? milliseconds? |
2023-05-20 13:26:07 +0200 | <gensyst> | is it OS dependent? |
2023-05-20 13:26:52 +0200 | <probie> | gensyst: it doesn't even have to terminate on that. sigint isn't sigterm or sigkill |
2023-05-20 13:27:08 +0200 | <gensyst> | & couldn't the OS kill the program *without* giving it a chance to do cleanup? |
2023-05-20 13:27:24 +0200 | <tomsmeding> | yes: on linux with SIGKILL, e.g. with the venerable kill -9 |
2023-05-20 13:28:03 +0200 | <tomsmeding> | on linux, SIGKILL and SIGSTOP are the only signals a program cannot catch, block or ignore (see man 7 signal) |
2023-05-20 13:29:42 +0200 | shriekingnoise_ | (~shrieking@186.137.175.87) |
2023-05-20 13:29:43 +0200 | <probie> | for example, upon receiving a sigint (ctrl-c), ghci doesn't stop, it just cancels whatever it's currently evaluating (if anything) |
2023-05-20 13:30:00 +0200 | <gensyst> | interesting |
2023-05-20 13:32:15 +0200 | shriekingnoise | (~shrieking@186.137.175.87) (Ping timeout: 250 seconds) |
2023-05-20 13:32:39 +0200 | tremon | (~tremon@83.80.159.219) |
2023-05-20 13:33:16 +0200 | dhil | (~dhil@78.45.150.83.ewm.ftth.as8758.net) |
2023-05-20 13:34:21 +0200 | czy | (~user@host-140-24.ilcub310.champaign.il.us.clients.pavlovmedia.net) (Remote host closed the connection) |
2023-05-20 13:34:44 +0200 | czy | (~user@host-140-24.ilcub310.champaign.il.us.clients.pavlovmedia.net) |
2023-05-20 13:35:12 +0200 | <tomsmeding> | also if I remember correctly, sending ctrl-c to a Haskell program once instructs the runtime system to try and exit gracefully, but sending it a second will immediately terminate the program |
2023-05-20 13:39:08 +0200 | shriekingnoise | (~shrieking@186.137.175.87) |
2023-05-20 13:41:29 +0200 | shriekingnoise_ | (~shrieking@186.137.175.87) (Ping timeout: 246 seconds) |
2023-05-20 13:43:00 +0200 | vglfr | (~vglfr@209.198.137.192) (Read error: Connection reset by peer) |
2023-05-20 13:43:09 +0200 | user____3 | (~user@dynamic-046-114-181-048.46.114.pool.telefonica.de) |
2023-05-20 13:47:15 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |
2023-05-20 13:47:44 +0200 | titibandit | (~titibandi@user/titibandit) (Remote host closed the connection) |
2023-05-20 13:54:00 +0200 | <gensyst> | thanks for this info mates |
2023-05-20 13:55:36 +0200 | Luj | (~Luj@2a01:e0a:5f9:9681:5880:c9ff:fe9f:3dfb) (Quit: The Lounge - https://thelounge.chat) |
2023-05-20 13:56:16 +0200 | michalz | (~michalz@185.246.204.93) |
2023-05-20 13:56:16 +0200 | titibandit | (~titibandi@user/titibandit) |
2023-05-20 13:57:08 +0200 | Luj | (~Luj@2a01:e0a:5f9:9681:5880:c9ff:fe9f:3dfb) |
2023-05-20 13:57:35 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 240 seconds) |
2023-05-20 13:58:38 +0200 | user____3 | (~user@dynamic-046-114-181-048.46.114.pool.telefonica.de) (Ping timeout: 246 seconds) |
2023-05-20 14:00:00 +0200 | mjrosenb | (7U2UjFMg@WHELK.CLUB.CC.CMU.EDU) (Remote host closed the connection) |
2023-05-20 14:09:17 +0200 | Albina_Pavlovna | (~Albina_Pa@2603-7000-76f0-76e0-444d-2bd4-302e-4c30.res6.spectrum.com) |
2023-05-20 14:10:50 +0200 | user____3 | (~user@dynamic-046-114-181-048.46.114.pool.telefonica.de) |
2023-05-20 14:26:08 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds) |
2023-05-20 14:27:44 +0200 | user____3 | (~user@dynamic-046-114-181-048.46.114.pool.telefonica.de) (Ping timeout: 248 seconds) |
2023-05-20 14:38:43 +0200 | michalz | (~michalz@185.246.204.93) (Remote host closed the connection) |
2023-05-20 14:38:45 +0200 | o-90 | (~o-90@gateway/tor-sasl/o-90) |
2023-05-20 14:45:10 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:510d:16a:b9b3:3b4) |
2023-05-20 14:47:22 +0200 | o-90 | (~o-90@gateway/tor-sasl/o-90) (Quit: Leaving) |
2023-05-20 14:47:31 +0200 | dhil | (~dhil@78.45.150.83.ewm.ftth.as8758.net) (Ping timeout: 240 seconds) |
2023-05-20 14:49:24 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:510d:16a:b9b3:3b4) (Ping timeout: 250 seconds) |
2023-05-20 14:54:54 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-05-20 14:55:28 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2023-05-20 14:57:43 +0200 | <gensyst> | Is onException's final action guaranteed to be called on the same thread? |
2023-05-20 14:57:58 +0200 | <gensyst> | if original was bound OS thread |
2023-05-20 14:58:32 +0200 | <gensyst> | (unlike mkWeakIORef and, it turns out, unlike ForeignPtr finalizer - cc. geekosaur (learned this from #ghc yesterday)) |
2023-05-20 14:59:11 +0200 | <gensyst> | terrorjack, cc |
2023-05-20 15:14:08 +0200 | acidjnk | (~acidjnk@p200300d6e7072f30242f00cc193c3fe9.dip0.t-ipconnect.de) |
2023-05-20 15:14:26 +0200 | L29Ah | (~L29Ah@wikipedia/L29Ah) |
2023-05-20 15:15:18 +0200 | mechap | (~mechap@user/mechap) (Quit: WeeChat 3.8) |
2023-05-20 15:15:45 +0200 | reverse | (~inversed@bcdcac82.skybroadband.com) (Read error: Connection reset by peer) |
2023-05-20 15:17:38 +0200 | titibandit | (~titibandi@user/titibandit) (Remote host closed the connection) |
2023-05-20 15:19:54 +0200 | Albina_Pavlovna | (~Albina_Pa@2603-7000-76f0-76e0-444d-2bd4-302e-4c30.res6.spectrum.com) (Quit: ZZZzzz…) |
2023-05-20 15:22:30 +0200 | wiosna_ | (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) |
2023-05-20 15:23:51 +0200 | cheater | (~Username@user/cheater) |
2023-05-20 15:24:31 +0200 | bgs | (~bgs@212-85-160-171.dynamic.telemach.net) (Ping timeout: 240 seconds) |
2023-05-20 15:25:15 +0200 | vandita | (~vandit@91-83-11-193.pool.digikabel.hu) (Ping timeout: 268 seconds) |
2023-05-20 15:25:32 +0200 | wiosna | (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) (Ping timeout: 265 seconds) |
2023-05-20 15:26:44 +0200 | vandita | (~vandit@92-249-185-242.pool.digikabel.hu) |
2023-05-20 15:27:48 +0200 | reverse | (~inversed@bcdcac82.skybroadband.com) |
2023-05-20 15:31:09 +0200 | Albina_Pavlovna | (~Albina_Pa@2603-7000-76f0-76e0-444d-2bd4-302e-4c30.res6.spectrum.com) |
2023-05-20 15:31:11 +0200 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
2023-05-20 15:32:05 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 240 seconds) |
2023-05-20 15:35:43 +0200 | mechap | (~mechap@user/mechap) |
2023-05-20 15:42:20 +0200 | bgs | (~bgs@212-85-160-171.dynamic.telemach.net) |
2023-05-20 15:43:13 +0200 | Albina_Pavlovna | (~Albina_Pa@2603-7000-76f0-76e0-444d-2bd4-302e-4c30.res6.spectrum.com) (Quit: ZZZzzz…) |
2023-05-20 15:45:20 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds) |
2023-05-20 15:48:04 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2023-05-20 15:48:39 +0200 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8) |
2023-05-20 15:52:50 +0200 | mzg | (~mzg@host-195-80-133-95.wtvk.pl) |
2023-05-20 15:57:26 +0200 | nate2 | (~nate@98.45.169.16) |
2023-05-20 15:59:20 +0200 | aweinstock | (~aweinstoc@cpe-74-76-189-75.nycap.res.rr.com) (Ping timeout: 265 seconds) |
2023-05-20 15:59:47 +0200 | Cagalations3-16 | (~Cagalatio@138.84.54.9) |
2023-05-20 15:59:59 +0200 | <Cagalations3-16> | omg |
2023-05-20 16:00:05 +0200 | <Cagalations3-16> | The channel with the greatest sense of humor |
2023-05-20 16:00:07 +0200 | <Cagalations3-16> | #haskell |
2023-05-20 16:00:11 +0200 | <Cagalations3-16> | Malcolm in the Middle Season 8 Episodes 1 and 2: 2. Reese Wilkerson Teams with Canadian Mountie Secret Agents to Trap and Torture Pedophile Tom Cruise https://justpaste.it/Tom_Cruise_BDSM_Tortured_Reese 1. Reese meets Edna Skilton, Fills Her Pussy with Shit, and Fucks that poopy cooter! https://justpaste.it/Reese_Fucks_Edna_Skilton_Malcolm |
2023-05-20 16:00:50 +0200 | <mauke> | @where ops |
2023-05-20 16:00:50 +0200 | <lambdabot> | byorgey Cale conal copumpkin dcoutts dibblego dolio edwardk geekosaur glguy jmcarthur johnw mniip monochrom quicksilver shachaf shapr ski |
2023-05-20 16:00:56 +0200 | aweinstock | (~aweinstoc@cpe-74-76-189-75.nycap.res.rr.com) |
2023-05-20 16:01:02 +0200 | <Cagalations3-16> | OMG channel emergency! |
2023-05-20 16:01:08 +0200 | <Cagalations3-16> | Watch the Freenode nerds panic |
2023-05-20 16:01:23 +0200 | ChanServ | +o mniip |
2023-05-20 16:01:23 +0200 | mniip | +kb-o *!*@138.84.54.9 *!*@138.84.54.9 mniip |
2023-05-20 16:01:31 +0200 | ChanServ | +o mniip |
2023-05-20 16:01:31 +0200 | Cagalations3-16 | mniip (Inappropriate ioctl for device) |
2023-05-20 16:01:31 +0200 | mniip | -o mniip |
2023-05-20 16:01:42 +0200 | ChanServ | +o mniip |
2023-05-20 16:01:42 +0200 | mniip | -o mniip |
2023-05-20 16:02:08 +0200 | nate2 | (~nate@98.45.169.16) (Ping timeout: 240 seconds) |
2023-05-20 16:03:33 +0200 | ChanServ | +o mniip |
2023-05-20 16:03:33 +0200 | mniip | -k * |
2023-05-20 16:03:36 +0200 | mniip | -o mniip |
2023-05-20 16:03:51 +0200 | <int-e> | phew |
2023-05-20 16:04:03 +0200 | <mniip> | rusty and accidentally set +k >.> |
2023-05-20 16:04:20 +0200 | <int-e> | (I was just about to point that out) |
2023-05-20 16:06:58 +0200 | <ncf> | "inappropriate ioctl for device" |
2023-05-20 16:11:06 +0200 | <hpc> | that's what the I in IRC stands for, donchaknow |
2023-05-20 16:13:15 +0200 | <int-e> | IO = IRC Operator? :) |
2023-05-20 16:16:52 +0200 | machinedgod | (~machinedg@84-115-229-216.cable.dynamic.surfer.at) |
2023-05-20 16:19:32 +0200 | boukenshaou | (~Boukensha@223.178.86.188) |
2023-05-20 16:24:00 +0200 | hugo- | (znc@verdigris.lysator.liu.se) (Ping timeout: 248 seconds) |
2023-05-20 16:28:17 +0200 | machinedgod | (~machinedg@84-115-229-216.cable.dynamic.surfer.at) (Ping timeout: 256 seconds) |
2023-05-20 16:29:05 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-05-20 16:35:02 +0200 | hugo- | (znc@verdigris.lysator.liu.se) |
2023-05-20 16:38:41 +0200 | shapr | (~user@76.29.230.19) |
2023-05-20 16:42:08 +0200 | hugo- | (znc@verdigris.lysator.liu.se) (Ping timeout: 240 seconds) |
2023-05-20 16:45:06 +0200 | glider_ | (~glider@user/glider) (Ping timeout: 250 seconds) |
2023-05-20 16:45:17 +0200 | anderson | (~ande@user/anderson) (Ping timeout: 265 seconds) |
2023-05-20 16:45:43 +0200 | <Athas> | Has there been any talk of GHC always defaulting to UTF-8, rather than pretending it's still the 1990s whenever the locale is not sufficiently set? |
2023-05-20 16:50:30 +0200 | hugo- | (znc@verdigris.lysator.liu.se) |
2023-05-20 16:55:03 +0200 | freeside_ | (~mengwong@103.252.202.151) |
2023-05-20 17:00:30 +0200 | gensyst | (~gensyst@user/gensyst) (Quit: Leaving) |
2023-05-20 17:00:42 +0200 | freeside_ | (~mengwong@103.252.202.151) (Ping timeout: 250 seconds) |
2023-05-20 17:02:36 +0200 | machinedgod | (~machinedg@84-115-229-216.cable.dynamic.surfer.at) |
2023-05-20 17:03:11 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 240 seconds) |
2023-05-20 17:03:19 +0200 | gmg | (~user@user/gehmehgeh) (Quit: Leaving) |
2023-05-20 17:06:07 +0200 | mzg | (~mzg@host-195-80-133-95.wtvk.pl) (Quit: leaving) |
2023-05-20 17:07:22 +0200 | freeside | (~mengwong@103.252.202.151) (Quit: Lost terminal) |
2023-05-20 17:07:22 +0200 | mzg | (mzg@lazy.unconscious.biz) |
2023-05-20 17:08:40 +0200 | gensyst | (~gensyst@user/gensyst) |
2023-05-20 17:10:35 +0200 | freeside | (~mengwong@103.252.202.151) |
2023-05-20 17:16:04 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-05-20 17:16:19 +0200 | <gensyst> | Are exception handlers (e.g. onException) called from the *same thread* as the original action? e.g. same bound thread (crucial for some c libraries) |
2023-05-20 17:18:31 +0200 | <[exa]> | gensyst: I'd love to have an assurance on that. Did you check the RTS code? |
2023-05-20 17:19:57 +0200 | freeside | (~mengwong@103.252.202.151) (Ping timeout: 268 seconds) |
2023-05-20 17:20:29 +0200 | Kuttenbrunzer | (~Kuttenbru@2a02:8108:8b80:1d48::b1f4) |
2023-05-20 17:20:36 +0200 | <c_wraith> | exception handlers? There's nothing special about them. They run in the thread that called the exception-handling function. |
2023-05-20 17:20:54 +0200 | <c_wraith> | Note - if working with FFI, that might not be the same thread that called the native code |
2023-05-20 17:21:11 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds) |
2023-05-20 17:21:15 +0200 | <c_wraith> | Because the safe FFI has a pool of threads that it will call native code from |
2023-05-20 17:22:03 +0200 | <hololeap> | gensyst: you should read this: https://www.fpcomplete.com/blog/2018/04/async-exception-handling-haskell/ |
2023-05-20 17:22:48 +0200 | <c_wraith> | well. Ok, the big problem is that there are two different ideas of "thread" here |
2023-05-20 17:25:45 +0200 | <gensyst> | c_wraith, "They run in the thread that called the exception-handling function." is this documented anywhere conclusively (or at least clearly visible from looking at some internal code)? |
2023-05-20 17:25:45 +0200 | <gensyst> | c_wraith, "safe FFI has a pool of threads". But if the original code also involved some FFI code, will the former (the resource allocation) FFI functions be called on the same thread as the cleanup FFI functions? |
2023-05-20 17:25:45 +0200 | <gensyst> | c_wraith, and does the same not apply for unsafe FFI? |
2023-05-20 17:26:38 +0200 | <c_wraith> | gensyst: it's just how functions work. |
2023-05-20 17:27:03 +0200 | <c_wraith> | Except, as I said, there are two different ideas of "thread" |
2023-05-20 17:27:28 +0200 | <c_wraith> | and that's basically the wrong question, because it's asking about Haskell |
2023-05-20 17:27:38 +0200 | <c_wraith> | And you actually care about native code |
2023-05-20 17:28:08 +0200 | vandita | (~vandit@92-249-185-242.pool.digikabel.hu) (Ping timeout: 240 seconds) |
2023-05-20 17:28:12 +0200 | <c_wraith> | from https://hackage.haskell.org/package/base-4.18.0.0/docs/Control-Concurrent.html#boundthreads : the operating system thread takes care of all the foreign calls made by the bound thread. |
2023-05-20 17:29:14 +0200 | <c_wraith> | If you're using a bound thread on the haskell side, all foreign calls it makes will be from the same OS thread |
2023-05-20 17:30:03 +0200 | <c_wraith> | whether that thread also runs the Haskell code really doesn't matter, as that should be irrelevant to the native code |
2023-05-20 17:30:06 +0200 | titibandit | (~titibandi@user/titibandit) |
2023-05-20 17:30:10 +0200 | vandita | (~vandit@94-21-233-126.pool.digikabel.hu) |
2023-05-20 17:31:25 +0200 | <c_wraith> | and if you have some expression (foo `onException` bar), that's just a function call. Unless foo or bar create their own threads, it's all going to run in the same Haskell thread. Which may or may not be the same OS thread. |
2023-05-20 17:32:51 +0200 | <c_wraith> | But you really can't talk about this unless you're very clear whether you're asking about Haskell threads or OS threads |
2023-05-20 17:33:22 +0200 | <gensyst> | ok, i see what you're driving at. let's focus on the ffi calls only then (for clarity). How do we really know that my_c_ffi_init() and my_c_ffi_dealloc() will be called on the same os thread? (i.e. why not different os threads)? We can be dealing with multiple bound threads, after all (with -threaded) |
2023-05-20 17:33:31 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2023-05-20 17:34:23 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-05-20 17:34:36 +0200 | <c_wraith> | Are they running in the same (bound) Haskell thread? Then the FFI calls will be on the same OS thread. |
2023-05-20 17:35:00 +0200 | <c_wraith> | Code never magically changes Haskell threads. |
2023-05-20 17:35:14 +0200 | motherfsck | (~motherfsc@user/motherfsck) |
2023-05-20 17:35:33 +0200 | <gensyst> | c_wraith, ah... thanks i'm getting it now |
2023-05-20 17:36:12 +0200 | <gensyst> | c_wraith, BTW this is completely different from ForeignPtr and mkWeakRefIO where we have no guarantees where the finalizer will run. |
2023-05-20 17:36:24 +0200 | <c_wraith> | yes, that is entirely different |
2023-05-20 17:36:31 +0200 | <c_wraith> | as are signal handlers |
2023-05-20 17:36:38 +0200 | <gensyst> | so channels (with exception handling) are the only option for properly doing FFI |
2023-05-20 17:36:49 +0200 | <gensyst> | (well, FFI that requires same os thread) |
2023-05-20 17:37:13 +0200 | <c_wraith> | yeah. when there's thread-local state, it needs to be handled entirely from one bound thread |
2023-05-20 17:37:33 +0200 | <Helle> | Do I feel like pain, do I feel like doing this new Vulkan shader demo from Haskell |
2023-05-20 17:38:35 +0200 | titibandit | (~titibandi@user/titibandit) (Ping timeout: 264 seconds) |
2023-05-20 17:39:00 +0200 | <Helle> | eeeh, may give it a shot |
2023-05-20 17:39:47 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 264 seconds) |
2023-05-20 17:40:11 +0200 | jero98772 | (~jero98772@2800:484:1d84:9000::2) (Ping timeout: 246 seconds) |
2023-05-20 17:40:19 +0200 | <gensyst> | c_wraith, thanks! |
2023-05-20 17:40:33 +0200 | <c_wraith> | you're welcome |
2023-05-20 17:49:31 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:510d:16a:b9b3:3b4) |
2023-05-20 17:51:41 +0200 | <jade[m]> | How would you use the ghc wasm backend to write some basic frontend code? |
2023-05-20 17:51:46 +0200 | jero98772 | (~jero98772@2800:484:1d84:9000:8822:84bd:a4f4:947f) |
2023-05-20 17:52:10 +0200 | <jade[m]> | I suppose I'm not sure where to start in regards to resources about actually using the wasm backend |
2023-05-20 17:52:30 +0200 | <jade[m]> | or wasm in general for that matter |
2023-05-20 17:52:43 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2023-05-20 17:55:48 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) |
2023-05-20 17:55:49 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
2023-05-20 17:55:49 +0200 | wroathe | (~wroathe@user/wroathe) |
2023-05-20 17:57:37 +0200 | econo | (uid147250@user/econo) |
2023-05-20 17:58:11 +0200 | zeenk | (~zeenk@2a02:2f04:a105:f00::7fe) |
2023-05-20 17:58:23 +0200 | machinedgod | (~machinedg@84-115-229-216.cable.dynamic.surfer.at) (Ping timeout: 246 seconds) |
2023-05-20 17:59:53 +0200 | Barfolomew | (~Barfolome@cgn-89-1-58-198.nc.de) |
2023-05-20 18:00:47 +0200 | motherfsck | (~motherfsc@user/motherfsck) (Ping timeout: 264 seconds) |
2023-05-20 18:03:20 +0200 | freeside | (~mengwong@103.252.202.151) |
2023-05-20 18:07:12 +0200 | Feuermagier_ | (~Feuermagi@user/feuermagier) |
2023-05-20 18:07:55 +0200 | Barfolomew | (~Barfolome@cgn-89-1-58-198.nc.de) (Quit: Client closed) |
2023-05-20 18:08:02 +0200 | boukenshaou | (~Boukensha@223.178.86.188) (Quit: Leaving) |
2023-05-20 18:08:21 +0200 | boukenshaou | (~Boukensha@223.178.86.188) |
2023-05-20 18:08:23 +0200 | freeside | (~mengwong@103.252.202.151) (Ping timeout: 240 seconds) |
2023-05-20 18:08:45 +0200 | boukenshaou | (~Boukensha@223.178.86.188) (Client Quit) |
2023-05-20 18:09:00 +0200 | Feuermagier_ | (~Feuermagi@user/feuermagier) (Client Quit) |
2023-05-20 18:09:52 +0200 | Feuermagier | (~Feuermagi@user/feuermagier) (Ping timeout: 265 seconds) |
2023-05-20 18:12:52 +0200 | <gensyst> | Any ideas about what's the overhead of newEmptyMVar? |
2023-05-20 18:13:08 +0200 | <gensyst> | (trying to get ideas if it's worth it to reuse existing mvar, vs. just creating a new one every time) |
2023-05-20 18:13:11 +0200 | <gensyst> | in some tight loop |
2023-05-20 18:14:12 +0200 | <hpc> | measure it perhaps? |
2023-05-20 18:16:59 +0200 | hugo- | (znc@verdigris.lysator.liu.se) (Ping timeout: 264 seconds) |
2023-05-20 18:20:11 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-05-20 18:22:31 +0200 | <jade[m]> | 5cm |
2023-05-20 18:26:06 +0200 | <[exa]> | gensyst: ghc/rts/PrimOps.cmm has all the effects |
2023-05-20 18:26:27 +0200 | <int-e> | gensyst: it's a heap allocation, 4 words I think. |
2023-05-20 18:26:53 +0200 | <[exa]> | gensyst: the newMVar wrapper just takes the result and rewraps it nicely, which should disappear, but there's another MVar allocation (MVar is data) |
2023-05-20 18:27:51 +0200 | hugo- | (znc@verdigris.lysator.liu.se) |
2023-05-20 18:30:32 +0200 | <gensyst> | ok cool |
2023-05-20 18:30:36 +0200 | <gensyst> | we're talking only nanoseconds |
2023-05-20 18:33:15 +0200 | Guest42 | (~Guest42@2404:7c00:44:ddfd:becd:94ab:5e65:8ddc) |
2023-05-20 18:34:16 +0200 | Guest42 | (~Guest42@2404:7c00:44:ddfd:becd:94ab:5e65:8ddc) (Client Quit) |
2023-05-20 18:34:23 +0200 | freeside | (~mengwong@103.252.202.151) |
2023-05-20 18:34:51 +0200 | <int-e> | newMVar is a tad more expensive than newEmptyMVar... it'll actually take an uncontested lock to do its job since it's implemented as newEmptyMVar followed by putMVar. |
2023-05-20 18:35:52 +0200 | rf | (~rf@2605:59c8:179c:f610:1a48:f594:f5b9:7d51) |
2023-05-20 18:40:23 +0200 | freeside | (~mengwong@103.252.202.151) (Ping timeout: 264 seconds) |
2023-05-20 18:43:31 +0200 | euandreh | (~Thunderbi@189.6.18.7) (Ping timeout: 240 seconds) |
2023-05-20 18:43:54 +0200 | shapr` | (~user@76.29.230.19) |
2023-05-20 18:45:28 +0200 | shapr | (~user@76.29.230.19) (Ping timeout: 240 seconds) |
2023-05-20 18:48:55 +0200 | euandreh | (~Thunderbi@189.6.18.7) |
2023-05-20 18:50:28 +0200 | jero98772 | (~jero98772@2800:484:1d84:9000:8822:84bd:a4f4:947f) (Ping timeout: 265 seconds) |
2023-05-20 18:52:03 +0200 | freeside | (~mengwong@103.252.202.151) |
2023-05-20 18:54:17 +0200 | euandreh | (~Thunderbi@189.6.18.7) (Remote host closed the connection) |
2023-05-20 18:54:53 +0200 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2023-05-20 18:54:55 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds) |
2023-05-20 18:55:44 +0200 | euandreh | (~Thunderbi@189.6.18.7) |
2023-05-20 18:56:08 +0200 | freeside | (~mengwong@103.252.202.151) (Ping timeout: 240 seconds) |
2023-05-20 18:59:55 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
2023-05-20 19:03:13 +0200 | Kuttenbrunzer | (~Kuttenbru@2a02:8108:8b80:1d48::b1f4) (Quit: Where is it) |
2023-05-20 19:03:28 +0200 | titibandit | (~titibandi@user/titibandit) |
2023-05-20 19:03:40 +0200 | jero98772 | (~jero98772@2800:484:1d84:9000:8822:84bd:a4f4:947f) |
2023-05-20 19:05:27 +0200 | freeside | (~mengwong@103.252.202.151) |
2023-05-20 19:09:47 +0200 | freeside | (~mengwong@103.252.202.151) (Ping timeout: 256 seconds) |
2023-05-20 19:17:49 +0200 | user__ | (~user@dynamic-046-114-176-045.46.114.pool.telefonica.de) |
2023-05-20 19:36:11 +0200 | vandita | (~vandit@94-21-233-126.pool.digikabel.hu) (Ping timeout: 264 seconds) |
2023-05-20 19:37:11 +0200 | user__ | (~user@dynamic-046-114-176-045.46.114.pool.telefonica.de) (Ping timeout: 240 seconds) |
2023-05-20 19:37:15 +0200 | Athas | (athas@sigkill.dk) (Ping timeout: 248 seconds) |
2023-05-20 19:37:36 +0200 | vandita | (~vandit@178-164-208-203.pool.digikabel.hu) |
2023-05-20 19:39:17 +0200 | nick_ | (~nick@2600:8807:9103:b700:4573:4de0:330c:f2fa) (Ping timeout: 265 seconds) |
2023-05-20 19:51:02 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-05-20 19:51:52 +0200 | titibandit | (~titibandi@user/titibandit) (Remote host closed the connection) |
2023-05-20 19:53:25 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 240 seconds) |
2023-05-20 19:56:35 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds) |
2023-05-20 19:58:18 +0200 | user__ | (~user@dynamic-046-114-176-045.46.114.pool.telefonica.de) |
2023-05-20 19:58:55 +0200 | nate2 | (~nate@98.45.169.16) |
2023-05-20 20:03:28 +0200 | nate2 | (~nate@98.45.169.16) (Ping timeout: 240 seconds) |
2023-05-20 20:03:36 +0200 | evincar | (~evincar@user/evincar) |
2023-05-20 20:10:02 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) |
2023-05-20 20:16:05 +0200 | shapr` | (~user@76.29.230.19) (Ping timeout: 256 seconds) |
2023-05-20 20:20:32 +0200 | freeside | (~mengwong@103.252.202.151) |
2023-05-20 20:24:25 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
2023-05-20 20:24:47 +0200 | freeside | (~mengwong@103.252.202.151) (Ping timeout: 240 seconds) |
2023-05-20 20:26:54 +0200 | Athas | (athas@sigkill.dk) |
2023-05-20 20:28:33 +0200 | Athas | (athas@sigkill.dk) (Client Quit) |
2023-05-20 20:35:35 +0200 | wiosna_ | (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) (Ping timeout: 264 seconds) |
2023-05-20 20:40:57 +0200 | <gensyst> | Can someone clarify this? https://hackage.haskell.org/package/base-4.18.0.0/docs/Control-Concurrent-MVar.html#v:modifyMVar_ |
2023-05-20 20:41:06 +0200 | <gensyst> | "This function is only atomic if there are no other producers for this MVar. In other words, it cannot guarantee that, by the time modifyMVar_ gets the chance to write to the MVar, the value of the MVar has not been altered by a write operation from another thread." |
2023-05-20 20:41:21 +0200 | spatchkaa | (~spatchkaa@S010600fc8da47b63.gv.shawcable.net) |
2023-05-20 20:41:34 +0200 | <gensyst> | What does it mean by "other producers"? Functions other than modifyMVar_ to modify the mvar, or just any producer in general? |
2023-05-20 20:41:56 +0200 | <gensyst> | i.e. can't I fearlessly call modifyMVar_ from multiple threads on the same mvar? |
2023-05-20 20:42:26 +0200 | <mauke> | no concurrent putMVar |
2023-05-20 20:42:44 +0200 | <mauke> | if all your threads only use modifyMVar, you should be safe |
2023-05-20 20:43:50 +0200 | <gensyst> | the doc should be more clear imo lol |
2023-05-20 20:43:52 +0200 | <gensyst> | mauke, thanks |
2023-05-20 20:44:46 +0200 | <mauke> | modifyMVar_ is basically take + put |
2023-05-20 20:45:11 +0200 | <mauke> | which is "atomic" if everyone else is blocked on take |
2023-05-20 20:46:47 +0200 | eugenrh | (~eugenrh@2a02:2f08:4707:3e00:454b:9ac4:8552:8de8) |
2023-05-20 20:47:14 +0200 | <Rembane> | What happens if they aren't blocked? Can another thread sneak in somewhere in the middle? |
2023-05-20 20:47:55 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 265 seconds) |
2023-05-20 20:48:16 +0200 | <gensyst> | Rembane, according to the doc they somehow can |
2023-05-20 20:48:40 +0200 | <mauke> | if they sneak in (between our take and put) with take, they will be blocked at that point |
2023-05-20 20:49:02 +0200 | <mauke> | if they sneak in with their own put, they will succeed and break our "atomicity" |
2023-05-20 20:49:19 +0200 | Athas | (athas@sigkill.dk) |
2023-05-20 20:50:07 +0200 | <Rembane> | Interesting. Is that ever a problem in practice? |
2023-05-20 20:50:35 +0200 | <mauke> | uh. if you design your program wrong, yes, I guess? |
2023-05-20 20:51:04 +0200 | <Rembane> | Seems reasonable. |
2023-05-20 20:52:26 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-05-20 20:53:15 +0200 | <mauke> | the way this is meant to be used is to have a single "state" value (shared across all threads, protected by the MVar) |
2023-05-20 20:53:50 +0200 | <mauke> | all threads that touch the state must retrieve the current version first and then update it |
2023-05-20 20:54:24 +0200 | <mauke> | as long as no thread tries to manufacture a new "state" from scratch, modifyMVar_ will be atomic in that setting |
2023-05-20 20:54:48 +0200 | mcglk | (~mcglk@131.191.19.145) (Read error: Connection reset by peer) |
2023-05-20 20:55:12 +0200 | <Rembane> | Then it doesn't sound too hard to code using MVars in a way that won't bite. |
2023-05-20 20:57:01 +0200 | mcglk | (~mcglk@131.191.19.145) |
2023-05-20 20:59:25 +0200 | wiosna | (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) |
2023-05-20 21:02:38 +0200 | <hololeap> | "is that ever a problem in practice?" those kinds of bugs WILL surface themselves eventually if you have a long-running program, which is why they are such a pain |
2023-05-20 21:02:51 +0200 | <hololeap> | (like on the order of weeks or months) |
2023-05-20 21:03:02 +0200 | <hololeap> | log back in ... "why is it crashed?" |
2023-05-20 21:03:46 +0200 | <hololeap> | which is why STM is better :3 |
2023-05-20 21:06:39 +0200 | <gensyst> | will the concurrency book (marlow) teach STM? |
2023-05-20 21:06:51 +0200 | <gensyst> | (and all this stuff) |
2023-05-20 21:07:35 +0200 | wiosna | (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
2023-05-20 21:07:44 +0200 | <Rembane> | gensyst: Yes! :D https://www.oreilly.com/library/view/parallel-and-concurrent/9781449335939/ch10.html |
2023-05-20 21:08:31 +0200 | <hololeap> | yeah although with STM you don't have to understand how it works to use it |
2023-05-20 21:09:02 +0200 | <mauke> | note that MVars are fairly low-level building blocks |
2023-05-20 21:09:11 +0200 | <mauke> | using them you can trivially create deadlocks, etc |
2023-05-20 21:13:43 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Read error: Connection reset by peer) |
2023-05-20 21:15:17 +0200 | use-value | (~Thunderbi@2a00:23c6:8a03:2f01:2973:25bc:e202:9763) (Remote host closed the connection) |
2023-05-20 21:15:36 +0200 | use-value | (~Thunderbi@2a00:23c6:8a03:2f01:2973:25bc:e202:9763) |
2023-05-20 21:15:36 +0200 | alexherbo2 | (~alexherbo@2a02-842a-8180-4601-11ef-7e9b-10a4-0f94.rev.sfr.net) |
2023-05-20 21:16:48 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2023-05-20 21:22:53 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |
2023-05-20 21:25:28 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 240 seconds) |
2023-05-20 21:28:48 +0200 | evincar | (~evincar@user/evincar) (Ping timeout: 240 seconds) |
2023-05-20 21:30:21 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2023-05-20 21:33:48 +0200 | gensyst | (~gensyst@user/gensyst) (Quit: Leaving) |
2023-05-20 21:33:51 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2023-05-20 21:34:34 +0200 | euandreh | (~Thunderbi@189.6.18.7) (Ping timeout: 250 seconds) |
2023-05-20 21:37:04 +0200 | vandita | (~vandit@178-164-208-203.pool.digikabel.hu) (Ping timeout: 248 seconds) |
2023-05-20 21:38:59 +0200 | vandita | (~vandit@84-236-122-31.pool.digikabel.hu) |
2023-05-20 21:41:36 +0200 | euandreh | (~Thunderbi@189.6.18.7) |
2023-05-20 21:53:10 +0200 | <EvanR> | gentauro, even if you only use takeMVar and putMVar "properly", a thread that fails badly might not put the value back, freezing everything. Another good reason to use modifyMVar_ |
2023-05-20 21:53:50 +0200 | pavonia | (~user@user/siracusa) |
2023-05-20 21:55:44 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds) |
2023-05-20 21:56:29 +0200 | freeside | (~mengwong@103.252.202.151) |
2023-05-20 21:56:34 +0200 | evincar | (~evincar@user/evincar) |
2023-05-20 21:56:54 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2023-05-20 21:57:32 +0200 | <hpc> | or possibly a reason to try and arrange things so you're not relying on many things borrowing from the same single var |
2023-05-20 21:58:10 +0200 | <EvanR> | but my global state! |
2023-05-20 21:58:11 +0200 | <hpc> | maybe your code can be arranged so any particular part of it only takes or puts, so it's more like Chan |
2023-05-20 21:59:56 +0200 | <mauke> | thread-chan, you're looking cute today |
2023-05-20 22:00:54 +0200 | freeside | (~mengwong@103.252.202.151) (Ping timeout: 265 seconds) |
2023-05-20 22:01:26 +0200 | evincar | (~evincar@user/evincar) (Ping timeout: 250 seconds) |
2023-05-20 22:05:04 +0200 | euandreh | (~Thunderbi@189.6.18.7) (Remote host closed the connection) |
2023-05-20 22:08:30 +0200 | euandreh | (~Thunderbi@189.6.18.7) |
2023-05-20 22:08:39 +0200 | <jean-paul[m]> | is there a lighter-weight NFC normalizer than the one in text-icu (bindings to the substantial ICU library)? |
2023-05-20 22:09:27 +0200 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection) |
2023-05-20 22:10:27 +0200 | <jean-paul[m]> | oh, maybe unicode-transforms |
2023-05-20 22:14:10 +0200 | evincar | (~evincar@user/evincar) |
2023-05-20 22:19:02 +0200 | evincar | (~evincar@user/evincar) (Ping timeout: 268 seconds) |
2023-05-20 22:23:53 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-05-20 22:25:10 +0200 | <ghostbuster> | anyone read this book https://haskellbook.com ? i see a lot of comments on various sites saying it worked better for them than LYAH |
2023-05-20 22:26:21 +0200 | <[exa]> | I didn't but the bits I've seen were good |
2023-05-20 22:26:26 +0200 | <geekosaur> | lyah's pretty poor, because it'slargely devoid of exercises so you never actually learn much. contrariwise haskellbook is >1000 pages and some people find it rather wordy for its content |
2023-05-20 22:27:01 +0200 | <jade[m]> | geekosaur: in the end you learn the most by actually programming :) |
2023-05-20 22:27:03 +0200 | <ghostbuster> | i stalled out last time i tried lyah.. i have a bit of motivation to try again but wondering if i should try a different resource |
2023-05-20 22:27:23 +0200 | <geekosaur> | trying other resources is always a good idea |
2023-05-20 22:27:35 +0200 | <ghostbuster> | i have some experience with math and lots of experience with imperative languages |
2023-05-20 22:27:56 +0200 | <[exa]> | ghostbuster: where you stalled btw? |
2023-05-20 22:27:57 +0200 | <geekosaur> | jade[m], trust me, I know, that's how I learned |
2023-05-20 22:28:13 +0200 | <geekosaur> | pretty much how I've always learned |
2023-05-20 22:28:17 +0200 | <jade[m]> | if you're an audiovisual person you might like "haskell for imperative programmers" on youtube |
2023-05-20 22:28:29 +0200 | <jade[m]> | helped me get started besides actually programming as geekosaur said |
2023-05-20 22:28:32 +0200 | <ghostbuster> | [exa]: i didn't really get stuck, just got bored maybe.. too much typing things into repl |
2023-05-20 22:28:46 +0200 | <jade[m]> | I like to choose a project and just try to get as far as I can and learn along the way |
2023-05-20 22:29:04 +0200 | <[exa]> | ghostbuster: did you try to make a shooting game in Gloss? |
2023-05-20 22:29:11 +0200 | Sgeo | (~Sgeo@user/sgeo) |
2023-05-20 22:29:18 +0200 | <ghostbuster> | i think i need IO for any real projects, right? |
2023-05-20 22:29:28 +0200 | <jade[m]> | yesn't |
2023-05-20 22:29:34 +0200 | [exa] | rofls |
2023-05-20 22:29:37 +0200 | <jade[m]> | depends on what you mean by "real" project |
2023-05-20 22:30:00 +0200 | <[exa]> | ghostbuster: well 99% of haskell is how to dodge full IO with other, more useful monads |
2023-05-20 22:30:28 +0200 | <ghostbuster> | i'm not sure what is full IO, i don't understand how a program can be useful that doesn't accept input nor produce output |
2023-05-20 22:30:54 +0200 | <[exa]> | ghostbuster: anyway I always recommend Gloss for starting because there you don't need to touch IO at all, and it draws nice animated graphics generated by your pure functions |
2023-05-20 22:30:58 +0200 | <ghostbuster> | maybe i'll skip to chapter 9 of LYAH and start with hello world |
2023-05-20 22:31:02 +0200 | <geekosaur> | there's a lot that can happen between doing the input and doing the output |
2023-05-20 22:31:05 +0200 | <jade[m]> | usually you can have `main = print $ foo x` or `main = readLn >>= (print . foo)` and get away with all of that being your entire IO |
2023-05-20 22:31:08 +0200 | <geekosaur> | much of that can be done without IO |
2023-05-20 22:31:28 +0200 | <ghostbuster> | geekosaur: wouldn't any sane compiler optimize it out if it was never printed? heh |
2023-05-20 22:31:31 +0200 | <[exa]> | yap `interact` ftw. :D |
2023-05-20 22:31:38 +0200 | <jade[m]> | jade[m]: the latter would just be `interacr` |
2023-05-20 22:31:57 +0200 | <jade[m]> | s/interacr/interact |
2023-05-20 22:32:11 +0200 | <geekosaur> | ghostbuster, input -> transform -> output |
2023-05-20 22:32:27 +0200 | <geekosaur> | much or all of the "transform" part can be pure |
2023-05-20 22:33:00 +0200 | <ghostbuster> | geekosaur: sure but if there is no input ther is nothing to transform |
2023-05-20 22:33:02 +0200 | <geekosaur> | and yes, not only the compiler but the runtime via laziness can optimize unused parts away |
2023-05-20 22:33:18 +0200 | <geekosaur> | nobody is telling you not to do input, or not to do output |
2023-05-20 22:33:19 +0200 | <jade[m]> | you can also output from no input |
2023-05-20 22:33:24 +0200 | <jade[m]> | constant input |
2023-05-20 22:33:36 +0200 | <geekosaur> | people are telling you that you can use simple recipes for those and concentrate on the "transform" part |
2023-05-20 22:35:42 +0200 | <ghostbuster> | gotcha |
2023-05-20 22:36:14 +0200 | <geekosaur> | `interact` is such a recipe, it takes a pure transformation and does the I/O for you |
2023-05-20 22:37:01 +0200 | <mauke> | main = interact (map toUpper) -- transform input to uppercase |
2023-05-20 22:37:10 +0200 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
2023-05-20 22:37:21 +0200 | <mauke> | main = interact ((++ "\n") . show . length) -- count number of characters |
2023-05-20 22:37:35 +0200 | <jade[m]> | my favorite way to learn the very basics of a language is to implement a function that lists primes. It usually involves most of the basics of a language and is still fairly small. |
2023-05-20 22:38:40 +0200 | <mauke> | meh. doesn't touch on input or string operations |
2023-05-20 22:39:38 +0200 | <jade[m]> | That's fair, you might extend it to print a given number of primes based on user input and also output in a nice format |
2023-05-20 22:40:48 +0200 | trev | (~trev@user/trev) (Quit: trev) |
2023-05-20 22:47:32 +0200 | michalz | (~michalz@185.246.204.72) |
2023-05-20 22:48:17 +0200 | evincar | (~evincar@user/evincar) |
2023-05-20 22:51:41 +0200 | <[exa]> | hm, is there any good shortcut for: (>>= sequence) . fmap (fmap inits) . (>>= sequence) ? |
2023-05-20 22:52:14 +0200 | <jade[m]> | can you describe what it does? I'm having a hard time reading that in my head |
2023-05-20 22:52:27 +0200 | <[exa]> | (the first fmap might as well be a map, and the second fmap is over (a,) |
2023-05-20 22:53:46 +0200 | <[exa]> | basically I take a list of [(Item, [dir])] where dir is [String], and I want a list [(Item, [dir])] where there are also all encompassing directories |
2023-05-20 22:54:11 +0200 | user__ | (~user@dynamic-046-114-176-045.46.114.pool.telefonica.de) (Ping timeout: 256 seconds) |
2023-05-20 22:54:27 +0200 | <[exa]> | > (>>= sequence) . map (fmap inits) . (>>= sequence) $ [("a", [["b","c"], ["d"]])] |
2023-05-20 22:54:29 +0200 | <lambdabot> | [("a",[]),("a",["b"]),("a",["b","c"]),("a",[]),("a",["d"])] |
2023-05-20 22:55:00 +0200 | <[exa]> | hm maybe I might triplefmap the inits first |
2023-05-20 22:55:28 +0200 | <jade[m]> | jesus christ, what a structure |
2023-05-20 22:56:01 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 240 seconds) |
2023-05-20 22:56:18 +0200 | <[exa]> | it's for hierarchical tags |
2023-05-20 22:56:52 +0200 | <[exa]> | (pages, slashed_tag_list) -> (page, all_implied_slashed_tag_lists) |
2023-05-20 22:57:16 +0200 | <jade[m]> | > (>>= sequence) . map (fmap inits) . (>>= sequence) $ [("a", [["b","c"], ["d"]]), ("e", [])] |
2023-05-20 22:57:18 +0200 | <lambdabot> | [("a",[]),("a",["b"]),("a",["b","c"]),("a",[]),("a",["d"])] |
2023-05-20 22:57:36 +0200 | <[exa]> | actually I think list comprehensions might be cool here |
2023-05-20 22:57:48 +0200 | <jade[m]> | \> (>>= sequence) . map (fmap inits) . (>>= sequence) $ [("a", [["b","c"], ["d"]]), ("e", [[]])] |
2023-05-20 22:58:06 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) |
2023-05-20 22:58:06 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
2023-05-20 22:58:06 +0200 | wroathe | (~wroathe@user/wroathe) |
2023-05-20 22:58:15 +0200 | <geekosaur> | you had a backslash in there |
2023-05-20 22:58:18 +0200 | <jade[m]> | > (>>= sequence) . map (fmap inits) . (>>= sequence) $ [("a", [["b","c"], ["d"]]), ("e", [[]])] |
2023-05-20 22:58:19 +0200 | <lambdabot> | [("a",[]),("a",["b"]),("a",["b","c"]),("a",[]),("a",["d"]),("e",[])] |
2023-05-20 22:58:31 +0200 | eugenrh | (~eugenrh@2a02:2f08:4707:3e00:454b:9ac4:8552:8de8) (Ping timeout: 240 seconds) |
2023-05-20 22:58:47 +0200 | <jade[m]> | I think I understand what the function does in general, let me think about it |
2023-05-20 22:59:26 +0200 | <[exa]> | ah yeah wunderbar, [(p,t) | (p,htl) <- x, ht <- htl, t <- inits ht] |
2023-05-20 22:59:43 +0200 | <jade[m]> | oh haha amazing |
2023-05-20 22:59:47 +0200 | <[exa]> | (p = page, htl = hierarchical-tag list) |
2023-05-20 23:00:00 +0200 | <[exa]> | (honestly thanks for rubberducking) |
2023-05-20 23:00:02 +0200 | <jade[m]> | that's a lot more expressive |
2023-05-20 23:00:09 +0200 | <jade[m]> | very readable as well |
2023-05-20 23:00:11 +0200 | <[exa]> | still the (>>=sequence) doesn't have a name? |
2023-05-20 23:00:41 +0200 | <jade[m]> | :t >>= sequence |
2023-05-20 23:00:42 +0200 | <lambdabot> | error: parse error on input ‘>>=’ |
2023-05-20 23:00:53 +0200 | <[exa]> | (my brain: you used it twice there ofcourse it has to have a name!!!111) |
2023-05-20 23:00:54 +0200 | <jade[m]> | :t (>>= sequence) |
2023-05-20 23:00:55 +0200 | <lambdabot> | (Monad m, Traversable t) => m (t (m a)) -> m (t a) |
2023-05-20 23:01:14 +0200 | <[exa]> | it does an interesting kind of squash right? |
2023-05-20 23:01:22 +0200 | <mauke> | :t concatMap sequence |
2023-05-20 23:01:23 +0200 | <lambdabot> | (Traversable t1, Foldable t2) => t2 (t1 [a]) -> [t1 a] |
2023-05-20 23:01:29 +0200 | <jade[m]> | hoogle finds nothing |
2023-05-20 23:02:38 +0200 | <jade[m]> | [exa]: indeed |
2023-05-20 23:03:02 +0200 | <[exa]> | well let's leave this open, tbh I can't imagine anyone naming this sensibly |
2023-05-20 23:03:21 +0200 | <[exa]> | (my brain now: it's transverse!) |
2023-05-20 23:03:50 +0200 | <jade[m]> | I believe that's something else hmm hmm |
2023-05-20 23:04:33 +0200 | <[exa]> | ah yeah true, recursion schemes have that one |
2023-05-20 23:04:36 +0200 | <[exa]> | ointeressant |
2023-05-20 23:05:04 +0200 | <jade[m]> | I was thinking of something else entirely, but that's ok hahaha |
2023-05-20 23:06:01 +0200 | <Profpatsch> | Is there a way to expland a template haskell splice within GHCi? |
2023-05-20 23:06:16 +0200 | wiosna | (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) |
2023-05-20 23:06:35 +0200 | <[exa]> | (I love how "expland" mid-rhymes with "splice") |
2023-05-20 23:06:51 +0200 | <jade[m]> | based on the structure it could be something along the lines of unpack + sequence, because it essentially removes a monadic layer and then applies a sequence |
2023-05-20 23:06:57 +0200 | <jade[m]> | (just based off the type) |
2023-05-20 23:07:25 +0200 | <jade[m]> | but like a reversed sequence |
2023-05-20 23:07:29 +0200 | <jade[m]> | wow the type is really weird |
2023-05-20 23:07:40 +0200 | <Rembane> | cosequence! :D |
2023-05-20 23:07:53 +0200 | user__ | (~user@dynamic-046-114-176-045.46.114.pool.telefonica.de) |
2023-05-20 23:07:57 +0200 | <jade[m]> | jade[m]: disregard this |
2023-05-20 23:08:09 +0200 | <[exa]> | Profpatsch: expand as in "you want to see what code comes out of it" ? |
2023-05-20 23:08:19 +0200 | <jade[m]> | Rembane: consequence? ;) |
2023-05-20 23:09:05 +0200 | <Profpatsch> | [exa]: exactly |
2023-05-20 23:09:19 +0200 | <[exa]> | Profpatsch: anyway I'd go with -ddump-splices and I'm really not sure if there's anything dynamic for that in ghci |
2023-05-20 23:09:19 +0200 | <Profpatsch> | it’s a thingy that creates multiple toplevel bindings, akin to makeLenses |
2023-05-20 23:09:45 +0200 | <Rembane> | jade[m]: That's a good one. :) |
2023-05-20 23:10:08 +0200 | jank11 | (~jank11@17-14-122.cgnat.fonira.net) |
2023-05-20 23:10:37 +0200 | wiosna | (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) (Ping timeout: 256 seconds) |
2023-05-20 23:11:25 +0200 | <[exa]> | oh noes ghci can't -ddump-* |
2023-05-20 23:12:39 +0200 | <ncf> | cosequence is distribute |
2023-05-20 23:13:31 +0200 | <Profpatsch> | [exa]: it can, I just tried it |
2023-05-20 23:13:57 +0200 | <geekosaur> | turning ot back off is the trick |
2023-05-20 23:13:59 +0200 | <geekosaur> | *it |
2023-05-20 23:18:13 +0200 | <[exa]> | oh really |
2023-05-20 23:18:27 +0200 | <[exa]> | I blindly trusted the --show-options |
2023-05-20 23:18:30 +0200 | <[exa]> | cool |
2023-05-20 23:22:02 +0200 | bgs | (~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection) |
2023-05-20 23:23:56 +0200 | <geekosaur> | ":seti -ddump-*" works for me |
2023-05-20 23:25:25 +0200 | <geekosaur> | like I said though, you can't turn it back off; there doesn't seme to be 'no' options for most -ddump-* options |
2023-05-20 23:33:35 +0200 | jank11 | (~jank11@17-14-122.cgnat.fonira.net) (Quit: Lost terminal) |
2023-05-20 23:40:23 +0200 | vandita | (~vandit@84-236-122-31.pool.digikabel.hu) (Ping timeout: 240 seconds) |
2023-05-20 23:42:09 +0200 | zeenk | (~zeenk@2a02:2f04:a105:f00::7fe) (Quit: Konversation terminated!) |
2023-05-20 23:42:21 +0200 | vandita | (~vandit@92-249-150-135.static.digikabel.hu) |
2023-05-20 23:47:06 +0200 | jforberg | (~jforberg@c-56aa70d5.016-9-6c756e3.bbcust.telenor.se) |
2023-05-20 23:52:47 +0200 | evincar | (~evincar@user/evincar) (Ping timeout: 240 seconds) |
2023-05-20 23:52:51 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |