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