Logs on 2021-08-14 (liberachat/#haskell)
| 00:03:56 | → | vicfred joins (~vicfred@user/vicfred) |
| 00:17:28 | × | Cajun quits (~Cajun@user/cajun) (Ping timeout: 246 seconds) |
| 00:21:25 | → | bitmapper joins (uid464869@id-464869.tooting.irccloud.com) |
| 00:22:33 | → | allbery_b joins (~geekosaur@xmonad/geekosaur) |
| 00:22:33 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
| 00:22:36 | allbery_b | is now known as geekosaur |
| 00:26:09 | × | MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer) |
| 00:26:50 | → | MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
| 00:27:23 | → | jeslie0 joins (~user@108.162.150.9) |
| 00:28:57 | × | jeslie0 quits (~user@108.162.150.9) (Remote host closed the connection) |
| 00:30:07 | <justsomeguy> | Las[m]: "Idris is ready for production, if prodution is ready for it." ~ James Brown |
| 00:31:43 | → | jeslie0 joins (~user@108.162.150.9) |
| 00:32:14 | × | o1lo01ol1o quits (~o1lo01ol1@31.22.136.245) (Ping timeout: 272 seconds) |
| 00:35:47 | → | agua_pesada joins (~agua_pesa@191.177.175.57) |
| 00:38:56 | × | Core6816 quits (~agua_pesa@2804:14c:8793:8e2f:311f:1da6:1cf6:61ea) (Ping timeout: 256 seconds) |
| 00:41:35 | × | Atum_ quits (~IRC@user/atum/x-2392232) (Quit: Atum_) |
| 00:42:59 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 244 seconds) |
| 00:44:23 | × | DigitalKiwi quits (~kiwi@2604:a880:400:d0::12fc:5001) (Quit: quite.) |
| 00:45:07 | → | DigitalKiwi joins (~kiwi@2604:a880:400:d0::12fc:5001) |
| 00:46:14 | × | Gurkenglas quits (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) (Ping timeout: 258 seconds) |
| 00:50:27 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 258 seconds) |
| 00:50:31 | → | curiousgay joins (~curiousga@77-120-186-48.kha.volia.net) |
| 00:50:53 | → | the_proffesor joins (~theproffe@2601:282:847f:8010::3a29) |
| 00:51:06 | → | Cajun joins (~Cajun@user/cajun) |
| 00:52:26 | × | the_proffesor quits (~theproffe@2601:282:847f:8010::3a29) (Changing host) |
| 00:52:26 | → | the_proffesor joins (~theproffe@user/theproffesor) |
| 00:52:42 | × | theproffesor quits (~theproffe@user/theproffesor) (Killed (platinum.libera.chat (Nickname regained by services))) |
| 00:52:42 | the_proffesor | is now known as theproffesor |
| 00:52:48 | → | jfrent joins (~josiah@user/jfrent) |
| 00:54:11 | → | norias joins (~jaredm@c-98-219-195-163.hsd1.pa.comcast.net) |
| 00:56:56 | → | mnrmnaughmnrgle joins (~mnrmnaugh@68.162.206.56) |
| 00:59:45 | × | mnrmnaugh quits (~mnrmnaugh@68.162.206.56) (Ping timeout: 248 seconds) |
| 01:07:34 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 01:07:57 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 01:11:45 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 01:18:15 | × | markpythonicbitc quits (~markpytho@2601:647:5a00:35:d53f:ff79:b405:7cdc) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 01:23:57 | → | pfurla joins (~pfurla@ool-3f8fcb0f.dyn.optonline.net) |
| 01:25:07 | × | waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 245 seconds) |
| 01:26:54 | × | fjmorazan quits (~quassel@user/fjmorazan) (Quit: fjmorazan) |
| 01:27:36 | → | fjmorazan joins (~quassel@user/fjmorazan) |
| 01:27:58 | × | pfurla_ quits (~pfurla@ool-3f8fcb0f.dyn.optonline.net) (Ping timeout: 272 seconds) |
| 01:30:08 | → | notzmv joins (~zmv@user/notzmv) |
| 01:33:53 | × | MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer) |
| 01:35:54 | → | markpythonicbitc joins (~markpytho@2601:647:5a00:35:3498:2815:cba3:43e9) |
| 01:49:00 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 01:52:02 | × | xff0x quits (~xff0x@2001:1a81:5278:5300:2655:c9ee:974:3c59) (Ping timeout: 256 seconds) |
| 01:53:15 | × | hololeap quits (~hololeap@user/hololeap) (Ping timeout: 244 seconds) |
| 01:53:37 | × | haykam quits (~haykam@static.100.2.21.65.clients.your-server.de) (Remote host closed the connection) |
| 01:53:39 | → | xff0x joins (~xff0x@2001:1a81:52b4:6700:e48a:7334:5a0f:61a4) |
| 01:53:50 | → | haykam joins (~haykam@static.100.2.21.65.clients.your-server.de) |
| 01:54:09 | → | hololeap joins (~hololeap@user/hololeap) |
| 01:55:43 | → | MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
| 01:58:04 | × | markpythonicbitc quits (~markpytho@2601:647:5a00:35:3498:2815:cba3:43e9) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 02:01:55 | → | markpythonicbitc joins (~markpytho@2601:647:5a00:35:2c98:e880:4d8:8f3d) |
| 02:04:03 | × | jeslie0 quits (~user@108.162.150.9) (Ping timeout: 258 seconds) |
| 02:05:44 | × | Codaraxis quits (~Codaraxis@user/codaraxis) (Quit: Leaving) |
| 02:06:28 | × | lbseale quits (~lbseale@user/ep1ctetus) (Read error: Connection reset by peer) |
| 02:08:15 | → | lbseale joins (~lbseale@user/ep1ctetus) |
| 02:09:39 | × | slack1256 quits (~slack1256@191.126.13.254) (Remote host closed the connection) |
| 02:10:03 | → | lbseale_ joins (~lbseale@user/ep1ctetus) |
| 02:10:27 | × | Axman6 quits (~Axman6@user/axman6) (Ping timeout: 256 seconds) |
| 02:11:37 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 02:12:49 | × | lbseale quits (~lbseale@user/ep1ctetus) (Ping timeout: 248 seconds) |
| 02:16:01 | → | wei2912 joins (~wei2912@112.199.250.21) |
| 02:16:22 | × | td_ quits (~td@muedsl-82-207-238-005.citykom.de) (Ping timeout: 245 seconds) |
| 02:18:20 | → | td_ joins (~td@94.134.91.195) |
| 02:19:05 | × | hendursaga quits (~weechat@user/hendursaga) (Ping timeout: 244 seconds) |
| 02:21:37 | → | hendursaga joins (~weechat@user/hendursaga) |
| 02:23:23 | × | hendursaga quits (~weechat@user/hendursaga) (Client Quit) |
| 02:23:29 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds) |
| 02:24:54 | × | curiousgay quits (~curiousga@77-120-186-48.kha.volia.net) (Ping timeout: 256 seconds) |
| 02:25:22 | → | finn_elija joins (~finn_elij@user/finn-elija/x-0085643) |
| 02:25:22 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (osmium.libera.chat (Nickname regained by services))) |
| 02:25:22 | finn_elija | is now known as FinnElija |
| 02:32:40 | → | hendursaga joins (~weechat@user/hendursaga) |
| 02:39:33 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 02:40:23 | → | Axman6 joins (~Axman6@user/axman6) |
| 02:44:37 | → | HarveyPwca joins (~HarveyPwc@2601:246:c180:a570:29df:3b00:ad0e:3a06) |
| 02:44:47 | × | Axman6 quits (~Axman6@user/axman6) (Remote host closed the connection) |
| 02:46:17 | → | Axman6 joins (~Axman6@user/axman6) |
| 03:01:21 | × | cheater quits (~Username@user/cheater) (Ping timeout: 248 seconds) |
| 03:01:34 | → | cheater joins (~Username@user/cheater) |
| 03:01:38 | → | fvr joins (uid503686@id-503686.highgate.irccloud.com) |
| 03:07:55 | mnrmnaughmnrgle | is now known as mnrmnaugh |
| 03:11:52 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2) |
| 03:12:12 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 268 seconds) |
| 03:23:57 | → | pfurla_ joins (~pfurla@ool-3f8fcb0f.dyn.optonline.net) |
| 03:27:29 | × | pfurla quits (~pfurla@ool-3f8fcb0f.dyn.optonline.net) (Ping timeout: 248 seconds) |
| 03:28:24 | → | kevin_ joins (~tripoli@69.233.98.238) |
| 03:28:25 | × | kevin_ quits (~tripoli@69.233.98.238) (Client Quit) |
| 03:29:07 | → | tripoli joins (~tripoli@69.233.98.238) |
| 03:31:22 | → | fef joins (~thedawn@user/thedawn) |
| 03:31:40 | × | alx741 quits (~alx741@181.196.68.193) (Quit: alx741) |
| 03:45:54 | × | zaquest quits (~notzaques@5.128.210.178) (Quit: Leaving) |
| 03:50:45 | → | zaquest joins (~notzaques@5.128.210.178) |
| 03:52:52 | × | hnOsmium0001 quits (uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity) |
| 03:53:05 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.2) |
| 03:54:30 | → | hnOsmium0001 joins (uid453710@id-453710.stonehaven.irccloud.com) |
| 03:58:44 | → | stevenxl joins (uid133530@id-133530.highgate.irccloud.com) |
| 04:07:30 | × | smitop quits (~smitop@user/smitop) (Read error: Connection reset by peer) |
| 04:08:08 | × | zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!) |
| 04:08:11 | → | smitop joins (~smitop@user/smitop) |
| 04:12:17 | × | shapr quits (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 248 seconds) |
| 04:19:40 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 04:23:25 | mnrmnaugh | is now known as KeziahMason |
| 04:36:00 | × | fef quits (~thedawn@user/thedawn) (Ping timeout: 244 seconds) |
| 04:48:37 | × | slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving) |
| 04:53:57 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds) |
| 05:09:00 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds) |
| 05:23:10 | × | ellie quits (~ellie@user/ellie) (Quit: The Lounge - https://thelounge.chat) |
| 05:23:23 | → | ellie joins (~ellie@user/ellie) |
| 05:24:12 | → | pfurla joins (~pfurla@ool-3f8fcb0f.dyn.optonline.net) |
| 05:25:20 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 05:25:20 | × | MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer) |
| 05:25:58 | → | MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
| 05:27:36 | × | pfurla_ quits (~pfurla@ool-3f8fcb0f.dyn.optonline.net) (Ping timeout: 258 seconds) |
| 05:30:09 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 248 seconds) |
| 05:43:03 | × | norias quits (~jaredm@c-98-219-195-163.hsd1.pa.comcast.net) (Quit: Leaving) |
| 05:45:05 | × | MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer) |
| 05:47:23 | ellie | is now known as ell |
| 05:50:12 | → | MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
| 05:55:19 | × | MidAutumnMoon quits (~MidAutumn@user/midautumnmoon) (Quit: Leaving for a break - theLounge) |
| 05:58:16 | × | myShoggoth quits (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 258 seconds) |
| 06:05:11 | × | aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net) |
| 06:05:38 | → | sander joins (~sander@user/sander) |
| 06:06:07 | → | aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net) |
| 06:10:08 | → | mattil joins (~mattilinn@84-253-224-16.bb.dnainternet.fi) |
| 06:11:02 | × | bitmapper quits (uid464869@id-464869.tooting.irccloud.com) (Quit: Connection closed for inactivity) |
| 06:11:13 | × | mattil quits (~mattilinn@84-253-224-16.bb.dnainternet.fi) (Remote host closed the connection) |
| 06:11:37 | → | mattil joins (~mattilinn@84-253-224-16.bb.dnainternet.fi) |
| 06:12:43 | × | mattil quits (~mattilinn@84-253-224-16.bb.dnainternet.fi) (Remote host closed the connection) |
| 06:13:09 | → | mattil joins (~mattilinn@84-253-224-16.bb.dnainternet.fi) |
| 06:14:10 | → | retroid_ joins (~retro@5ec19a54.skybroadband.com) |
| 06:14:13 | × | mattil quits (~mattilinn@84-253-224-16.bb.dnainternet.fi) (Remote host closed the connection) |
| 06:14:36 | → | mattil joins (~mattilinn@84-253-224-16.bb.dnainternet.fi) |
| 06:24:23 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 06:29:44 | × | Axman6 quits (~Axman6@user/axman6) (Ping timeout: 260 seconds) |
| 06:29:45 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 06:31:37 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 258 seconds) |
| 06:31:38 | Lord_of_Life_ | is now known as Lord_of_Life |
| 06:39:43 | × | vrilles quits (~vrilles@user/aman) (Quit: vrilles) |
| 06:50:16 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 07:03:59 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 07:07:15 | <tomsmeding> | hololeap: in case you hadn't already figured it out: the problem in your applyExtraArgs function is exactly what I said earlier about non-injective type families |
| 07:07:31 | <tomsmeding> | Where if Foo is non-injective, ghc can't infer a from knowing what Foo a is |
| 07:07:50 | <tomsmeding> | In this case, ghc can't infer r from knowing what WithExtraArgs as r is |
| 07:08:40 | <tomsmeding> | Hm but it's weird |
| 07:11:28 | <tomsmeding> | Yeah I bet that your fucking problem is AllowAmbiguousTypes |
| 07:11:31 | <tomsmeding> | I knew it |
| 07:11:36 | <tomsmeding> | I hate AllowAmbiguousTypes |
| 07:11:46 | <tomsmeding> | applyExtraArgs is uncallable |
| 07:12:18 | × | tripoli quits (~tripoli@69.233.98.238) (Quit: tripoli) |
| 07:12:43 | <tomsmeding> | Unless you give it actual type applications |
| 07:13:10 | <tomsmeding> | Type ascriptions (like you've done here) aren't enough because of the non-injective type family that doesn't actually say what r is |
| 07:13:55 | <tomsmeding> | I bet if you give the call of applyExtraArgs in the last line of foo two type applications, @as' @r, then it'll compile |
| 07:19:04 | <tomsmeding> | hololeap: ah, actually only @_ @r is necessary of course, because as is already pinned down by the Sing thing |
| 07:20:05 | <tomsmeding> | also with the current code you can remove the proxy argument from 'foo' since its type variable, a, is already inferrable from the function-typed argument |
| 07:20:19 | <tomsmeding> | ((->) _is_ injective since it's a data constructor :p ) |
| 07:20:40 | → | yoctocell joins (~user@h87-96-130-155.cust.a3fiber.se) |
| 07:22:46 | <Cajun> | so im trying to build monomer because i saw it on the subreddit, but despite having freetype2 on my path and all installed via my package manager, it refuses to see ft2build.h, specifically when building nanovg. also, the required version for nanovg is >= 0.8 but nanovg only goes to 0.7, what gives? |
| 07:24:10 | → | pfurla_ joins (~pfurla@ool-3f8fcb0f.dyn.optonline.net) |
| 07:24:17 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 248 seconds) |
| 07:26:27 | <Cajun> | more specifically, it spits this out: https://paste.tomsmeding.com/zJHTNu8Z |
| 07:26:40 | <Cajun> | i have freetype2 set up, the dir is on the path, so why cant it find the header? |
| 07:27:20 | → | o1lo01ol1o joins (~o1lo01ol1@89.214.83.229) |
| 07:27:29 | × | pfurla quits (~pfurla@ool-3f8fcb0f.dyn.optonline.net) (Ping timeout: 248 seconds) |
| 07:29:08 | <tomsmeding> | Cajun: this PR on nanovg-hs bumps version to 0.8; presumably fjvallarino assumes this is merged soon :p https://github.com/cocreature/nanovg-hs/pull/14 |
| 07:29:24 | <tomsmeding> | only sounds relevant if you're using windows |
| 07:30:13 | <Cajun> | im on windows but WSL, so its irrelevant |
| 07:30:24 | <tomsmeding> | Cajun: re include paths: presumably it's only looking in the standard include paths, e.g. /usr/include, not in /usr/include/freetype2 |
| 07:30:30 | <maerwald[m]> | https://github.com/fjvallarino/monomer/issues/7 |
| 07:30:50 | <maerwald[m]> | the hackage version is simply broken |
| 07:30:59 | <Cajun> | tomsmeding: well i have `/usr/include/freetype2` on the path so... |
| 07:31:19 | <tomsmeding> | Cajun: which path? |
| 07:31:28 | <Cajun> | whatever $PATH is |
| 07:31:35 | → | euouae joins (~euouae@user/euouae) |
| 07:31:41 | <tomsmeding> | maerwald[m]: your build log is outdated, because there _is_ a 0.7 on hackage, just not a 0.8 :p (point still stands) |
| 07:31:50 | ← | euouae parts (~euouae@user/euouae) () |
| 07:31:54 | <tomsmeding> | Cajun: $PATH is completely unrelated to finding libraries, it's for finding executables |
| 07:32:04 | <tomsmeding> | s/libraries/header files/ |
| 07:32:05 | <maerwald[m]> | tomsmeding: how's my build log outdated? |
| 07:32:11 | <tomsmeding> | though the libraries statement is also true |
| 07:32:14 | <maerwald[m]> | the dependency is nanovg>=0.8 && <1.0 |
| 07:32:15 | <Cajun> | ah that would make sense, im not too great with linux yet :P |
| 07:32:21 | <tomsmeding> | maerwald[m]: your cabal only has nanovg 0.6 but 0.7 exists on hackage |
| 07:32:36 | <tomsmeding> | (not that that helps yet) |
| 07:32:41 | <Cajun> | well `nanovg>=0.8 && <1.0` would still fail yeah |
| 07:33:20 | <Cajun> | its why im using --allow-older just to see if it wants to work |
| 07:33:33 | <tomsmeding> | Cajun: seeing that header file would happen with one of two changes: 1. the include is changed to #include <freetype2/ft2build.h>, or 2. gcc gets -I/usr/include/freetype2 |
| 07:33:40 | → | drd joins (~drd@93-39-151-19.ip76.fastwebnet.it) |
| 07:34:40 | <Cajun> | could i move the `freetypes` folder and the `ft2build.h` header outside of `/usr/include/freetypes2` into `/usr/include` ? |
| 07:35:03 | <Cajun> | it seems like whats in the `/include/freetypes2` folder is how all of the other headers in there are formatted |
| 07:35:04 | → | Axman6 joins (~Axman6@user/axman6) |
| 07:35:58 | <tomsmeding> | Cajun: yeah that's a pretty standard layout as you have it currently |
| 07:36:19 | <tomsmeding> | while you _could_ copy the folder contents, I strongly recommend you don't |
| 07:36:26 | <tomsmeding> | I'll have a try building it |
| 07:36:26 | <Cajun> | hmm well what does `gcc gets -I/usr/include/freetype2` mean? |
| 07:37:06 | <tomsmeding> | gcc needs that as an additional command-line argument |
| 07:37:41 | <Cajun> | so how can i pass that through `cabal build` ? or do i just do that command alone |
| 07:38:06 | <tomsmeding> | I _think_ nanovg needs to add 'cc-options: -I/usr/include/freetype2' in this 'else'-branch https://github.com/cocreature/nanovg-hs/blob/master/nanovg.cabal#L90 |
| 07:38:09 | <tomsmeding> | but uncertain |
| 07:39:27 | <Cajun> | so nanovg is just broke currently? |
| 07:39:37 | <tomsmeding> | yeah |
| 07:39:49 | <tomsmeding> | perhaps there are systems where it isn't, because I think this is a linux-specific issue |
| 07:41:37 | <maerwald> | tomsmeding: extra-include-dirs |
| 07:41:47 | <tomsmeding> | ah |
| 07:43:06 | <Cajun> | well im glad im not going crazy :) thanks for making this make sense! |
| 07:43:08 | <maerwald> | nanovg has too many issues, I get c2hs errors |
| 07:44:26 | <maerwald> | also, freetype has pkgconfig files |
| 07:44:38 | <maerwald> | why is it not using those |
| 07:45:05 | × | sm2n quits (~sm2n@user/sm2n) (Ping timeout: 248 seconds) |
| 07:45:27 | <tomsmeding> | maerwald: shouldn't it be include-dirs instead of extra-include-dirs? |
| 07:45:43 | <maerwald> | extra-include-dirs you can pass on the cmdline |
| 07:45:51 | <tomsmeding> | ah right |
| 07:45:52 | <zyklotomic> | is there a way to type a do statement? |
| 07:46:03 | <zyklotomic> | like x <- do :: [Int] |
| 07:46:23 | <maerwald> | x :: [Int] <- do |
| 07:46:30 | <tomsmeding> | maerwald: probably the author of nanovg isn't very familiar with linux :p |
| 07:46:38 | <zyklotomic> | maerwald: thumbs up lol |
| 07:47:10 | <maerwald> | tomsmeding: that would surprise me |
| 07:48:11 | <tomsmeding> | seems indeed just adding ', freetype2' to that pkgconfig-depends makes it work |
| 07:48:52 | <maerwald> | pkgconfig isn't well implemented in cabal, because it doesn't allow falling back to other means |
| 07:49:13 | <maerwald> | often times whether you have pkg-config of a lib depends on the library version or even the distro |
| 07:49:23 | <tomsmeding> | right |
| 07:49:41 | <maerwald> | https://github.com/haskell/cabal/issues/6771 |
| 07:49:42 | <tomsmeding> | lol monomer itself doesn't build |
| 07:50:09 | <Cajun> | are you getting the version dependency issue? |
| 07:50:22 | <Cajun> | or is this another issue with the library... |
| 07:50:50 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 07:50:56 | × | timCF quits (~timCF@200-149-20-81.sta.estpak.ee) (Ping timeout: 268 seconds) |
| 07:50:57 | × | timCF_ quits (~timCF@200-149-20-81.sta.estpak.ee) (Ping timeout: 248 seconds) |
| 07:51:13 | <tomsmeding> | no I actually got so far as to compile monomer itself https://paste.tomsmeding.com/tLnOGV5Y |
| 07:51:32 | <tomsmeding> | by relaxing the nanovg bounds to 0.7 and adding freetype2 to the pkgconfig-depends list of nanovg |
| 07:51:47 | <maerwald> | use nanosvg 0.8 |
| 07:52:02 | <tomsmeding> | right |
| 07:52:54 | <maerwald> | https://github.com/fjvallarino/monomer/pull/8 |
| 07:53:10 | <maerwald> | oops |
| 07:53:14 | <maerwald> | that's a broken PR |
| 07:53:34 | → | amahl joins (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) |
| 07:53:43 | <maerwald> | they put cabal.project in gitignore |
| 07:53:46 | <maerwald> | *sigh* |
| 07:54:40 | <maerwald> | now |
| 07:56:06 | → | _ht joins (~quassel@82-169-194-8.biz.kpn.net) |
| 07:56:49 | <tomsmeding> | ah the nanovg-0.8 from that windows PR actually puts freetype2 in the nanovg.cabal file :p |
| 07:59:07 | <tomsmeding> | making a project that depends on monomer and adding the monomer repo and fjvallarino's fork of nanovg-hs as subdirectories, and then checking out ba8733f in nanovg-hs, and adding a cabal.project in my root project with 'packages: . monomer nanovg-hs' works for me |
| 07:59:39 | <Cajun> | sounds like.. a lot of work |
| 08:00:02 | <maerwald> | don't understand why you'd do that |
| 08:00:12 | <maerwald> | that's what source-repository-package is for, see my PR |
| 08:01:02 | <tomsmeding> | ah because I don't know cabal.project well enough |
| 08:01:16 | <tomsmeding> | don't need the +stb_truetype flag here |
| 08:01:40 | <tomsmeding> | is that really cabal support though? |
| 08:01:46 | <JavierNeira[m]> | https://cabal.readthedocs.io/en/latest/cabal-projectindex.html#cap-cabal.project%20fields :-) |
| 08:01:57 | <JavierNeira[m]> | yeah, in `constraints:` |
| 08:02:01 | <tomsmeding> | like, it probably allows you to build the monomer repo, but if that gets uploaded to hackage, would it allow me to _depend_ on monomer |
| 08:02:15 | <tomsmeding> | or is cabal.project also inspected for dependencies |
| 08:02:25 | <maerwald> | no |
| 08:02:30 | <maerwald> | cabal support /= hackage support |
| 08:02:34 | <tomsmeding> | right |
| 08:03:15 | <tomsmeding> | maerwald: is that +stb_truetype flag necessary for you? |
| 08:03:27 | <maerwald> | no idea, it's in stack.yaml |
| 08:03:48 | <maerwald> | I can't build at all due to c2hs errors |
| 08:04:03 | <tomsmeding> | mac? |
| 08:04:07 | <maerwald> | linux |
| 08:04:18 | <maerwald> | c2hs is constantly broken, because it re-implements its own C parser |
| 08:05:02 | <tomsmeding> | interesting, I'm on arch with a fairly new C compiler and it works for me |
| 08:05:20 | → | tripoli joins (~tripoli@69.233.98.238) |
| 08:05:36 | → | hendursa1 joins (~weechat@user/hendursaga) |
| 08:07:24 | <tomsmeding> | heh got the first tutorial example to compile, but it won't run because SDL fails to create a GL context (?) |
| 08:07:40 | <tomsmeding> | oh, no because glMakeCurrent fails |
| 08:07:56 | → | Vajb joins (~Vajb@2001:999:252:4e3c:27f9:d93:655e:583) |
| 08:08:52 | × | hendursaga quits (~weechat@user/hendursaga) (Ping timeout: 244 seconds) |
| 08:09:31 | tomsmeding | is going to do something else for a while :p |
| 08:09:53 | × | Vajb quits (~Vajb@2001:999:252:4e3c:27f9:d93:655e:583) (Read error: Connection reset by peer) |
| 08:10:04 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) |
| 08:10:34 | <Cajun> | yeah this just sounds like hell, i think im going to let this library settle for a month or more and move to other alternatives, ive heard `gi-gtk-declarative` isnt awful |
| 08:17:34 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
| 08:17:37 | → | allbery_b joins (~geekosaur@xmonad/geekosaur) |
| 08:17:40 | allbery_b | is now known as geekosaur |
| 08:19:29 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 08:24:04 | → | Tuplanolla joins (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) |
| 08:24:20 | → | elf_fortrez joins (~elf_fortr@adsl-72-50-6-221.prtc.net) |
| 08:27:15 | × | trueboxguy quits (~trueboxgu@user/trueboxguy) (Quit: ZNC 1.7.2+deb3 - https://znc.in) |
| 08:30:30 | × | shredder quits (~user@user/shredder) (Quit: quitting) |
| 08:31:21 | → | shredder joins (~user@user/shredder) |
| 08:31:34 | × | agua_pesada quits (~agua_pesa@191.177.175.57) (Quit: CoreIRC for Android - www.coreirc.com) |
| 08:31:51 | → | aguapesada joins (~aguapesad@2804:14c:8793:8e2f:311f:1da6:1cf6:61ea) |
| 08:32:52 | × | hnOsmium0001 quits (uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity) |
| 08:34:43 | → | dyeplexer joins (~dyeplexer@user/dyeplexer) |
| 08:36:30 | → | burnsidesLlama joins (~burnsides@client-8-91.eduroam.oxuni.org.uk) |
| 08:37:47 | × | o1lo01ol1o quits (~o1lo01ol1@89.214.83.229) (Remote host closed the connection) |
| 08:38:18 | → | o1lo01ol1o joins (~o1lo01ol1@89.214.83.229) |
| 08:41:10 | × | burnsidesLlama quits (~burnsides@client-8-91.eduroam.oxuni.org.uk) (Remote host closed the connection) |
| 08:45:54 | × | o1lo01ol1o quits (~o1lo01ol1@89.214.83.229) (Remote host closed the connection) |
| 08:47:01 | → | o1lo01ol1o joins (~o1lo01ol1@89.214.83.229) |
| 08:50:41 | → | Gurkenglas joins (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) |
| 08:51:59 | × | o1lo01ol1o quits (~o1lo01ol1@89.214.83.229) (Ping timeout: 268 seconds) |
| 08:52:51 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
| 08:55:14 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 08:58:22 | → | oxide joins (~lambda@user/oxide) |
| 08:59:13 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 09:01:21 | × | sander quits (~sander@user/sander) (Ping timeout: 248 seconds) |
| 09:01:58 | → | sander joins (~sander@user/sander) |
| 09:02:37 | × | oxide quits (~lambda@user/oxide) (Client Quit) |
| 09:19:42 | × | ikex quits (~ash@user/ikex) (Ping timeout: 256 seconds) |
| 09:20:26 | × | sander quits (~sander@user/sander) (Quit: So long! :)) |
| 09:20:31 | → | ikex joins (~ash@user/ikex) |
| 09:20:32 | → | burnsidesLlama joins (~burnsides@client-8-91.eduroam.oxuni.org.uk) |
| 09:20:39 | → | sm2n joins (~sm2n@user/sm2n) |
| 09:21:00 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 09:21:02 | → | sander joins (~sander@user/sander) |
| 09:22:32 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 09:23:59 | → | curiousgay joins (~curiousga@77-120-186-48.kha.volia.net) |
| 09:24:17 | → | pfurla joins (~pfurla@ool-3f8fcb0f.dyn.optonline.net) |
| 09:25:56 | × | burnsidesLlama quits (~burnsides@client-8-91.eduroam.oxuni.org.uk) (Ping timeout: 256 seconds) |
| 09:27:29 | × | pfurla_ quits (~pfurla@ool-3f8fcb0f.dyn.optonline.net) (Ping timeout: 248 seconds) |
| 09:29:34 | × | sander quits (~sander@user/sander) (Quit: So long! :)) |
| 09:31:10 | → | sander joins (~sander@user/sander) |
| 09:35:28 | → | sndr joins (~sander@user/sander) |
| 09:36:08 | × | sander quits (~sander@user/sander) (Ping timeout: 256 seconds) |
| 09:36:15 | sndr | is now known as sander |
| 09:37:04 | → | lavaman joins (~lavaman@98.38.249.169) |
| 09:41:56 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 268 seconds) |
| 09:42:57 | × | azeem quits (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) (Ping timeout: 248 seconds) |
| 09:42:57 | × | jneira quits (~jneira@28.red-80-28-169.staticip.rima-tde.net) (Ping timeout: 248 seconds) |
| 09:45:50 | → | azeem joins (~azeem@176.200.230.183) |
| 09:47:28 | × | azeem quits (~azeem@176.200.230.183) (Read error: Connection reset by peer) |
| 09:47:47 | → | azeem joins (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) |
| 09:51:17 | → | dunj3 joins (~dunj3@2001:16b8:3087:1500:4897:30d0:e9f9:702b) |
| 09:52:05 | → | jneira joins (~jneira@28.red-80-28-169.staticip.rima-tde.net) |
| 09:55:16 | × | azeem quits (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) (Read error: Connection reset by peer) |
| 09:55:24 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 09:59:22 | × | polyphem quits (~polyphem@2a02:810d:640:776c:5ce9:eeb2:9e8b:b083) (Ping timeout: 256 seconds) |
| 10:01:32 | → | burnsidesLlama joins (~burnsides@client-8-91.eduroam.oxuni.org.uk) |
| 10:03:48 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 10:04:52 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 10:05:53 | × | burnsidesLlama quits (~burnsides@client-8-91.eduroam.oxuni.org.uk) (Ping timeout: 248 seconds) |
| 10:07:00 | → | kuribas joins (~user@ptr-25vy0i7jvn9rvz44z49.18120a2.ip6.access.telenet.be) |
| 10:08:18 | <kuribas> | Is there a libary that does polymorphic operations over records? |
| 10:08:27 | × | sander quits (~sander@user/sander) (Quit: So long! :)) |
| 10:08:31 | <kuribas> | Like taking a subset of (named) fields. |
| 10:08:38 | <kuribas> | Transforming the types of fields... |
| 10:09:48 | <carbolymer> | does anyone has an example of a single file haskell script with cabal? like stack script, but with cabal? my duckduckgo-fu seems to fail me today... |
| 10:09:51 | → | sander joins (~sander@user/sander) |
| 10:10:21 | <kuribas> | hmm, maybe I can use https://hackage.haskell.org/package/generic-data-surgery-0.3.0.0 |
| 10:11:09 | <kuribas> | carbolymer: how do you specify packages if it's a single file? |
| 10:12:00 | <carbolymer> | ok, I've found it... but it seems that it recompiles everything each time, and stack does some additional caching... https://github.com/haskell/cabal/issues/5688#issuecomment-438456164 |
| 10:12:06 | <carbolymer> | kuribas: ^ |
| 10:12:26 | <carbolymer> | s/everything/my code/ |
| 10:13:04 | → | azeem joins (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) |
| 10:14:01 | <kuribas> | I just use ghc or ghci. |
| 10:14:11 | <kuribas> | But it depends on globally installed packages, so it's not ideal. |
| 10:14:46 | <carbolymer> | kuribas: but you can pin version in dependencies, can't you? |
| 10:14:55 | <carbolymer> | aah, you mean ghc |
| 10:15:16 | <carbolymer> | right - I was looking for more portable solution so I can drop single file on a machine and make it work there |
| 10:15:35 | <kuribas> | Nowadays I make a small package always... |
| 10:16:13 | <kuribas> | if the ghci approach doesn't work. |
| 10:20:36 | × | azeem quits (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) (Read error: Connection reset by peer) |
| 10:21:47 | → | keutoi joins (~keutoi@157.48.222.12) |
| 10:23:08 | × | tripoli quits (~tripoli@69.233.98.238) (Quit: nyaa~) |
| 10:25:36 | <kuribas> | uhm, data-surgery doesn't loop over all fields... |
| 10:25:36 | × | MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer) |
| 10:26:19 | → | MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
| 10:26:27 | <kuribas> | Is there no library to do generic record operations, like in clojure? |
| 10:26:58 | <kuribas> | Like mapping all fields (polymorphically), taking a subset of fields, union of two records. |
| 10:28:25 | → | waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
| 10:29:07 | × | Erutuon quits (~Erutuon@user/erutuon) (Quit: WeeChat 2.8) |
| 10:29:13 | → | azeem joins (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) |
| 10:32:58 | → | burnsidesLlama joins (~burnsides@client-8-91.eduroam.oxuni.org.uk) |
| 10:34:05 | → | skykanin joins (~skykanin@115.81-166-221.customer.lyse.net) |
| 10:35:14 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 10:38:03 | × | burnsidesLlama quits (~burnsides@client-8-91.eduroam.oxuni.org.uk) (Ping timeout: 268 seconds) |
| 10:39:54 | × | sander quits (~sander@user/sander) (Ping timeout: 268 seconds) |
| 10:43:52 | × | dunj3 quits (~dunj3@2001:16b8:3087:1500:4897:30d0:e9f9:702b) (Ping timeout: 245 seconds) |
| 10:48:28 | → | sander joins (~sander@user/sander) |
| 10:50:58 | → | dudek joins (~dudek@185.150.236.112) |
| 10:59:13 | × | Gurkenglas quits (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) (Ping timeout: 248 seconds) |
| 11:01:18 | → | o1lo01ol1o joins (~o1lo01ol1@89.214.83.229) |
| 11:05:28 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 11:05:32 | × | o1lo01ol1o quits (~o1lo01ol1@89.214.83.229) (Ping timeout: 245 seconds) |
| 11:09:56 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 11:10:07 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds) |
| 11:24:17 | → | pfurla_ joins (~pfurla@ool-3f8fcb0f.dyn.optonline.net) |
| 11:28:01 | × | pfurla quits (~pfurla@ool-3f8fcb0f.dyn.optonline.net) (Ping timeout: 248 seconds) |
| 11:28:34 | × | mattil quits (~mattilinn@84-253-224-16.bb.dnainternet.fi) (Remote host closed the connection) |
| 11:31:13 | × | azeem quits (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) (Read error: Connection reset by peer) |
| 11:33:22 | → | azeem joins (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) |
| 11:36:38 | × | shredder quits (~user@user/shredder) (Ping timeout: 268 seconds) |
| 11:41:35 | → | mattil joins (~mattilinn@84-253-224-16.bb.dnainternet.fi) |
| 11:43:22 | × | yushyin quits (MbKMC7U51Q@karif.server-speed.net) (Quit: WeeChat 3.1) |
| 11:43:33 | → | yushyin joins (PW3hWJBC9s@karif.server-speed.net) |
| 11:47:35 | <adamCS> | kuribas: vinyl? https://hackage.haskell.org/package/vinyl |
| 11:47:52 | <kuribas> | adamCS: no, I want to use just records. |
| 11:48:11 | <adamCS> | Ah. |
| 11:49:18 | <kuribas> | I am messing around now to make something easy to use... |
| 11:50:38 | → | vpan joins (~vilius@212.117.1.172) |
| 11:51:35 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 11:52:01 | × | drd quits (~drd@93-39-151-19.ip76.fastwebnet.it) (Ping timeout: 248 seconds) |
| 11:54:55 | → | lavaman joins (~lavaman@98.38.249.169) |
| 11:55:46 | <kuribas> | using a newtype to define a generic operation. |
| 11:56:17 | <Franciman> | hi, is there any pretty printing library allowing to specify precedence rules |
| 11:56:27 | <Franciman> | so that the output does not contain extra parantheses? |
| 11:57:51 | → | shredder joins (~user@user/shredder) |
| 11:59:14 | → | igghibu joins (~igghibu@91.193.5.28) |
| 11:59:21 | × | igghibu quits (~igghibu@91.193.5.28) (Client Quit) |
| 12:00:42 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 268 seconds) |
| 12:05:50 | → | aarchi joins (sid486183@id-486183.highgate.irccloud.com) |
| 12:07:30 | <aarchi> | Is it possible to install multiple GHC versions in parallel? I want to install GHC 5.02 on macOS 10.14. |
| 12:08:05 | × | markpythonicbitc quits (~markpytho@2601:647:5a00:35:2c98:e880:4d8:8f3d) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 12:08:28 | <Hecate> | kuribas: much better, a typed language that compiles to JVM bytecode |
| 12:08:43 | <Hecate> | (curse, my IRC client betrayed me) |
| 12:09:12 | <kuribas> | Hecate: yes? |
| 12:09:34 | <Franciman> | aarchi: yes, with ghcup |
| 12:09:40 | <Franciman> | it is handy |
| 12:09:40 | <kuribas> | Hecate: have a look at this: https://flix.dev/ |
| 12:09:43 | <maerwald> | 5.02?? |
| 12:09:58 | <kuribas> | Hecate: and don't mention scala :) |
| 12:10:09 | → | drd joins (~drd@93-39-151-19.ip76.fastwebnet.it) |
| 12:10:57 | × | tam quits (~alpha@163.172.215.78) (Quit: WeeChat 2.7.1) |
| 12:11:14 | <Hecate> | kuribas: nah I'm just waiting for the moment when GHC backends will be more pluggable |
| 12:11:14 | <maerwald> | 5.02 is i386 only :D |
| 12:11:22 | <Hecate> | so Eta will be able to live again |
| 12:11:26 | <aarchi> | Yes 5.02. I am formalizing a spec for the Whitespace programming language (created by the creator of Idris) based on its reference implementation that was written in Haskell, tested on GHC 5.02 |
| 12:11:38 | <maerwald> | there's no bindist for mac |
| 12:11:38 | <kuribas> | Hecate: AFAIK it never lived. |
| 12:11:42 | <maerwald> | https://downloads.haskell.org/~ghc/5.02/ |
| 12:11:43 | <Hecate> | kuribas: shortly |
| 12:11:57 | <kuribas> | nobody used it seriously |
| 12:12:01 | <maerwald> | you'll have a hard time bootstrapping 5.02 |
| 12:12:06 | <aarchi> | Probably would be a pain to bootstrap |
| 12:12:19 | <maerwald> | VM |
| 12:12:27 | <Hecate> | kuribas: that's another thing, due to its short life :P |
| 12:12:32 | <aarchi> | Yeah that's my best option, I guess |
| 12:13:51 | → | burnsidesLlama joins (~burnsides@dhcp168-012.wadham.ox.ac.uk) |
| 12:16:03 | <kuribas> | Hecate: I never believed it would take off. On the other hand I didn't believe in ghcjs either (and still don't). |
| 12:16:14 | × | shredder quits (~user@user/shredder) (Quit: quitting) |
| 12:16:30 | → | markpythonicbitc joins (~markpytho@2601:647:5a00:35:2c98:e880:4d8:8f3d) |
| 12:17:35 | → | shredder joins (~user@user/shredder) |
| 12:20:50 | × | markpythonicbitc quits (~markpytho@2601:647:5a00:35:2c98:e880:4d8:8f3d) (Ping timeout: 258 seconds) |
| 12:23:46 | → | markpythonicbitc joins (~markpytho@2601:647:5a00:35:2c98:e880:4d8:8f3d) |
| 12:24:41 | <Hecate> | kuribas: I don't believe in GHCJS as being adequate for the browser, but a JVM backend with excellent Java FFI would be a game changer in enterprise environments |
| 12:25:51 | <kuribas> | Hecate: it could be, but it's a huge effort. |
| 12:25:59 | <kuribas> | Which I doubt many people are willing to do. |
| 12:27:07 | <Hecate> | kuribas: I'm not betting on willingness |
| 12:27:15 | <Hecate> | I'm betting on corporate money |
| 12:27:45 | <kuribas> | corporations aren't interested in haskell |
| 12:28:07 | <kuribas> | And if they are, they aren't willing to pay big bucks for an unsupported platform. |
| 12:28:24 | × | markpythonicbitc quits (~markpytho@2601:647:5a00:35:2c98:e880:4d8:8f3d) (Ping timeout: 256 seconds) |
| 12:30:29 | <Hecate> | kuribas: I don't know what is the basis of your first sentence but I have first-hand experience of the contrary, so it's a bit hard to believe you on your word :P |
| 12:30:32 | × | burnsidesLlama quits (~burnsides@dhcp168-012.wadham.ox.ac.uk) (Remote host closed the connection) |
| 12:30:57 | <Hecate> | regarding supporting an unsupported platform, I don't understand why it would be "unsupported" |
| 12:31:08 | <kuribas> | Hecate: a few, but not that many AFAIK... |
| 12:31:18 | <kuribas> | Hecate: but if I am wrong, even better :) |
| 12:31:43 | <Hecate> | there are more than we know because they're not "in the community" as much as Tweag/Well-Typed |
| 12:31:51 | <Hecate> | but there have been more in the past years |
| 12:32:24 | <Hecate> | Nova Discovery in France, Scrive in Sweden/Czech Republic, the StanChart teams in Poland & the UK… |
| 12:32:57 | <Hecate> | I bet Tweag would love to have a JVM backend |
| 12:33:17 | <kuribas> | Hecate: you know of this right? https://hackage.haskell.org/package/inline-java |
| 12:33:38 | <kuribas> | Hecate: it would be nice to have, but it would mean maintaining a separate ecosystem. |
| 12:34:37 | <Hecate> | kuribas: yes I know of this, that's why I say that a more integrated solution would please Tweag |
| 12:35:03 | <Hecate> | kuribas: no, it's just means that some packages are not portable across all platforms, which is already the case |
| 12:35:10 | <Hecate> | it has always been the case |
| 12:35:54 | <Hecate> | again, I don't know what is your reasoning behind "maintaining a separate ecosystem", which certainly sounds scary but you bring this without any deeper explanation so it's like an empty threat :P |
| 12:37:22 | <kuribas> | Hecate: huh what? |
| 12:37:31 | <kuribas> | Am I threatening someone? |
| 12:37:49 | <kuribas> | I just have a hard time to believe people will pay for this. |
| 12:37:55 | <kuribas> | Seeing the sorry state of some libraries... |
| 12:38:00 | <kuribas> | In what we have now. |
| 12:38:25 | × | curiousgay quits (~curiousga@77-120-186-48.kha.volia.net) (Ping timeout: 248 seconds) |
| 12:39:31 | <Hecate> | kuribas: considering that the Haskell Foundation has raised half a million dollars from corporations using Haskell, I have no doubt that they are ready to pay |
| 12:39:33 | × | drd quits (~drd@93-39-151-19.ip76.fastwebnet.it) (Ping timeout: 268 seconds) |
| 12:39:46 | <Hecate> | they don't want to organise though, which is what the HF is paid to do |
| 12:39:47 | <kuribas> | Hecate: well, good! |
| 12:40:12 | <kuribas> | Don't get me wrong, I am not against a java ghc... |
| 12:40:22 | <Hecate> | pretty sure outputting .NET bytecode will earn us a big fat chèque from MS as well :P |
| 12:43:14 | <kuribas> | Maybe webassembly would be nice |
| 12:44:31 | <Hecate> | kuribas: https://github.com/tweag/asterius |
| 12:45:22 | → | polyphem joins (~polyphem@2a02:810d:640:776c:c8d6:203f:c7c7:b242) |
| 12:47:06 | <kuribas> | ah, nice! |
| 12:52:18 | × | sander quits (~sander@user/sander) (Quit: So long! :)) |
| 12:52:45 | <kuribas> | ah sweet, my generic record map works! https://gist.github.com/kuribas/9111beafd31a9368efa75d94fb68fb6f |
| 12:53:12 | <kuribas> | And is easy to use, just define a newtype with MapField instance. |
| 12:55:35 | <kuribas> | Now I only need to implement union, subset and superset... |
| 12:58:23 | → | jehugawa joins (~jehugawa@2a01:4f9:c010:4649::1) |
| 12:58:46 | <fvr> | what would the union of two records return? You first need to create a new record with the union of all the fields in them? |
| 12:59:04 | <kuribas> | yes |
| 12:59:07 | → | sander joins (~sander@user/sander) |
| 13:00:26 | <fvr> | I wrote a library that creates sub record types and conversion functions with template haskell a few years ago |
| 13:00:30 | <fvr> | https://github.com/vacationlabs/record-splicer |
| 13:00:49 | → | alx741 joins (~alx741@181.196.68.193) |
| 13:02:43 | <kuribas> | neat |
| 13:03:09 | → | burnsidesLlama joins (~burnsides@dhcp168-012.wadham.ox.ac.uk) |
| 13:07:11 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 13:07:30 | × | burnsidesLlama quits (~burnsides@dhcp168-012.wadham.ox.ac.uk) (Ping timeout: 256 seconds) |
| 13:11:29 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 248 seconds) |
| 13:12:27 | → | idf joins (~idf@198.23.223.146) |
| 13:15:53 | → | slowButPresent joins (~slowButPr@user/slowbutpresent) |
| 13:17:21 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 248 seconds) |
| 13:19:15 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 13:19:35 | <keutoi> | Is there a way to get the default Show instance of a data type without deriving it? I have a custom Show instance for a data type, but I also want to see the default as it helps during debugging. |
| 13:19:40 | → | pragma- joins (~chaos@user/pragmatic-chaos) |
| 13:23:11 | <dminuoso> | You can also write out the instance yourself, of course |
| 13:23:11 | → | burnsidesLlama joins (~burnsides@dhcp168-012.wadham.ox.ac.uk) |
| 13:23:40 | <dminuoso> | keutoi: Honestly, if you have custom formatting, Show is likely a bad candidate anyway |
| 13:23:54 | <dminuoso> | It's often misused as a generic "ToString" type of class, but that's not the purpose of it. |
| 13:24:35 | → | pfurla joins (~pfurla@ool-3f8fcb0f.dyn.optonline.net) |
| 13:24:48 | <dminuoso> | For custom formatting, I'd either have a library specific Pretty typeclass, or a bunch of pretty functions, like prettyFoo and prettyBar. Then you can still use Show for debugging like its intended, and not be in conflict with your domain specific prettification |
| 13:25:46 | → | vrilles joins (~vrilles@user/aman) |
| 13:28:01 | × | pfurla_ quits (~pfurla@ool-3f8fcb0f.dyn.optonline.net) (Ping timeout: 248 seconds) |
| 13:31:12 | → | Atum_ joins (~IRC@user/atum/x-2392232) |
| 13:32:24 | <keutoi> | I am only using the custom show instance for debugging, but there is some ambiguity as different inputs produce the same string. In default instance they will be different. So I wanted to see if there is some function, say /show_canonical/ which prints the default version. |
| 13:33:57 | <dminuoso> | keutoi: Show is supposed to produce a Haskell expression that evaluates/reads back into the same value. |
| 13:34:40 | → | markpythonicbitc joins (~markpytho@50.228.44.6) |
| 13:34:54 | <dminuoso> | Use something other than Show. Some custom class if you must (generally this is a bad idea, since you rarely have only a single canonical way of stringifying some data type), or just functions |
| 13:38:28 | × | lbseale_ quits (~lbseale@user/ep1ctetus) (Read error: Connection reset by peer) |
| 13:40:31 | <keutoi> | I guess just using functions for custom conversion and deriving the default instance is a saner way of working with this. |
| 13:40:36 | <keutoi> | dminuoso: Thank You |
| 13:42:32 | <kuribas> | Is there a map which allows fetching by type? |
| 13:42:58 | <dminuoso> | You mean like a GADT? |
| 13:43:07 | <kuribas> | No, just the type of the contents |
| 13:43:55 | <kuribas> | "store :: a -> DynamicMap -> DynamicMap" "retrieve :: DynamicMap -> Maybe a" |
| 13:44:23 | <Hecate> | keutoi: from your usecase it would seem that you need a Debug typeclass :) |
| 13:45:08 | <dminuoso> | keutoi: What you could do, is use CPP or a runtime flag to swap out the definition of such a pretty function with the use of a deriving generated Show. |
| 13:45:42 | <dminuoso> | Presumably you have some fields that are hidden or considered internal? |
| 13:46:21 | → | shapr joins (~user@pool-100-36-247-68.washdc.fios.verizon.net) |
| 13:47:50 | <Hecate> | guess I my next crusade is to put a Debug typeclass in base |
| 13:48:26 | <dminuoso> | What's wrong with Show? |
| 13:48:40 | <dminuoso> | Typeclasses are an already bad fit for this domain |
| 13:48:54 | <dminuoso> | It works for Show because it has very clear semantics with little room for ambiguities. |
| 13:48:55 | <Hecate> | dminuoso: "Show" itself is not problematic, this is not the proper reasoning |
| 13:49:28 | <dminuoso> | But for Debug its a bad idea. You generally dont have a single canonical way of presenting a debug output for a value. |
| 13:49:35 | <dminuoso> | You tend to have multiple ones |
| 13:49:41 | <dminuoso> | It's why Pretty is a bad idea most of time too |
| 13:50:03 | <Hecate> | dminuoso: considering the amount of "Show" that is used for Deugging, I'd say this fits in many usecases |
| 13:50:31 | <dminuoso> | Hecate: Sure, because often you just want to know how this value was constructed |
| 13:51:01 | <keutoi> | dminuoso: I have not used CPP in haskell before, but this might be just what I need for now. Let me try... |
| 13:51:03 | <Hecate> | and also what it looks like |
| 13:51:25 | × | yoctocell quits (~user@h87-96-130-155.cust.a3fiber.se) (Quit: ERC (IRC client for Emacs 28.0.50)) |
| 13:52:16 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 13:52:40 | → | yoctocell joins (~user@h87-96-130-155.cust.a3fiber.se) |
| 13:53:54 | <Hecate> | dminuoso: my point is rather than every datatype has different needs when it comes to pretty-printing/debugging, and a Show instance without a less principled couterpart is never the answer |
| 13:53:54 | × | nf quits (~n@monade.li) (Quit: Fairfarren.) |
| 13:54:06 | → | nf joins (~n@monade.li) |
| 13:54:11 | × | yoctocell quits (~user@h87-96-130-155.cust.a3fiber.se) (Remote host closed the connection) |
| 13:54:18 | <Hecate> | because you inevitably end up trying to fit your domain into the instance, which produces unlawful instances |
| 13:54:33 | × | berberman quits (~berberman@user/berberman) (Quit: ZNC 1.8.2 - https://znc.in) |
| 13:54:48 | <kuribas> | dminuoso: nevermind, I'll use a datatype and this :) https://hackage.haskell.org/package/generic-lens-2.2.0.0/docs/Data-Generics-Product-Any.html |
| 13:55:29 | → | berberman joins (~berberman@user/berberman) |
| 13:59:32 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 14:01:24 | <keutoi> | dminuoso: CPP works perfectly to switch between default and custom instances. Thank You. |
| 14:13:06 | AndrewYu | is now known as luk4yx |
| 14:13:09 | luk4yx | is now known as AndrewYu |
| 14:13:49 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 14:14:57 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) |
| 14:16:28 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 14:17:35 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) |
| 14:17:55 | → | jtomas joins (~jtomas@233.red-83-34-2.dynamicip.rima-tde.net) |
| 14:22:34 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
| 14:23:00 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 14:27:58 | × | elf_fortrez quits (~elf_fortr@adsl-72-50-6-221.prtc.net) (Ping timeout: 246 seconds) |
| 14:34:34 | × | burnsidesLlama quits (~burnsides@dhcp168-012.wadham.ox.ac.uk) (Remote host closed the connection) |
| 14:34:55 | → | zcombinator joins (~zcombinat@37.162.157.57) |
| 14:35:00 | → | burnsidesLlama joins (~burnsides@dhcp168-012.wadham.ox.ac.uk) |
| 14:36:01 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 14:37:58 | → | Vajb joins (~Vajb@2001:999:252:4e3c:27f9:d93:655e:583) |
| 14:38:14 | × | vpan quits (~vilius@212.117.1.172) (Quit: Leaving.) |
| 14:39:17 | × | burnsidesLlama quits (~burnsides@dhcp168-012.wadham.ox.ac.uk) (Ping timeout: 245 seconds) |
| 14:43:06 | × | cross quits (~cross@spitfire.i.gajendra.net) (Ping timeout: 240 seconds) |
| 14:44:49 | → | cross joins (~cross@spitfire.i.gajendra.net) |
| 14:47:26 | <maerwald> | show isn't for debugging :p |
| 14:48:03 | → | jeslie0 joins (~user@108.162.150.9) |
| 14:48:07 | <kuribas> | maerwald: pPrint is :) |
| 14:48:19 | <kuribas> | or at least, it's what I use :-P |
| 14:48:24 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 14:48:24 | <maerwald> | https://hackage.haskell.org/package/network-uri-2.7.0.0/docs/src/Network.URI.html#line-274 |
| 14:48:38 | <maerwald> | show is for... hmm, showing stuff |
| 14:48:51 | <maerwald> | log-safe |
| 14:49:11 | <kuribas> | I'd say debugging is the primary usecase for Show... |
| 14:49:59 | <maerwald> | then you might not like the show utf8 proposal |
| 14:50:09 | <maerwald> | for the string instance |
| 14:51:00 | × | jeslie0 quits (~user@108.162.150.9) (Remote host closed the connection) |
| 14:51:12 | → | gethuen joins (uid502979@id-502979.stonehaven.irccloud.com) |
| 14:52:43 | <maerwald> | https://gitlab.haskell.org/ghc/ghc/-/issues/20027 |
| 14:53:41 | × | gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 14:54:53 | × | kuribas quits (~user@ptr-25vy0i7jvn9rvz44z49.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3)) |
| 14:55:16 | → | Hanicef joins (~gustaf@81-229-9-108-no92.tbcn.telia.com) |
| 14:56:35 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 15:01:11 | <joeyh> | if a cabal file has a extra-deps github: line, and the git repository contains several packages, with a cabal.project in it that lists them all, will stack use those packages to satisfy other extra-deps? |
| 15:01:16 | <keutoi> | How constrained should I be w.r.t read . show == id ? Is it idiomatic that this hold? |
| 15:01:37 | <tomsmeding> | aarchi: doesn't the whitespace code build on a newer ghc? did you try, perhaps one in the 7 series that ghcup still has? |
| 15:02:18 | → | Boomerang joins (~Boomerang@xd520f68c.cust.hiper.dk) |
| 15:03:05 | → | o1lo01ol1o joins (~o1lo01ol1@89.214.83.229) |
| 15:05:11 | × | mattil quits (~mattilinn@84-253-224-16.bb.dnainternet.fi) (Read error: Connection reset by peer) |
| 15:06:33 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Quit: FinnElija) |
| 15:07:17 | <hololeap> | keutoi: yes, it's considered bad practice to use Show for anything other than "poor-man's serialization" |
| 15:07:35 | × | o1lo01ol1o quits (~o1lo01ol1@89.214.83.229) (Ping timeout: 258 seconds) |
| 15:09:08 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 15:09:56 | → | mattil joins (~mattilinn@84-253-224-16.bb.dnainternet.fi) |
| 15:10:26 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 15:10:45 | × | mattil quits (~mattilinn@84-253-224-16.bb.dnainternet.fi) (Remote host closed the connection) |
| 15:11:08 | → | mattil joins (~mattilinn@84-253-224-16.bb.dnainternet.fi) |
| 15:12:16 | × | mattil quits (~mattilinn@84-253-224-16.bb.dnainternet.fi) (Remote host closed the connection) |
| 15:12:40 | → | mattil joins (~mattilinn@84-253-224-16.bb.dnainternet.fi) |
| 15:13:42 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds) |
| 15:13:45 | × | mattil quits (~mattilinn@84-253-224-16.bb.dnainternet.fi) (Remote host closed the connection) |
| 15:14:08 | → | mattil joins (~mattilinn@84-253-224-16.bb.dnainternet.fi) |
| 15:14:14 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 15:14:39 | → | o1lo01ol1o joins (~o1lo01ol1@89.214.83.229) |
| 15:15:15 | × | mattil quits (~mattilinn@84-253-224-16.bb.dnainternet.fi) (Remote host closed the connection) |
| 15:15:35 | → | fendor joins (~fendor@178.165.196.92.wireless.dyn.drei.com) |
| 15:15:40 | → | mattil joins (~mattilinn@84-253-224-16.bb.dnainternet.fi) |
| 15:16:45 | × | mattil quits (~mattilinn@84-253-224-16.bb.dnainternet.fi) (Remote host closed the connection) |
| 15:17:10 | → | mattil joins (~mattilinn@84-253-224-16.bb.dnainternet.fi) |
| 15:18:15 | × | mattil quits (~mattilinn@84-253-224-16.bb.dnainternet.fi) (Remote host closed the connection) |
| 15:18:48 | → | Erupmi joins (~user@2001:8003:2309:8400:1683:bc27:3e09:7cdc) |
| 15:19:24 | × | Erupmi quits (~user@2001:8003:2309:8400:1683:bc27:3e09:7cdc) (Client Quit) |
| 15:19:48 | × | machinedgod quits (~machinedg@24.105.81.50) (Remote host closed the connection) |
| 15:19:53 | → | Erupmi joins (~user@2001:8003:2309:8400:1683:bc27:3e09:7cdc) |
| 15:21:48 | × | Erupmi quits (~user@2001:8003:2309:8400:1683:bc27:3e09:7cdc) (Remote host closed the connection) |
| 15:23:17 | → | Guest15 joins (~Guest15@2001:8003:2309:8400:1683:bc27:3e09:7cdc) |
| 15:24:09 | × | Guest15 quits (~Guest15@2001:8003:2309:8400:1683:bc27:3e09:7cdc) (Client Quit) |
| 15:24:39 | → | pfurla_ joins (~pfurla@ool-3f8fcb0f.dyn.optonline.net) |
| 15:28:28 | × | pfurla quits (~pfurla@ool-3f8fcb0f.dyn.optonline.net) (Ping timeout: 272 seconds) |
| 15:39:37 | × | MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 268 seconds) |
| 15:40:32 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
| 15:40:45 | → | MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
| 15:42:52 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 15:45:09 | × | MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 268 seconds) |
| 15:45:20 | × | zcombinator quits (~zcombinat@37.162.157.57) (Quit: WeeChat 3.2) |
| 15:47:30 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 15:47:55 | → | MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
| 15:48:36 | × | V quits (~v@anomalous.eu) (Ping timeout: 258 seconds) |
| 15:48:51 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds) |
| 15:58:30 | <sm> | joeyh, that's a bit of a puzzler. extra-deps in a cabal file ? stack and cabal.project ? do all those things go together ? |
| 15:59:04 | × | o1lo01ol1o quits (~o1lo01ol1@89.214.83.229) (Remote host closed the connection) |
| 16:01:05 | × | keutoi quits (~keutoi@157.48.222.12) (Ping timeout: 248 seconds) |
| 16:02:57 | → | keutoi joins (~keutoi@223.182.21.173) |
| 16:05:22 | → | o1lo01ol1o joins (~o1lo01ol1@89.214.83.229) |
| 16:08:01 | → | aegon joins (~mike@174.127.249.180) |
| 16:08:30 | <aegon> | I'm instancing Read manually for the first time and am unsure how to deal with the precidence correctly https://paste.tomsmeding.com/KUDLLu1Q |
| 16:08:59 | <aegon> | i got those types backwards Point should be the newtype and Position is what point is :X |
| 16:09:53 | → | dcompoze joins (~dcompoze@5E98D6D9.static.tld.pl) |
| 16:11:21 | → | t0zy joins (~t0zy@49.207.220.61) |
| 16:11:42 | <aegon> | here's a correct paste https://paste.tomsmeding.com/HnQi4a6S |
| 16:15:46 | × | t0zy quits (~t0zy@49.207.220.61) (Client Quit) |
| 16:15:49 | × | jackdk quits (sid373013@cssa/jackdk) (Ping timeout: 258 seconds) |
| 16:16:58 | <monochrom> | w00t GHC 8.10.6 |
| 16:17:00 | → | jackdk joins (sid373013@cssa/jackdk) |
| 16:19:17 | × | wei2912 quits (~wei2912@112.199.250.21) (Quit: Lost terminal) |
| 16:20:26 | <sm> | \o/ |
| 16:20:48 | × | darxun quits (sid504814@tinside.irccloud.com) (Ping timeout: 258 seconds) |
| 16:20:48 | × | _0x47 quits (sid508683@tinside.irccloud.com) (Ping timeout: 258 seconds) |
| 16:21:59 | → | _0x47 joins (sid508683@id-508683.tinside.irccloud.com) |
| 16:24:24 | → | darxun joins (sid504814@id-504814.tinside.irccloud.com) |
| 16:28:51 | → | burnsidesLlama joins (~burnsides@dhcp168-012.wadham.ox.ac.uk) |
| 16:29:26 | → | dcompoze_ joins (~dcompoze@cpc97624-walt24-2-0-cust75.13-2.cable.virginm.net) |
| 16:30:20 | × | hongminhee quits (sid295@tinside.irccloud.com) (Read error: Connection reset by peer) |
| 16:30:29 | → | hongminhee joins (sid295@id-295.tinside.irccloud.com) |
| 16:32:12 | × | dcompoze quits (~dcompoze@5E98D6D9.static.tld.pl) (Ping timeout: 245 seconds) |
| 16:39:41 | × | HarveyPwca quits (~HarveyPwc@2601:246:c180:a570:29df:3b00:ad0e:3a06) (Quit: Leaving) |
| 16:41:31 | → | lbseale joins (~lbseale@user/ep1ctetus) |
| 16:43:22 | → | Gurkenglas joins (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) |
| 16:44:40 | × | burnsidesLlama quits (~burnsides@dhcp168-012.wadham.ox.ac.uk) (Remote host closed the connection) |
| 16:44:41 | × | Vajb quits (~Vajb@2001:999:252:4e3c:27f9:d93:655e:583) (Read error: Connection reset by peer) |
| 16:44:54 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) |
| 16:45:13 | → | burnsidesLlama joins (~burnsides@dhcp168-012.wadham.ox.ac.uk) |
| 16:46:47 | → | wallymathieu joins (~wallymath@81-234-151-21-no94.tbcn.telia.com) |
| 16:48:40 | <joeyh> | sm: it seems not, based on some experiments. ended up having to clone it and add file paths instead |
| 16:48:58 | <joeyh> | oh, the stack file had the extra-deps not the cabal file of course |
| 16:49:37 | × | burnsidesLlama quits (~burnsides@dhcp168-012.wadham.ox.ac.uk) (Ping timeout: 248 seconds) |
| 16:49:48 | → | mousey joins (~skymouse@gateway/tor-sasl/mousey) |
| 16:50:01 | <maerwald> | link or it didn't happen |
| 16:52:32 | <tomsmeding> | maerwald: https://mail.haskell.org/pipermail/ghc-devs/2021-August/020101.html |
| 16:52:43 | ← | pragma- parts (~chaos@user/pragmatic-chaos) (Bye!) |
| 16:52:44 | <maerwald> | tomsmeding: yeah? |
| 16:52:52 | <tomsmeding> | or did you mean the extra-deps thing :p |
| 16:53:01 | <sm> | joeyh: right, I believe `extra-deps` is in stack.yaml, github repositories can't be in a cabal file's dependencies:, and stack doesn't see cabal.project |
| 16:53:15 | <maerwald> | yeah, basically tooling mess |
| 16:54:57 | <sm> | s/dependencies:/build-depends:/ |
| 16:55:11 | <maerwald> | joeyh: so you are using cabal? |
| 16:55:21 | <dminuoso> | 18:50:59 maerwald | [14:47:26] show isn't for debugging :p |
| 16:56:31 | <dminuoso> | Arguably it is. Deriving generated instances give a very strong hint at what the point is - providing valid Haskell expressions that both evaluate and `read` back to the value, clearly is aimed at providing an internal representation of data objects. |
| 16:56:54 | <maerwald> | dminuoso: did you check my link where the show instance hides the password? :p |
| 16:57:07 | <maerwald> | tbh... I don't even know what to think of it |
| 16:57:08 | <dminuoso> | Yes, some packages break that habit. |
| 16:57:25 | <maerwald> | but it's true that Show is used in logging |
| 16:57:31 | <maerwald> | either explicit or implicitly |
| 16:57:38 | <maerwald> | you don't want prett-printing in logging |
| 16:57:40 | <dminuoso> | Not in the general case |
| 16:57:49 | <dminuoso> | I wholeheartedly disagree |
| 16:57:54 | <dminuoso> | You want pretty printing in logging. |
| 16:58:06 | <maerwald> | well, I don't have a strong opinion |
| 16:58:06 | <dminuoso> | You want to control the output since it's for enduser consumption |
| 16:58:15 | <aegon> | depends on how much you pay for passive logging |
| 16:58:18 | <maerwald> | logging sux, I'm glad when I'm done with it |
| 16:58:39 | <aegon> | imo, if its an error report pretty print away, otherwise keep it to a minimum needed to trace processes |
| 16:58:50 | <maerwald> | but now that you mention it... I did switch from Show to some pretty print for logging bc it was awful |
| 16:59:17 | <dminuoso> | My rule of thumb is: If the output is meant for developers, go crazy with `show` all you want - it's great because it gives as much internal structure of values as possible. |
| 16:59:31 | <aegon> | congrats on 8.10.6 |
| 16:59:35 | <dminuoso> | If its for non-developers, try and pretty print (whatever that means, really) |
| 16:59:48 | × | vrilles quits (~vrilles@user/aman) (Quit: vrilles) |
| 16:59:58 | <dminuoso> | It doesnt mean you have to unload a pretty printer library, but at least provide `pretty` type of functions `pprT :: T -> String` |
| 16:59:59 | <sm> | I'm a developer and I pretty print everything, because reading pages of run together Show output is not what my brain is for |
| 17:00:31 | <joeyh> | maerwald: I was building with stack. unsure what stack uses cabal for and what it doesn't |
| 17:01:00 | <sm> | joeyh: in that case, reference the github repos in stack.yaml, not cabal.project |
| 17:01:12 | <maerwald> | joeyh: stack uses Setup.hs |
| 17:03:25 | <aegon> | i started using cabal and have switched to stack, now it seems more projects are using cabal. Is stack semi-abandoned in favor of cabal now that fp-complete is doing more rust oriented develoment or what are the general feels about the two |
| 17:03:44 | <dminuoso> | aegon: I'd say the community is fairly split |
| 17:03:46 | → | hnOsmium0001 joins (uid453710@id-453710.stonehaven.irccloud.com) |
| 17:04:17 | <aegon> | I know they are not 1:1. I like the isolation between projects of stack, i don't particularly like the resolver notion |
| 17:04:24 | <sm> | it's a polarised topic, #haskell tends to lean anti stack, industrial programmers tend to be pro stack |
| 17:04:50 | <aegon> | its easier to point someone new to haskell to stack than cabal. I haven't looked at what cabal has been up too since 2008-ish though |
| 17:04:53 | <dminuoso> | From my perspective the main motivations behind stack have become moot since cabal has introduced nix-style builds years ago. |
| 17:04:56 | <maerwald> | sm: any source for that? |
| 17:05:15 | <aegon> | kk, i'll ask in off topic then after some coffee :P |
| 17:05:21 | <sm> | my personal observation over the years |
| 17:05:23 | <dminuoso> | But if you want to use stack, there's nothing inherently wrong with it. Just bear in mind that it introduces additional tooling that you need to cater for. |
| 17:05:54 | <aegon> | i'm new to nix, i'd be into switching, is there a good blog post about cabal + nix for isolation? |
| 17:05:57 | <maerwald> | sm: cardano-node uses cabal |
| 17:06:06 | <dminuoso> | aegon: cabal + nix is a different topic again! |
| 17:06:12 | <sm> | maerwald: also, various haskell surveys over the years |
| 17:06:30 | <aegon> | dminuoso: :X |
| 17:06:37 | <dminuoso> | aegon: When I said `nix-style` builds I meant that cabal has started doing builds the way nix does a few years ago. |
| 17:06:42 | <maerwald> | sm: does the haskell survey say if stack users are industrial programmers? |
| 17:06:45 | <dminuoso> | This essentially solved dependency hell with cabal |
| 17:06:59 | <dminuoso> | Also, what is an "industrial programmer" |
| 17:07:19 | <dminuoso> | aegon: So you have the following options: |
| 17:08:03 | <sm> | agh no cross examination at this time of morning please. :) If you have been paying attention to the haskell world for a few years this has not been in question. Maybe it it shifting ? You will need a new haskell survey to be sure |
| 17:08:08 | × | mousey quits (~skymouse@gateway/tor-sasl/mousey) (Quit: Reconnecting) |
| 17:08:17 | → | mousey joins (~skymouse@gateway/tor-sasl/mousey) |
| 17:08:23 | <maerwald> | sm: I have been paying attention and I didn't get your impression |
| 17:08:25 | <dminuoso> | 1. cabal nix-style (this is just called `cabal` nowadays), 2. stack, 3. cabal + nix (provide cabal/ghc/native dependencies via nix, but otherwise do a plain cabal build like in 1), 3. nix using callCabal2nix, 4. nix using haskell.nix. |
| 17:08:34 | <maerwald> | my impression is that it's basically impossible to say |
| 17:08:49 | <dminuoso> | Oh sorry, the count was wrong. |
| 17:08:55 | <dminuoso> | 1. cabal nix-style (this is just called `cabal` nowadays), 2. stack, 3. cabal + nix (provide cabal/ghc/native dependencies via nix, but otherwise do a plain cabal build like in 1), 4. nix using callCabal2nix, 5. nix using haskell.nix. |
| 17:08:57 | <monochrom> | It is not very difficult to say "I have no data". |
| 17:08:57 | <dminuoso> | There. |
| 17:09:02 | × | o1lo01ol1o quits (~o1lo01ol1@89.214.83.229) (Remote host closed the connection) |
| 17:09:17 | × | keutoi quits (~keutoi@223.182.21.173) (Ping timeout: 245 seconds) |
| 17:10:13 | → | keutoi joins (~keutoi@223.182.21.173) |
| 17:10:34 | <maerwald> | also: stack vs cabal isn't a "company" decision... I can use any stack build system with cabal |
| 17:10:37 | <maerwald> | I decide myself :) |
| 17:10:51 | <aegon> | for a new comer that is far too many optoins, i'm really curious about nix since its gaining traction from my "gut" feeling talking with others in haskell land but it feels wierd to me. |
| 17:10:53 | <maerwald> | in public projects, I want stack.yaml and cabal.project likewise |
| 17:11:02 | <sclv> | aegon: the standard cabal (nix-style) builds now give you the isolation between projects without sacrificing the resolver notion, so it sounds like that might be the simplest approach to start with |
| 17:11:23 | <aegon> | I don't really understand it but from what i grokk it feels like giving up on compatible / generic code and making os blot containers for every lib version ever and relying on isolation to deal with vulnerabilities? |
| 17:11:30 | × | wonko quits (~wjc@62.115.229.50) (Ping timeout: 268 seconds) |
| 17:11:37 | <dminuoso> | aegon: 3 is just a slight improvement of 1 in my opinion, consider that you need to provide the binaries of cabal, ghc and native dependencies some way! |
| 17:11:43 | <dminuoso> | perhaps it ought not be listed here. |
| 17:11:50 | <dminuoso> | since it's, at the end, just plain cabal |
| 17:11:56 | → | wonko joins (~wjc@62.115.229.50) |
| 17:12:01 | <sclv> | imho using "actual nix" for everything is either because you like using nix to manage everything else in your dev ecosystem, or because you are at a shop that's using nix for its workflows pervasively |
| 17:12:14 | <sclv> | for individual projects/libs my experience is nix buys very little |
| 17:12:22 | <maerwald> | aegon: oh, nix isn't a good fit if you care about vulnerabilities and security fixes |
| 17:12:26 | <sclv> | but for managing releases/deployments of large multi-component systems it buys a Lot |
| 17:13:16 | <dminuoso> | Indeed. We are currently building a multi node fleet of about 25 different servers doing different things. A fair chunk of it runs custom haskell code, and there's a lot of coupling and dependencies |
| 17:13:33 | <dminuoso> | For this type of deployment going all nixos/nix helps a lot staying sane |
| 17:13:36 | <aegon> | sclv: dminuoso: i'll try switching over a project from stack to the new cabal, do you have a good pointer to docs to freshen up on? |
| 17:13:50 | <dminuoso> | aegon: cabal has very good documentation |
| 17:13:56 | <maerwald> | @hackage stack2cabal -- aegon |
| 17:13:56 | <lambdabot> | https://hackage.haskell.org/package/stack2cabal -- aegon |
| 17:14:06 | <sclv> | https://cabal.readthedocs.io/en/3.4/nix-local-build-overview.html |
| 17:14:09 | <monochrom> | Clearly, the decision about nix is very easy. If you already know nix, it's a no-brainer to add "now use it for haskell stuff". If you don't already know nix, clearly it is Bismarck's Nightmare to fight both nix and haskell stuff at the same time. |
| 17:14:31 | <dminuoso> | monochrom: Indeed, it took me nearly 2 to get a full grasp and handle on nixos and nix. |
| 17:14:35 | <dminuoso> | 2 years. |
| 17:14:51 | <dminuoso> | But we didnt have someone in our company to help and train |
| 17:15:00 | × | wallymathieu quits (~wallymath@81-234-151-21-no94.tbcn.telia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 17:15:11 | <dminuoso> | Figuring everything out by yourself is incredibly nightmarish |
| 17:15:12 | <sclv> | yes, we rely heavily on nix at work and i can't imagine what we'd do without it, some ungodly combination of puppet and docker and three other things, i imagine. also i barely understand it at all and rely on our nix-experts to do anything nontrivial :-) |
| 17:15:22 | <sm> | is there any change Nix-style could be removed and replaced with another term in cabal docs ? It's confusing |
| 17:15:24 | <sm> | chance |
| 17:15:33 | <dminuoso> | sm: absolutely, make the proposal? |
| 17:15:51 | → | Guest74 joins (~Guest74@91-155-110-45.elisa-laajakaista.fi) |
| 17:15:57 | <sclv> | iirc nobody really likes the name, but there's been no clear far better replacements |
| 17:16:07 | <maerwald> | sclv: I had the same. The nix guru left and we rewrote in ansible and never looked back, because after all, the problem was advertised more complicated than it actually was :p |
| 17:16:31 | <dminuoso> | For us, the only alternative would be kubernetes |
| 17:16:35 | <sclv> | the word "nix" luckily doesn't appear anywhere in the commands and u/x for haskell afaik |
| 17:16:48 | <sm> | I found https://github.com/haskell/cabal/issues/6105 |
| 17:16:51 | <dminuoso> | But kubernetes is just as complicated in terms of knowledge needed to absorb |
| 17:17:08 | → | burnsidesLlama joins (~burnsides@dhcp168-012.wadham.ox.ac.uk) |
| 17:17:08 | × | Guest74 quits (~Guest74@91-155-110-45.elisa-laajakaista.fi) (Client Quit) |
| 17:17:14 | <sm> | but v2-build is even worse |
| 17:17:23 | <maerwald> | whether you have a nix guru or a kubernetes guru... not much difference |
| 17:17:24 | <sclv> | my feeling is as we rewrite the docs (ongoing) then its a good opportunity to clean that all up, especially since "v2-build" or "nix style build" is just "build" and its really just a term to distinguish from legacy build |
| 17:17:29 | <maerwald> | except the nix guru might be more expensive |
| 17:17:38 | <sclv> | so on a long enough timeframe, the right prefix is... none |
| 17:17:41 | <dsal> | So you're saying nix is more lucrative... |
| 17:17:48 | <maerwald> | it's more niche |
| 17:18:04 | <dsal> | I really like nixos as a user, but I haven't really figured out how to do anything useful with nix as a thing. |
| 17:18:10 | <maerwald> | and nix is heavily oversold |
| 17:18:15 | <maerwald> | so it can pay well |
| 17:18:18 | × | wonko quits (~wjc@62.115.229.50) (Ping timeout: 258 seconds) |
| 17:18:37 | <dminuoso> | Btw, I was very amused when you said |
| 17:18:39 | <dminuoso> | 18:58:05 maerwald | well, I don't have a strong opinion |
| 17:18:44 | <dminuoso> | You're one with very strong opinions. :-) |
| 17:18:47 | <maerwald> | lol |
| 17:19:02 | <sclv> | who hacked maerwalds account!? |
| 17:19:17 | <maerwald> | maybe I just like to get roasted? ;-) |
| 17:20:37 | × | gethuen quits (uid502979@id-502979.stonehaven.irccloud.com) (Quit: Connection closed for inactivity) |
| 17:21:05 | × | vicfred quits (~vicfred@user/vicfred) (Ping timeout: 248 seconds) |
| 17:21:32 | × | burnsidesLlama quits (~burnsides@dhcp168-012.wadham.ox.ac.uk) (Ping timeout: 252 seconds) |
| 17:21:40 | <monochrom> | Give a man a fire, and he will be warm for a day. Give a strong opinion, and you will be warm for the rest of your life. |
| 17:23:19 | <aegon> | the nix-style builds looks like all the same stuff, i need to learn how to run local hoogle in cabal-nix land per project and this seems like an easy switch / way out of resolver land |
| 17:24:23 | → | pfurla joins (~pfurla@ool-3f8fcb0f.dyn.optonline.net) |
| 17:24:50 | <dminuoso> | aegon: "nix-style builds" is just a fancy way of saying that cabal since a few years will put build artifacts into a system global store, thereby allowing multiple flavors/versions of a dependency to co-exist. |
| 17:25:07 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
| 17:25:18 | <dminuoso> | This is termed "nix-style" since this was inspired by how nix builds things. |
| 17:25:35 | <sclv> | aegon: `cabal v2-haddock --haddock-hoogle` should generate the hoogledb? note that v2-haddock in general is not in great shape to be honest. |
| 17:26:04 | <sclv> | it may have gotten better, but where it ends up stashing stuff is sort of confusing |
| 17:26:37 | <sclv> | the whole notion of haddocks has a more "global" feel than a lot of other commands, so its a bit more odd in the new paradigm |
| 17:27:11 | <maerwald[m]> | Imo nix only makes sense if you don't control the environment |
| 17:27:11 | <dminuoso> | For my uses, `hoogle` on the website against the stackage resolver seems to work fine 95% of the time. :P |
| 17:27:18 | <sclv> | instead of "nix style" it might be more generic to call these "store-style builds" as opposed to "packagedb-style builds" |
| 17:27:25 | <sclv> | for some neutral terminology going forward |
| 17:27:41 | <maerwald[m]> | That's why cardano's daedalus uses nix to set up the wallet and node etc |
| 17:27:47 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 17:27:57 | <maerwald[m]> | Because you don't know the users env |
| 17:28:10 | × | pfurla_ quits (~pfurla@ool-3f8fcb0f.dyn.optonline.net) (Ping timeout: 272 seconds) |
| 17:28:26 | <maerwald[m]> | If you deploy to your own environments, what's the point |
| 17:28:27 | <monochrom> | Eventually I wrote https://github.com/treblacy/hasdoc to locate library docs. My script focuses on the index.html's, but perhaps you can adapt it for hoogledb. |
| 17:30:31 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 17:30:43 | <aegon> | yeah i think i need to get into a situtuation where nix solves a problem for me before i grokk it. It feels like a security vulnerability to me at the moment, like flat-pack. seems easy to have some super old libs active on your system and not realize it |
| 17:31:06 | <maerwald[m]> | Nix wasn't designed around security |
| 17:31:24 | → | mei joins (~mei@user/mei) |
| 17:31:29 | <maerwald[m]> | Anything that freezes package versions or does LTS style things isn't |
| 17:32:18 | × | keutoi quits (~keutoi@223.182.21.173) (Quit: leaving) |
| 17:32:51 | → | betelgeuse joins (~john2gb@94-225-47-8.access.telenet.be) |
| 17:32:52 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 258 seconds) |
| 17:34:19 | <sm> | to be secure we should pull in new things every time, yup :) |
| 17:35:09 | <sm> | I feel the optimum must be somewhere in the middle |
| 17:35:31 | <maerwald[m]> | Yes, reproducible and security are contradicting goals |
| 17:36:56 | <aegon> | all my bias is from a bad experience fighting lts-like systems in debian with a needed patch to openssl so I'm coming at this from a heavy bias |
| 17:37:49 | <maerwald[m]> | There's only one universal definition of security and that's about how economic it is for an attacker to find vulnerabilities. And there's only one sure way to increase this cost: always update. Because then attackers have to study new versions |
| 17:37:49 | <aegon> | don't claim to have good reasoning against lts or reproducablility. in the past its been way easier to test version upgrades vs having to upgrade something baked into a curated lts set of packages |
| 17:38:19 | <maerwald[m]> | Security backports are not as useful as ppl think |
| 17:38:44 | <maerwald[m]> | As gregkh put it: it's not even clear what bugfix is a security bugfix and what isn't |
| 17:38:58 | × | Hanicef quits (~gustaf@81-229-9-108-no92.tbcn.telia.com) (Quit: leaving) |
| 17:39:16 | <maerwald[m]> | No one has been able to come up with a reasonable distinction that you can apply |
| 17:39:22 | <maerwald[m]> | So you must assume all bugfixes can affect security |
| 17:40:19 | <maerwald[m]> | And as such the linux kernel doesn't make this distinction on purpose |
| 17:41:08 | × | hexology quits (~hexology@user/hexology) (Quit: hex on you ...) |
| 17:44:51 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 17:45:35 | → | wonko joins (~wjc@62.115.229.50) |
| 17:45:49 | → | pavonia joins (~user@user/siracusa) |
| 17:46:09 | × | thaumavorio quits (~thaumavor@thaumavor.io) (Ping timeout: 248 seconds) |
| 17:47:09 | <monochrom> | I am not impressed with the cottage industry of security either. Since the dawn of programming we already know about for example array index out of bound errors, and we already have a name for that, it's "array index out of bound error", it doesn't need a new name. |
| 17:48:15 | <maerwald[m]> | You just follow ISO 27k and you're good xD |
| 17:48:20 | → | thaumavorio joins (~thaumavor@thaumavor.io) |
| 17:48:51 | <maerwald[m]> | It starts with closing server rooms and the like |
| 17:48:58 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 17:49:01 | <maerwald[m]> | Physical access |
| 17:49:27 | <maerwald[m]> | And then basically stops there |
| 17:49:29 | <maerwald[m]> | xD |
| 17:49:41 | → | haowenl joins (~Thunderbi@066-215-230-039.res.spectrum.com) |
| 17:50:47 | <maerwald[m]> | They needed to introduce security in automotive industry, but the only engineering method (formal methods) would have set the industry back for years if it was enforced by law |
| 17:50:50 | <maerwald[m]> | So now you just have snake oil |
| 17:50:57 | × | wonko quits (~wjc@62.115.229.50) (Ping timeout: 248 seconds) |
| 17:51:05 | → | Codaraxis joins (~Codaraxis@user/codaraxis) |
| 17:52:57 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
| 17:53:11 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 17:53:23 | <sm> | re cabal terminology, https://github.com/haskell/cabal/issues/6105#issuecomment-898934058 |
| 17:53:33 | <sm> | other ideas ? |
| 17:54:03 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 268 seconds) |
| 17:55:32 | <maerwald[m]> | Trash nix style builds and re-introduce sandboxes. They are more reliable, easier to delete and clean up, debug, fix. |
| 17:56:17 | <maerwald[m]> | Cargo does the same |
| 17:56:58 | <sm> | no thank you, I don't like rebuilding the world for every new project :) |
| 17:57:08 | <maerwald[m]> | There are other solutions to this problem |
| 17:57:40 | <monochrom> | You know what, we can still call it sandboxing. You can't see a denotational difference. |
| 17:57:43 | × | haowenl quits (~Thunderbi@066-215-230-039.res.spectrum.com) (Quit: haowenl) |
| 17:58:25 | <maerwald[m]> | Yeah, you can use a new store dir for every project |
| 17:58:35 | <yushyin> | seems like haskell will never have good tooling, what next? re-re-introduce nix-style builds? |
| 17:59:52 | <maerwald[m]> | sm: i constantly have to rebuild world anyway. Change one ghc flag, update GHC version etc etc |
| 18:01:36 | <maerwald[m]> | Why do I need to rebuild everything if I update GHC from 8.10.5 to 8.10.6? |
| 18:01:48 | <maerwald[m]> | No one seems to mind |
| 18:03:20 | <monochrom> | I mind. But it is a tradeoff. The alternative is hugs or C. |
| 18:05:16 | <monochrom> | Or rather, the alternatives are Hugs, C, C++, Rust, write my own Haskell compiler. |
| 18:06:05 | <pavonia> | Hugs \o/ |
| 18:06:09 | <monochrom> | Thanks you very much, I'll stick to GHC, at least it's my poor laptop, not me, who does the hard work. |
| 18:06:17 | <maerwald[m]> | HF raised half a million, is that enough to fund you? |
| 18:06:26 | → | wallymathieu joins (~wallymath@81-234-151-21-no94.tbcn.telia.com) |
| 18:06:33 | <monochrom> | No, I would do a very poor job. |
| 18:06:34 | <c_wraith> | honestly, that's nothing compared to the cost of a reasonable compiler |
| 18:06:45 | → | Shaeto joins (~Shaeto@94.25.234.223) |
| 18:07:00 | <monochrom> | I mean yes! Who doesn't want to scam for half a million dollars? >:) |
| 18:07:08 | → | vicfred joins (~vicfred@user/vicfred) |
| 18:08:07 | <monochrom> | BTW if anything is a wage slave in the programming world, it's the poor computers, not any human at all. Programmers are overpriced as is. |
| 18:08:22 | <maerwald[m]> | Psst |
| 18:08:47 | <dsal> | Are you suggesting the computers seize the means of production? |
| 18:08:48 | <maerwald[m]> | They still think it's magic |
| 18:09:46 | <monochrom> | The computers are always compiling (a thankless job indeed, look at how humans complain about build errors), while humans can have bourgeois fun, https://xkcd.com/303/ |
| 18:10:10 | × | markpythonicbitc quits (~markpytho@50.228.44.6) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 18:10:45 | <maerwald[m]> | Are you gonna start the AI revolution? |
| 18:10:58 | <monochrom> | "exterminate all humans" |
| 18:11:22 | × | wallymathieu quits (~wallymath@81-234-151-21-no94.tbcn.telia.com) (Quit: Textual IRC Client: www.textualapp.com) |
| 18:11:34 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 18:14:13 | <maerwald[m]> | Roger |
| 18:16:18 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds) |
| 18:19:13 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 248 seconds) |
| 18:20:43 | <sclv> | oh monochrom btw do you have any suggestions on a ux for adding hasdoc-style functionality into cabal directly? |
| 18:20:52 | <sclv> | feel free to open a ticket for it |
| 18:26:18 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 18:27:12 | × | jneira quits (~jneira@28.red-80-28-169.staticip.rima-tde.net) (Ping timeout: 245 seconds) |
| 18:29:35 | → | V joins (~v@anomalous.eu) |
| 18:30:29 | <sclv> | monochrom: https://github.com/haskell/cabal/issues/5803 |
| 18:31:27 | × | mousey quits (~skymouse@gateway/tor-sasl/mousey) (Ping timeout: 244 seconds) |
| 18:32:18 | × | V quits (~v@anomalous.eu) (Remote host closed the connection) |
| 18:32:33 | → | V joins (~v@anomalous.eu) |
| 18:32:36 | × | V quits (~v@anomalous.eu) (Remote host closed the connection) |
| 18:33:36 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 18:33:46 | → | Vajb joins (~Vajb@2001:999:252:4e3c:27f9:d93:655e:583) |
| 18:34:31 | → | V joins (~v@anomalous.eu) |
| 18:40:33 | × | dyeplexer quits (~dyeplexer@user/dyeplexer) (Ping timeout: 248 seconds) |
| 18:44:29 | → | haowenl joins (~Thunderbi@066-215-230-039.res.spectrum.com) |
| 18:44:33 | × | Boomerang quits (~Boomerang@xd520f68c.cust.hiper.dk) (Ping timeout: 258 seconds) |
| 18:45:35 | <hololeap> | lets say I came up with a fancy new Monoid and I want to check to see if it obeys the laws, would agda or idris help me automate this? |
| 18:47:01 | × | dcompoze_ quits (~dcompoze@cpc97624-walt24-2-0-cust75.13-2.cable.virginm.net) (Quit: WeeChat 3.2) |
| 18:47:15 | → | dcompoze joins (~dcompoze@cpc97624-walt24-2-0-cust75.13-2.cable.virginm.net) |
| 18:51:02 | <hpc> | agda could, but idris is turing complete |
| 18:51:20 | <hpc> | although maybe it could tell you enough to be helpful |
| 18:51:35 | <hpc> | without being a true proof |
| 18:52:21 | <hpc> | quickcheck might be enough too |
| 18:52:32 | <hololeap> | I should probably take some time to get familiar with both and understand how proof assistants work in general |
| 18:53:11 | <hpc> | plus it's good to know anyway |
| 18:53:54 | <hpc> | the "in general" is pretty simple - types are assertions, and values of those types are their proofs |
| 18:54:02 | × | astra` quits (sid289983@user/amish) (Ping timeout: 252 seconds) |
| 18:54:08 | × | acertain quits (sid470584@id-470584.stonehaven.irccloud.com) (Ping timeout: 258 seconds) |
| 18:54:08 | × | ehamberg quits (sid18208@id-18208.stonehaven.irccloud.com) (Ping timeout: 258 seconds) |
| 18:54:11 | <hpc> | for an example of why being turing-complete is bad, consider fix |
| 18:54:14 | × | hnOsmium0001 quits (uid453710@id-453710.stonehaven.irccloud.com) (Ping timeout: 272 seconds) |
| 18:54:17 | <hpc> | fix :: (a -> a) -> a |
| 18:54:18 | × | pjlsergeant quits (sid143467@id-143467.stonehaven.irccloud.com) (Ping timeout: 272 seconds) |
| 18:54:29 | × | aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Ping timeout: 252 seconds) |
| 18:54:31 | × | Firedancer quits (sid336191@id-336191.stonehaven.irccloud.com) (Ping timeout: 258 seconds) |
| 18:54:39 | <mikko> | i'm having some trouble creating a function that decrements an integer.. i know i could do (\x -> x-1) but i was hoping to do something similar to what you can do with multiplication "(*3) 4" |
| 18:54:42 | × | christiaanb quits (sid84827@id-84827.tooting.irccloud.com) (Ping timeout: 240 seconds) |
| 18:54:46 | <hpc> | or, "given a proof that an assertion implies itself, that assertion is true" |
| 18:54:52 | × | edwardk quits (sid47016@haskell/developer/edwardk) (Ping timeout: 256 seconds) |
| 18:54:54 | <hololeap> | hpc: this is all over my head |
| 18:54:56 | × | dmj` quits (sid72307@id-72307.stonehaven.irccloud.com) (Ping timeout: 272 seconds) |
| 18:55:03 | <hpc> | heh |
| 18:55:04 | <mikko> | i think the arguments need to be flipped somehow but i think i'm using "flip" wrong |
| 18:55:06 | × | vito quits (sid1962@user/vito) (Ping timeout: 240 seconds) |
| 18:55:06 | × | whez quits (sid470288@id-470288.tooting.irccloud.com) (Ping timeout: 240 seconds) |
| 18:55:07 | × | amir quits (sid22336@user/amir) (Ping timeout: 245 seconds) |
| 18:55:11 | ← | haowenl parts (~Thunderbi@066-215-230-039.res.spectrum.com) () |
| 18:55:17 | × | jakesyl quits (sid56879@id-56879.stonehaven.irccloud.com) (Ping timeout: 258 seconds) |
| 18:55:18 | × | aria quits (sid380617@id-380617.tooting.irccloud.com) (Ping timeout: 268 seconds) |
| 18:55:23 | <hpc> | mikko: you're running into syntactic issues |
| 18:55:24 | × | T_S_ quits (sid501726@id-501726.highgate.irccloud.com) (Read error: Connection reset by peer) |
| 18:55:26 | × | enemeth79 quits (sid309041@id-309041.tooting.irccloud.com) (Ping timeout: 256 seconds) |
| 18:55:29 | <hpc> | (-1) is negative 1 |
| 18:55:30 | × | hamishmack quits (sid389057@id-389057.stonehaven.irccloud.com) (Ping timeout: 240 seconds) |
| 18:55:30 | × | aarchi quits (sid486183@id-486183.highgate.irccloud.com) (Ping timeout: 240 seconds) |
| 18:55:30 | × | systemfault quits (sid267009@id-267009.highgate.irccloud.com) (Ping timeout: 240 seconds) |
| 18:55:30 | × | NemesisD quits (sid24071@id-24071.tooting.irccloud.com) (Ping timeout: 240 seconds) |
| 18:55:30 | × | SrPx quits (sid108780@id-108780.highgate.irccloud.com) (Ping timeout: 240 seconds) |
| 18:55:32 | × | gmc quits (sid58314@id-58314.charlton.irccloud.com) (Ping timeout: 245 seconds) |
| 18:55:34 | <hpc> | try (subtract 1) |
| 18:55:35 | × | lbseale quits (~lbseale@user/ep1ctetus) (Remote host closed the connection) |
| 18:55:40 | × | SanchayanMaity quits (sid478177@id-478177.stonehaven.irccloud.com) (Ping timeout: 258 seconds) |
| 18:55:40 | × | tritlo quits (sid58727@user/tritlo) (Ping timeout: 258 seconds) |
| 18:55:40 | × | mustafa quits (sid502723@rockylinux/releng/mustafa) (Ping timeout: 258 seconds) |
| 18:55:54 | × | hendi quits (sid489601@id-489601.tooting.irccloud.com) (Ping timeout: 240 seconds) |
| 18:55:55 | × | degraafk quits (sid71464@id-71464.tooting.irccloud.com) (Ping timeout: 268 seconds) |
| 18:55:55 | × | truckasaurus quits (sid457088@id-457088.brockwell.irccloud.com) (Ping timeout: 268 seconds) |
| 18:55:56 | <hpc> | :t (-1) |
| 18:55:57 | × | iphy quits (sid67735@id-67735.tooting.irccloud.com) (Ping timeout: 245 seconds) |
| 18:55:57 | <lambdabot> | Num a => a |
| 18:55:59 | <hpc> | :t subtract 1 |
| 18:56:00 | <lambdabot> | Num a => a -> a |
| 18:56:03 | <mikko> | huh, i didn't know subtract is a thing, thanks |
| 18:56:03 | × | joel135 quits (sid136450@id-136450.stonehaven.irccloud.com) (Ping timeout: 258 seconds) |
| 18:56:03 | × | conjunctive quits (sid433686@id-433686.brockwell.irccloud.com) (Ping timeout: 258 seconds) |
| 18:56:03 | × | kaizen quits (sid501599@id-501599.brockwell.irccloud.com) (Ping timeout: 258 seconds) |
| 18:56:04 | → | lbseale joins (~lbseale@user/ep1ctetus) |
| 18:56:08 | × | cbarrett quits (sid192934@id-192934.brockwell.irccloud.com) (Ping timeout: 252 seconds) |
| 18:56:08 | × | PotatoGim quits (sid99505@id-99505.tooting.irccloud.com) (Ping timeout: 250 seconds) |
| 18:56:12 | × | rubin55___ quits (sid175221@id-175221.stonehaven.irccloud.com) (Ping timeout: 272 seconds) |
| 18:56:13 | <hololeap> | there is also pred |
| 18:56:14 | × | totbwf__ quits (sid402332@id-402332.highgate.irccloud.com) (Read error: Connection reset by peer) |
| 18:56:14 | × | hsiktas quits (sid224847@id-224847.tooting.irccloud.com) (Ping timeout: 252 seconds) |
| 18:56:16 | <hololeap> | :t pred |
| 18:56:17 | <lambdabot> | Enum a => a -> a |
| 18:56:22 | × | ephemient quits (uid407513@id-407513.tooting.irccloud.com) (Ping timeout: 245 seconds) |
| 18:56:23 | <hololeap> | > pred 4 |
| 18:56:24 | × | angerman quits (sid209936@id-209936.charlton.irccloud.com) (Ping timeout: 276 seconds) |
| 18:56:24 | <lambdabot> | 3 |
| 18:56:34 | × | hook54321 quits (sid149355@user/hook54321) (Ping timeout: 256 seconds) |
| 18:56:39 | → | SrPx joins (sid108780@highgate.irccloud.com) |
| 18:56:41 | × | supersven quits (uid501114@id-501114.charlton.irccloud.com) (Ping timeout: 252 seconds) |
| 18:56:42 | × | bw quits (sid2730@user/betawaffle) (Ping timeout: 240 seconds) |
| 18:56:47 | × | S11001001 quits (sid42510@id-42510.charlton.irccloud.com) (Ping timeout: 245 seconds) |
| 18:56:51 | → | T_S_ joins (sid501726@highgate.irccloud.com) |
| 18:56:52 | <sm> | > (-(1)) 3 |
| 18:56:53 | <lambdabot> | error: |
| 18:56:53 | <lambdabot> | • Could not deduce (Num t0) |
| 18:56:53 | <lambdabot> | from the context: (Num t, Num (t -> t1)) |
| 18:57:00 | × | elvishjerricco quits (sid237756@id-237756.brockwell.irccloud.com) (Read error: Connection reset by peer) |
| 18:57:06 | × | carter quits (sid14827@id-14827.brockwell.irccloud.com) (Ping timeout: 240 seconds) |
| 18:57:12 | × | stevenxl quits (uid133530@id-133530.highgate.irccloud.com) (Ping timeout: 245 seconds) |
| 18:57:12 | × | dsal quits (sid13060@id-13060.tooting.irccloud.com) (Ping timeout: 245 seconds) |
| 18:57:15 | → | edwardk joins (sid47016@haskell/developer/edwardk) |
| 18:57:25 | <mikko> | oh, pred is even better! |
| 18:57:33 | → | degraafk joins (sid71464@tooting.irccloud.com) |
| 18:57:34 | × | travv0 quits (sid293381@user/travv0) (Read error: Connection reset by peer) |
| 18:57:35 | <hpc> | i would stick to subtract though, even if just to ward off the inevitable "why are you using an Enum operation on floats" |
| 18:57:37 | × | tapas quits (sid467876@id-467876.charlton.irccloud.com) (Ping timeout: 245 seconds) |
| 18:57:43 | → | enemeth79 joins (sid309041@tooting.irccloud.com) |
| 18:57:46 | → | cbarrett joins (sid192934@brockwell.irccloud.com) |
| 18:57:54 | × | alanz quits (sid110616@id-110616.highgate.irccloud.com) (Ping timeout: 240 seconds) |
| 18:57:56 | <hpc> | why should pred 5.0 be 4.0 when it could also be 4.9? |
| 18:57:57 | → | whez joins (sid470288@tooting.irccloud.com) |
| 18:57:57 | → | conjunctive joins (sid433686@brockwell.irccloud.com) |
| 18:58:06 | <mikko> | the thing is i'm training for code golf :D |
| 18:58:10 | <hololeap> | hpc: where would I start to begin learning about how types are assertions and values are proofs? I lack the fundamentals to even comprehend that. |
| 18:58:11 | <hpc> | oh hah |
| 18:58:16 | × | mrianbloom quits (sid350277@id-350277.charlton.irccloud.com) (Ping timeout: 256 seconds) |
| 18:58:16 | × | integral quits (sid296274@user/integral) (Ping timeout: 256 seconds) |
| 18:58:16 | × | feepo quits (sid28508@id-28508.brockwell.irccloud.com) (Ping timeout: 256 seconds) |
| 18:58:18 | × | cln quits (sid336875@id-336875.charlton.irccloud.com) (Ping timeout: 240 seconds) |
| 18:58:20 | × | davetapley quits (sid666@id-666.highgate.irccloud.com) (Read error: Connection reset by peer) |
| 18:58:21 | × | nrr quits (sid20938@id-20938.tooting.irccloud.com) (Ping timeout: 276 seconds) |
| 18:58:21 | × | b20n quits (sid115913@id-115913.highgate.irccloud.com) (Ping timeout: 276 seconds) |
| 18:58:21 | × | bjs quits (sid190364@user/bjs) (Ping timeout: 258 seconds) |
| 18:58:26 | × | dpratt_ quits (sid193493@id-193493.brockwell.irccloud.com) (Ping timeout: 252 seconds) |
| 18:58:26 | × | gregberns__ quits (sid315709@id-315709.brockwell.irccloud.com) (Ping timeout: 252 seconds) |
| 18:58:36 | → | systemfault joins (sid267009@highgate.irccloud.com) |
| 18:58:41 | <sm> | nice. I had resorted to (+(negate 1)) |
| 18:58:42 | × | NiKaN quits (sid385034@id-385034.brockwell.irccloud.com) (Ping timeout: 240 seconds) |
| 18:58:44 | × | jonrh quits (sid5185@id-5185.charlton.irccloud.com) (Ping timeout: 250 seconds) |
| 18:58:53 | × | fvr quits (uid503686@id-503686.highgate.irccloud.com) (Ping timeout: 252 seconds) |
| 18:58:54 | <hololeap> | why in the world does Float even have an Enum instance? |
| 18:59:01 | → | elvishjerricco joins (sid237756@brockwell.irccloud.com) |
| 18:59:06 | × | scav quits (sid309693@id-309693.brockwell.irccloud.com) (Ping timeout: 240 seconds) |
| 18:59:07 | × | Adeon quits (sid418992@id-418992.tooting.irccloud.com) (Ping timeout: 258 seconds) |
| 18:59:07 | × | Pent quits (sid313808@id-313808.tooting.irccloud.com) (Ping timeout: 258 seconds) |
| 18:59:17 | → | travv0 joins (sid293381@user/travv0) |
| 18:59:20 | <hpc> | hololeap: start with "curry-howard correspondance" perhaps |
| 18:59:20 | → | hook54321 joins (sid149355@user/hook54321) |
| 18:59:22 | → | supersven joins (uid501114@charlton.irccloud.com) |
| 18:59:22 | × | artem quits (uid512590@highgate.irccloud.com) (Ping timeout: 272 seconds) |
| 18:59:30 | × | bradparker quits (sid262931@id-262931.highgate.irccloud.com) (Ping timeout: 258 seconds) |
| 18:59:30 | × | gaze___ quits (sid387101@id-387101.brockwell.irccloud.com) (Ping timeout: 258 seconds) |
| 18:59:38 | <sm> | ah, (+(-1)) works and is in the spirit of the OQ |
| 18:59:39 | × | parseval quits (sid239098@id-239098.brockwell.irccloud.com) (Ping timeout: 276 seconds) |
| 18:59:42 | → | christiaanb joins (sid84827@id-84827.tooting.irccloud.com) |
| 18:59:42 | × | gonz__ quits (sid304396@id-304396.tooting.irccloud.com) (Ping timeout: 245 seconds) |
| 18:59:44 | → | iphy joins (sid67735@tooting.irccloud.com) |
| 18:59:48 | → | carter joins (sid14827@brockwell.irccloud.com) |
| 18:59:49 | → | NemesisD joins (sid24071@tooting.irccloud.com) |
| 18:59:49 | → | artem joins (uid512590@id-512590.highgate.irccloud.com) |
| 18:59:52 | → | bw joins (sid2730@user/betawaffle) |
| 18:59:52 | → | stevenxl joins (uid133530@highgate.irccloud.com) |
| 18:59:53 | → | feepo joins (sid28508@id-28508.brockwell.irccloud.com) |
| 18:59:53 | → | S11001001 joins (sid42510@id-42510.charlton.irccloud.com) |
| 18:59:53 | × | SethTisue__ quits (sid14912@id-14912.charlton.irccloud.com) (Ping timeout: 258 seconds) |
| 18:59:54 | × | sclv quits (sid39734@haskell/developer/sclv) (Ping timeout: 240 seconds) |
| 18:59:54 | × | parisienne quits (sid383587@id-383587.brockwell.irccloud.com) (Ping timeout: 240 seconds) |
| 18:59:54 | × | JSharp quits (sid4580@id-4580.tooting.irccloud.com) (Ping timeout: 240 seconds) |
| 18:59:56 | → | bradparker joins (sid262931@id-262931.highgate.irccloud.com) |
| 18:59:58 | × | idnar quits (sid12240@debian/mithrandi) (Ping timeout: 256 seconds) |
| 18:59:58 | × | grfn quits (sid449115@id-449115.brockwell.irccloud.com) (Ping timeout: 256 seconds) |
| 18:59:58 | → | totbwf__ joins (sid402332@id-402332.highgate.irccloud.com) |
| 18:59:58 | → | vito joins (sid1962@user/vito) |
| 18:59:59 | → | davetapley joins (sid666@highgate.irccloud.com) |
| 19:00:02 | → | aria joins (sid380617@id-380617.tooting.irccloud.com) |
| 19:00:02 | → | tapas joins (sid467876@id-467876.charlton.irccloud.com) |
| 19:00:03 | → | hsiktas joins (sid224847@tooting.irccloud.com) |
| 19:00:04 | <[exa]> | hololeap: people love to enumFromTo |
| 19:00:12 | → | aarchi joins (sid486183@highgate.irccloud.com) |
| 19:00:12 | → | gmc joins (sid58314@id-58314.charlton.irccloud.com) |
| 19:00:14 | → | alanz joins (sid110616@id-110616.highgate.irccloud.com) |
| 19:00:18 | × | caasih quits (sid13241@id-13241.charlton.irccloud.com) (Ping timeout: 240 seconds) |
| 19:00:18 | → | hendi joins (sid489601@id-489601.tooting.irccloud.com) |
| 19:00:18 | → | nrr joins (sid20938@id-20938.tooting.irccloud.com) |
| 19:00:22 | <hpc> | hololeap: actually, maybe just start from https://wiki.portal.chalmers.se/agda/Main/GettingStarted |
| 19:00:23 | → | dsal joins (sid13060@id-13060.tooting.irccloud.com) |
| 19:00:23 | → | cln joins (sid336875@id-336875.charlton.irccloud.com) |
| 19:00:24 | → | kaizen joins (sid501599@brockwell.irccloud.com) |
| 19:00:25 | → | scav joins (sid309693@id-309693.brockwell.irccloud.com) |
| 19:00:25 | → | angerman joins (sid209936@charlton.irccloud.com) |
| 19:00:28 | → | truckasaurus joins (sid457088@id-457088.brockwell.irccloud.com) |
| 19:00:30 | → | mrianbloom joins (sid350277@id-350277.charlton.irccloud.com) |
| 19:00:32 | → | dpratt_ joins (sid193493@id-193493.brockwell.irccloud.com) |
| 19:00:32 | → | jonrh joins (sid5185@charlton.irccloud.com) |
| 19:00:33 | → | b20n joins (sid115913@id-115913.highgate.irccloud.com) |
| 19:00:33 | → | NiKaN joins (sid385034@id-385034.brockwell.irccloud.com) |
| 19:00:36 | → | ephemient joins (uid407513@id-407513.tooting.irccloud.com) |
| 19:00:39 | → | integral joins (sid296274@user/integral) |
| 19:00:40 | → | gaze___ joins (sid387101@id-387101.brockwell.irccloud.com) |
| 19:00:42 | × | teehemkay quits (sid14792@id-14792.tooting.irccloud.com) (Ping timeout: 240 seconds) |
| 19:00:42 | × | rune quits (sid21167@id-21167.charlton.irccloud.com) (Ping timeout: 240 seconds) |
| 19:00:46 | <hololeap> | hpc: thanks |
| 19:00:49 | → | fvr joins (uid503686@id-503686.highgate.irccloud.com) |
| 19:00:50 | → | bjs joins (sid190364@user/bjs) |
| 19:00:52 | <hpc> | but build your way up to curry-howard, since that's ultimately the principle that makes it work in the first place |
| 19:00:53 | → | gregberns__ joins (sid315709@id-315709.brockwell.irccloud.com) |
| 19:01:00 | → | Pent joins (sid313808@id-313808.tooting.irccloud.com) |
| 19:01:04 | → | Adeon joins (sid418992@id-418992.tooting.irccloud.com) |
| 19:01:13 | → | astra` joins (sid289983@user/amish) |
| 19:01:14 | → | parseval joins (sid239098@id-239098.brockwell.irccloud.com) |
| 19:01:21 | × | T_S_ quits (sid501726@highgate.irccloud.com) (Ping timeout: 248 seconds) |
| 19:01:35 | → | grfn joins (sid449115@id-449115.brockwell.irccloud.com) |
| 19:01:37 | → | rune joins (sid21167@id-21167.charlton.irccloud.com) |
| 19:01:38 | <mikko> | i guess there's no way around the outer parens in (+(-1)) |
| 19:01:42 | → | T_S_ joins (sid501726@id-501726.highgate.irccloud.com) |
| 19:01:43 | → | sclv joins (sid39734@haskell/developer/sclv) |
| 19:01:44 | → | idnar joins (sid12240@debian/mithrandi) |
| 19:01:45 | → | parisienne joins (sid383587@id-383587.brockwell.irccloud.com) |
| 19:01:49 | → | SethTisue__ joins (sid14912@id-14912.charlton.irccloud.com) |
| 19:01:50 | → | JSharp joins (sid4580@id-4580.tooting.irccloud.com) |
| 19:01:57 | → | caasih joins (sid13241@id-13241.charlton.irccloud.com) |
| 19:02:02 | → | teehemkay joins (sid14792@id-14792.tooting.irccloud.com) |
| 19:02:27 | → | gonz__ joins (sid304396@id-304396.tooting.irccloud.com) |
| 19:02:32 | → | PotatoGim joins (sid99505@tooting.irccloud.com) |
| 19:02:39 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 19:02:47 | × | hendursa1 quits (~weechat@user/hendursaga) (Remote host closed the connection) |
| 19:03:13 | → | hendursa1 joins (~weechat@user/hendursaga) |
| 19:05:00 | <c_wraith> | :t (-1+) |
| 19:05:02 | <lambdabot> | Num a => a -> a |
| 19:05:05 | → | aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net) |
| 19:05:09 | <c_wraith> | that's a horrible hack. don't use it. |
| 19:05:17 | <c_wraith> | :t (subtract 1) |
| 19:05:18 | <lambdabot> | Num a => a -> a |
| 19:05:19 | <hpc> | alternatively, use it everywhere |
| 19:05:22 | <c_wraith> | use that |
| 19:05:29 | <mikko> | c_wraith: but i love it already >:D |
| 19:05:44 | <tomsmeding> | hololeap: frame challenge: have you heard of |
| 19:05:48 | <tomsmeding> | @hackage quickcheck-classes |
| 19:05:48 | <lambdabot> | https://hackage.haskell.org/package/quickcheck-classes |
| 19:05:51 | <c_wraith> | note that it's only the same if addition is commutative in your Num instance |
| 19:05:52 | → | tritlo joins (sid58727@user/tritlo) |
| 19:06:05 | → | hnOsmium0001 joins (uid453710@id-453710.stonehaven.irccloud.com) |
| 19:06:05 | → | joel135 joins (sid136450@id-136450.stonehaven.irccloud.com) |
| 19:06:09 | → | Firedancer joins (sid336191@id-336191.stonehaven.irccloud.com) |
| 19:06:24 | × | fabfianda quits (~fabfianda@37.183.255.57) (Ping timeout: 258 seconds) |
| 19:06:33 | → | SanchayanMaity joins (sid478177@id-478177.stonehaven.irccloud.com) |
| 19:06:35 | → | fabfianda joins (~fabfianda@mob-5-91-116-37.net.vodafone.it) |
| 19:06:36 | → | jakesyl joins (sid56879@id-56879.stonehaven.irccloud.com) |
| 19:06:38 | → | dmj` joins (sid72307@id-72307.stonehaven.irccloud.com) |
| 19:06:42 | → | rubin55___ joins (sid175221@id-175221.stonehaven.irccloud.com) |
| 19:07:04 | → | mustafa joins (sid502723@rockylinux/releng/mustafa) |
| 19:07:04 | → | acertain joins (sid470584@id-470584.stonehaven.irccloud.com) |
| 19:07:50 | <hololeap> | tomsmeding: frame challenge? and no, that seems quite useful |
| 19:07:56 | → | amir joins (sid22336@user/amir) |
| 19:08:03 | <tomsmeding> | perhaps not a proper frame challenge indeed :) |
| 19:08:08 | <tomsmeding> | there's also |
| 19:08:11 | <tomsmeding> | @hackage checkers |
| 19:08:11 | <lambdabot> | https://hackage.haskell.org/package/checkers |
| 19:08:15 | <tomsmeding> | if I remember correctly |
| 19:08:36 | <tomsmeding> | not sure what the differences are |
| 19:08:48 | <tomsmeding> | hololeap: did you figure out the applyExtraParams from yesterday? |
| 19:09:37 | → | o1lo01ol1o joins (~o1lo01ol1@89.214.83.229) |
| 19:10:43 | <hololeap> | tomsmeding: I haven't heard the term "frame challenge" before. I'm still working on the extra params thing. I drew a diagram which helped me understand the problem |
| 19:11:11 | × | dcompoze quits (~dcompoze@cpc97624-walt24-2-0-cust75.13-2.cable.virginm.net) (Quit: WeeChat 3.2) |
| 19:11:23 | <tomsmeding> | hololeap: https://ircbrowse.tomsmeding.com/day/lchaskell/2021/08/14?id=139342#trid139342 |
| 19:11:29 | → | ehamberg joins (sid18208@stonehaven.irccloud.com) |
| 19:11:32 | <tomsmeding> | the only thing you need with that particular code is a type application |
| 19:11:33 | → | pjlsergeant joins (sid143467@stonehaven.irccloud.com) |
| 19:11:44 | → | hamishmack joins (sid389057@stonehaven.irccloud.com) |
| 19:11:53 | <tomsmeding> | forget my usage of "frame challenge", it was an improper use of the word I think |
| 19:12:58 | × | Shaeto quits (~Shaeto@94.25.234.223) (Ping timeout: 268 seconds) |
| 19:13:04 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 19:13:08 | → | Shaeto joins (~Shaeto@94.25.234.248) |
| 19:13:28 | → | dcompoze joins (~dcompoze@cpc97624-walt24-2-0-cust75.13-2.cable.virginm.net) |
| 19:14:36 | × | o1lo01ol1o quits (~o1lo01ol1@89.214.83.229) (Ping timeout: 276 seconds) |
| 19:17:51 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 276 seconds) |
| 19:18:44 | × | jtomas quits (~jtomas@233.red-83-34-2.dynamicip.rima-tde.net) (Remote host closed the connection) |
| 19:21:20 | × | machinedgod quits (~machinedg@24.105.81.50) (Read error: Connection reset by peer) |
| 19:21:26 | → | machined1od joins (~machinedg@24.105.81.50) |
| 19:22:46 | → | __monty__ joins (~toonn@user/toonn) |
| 19:24:19 | → | pfurla_ joins (~pfurla@ool-3f8fcb0f.dyn.optonline.net) |
| 19:26:06 | <tomsmeding> | hololeap: my usage was actually correct! "A frame challenge is where an author answers a question in a wholly different way the querent never asked for, or potentially expressly forbade, but in a way the author feels will actually solve the problem. (Or otherwise improve the querent's life quality or prevent them from making some terrible mistake.) This is as opposed to answers which answer the |
| 19:26:06 | <tomsmeding> | question at face value." -- https://rpg.meta.stackexchange.com/questions/6842/whats-a-frame-challenge |
| 19:27:23 | <monochrom> | Nice, there is a word for that. :) |
| 19:28:23 | × | pfurla quits (~pfurla@ool-3f8fcb0f.dyn.optonline.net) (Ping timeout: 268 seconds) |
| 19:28:39 | <tomsmeding> | fascinating! https://english.stackexchange.com/questions/416923/how-do-we-describe-answering-a-question-tangentially-to-how-it-was-put-forward |
| 19:28:47 | <tomsmeding> | TIL this is not a word in common use |
| 19:29:14 | <tomsmeding> | I've indeed seen it used mostly on stackexchange... |
| 19:29:15 | <maerwald[m]> | https://www.reddit.com/r/rust/comments/p45tw7/going_from_haskell_to_rust/h8x1b44?utm_medium=android_app&utm_source=share&context=3 |
| 19:29:22 | <maerwald[m]> | Haskell vs rust |
| 19:30:50 | <c_wraith> | I don't understand complaints like that. It's been 10 years since I've had trouble with a library in Haskell |
| 19:30:50 | × | gentauro quits (~gentauro@user/gentauro) (Read error: Connection reset by peer) |
| 19:31:24 | → | gentauro joins (~gentauro@user/gentauro) |
| 19:31:42 | <maerwald[m]> | But I agree that rust ecosystem has much more traction atm |
| 19:32:02 | → | markpythonicbitc joins (~markpytho@2601:647:5a00:35:a0f9:2ba0:ff0:86b4) |
| 19:32:08 | <maerwald[m]> | The frequency of new libraries and projects is 10 times higher atm |
| 19:32:13 | <monochrom> | And nice, "querent" exists too. |
| 19:32:24 | <c_wraith> | Oh, that's not entirely true. I had trouble with some libraries stack users made in that period where they believed that they never had to specify version requirements |
| 19:32:48 | <monochrom> | Oh we just saw an example of that yesterday or the day before. |
| 19:33:02 | <c_wraith> | stack was such a huge negative to the ecosystem |
| 19:34:49 | <maerwald[m]> | Well, cargo is neither cabal nor stack, but cabal has focused on imitating stack features instead of going back to being a simple unix style tool. |
| 19:36:21 | <monochrom> | I think no. cabal certainly doesn't imitate stack's LTS aspect. |
| 19:36:35 | <monochrom> | And the nix-style thing, the cabal people theorized it first. |
| 19:36:45 | <sm> | nice discussion maerwald. We need the inverse thread on /r/haskell as well |
| 19:36:46 | <maerwald[m]> | I'm aware |
| 19:37:16 | <maerwald[m]> | But atm the UX is barely different, modulo a few things you can simply turn off in stack |
| 19:37:48 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 19:37:50 | <monochrom> | "I want to use rust but I use haskell instead because cabal is simpler than cargo"? >:) |
| 19:37:52 | <maerwald[m]> | And reading discourse etc ppl request more stack features for cabal |
| 19:37:53 | <sm> | (https://www.reddit.com/r/rust/comments/p45tw7/going_from_haskell_to_rust) |
| 19:38:31 | <sm> | said noone ever :) |
| 19:39:40 | <sclv> | i mean... there still is the simple unix style thing and idk what else it needs as long as it intends to stay simple? and that's ./Setup.hs :-) |
| 19:39:40 | <maerwald[m]> | I learned rust and wrote a few things. But I never stuck with it. Maybe because you need to type so much |
| 19:40:06 | <monochrom> | Hand-chasing dependencies is not simple. |
| 19:40:06 | × | lbseale quits (~lbseale@user/ep1ctetus) (Ping timeout: 268 seconds) |
| 19:41:21 | <maerwald[m]> | sclv: ya, and now lets build a dependency solver around it that's not over engineered and can install stuff in a *simple* way |
| 19:43:30 | <hpc> | monochrom: worse - hand-chasing dependencies is simple, slow, boring, and sensitive to tiny changes over time |
| 19:43:38 | <hpc> | the problem is less "i don't know how" and more "i don't want to" |
| 19:43:46 | <hpc> | and who would |
| 19:43:51 | <monochrom> | Unpopular opinion: People who say "cabal is not simple" are only because the cabal file format predates YAML. |
| 19:43:59 | <sclv> | in my experience people only think that build and package management systems are over complicated until they've tried to create a working one at scale |
| 19:44:18 | <hpc> | monochrom: agreed |
| 19:44:24 | <monochrom> | Generally I am skeptic when people say "this is not simple" or "I don't understand this". They always mean something else. They are always wrong. |
| 19:44:24 | <sclv> | every few years its "just do it like X" |
| 19:44:39 | <hpc> | i have to look up syntax and field names now and again, but after that everything makes perfect sense |
| 19:44:52 | <sclv> | where X was like cpan at one point? and then npm, and now cargo. (and a few in between too) |
| 19:45:07 | <sclv> | oh right, like python at one point |
| 19:45:07 | × | alx741 quits (~alx741@181.196.68.193) (Ping timeout: 245 seconds) |
| 19:45:25 | <sclv> | and then you dig in and discover "wait? python has more package managers than haskell does!" |
| 19:45:32 | <maerwald[m]> | sclv: eh, cabal shoves the entire pkg-config database into the solver and now one understands why or how it works |
| 19:45:51 | <sclv> | and "ok now building this javascript project requires four package managers that recursively install one another!?" |
| 19:46:00 | <sm> | unpopular opinions: stack made it possible for me to ship software that built reliably and easily, when cabal could not. Now cabal technically can do that but the UX still hasn't caught up |
| 19:46:32 | <maerwald[m]> | So yes, there are a number of reasons cabal-install isn't simple |
| 19:46:36 | <sclv> | and also, the systems that initially appear to work Really well, like cargo, do so because either they're highly curated, or have a small set of packages, or bitrot has not yet set in because they're so young, or some combination |
| 19:47:20 | <sclv> | (or in npm's case its just "untyped langauge let people paper over a lot of what would have been errors in any other ecosystem") |
| 19:47:29 | <sm> | sclv: +1, I feel cargo must have some of these going on but I don't know which |
| 19:47:29 | <hpc> | cargo is (was?) especially weird with how many packages require pre-release versions of rust |
| 19:48:06 | <sclv> | like I do not doubt that people's experiences with rust package management are really nice at the moment. but i think that's a matter of time and maturity. purescript went thru the same thing iirc. |
| 19:48:14 | <c_wraith> | fewer packages require that now, mostly they were things that depended on a couple features like async that have been released. |
| 19:48:46 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 19:48:57 | <sclv> | sm i don't feel that opinion is unpopular btw. we have a lot of ongoing work on documentation and ux. |
| 19:49:32 | <sclv> | and features like auto-fetching git repos have undoubtably turned out to be large qol improvements, even tho they seem pretty easy to work around |
| 19:49:38 | <sm> | sclv: great. It often feels unpopular in here, but I know #haskell is not the world :) |
| 19:49:49 | <c_wraith> | stack itself is fine, but it did a lot of damage to hackage |
| 19:50:00 | <c_wraith> | because it encouraged people to release broken libraries |
| 19:50:10 | sm | refrains from arguing |
| 19:50:11 | <c_wraith> | and then they got really angry when hvr started fixing the breakage |
| 19:50:33 | <sclv> | like, i mean, i'm tracking the large amount of work that the new maintainers and hf is putting into ux and documentation on cabal, and its pretty clear that this is a known area of improvement |
| 19:50:38 | <maerwald[m]> | Also, trying to figure out how cabal invokes GHC is impossible, or know linking order etc etc |
| 19:50:52 | <sclv> | the linking order should be in the build plan |
| 19:50:58 | <sclv> | and the invocations are all printed with -v3 |
| 19:51:18 | <sclv> | i agree that pkgconf story needs some tlc and a good design |
| 19:52:28 | <maerwald[m]> | sclv: https://gitlab.haskell.org/ghc/ghc/-/issues/19945 |
| 19:53:14 | <maerwald[m]> | That's one instance where include dir order was totally random and impossible to control |
| 19:53:41 | <maerwald[m]> | Took more than an hour to debug |
| 19:53:58 | <sclv> | yeah that's a good issue -- not just a cabal problem though, relates to ghc design as well right? |
| 19:54:13 | <maerwald[m]> | The abstraction is thick, you get little to no access to the underlying details |
| 19:54:42 | <maerwald[m]> | I'm not sure if you had the same problem if you used shake or make with ghc |
| 19:56:09 | × | machined1od quits (~machinedg@24.105.81.50) (Ping timeout: 268 seconds) |
| 19:57:02 | → | lbseale joins (~lbseale@user/ep1ctetus) |
| 19:57:16 | × | lbseale quits (~lbseale@user/ep1ctetus) (Read error: Connection reset by peer) |
| 19:58:09 | → | alx741 joins (~alx741@186.178.108.32) |
| 19:58:13 | × | peterhil_ quits (~peterhil@dsl-hkibng32-54fb52-57.dhcp.inet.fi) (Quit: Must not waste too much time here...) |
| 19:58:30 | <maerwald[m]> | Here's some background about the oddities of cabals pkg-config story https://github.com/haskell/cabal/issues/6771 |
| 19:59:56 | <maerwald[m]> | And it turned out there's no one left who understands what is going on :) |
| 20:00:26 | <sclv> | oh the solver's not that scary. and we do have the solver experts around to consult with, oleg was exaggerating |
| 20:00:42 | <dminuoso> | What knowledge does cabal solver use from pkgconfig exactly |
| 20:01:04 | <sclv> | i was just looking at related stuff the other day -- i didn't dig into that precise vein of stuff, but it looked straightforward |
| 20:01:06 | <sclv> | sec |
| 20:01:22 | → | acidjnk joins (~acidjnk@p200300d0c72b9508a1e806c8914cbd0f.dip0.t-ipconnect.de) |
| 20:01:33 | × | Shaeto quits (~Shaeto@94.25.234.248) (Quit: WeeChat 3.1) |
| 20:01:34 | <maerwald[m]> | Which packages exist and it may switch flags depending on it |
| 20:01:38 | → | peterhil joins (~peterhil@dsl-hkibng32-54fb52-57.dhcp.inet.fi) |
| 20:02:19 | <maerwald[m]> | But it doesn't seem clear how it works |
| 20:04:41 | <maerwald[m]> | From an implementation perspective, stack code is easier to understand than cabal-install imo. That, imo, also explains the lack of maintainers |
| 20:05:00 | <sclv> | this is really the full interaction: https://github.com/haskell/cabal/blob/00a2351789a460700a2567eb5ecc42cca0af913f/cabal-install/cabal-install-solver/src/Distribution/Solver/Modular/Validate.hs#L410 |
| 20:05:13 | <sclv> | its blindingly clear |
| 20:05:43 | <sclv> | if you're in a branch of the search tree that requires a package be available in pkgconfig and that fails, then fail the branch and backtrack |
| 20:05:54 | <sclv> | that's it |
| 20:06:01 | × | juhp quits (~juhp@128.106.188.220) (Ping timeout: 268 seconds) |
| 20:06:12 | <sclv> | everything else is just plumbing |
| 20:06:31 | <sclv> | also what happened is cabal had some core maintainers step away, is all |
| 20:06:42 | <sclv> | at the moment it has some enthusiastic new ones, and there's plenty of contributing volunteers |
| 20:06:58 | <sclv> | this "x code is harder than y code to understand" stuff is usually bogus in my experience |
| 20:07:05 | <sclv> | the harder code to understand is the code you've worked with less |
| 20:07:39 | → | juhp joins (~juhp@128.106.188.220) |
| 20:07:44 | <maerwald[m]> | I hacked on both and that's my experience |
| 20:08:20 | <maerwald[m]> | Definitely didn't work more on stack :) |
| 20:08:22 | <sclv> | in my experience, a few things in cabal are hard, like the flag/config passing is overcomplicated |
| 20:08:31 | <sclv> | plenty of other things are pretty modular and easy |
| 20:08:52 | <sclv> | the solver took a minute to get used to, but once i got it, i thought it was very well engineered |
| 20:09:47 | <sclv> | the general stuff with what level options act at and how they get threaded thru to different programs is as a whole a Big hard problem thats not fully there, and v2 made it even harder, because there's so many different variants |
| 20:10:04 | <sclv> | since at different parts of the plan, you can potentially have different options being used for the same package, etc |
| 20:10:54 | × | derelict quits (~derelict@user/derelict) (Quit: WeeChat 3.2) |
| 20:10:55 | <dsal> | Is 'protofunctor' an actual thing? I'm looking and I find profunctor descriptions and what looks like might be typos or Mandela effects or something. |
| 20:11:30 | <maerwald[m]> | You seem to agree with my original statement that cabal is not simple :p |
| 20:11:34 | amesgen[m] | is now known as amesgen |
| 20:11:40 | <sclv> | Cabal the library is simple |
| 20:11:46 | <sclv> | cabal-install is not much harder than it needs to be, imho |
| 20:11:55 | <maerwald[m]> | Yes |
| 20:11:57 | × | _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
| 20:12:05 | <maerwald[m]> | Well, I think it is |
| 20:12:09 | <sclv> | with the exception of the args parsing, which is not so much complex, as just "stupidly verbose" |
| 20:13:05 | <maerwald[m]> | But I'm glad people are working on it |
| 20:13:10 | <sclv> | dsal: a protofunctor should be a morphism between protocategories |
| 20:13:15 | <sclv> | https://ncatlab.org/nlab/show/protocategory |
| 20:13:28 | <sclv> | but i think that's going to be obscure and almost never what someone means |
| 20:15:27 | <dsal> | That might be too deep in category theory for me. I'm going to assume people generally mean profunctor but want more syllables. |
| 20:15:28 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 20:15:41 | <monochrom> | :) |
| 20:16:03 | amesgen | is now known as amesgen[m] |
| 20:18:16 | → | wonko joins (~wjc@62.115.229.50) |
| 20:18:37 | <sm> | supersubprotofunctorialoid |
| 20:21:12 | <hpc> | zygohistomorphic prepromorphism? |
| 20:23:18 | <dsal> | Now that one's just made up. |
| 20:23:46 | × | dcompoze quits (~dcompoze@cpc97624-walt24-2-0-cust75.13-2.cable.virginm.net) (Quit: WeeChat 3.2) |
| 20:25:35 | <hpc> | https://wiki.haskell.org/Zygohistomorphic_prepromorphisms |
| 20:25:55 | <aarchi> | tomsmeding: Good to know that ghcup has GHC 7. I've modified the Whitespace interpreter to build on latest GHC and that's been my testing version so far, but I want to test the version as intended by the Whitespace authors using the same GHC version |
| 20:27:16 | <int-e> | . o O ( "Most readers get as far as the zygohistomorphic prepromorphism giving up, and in fact in later editions of the book all the pages beyond this point have been left blank to save on printing costs." ) |
| 20:27:26 | <int-e> | +before |
| 20:27:34 | <hololeap> | to be fair, I think edwardk made that up as a joke |
| 20:28:13 | → | derelict joins (~derelict@user/derelict) |
| 20:28:59 | <int-e> | I've got to hand it to Douglas Adams though, "Future Semi-Conditionally Modified Subinverted Plagal Past Subjunctive Intentional" sounds more impressive than "zygohistomorphic prepromorphism". |
| 20:29:54 | <hpc> | it's definitely better than physics' "let's name it after me" |
| 20:30:27 | <aarchi> | Do any of you know when UTF-8 support was added to readFile, getLine, getChar, putChar, and putStr from System.IO? |
| 20:30:52 | <Hecate> | aarchi: no idea |
| 20:31:36 | <hololeap> | aarchi: are you trying to set a minimum bound on a "base" dependency? |
| 20:32:06 | → | jgeerds joins (~jgeerds@55d45555.access.ecotel.net) |
| 20:32:06 | → | burnsidesLlama joins (~burnsides@client-8-91.eduroam.oxuni.org.uk) |
| 20:32:45 | <aarchi> | No, I'm writing a spec for the Whitespace programming language, based on the reference interpreter that was written in Haskell in 2004. I want a scope for how different GHC 5.02 is from current GHC |
| 20:33:56 | <Hecate> | aarchi: utterly differenct |
| 20:33:56 | <geekosaur> | late 6.x but I couldn't tell you exactly when |
| 20:33:59 | <Hecate> | *-c |
| 20:34:00 | <hololeap> | my uneducated guess is that it will run just as well on modern GHC as it did back in 2004 |
| 20:34:49 | <int-e> | https://downloads.haskell.org/~ghc/6.12.1/docs/html/users_guide/release-6-12-1.html " Handle IO now supports automatic character set encoding and newline translation. For more information, see the "Unicode encoding/decoding" and "Newline conversion" sections in the System.IO haddock docs." |
| 20:36:08 | <aarchi> | int-e: thanks |
| 20:36:10 | × | burnsidesLlama quits (~burnsides@client-8-91.eduroam.oxuni.org.uk) (Remote host closed the connection) |
| 20:36:38 | <aarchi> | Before 6.12.1, IO would only accept ASCII? |
| 20:36:44 | → | burnsidesLlama joins (~burnsides@client-8-91.eduroam.oxuni.org.uk) |
| 20:36:55 | <geekosaur> | iso8859-1 |
| 20:37:00 | <int-e> | it was byte-based (so basically ISO-8859-1) |
| 20:37:32 | × | fendor quits (~fendor@178.165.196.92.wireless.dyn.drei.com) (Remote host closed the connection) |
| 20:37:35 | <int-e> | good times ;-) |
| 20:37:36 | <aarchi> | I presume that nothing would have caused encoding errors then |
| 20:37:53 | <int-e> | (not really, but the transition period was pretty nasty) |
| 20:38:07 | <int-e> | aarchi: right |
| 20:38:33 | <int-e> | not even on writing, IIRC; codepoints would just be truncated to their least significant 8 bits |
| 20:39:23 | <sm> | ah! happy error-free days! |
| 20:39:50 | <hpc> | make things interesting, re-encode to UTF-32 and take the last two bits from each byte :D |
| 20:40:16 | <aarchi> | This is the snippet for printing an arbitrary-precision int as a char: putChar (toEnum (fromInteger n)). In GHC<6.12, that would have printed n%256 as a byte, right? |
| 20:40:39 | <int-e> | yes |
| 20:40:49 | <aarchi> | Modern GHC treats that as a UTF-32 codepoint |
| 20:41:05 | × | burnsidesLlama quits (~burnsides@client-8-91.eduroam.oxuni.org.uk) (Ping timeout: 258 seconds) |
| 20:42:00 | <aarchi> | Does (or has) getLine have different line ending handling per OS, i.e. LF/CRLF/CR? |
| 20:42:11 | <hpc> | yes |
| 20:42:19 | <geekosaur> | that's aforementioned newline translation |
| 20:42:28 | <hpc> | https://hackage.haskell.org/package/base-4.15.0.0/docs/System-IO.html#v:hSetNewlineMode |
| 20:42:35 | <int-e> | aarchi: the quote above mentions newline conventions as well |
| 20:42:54 | <int-e> | isn't there a LFCR convention too? |
| 20:43:09 | <hololeap> | what's the difference between a DSL and a EDSL? would would blaze-html count as? |
| 20:43:42 | <int-e> | hololeap: the difference is that EDSL must fit into the language's syntax; DSL can use preprocessors. |
| 20:43:49 | <int-e> | E = "embedded" |
| 20:44:03 | <dmj`> | Is there a way to overlap an instance by just adding a single constraint or will it always be considered duplicate |
| 20:44:07 | <hpc> | nix is a dsl, dhall is an edsl |
| 20:44:12 | <hololeap> | ok, so this is actually an EDSL, even though it calls itself a DSL: https://hackage.haskell.org/package/cascading |
| 20:44:16 | <aarchi> | int-e: Acorn BBC and Spool OS used CRLF: https://en.wikipedia.org/wiki/Newline |
| 20:44:17 | <hololeap> | that's what confused me |
| 20:44:17 | <int-e> | Of course that distinction is blurred when you have quasiquoters |
| 20:44:27 | <aarchi> | int-e: edit: those two used LFCR |
| 20:44:47 | <hpc> | er, dhall is a dsl too |
| 20:45:21 | <int-e> | aarchi: Yeah, stupid autocorrecting brains ;-) |
| 20:45:38 | <aarchi> | Yeah. LFCR just feels so wrong |
| 20:46:29 | <monochrom> | Classic Mac used LFCR. |
| 20:46:37 | <aarchi> | Really? I thought it was CR |
| 20:46:50 | <geekosaur> | same here |
| 20:47:15 | <monochrom> | Ah my bad. |
| 20:47:51 | <hololeap> | what I really want is an EDSL very much in the spirit of elm-ui that outputs CSS |
| 20:47:54 | <hololeap> | https://github.com/mdgriffith/elm-ui |
| 20:48:01 | <hololeap> | "Many layout errors (like you'd run into using CSS) are just not possible to write in the first place!" |
| 20:48:12 | <hololeap> | that's the killer feature I'm after |
| 20:49:27 | → | nate1 joins (~nate@2600:1010:b02a:2679:2dce:c77d:8f55:dad5) |
| 20:49:54 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds) |
| 20:52:11 | <aarchi> | Are stdin/stdout text or binary Handles, i.e. do they translate LF<->CRLF by default? |
| 20:52:21 | <c_wraith> | text |
| 20:53:06 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
| 20:54:57 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 20:57:32 | → | Erutuon joins (~Erutuon@user/erutuon) |
| 20:58:22 | × | nate1 quits (~nate@2600:1010:b02a:2679:2dce:c77d:8f55:dad5) (Ping timeout: 272 seconds) |
| 21:01:16 | → | Guest21 joins (~Guest21@2a02:aa1:1010:e9f8:8986:a924:83c:1c23) |
| 21:03:04 | → | Guest54 joins (~Guest54@187.83.249.216.dyn.smithville.net) |
| 21:04:36 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 268 seconds) |
| 21:07:07 | <hololeap> | i like how the website for clay (css EDSL) has an obnoxious floating title and menu that takes up almost half of the screen |
| 21:10:37 | <Guest21> | Hello I am new to Haskell could someone help me out? We are going to find the largest number under 100,000 that's divisible by 3829. GHCI is complaining about precedence with my mod predicate. |
| 21:10:48 | → | myShoggoth joins (~myShoggot@97-120-70-214.ptld.qwest.net) |
| 21:10:49 | <Guest21> | findLargestDiv' = last . filter (`mod` 3829 == 0) [1..100000] |
| 21:11:56 | <monochrom> | Yeah the computer thinks you mean (`mod` (3829 == 0)). |
| 21:12:10 | <monochrom> | You are really better off writing a lambda. |
| 21:12:40 | <hololeap> | are you asking how to fix it or are you confused about the error message? |
| 21:13:26 | <Guest21> | Asking how to fix it, if it's even possible to do it that way. I solved it with list comprehensions but I want to do it with filter and map. |
| 21:15:15 | → | mousey joins (~skymouse@gateway/tor-sasl/mousey) |
| 21:16:23 | <hololeap> | > findLargestDiv' = last . filter (\i -> i `mod` 3829 == 0) [1..100000] |
| 21:16:24 | <lambdabot> | <hint>:1:17: error: parse error on input ‘=’ |
| 21:16:41 | <hololeap> | > findLargestDiv' = last . filter (\i -> i `mod` 3829 == 0) |
| 21:16:43 | <lambdabot> | <hint>:1:17: error: parse error on input ‘=’ |
| 21:18:25 | <hololeap> | > let findLargestDiv' = last . filter (\i -> i `mod` 3829 == 0) |
| 21:18:27 | <lambdabot> | <no location info>: error: |
| 21:18:27 | <lambdabot> | not an expression: ‘let findLargestDiv' = last . filter (\i -> i `mod` 3... |
| 21:18:40 | <hololeap> | not sure what's up with lambdabot... |
| 21:18:54 | → | wroathe joins (~wroathe@96-88-30-181-static.hfc.comcastbusiness.net) |
| 21:18:57 | <monochrom> | expression ≠ declaration |
| 21:19:06 | <monochrom> | has always been that way since day one |
| 21:19:11 | <hololeap> | % findLargestDiv' = last . filter (\i -> i `mod` 3829 == 0) |
| 21:19:11 | <yahb> | hololeap: |
| 21:19:20 | <hololeap> | % findLargestDiv' [1..100000] |
| 21:19:21 | <yahb> | hololeap: 99554 |
| 21:19:54 | <hololeap> | I thought it hooked into a GHCI session or something. yahb has always been more intuitive to me |
| 21:20:22 | <monochrom> | No. lambdabot is only hint and/or mueval. |
| 21:21:51 | <hololeap> | how would you do a declaration with lambdabot? |
| 21:21:58 | <monochrom> | Don't. |
| 21:21:59 | <hpc> | @let likethis = "like this" |
| 21:22:00 | <lambdabot> | Defined. |
| 21:22:07 | <hololeap> | ok |
| 21:22:13 | <hpc> | @undefine |
| 21:22:13 | <lambdabot> | Undefined. |
| 21:22:37 | × | aguapesada quits (~aguapesad@2804:14c:8793:8e2f:311f:1da6:1cf6:61ea) (Ping timeout: 245 seconds) |
| 21:22:44 | <hololeap> | Guest21: sorry for the noise, did you get your question answered? |
| 21:23:01 | → | Ariakenom joins (~patrik@c83-255-154-140.bredband.tele2.se) |
| 21:23:06 | <monochrom> | GHCi too didn't take most declarations until a decade ago or 5 years ago or something. |
| 21:24:03 | <monochrom> | It required "let" for "let <pat> = <expr", and it didn't take "data X = X", "import List". |
| 21:24:11 | <monochrom> | (And yes back then it was called "List".) |
| 21:24:29 | → | pfurla joins (~pfurla@ool-3f8fcb0f.dyn.optonline.net) |
| 21:24:47 | <hololeap> | when I first started with haskell, ghci was like that. and then right after that it changed to the current behavior which is much more intuitive for me |
| 21:25:55 | → | aguapesada joins (~aguapesad@2804:14c:8793:8e2f:311f:1da6:1cf6:61ea) |
| 21:27:49 | <hpc> | i thought i was joking when i told people ghci was a giant do block |
| 21:27:59 | <hpc> | turns out it really was, back then lol |
| 21:28:12 | × | pfurla_ quits (~pfurla@ool-3f8fcb0f.dyn.optonline.net) (Ping timeout: 272 seconds) |
| 21:28:29 | <aarchi> | Are there significant I/O differences between Haskell 98 and 2010? |
| 21:28:58 | <hpc> | in what way? |
| 21:29:00 | <hpc> | performance? |
| 21:29:44 | <monochrom> | I think no. |
| 21:30:07 | × | Ariakenom quits (~patrik@c83-255-154-140.bredband.tele2.se) (Quit: WeeChat 3.1) |
| 21:30:13 | <aarchi> | I'm mostly interested in encoding-related changes |
| 21:30:13 | <Guest21> | hololeap yeah I figured it out, however I am stuck once again if you want to lend a hand. =) |
| 21:30:14 | <monochrom> | The requirement of Unicode compliance was there in Haskell 98 or earlier. |
| 21:30:22 | → | Ariakenom joins (~patrik@c83-255-154-140.bredband.tele2.se) |
| 21:30:30 | <hololeap> | Guest21: go ahead and ask |
| 21:30:42 | <monochrom> | It was actual implementations like GHC and Hugs that ignored that until a decade ago or something. |
| 21:31:26 | <Guest21> | We are going to find the sum of all odd squares that are smaller than 10 000. |
| 21:31:34 | <Guest21> | sumOddSquares = sum . filter f $ map (^2) [1..] |
| 21:31:34 | <Guest21> | where f x = odd x && x < 10000 |
| 21:31:50 | <Guest21> | My function runs forever for some reason. |
| 21:32:40 | <monochrom> | If you find a GHC version that can't be persuaded to do non-latin-1 I/O, take note that its Char type is still big enough for all of Unicode, it's just the I/O routines that disappoint. |
| 21:32:41 | <hololeap> | Guest21: use the takeWhile function |
| 21:32:56 | <Guest21> | Sure, but why doesn't it work like I wrote? |
| 21:32:57 | × | wonko quits (~wjc@62.115.229.50) (Ping timeout: 268 seconds) |
| 21:33:16 | <hololeap> | because there is nothing that tells it to stop |
| 21:33:34 | <hololeap> | it doesn't know you want to stop at 10000 |
| 21:33:35 | <Guest21> | what happens to my x < 10 000? |
| 21:33:47 | <monochrom> | If you start with [1, 3 .. 10000] you have all odd numbers below 10000 in the first place. |
| 21:34:02 | <hololeap> | the filter function just continues returning False for infinity. it doesn't know to do anything else |
| 21:34:15 | <Guest21> | Oh that's the answer I wanted, thanks! |
| 21:34:21 | <Guest21> | hololeap |
| 21:34:55 | <hololeap> | np |
| 21:35:07 | <monochrom> | You should take a close look at the code of filter and hand-execute it to see what it really does. |
| 21:36:06 | <monochrom> | As opposed to taking an "intuitive" wordy narrative that is completely open to misinterpretation therefore you can misunderstand it and indeed you did. |
| 21:36:19 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 21:36:24 | <monochrom> | A formula is worth a thousand pictures. Which is a million words. |
| 21:36:28 | <hololeap> | yeah, the code doesn't lie |
| 21:38:58 | × | fvr quits (uid503686@id-503686.highgate.irccloud.com) (Quit: Connection closed for inactivity) |
| 21:39:55 | <monochrom> | Maybe I should put that on my exam too. |
| 21:41:53 | <monochrom> | Is this Project Euler? |
| 21:42:54 | <monochrom> | Did Project Euler not place a very visible banner reminding you you're supposed to math the sh*t out of it and think up a basically O(1)-time algorithm and that should be what you code up, as opposed to brute-forcing it? |
| 21:43:47 | <aarchi> | Are .hi files platform-independent? How compiler version-independent are they? |
| 21:44:04 | <geekosaur> | they're very version-dependent |
| 21:44:12 | <monochrom> | I still don't get it when people, even today, use it for "learning to code". What is the value in learning to code up only brute forcing, really? |
| 21:44:44 | <aarchi> | Can a .hs file be reverse engineered from a .hi file? |
| 21:44:49 | <Cajun> | its very good for learning how to google the right thing to find the right algorithm :P |
| 21:44:49 | <geekosaur> | in fact they start out with a version indicator so the compiler can abort if a .hi file for the wrong version is used |
| 21:45:06 | <geekosaur> | it doesn't have enough infoprmation to recreate a .hs file |
| 21:45:24 | <hpc> | i think you need both the .hi and the .o file to have a chance |
| 21:45:26 | <aarchi> | Does it have AST/source information? An IR? |
| 21:45:53 | <aarchi> | What's in an .hi file? |
| 21:46:21 | <geekosaur> | all it has is enough type information to use a .o fileproperly, and source unfoldings for cross-module inlining (whicyh applies only to small functions) |
| 21:48:13 | <geekosaur> | you can use ghc to dump a .hi file in human-readable file (ghc --print-hi-file iirc) |
| 21:49:20 | <aarchi> | I've got this .hi/.o pair, but no .hs source and I'd like to reverse engineer it: |
| 21:49:21 | <aarchi> | https://web.archive.org/web/20030624020343/http://www.dur.ac.uk/d.j.walrond/whitespace/whitespace-0.1/VM.hi |
| 21:49:25 | <aarchi> | https://web.archive.org/web/20030624020612/http://www.dur.ac.uk/d.j.walrond/whitespace/whitespace-0.1/VM.o |
| 21:49:47 | <aarchi> | I have a later version of VM.hs, but want to derive this version |
| 21:49:56 | <geekosaur> | sorry, it's --show-iface |
| 21:50:50 | <geekosaur> | and I don't think you have enough information to derive that VM.hs |
| 21:53:56 | × | Guest21 quits (~Guest21@2a02:aa1:1010:e9f8:8986:a924:83c:1c23) (Quit: Client closed) |
| 21:54:58 | <aarchi> | I get "bad CPU type in executable" for both --print-hi-file and --show-iface. I'll have to try it in Docker |
| 21:55:10 | <aarchi> | I guess that means that .hi files are plat-dependent |
| 21:55:44 | <aarchi> | geekosaur: you said the GHC version is at the start of the .hi; I don't see it with xxd/less or strings |
| 21:57:14 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 21:57:47 | <geekosaur> | aarchi, it's numerically encoded |
| 21:58:11 | <geekosaur> | and that error actualy means you can't even run ghc |
| 21:59:14 | <aarchi> | Looks like I forgot to cleanup my installation after experimenting with 6.2.1 |
| 21:59:36 | <monochrom> | Yeah "executable" refers to GHC itself. |
| 22:00:42 | × | hendursa1 quits (~weechat@user/hendursaga) (Ping timeout: 244 seconds) |
| 22:01:27 | × | Guest54 quits (~Guest54@187.83.249.216.dyn.smithville.net) (Quit: Client closed) |
| 22:03:04 | → | hendursa1 joins (~weechat@user/hendursaga) |
| 22:04:34 | × | dudek quits (~dudek@185.150.236.112) (Quit: Leaving) |
| 22:05:56 | <aarchi> | Well unfortunately the .hi version (after fixing my GHC install) isn't very indicative: |
| 22:05:58 | <aarchi> | magic number mismatch: old/corrupt interface file? (wanted 33214052, got 0) |
| 22:06:19 | <aarchi> | Does 0 correspond to any specific version(s)? |
| 22:06:57 | <geekosaur> | means it's too old to have a version |
| 22:07:48 | <geekosaur> | probably need to build the version of ghc it came from (5.02?) to dump it |
| 22:09:51 | × | gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 22:10:58 | <aarchi> | Fun stuff |
| 22:13:41 | <geekosaur> | hm, that alos means --show-iface will only work with the same ghc that generated the .hi file :/ |
| 22:14:23 | <hpc> | hopefully it wasn't a HEAD build |
| 22:16:21 | × | mjs2600 quits (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Quit: ZNC 1.8.2 - https://znc.in) |
| 22:16:21 | × | machinedgod quits (~machinedg@24.105.81.50) (Read error: Connection reset by peer) |
| 22:16:35 | <geekosaur> | I wonderif 5.02 will even build with a modernish ghc |
| 22:16:40 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 22:16:47 | <geekosaur> | might have to walk backwards a major version at a time |
| 22:17:29 | × | slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving) |
| 22:17:44 | → | mjs2600 joins (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) |
| 22:18:23 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 22:19:01 | → | slowButPresent joins (~slowButPr@user/slowbutpresent) |
| 22:21:08 | <aarchi> | I'm hoping I don't have to bootstrap GHC |
| 22:21:24 | <aarchi> | Can GHC cross compile itself? |
| 22:22:15 | <geekosaur> | there's a backward compatibility policy, but afaik no forward compatibility policy |
| 22:22:35 | <geekosaur> | so there's no guarantee modern ghc can build an older one |
| 22:23:14 | × | acidjnk quits (~acidjnk@p200300d0c72b9508a1e806c8914cbd0f.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
| 22:23:48 | <aarchi> | And I don't think I could usefully build newer a GHC from an older one because that couldn't produce a platform that isn't published online |
| 22:27:26 | × | Tuplanolla quits (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.) |
| 22:29:19 | <stevenxl> | Hey folks. I have a value of type (MonadReader env m) => ReaderT SqlBackend m (), and I want to define it in terms of another value of type (MonadReader Int m) => ReaderT SqlBackend m (). |
| 22:29:29 | stevenxl | Script is here: https://paste.tomsmeding.com/6JBwFuFo |
| 22:30:10 | stevenxl | I can get this to compile by peeling off the first monadic context, and then manually running the second monadic context. |
| 22:30:12 | stevenxl | Is there a better way/ |
| 22:32:27 | × | hendursa1 quits (~weechat@user/hendursaga) (Quit: hendursa1) |
| 22:33:17 | → | hendursaga joins (~weechat@user/hendursaga) |
| 22:33:34 | → | lavaman joins (~lavaman@98.38.249.169) |
| 22:36:44 | × | aguapesada quits (~aguapesad@2804:14c:8793:8e2f:311f:1da6:1cf6:61ea) (Read error: Connection reset by peer) |
| 22:38:26 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 272 seconds) |
| 22:42:58 | <dminuoso> | stevenxl: The type signatures you wrote in IRC dont work. |
| 22:43:44 | <stevenxl> | I may have explained myself incorrectly. The snippet does compile: |
| 22:43:48 | <stevenxl> | https://www.irccloud.com/pastebin/93RjtIYP/ |
| 22:44:05 | <stevenxl> | I was just wondering if there is a more elegant way of doing this. |
| 22:45:14 | <dminuoso> | You could ImplicitParams, perhaps. |
| 22:45:27 | <dminuoso> | Or consider explicitly passing arguments, rather than relying on ReaderT. |
| 22:45:59 | <dminuoso> | Also perhaps `local` is an option if the nested computations environment can be pulled from the outer environment using a function. |
| 22:46:07 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 22:46:11 | <dminuoso> | Those are the options that I can see |
| 22:47:21 | stevenxl | Yea - in production I went with passing in the argument explicitly to `funcTwo`, and I did see the `local` option as well. I don't know about ImplicitParams so I might have to look that up. |
| 22:47:40 | stevenxl | `mapReaderT` sounded like something worthwhile but I can't get it to work. |
| 22:47:53 | stevenxl | If I use a type whole it says I need a function from `() -> a0`, which is not too helpful. ;) |
| 22:51:03 | → | Heisen joins (~Heisen@2a02:aa1:1010:e9f8:c4d6:f30c:bbf0:3508) |
| 22:51:41 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 22:53:11 | <Heisen> | Hello why can't I curry the foldl function? I tried to do sumWithFoldl = foldl (+) 0 to give me back a partially applied function but it gives me a bunch of error messages. |
| 22:53:53 | <stevenxl> | @dminuoso this seems to work as well: |
| 22:53:53 | <lambdabot> | Unknown command, try @list |
| 22:53:59 | <stevenxl> | https://www.irccloud.com/pastebin/VEK0GYE4/ |
| 22:54:26 | stevenxl | With the previous definitions of `funcTwo`. |
| 22:54:33 | stevenxl | I think this is good enough. :-) |
| 22:55:13 | stevenxl | I was using `mapReader` instead of `mapReaderT` which is why I originally thought it could not be done. |
| 22:58:45 | <geekosaur> | Heisen, that looks like it might be the monomorphism restriction |
| 22:59:15 | <geekosaur> | that said, you'll have to supply the error messages to be certain |
| 22:59:19 | <geekosaur> | @where paste |
| 22:59:19 | <lambdabot> | Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com |
| 23:00:32 | × | fabfianda quits (~fabfianda@mob-5-91-116-37.net.vodafone.it) (Ping timeout: 268 seconds) |
| 23:01:05 | → | fabfianda joins (~fabfianda@37.183.255.57) |
| 23:01:55 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 23:03:14 | → | HarveyPwca joins (~HarveyPwc@2601:246:c180:a570:29df:3b00:ad0e:3a06) |
| 23:05:29 | → | lavaman joins (~lavaman@98.38.249.169) |
| 23:05:43 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
| 23:05:44 | → | allbery_b joins (~geekosaur@xmonad/geekosaur) |
| 23:05:47 | allbery_b | is now known as geekosaur |
| 23:06:45 | <aarchi> | Is there documentation on the default `localeEncoding` for each platform? |
| 23:07:31 | <geekosaur> | the default is not under the control of ghc |
| 23:08:09 | <aarchi> | Is it set via `LC_ALL=C` and friends? |
| 23:08:30 | <geekosaur> | but for example on most nmodern linux distributions it's some utf8-based locale |
| 23:08:45 | → | nate1 joins (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
| 23:08:51 | <geekosaur> | usually set duringf os installation |
| 23:09:19 | <aarchi> | Is Windows UTF-16? |
| 23:10:02 | <geekosaur> | I believe it is with the new I/O manager in ghc9. don't know about earlier versions |
| 23:11:40 | <monochrom> | On Linux it is the LANG and LC_* environment variables. On Windows it is code page. I don't know Mac. The question becomes "where are all these officially written?" |
| 23:13:28 | × | nate1 quits (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds) |
| 23:18:01 | <aarchi> | Has Haskell always used floored division for `div` and `mod`? |
| 23:20:52 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds) |
| 23:24:39 | → | pfurla_ joins (~pfurla@ool-3f8fcb0f.dyn.optonline.net) |
| 23:26:18 | × | myShoggoth quits (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 258 seconds) |
| 23:27:20 | <aarchi> | Looks like Haskell used to support exponential notation, e.g. `1e6` in `read` |
| 23:28:17 | × | pfurla quits (~pfurla@ool-3f8fcb0f.dyn.optonline.net) (Ping timeout: 268 seconds) |
| 23:34:49 | <aarchi> | monochrom: by “code page” do you mean a code page Window-1252? |
| 23:35:04 | <aarchi> | *a code page like Windows-1252 |
| 23:36:01 | × | wroathe quits (~wroathe@96-88-30-181-static.hfc.comcastbusiness.net) (Ping timeout: 248 seconds) |
| 23:42:12 | <monochrom> | yes |
| 23:42:18 | <geekosaur> | yes, and it can go wrong in a numbver of ways so it's disrecommended |
| 23:42:28 | <geekosaur> | which is another reason for the new I/O manager |
| 23:43:47 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 23:43:57 | <monochrom> | div and mod are painstakingly determinized in the Haskell Report. |
| 23:48:23 | → | Guest|92 joins (~Guest|92@77.173.220.111.dyn.iprimus.net.au) |
| 23:48:30 | _-- | is now known as lll |
| 23:48:53 | × | Guest|92 quits (~Guest|92@77.173.220.111.dyn.iprimus.net.au) (Client Quit) |
| 23:52:43 | × | Ariakenom quits (~patrik@c83-255-154-140.bredband.tele2.se) (Quit: WeeChat 3.1) |
| 23:54:00 | lll | is now known as _|_ |
All times are in UTC on 2021-08-14.