2022/05/28

2022-05-28 00:00:56 +0200money(~textual@user/polo) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-05-28 00:02:22 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
2022-05-28 00:04:04 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-28 00:04:25 +0200Guest5473(~textual@pool-100-34-212-74.phlapa.fios.verizon.net)
2022-05-28 00:06:11 +0200christiansen(~christian@83-95-137-75-dynamic.dk.customer.tdc.net) (Ping timeout: 246 seconds)
2022-05-28 00:07:13 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2022-05-28 00:07:19 +0200king_gs(~Thunderbi@2806:103e:29:5eb8:48de:d3eb:9d44:3d55) (Quit: king_gs)
2022-05-28 00:08:03 +0200wootehfoot(~wootehfoo@user/wootehfoot) (Quit: Leaving)
2022-05-28 00:13:12 +0200JannisO(~JannisO@89.233.88.60) (Remote host closed the connection)
2022-05-28 00:13:29 +0200JannisO(~JannisO@89.233.88.60)
2022-05-28 00:14:49 +0200kenaryn(~aurele@89-88-44-27.abo.bbox.fr)
2022-05-28 00:17:27 +0200aliosablack(~chomwitt@2a02:587:dc05:e000:904f:df51:bc87:e667) (Ping timeout: 240 seconds)
2022-05-28 00:18:33 +0200gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2022-05-28 00:19:45 +0200trisolaran(~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2022-05-28 00:20:23 +0200 <trisolaran> does haskell memory management has the notions of heap or stack memory like in C ?
2022-05-28 00:21:05 +0200 <trisolaran> ghc seems to compile haskell down to C code
2022-05-28 00:21:48 +0200Demmy(~Demmy@102.89.33.153) (Ping timeout: 252 seconds)
2022-05-28 00:22:01 +0200dolio(~dolio@130.44.130.54) (Quit: ZNC 1.8.2 - https://znc.in)
2022-05-28 00:23:50 +0200dolio(~dolio@130.44.130.54)
2022-05-28 00:24:06 +0200Guest5473(~textual@pool-100-34-212-74.phlapa.fios.verizon.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-05-28 00:25:44 +0200 <unit73e> trisolaran, that's not a C characteristic, it's more of a modern OS characteristic
2022-05-28 00:26:25 +0200ec(~ec@gateway/tor-sasl/ec)
2022-05-28 00:26:31 +0200 <unit73e> but haskell uses memory management similar to Java garbage collector, sort off
2022-05-28 00:26:47 +0200 <geekosaur> ghc hasn't compiled down to C in a decade or so
2022-05-28 00:26:47 +0200Vajb(~Vajb@2001:999:600:879a:e69c:7638:2849:8a14) (Read error: Connection reset by peer)
2022-05-28 00:26:58 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2022-05-28 00:27:25 +0200 <unit73e> I don't know how haskell does GC but most likely is using heap for almost everything
2022-05-28 00:27:45 +0200 <hpc> ghc has a heap and a stack, but the stack is used for evaluating thunks rather than actually being all the functions you've entered in order
2022-05-28 00:27:56 +0200 <geekosaur> stack is used only for pattern matching and for external C calls
2022-05-28 00:28:08 +0200 <trisolaran> unit73e: so do haskell programmers reason their programs in terms of heaps and stacks like c programmers? I know there's GCs, but still people need to be aware of memory management i suppose
2022-05-28 00:28:33 +0200 <gentauro> trisolaran: they do in terms of `spaceleaks` :P
2022-05-28 00:28:38 +0200 <hpc> haskell devs use equational reasoning
2022-05-28 00:28:43 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2022-05-28 00:28:52 +0200 <hpc> getting down to what the machine does only really comes into play when you have a performance issue
2022-05-28 00:29:05 +0200 <darkling> I don't know... right now, I seem to be using dumb luck. :)
2022-05-28 00:29:05 +0200 <gentauro> trisolaran: and when it all goes bad, they add a lot of ! everywhere xD
2022-05-28 00:29:07 +0200 <hpc> or maybe if you're doing some particularly finnicky thing with ffi
2022-05-28 00:30:12 +0200 <unit73e> I wouldn't say the reasoning is similar to C because in C you're a lot more concerned were to put your data (heap vs stack) and memory leaks, while in haskell you will be more concerned if the data is in general being used efficiently, so like Java
2022-05-28 00:30:26 +0200 <trisolaran> I'm encouraged to think low level even while programming in a high level language
2022-05-28 00:30:40 +0200 <trisolaran> that's why i'm curious
2022-05-28 00:31:05 +0200whatsupdoc(uid509081@id-509081.hampstead.irccloud.com)
2022-05-28 00:31:18 +0200 <hpc> nah, think as high level as you can imo
2022-05-28 00:31:24 +0200 <unit73e> yeah I agree
2022-05-28 00:31:29 +0200 <hpc> (maybe with most languages "as high as you can" is still low level, but still)
2022-05-28 00:31:46 +0200 <unit73e> why be high level if you still have think low level?
2022-05-28 00:31:50 +0200 <unit73e> makes no sense to me
2022-05-28 00:31:55 +0200ec(~ec@gateway/tor-sasl/ec) (Quit: ec)
2022-05-28 00:32:07 +0200 <unit73e> the GC is there so you don't have to bother with memory management, for the most part
2022-05-28 00:32:13 +0200 <darkling> Being able to go down to that level is occasionally (and I mean occasionally) useful, but the higher-level abstraction is there to be helpful to you in the general case.
2022-05-28 00:32:41 +0200 <unit73e> of course knowing how the GC works and if you have leaks is useful
2022-05-28 00:32:49 +0200 <unit73e> maybe your question is more how do you know that
2022-05-28 00:33:31 +0200 <trisolaran> right, i think knowing more about the GC will reassure my mind
2022-05-28 00:33:56 +0200 <unit73e> you're on the right track about that, knowing the GC is important, imo
2022-05-28 00:34:34 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-05-28 00:35:08 +0200 <unit73e> I'm not aware of an updated document about that though, the best I got is an article from 2008, and it's similar to Java parallel gc
2022-05-28 00:36:00 +0200Guest6629(~textual@pool-100-34-212-74.phlapa.fios.verizon.net)
2022-05-28 00:36:14 +0200 <unit73e> so this: https://wiki.haskell.org/GHC/Memory_Management
2022-05-28 00:36:53 +0200 <darkling> I don't think I've ever cared about the GC in any GC-based language I've used (although I have rolled my eyes to heaven a few times with Java).
2022-05-28 00:37:37 +0200 <trisolaran> I've read some tutorial on the GHC runtime system by ezyang which is quite helpful
2022-05-28 00:37:42 +0200 <darkling> Knowing the semantics of function parameters and pointers/references is more useful.
2022-05-28 00:37:46 +0200 <unit73e> I had to care because some administrator "geniuses" thought they could do a better job in than the defaults in Java servers. In Haskell I never cared.
2022-05-28 00:38:35 +0200 <unit73e> I believe hp2ps is still the standard profilling tool for those things?
2022-05-28 00:39:48 +0200 <unit73e> or just that option I forgot in ghc
2022-05-28 00:39:52 +0200rodental(~rodental@38.146.5.222) (Remote host closed the connection)
2022-05-28 00:39:57 +0200Guest6629(~textual@pool-100-34-212-74.phlapa.fios.verizon.net) (Changing host)
2022-05-28 00:39:57 +0200Guest6629(~textual@user/polo)
2022-05-28 00:40:05 +0200rodental(~rodental@38.146.5.222)
2022-05-28 00:40:08 +0200m1dnight(~christoph@78-22-9-5.access.telenet.be) (Ping timeout: 246 seconds)
2022-05-28 00:40:14 +0200 <unit73e> basically the equivalent to jvisualvm
2022-05-28 00:40:43 +0200 <EvanR> ghc-viz is cool, not sure if you could use it for production code
2022-05-28 00:42:32 +0200m1dnight(~christoph@78-22-9-5.access.telenet.be)
2022-05-28 00:42:56 +0200simeon(~pi@dslb-088-069-178-224.088.069.pools.vodafone-ip.de) (Ping timeout: 246 seconds)
2022-05-28 00:43:03 +0200simeon(~pi@dslb-088-069-178-224.088.069.pools.vodafone-ip.de)
2022-05-28 00:45:03 +0200 <geekosaur> http://ezyang.com/jfp-ghc-rts-draft.pdf perhaps?
2022-05-28 00:48:13 +0200trisolaran(~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 258 seconds)
2022-05-28 00:49:43 +0200rodental(~rodental@38.146.5.222) (Remote host closed the connection)
2022-05-28 00:49:56 +0200rodental(~rodental@38.146.5.222)
2022-05-28 00:50:02 +0200seriously(~seriously@ool-18bd5811.dyn.optonline.net) (Ping timeout: 252 seconds)
2022-05-28 00:50:25 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net)
2022-05-28 00:52:15 +0200unit73e(~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Remote host closed the connection)
2022-05-28 00:52:46 +0200dcoutts_(~duncan@host109-149-15-56.range109-149.btcentralplus.com) (Ping timeout: 250 seconds)
2022-05-28 00:52:52 +0200JannisO(~JannisO@89.233.88.60) (Remote host closed the connection)
2022-05-28 00:52:58 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-28 00:53:00 +0200unit73e(~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291)
2022-05-28 00:54:10 +0200unit73e(~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Remote host closed the connection)
2022-05-28 00:54:33 +0200 <EvanR> in C you're concerned with memory leaks (among other things), in haskell you're concerned with space leaks :thonk:
2022-05-28 00:54:35 +0200JannisO(~JannisO@89.233.88.60)
2022-05-28 00:54:37 +0200Unicorn_Princess(~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Read error: Connection reset by peer)
2022-05-28 00:54:48 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
2022-05-28 00:55:17 +0200 <EvanR> as the traveler said time, space, and thought are all different manifestations of the same thing
2022-05-28 00:55:24 +0200Unicorn_Princess(~Unicorn_P@93-103-228-248.dynamic.t-2.net)
2022-05-28 00:55:33 +0200stackdroid18(14094@user/stackdroid)
2022-05-28 00:56:04 +0200unit73e(~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291)
2022-05-28 00:56:38 +0200 <maerwald[m]> heh
2022-05-28 00:57:34 +0200tired-(~tired@user/tired) (Quit: /)
2022-05-28 00:58:59 +0200tired(~tired@user/tired)
2022-05-28 01:00:49 +0200JannisO(~JannisO@89.233.88.60) (Remote host closed the connection)
2022-05-28 01:02:35 +0200Guest6629POLO
2022-05-28 01:05:46 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-05-28 01:08:23 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2022-05-28 01:14:41 +0200ix(~ix@2a02:8010:674f:0:d65d:64ff:fe52:5efe) (Read error: Connection reset by peer)
2022-05-28 01:14:51 +0200ix(~ix@2a02:8010:674f:0:d65d:64ff:fe52:5efe)
2022-05-28 01:15:22 +0200dcleonarski(~user@2804:d51:479c:4300:c312:71c1:ee9b:86ea)
2022-05-28 01:18:57 +0200zeenk(~zeenk@2a02:2f04:a104:ef00:10:581:f80f:b980)
2022-05-28 01:19:03 +0200zeenk(~zeenk@2a02:2f04:a104:ef00:10:581:f80f:b980) (Client Quit)
2022-05-28 01:20:36 +0200POLO(~textual@user/polo) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-05-28 01:21:00 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-05-28 01:24:39 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection)
2022-05-28 01:37:12 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2022-05-28 01:40:55 +0200Guest5485(~textual@pool-100-34-212-74.phlapa.fios.verizon.net)
2022-05-28 01:41:24 +0200Guest5485(~textual@pool-100-34-212-74.phlapa.fios.verizon.net) (Changing host)
2022-05-28 01:41:24 +0200Guest5485(~textual@user/polo)
2022-05-28 01:43:39 +0200Guest5485(~textual@user/polo) (Client Quit)
2022-05-28 01:43:55 +0200Guest5840(~textual@pool-100-34-212-74.phlapa.fios.verizon.net)
2022-05-28 01:44:11 +0200Guest5840(~textual@pool-100-34-212-74.phlapa.fios.verizon.net) (Client Quit)
2022-05-28 01:44:49 +0200Gambino(~Gambino@user/polo)
2022-05-28 01:45:44 +0200nate1(~nate@98.45.169.16)
2022-05-28 01:46:47 +0200jgeerds(~jgeerds@55d45f48.access.ecotel.net) (Ping timeout: 240 seconds)
2022-05-28 01:50:30 +0200nate1(~nate@98.45.169.16) (Ping timeout: 276 seconds)
2022-05-28 01:55:26 +0200foul_owl(~kerry@23.82.193.89) (Quit: WeeChat 2.3)
2022-05-28 01:56:04 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-05-28 01:59:44 +0200dfip^(~dfip@173-160-91-30-atlanta.hfc.comcastbusiness.net)
2022-05-28 02:09:07 +0200GambinoPOLO
2022-05-28 02:23:05 +0200dcleonarski(~user@2804:d51:479c:4300:c312:71c1:ee9b:86ea) (Remote host closed the connection)
2022-05-28 02:24:31 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net)
2022-05-28 02:28:29 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2022-05-28 02:28:40 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
2022-05-28 02:30:47 +0200gurkenglas(~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) (Ping timeout: 260 seconds)
2022-05-28 02:33:04 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-28 02:36:20 +0200POLO(~Gambino@user/polo) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-05-28 02:38:45 +0200Polo(~Gambino@user/polo)
2022-05-28 02:38:53 +0200Polo(~Gambino@user/polo) (Client Quit)
2022-05-28 02:42:17 +0200Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2022-05-28 02:43:09 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 276 seconds)
2022-05-28 02:43:32 +0200Lord_of_Life_Lord_of_Life
2022-05-28 02:44:11 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net)
2022-05-28 02:47:16 +0200harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
2022-05-28 02:47:46 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5)
2022-05-28 02:48:28 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
2022-05-28 02:49:40 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-28 02:58:52 +0200Polo(~Gambino@user/polo)
2022-05-28 03:00:49 +0200anon76437670(~anon76437@host-80-41-95-245.as13285.net)
2022-05-28 03:05:11 +0200anon76437670(~anon76437@host-80-41-95-245.as13285.net) (Remote host closed the connection)
2022-05-28 03:10:52 +0200Polo(~Gambino@user/polo) (Quit: Textual IRC Client: www.textualapp.com)
2022-05-28 03:11:04 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2022-05-28 03:12:10 +0200Polo(~Gambino@user/polo)
2022-05-28 03:14:21 +0200machinedgod(~machinedg@24.105.81.50) (Ping timeout: 244 seconds)
2022-05-28 03:17:04 +0200dfip^(~dfip@173-160-91-30-atlanta.hfc.comcastbusiness.net) (Remote host closed the connection)
2022-05-28 03:17:12 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-05-28 03:25:37 +0200Polo(~Gambino@user/polo) (Read error: Connection reset by peer)
2022-05-28 03:26:44 +0200Polo(~Gambino@user/polo)
2022-05-28 03:34:26 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds)
2022-05-28 03:41:47 +0200perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Ping timeout: 246 seconds)
2022-05-28 03:47:01 +0200perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2022-05-28 03:47:23 +0200Polomoney
2022-05-28 03:47:23 +0200money(~Gambino@user/polo) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-05-28 03:51:49 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net)
2022-05-28 03:56:40 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
2022-05-28 03:58:54 +0200andrey__(~andrey@p200300dbcf2e1000eb0596aaa95b8a32.dip0.t-ipconnect.de)
2022-05-28 04:01:47 +0200andrey_(~andrey@p508d494e.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2022-05-28 04:03:44 +0200Polo__(~Gambino@pool-100-34-212-74.phlapa.fios.verizon.net)
2022-05-28 04:04:03 +0200Polo(~Gambino@user/polo)
2022-05-28 04:07:08 +0200Polomoney
2022-05-28 04:08:47 +0200coot(~coot@213.134.190.95)
2022-05-28 04:08:53 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 255 seconds)
2022-05-28 04:10:50 +0200coot(~coot@213.134.190.95) (Client Quit)
2022-05-28 04:11:10 +0200jinsun(~jinsun@user/jinsun) (Ping timeout: 240 seconds)
2022-05-28 04:11:45 +0200shapr(~user@pool-173-73-44-186.washdc.fios.verizon.net)
2022-05-28 04:14:10 +0200zebrag(~chris@user/zebrag) (Quit: Konversation terminated!)
2022-05-28 04:15:53 +0200Polo__(~Gambino@pool-100-34-212-74.phlapa.fios.verizon.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-05-28 04:15:53 +0200money(~Gambino@user/polo) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-05-28 04:16:25 +0200tomboy64(~tomboy64@user/tomboy64) (Ping timeout: 248 seconds)
2022-05-28 04:19:58 +0200unit73e(~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Ping timeout: 244 seconds)
2022-05-28 04:22:04 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-28 04:30:16 +0200Feuermagier(~Feuermagi@user/feuermagier)
2022-05-28 04:30:27 +0200jinsun(~jinsun@user/jinsun)
2022-05-28 04:33:46 +0200Digit(~user@user/digit) (Remote host closed the connection)
2022-05-28 04:34:54 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-28 04:40:09 +0200littlebo1eep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-28 04:43:34 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-28 04:52:16 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net)
2022-05-28 04:52:20 +0200kenaryn(~aurele@89-88-44-27.abo.bbox.fr) (Quit: leaving)
2022-05-28 04:52:22 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-28 04:52:43 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net) (Remote host closed the connection)
2022-05-28 04:53:12 +0200finn_elija(~finn_elij@user/finn-elija/x-0085643)
2022-05-28 04:53:12 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2022-05-28 04:53:12 +0200finn_elijaFinnElija
2022-05-28 04:56:04 +0200littlebo1eep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-28 04:56:59 +0200dsrt^(~dfip@173-160-91-30-atlanta.hfc.comcastbusiness.net)
2022-05-28 05:09:22 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net)
2022-05-28 05:13:40 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
2022-05-28 05:22:16 +0200littlebo1eep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-28 05:25:34 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-28 05:26:38 +0200Guest3869(~Gambino@pool-100-34-212-74.phlapa.fios.verizon.net)
2022-05-28 05:27:06 +0200Polo(~Gambino@user/polo)
2022-05-28 05:32:03 +0200 <zzz> how do i uninstall all ghc versions that were not installed through ghcup?
2022-05-28 05:33:18 +0200vysn(~vysn@user/vysn)
2022-05-28 05:33:56 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 248 seconds)
2022-05-28 05:38:11 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-05-28 05:39:54 +0200z0k(~z0k@206.84.141.67)
2022-05-28 05:46:56 +0200nate1(~nate@98.45.169.16)
2022-05-28 05:47:13 +0200Polo(~Gambino@user/polo) (Ping timeout: 258 seconds)
2022-05-28 05:47:13 +0200Guest3869(~Gambino@pool-100-34-212-74.phlapa.fios.verizon.net) (Ping timeout: 258 seconds)
2022-05-28 05:48:29 +0200fef(~thedawn@user/thedawn)
2022-05-28 05:48:30 +0200Kaiepi(~Kaiepi@156.34.47.253) (Ping timeout: 240 seconds)
2022-05-28 05:48:41 +0200stackdroid18(14094@user/stackdroid) (Quit: Lost terminal)
2022-05-28 05:51:25 +0200nate1(~nate@98.45.169.16) (Ping timeout: 244 seconds)
2022-05-28 05:53:16 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net)
2022-05-28 05:54:42 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net) (Remote host closed the connection)
2022-05-28 05:57:34 +0200littlebo1eep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-28 06:00:01 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net)
2022-05-28 06:02:57 +0200Polo(~Gambino@pool-100-34-212-74.phlapa.fios.verizon.net)
2022-05-28 06:03:04 +0200Gambino(~Gambino@user/polo)
2022-05-28 06:03:16 +0200PoloGuest8992
2022-05-28 06:03:52 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-28 06:04:02 +0200 <monochrom> If you think that the answer does not have to depend on how you installed them, then you're in luck, formatting the whole disk is an option.
2022-05-28 06:04:16 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
2022-05-28 06:14:01 +0200rembo10(~rembo10@main.remulis.com) (Quit: ZNC 1.8.2 - https://znc.in)
2022-05-28 06:14:35 +0200rembo10(~rembo10@main.remulis.com)
2022-05-28 06:14:37 +0200vysn(~vysn@user/vysn) (Quit: WeeChat 3.4)
2022-05-28 06:20:42 +0200stevechavez(~stevechav@190.237.35.175)
2022-05-28 06:20:59 +0200coot(~coot@213.134.190.95)
2022-05-28 06:22:48 +0200 <stevechavez> Hello haskellers. Question, will running a program with `+RTS -s -RTS`(statistics) incur into some performance penalty?
2022-05-28 06:24:57 +0200bahamas(~lucian@84.232.141.167)
2022-05-28 06:27:34 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2022-05-28 06:29:50 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 240 seconds)
2022-05-28 06:35:56 +0200Gambino(~Gambino@user/polo) (Read error: Connection reset by peer)
2022-05-28 06:35:56 +0200Guest8992(~Gambino@pool-100-34-212-74.phlapa.fios.verizon.net) (Read error: Connection reset by peer)
2022-05-28 06:36:26 +0200dsrt^(~dfip@173-160-91-30-atlanta.hfc.comcastbusiness.net) (Ping timeout: 246 seconds)
2022-05-28 06:36:46 +0200 <sm> I don't believe so stevechavez
2022-05-28 06:38:00 +0200 <zzz> monochrom: lol good point
2022-05-28 06:38:43 +0200 <sm> if you ever get depressed about haskell tooling, this epic thread suggests most languages are no easier: https://news.ycombinator.com/item?id=31526370
2022-05-28 06:40:31 +0200obabo(~obabo@563BF107.catv.pool.telekom.hu)
2022-05-28 06:40:54 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net)
2022-05-28 06:40:56 +0200Inst(~Liam@2601:6c4:4080:3f80:14ba:6ec2:95f7:e2c)
2022-05-28 06:41:06 +0200 <Inst> hmmm
2022-05-28 06:41:20 +0200 <Inst> question, if i wanted to put in C code into my haskell, what's the best way to do it?
2022-05-28 06:41:22 +0200 <Inst> inline C?
2022-05-28 06:41:25 +0200 <Inst> CHS?
2022-05-28 06:41:38 +0200 <Inst> i can't find chs documentation
2022-05-28 06:41:40 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net) (Remote host closed the connection)
2022-05-28 06:41:57 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net)
2022-05-28 06:42:11 +0200 <sm> look for FFI in the ghc user guide
2022-05-28 06:42:46 +0200 <sm> or do you mean specifically inlined in a haskell module ?
2022-05-28 06:43:05 +0200 <Inst> inlined
2022-05-28 06:43:16 +0200 <Inst> i want to do K&R without leaving my Haskell IDE
2022-05-28 06:43:28 +0200 <sm> I haven't heard of CHS, but inline-c package sounded pretty good
2022-05-28 06:44:01 +0200 <Inst> there's something called a c2hs and .chs file
2022-05-28 06:44:07 +0200 <Inst> thanks
2022-05-28 06:44:18 +0200Guest5209(~Z@181.226.86.142)
2022-05-28 06:44:27 +0200Guest5209(~Z@181.226.86.142) ()
2022-05-28 06:46:04 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
2022-05-28 06:54:18 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net)
2022-05-28 06:55:26 +0200dsrt^(~dsrt@173-160-91-30-atlanta.hfc.comcastbusiness.net)
2022-05-28 06:55:39 +0200Polo(~Gambino@pool-100-34-212-74.phlapa.fios.verizon.net)
2022-05-28 06:55:56 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-05-28 06:56:02 +0200PoloGuest3852
2022-05-28 06:56:02 +0200harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
2022-05-28 06:56:27 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2022-05-28 06:58:32 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
2022-05-28 07:00:51 +0200Polo(~Gambino@user/polo)
2022-05-28 07:01:07 +0200 <stevechavez> sm: Thank you. Some load tests I've been running indicate so as well.
2022-05-28 07:03:07 +0200bahamas(~lucian@84.232.141.167) (Ping timeout: 258 seconds)
2022-05-28 07:04:55 +0200Polomoney
2022-05-28 07:05:49 +0200_PSY_(~PSY@2600:1700:2050:1040:498:6f6:79f8:6819)
2022-05-28 07:07:41 +0200 <sm> great
2022-05-28 07:17:56 +0200Me-me(~me-me@user/me-me) (Ping timeout: 248 seconds)
2022-05-28 07:18:30 +0200benin(~benin@183.82.25.126) (Ping timeout: 240 seconds)
2022-05-28 07:18:51 +0200Me-me(~me-me@v.working.name)
2022-05-28 07:19:29 +0200 <EvanR> uninstalling is like reversing entropy
2022-05-28 07:19:56 +0200benin(~benin@183.82.25.126)
2022-05-28 07:20:25 +0200 <EvanR> rather, not increasing it
2022-05-28 07:24:56 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 250 seconds)
2022-05-28 07:25:57 +0200causal(~user@50.35.83.177) (Quit: WeeChat 3.5)
2022-05-28 07:32:16 +0200Guest3852(~Gambino@pool-100-34-212-74.phlapa.fios.verizon.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-05-28 07:32:16 +0200money(~Gambino@user/polo) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-05-28 07:32:17 +0200mvk(~mvk@2607:fea8:5ce3:8500::ba9a) (Ping timeout: 255 seconds)
2022-05-28 07:33:31 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2022-05-28 07:34:18 +0200bahamas(~lucian@84.232.141.167)
2022-05-28 07:37:57 +0200gehmehgeh(~user@user/gehmehgeh)
2022-05-28 07:38:27 +0200bahamas(~lucian@84.232.141.167) (Ping timeout: 240 seconds)
2022-05-28 07:43:39 +0200Hafydd(~Hafydd@user/hafydd) (Quit: WeeChat 3.3)
2022-05-28 07:44:57 +0200Guest8458(~Gambino@pool-100-34-212-74.phlapa.fios.verizon.net)
2022-05-28 07:50:46 +0200whatsupdoc(uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2022-05-28 07:56:20 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:5051:4e02:b5d9:aa15)
2022-05-28 08:00:38 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:5051:4e02:b5d9:aa15) (Ping timeout: 255 seconds)
2022-05-28 08:03:17 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2022-05-28 08:05:27 +0200bahamas(~lucian@84.232.141.167)
2022-05-28 08:06:45 +0200coot(~coot@213.134.190.95) (Ping timeout: 258 seconds)
2022-05-28 08:09:27 +0200YourMom(~YourMom@S01069050ca4e3573.cg.shawcable.net)
2022-05-28 08:09:57 +0200Infinite(~Infinite@49.39.113.80)
2022-05-28 08:10:05 +0200bahamas(~lucian@84.232.141.167) (Ping timeout: 255 seconds)
2022-05-28 08:10:13 +0200 <YourMom> song about you and your mom: https://www.youtube.com/watch?v=HbGwKVwlTTg
2022-05-28 08:18:19 +0200 <EvanR> #haskell after dark
2022-05-28 08:21:34 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-28 08:25:28 +0200stevechavez(~stevechav@190.237.35.175) (Quit: WeeChat 3.3)
2022-05-28 08:33:39 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-28 08:34:03 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net)
2022-05-28 08:38:16 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
2022-05-28 08:38:40 +0200Guest8458(~Gambino@pool-100-34-212-74.phlapa.fios.verizon.net) (Quit: Textual IRC Client: www.textualapp.com)
2022-05-28 08:38:58 +0200Polo(~Gambino@pool-100-34-212-74.phlapa.fios.verizon.net)
2022-05-28 08:39:19 +0200PoloGuest4393
2022-05-28 08:39:26 +0200Guest4393(~Gambino@pool-100-34-212-74.phlapa.fios.verizon.net) (Changing host)
2022-05-28 08:39:26 +0200Guest4393(~Gambino@user/polo)
2022-05-28 08:39:56 +0200Guest4393(~Gambino@user/polo) (Client Quit)
2022-05-28 08:40:30 +0200 <Infinite> I've been playing with ghci solely and only recently started to use stack to build haskell projects. When I did stack build, it showed me this: Preparing to install GHC (tinfo6) to an isolated location.
2022-05-28 08:40:31 +0200 <Infinite> Does this mean stack wasn't able to find my ghc path and installed another binary instead?
2022-05-28 08:42:55 +0200 <sm> Infinite: it uses its own by default. You can encourage it to use the one in path with --use-system-ghc --no-install-ghc
2022-05-28 08:45:39 +0200bahamas(~lucian@84.232.141.167)
2022-05-28 08:49:45 +0200 <Infinite> Ohk. Just saw stack.yaml and it had system-ghc commented. I'm just curious, what's the reason that stack doesn't by default choose the ghc path?
2022-05-28 08:49:59 +0200 <Infinite> *choose the installed ghc
2022-05-28 08:50:08 +0200bahamas(~lucian@84.232.141.167) (Ping timeout: 246 seconds)
2022-05-28 08:53:09 +0200 <sm> reproducibility
2022-05-28 08:53:32 +0200 <sm> haskell projects tend to need specific ghc versions
2022-05-28 08:55:04 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-28 08:58:26 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:5051:4e02:b5d9:aa15)
2022-05-28 09:01:03 +0200 <maerwald[m]> <sm> "haskell projects tend to need..." <- Not really
2022-05-28 09:01:14 +0200 <maerwald[m]> Stack is overly specific
2022-05-28 09:02:15 +0200 <maerwald[m]> If 8.10.1 works, 8.10.7 should work too. Most of the time the boot libraries even have the same version or are in PVP range
2022-05-28 09:02:43 +0200 <sm> projects can be made compatible with many ghc versions but it's extra work so there's a tendency to break, pinning ghc is a way to ensure it keeps building over time
2022-05-28 09:03:06 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:5051:4e02:b5d9:aa15) (Ping timeout: 258 seconds)
2022-05-28 09:03:23 +0200 <maerwald[m]> No, it's not extra work if it's the same minor version
2022-05-28 09:03:52 +0200lopata(~theo@user/lopata)
2022-05-28 09:05:26 +0200z0k(~z0k@206.84.141.67) (Ping timeout: 255 seconds)
2022-05-28 09:07:04 +0200 <sm> I think Infinite got the general idea and we're splitting hairs a bit, but: yes in theory same minor version of ghc should be fine as far as compatibility goes.. in practice, a different minor version of ghc can behave very differently..
2022-05-28 09:07:14 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-28 09:07:39 +0200 <sm> s/typo/correct thing/
2022-05-28 09:10:33 +0200HotblackDesiato_(~HotblackD@gateway/tor-sasl/hotblackdesiato)
2022-05-28 09:10:55 +0200lopata(~theo@user/lopata) (WeeChat 1.6)
2022-05-28 09:11:04 +0200HotblackDesiato(~HotblackD@gateway/tor-sasl/hotblackdesiato) (Ping timeout: 240 seconds)
2022-05-28 09:13:25 +0200Polo(~Gambino@user/polo)
2022-05-28 09:15:40 +0200_ht(~quassel@231-169-21-31.ftth.glasoperator.nl)
2022-05-28 09:15:54 +0200Polo(~Gambino@user/polo) (Client Quit)
2022-05-28 09:19:34 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-28 09:19:36 +0200JannisO(~JannisO@89.233.86.138)
2022-05-28 09:21:02 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-28 09:25:24 +0200JannisO(~JannisO@89.233.86.138) (Remote host closed the connection)
2022-05-28 09:25:43 +0200JannisO(~JannisO@89.233.86.138)
2022-05-28 09:31:04 +0200Infinite(~Infinite@49.39.113.80) (Ping timeout: 252 seconds)
2022-05-28 09:31:05 +0200dsrt^(~dsrt@173-160-91-30-atlanta.hfc.comcastbusiness.net) (Ping timeout: 258 seconds)
2022-05-28 09:33:50 +0200JannisO(~JannisO@89.233.86.138) (Remote host closed the connection)
2022-05-28 09:34:09 +0200JannisO(~JannisO@89.233.86.138)
2022-05-28 09:37:20 +0200littlebo1eep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-28 09:41:04 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-28 09:42:36 +0200bahamas(~lucian@84.232.141.167)
2022-05-28 09:42:59 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net)
2022-05-28 09:44:39 +0200JannisO(~JannisO@89.233.86.138) (Remote host closed the connection)
2022-05-28 09:44:58 +0200JannisO(~JannisO@89.233.86.138)
2022-05-28 09:46:38 +0200JannisO(~JannisO@89.233.86.138) (Remote host closed the connection)
2022-05-28 09:46:57 +0200JannisO(~JannisO@89.233.86.138)
2022-05-28 09:47:12 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
2022-05-28 09:47:17 +0200bahamas(~lucian@84.232.141.167) (Ping timeout: 255 seconds)
2022-05-28 09:48:28 +0200nate1(~nate@98.45.169.16)
2022-05-28 09:49:34 +0200littlebo1eep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-28 09:52:49 +0200bahamas(~lucian@84.232.141.167)
2022-05-28 09:53:07 +0200nate1(~nate@98.45.169.16) (Ping timeout: 240 seconds)
2022-05-28 09:56:33 +0200gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2022-05-28 09:56:50 +0200nick__(~nick@203.217.73.254)
2022-05-28 09:57:11 +0200bahamas(~lucian@84.232.141.167) (Ping timeout: 255 seconds)
2022-05-28 09:58:12 +0200gurkenglas(~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de)
2022-05-28 09:58:37 +0200cosimone(~user@93-44-186-171.ip98.fastwebnet.it) (Remote host closed the connection)
2022-05-28 10:01:42 +0200JannisO(~JannisO@89.233.86.138) (Remote host closed the connection)
2022-05-28 10:02:01 +0200JannisO(~JannisO@89.233.86.138)
2022-05-28 10:02:08 +0200auri(~auri@fsf/member/auri) ()
2022-05-28 10:02:44 +0200auri(~auri@fsf/member/auri)
2022-05-28 10:05:44 +0200JannisO(~JannisO@89.233.86.138) (Remote host closed the connection)
2022-05-28 10:06:03 +0200JannisO(~JannisO@89.233.86.138)
2022-05-28 10:08:08 +0200whatsupdoc(uid509081@id-509081.hampstead.irccloud.com)
2022-05-28 10:09:48 +0200JannisO(~JannisO@89.233.86.138) (Remote host closed the connection)
2022-05-28 10:10:07 +0200JannisO(~JannisO@89.233.86.138)
2022-05-28 10:11:47 +0200JannisO(~JannisO@89.233.86.138) (Remote host closed the connection)
2022-05-28 10:12:06 +0200JannisO(~JannisO@89.233.86.138)
2022-05-28 10:12:39 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-28 10:12:44 +0200_PSY_(~PSY@2600:1700:2050:1040:498:6f6:79f8:6819) (Quit: .)
2022-05-28 10:13:45 +0200nick__(~nick@203.217.73.254) (Quit: Leaving)
2022-05-28 10:17:46 +0200littlebo1eep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-28 10:18:04 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-28 10:19:47 +0200cosimone(~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
2022-05-28 10:21:15 +0200[Leary](~Leary]@122-58-228-205-vdsl.sparkbb.co.nz) (Remote host closed the connection)
2022-05-28 10:21:29 +0200HotblackDesiato_(~HotblackD@gateway/tor-sasl/hotblackdesiato) (Remote host closed the connection)
2022-05-28 10:21:48 +0200HotblackDesiato(~HotblackD@gateway/tor-sasl/hotblackdesiato)
2022-05-28 10:23:51 +0200coot(~coot@213.134.190.95)
2022-05-28 10:27:00 +0200JannisO(~JannisO@89.233.86.138) (Remote host closed the connection)
2022-05-28 10:27:19 +0200JannisO(~JannisO@89.233.86.138)
2022-05-28 10:31:02 +0200JannisO(~JannisO@89.233.86.138) (Remote host closed the connection)
2022-05-28 10:31:15 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2022-05-28 10:31:21 +0200JannisO(~JannisO@89.233.86.138)
2022-05-28 10:33:10 +0200JannisO(~JannisO@89.233.86.138) (Remote host closed the connection)
2022-05-28 10:33:29 +0200JannisO(~JannisO@89.233.86.138)
2022-05-28 10:34:18 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
2022-05-28 10:35:51 +0200auri(~auri@fsf/member/auri) ()
2022-05-28 10:37:31 +0200JannisO(~JannisO@89.233.86.138) (Remote host closed the connection)
2022-05-28 10:37:50 +0200JannisO(~JannisO@89.233.86.138)
2022-05-28 10:39:30 +0200JannisO(~JannisO@89.233.86.138) (Remote host closed the connection)
2022-05-28 10:39:38 +0200zaquest(~notzaques@5.130.79.72) (Remote host closed the connection)
2022-05-28 10:39:49 +0200JannisO(~JannisO@89.233.86.138)
2022-05-28 10:40:34 +0200littlebo1eep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-28 10:40:43 +0200zaquest(~notzaques@5.130.79.72)
2022-05-28 10:41:26 +0200[Leary](~Leary]@122-58-228-205-vdsl.sparkbb.co.nz)
2022-05-28 10:42:39 +0200aliosablack(~chomwitt@2a02:587:dc05:e000:eaa1:d30:2c04:8e84)
2022-05-28 10:45:20 +0200Unicorn_Princess(~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Remote host closed the connection)
2022-05-28 10:47:00 +0200bahamas(~lucian@84.232.141.167)
2022-05-28 10:47:28 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-28 10:49:08 +0200gurkenglas(~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) (Ping timeout: 246 seconds)
2022-05-28 10:49:18 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net)
2022-05-28 10:49:48 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net) (Remote host closed the connection)
2022-05-28 10:51:14 +0200bahamas(~lucian@84.232.141.167) (Ping timeout: 246 seconds)
2022-05-28 10:52:07 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-05-28 10:52:52 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2022-05-28 10:53:37 +0200dsrt^(~dsrt@173-160-91-30-atlanta.hfc.comcastbusiness.net)
2022-05-28 10:57:11 +0200JannisO(~JannisO@89.233.86.138) (Remote host closed the connection)
2022-05-28 10:58:02 +0200money(~Gambino@user/polo)
2022-05-28 10:59:32 +0200money(~Gambino@user/polo) (Client Quit)
2022-05-28 11:00:13 +0200boxscape(~boxscape@user/boxscape) (Quit: You have been kicked for being idle)
2022-05-28 11:00:38 +0200motherfsck(~motherfsc@user/motherfsck) (Ping timeout: 255 seconds)
2022-05-28 11:04:14 +0200auri(~auri@fsf/member/auri)
2022-05-28 11:04:33 +0200unit73e(~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291)
2022-05-28 11:06:19 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net)
2022-05-28 11:07:04 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-28 11:08:18 +0200Kaiepi(~Kaiepi@156.34.47.253)
2022-05-28 11:10:26 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
2022-05-28 11:12:28 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-28 11:13:28 +0200akegalj(~akegalj@95.168.120.0)
2022-05-28 11:16:00 +0200tomboy64(~tomboy64@user/tomboy64)
2022-05-28 11:18:33 +0200jakalx(~jakalx@base.jakalx.net) ()
2022-05-28 11:19:11 +0200dsrt^(~dsrt@173-160-91-30-atlanta.hfc.comcastbusiness.net) (Ping timeout: 258 seconds)
2022-05-28 11:24:08 +0200jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 250 seconds)
2022-05-28 11:26:05 +0200littlebo1eep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-28 11:26:34 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-28 11:27:00 +0200Guest9029(~Guest90@2409:4071:4e18:ade2:c838:3d7:fb0a:e3a)
2022-05-28 11:27:59 +0200bahamas(~lucian@84.232.141.167)
2022-05-28 11:29:53 +0200Guest9029(~Guest90@2409:4071:4e18:ade2:c838:3d7:fb0a:e3a) (Client Quit)
2022-05-28 11:29:54 +0200akegalj(~akegalj@95.168.120.0) (Read error: Connection reset by peer)
2022-05-28 11:30:11 +0200[Leary](~Leary]@122-58-228-205-vdsl.sparkbb.co.nz) (Remote host closed the connection)
2022-05-28 11:30:39 +0200jakalx(~jakalx@base.jakalx.net)
2022-05-28 11:31:04 +0200mima(~mmh@net-5-95-238-67.cust.vodafonedsl.it) (Ping timeout: 258 seconds)
2022-05-28 11:31:34 +0200[Leary](~Leary]@122-58-228-205-vdsl.sparkbb.co.nz)
2022-05-28 11:31:39 +0200mima(~mmh@net-5-95-63-251.cust.vodafonedsl.it)
2022-05-28 11:32:36 +0200bahamas(~lucian@84.232.141.167) (Ping timeout: 258 seconds)
2022-05-28 11:36:14 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-05-28 11:37:03 +0200JannisO(~JannisO@89.233.86.138)
2022-05-28 11:37:10 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2022-05-28 11:38:07 +0200JannisO(~JannisO@89.233.86.138) (Client Quit)
2022-05-28 11:38:29 +0200JannisO(~JannisO@89.233.86.138)
2022-05-28 11:41:34 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-28 11:42:04 +0200littlebo1eep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-28 11:42:16 +0200dsrt^(~dsrt@173-160-91-30-atlanta.hfc.comcastbusiness.net)
2022-05-28 11:43:09 +0200econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2022-05-28 11:58:27 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net)
2022-05-28 12:00:46 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:5051:4e02:b5d9:aa15)
2022-05-28 12:02:52 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
2022-05-28 12:04:59 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:5051:4e02:b5d9:aa15) (Ping timeout: 255 seconds)
2022-05-28 12:06:41 +0200briandaed(~briandaed@109.95.143.129.r.toneticgroup.pl) (Remote host closed the connection)
2022-05-28 12:10:04 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-28 12:14:43 +0200gurkenglas(~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de)
2022-05-28 12:14:52 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-05-28 12:16:25 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-28 12:23:51 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2022-05-28 12:27:16 +0200Kaiepi(~Kaiepi@156.34.47.253) (Read error: Connection reset by peer)
2022-05-28 12:28:12 +0200Kaiepi(~Kaiepi@156.34.47.253)
2022-05-28 12:30:17 +0200 <fendor[m]> maerwald, if you depend on GHC directly, minor versions may require extra maintenance
2022-05-28 12:30:59 +0200Kaiepi(~Kaiepi@156.34.47.253) (Remote host closed the connection)
2022-05-28 12:31:20 +0200Kaiepi(~Kaiepi@156.34.47.253)
2022-05-28 12:32:56 +0200coot(~coot@213.134.190.95) (Quit: coot)
2022-05-28 12:33:28 +0200 <maerwald[m]> fendor: right
2022-05-28 12:34:42 +0200bahamas(~lucian@84.232.141.167)
2022-05-28 12:34:48 +0200[Leary](~Leary]@122-58-228-205-vdsl.sparkbb.co.nz) (Remote host closed the connection)
2022-05-28 12:37:01 +0200[Leary](~Leary]@122-58-228-205-vdsl.sparkbb.co.nz)
2022-05-28 12:39:02 +0200bahamas(~lucian@84.232.141.167) (Ping timeout: 246 seconds)
2022-05-28 12:39:46 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2022-05-28 12:46:07 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net)
2022-05-28 12:50:32 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
2022-05-28 12:51:17 +0200gurkenglas(~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) (Read error: Connection reset by peer)
2022-05-28 12:55:32 +0200mima(~mmh@net-5-95-63-251.cust.vodafonedsl.it) (Ping timeout: 260 seconds)
2022-05-28 13:02:13 +0200mima(~mmh@net-2-32-53-225.cust.vodafonedsl.it)
2022-05-28 13:03:43 +0200CiaoSen(~Jura@p200300c95731a0002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-05-28 13:04:59 +0200dsrt^(~dsrt@173-160-91-30-atlanta.hfc.comcastbusiness.net) (Ping timeout: 258 seconds)
2022-05-28 13:11:37 +0200mima(~mmh@net-2-32-53-225.cust.vodafonedsl.it) (Ping timeout: 244 seconds)
2022-05-28 13:13:23 +0200mima(~mmh@net-5-95-63-61.cust.vodafonedsl.it)
2022-05-28 13:22:04 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-28 13:22:46 +0200jgeerds(~jgeerds@55d45f48.access.ecotel.net)
2022-05-28 13:24:11 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 255 seconds)
2022-05-28 13:26:18 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-05-28 13:27:14 +0200dsrt^(~dsrt@173-160-91-30-atlanta.hfc.comcastbusiness.net)
2022-05-28 13:28:18 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-28 13:30:46 +0200dsrt^(~dsrt@173-160-91-30-atlanta.hfc.comcastbusiness.net) (Remote host closed the connection)
2022-05-28 13:46:33 +0200YourMom(~YourMom@S01069050ca4e3573.cg.shawcable.net) (Quit: Client closed)
2022-05-28 13:50:01 +0200nate1(~nate@98.45.169.16)
2022-05-28 13:51:55 +0200CiaoSen(~Jura@p200300c95731a0002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
2022-05-28 13:53:21 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-05-28 13:54:02 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-05-28 13:54:47 +0200nate1(~nate@98.45.169.16) (Ping timeout: 255 seconds)
2022-05-28 13:58:29 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net)
2022-05-28 14:00:46 +0200whatsupdoc(uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2022-05-28 14:03:08 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
2022-05-28 14:05:23 +0200AlexNoo_(~AlexNoo@178.34.160.101)
2022-05-28 14:08:15 +0200AlexZenon(~alzenon@178.34.163.188) (Ping timeout: 276 seconds)
2022-05-28 14:09:00 +0200AlexNoo(~AlexNoo@178.34.163.188) (Ping timeout: 258 seconds)
2022-05-28 14:09:33 +0200Alex_test(~al_test@178.34.163.188) (Ping timeout: 276 seconds)
2022-05-28 14:11:24 +0200AlexZenon(~alzenon@178.34.160.101)
2022-05-28 14:11:35 +0200trisolaran(~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2022-05-28 14:12:41 +0200Alex_test(~al_test@178.34.160.101)
2022-05-28 14:17:34 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-28 14:18:48 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-28 14:22:26 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2022-05-28 14:28:48 +0200zincy(~zincy@2a00:23c8:970c:4801:5ce3:174f:85c3:8411)
2022-05-28 14:36:37 +0200bontaq(~user@ool-45779fe5.dyn.optonline.net)
2022-05-28 14:41:53 +0200mima(~mmh@net-5-95-63-61.cust.vodafonedsl.it) (Ping timeout: 246 seconds)
2022-05-28 14:42:03 +0200mima(~mmh@net-5-95-63-61.cust.vodafonedsl.it)
2022-05-28 14:43:21 +0200polo(~money@user/polo)
2022-05-28 14:44:19 +0200polo(~money@user/polo) (Excess Flood)
2022-05-28 14:44:50 +0200AlexNoo_AlexNoo
2022-05-28 14:52:34 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-28 14:57:00 +0200moonsheep(~user@user/moonsheep)
2022-05-28 14:57:29 +0200 <moonsheep> How can I create an EntityDef from an already existing haskell type in persistent?
2022-05-28 14:58:05 +0200 <moonsheep> I can't use something like persistLowerCase because I'm trying to use a library type that's already defined
2022-05-28 14:58:36 +0200 <moonsheep> so I found derivePersistFieldJSON (my type does implement both ToJSON and FromJSON)
2022-05-28 14:58:44 +0200 <moonsheep> but that only creates a PersistField, I also need the PersistEntity
2022-05-28 14:58:55 +0200coot(~coot@213.134.190.95)
2022-05-28 15:01:34 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-05-28 15:05:50 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net)
2022-05-28 15:07:10 +0200jgeerds(~jgeerds@55d45f48.access.ecotel.net) (Ping timeout: 240 seconds)
2022-05-28 15:10:01 +0200benin(~benin@183.82.25.126) (Quit: The Lounge - https://thelounge.chat)
2022-05-28 15:10:14 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
2022-05-28 15:11:47 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net)
2022-05-28 15:12:20 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-28 15:16:06 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
2022-05-28 15:21:56 +0200coot(~coot@213.134.190.95) (Quit: coot)
2022-05-28 15:22:45 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-05-28 15:22:51 +0200unit73e(~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Ping timeout: 244 seconds)
2022-05-28 15:37:13 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-05-28 15:37:39 +0200machinedgod(~machinedg@24.105.81.50)
2022-05-28 15:39:05 +0200exarkun(~exarkun@user/exarkun) (Ping timeout: 248 seconds)
2022-05-28 15:40:37 +0200bahamas(~lucian@84.232.141.167)
2022-05-28 15:42:23 +0200zincy(~zincy@2a00:23c8:970c:4801:5ce3:174f:85c3:8411) (Remote host closed the connection)
2022-05-28 15:42:55 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-05-28 15:44:23 +0200coot(~coot@213.134.190.95)
2022-05-28 15:44:47 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-05-28 15:45:14 +0200mima(~mmh@net-5-95-63-61.cust.vodafonedsl.it) (Ping timeout: 246 seconds)
2022-05-28 15:47:20 +0200mima(~mmh@net-93-151-174-210.cust.dsl.teletu.it)
2022-05-28 15:49:26 +0200coot(~coot@213.134.190.95) (Quit: coot)
2022-05-28 15:55:31 +0200 <moonsheep> Where should I ask for help about Persistent?
2022-05-28 15:59:47 +0200king_gs(~Thunderbi@2806:103e:29:5eb8:48de:d3eb:9d44:3d55)
2022-05-28 15:59:51 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-05-28 16:00:21 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-05-28 16:00:47 +0200trisolaran(~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 255 seconds)
2022-05-28 16:02:01 +0200trisolaran(~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2022-05-28 16:02:15 +0200littlebo1eep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-28 16:02:34 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-28 16:03:39 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:5051:4e02:b5d9:aa15)
2022-05-28 16:07:59 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:5051:4e02:b5d9:aa15) (Ping timeout: 255 seconds)
2022-05-28 16:10:31 +0200 <geekosaur> this would normally be the channel to ask, but I think many people will be away until Tuesday
2022-05-28 16:11:00 +0200 <Bulby[m]> on todays episode of using languages for things they aren't meant to be used for...
2022-05-28 16:11:02 +0200 <Bulby[m]> game engine haskell?
2022-05-28 16:11:04 +0200littlebo1eep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-28 16:11:17 +0200king_gs(~Thunderbi@2806:103e:29:5eb8:48de:d3eb:9d44:3d55) (Ping timeout: 258 seconds)
2022-05-28 16:12:27 +0200 <maerwald> geekosaur: why?
2022-05-28 16:12:53 +0200 <geekosaur> Memorial Day weekend in the U.S.
2022-05-28 16:13:03 +0200 <geekosaur> and just a weekend for everyone else :)
2022-05-28 16:13:10 +0200 <Bulby[m]> oh it is? \o/
2022-05-28 16:13:40 +0200 <moonsheep> ah, I didn't know that thanks
2022-05-28 16:13:47 +0200 <Bulby[m]> i never keep track of time
2022-05-28 16:13:59 +0200 <geekosaur> Bulby[m], there are a few game engines around but not many; most people start from existing game engines (mostly written in C++)
2022-05-28 16:14:12 +0200 <Bulby[m]> any names?
2022-05-28 16:14:17 +0200 <geekosaur> https://gitlab.com/unit73e/sdl2-examples might be of interest according to my logs
2022-05-28 16:14:30 +0200 <moonsheep> Well for now I think I'll resort to the ultimate database: huge in-memory linked list ;)
2022-05-28 16:14:34 +0200 <geekosaur> Cale's employer has one on development but it's not ready for release yet
2022-05-28 16:14:48 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net)
2022-05-28 16:14:53 +0200 <Bulby[m]> SDL2... sounds fun 😉
2022-05-28 16:15:09 +0200 <moonsheep> The SDL2 bindigs are really nice, I've used them before
2022-05-28 16:15:28 +0200 <Bulby[m]> yes but i've never written direct sdl2 before
2022-05-28 16:15:40 +0200 <Bulby[m]> always something higher level, like haxeflixel
2022-05-28 16:15:53 +0200 <Bulby[m]> or unity (but unity is a different beast)
2022-05-28 16:16:20 +0200zebrag(~chris@user/zebrag)
2022-05-28 16:16:32 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-28 16:17:15 +0200king_gs(~Thunderbi@187.201.97.18)
2022-05-28 16:17:44 +0200 <moonsheep> Well, SDL2 will handle window and input and stuff (and can even do some basic rendering I think) but if you want to write a full game engine you'll need a graphics API
2022-05-28 16:18:15 +0200 <Bulby[m]> lovely... I knew haskell wouldn't be an ideal language for game engines
2022-05-28 16:18:21 +0200 <Bulby[m]> because IO and whatnot
2022-05-28 16:18:30 +0200 <geekosaur> SDL2 (including the Haskell bindings) also comes with SDL_Image
2022-05-28 16:19:10 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
2022-05-28 16:19:15 +0200 <geekosaur> actually I wouldn't necessarily consider that a shortcoming; it helps you keep your game logic separate from the UI logic
2022-05-28 16:19:16 +0200 <Bulby[m]> i see SDL.Video as a namespace...
2022-05-28 16:20:03 +0200 <Bulby[m]> true... I still have it engrained in my mind that OOP works for software dev
2022-05-28 16:20:13 +0200 <Bulby[m]> game dev, not software dev
2022-05-28 16:20:21 +0200 <geekosaur> there may also be a game engine (other than Cale's) based on FRP
2022-05-28 16:20:34 +0200moonsheep(~user@user/moonsheep) (ERC 5.4 (IRC client for GNU Emacs 28.1))
2022-05-28 16:20:34 +0200 <geekosaur> which is more Haskelly in nature
2022-05-28 16:20:40 +0200 <Bulby[m]> time to google FRP 🙂
2022-05-28 16:21:04 +0200 <Bulby[m]> functional reactive programming - reactive - like jsx???
2022-05-28 16:21:58 +0200 <geekosaur> not reactive as in the React JS framework
2022-05-28 16:22:13 +0200 <Bulby[m]> 🤔
2022-05-28 16:22:17 +0200 <geekosaur> FRP predates React by several years
2022-05-28 16:22:20 +0200 <Bulby[m]> define reactive then
2022-05-28 16:22:49 +0200 <geekosaur> basically a fancy way to say it's intended for user interfaces
2022-05-28 16:22:59 +0200 <Bulby[m]> ah
2022-05-28 16:23:04 +0200 <Bulby[m]> i can see that
2022-05-28 16:23:13 +0200 <Bulby[m]> i.e. reacts to the user
2022-05-28 16:23:18 +0200trisolaran(~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 244 seconds)
2022-05-28 16:23:55 +0200 <geekosaur> https://hackage.haskell.org/package/reactive-banana is one of the early FRP frameworks
2022-05-28 16:24:14 +0200 <Bulby[m]> reminds me - another question... I know ghc has a GHCJs target... so web haskell?
2022-05-28 16:24:19 +0200 <geekosaur> it's known to be a bit slow for things like gamedev; that's one of the things Cale and company are working on, iirc
2022-05-28 16:24:22 +0200 <Bulby[m]> i.e. webpages
2022-05-28 16:24:51 +0200 <Bulby[m]> wow it's actually actively updated \o/
2022-05-28 16:25:14 +0200 <geekosaur> right now ghcjs is a separate project. ghc is supposed to gain js and wasm backends in 9.6 although I'd not be surprised if they're not ready for production use until 9.8
2022-05-28 16:25:50 +0200 <Bulby[m]> ... remind me what GHCs default project is
2022-05-28 16:25:54 +0200 <Bulby[m]> default target
2022-05-28 16:26:16 +0200 <geekosaur> existing targets are -fasm (default) and -fllvm
2022-05-28 16:26:26 +0200mima(~mmh@net-93-151-174-210.cust.dsl.teletu.it) (Ping timeout: 255 seconds)
2022-05-28 16:26:26 +0200 <Bulby[m]> is it via C or does it directly compile. I see it goes thru `.hi` which isn't a `.o`
2022-05-28 16:26:32 +0200 <Bulby[m]> `-fllvm` \o/
2022-05-28 16:26:33 +0200 <geekosaur> up until ghc7 or so it compiled to C instead of directly producing assembly
2022-05-28 16:26:45 +0200 <Bulby[m]> so WASM is theoritically possible with llvm?
2022-05-28 16:27:04 +0200 <geekosaur> .hi goes along with a .o and includes things like Haskell type information that can't fit into a .o
2022-05-28 16:27:19 +0200 <Bulby[m]> interesting
2022-05-28 16:27:40 +0200 <Bulby[m]> but emscripten would work on llvm, no?
2022-05-28 16:27:40 +0200 <geekosaur> the llvm backend is fairly weak and iirc wasm produced via it is slow and doesn't work very well
2022-05-28 16:27:47 +0200 <Bulby[m]> oh
2022-05-28 16:28:04 +0200 <geekosaur> -fllvm is mostly intended to help porting ghc to a new architecture
2022-05-28 16:28:04 +0200mima(~mmh@net-37-179-177-102.cust.vodafonedsl.it)
2022-05-28 16:28:31 +0200 <Bulby[m]> directly producing ASM seems to be bad, no? GHC would have to know all arches it targets
2022-05-28 16:28:37 +0200 <geekosaur> you capture the generated files and compile them (opt/lld) on the target
2022-05-28 16:28:47 +0200 <Bulby[m]> altho LLVM is my latest fixation 🙂
2022-05-28 16:29:25 +0200 <geekosaur> ghc can do optimizations llvm can't, though: llvm isn't designed for lazy languages
2022-05-28 16:29:34 +0200 <Bulby[m]> ohhhh
2022-05-28 16:29:50 +0200 <Bulby[m]> I forget how special lazyness is 🙂
2022-05-28 16:29:54 +0200king_gs(~Thunderbi@187.201.97.18) (Quit: king_gs)
2022-05-28 16:30:18 +0200 <geekosaur> there's been discussion of improving llvm support but it would require a bunch of new support in llvm for lazy languages which only ghc (and maybe idris if they ever decided to target llvm) would ever use, so the llvm folks aren't interested
2022-05-28 16:30:33 +0200 <Bulby[m]> hm...
2022-05-28 16:30:45 +0200 <Bulby[m]> how would the JS target work, then?
2022-05-28 16:31:11 +0200 <geekosaur> lots of lambdas
2022-05-28 16:31:18 +0200 <Bulby[m]> figures
2022-05-28 16:31:27 +0200 <Bulby[m]> thunks are just lambdas?
2022-05-28 16:31:40 +0200 <geekosaur> that is, you can mostly simulate laziness by changing a value v into a function nil -> v
2022-05-28 16:31:43 +0200 <Bulby[m]> makes sense tbh
2022-05-28 16:32:31 +0200 <Bulby[m]> interesting - so no (stable) web haskell
2022-05-28 16:32:33 +0200 <int-e> > let x = 1+1 :: Integer in [x] -- x may be a thunk until forced... depends on the smartness of the compiler
2022-05-28 16:32:35 +0200 <lambdabot> [2]
2022-05-28 16:33:10 +0200 <int-e> so thunks are about delayed computations, not really about lambdas
2022-05-28 16:33:13 +0200 <Bulby[m]> there is a special ghci print that prints stuff w/o evaluating it
2022-05-28 16:33:43 +0200 <Bulby[m]> Prelude> :print x
2022-05-28 16:33:43 +0200 <Bulby[m]> x = (_t1::t1)
2022-05-28 16:33:44 +0200 <Bulby[m]> ...
2022-05-28 16:33:50 +0200 <Bulby[m]> oh
2022-05-28 16:33:55 +0200 <Bulby[m]> I didn't do the `[x]`
2022-05-28 16:34:23 +0200 <Bulby[m]> same deal - that means it's a thunk right
2022-05-28 16:34:31 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net)
2022-05-28 16:35:38 +0200 <Bulby[m]> web haskell is slow... ☹️
2022-05-28 16:36:23 +0200 <Bulby[m]> and I love abusing GHC extensions, so using a different compiler isn't a good decision either
2022-05-28 16:36:35 +0200 <Rembane> Bulby[m]: Have you checked out Purescript?
2022-05-28 16:36:46 +0200 <Bulby[m]> I have not 🙂
2022-05-28 16:37:12 +0200 <Bulby[m]> wait, the mainpage example looks like haskell
2022-05-28 16:37:23 +0200Bulby[m]sent a code block: https://libera.ems.host/_matrix/media/r0/download/libera.chat/73f3a8ff33df738c10b2ae9752ba92fdaf19…
2022-05-28 16:37:28 +0200 <Bulby[m]> oops, this is irc
2022-05-28 16:37:33 +0200 <Bulby[m]> sorry for the mess
2022-05-28 16:37:49 +0200 <Bulby[m]> https://www.purescript.org/
2022-05-28 16:37:54 +0200 <Bulby[m]> that's basically haskell
2022-05-28 16:38:16 +0200 <geekosaur> https://paste.tomsmeding.com/O48CfU3F
2022-05-28 16:38:25 +0200 <Rembane> Bulby[m]: Yeah, a subset of Haskell that's strict and compiles to Javascript.
2022-05-28 16:38:43 +0200 <Bulby[m]> \o/ subset of haskell?!? sign me up!
2022-05-28 16:38:48 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net) (Remote host closed the connection)
2022-05-28 16:38:55 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net)
2022-05-28 16:39:24 +0200 <Bulby[m]> and I assume it doesn't work with any GHC extensions tho
2022-05-28 16:39:28 +0200 <Bulby[m]> (which I make liberal use of)
2022-05-28 16:40:24 +0200 <geekosaur> right, but it has some of them natively
2022-05-28 16:41:01 +0200 <Bulby[m]> ghc hangs on that too
2022-05-28 16:41:01 +0200 <Bulby[m]> well
2022-05-28 16:41:02 +0200 <Bulby[m]> `main = print [1..]`
2022-05-28 16:41:02 +0200 <Bulby[m]> that means in purescript (if it's even possible), this would hang
2022-05-28 16:41:02 +0200 <Bulby[m]> um
2022-05-28 16:41:29 +0200 <Bulby[m]> you know what I mean, does it still handle infinite lists elegantly?
2022-05-28 16:41:42 +0200 <geekosaur> no because it's strict
2022-05-28 16:41:49 +0200 <int-e> well, that has infinite output... try this? `print $ take 10 [1..]`
2022-05-28 16:41:54 +0200 <Rembane> There are infinite lists in Purescript, but they are their own datatype and slightly messy.
2022-05-28 16:42:01 +0200 <geekosaur> (ghc won't handle that because you're trying to print it)
2022-05-28 16:42:08 +0200 <Bulby[m]> I know
2022-05-28 16:42:30 +0200 <geekosaur> > zip [1..] ['a'..'g']
2022-05-28 16:42:32 +0200 <lambdabot> [(1,'a'),(2,'b'),(3,'c'),(4,'d'),(5,'e'),(6,'f'),(7,'g')]
2022-05-28 16:42:51 +0200 <Bulby[m]> that's how zip works 😝
2022-05-28 16:43:06 +0200 <int-e> Ah. https://github.com/purescript/documentation/blob/master/language/Differences-from-Haskell.md "Unlike Haskell, PureScript is strictly evaluated."
2022-05-28 16:43:24 +0200 <geekosaur> but if the language were strict it'd try to evaluate [1..] to completion *before* running zip
2022-05-28 16:43:52 +0200 <int-e> No need to experiment. Also, that makes a lot of sense, since it covers a lot of useful territory and laziness makes compilation and execution quite a bit more messy.
2022-05-28 16:43:59 +0200 <Bulby[m]> interesting. I knew haskell would likely not have good libs for game engines and web. Was unaware that web didn't even work
2022-05-28 16:44:04 +0200 <Bulby[m]> well
2022-05-28 16:44:05 +0200 <Bulby[m]> it works
2022-05-28 16:44:08 +0200 <Bulby[m]> but
2022-05-28 16:44:10 +0200 <int-e> So... it's kind of an ML with a Haskell-like Syntax and type classes. :P
2022-05-28 16:44:18 +0200 <Bulby[m]> it
2022-05-28 16:44:21 +0200 <geekosaur> like I said, targeted for 9.6
2022-05-28 16:44:24 +0200 <Bulby[m]> it's a subset of haskell
2022-05-28 16:44:27 +0200 <geekosaur> both JS and wasm
2022-05-28 16:44:32 +0200 <Rembane> int-e: Yeah, Haskell's strict cousin. :D
2022-05-28 16:45:44 +0200 <Bulby[m]> WASM is slow as you said
2022-05-28 16:45:46 +0200 <Bulby[m]> via LLVM
2022-05-28 16:46:00 +0200 <geekosaur> but it will be compiling directly to wasm, not via llvm
2022-05-28 16:46:12 +0200mima(~mmh@net-37-179-177-102.cust.vodafonedsl.it) (Ping timeout: 276 seconds)
2022-05-28 16:46:23 +0200 <Bulby[m]> oh, 9.6 has that target?
2022-05-28 16:46:27 +0200 <geekosaur> it's going through llvm (at all) that is not great for Haskell because llvm doesn't really support compiling lazy languages
2022-05-28 16:47:05 +0200 <geekosaur> it is yet to be seen whether the backends will make 9.6 (9.4 is still in alpha, 9.6 is still a moving target) but that's the intent
2022-05-28 16:47:15 +0200 <Bulby[m]> hm
2022-05-28 16:47:21 +0200 <yushyin> https://gitlab.haskell.org/ghc/ghc/-/issues/21200 for reference
2022-05-28 16:47:32 +0200mima(~mmh@net-5-94-119-222.cust.vodafonedsl.it)
2022-05-28 16:47:43 +0200 <Bulby[m]> so no webapps for haskell rn? I think react-like haskell would work well
2022-05-28 16:48:54 +0200 <geekosaur> https://gitlab.haskell.org/ghc/ghc/-/milestones/375 is the milestone for 9.6.1, wasm backend is 2nd in the "open and active issues" column
2022-05-28 16:48:54 +0200 <Bulby[m]> i'll look into purescript - it probably has support for that
2022-05-28 16:49:24 +0200 <geekosaur> there is a separate ghcjs although development on it is stalled because all the work is going into the new backend
2022-05-28 16:49:24 +0200 <yushyin> well, there is https://github.com/obsidiansystems/obelisk ...
2022-05-28 16:50:25 +0200 <Bulby[m]> idk how I feel about it lol... haskell is cool but lazyness seems to be a major restriction in targets
2022-05-28 16:51:12 +0200 <Bulby[m]> I keep getting reminded of how every competent language can call C and export to C
2022-05-28 16:51:49 +0200 <geekosaur> haskell can do that
2022-05-28 16:51:56 +0200 <Bulby[m]> a C lib is a universal lib, at least natively
2022-05-28 16:51:59 +0200 <Bulby[m]> geekosaur: i know
2022-05-28 16:52:01 +0200 <Bulby[m]> oops
2022-05-28 16:52:04 +0200 <Bulby[m]> sorry for the irc mess
2022-05-28 16:52:45 +0200 <geekosaur> there's just no guarantee that a native Haskell type will make sense to C. but that's true of any language with a type system richer than C's
2022-05-28 16:53:07 +0200 <geekosaur> which is something of a low bar; even rust surpasses it
2022-05-28 16:53:28 +0200 <Bulby[m]> which is what the storable typeclass is for, no?
2022-05-28 16:53:32 +0200 <geekosaur> yes
2022-05-28 16:53:41 +0200 <Bulby[m]> well C is a procedural language, not oop
2022-05-28 16:53:45 +0200[Leary](~Leary]@122-58-228-205-vdsl.sparkbb.co.nz) (Remote host closed the connection)
2022-05-28 16:53:47 +0200mima(~mmh@net-5-94-119-222.cust.vodafonedsl.it) (Ping timeout: 240 seconds)
2022-05-28 16:53:56 +0200 <Bulby[m]> no classes, just structs
2022-05-28 16:54:44 +0200mima(~mmh@net-5-94-119-222.cust.vodafonedsl.it)
2022-05-28 16:55:17 +0200[Leary](~Leary]@122-58-228-205-vdsl.sparkbb.co.nz)
2022-05-28 16:55:27 +0200 <Bulby[m]> rust's traits are kinda like haskell type classes afaik
2022-05-28 16:57:28 +0200 <Bulby[m]> which is why rust is another one of my favorites - it's a bit OOP but still has functional flair
2022-05-28 16:57:31 +0200 <Bulby[m]> no
2022-05-28 16:57:46 +0200 <Bulby[m]> it's procedural* with functional flair
2022-05-28 17:00:15 +0200 <Bulby[m]> ok, so reactive banana doesn't work as a game engine but as a UI 🤔
2022-05-28 17:00:34 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-28 17:01:39 +0200 <Bulby[m]> very informative, love learning about this stuf
2022-05-28 17:04:11 +0200machinedgod(~machinedg@24.105.81.50) (Ping timeout: 258 seconds)
2022-05-28 17:04:50 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2022-05-28 17:04:53 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit)
2022-05-28 17:06:29 +0200bahamas(~lucian@84.232.141.167) (Ping timeout: 258 seconds)
2022-05-28 17:07:47 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2022-05-28 17:08:40 +0200Guest92(~Guest92@31.9.104.84)
2022-05-28 17:10:07 +0200Guest92(~Guest92@31.9.104.84) (Client Quit)
2022-05-28 17:18:44 +0200jollygood2(~bc8147f2@cerf.good1.com)
2022-05-28 17:20:06 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:5051:4e02:b5d9:aa15)
2022-05-28 17:22:46 +0200Xe(~cadey@tailscale/xe) (Quit: WeeChat 3.5)
2022-05-28 17:23:38 +0200harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
2022-05-28 17:24:29 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:5051:4e02:b5d9:aa15) (Ping timeout: 255 seconds)
2022-05-28 17:25:23 +0200coot(~coot@213.134.190.95)
2022-05-28 17:26:53 +0200Xe(~cadey@tailscale/xe)
2022-05-28 17:28:19 +0200 <zzz> can I write this main function in a more elegant way? https://paste.jrvieira.com/1653751599458
2022-05-28 17:29:44 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2022-05-28 17:30:19 +0200 <zzz> [w,h,from,to,_] <- args -- this is no good because i dont want to accept a wrong number of arguments, and i'm avoiding if ... else inside a do block
2022-05-28 17:30:51 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2022-05-28 17:31:28 +0200 <zzz> i meant (w:h:from:to:_) obviously
2022-05-28 17:33:38 +0200jakalx(~jakalx@base.jakalx.net)
2022-05-28 17:34:43 +0200 <[exa]> zzz: if you want 4 items of the same type, patternmatching [w,h,f,t] is IMO allright
2022-05-28 17:35:34 +0200 <[Leary]> I would replace `go args` with the equivalent case-of expression, but it's pretty much fine as-is.
2022-05-28 17:37:16 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
2022-05-28 17:38:49 +0200 <hpc> if this was a more sophisticated program, something like optparse-applicative might help you out with adding --help output and such
2022-05-28 17:38:57 +0200 <hpc> but for just writing the simplest possible thing, what you have is pretty clean
2022-05-28 17:39:55 +0200 <zzz> thank you all
2022-05-28 17:40:52 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2022-05-28 17:41:30 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:5051:4e02:b5d9:aa15)
2022-05-28 17:43:43 +0200kadobanana(~mud@user/kadoban) (Quit: quit)
2022-05-28 17:44:37 +0200 <zzz> i personally avoid writing case expressions but i agree this would be a good case for their value
2022-05-28 17:46:47 +0200mud(~mud@user/kadoban)
2022-05-28 17:47:34 +0200__monty__(~toonn@user/toonn)
2022-05-28 17:49:11 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net)
2022-05-28 17:50:56 +0200 <maerwald> case expressions are the hole point of Haskell :D
2022-05-28 17:51:27 +0200 <maerwald> if you look at GHC core, it's all case expressions
2022-05-28 17:51:32 +0200nate1(~nate@98.45.169.16)
2022-05-28 17:53:24 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
2022-05-28 17:54:40 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:5051:4e02:b5d9:aa15) (Remote host closed the connection)
2022-05-28 17:56:40 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net)
2022-05-28 17:57:03 +0200nate1(~nate@98.45.169.16) (Ping timeout: 276 seconds)
2022-05-28 17:58:03 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:5051:4e02:b5d9:aa15)
2022-05-28 18:01:05 +0200 <zzz> i like things simple. pattern matching lets me ignore that case ecpressions even exist
2022-05-28 18:01:28 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
2022-05-28 18:02:01 +0200 <zzz> i try to use a minimal subset of syntax features
2022-05-28 18:03:36 +0200 <zzz> to the point where i avoid if else and `fun x = ... ; fun y = ...`
2022-05-28 18:04:04 +0200 <zzz> but i assume that it's kind of a disease :p
2022-05-28 18:05:09 +0200 <zzz> took me a while to convince myself that do notation is not that bad
2022-05-28 18:06:46 +0200 <zzz> i get out of my way to avoid let in favour of where
2022-05-28 18:07:48 +0200 <zzz> and for a time even used GADT notation for all data declarations just to maximize uniformity
2022-05-28 18:08:28 +0200 <hpc> i like GADT syntax
2022-05-28 18:08:53 +0200 <hpc> the type signatures are nice, and there's less mixing of levels within a single line of code which always used to trip me up
2022-05-28 18:09:27 +0200 <hpc> a regular data definition reads as "keyword Type type type = Data type type | Data type | ..."
2022-05-28 18:11:40 +0200justsomeguy(~justsomeg@user/justsomeguy)
2022-05-28 18:13:24 +0200 <monochrom> If you value both minimalism and completeness, you would prefer case expressions pervasively and forget that "f Nothing = ... ; f (Just a) = ..." existed.
2022-05-28 18:13:46 +0200 <monochrom> s/value/valued/
2022-05-28 18:13:54 +0200 <[Leary]> My issue isn't really about case-of; it's more that the binding of `go` is entirely superfluous---you're essentially writing `... = x where x = ...`.
2022-05-28 18:14:15 +0200 <[Leary]> And yeah, if you really want minimal syntax, you should try a sugar-free diet.
2022-05-28 18:14:56 +0200 <zzz> i agree
2022-05-28 18:15:00 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net)
2022-05-28 18:15:38 +0200 <int-e> "An Iota program is either an i, or a * followed by two Iota (sub-)programs." https://esolangs.org/wiki/Iota
2022-05-28 18:16:02 +0200 <int-e> now that's some minimal syntax
2022-05-28 18:16:18 +0200 <[Leary]> Is that just SKI reduced to SKK or something?
2022-05-28 18:16:45 +0200 <int-e> No, it's worse, it uses a single combinator from which S and K can be obtained by applications.
2022-05-28 18:16:48 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2022-05-28 18:17:06 +0200 <int-e> well, pseudo-combinator
2022-05-28 18:17:09 +0200machinedgod(~machinedg@24.105.81.50)
2022-05-28 18:17:37 +0200mvk(~mvk@2607:fea8:5ce3:8500::ba9a)
2022-05-28 18:17:38 +0200 <zzz> one has to find a balance between curruption and insanity
2022-05-28 18:17:44 +0200 <int-e> (it's a lambda term)
2022-05-28 18:18:20 +0200 <int-e> I think you can have both.
2022-05-28 18:18:22 +0200 <int-e> :)
2022-05-28 18:19:26 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
2022-05-28 18:21:57 +0200bahamas(~lucian@84.232.141.167)
2022-05-28 18:22:26 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2022-05-28 18:24:00 +0200 <zzz> :)
2022-05-28 18:26:35 +0200vglfr(~vglfr@coupling.penchant.volia.net)
2022-05-28 18:30:46 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net)
2022-05-28 18:31:56 +0200justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.4)
2022-05-28 18:35:12 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
2022-05-28 18:39:20 +0200 <hololeap> is there a way to override source-repository-package in my cabal.project using my cabal.project.local? I have the package downloaded locally and I don't want it to try to connect to the internet every time I run cabal
2022-05-28 18:40:10 +0200 <hololeap> I have "packages: ../my-pkg/" in cabal.project.local, but it still tries to connect every time
2022-05-28 18:41:23 +0200 <hololeap> I also added "ignore-project: True" to cabal.project.local
2022-05-28 18:46:30 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net)
2022-05-28 18:47:12 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2022-05-28 18:49:14 +0200 <hololeap> "offline: True" doesn't work either...
2022-05-28 18:54:03 +0200econo(uid147250@user/econo)
2022-05-28 18:54:33 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-05-28 18:58:53 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2022-05-28 18:59:21 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2022-05-28 19:01:44 +0200harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
2022-05-28 19:02:18 +0200Infinite(~Infinite@49.39.112.232)
2022-05-28 19:03:51 +0200 <[exa]> hololeap: I assume you use the local repo location in source-repository-package?
2022-05-28 19:04:20 +0200 <[Leary]> The docs say later entries override earlier ones, so that /should/ work. But according to my test, it doesn't.
2022-05-28 19:04:53 +0200 <hololeap> no, I want to have the github location in source-repository-package in cabal.project, so that I can use it when running github tests
2022-05-28 19:05:44 +0200 <hololeap> but my local internet is flakey and I want to override this in my cabal.project.local, so that it doesn't try to connect to github every time I run `cabal build`
2022-05-28 19:07:01 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-05-28 19:07:16 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2022-05-28 19:08:30 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-05-28 19:10:19 +0200 <shapr> hi tromp, I have found a fun application of kolmogorov complexity
2022-05-28 19:10:35 +0200 <shapr> at least, I think it fits into this thing I'm doing
2022-05-28 19:11:44 +0200 <Rembane> shapr: Explain it to us! :D
2022-05-28 19:12:27 +0200 <shapr> uh, I decided to do metaprogramming with logo (the turtle drawing language)
2022-05-28 19:12:49 +0200 <shapr> I purchased a remarkable 2, but you have to pay $10 a month to get handwriting recognition
2022-05-28 19:12:56 +0200 <shapr> so I figured I'd look into building my own
2022-05-28 19:13:05 +0200 <Rembane> By programming a turtle?
2022-05-28 19:13:14 +0200 <shapr> and one of my wacky ideas has been to construct a programming language that's designed to be handwritten
2022-05-28 19:13:24 +0200 <shapr> and then recognized and evaluated
2022-05-28 19:13:33 +0200 <shapr> I came up with a list of five, one of which was logo
2022-05-28 19:13:51 +0200 <shapr> (I'd seen the recent xkcd april fool's puzzle: https://github.com/theinternetftw/xkcd2601 )
2022-05-28 19:13:51 +0200zebrag(~chris@user/zebrag) (Quit: Konversation terminated!)
2022-05-28 19:14:25 +0200 <shapr> I realized I could stick with only the drawing parts of logo, and evaluate logo to produce more logo
2022-05-28 19:14:37 +0200 <Rembane> Recursive logo! Super powerful!
2022-05-28 19:15:12 +0200 <shapr> someone else suggested I use graphical symbols instead of words `repeat 3 [ forward 10 right 60]`
2022-05-28 19:15:49 +0200 <shapr> I realized that the 'best' design here is the one where the glyphs are most easily drawn with logo
2022-05-28 19:16:43 +0200 <shapr> so I started out with ^ as forward, ⌈ as turn right, ⌉ as turn left
2022-05-28 19:17:04 +0200 <shapr> and I decided to try baking the values/amounts into the repeat command, so △ is `repeat 3`
2022-05-28 19:17:15 +0200 <shapr> and then I tried to draw all of the symbols using only the symbols
2022-05-28 19:18:01 +0200 <shapr> Kolmogorov complexity came up when I realized I'm looking for the least fixed point of: instruction count to draw each instruction, over every possible design
2022-05-28 19:19:26 +0200 <shapr> for my first design, I can draw △ with △ [ ^ ⎔ ⌈ ]
2022-05-28 19:19:49 +0200 <shapr> though that assumes the repeat commands baked into a polygon can be applied to a single glyph as well as a quoted phrase
2022-05-28 19:20:14 +0200 <shapr> Rembane: anyway, what do you think?
2022-05-28 19:20:34 +0200 <shapr> I found bugs in my first take on the design, and the second, and I'm on a third that fixes some things, and breaks others :-/
2022-05-28 19:20:56 +0200 <shapr> for example, the first take can't easily produce ⬠ or ⯃ because there's no way to do things twice!
2022-05-28 19:21:13 +0200 <Rembane> shapr: This is mind bending and amazing. It makes me super happy! :D
2022-05-28 19:21:19 +0200 <shapr> yay! I'm glad you enjoy it!
2022-05-28 19:21:30 +0200 <shapr> I was doing something else entirely, then this idea attacked my brain and won't let go
2022-05-28 19:21:44 +0200 <Rembane> shapr: does this mean that you're building proto-Logo in many levels until you have a proper Logo?
2022-05-28 19:21:55 +0200 <shapr> what's a proto-logo ?
2022-05-28 19:22:31 +0200 <shapr> My goal is to find the least fixpoint of glyphs that can draw those same glyphs
2022-05-28 19:22:37 +0200 <Rembane> A subset of logo in syntax and/or semantics
2022-05-28 19:22:45 +0200 <shapr> yes, logo turns out to be large
2022-05-28 19:23:09 +0200 <shapr> on the good side, did you know the original logo turtles had headlights and whistles?
2022-05-28 19:23:18 +0200 <shapr> if you look at section 12.3 of http://bitsavers.org/pdf/mit/ai/aim/AIM-313.pdf there are many surprises
2022-05-28 19:23:23 +0200 <Rembane> I didn't! That's lovely!
2022-05-28 19:23:55 +0200 <shapr> I think there's some connection to stack based languages in here, but I can't quite see it.
2022-05-28 19:24:06 +0200 <shapr> There's definitely a connection to lisp, since logo is pretty much a DSL inside lisp
2022-05-28 19:24:54 +0200 <Rembane> What parts of logo are smelling like stack based languages?
2022-05-28 19:25:14 +0200 <shapr> well, trying to find a way to draw things twice without having functions
2022-05-28 19:25:35 +0200 <shapr> it's looking like instructions may work better if they modify their next argument on a stack?
2022-05-28 19:26:04 +0200 <Rembane> That seems reasonable.
2022-05-28 19:26:09 +0200 <shapr> my first design baked in the value of 10 for each instruction, so ^ was `forward 10`
2022-05-28 19:26:32 +0200 <shapr> but as I said, I couldn't draw pentagons or octagons because the internal angles need a multiplier of 2 to get right
2022-05-28 19:26:37 +0200 <shapr> (I could be wrong about all this)
2022-05-28 19:26:59 +0200 <shapr> so I tried baking in the default value of an instruction as 2 but then I needed more than one factor of 2 in other places
2022-05-28 19:27:33 +0200 <shapr> I've been rolling with the repeat commands as multipliers of each other, vaguely stack like
2022-05-28 19:28:00 +0200 <shapr> so ⎔ which is "repeat 6 times" would then be ⎔ [ ^ △ ⌷ ⌈ ]
2022-05-28 19:28:18 +0200 <juri_> use primes? ;)
2022-05-28 19:28:30 +0200 <shapr> which is, `repeat 6 [ forward 10 repeat 3 [ repeat 4 [ right 10 ]]]`
2022-05-28 19:28:35 +0200 <Rembane> Could it be that there's a stack in your implementation because stacks are quite nice to have when you need somewhere to put arguments when they must be implicit?
2022-05-28 19:28:41 +0200 <shapr> juri_: that's an idea, where each indexes into the set of primes
2022-05-28 19:28:52 +0200 <shapr> Rembane: could be, I'm not sure
2022-05-28 19:29:51 +0200 <shapr> someone pointed out that the two side polygon is, by induction, `repeat 2 [ forward 10 right 180 ]`
2022-05-28 19:29:59 +0200 <shapr> and that's just |
2022-05-28 19:30:08 +0200 <shapr> so that could give me a factor of 2
2022-05-28 19:30:31 +0200 <shapr> they also suggested indexing into the primes, but I'm still not convinced about that
2022-05-28 19:30:56 +0200 <shapr> this person also suggested a reciprocal operator N
2022-05-28 19:31:45 +0200 <shapr> for that, if you allow self referential definitions, then ⬠ is `[ ^ N ⬠ ⌈ ]`
2022-05-28 19:32:11 +0200 <shapr> anyway, this is a crazy fun brain twisty project, and I hope I can get it working in the next week
2022-05-28 19:35:53 +0200coot(~coot@213.134.190.95) (Quit: coot)
2022-05-28 19:37:52 +0200 <juri_> shapr: remind me to rant at you about slicing in scad at some point in the future. :)
2022-05-28 19:41:24 +0200 <shapr> now you have my interest :-)
2022-05-28 19:41:52 +0200 <shapr> The slow part of designing the optimal metaprogrammed logo is that I have to reimplement all of the glyphs after each change
2022-05-28 19:42:15 +0200 <shapr> I wonder if I could use the SMT solver trick to come up with minimal definitions for each change and build a tree of possibilities?
2022-05-28 19:47:37 +0200whatsupdoc(uid509081@id-509081.hampstead.irccloud.com)
2022-05-28 19:47:39 +0200 <juri_> shapr: I've been writing a slicer for the last few years. it's written using projective geometric algebra, and a whole lot of wishful thinking. the main loop already has a scad interpreter available, but the geometry / language problems there.. are going to be a lot of fun for whoever gets to them. :)
2022-05-28 19:48:20 +0200 <juri_> I'm up to my eyeballs in the geometry library. i can see the light at the end of the tunnel, but i'm measuring it in discrete photons. :)
2022-05-28 19:48:40 +0200 <shapr> yikes
2022-05-28 19:49:21 +0200 <darkling> Sounds like fun. :)
2022-05-28 19:50:07 +0200 <juri_> it has been! PGA, FPUs, and precise geometry (not game-geometry) are not playing well.. but i think i have a hand on it.
2022-05-28 19:51:35 +0200 <darkling> Yeah, I can imagine the numerics are horrible.
2022-05-28 19:51:57 +0200 <juri_> I'm learning new curse words, yen.
2022-05-28 19:52:00 +0200 <juri_> yes.
2022-05-28 19:54:07 +0200 <darkling> Look on the bright side -- at least you're not trying to do molecular dynamics or ab initio quantum mechanics. :)
2022-05-28 19:54:18 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-05-28 19:54:18 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-05-28 19:54:18 +0200wroathe(~wroathe@user/wroathe)
2022-05-28 19:54:52 +0200 <EvanR> at least quantum mechanics doesn't have any corners?
2022-05-28 19:55:12 +0200 <darkling> I once went to a seminar on fluid dynamics. Not just fluid dynamics, but relativistic magnetohydrodynamics. Never again. :)
2022-05-28 19:55:49 +0200 <EvanR> so you have a chance of doing harmonic analysis
2022-05-28 19:56:20 +0200mokee(~mokee@37.228.215.185)
2022-05-28 19:56:49 +0200 <juri_> nope! and some of the diagrams are pretty. i added an export to ganja.js, so i could see what i'm doing. https://enkimute.github.io/ganja.js/examples/coffeeshop.html#uz2hGv6s0
2022-05-28 19:57:21 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-05-28 19:57:29 +0200 <juri_> I'm implementing straight skeletons, which AFAICT is the first time this has been done in PGA.
2022-05-28 19:57:36 +0200 <darkling> Nice. Do you have that as a t-shirt? :)
2022-05-28 19:57:50 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 258 seconds)
2022-05-28 19:58:13 +0200 <juri_> or in haskell.
2022-05-28 19:58:43 +0200 <juri_> i'm way off the edge of what's sane, in a project that's taken years. wheee!
2022-05-28 19:58:59 +0200juri_gets out her single photon detector.
2022-05-28 19:59:01 +0200 <shapr> if I can get this metalogo working, I want to figure out how to increase the semantic density with something like icelandic magical staves
2022-05-28 19:59:38 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-05-28 19:59:54 +0200 <geekosaur[m]> Runic?
2022-05-28 20:00:11 +0200 <shapr> yup
2022-05-28 20:02:12 +0200 <Rembane> Before you know it you'll have summoned the great old ones
2022-05-28 20:02:18 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:5051:4e02:b5d9:aa15) (Remote host closed the connection)
2022-05-28 20:03:32 +0200 <darkling> And then the Laundry will recruit you...
2022-05-28 20:04:16 +0200 <Rembane> Exactly!
2022-05-28 20:04:24 +0200 <Rembane> Say hi to Bob Howard from me!
2022-05-28 20:10:10 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
2022-05-28 20:14:29 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-05-28 20:14:56 +0200Infinite(~Infinite@49.39.112.232) (Ping timeout: 252 seconds)
2022-05-28 20:15:17 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 244 seconds)
2022-05-28 20:16:33 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:5051:4e02:b5d9:aa15)
2022-05-28 20:21:48 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net)
2022-05-28 20:21:50 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 240 seconds)
2022-05-28 20:22:31 +0200tired(~tired@user/tired) (Quit: /)
2022-05-28 20:23:59 +0200tired(~tired@user/tired)
2022-05-28 20:25:56 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
2022-05-28 20:25:56 +0200joo-_(~joo-_@fsf/member/joo--) (Ping timeout: 246 seconds)
2022-05-28 20:26:43 +0200jgeerds(~jgeerds@55d45f48.access.ecotel.net)
2022-05-28 20:28:02 +0200joo-_(~joo-_@87-49-44-12-mobile.dk.customer.tdc.net)
2022-05-28 20:28:02 +0200joo-_(~joo-_@87-49-44-12-mobile.dk.customer.tdc.net) (Changing host)
2022-05-28 20:28:02 +0200joo-_(~joo-_@fsf/member/joo--)
2022-05-28 20:30:24 +0200Sgeo(~Sgeo@user/sgeo)
2022-05-28 20:32:54 +0200Demmy(~Demmy@102.89.34.232)
2022-05-28 20:37:08 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 246 seconds)
2022-05-28 20:38:26 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net)
2022-05-28 20:42:48 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
2022-05-28 20:50:47 +0200bontaq(~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 246 seconds)
2022-05-28 20:51:21 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2022-05-28 20:54:09 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net)
2022-05-28 21:00:46 +0200Demmy(~Demmy@102.89.34.232) (Ping timeout: 252 seconds)
2022-05-28 21:03:02 +0200obabo(~obabo@563BF107.catv.pool.telekom.hu) (Ping timeout: 246 seconds)
2022-05-28 21:05:27 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-05-28 21:05:33 +0200 <Bulby[m]> https://hackage.haskell.org/package/megaparsec-9.2.1/docs/Text-Megaparsec.html#v:oneOf why is this less performant
2022-05-28 21:05:35 +0200 <Bulby[m]> specifically on lists
2022-05-28 21:06:40 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-05-28 21:09:08 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-05-28 21:10:24 +0200 <EvanR> the lambda shown in the satisfy example will get compiled to a fast test
2022-05-28 21:10:43 +0200 <EvanR> (`elem` whateverlist) might not
2022-05-28 21:10:53 +0200 <EvanR> especially if whateverlist is unknown
2022-05-28 21:10:54 +0200 <Bulby[m]> get compiled to... makes sense
2022-05-28 21:11:50 +0200 <Bulby[m]> maybe template haskell could do some witchcraft here?
2022-05-28 21:12:23 +0200 <Bulby[m]> e.g. `[foo|'"|]` will compile to that lambda
2022-05-28 21:13:32 +0200 <EvanR> template haskell is like a nuclear option
2022-05-28 21:13:47 +0200 <Bulby[m]> 🤔 why
2022-05-28 21:13:49 +0200 <hpc> it's the only way to be sure?
2022-05-28 21:14:08 +0200 <jean-paul[m]> Was ghc in 2013 happy with... (full message at https://libera.ems.host/_matrix/media/r0/download/libera.chat/17d01ccac428e8fdbecddeea090d1b5cb906…)
2022-05-28 21:14:25 +0200 <EvanR> if there's a better way to do it, then going template haskell leads you into high compilation times and other complexities
2022-05-28 21:14:36 +0200 <EvanR> on balance might seem silly
2022-05-28 21:14:51 +0200 <Bulby[m]> lol
2022-05-28 21:15:02 +0200wroathe(~wroathe@50-205-197-50-static.hfc.comcastbusiness.net)
2022-05-28 21:15:02 +0200wroathe(~wroathe@50-205-197-50-static.hfc.comcastbusiness.net) (Changing host)
2022-05-28 21:15:02 +0200wroathe(~wroathe@user/wroathe)
2022-05-28 21:15:13 +0200 <Bulby[m]> high compilation time? makes sense ig
2022-05-28 21:15:25 +0200 <EvanR> and if there's a better way to do it, often I notice the better way is more satisfying anyway xD
2022-05-28 21:15:50 +0200 <Bulby[m]> then how would one make it optimize well 🤔
2022-05-28 21:18:06 +0200 <EvanR> what are you even trying to do again
2022-05-28 21:19:05 +0200 <Bulby[m]> make `oneOf` faster by compiling `[oneOfQ|'"]` to `satisfy (\x -> x == '\'' || x == '\"')`
2022-05-28 21:19:10 +0200 <Bulby[m]> oops
2022-05-28 21:19:16 +0200 <EvanR> oh that's easy
2022-05-28 21:19:19 +0200 <Bulby[m]> pretend there is a `|` before that `]`
2022-05-28 21:19:32 +0200 <EvanR> write satisfy (\x -> x == '\'' || x == '\"') instead
2022-05-28 21:19:43 +0200 <Bulby[m]> lol
2022-05-28 21:19:47 +0200 <Bulby[m]> i'm talking generally
2022-05-28 21:21:15 +0200 <EvanR> step 1, in the whole parser is this the thing that is the actual bottleneck
2022-05-28 21:21:30 +0200 <Bulby[m]> HAAHAHH
2022-05-28 21:21:33 +0200 <Bulby[m]> LOL
2022-05-28 21:21:44 +0200 <Bulby[m]> pick your battles 😉
2022-05-28 21:21:59 +0200 <Bulby[m]> i was just curious as why it was less performant
2022-05-28 21:22:30 +0200 <EvanR> ghc not smart enough to rewrite a list algorithm as an equivalent couple of tests, I'm guessing
2022-05-28 21:28:16 +0200 <c_wraith> in general, recursive traversals don't get inlined, even if the recursion is over a small constant
2022-05-28 21:33:53 +0200 <[exa]> inlining recursive stuff is highly unpopular among inliners
2022-05-28 21:34:04 +0200 <Bulby[m]> oh, right
2022-05-28 21:34:18 +0200 <[exa]> "am I going to create ∞ of code?"
2022-05-28 21:34:55 +0200 <Bulby[m]> why is template haskell so slow to compile then
2022-05-28 21:35:33 +0200 <c_wraith> it's slow to compile because it starts a ghci interpreter to run the TH code
2022-05-28 21:35:46 +0200 <Bulby[m]> 😱
2022-05-28 21:35:48 +0200 <Bulby[m]> WHAT
2022-05-28 21:35:55 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:5051:4e02:b5d9:aa15) (Remote host closed the connection)
2022-05-28 21:35:56 +0200 <c_wraith> what else is it going to do?
2022-05-28 21:36:00 +0200 <c_wraith> it needs to run haskell code
2022-05-28 21:36:33 +0200 <Bulby[m]> oh right it needs to run `[foo|a|]` foo
2022-05-28 21:36:46 +0200 <c_wraith> and in fact, *arbitrary* haskell code. TH can do anything at compile time
2022-05-28 21:36:59 +0200jollygood2(~bc8147f2@cerf.good1.com) (Ping timeout: 246 seconds)
2022-05-28 21:39:21 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:5051:4e02:b5d9:aa15)
2022-05-28 21:39:36 +0200exarkun(~exarkun@user/exarkun)
2022-05-28 21:39:38 +0200Inst(~Liam@2601:6c4:4080:3f80:14ba:6ec2:95f7:e2c) (Ping timeout: 255 seconds)
2022-05-28 21:40:36 +0200kenaryn(~aurele@89-88-44-27.abo.bbox.fr)
2022-05-28 21:44:41 +0200mokee(~mokee@37.228.215.185) (Quit: off)
2022-05-28 21:46:28 +0200king_gs(~Thunderbi@2806:103e:29:5eb8:48de:d3eb:9d44:3d55)
2022-05-28 21:46:50 +0200Inst(~Liam@c-98-208-218-119.hsd1.fl.comcast.net)
2022-05-28 21:47:50 +0200SauvinLemniscate
2022-05-28 21:51:09 +0200LemniscateSauvin
2022-05-28 21:52:01 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-05-28 21:52:47 +0200machinedgod(~machinedg@24.105.81.50) (Ping timeout: 260 seconds)
2022-05-28 21:53:10 +0200nate1(~nate@98.45.169.16)
2022-05-28 21:54:13 +0200 <EvanR> does arbitrary haskell code include... code with more TH in it, and then more arbitrary haskell code with tertiary TH in it etc
2022-05-28 21:54:33 +0200 <Bulby[m]> /o\
2022-05-28 21:55:50 +0200Inst(~Liam@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 255 seconds)
2022-05-28 21:57:11 +0200bahamas(~lucian@84.232.141.167) (Ping timeout: 255 seconds)
2022-05-28 21:57:38 +0200nate1(~nate@98.45.169.16) (Ping timeout: 246 seconds)
2022-05-28 21:59:26 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
2022-05-28 22:01:58 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:5051:4e02:b5d9:aa15) (Remote host closed the connection)
2022-05-28 22:02:08 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 255 seconds)
2022-05-28 22:02:53 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds)
2022-05-28 22:03:27 +0200 <maerwald> haskell is all about correctnes... xD
2022-05-28 22:06:41 +0200gehmehgeh(~user@user/gehmehgeh)
2022-05-28 22:11:24 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net)
2022-05-28 22:14:53 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net) (Remote host closed the connection)
2022-05-28 22:15:10 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net)
2022-05-28 22:15:45 +0200wroathe(~wroathe@50-205-197-50-static.hfc.comcastbusiness.net)
2022-05-28 22:15:45 +0200wroathe(~wroathe@50-205-197-50-static.hfc.comcastbusiness.net) (Changing host)
2022-05-28 22:15:45 +0200wroathe(~wroathe@user/wroathe)
2022-05-28 22:16:36 +0200oo_miguel(~pi@77.252.47.226) (Ping timeout: 258 seconds)
2022-05-28 22:18:39 +0200oo_miguel(~pi@77.252.47.226)
2022-05-28 22:20:40 +0200_ht(~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection)
2022-05-28 22:21:26 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
2022-05-28 22:22:04 +0200fef(~thedawn@user/thedawn) (Quit: Killer)
2022-05-28 22:29:35 +0200hpc(~juzz@ip98-169-35-13.dc.dc.cox.net) (Ping timeout: 255 seconds)
2022-05-28 22:31:33 +0200hpc(~juzz@ip98-169-35-13.dc.dc.cox.net)
2022-05-28 22:33:30 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net)
2022-05-28 22:34:49 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:5051:4e02:b5d9:aa15)
2022-05-28 22:35:47 +0200hpc(~juzz@ip98-169-35-13.dc.dc.cox.net) (Ping timeout: 246 seconds)
2022-05-28 22:37:56 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
2022-05-28 22:38:14 +0200notzmv(~zmv@user/notzmv)
2022-05-28 22:39:48 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 276 seconds)
2022-05-28 22:42:59 +0200hpc(~juzz@ip98-169-35-13.dc.dc.cox.net)
2022-05-28 22:45:46 +0200trisolaran(~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2022-05-28 22:46:55 +0200phma(~phma@2001:5b0:211c:55f8:2664:c781:c87b:c562) (Read error: Connection reset by peer)
2022-05-28 22:48:00 +0200phma(~phma@2001:5b0:2172:ae88:fc08:5bd9:8059:e51c)
2022-05-28 22:48:54 +0200moonsheep(~user@user/moonsheep)
2022-05-28 22:49:52 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net)
2022-05-28 22:52:06 +0200moonsheep(~user@user/moonsheep) (Client Quit)
2022-05-28 22:54:04 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
2022-05-28 22:55:30 +0200wroathe(~wroathe@50-205-197-50-static.hfc.comcastbusiness.net)
2022-05-28 22:55:30 +0200wroathe(~wroathe@50-205-197-50-static.hfc.comcastbusiness.net) (Changing host)
2022-05-28 22:55:30 +0200wroathe(~wroathe@user/wroathe)
2022-05-28 23:06:18 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net)
2022-05-28 23:07:56 +0200wootehfoot(~wootehfoo@user/wootehfoot)
2022-05-28 23:08:28 +0200cyanide4dinner(~cyanide4d@122.168.60.162)
2022-05-28 23:10:56 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
2022-05-28 23:13:08 +0200alx741(~alx741@host-186-3-154-14.netlife.ec)
2022-05-28 23:13:50 +0200Jake3(~Jake@c-76-119-102-91.hsd1.ma.comcast.net)
2022-05-28 23:16:04 +0200cyanide4dinner(~cyanide4d@122.168.60.162) (Remote host closed the connection)
2022-05-28 23:22:37 +0200aliosablack(~chomwitt@2a02:587:dc05:e000:eaa1:d30:2c04:8e84) (Quit: Leaving)
2022-05-28 23:22:44 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net)
2022-05-28 23:22:59 +0200 <Bulby[m]> reading about LLVM target - it says it can produce as good as native but at the cost of compilation time
2022-05-28 23:23:10 +0200 <Bulby[m]> is it specifically WASM that is slow?
2022-05-28 23:23:41 +0200dextaa(~DV@user/dextaa) (Read error: Connection reset by peer)
2022-05-28 23:25:14 +0200 <Jake3> does anyone have any insight on why these two functions don't typecheck? https://paste.tomsmeding.com/lw9Py8ZA
2022-05-28 23:25:54 +0200dextaa(~DV@user/dextaa)
2022-05-28 23:26:09 +0200 <hpc> Jake3: in the expression (f True), what's the type of f?
2022-05-28 23:26:14 +0200 <Bulby[m]> for b2 - `z` means it can be ANY type
2022-05-28 23:26:14 +0200unit73e(~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291)
2022-05-28 23:26:35 +0200dextaa(~DV@user/dextaa) (Read error: Connection reset by peer)
2022-05-28 23:26:49 +0200 <maerwald> Jake3: https://play-haskell.tomsmeding.com/play/paste/PVt7qir2/1
2022-05-28 23:26:50 +0200 <geekosaur> Jake3, types work in reverse of what you might expect from e.g. Java
2022-05-28 23:27:04 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
2022-05-28 23:27:27 +0200 <Bulby[m]> it's type variables and they are expected to work for all types
2022-05-28 23:28:28 +0200 <geekosaur> so for a1, you have w -> (z -> z) -> w, then you try to use a `w` as a `z`. but the caller can specify *any* type for `z`, not guaranteed to be the same as `w`
2022-05-28 23:28:43 +0200 <Bulby[m]> ^
2022-05-28 23:28:43 +0200dextaa(~DV@user/dextaa)
2022-05-28 23:29:36 +0200mvk(~mvk@2607:fea8:5ce3:8500::ba9a) (Ping timeout: 272 seconds)
2022-05-28 23:29:38 +0200 <geekosaur> and it's not under your control, neither can you inspect the type the user chose, but you have to go along with what the user did
2022-05-28 23:31:13 +0200 <Bulby[m]> i don't really get how this types would even work in java
2022-05-28 23:31:49 +0200 <Jake3> geekosaur, I think that makes sense, thanks.
2022-05-28 23:32:42 +0200 <geekosaur> in java everything descends from java.lang.Object and types tend to be inclusive. in Haskell they're exclusive
2022-05-28 23:33:18 +0200 <Jake3> for a1, why does adding `forall x.` make ghc happy?
2022-05-28 23:33:27 +0200 <Bulby[m]> could it work with existential qualification?
2022-05-28 23:34:16 +0200 <geekosaur> becuase that makes it so the caller must supply a function that works on any type of *your* choice
2022-05-28 23:34:31 +0200 <geekosaur> so now you can pick `w`
2022-05-28 23:34:41 +0200 <Bulby[m]> that
2022-05-28 23:34:46 +0200 <Bulby[m]> that's a bit silly
2022-05-28 23:35:18 +0200 <Jake3> I guess I assumed that the polymorphic version of a1 would be fine but any function usage of it that supplies parameters that don't match would then fail the typecheck
2022-05-28 23:35:54 +0200 <Bulby[m]> which would be a bit silly, no?
2022-05-28 23:37:14 +0200 <geekosaur> to oversimplify a bit: the actual type of a1 is `forall w x. w -> (x -> x) -> w`. this forall means the caller can choose any `w` and any `x` it wants.
2022-05-28 23:38:00 +0200 <Jake3> interesting...
2022-05-28 23:39:10 +0200 <Jake3> _still trying to wrap my head around that_
2022-05-28 23:39:50 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net)
2022-05-28 23:40:05 +0200 <geekosaur> your modified one is `forall w. w -> (forall x. x -> x) -> w`. the first forall still means the caller can choose any `w`. the second, because it's to the left of an inner arrow, means *you* can pick any `z`
2022-05-28 23:40:46 +0200 <geekosaur> this has to do with positive vs. negative position of arguments, and I admit I'm still a bit weak on it myself but I think there was a discussion in here last night
2022-05-28 23:42:21 +0200vjoki(~vjoki@2a00:d880:3:1::fea1:9ae) (Quit: ...)
2022-05-28 23:43:06 +0200vjoki(~vjoki@2a00:d880:3:1::fea1:9ae)
2022-05-28 23:43:06 +0200 <hpc> notably, in forall w. w -> (forall x. x -> x) -> w, the only thing you can pass as the second argument is id
2022-05-28 23:44:08 +0200 <Bulby[m]> i only ever see unconstrained polymorphic types when you don't really care about that type
2022-05-28 23:44:18 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net) (Ping timeout: 252 seconds)
2022-05-28 23:44:59 +0200 <hpc> % let f :: forall w. w -> (forall x. x -> x) -> w; f = undefined in f () (+1)
2022-05-28 23:45:10 +0200 <hpc> > let f :: forall w. w -> (forall x. x -> x) -> w; f = undefined in f () (+1)
2022-05-28 23:45:12 +0200 <lambdabot> error:
2022-05-28 23:45:12 +0200 <lambdabot> • Cannot instantiate unification variable ‘a0’
2022-05-28 23:45:12 +0200 <lambdabot> with a type involving polytypes: w -> (forall x. x -> x) -> w
2022-05-28 23:45:16 +0200 <hpc> guess yahb isn't around
2022-05-28 23:46:52 +0200Jake3(~Jake@c-76-119-102-91.hsd1.ma.comcast.net) (Quit: Client closed)
2022-05-28 23:47:46 +0200 <Bulby[m]> yeah looking up `a -> a` they are all some form of id
2022-05-28 23:48:09 +0200 <Bulby[m]> (ignoring unconstrained)
2022-05-28 23:48:42 +0200 <hpc> there's a whole other thing you can do to show that id is the only thing of type (forall a. a -> a)
2022-05-28 23:49:00 +0200 <Bulby[m]> what is it called
2022-05-28 23:49:02 +0200 <hpc> or rather, that id is the only inhabitant of (forall a. a -> a)
2022-05-28 23:49:13 +0200 <Bulby[m]> free theorem? or am i thinking of something else
2022-05-28 23:49:29 +0200Jake23(~Jake@c-76-119-102-91.hsd1.ma.comcast.net)
2022-05-28 23:50:15 +0200 <hpc> it has to do with the "algebra" part of algebraic data types, but i don't remember exactly
2022-05-28 23:50:43 +0200 <hpc> very roughly, you can treat types as numbers, where their number is how many values are of that type
2022-05-28 23:50:52 +0200 <hpc> Bool = 2, Either a b = a + b, etc
2022-05-28 23:51:12 +0200 <hpc> and there's a correspondance between all the properties of an algebra and all the properties of ADTs
2022-05-28 23:52:09 +0200Inst(~Liam@2601:6c4:4080:3f80:a989:72d:12c5:f097)
2022-05-28 23:52:11 +0200 <hpc> a good exercise is to work out for yourself what (a -> b) is
2022-05-28 23:53:15 +0200 <hpc> you'll have to google for how forall fits into that
2022-05-28 23:55:04 +0200wootehfoot(~wootehfoo@user/wootehfoot) (Quit: Leaving)
2022-05-28 23:55:38 +0200anon15041149(~anon15041@host-80-41-95-245.as13285.net)
2022-05-28 23:55:42 +0200alx741(~alx741@host-186-3-154-14.netlife.ec) (Quit: alx741)
2022-05-28 23:56:53 +0200tzh_(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2022-05-28 23:58:45 +0200tired(~tired@user/tired) (Quit: /)
2022-05-28 23:59:05 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Ping timeout: 246 seconds)
2022-05-28 23:59:23 +0200tired(~tired@user/tired)