Home liberachat/#haskell: Logs Calendar

Logs on 2024-09-07 (liberachat/#haskell)

00:03:44 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds)
00:14:30 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
00:19:24 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
00:21:21 ZharMeny joins (~ZharMeny@user/ZharMeny)
00:22:31 × gmg quits (~user@user/gehmehgeh) (Remote host closed the connection)
00:23:16 gmg joins (~user@user/gehmehgeh)
00:32:16 × califax quits (~califax@user/califx) (Remote host closed the connection)
00:33:17 EarlPitts joins (~EarlPitts@20014C4C1C6E670010D8FFE22A66D832.catv.pool.telekom.hu)
00:33:24 califax joins (~califax@user/califx)
00:37:29 × EarlPitts quits (~EarlPitts@20014C4C1C6E670010D8FFE22A66D832.catv.pool.telekom.hu) (Ping timeout: 256 seconds)
00:46:05 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
00:50:54 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
00:56:21 × spew quits (~spew@201.141.99.170) (Quit: spew)
01:01:52 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
01:06:49 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
01:10:12 × poscat quits (~poscat@user/poscat) (Read error: Connection reset by peer)
01:10:35 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
01:13:20 Spawns_Carpeting joins (~mobile@user/spawns-carpeting/x-6969421)
01:13:43 poscat joins (~poscat@user/poscat)
01:14:43 × poscat quits (~poscat@user/poscat) (Read error: Connection reset by peer)
01:14:48 poscat0x04 joins (~poscat@user/poscat)
01:21:57 EarlPitts joins (~EarlPitts@20014C4C1C6E670010D8FFE22A66D832.catv.pool.telekom.hu)
01:26:13 × EarlPitts quits (~EarlPitts@20014C4C1C6E670010D8FFE22A66D832.catv.pool.telekom.hu) (Ping timeout: 256 seconds)
01:29:23 whatsupdoc joins (uid509081@id-509081.hampstead.irccloud.com)
01:33:26 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
01:35:15 poscat joins (~poscat@user/poscat)
01:38:08 EarlPitts joins (~EarlPitts@20014C4C1C6E670010D8FFE22A66D832.catv.pool.telekom.hu)
01:38:22 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
01:38:30 × poscat0x04 quits (~poscat@user/poscat) (Ping timeout: 246 seconds)
01:39:15 × neuroevolutus quits (~neuroevol@146.70.211.88) (Ping timeout: 256 seconds)
01:42:00 × poscat quits (~poscat@user/poscat) (Ping timeout: 246 seconds)
01:42:39 × EarlPitts quits (~EarlPitts@20014C4C1C6E670010D8FFE22A66D832.catv.pool.telekom.hu) (Ping timeout: 256 seconds)
01:44:06 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 246 seconds)
01:44:51 × califax quits (~califax@user/califx) (Ping timeout: 260 seconds)
01:45:00 califax_ joins (~califax@user/califx)
01:46:14 califax_ is now known as califax
01:46:39 × weary-traveler quits (~user@user/user363627) (Ping timeout: 260 seconds)
01:46:55 × stef204 quits (~stef204@user/stef204) (Quit: WeeChat 4.2.1)
01:49:13 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
01:51:59 poscat joins (~poscat@user/poscat)
01:54:08 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
01:55:28 dsrt^ joins (~dsrt@c-98-242-74-66.hsd1.ga.comcast.net)
02:05:01 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
02:05:58 weary-traveler joins (~user@user/user363627)
02:10:11 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds)
02:11:53 EarlPitts joins (~EarlPitts@20014C4C1C6E670010D8FFE22A66D832.catv.pool.telekom.hu)
02:16:05 × EarlPitts quits (~EarlPitts@20014C4C1C6E670010D8FFE22A66D832.catv.pool.telekom.hu) (Ping timeout: 256 seconds)
02:16:18 × ZharMeny quits (~ZharMeny@user/ZharMeny) (Quit: ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.4))
02:20:47 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
02:23:31 × dyniec quits (~dyniec@dybiec.info) (Quit: WeeChat 4.2.2)
02:25:39 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
02:36:33 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
02:41:04 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
02:44:06 sroso joins (~sroso@user/SrOso)
02:45:40 EarlPitts joins (~EarlPitts@20014C4C1C6E670010D8FFE22A66D832.catv.pool.telekom.hu)
02:47:37 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
02:50:05 × EarlPitts quits (~EarlPitts@20014C4C1C6E670010D8FFE22A66D832.catv.pool.telekom.hu) (Ping timeout: 256 seconds)
02:51:33 × td_ quits (~td@i53870938.versanet.de) (Ping timeout: 248 seconds)
02:52:34 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
02:53:09 td_ joins (~td@i5387091F.versanet.de)
03:03:04 EarlPitts joins (~EarlPitts@20014C4C1C6E670010D8FFE22A66D832.catv.pool.telekom.hu)
03:03:22 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
03:05:00 × paddymahoney quits (~paddymaho@pool-99-250-10-137.cpe.net.cable.rogers.com) (Ping timeout: 276 seconds)
03:07:39 × EarlPitts quits (~EarlPitts@20014C4C1C6E670010D8FFE22A66D832.catv.pool.telekom.hu) (Ping timeout: 256 seconds)
03:08:14 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds)
03:15:25 paddymahoney joins (~paddymaho@pool-99-250-10-137.cpe.net.cable.rogers.com)
03:19:09 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
03:23:51 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
03:28:00 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds)
03:28:56 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
03:34:56 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
03:37:08 EarlPitts joins (~EarlPitts@20014C4C1C6E670010D8FFE22A66D832.catv.pool.telekom.hu)
03:37:30 × aforemny quits (~aforemny@2001:9e8:6cfb:d00:89c3:59d4:5ce3:af24) (Ping timeout: 246 seconds)
03:37:38 aforemny_ joins (~aforemny@i59F516CB.versanet.de)
03:39:43 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
03:41:39 × EarlPitts quits (~EarlPitts@20014C4C1C6E670010D8FFE22A66D832.catv.pool.telekom.hu) (Ping timeout: 256 seconds)
03:42:57 EarlPitts joins (~EarlPitts@20014C4C1C6E670010D8FFE22A66D832.catv.pool.telekom.hu)
03:44:37 × EarlPitts quits (~EarlPitts@20014C4C1C6E670010D8FFE22A66D832.catv.pool.telekom.hu) (Remote host closed the connection)
03:47:07 × gmg quits (~user@user/gehmehgeh) (Remote host closed the connection)
03:47:52 gmg joins (~user@user/gehmehgeh)
03:49:06 × Mateon1 quits (~Thunderbi@user/meow/Mateon1) (Quit: Mateon1)
03:50:43 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
03:55:21 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
04:06:09 amjoseph parts (~amjoseph@static-198-44-128-146.cust.tzulo.com) ()
04:06:31 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
04:11:33 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
04:16:21 EarlPitts joins (~EarlPitts@20014C4C1C6E670010D8FFE22A66D832.catv.pool.telekom.hu)
04:20:45 × EarlPitts quits (~EarlPitts@20014C4C1C6E670010D8FFE22A66D832.catv.pool.telekom.hu) (Ping timeout: 256 seconds)
04:22:44 madariaga joins (~madariaga@user/madariaga)
04:28:24 EarlPitts joins (~EarlPitts@20014C4C1C6E670010D8FFE22A66D832.catv.pool.telekom.hu)
04:33:29 × vglfr quits (~vglfr@2601:14d:4e01:1370:3909:c471:2d0b:32f9) (Ping timeout: 260 seconds)
04:33:46 vglfr joins (~vglfr@c-73-163-164-68.hsd1.md.comcast.net)
04:35:18 youthlic joins (~Thunderbi@user/youthlic)
04:38:05 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
04:42:57 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
04:48:37 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
04:51:14 × vglfr quits (~vglfr@c-73-163-164-68.hsd1.md.comcast.net) (Ping timeout: 252 seconds)
04:53:27 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
05:04:24 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
05:09:49 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
05:16:58 × madariaga quits (~madariaga@user/madariaga) (Quit: madariaga)
05:17:35 machinedgod joins (~machinedg@d50-99-47-73.abhsia.telus.net)
05:18:06 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
05:21:49 meritamen joins (~meritamen@user/meritamen)
05:22:24 × meritamen quits (~meritamen@user/meritamen) (Client Quit)
05:23:04 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
05:23:40 × weary-traveler quits (~user@user/user363627) (Remote host closed the connection)
05:28:39 × youthlic quits (~Thunderbi@user/youthlic) (Ping timeout: 276 seconds)
05:31:58 fireking04 joins (~user@36-227-86-135.dynamic-ip.hinet.net)
05:33:27 weary-traveler joins (~user@user/user363627)
05:33:53 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
05:34:45 × fireking04 quits (~user@36-227-86-135.dynamic-ip.hinet.net) (Remote host closed the connection)
05:35:54 harveypwca joins (~harveypwc@2601:246:d080:b40:1889:d9bf:2dd8:b288)
05:40:20 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds)
05:44:56 youthlic joins (~Thunderbi@user/youthlic)
05:46:33 neuroevolutus joins (~neuroevol@146.70.211.88)
05:48:42 athan joins (~athan@syn-098-153-145-140.biz.spectrum.com)
05:49:18 <dminuoso> Now a world in which you could not only get first-class and guaranteed support for utf8 literals as well as first-class support for interned strings - that I would like.
05:49:37 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
05:55:00 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
05:55:09 × Pixi` quits (~Pixi@user/pixi) (Quit: Leaving)
06:01:47 Pixi joins (~Pixi@user/pixi)
06:05:25 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
06:07:45 <fr33domlover> tomsmeding: Thanks for the update. Interesting. How GHC works is magic to me :p
06:10:06 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
06:10:57 <fr33domlover> Q: I want to do DB transaction queries (using the persistent package) inside STM - i.e. atomic transaction allowed to do both TVar edits and SQL updates - is it safe to use unsafeIOinSTM? Or better to run the DB connection in separate thread and communicate with it via a TChan/TVar/TQueue?
06:11:53 × RedFlamingos quits (~RedFlamin@user/RedFlamingos) (Ping timeout: 252 seconds)
06:12:45 briandaed joins (~root@185.234.210.211)
06:14:06 <dsal> fr33domlover: STM and databases are incompatible concepts.
06:15:47 <dsal> Communicating via TChans is probably sensible. You do need to communicate every possible final state on the other end of the channel.
06:17:05 <dminuoso> "is it safe to use unsafeIOinSTM" :-)
06:17:18 <dminuoso> Only if you use safeUnsafeIOinSTM.
06:19:39 <dsal> I'm not sure where I'd use something like that. Maybe something like a log or even get a timestamp for something, but even those seem like pretty bad ideas.
06:19:44 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
06:20:47 <dminuoso> Oh you wouldn't use it because such a thing does not exist.
06:21:11 <dminuoso> unsafeIOinSTM is roughly as safe as unsafePerformIO
06:21:13 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
06:21:49 <dminuoso> If you're fine with the IO action potentially being executed many times, its fine.
06:22:11 <dsal> Yeah, it just clashes with my mental model of how to use STM.
06:22:50 <dsal> I've used unsafePerformIO to initialize a TVar for a cache, I think.
06:23:32 × uli-fem quits (~lambdapin@203.221.238.251) (Ping timeout: 255 seconds)
06:23:57 <dminuoso> Though unsafePerformIO can be more dangerous, because it can lead to some interesting parts. I once created a Map of IORef with unsafePerfomIO, and the compiler after floating aliased all those IORefs together.
06:24:20 <dminuoso> Was a fun debugging session.
06:24:54 × machinedgod quits (~machinedg@d50-99-47-73.abhsia.telus.net) (Ping timeout: 260 seconds)
06:26:30 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
06:35:44 takuan joins (~takuan@178-116-218-225.access.telenet.be)
06:37:00 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
06:41:58 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
06:43:58 misterfish joins (~misterfis@84.53.85.146)
06:50:38 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
06:56:00 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
06:56:35 <aljustiet> [hello](https://iernathsi.com)
07:00:21 × JamesMowery quits (~JamesMowe@ip98-167-207-182.ph.ph.cox.net) (Quit: Goodbye)
07:00:38 JamesMowery joins (~JamesMowe@ip98-167-207-182.ph.ph.cox.net)
07:03:59 × AlexZenon quits (~alzenon@94.233.240.119) (Ping timeout: 260 seconds)
07:05:04 × AlexNoo quits (~AlexNoo@94.233.240.119) (Ping timeout: 252 seconds)
07:06:25 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
07:07:26 × briandaed quits (~root@185.234.210.211) (Remote host closed the connection)
07:09:19 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
07:11:21 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
07:11:26 × raym quits (~ray@user/raym) (Quit: rebooting...)
07:14:43 × EarlPitts quits (~EarlPitts@20014C4C1C6E670010D8FFE22A66D832.catv.pool.telekom.hu) (Ping timeout: 256 seconds)
07:18:49 ash3en joins (~Thunderbi@2a01:c23:8d00:4c00:b6d6:b186:b213:6e89)
07:19:59 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
07:21:46 × misterfish quits (~misterfis@84.53.85.146) (Read error: Connection reset by peer)
07:22:12 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
07:25:58 misterfish joins (~misterfis@84.53.85.146)
07:26:01 × neuroevolutus quits (~neuroevol@146.70.211.88) (Quit: Client closed)
07:26:29 causal joins (~eric@50.35.88.207)
07:27:01 × ash3en quits (~Thunderbi@2a01:c23:8d00:4c00:b6d6:b186:b213:6e89) (Quit: ash3en)
07:27:21 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
07:31:48 uli-fem joins (~lambdapin@203.221.238.251)
07:32:23 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
07:32:44 × Square quits (~Square@user/square) (Ping timeout: 260 seconds)
07:36:04 × harveypwca quits (~harveypwc@2601:246:d080:b40:1889:d9bf:2dd8:b288) (Quit: Leaving)
07:36:54 Square joins (~Square@user/square)
07:38:00 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
07:43:11 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds)
07:44:34 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
07:51:39 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
07:54:22 sourcetarius joins (~sourcetar@user/sourcetarius)
07:56:24 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
07:58:15 <fr33domlover> I see there's the stm-io-hooks package, which hasnt had updates in a long time. But I guess it's enough to start the STM transaction by sending via the TChan a command to start the DB transaction. And at the end, similar command to commit the DB transaction? Which synchronously waits for DB to approve, and throws otherwise (I'll try that... am I
07:58:15 <fr33domlover> missing something? :p)
07:59:34 <tomsmeding> fr33domlover: not sure if you were planning to do this, but just in case: never block manually inside an STM transaction
08:00:04 <tomsmeding> blocking via existing STM combinators is fine, such as `readTChan` or `retry`, but don't `unsafeIOToSTM` a blocking thing into STM
08:00:50 <fr33domlover> Ah cool, yes, I meant blocking via existing STM functions
08:01:13 <fr33domlover> like waiting on a TMVar etc
08:01:49 <tomsmeding> also, note that STM transactions are intended to be small: in the implementation, whenever something happens during your transaction that invalidates your progress so far, the transaction is simply restarted
08:03:20 <tomsmeding> if you do a `readTVar` at the beginning of a transaction, and try to `writeTVar` to that same variable at the end, and someone else got in between with their own `writeTVar`, then your transaction is aborted and tried again
08:04:07 <tomsmeding> this semantics is good for small atomic transactions on data structures; it is very bad if you e.g. `writeTChan` and then later `readTChan` a response
08:04:28 <tomsmeding> because that might take a long time, and in between you probably got invalidated, so you'll get restarted and you writeTChan again, etc.
08:04:36 <fr33domlover> yeah that's a challenge.. I mean, their side in my case would be roughly like in a web app that runs some db transaction in a request handler. OTOH there's no (or barely any) concurrent access in my case, im using STM for the atomicity
08:05:13 <tomsmeding> an action that requires someone else to do something halfway through (such as responding to a message on a TChan) is not atomic
08:05:23 <fr33domlover> The only concurrency is sending commands to db thread via a TChan
08:05:29 <tomsmeding> right
08:05:47 <fr33domlover> Hmm I see
08:05:47 <tomsmeding> that's fine, but the receipt of a response to those commands must be a _separate_ transaction
08:05:57 <tomsmeding> because it can't be atomic if someone else has to do something in the meantime!
08:06:24 <tomsmeding> you can't "undo"/"abort" someone else's actions
08:07:01 acidjnk_new joins (~acidjnk@p200300d6e72cfb079527f265a4c52d61.dip0.t-ipconnect.de)
08:07:26 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
08:07:41 <tomsmeding> in particular, doing a DB query (even if by proxy) inside 1 STM transaction is not going to work
08:07:54 <tomsmeding> you might _send_ the query in one transaction and then _receive_ the response in another
08:09:39 <fr33domlover> If I try to send actions via TChan and wait on the TMVars that return the results - how will GHCr/untime tell me that I shouldnt?
08:10:10 fr33domlover should try and see when reunites with his laptop :p
08:11:36 <tomsmeding> fr33domlover: a write to a TVar (and thus to a TChan, which is composed of TVars) is not actually committed until the STM transaction completes
08:11:48 × Square quits (~Square@user/square) (Ping timeout: 276 seconds)
08:11:55 <tomsmeding> other threads will block reading the channel until the write is committed
08:12:54 <fr33domlover> Hm I see, so it has to be one-sided communication
08:12:54 <tomsmeding> so this will deadlock (absent any other activity): [thread A: atomically $ do writeTChan chan1 x ; readTChan chan2] [thread B: atomically $ do readTChan chan1 >>= writeTChan chan2]
08:13:14 <tomsmeding> because the `readTChan chan1` won't complete until thread A has completed their transaction -> deadlock
08:13:20 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds)
08:13:22 <tomsmeding> indeed
08:14:03 <tomsmeding> (which makes sense: if other threads could observe intermediate states of A's transaction, namely chan1 being written to but chan2 not yet being read from, then A's transaction was not atomic!)
08:16:58 <fr33domlover> Hm conclusion: If I wanted to combine SQL DB with in-memory atomic variables (non concurrent in my case) I need to do it manually, implementing the reversibility in IO instead of using STM
08:17:25 <fr33domlover> Or just stick to SQL only (I do need the disk persistence)
08:17:59 <tomsmeding> stm is cool but it isn't magic :)
08:18:56 <davean> I mean you just need to combine disk paxos with STM and you can do it ...
08:19:08 <tomsmeding> reproducer of the deadlock: https://play.haskell.org/saved/P40xVNIP
08:19:12 <tomsmeding> (GHC even detects it)
08:20:00 <tomsmeding> oh uh, oops, forgot the done signal
08:20:27 <tomsmeding> https://play.haskell.org/saved/6PxY784l that's better
08:20:41 <tomsmeding> if you split up the transaction in threadA in two parts, then the program does work
08:23:28 × tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
08:24:14 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
08:28:02 Tuplanolla joins (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi)
08:29:01 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
08:31:29 × TonyStone quits (~TonyStone@user/TonyStone) (Ping timeout: 260 seconds)
08:33:43 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 264 seconds)
08:39:02 euleritian joins (~euleritia@dynamic-176-006-133-190.176.6.pool.telefonica.de)
08:39:39 × misterfish quits (~misterfis@84.53.85.146) (Ping timeout: 252 seconds)
08:40:01 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
08:41:30 misterfish joins (~misterfis@84.53.85.146)
08:42:30 simendsjo joins (~user@84.211.91.108)
08:45:36 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
08:45:51 × weary-traveler quits (~user@user/user363627) (Remote host closed the connection)
08:46:22 __monty__ joins (~toonn@user/toonn)
08:52:41 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
08:57:22 × youthlic quits (~Thunderbi@user/youthlic) (Ping timeout: 248 seconds)
08:57:44 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
08:57:46 × uli-fem quits (~lambdapin@203.221.238.251) (Quit: Lost terminal)
09:00:38 tcard_ joins (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303)
09:01:13 × tcard quits (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Read error: Connection reset by peer)
09:08:28 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
09:15:26 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds)
09:24:36 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 276 seconds)
09:26:15 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
09:31:34 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
09:34:01 youthlic joins (~Thunderbi@user/youthlic)
09:34:55 Pixi` joins (~Pixi@user/pixi)
09:35:47 hgolden__ joins (~hgolden@23.162.40.69)
09:36:03 ell9 joins (~ellie@user/ellie)
09:36:09 oo_miguel1 joins (~Thunderbi@78.10.207.45)
09:36:18 kimiamania20 joins (~65804703@user/kimiamania)
09:36:27 m5zs7k_ joins (aquares@web10.mydevil.net)
09:36:28 siers69 joins (~ij@user/ij)
09:36:29 driib318 joins (~driib@vmi931078.contaboserver.net)
09:36:32 kitaleth_ joins (23bd17ddc6@sourcehut/user/alethkit)
09:36:40 aforemny joins (~aforemny@2001:9e8:6cdd:cc00:e18:f1bd:8977:4cc7)
09:36:40 pounce_ joins (~pounce@user/cute/pounce)
09:36:48 CrunchyFlakes_ joins (~CrunchyFl@ip1f126623.dynamic.kabel-deutschland.de)
09:36:53 jonrh_ joins (sid5185@id-5185.ilkley.irccloud.com)
09:37:00 b20n_ joins (sid115913@id-115913.uxbridge.irccloud.com)
09:37:09 shawwwn_ joins (sid6132@id-6132.helmsley.irccloud.com)
09:37:15 connrs_ joins (~connrs@user/connrs)
09:37:15 zlqrvx_ joins (~zlqrvx@101.175.150.247)
09:37:25 whatsupdoc_ joins (uid509081@id-509081.hampstead.irccloud.com)
09:37:30 berberman_ joins (~berberman@user/berberman)
09:38:06 Fijxu_ joins (~Fijxu@user/fijxu)
09:38:23 dequbed joins (~dequbed@banana-new.kilobyte22.de)
09:39:13 dostoyev1ky2 joins (~sck@user/dostoyevsky2)
09:39:21 solution_ joins (~Solution@78-131-74-9.pool.digikabel.hu)
09:39:38 mstksg joins (~jle`@2603:8001:3b02:84d4:a690:69a1:4e16:510b)
09:39:40 mml_ joins (~mml@157-131-53-74.fiber.dynamic.sonic.net)
09:39:47 misterfi1h joins (~misterfis@84.53.85.146)
09:39:55 cross_ joins (~cross@spitfire.i.gajendra.net)
09:39:55 takuan_dozo joins (~takuan@178-116-218-225.access.telenet.be)
09:42:02 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
09:44:28 × misterfish quits (~misterfis@84.53.85.146) (*.net *.split)
09:44:28 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (*.net *.split)
09:44:28 × Pixi quits (~Pixi@user/pixi) (*.net *.split)
09:44:28 × aforemny_ quits (~aforemny@i59F516CB.versanet.de) (*.net *.split)
09:44:28 × whatsupdoc quits (uid509081@id-509081.hampstead.irccloud.com) (*.net *.split)
09:44:28 × kimiamania2 quits (~65804703@user/kimiamania) (*.net *.split)
09:44:28 × shawwwn quits (sid6132@id-6132.helmsley.irccloud.com) (*.net *.split)
09:44:28 × wz1000 quits (~zubin@static.11.113.47.78.clients.your-server.de) (*.net *.split)
09:44:28 × hgolden_ quits (~hgolden@23.162.40.69) (*.net *.split)
09:44:28 × m5zs7k quits (aquares@web10.mydevil.net) (*.net *.split)
09:44:28 × itaipu quits (~itaipu@168.121.99.162) (*.net *.split)
09:44:28 × b20n quits (sid115913@id-115913.uxbridge.irccloud.com) (*.net *.split)
09:44:28 × ell quits (~ellie@user/ellie) (*.net *.split)
09:44:28 × driib31 quits (~driib@vmi931078.contaboserver.net) (*.net *.split)
09:44:28 × oo_miguel quits (~Thunderbi@78.10.207.45) (*.net *.split)
09:44:28 × CrunchyFlakes quits (~CrunchyFl@31.18.102.35) (*.net *.split)
09:44:28 × mml quits (~mml@157-131-53-74.fiber.dynamic.sonic.net) (*.net *.split)
09:44:28 × yahb2 quits (~yahb2@user/tomsmeding/bot/yahb2) (*.net *.split)
09:44:28 × Fijxu quits (~Fijxu@user/fijxu) (*.net *.split)
09:44:28 × nadja quits (~dequbed@banana-new.kilobyte22.de) (*.net *.split)
09:44:28 × solution quits (~Solution@78-131-74-9.pool.digikabel.hu) (*.net *.split)
09:44:28 × kitaleth quits (23bd17ddc6@sourcehut/user/alethkit) (*.net *.split)
09:44:29 × pounce quits (~pounce@user/cute/pounce) (*.net *.split)
09:44:29 × jle` quits (~jle`@2603:8001:3b02:84d4:2fca:bfe0:41f4:4c2b) (*.net *.split)
09:44:29 × berberman quits (~berberman@user/berberman) (*.net *.split)
09:44:29 × zlqrvx quits (~zlqrvx@user/zlqrvx) (*.net *.split)
09:44:29 × cross quits (~cross@spitfire.i.gajendra.net) (*.net *.split)
09:44:29 × motherfsck quits (~motherfsc@user/motherfsck) (*.net *.split)
09:44:29 × dostoyevsky2 quits (~sck@user/dostoyevsky2) (*.net *.split)
09:44:29 × siers quits (~ij@user/ij) (*.net *.split)
09:44:29 × jonrh quits (sid5185@id-5185.ilkley.irccloud.com) (*.net *.split)
09:44:29 × tomboy64 quits (~tomboy64@user/tomboy64) (*.net *.split)
09:44:29 × connrs quits (~connrs@user/connrs) (*.net *.split)
09:44:29 kitaleth_ is now known as kitaleth
09:44:29 whatsupdoc_ is now known as whatsupdoc
09:44:29 kimiamania20 is now known as kimiamania2
09:44:29 driib318 is now known as driib31
09:44:29 b20n_ is now known as b20n
09:44:32 shawwwn_ is now known as shawwwn
09:44:35 oo_miguel1 is now known as oo_miguel
09:44:35 ell9 is now known as ell
09:44:35 jonrh_ is now known as jonrh
09:44:35 connrs_ is now known as connrs
09:44:41 yahb2 joins (~yahb2@user/tomsmeding/bot/yahb2)
09:44:41 ChanServ sets mode +v yahb2
09:44:54 m5zs7k_ is now known as m5zs7k
09:46:35 pounce_ is now known as pounce
09:46:45 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
09:50:27 wz1000 joins (~zubin@static.11.113.47.78.clients.your-server.de)
09:50:34 motherfsck joins (~motherfsc@user/motherfsck)
09:51:13 itaipu joins (~itaipu@168.121.99.162)
09:51:51 tomboy64 joins (~tomboy64@user/tomboy64)
09:53:42 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
09:58:10 pavonia_ joins (~user@user/siracusa)
09:58:30 × pavonia quits (~user@user/siracusa) (Read error: Connection reset by peer)
09:58:48 pavonia_ is now known as pavonia
09:58:55 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 264 seconds)
10:01:21 ash3en joins (~Thunderbi@2a01:c23:8d00:4c00:b6d6:b186:b213:6e89)
10:01:40 sawilagar joins (~sawilagar@user/sawilagar)
10:09:29 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
10:09:42 raym joins (~ray@user/raym)
10:13:51 srazkvt joins (~sarah@user/srazkvt)
10:17:03 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds)
10:24:40 JuanDaugherty joins (~juan@user/JuanDaugherty)
10:28:43 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
10:33:56 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
10:44:31 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
10:45:18 nickiminjaj joins (~kvirc@user/laxhh)
10:47:57 emmanuelux joins (~emmanuelu@user/emmanuelux)
10:49:08 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds)
10:52:54 × ash3en quits (~Thunderbi@2a01:c23:8d00:4c00:b6d6:b186:b213:6e89) (Ping timeout: 244 seconds)
10:54:51 michalz joins (~michalz@185.246.207.203)
10:56:33 × athan quits (~athan@syn-098-153-145-140.biz.spectrum.com) (Quit: Konversation terminated!)
10:57:00 MeteHAN joins (~MeteHAN@159.146.64.69)
10:57:07 MeteHAN parts (~MeteHAN@159.146.64.69) ()
11:00:18 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
11:03:55 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
11:05:36 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
11:10:06 × srazkvt quits (~sarah@user/srazkvt) (Quit: Konversation terminated!)
11:11:25 ZharMeny joins (~ZharMeny@user/ZharMeny)
11:16:06 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
11:16:11 ash3en joins (~Thunderbi@2a01:c23:8d00:4c00:b6d6:b186:b213:6e89)
11:16:35 × ash3en quits (~Thunderbi@2a01:c23:8d00:4c00:b6d6:b186:b213:6e89) (Client Quit)
11:21:14 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
11:22:56 × sroso quits (~sroso@user/SrOso) (Quit: Leaving :))
11:26:57 wootehfoot joins (~wootehfoo@user/wootehfoot)
11:31:53 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
11:36:53 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
11:41:15 × JuanDaugherty quits (~juan@user/JuanDaugherty) (Quit: JuanDaugherty)
11:47:39 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
11:52:11 × euleritian quits (~euleritia@dynamic-176-006-133-190.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
11:52:29 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
11:52:54 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
12:03:26 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
12:08:29 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
12:09:51 <haskellbridge> <thirdofmay18081814goya> where can I find a formalization of inductive types?
12:11:07 × yaroot quits (~yaroot@2400:4052:ac0:d901:1cf4:2aff:fe51:c04c) (Remote host closed the connection)
12:11:48 yaroot joins (~yaroot@2400:4052:ac0:d901:1cf4:2aff:fe51:c04c)
12:13:29 <albet70> a <- getLine; how to turn that a to normal haskell code? like if I input ["1"], and turn that a to ["1"]?
12:14:34 <Rembane> albet70: read perhaps?
12:15:54 alexherbo2 joins (~alexherbo@2a02-8440-310c-7e00-64ae-a5ed-c8ef-c4bf.rev.sfr.net)
12:17:40 <albet70> I find that ast.literal_eval can do something like this in python
12:18:02 <albet70> I don't know if haskell has similar function
12:18:55 × misterfi1h quits (~misterfis@84.53.85.146) (Ping timeout: 252 seconds)
12:19:13 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
12:19:23 xff0x joins (~xff0x@2405:6580:b080:900:c1a4:8f81:9151:7c9c)
12:20:37 ss4 joins (~wootehfoo@user/wootehfoot)
12:21:25 <Rembane> albet70: Lets X/Y this, why do you want to evaluate Haskell code that comes from the user?
12:24:04 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 252 seconds)
12:26:23 <albet70> for example, there is a string in code, but you'd like user to input delimeters to split the string, different user like different delimeters
12:27:37 <Rembane> What does "string in code" mean in this context?
12:28:13 srazkvt joins (~sarah@user/srazkvt)
12:28:14 <Rembane> Also, here, have something fun: https://hackage.haskell.org/package/plugins-1.6.2.1
12:28:28 <albet70> like read a csv file to a string, use ',' to split it
12:28:50 <albet70> but other file types, they may have different delimeters
12:29:12 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
12:29:15 × ss4 quits (~wootehfoo@user/wootehfoot) (Quit: Leaving)
12:29:19 <albet70> let user decide the delimeters is better than let programmer to guess
12:29:32 wootehfoot joins (~wootehfoo@user/wootehfoot)
12:30:24 <albet70> like a text file , you may want to use '\n' to split the content
12:30:38 <haskellbridge> <thirdofmay18081814goya> anyone know of communities where you can ask about type theory?
12:30:54 <Rembane> albet70: This is true, then it's possible to input the delimiter and give it to your split function
12:31:44 <tomsmeding> it's a good exercise to write a `splitOn :: Eq a => a -> [a] -> [[a]]` function ;)
12:31:58 <tomsmeding> (somehow there is no such function in base yet)
12:32:00 <albet70> yes, so I ask how to let the string from getLine to become a list code which contain delimeters
12:32:26 <tomsmeding> there is no general function which parses Haskell code, but there is `readMaybe`
12:32:31 <tomsmeding> :t Text.Read.readMaybe
12:32:32 <lambdabot> Read a => String -> Maybe a
12:32:45 <tomsmeding> > readMaybe "[1,2,3]" :: Maybe [Int]
12:32:46 <lambdabot> error:
12:32:46 <lambdabot> Variable not in scope: readMaybe :: [Char] -> Maybe [Int]
12:32:49 <tomsmeding> > Text.Read.readMaybe "[1,2,3]" :: Maybe [Int]
12:32:51 <lambdabot> error:
12:32:51 <lambdabot> Not in scope: ‘Text.Read.readMaybe’
12:32:51 <lambdabot> No module named ‘Text.Read’ is imported.
12:32:51 <albet70> someone suggest me to use eval
12:32:59 <tomsmeding> eval does not exist in haskell
12:33:06 <tomsmeding> @let import Text.Read (readMaybe)
12:33:07 <lambdabot> Defined.
12:33:10 <tomsmeding> > readMaybe "[1,2,3]" :: Maybe [Int]
12:33:12 <lambdabot> Just [1,2,3]
12:33:15 <tomsmeding> > readMaybe "1,2,3]" :: Maybe [Int]
12:33:17 <lambdabot> Nothing
12:33:24 <tomsmeding> > readMaybe "[1 ,2,3]" :: Maybe [Int]
12:33:25 <lambdabot> Just [1,2,3]
12:33:34 <tomsmeding> if this is what you need, it exist
12:33:36 <tomsmeding> *exists
12:33:43 <albet70> aha, why haskell do not has eval
12:33:49 <tomsmeding> because haskell is a compiled language ;)
12:34:03 <albet70> C has eval
12:34:09 <tomsmeding> 'eval' would have to compile the given code live at runtime, i.e. you'd need to have a copy of GHC in your executable
12:34:15 <tomsmeding> what's C's eval called?
12:34:40 <albet70> I forget, its a long time ago I learned C
12:34:41 <ski> > (reads :: ReadS [Int]) "[0,1,2]"
12:34:42 <lambdabot> [([0,1,2],"")]
12:34:44 <tomsmeding> (people would object to having GHC in their programs at all times, if only because GHC is >2GB)
12:34:44 misterfish joins (~misterfis@84.53.85.146)
12:34:47 <tomsmeding> albet70: there is no such function :p
12:35:01 <tomsmeding> python has one, as does javascript, and ruby -- but all those are interpreted languages
12:35:24 <albet70> scheme has it too
12:35:31 <tomsmeding> ... which is an interpreted language
12:35:36 <ski> no
12:35:50 <tomsmeding> then it bundles an interpreter :p
12:35:56 <ski> or a compiler
12:36:00 <tomsmeding> O.o
12:36:14 <albet70> and that eval/apply in the famous wizard hand of a picture in the SICP
12:37:14 <tomsmeding> in any case, other languages notwithstanding: every complete implementation of haskell ends up being a large amount of code, so it would be a waste to bundle that with everything just for 'eval' which nobody uses
12:37:28 <tomsmeding> ('eval' is typically an anti-pattern anyway, except for particular scripting uses)
12:37:52 <tomsmeding> if you really want, you can use https://hackage.haskell.org/package/hint which indeed pulls in GHC as a dependency
12:38:00 <tomsmeding> but think really hard before you use that
12:38:06 <ski> in Scheme, people say that you shouldn't use `eval', unless if you know why you shouldn't use it
12:38:22 <tomsmeding> sounds like a truism
12:39:27 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
12:43:14 × dostoyev1ky2 quits (~sck@user/dostoyevsky2) (Quit: leaving)
12:43:29 dostoyevsky2 joins (~sck@user/dostoyevsky2)
12:44:12 <ski> "The generated code can be printed, stored in a file -- or compiled and linked-back to the running program, thus implementing run-time code optimization. MetaOCaml code without staging annotations, or with the annotations erased, is regular OCaml." <https://okmij.org/ftp/meta-programming/tutorial/index.html> ; "BER MetaOCaml, as MetaOCaml did long time ago, supports both byte-code and native compilation."
12:44:18 <ski> <https://okmij.org/ftp/ML/MetaOCaml.html>
12:44:48 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
12:49:41 <sprout> https://agda.club/objects/4e57d7ae-8fa3-40fd-a8c2-f8d5a4ecf06b
12:49:54 <sprout> I will not claim to understand the above post
12:53:53 <haskellbridge> <thirdofmay18081814goya> anyone know where I can find a formalization (or a semantics) for inductive types?
12:55:16 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
12:57:04 × misterfish quits (~misterfis@84.53.85.146) (Ping timeout: 272 seconds)
12:59:59 × rvalue quits (~rvalue@user/rvalue) (Read error: Connection reset by peer)
13:00:24 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
13:00:29 rvalue joins (~rvalue@user/rvalue)
13:07:25 <tomsmeding> thirdofmay: "initial algebras" is probably the correct search keyword
13:08:03 <haskellbridge> <thirdofmay18081814goya> tomsmeding: ty! will get started on these
13:11:03 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
13:15:46 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
13:26:50 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
13:27:37 ski . o O ( "A Tutorial on (Co)Algebra and (Co)Induction" by Bart Jacbos,Jan Rutten in 1997 at <https://www.cs.ru.nl/B.Jacobs/PAPERS/JR.pdf> )
13:28:04 <ski> (s/Jacbos/Jacobs/)
13:28:29 catties is now known as mommies
13:28:55 mommies is now known as catties
13:30:10 <haskellbridge> <thirdofmay18081814goya> ski: nice! thanks
13:30:16 ash3en joins (~Thunderbi@146.70.124.222)
13:30:53 × CrunchyFlakes_ quits (~CrunchyFl@ip1f126623.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
13:31:45 oneeyedalien joins (~oneeyedal@user/oneeyedalien)
13:32:13 <sprout> that never made much sense. constructors without destructors, or destructors without constructors, are pretty useless
13:33:13 × alexherbo2 quits (~alexherbo@2a02-8440-310c-7e00-64ae-a5ed-c8ef-c4bf.rev.sfr.net) (Remote host closed the connection)
13:33:14 CrunchyFlakes joins (~CrunchyFl@31.18.102.35)
13:34:17 <ski> "that" ?
13:35:13 ash3en1 joins (~Thunderbi@2a01:c23:8d00:4c00:b6d6:b186:b213:6e89)
13:35:24 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
13:35:41 <sprout> the turorial. maybe it's just in the wording, I've never delved deep into it
13:35:48 <sprout> *tutorial
13:36:12 <sprout> it made sense to Jacobs, which was good enough
13:36:27 × ash3en1 quits (~Thunderbi@2a01:c23:8d00:4c00:b6d6:b186:b213:6e89) (Client Quit)
13:37:09 × ash3en quits (~Thunderbi@146.70.124.222) (Ping timeout: 260 seconds)
13:37:24 <ski> "constructors without destructors" -- presumably the "destructors" are the unique initial morphisms (the pattern-matching, possibly structurally recursive, functions)
13:40:57 <sprout> the problem is that everything stated can also be stated for initial descriptions. i.e., 1+A*List(A)->List(A) is no different from List(A)->1+A*List(A) given your own interpretation of what that should mean
13:41:23 <sprout> as witnessed by Haskell types even
13:43:13 <ski> one would be the inverse of the other, yes
13:43:21 <ski> (not sure what you're getting at)
13:43:42 <sprout> that both equally serve well as description of intial or final algebras
13:44:15 <sprout> it just doesn't matter, it just depends on what mean _you_ ascribe to the types
13:44:16 <ski> both what and what ?
13:44:51 <tomsmeding> List(A)->1+A*List(A) and its opposite, presumably
13:44:58 <sprout> right
13:46:52 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
13:46:57 <ski> with initial algebra of `F' (where `F(X) = 1 + A*X', for all `X'), you get finite lists of `A's. with final algebras of `F', you get potentially finite (and potentially infinite) streams of `A's
13:47:09 <sprout> right
13:47:15 <ski> er, s/final algebras/final coalgebras/
13:47:19 <sprout> but that doesn't really depend on the types
13:47:30 <sprout> it's just a very troublesome paper
13:47:55 <ski> (still don't get your point, though)
13:48:10 <sprout> no worries
13:52:03 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
13:55:00 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
13:55:29 mreh joins (~matthew@host86-160-168-12.range86-160.btcentralplus.com)
13:56:27 euleritian joins (~euleritia@dynamic-176-006-133-190.176.6.pool.telefonica.de)
13:59:07 <mreh> typecheck: • Couldn't match expected type: forall os.
13:59:07 <mreh> ContextT Handle os (SpiderHost Global) ()
13:59:08 <mreh> with actual type: ContextT Handle os0 m0 ()
13:59:13 <mreh> what might I have done here?
14:00:18 <probie> <super unhelpful>Written some non-typing checking Haskell code</super unhelpful>
14:00:37 alexherbo2 joins (~alexherbo@2a02-8440-310c-7e00-c55c-4fb4-8e88-b7ad.rev.sfr.net)
14:01:41 <mreh> I think I'm lacking some understand of Rank-2 types
14:01:55 <mreh> s/understand/understanding
14:02:05 <probie> Can you provide a snippet in context? If it's a higher order function expecting something an argument of type `forall os . Context handle os m a -> Context handle os m a` and you've provided a function which makes `os` concrete, it's not going to work.
14:02:39 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
14:03:17 L29Ah parts (~L29Ah@wikipedia/L29Ah) ()
14:03:20 <mreh> probie: it's that kind of thing
14:03:35 <mreh> https://hackage.haskell.org/package/GPipe-2.2.5/docs/Graphics-GPipe-Context.html#t:ContextT
14:04:26 <mreh> when you make a Buffer, or similar, it has this `os` parameter, like STRefs I guess, to stop them escaping the context.
14:04:44 <mreh> It stands for object scope I think.
14:05:13 Smiles joins (uid551636@id-551636.lymington.irccloud.com)
14:07:21 × simendsjo quits (~user@84.211.91.108) (Ping timeout: 276 seconds)
14:08:04 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
14:11:16 <constxd> hey guys i wonder if you can come up with a slick way to solve this, haskell seems like a good language for it
14:12:14 <constxd> for example: xs=[Just 'x', Nothing, Just 'x', Nothing, Nothing, Just 'x'] and ys=['a', 'b', 'c', 'd', 'e', 'f']. then you want the result: ['x', 'x', 'a', 'x', 'b', 'c', 'x', 'd', 'e', 'f']
14:13:23 <constxd> f :: [Maybe a] -> [a] -> [a], where you fill in the Nothing values in xs with the values from ys, and then any extra ys just go at the end
14:14:05 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
14:14:44 <probie> are you sure of the result you've given? I don't think it matches the description?
14:15:15 <constxd> oops you're right sorry i copy/pasted the ruby version and hastily edited it to look like haskell
14:15:47 <constxd> ['x', 'a', 'x', 'b', 'c', 'x', 'd', 'e', 'f']... i think
14:16:46 <constxd> in ruby there's a pretty nice solution but it relies on mutating ys: xs.map { _1.nil ? ys.shift : _1 } + ys
14:16:52 <yin> imagine i want to graph a step by step approximation of a continued fractional expansion. is it possible to turn something like x + 1 / xs into an efficient scanl ?
14:17:40 <constxd> i am looking for a solution with no mutation so i figured this is a good place to ask
14:18:19 Alleria joins (~Alleria@user/alleria)
14:18:26 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
14:18:36 wootehfoot joins (~wootehfoo@user/wootehfoot)
14:18:40 × nickiminjaj quits (~kvirc@user/laxhh) (Quit: KVIrc 5.2.2 Quasar http://www.kvirc.net/)
14:21:34 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
14:22:05 <sprout> ski: I wrote it down for you https://mathstodon.xyz/@sprout/113096710101394601
14:23:03 wootehfoot joins (~wootehfoo@user/wootehfoot)
14:23:31 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 264 seconds)
14:24:32 <tomsmeding> mreh: those 0 suffixes smell of ambiguous type variables
14:24:40 <tomsmeding> does the error message say that "os0" and "m0" are ambiguous?
14:25:58 <tomsmeding> constxd: what exactly do you want to do, stuff the ys where the Nothings in xs are? What if there are fewer Nothings in xs than elements in ys?
14:26:06 <tomsmeding> oh you stuff them at the end
14:26:34 <Leary> mreh: You've applied `runContextT` to an insufficiently polymorphic `ContextT` value, most likely due to `os0` being bound outside of the scope of the `runContextT` invocation.
14:27:14 <constxd> Yeah, i guess if there are more Nothings than ys then the extra Nothings just get removed and not replaced with anything. but you don't have to worry about this case. it can be a partial function if you like
14:29:20 × Natch quits (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) (Remote host closed the connection)
14:29:40 <tomsmeding> % let interfoo xs ys = uncurry (flip (++)) (mapAccumL (\ys -> maybe (tail ys, head ys) (ys,)) ys xs)
14:29:40 <yahb2> <no output>
14:29:50 <tomsmeding> % interfoo [Just 'x', Nothing, Just 'x', Nothing, Nothing, Just 'x'] "abcdef"
14:29:50 <yahb2> "xaxbcxdef"
14:30:06 <tomsmeding> % interfoo [Just 'x', Nothing, Just 'x', Nothing, Nothing, Just 'x'] "ab"
14:30:06 <yahb2> *** Exception: Prelude.head: empty list ; CallStack (from HasCallStack): ; error, called at libraries/base/GHC/List.hs:1646:3 in base:GHC.List ; errorEmptyList, called at libraries/base/GHC/Lis...
14:30:43 <tomsmeding> constxd: ^
14:32:24 <Leary> I would just write that with direct recursion.
14:33:35 <yin> > frac [] - 0 ; frac [x] - x ; frac (x:xs) = x + 1 % frac xs
14:33:36 <lambdabot> <hint>:1:13: error: parse error on input ‘;’
14:33:57 <yin> anyways... how can i make this typecheck?
14:34:14 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
14:34:23 <tomsmeding> replace % by / ?
14:38:27 <constxd> tomsmeding: very nice
14:38:30 <Leary> @let foo (Just x:mxs) ys = x:foo mxs ys; foo (Nothing:mxs) (y:ys) = y:foo mxs ys; foo [] ys = ys; foo (Nothing:_) [] = error "foo (Nothing:_) []"
14:38:31 <lambdabot> Defined.
14:38:33 <Leary> :t foo
14:38:35 <lambdabot> [Maybe a] -> [a] -> [a]
14:38:53 <Leary> Longer, but dead simple.
14:39:31 <tomsmeding> that is indeed more readable :)
14:39:39 <tomsmeding> (when split over a few lines)
14:39:40 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
14:40:51 <constxd> yeah i was mostly looking for a golfed version, but that is definitely the version i'd put in my actual code
14:45:36 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
14:49:51 <mreh> tomsmeding: it was a weird one where I was composing runContextT, switching for `$` fixed it
14:50:01 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
14:54:54 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
15:00:05 × oneeyedalien quits (~oneeyedal@user/oneeyedalien) (Ping timeout: 248 seconds)
15:01:57 <Leary> mreh: Without ImpredicativeTypes, the tyvars of `(.)` cannot be instantiated polymorphically; it won't do `(.) @(forall os. ...) f g`, so you get `forall os. (.) @(...) f g` instead. `($)` has magic ghc hax.
15:05:47 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
15:06:47 × alexherbo2 quits (~alexherbo@2a02-8440-310c-7e00-c55c-4fb4-8e88-b7ad.rev.sfr.net) (Remote host closed the connection)
15:07:06 alexherbo2 joins (~alexherbo@2a02-8440-310c-7e00-c55c-4fb4-8e88-b7ad.rev.sfr.net)
15:10:26 <mreh> Leary: okay, some bedtime reading required I think, thanks
15:11:03 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
15:20:48 × petrichor quits (~znc-user@user/petrichor) (Ping timeout: 245 seconds)
15:21:35 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
15:22:04 machinedgod joins (~machinedg@d50-99-47-73.abhsia.telus.net)
15:22:45 × mreh quits (~matthew@host86-160-168-12.range86-160.btcentralplus.com) (Ping timeout: 276 seconds)
15:26:37 <tomsmeding> Leary: ($) _had_ magic ghc hax. Does it still, with quicklook?
15:26:37 <c_wraith> :t \ys -> partsOf (traverse . filtered isNothing) .~ ys -- constxd how about lens silliness?
15:26:38 <lambdabot> Traversable t => [Maybe a] -> t (Maybe a) -> t (Maybe a)
15:27:10 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
15:30:59 <dolio> The hack might be reduced to quicklook always happening for ($), if it isn't always on anyway.
15:34:03 <tomsmeding> hm, seems dolio might be right; this compiles starting with 9.2: https://play.haskell.org/saved/7OJs7g7m
15:34:14 <tomsmeding> if you remove the -XImpredicativeTypes, it doesn't compile with any GHC
15:36:32 <geekosaur> yes, tht's right
15:37:23 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
15:38:34 spew joins (~spew@201.141.99.170)
15:42:44 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
15:43:05 <mauke> `f do x` always works :-)
15:46:47 × srazkvt quits (~sarah@user/srazkvt) (Quit: Konversation terminated!)
15:48:29 wootehfoot joins (~wootehfoo@user/wootehfoot)
15:53:10 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
16:00:24 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
16:08:29 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
16:10:36 × alexherbo2 quits (~alexherbo@2a02-8440-310c-7e00-c55c-4fb4-8e88-b7ad.rev.sfr.net) (Remote host closed the connection)
16:10:38 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Quit: Leaving)
16:11:25 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
16:16:42 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
16:32:11 raehik joins (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net)
16:34:15 × Smiles quits (uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity)
16:35:06 srazkvt joins (~sarah@user/srazkvt)
16:37:06 <raehik> I have a function `fillBuffer :: Ptr Word8 -> Int -> IO ()`. If I pack the pointer and its size into an unboxed tuple `type Buffer = (# Ptr Word8, Int #)`, can I expect pretty much the same code to be generated?
16:37:26 Smiles joins (uid551636@id-551636.lymington.irccloud.com)
16:37:40 simendsjo joins (~user@84.211.91.108)
16:37:53 <raehik> context: I'm doing low-level data wrangling and am not happy with how C-like some parts look
16:38:17 <EvanR> you might even first try a normal tuple
16:38:30 <EvanR> and see what ghc does with it
16:39:11 <raehik> EvanR: Yeah I know I could try regular boxed data. this code would ideally be consistently performant though
16:39:44 <raehik> wouldn't want an unlucky optimization pass to slow down a loop
16:39:55 <EvanR> since there's only 1 compiler, just seeing what ghc does basically guarantees it does that for anybody
16:40:03 <EvanR> the behavior isn't random
16:40:42 <mauke> https://well-typed.com/blog/2024/08/ghc-activities-report-june-august-2024/#object-determinism
16:40:57 <raehik> I had been assuming if callbacks & inlining got involved, generated code is not as straightforward
16:41:09 <EvanR> ok sometimes it's random lol
16:42:46 JuanDaugherty joins (~juan@user/JuanDaugherty)
16:42:59 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
16:44:35 <raehik> I'll have to give it a go and compare Core at some point then. put off my ptr work because it started getting silly
16:45:30 weary-traveler joins (~user@user/user363627)
16:47:49 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
16:49:51 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
16:58:46 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
17:02:25 × rncwnd quits (~quassel@2a01:4f8:221:27c6::1) (Quit: Later)
17:03:03 rncwnd joins (~quassel@2a01:4f8:221:27c6::1)
17:03:43 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 264 seconds)
17:08:08 <monochrom> With Ptr, you cannot avoid C-like code.
17:08:49 <monochrom> But I bet "Ptr Word8 -> Int ->" and "(# Ptr Word8, Int #) ->" will be similar at the low level.
17:08:49 misterfish joins (~misterfis@178.225.234.155)
17:18:00 athan joins (~athan@syn-098-153-145-140.biz.spectrum.com)
17:18:39 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
17:21:35 oneeyedalien joins (~oneeyedal@user/oneeyedalien)
17:24:35 × raehik quits (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) (Ping timeout: 255 seconds)
17:27:22 qhong joins (~qhong@DN160vrd000d6k3g00000000009p.stanford.edu)
17:30:20 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
17:30:28 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
17:33:35 wootehfoot joins (~wootehfoo@user/wootehfoot)
17:35:19 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
17:35:51 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
17:37:14 L29Ah joins (~L29Ah@wikipedia/L29Ah)
17:38:21 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
17:38:47 × oneeyedalien quits (~oneeyedal@user/oneeyedalien) (Quit: Leaving)
17:40:15 wootehfoot joins (~wootehfoo@user/wootehfoot)
17:40:24 Square joins (~Square@user/square)
17:42:37 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
17:43:38 × JuanDaugherty quits (~juan@user/JuanDaugherty) (Quit: JuanDaugherty)
17:49:20 × machinedgod quits (~machinedg@d50-99-47-73.abhsia.telus.net) (Ping timeout: 255 seconds)
17:50:24 × dsrt^ quits (~dsrt@c-98-242-74-66.hsd1.ga.comcast.net) (Remote host closed the connection)
17:55:44 × benjaminl quits (~benjaminl@user/benjaminl) (Ping timeout: 260 seconds)
17:55:57 benjaminl joins (~benjaminl@user/benjaminl)
18:00:16 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
18:01:09 × euleritian quits (~euleritia@dynamic-176-006-133-190.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
18:01:27 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
18:03:38 mreh joins (~matthew@host86-160-168-12.range86-160.btcentralplus.com)
18:09:24 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
18:13:40 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
18:15:49 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
18:19:44 rvalue- joins (~rvalue@user/rvalue)
18:20:28 × rvalue quits (~rvalue@user/rvalue) (Ping timeout: 252 seconds)
18:26:30 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
18:27:38 rvalue- is now known as rvalue
18:31:44 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
18:31:58 alexherbo2 joins (~alexherbo@178.13.23.93.rev.sfr.net)
18:33:44 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
18:34:18 dpren_ joins (uid175126@id-175126.helmsley.irccloud.com)
18:34:55 × misterfish quits (~misterfis@178.225.234.155) (Ping timeout: 264 seconds)
18:39:30 <dpren_> Is there anyone free this weekend who I could pay $100 for an hour of pairing to help me fix the build on a personal project?
18:39:30 <dpren_> I think I made the mistake of using haskell-stack back when... probably want to transition to good ol cabal. I use mac M1 but also have a linux machine.
18:39:30 <dpren_> https://github.com/dpren/pitch-extractor
18:42:17 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
18:42:50 × mreh quits (~matthew@host86-160-168-12.range86-160.btcentralplus.com) (Ping timeout: 252 seconds)
18:47:14 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
18:49:36 Natch joins (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se)
18:50:19 <haskellbridge> <thirdofmay18081814goya> what would be a formal way to state: system F cannot model universal quantification?
18:51:58 <EvanR> isn't that what the forall symbol is
18:54:13 <monochrom> System F can model universal quantification. :)
18:54:57 <haskellbridge> <thirdofmay18081814goya> hm i thought you needed dependent types and the dependent sum?
18:55:21 <monochrom> No.
18:55:31 <haskellbridge> <thirdofmay18081814goya> i mean dependent product
18:55:44 <monochrom> Still no.
18:55:47 <haskellbridge> <thirdofmay18081814goya> dependent sum is for existential quantification
18:56:22 <haskellbridge> <thirdofmay18081814goya> monochrom: hm what then would be forall intro and forall elim?
18:56:43 <monochrom> Type abstraction and type application.
18:57:23 <dolio> Universal quantificatiaon over what?
18:57:39 <EvanR> everything obviously
18:57:42 <EvanR> it's universal
18:58:03 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
18:58:15 <monochrom> <joke>The universal quantification that quantifies over all universal quantifications</joke>
18:58:25 <haskellbridge> <thirdofmay18081814goya> monochrom: don't those correspond to implication intro and elim?
18:58:47 <monochrom> That would be term abstraction and term application.
18:58:58 <haskellbridge> <thirdofmay18081814goya> dolio: uh, suppose just true/false
18:59:05 <haskellbridge> <thirdofmay18081814goya> and propositions on them
19:00:25 × simendsjo quits (~user@84.211.91.108) (Ping timeout: 265 seconds)
19:00:39 <dolio> If you have just two cases, then universal quantification is ∧ and existential is ∨.
19:02:02 <haskellbridge> <thirdofmay18081814goya> dolio: hm i'll think about this thanks
19:02:42 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
19:05:47 hgolden_ joins (~hgolden@23.162.40.110)
19:06:15 <haskellbridge> <thirdofmay18081814goya> dolio: what is the definition of universal quantification from which we could conclude this?
19:06:40 <dolio> P false ∧ P true. That's all your cases, right?
19:06:43 × Alleria quits (~Alleria@user/alleria) (Ping timeout: 264 seconds)
19:07:00 <haskellbridge> <thirdofmay18081814goya> yeah
19:08:39 × hgolden__ quits (~hgolden@23.162.40.69) (Ping timeout: 260 seconds)
19:13:50 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
19:15:34 <haskellbridge> <thirdofmay18081814goya> right ok
19:17:10 × Natch quits (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) (Ping timeout: 244 seconds)
19:18:40 Natch joins (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se)
19:20:14 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
19:22:01 neuroevolutus joins (~neuroevol@37.19.200.135)
19:30:44 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
19:30:56 × Spawns_Carpeting quits (~mobile@user/spawns-carpeting/x-6969421) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in)
19:32:25 Spawns_Carpeting joins (~mobile@user/spawns-carpeting/x-6969421)
19:34:01 ash3en joins (~Thunderbi@2a01:c23:8d00:4c00:b6d6:b186:b213:6e89)
19:34:03 misterfish joins (~misterfis@84.53.85.146)
19:34:08 <tomsmeding> dpren_: https://github.com/dpren/pitch-extractor/pull/5
19:34:12 <tomsmeding> "it compiles"
19:34:16 <tomsmeding> 0 more testing :p
19:34:25 <tomsmeding> 'cabal build' works with 9.4.7
19:36:15 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
19:36:45 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
19:39:13 <dpren_> <tomsmeding>: bless your heart. I'll give it a go. Does my hardware matter as long as I'm on 9.4.7?
19:39:22 <tomsmeding> I don't think so?
19:41:43 <dpren_> ok, we'll see. Apple silicon can be a wrench in the machine.
19:41:54 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
19:41:59 <tomsmeding> it can be, but support has improved lately
19:42:13 <tomsmeding> I think 9.4 is already good, you can always try 9.6 or later
19:42:13 <dpren_> right
19:42:51 <tomsmeding> that system-filepath package is deprecated and I even had to remove some of the references to it (not sure what 'turtle' did in the past)
19:43:08 <tomsmeding> it may be worth removing that package from your dependencies altogether, or replacing it with 'filepath' which apparently replaces it
19:43:17 <tomsmeding> but I'd first test if things work at all :p
19:43:43 <tomsmeding> also, Turtle.FilePath is just Prelude.FilePath
19:44:25 × neuroevolutus quits (~neuroevol@37.19.200.135) (Ping timeout: 256 seconds)
19:46:22 × Goodbye_Vincent quits (cyvahl@freakshells.net) (Remote host closed the connection)
19:46:53 <dpren_> >re:Turtle. yeah that was Gabriella439's library for attempting typed shell work. It was intriguing to me at the time as a learning project, but probably a bloated dep at this point maybe.
19:47:03 Goodbye_Vincent1 joins (cyvahl@freakshells.net)
19:47:24 petrichor joins (~znc-user@user/petrichor)
19:47:50 <geekosaur> still useful for typed shell work if you're doing a lot of shell-like stuff, otherwise maybe typed-process is worth a look?
19:51:04 <dpren_> cool
19:52:34 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
19:53:11 <haskellbridge> <thirdofmay18081814goya> monochrom: if we quantify over naturals then this isn't enough right?
19:53:12 <dpren_> bleh this GHCup stuff in new...
19:53:12 <dpren_> "Do you want to enable better integration of stack with GHCup?
19:53:12 <dpren_> This means that stack won't install its own GHC versions, but uses GHCup's."
19:53:13 <dpren_> which should I go for? y/n
19:53:25 <tomsmeding> dpren_: you don't need to install stack at all
19:53:34 <tomsmeding> but if you install stack, either is, I guess, fine
19:53:35 <geekosaur> do it. stack installing its own ghcs is deprecated AIUI
19:53:40 <tomsmeding> oh is it?
19:53:45 <tomsmeding> that went quickly
19:53:52 <tomsmeding> cool!
19:54:11 <geekosaur> maintaining their own ghc distros is a lot of duplicated work
19:54:24 wootehfoot joins (~wootehfoo@user/wootehfoot)
19:54:35 <geekosaur> since ghcup already does it, the recommendation is to use ghcup's
19:54:41 <tomsmeding> that's fair
19:56:01 <dpren_> so to be clear, hit "yes"? (I have stack 2.15.3 installed.)
19:56:06 <tomsmeding> yep
19:56:07 <geekosaur> yes
19:56:56 <tomsmeding> dpren_: my ghcup tells me that the latest stack is 3.1.1, not sure why it gave you an older one (but not much older, the v3 series is quite new)
19:57:37 × ash3en quits (~Thunderbi@2a01:c23:8d00:4c00:b6d6:b186:b213:6e89) (Quit: ash3en)
19:57:56 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
19:58:23 <dpren_> its from the last time I attempted this, not up to date. I should probably upgrade no
19:58:44 <tomsmeding> ghcup makes it easy, so why not :)
19:59:13 <geekosaur> I would, especially since ghcup marks the most recent stack as recommended
19:59:34 <dpren_> i keep reading it as "cup", it's clearly "up" lol. I think I will learn to like this tool.
19:59:45 <tomsmeding> you're not the only one :p
19:59:59 ash3en joins (~Thunderbi@2a01:c23:8d00:4c00:b6d6:b186:b213:6e89)
20:00:00 <geekosaur> there will be a few changes, for example it refers to what used to be called "resolvers" as "snapshots"
20:00:35 <monochrom> Oh, when a unix book explained "uucp stands for Unix-to-Unix CoPy" I wonder "what is co py?"
20:00:45 CiaoSen joins (~Jura@2a05:5800:459:6700:ca4b:d6ff:fec1:99da)
20:01:15 <geekosaur> but you never wondered this about "cp"?
20:01:35 <monochrom> No, because no one ever explained "cp stands for CoPy". :)
20:02:10 <tomsmeding> this is why it's better to underline the acronymed letters if the context allows that :p
20:02:45 <tomsmeding> unix-to-unix copy
20:02:59 × spew quits (~spew@201.141.99.170) (Ping timeout: 255 seconds)
20:03:29 × misterfish quits (~misterfis@84.53.85.146) (Ping timeout: 260 seconds)
20:03:50 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Quit: Leaving)
20:04:14 × petrichor quits (~znc-user@user/petrichor) (Ping timeout: 252 seconds)
20:04:20 <monochrom> There was also a kid on youtube who mis-split "tracert" into "tracer t". https://www.youtube.com/watch?v=SXmv8quf_xM
20:04:56 <monochrom> <joke>Haskell debugging tip: If you make a debugging monad transformer, you can call it TracerT</joke>
20:05:15 × Fijxu_ quits (~Fijxu@user/fijxu) (Quit: XD!!)
20:07:05 <tomsmeding> bonus points if it calls backtraces "traceroutes"
20:07:38 × athan quits (~athan@syn-098-153-145-140.biz.spectrum.com) (Quit: Konversation terminated!)
20:08:21 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
20:08:27 <dpren_> you folks are awesome and hilarious, I'm remembering why I picked Haskell.
20:08:54 Fijxu joins (~Fijxu@user/fijxu)
20:09:22 <tomsmeding> welcome back :)
20:09:52 × ash3en quits (~Thunderbi@2a01:c23:8d00:4c00:b6d6:b186:b213:6e89) (Quit: ash3en)
20:13:18 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds)
20:17:19 <dpren_> how do I upgrade stack with ghcup?
20:18:02 <dpren_> oh nvm, it already did it for me
20:18:19 <geekosaur> ghcup install stack latest
20:18:25 <geekosaur> or use ghcup tui
20:20:00 <dpren_> whoa tui is so cool, regardless
20:20:48 <mauke> I wish ghcup tui would clear the screen when switching between alternates
20:22:27 <dpren_> hm yeah, ig you get what you get with CLI GUIs.
20:23:08 <dpren_> more of a vector guy myself
20:24:08 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
20:26:03 × alexherbo2 quits (~alexherbo@178.13.23.93.rev.sfr.net) (Remote host closed the connection)
20:26:45 <dpren_> I feel dumb for asking but what are the commands for compiling and running my particular app?
20:26:45 <dpren_> @<tomsmeding>
20:26:45 <lambdabot> Unknown command, try @list
20:29:16 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
20:29:42 <dpren_> tomsmeding
20:30:27 <haskellbridge> <Bowuigi> @pf \x y -> x
20:31:26 <haskellbridge> <Bowuigi> I wonder which algorithm does lambdabot use for the pointfree converter
20:32:42 <haskellbridge> <Bowuigi> @pl \x y -> x
20:33:53 × infinity0 quits (~infinity0@pwned.gg) (Ping timeout: 248 seconds)
20:34:00 <geekosaur> the program / library it uses is on hackage
20:34:01 alexherbo2 joins (~alexherbo@2a02-8440-3114-792e-ddff-112f-809e-f52d.rev.sfr.net)
20:34:20 <geekosaur> @hackage pointfree
20:34:20 <lambdabot> https://hackage.haskell.org/package/pointfree
20:34:40 × spenat quits (~spenat@c-1125235c.012-6-62726f1.bbcust.telenor.se) (Ping timeout: 252 seconds)
20:35:54 <haskellbridge> <Bowuigi> Thanks
20:36:16 <EvanR> dpren_, cabal commands?
20:36:38 misterfish joins (~misterfis@84.53.85.146)
20:36:42 <EvanR> if you're using stack, check the stack docs
20:37:37 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
20:37:48 <dpren_> nah I got it with `stack build`. Just personal bugs from here.
20:39:56 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
20:40:31 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
20:41:30 spenat joins (~spenat@c-1125235c.012-6-62726f1.bbcust.telenor.se)
20:41:49 × misterfish quits (~misterfis@84.53.85.146) (Ping timeout: 260 seconds)
20:42:54 × weary-traveler quits (~user@user/user363627) (Remote host closed the connection)
20:44:46 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
20:50:30 Sgeo joins (~Sgeo@user/sgeo)
20:54:40 infinity0 joins (~infinity0@pwned.gg)
20:55:43 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
21:01:24 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
21:01:39 Square is now known as Squared
21:03:09 ash3en joins (~Thunderbi@p200300e7b71f94a141d1a48e69d98e7c.dip0.t-ipconnect.de)
21:04:15 × Smiles quits (uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity)
21:04:28 × ash3en quits (~Thunderbi@p200300e7b71f94a141d1a48e69d98e7c.dip0.t-ipconnect.de) (Client Quit)
21:05:19 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds)
21:08:18 × hgolden_ quits (~hgolden@23.162.40.110) (Ping timeout: 245 seconds)
21:11:11 <haskellbridge> <sm> dpren_: haskell has been fine on apple silicon for quite a while.. don't let it run in x64 mode (can happen if you have an old x64 brew setup eg)
21:11:30 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
21:12:46 <EvanR> what mode should it run in?
21:13:07 <haskellbridge> <sm> native arm binaries are what you want
21:13:27 <haskellbridge> <sm> Activity Monitor is one way to check, if there's a doubt
21:13:59 <haskellbridge> <sm> if brew is using /opt/homebrew, that's the good arm one
21:16:37 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
21:20:21 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
21:25:06 × michalz quits (~michalz@185.246.207.203) (Remote host closed the connection)
21:26:05 × takuan_dozo quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
21:27:20 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
21:28:19 JuanDaugherty joins (~juan@user/JuanDaugherty)
21:32:00 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
21:34:51 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 260 seconds)
21:35:39 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
21:38:40 neuroevolutus joins (~neuroevol@37.19.200.135)
21:43:04 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
21:48:53 × srazkvt quits (~sarah@user/srazkvt) (Quit: Konversation terminated!)
21:51:15 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
21:53:08 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
22:04:24 <dpren_> I'd like to extend a big thanks to this group. My pitch-extractor is back on it's game scraping the depths of youtube for weird musical samples to be performed by me next week.
22:04:50 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
22:05:29 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
22:09:54 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
22:13:29 <haskellbridge> <sm> hurrah!
22:17:24 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
22:20:37 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
22:23:55 × JuanDaugherty quits (~juan@user/JuanDaugherty) (Quit: JuanDaugherty)
22:25:25 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
22:29:15 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
22:29:35 × neuroevolutus quits (~neuroevol@37.19.200.135) (Quit: Client closed)
22:31:46 hgolden joins (~hgolden@146.70.173.165)
22:39:32 × gentauro quits (~gentauro@user/gentauro) (Read error: Connection reset by peer)
22:39:56 gentauro joins (~gentauro@user/gentauro)
22:50:01 × causal quits (~eric@50.35.88.207) (Quit: WeeChat 4.3.1)
22:52:12 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
22:52:57 spew joins (~spew@201.141.99.170)
22:53:51 vhs joins (~vhs@82-209-143-233.cust.bredband2.com)
22:53:59 vhsconnect joins (~vhs@82-209-143-233.cust.bredband2.com)
22:57:03 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
22:59:22 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 272 seconds)
23:00:16 × vhsconnect quits (~vhs@82-209-143-233.cust.bredband2.com) (Quit: Leaving)
23:00:16 × vhs quits (~vhs@82-209-143-233.cust.bredband2.com) (Quit: Leaving)
23:03:58 × spew quits (~spew@201.141.99.170) (Quit: spew)
23:05:11 Alleria joins (~Alleria@user/alleria)
23:07:57 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
23:12:42 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
23:13:25 × Alleria quits (~Alleria@user/alleria) (Ping timeout: 248 seconds)
23:21:36 weary-traveler joins (~user@user/user363627)
23:23:44 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
23:27:14 × sawilagar quits (~sawilagar@user/sawilagar) (Ping timeout: 244 seconds)
23:28:33 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
23:28:43 × Inst quits (~Inst@user/Inst) (Remote host closed the connection)
23:29:03 Inst joins (~Inst@user/Inst)
23:35:28 × xal quits (~xal@mx1.xal.systems) (Quit: bye)
23:36:07 xal joins (~xal@mx1.xal.systems)
23:39:32 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)
23:44:17 × merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
23:47:47 × weary-traveler quits (~user@user/user363627) (Remote host closed the connection)
23:55:19 merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl)

All times are in UTC on 2024-09-07.