2022-06-14 00:05:26 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-14 00:09:52 +0200 | rodental | (~rodental@38.146.5.222) (Remote host closed the connection) |
2022-06-14 00:11:33 +0200 | gmg | (~user@user/gehmehgeh) (Quit: Leaving) |
2022-06-14 00:14:55 +0200 | acidjnk | (~acidjnk@p200300d0c7068b59955fef414e8d7a9b.dip0.t-ipconnect.de) (Ping timeout: 258 seconds) |
2022-06-14 00:15:42 +0200 | Guest27 | (~Guest27@2601:281:d47f:1590::59a2) (Ping timeout: 252 seconds) |
2022-06-14 00:16:34 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-14 00:17:29 +0200 | king_gs | (~Thunderbi@187.201.173.69) |
2022-06-14 00:17:39 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-14 00:22:38 +0200 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2022-06-14 00:25:05 +0200 | littlebo1eep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-14 00:27:34 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-14 00:30:04 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-14 00:33:04 +0200 | littlebo1eep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-14 00:39:23 +0200 | king_gs | (~Thunderbi@187.201.173.69) (Ping timeout: 256 seconds) |
2022-06-14 00:39:24 +0200 | king_gs1 | (~Thunderbi@187.201.173.69) |
2022-06-14 00:39:50 +0200 | jgeerds | (~jgeerds@55d45f48.access.ecotel.net) (Ping timeout: 240 seconds) |
2022-06-14 00:41:43 +0200 | king_gs1 | king_gs |
2022-06-14 00:46:55 +0200 | littlebo1eep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-14 00:48:04 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-14 00:51:26 +0200 | Cupcakus | (~Cupcakus@c-73-205-77-141.hsd1.fl.comcast.net) (Ping timeout: 246 seconds) |
2022-06-14 00:54:57 +0200 | rodental | (~rodental@38.146.5.222) |
2022-06-14 00:57:13 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
2022-06-14 00:58:11 +0200 | slack1256 | (~slack1256@186.11.82.227) |
2022-06-14 01:00:08 +0200 | slac50227 | (~slack1256@191.125.227.223) (Ping timeout: 248 seconds) |
2022-06-14 01:01:30 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-173.elisa-laajakaista.fi) (Quit: Leaving.) |
2022-06-14 01:02:39 +0200 | lemonsnicks | (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Quit: ZNC 1.8.2 - https://znc.in) |
2022-06-14 01:03:04 +0200 | lemonsnicks | (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) |
2022-06-14 01:03:33 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
2022-06-14 01:04:25 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
2022-06-14 01:06:43 +0200 | ozkutuk | (~ozkutuk@176.240.173.153) |
2022-06-14 01:08:09 +0200 | Unicorn_Princess | (~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Remote host closed the connection) |
2022-06-14 01:08:36 +0200 | Unicorn_Princess | (~Unicorn_P@93-103-228-248.dynamic.t-2.net) |
2022-06-14 01:08:37 +0200 | pleo | (~pleo@user/pleo) (Quit: quit) |
2022-06-14 01:17:33 +0200 | yaroot | (~yaroot@11.70.30.125.dy.iij4u.or.jp) (Remote host closed the connection) |
2022-06-14 01:19:20 +0200 | yaroot | (~yaroot@2409:12:ac0:2300:680e:dbff:fe1e:4953) |
2022-06-14 01:19:30 +0200 | ozkutuk | (~ozkutuk@176.240.173.153) (Ping timeout: 250 seconds) |
2022-06-14 01:20:49 +0200 | zeenk | (~zeenk@2a02:2f04:a013:9000:e45d:7fb3:ec71:e806) (Quit: Konversation terminated!) |
2022-06-14 01:21:40 +0200 | vicfred | (~vicfred@user/vicfred) (Read error: Connection reset by peer) |
2022-06-14 01:21:50 +0200 | vicfred_ | (~vicfred@user/vicfred) |
2022-06-14 01:23:38 +0200 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
2022-06-14 01:25:18 +0200 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-06-14 01:25:31 +0200 | hpc | (~juzz@ip98-169-32-242.dc.dc.cox.net) (Ping timeout: 244 seconds) |
2022-06-14 01:27:01 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5) |
2022-06-14 01:30:36 +0200 | nate4 | (~nate@98.45.169.16) |
2022-06-14 01:31:05 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
2022-06-14 01:31:08 +0200 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
2022-06-14 01:32:31 +0200 | hpc | (~juzz@ip98-169-32-242.dc.dc.cox.net) |
2022-06-14 01:32:38 +0200 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-06-14 01:35:03 +0200 | tremon | (~tremon@83-84-18-241.cable.dynamic.v4.ziggo.nl) (Quit: getting boxed in) |
2022-06-14 01:35:41 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
2022-06-14 01:35:42 +0200 | king_gs | (~Thunderbi@187.201.173.69) (Read error: Connection reset by peer) |
2022-06-14 01:36:04 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2022-06-14 01:36:07 +0200 | xstill_ | (xstill@fimu/xstill) (Read error: Connection reset by peer) |
2022-06-14 01:36:07 +0200 | xsarnik | (xsarnik@lounge.fi.muni.cz) (Read error: Connection reset by peer) |
2022-06-14 01:36:17 +0200 | xstill_7 | (xstill@fimu/xstill) |
2022-06-14 01:36:54 +0200 | xsarnik | (xsarnik@lounge.fi.muni.cz) |
2022-06-14 01:37:42 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
2022-06-14 01:37:50 +0200 | nurupo | (~nurupo.ga@user/nurupo) (Ping timeout: 240 seconds) |
2022-06-14 01:37:55 +0200 | glider | (~glider@user/glider) (Ping timeout: 244 seconds) |
2022-06-14 01:38:17 +0200 | ozkutuk | (~ozkutuk@176.240.173.153) |
2022-06-14 01:38:22 +0200 | king_gs | (~Thunderbi@187.201.173.69) |
2022-06-14 01:38:28 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2022-06-14 01:38:34 +0200 | littlebo1eep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-14 01:38:39 +0200 | relrod | (~relrod@redhat/ansible.staff.relrod) (Ping timeout: 240 seconds) |
2022-06-14 01:39:10 +0200 | RMSBach | (~guygastin@137.184.131.156) (Ping timeout: 240 seconds) |
2022-06-14 01:39:12 +0200 | Cupcakus | (~Cupcakus@c-73-205-77-141.hsd1.fl.comcast.net) |
2022-06-14 01:39:15 +0200 | DigitalKiwi | (~kiwi@137.184.156.191) (Ping timeout: 258 seconds) |
2022-06-14 01:39:16 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
2022-06-14 01:39:26 +0200 | anderson | (~ande@user/anderson) (Ping timeout: 250 seconds) |
2022-06-14 01:39:37 +0200 | dragestil | (~znc@user/dragestil) (Ping timeout: 248 seconds) |
2022-06-14 01:39:37 +0200 | ario | (~ario@159.65.220.102) (Ping timeout: 248 seconds) |
2022-06-14 01:39:37 +0200 | drewolson | (~drewolson@user/drewolson) (Ping timeout: 248 seconds) |
2022-06-14 01:39:45 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2022-06-14 01:39:50 +0200 | thaumavorio | (~thaumavor@thaumavor.io) (Ping timeout: 260 seconds) |
2022-06-14 01:40:01 +0200 | blades | (~blades@204.48.29.163) (Ping timeout: 256 seconds) |
2022-06-14 01:40:01 +0200 | davean | (~davean@davean.sciesnet.net) (Ping timeout: 256 seconds) |
2022-06-14 01:40:06 +0200 | eldritch | (~eldritch@user/eldritch) (Ping timeout: 272 seconds) |
2022-06-14 01:40:24 +0200 | stvc | (~stvc@192.241.166.39) (Ping timeout: 276 seconds) |
2022-06-14 01:40:32 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-14 01:42:19 +0200 | mht- | (~mht@2a03:b0c0:3:e0::1e2:c001) (Ping timeout: 240 seconds) |
2022-06-14 01:42:28 +0200 | eternalforms | (~obsrwr@46.101.168.131) (Ping timeout: 248 seconds) |
2022-06-14 01:42:49 +0200 | davl | (~davl@207.154.228.18) (Ping timeout: 248 seconds) |
2022-06-14 01:43:00 +0200 | zzz | (~z@user/zero) (Ping timeout: 248 seconds) |
2022-06-14 01:43:05 +0200 | sweater | (~sweater@206.81.18.26) (Ping timeout: 258 seconds) |
2022-06-14 01:43:14 +0200 | cocreature | (~moritz@2a03:b0c0:3:d0::c8:f001) (Ping timeout: 252 seconds) |
2022-06-14 01:43:16 +0200 | ringo__ | (~ringo@157.230.117.128) (Ping timeout: 272 seconds) |
2022-06-14 01:43:25 +0200 | apache2 | (apache2@anubis.0x90.dk) (Ping timeout: 256 seconds) |
2022-06-14 01:44:04 +0200 | winny | (~weechat@user/winny) (Ping timeout: 240 seconds) |
2022-06-14 01:45:09 +0200 | nate4 | (~nate@98.45.169.16) (Ping timeout: 244 seconds) |
2022-06-14 01:46:17 +0200 | oxide | (~lambda@user/oxide) |
2022-06-14 01:46:30 +0200 | winny | (~weechat@user/winny) |
2022-06-14 01:46:57 +0200 | nurupo | (~nurupo.ga@user/nurupo) |
2022-06-14 01:47:03 +0200 | RMSBach | (~guygastin@137.184.131.156) |
2022-06-14 01:47:07 +0200 | dragestil | (~znc@user/dragestil) |
2022-06-14 01:47:07 +0200 | thaumavorio | (~thaumavor@thaumavor.io) |
2022-06-14 01:47:50 +0200 | DigitalKiwi | (~kiwi@137.184.156.191) |
2022-06-14 01:48:08 +0200 | xff0x | (~xff0x@b133147.ppp.asahi-net.or.jp) (Ping timeout: 246 seconds) |
2022-06-14 01:48:23 +0200 | <mon_aaraj> | jackdk: Thank you very much! I've realized a lot of that code seemed familiar to me and it turns out most of it can be seen in his blog, though I didn't know about that talk. |
2022-06-14 01:49:38 +0200 | drewolson | (~drewolson@user/drewolson) |
2022-06-14 01:50:01 +0200 | mvk | (~mvk@2607:fea8:5ce3:8500::4588) |
2022-06-14 01:50:08 +0200 | Haskelytic | (~Haskelyti@118.179.211.17) |
2022-06-14 01:50:32 +0200 | <Axman6> | jackdk always gives good advice |
2022-06-14 01:50:53 +0200 | <jackdk> | Axman6: and yet you still haven't started using Nix for literally everything |
2022-06-14 01:50:56 +0200 | <jackdk> | :P |
2022-06-14 01:51:19 +0200 | ario | (~ario@159.65.220.102) |
2022-06-14 01:51:23 +0200 | <Axman6> | you still haven't managed to pull of a "hey, look at this cool thing I did in Nix" without it failing :P |
2022-06-14 01:51:33 +0200 | <mon_aaraj> | haha, guess it's very common for us haskellers to be using nix as a solution for package management |
2022-06-14 01:51:51 +0200 | blades | (~blades@204.48.29.163) |
2022-06-14 01:52:04 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-14 01:52:24 +0200 | <mon_aaraj> | unfortunately after updating NixOS it seems my touchpad stopped working so I had to go back to my imperative distro |
2022-06-14 01:52:58 +0200 | relrod | (~relrod@redhat/ansible.staff.relrod) |
2022-06-14 01:53:08 +0200 | davean | (~davean@davean.sciesnet.net) |
2022-06-14 01:53:15 +0200 | eldritch | (~eldritch@user/eldritch) |
2022-06-14 01:53:26 +0200 | stvc | (~stvc@192.241.166.39) |
2022-06-14 01:53:52 +0200 | <Haskelytic> | Why is everyone so excited about Nix |
2022-06-14 01:54:44 +0200 | <hpc> | it tries to solve packaging in ways that look a lot like how haskell solves programming |
2022-06-14 01:54:59 +0200 | <Axman6> | it has a lot of promise in providing a lot of extremely useful properties, like only ever compiling the same thing once, knowing exactly what is installed on a system and being able to reliably replicate it, and because of that, checking the integrity of a system is fairly trivial too |
2022-06-14 01:55:05 +0200 | <hpc> | and there's not a whole lot else like it, so it's interesting to learn |
2022-06-14 01:55:49 +0200 | <Haskelytic> | so basically it tries to extend functional programming to system administration? |
2022-06-14 01:55:53 +0200 | apache2 | (apache2@anubis.0x90.dk) |
2022-06-14 01:55:57 +0200 | <Axman6> | having a single way to configure all the different services etc. on your system is pretty handy |
2022-06-14 01:56:07 +0200 | <mon_aaraj> | Well, not really functional programming |
2022-06-14 01:56:12 +0200 | <Axman6> | in a way, but I'm not sure that's the main take away |
2022-06-14 01:56:51 +0200 | <Haskelytic> | that seems like an awfully ambitious project IMO |
2022-06-14 01:56:55 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-14 01:56:57 +0200 | <Haskelytic> | maybe in 5 years I'll try it :) |
2022-06-14 01:57:41 +0200 | cocreature | (~moritz@46.101.189.229) |
2022-06-14 01:58:32 +0200 | <geekosaur> | in 5 years something else will be the go-to :) |
2022-06-14 01:59:13 +0200 | eternalforms | (~obsrwr@46.101.168.131) |
2022-06-14 01:59:16 +0200 | <Haskelytic> | ye olde package management never gets old :) |
2022-06-14 01:59:52 +0200 | <hpc> | sometimes it seems it never gets old because it's born old |
2022-06-14 02:00:14 +0200 | <Haskelytic> | not sure I get what you mean :/ |
2022-06-14 02:00:23 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 246 seconds) |
2022-06-14 02:00:26 +0200 | zero | (~z@user/zero) |
2022-06-14 02:00:28 +0200 | glider | (~glider@user/glider) |
2022-06-14 02:00:39 +0200 | xff0x | (~xff0x@b133147.ppp.asahi-net.or.jp) |
2022-06-14 02:00:58 +0200 | nate4 | (~nate@98.45.169.16) |
2022-06-14 02:00:59 +0200 | <hpc> | aside from nix, all the new stuff feels like writing init scripts with slightly different pre-defined macros |
2022-06-14 02:01:30 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-06-14 02:01:42 +0200 | <hpc> | but that's a topic for -offtopic |
2022-06-14 02:01:43 +0200 | califax | (~califax@user/califx) (Remote host closed the connection) |
2022-06-14 02:02:16 +0200 | <Haskelytic> | Ahhh....I can definitely agree to that |
2022-06-14 02:02:16 +0200 | <Axman6> | package managers have always felt like hacks to me, Nix is the only one that seemms to try to actually do things right |
2022-06-14 02:02:34 +0200 | anderson | (~ande@user/anderson) |
2022-06-14 02:02:43 +0200 | <Haskelytic> | Been around enough to see many variants of config managment, package management etc.. |
2022-06-14 02:02:47 +0200 | mht-wtf | (~mht@2a03:b0c0:3:e0::1e2:c001) |
2022-06-14 02:03:00 +0200 | <Haskelytic> | Honestly feels tiring to have to learn what are essentially 50 tools for the same problem |
2022-06-14 02:03:01 +0200 | <hpc> | nix still feels like a hack to me, but in the same way that lisp and fortran both feel like different hacks |
2022-06-14 02:03:22 +0200 | califax | (~califax@user/califx) |
2022-06-14 02:03:35 +0200 | <hpc> | probably because of the lack of types, and how hard it is to find the specification for a derivation |
2022-06-14 02:03:49 +0200 | <hpc> | like "a derivation is a hash value with fields x, y, and z" |
2022-06-14 02:05:00 +0200 | <geekosaur> | problem with that being all package management is trying to force a bunch of things into one framework when every single one of them is a one-off, even if they start out following mostly common rules (e.g. autoconf) |
2022-06-14 02:05:59 +0200 | <mon_aaraj> | err, did people see my last 2 messages about "declarativity and preproducibility"? It seems the logs don't see it |
2022-06-14 02:06:20 +0200 | nate4 | (~nate@98.45.169.16) (Ping timeout: 252 seconds) |
2022-06-14 02:06:31 +0200 | <geekosaur> | [14 00:00:23] * mon_aaraj has quit (Ping timeout: 246 seconds) |
2022-06-14 02:06:37 +0200 | Kaipei | Kaiepi |
2022-06-14 02:06:45 +0200 | <mon_aaraj> | ah, yeah. I suppose they didn't send |
2022-06-14 02:06:53 +0200 | slac46955 | (~slack1256@191.126.227.199) |
2022-06-14 02:07:35 +0200 | <geekosaur> | declarativity and reproducibility are nice when they work |
2022-06-14 02:07:41 +0200 | <Axman6> | One thing I've liked about using OpenVSd over the years is them occasionally having the bright idea to replace some wonky service with a new more secure one, with a consistent config file format |
2022-06-14 02:07:45 +0200 | ringo__ | (~ringo@157.230.117.128) |
2022-06-14 02:07:57 +0200 | <mon_aaraj> | here's what i was going to send: nix tries to extend declarativity & reproducibility into package/system management. as far as i can see, there isn't like any exact inherent FP in Nix, other than the language being slightly inspired syntax-wise |
2022-06-14 02:07:59 +0200 | <mon_aaraj> | by FP languages, but does right about everything else badly |
2022-06-14 02:08:01 +0200 | <Axman6> | OpenBSD* |
2022-06-14 02:08:54 +0200 | slack1256 | (~slack1256@186.11.82.227) (Ping timeout: 250 seconds) |
2022-06-14 02:10:50 +0200 | dsrt^ | (~dsrt@50.223.50.178) |
2022-06-14 02:12:23 +0200 | davl | (~davl@207.154.228.18) |
2022-06-14 02:14:02 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 252 seconds) |
2022-06-14 02:14:03 +0200 | slac46955 | (~slack1256@191.126.227.199) (Read error: Connection reset by peer) |
2022-06-14 02:15:32 +0200 | slack1256 | (~slack1256@186.11.82.227) |
2022-06-14 02:15:53 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-06-14 02:16:50 +0200 | sweater | (~sweater@206.81.18.26) |
2022-06-14 02:18:21 +0200 | dsrt^ | (~dsrt@50.223.50.178) (Remote host closed the connection) |
2022-06-14 02:18:42 +0200 | dsrt^ | (~dsrt@50.223.50.178) |
2022-06-14 02:19:55 +0200 | causal | (~user@50.35.83.177) |
2022-06-14 02:22:31 +0200 | hpc | (~juzz@ip98-169-32-242.dc.dc.cox.net) (Ping timeout: 256 seconds) |
2022-06-14 02:24:29 +0200 | hpc | (~juzz@ip98-169-32-242.dc.dc.cox.net) |
2022-06-14 02:27:19 +0200 | <DigitalKiwi> | 18:52 mon_aaraj: unfortunately after updating NixOS it seems my touchpad stopped working so I had to go back to my imperative distro |
2022-06-14 02:27:30 +0200 | <DigitalKiwi> | dude you literally just rollback |
2022-06-14 02:28:02 +0200 | <DigitalKiwi> | nioxs-rebuild switch --rollback |
2022-06-14 02:29:09 +0200 | king_gs | (~Thunderbi@187.201.173.69) (Ping timeout: 276 seconds) |
2022-06-14 02:30:16 +0200 | <DigitalKiwi> | it even works between nixos versions |
2022-06-14 02:30:28 +0200 | <DigitalKiwi> | take that debian which can't even upgrade lol |
2022-06-14 02:30:37 +0200 | <DigitalKiwi> | or arch that can't even downgrade |
2022-06-14 02:31:11 +0200 | <Clint> | DigitalKiwi: pfft |
2022-06-14 02:31:13 +0200 | <Clint> | can't upgrade |
2022-06-14 02:32:12 +0200 | <DigitalKiwi> | skip a version see how it goes ;D |
2022-06-14 02:32:44 +0200 | <Clint> | well, that's not supported |
2022-06-14 02:33:09 +0200 | <DigitalKiwi> | exactly |
2022-06-14 02:33:29 +0200 | <DigitalKiwi> | on nixos you can skip versions up and down ;p |
2022-06-14 02:33:39 +0200 | <DigitalKiwi> | it's great |
2022-06-14 02:34:18 +0200 | <DigitalKiwi> | i had a server with an uptime of like 2 years on the latest nixos beta lol |
2022-06-14 02:34:41 +0200 | <DigitalKiwi> | 00:33:01 up 78 days 4:39, 1 user, load average: 0.86, 0.97, 0.99 |
2022-06-14 02:35:07 +0200 | <DigitalKiwi> | i didn't need to reboot it but i did :( |
2022-06-14 02:35:26 +0200 | <DigitalKiwi> | digitalocean had new hardware lol |
2022-06-14 02:35:36 +0200 | <DigitalKiwi> | so now it's new and improved! |
2022-06-14 02:36:10 +0200 | <DigitalKiwi> | 22.11pre383837.033bd4fa9a8 (Raccoon) |
2022-06-14 02:44:17 +0200 | xff0x | (~xff0x@b133147.ppp.asahi-net.or.jp) (Ping timeout: 252 seconds) |
2022-06-14 02:47:17 +0200 | tangy | (~tangy@user/tangy) () |
2022-06-14 02:50:02 +0200 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Read error: Connection reset by peer) |
2022-06-14 02:50:04 +0200 | sammelweis_ | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-06-14 02:51:04 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 248 seconds) |
2022-06-14 02:52:49 +0200 | <jackdk> | mon_aaraj: Nix-the-language is a pure functional programming language with exactly one side-effecting primitive: `derivation`, which roughly means "run a command and capture its outputs under `/nix/store`" |
2022-06-14 02:53:06 +0200 | <mon_aaraj> | ah, okay |
2022-06-14 02:53:11 +0200 | <mon_aaraj> | thank you for the correction |
2022-06-14 02:53:42 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2022-06-14 02:53:43 +0200 | <jackdk> | No worries mate |
2022-06-14 02:55:25 +0200 | king_gs | (~Thunderbi@187.201.173.69) |
2022-06-14 02:56:45 +0200 | dsrt^ | (~dsrt@50.223.50.178) (Remote host closed the connection) |
2022-06-14 02:57:04 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-14 02:57:07 +0200 | dsrt^ | (~dsrt@50.223.50.178) |
2022-06-14 02:57:45 +0200 | Cupcakus | (~Cupcakus@c-73-205-77-141.hsd1.fl.comcast.net) (Ping timeout: 276 seconds) |
2022-06-14 02:58:02 +0200 | relrod | (~relrod@redhat/ansible.staff.relrod) (Ping timeout: 252 seconds) |
2022-06-14 02:58:59 +0200 | thaumavorio | (~thaumavor@thaumavor.io) (Ping timeout: 258 seconds) |
2022-06-14 02:59:03 +0200 | dragestil | (~znc@user/dragestil) (Ping timeout: 276 seconds) |
2022-06-14 02:59:22 +0200 | nurupo | (~nurupo.ga@user/nurupo) (Ping timeout: 258 seconds) |
2022-06-14 02:59:41 +0200 | anderson | (~ande@user/anderson) (Ping timeout: 252 seconds) |
2022-06-14 02:59:41 +0200 | glider | (~glider@user/glider) (Ping timeout: 252 seconds) |
2022-06-14 02:59:41 +0200 | stvc | (~stvc@192.241.166.39) (Ping timeout: 252 seconds) |
2022-06-14 02:59:41 +0200 | eldritch | (~eldritch@user/eldritch) (Ping timeout: 252 seconds) |
2022-06-14 02:59:41 +0200 | davean | (~davean@davean.sciesnet.net) (Ping timeout: 252 seconds) |
2022-06-14 02:59:42 +0200 | RMSBach | (~guygastin@137.184.131.156) (Ping timeout: 276 seconds) |
2022-06-14 02:59:45 +0200 | DigitalKiwi | (~kiwi@137.184.156.191) (Ping timeout: 258 seconds) |
2022-06-14 03:00:14 +0200 | blades | (~blades@204.48.29.163) (Ping timeout: 252 seconds) |
2022-06-14 03:00:14 +0200 | ario | (~ario@159.65.220.102) (Ping timeout: 252 seconds) |
2022-06-14 03:00:14 +0200 | drewolson | (~drewolson@user/drewolson) (Ping timeout: 252 seconds) |
2022-06-14 03:04:30 +0200 | <jackdk> | (There is a _lot_ built on top of that primitive) |
2022-06-14 03:05:06 +0200 | relrod | (~relrod@redhat/ansible.staff.relrod) |
2022-06-14 03:06:27 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
2022-06-14 03:07:57 +0200 | thaumavorio | (~thaumavor@thaumavor.io) |
2022-06-14 03:08:00 +0200 | jmcarthur | (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit) |
2022-06-14 03:08:01 +0200 | nurupo | (~nurupo.ga@user/nurupo) |
2022-06-14 03:08:09 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-14 03:08:32 +0200 | DigitalKiwi | (~kiwi@137.184.156.191) |
2022-06-14 03:08:52 +0200 | RMSBach | (~guygastin@137.184.131.156) |
2022-06-14 03:08:53 +0200 | dragestil | (~znc@user/dragestil) |
2022-06-14 03:09:31 +0200 | drewolson | (~drewolson@user/drewolson) |
2022-06-14 03:10:40 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2022-06-14 03:11:27 +0200 | <mon_aaraj> | yep, and aren't derivations just "sets" (as they called it in the language) too? |
2022-06-14 03:11:34 +0200 | <DigitalKiwi> | https://mostlyabsurd.com/files/2022-06-08-212240_1454x1373_scrot.png |
2022-06-14 03:11:49 +0200 | ario_ | (~ario@159.65.220.102) |
2022-06-14 03:11:54 +0200 | <DigitalKiwi> | anyone want one or several? :D |
2022-06-14 03:12:18 +0200 | <DigitalKiwi> | the logo is on the other side too |
2022-06-14 03:12:25 +0200 | blades | (~blades@204.48.29.163) |
2022-06-14 03:12:27 +0200 | <DigitalKiwi> | https://mostlyabsurd.com/files/2022-06-08-212549_2313x1745_scrot.png |
2022-06-14 03:13:13 +0200 | davean | (~davean@davean.sciesnet.net) |
2022-06-14 03:13:31 +0200 | stvc | (~stvc@192.241.166.39) |
2022-06-14 03:14:37 +0200 | eldritch | (~eldritch@user/eldritch) |
2022-06-14 03:15:52 +0200 | machinedgod | (~machinedg@66.244.246.252) (Ping timeout: 260 seconds) |
2022-06-14 03:16:08 +0200 | glider | (~glider@user/glider) |
2022-06-14 03:16:47 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2022-06-14 03:18:13 +0200 | anderson | (~ande@user/anderson) |
2022-06-14 03:18:33 +0200 | pointblank | (~uniquepoi@190.141.232.23) |
2022-06-14 03:19:48 +0200 | p3n | (~p3n@217.198.124.246) (Quit: ZNC 1.8.2 - https://znc.in) |
2022-06-14 03:20:40 +0200 | p3n | (~p3n@2a00:19a0:3:7c:0:d9c6:7cf6:1) |
2022-06-14 03:20:45 +0200 | <exarkun> | mon_aaraj: nix-the-language has a set type which is more often called an "attrset" because it's more like Map String a than a set |
2022-06-14 03:20:59 +0200 | <exarkun> | mon_aaraj: and derivations are values of that type that follow a certain set of rules |
2022-06-14 03:21:18 +0200 | <exarkun> | mon_aaraj: and can the argument to `derivation` to perform the side-effecting |
2022-06-14 03:21:28 +0200 | <exarkun> | s/can the/can be the/ |
2022-06-14 03:23:41 +0200 | oxide | (~lambda@user/oxide) (Quit: oxide) |
2022-06-14 03:23:48 +0200 | Haskelytic | (~Haskelyti@118.179.211.17) (Ping timeout: 252 seconds) |
2022-06-14 03:26:10 +0200 | arahael | (~arahael@124.171.44.79) (Ping timeout: 240 seconds) |
2022-06-14 03:26:42 +0200 | xff0x | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
2022-06-14 03:27:13 +0200 | nicbk | (~nicbk@user/nicbk) |
2022-06-14 03:34:22 +0200 | dextaa | (~DV@user/dextaa) (Read error: Connection reset by peer) |
2022-06-14 03:34:57 +0200 | julian | (~julian@20.83.116.49) (Killed (NickServ (GHOST command used by tos9__!~tos9@python/site-packages/Julian))) |
2022-06-14 03:36:38 +0200 | dextaa | (~DV@user/dextaa) |
2022-06-14 03:37:39 +0200 | lemonsnicks | (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Quit: ZNC 1.8.2 - https://znc.in) |
2022-06-14 03:38:13 +0200 | lemonsnicks | (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) |
2022-06-14 03:40:02 +0200 | [_] | (~itchyjunk@user/itchyjunk/x-7353470) |
2022-06-14 03:40:27 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Killed (silver.libera.chat (Nickname regained by services))) |
2022-06-14 03:40:27 +0200 | [_] | [itchyjunk] |
2022-06-14 03:42:48 +0200 | king_gs | (~Thunderbi@187.201.173.69) (Ping timeout: 248 seconds) |
2022-06-14 03:44:44 +0200 | vicfred_ | (~vicfred@user/vicfred) (Quit: Leaving) |
2022-06-14 03:53:48 +0200 | king_gs | (~Thunderbi@187.201.173.69) |
2022-06-14 03:55:37 +0200 | Unicorn_Princess | (~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Remote host closed the connection) |
2022-06-14 03:56:55 +0200 | gentauro | (~gentauro@user/gentauro) (Read error: Connection reset by peer) |
2022-06-14 03:58:32 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 255 seconds) |
2022-06-14 04:01:50 +0200 | ubert | (~Thunderbi@p200300ecdf14f9b367fdd9edecf9b9f3.dip0.t-ipconnect.de) (Remote host closed the connection) |
2022-06-14 04:02:09 +0200 | ubert | (~Thunderbi@p200300ecdf14f9b3dc314568d36b7130.dip0.t-ipconnect.de) |
2022-06-14 04:02:38 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2022-06-14 04:02:38 +0200 | gentauro | (~gentauro@user/gentauro) |
2022-06-14 04:03:34 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-14 04:07:44 +0200 | nate4 | (~nate@98.45.169.16) |
2022-06-14 04:08:26 +0200 | dextaa | (~DV@user/dextaa) (Read error: Connection reset by peer) |
2022-06-14 04:10:41 +0200 | dextaa | (~DV@user/dextaa) |
2022-06-14 04:10:52 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-14 04:12:10 +0200 | td_ | (~td@muedsl-82-207-238-100.citykom.de) (Ping timeout: 240 seconds) |
2022-06-14 04:12:14 +0200 | gurkenglas | (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) |
2022-06-14 04:12:41 +0200 | julian | (~julian@20.83.116.49) |
2022-06-14 04:14:06 +0200 | td_ | (~td@muedsl-82-207-238-155.citykom.de) |
2022-06-14 04:20:50 +0200 | nate4 | (~nate@98.45.169.16) (Ping timeout: 240 seconds) |
2022-06-14 04:29:00 +0200 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 260 seconds) |
2022-06-14 04:35:05 +0200 | dextaa | (~DV@user/dextaa) (Read error: Connection reset by peer) |
2022-06-14 04:37:19 +0200 | dextaa | (~DV@user/dextaa) |
2022-06-14 04:39:39 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
2022-06-14 04:39:39 +0200 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2022-06-14 04:39:39 +0200 | finn_elija | FinnElija |
2022-06-14 04:41:30 +0200 | arahael | (~arahael@203.220.147.161) |
2022-06-14 04:42:34 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-14 04:44:45 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-14 04:45:04 +0200 | yrlnry | (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) (Remote host closed the connection) |
2022-06-14 04:54:02 +0200 | yrlnry | (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) |
2022-06-14 04:54:34 +0200 | slaydr | (~slaydr@193.37.33.104) |
2022-06-14 04:56:50 +0200 | mht-wtf | (~mht@2a03:b0c0:3:e0::1e2:c001) (Ping timeout: 252 seconds) |
2022-06-14 04:56:50 +0200 | cocreature | (~moritz@46.101.189.229) (Ping timeout: 252 seconds) |
2022-06-14 04:56:51 +0200 | fjmorazan | (~quassel@user/fjmorazan) (Quit: fjmorazan) |
2022-06-14 04:57:00 +0200 | davl | (~davl@207.154.228.18) (Ping timeout: 260 seconds) |
2022-06-14 04:57:00 +0200 | ringo__ | (~ringo@157.230.117.128) (Ping timeout: 260 seconds) |
2022-06-14 04:57:23 +0200 | littlebo1eep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-14 04:57:23 +0200 | zero | (~z@user/zero) (Ping timeout: 252 seconds) |
2022-06-14 04:57:23 +0200 | eternalforms | (~obsrwr@46.101.168.131) (Ping timeout: 252 seconds) |
2022-06-14 04:57:23 +0200 | apache2 | (apache2@anubis.0x90.dk) (Ping timeout: 252 seconds) |
2022-06-14 04:57:28 +0200 | relrod | (~relrod@redhat/ansible.staff.relrod) (Ping timeout: 248 seconds) |
2022-06-14 04:57:29 +0200 | fjmorazan | (~quassel@user/fjmorazan) |
2022-06-14 04:57:35 +0200 | sweater | (~sweater@206.81.18.26) (Ping timeout: 260 seconds) |
2022-06-14 05:01:04 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-14 05:03:17 +0200 | relrod | (~relrod@redhat/ansible.staff.relrod) |
2022-06-14 05:07:25 +0200 | zebrag | (~chris@user/zebrag) (Quit: Konversation terminated!) |
2022-06-14 05:08:00 +0200 | apache2 | (apache2@anubis.0x90.dk) |
2022-06-14 05:08:18 +0200 | zero | (~z@user/zero) |
2022-06-14 05:08:56 +0200 | eternalforms | (~obsrwr@46.101.168.131) |
2022-06-14 05:11:29 +0200 | cocreature | (~moritz@46.101.189.229) |
2022-06-14 05:12:11 +0200 | king_gs | (~Thunderbi@187.201.173.69) (Ping timeout: 246 seconds) |
2022-06-14 05:12:28 +0200 | mht-wtf | (~mht@2a03:b0c0:3:e0::1e2:c001) |
2022-06-14 05:14:00 +0200 | dsrt^ | (~dsrt@50.223.50.178) (Ping timeout: 248 seconds) |
2022-06-14 05:18:54 +0200 | dsrt^ | (~dsrt@50.223.50.178) |
2022-06-14 05:20:43 +0200 | ringo__ | (~ringo@157.230.117.128) |
2022-06-14 05:23:36 +0200 | jao | (~jao@40.red-79-159-140.dynamicip.rima-tde.net) (Ping timeout: 248 seconds) |
2022-06-14 05:24:09 +0200 | davl | (~davl@207.154.228.18) |
2022-06-14 05:24:32 +0200 | coot | (~coot@213.134.190.95) |
2022-06-14 05:26:55 +0200 | frost | (~frost@user/frost) |
2022-06-14 05:31:41 +0200 | sweater | (~sweater@206.81.18.26) |
2022-06-14 05:39:15 +0200 | coot | (~coot@213.134.190.95) (Quit: coot) |
2022-06-14 05:57:38 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
2022-06-14 06:01:24 +0200 | littlebo1eep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Remote host closed the connection) |
2022-06-14 06:01:24 +0200 | stiell_ | (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
2022-06-14 06:01:24 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
2022-06-14 06:03:19 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2022-06-14 06:06:48 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-14 06:07:26 +0200 | stiell_ | (~stiell@gateway/tor-sasl/stiell) |
2022-06-14 06:14:11 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2022-06-14 06:14:32 +0200 | Vajb | (~Vajb@85-76-45-159-nat.elisa-mobile.fi) |
2022-06-14 06:17:17 +0200 | dsrt^ | (~dsrt@50.223.50.178) (Ping timeout: 260 seconds) |
2022-06-14 06:22:58 +0200 | king_gs | (~Thunderbi@187.201.173.69) |
2022-06-14 06:24:00 +0200 | slaydr | (~slaydr@193.37.33.104) (Remote host closed the connection) |
2022-06-14 06:33:56 +0200 | dsrt^ | (~dsrt@50.223.50.178) |
2022-06-14 06:38:28 +0200 | <JensPetersen[m]> | Seems it can take Hackage a few minutes to update its archive after an upload now |
2022-06-14 06:40:04 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-14 06:40:36 +0200 | slack1256 | (~slack1256@186.11.82.227) (Ping timeout: 248 seconds) |
2022-06-14 06:44:21 +0200 | king_gs | (~Thunderbi@187.201.173.69) (Read error: Connection reset by peer) |
2022-06-14 06:44:56 +0200 | king_gs | (~Thunderbi@187.201.173.69) |
2022-06-14 06:45:44 +0200 | mvk | (~mvk@2607:fea8:5ce3:8500::4588) (Ping timeout: 252 seconds) |
2022-06-14 06:52:41 +0200 | dextaa | (~DV@user/dextaa) (Read error: Connection reset by peer) |
2022-06-14 06:54:57 +0200 | dextaa | (~DV@user/dextaa) |
2022-06-14 06:55:30 +0200 | ubert1 | (~Thunderbi@p200300ecdf14f933f4d611279d79d098.dip0.t-ipconnect.de) |
2022-06-14 06:56:11 +0200 | ubert | (~Thunderbi@p200300ecdf14f9b3dc314568d36b7130.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
2022-06-14 06:56:11 +0200 | ubert1 | ubert |
2022-06-14 07:01:21 +0200 | jmd_ | (~jmdaemon@user/jmdaemon) (Ping timeout: 244 seconds) |
2022-06-14 07:03:03 +0200 | kimjetwav | (~user@2607:fea8:2340:da00:1c36:e65:50a7:b564) |
2022-06-14 07:03:58 +0200 | king_gs | (~Thunderbi@187.201.173.69) (Read error: Connection reset by peer) |
2022-06-14 07:04:01 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-14 07:06:22 +0200 | king_gs | (~Thunderbi@187.201.173.69) |
2022-06-14 07:08:55 +0200 | frost | (~frost@user/frost) (Quit: Client closed) |
2022-06-14 07:12:59 +0200 | bilegeek | (~bilegeek@2600:1008:b01b:3801:91d9:f7b7:b62d:360f) |
2022-06-14 07:17:39 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2022-06-14 07:23:27 +0200 | frost | (~frost@user/frost) |
2022-06-14 07:29:48 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2022-06-14 07:31:33 +0200 | zmt00 | (~zmt00@user/zmt00) (Read error: Connection reset by peer) |
2022-06-14 07:32:37 +0200 | zmt00 | (~zmt00@user/zmt00) |
2022-06-14 07:34:53 +0200 | dostoevsky0 | (~5c42c5384@user/dostoevsky) |
2022-06-14 07:35:46 +0200 | dostoevsky | (~5c42c5384@user/dostoevsky) (Read error: Connection reset by peer) |
2022-06-14 07:35:46 +0200 | dostoevsky0 | dostoevsky |
2022-06-14 07:36:42 +0200 | vglfr | (~vglfr@88.155.71.159) |
2022-06-14 07:37:47 +0200 | michalz | (~michalz@185.246.204.107) |
2022-06-14 07:38:15 +0200 | <dsal> | Yeah, it used to be pretty slow. |
2022-06-14 07:38:54 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2022-06-14 07:41:38 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-06-14 07:44:05 +0200 | king_gs | (~Thunderbi@187.201.173.69) (Read error: Connection reset by peer) |
2022-06-14 07:44:17 +0200 | king_gs | (~Thunderbi@187.201.173.69) |
2022-06-14 07:59:35 +0200 | cosmos1 | (cosmos@user/cosmos1) |
2022-06-14 08:04:38 +0200 | king_gs | (~Thunderbi@187.201.173.69) (Read error: Connection reset by peer) |
2022-06-14 08:04:51 +0200 | king_gs | (~Thunderbi@187.201.173.69) |
2022-06-14 08:06:17 +0200 | coot | (~coot@213.134.190.95) |
2022-06-14 08:08:58 +0200 | ccntrq | (~Thunderbi@172.209.94.92.rev.sfr.net) |
2022-06-14 08:14:23 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2022-06-14 08:15:30 +0200 | acidjnk | (~acidjnk@p200300d0c7068b1004113c5627619f0a.dip0.t-ipconnect.de) |
2022-06-14 08:17:15 +0200 | stiell_ | (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
2022-06-14 08:18:03 +0200 | stiell_ | (~stiell@gateway/tor-sasl/stiell) |
2022-06-14 08:20:28 +0200 | nate4 | (~nate@98.45.169.16) |
2022-06-14 08:23:37 +0200 | shriekingnoise | (~shrieking@201.212.175.181) (Quit: Quit) |
2022-06-14 08:23:38 +0200 | biberu | (~biberu@user/biberu) (Ping timeout: 246 seconds) |
2022-06-14 08:23:42 +0200 | biberu\ | (~biberu@user/biberu) |
2022-06-14 08:24:34 +0200 | nicbk | (~nicbk@user/nicbk) (Ping timeout: 240 seconds) |
2022-06-14 08:25:15 +0200 | biberu\ | biberu |
2022-06-14 08:29:04 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-14 08:33:47 +0200 | dsrt^ | (~dsrt@50.223.50.178) (Ping timeout: 246 seconds) |
2022-06-14 08:41:50 +0200 | nate4 | (~nate@98.45.169.16) (Ping timeout: 246 seconds) |
2022-06-14 08:44:46 +0200 | nicbk | (~nicbk@user/nicbk) |
2022-06-14 08:46:29 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-14 08:47:27 +0200 | cosmos1 | (cosmos@user/cosmos1) (Ping timeout: 276 seconds) |
2022-06-14 08:51:41 +0200 | cosmos1 | (cosmos@user/cosmos1) |
2022-06-14 09:02:39 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:eb43:ae28:5b68:592d) |
2022-06-14 09:04:14 +0200 | mattil | (~mattil@helsinki.portalify.com) |
2022-06-14 09:06:20 +0200 | biberu | (~biberu@user/biberu) (Ping timeout: 246 seconds) |
2022-06-14 09:07:08 +0200 | mima | (~mmh@dhcp-138-246-3-112.dynamic.eduroam.mwn.de) |
2022-06-14 09:11:32 +0200 | frost | (~frost@user/frost) (Quit: Ping timeout (120 seconds)) |
2022-06-14 09:14:34 +0200 | MajorBiscuit | (~MajorBisc@86-88-79-148.fixed.kpn.net) |
2022-06-14 09:14:53 +0200 | frost | (~frost@user/frost) |
2022-06-14 09:16:00 +0200 | MajorBiscuit | (~MajorBisc@86-88-79-148.fixed.kpn.net) (Client Quit) |
2022-06-14 09:22:05 +0200 | lagash | (lagash@lagash.shelltalk.net) (Ping timeout: 255 seconds) |
2022-06-14 09:27:18 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
2022-06-14 09:27:58 +0200 | MajorBiscuit | (~MajorBisc@c-001-022-040.client.tudelft.eduvpn.nl) |
2022-06-14 09:28:11 +0200 | chele | (~chele@user/chele) |
2022-06-14 09:32:21 +0200 | <tomsmeding> | 02:34 <DigitalKiwi> i had a server with an uptime of like 2 years on the latest nixos beta lol |
2022-06-14 09:32:26 +0200 | <tomsmeding> | rip your linux kernel vulnerabilities :p |
2022-06-14 09:37:50 +0200 | _________ | (~nobody@user/noodly) (Ping timeout: 240 seconds) |
2022-06-14 09:41:18 +0200 | califax | (~califax@user/califx) (Remote host closed the connection) |
2022-06-14 09:41:26 +0200 | cosmos1 | (cosmos@user/cosmos1) (Ping timeout: 255 seconds) |
2022-06-14 09:42:11 +0200 | califax | (~califax@user/califx) |
2022-06-14 09:42:24 +0200 | cosmos1 | (cosmos@user/cosmos1) |
2022-06-14 09:42:40 +0200 | jargon | (~jargon@184.101.221.60) |
2022-06-14 09:47:16 +0200 | jonathanx | (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 248 seconds) |
2022-06-14 09:49:34 +0200 | turlando | (~turlando@user/turlando) (Read error: Connection reset by peer) |
2022-06-14 09:51:46 +0200 | <maerwald[m]> | tomsmeding: reproducibility in general is a conflicting goal to security |
2022-06-14 09:51:48 +0200 | machinedgod | (~machinedg@66.244.246.252) |
2022-06-14 09:53:07 +0200 | alp | (~alp@user/alp) |
2022-06-14 09:53:50 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2022-06-14 09:54:30 +0200 | zeenk | (~zeenk@2a02:2f04:a013:9000:e45d:7fb3:ec71:e806) |
2022-06-14 09:56:38 +0200 | lawt | (~lawt@98.56.182.59) (Ping timeout: 272 seconds) |
2022-06-14 09:57:46 +0200 | zaquest | (~notzaques@5.130.79.72) (Remote host closed the connection) |
2022-06-14 09:59:06 +0200 | zaquest | (~notzaques@5.130.79.72) |
2022-06-14 10:00:39 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-06-14 10:01:23 +0200 | turlando | (~turlando@93.51.40.51) |
2022-06-14 10:01:23 +0200 | turlando | (~turlando@93.51.40.51) (Changing host) |
2022-06-14 10:01:23 +0200 | turlando | (~turlando@user/turlando) |
2022-06-14 10:03:10 +0200 | mc47 | (~mc47@xmonad/TheMC47) |
2022-06-14 10:03:28 +0200 | lawt | (~lawt@98.56.182.59) |
2022-06-14 10:03:34 +0200 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 240 seconds) |
2022-06-14 10:04:13 +0200 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) |
2022-06-14 10:04:14 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:4c1c:cb6:e1d6:4d06) (Remote host closed the connection) |
2022-06-14 10:06:50 +0200 | dextaa | (~DV@user/dextaa) (Read error: Connection reset by peer) |
2022-06-14 10:09:03 +0200 | dextaa | (~DV@user/dextaa) |
2022-06-14 10:11:59 +0200 | <arahael> | maerwald[m]: Is it really? |
2022-06-14 10:12:24 +0200 | kuribas | (~user@ptr-17d51emab50486u5ioi.18120a2.ip6.access.telenet.be) |
2022-06-14 10:12:30 +0200 | vglfr | (~vglfr@88.155.71.159) (Ping timeout: 240 seconds) |
2022-06-14 10:13:03 +0200 | <merijn> | arahael: Yes |
2022-06-14 10:13:29 +0200 | vglfr | (~vglfr@coupling.penchant.volia.net) |
2022-06-14 10:13:45 +0200 | gmg | (~user@user/gehmehgeh) |
2022-06-14 10:13:46 +0200 | <merijn> | "I wanna run the *exact* configuration of software as 10 years ago" is directly conflicting with "I don't want any security holes", because old security holes don't magically disappear |
2022-06-14 10:13:51 +0200 | <arahael> | Just make sure I understnad the situation - reproducability is used to ensure that for a given version of a build, you have precisely the expected output build? |
2022-06-14 10:13:53 +0200 | <arahael> | Oh! |
2022-06-14 10:14:16 +0200 | jgeerds | (~jgeerds@55d45f48.access.ecotel.net) |
2022-06-14 10:14:19 +0200 | <arahael> | merijn: Well, yes, THAT is indeed going to run contrary to security. |
2022-06-14 10:15:05 +0200 | <tdammers> | OTOH, "I wanna run the *exact* configuration of software that we've just spent $100k to audit" can be a reasonable thing to say |
2022-06-14 10:15:43 +0200 | <arahael> | Especially if you can then go... "But since then we have found X issues, and so we have the resulting X changes to it". |
2022-06-14 10:16:09 +0200 | <arahael> | To me, reproducability is all about being able to account for exactly what's in a product. (As best we can , anyway) |
2022-06-14 10:16:47 +0200 | <merijn> | tdammers: Also, in science it makes sense, because vulnerabilities are mostly irrelevant for code that runs single user on a machine that isn't internet accessible |
2022-06-14 10:18:45 +0200 | <arahael> | Imho, just because something can be reproducable, doesn't mean you have to use that version! |
2022-06-14 10:19:36 +0200 | tomekgrzesiak | (~tomekgrze@109.206.198.75) |
2022-06-14 10:19:59 +0200 | turlando | (~turlando@user/turlando) () |
2022-06-14 10:27:29 +0200 | <maerwald[m]> | tdammers: right, that's usually in safety (automotive) |
2022-06-14 10:27:43 +0200 | <maerwald[m]> | The fun part is when safety domain meets security requirements |
2022-06-14 10:27:47 +0200 | <maerwald[m]> | Pretty rough |
2022-06-14 10:28:42 +0200 | <arahael> | I'm still not entirely sure where 'reproduceable' means you can't use updated code. |
2022-06-14 10:30:09 +0200 | <maerwald[m]> | arahael: in nix it does. Because nix doesn't know anything about API or library behavior |
2022-06-14 10:30:17 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Remote host closed the connection) |
2022-06-14 10:30:34 +0200 | <maerwald[m]> | And I don't know any packaging system that does |
2022-06-14 10:30:54 +0200 | turlando | (~turlando@93.51.40.51) |
2022-06-14 10:30:54 +0200 | turlando | (~turlando@93.51.40.51) (Changing host) |
2022-06-14 10:30:54 +0200 | turlando | (~turlando@user/turlando) |
2022-06-14 10:32:24 +0200 | turlando | (~turlando@user/turlando) (Read error: Connection reset by peer) |
2022-06-14 10:32:55 +0200 | <arahael> | maerwald[m]: Ah, yeah, I did forget about that. In nix, at least, you can easily determine which packages are still using the older libraries an upgrade those, but that's a very manual process. I tried to use nix for a while but after last year or so I stopped - went back to debian. |
2022-06-14 10:33:04 +0200 | <maerwald[m]> | Updating stuff and ensuring that your application behaves somewhat the same as before is a manual task |
2022-06-14 10:33:26 +0200 | <maerwald[m]> | There's no system that can predict this |
2022-06-14 10:33:44 +0200 | <arahael> | Yes, but I mean, the burden of doing those checks, etc, is higher in nix. |
2022-06-14 10:34:37 +0200 | <arahael> | In debian, lets say, they can "just" update the library, and essentially rely on the linker to ensure it all still works. Anything that doesn't is a bug in that application, more or less, but would still play into the decision. |
2022-06-14 10:34:38 +0200 | <maerwald[m]> | Yes, because nix maintainers don't deal with compatibility concerns |
2022-06-14 10:34:42 +0200 | <maerwald[m]> | Debian does |
2022-06-14 10:34:46 +0200 | <arahael> | Right. |
2022-06-14 10:35:03 +0200 | <maerwald[m]> | But I wouldn't rely on a packager to not mess up my production application |
2022-06-14 10:35:40 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-14 10:35:45 +0200 | <arahael> | Indeed. I think for a commercial application, I'd definitely go for reproducible, no question. For a distro, maybe, but it'd need to be a fairly small base system (think: BSD's). |
2022-06-14 10:36:07 +0200 | <merijn> | arahael: I mean, BSDs are different anyway |
2022-06-14 10:36:17 +0200 | <merijn> | arahael: base systems are 90% not other people's packages |
2022-06-14 10:36:24 +0200 | <arahael> | Right. |
2022-06-14 10:36:43 +0200 | <arahael> | I've been playing with Alpine, actually. It seems to remind me of BSD somehow. |
2022-06-14 10:36:48 +0200 | <merijn> | Which is why they are so much more cohesive than linux' mess |
2022-06-14 10:37:09 +0200 | <arahael> | Yep, indeed - and "mess" is a good way to describe it - it's gotten worse lately. |
2022-06-14 10:37:37 +0200 | turlando | (~turlando@93.51.40.51) |
2022-06-14 10:37:37 +0200 | turlando | (~turlando@93.51.40.51) (Changing host) |
2022-06-14 10:37:37 +0200 | turlando | (~turlando@user/turlando) |
2022-06-14 10:39:17 +0200 | <maerwald[m]> | arahael: yes, nix, pvp, git... they all make it worse. Because they remove the need to communicate or be paranoid about the effects of your decisions. Because you can just go roll back, set an upper bound or pin your git submodule |
2022-06-14 10:39:41 +0200 | <maerwald[m]> | Not saying that's the fault of those systems |
2022-06-14 10:39:57 +0200 | <maerwald[m]> | But users take those as an excuse |
2022-06-14 10:40:05 +0200 | <arahael> | maerwald[m]: I dislike submodules, but that's for other reasons. I work in medical software, so I absolutely do need to pin everything down exactly, but... |
2022-06-14 10:40:31 +0200 | <arahael> | maerwald[m]: Absolutely nothing says you have to keep those as they are. YOuc an update them fine! Just need to be able to be able to know exactly what the differences are from version to version. |
2022-06-14 10:40:51 +0200 | <maerwald[m]> | Yes, you should have dinner with your users before you change API ;) |
2022-06-14 10:41:17 +0200 | <arahael> | Haha. :) Monolithic apps here> :) |
2022-06-14 10:42:09 +0200 | nate4 | (~nate@98.45.169.16) |
2022-06-14 10:42:18 +0200 | <maerwald[m]> | But when you suggest better communication people usually object saying they don't get paid. And that's true as well |
2022-06-14 10:42:43 +0200 | <arahael> | maerwald[m]: Ah, that's a difference, yeah. |
2022-06-14 10:45:12 +0200 | <arahael> | There's no way I'd do a medical app with all the overheads for free. :D |
2022-06-14 10:46:37 +0200 | nate4 | (~nate@98.45.169.16) (Ping timeout: 244 seconds) |
2022-06-14 10:46:54 +0200 | <maerwald[m]> | E.g. people don't start mailing lists anymore that you can subscribe to and see design discussions up front. Instead now you're expected to follow git commits or watch noisy issue trackers |
2022-06-14 10:47:26 +0200 | <arahael> | Yeah. :( |
2022-06-14 10:47:47 +0200 | <arahael> | That sucks the joy out of it. |
2022-06-14 10:48:46 +0200 | <maerwald[m]> | I've always wanted two issue trackers on my projects. One for devs, one for users. That would somewhat alleviate it |
2022-06-14 10:49:15 +0200 | ubert | (~Thunderbi@p200300ecdf14f933f4d611279d79d098.dip0.t-ipconnect.de) (Remote host closed the connection) |
2022-06-14 10:49:29 +0200 | <maerwald[m]> | Then projects depending on it would only watch the dev tracker |
2022-06-14 10:50:00 +0200 | <arahael> | I personally prefer a chat channel. |
2022-06-14 10:50:14 +0200 | <arahael> | But people insist on a response RIGHT NOW. |
2022-06-14 10:50:34 +0200 | <arahael> | Instead I play a little game instead, when people say "Hello", I wait at least an hour before responding :D |
2022-06-14 10:53:47 +0200 | king_gs | (~Thunderbi@187.201.173.69) (Read error: Connection reset by peer) |
2022-06-14 10:53:47 +0200 | king_gs1 | (~Thunderbi@2806:103e:29:bd33:a770:7b09:49c6:13b0) |
2022-06-14 10:54:40 +0200 | <arahael> | It's slightly passive agressive, but I feel we have to look after our own stress too, and responding immediately to all messages gets a bit old. |
2022-06-14 10:55:03 +0200 | <arahael> | (Especially if they're not following etiquite by including the question up front) |
2022-06-14 10:56:06 +0200 | king_gs1 | king_gs |
2022-06-14 11:00:06 +0200 | Frido[m] | (~odirfjohr@2001:470:69fc:105::1:f483) (Quit: You have been kicked for being idle) |
2022-06-14 11:04:38 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:fd72:8b07:e388:e81e) |
2022-06-14 11:06:42 +0200 | tomekgrzesiak | (~tomekgrze@109.206.198.75) (Quit: Leaving) |
2022-06-14 11:09:11 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:fd72:8b07:e388:e81e) (Ping timeout: 255 seconds) |
2022-06-14 11:10:14 +0200 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2022-06-14 11:10:23 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2022-06-14 11:10:28 +0200 | __monty__ | (~toonn@user/toonn) |
2022-06-14 11:13:18 +0200 | jinsun | (~jinsun@user/jinsun) |
2022-06-14 11:21:30 +0200 | jargon | (~jargon@184.101.221.60) (Ping timeout: 240 seconds) |
2022-06-14 11:22:44 +0200 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 248 seconds) |
2022-06-14 11:25:04 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-14 11:25:12 +0200 | jargon | (~jargon@184.101.186.108) |
2022-06-14 11:25:18 +0200 | king_gs | (~Thunderbi@2806:103e:29:bd33:a770:7b09:49c6:13b0) (Ping timeout: 250 seconds) |
2022-06-14 11:25:35 +0200 | bilegeek | (~bilegeek@2600:1008:b01b:3801:91d9:f7b7:b62d:360f) (Quit: Leaving) |
2022-06-14 11:25:40 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-14 11:26:41 +0200 | yrlnry | (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) (Remote host closed the connection) |
2022-06-14 11:32:45 +0200 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) |
2022-06-14 11:35:04 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-14 11:35:37 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-14 11:37:32 +0200 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 260 seconds) |
2022-06-14 11:38:30 +0200 | king_gs | (~Thunderbi@187.201.173.69) |
2022-06-14 11:39:13 +0200 | jargon | (~jargon@184.101.186.108) (Remote host closed the connection) |
2022-06-14 11:40:06 +0200 | tomekgrzesiak | (~tomekgrze@109.206.198.75) |
2022-06-14 11:44:24 +0200 | jinsun | (~jinsun@user/jinsun) (Read error: Connection reset by peer) |
2022-06-14 11:44:51 +0200 | jinsun | (~jinsun@user/jinsun) |
2022-06-14 11:45:07 +0200 | cosmos1 | (cosmos@user/cosmos1) (Ping timeout: 260 seconds) |
2022-06-14 11:45:23 +0200 | dostoevsky5 | (~5c42c5384@user/dostoevsky) |
2022-06-14 11:46:45 +0200 | dostoevsky | (~5c42c5384@user/dostoevsky) (Read error: Connection reset by peer) |
2022-06-14 11:46:46 +0200 | dostoevsky5 | dostoevsky |
2022-06-14 11:50:30 +0200 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) |
2022-06-14 11:51:32 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 248 seconds) |
2022-06-14 11:53:25 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-06-14 11:57:27 +0200 | tomekgrzesiak | (~tomekgrze@109.206.198.75) (Quit: Leaving) |
2022-06-14 11:58:40 +0200 | frost | (~frost@user/frost) (Quit: Client closed) |
2022-06-14 11:59:29 +0200 | <sm> | g'day all |
2022-06-14 11:59:30 +0200 | <sm> | maerwald: github has discussions now, which could help that split |
2022-06-14 12:02:37 +0200 | king_gs | (~Thunderbi@187.201.173.69) (Ping timeout: 260 seconds) |
2022-06-14 12:04:09 +0200 | used____ | (~used____@79.115.62.163) |
2022-06-14 12:04:10 +0200 | CiaoSen | (~Jura@p200300c9571e28002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2022-06-14 12:05:20 +0200 | <used____> | Hi. I am new here. I am following the online haste-lang.org installation guide. The following phrase does not mean anything to me, and the link is dead: 'Install a GHC 7.10-based Haskell Platform.' -> links to 'https://www.haskell.org/platform/prior.html' -- which is dead. |
2022-06-14 12:05:25 +0200 | <used____> | Please point me right? |
2022-06-14 12:13:37 +0200 | <lortabac> | I don't know whether haste is still alive |
2022-06-14 12:14:30 +0200 | ubert | (~Thunderbi@2a02:8109:abc0:6434:910d:db38:5f6d:12dd) |
2022-06-14 12:14:40 +0200 | <used____> | It seems to work when installed. 8 years old files. I have no complaints. |
2022-06-14 12:14:59 +0200 | xff0x | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 246 seconds) |
2022-06-14 12:15:14 +0200 | <used____> | So far. But I know no Haskell and I need to get the equivalent of a "Haskell Platform" installed soon. |
2022-06-14 12:15:24 +0200 | <int-e> | "a somewhat recent (GHC 7.6+) version of GHC" -- we've went through 8.0, 8.2, ..., 8.10, 9.0, and are now at 9.2 |
2022-06-14 12:15:40 +0200 | jinsun | (~jinsun@user/jinsun) (Read error: Connection reset by peer) |
2022-06-14 12:15:59 +0200 | <used____> | I think it needs to be 7.10.x exactly, else there will be errors and I don't know how to fix them. |
2022-06-14 12:16:30 +0200 | <arahael> | used____: Why haste specifically? It's an odd starting point. |
2022-06-14 12:16:50 +0200 | <arahael> | used____: You might want to try from a more recent point, have you looked at the main website lately: haskell.org? It has a download link up the top. |
2022-06-14 12:16:50 +0200 | <used____> | I am exploring write-once runs on both server and client programming. |
2022-06-14 12:16:51 +0200 | <Benzi-Junior> | http://ix.io/408v < so I'm still struggling with STM and concurrency, I had someone here suggested I use a broadcast TChan which makes sense to me |
2022-06-14 12:16:57 +0200 | <lortabac> | used____: you can download GHC 7.10 here https://www.haskell.org/ghc/download.html |
2022-06-14 12:17:28 +0200 | <used____> | GHC I already have, I need the "platform". Which includes cabal and other things. |
2022-06-14 12:17:32 +0200 | cosmos1 | (cosmos@user/cosmos1) |
2022-06-14 12:17:45 +0200 | <int-e> | . o O ( Debian oldstable (aka buster) ships 8.4.4. ) |
2022-06-14 12:17:48 +0200 | <lortabac> | otherwise maybe you can build haste with stack |
2022-06-14 12:17:51 +0200 | <used____> | What IS a platform exactly? |
2022-06-14 12:18:05 +0200 | <lortabac> | I see a stack.yaml |
2022-06-14 12:18:08 +0200 | <used____> | [please kill buzzwords now] |
2022-06-14 12:18:31 +0200 | <int-e> | it's something you stand on |
2022-06-14 12:18:43 +0200 | <used____> | Ah. Does it fly? |
2022-06-14 12:18:54 +0200 | <int-e> | not anymore |
2022-06-14 12:19:02 +0200 | <arahael> | used____: In those days, there were a few competing approaches to providing haskell. One of those was a product called "the haskell platform", which sort of provided a batteries-included, well, platform. If haste actually using stack, though, then probably just install that and use stack. |
2022-06-14 12:19:06 +0200 | <used____> | cabal is included with hastec? |
2022-06-14 12:19:10 +0200 | <int-e> | and it never flew very high, it was just half a dozen packages IIRC |
2022-06-14 12:19:36 +0200 | <used____> | arahael: what is stack then? Thanks for the explanation. |
2022-06-14 12:19:37 +0200 | <int-e> | on top of what ghc ships anyway |
2022-06-14 12:20:25 +0200 | <used____> | cabal is not in github haste sources |
2022-06-14 12:20:32 +0200 | <used____> | (unsurprizing) |
2022-06-14 12:20:45 +0200 | <arahael> | used____: Also in those days, there were a few challenges involved in using cabal for package management. There were again a few appraoches, but one that some people liked (including me), was stack, which sort of provided an abstraction over on top of cabal and was a bit simpler for me to get into at the time. However, I feel most of these have become unneccessary with the latest version of cabal |
2022-06-14 12:20:46 +0200 | <arahael> | we have. |
2022-06-14 12:20:50 +0200 | <int-e> | I expect if you pick an old enough version of cabal-install then the bootstrap.sh script that comes with that might work. |
2022-06-14 12:21:09 +0200 | <Benzi-Junior> | however there are two ways I see to how it should be implemented, either I dupchan and run atoms with the duplicates or run atoms with the original and dupchan as needed, |
2022-06-14 12:21:13 +0200 | <int-e> | The `cabal` binary is this package, https://hackage.haskell.org/package/cabal-install |
2022-06-14 12:21:19 +0200 | <arahael> | used____: One thing stack offered was the notion of a "curated" package set. |
2022-06-14 12:21:19 +0200 | <used____> | Yes, I hope. How do I find a cabal-install that is older? |
2022-06-14 12:21:33 +0200 | <int-e> | But I don't readily know which version is contemporary with ghc-7.10 |
2022-06-14 12:21:40 +0200 | <used____> | Also, will cabal run as user installed (not system?) |
2022-06-14 12:21:53 +0200 | <int-e> | that it will |
2022-06-14 12:22:05 +0200 | <used____> | ok. Will try some things now |
2022-06-14 12:22:27 +0200 | cosmos1 | (cosmos@user/cosmos1) (Ping timeout: 260 seconds) |
2022-06-14 12:23:49 +0200 | <used____> | Those cabal deps, does it pull them in by itself? |
2022-06-14 12:24:45 +0200 | <used____> | https://hackage.haskell.org/package/cabal-install-1.20.0.0 should be about the right vintage, ~8 years old. |
2022-06-14 12:24:51 +0200 | frost | (~frost@user/frost) |
2022-06-14 12:25:05 +0200 | <used____> | Those cabal deps, does it pull them in by itself? < again? |
2022-06-14 12:25:18 +0200 | jinsun | (~jinsun@user/jinsun) |
2022-06-14 12:25:21 +0200 | <Benzi-Junior> | the latter seems to deadlock which I guess is because the channel gets written to, then it gets duped in another thread, but the duped channel is empty |
2022-06-14 12:27:31 +0200 | cosmos1 | (~cosmos@user/cosmos1) |
2022-06-14 12:27:34 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-14 12:29:44 +0200 | CiaoSen | (~Jura@p200300c9571e28002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 255 seconds) |
2022-06-14 12:30:20 +0200 | <int-e> | used____: cabal-install is what automates fetching dependencies, building the Setup executables, and running them. Without cabal-install, you don't have that luxury. cabal-install should come with a bootstrap.sh script that tries to do that just for cabal-install, but I wouldn't have high confidence in that working without a hitch. It's worth a try, I suppose. |
2022-06-14 12:30:25 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-14 12:30:37 +0200 | <used____> | Error during cabal-install bootstrap: haste-compiler-0.6.0.0_ghc-7.10.3-linux/haste-compiler/bin/hastec not found (or could not be run). -> huh? hastec runs and builds apps fine |
2022-06-14 12:30:54 +0200 | <used____> | GHC is hastec and GHC_PKG is haste-pkg right? |
2022-06-14 12:31:10 +0200 | <int-e> | I have not built my own cabal-install in ages... instead I've relied on distro packages to provide a cabal-install that's good enough to build a current one. But I've also not tried to make an ancient ghc work in ages. |
2022-06-14 12:31:28 +0200 | <used____> | Again, ghc IS hastec right? |
2022-06-14 12:31:56 +0200 | <Benzi-Junior> | Now the code seen in http://ix.io/408v has the issue that the threads don't go back and forth as expected, instead they both "ping" and then both threads "pong" |
2022-06-14 12:31:57 +0200 | <used____> | I verified the path carefully, should work. |
2022-06-14 12:32:03 +0200 | <Benzi-Junior> | and I can't figure out why |
2022-06-14 12:33:32 +0200 | <used____> | bootstrap.sh in cabal-install seems to think GHC is -ghc ?! |
2022-06-14 12:33:49 +0200 | <used____> | er ghc |
2022-06-14 12:33:54 +0200 | nschoe | (~quassel@2a01:e0a:8e:a190:8d43:625e:56b6:d41e) |
2022-06-14 12:34:02 +0200 | <arahael> | That would make sense? |
2022-06-14 12:35:11 +0200 | <int-e> | used____: I don't know what you mean by "ghc IS hastec" |
2022-06-14 12:35:18 +0200 | <int-e> | but it sounds wrong |
2022-06-14 12:35:36 +0200 | mattil | (~mattil@helsinki.portalify.com) (Remote host closed the connection) |
2022-06-14 12:37:08 +0200 | <used____> | hastec --numeric-version (used by cabal-install bootstrap.sh) -> Ok, hastec is the HASTE compiler, ghc is the haskell one. I need the latter installed |
2022-06-14 12:37:19 +0200 | <int-e> | GHC is the Glasgow Haskell Compiler which compiles Haskell to native code. haste is.. hmm. An alternative backend for ghc? Maybe? |
2022-06-14 12:37:57 +0200 | <arahael> | OOh, it's this? https://github.com/valderman/haste-compiler |
2022-06-14 12:38:04 +0200 | <int-e> | arahael: yeah |
2022-06-14 12:38:13 +0200 | <arahael> | If you don't specifically need haste, wouldn't ghcjs be a better option? |
2022-06-14 12:38:20 +0200 | <int-e> | (It says "based on GHC" and I'm not quite sure how deep it goes) |
2022-06-14 12:39:35 +0200 | <used____> | Ok, I found haskell-platform in my distribution's packages, trying that, seems to install |
2022-06-14 12:40:20 +0200 | <used____> | I would like to work through examples in haste to get a feel of it, then decide. Does ghcjs does one-source-does-server-and-client? |
2022-06-14 12:40:55 +0200 | <arahael> | I think so - either native, I think, or via node. |
2022-06-14 12:41:19 +0200 | <used____> | So I'll try that later. Thanks. |
2022-06-14 12:41:26 +0200 | <arahael> | If you're open to looking around, you might want to also consider perhaps purescript - it's not haskell, but it's very haskell-inspired. |
2022-06-14 12:42:00 +0200 | <used____> | purerscript I looked at, does not do the server part that I can tell, and has other problems/ |
2022-06-14 12:42:08 +0200 | <used____> | I need lightweight for now. |
2022-06-14 12:42:08 +0200 | <arahael> | That would be via node, again. |
2022-06-14 12:42:43 +0200 | <arahael> | Also check the reflex-frp project. |
2022-06-14 12:43:01 +0200 | <arahael> | I've not used that, but it might be similar to what you're looking at. |
2022-06-14 12:43:05 +0200 | <arahael> | (Which uses ghcjs) |
2022-06-14 12:43:36 +0200 | <used____> | Ok, I'll def look at those later. Thanks. ghc and "platform" installed, going to give it a spun |
2022-06-14 12:43:39 +0200 | <used____> | *i |
2022-06-14 12:44:54 +0200 | <used____> | I do not remember many security warnings for Haskell and packages. Are there no exploits... I mean is security a big concern, as is with node? |
2022-06-14 12:47:09 +0200 | <merijn> | used____: Exploits of what? The packages themselves? I don't think there's enough auditing/testing to say |
2022-06-14 12:47:26 +0200 | <merijn> | used____: If you meant of *the infrastructure* then I'd say it's fairly secure |
2022-06-14 12:47:48 +0200 | nate4 | (~nate@98.45.169.16) |
2022-06-14 12:47:54 +0200 | <merijn> | used____: The security design of hackage+cabal is based on TUF: https://theupdateframework.io/ |
2022-06-14 12:47:58 +0200 | <arahael> | merijn: Keep in mind used____ is using ancient stuff here. |
2022-06-14 12:48:14 +0200 | <used____> | that ^ |
2022-06-14 12:48:28 +0200 | <used____> | I will not expose it to the web / net but still a concern |
2022-06-14 12:48:33 +0200 | <int-e> | Hackage is not nearly as popular as NPM, say. |
2022-06-14 12:48:45 +0200 | <arahael> | used____: You'll definitely have a known DOS attack for JSON payloads, as an example. |
2022-06-14 12:48:48 +0200 | <merijn> | arahael: Right, so then we're talking *package* security |
2022-06-14 12:48:57 +0200 | <merijn> | To which the answer is: nobody knows |
2022-06-14 12:49:24 +0200 | <int-e> | So if you want to typo-squat a package, it's not that juicy of a target. The potential is definitely there; packages can have a custom Setup.[l]hs file and that can do arbitrary things. |
2022-06-14 12:49:32 +0200 | <used____> | I have a haste-cabal.bin in the packages somewhere (locate says so) but it is not in the path. How does one install haste-cabal ? |
2022-06-14 12:50:30 +0200 | <used____> | I added it to the PATH but this is a bit strange |
2022-06-14 12:51:03 +0200 | dostoevsky0 | (~5c42c5384@user/dostoevsky) |
2022-06-14 12:51:22 +0200 | <int-e> | it may be in ~/.cabl/bin |
2022-06-14 12:51:27 +0200 | <int-e> | err .cabal |
2022-06-14 12:52:03 +0200 | dostoevsky | (~5c42c5384@user/dostoevsky) (Read error: Connection reset by peer) |
2022-06-14 12:52:03 +0200 | dostoevsky0 | dostoevsky |
2022-06-14 12:52:55 +0200 | <int-e> | (hard to say, you didn't say where you got haset-cabal.bin from) |
2022-06-14 12:54:40 +0200 | <used____> | It is not, I am bootstrapping from ancient files. Ok, LD_LIBRARY_PATH and some tinkering and it runs. |
2022-06-14 12:54:52 +0200 | <used____> | It will be there however. |
2022-06-14 12:56:17 +0200 | zmt00 | (~zmt00@user/zmt00) (Ping timeout: 255 seconds) |
2022-06-14 12:56:20 +0200 | cheater | (~Username@user/cheater) (Quit: BitchX: the un-Cola) |
2022-06-14 12:56:40 +0200 | flukiluke | (~m-7humut@2603:c023:c000:6c7e:8945:ad24:9113:a962) (Remote host closed the connection) |
2022-06-14 12:57:04 +0200 | cheater | (~Username@user/cheater) |
2022-06-14 12:57:27 +0200 | <used____> | https://termbin.com/qgpk yikes. I'll be back in like an hour, any hints on how to deal with this? |
2022-06-14 12:57:30 +0200 | <used____> | later |
2022-06-14 12:57:37 +0200 | CiaoSen | (~Jura@p200300c9571e28002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2022-06-14 12:57:47 +0200 | flukiluke | (~m-7humut@2603:c023:c000:6c7e:8945:ad24:9113:a962) |
2022-06-14 12:57:53 +0200 | <merijn> | used____: Your GHC is too new |
2022-06-14 12:58:40 +0200 | <merijn> | base is a part of GHC, your GHC has base-4.11 (see the /installed), but haste-app restricts base version to: 4.8.* |
2022-06-14 12:59:29 +0200 | <used____> | noted. I'll see to it in an hour or so. The ghc I installed is my linux's. ~=Buster. |
2022-06-14 12:59:32 +0200 | <used____> | bbl |
2022-06-14 12:59:53 +0200 | <int-e> | you need ghc 7.10; buster ships 8.4 |
2022-06-14 13:00:36 +0200 | Unicorn_Princess | (~Unicorn_P@93-103-228-248.dynamic.t-2.net) |
2022-06-14 13:01:38 +0200 | ubert | (~Thunderbi@2a02:8109:abc0:6434:910d:db38:5f6d:12dd) (Remote host closed the connection) |
2022-06-14 13:01:50 +0200 | ubert | (~Thunderbi@2a02:8109:abc0:6434:1afc:e5e0:85aa:7a3f) |
2022-06-14 13:03:59 +0200 | used____ | (~used____@79.115.62.163) (Ping timeout: 256 seconds) |
2022-06-14 13:06:30 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:fd72:8b07:e388:e81e) |
2022-06-14 13:07:10 +0200 | nate4 | (~nate@98.45.169.16) (Ping timeout: 240 seconds) |
2022-06-14 13:11:08 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:fd72:8b07:e388:e81e) (Ping timeout: 255 seconds) |
2022-06-14 13:18:36 +0200 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2022-06-14 13:20:51 +0200 | nschoe | (~quassel@2a01:e0a:8e:a190:8d43:625e:56b6:d41e) (Remote host closed the connection) |
2022-06-14 13:22:03 +0200 | nschoe | (~quassel@2a01:e0a:8e:a190:88e9:a0ec:2edc:295f) |
2022-06-14 13:25:37 +0200 | teddyc | (theodorc@cassarossa.samfundet.no) |
2022-06-14 13:26:36 +0200 | frost | (~frost@user/frost) (Ping timeout: 252 seconds) |
2022-06-14 13:26:40 +0200 | king_gs | (~Thunderbi@187.201.173.69) |
2022-06-14 13:30:50 +0200 | king_gs | (~Thunderbi@187.201.173.69) (Ping timeout: 240 seconds) |
2022-06-14 13:32:12 +0200 | Pickchea | (~private@user/pickchea) |
2022-06-14 13:36:53 +0200 | cosmos1 | (~cosmos@user/cosmos1) (Ping timeout: 246 seconds) |
2022-06-14 13:38:48 +0200 | cosmos1 | (~cosmos@user/cosmos1) |
2022-06-14 13:45:15 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Read error: Connection reset by peer) |
2022-06-14 13:46:52 +0200 | lyle | (~lyle@104.246.145.85) |
2022-06-14 13:47:04 +0200 | stiell_ | (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 240 seconds) |
2022-06-14 13:47:25 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-06-14 13:58:48 +0200 | cosmos1 | (~cosmos@user/cosmos1) (Ping timeout: 248 seconds) |
2022-06-14 14:01:40 +0200 | stiell_ | (~stiell@gateway/tor-sasl/stiell) |
2022-06-14 14:05:24 +0200 | jinsun | (~jinsun@user/jinsun) (Read error: Connection reset by peer) |
2022-06-14 14:07:05 +0200 | jinsun | (~jinsun@user/jinsun) |
2022-06-14 14:07:46 +0200 | jao | (~jao@40.red-79-159-140.dynamicip.rima-tde.net) |
2022-06-14 14:07:58 +0200 | coot | (~coot@213.134.190.95) (Quit: coot) |
2022-06-14 14:09:58 +0200 | xff0x | (~xff0x@2405:6580:b080:900:d6f:64f5:8be:f88f) |
2022-06-14 14:12:36 +0200 | sammelweis_ | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
2022-06-14 14:13:11 +0200 | <ncf> | int-e: hey, i'm going to post a takeover request for misfortune so that we can update lambdabot to GHC 9 one day (maintainer hasn't responded to my email in 3 months). unless you'd like to do it yourself? |
2022-06-14 14:14:03 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2022-06-14 14:14:19 +0200 | leeb | (~leeb@KD106155003152.au-net.ne.jp) |
2022-06-14 14:14:48 +0200 | <dminuoso> | Speaking of lambdabot, where is yahb? |
2022-06-14 14:15:01 +0200 | <geekosaur> | yahb disappeared when mniip did |
2022-06-14 14:16:09 +0200 | nate4 | (~nate@98.45.169.16) |
2022-06-14 14:16:35 +0200 | <geekosaur> | I checked mniip's github but there isn't enough stuff there to rebuild yahb |
2022-06-14 14:16:45 +0200 | <tomsmeding> | what did yahb do |
2022-06-14 14:16:49 +0200 | <tomsmeding> | sandboxed ghci hooked up to irc? |
2022-06-14 14:16:52 +0200 | <geekosaur> | yes |
2022-06-14 14:17:12 +0200 | <tomsmeding> | (i.e. nothing more than that) |
2022-06-14 14:17:25 +0200 | <geekosaur> | plus a few other niceties like optional output to a pastebin |
2022-06-14 14:17:39 +0200 | <tomsmeding> | I've never seen anyone actually use that |
2022-06-14 14:17:50 +0200 | <tomsmeding> | but I've probably missed it |
2022-06-14 14:17:51 +0200 | <dminuoso> | Seems like we should revive that then. |
2022-06-14 14:18:09 +0200 | <geekosaur> | I used it several times, so did mniip |
2022-06-14 14:18:22 +0200 | <geekosaur> | granting most people didn't seem to know about it |
2022-06-14 14:18:46 +0200 | <merijn> | tomsmeding: I did use it sometimes |
2022-06-14 14:18:52 +0200 | <dminuoso> | geekosaur: Curious, I dont see any yahb related repositories. |
2022-06-14 14:18:55 +0200 | <dminuoso> | It used to be there, no? |
2022-06-14 14:19:00 +0200 | <merijn> | because you could do things lambdabot can't |
2022-06-14 14:19:19 +0200 | <tomsmeding> | merijn: I was talking about the pastebin output, not about yahb in general |
2022-06-14 14:19:24 +0200 | <geekosaur> | not yahb as such but there's a sandboxer and mniip told me yahb was using the irc bot framework in there |
2022-06-14 14:19:28 +0200 | <dminuoso> | Also its easy to understand yahb's interface since its just ghci. With lambdabot its obscure and undocumented syntax. |
2022-06-14 14:19:47 +0200 | <geekosaur> | (the one in lua) |
2022-06-14 14:20:57 +0200 | <dminuoso> | When did mniip disappear by the way? |
2022-06-14 14:22:31 +0200 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-06-14 14:23:07 +0200 | julian | (~julian@20.83.116.49) (Killed (NickServ (GHOST command used by tos9__!~tos9@python/site-packages/Julian))) |
2022-06-14 14:23:26 +0200 | nate4 | (~nate@98.45.169.16) (Ping timeout: 246 seconds) |
2022-06-14 14:23:58 +0200 | <DigitalKiwi> | :( |
2022-06-14 14:24:15 +0200 | <DigitalKiwi> | maybe a while ago? i was wondering why they didn't wish me happy birthday this year |
2022-06-14 14:24:19 +0200 | <int-e> | ncf: hmm. I really need to find some motivation to work on that bot (or even look at the existing PRs)... it wouldn't be too terrible to drop misfortune as a dependency I think. |
2022-06-14 14:24:48 +0200 | machinedgod | (~machinedg@66.244.246.252) (Ping timeout: 276 seconds) |
2022-06-14 14:25:55 +0200 | <tomsmeding> | dminuoso: https://tomsmeding.com/ss/get/tomsmeding/wmn6xc |
2022-06-14 14:26:04 +0200 | machinedgod | (~machinedg@66.244.246.252) |
2022-06-14 14:26:34 +0200 | coot | (~coot@213.134.190.95) |
2022-06-14 14:27:07 +0200 | <tomsmeding> | yahb disappeared 2022-04-22 |
2022-06-14 14:28:57 +0200 | <int-e> | @fortune |
2022-06-14 14:28:57 +0200 | <lambdabot> | [Sir Stafford Cripps] has all the virtues I dislike and none of the |
2022-06-14 14:28:58 +0200 | <lambdabot> | vices I admire. |
2022-06-14 14:28:58 +0200 | <lambdabot> | -- Winston Churchill |
2022-06-14 14:29:07 +0200 | <int-e> | (noone ever uses that command, I think) |
2022-06-14 14:29:16 +0200 | <merijn> | We should use |
2022-06-14 14:29:17 +0200 | <merijn> | @quote |
2022-06-14 14:29:18 +0200 | <lambdabot> | brain says: the same thing we do every night. try to take over the world! |
2022-06-14 14:29:19 +0200 | <merijn> | more |
2022-06-14 14:29:33 +0200 | <int-e> | @quote ghc |
2022-06-14 14:29:33 +0200 | <lambdabot> | ghc says: ARGH! Jump uses %esi or %edi with -monly-2-regs |
2022-06-14 14:29:48 +0200 | <merijn> | @quote merijn |
2022-06-14 14:29:48 +0200 | <lambdabot> | merijn says: Honestly, IMO the real mistake is allowing top-level type annotations to be optional |
2022-06-14 14:29:55 +0200 | <tomsmeding> | > -monly-2-regs | what |
2022-06-14 14:29:56 +0200 | <merijn> | 100% |
2022-06-14 14:30:19 +0200 | <merijn> | @quote edwardk |
2022-06-14 14:30:19 +0200 | <lambdabot> | edwardk says: waiting for sclv to start going around door to door passing out little copies of the homotopy type theory book, and asking people if they have yet had the geometric realization that |
2022-06-14 14:30:19 +0200 | <lambdabot> | the simplicial sets are homotopically equivalent to their Lord and Savior. |
2022-06-14 14:30:21 +0200 | cosmos1 | (~cosmos@user/cosmos1) |
2022-06-14 14:30:35 +0200 | <int-e> | main = putStrLn "Hello, world!" |
2022-06-14 14:30:36 +0200 | <merijn> | hah |
2022-06-14 14:30:44 +0200 | <merijn> | That quote reminds me of Cale's religion |
2022-06-14 14:31:30 +0200 | jao | (~jao@40.red-79-159-140.dynamicip.rima-tde.net) (Ping timeout: 240 seconds) |
2022-06-14 14:31:46 +0200 | <ncf> | @yow |
2022-06-14 14:31:47 +0200 | <lambdabot> | I don't know WHY I said that ... I think it came from the FILLINGS in |
2022-06-14 14:31:47 +0200 | <lambdabot> | my read molars ... |
2022-06-14 14:32:32 +0200 | <geekosaur> | thanks for reminding me I need to finish my documentation :) |
2022-06-14 14:33:09 +0200 | <geekosaur> | http://users.ece.cmu.edu/~allbery/lambdabot/COMMANDS.more |
2022-06-14 14:33:35 +0200 | <merijn> | @quote Cale religion |
2022-06-14 14:33:35 +0200 | <lambdabot> | Cale says: desrt: Did you hear about the trivial religion that I came up with? Its tenets consist of a single statement: "Believing in this statement will make you happier". It's like a terminal |
2022-06-14 14:33:35 +0200 | <lambdabot> | object in the category of religions and theomorphisms. |
2022-06-14 14:33:49 +0200 | <int-e> | @devil lawyer |
2022-06-14 14:33:50 +0200 | <lambdabot> | *** "lawyer" devil "The Devil's Dictionary (1881-1906)" |
2022-06-14 14:33:50 +0200 | <lambdabot> | LAWYER, n. One skilled in circumvention of the law. |
2022-06-14 14:34:12 +0200 | <merijn> | That quote always cracks me up |
2022-06-14 14:34:22 +0200 | <merijn> | because it's so true |
2022-06-14 14:35:07 +0200 | <merijn> | In fact, I'm not sure whether it's just through sheer amount or whether Cale is really just a super witty philosopher :p |
2022-06-14 14:35:11 +0200 | <int-e> | @dice 1000000d3 |
2022-06-14 14:35:11 +0200 | <lambdabot> | int-e: 2000493 |
2022-06-14 14:35:18 +0200 | <merijn> | @quote Cale Copenhagen |
2022-06-14 14:35:18 +0200 | <lambdabot> | Cale says: The difference between Many Worlds and Copenhagen is a garbage collector ;) |
2022-06-14 14:35:27 +0200 | <geekosaur> | oh, the devil's dictionary is full of those kinds of things. Bierce was great IMO |
2022-06-14 14:35:39 +0200 | <ncf> | int-e: if you can't find the motivation, i can help if you give me write access and make me a maintainer (on lambdabot and dice). but for now let's see if i can get misfortune updated |
2022-06-14 14:35:40 +0200 | <merijn> | geekosaur: I meant the Cale quote :p |
2022-06-14 14:35:40 +0200 | dextaa | (~DV@user/dextaa) (Read error: Connection reset by peer) |
2022-06-14 14:35:49 +0200 | <geekosaur> | oh |
2022-06-14 14:37:55 +0200 | dextaa | (~DV@user/dextaa) |
2022-06-14 14:38:02 +0200 | <int-e> | ncf: Thanks! I'll think about it. |
2022-06-14 14:39:34 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds) |
2022-06-14 14:51:02 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 255 seconds) |
2022-06-14 14:51:43 +0200 | Me-me | (~me-me@tunnel690570-pt.tunnel.tserv12.mia1.ipv6.he.net) (Quit: Disconnecting on purpose.) |
2022-06-14 14:52:29 +0200 | machinedgod | (~machinedg@66.244.246.252) (Ping timeout: 246 seconds) |
2022-06-14 14:53:19 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-06-14 14:54:24 +0200 | machinedgod | (~machinedg@66.244.246.252) |
2022-06-14 14:55:46 +0200 | zmt00 | (~zmt00@user/zmt00) |
2022-06-14 14:58:20 +0200 | <dragestil> | i thought a bit more about haddock, and I wonder why it only has three backends (latex, html, hoogle) so far? |
2022-06-14 14:58:58 +0200 | <__monty__> | Bolt it to Pandoc \o/ |
2022-06-14 14:58:59 +0200 | <dragestil> | given the manual saying "it is structured in such a way that adding new backends is straightforward." |
2022-06-14 14:59:19 +0200 | <geekosaur> | "contributions invited" |
2022-06-14 14:59:36 +0200 | <geekosaur> | last I checked haddock was barely maintained |
2022-06-14 14:59:44 +0200 | <dragestil> | hmm, pandoc has always not worked ootb for me and 99% time I had to write a custom filter to give up, but i'll give it a try |
2022-06-14 14:59:53 +0200 | <geekosaur> | I think Hécate is trying to change that, but needs help |
2022-06-14 14:59:56 +0200 | <DigitalKiwi> | maybe straightforward != easy |
2022-06-14 15:00:09 +0200 | king_gs | (~Thunderbi@187.201.173.69) |
2022-06-14 15:00:22 +0200 | <dragestil> | ok |
2022-06-14 15:00:38 +0200 | <dragestil> | it seems to be catching up with the base version at least |
2022-06-14 15:01:18 +0200 | <geekosaur> | I'll also agree that pandoc has always not quite done what I needed out of the box; it has a lot of backends but many of them seem minimally functional |
2022-06-14 15:01:56 +0200 | <geekosaur> | then again I suppose that's the price you pay for trying to support so many backends: the more you support the smaller the core set of operations supported everywhere gets |
2022-06-14 15:02:35 +0200 | Haskelytic | (~Haskelyti@118.179.211.17) |
2022-06-14 15:02:44 +0200 | <dragestil> | yeah, haddock by contrast has quite restricted format / content |
2022-06-14 15:03:13 +0200 | <dragestil> | so a haddock backend can be more specialised than a pandoc writer |
2022-06-14 15:06:13 +0200 | <__monty__> | I think maybe it's a matter of expectations. Pandoc's not magic. So a custom filter is likely necessary if you're targeting a less popular format or have high standards for the markup. I usually go md/reST -> LaTeX/PDF and that works swimmingly. |
2022-06-14 15:06:29 +0200 | leeb | (~leeb@KD106155003152.au-net.ne.jp) (Ping timeout: 246 seconds) |
2022-06-14 15:07:12 +0200 | <dragestil> | custom filter *or give up (correction of a few minutes ago) |
2022-06-14 15:08:20 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:fd72:8b07:e388:e81e) |
2022-06-14 15:08:23 +0200 | <__monty__> | Still seemed like a cool idea to leverage Pandoc as a backend for Haddock and then improve the output by improving Pandoc, falling back to custom filters only as necessary. |
2022-06-14 15:08:54 +0200 | <dragestil> | for sure |
2022-06-14 15:10:33 +0200 | <Benzi-Junior> | http://ix.io/4092 hey guys I didn't get a reply earlier so I thought I'd try this again, using a broadcast channel causes a rather weird behaviour, when I call "runIO [ping, pong]" I get a "aabb" pattern in my printout |
2022-06-14 15:10:34 +0200 | <dragestil> | if haddock like pandoc has a "unified ast" to convert from regardless of the backend |
2022-06-14 15:11:06 +0200 | <Benzi-Junior> | i.e. both threads "ping" and then both threads "pong" rather than going back and forth |
2022-06-14 15:11:41 +0200 | <dragestil> | maybe https://hackage.haskell.org/package/haddock-api-2.24.2/docs/Documentation-Haddock.html#t:Interface is the equivalent of the pandoc ast? |
2022-06-14 15:12:19 +0200 | <Benzi-Junior> | rather, duping the channel is what causes the problem |
2022-06-14 15:12:56 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:fd72:8b07:e388:e81e) (Ping timeout: 248 seconds) |
2022-06-14 15:13:32 +0200 | [Leary] | (~Leary]@122-58-228-205-vdsl.sparkbb.co.nz) (Ping timeout: 255 seconds) |
2022-06-14 15:13:53 +0200 | <Benzi-Junior> | if I try to not use dupTChan (and not use a broadcast channel) then I get a deadlocked situation where both threads are trying to read |
2022-06-14 15:16:28 +0200 | bliminse | (~bliminse@host86-132-158-77.range86-132.btcentralplus.com) (Quit: leaving) |
2022-06-14 15:16:35 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-06-14 15:17:08 +0200 | julian | (~julian@20.83.116.49) |
2022-06-14 15:20:12 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2022-06-14 15:20:32 +0200 | neoatnebula | (~neoatnebu@2409:4071:4d92:bfe0:dfae:9acc:1f1b:ea25) |
2022-06-14 15:20:34 +0200 | king_gs | (~Thunderbi@187.201.173.69) (Read error: Connection reset by peer) |
2022-06-14 15:20:35 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2022-06-14 15:20:57 +0200 | cosmos1 | (~cosmos@user/cosmos1) (Ping timeout: 260 seconds) |
2022-06-14 15:22:02 +0200 | king_gs | (~Thunderbi@187.201.173.69) |
2022-06-14 15:22:14 +0200 | bliminse | (~bliminse@host86-132-158-77.range86-132.btcentralplus.com) |
2022-06-14 15:24:15 +0200 | <dragestil> | I'll give phanddock a try |
2022-06-14 15:25:22 +0200 | <geekosaur> | Benzi-Junior, are you sure the problem isn't the delay making it look like they're both happening at the same time? consider either a distinct and relatively prime delay for pinger/ponger, or just having a delay between pings |
2022-06-14 15:27:35 +0200 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) |
2022-06-14 15:28:42 +0200 | <Benzi-Junior> | geekosaur, yes |
2022-06-14 15:29:09 +0200 | <Benzi-Junior> | I have tried having it dump to console what thread it is that's speaking |
2022-06-14 15:29:25 +0200 | <geekosaur> | yes, that code's still in your paste |
2022-06-14 15:30:02 +0200 | <Benzi-Junior> | I have figured out why the "aabb" pattern occurs, with dupChan |
2022-06-14 15:32:14 +0200 | <Benzi-Junior> | it's because when you duped channels a write to one is a write to both but a read from one only consumes that one |
2022-06-14 15:33:45 +0200 | <Benzi-Junior> | which explains what the point of it is really |
2022-06-14 15:33:59 +0200 | <geekosaur> | well, yes, that is what you're looking for, isn't it? otherwise ponger consumes its own pong etc. |
2022-06-14 15:34:01 +0200 | <Benzi-Junior> | but the deadlock when I don't use it is still puzzling me |
2022-06-14 15:34:21 +0200 | shriekingnoise | (~shrieking@201.212.175.181) |
2022-06-14 15:34:25 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2022-06-14 15:34:31 +0200 | <geekosaur> | you still haven't understood what's going on. I just told you what it was |
2022-06-14 15:35:09 +0200 | <geekosaur> | it'll never work if the ponger consumes its own pong and the pinger consumes its own ping, unless they are duplicated so each gets its own copy of it |
2022-06-14 15:36:59 +0200 | <geekosaur> | seriously, think of the dataflow. the dupTChan and broadcast TChan make it behave the way you expected it to. so that I'm pretty sure leaves both threads delaying the same amount of time so they AABB |
2022-06-14 15:38:00 +0200 | kuribas | (~user@ptr-17d51emab50486u5ioi.18120a2.ip6.access.telenet.be) (Ping timeout: 248 seconds) |
2022-06-14 15:38:22 +0200 | Benzi-Junior | facepalms |
2022-06-14 15:39:14 +0200 | <Benzi-Junior> | yes sorry I misread the code for ping and pong |
2022-06-14 15:40:10 +0200 | jgeerds | (~jgeerds@55d45f48.access.ecotel.net) (Ping timeout: 240 seconds) |
2022-06-14 15:41:42 +0200 | <Benzi-Junior> | I thought there was something in there that caused ping to retry when it got "ping" |
2022-06-14 15:42:32 +0200 | mc47 | (~mc47@xmonad/TheMC47) |
2022-06-14 15:46:01 +0200 | <Benzi-Junior> | geekosaur, is the correct way to do this to have each thread consume the front of the channel as soon as it writes |
2022-06-14 15:46:40 +0200 | <Benzi-Junior> | i.e. "write to this channel and all of it's duplicates, then remove it from my copy" |
2022-06-14 15:47:23 +0200 | littlebo1eep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-14 15:47:34 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-14 15:52:04 +0200 | [Leary] | (~Leary]@122-58-224-198-vdsl.sparkbb.co.nz) |
2022-06-14 15:54:47 +0200 | <Benzi-Junior> | wel that at least works |
2022-06-14 15:55:46 +0200 | kuribas | (~user@188.188.149.171) |
2022-06-14 15:56:22 +0200 | yrlnry | (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) |
2022-06-14 15:57:20 +0200 | bliminse | (~bliminse@host86-132-158-77.range86-132.btcentralplus.com) (Quit: leaving) |
2022-06-14 15:57:33 +0200 | <merijn> | Benzi-Junior: Sounds like you want a broadcast channel? |
2022-06-14 15:58:01 +0200 | <merijn> | Benzi-Junior: Oh, are you running into a memory leak when using dupChan to broadcast? |
2022-06-14 15:58:16 +0200 | <geekosaur> | no, just delaying in the child and confusing the output |
2022-06-14 15:58:35 +0200 | <geekosaur> | already using a broadcast chan, after discovering why using a simple one didn't work |
2022-06-14 15:58:43 +0200 | <merijn> | geekosaur: Well, he did ask about removing it from "my copy" |
2022-06-14 15:59:19 +0200 | <merijn> | geekosaur: Just asking because I already implemented a broadcast version of regular Chan's :p |
2022-06-14 15:59:41 +0200 | <geekosaur> | these are TChans which already come with a broadcast variant |
2022-06-14 15:59:53 +0200 | <merijn> | Yeah, I know, I just don't really like TChans :p |
2022-06-14 16:00:10 +0200 | chreekat2 | (~b@80-254-69-77.dynamic.monzoon.net) |
2022-06-14 16:00:13 +0200 | <geekosaur> | and yes Benzi-Junior just removing the delay before output would work as well |
2022-06-14 16:01:53 +0200 | <Benzi-Junior> | merijn, no the problem I was running into was that each thread had it's own duplicate of the broadcast channel, wrote to it (writing to all copies) and then listened, but it's own message would also exist in their own duplicate |
2022-06-14 16:03:15 +0200 | <Benzi-Junior> | geekosaur, how does removing the delay fix this issue ? |
2022-06-14 16:03:18 +0200 | <geekosaur> | that would be expected and you were already handling it. problem in the non-broadcast version was that you also removed it for the intended recipient |
2022-06-14 16:03:52 +0200 | <geekosaur> | removing the delay in pong just makes it obviously a response to the ping, instead of waiting until the next ping is sent because they both had the same delay |
2022-06-14 16:08:06 +0200 | king_gs | (~Thunderbi@187.201.173.69) (Read error: Connection reset by peer) |
2022-06-14 16:08:49 +0200 | bliminse | (~bliminse@host86-132-158-77.range86-132.btcentralplus.com) |
2022-06-14 16:09:17 +0200 | raym | (~raym@user/raym) (Ping timeout: 256 seconds) |
2022-06-14 16:09:42 +0200 | <Benzi-Junior> | geekosaur, right so if the original channel is created with "newTChan" then "readTChan" consumes from all duplicates but if it is created with "newBroadcastTChan" then reading only consumes from that copy |
2022-06-14 16:10:19 +0200 | <geekosaur> | only if you do the dupTChan, but yes |
2022-06-14 16:10:40 +0200 | <geekosaur> | without the newBroadcast TChan, dupTChan would still have it remove from all duplicates |
2022-06-14 16:10:50 +0200 | <geekosaur> | (yeh, it's confusing) |
2022-06-14 16:12:34 +0200 | littlebo1eep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-14 16:12:59 +0200 | Sgeo | (~Sgeo@user/sgeo) |
2022-06-14 16:14:13 +0200 | <Benzi-Junior> | ye I think it could be made clearer with something like a "broadcastTChan :: TChan a -> a -> STM ()" |
2022-06-14 16:14:39 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:eb43:ae28:5b68:592d) (Quit: WeeChat 2.8) |
2022-06-14 16:15:00 +0200 | <Benzi-Junior> | broadcast c a = writeTChan c a >> readTChan >> return () |
2022-06-14 16:15:33 +0200 | <geekosaur> | I'd still check which one you read, else you have a potential race condition |
2022-06-14 16:16:03 +0200 | <Benzi-Junior> | broadcast c a = writeTChan c a >> readTChan c >> return () |
2022-06-14 16:16:24 +0200 | <geekosaur> | *usually* the one you intend would win, especially if you have the delay in the ponger, but still. |
2022-06-14 16:16:25 +0200 | <merijn> | I'm confused about "write then immediately read"? |
2022-06-14 16:16:40 +0200 | <merijn> | Let's rewind: What are you trying to do? |
2022-06-14 16:16:57 +0200 | <geekosaur> | since anything you write is also written to your own copy of the broadcast TChan, you have to take it back out |
2022-06-14 16:17:39 +0200 | <geekosaur> | frankly your original implementation of this part was correct and shouldn't be edited. just removing or modifying the delay in the ponger is enough |
2022-06-14 16:18:44 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-14 16:19:31 +0200 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Quit: unfucking shell) |
2022-06-14 16:20:41 +0200 | <Benzi-Junior> | geekosaur, you mean have the Ping case in "pong" be "Ping -> broadcast Pong >> pong" |
2022-06-14 16:20:51 +0200 | <geekosaur> | no |
2022-06-14 16:21:00 +0200 | <geekosaur> | again, you had the correct code to begin with |
2022-06-14 16:21:23 +0200 | <geekosaur> | simply reading without looking at what you read has a race condition if the Pong happens to be sent at the same time as the Ping |
2022-06-14 16:23:18 +0200 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) |
2022-06-14 16:24:29 +0200 | nate4 | (~nate@98.45.169.16) |
2022-06-14 16:25:02 +0200 | _________ | (~nobody@user/noodly) |
2022-06-14 16:30:29 +0200 | lagash | (lagash@lagash.shelltalk.net) |
2022-06-14 16:32:32 +0200 | Haskelytic | (~Haskelyti@118.179.211.17) (Quit: Client closed) |
2022-06-14 16:33:10 +0200 | jinsun | (~jinsun@user/jinsun) (Read error: Connection reset by peer) |
2022-06-14 16:34:33 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-06-14 16:35:44 +0200 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 246 seconds) |
2022-06-14 16:35:50 +0200 | jinsun | (~jinsun@user/jinsun) |
2022-06-14 16:40:25 +0200 | jao | (~jao@166.65.77.188.dynamic.jazztel.es) |
2022-06-14 16:40:30 +0200 | kuribas | (~user@188.188.149.171) (Ping timeout: 240 seconds) |
2022-06-14 16:40:31 +0200 | Cupcakus | (~Cupcakus@c-73-205-77-141.hsd1.fl.comcast.net) |
2022-06-14 16:40:45 +0200 | <Benzi-Junior> | ok, I think I understand what you mean |
2022-06-14 16:43:05 +0200 | nate4 | (~nate@98.45.169.16) (Ping timeout: 255 seconds) |
2022-06-14 16:48:25 +0200 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2022-06-14 16:49:31 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:fd72:8b07:e388:e81e) |
2022-06-14 16:49:35 +0200 | slack1256 | (~slack1256@191.125.227.223) |
2022-06-14 16:52:18 +0200 | neoatnebula | (~neoatnebu@2409:4071:4d92:bfe0:dfae:9acc:1f1b:ea25) (Ping timeout: 252 seconds) |
2022-06-14 16:52:21 +0200 | Pickchea | (~private@user/pickchea) (Ping timeout: 276 seconds) |
2022-06-14 16:52:28 +0200 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2022-06-14 16:56:20 +0200 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) |
2022-06-14 16:57:51 +0200 | <Benzi-Junior> | BTW is there a more elegant way to do the writing to console that prevents race conditions ? |
2022-06-14 16:58:36 +0200 | <geekosaur[m]> | no |
2022-06-14 16:58:55 +0200 | <Benzi-Junior> | thought so |
2022-06-14 16:59:04 +0200 | <geekosaur[m]> | there are packages that wrap it up to hide the mutex, but that doesn't gain you much |
2022-06-14 17:01:45 +0200 | littlebo1eep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-14 17:02:34 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-14 17:05:01 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2022-06-14 17:06:00 +0200 | img | (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
2022-06-14 17:07:02 +0200 | img | (~img@user/img) |
2022-06-14 17:08:17 +0200 | leeb | (~leeb@kd106155003152.au-net.ne.jp) |
2022-06-14 17:08:27 +0200 | chreekat2 | (~b@80-254-69-77.dynamic.monzoon.net) (Ping timeout: 258 seconds) |
2022-06-14 17:09:28 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:fd72:8b07:e388:e81e) (Remote host closed the connection) |
2022-06-14 17:10:07 +0200 | nschoe | (~quassel@2a01:e0a:8e:a190:88e9:a0ec:2edc:295f) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2022-06-14 17:13:36 +0200 | acidjnk | (~acidjnk@p200300d0c7068b1004113c5627619f0a.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
2022-06-14 17:15:06 +0200 | leeb | (~leeb@kd106155003152.au-net.ne.jp) (Ping timeout: 276 seconds) |
2022-06-14 17:18:38 +0200 | n3t1 | (n3t@s45.mydevil.net) |
2022-06-14 17:18:39 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2022-06-14 17:18:45 +0200 | lambdap23 | (~lambdap@static.167.190.119.168.clients.your-server.de) |
2022-06-14 17:18:57 +0200 | kawen | (~quassel@static.208.191.216.95.clients.your-server.de) (Quit: No Ping reply in 180 seconds.) |
2022-06-14 17:19:05 +0200 | mcfrd | (~mcfrdy@user/mcfrdy) |
2022-06-14 17:19:05 +0200 | hexology- | (~hexology@user/hexology) |
2022-06-14 17:19:44 +0200 | n3t | (n3t@user/n3t) (Read error: Connection reset by peer) |
2022-06-14 17:19:44 +0200 | hexology | (~hexology@user/hexology) (Quit: hex on you ...) |
2022-06-14 17:19:44 +0200 | mcfrdy | (~mcfrdy@user/mcfrdy) (Quit: quit) |
2022-06-14 17:19:47 +0200 | lambdap2 | (~lambdap@static.167.190.119.168.clients.your-server.de) (Quit: Ping timeout (120 seconds)) |
2022-06-14 17:19:47 +0200 | lambdap23 | lambdap2 |
2022-06-14 17:19:50 +0200 | slack1256 | (~slack1256@191.125.227.223) (Read error: Connection reset by peer) |
2022-06-14 17:20:06 +0200 | kawen | (~quassel@static.208.191.216.95.clients.your-server.de) |
2022-06-14 17:20:14 +0200 | slack1256 | (~slack1256@186.11.82.227) |
2022-06-14 17:22:07 +0200 | mcfrd | mcfrdy |
2022-06-14 17:24:51 +0200 | img | (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
2022-06-14 17:24:56 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 255 seconds) |
2022-06-14 17:25:49 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2022-06-14 17:26:18 +0200 | img | (~img@user/img) |
2022-06-14 17:28:37 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2022-06-14 17:29:04 +0200 | littlebo1eep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-14 17:30:23 +0200 | troydm1 | (~troydm@host-176-37-124-197.b025.la.net.ua) |
2022-06-14 17:30:25 +0200 | troydm | (~troydm@host-176-37-124-197.b025.la.net.ua) (Read error: Connection reset by peer) |
2022-06-14 17:35:06 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-14 17:38:12 +0200 | xff0x | (~xff0x@2405:6580:b080:900:d6f:64f5:8be:f88f) (Ping timeout: 248 seconds) |
2022-06-14 17:38:53 +0200 | xff0x | (~xff0x@2405:6580:b080:900:6295:7d95:60a0:d7ff) |
2022-06-14 17:39:34 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-14 17:42:24 +0200 | jchia[m] | (~jchiamatr@2001:470:69fc:105::c50b) |
2022-06-14 17:49:20 +0200 | machinedgod | (~machinedg@66.244.246.252) (Remote host closed the connection) |
2022-06-14 17:49:56 +0200 | machinedgod | (~machinedg@66.244.246.252) |
2022-06-14 17:49:59 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-14 17:51:24 +0200 | dostoevsky8 | (~5c42c5384@user/dostoevsky) |
2022-06-14 17:53:05 +0200 | dostoevsky | (~5c42c5384@user/dostoevsky) (Ping timeout: 246 seconds) |
2022-06-14 17:53:05 +0200 | dostoevsky8 | dostoevsky |
2022-06-14 17:53:39 +0200 | ubert | (~Thunderbi@2a02:8109:abc0:6434:1afc:e5e0:85aa:7a3f) (Remote host closed the connection) |
2022-06-14 17:53:51 +0200 | ubert | (~Thunderbi@2a02:8109:abc0:6434:2f88:2986:cc88:6622) |
2022-06-14 17:54:42 +0200 | pointblank | (~uniquepoi@190.141.232.23) (Quit: Leaving) |
2022-06-14 17:54:56 +0200 | <slack1256> | Is there an equivalent to the `either` function, but expressed for any `Bifoldable` or `Bitraversable`? The closest I see is `bifoldMap` when the output is a Monoid. |
2022-06-14 18:00:10 +0200 | Colere | (~colere@about/linux/staff/sauvin) (Ping timeout: 240 seconds) |
2022-06-14 18:01:00 +0200 | <dminuoso> | slack1256: Are you looking for Selective perhaps? |
2022-06-14 18:01:49 +0200 | <dminuoso> | I cant quite compute what you are looking fo. |
2022-06-14 18:02:09 +0200 | <dminuoso> | But I think Selective is isomorphic to what you want |
2022-06-14 18:02:41 +0200 | <dminuoso> | branch :: Selective f => f (Either a b) -> f (a -> c) -> f (b -> c) -> f c |
2022-06-14 18:02:44 +0200 | <dminuoso> | Might make it obvious |
2022-06-14 18:02:56 +0200 | <[Leary]> | It's not clear how you should combine the results to produce output if not monoidally. Unless you want to keep the Bitraversable structure, mapping a `t a b` to a `t c c`. |
2022-06-14 18:03:13 +0200 | chreekat2 | (~b@2001:999:58c:b933:a5f3:89ae:dd78:3035) |
2022-06-14 18:03:47 +0200 | <[Leary]> | (which is just bitraverse) |
2022-06-14 18:04:03 +0200 | <[Leary]> | With Identity, I guess. |
2022-06-14 18:04:04 +0200 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2022-06-14 18:04:13 +0200 | <[Leary]> | Err, that's bimap. |
2022-06-14 18:04:54 +0200 | <dminuoso> | The reason Im thinking of Selective, is `either` is about joining two branches of a coproduct together. Doing this in some kind of effectful setting is encoded by Selective precidely |
2022-06-14 18:05:31 +0200 | <dminuoso> | But Bifoldable/Bitraversable doesnt guarantee that there's a coproduct choice between the two types (might as well be a product or something else) |
2022-06-14 18:06:10 +0200 | Colere | (~colere@about/linux/staff/sauvin) |
2022-06-14 18:07:55 +0200 | slac15488 | (~slack1256@191.125.99.70) |
2022-06-14 18:08:00 +0200 | yahb2 | (~yahb2@2001:1c02:b16:f00:1ac0:4dff:fea1:7fda) |
2022-06-14 18:08:23 +0200 | Furor | (~colere@about/linux/staff/sauvin) |
2022-06-14 18:08:24 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2022-06-14 18:08:32 +0200 | <tomsmeding> | % :set -XTypeApplications |
2022-06-14 18:08:32 +0200 | <yahb2> | <no output> |
2022-06-14 18:08:36 +0200 | <tomsmeding> | % print @Double 42 |
2022-06-14 18:08:36 +0200 | <yahb2> | 42.0 |
2022-06-14 18:09:01 +0200 | <geekosaur[m]> | ooh |
2022-06-14 18:09:13 +0200 | <tomsmeding> | this runs locally on my PC currently :p |
2022-06-14 18:09:25 +0200 | <tomsmeding> | too much stuff is hard-coded |
2022-06-14 18:10:07 +0200 | slack1256 | (~slack1256@186.11.82.227) (Ping timeout: 260 seconds) |
2022-06-14 18:10:12 +0200 | slac15488 | slack1256 |
2022-06-14 18:10:16 +0200 | <tomsmeding> | int-e: ^ |
2022-06-14 18:10:37 +0200 | raym | (~raym@user/raym) |
2022-06-14 18:10:40 +0200 | acidjnk | (~acidjnk@p200300d0c7068b1004113c5627619f0a.dip0.t-ipconnect.de) |
2022-06-14 18:10:44 +0200 | Lemniscate | (~colere@about/linux/staff/sauvin) |
2022-06-14 18:10:46 +0200 | pleo | (~pleo@user/pleo) |
2022-06-14 18:11:19 +0200 | Colere | (~colere@about/linux/staff/sauvin) (Ping timeout: 258 seconds) |
2022-06-14 18:11:40 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2022-06-14 18:11:41 +0200 | <slack1256> | dminuoso: Selective goes in the direction I was looking for. |
2022-06-14 18:12:20 +0200 | <int-e> | % :quit |
2022-06-14 18:12:20 +0200 | <yahb2> | <no output> |
2022-06-14 18:12:25 +0200 | <int-e> | % 1 |
2022-06-14 18:12:25 +0200 | <yahb2> | 1 |
2022-06-14 18:12:31 +0200 | <tomsmeding> | it auto-restarts :) |
2022-06-14 18:12:36 +0200 | <int-e> | just checking |
2022-06-14 18:12:46 +0200 | <int-e> | it's a good feature because it cleans up the environment |
2022-06-14 18:13:32 +0200 | <tomsmeding> | int-e: something I was wondering about: currently if the command produces too much output, it stops reading after a while and kills ghci and starts a new session |
2022-06-14 18:13:42 +0200 | <tomsmeding> | is there a better way to prevent unlimited output |
2022-06-14 18:13:45 +0200 | <int-e> | tomsmeding: does it have any relation to yahb, code-wise? or did you start from scratch? |
2022-06-14 18:13:51 +0200 | brandonchinn178 | (~brandonch@c-73-15-100-152.hsd1.ca.comcast.net) |
2022-06-14 18:13:52 +0200 | <tomsmeding> | from scratch |
2022-06-14 18:14:02 +0200 | brandonchinn178 | (~brandonch@c-73-15-100-152.hsd1.ca.comcast.net) () |
2022-06-14 18:14:26 +0200 | Furor | (~colere@about/linux/staff/sauvin) (Ping timeout: 246 seconds) |
2022-06-14 18:14:26 +0200 | <int-e> | hmm. I don't think ghci has ways to limit the output |
2022-06-14 18:14:39 +0200 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2022-06-14 18:14:50 +0200 | Colere | (~colere@about/linux/staff/sauvin) |
2022-06-14 18:15:57 +0200 | <int-e> | How much code is ghci on top of ghc-as-a-library? |
2022-06-14 18:16:19 +0200 | <tomsmeding> | one or two files iirc, but the files are large |
2022-06-14 18:16:37 +0200 | <tomsmeding> | I was looking at 'hint' but it doesn't have the :set stuff |
2022-06-14 18:16:49 +0200 | <tomsmeding> | int-e: https://git.tomsmeding.com/yahb2/about/ |
2022-06-14 18:17:04 +0200 | Lemniscate | (~colere@about/linux/staff/sauvin) (Ping timeout: 258 seconds) |
2022-06-14 18:17:29 +0200 | <geekosaur[m]> | ghci-ng although it's bitrotted a bit |
2022-06-14 18:17:51 +0200 | <int-e> | Er, I guess I mean ghci-as-a-library. https://hackage.haskell.org/package/ghci isn't kept up-to-date though, hmm. |
2022-06-14 18:18:47 +0200 | eull | (~eull@2001:9e8:9e1:2600:8ec7:d77c:2e5f:91fa) |
2022-06-14 18:18:59 +0200 | chreekat2 | (~b@2001:999:58c:b933:a5f3:89ae:dd78:3035) (Ping timeout: 258 seconds) |
2022-06-14 18:20:34 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-14 18:21:11 +0200 | <int-e> | geekosaur[m]: do you know how that relates to the ghci-as-a-library thing? |
2022-06-14 18:21:30 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-14 18:22:21 +0200 | <int-e> | tomsmeding: what I'd hope for is basically... find the spot where `ghci` inevitably injects a `show` or `print` and hijack that to limit the number of characters |
2022-06-14 18:22:44 +0200 | <geekosaur[m]> | ghci-ng was a full ghci, used for testing of :doc and import |
2022-06-14 18:22:53 +0200 | <geekosaur[m]> | Among other things |
2022-06-14 18:24:34 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:fd72:8b07:e388:e81e) |
2022-06-14 18:25:38 +0200 | raym | (~raym@user/raym) (Ping timeout: 246 seconds) |
2022-06-14 18:26:18 +0200 | littlebo1eep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-14 18:26:42 +0200 | <tomsmeding> | int-e: yeah that would make sense |
2022-06-14 18:26:45 +0200 | ubert | (~Thunderbi@2a02:8109:abc0:6434:2f88:2986:cc88:6622) (Remote host closed the connection) |
2022-06-14 18:27:32 +0200 | <tomsmeding> | you'd also have to catch the output of stuff like :help though, as well as GHC errors, or people doing weird stuff with :def |
2022-06-14 18:27:39 +0200 | raym | (~raym@user/raym) |
2022-06-14 18:28:21 +0200 | <int-e> | Ah I see, the ghci thing is for interacting with iserv. (If I could read I'd have found that out sooner, it's right there at the top of the package description.) |
2022-06-14 18:28:34 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-14 18:28:47 +0200 | <int-e> | tomsmeding: yeah I wouldn't expect to be doing a perfect job |
2022-06-14 18:29:01 +0200 | <int-e> | % [1..] |
2022-06-14 18:29:01 +0200 | <yahb2> | [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,6... |
2022-06-14 18:29:09 +0200 | <int-e> | just catching common cases like that one |
2022-06-14 18:29:21 +0200 | econo | (uid147250@user/econo) |
2022-06-14 18:29:21 +0200 | <tomsmeding> | it resetted now |
2022-06-14 18:29:33 +0200 | <tomsmeding> | would be nicer if it didn't need a reset here |
2022-06-14 18:29:38 +0200 | <int-e> | I understand. |
2022-06-14 18:29:48 +0200 | <tomsmeding> | though it's not a huge problem |
2022-06-14 18:32:33 +0200 | <[Leary]> | You could achieve something similar by wrapping values in a LimitedShow newtype before you give them to ghci. |
2022-06-14 18:32:38 +0200 | cosimone | (~user@93-44-186-171.ip98.fastwebnet.it) |
2022-06-14 18:33:32 +0200 | <[Leary]> | Though I wonder if that wouldn't break on strings. |
2022-06-14 18:33:40 +0200 | used____ | (~used____@79.115.62.163) |
2022-06-14 18:33:50 +0200 | <[Leary]> | Well, putStrLn. |
2022-06-14 18:34:04 +0200 | <[Leary]> | I guess it would. |
2022-06-14 18:34:23 +0200 | <geekosaur> | might be able to use -interactive-print |
2022-06-14 18:34:32 +0200 | <int-e> | % print [1..] |
2022-06-14 18:34:32 +0200 | <yahb2> | [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,6... |
2022-06-14 18:34:49 +0200 | <int-e> | one of the points of yahb was that it allows IO |
2022-06-14 18:34:50 +0200 | <geekosaur> | https://downloads.haskell.org/ghc/9.2.1/docs/html/users_guide/ghci.html#using-a-custom-interactive… but it goes back to at least 7.0.1 |
2022-06-14 18:35:10 +0200 | <int-e> | but that actually means that my idea won't work either. hrm. |
2022-06-14 18:35:11 +0200 | <tomsmeding> | geekosaur: ooh, interesting |
2022-06-14 18:35:20 +0200 | <geekosaur> | and yes, yahb used a ptrrace-style andbox to allow limited io |
2022-06-14 18:35:33 +0200 | <geekosaur> | *sandbox |
2022-06-14 18:35:54 +0200 | <tomsmeding> | this sandbox is not syscall constrained, just a bwrap thing https://github.com/containers/bubblewrap |
2022-06-14 18:36:26 +0200 | <int-e> | so... how could this work? basically every evaluation would have to output to its own pipe, and then the consumer could close that, and hopefully the evaluation will error out at that point and return to the ghci prompt |
2022-06-14 18:37:03 +0200 | <geekosaur> | with -interactive-print you just use a modified printer that does `take 100` or whatever on the normla result |
2022-06-14 18:37:05 +0200 | <int-e> | that's not trivial :/ |
2022-06-14 18:37:37 +0200 | <int-e> | oh sure, in the spirit of making the common case work, that's a good start |
2022-06-14 18:37:44 +0200 | <int-e> | I was worrying about IO. |
2022-06-14 18:38:11 +0200 | <int-e> | of course soon afterwards you'll reach a point where you have to restart forcefully anyway. |
2022-06-14 18:38:39 +0200 | <int-e> | (e.g. infinite loops) |
2022-06-14 18:39:28 +0200 | <int-e> | % System.Directory.getDirectoryContents "." |
2022-06-14 18:39:28 +0200 | <yahb2> | [".","..","ghcup-none","entry.sh"] |
2022-06-14 18:39:34 +0200 | yahb2 | (~yahb2@2001:1c02:b16:f00:1ac0:4dff:fea1:7fda) (Remote host closed the connection) |
2022-06-14 18:39:57 +0200 | <tomsmeding> | oh sorry that was me ^C-ing it at a suggestive time lol |
2022-06-14 18:39:59 +0200 | nate4 | (~nate@98.45.169.16) |
2022-06-14 18:40:04 +0200 | chexum | (~quassel@gateway/tor-sasl/chexum) (Ping timeout: 240 seconds) |
2022-06-14 18:40:15 +0200 | <int-e> | heh |
2022-06-14 18:40:19 +0200 | <tomsmeding> | just realised the sandbox could be quite a bit tighter w.r.t. resource usage |
2022-06-14 18:40:50 +0200 | <tomsmeding> | 1. infinite loops aren't terminated, I'd need to ^C the bot; 2. no disk usage limit, so oops |
2022-06-14 18:40:55 +0200 | chexum | (~quassel@gateway/tor-sasl/chexum) |
2022-06-14 18:41:44 +0200 | <geekosaur[m]> | original yahb had timeout and restricted write and read size both via the sandbox |
2022-06-14 18:41:54 +0200 | _ht | (~quassel@231-169-21-31.ftth.glasoperator.nl) |
2022-06-14 18:42:19 +0200 | <tomsmeding> | not sure why you'd need to restrict output size with the sandbox though |
2022-06-14 18:43:30 +0200 | <geekosaur> | you could still consume a lot of disk with a current directory write, but you might want to allow short writes (yahb did) |
2022-06-14 18:43:40 +0200 | <tomsmeding> | right |
2022-06-14 18:45:03 +0200 | CiaoSen | (~Jura@p200300c9571e28002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 258 seconds) |
2022-06-14 18:45:42 +0200 | nate4 | (~nate@98.45.169.16) (Ping timeout: 260 seconds) |
2022-06-14 18:46:20 +0200 | kenran | (~kenran@200116b82b174c005987e7000d7c45a7.dip.versatel-1u1.de) |
2022-06-14 18:46:45 +0200 | kenran | (~kenran@200116b82b174c005987e7000d7c45a7.dip.versatel-1u1.de) (Client Quit) |
2022-06-14 18:48:04 +0200 | <tomsmeding> | wanting to truncate something like `print [1..]` without restarting ghci is never going to work anyway |
2022-06-14 18:48:28 +0200 | <tomsmeding> | you can usefully truncate a `show`, but you can't usefully truncate IO output without changing semantics |
2022-06-14 18:49:35 +0200 | <tomsmeding> | e.g. `print [1 .. 10000] >> writeIORef ... ...` |
2022-06-14 18:49:53 +0200 | <tomsmeding> | hm, I guess you could consume and wait until timeout |
2022-06-14 18:50:29 +0200 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds) |
2022-06-14 18:51:11 +0200 | acidjnk | (~acidjnk@p200300d0c7068b1004113c5627619f0a.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
2022-06-14 18:56:13 +0200 | <shapr> | Is there a OR for cabal build depends? |
2022-06-14 18:56:28 +0200 | <shapr> | This library I'm building needs Testable, but I don't care if it comes from quickcheck or leancheck or whatever |
2022-06-14 18:56:43 +0200 | <tomsmeding> | isn't the way to do that cabal build flags |
2022-06-14 18:57:10 +0200 | <dcoutts> | yeah, you can have conditionals like that with package flags |
2022-06-14 18:57:43 +0200 | <dcoutts> | though it usually also needs cpp to adjust the imports |
2022-06-14 18:57:51 +0200 | <dcoutts> | it's not a structured mechanism like backpack |
2022-06-14 18:57:57 +0200 | <int-e> | tomsmeding: state is messy! |
2022-06-14 18:57:58 +0200 | <dcoutts> | though Cabal also supports backpack :-) |
2022-06-14 18:58:08 +0200 | <tomsmeding> | int-e: yes :p |
2022-06-14 18:58:55 +0200 | neoatnebula | (~neoatnebu@2409:4071:4d92:bfe0:dfae:9acc:1f1b:ea25) |
2022-06-14 18:59:35 +0200 | nschoe | (~quassel@2a01:e0a:8e:a190:88e9:a0ec:2edc:295f) |
2022-06-14 19:00:17 +0200 | <int-e> | tomsmeding: -interactive-print certainly looks like a sweet spot |
2022-06-14 19:00:17 +0200 | MajorBiscuit | (~MajorBisc@c-001-022-040.client.tudelft.eduvpn.nl) (Ping timeout: 260 seconds) |
2022-06-14 19:00:43 +0200 | <int-e> | 1) trivial to implement, 2) catches a very common case of long, possibly infinite, output |
2022-06-14 19:02:07 +0200 | <shapr> | On the good side, this library I'm writing looks like the first cut will be ~20 lines of code |
2022-06-14 19:02:24 +0200 | <tomsmeding> | leftpad? |
2022-06-14 19:02:40 +0200 | <shapr> | Nah, I came up with a fix for https://danluu.com/testing/ |
2022-06-14 19:03:39 +0200 | <shapr> | After months of fighting with the problem and then reading all the related papers, and libraries, and GHC sources; a good solution is very small. |
2022-06-14 19:03:50 +0200 | chele | (~chele@user/chele) (Remote host closed the connection) |
2022-06-14 19:04:10 +0200 | <dsal> | shapr: somehow unsatisfying. |
2022-06-14 19:04:13 +0200 | <shapr> | I even came up with a great name, I'll post a link here when it's on hackage |
2022-06-14 19:04:15 +0200 | <shapr> | dsal: how so? |
2022-06-14 19:04:27 +0200 | <dsal> | If you spend that much time on something, it should be gigantic and difficult to understand. |
2022-06-14 19:04:38 +0200 | <shapr> | It was exactly that a week or two ago. |
2022-06-14 19:04:40 +0200 | <tomsmeding> | unless you're a mathematician |
2022-06-14 19:04:54 +0200 | <dsal> | It sounds super exciting though. |
2022-06-14 19:05:11 +0200 | <int-e> | tomsmeding: https://www.npmjs.com/package/ansi-underline (well, at least this one is not a remote service) |
2022-06-14 19:05:13 +0200 | <shapr> | Two weeks ago it was a hundred lines of impossible to understand crap, last week it was half that, then it kept getting smaller. |
2022-06-14 19:05:54 +0200 | bliminse | (~bliminse@host86-132-158-77.range86-132.btcentralplus.com) (Quit: leaving) |
2022-06-14 19:06:00 +0200 | <int-e> | tomsmeding: (there's a dozen analogous packages for different ansi escape sequences) |
2022-06-14 19:06:04 +0200 | <dsal> | One more week, and it'll be a single-character operator. |
2022-06-14 19:06:06 +0200 | <shapr> | dsal: as soon as I figure out how to actually wrap it up into a library I'll link it here, the idea is extremely simple. I may be projecting those weeks of frustration, it might not be simple. |
2022-06-14 19:06:22 +0200 | <tomsmeding> | int-e: it even has a dependency |
2022-06-14 19:06:29 +0200 | <int-e> | tomsmeding: I know! |
2022-06-14 19:06:51 +0200 | <int-e> | tomsmeding: because ANSI tags have to be reset and that is reusable functionality |
2022-06-14 19:06:59 +0200 | <tomsmeding> | same person at some point wrote a to-clipboard library for nodejs, which I sent a PR to and promptly got maintainer rights for |
2022-06-14 19:07:22 +0200 | <tomsmeding> | that was actually a useful library that did some abstraction over multiple OS's |
2022-06-14 19:07:44 +0200 | <int-e> | tomsmeding: The amazing thing to me is that people *use* this package. |
2022-06-14 19:08:26 +0200 | <int-e> | Because it's at a level of complexity where adding a dependency is more effort than defining one's own constant. |
2022-06-14 19:08:49 +0200 | <shapr> | oh good, I do remember how to login to hackage. |
2022-06-14 19:09:01 +0200 | <int-e> | tomsmeding: to-clipboard does sound useful indeed |
2022-06-14 19:10:15 +0200 | bliminse | (~bliminse@host86-132-158-77.range86-132.btcentralplus.com) |
2022-06-14 19:12:27 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
2022-06-14 19:13:56 +0200 | zebrag | (~chris@user/zebrag) |
2022-06-14 19:14:46 +0200 | <shapr> | dsal: the secondary effect of this library is that I may end up maintainer of hpc |
2022-06-14 19:15:06 +0200 | <shapr> | the library/application, not the IRC user :-P |
2022-06-14 19:15:19 +0200 | mima | (~mmh@dhcp-138-246-3-112.dynamic.eduroam.mwn.de) (Quit: leaving) |
2022-06-14 19:15:20 +0200 | <used____> | update: re haste-language and ancient ghc etc manual install: dependency hell ensues. I see no way to install an older "platform" other than by cherry picking source packages and manually compiling. Giving up. |
2022-06-14 19:15:31 +0200 | <tomsmeding> | oof |
2022-06-14 19:15:58 +0200 | <used____> | ghc-7.10.3 era, 2015. |
2022-06-14 19:16:16 +0200 | <used____> | Anyway, thanks for the help, moving on. |
2022-06-14 19:16:33 +0200 | merijn | (~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) |
2022-06-14 19:17:08 +0200 | <shapr> | haskell+emacs question, is there some way get C-c C-l to work for modules in a test stanza? |
2022-06-14 19:17:48 +0200 | <shapr> | I can use "cabal repl test" in a terminal, but in emacs I can only get library or executable modules to load into a cabal repl. |
2022-06-14 19:18:09 +0200 | <shapr> | er, that's haskell-process-load-file to be clear |
2022-06-14 19:18:55 +0200 | <shapr> | hpc: are you in DC? want to hang out and work on hpc? |
2022-06-14 19:19:06 +0200 | shapr | laughs about recursive messages |
2022-06-14 19:19:10 +0200 | <__monty__> | used____: Are you sure you need a haskell-platform? An old GHC and cabal-install should get the correct dependency versions from hackage given a Cabal file with constraints, no? |
2022-06-14 19:19:11 +0200 | <geekosaur> | used____, https://downloads.haskell.org/~platform/ is still a thing although all links to it were removed to discourage its use |
2022-06-14 19:19:34 +0200 | <used____> | geekosaur: sigh, moved on, thanks |
2022-06-14 19:20:09 +0200 | <used____> | haste-lang is "dead" too, was curious what generated js looks like, I saw it, it's pre obfuscated... |
2022-06-14 19:20:38 +0200 | <geekosaur> | well, yes, generally generated code is |
2022-06-14 19:21:00 +0200 | <geekosaur> | generating pretty code is even harder than generating correct code, in my experience |
2022-06-14 19:21:02 +0200 | <used____> | Not all, the haste-lang included "lib" isn't, the app is |
2022-06-14 19:21:24 +0200 | <used____> | It's nothing pretty for js can't untangle but still.. |
2022-06-14 19:26:26 +0200 | <dsal> | shapr: That's pretty awesome. There are a couple bugs I care about. :) |
2022-06-14 19:28:32 +0200 | Pickchea | (~private@user/pickchea) |
2022-06-14 19:29:37 +0200 | <dsal> | I'm sure it's hard problems, but two things that really bother me in haskell coverage are that we show things the compiler wrote as not covered. This should, at best, be an option. e.g., record fields and derived instances. |
2022-06-14 19:29:58 +0200 | <dsal> | I imagine it'd be nice to be "accurate" and show that I'm not using a thing, but I don't need to write a test that exercises `Show` just so that `Show` shows up as covered since it's actually required for tests that are passing in case they start failing. |
2022-06-14 19:31:56 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-06-14 19:37:53 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:fd72:8b07:e388:e81e) (Remote host closed the connection) |
2022-06-14 19:40:05 +0200 | CoolerX | (~user@user/coolerx) |
2022-06-14 19:40:07 +0200 | <CoolerX> | ls |
2022-06-14 19:40:10 +0200 | <CoolerX> | Hi |
2022-06-14 19:40:19 +0200 | used____ | (~used____@79.115.62.163) (thanks) |
2022-06-14 19:40:28 +0200 | <CoolerX> | I am getting a weird warning here https://bpa.st/OGQQ |
2022-06-14 19:40:40 +0200 | ccntrq | (~Thunderbi@172.209.94.92.rev.sfr.net) (Remote host closed the connection) |
2022-06-14 19:40:47 +0200 | <CoolerX> | Pattern match is redundant In an equation for ‘del’: del (Node (v, children) : rest) = ... |
2022-06-14 19:40:53 +0200 | <CoolerX> | how is it redundant? |
2022-06-14 19:41:15 +0200 | <CoolerX> | I have a pattern match for the nil case and the non-nil case |
2022-06-14 19:41:56 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 246 seconds) |
2022-06-14 19:42:00 +0200 | <CoolerX> | hmm I changed the code to this and the warning disappeared https://bpa.st/6QGA |
2022-06-14 19:42:02 +0200 | <tomsmeding> | CoolerX: on that 'del nil = nil' line, the first 'nil' is a simple variable |
2022-06-14 19:42:12 +0200 | <CoolerX> | I guess nil wasn't in scope |
2022-06-14 19:42:14 +0200 | <tomsmeding> | it is equivalent to 'del cheese = cheese' or 'del x = x' |
2022-06-14 19:42:15 +0200 | <CoolerX> | tomsmeding: yeah |
2022-06-14 19:42:22 +0200 | <CoolerX> | annoying |
2022-06-14 19:42:55 +0200 | <tomsmeding> | CoolerX: it is not a question of whether 'nil' is in scope; putting a lowercase name in a pattern _always_ mean "match any value and store it in this name" |
2022-06-14 19:43:16 +0200 | <tomsmeding> | if you want to compare against the value of an existing variable, you must compare afterwards using == |
2022-06-14 19:43:25 +0200 | <CoolerX> | tomsmeding: I get an error saying nil is not in scope when I try something like 3 : nil in ghci |
2022-06-14 19:43:28 +0200 | <CoolerX> | repl |
2022-06-14 19:43:28 +0200 | <tomsmeding> | (but pattern-matching is always better if possible) |
2022-06-14 19:43:34 +0200 | <CoolerX> | 3 : [] gives [3] |
2022-06-14 19:43:38 +0200 | <tomsmeding> | yes, the name 'nil' is not defined in the haskell standard libraries |
2022-06-14 19:43:42 +0200 | <tomsmeding> | it is written '[]' |
2022-06-14 19:43:52 +0200 | <CoolerX> | ok |
2022-06-14 19:44:11 +0200 | <CoolerX> | tomsmeding: is it in the library? I thought lists were baked into the compiler |
2022-06-14 19:44:17 +0200 | <CoolerX> | lsit syntax |
2022-06-14 19:44:19 +0200 | <CoolerX> | list |
2022-06-14 19:44:30 +0200 | <tomsmeding> | just in case, another example: 'del print = print' _also_ means the same as 'del x = x', even though 'print' _is_ an existing variable |
2022-06-14 19:44:40 +0200 | <tomsmeding> | CoolerX: list syntax is kind of baked into the compiler, yes |
2022-06-14 19:44:40 +0200 | <CoolerX> | hmm |
2022-06-14 19:45:01 +0200 | <CoolerX> | ok |
2022-06-14 19:45:15 +0200 | <CoolerX> | "putting a lowercase name in a pattern _always_ mean "match any value and store it in this name" ok |
2022-06-14 19:45:50 +0200 | <CoolerX> | also is there a way to avoid the 4::Int ? |
2022-06-14 19:45:56 +0200 | <CoolerX> | let tree1 = Node (4::Int, []) |
2022-06-14 19:46:03 +0200 | <CoolerX> | let tree1 = Node (4, []) |
2022-06-14 19:46:10 +0200 | <CoolerX> | just have that instead? |
2022-06-14 19:46:32 +0200 | <tomsmeding> | numeric literals (like 4) don't have any specific type in Haskell |
2022-06-14 19:46:36 +0200 | <CoolerX> | yeah |
2022-06-14 19:46:37 +0200 | <tomsmeding> | so _something_ must say what the type is going to be |
2022-06-14 19:46:59 +0200 | <tomsmeding> | either using ::Int as you do, or with 'tree1 :: Tree Int' before 'tree1', or something else |
2022-06-14 19:51:48 +0200 | <CoolerX> | no it doesn't let me do that |
2022-06-14 19:51:50 +0200 | <CoolerX> | let tree1 :: Tree Int = Node (4, []) |
2022-06-14 19:51:59 +0200 | <CoolerX> | Illegal type signature: ‘Tree Int’ |
2022-06-14 19:51:59 +0200 | <CoolerX> | Type signatures are only allowed in patterns with ScopedTypeVariables |
2022-06-14 19:52:35 +0200 | <geekosaur[m]> | `let tree1 :: Tree Int; tree1 = Node (4,[])` |
2022-06-14 19:52:57 +0200 | <CoolerX> | bleh |
2022-06-14 19:53:02 +0200 | <CoolerX> | looks bad |
2022-06-14 19:53:19 +0200 | <CoolerX> | what does that desugar into? |
2022-06-14 19:53:25 +0200 | <geekosaur[m]> | well, we'd normally put them on separate lines |
2022-06-14 19:53:28 +0200 | <geekosaur[m]> | it doesn't |
2022-06-14 19:53:50 +0200 | <CoolerX> | tree1 <- return $ Node (4, []) |
2022-06-14 19:53:55 +0200 | <CoolerX> | something like that? |
2022-06-14 19:54:05 +0200 | <geekosaur[m]> | (well, assuming this is in a `do`, a bare `let` turns into `let … in do`) |
2022-06-14 19:54:08 +0200 | Midjak | (~Midjak@82.66.147.146) |
2022-06-14 19:54:22 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-06-14 19:54:34 +0200 | littlebo1eep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-14 19:54:39 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-14 19:54:53 +0200 | <CoolerX> | geekosaur[m]: the code looks like this https://bpa.st/6QGA |
2022-06-14 19:55:17 +0200 | remedan | (~remedan@octo.cafe) (Read error: Connection reset by peer) |
2022-06-14 19:56:33 +0200 | neoatnebula | (~neoatnebu@2409:4071:4d92:bfe0:dfae:9acc:1f1b:ea25) (Quit: Client closed) |
2022-06-14 19:57:12 +0200 | <geekosaur[m]> | I'd just leave it like that for now. presumably you will be doing something that associates tree1 with tree2 and helps fix their types |
2022-06-14 19:57:13 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:fd72:8b07:e388:e81e) |
2022-06-14 19:57:38 +0200 | vglfr | (~vglfr@coupling.penchant.volia.net) (Remote host closed the connection) |
2022-06-14 19:58:15 +0200 | vglfr | (~vglfr@coupling.penchant.volia.net) |
2022-06-14 19:58:26 +0200 | <CoolerX> | ok |
2022-06-14 19:58:48 +0200 | <CoolerX> | how do you put if conditions in functions again? |
2022-06-14 19:58:54 +0200 | machinedgod | (~machinedg@66.244.246.252) (Ping timeout: 276 seconds) |
2022-06-14 19:58:56 +0200 | <CoolerX> | if r > R + 1, l > r, or l < 1 |
2022-06-14 19:59:09 +0200 | <CoolerX> | switch case ? |
2022-06-14 19:59:15 +0200 | <CoolerX> | I also need to pattern match |
2022-06-14 19:59:49 +0200 | <geekosaur[m]> | `if`…`then`…`else` works fine, but remember that it's an expression |
2022-06-14 19:59:54 +0200 | <geekosaur[m]> | (so you can't leave off the `else`, among other things) |
2022-06-14 20:00:09 +0200 | <geekosaur[m]> | if you want to also pattern match then you want `case` |
2022-06-14 20:00:18 +0200 | <CoolerX> | https://wiki.haskell.org/If-then-else |
2022-06-14 20:00:49 +0200 | Guest2776 | (~Guest27@2601:281:d47f:1590::8848) |
2022-06-14 20:00:50 +0200 | slack1256 | (~slack1256@191.125.99.70) (Read error: Connection reset by peer) |
2022-06-14 20:01:14 +0200 | <CoolerX> | it seems to recommend making a function if' |
2022-06-14 20:01:36 +0200 | slack1256 | (~slack1256@186.11.82.227) |
2022-06-14 20:02:04 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-14 20:03:09 +0200 | <geekosaur> | :t bool -- parameters in different order |
2022-06-14 20:03:10 +0200 | <lambdabot> | a -> a -> Bool -> a |
2022-06-14 20:03:27 +0200 | <CoolerX> | hmm? why |
2022-06-14 20:03:37 +0200 | <geekosaur> | but yes, some people dislike if-then-else syntax and recommend a function like that |
2022-06-14 20:03:57 +0200 | <geekosaur> | why reordered? so it can be partially applied, and to match functions like `maybe` and `either` |
2022-06-14 20:04:27 +0200 | <CoolerX> | geekosaur[m]: you can partially apply Bool -> a -> a -> a |
2022-06-14 20:04:57 +0200 | Unicorn_Princess | (~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Remote host closed the connection) |
2022-06-14 20:05:17 +0200 | <CoolerX> | there's a bunch of these in Hoogle https://hoogle.haskell.org/?hoogle=Bool%20-%3E%20a%20-%3E%20a%20-%3E%20a |
2022-06-14 20:05:17 +0200 | Unicorn_Princess | (~Unicorn_P@93-103-228-248.dynamic.t-2.net) |
2022-06-14 20:05:19 +0200 | remedan | (~remedan@octo.cafe) |
2022-06-14 20:05:58 +0200 | <geekosaur[m]> | but in that order it's less convenient (you would most often want the `Bool` to be partially applied, not the `else` result) |
2022-06-14 20:06:23 +0200 | <geekosaur[m]> | (sorry for jumping around between irc and matrix) |
2022-06-14 20:06:25 +0200 | <CoolerX> | ok |
2022-06-14 20:06:33 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-14 20:06:37 +0200 | <CoolerX> | geekosaur[m]: is that why there's a [m] in your nick? |
2022-06-14 20:06:52 +0200 | <CoolerX> | and what is matrix? I keep hearing about it |
2022-06-14 20:06:56 +0200 | <geekosaur[m]> | generally we put some thought into convenience of partial application when ordering parameters |
2022-06-14 20:06:57 +0200 | <geekosaur[m]> | yes |
2022-06-14 20:07:03 +0200 | <CoolerX> | https://matrix.org/docs/projects/bridge/matrix-org-irc-bridge |
2022-06-14 20:07:10 +0200 | <geekosaur[m]> | matrix is a more modern interface to IRC |
2022-06-14 20:07:28 +0200 | <geekosaur[m]> | supports markdown, link previews, etc. |
2022-06-14 20:08:05 +0200 | statusbot3 | (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) |
2022-06-14 20:08:08 +0200 | <geekosaur[m]> | mostly I'm on it today because I was answering questions on the matrix Haskell room, which is separate from this IRC channel |
2022-06-14 20:08:12 +0200 | <CoolerX> | it's a website |
2022-06-14 20:08:21 +0200 | <tomsmeding> | "matrix is a more modern interface to IRC" heh don't let the matrix people hear that |
2022-06-14 20:08:31 +0200 | qhong_ | (~qhong@rescomp-21-400677.stanford.edu) |
2022-06-14 20:08:35 +0200 | <geekosaur[m]> | matrix itself is a protocol. there are applications and web interfaces for it |
2022-06-14 20:08:36 +0200 | <CoolerX> | so like https://kiwiirc.com/ |
2022-06-14 20:08:54 +0200 | hsw_ | (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) |
2022-06-14 20:08:57 +0200 | <CoolerX> | geekosaur[m]: oh? is it a superset of the IRC protocol? |
2022-06-14 20:08:59 +0200 | <yushyin> | tomsmeding: i also don't want to hear that as an irc user :P |
2022-06-14 20:08:59 +0200 | <tomsmeding> | matrix is a chat protocol in itself, just like irc, or signal, or whatsapp, or what have you |
2022-06-14 20:09:03 +0200 | <yushyin> | CoolerX: no |
2022-06-14 20:09:08 +0200 | allbery_b | (~geekosaur@xmonad/geekosaur) |
2022-06-14 20:09:08 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
2022-06-14 20:09:11 +0200 | allbery_b | geekosaur |
2022-06-14 20:09:11 +0200 | <geekosaur[m]> | specifically I'm on app.element.io right now |
2022-06-14 20:09:22 +0200 | <tomsmeding> | it has bridges to signal, whatsapp, irc, and tons of other things |
2022-06-14 20:09:23 +0200 | Dorkside694 | (~dorkside@208.190.197.222) |
2022-06-14 20:09:44 +0200 | MironZ5 | (~MironZ@nat-infra.ehlab.uk) |
2022-06-14 20:09:44 +0200 | <tomsmeding> | and you can use it as a frontend to irc just like you can use a PC as a frontend to your book using an ebook reader :p |
2022-06-14 20:09:47 +0200 | <geekosaur[m]> | which is the element maxtrix client as a web interface. there's also a standalone app for various platforms, plus other clients such as fluffychat and quaternion |
2022-06-14 20:09:54 +0200 | <dsal> | CoolerX: What are you trying to do? I don't need `if` very often. |
2022-06-14 20:10:14 +0200 | zachel_ | (~zachel@user/zachel) |
2022-06-14 20:10:18 +0200 | <geekosaur[m]> | s/maxtrix/matrix/ |
2022-06-14 20:10:21 +0200 | <CoolerX> | is it called matrix because it's a bridge between all those protocols? |
2022-06-14 20:10:29 +0200 | <tomsmeding> | that's the idea |
2022-06-14 20:10:31 +0200 | Ram-Z_ | (Ram-Z@2a01:7e01::f03c:91ff:fe57:d2df) |
2022-06-14 20:10:40 +0200 | <CoolerX> | https://matrix.org/ |
2022-06-14 20:11:27 +0200 | alp | (~alp@user/alp) (Remote host closed the connection) |
2022-06-14 20:11:34 +0200 | jrm2 | (~jrm@user/jrm) |
2022-06-14 20:11:46 +0200 | alp | (~alp@user/alp) |
2022-06-14 20:11:59 +0200 | hololeap_ | (~quassel@user/hololeap) |
2022-06-14 20:12:03 +0200 | <CoolerX> | "You can reach any other user in the global Matrix ecosystem of over 40M users, even including those on other networks via bridges." |
2022-06-14 20:12:06 +0200 | <CoolerX> | hmm |
2022-06-14 20:12:14 +0200 | <CoolerX> | WhatsApp alone has over a billion users |
2022-06-14 20:12:26 +0200 | <CoolerX> | so you can't reach everyone on WhatsApp? |
2022-06-14 20:12:28 +0200 | hyiltiz_ | (~quassel@31.220.5.250) |
2022-06-14 20:12:42 +0200 | <tomsmeding> | 40M refers just to the users of matrix itself |
2022-06-14 20:12:53 +0200 | sweater1 | (~sweater@206.81.18.26) |
2022-06-14 20:12:57 +0200 | <CoolerX> | ok |
2022-06-14 20:12:58 +0200 | ian__ | (~ian@matrix.chaos.earth.li) |
2022-06-14 20:13:00 +0200 | bgs_ | (~bgs@212-85-160-171.dynamic.telemach.net) |
2022-06-14 20:13:01 +0200 | Fischmie1 | (~Fischmiep@user/Fischmiep) |
2022-06-14 20:13:06 +0200 | __________ | (~nobody@user/noodly) |
2022-06-14 20:13:13 +0200 | gabriel_1 | (~gabriel@188-167-229-200.dynamic.chello.sk) |
2022-06-14 20:13:13 +0200 | dfordivam1 | (~dfordivam@tk2-219-19469.vs.sakura.ne.jp) |
2022-06-14 20:13:19 +0200 | hughjfch1 | (~hughjfche@vmi556545.contaboserver.net) |
2022-06-14 20:13:30 +0200 | <CoolerX> | dsal: just a condition |
2022-06-14 20:13:36 +0200 | mstksg | (~jle`@cpe-23-240-75-236.socal.res.rr.com) |
2022-06-14 20:14:02 +0200 | Maxdaman1us | (~Maxdamant@user/maxdamantus) |
2022-06-14 20:14:19 +0200 | srk- | (~sorki@user/srk) |
2022-06-14 20:14:22 +0200 | yahb2 | (~yahb2@2a01:4f8:c0c:5c7b::2) |
2022-06-14 20:14:39 +0200 | <tomsmeding> | % putStrLn "test" |
2022-06-14 20:14:39 +0200 | <yahb2> | Oops, something went wrong |
2022-06-14 20:14:41 +0200 | <dsal> | "just a condition" is XY |
2022-06-14 20:14:48 +0200 | <CoolerX> | https://imgur.com/Es0oRM3 |
2022-06-14 20:15:05 +0200 | yahb2 | (~yahb2@2a01:4f8:c0c:5c7b::2) (Remote host closed the connection) |
2022-06-14 20:15:23 +0200 | pie__ | (~pie_bnc@user/pie/x-2818909) |
2022-06-14 20:15:24 +0200 | _ht_ | (~quassel@231-169-21-31.ftth.glasoperator.nl) |
2022-06-14 20:15:53 +0200 | <dsal> | I doubt I'd use an `if` when writing that code. |
2022-06-14 20:15:58 +0200 | remedan | (~remedan@octo.cafe) (Read error: Connection reset by peer) |
2022-06-14 20:16:20 +0200 | _________ | (~nobody@user/noodly) (Killed (NickServ (GHOST command used by __________))) |
2022-06-14 20:16:37 +0200 | dka_ | (~code-is-a@ns3059207.ip-193-70-33.eu) |
2022-06-14 20:16:50 +0200 | __________ | (~nobody@user/noodly) (Client Quit) |
2022-06-14 20:16:54 +0200 | qhong_ | qhong` |
2022-06-14 20:17:13 +0200 | <CoolerX> | " Bridges are core to Matrix and designed to be as easy to write as possible, with Matrix providing the highest common denominator language to link the networks together." |
2022-06-14 20:17:16 +0200 | <CoolerX> | highest ? |
2022-06-14 20:17:27 +0200 | <CoolerX> | do they mean lowest common denominator? |
2022-06-14 20:17:40 +0200 | _________ | (~nobody@user/noodly) |
2022-06-14 20:18:05 +0200 | slack1256 | (~slack1256@186.11.82.227) (*.net *.split) |
2022-06-14 20:18:05 +0200 | bliminse | (~bliminse@host86-132-158-77.range86-132.btcentralplus.com) (*.net *.split) |
2022-06-14 20:18:05 +0200 | _ht | (~quassel@231-169-21-31.ftth.glasoperator.nl) (*.net *.split) |
2022-06-14 20:18:05 +0200 | [Leary] | (~Leary]@122-58-224-198-vdsl.sparkbb.co.nz) (*.net *.split) |
2022-06-14 20:18:05 +0200 | coot | (~coot@213.134.190.95) (*.net *.split) |
2022-06-14 20:18:05 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) (*.net *.split) |
2022-06-14 20:18:05 +0200 | sweater | (~sweater@206.81.18.26) (*.net *.split) |
2022-06-14 20:18:05 +0200 | arahael | (~arahael@203.220.147.161) (*.net *.split) |
2022-06-14 20:18:05 +0200 | Dorkside69 | (~dorkside@208.190.197.222) (*.net *.split) |
2022-06-14 20:18:05 +0200 | hyiltiz | (~quassel@31.220.5.250) (*.net *.split) |
2022-06-14 20:18:05 +0200 | Flonk | (~Flonk@vps-zap441517-1.zap-srv.com) (*.net *.split) |
2022-06-14 20:18:05 +0200 | cyphase | (~cyphase@user/cyphase) (*.net *.split) |
2022-06-14 20:18:05 +0200 | gabriel_sevecek | (~gabriel@188-167-229-200.dynamic.chello.sk) (*.net *.split) |
2022-06-14 20:18:05 +0200 | andreas303 | (andreas303@ip227.orange.bnc4free.com) (*.net *.split) |
2022-06-14 20:18:05 +0200 | pie_ | (~pie_bnc@user/pie/x-2818909) (*.net *.split) |
2022-06-14 20:18:06 +0200 | Ram-Z | (~Ram-Z@li1814-254.members.linode.com) (*.net *.split) |
2022-06-14 20:18:06 +0200 | elkcl | (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru) (*.net *.split) |
2022-06-14 20:18:06 +0200 | hueso | (~root@user/hueso) (*.net *.split) |
2022-06-14 20:18:06 +0200 | ashln | (~ashln@98.38.236.123) (*.net *.split) |
2022-06-14 20:18:06 +0200 | zachel | (~zachel@user/zachel) (*.net *.split) |
2022-06-14 20:18:06 +0200 | monochrom | (~trebla@216.138.220.146) (*.net *.split) |
2022-06-14 20:18:06 +0200 | Maxdamantus | (~Maxdamant@user/maxdamantus) (*.net *.split) |
2022-06-14 20:18:06 +0200 | jrm | (~jrm@user/jrm) (*.net *.split) |
2022-06-14 20:18:06 +0200 | hughjfchen | (~hughjfche@vmi556545.contaboserver.net) (*.net *.split) |
2022-06-14 20:18:06 +0200 | srk | (~sorki@user/srk) (*.net *.split) |
2022-06-14 20:18:06 +0200 | foul_owl | (~kerry@23.82.194.92) (*.net *.split) |
2022-06-14 20:18:06 +0200 | hololeap | (~quassel@user/hololeap) (*.net *.split) |
2022-06-14 20:18:06 +0200 | hsw | (~hsw@112-104-144-236.adsl.dynamic.seed.net.tw) (*.net *.split) |
2022-06-14 20:18:06 +0200 | Igloo | (~ian@matrix.chaos.earth.li) (*.net *.split) |
2022-06-14 20:18:06 +0200 | Benzi-Junior | (~BenziJuni@88-149-64-179.du.xdsl.is) (*.net *.split) |
2022-06-14 20:18:06 +0200 | statusbot | (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) (*.net *.split) |
2022-06-14 20:18:06 +0200 | qhong | (~qhong@rescomp-21-400677.stanford.edu) (*.net *.split) |
2022-06-14 20:18:06 +0200 | jle` | (~jle`@cpe-23-240-75-236.socal.res.rr.com) (*.net *.split) |
2022-06-14 20:18:06 +0200 | bgs | (~bgs@212-85-160-171.dynamic.telemach.net) (*.net *.split) |
2022-06-14 20:18:06 +0200 | Fischmiep | (~Fischmiep@user/Fischmiep) (*.net *.split) |
2022-06-14 20:18:06 +0200 | MironZ | (~MironZ@nat-infra.ehlab.uk) (*.net *.split) |
2022-06-14 20:18:06 +0200 | Hafydd | (~Hafydd@user/hafydd) (*.net *.split) |
2022-06-14 20:18:06 +0200 | gff | (~gff@user/gff) (*.net *.split) |
2022-06-14 20:18:06 +0200 | dka | (~code-is-a@ns3059207.ip-193-70-33.eu) (*.net *.split) |
2022-06-14 20:18:06 +0200 | dfordvm | (~dfordivam@tk2-219-19469.vs.sakura.ne.jp) (*.net *.split) |
2022-06-14 20:18:06 +0200 | Dorkside694 | Dorkside69 |
2022-06-14 20:18:06 +0200 | jrm2 | jrm |
2022-06-14 20:18:06 +0200 | srk- | srk |
2022-06-14 20:18:06 +0200 | bgs_ | bgs |
2022-06-14 20:18:06 +0200 | MironZ5 | MironZ |
2022-06-14 20:18:10 +0200 | yahb2 | (~yahb2@2a01:4f8:c0c:5c7b::2) |
2022-06-14 20:18:14 +0200 | Guest2776 | (~Guest27@2601:281:d47f:1590::8848) (Quit: Client closed) |
2022-06-14 20:18:16 +0200 | <tomsmeding> | % putStrLn "test" |
2022-06-14 20:18:16 +0200 | <yahb2> | test |
2022-06-14 20:18:25 +0200 | <geekosaur[m]> | matrix tries to support everything any bridged service does, instead of being limited to the what the simplest bridged services (like irc) provide |
2022-06-14 20:18:26 +0200 | <CoolerX> | dsal: how would you write it? |
2022-06-14 20:18:35 +0200 | <dsal> | > let insert x xs = let (l,r) = break (> x) xs in l <> [x] <> r in insert 'j' ['a'..'z'] -- CoolerX probably something like this |
2022-06-14 20:18:36 +0200 | <CoolerX> | just pattern matching isn't enough I think |
2022-06-14 20:18:37 +0200 | <lambdabot> | "abcdefghijjklmnopqrstuvwxyz" |
2022-06-14 20:19:05 +0200 | elkcl | (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru) |
2022-06-14 20:19:07 +0200 | <CoolerX> | dsal: I can't make head or tail of that code |
2022-06-14 20:19:25 +0200 | <CoolerX> | geekosaur[m]: cool |
2022-06-14 20:19:28 +0200 | <dsal> | > break (> 'j') "abcxyz" |
2022-06-14 20:19:30 +0200 | <lambdabot> | ("abc","xyz") |
2022-06-14 20:19:42 +0200 | <CoolerX> | IOT, VR and more... |
2022-06-14 20:19:56 +0200 | <CoolerX> | I guess at some point someone in VR Chat will talk to someone on IRC via Matrix |
2022-06-14 20:20:05 +0200 | <CoolerX> | "talk" |
2022-06-14 20:20:23 +0200 | <geekosaur[m]> | they get a link, I think |
2022-06-14 20:20:44 +0200 | <geekosaur[m]> | haven't tried doing a video call to someone on irc yet |
2022-06-14 20:21:01 +0200 | gff | (~gff@75-174-85-4.boid.qwest.net) |
2022-06-14 20:21:01 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2022-06-14 20:21:01 +0200 | B-J | (~BenziJuni@88.149.64.179) |
2022-06-14 20:21:01 +0200 | slack1256 | (~slack1256@186.11.82.227) |
2022-06-14 20:21:01 +0200 | bliminse | (~bliminse@host86-132-158-77.range86-132.btcentralplus.com) |
2022-06-14 20:21:01 +0200 | [Leary] | (~Leary]@122-58-224-198-vdsl.sparkbb.co.nz) |
2022-06-14 20:21:01 +0200 | arahael | (~arahael@203.220.147.161) |
2022-06-14 20:21:01 +0200 | Flonk | (~Flonk@vps-zap441517-1.zap-srv.com) |
2022-06-14 20:21:01 +0200 | andreas303 | (andreas303@ip227.orange.bnc4free.com) |
2022-06-14 20:21:01 +0200 | hueso | (~root@user/hueso) |
2022-06-14 20:21:01 +0200 | ashln | (~ashln@98.38.236.123) |
2022-06-14 20:21:01 +0200 | monochrom | (~trebla@216.138.220.146) |
2022-06-14 20:21:40 +0200 | <int-e> | [frame 1]:-([frame 2]:-(([frame 3]::: (tears)[frame 4]:-( |
2022-06-14 20:22:14 +0200 | <int-e> | (we call this an animated discussion) |
2022-06-14 20:22:15 +0200 | __________ | (~nobody@user/noodly) |
2022-06-14 20:22:26 +0200 | _________ | (~nobody@user/noodly) (Client Quit) |
2022-06-14 20:22:48 +0200 | __________ | (~nobody@user/noodly) (Client Quit) |
2022-06-14 20:22:51 +0200 | <CoolerX> | geekosaur[m]: heh, convert each frame into an ascii art and spam the channel |
2022-06-14 20:22:53 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 246 seconds) |
2022-06-14 20:23:11 +0200 | <CoolerX> | 60 fps terminal one-way video call |
2022-06-14 20:23:14 +0200 | <dsal> | I can't even tell what's going on here. |
2022-06-14 20:23:38 +0200 | _________ | (~nobody@user/noodly) |
2022-06-14 20:23:47 +0200 | <geekosaur[m]> | pretty sure that gets you k-lined |
2022-06-14 20:23:47 +0200 | <CoolerX> | dsal> > break (> 'j') "abcxyz" |
2022-06-14 20:23:55 +0200 | <int-e> | dsal: as you grow older you'll realize that sometimes, people just want a silly discussion *headpat* |
2022-06-14 20:23:55 +0200 | <CoolerX> | yes |
2022-06-14 20:23:56 +0200 | gff | (~gff@75-174-85-4.boid.qwest.net) (Ping timeout: 246 seconds) |
2022-06-14 20:24:06 +0200 | <CoolerX> | dsal: what is the j > |
2022-06-14 20:24:09 +0200 | <dsal> | CoolerX: I can think of several ways to write the function, but I don't know that I'd use `if` in any of them. |
2022-06-14 20:24:15 +0200 | <CoolerX> | is j the index? |
2022-06-14 20:24:38 +0200 | <dsal> | (> 'j') means "things greater than 'j'" |
2022-06-14 20:24:42 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2022-06-14 20:24:44 +0200 | <dsal> | > (> 'j') 'z' |
2022-06-14 20:24:46 +0200 | <lambdabot> | True |
2022-06-14 20:24:47 +0200 | <CoolerX> | dsal: why is if' a bad idea? the equation for the function uses 3 cases |
2022-06-14 20:25:07 +0200 | Hafydd | (~Hafydd@user/hafydd) |
2022-06-14 20:25:12 +0200 | remedan | (~remedan@octo.cafe) |
2022-06-14 20:25:13 +0200 | <geekosaur[m]> | no, `(> 'j')` is an operator section equivalent to `\c -> c > 'j'` |
2022-06-14 20:25:14 +0200 | <int-e> | Colere: if then else has better syntax errors |
2022-06-14 20:25:26 +0200 | <CoolerX> | int-e: no no |
2022-06-14 20:25:28 +0200 | <CoolerX> | if' |
2022-06-14 20:25:28 +0200 | <int-e> | wait, 3 cases? |
2022-06-14 20:25:40 +0200 | <CoolerX> | https://i.imgur.com/Es0oRM3.png |
2022-06-14 20:25:42 +0200 | Colere | dit "euh.... quoi?" |
2022-06-14 20:25:54 +0200 | gff | (~gff@user/gff) |
2022-06-14 20:25:58 +0200 | <geekosaur[m]> | basically we can partially apply operators as well as functions. `'x'` is a `Char` literal |
2022-06-14 20:26:04 +0200 | <dsal> | I use `if` occasionally, but it's rather clunky and doesn't help the problem. Just because whatever language that's written in uses `if` doesn't mean an implementation needs to. |
2022-06-14 20:26:22 +0200 | foul_owl | (~kerry@23.82.194.92) |
2022-06-14 20:26:23 +0200 | <int-e> | @source if' |
2022-06-14 20:26:24 +0200 | <lambdabot> | Unknown command, try @list |
2022-06-14 20:26:30 +0200 | <geekosaur[m]> | that's not a language, that's a function in mathematical notation |
2022-06-14 20:26:30 +0200 | <int-e> | @src if' |
2022-06-14 20:26:30 +0200 | <lambdabot> | Source not found. You untyped fool! |
2022-06-14 20:26:46 +0200 | <CoolerX> | dsal: ok that makes sense |
2022-06-14 20:26:49 +0200 | <CoolerX> | but it's still weird |
2022-06-14 20:26:51 +0200 | pleo | (~pleo@user/pleo) (Ping timeout: 276 seconds) |
2022-06-14 20:26:54 +0200 | <dsal> | geekosaur[m]: It's a language if it's a means of communicating something. |
2022-06-14 20:27:18 +0200 | <int-e> | Hmm, interesting. I thought we had that one. Anyway, when I see `if'` I assume it's `if' True x y = x; if' False x y = y` |
2022-06-14 20:27:27 +0200 | <dsal> | CoolerX: Why is it weird? |
2022-06-14 20:27:30 +0200 | <dsal> | int-e: That's bool |
2022-06-14 20:27:33 +0200 | <dsal> | @src bool |
2022-06-14 20:27:33 +0200 | <lambdabot> | bool f _ False = f |
2022-06-14 20:27:33 +0200 | <lambdabot> | bool _ t True = t |
2022-06-14 20:27:34 +0200 | <geekosaur[m]> | we have `bool` as I pointed out earlier |
2022-06-14 20:27:46 +0200 | <CoolerX> | int-e: https://hackage.haskell.org/package/utility-ht-0.0.16/docs/Data-Bool-HT.html#v:if-39- |
2022-06-14 20:27:51 +0200 | <CoolerX> | https://wiki.haskell.org/If-then-else |
2022-06-14 20:28:12 +0200 | <int-e> | dsal: it was called if' before it was added as a standard function. It's in base these days. |
2022-06-14 20:28:21 +0200 | <CoolerX> | dsal: can you paste that implementation again? |
2022-06-14 20:28:26 +0200 | <int-e> | anyway, that was my confusion. now I don't know what if' is. |
2022-06-14 20:28:30 +0200 | <dsal> | > let insert x xs = let (l,r) = break (> x) xs in l <> [x] <> r in insert 'j' ['a'..'z'] -- CoolerX probably something like this |
2022-06-14 20:28:32 +0200 | <lambdabot> | "abcdefghijjklmnopqrstuvwxyz" |
2022-06-14 20:28:38 +0200 | <CoolerX> | right |
2022-06-14 20:28:47 +0200 | <geekosaur[m]> | I think the only thing that called it `if'` was `@pl` |
2022-06-14 20:28:52 +0200 | <CoolerX> | so you break the list |
2022-06-14 20:28:58 +0200 | <CoolerX> | and insert the element in the middle |
2022-06-14 20:29:04 +0200 | <dsal> | That's using a list, but the concept is the same. Break your data structure into stuff that sorts lower and stuff that sorts higher. Put the new thing between them. |
2022-06-14 20:29:13 +0200 | <int-e> | @pl if x then y else z |
2022-06-14 20:29:13 +0200 | <lambdabot> | if' x y z |
2022-06-14 20:30:05 +0200 | <CoolerX> | it's a bit more complicated |
2022-06-14 20:30:23 +0200 | <CoolerX> | the "stuff that sorts lower" are the indices |
2022-06-14 20:30:29 +0200 | <CoolerX> | same for "stuff that sorts higher" |
2022-06-14 20:30:35 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2022-06-14 20:30:38 +0200 | cosimone | (~user@93-44-186-171.ip98.fastwebnet.it) (Remote host closed the connection) |
2022-06-14 20:30:41 +0200 | <CoolerX> | the values at those indices are not sorted |
2022-06-14 20:31:04 +0200 | kaskal- | (~kaskal@2001:4bb8:2ae:ef0c:346b:df71:225c:5c14) |
2022-06-14 20:31:19 +0200 | cosimone | (~user@93-44-186-171.ip98.fastwebnet.it) |
2022-06-14 20:31:22 +0200 | <CoolerX> | l and r are the indices https://i.imgur.com/Es0oRM3.png |
2022-06-14 20:31:29 +0200 | <geekosaur[m]> | notably if you turn on `RebindableSyntax` ghc uses `ifThenElse`, not `if'` and not `bool` |
2022-06-14 20:31:52 +0200 | kaskal | (~kaskal@2001:4bb8:2c0:26d1:2f:9cc7:96f3:7340) (Ping timeout: 248 seconds) |
2022-06-14 20:32:08 +0200 | <dsal> | I was just giving you the rough shape. It's a monoid and you want to put a new value in it. The final pattern is `l <> n <> r` where `l` is the stuff before, `r` is the stuff after, and `n` is your new element. |
2022-06-14 20:33:13 +0200 | <CoolerX> | dsal: bool ? |
2022-06-14 20:33:27 +0200 | <CoolerX> | ok someone needs to update this then https://wiki.haskell.org/If-then-else |
2022-06-14 20:33:32 +0200 | <CoolerX> | "Unfortunately there is no such function in the Prelude. |
2022-06-14 20:33:33 +0200 | <CoolerX> | " |
2022-06-14 20:33:41 +0200 | cosmos1 | (~cosmos@user/cosmos1) |
2022-06-14 20:34:02 +0200 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.5) |
2022-06-14 20:34:03 +0200 | <dsal> | Why does that need to be updated? |
2022-06-14 20:34:11 +0200 | <CoolerX> | ghci still complains Variable not in scope: bool :: t0 -> t1 -> Bool -> t |
2022-06-14 20:34:19 +0200 | cosimone | (~user@93-44-186-171.ip98.fastwebnet.it) (Remote host closed the connection) |
2022-06-14 20:34:21 +0200 | <dsal> | Because that's not in prelude. |
2022-06-14 20:34:26 +0200 | <CoolerX> | bool 3 4 True |
2022-06-14 20:34:31 +0200 | <CoolerX> | hmm |
2022-06-14 20:34:38 +0200 | <dsal> | 3 and 4 are not boolean. |
2022-06-14 20:34:43 +0200 | <geekosaur[m]> | @index bool |
2022-06-14 20:34:43 +0200 | <lambdabot> | Data.Bool |
2022-06-14 20:34:46 +0200 | <CoolerX> | 23:57 < geekosaur[m]> we have `bool` as I pointed out earlier |
2022-06-14 20:34:50 +0200 | <CoolerX> | 23:58 < int-e> dsal: it was called if' before it was added as a standard function. It's in base these days. |
2022-06-14 20:35:00 +0200 | cosimone | (~user@93-44-186-171.ip98.fastwebnet.it) |
2022-06-14 20:35:04 +0200 | <CoolerX> | oh you mean the standard library |
2022-06-14 20:35:05 +0200 | <CoolerX> | ok |
2022-06-14 20:35:09 +0200 | <geekosaur[m]> | and I just had the bot print out where it lives |
2022-06-14 20:35:17 +0200 | <geekosaur[m]> | @where if' |
2022-06-14 20:35:18 +0200 | <lambdabot> | if' p t f = if p then t else f |
2022-06-14 20:35:20 +0200 | <geekosaur[m]> | whoops |
2022-06-14 20:35:23 +0200 | MajorBiscuit | (~MajorBisc@86-88-79-148.fixed.kpn.net) |
2022-06-14 20:35:25 +0200 | <geekosaur[m]> | @index if' |
2022-06-14 20:35:25 +0200 | <lambdabot> | bzzt |
2022-06-14 20:35:34 +0200 | <CoolerX> | import Data.Bool |
2022-06-14 20:35:44 +0200 | <geekosaur[m]> | heh, @where tells us the definition. who did that? |
2022-06-14 20:35:57 +0200 | <dsal> | I don't see how bool helps, you either. It's just `if` is a function. |
2022-06-14 20:36:06 +0200 | <dsal> | The closer translation to this would be just three guards. |
2022-06-14 20:36:19 +0200 | <CoolerX> | dsal: back to "It's a monoid and you want to put a new value in it." |
2022-06-14 20:36:20 +0200 | <CoolerX> | yes |
2022-06-14 20:36:31 +0200 | <CoolerX> | but that only happens sometimes |
2022-06-14 20:36:44 +0200 | <CoolerX> | depending on the 3 conditions |
2022-06-14 20:36:55 +0200 | <CoolerX> | case 1 you leave the input alone https://i.imgur.com/Es0oRM3.png |
2022-06-14 20:37:03 +0200 | <dsal> | :t mempty |
2022-06-14 20:37:05 +0200 | <lambdabot> | Monoid a => a |
2022-06-14 20:37:05 +0200 | <CoolerX> | case 2 you insert https://i.imgur.com/Es0oRM3.png |
2022-06-14 20:37:21 +0200 | <CoolerX> | case 3 you insert and keep some elements as the children of the node you just inserted https://i.imgur.com/Es0oRM3.png |
2022-06-14 20:37:37 +0200 | <dsal> | Those are all the same URL. |
2022-06-14 20:37:44 +0200 | <CoolerX> | yeah |
2022-06-14 20:38:18 +0200 | acidjnk | (~acidjnk@p200300d0c7068b10c08ec98d32d09092.dip0.t-ipconnect.de) |
2022-06-14 20:38:23 +0200 | <dsal> | You've pasted it at least five times now. I think it's on record. |
2022-06-14 20:38:31 +0200 | <CoolerX> | XD |
2022-06-14 20:38:34 +0200 | <dsal> | But in any case, you can also compute the new value, which might be mempty. |
2022-06-14 20:38:37 +0200 | <CoolerX> | btw is a monad a monoid? |
2022-06-14 20:38:55 +0200 | <CoolerX> | a monad is an applicative functor and a functor |
2022-06-14 20:39:13 +0200 | <geekosaur[m]> | at a higher level than is representable in Haskell, yes |
2022-06-14 20:39:23 +0200 | <geekosaur[m]> | it's a category theory monoid, not a Haskell Monoid |
2022-06-14 20:40:16 +0200 | <CoolerX> | "at a higher level than is representable in Haskell, yes" that's scary |
2022-06-14 20:40:22 +0200 | <CoolerX> | Haskell is super abstract as it is |
2022-06-14 20:40:34 +0200 | <geekosaur[m]> | math gets quite scary, yes |
2022-06-14 20:40:57 +0200 | <dsal> | Another option is to directly translate that math expression into code with three guards. |
2022-06-14 20:40:58 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-06-14 20:41:18 +0200 | <CoolerX> | dsal: yes pls |
2022-06-14 20:41:29 +0200 | <CoolerX> | I like that approach |
2022-06-14 20:42:08 +0200 | <dsal> | Alright, then do that. Still won't use `if`. :) |
2022-06-14 20:42:31 +0200 | <CoolerX> | ok |
2022-06-14 20:43:57 +0200 | Topsi | (~Topsi@dyndsl-095-033-021-077.ewe-ip-backbone.de) |
2022-06-14 20:43:57 +0200 | Vajb | (~Vajb@85-76-45-159-nat.elisa-mobile.fi) (Read error: Connection reset by peer) |
2022-06-14 20:44:09 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2022-06-14 20:44:42 +0200 | MajorBiscuit | (~MajorBisc@86-88-79-148.fixed.kpn.net) (Ping timeout: 260 seconds) |
2022-06-14 20:46:21 +0200 | ashln | (~ashln@98.38.236.123) (Quit: Lost terminal) |
2022-06-14 20:48:32 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:fd72:8b07:e388:e81e) (Remote host closed the connection) |
2022-06-14 20:49:15 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 258 seconds) |
2022-06-14 20:51:19 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-06-14 20:56:47 +0200 | byorgey_ | byorgey |
2022-06-14 20:57:45 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2022-06-14 21:02:09 +0200 | [_] | (~itchyjunk@user/itchyjunk/x-7353470) |
2022-06-14 21:02:47 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 260 seconds) |
2022-06-14 21:04:49 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:fd72:8b07:e388:e81e) |
2022-06-14 21:06:02 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-173.elisa-laajakaista.fi) |
2022-06-14 21:06:04 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-06-14 21:06:20 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Quit: ec) |
2022-06-14 21:09:08 +0200 | <monochrom> | s/scary/interesting/ |
2022-06-14 21:10:10 +0200 | machinedgod | (~machinedg@66.244.246.252) |
2022-06-14 21:10:33 +0200 | <CoolerX> | dsal: hmm |
2022-06-14 21:10:41 +0200 | <CoolerX> | this is what I ended up with https://bpa.st/IMIA |
2022-06-14 21:10:59 +0200 | <CoolerX> | it compiles but the result is not what I expected |
2022-06-14 21:11:04 +0200 | <CoolerX> | the insertion doesn't do anything |
2022-06-14 21:11:50 +0200 | <CoolerX> | tree1edited is Node (4,[]) |
2022-06-14 21:13:20 +0200 | <dsal> | That's what line 23 says it should be, isn't it? |
2022-06-14 21:13:30 +0200 | Guest27 | (~Guest27@2601:281:d47f:1590::8848) |
2022-06-14 21:13:47 +0200 | pavonia | (~user@user/siracusa) |
2022-06-14 21:14:04 +0200 | <CoolerX> | dsal: no? the list isn't empty |
2022-06-14 21:14:12 +0200 | Pickchea | (~private@user/pickchea) (Ping timeout: 250 seconds) |
2022-06-14 21:14:49 +0200 | <CoolerX> | also if line 23 matched I would get Node (42, []) |
2022-06-14 21:14:54 +0200 | Sgeo_ | (~Sgeo@user/sgeo) |
2022-06-14 21:14:55 +0200 | <CoolerX> | instead of Node (4, []) |
2022-06-14 21:15:06 +0200 | <dsal> | Oh, sorry, not paying much attention right now. |
2022-06-14 21:15:11 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-14 21:15:39 +0200 | <CoolerX> | it should match line 27 |
2022-06-14 21:15:59 +0200 | Goodbye_Vincent6 | (cyvahl@freakshells.net) |
2022-06-14 21:16:46 +0200 | <CoolerX> | oh it matches line 26 |
2022-06-14 21:16:51 +0200 | <CoolerX> | l < 1 |
2022-06-14 21:17:10 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 240 seconds) |
2022-06-14 21:17:42 +0200 | byorgey_ | (~byorgey@155.138.238.211) |
2022-06-14 21:17:42 +0200 | int-e_ | (~noone@int-e.eu) |
2022-06-14 21:17:52 +0200 | machined1od | (~machinedg@66.244.246.252) |
2022-06-14 21:18:02 +0200 | davl_ | (~davl@207.154.228.18) |
2022-06-14 21:18:07 +0200 | Putonlalla1 | (~sapekiis@it-cyan.it.jyu.fi) |
2022-06-14 21:18:07 +0200 | int-e | (~noone@int-e.eu) (Killed (NickServ (GHOST command used by int-e_))) |
2022-06-14 21:18:08 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2022-06-14 21:18:15 +0200 | int-e_ | int-e |
2022-06-14 21:18:16 +0200 | jao | (~jao@166.65.77.188.dynamic.jazztel.es) (Ping timeout: 248 seconds) |
2022-06-14 21:18:27 +0200 | raoul5 | (~raoul@95.179.203.88) |
2022-06-14 21:18:28 +0200 | jtmar | (~james@jtmar.me) |
2022-06-14 21:18:37 +0200 | <int-e> | CoolerX: right, and that line discards x |
2022-06-14 21:18:38 +0200 | hexeme | (~hexeme@user/hexeme) |
2022-06-14 21:18:43 +0200 | natto17 | (~natto@140.238.225.67) |
2022-06-14 21:19:01 +0200 | dumptruckman_ | (~dumptruck@45-79-173-88.ip.linodeusercontent.com) |
2022-06-14 21:19:03 +0200 | opqdonut_ | (opqdonut@pseudo.fixme.fi) |
2022-06-14 21:19:06 +0200 | AndrewYu | (Andrew@user/AndrewYu) |
2022-06-14 21:19:09 +0200 | stilgart_ | (~Christoph@chezlefab.net) |
2022-06-14 21:19:11 +0200 | caubert_ | (~caubert@user/caubert) |
2022-06-14 21:19:12 +0200 | nefercheprure | (tma@twin.jikos.cz) |
2022-06-14 21:19:12 +0200 | chronon_ | (~chronon@user/chronon) |
2022-06-14 21:19:13 +0200 | werneta | (~werneta@137.79.230.15) |
2022-06-14 21:19:15 +0200 | tessier_ | (~treed@98.171.210.130) |
2022-06-14 21:19:19 +0200 | Logio_ | (em@kapsi.fi) |
2022-06-14 21:19:21 +0200 | absence_ | (torgeihe@hildring.pvv.ntnu.no) |
2022-06-14 21:19:23 +0200 | tristanC_ | (~tristanC@user/tristanc) |
2022-06-14 21:19:24 +0200 | ByronJohnson | (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) |
2022-06-14 21:19:25 +0200 | <CoolerX> | int-e: hmm, I am looking at the paper and I can't find they defining ins(eps) |
2022-06-14 21:19:28 +0200 | <CoolerX> | ins(empty list) |
2022-06-14 21:19:29 +0200 | LambdaDuck | (~anka@ksit.fixme.fi) |
2022-06-14 21:19:34 +0200 | sshine_ | (~simon@exocortex.online) |
2022-06-14 21:19:37 +0200 | dashkal1 | (~dashkal@user/dashkal) |
2022-06-14 21:19:40 +0200 | <CoolerX> | find where* they define |
2022-06-14 21:19:44 +0200 | abrar_ | (~abrar@static-108-2-152-54.phlapa.fios.verizon.net) |
2022-06-14 21:19:45 +0200 | xerox__ | (~edi@user/edi) |
2022-06-14 21:19:47 +0200 | gentauro_ | (~gentauro@185.107.12.141) |
2022-06-14 21:19:49 +0200 | caubert_ | (~caubert@user/caubert) (Client Quit) |
2022-06-14 21:19:54 +0200 | ystael_ | (~ystael@user/ystael) |
2022-06-14 21:19:58 +0200 | cls_ | (~cls@chalk.lubutu.com) |
2022-06-14 21:20:01 +0200 | kosmikus_ | (~kosmikus@nullzig.kosmikus.org) |
2022-06-14 21:20:02 +0200 | monaaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-06-14 21:20:10 +0200 | <CoolerX> | We define ins i,y,l,r(ǫ) as ins y,l,r(ǫ) if i = 0 and as ǫ otherwise |
2022-06-14 21:20:11 +0200 | <int-e> | CoolerX: shouldn't you end up in case 2 though |
2022-06-14 21:20:12 +0200 | <CoolerX> | hmm |
2022-06-14 21:20:12 +0200 | Pickchea | (~private@user/pickchea) |
2022-06-14 21:20:19 +0200 | ornx | (~ornxka@user/ornxka) |
2022-06-14 21:20:22 +0200 | <CoolerX> | int-e: for empty list? |
2022-06-14 21:20:43 +0200 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
2022-06-14 21:20:46 +0200 | <int-e> | CoolerX: you have to adjust the definition for zero-based indices; the paper counts from 1 |
2022-06-14 21:21:34 +0200 | <CoolerX> | well this seems to work https://bpa.st/PXLA |
2022-06-14 21:21:39 +0200 | pleo | (~pleo@user/pleo) |
2022-06-14 21:21:44 +0200 | <CoolerX> | handles the empty list |
2022-06-14 21:22:10 +0200 | Guest27 | (~Guest27@2601:281:d47f:1590::8848) (Ping timeout: 252 seconds) |
2022-06-14 21:22:11 +0200 | <CoolerX> | probably because of this implementation of splitAt https://stackoverflow.com/questions/12540078/haskell-splitting-a-list-into-2-at-index-k |
2022-06-14 21:22:39 +0200 | caubert_ | (~caubert@user/caubert) |
2022-06-14 21:22:47 +0200 | <CoolerX> | int-e: uh right |
2022-06-14 21:22:59 +0200 | <CoolerX> | so I need to give splitAt (l-1) |
2022-06-14 21:24:05 +0200 | gnyeki_ | (~gnyeki@li578-216.members.linode.com) |
2022-06-14 21:24:05 +0200 | gnyeki_ | (~gnyeki@li578-216.members.linode.com) (Changing host) |
2022-06-14 21:24:05 +0200 | gnyeki_ | (~gnyeki@user/gnyeki) |
2022-06-14 21:24:09 +0200 | <int-e> | if you want the first list element to have index 1... yes I think so. |
2022-06-14 21:24:19 +0200 | Henkru | (henkru@kapsi.fi) |
2022-06-14 21:24:24 +0200 | machinedgod | (~machinedg@66.244.246.252) (*.net *.split) |
2022-06-14 21:24:24 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (*.net *.split) |
2022-06-14 21:24:24 +0200 | troydm1 | (~troydm@host-176-37-124-197.b025.la.net.ua) (*.net *.split) |
2022-06-14 21:24:24 +0200 | Sgeo | (~Sgeo@user/sgeo) (*.net *.split) |
2022-06-14 21:24:24 +0200 | julian | (~julian@20.83.116.49) (*.net *.split) |
2022-06-14 21:24:24 +0200 | davl | (~davl@207.154.228.18) (*.net *.split) |
2022-06-14 21:24:24 +0200 | cocreature | (~moritz@46.101.189.229) (*.net *.split) |
2022-06-14 21:24:24 +0200 | gentauro | (~gentauro@user/gentauro) (*.net *.split) |
2022-06-14 21:24:24 +0200 | caubert | (~caubert@user/caubert) (*.net *.split) |
2022-06-14 21:24:24 +0200 | sm[i]_ | (~user@li229-222.members.linode.com) (*.net *.split) |
2022-06-14 21:24:24 +0200 | sudden | (~cat@user/sudden) (*.net *.split) |
2022-06-14 21:24:24 +0200 | bairyn | (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) (*.net *.split) |
2022-06-14 21:24:24 +0200 | Henkru_ | (henkru@kapsi.fi) (*.net *.split) |
2022-06-14 21:24:24 +0200 | byorgey | (~byorgey@155.138.238.211) (*.net *.split) |
2022-06-14 21:24:24 +0200 | dumptruckman | (~dumptruck@45-79-173-88.ip.linodeusercontent.com) (*.net *.split) |
2022-06-14 21:24:24 +0200 | raoul | (~raoul@95.179.203.88) (*.net *.split) |
2022-06-14 21:24:24 +0200 | joo-_ | (~joo-_@fsf/member/joo--) (*.net *.split) |
2022-06-14 21:24:24 +0200 | Goodbye_Vincent | (cyvahl@freakshells.net) (*.net *.split) |
2022-06-14 21:24:24 +0200 | zwu | (~wu000168@host-187-23.ilchtbc.chicago.il.us.clients.pavlovmedia.net) (*.net *.split) |
2022-06-14 21:24:24 +0200 | gnyeki | (~gnyeki@user/gnyeki) (*.net *.split) |
2022-06-14 21:24:24 +0200 | Putonlalla | (~sapekiis@it-cyan.it.jyu.fi) (*.net *.split) |
2022-06-14 21:24:24 +0200 | tessier | (~treed@98.171.210.130) (*.net *.split) |
2022-06-14 21:24:24 +0200 | adium | (adium@user/adium) (*.net *.split) |
2022-06-14 21:24:24 +0200 | perrierjouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (*.net *.split) |
2022-06-14 21:24:25 +0200 | fryguybob | (~fryguybob@cpe-74-67-169-145.rochester.res.rr.com) (*.net *.split) |
2022-06-14 21:24:25 +0200 | ystael | (~ystael@user/ystael) (*.net *.split) |
2022-06-14 21:24:25 +0200 | absence | (torgeihe@hildring.pvv.ntnu.no) (*.net *.split) |
2022-06-14 21:24:25 +0200 | chronon | (~chronon@user/chronon) (*.net *.split) |
2022-06-14 21:24:25 +0200 | LambdaDu1k | (~anka@ksit.fixme.fi) (*.net *.split) |
2022-06-14 21:24:25 +0200 | peutri | (~peutri@bobo.desast.re) (*.net *.split) |
2022-06-14 21:24:25 +0200 | meejah | (~meejah@rutas.meejah.ca) (*.net *.split) |
2022-06-14 21:24:25 +0200 | sshine | (~simon@exocortex.online) (*.net *.split) |
2022-06-14 21:24:25 +0200 | abrar | (~abrar@static-108-2-152-54.phlapa.fios.verizon.net) (*.net *.split) |
2022-06-14 21:24:25 +0200 | kosmikus | (~kosmikus@nullzig.kosmikus.org) (*.net *.split) |
2022-06-14 21:24:25 +0200 | bah | (~bah@l1.tel) (*.net *.split) |
2022-06-14 21:24:25 +0200 | Andrew | (Andrew@user/AndrewYu) (*.net *.split) |
2022-06-14 21:24:25 +0200 | jamestmartin | (~james@jtmar.me) (*.net *.split) |
2022-06-14 21:24:25 +0200 | Logio | (em@kapsi.fi) (*.net *.split) |
2022-06-14 21:24:25 +0200 | tristanC | (~tristanC@user/tristanc) (*.net *.split) |
2022-06-14 21:24:25 +0200 | xerox | (~edi@user/edi) (*.net *.split) |
2022-06-14 21:24:25 +0200 | Patternmaster | (~georg@user/Patternmaster) (*.net *.split) |
2022-06-14 21:24:25 +0200 | dashkal | (~dashkal@user/dashkal) (*.net *.split) |
2022-06-14 21:24:25 +0200 | tureba | (~tureba@tureba.org) (*.net *.split) |
2022-06-14 21:24:25 +0200 | tdammers | (~tdammers@77.109.72.118.res.static.edpnet.net) (*.net *.split) |
2022-06-14 21:24:25 +0200 | natto | (~natto@140.238.225.67) (*.net *.split) |
2022-06-14 21:24:25 +0200 | ldlework | (~hexeme@user/hexeme) (*.net *.split) |
2022-06-14 21:24:25 +0200 | cls | (~cls@chalk.lubutu.com) (*.net *.split) |
2022-06-14 21:24:25 +0200 | TMA | (tma@twin.jikos.cz) (*.net *.split) |
2022-06-14 21:24:25 +0200 | ornxka | (~ornxka@user/ornxka) (*.net *.split) |
2022-06-14 21:24:25 +0200 | asm | (~alexander@user/asm) (*.net *.split) |
2022-06-14 21:24:25 +0200 | opqdonut | (opqdonut@pseudo.fixme.fi) (*.net *.split) |
2022-06-14 21:24:25 +0200 | stilgart | (~Christoph@chezlefab.net) (*.net *.split) |
2022-06-14 21:24:26 +0200 | raoul5 | raoul |
2022-06-14 21:24:26 +0200 | dumptruckman_ | dumptruckman |
2022-06-14 21:24:26 +0200 | Goodbye_Vincent6 | Goodbye_Vincent |
2022-06-14 21:24:30 +0200 | fryguybo1 | (~fryguybob@cpe-74-67-169-145.rochester.res.rr.com) |
2022-06-14 21:24:34 +0200 | bah | (~bah@l1.tel) |
2022-06-14 21:24:53 +0200 | caubert_ | caubert |
2022-06-14 21:24:59 +0200 | sudden | (~cat@user/sudden) |
2022-06-14 21:25:45 +0200 | <int-e> | CoolerX: is there a difference between case 2 and 3? AIUI, the y by itself is a shortcut for y()... |
2022-06-14 21:26:12 +0200 | sm[i]_ | (~user@li229-222.members.linode.com) |
2022-06-14 21:26:15 +0200 | Guest27 | (~Guest27@2601:281:d47f:1590::8848) |
2022-06-14 21:26:16 +0200 | Patternmaster | (~georg@li1192-118.members.linode.com) |
2022-06-14 21:26:16 +0200 | Patternmaster | (~georg@li1192-118.members.linode.com) (Changing host) |
2022-06-14 21:26:16 +0200 | Patternmaster | (~georg@user/Patternmaster) |
2022-06-14 21:26:20 +0200 | <int-e> | note that splitAt 0 bs = ([],bs) |
2022-06-14 21:26:23 +0200 | meejah | (~meejah@rutas.meejah.ca) |
2022-06-14 21:26:27 +0200 | peutri | (~peutri@bobo.desast.re) |
2022-06-14 21:26:30 +0200 | z | (~wu000168@host-187-23.ilchtbc.chicago.il.us.clients.pavlovmedia.net) |
2022-06-14 21:27:31 +0200 | adium | (adium@user/adium) |
2022-06-14 21:28:02 +0200 | <CoolerX> | int-e: yeah the code isn't very optimized |
2022-06-14 21:28:11 +0200 | <CoolerX> | like dsal showed a better impl with break |
2022-06-14 21:28:31 +0200 | <CoolerX> | seems to work https://bpa.st/3PIA |
2022-06-14 21:28:42 +0200 | <CoolerX> | [Node ("aa",[]),Node ("ab",[]),Node ("ac",[])] |
2022-06-14 21:28:43 +0200 | <CoolerX> | [Node ("a",[Node ("aa",[]),Node ("ab",[]),Node ("ac",[])])] |
2022-06-14 21:28:43 +0200 | <CoolerX> | done |
2022-06-14 21:29:02 +0200 | joo-_ | (~joo-_@172-105-65-159.ip.linodeusercontent.com) |
2022-06-14 21:29:02 +0200 | joo-_ | (~joo-_@172-105-65-159.ip.linodeusercontent.com) (Changing host) |
2022-06-14 21:29:02 +0200 | joo-_ | (~joo-_@fsf/member/joo--) |
2022-06-14 21:29:03 +0200 | <CoolerX> | I also get warnings about patterns no matched |
2022-06-14 21:29:07 +0200 | <CoolerX> | in ins |
2022-06-14 21:29:12 +0200 | <CoolerX> | not* |
2022-06-14 21:29:19 +0200 | <dsal> | The more delete, the better your code gets. |
2022-06-14 21:29:39 +0200 | <dsal> | CoolerX: You can change the last case to `otherwise` |
2022-06-14 21:29:42 +0200 | <dsal> | @src otherwise |
2022-06-14 21:29:42 +0200 | <lambdabot> | otherwise = True |
2022-06-14 21:29:45 +0200 | <CoolerX> | Patterns not matched: |
2022-06-14 21:29:46 +0200 | <CoolerX> | _ _ _ [] |
2022-06-14 21:29:46 +0200 | <CoolerX> | _ _ _ (_:_) |
2022-06-14 21:30:10 +0200 | <CoolerX> | dsal: it should not be giving those warnings even without otherwise right? |
2022-06-14 21:30:12 +0200 | Pickchea | (~private@user/pickchea) (Ping timeout: 260 seconds) |
2022-06-14 21:30:21 +0200 | <CoolerX> | probably I am missing some cases |
2022-06-14 21:30:32 +0200 | troydm1 | (~troydm@host-176-37-124-197.b025.la.net.ua) |
2022-06-14 21:30:40 +0200 | julian | (~julian@20.83.116.49) |
2022-06-14 21:31:26 +0200 | tureba | (~tureba@tureba.org) |
2022-06-14 21:31:28 +0200 | perrierjouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
2022-06-14 21:31:45 +0200 | <CoolerX> | the first case is when the indices are out of range |
2022-06-14 21:31:48 +0200 | tdammers | (~tdammers@77.109.72.118.res.static.edpnet.net) |
2022-06-14 21:31:50 +0200 | asm | (~alexander@burner.asm89.io) |
2022-06-14 21:31:52 +0200 | <CoolerX> | or invalid like l > r |
2022-06-14 21:31:53 +0200 | cocreature | (~moritz@2a03:b0c0:3:d0::c8:f001) |
2022-06-14 21:32:04 +0200 | <CoolerX> | the 2nd and 3rd case will have indices within range |
2022-06-14 21:32:19 +0200 | <CoolerX> | or the only 2 cases to consider are l == r and l < r |
2022-06-14 21:32:21 +0200 | <CoolerX> | hmm |
2022-06-14 21:32:26 +0200 | <CoolerX> | that should be exhaustive |
2022-06-14 21:32:47 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:fd72:8b07:e388:e81e) (Remote host closed the connection) |
2022-06-14 21:33:13 +0200 | <int-e> | yeah it's exhaustive |
2022-06-14 21:33:26 +0200 | <CoolerX> | why is it telling me to match the empty list? |
2022-06-14 21:33:42 +0200 | <CoolerX> | _ _ _ [] |
2022-06-14 21:33:52 +0200 | <CoolerX> | match the empty list and ignore the others |
2022-06-14 21:34:08 +0200 | <geekosaur> | you have a case missing that I see, it just reports it poorly |
2022-06-14 21:34:36 +0200 | <geekosaur> | remember your indices start at 0 instead of 1, and look at the rejection of invalid indices |
2022-06-14 21:35:14 +0200 | <int-e> | and you can replace lines 25-26 by | otherwise = inscase3 x l r forest |
2022-06-14 21:35:27 +0200 | <CoolerX> | geekosaur: but I adjusted for that by putting splitAt (l-1) |
2022-06-14 21:35:32 +0200 | <int-e> | geekosaur: I think CoolerX went the other way where the arguments are indices starting at 1 |
2022-06-14 21:35:44 +0200 | <int-e> | arguably not a good choice, but it's a choice |
2022-06-14 21:36:07 +0200 | <geekosaur> | hm. wonder if that +1 is still valid though |
2022-06-14 21:36:10 +0200 | <CoolerX> | int-e: trying to keep the interface of the functions the same |
2022-06-14 21:36:28 +0200 | <CoolerX> | as the paper |
2022-06-14 21:36:49 +0200 | <CoolerX> | or rather semantics of the function |
2022-06-14 21:37:02 +0200 | Guest3513 | (~nils@99-211-103-86.dynamic.dsl.tng.de) |
2022-06-14 21:37:11 +0200 | <CoolerX> | int-e: later they start using index 0 for something else in the paper |
2022-06-14 21:37:24 +0200 | <CoolerX> | We define insi,y,l,r(ǫ) as insy,l,r(ǫ) if i = 0 and as ǫ otherwise. |
2022-06-14 21:38:29 +0200 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2022-06-14 21:38:41 +0200 | <CoolerX> | I am using otherwise https://bpa.st/WZBQ |
2022-06-14 21:38:41 +0200 | <int-e> | geekosaur: yeah it's valid |
2022-06-14 21:38:49 +0200 | <CoolerX> | that code compiles without warnings |
2022-06-14 21:39:01 +0200 | <int-e> | "why is it telling me to match the empty list?" has me confused, what is "it"? |
2022-06-14 21:39:24 +0200 | Guest27 | (~Guest27@2601:281:d47f:1590::8848) (Quit: Client closed) |
2022-06-14 21:39:31 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2022-06-14 21:40:10 +0200 | <geekosaur> | int-e: https://ircbrowse.tomsmeding.com/browse/lchaskell?id=587010#trid587010 |
2022-06-14 21:40:12 +0200 | <int-e> | CoolerX: you don't actually need line 25 |
2022-06-14 21:41:11 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:fd72:8b07:e388:e81e) |
2022-06-14 21:41:23 +0200 | <CoolerX> | int-e: case 3 handles case 2? |
2022-06-14 21:41:56 +0200 | <int-e> | CoolerX: r - l will be 0 and the splitAt will give you an empty list and bs, just as case 2 would be using |
2022-06-14 21:42:33 +0200 | jinsun__ | (~jinsun@user/jinsun) |
2022-06-14 21:43:29 +0200 | Guest3513 | (~nils@99-211-103-86.dynamic.dsl.tng.de) (Leaving) |
2022-06-14 21:43:41 +0200 | <int-e> | geekosaur: Oh, right. The compiler wouldn't realize that those three guards were exhaustive already. |
2022-06-14 21:44:28 +0200 | jmdaemon | (~jmdaemon@user/jmdaemon) |
2022-06-14 21:44:43 +0200 | <int-e> | Complaining about _ _ _ [] specifically is not ideal. |
2022-06-14 21:46:23 +0200 | jinsun | (~jinsun@user/jinsun) (Ping timeout: 255 seconds) |
2022-06-14 21:47:22 +0200 | <CoolerX> | int-e: ok so I have this now https://bpa.st/Y2AQ |
2022-06-14 21:48:12 +0200 | <int-e> | CoolerX: lgtm, except for the choice of indices :-P |
2022-06-14 21:48:37 +0200 | <CoolerX> | they use 0 for something else |
2022-06-14 21:48:40 +0200 | <CoolerX> | later on |
2022-06-14 21:48:42 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2022-06-14 21:48:44 +0200 | <int-e> | you said |
2022-06-14 21:48:56 +0200 | Maxdaman1us | Maxdamantus |
2022-06-14 21:49:15 +0200 | <CoolerX> | plus I don't want to change the semantics, makes it harder to cross reference with the paper |
2022-06-14 21:49:28 +0200 | <CoolerX> | constantly doing -1 in my head |
2022-06-14 21:50:53 +0200 | lyle | (~lyle@104.246.145.85) (Quit: WeeChat 3.5) |
2022-06-14 22:00:48 +0200 | Topsi | (~Topsi@dyndsl-095-033-021-077.ewe-ip-backbone.de) (Read error: Connection reset by peer) |
2022-06-14 22:03:21 +0200 | _ht_ | (~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection) |
2022-06-14 22:03:27 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-06-14 22:05:20 +0200 | <CoolerX> | this almost works https://bpa.st/H6IQ |
2022-06-14 22:05:50 +0200 | <CoolerX> | everything works as expected except deletion at index 4 |
2022-06-14 22:05:56 +0200 | <CoolerX> | which does nothing |
2022-06-14 22:06:11 +0200 | <CoolerX> | it should have removed Node ("ac",[]) |
2022-06-14 22:08:00 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2022-06-14 22:08:00 +0200 | <CoolerX> | oh it's not the size of the children, derp |
2022-06-14 22:09:56 +0200 | <CoolerX> | yeah that works https://bpa.st/3QYA |
2022-06-14 22:10:17 +0200 | xff0x | (~xff0x@2405:6580:b080:900:6295:7d95:60a0:d7ff) (Ping timeout: 252 seconds) |
2022-06-14 22:11:59 +0200 | xff0x | (~xff0x@b133147.ppp.asahi-net.or.jp) |
2022-06-14 22:15:17 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Remote host closed the connection) |
2022-06-14 22:18:59 +0200 | szkl | (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
2022-06-14 22:21:15 +0200 | Midjak | (~Midjak@82.66.147.146) (Quit: Leaving) |
2022-06-14 22:23:30 +0200 | Kaipei | (~Kaiepi@156.34.47.253) |
2022-06-14 22:25:38 +0200 | <dsal> | I feel like using a tuple there doesn't make it clearer. |
2022-06-14 22:25:59 +0200 | inversed | (~inversed@176.248.27.211) (Ping timeout: 255 seconds) |
2022-06-14 22:27:06 +0200 | Kaiepi | (~Kaiepi@156.34.47.253) (Ping timeout: 276 seconds) |
2022-06-14 22:27:18 +0200 | slac80159 | (~slack1256@191.125.99.70) |
2022-06-14 22:27:20 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-06-14 22:28:12 +0200 | <dsal> | It looks like it's just adding syntax unnecessarily. |
2022-06-14 22:28:41 +0200 | tabemann | (~tabemann@2600:1700:7990:24e0:ac21:ff4e:45be:2497) (Ping timeout: 255 seconds) |
2022-06-14 22:29:13 +0200 | slack1256 | (~slack1256@186.11.82.227) (Ping timeout: 246 seconds) |
2022-06-14 22:30:10 +0200 | <CoolerX> | ah so close |
2022-06-14 22:30:11 +0200 | <CoolerX> | https://bpa.st/7A2A |
2022-06-14 22:30:23 +0200 | <CoolerX> | everything works as expected except line 114 |
2022-06-14 22:30:29 +0200 | <CoolerX> | print $ insi 6 "foo" 1 1 forest2 |
2022-06-14 22:30:37 +0200 | <CoolerX> | inserting at index 6 does nothing |
2022-06-14 22:32:05 +0200 | <CoolerX> | actually maybe that's correcT? |
2022-06-14 22:32:10 +0200 | cosmos1 | (~cosmos@user/cosmos1) (Ping timeout: 240 seconds) |
2022-06-14 22:32:39 +0200 | forell | (~forell@user/forell) (Quit: ZNC - https://znc.in) |
2022-06-14 22:34:29 +0200 | <CoolerX> | yeah I think print $ insi 2 "foo" 5 5 forest2 |
2022-06-14 22:34:34 +0200 | <CoolerX> | "after inserting at index 2 at the end of the list of children" |
2022-06-14 22:34:35 +0200 | <CoolerX> | [Node ("a",[Node ("aa",[]),Node ("ab",[]),Node ("ac",[]),Node ("ad",[]),Node ("foo",[])])] |
2022-06-14 22:34:40 +0200 | <CoolerX> | that works |
2022-06-14 22:34:58 +0200 | forell | (~forell@user/forell) |
2022-06-14 22:35:52 +0200 | <CoolerX> | and this works print $ insi 1 "foo" 2 2 forest2 |
2022-06-14 22:35:57 +0200 | <CoolerX> | "after inserting at index 1 at the end of the forest" |
2022-06-14 22:35:58 +0200 | <CoolerX> | [Node ("a",[Node ("aa",[]),Node ("ab",[]),Node ("ac",[]),Node ("ad",[])]),Node ("foo",[])] |
2022-06-14 22:36:03 +0200 | <CoolerX> | alright |
2022-06-14 22:36:16 +0200 | <CoolerX> | dsal: a tuple wherE? |
2022-06-14 22:36:37 +0200 | <CoolerX> | it's a tuple cause I am using newtype |
2022-06-14 22:36:40 +0200 | <CoolerX> | newtype Tree a = Node (a, [Tree a]) deriving (Eq, Show) |
2022-06-14 22:38:11 +0200 | <dsal> | Yeah, but it's not clear why you'd use a tuple there. It seems to just make things a bit worse. |
2022-06-14 22:38:51 +0200 | <geekosaur> | makes things harder to read, anyway |
2022-06-14 22:40:17 +0200 | MajorBiscuit | (~MajorBisc@86-88-79-148.fixed.kpn.net) |
2022-06-14 22:40:23 +0200 | jgeerds | (~jgeerds@55d45f48.access.ecotel.net) |
2022-06-14 22:40:30 +0200 | <dsal> | It's also slightly odd that the `Tree` constructor is called `Node` instead of `Tree`. |
2022-06-14 22:40:37 +0200 | dsal | isn't commenting on the important parts |
2022-06-14 22:41:05 +0200 | biberu | (~biberu@user/biberu) |
2022-06-14 22:42:57 +0200 | tabemann | (~travisb@2600:1700:7990:24e0:8ef9:6ccb:409e:cd42) |
2022-06-14 22:43:55 +0200 | nate4 | (~nate@98.45.169.16) |
2022-06-14 22:45:20 +0200 | <CoolerX> | dsal: uh right |
2022-06-14 22:45:29 +0200 | ec | (~ec@gateway/tor-sasl/ec) |
2022-06-14 22:45:33 +0200 | <CoolerX> | but then the term gets overloaded |
2022-06-14 22:45:44 +0200 | <CoolerX> | Type here is the type constructor |
2022-06-14 22:45:56 +0200 | <CoolerX> | Tree here is the type constructor and Node is the data/value constructor |
2022-06-14 22:46:03 +0200 | <dsal> | I keep thinking it's strange that your data type is only ever used in a list. Perhaps the listiness should be part of the data type. If there's never a situation where a tree isn't in a list, then it's a little hard to reason about what the actual data structure is. |
2022-06-14 22:46:46 +0200 | <dsal> | Yeah, it's common for a type and constructor to have the same value. Otherwise, it's really strange. Is it a Tree or a Node? |
2022-06-14 22:47:08 +0200 | <dsal> | If you're always going to call it a Node when you use it, then maybe it's a Node and not a tree. Perhaps a Tree is a list of Nodes? |
2022-06-14 22:47:37 +0200 | <dsal> | then `data Node = Node a Tree` and `data Tree = Tree [Node]` |
2022-06-14 22:49:55 +0200 | MajorBiscuit | (~MajorBisc@86-88-79-148.fixed.kpn.net) (Ping timeout: 256 seconds) |
2022-06-14 22:50:13 +0200 | tabemann | (~travisb@2600:1700:7990:24e0:8ef9:6ccb:409e:cd42) (Remote host closed the connection) |
2022-06-14 22:50:38 +0200 | <CoolerX> | 02:08 < dsal> Yeah, but it's not clear why you'd use a tuple there. It seems to just make things a bit worse. |
2022-06-14 22:50:46 +0200 | <CoolerX> | what is the alternative? |
2022-06-14 22:51:00 +0200 | <CoolerX> | tuple seems like the obvious choice |
2022-06-14 22:51:14 +0200 | tabemann | (~travisb@2600:1700:7990:24e0:8ef9:6ccb:409e:cd42) |
2022-06-14 22:52:16 +0200 | <geekosaur> | dsal just told you |
2022-06-14 22:52:18 +0200 | <CoolerX> | "Is it a Tree or a Node?" ok |
2022-06-14 22:52:21 +0200 | pretty_d1 | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2022-06-14 22:52:26 +0200 | <geekosaur> | it's not clear to me why you want a newtype, either |
2022-06-14 22:53:01 +0200 | <CoolerX> | geekosaur: isn't it the simplest? |
2022-06-14 22:53:22 +0200 | <geekosaur> | no |
2022-06-14 22:53:29 +0200 | <CoolerX> | keep the same memory structure as a tuple |
2022-06-14 22:53:31 +0200 | <geekosaur> | it's an optimization |
2022-06-14 22:53:39 +0200 | <CoolerX> | not really |
2022-06-14 22:53:51 +0200 | <CoolerX> | I just don't see the need to add unnecessary wrapping |
2022-06-14 22:53:51 +0200 | <geekosaur> | and `Node a Tree` jhas the same memory representation as a tuple |
2022-06-14 22:54:17 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 252 seconds) |
2022-06-14 22:54:20 +0200 | <CoolerX> | I would avoid new type entirely if it wasn't such a hassle to use tuples directly in this instance |
2022-06-14 22:55:14 +0200 | nschoe | (~quassel@2a01:e0a:8e:a190:88e9:a0ec:2edc:295f) (Ping timeout: 255 seconds) |
2022-06-14 22:57:04 +0200 | dsp | (~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net) |
2022-06-14 22:59:16 +0200 | <dsal> | "I'll just use a tuple" is often the wrong choice. Making a type is a good idea. You just made it in a weird way that requires you to put lots of syntax everywhere. |
2022-06-14 22:59:38 +0200 | <tomsmeding> | relish the power of haskell in defining new data types |
2022-06-14 22:59:49 +0200 | <CoolerX> | dsal: I changed Node to Tree https://bpa.st/SSOA |
2022-06-14 22:59:54 +0200 | <tomsmeding> | making a new data type is easier in haskell than in almost any other statically-typed language |
2022-06-14 23:00:08 +0200 | <tomsmeding> | and they're great to work with |
2022-06-14 23:00:08 +0200 | <dsal> | Similarly, `[Tree]` everywhere kind of smells like you actually want to call that something. |
2022-06-14 23:00:46 +0200 | <dsal> | The `Forest` type alias makes things easier to read, but it doesn't do a whole lot. |
2022-06-14 23:00:54 +0200 | <CoolerX> | dsal: well by keeping it a tuple, everything that can operate on tuples can also operate on this |
2022-06-14 23:01:03 +0200 | <dsal> | I use type aliases for documentation sometimes, but I often regret doing so. |
2022-06-14 23:01:13 +0200 | <dsal> | CoolerX: Which operations do you think those might be? |
2022-06-14 23:01:14 +0200 | tabemann | (~travisb@2600:1700:7990:24e0:8ef9:6ccb:409e:cd42) (Ping timeout: 250 seconds) |
2022-06-14 23:01:26 +0200 | <CoolerX> | dsal: all of them |
2022-06-14 23:01:43 +0200 | <dsal> | Can you show an example? |
2022-06-14 23:01:46 +0200 | <CoolerX> | like why create a new siloed type that I have to define everything for? |
2022-06-14 23:02:39 +0200 | <CoolerX> | dsal: I am just not clear on why you think it is not a tuple |
2022-06-14 23:02:50 +0200 | <dsal> | I'm not clear on why you think it *is* a tuple. |
2022-06-14 23:03:04 +0200 | <dsal> | Your type is built around a tuple, but all that's doing is just adding unnecessary syntax everywhere. |
2022-06-14 23:03:13 +0200 | <dsal> | It doesn't make your type, for example, a functor. |
2022-06-14 23:03:18 +0200 | biberu\ | (~biberu@user/biberu) |
2022-06-14 23:03:19 +0200 | <dsal> | And if it *were* a functor, it'd be wrong. |
2022-06-14 23:03:20 +0200 | biberu | (~biberu@user/biberu) (Ping timeout: 248 seconds) |
2022-06-14 23:03:27 +0200 | jao | (~jao@166.65.77.188.dynamic.jazztel.es) |
2022-06-14 23:03:28 +0200 | <CoolerX> | a tree is an ordered pair of the node's value and the list of child trees/sub tress |
2022-06-14 23:03:36 +0200 | <CoolerX> | trees* |
2022-06-14 23:03:40 +0200 | <CoolerX> | that's a tuple |
2022-06-14 23:03:44 +0200 | <CoolerX> | 2-tuple |
2022-06-14 23:04:22 +0200 | biberu\ | biberu |
2022-06-14 23:04:27 +0200 | <geekosaur> | only if you like being untyped. one thing you lose by using a tuple is validation of the types of its elements |
2022-06-14 23:04:41 +0200 | <geekosaur> | which is why we like defining custom types for things |
2022-06-14 23:04:44 +0200 | <dsal> | OK, but if you're going to go that abstract in the concept, you can't really use that as an argument for going absolutely concrete in the implementation. |
2022-06-14 23:04:51 +0200 | <geekosaur> | not doing so leads to hard-to-diagnose errors |
2022-06-14 23:04:53 +0200 | <CoolerX> | geekosaur: "validation of the types of its elements" what do you mean? |
2022-06-14 23:05:25 +0200 | <CoolerX> | dsal: "going absolutely concrete in the implementation." how is it concrete? Tree a is an abstract type |
2022-06-14 23:05:28 +0200 | biberu | (~biberu@user/biberu) (Read error: Connection reset by peer) |
2022-06-14 23:05:28 +0200 | <dsal> | CoolerX: Your type isn't a Haskell tuple, it's just implemented using one. But by doing that, you gain nothing, but add a bunch of syntax everywhere. |
2022-06-14 23:05:32 +0200 | <CoolerX> | so is Forest a |
2022-06-14 23:05:36 +0200 | Pickchea | (~private@user/pickchea) |
2022-06-14 23:05:42 +0200 | MajorBiscuit | (~MajorBisc@86-88-79-148.fixed.kpn.net) |
2022-06-14 23:06:01 +0200 | <CoolerX> | dsal: is it just the verbosity that's a problem? |
2022-06-14 23:06:10 +0200 | dsp | (~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net) (Ping timeout: 240 seconds) |
2022-06-14 23:06:25 +0200 | <CoolerX> | because I think that can be fixed without making it something else |
2022-06-14 23:06:43 +0200 | <geekosaur> | why are you so afraid of making it something else? |
2022-06-14 23:07:00 +0200 | <dsal> | Removing code that doesn't help solve your problem will only make it clearer. |
2022-06-14 23:07:25 +0200 | <dsal> | Right now, you have to construct a tuple every time you want to construct a tree. This doesn't provide you any benefits. |
2022-06-14 23:07:26 +0200 | <geekosaur> | you said something about not having to define things fo ryour type, but tuples don't define anything for you either |
2022-06-14 23:07:54 +0200 | <geekosaur> | they define fst and snd, which you don't even use |
2022-06-14 23:07:56 +0200 | <dsal> | You seem to think it will help you by making it so that "everything that can operate on tuples can also operate on this" -- but this is clearly false and if it were true, it'd be very difficult to reason about. |
2022-06-14 23:09:11 +0200 | <dsal> | Your type should be a functor, but the functor implementation your type needs and the functor implementation of a tuple are fundamentally incompatible. |
2022-06-14 23:09:35 +0200 | <hpc> | shapr: if only i was smart enough to work on hpc |
2022-06-14 23:09:40 +0200 | <hpc> | i am barely smart enough to /be/ hpc :D |
2022-06-14 23:10:11 +0200 | <dsal> | hpc: together, you and shapr will create the best you anyone could imagine |
2022-06-14 23:10:57 +0200 | <CoolerX> | dsal: so you want to use data ? |
2022-06-14 23:11:04 +0200 | <CoolerX> | instead of newtype |
2022-06-14 23:11:12 +0200 | <dsal> | Yes. I'm not sure why `newtype` is interesting. |
2022-06-14 23:11:17 +0200 | shapr | hugs hpc |
2022-06-14 23:11:27 +0200 | MajorBiscuit | (~MajorBisc@86-88-79-148.fixed.kpn.net) (Ping timeout: 256 seconds) |
2022-06-14 23:11:55 +0200 | <CoolerX> | geekosaur: "they define fst and snd, which you don't even use" it's not about the prelude or standard library |
2022-06-14 23:12:08 +0200 | <CoolerX> | it's just keeping it a tuple means anyone who can accept a 2-tuple can operate on it |
2022-06-14 23:12:14 +0200 | <dsal> | That's not remotely true. |
2022-06-14 23:12:21 +0200 | <dsal> | I think you don't understand what newtype does. |
2022-06-14 23:12:43 +0200 | <CoolerX> | actually that might be type alias that I am thinking og |
2022-06-14 23:12:44 +0200 | <dsal> | If that happened, it would be very, very difficult to write correct code. |
2022-06-14 23:12:45 +0200 | <CoolerX> | of* |
2022-06-14 23:12:46 +0200 | <shapr> | What are the largest open source Haskell codebases that have property tests? |
2022-06-14 23:13:01 +0200 | <dsal> | Yes, `type` does that, which is why I'd generally not recommend using it. |
2022-06-14 23:13:05 +0200 | <shapr> | I need to test this coverage+testing library I'm writing |
2022-06-14 23:13:29 +0200 | <CoolerX> | maybe I want type Tree a = (a, [Tree a]) |
2022-06-14 23:13:38 +0200 | <dsal> | You definitely do not want that. |
2022-06-14 23:13:41 +0200 | <CoolerX> | XD |
2022-06-14 23:13:46 +0200 | <geekosaur> | oh lord |
2022-06-14 23:13:54 +0200 | <geekosaur> | let's write as untyped as we possibly can |
2022-06-14 23:13:57 +0200 | <CoolerX> | because now it really is a tuple |
2022-06-14 23:14:03 +0200 | <geekosaur> | #racket is over there somewhere |
2022-06-14 23:14:21 +0200 | <dsal> | About four hours into that, you'll be so confused that you will spend the next six hours trying to figure out what you did and why you did this to yourself. |
2022-06-14 23:14:24 +0200 | <dsal> | Do the easy thing first. |
2022-06-14 23:14:27 +0200 | biberu | (~biberu@user/biberu) |
2022-06-14 23:14:34 +0200 | <CoolerX> | dsal: another thing is these structures could get really large |
2022-06-14 23:14:46 +0200 | <CoolerX> | so all the extra wrapping from data can hurt |
2022-06-14 23:14:54 +0200 | <dsal> | How so? |
2022-06-14 23:15:06 +0200 | <CoolerX> | I don't think there's any advantage to keeping all the wrapping around at runtime |
2022-06-14 23:15:12 +0200 | <CoolerX> | let it melt away |
2022-06-14 23:15:15 +0200 | <CoolerX> | with newtype |
2022-06-14 23:15:15 +0200 | <geekosaur> | it will hurt exactly as much as all the extra wrapping from tuples does now |
2022-06-14 23:15:23 +0200 | <dsal> | You're optimizing things based on something you don't seem to understand at all. |
2022-06-14 23:15:31 +0200 | <CoolerX> | geekosaur: how is it extra? the tuples is the bare minimum wrapping I need |
2022-06-14 23:15:49 +0200 | <dsal> | How do they even do what you need? |
2022-06-14 23:15:50 +0200 | <hpc> | newtype is only different from data at runtime |
2022-06-14 23:16:00 +0200 | julian | (~julian@20.83.116.49) (Killed (NickServ (GHOST command used by tos9__!~tos9@python/site-packages/Julian))) |
2022-06-14 23:16:03 +0200 | <CoolerX> | geekosaur: how do you go less than a tuple? |
2022-06-14 23:16:13 +0200 | <dsal> | Not using a tuple is less than a tuple. |
2022-06-14 23:16:13 +0200 | <hpc> | it makes your data definition 3 characters longer, and does nothing to the rest of your code to make it shorter or longer at all |
2022-06-14 23:16:27 +0200 | <CoolerX> | dsal: ok and what would that look like? |
2022-06-14 23:16:35 +0200 | <geekosaur> | you don't. you go equal to it but more readable and mroe maintainable: data Node a = Node a [Tree a] |
2022-06-14 23:16:39 +0200 | <dsal> | Exactly as I pasted above a while ago. |
2022-06-14 23:16:46 +0200 | <CoolerX> | you mean data ? |
2022-06-14 23:17:04 +0200 | <dsal> | Why are you so obsessed with optimizing something you don't understand well before you can even measure whether your optimizations are helping? |
2022-06-14 23:17:20 +0200 | <CoolerX> | I am not optimizing, I don't see the need to have extra wrapping |
2022-06-14 23:17:34 +0200 | <CoolerX> | I could also add Foo Bar Baz Tree a |
2022-06-14 23:17:38 +0200 | <CoolerX> | but that doesn't help |
2022-06-14 23:17:47 +0200 | <dsal> | You're literally typing extra wrapping in every bit of your code. Why is it OK everywhere in the code? |
2022-06-14 23:18:03 +0200 | <CoolerX> | dsal: it's paranthesis |
2022-06-14 23:18:11 +0200 | <CoolerX> | which is necessary to group things anyway |
2022-06-14 23:18:36 +0200 | <dsal> | No, it's a data type you're wrapping things in before handing them to your constructor. |
2022-06-14 23:18:39 +0200 | <hpc> | it's parens in the same way a list is just brackets |
2022-06-14 23:18:58 +0200 | <CoolerX> | dsal: ok? |
2022-06-14 23:19:13 +0200 | <CoolerX> | but I need to group things to have it parse correctly |
2022-06-14 23:19:30 +0200 | <dsal> | Your justification for wrapping everything into a data type before handing them to your constructor so far is that you think having a data type is overhead. |
2022-06-14 23:19:36 +0200 | <CoolerX> | I will try the data thing |
2022-06-14 23:20:34 +0200 | nicbk | (~nicbk@user/nicbk) (Ping timeout: 240 seconds) |
2022-06-14 23:22:16 +0200 | <shapr> | Is there a list of the largest open source Haskell codebases? |
2022-06-14 23:22:48 +0200 | <hpc> | shapr: scroll through hackage and click on the names you recognize? |
2022-06-14 23:22:51 +0200 | <shapr> | could work |
2022-06-14 23:22:59 +0200 | <dsal> | shapr: It's hard to say. hackage has some. I've downloaded it all for various reasons. |
2022-06-14 23:23:15 +0200 | <CoolerX> | ok https://bpa.st/GFTQ |
2022-06-14 23:23:21 +0200 | <CoolerX> | that works |
2022-06-14 23:23:34 +0200 | <shapr> | Oh, I could look for reverse deps on QuickCheck, right? |
2022-06-14 23:23:47 +0200 | <hpc> | oh yeah, i always forget that's a thing |
2022-06-14 23:24:20 +0200 | <CoolerX> | shapr: probably use the Github API? |
2022-06-14 23:24:38 +0200 | stackdroid18 | (14094@user/stackdroid) |
2022-06-14 23:24:49 +0200 | <shapr> | what about https://packdeps.haskellers.com/reverse/QuickCheck ? |
2022-06-14 23:25:18 +0200 | <shapr> | now I want a datalog-style interface to hackage |
2022-06-14 23:25:37 +0200 | <CoolerX> | dsal: so wdythink? |
2022-06-14 23:26:07 +0200 | <dsal> | Looks like an improvement! `applyScript` looks like a fold. |
2022-06-14 23:26:26 +0200 | <CoolerX> | yeah but I hate that |
2022-06-14 23:26:35 +0200 | <CoolerX> | applyScript fs forest = foldl (\ forest f -> f forest) forest fs |
2022-06-14 23:26:40 +0200 | <CoolerX> | looks unreadable |
2022-06-14 23:26:52 +0200 | <dsal> | One of the other reasons to define your own types here is that you can generalize to stuff like `Functor` and `Foldable` and stuff more quickly and then "everything that can operate on [foldables and stuff] can also operate on this" |
2022-06-14 23:28:13 +0200 | <dsal> | :t foldr ($) |
2022-06-14 23:28:14 +0200 | <lambdabot> | Foldable t => a -> t (a -> a) -> a |
2022-06-14 23:28:46 +0200 | <CoolerX> | no, according to the paper you compose the functions from left to right |
2022-06-14 23:28:57 +0200 | <dsal> | :t foldl (flip ($)) |
2022-06-14 23:28:59 +0200 | <lambdabot> | Foldable t => a -> t (a -> a) -> a |
2022-06-14 23:29:06 +0200 | <CoolerX> | yeah |
2022-06-14 23:29:13 +0200 | <dsal> | :t foldl (&) |
2022-06-14 23:29:14 +0200 | <lambdabot> | Foldable t => a -> t (a -> a) -> a |
2022-06-14 23:29:38 +0200 | <CoolerX> | " you can generalize to stuff like `Functor` and `Foldable` and stuff more quickly " how? |
2022-06-14 23:30:02 +0200 | <CoolerX> | I mean for tuples if you have those Functor and Foldable instances then you don't need to do anything |
2022-06-14 23:30:04 +0200 | <dsal> | Well, if your Forest is Foldable, then `size = length` |
2022-06-14 23:30:10 +0200 | <CoolerX> | if you use a type alias |
2022-06-14 23:30:36 +0200 | <dsal> | If you use a type alias, you'll have both a foldable and a functor and they'll confuse you to the point where you'll give up on Haskell and start writing agda or something. |
2022-06-14 23:31:07 +0200 | <CoolerX> | dsal: the forest is foldable in multiple ways |
2022-06-14 23:31:44 +0200 | acidjnk | (~acidjnk@p200300d0c7068b10c08ec98d32d09092.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
2022-06-14 23:31:45 +0200 | <CoolerX> | hmm more rabbit holes https://wiki.portal.chalmers.se/agda/pmwiki.php |
2022-06-14 23:32:22 +0200 | <dsal> | Sure. You can make newtypes for doing such things. But in general, the sooner you get to common code, the less you have to implement. It's the argument you were making for tuple, except it actually works. :) |
2022-06-14 23:32:33 +0200 | <CoolerX> | ok |
2022-06-14 23:33:17 +0200 | <dsal> | shapr: also hedgehog. |
2022-06-14 23:33:25 +0200 | <dsal> | I don't currently hate it. |
2022-06-14 23:33:35 +0200 | <shapr> | dsal: I have some disagreements |
2022-06-14 23:33:44 +0200 | <shapr> | at the moment I'm happiest with leancheck |
2022-06-14 23:35:33 +0200 | jmdaemon | (~jmdaemon@user/jmdaemon) (Quit: ZNC 1.8.2 - https://znc.in) |
2022-06-14 23:36:06 +0200 | <CoolerX> | "In Hindley-Milner style languages, such as Haskell and ML, there is a clear |
2022-06-14 23:36:06 +0200 | <CoolerX> | separation between types and values. In a dependently typed language the |
2022-06-14 23:36:06 +0200 | <CoolerX> | line is more blurry – types can contain (depend on) arbitrary values and |
2022-06-14 23:36:07 +0200 | <CoolerX> | appear as arguments and results of ordinary functions." |
2022-06-14 23:36:09 +0200 | <CoolerX> | hmmm |
2022-06-14 23:36:11 +0200 | <CoolerX> | really? |
2022-06-14 23:36:24 +0200 | <CoolerX> | haskell has type constructors |
2022-06-14 23:36:31 +0200 | Haskelytic | (~Haskelyti@118.179.211.17) |
2022-06-14 23:36:40 +0200 | <CoolerX> | which are functions that return types |
2022-06-14 23:36:56 +0200 | <CoolerX> | and can take types are arguments |
2022-06-14 23:36:59 +0200 | <Haskelytic> | Can we have functions that return kinds :) |
2022-06-14 23:37:15 +0200 | <Cupcakus> | Hi all, beginner q I need to traverse a list and generate a accumulated value by running a function against each element of that list... which sounds like a fold... but the function in question needs to look ahead to the next value in the list (is there is one) to determine how it modifies the accumulator. I can't figure out how to do this without making my own fold |
2022-06-14 23:37:18 +0200 | monaaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 276 seconds) |
2022-06-14 23:37:48 +0200 | <CoolerX> | Haskelytic: maybe? https://livebook.manning.com/book/haskell-in-depth/chapter-12/v-12/ |
2022-06-14 23:38:08 +0200 | <CoolerX> | https://wiki.haskell.org/Template_Haskell |
2022-06-14 23:38:46 +0200 | monaaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-06-14 23:38:55 +0200 | <Haskelytic> | XD I feel like every time I have a question about haskell that sounds crazy, someone comes along and shows me that it's already been done |
2022-06-14 23:39:04 +0200 | travisb | (~travisb@2600:1700:7990:24e0:8ef9:6ccb:409e:cd42) |
2022-06-14 23:39:21 +0200 | <dsal> | Cupcakus: zip is the short answer. |
2022-06-14 23:39:45 +0200 | <monochrom> | Haskell type constructors still don't take value parameters. |
2022-06-14 23:40:13 +0200 | <CoolerX> | zip xs (tail xs) |
2022-06-14 23:40:13 +0200 | <Haskelytic> | What a shame...even c++ can do this :P |
2022-06-14 23:40:38 +0200 | <CoolerX> | monochrom: oh you mean mix both types and values in the same function? |
2022-06-14 23:40:55 +0200 | <CoolerX> | sounds like hell |
2022-06-14 23:41:08 +0200 | <monochrom> | I don't think that's what I mean. |
2022-06-14 23:41:26 +0200 | <monochrom> | I like to think that I write what I mean, no more no less, any "rephrasing" is distortion. |
2022-06-14 23:41:27 +0200 | <dsal> | CoolerX: I'm not sure what you mean, but I've used DataKinds in useful ways. |
2022-06-14 23:41:31 +0200 | <CoolerX> | like List sometype somenum |
2022-06-14 23:41:42 +0200 | <CoolerX> | List Int 4 |
2022-06-14 23:41:46 +0200 | <CoolerX> | a list of 4 integers |
2022-06-14 23:41:56 +0200 | <dsal> | You wouldn't use List, but yeah, you can do that with DataKinds. |
2022-06-14 23:42:11 +0200 | <CoolerX> | ok |
2022-06-14 23:42:13 +0200 | <monochrom> | Lean still does not let you say "List int 4", just on the ground that "List" takes one parameter only, not two. |
2022-06-14 23:42:53 +0200 | <dsal> | In fact, the parser I'm working on has fixed-width records such that you have a value of type `T 3` that you can append to a value of type `T 5` and end up with a value of type `T 8`. The parser requires a type `T 94` so the parser won't compile unless you specify records whose sizes add up to 94. |
2022-06-14 23:43:26 +0200 | <monochrom> | DataKind is still not letting a type constructor take a value parameter. It just seems that way by syntax punning. |
2022-06-14 23:43:45 +0200 | monaaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 256 seconds) |
2022-06-14 23:43:46 +0200 | <CoolerX> | dsal: actually Typescript supports this already |
2022-06-14 23:43:54 +0200 | <CoolerX> | I found that out by accident |
2022-06-14 23:44:09 +0200 | <dsal> | I've never had any accidents with TypeScript I'm willing to talk about. |
2022-06-14 23:44:11 +0200 | <CoolerX> | it's supports a LOT of crazy stuff |
2022-06-14 23:44:22 +0200 | alp | (~alp@user/alp) (Remote host closed the connection) |
2022-06-14 23:44:33 +0200 | <dsal> | I've heard of someone liking TypeScript, but every experience I've had with it has been terribly disappointing. |
2022-06-14 23:44:46 +0200 | alp | (~alp@user/alp) |
2022-06-14 23:45:07 +0200 | <Haskelytic> | How so? dsal |
2022-06-14 23:45:20 +0200 | <Haskelytic> | It definitely beats using plain JS |
2022-06-14 23:45:35 +0200 | <dsal> | Which probably beats using plain PHP. That's not really an endorsement for me. |
2022-06-14 23:45:58 +0200 | <Haskelytic> | I haven't used PHP since forever so I wouldn't know :) |
2022-06-14 23:46:02 +0200 | <dsal> | When I have to do anything that's going to run in JS, I tend to either use Elm or PureScript. |
2022-06-14 23:46:12 +0200 | <CoolerX> | dsal: for example it can take a string value like "/foo/:bar/baz" and parse it to say that bar is a variable and add that to the type definition of the request.params that is passed to your callback |
2022-06-14 23:46:24 +0200 | <CoolerX> | all with type definitions |
2022-06-14 23:46:27 +0200 | <monochrom> | I think I heard that Lean can also compile to JS. Maybe I might use that. |
2022-06-14 23:47:15 +0200 | monaaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-06-14 23:47:15 +0200 | monaaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Read error: Connection reset by peer) |
2022-06-14 23:47:31 +0200 | <dsal> | I had some Google AppScript stuff working on a spreadsheet that was painful and buggy. Rewrote it in PureScript and now it's boring and I don't ever get to work on it anymore. |
2022-06-14 23:47:35 +0200 | <dsal> | CoolerX: You might enjoy https://www.youtube.com/watch?v=wNa3MMbhwS4 |
2022-06-14 23:48:08 +0200 | <CoolerX> | thx |
2022-06-14 23:48:17 +0200 | nate4 | (~nate@98.45.169.16) (Ping timeout: 256 seconds) |
2022-06-14 23:49:12 +0200 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2022-06-14 23:49:30 +0200 | <dsal> | (tl;dw: Compile-type type checking of regular expression capture group usage) |
2022-06-14 23:50:12 +0200 | o-90 | (~o-90@gateway/tor-sasl/o-90) |
2022-06-14 23:50:22 +0200 | <CoolerX> | ah this https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/express-serve-static-core/ind… |
2022-06-14 23:50:46 +0200 | <CoolerX> | https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/express-serve-static-core/ind… |
2022-06-14 23:50:48 +0200 | orcus | (~orcus@user/brprice) (Quit: ZNC 1.8.2 - https://znc.in) |
2022-06-14 23:50:48 +0200 | dispater | (~dispater@user/brprice) (Quit: ZNC 1.8.2 - https://znc.in) |
2022-06-14 23:50:58 +0200 | <CoolerX> | it parses the string |
2022-06-14 23:51:32 +0200 | <CoolerX> | the crazy thing is that the string isn't even inside the generic angle brackets <> |
2022-06-14 23:51:50 +0200 | <CoolerX> | app.put('/api/v1/users/:userId', async (req, res) => { |
2022-06-14 23:51:59 +0200 | <CoolerX> | it matches the string give to the function as an argument |
2022-06-14 23:52:02 +0200 | michalz | (~michalz@185.246.204.107) (Remote host closed the connection) |
2022-06-14 23:52:03 +0200 | <dsal> | I have a handicap that prevents me from taking anything JavaScript seriously and it extends to TypeScript. |
2022-06-14 23:52:10 +0200 | <CoolerX> | XD |
2022-06-14 23:52:22 +0200 | dispater | (~dispater@user/brprice) |
2022-06-14 23:52:43 +0200 | <Haskelytic> | dsal: your disdain for JS is humorous :) |
2022-06-14 23:52:48 +0200 | dispater | (~dispater@user/brprice) (Client Quit) |
2022-06-14 23:52:53 +0200 | <dsal> | I try to be honest about it. |
2022-06-14 23:52:57 +0200 | <Haskelytic> | I can empathize though.... |
2022-06-14 23:53:04 +0200 | <dsal> | I know some people like it, but people are wrong about lots of things. |
2022-06-14 23:53:08 +0200 | <Haskelytic> | The only thing I hate more than writing JS is reading other people's JS |
2022-06-14 23:53:19 +0200 | <dsal> | I don't even like reading my own JS. |
2022-06-14 23:53:25 +0200 | <maralorn> | Entitled things people say in the Haskell channel. ^^ |
2022-06-14 23:53:31 +0200 | <CoolerX> | I think Typescript reminds me a lot of the crazy meta-programming in C++ |
2022-06-14 23:53:35 +0200 | monaaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-06-14 23:53:38 +0200 | monaaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Read error: Connection reset by peer) |
2022-06-14 23:53:46 +0200 | <CoolerX> | looks turing complete |
2022-06-14 23:53:57 +0200 | <CoolerX> | or close to it |
2022-06-14 23:54:09 +0200 | <Haskelytic> | When are we getting a one-language-to-rule-them-all scenario |
2022-06-14 23:54:20 +0200 | dispater | (~dispater@user/brprice) |
2022-06-14 23:54:27 +0200 | <dsal> | I'm not sure "one" is the correct number of languages. |
2022-06-14 23:54:27 +0200 | <CoolerX> | Haskelytic: never |
2022-06-14 23:54:30 +0200 | <Haskelytic> | types/values collapse and we return to simplicity :) |
2022-06-14 23:54:33 +0200 | <monochrom> | When humanity ends. |
2022-06-14 23:54:44 +0200 | <CoolerX> | dsal: yeah we need at least 2 for it to be binary |
2022-06-14 23:54:46 +0200 | <Haskelytic> | monochrom: misanthrope over here eh |
2022-06-14 23:54:51 +0200 | orcus | (~orcus@user/brprice) |
2022-06-14 23:55:02 +0200 | <CoolerX> | can't transmit any information with just 1 |
2022-06-14 23:55:07 +0200 | <geekosaur> | people try that occasionally and end up with https://xkcd.com/927/ |
2022-06-14 23:55:29 +0200 | <dsal> | I mean, C++ can't even become one language. |
2022-06-14 23:55:31 +0200 | <Haskelytic> | geekosaur: XD |
2022-06-14 23:55:36 +0200 | <Haskelytic> | touche |
2022-06-14 23:55:38 +0200 | monaaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-06-14 23:55:48 +0200 | <Haskelytic> | dsal: XD |
2022-06-14 23:55:52 +0200 | <dsal> | Haskell's a lot of languages, but kind of explicit about it. |
2022-06-14 23:55:52 +0200 | <monochrom> | Or just understanding human nature that people will want differences. |
2022-06-14 23:55:58 +0200 | <Haskelytic> | C++ is too easy to bully |
2022-06-14 23:56:02 +0200 | <CoolerX> | geekosaur: couldn't that be said of matrix? |
2022-06-14 23:56:18 +0200 | <dsal> | Haskelytic: Yeah, I shouldn't pick on C++. |
2022-06-14 23:56:27 +0200 | <dsal> | There are different languages for different things, though. |
2022-06-14 23:56:38 +0200 | <CoolerX> | although matrix isn't trying to replace anything |
2022-06-14 23:56:51 +0200 | <dsal> | rust and Haskell can coexist. I do still do some embedded stuff now and then. |
2022-06-14 23:57:03 +0200 | <monochrom> | You can't even get iPhone fans and Android fans to agree on one single phone OS. And that's just two camps. |
2022-06-14 23:57:07 +0200 | <geekosaur> | federation a la matrix is trying to sidestep it. rest assured someone else will decide there's a better way at some point |
2022-06-14 23:57:43 +0200 | <Haskelytic> | I haven't checked out rust since 2013...how is it nowadays? |
2022-06-14 23:57:47 +0200 | <dsal> | federation via XMPP was doing pretty well back before large companies that adopted it and got lots of people onto federated platforms undid it. |
2022-06-14 23:57:58 +0200 | [_] | [itchyjunk] |
2022-06-14 23:58:00 +0200 | <dsal> | Haskelytic: I've still never actually done anything with rust, but it looks pretty great. |
2022-06-14 23:58:05 +0200 | <dsal> | It was kind of terrible back then. :) |
2022-06-14 23:58:19 +0200 | <geekosaur> | yeh, matrix itself is the new xmpp. give it time |
2022-06-14 23:58:25 +0200 | <CoolerX> | Haskelytic: accumulated more rust |
2022-06-14 23:58:30 +0200 | <CoolerX> | needs a polishing |
2022-06-14 23:58:44 +0200 | <CoolerX> | dsal: oh then you should start now |
2022-06-14 23:58:51 +0200 | <CoolerX> | webasm is a great place to start |
2022-06-14 23:58:51 +0200 | <dsal> | I've also never tried matrix. Doesn't seem as easy to get going as an XMPP service. I wrote a *ton* of XMPP code back in the day. |
2022-06-14 23:59:28 +0200 | <dsal> | CoolerX: webasm from rust? I don't do much web stuff. I had to make a UI change to an old elm app last night. That was kind of pleasant. |
2022-06-14 23:59:45 +0200 | <dsal> | elm is a pretty cool language that really wishes all of its users would go away. |