| 2026-06-28 00:00:17 +0000 | tv | (~tv@user/tv) tv |
| 2026-06-28 00:01:46 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 2026-06-28 00:01:53 +0000 | vanishingideal | (~vanishing@user/vanishingideal) (Ping timeout: 271 seconds) |
| 2026-06-28 00:06:43 +0000 | <jreicher> | schuelermine: my preferred alternative to any given terminal emulator is to not use a terminal emulator at all. |
| 2026-06-28 00:12:20 +0000 | lisbeths | (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 2026-06-28 00:12:22 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-28 00:17:07 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-06-28 00:24:20 +0000 | fgarcia | (~lei@user/fgarcia) (Ping timeout: 245 seconds) |
| 2026-06-28 00:24:52 +0000 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) humasect |
| 2026-06-28 00:24:52 +0000 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 2026-06-28 00:25:17 +0000 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) humasect |
| 2026-06-28 00:26:25 +0000 | fgarcia | (~lei@user/fgarcia) fgarcia |
| 2026-06-28 00:26:51 +0000 | fgarcia | (~lei@user/fgarcia) (Max SendQ exceeded) |
| 2026-06-28 00:27:43 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-28 00:32:59 +0000 | fgarcia | (~lei@user/fgarcia) fgarcia |
| 2026-06-28 00:33:19 +0000 | fgarcia | (~lei@user/fgarcia) (Max SendQ exceeded) |
| 2026-06-28 00:34:36 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2026-06-28 00:39:23 +0000 | fgarcia | (~lei@user/fgarcia) fgarcia |
| 2026-06-28 00:45:45 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-28 00:50:17 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2026-06-28 01:01:07 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-28 01:03:27 +0000 | nattkyrro | (~serenity@user/nattkyrro) (Ping timeout: 258 seconds) |
| 2026-06-28 01:05:24 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2026-06-28 01:05:33 +0000 | nattkyrro | (~serenity@user/nattkyrro) nattkyrro |
| 2026-06-28 01:09:50 +0000 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 2026-06-28 01:14:00 +0000 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) humasect |
| 2026-06-28 01:16:30 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-28 01:18:33 +0000 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) (Ping timeout: 248 seconds) |
| 2026-06-28 01:21:09 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 266 seconds) |
| 2026-06-28 01:21:36 +0000 | peterbecich | (~Thunderbi@71.84.33.135) peterbecich |
| 2026-06-28 01:26:11 +0000 | <schuelermine> | jreicher: by that, do you mean a linux VT console? |
| 2026-06-28 01:28:48 +0000 | <monochrom> | I'm "progressive" and I say that if you don't use terminal emulators then you use pure GUI. >:) |
| 2026-06-28 01:29:21 +0000 | <monochrom> | Even "I use smart phones, what is terminal emulator? what even is computer?" >:) |
| 2026-06-28 01:31:05 +0000 | <geekosaur> | apple beat you to that one |
| 2026-06-28 01:31:41 +0000 | <monochrom> | Yeah I am plagiarizing from that Apple ad! |
| 2026-06-28 01:31:52 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-28 01:33:55 +0000 | acidjnk_new | (~acidjnk@p200300d6e74def0343353b3983e3e743.dip0.t-ipconnect.de) (Ping timeout: 245 seconds) |
| 2026-06-28 01:34:33 +0000 | acidjnk | (~acidjnk@p200300d6e74def0343353b3983e3e743.dip0.t-ipconnect.de) (Ping timeout: 248 seconds) |
| 2026-06-28 01:36:25 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2026-06-28 01:39:10 +0000 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) humasect |
| 2026-06-28 01:44:09 +0000 | <fgarcia> | i've met windows and macos users who think linux is terminal only ._. |
| 2026-06-28 01:44:49 +0000 | DetourNetworkUK | (DetourNetw@user/DetourNetworkUK) (Read error: Connection reset by peer) |
| 2026-06-28 01:46:31 +0000 | DetourNetworkUK | (DetourNetw@user/DetourNetworkUK) DetourNetworkUK |
| 2026-06-28 01:47:08 +0000 | <monochrom> | Not surprised. Extremists are the most vocal and representative, as always. |
| 2026-06-28 01:47:14 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-28 01:47:40 +0000 | <monochrom> | Conversely linux users think windows and mac users are fisher toy players. |
| 2026-06-28 01:48:17 +0000 | <monochrom> | There was a time I thought that GUI users were illiterate. >:) |
| 2026-06-28 01:51:42 +0000 | ft | (~ft@p3e9bc08f.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
| 2026-06-28 01:51:55 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-06-28 01:53:32 +0000 | ft | (~ft@p4fc2a1a4.dip0.t-ipconnect.de) ft |
| 2026-06-28 02:02:37 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-28 02:05:04 +0000 | op_4 | (~tslil@user/op-4/x-9116473) (Remote host closed the connection) |
| 2026-06-28 02:05:42 +0000 | op_4 | (~tslil@user/op-4/x-9116473) op_4 |
| 2026-06-28 02:08:44 +0000 | <jreicher> | schuelermine: No, I use an Emacs buffer |
| 2026-06-28 02:09:20 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2026-06-28 02:09:54 +0000 | <jreicher> | Basically it becomes just plain text there and back. No fancy display instructions. |
| 2026-06-28 02:14:25 +0000 | <EvanR> | I knew people who think linux is terminal only and thus "DOS" |
| 2026-06-28 02:14:31 +0000 | ft | (~ft@p4fc2a1a4.dip0.t-ipconnect.de) (Ping timeout: 276 seconds) |
| 2026-06-28 02:18:02 +0000 | <fgarcia> | though if i do start carrying a laptop around, i kind of want to install Q4OS on it. i think that's the one that has the windows theme haha |
| 2026-06-28 02:19:33 +0000 | <EvanR> | I vaguely recall a win95 theme for icewm |
| 2026-06-28 02:19:56 +0000 | <EvanR> | a minor riot |
| 2026-06-28 02:20:39 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-28 02:21:11 +0000 | <monochrom> | icewm and a couple of others IIRC |
| 2026-06-28 02:25:25 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2026-06-28 02:25:31 +0000 | ft | (~ft@p3e9bcc41.dip0.t-ipconnect.de) ft |
| 2026-06-28 02:26:15 +0000 | schuelermine | (~Thunderbi@user/schuelermine) (Remote host closed the connection) |
| 2026-06-28 02:29:29 +0000 | td_ | (~td@2001:9e8:19c4:7400:bf7f:cb56:94b:5d2b) (Ping timeout: 244 seconds) |
| 2026-06-28 02:30:19 +0000 | ft | (~ft@p3e9bcc41.dip0.t-ipconnect.de) (Ping timeout: 245 seconds) |
| 2026-06-28 02:31:13 +0000 | td_ | (~td@i53870910.versanet.de) |
| 2026-06-28 02:31:20 +0000 | <monochrom> | But no DeriveBiFunctor :( |
| 2026-06-28 02:33:16 +0000 | emilym | (~Thunderbi@user/emilym) emilym |
| 2026-06-28 02:33:16 +0000 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) (Quit: Leaving...) |
| 2026-06-28 02:36:02 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-28 02:37:24 +0000 | emilym | (~Thunderbi@user/emilym) (Ping timeout: 245 seconds) |
| 2026-06-28 02:40:41 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 2026-06-28 02:42:06 +0000 | <EvanR> | DeriveEveryImaginableFunctorVariant |
| 2026-06-28 02:45:51 +0000 | m | (~travltux@user/travltux) (Ping timeout: 246 seconds) |
| 2026-06-28 02:51:25 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-28 02:56:06 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2026-06-28 03:06:13 +0000 | ft | (~ft@p3e9bc5a3.dip0.t-ipconnect.de) ft |
| 2026-06-28 03:06:48 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-28 03:07:00 +0000 | tusko | (~uwu@user/tusko) (Remote host closed the connection) |
| 2026-06-28 03:07:17 +0000 | tusko | (~uwu@user/tusko) tusko |
| 2026-06-28 03:07:29 +0000 | yanmaani | (~yanmaani@gateway/tor-sasl/yanmaani) (Remote host closed the connection) |
| 2026-06-28 03:07:40 +0000 | yanmaani | (~yanmaani@gateway/tor-sasl/yanmaani) yanmaani |
| 2026-06-28 03:07:51 +0000 | yanmaani | (~yanmaani@gateway/tor-sasl/yanmaani) (Remote host closed the connection) |
| 2026-06-28 03:08:01 +0000 | yanmaani | (~yanmaani@gateway/tor-sasl/yanmaani) yanmaani |
| 2026-06-28 03:09:14 +0000 | ttybitnik | (~ttybitnik@user/wolper) (Quit: Fading out...) |
| 2026-06-28 03:11:43 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-06-28 03:12:53 +0000 | ft | (~ft@p3e9bc5a3.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
| 2026-06-28 03:15:04 +0000 | ft | (~ft@p3e9bcc2e.dip0.t-ipconnect.de) ft |
| 2026-06-28 03:21:28 +0000 | ft | (~ft@p3e9bcc2e.dip0.t-ipconnect.de) (Ping timeout: 276 seconds) |
| 2026-06-28 03:21:48 +0000 | ft | (~ft@p3e9bc453.dip0.t-ipconnect.de) ft |
| 2026-06-28 03:22:09 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-28 03:26:27 +0000 | ft | (~ft@p3e9bc453.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
| 2026-06-28 03:26:31 +0000 | emilym | (~Thunderbi@user/emilym) emilym |
| 2026-06-28 03:26:54 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2026-06-28 03:27:34 +0000 | ft | (~ft@p3e9bcc51.dip0.t-ipconnect.de) ft |
| 2026-06-28 03:33:27 +0000 | ft | (~ft@p3e9bcc51.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
| 2026-06-28 03:35:19 +0000 | ft | (~ft@p3e9bc90f.dip0.t-ipconnect.de) ft |
| 2026-06-28 03:37:32 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-28 03:38:49 +0000 | m | (~travltux@user/travltux) travltux |
| 2026-06-28 03:40:06 +0000 | ft | (~ft@p3e9bc90f.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 2026-06-28 03:40:52 +0000 | ft | (~ft@p4fc2a1bf.dip0.t-ipconnect.de) ft |
| 2026-06-28 03:44:20 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2026-06-28 03:53:39 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-28 03:56:35 +0000 | <janus> | how many haskell compilers are currently under development besides ghc? |
| 2026-06-28 03:57:21 +0000 | <janus> | i can think of superstar64/Hazy, microHS, secret fork of jhc, bhc (the ai slop one) |
| 2026-06-28 03:57:56 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 247 seconds) |
| 2026-06-28 03:58:35 +0000 | <janus> | the prorprietary bank one doesn't count because it is strict :P |
| 2026-06-28 04:01:33 +0000 | <janus> | oh and then there is Ben Lynn's, and orionsj's fork of it |
| 2026-06-28 04:01:42 +0000 | <janus> | and roconnor also is working on something similar |
| 2026-06-28 04:09:03 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-28 04:11:51 +0000 | Guest29 | (~Guest29@8.130.95.189) |
| 2026-06-28 04:13:03 +0000 | Guest91 | (~Guest91@8.130.84.107) |
| 2026-06-28 04:13:14 +0000 | Guest57 | (~Guest57@8.130.95.189) |
| 2026-06-28 04:13:39 +0000 | emilym | (~Thunderbi@user/emilym) (Ping timeout: 245 seconds) |
| 2026-06-28 04:13:39 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2026-06-28 04:15:18 +0000 | Guest57 | (~Guest57@8.130.95.189) (Client Quit) |
| 2026-06-28 04:15:29 +0000 | Guest29 | (~Guest29@8.130.95.189) (Client Quit) |
| 2026-06-28 04:15:30 +0000 | Guest91 | (~Guest91@8.130.84.107) (Client Quit) |
| 2026-06-28 04:16:38 +0000 | emilym | (~Thunderbi@user/emilym) emilym |
| 2026-06-28 04:16:39 +0000 | spew | (~spew@user/spew) (Quit: nyaa~) |
| 2026-06-28 04:24:26 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-28 04:29:07 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-06-28 04:34:35 +0000 | [dpk] | (~dpk@jains.nonceword.org) |
| 2026-06-28 04:34:38 +0000 | mstruebing_ | (~mstruebin@ns343649.ip-188-165-193.eu) |
| 2026-06-28 04:35:38 +0000 | noctux1 | (~noctux@user/noctux) noctux |
| 2026-06-28 04:35:39 +0000 | Arsen | (16abab341f@gentoo/developer/managarm.dev.Arsen) (Ping timeout: 265 seconds) |
| 2026-06-28 04:35:39 +0000 | lxsameer | (~lxsameer@Serene/lxsameer) (Ping timeout: 265 seconds) |
| 2026-06-28 04:35:39 +0000 | ent | (entgod@kapsi.fi) (Ping timeout: 265 seconds) |
| 2026-06-28 04:35:40 +0000 | noctuks | (IbgdqiR86O@user/noctux) (Ping timeout: 265 seconds) |
| 2026-06-28 04:35:40 +0000 | mstruebing | (~mstruebin@ns343649.ip-188-165-193.eu) (Ping timeout: 265 seconds) |
| 2026-06-28 04:35:40 +0000 | dpk | (~dpk@jains.nonceword.org) (Ping timeout: 265 seconds) |
| 2026-06-28 04:36:17 +0000 | lxsameer | (~lxsameer@Serene/lxsameer) lxsameer |
| 2026-06-28 04:39:26 +0000 | ent | (entgod@kapsi.fi) ent |
| 2026-06-28 04:39:48 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-28 04:42:26 +0000 | emilym | (~Thunderbi@user/emilym) (Ping timeout: 248 seconds) |
| 2026-06-28 04:44:29 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2026-06-28 04:48:55 +0000 | dolio | (~dolio@130.44.140.168) (Ping timeout: 245 seconds) |
| 2026-06-28 04:49:58 +0000 | dolio | (~dolio@130.44.140.168) dolio |
| 2026-06-28 04:50:29 +0000 | Arsen | (16abab341f@gentoo/developer/managarm.dev.Arsen) Arsen |
| 2026-06-28 04:52:43 +0000 | emilym | (~Thunderbi@user/emilym) emilym |
| 2026-06-28 04:55:11 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-28 04:59:23 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 243 seconds) |
| 2026-06-28 05:02:52 +0000 | emilym | (~Thunderbi@user/emilym) (Ping timeout: 276 seconds) |
| 2026-06-28 05:10:35 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-28 05:17:49 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds) |
| 2026-06-28 05:27:28 +0000 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 2026-06-28 05:27:53 +0000 | Sgeo | (~Sgeo@user/sgeo) Sgeo |
| 2026-06-28 05:28:45 +0000 | merijn | (~merijn@62.45.136.136) merijn |
| 2026-06-28 05:33:18 +0000 | merijn | (~merijn@62.45.136.136) (Ping timeout: 265 seconds) |
| 2026-06-28 05:38:00 +0000 | karenw | (~karenw@user/karenw) (Remote host closed the connection) |
| 2026-06-28 05:39:56 +0000 | karenw | (~karenw@user/karenw) karenw |
| 2026-06-28 05:44:04 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-28 05:48:48 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2026-06-28 05:52:46 +0000 | pyooque | (~puke@user/puke) puke |
| 2026-06-28 05:52:46 +0000 | puke | Guest7225 |
| 2026-06-28 05:52:46 +0000 | pyooque | puke |
| 2026-06-28 05:53:34 +0000 | Guest7225 | (~puke@user/puke) (Read error: Connection reset by peer) |
| 2026-06-28 05:54:40 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-28 05:57:28 +0000 | <jaror> | janus: Helium still got some commits two years ago. |
| 2026-06-28 05:59:02 +0000 | tromp | (~textual@2001:1c00:340e:2700:dd19:dfa1:d2a9:f5b7) |
| 2026-06-28 05:59:35 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 275 seconds) |
| 2026-06-28 06:10:03 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-28 06:14:52 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2026-06-28 06:17:33 +0000 | emilym | (~Thunderbi@user/emilym) emilym |
| 2026-06-28 06:18:37 +0000 | haritz | (~hrtz@user/haritz) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in) |
| 2026-06-28 06:25:25 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-28 06:26:17 +0000 | emilym | (~Thunderbi@user/emilym) (Ping timeout: 248 seconds) |
| 2026-06-28 06:29:14 +0000 | emilym | (~Thunderbi@user/emilym) emilym |
| 2026-06-28 06:29:56 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 2026-06-28 06:33:54 +0000 | emilym | (~Thunderbi@user/emilym) (Ping timeout: 256 seconds) |
| 2026-06-28 06:36:22 +0000 | tusko | (~uwu@user/tusko) (Remote host closed the connection) |
| 2026-06-28 06:40:46 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-28 06:41:37 +0000 | tusko | (~uwu@user/tusko) tusko |
| 2026-06-28 06:45:18 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 243 seconds) |
| 2026-06-28 06:47:05 +0000 | machinedgod | (~machinedg@d108-173-95-19.abhsia.telus.net) (Ping timeout: 248 seconds) |
| 2026-06-28 06:47:56 +0000 | tromp | (~textual@2001:1c00:340e:2700:dd19:dfa1:d2a9:f5b7) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2026-06-28 06:50:41 +0000 | chromoblob | (~chromoblo@user/chromob1ot1c) (Remote host closed the connection) |
| 2026-06-28 06:50:57 +0000 | chromoblob | (~chromoblo@user/chromob1ot1c) chromoblob\0 |
| 2026-06-28 06:51:55 +0000 | traxex | (traxex@user/traxex) traxex |
| 2026-06-28 06:55:40 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-28 07:01:01 +0000 | tt12316070197800 | (~tt1231@2603:6010:8700:4a81:a4f6:acff:fe95:3803) (Quit: The Lounge - https://thelounge.chat) |
| 2026-06-28 07:02:15 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2026-06-28 07:03:03 +0000 | tt12316070197800 | (~tt1231@2603:6010:8700:4a81:a4f6:acff:fe95:3803) tt1231 |
| 2026-06-28 07:09:09 +0000 | wootehfoot | (~wootehfoo@user/wootehfoot) wootehfoot |
| 2026-06-28 07:11:15 +0000 | berke93_ | (~default@193.108.195.249) |
| 2026-06-28 07:14:11 +0000 | emilym | (~Thunderbi@user/emilym) emilym |
| 2026-06-28 07:15:00 +0000 | tromp | (~textual@2001:1c00:340e:2700:dd19:dfa1:d2a9:f5b7) |
| 2026-06-28 07:15:49 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-28 07:16:46 +0000 | takuan | (~takuan@d8D86B9E9.access.telenet.be) |
| 2026-06-28 07:18:05 +0000 | peterbecich | (~Thunderbi@71.84.33.135) (Ping timeout: 245 seconds) |
| 2026-06-28 07:21:34 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2026-06-28 07:24:37 +0000 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
| 2026-06-28 07:32:13 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-28 07:32:43 +0000 | ski | (~ski@31-208-30-55.cust.bredband2.com) (Ping timeout: 264 seconds) |
| 2026-06-28 07:33:35 +0000 | ski | (~ski@31-208-30-55.cust.bredband2.com) |
| 2026-06-28 07:36:10 +0000 | [dpk] | dpk |
| 2026-06-28 07:36:41 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 2026-06-28 07:47:35 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-28 07:49:42 +0000 | ss4 | (~wootehfoo@user/wootehfoot) wootehfoot |
| 2026-06-28 07:51:59 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2026-06-28 07:52:48 +0000 | ss4 | (~wootehfoo@user/wootehfoot) (Client Quit) |
| 2026-06-28 07:53:30 +0000 | wootehfoot | (~wootehfoo@user/wootehfoot) (Ping timeout: 245 seconds) |
| 2026-06-28 07:56:42 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-28 08:02:39 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2026-06-28 08:04:08 +0000 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
| 2026-06-28 08:07:18 +0000 | wootehfoot | (~wootehfoo@user/wootehfoot) wootehfoot |
| 2026-06-28 08:11:23 +0000 | emilym | (~Thunderbi@user/emilym) (Ping timeout: 252 seconds) |
| 2026-06-28 08:13:17 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-28 08:14:46 +0000 | divlamir | (~divlamir@user/divlamir) (Read error: Connection reset by peer) |
| 2026-06-28 08:14:52 +0000 | divlamir_ | (~divlamir@user/divlamir) divlamir |
| 2026-06-28 08:15:32 +0000 | emilym | (~Thunderbi@user/emilym) emilym |
| 2026-06-28 08:15:43 +0000 | divlamir_ | divlamir |
| 2026-06-28 08:17:42 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-06-28 08:28:40 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-28 08:30:33 +0000 | Digit | (~user@user/digit) (Read error: Connection reset by peer) |
| 2026-06-28 08:33:15 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2026-06-28 08:38:12 +0000 | karenw | (~karenw@user/karenw) (Ping timeout: 252 seconds) |
| 2026-06-28 08:43:57 +0000 | hayhaystack | (~husshpupp@user/husshpuppy) husshpuppy |
| 2026-06-28 08:44:02 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-28 08:48:34 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2026-06-28 08:51:02 +0000 | acidjnk_new | (~acidjnk@p200300d6e74def039d5a069af2df0e93.dip0.t-ipconnect.de) |
| 2026-06-28 08:51:12 +0000 | acidjnk | (~acidjnk@p200300d6e74def039d5a069af2df0e93.dip0.t-ipconnect.de) acidjnk |
| 2026-06-28 08:51:35 +0000 | Googulator52 | (~Googulato@80-95-87-76.pool.digikabel.hu) (Quit: Client closed) |
| 2026-06-28 08:51:37 +0000 | rubin55 | (sid666180@id-666180.ilkley.irccloud.com) rubin55 |
| 2026-06-28 08:52:00 +0000 | Googulator52 | (~Googulato@80-95-87-76.pool.digikabel.hu) |
| 2026-06-28 08:54:55 +0000 | Digit | (~user@user/digit) Digit |
| 2026-06-28 08:55:16 +0000 | lynxx_ | (~lynxx_@2001:9e8:3bf4:6d00:7c69:8855:c9f5:ce3b) |
| 2026-06-28 08:55:46 +0000 | lynxx_ | (~lynxx_@2001:9e8:3bf4:6d00:7c69:8855:c9f5:ce3b) (Client Quit) |
| 2026-06-28 08:56:52 +0000 | emilym | (~Thunderbi@user/emilym) (Ping timeout: 276 seconds) |
| 2026-06-28 08:57:43 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-28 08:58:17 +0000 | emilym | (~Thunderbi@user/emilym) emilym |
| 2026-06-28 09:03:15 +0000 | emilym | (~Thunderbi@user/emilym) (Ping timeout: 272 seconds) |
| 2026-06-28 09:04:41 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 2026-06-28 09:28:33 +0000 | Digit | (~user@user/digit) (Read error: Connection reset by peer) |
| 2026-06-28 09:29:21 +0000 | Digit` | (~user@195.144.208.46.dyn.plus.net) |
| 2026-06-28 09:33:55 +0000 | poscat | (~poscat@user/poscat) (Remote host closed the connection) |
| 2026-06-28 09:34:34 +0000 | ski | (~ski@31-208-30-55.cust.bredband2.com) (Ping timeout: 276 seconds) |
| 2026-06-28 09:34:58 +0000 | traxex | (traxex@user/traxex) (Ping timeout: 265 seconds) |
| 2026-06-28 09:36:58 +0000 | poscat | (~poscat@user/poscat) poscat |
| 2026-06-28 09:37:54 +0000 | berke93_ | (~default@193.108.195.249) (Remote host closed the connection) |
| 2026-06-28 09:38:19 +0000 | berke93_ | (~default@193.108.195.249) |
| 2026-06-28 09:40:41 +0000 | ski | (~ski@31-208-30-55.cust.bredband2.com) |
| 2026-06-28 09:41:15 +0000 | chromoblob | (~chromoblo@user/chromob1ot1c) (Ping timeout: 265 seconds) |
| 2026-06-28 09:45:23 +0000 | __monty__ | (~toonn@user/toonn) toonn |
| 2026-06-28 09:45:26 +0000 | ski | (~ski@31-208-30-55.cust.bredband2.com) (Ping timeout: 256 seconds) |
| 2026-06-28 09:46:43 +0000 | <unworriedsafari> | is it me or is hackage.haskell.org slow at the moment? |
| 2026-06-28 09:47:32 +0000 | <jaror> | It's fine for me now (just browsing the packages) |
| 2026-06-28 09:48:00 +0000 | emilym | (~Thunderbi@user/emilym) emilym |
| 2026-06-28 09:48:09 +0000 | chromoblob | (~chromoblo@user/chromob1ot1c) chromoblob\0 |
| 2026-06-28 09:50:17 +0000 | <unworriedsafari> | ok it's alright again here as well |
| 2026-06-28 10:09:30 +0000 | tcard__ | (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Quit: Leaving) |
| 2026-06-28 10:21:24 +0000 | ski | (~ski@31-208-30-244.cust.bredband2.com) |
| 2026-06-28 10:30:59 +0000 | wootehfoot | (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
| 2026-06-28 10:32:04 +0000 | karenw | (~karenw@user/karenw) karenw |
| 2026-06-28 10:34:23 +0000 | emilym | (~Thunderbi@user/emilym) (Ping timeout: 252 seconds) |
| 2026-06-28 10:34:27 +0000 | berke93__ | (~default@82.166.36.177) |
| 2026-06-28 10:36:37 +0000 | berke93_ | (~default@193.108.195.249) (Read error: Connection reset by peer) |
| 2026-06-28 10:37:38 +0000 | berke93___ | (~default@193.108.195.249) |
| 2026-06-28 10:39:20 +0000 | ft | (~ft@p4fc2a1bf.dip0.t-ipconnect.de) (Ping timeout: 245 seconds) |
| 2026-06-28 10:41:18 +0000 | berke93__ | (~default@82.166.36.177) (Ping timeout: 244 seconds) |
| 2026-06-28 10:41:48 +0000 | emilym | (~Thunderbi@user/emilym) emilym |
| 2026-06-28 10:51:12 +0000 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 2026-06-28 10:51:27 +0000 | ft | (~ft@p508db997.dip0.t-ipconnect.de) ft |
| 2026-06-28 10:56:39 +0000 | ft | (~ft@p508db997.dip0.t-ipconnect.de) (Ping timeout: 265 seconds) |
| 2026-06-28 10:57:20 +0000 | ft | (~ft@p3e9bc25c.dip0.t-ipconnect.de) ft |
| 2026-06-28 11:02:51 +0000 | ft | (~ft@p3e9bc25c.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 2026-06-28 11:08:52 +0000 | ft | (~ft@p3e9bccce.dip0.t-ipconnect.de) ft |
| 2026-06-28 11:09:04 +0000 | emilym | (~Thunderbi@user/emilym) (Ping timeout: 245 seconds) |
| 2026-06-28 11:10:45 +0000 | emilym | (~Thunderbi@user/emilym) emilym |
| 2026-06-28 11:11:05 +0000 | puke | (~puke@user/puke) (Read error: Connection reset by peer) |
| 2026-06-28 11:11:22 +0000 | puke | (~puke@user/puke) puke |
| 2026-06-28 11:26:00 +0000 | skum | (~skum@user/skum) skum |
| 2026-06-28 11:31:14 +0000 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) Lord_of_Life |
| 2026-06-28 11:32:07 +0000 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 264 seconds) |
| 2026-06-28 11:33:13 +0000 | vanishingideal | (~vanishing@user/vanishingideal) (Ping timeout: 252 seconds) |
| 2026-06-28 11:34:06 +0000 | Lord_of_Life_ | Lord_of_Life |
| 2026-06-28 11:35:01 +0000 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Excess Flood) |
| 2026-06-28 11:35:56 +0000 | Digit` | (~user@195.144.208.46.dyn.plus.net) (Ping timeout: 256 seconds) |
| 2026-06-28 11:43:55 +0000 | emilym | (~Thunderbi@user/emilym) (Ping timeout: 276 seconds) |
| 2026-06-28 11:44:45 +0000 | emilym | (~Thunderbi@user/emilym) emilym |
| 2026-06-28 11:50:15 +0000 | Digit | (~user@user/digit) Digit |
| 2026-06-28 11:58:08 +0000 | tremon | (~tremon@83-80-159-219.cable.dynamic.v4.ziggo.nl) tremon |
| 2026-06-28 12:11:53 +0000 | weary-traveler | (~user@user/user363627) user363627 |
| 2026-06-28 12:14:54 +0000 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) Lord_of_Life |
| 2026-06-28 12:16:23 +0000 | fp | (~Thunderbi@178-133-117-157.mobile.vf-ua.net) fp |
| 2026-06-28 12:18:58 +0000 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Read error: Connection reset by peer) |
| 2026-06-28 12:20:28 +0000 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) Lord_of_Life |
| 2026-06-28 12:21:26 +0000 | <fp> | So I've been trying to get my head around how =IO= works, so I decided that I would try making a basic implementation of it with Rust. How far, at the high level, is what I'm doing from what Haskell does? https://paste.rs/SIL3v.rs |
| 2026-06-28 12:22:31 +0000 | <fp> | Of course, mine uses Rust std to do I/O instead of syscalls, but I'm interested in if the interface I've made is basically similar |
| 2026-06-28 12:23:12 +0000 | <mauke> | can't be right |
| 2026-06-28 12:23:51 +0000 | <mauke> | IO::ret(s).bind(|s| { ... }) is pointless; could just { ... } directly |
| 2026-06-28 12:24:15 +0000 | <mauke> | (because 'return x >>= f' is 'f x') |
| 2026-06-28 12:25:37 +0000 | <fp> | Sure, but I have to fake it a bit since I'm not interested in implementing the low level IO |
| 2026-06-28 12:25:49 +0000 | <mauke> | fp: main = let { x :: IO (); x = putStrLn "hi" } in print (length [x, x, x, x, x]) >> x >> x |
| 2026-06-28 12:26:08 +0000 | <mauke> | if you do the equivalent thing in rust, what does it output? |
| 2026-06-28 12:26:38 +0000 | <mauke> | let me guess at the syntax |
| 2026-06-28 12:28:06 +0000 | <mauke> | fn main() { let x = put_str_ln("hi"); print(???).bind(|_| { x.bind(|_| { x }) }); } |
| 2026-06-28 12:28:10 +0000 | <mauke> | not sure about lists |
| 2026-06-28 12:28:48 +0000 | <mauke> | actually, we can do better |
| 2026-06-28 12:29:22 +0000 | <mauke> | main = let { x :: IO (); x = putStrLn "hi" } in print (length [putStrLn "a", putStrLn "b", putStrLn "c"]) >> x >> x |
| 2026-06-28 12:30:02 +0000 | <mauke> | the correct output is "3\nhi\nhi\n" |
| 2026-06-28 12:30:23 +0000 | <fp> | For the first one, it's "hi\n5hi\nhi" |
| 2026-06-28 12:30:24 +0000 | <mauke> | I suspect yours would give "hi\na\nb\nc\n" |
| 2026-06-28 12:31:33 +0000 | <fp> | But actually I had to cheat with the first one. I couldn't reuse the x variable for the two >>s, so I rewrote put_str_ln("hi") |
| 2026-06-28 12:32:31 +0000 | rensenwxre | (~fwam@user/fwam) fwam |
| 2026-06-28 12:33:03 +0000 | <fp> | So without the cheat, it would've said "hi\n5\n" |
| 2026-06-28 12:35:12 +0000 | weary-traveler | (~user@user/user363627) (Quit: Konversation terminated!) |
| 2026-06-28 12:35:48 +0000 | weary-traveler | (~user@user/user363627) user363627 |
| 2026-06-28 12:39:34 +0000 | <fp> | > I suspect yours would give "hi\na\nb\nc\n" |
| 2026-06-28 12:39:34 +0000 | <fp> | Yeah, or "hi\na\nb\nc3", but close enough |
| 2026-06-28 12:39:35 +0000 | <lambdabot> | Data constructor not in scope: |
| 2026-06-28 12:39:35 +0000 | <lambdabot> | I :: t0 -> t1 -> t2 -> t3 -> String -> tVariable not in scope: suspectVari... |
| 2026-06-28 12:43:30 +0000 | <fp> | So I guess I need to make a structure of closures and run it with an explicit command, like Io::ret(...).bind(...).run(). But Rust doesn't make that easy... |
| 2026-06-28 12:45:32 +0000 | <mauke> | I don't know rust, but I just prototyped it in perl: https://pt.gayr.at/p/akEXWseeFyQMI20qKUFlL479SHI |
| 2026-06-28 12:46:08 +0000 | <mauke> | (no 'print' because we're taking advantage of perl's implicit 'show') |
| 2026-06-28 12:47:36 +0000 | Pozyomka | (~pyon@user/pyon) (Quit: test) |
| 2026-06-28 12:51:16 +0000 | Pozyomka | (~pyon@user/pyon) pyon |
| 2026-06-28 12:52:59 +0000 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
| 2026-06-28 12:53:05 +0000 | fp | (~Thunderbi@178-133-117-157.mobile.vf-ua.net) (Ping timeout: 256 seconds) |
| 2026-06-28 12:54:47 +0000 | traxex | (traxex@user/traxex) traxex |
| 2026-06-28 12:58:26 +0000 | fp | (~Thunderbi@46-133-26-225.mobile.vf-ua.net) fp |
| 2026-06-28 13:00:03 +0000 | <fp> | mauke: Ok yeah that's basically what I tried at first. Unfortunately, Rust makes extending the lifetime of a capturing closure a major PITA |
| 2026-06-28 13:00:57 +0000 | <fp> | Maybe if I bring in a garbage collector it'll be easier, but I'm not sure it's possible to implement this otherwise |
| 2026-06-28 13:01:15 +0000 | <tomsmeding> | fp: wrap everything everywhere in Rc<>? |
| 2026-06-28 13:01:33 +0000 | <tomsmeding> | then as long as you don't create cycles, you get a "GC" like Haskell has |
| 2026-06-28 13:03:25 +0000 | <fp> | I guess if I force users to put everything they want returned into an Rc first, that could work |
| 2026-06-28 13:04:26 +0000 | <tomsmeding> | you're trying to simulate a language that's maximally-YOLO with memory management (pure Haskell) in one that's unusually precise about memory management |
| 2026-06-28 13:06:59 +0000 | emilym | (~Thunderbi@user/emilym) (Ping timeout: 245 seconds) |
| 2026-06-28 13:07:19 +0000 | <tomsmeding> | fp: "struct Io<T>(T);" "/// A computation that, when performed, does some I/O before returning a value of type `T`." |
| 2026-06-28 13:07:23 +0000 | <tomsmeding> | where's the computation? This is just a T |
| 2026-06-28 13:08:10 +0000 | <tomsmeding> | try `struct Io<T>(Fn() -> T);` |
| 2026-06-28 13:08:25 +0000 | <fp> | Yes and that is the root of all evil |
| 2026-06-28 13:08:41 +0000 | <tomsmeding> | because of lifetimes? |
| 2026-06-28 13:08:51 +0000 | <tomsmeding> | add .clone() and Rc<> until it works |
| 2026-06-28 13:09:09 +0000 | <tomsmeding> | lifetimes are 100% distracting from the mechanics of IO :p |
| 2026-06-28 13:10:34 +0000 | <fp> | That actually doesn't work because Fn() -> T is a DST, so you need to Box (or just &, but I won't) it and use dyn, or use a function pointer (but that means capturing closures aren't allowed). And even with Rc and clone, you still run into lifetime issues |
| 2026-06-28 13:11:45 +0000 | <fp> | like in `fn ret(t: Rc<T>) -> Io<T> { Io(Rc::new(|| t.clone())) }`, t doesn't have a long enough lifetime |
| 2026-06-28 13:12:51 +0000 | emilym | (~Thunderbi@user/emilym) emilym |
| 2026-06-28 13:13:54 +0000 | <tomsmeding> | also not if you `move || t`? |
| 2026-06-28 13:14:23 +0000 | <tomsmeding> | and yes my rust is rusty, add Box<> as necessary |
| 2026-06-28 13:14:42 +0000 | <fp> | No, move doesn't work |
| 2026-06-28 13:15:28 +0000 | <tomsmeding> | what precisely is the error? ret() owns t, right, so it should be able to move it into the closure |
| 2026-06-28 13:16:23 +0000 | <fp> | Ultimately, my goal isn't to emulate Haskell per se, but to have a composable Io interface in Rust. For context, I'm testing this out to see if I could make an API for an industrial fieldbus this way |
| 2026-06-28 13:16:34 +0000 | <fp> | "T may not live long enough" |
| 2026-06-28 13:17:27 +0000 | <tomsmeding> | I think this experience is enough to show that Haskell's way of representing an IO computation -- using closures -- is not usable in Rust :p |
| 2026-06-28 13:17:38 +0000 | <fp> | Yeah I'm seeing that |
| 2026-06-28 13:17:46 +0000 | <tomsmeding> | you might have more luck with the free monad encoding |
| 2026-06-28 13:18:06 +0000 | <tomsmeding> | hm, no that still has closures everywhere |
| 2026-06-28 13:18:34 +0000 | <fp> | I guess building a stack machine might be more reasonable |
| 2026-06-28 13:18:54 +0000 | <tomsmeding> | what Haskell's "IO" gives you is a data type for describing arbitrary side-effectful computations in a non-side-effectful language |
| 2026-06-28 13:18:56 +0000 | <tomsmeding> | is that what you need? |
| 2026-06-28 13:18:57 +0000 | <fp> | Or generally like an interpreter |
| 2026-06-28 13:23:33 +0000 | <fp> | What I'm imagining is that a user can describe a complex IO action and that can be dispatched to the IO device or to a server that does the IO and they get back either the expected data or a rich error |
| 2026-06-28 13:24:42 +0000 | <tomsmeding> | if you want to dispatch the IO computation to a device, and you describe IO like Haskell does, you'll need to also run arbitrary Rust code on the device |
| 2026-06-28 13:24:52 +0000 | <tomsmeding> | and serialise, transfer and deserialise the closures |
| 2026-06-28 13:25:23 +0000 | <fp> | Sure |
| 2026-06-28 13:25:26 +0000 | <tomsmeding> | because an arbitrary IO action contains calls to primitive IO operations as well as "pure" glue code that decides what next action to take |
| 2026-06-28 13:25:44 +0000 | <hc> | Hmm, not having read the backlog thoroughly, but isn't that pretty much what rust's async/"Futures" do? Wrap IO in closures? |
| 2026-06-28 13:26:00 +0000 | <hc> | (Not that I'm saying I particularly like async rust) |
| 2026-06-28 13:26:16 +0000 | <tomsmeding> | I feel like this is wrapping closures in IO instead of IO in closures |
| 2026-06-28 13:26:50 +0000 | <tomsmeding> | fp: can you just dispatch a single primitive IO action to the device, or do you really need to dispatch a larger program? |
| 2026-06-28 13:27:18 +0000 | <tomsmeding> | because then the first thing I'd think about is "what kind of computation, aside from the precise representation of the IO operations, can I run on this device" |
| 2026-06-28 13:27:45 +0000 | <tomsmeding> | and what kind of computation do you actually want to run |
| 2026-06-28 13:27:55 +0000 | chromoblob | (~chromoblo@user/chromob1ot1c) (Ping timeout: 276 seconds) |
| 2026-06-28 13:27:57 +0000 | <fp> | That is a good question to ask, one that I should really consider |
| 2026-06-28 13:28:10 +0000 | <tomsmeding> | an intermediate version that is much more feasible is defining a little language that you have an interpreter for on the device |
| 2026-06-28 13:28:21 +0000 | <tomsmeding> | (I think you already suggested this) |
| 2026-06-28 13:28:42 +0000 | chromoblob | (~chromoblo@user/chromob1ot1c) chromoblob\0 |
| 2026-06-28 13:28:55 +0000 | <tomsmeding> | that means you have to also write the stuff in the .bind() closures in your little language, but the payoff is that the thing you send to the device, and what you execute there, is just a regular old data type |
| 2026-06-28 13:29:05 +0000 | <tomsmeding> | which you can serde etc |
| 2026-06-28 13:29:39 +0000 | <tomsmeding> | (I'm assuming "device" here is a separate piece of hardware that doesn't necessarily share a CPU architecture with the "main" computer) |
| 2026-06-28 13:30:01 +0000 | berke93___ | (~default@193.108.195.249) (Ping timeout: 266 seconds) |
| 2026-06-28 13:30:58 +0000 | <fp> | Yeah like I have some programs that are running with this fieldbus IO, but it's very timing sensitive, so I really need to move it to a different process (though same machine is probably fine). But then of course I have to develop a way to command IO actions of the other process, which is how I got here |
| 2026-06-28 13:31:34 +0000 | <fp> | And also IO feels like magic sometimes and I wanted to understand it better |
| 2026-06-28 13:31:53 +0000 | chromoblob | (~chromoblo@user/chromob1ot1c) (Read error: Connection reset by peer) |
| 2026-06-28 13:33:09 +0000 | chromoblob | (~chromoblo@user/chromob1ot1c) chromoblob\0 |
| 2026-06-28 13:33:10 +0000 | <tomsmeding> | if it's a different process on the same machine, I'd seriously consider if there is way to group your computations into "pre-made programs" that can be triggered by the commanding process as a whole |
| 2026-06-28 13:33:22 +0000 | <fp> | The magic is less now, though lazy evaluation still feels crazy to me. That you can make a repl with =getContents >>= \contents -> putStrLn $ (unlines . map show . map eval . lines) contents= is bonkers |