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.