Logs on 2022-08-16 (liberachat/#haskell)
| 00:00:20 | → | fenafsezaman joins (~Me@185.103.90.177) |
| 00:03:16 | → | notzmv joins (~zmv@user/notzmv) |
| 00:07:10 | × | fenafsezaman quits (~Me@185.103.90.177) (K-Lined) |
| 00:09:03 | × | lagash quits (lagash@lagash.shelltalk.net) (Remote host closed the connection) |
| 00:09:18 | × | ph88 quits (~ph88@ip5f5af71f.dynamic.kabel-deutschland.de) (Quit: Leaving) |
| 00:10:26 | → | lagash joins (lagash@2605:6400:20:b4:9c76:1538:3398:ce71) |
| 00:15:16 | × | mmhat quits (~mmh@p200300f1c732d6d0ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.6) |
| 00:17:30 | × | stef204 quits (~stef204@user/stef204) (Quit: WeeChat 3.6) |
| 00:18:03 | × | gurkenglas quits (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 00:18:43 | × | cthaeh^ quits (~cthaeh@50.231.67.43) (Ping timeout: 248 seconds) |
| 00:23:14 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 00:23:14 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 00:23:15 | → | wroathe joins (~wroathe@user/wroathe) |
| 00:28:32 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
| 00:29:00 | × | kimjetwav quits (~user@2607:fea8:235e:b600:63f1:7c00:91d0:abf) (Remote host closed the connection) |
| 00:31:37 | → | nilradical joins (~nilradica@user/naso) |
| 00:34:04 | × | gdown quits (~gavin@h69-11-149-231.kndrid.broadband.dynamic.tds.net) (Remote host closed the connection) |
| 00:35:35 | × | mikoto-chan quits (~mikoto-ch@164.5.249.78) (Ping timeout: 256 seconds) |
| 00:41:02 | → | vysn joins (~vysn@user/vysn) |
| 00:41:48 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 00:48:29 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 252 seconds) |
| 00:50:54 | <qrpnxz> | GHC thinks i want (Num (IO Int)) oh boy. This gonna suck to debug |
| 00:51:28 | <Axman6> | should be pretty simple if you have hls |
| 00:51:56 | <qrpnxz> | i do have hls, happily informs me that GHC thinks i want (Num (IO Int)) :/ |
| 00:52:34 | <Axman6> | comment out the offending code and then check the types of all the involved expressions |
| 00:52:39 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 00:54:17 | <qrpnxz> | it's like a 30 line function :((( I have written like this `longFuncName = func where func = ....` it just underlines func, can't really remove that or i have to more a lot of code around |
| 00:54:59 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 248 seconds) |
| 00:55:24 | <qrpnxz> | s/more/move |
| 00:56:35 | × | xff0x_ quits (~xff0x@2405:6580:b080:900:f183:2436:78f3:8665) (Ping timeout: 248 seconds) |
| 00:59:23 | → | talismanick joins (~talismani@campus-009-007.ucdavis.edu) |
| 00:59:46 | talismanick | is now known as Guest5778 |
| 01:00:06 | × | Guest5778 quits (~talismani@campus-009-007.ucdavis.edu) (Client Quit) |
| 01:00:44 | <dsal> | That's the problem. I don't like long function names. |
| 01:03:30 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
| 01:04:06 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 01:06:29 | <qrpnxz> | i wish GHC considered that maybe i don't want to add IO actions and tell me where i'm trying to do such a thing |
| 01:06:53 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
| 01:07:23 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 01:07:45 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Client Quit) |
| 01:09:14 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 01:09:40 | <yushyin> | specify a type without IO and I am almost sure that GHC will complain then |
| 01:09:49 | → | jargon joins (~jargon@184.101.168.117) |
| 01:10:22 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 01:16:30 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 01:19:17 | → | Jeanne-Kamikaze joins (~Jeanne-Ka@142.147.89.238) |
| 01:23:48 | <qrpnxz> | half hour and can't find the problem 😡 |
| 01:25:36 | → | king_gs joins (~Thunderbi@187.201.216.244) |
| 01:26:22 | <Axman6> | if only there was a way to seek help from others... |
| 01:28:22 | <qrpnxz> | lol yeah if only... 😛 thanks for the offer, but i'll take this one |
| 01:38:32 | → | xff0x_ joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
| 01:41:16 | <qrpnxz> | if i don't use the function, no problem. No mention of the Num constraint anywhere. If i assign it to a hole that has absolutely no mention of Num, i get the error. ???? I'm gonna be so annoyned when i solve this. |
| 01:41:55 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 248 seconds) |
| 01:44:37 | → | king_gs1 joins (~Thunderbi@2806:103e:29:da7a:1f74:531c:dec2:7aec) |
| 01:44:38 | × | king_gs quits (~Thunderbi@187.201.216.244) (Read error: Connection reset by peer) |
| 01:44:38 | king_gs1 | is now known as king_gs |
| 01:47:12 | <qrpnxz> | Found it! ARGH! unbelievable. I was returning `1` where i needed `pure 1`. 😐🔫 |
| 01:48:51 | × | chomwitt quits (~chomwitt@2a02:587:dc15:5e00:ece7:3fb3:7c32:eccf) (Ping timeout: 248 seconds) |
| 01:51:55 | × | machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 252 seconds) |
| 01:53:06 | × | nilradical quits (~nilradica@user/naso) () |
| 01:54:34 | <jackdk> | `instance TypeError (Text "You probably didn't mean this) => Num (IO a) where...` |
| 01:58:03 | → | bgamari joins (~bgamari@64.223.226.174) |
| 01:58:09 | × | bgamari_ quits (~bgamari@64.223.132.170) (Ping timeout: 252 seconds) |
| 02:03:24 | × | alp_ quits (~alp@user/alp) (Ping timeout: 256 seconds) |
| 02:07:37 | <qrpnxz> | does IO have that? If IO does have that I should say that in my code it wasn't actually IO, it was a more complicated Monad. Also, i think HLS might have highlighted it, but because it `1` is a single tiny character i didn't see it. It definitely didn't say on my terminal output. idk how you get the relevant error to show up on the terminal. |
| 02:09:27 | × | jespada quits (~jespada@2803:9800:9842:8ca9:c034:74:da3:46b7) (Ping timeout: 268 seconds) |
| 02:10:31 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
| 02:10:31 | → | finn_elija joins (~finn_elij@user/finn-elija/x-0085643) |
| 02:10:31 | finn_elija | is now known as FinnElija |
| 02:11:28 | → | jespada joins (~jespada@2803:9800:9842:8ca9:697e:9a9e:7c3a:1937) |
| 02:19:00 | → | instantaphex joins (~jb@c-73-171-252-84.hsd1.fl.comcast.net) |
| 02:20:03 | → | jmdaemon joins (~jmdaemon@user/jmdaemon) |
| 02:20:19 | × | jmd_ quits (~jmdaemon@user/jmdaemon) (Ping timeout: 248 seconds) |
| 02:22:27 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 268 seconds) |
| 02:24:45 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 02:26:29 | → | kannon joins (~NK@135-180-47-54.fiber.dynamic.sonic.net) |
| 02:26:43 | × | td_ quits (~td@muedsl-82-207-238-255.citykom.de) (Ping timeout: 268 seconds) |
| 02:27:12 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 256 seconds) |
| 02:28:02 | → | td_ joins (~td@muedsl-82-207-238-061.citykom.de) |
| 02:35:49 | → | mikoto-chan joins (~mikoto-ch@164.5.249.78) |
| 02:38:17 | → | nate4 joins (~nate@98.45.169.16) |
| 02:38:22 | <dsal> | Declaring types generally solves that problem for me. |
| 02:38:31 | <jackdk> | It doesn't - I was speculating whether or not it was a good idea. |
| 02:38:32 | <dsal> | It narrows the amount of guessing that has to happen. |
| 02:39:29 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 02:47:53 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 02:48:00 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 02:58:20 | → | renzhi joins (~xp@2607:fa49:6500:b100::47a5) |
| 03:01:19 | × | jero98772 quits (~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) (Remote host closed the connection) |
| 03:03:28 | × | vysn quits (~vysn@user/vysn) (Ping timeout: 256 seconds) |
| 03:06:56 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 03:08:26 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 03:09:02 | × | king_gs quits (~Thunderbi@2806:103e:29:da7a:1f74:531c:dec2:7aec) (Quit: king_gs) |
| 03:09:16 | → | king_gs joins (~Thunderbi@187.201.216.244) |
| 03:12:03 | × | mikoto-chan quits (~mikoto-ch@164.5.249.78) (Ping timeout: 248 seconds) |
| 03:12:40 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 03:13:08 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 03:19:11 | × | Cale quits (~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com) (Ping timeout: 252 seconds) |
| 03:19:39 | → | jmd_ joins (~jmdaemon@user/jmdaemon) |
| 03:20:17 | × | jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 252 seconds) |
| 03:21:36 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 256 seconds) |
| 03:21:39 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 248 seconds) |
| 03:27:42 | → | nate4 joins (~nate@98.45.169.16) |
| 03:28:58 | × | renzhi quits (~xp@2607:fa49:6500:b100::47a5) (Ping timeout: 256 seconds) |
| 03:30:01 | → | king_gs1 joins (~Thunderbi@2806:103e:29:da7a:1f74:531c:dec2:7aec) |
| 03:31:15 | × | king_gs quits (~Thunderbi@187.201.216.244) (Ping timeout: 248 seconds) |
| 03:31:15 | king_gs1 | is now known as king_gs |
| 03:31:24 | → | Cale joins (~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com) |
| 03:32:22 | × | Vajb quits (~Vajb@2001:999:780:268:c891:8e5a:371f:cf49) (Ping timeout: 256 seconds) |
| 03:32:56 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 256 seconds) |
| 03:33:08 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) |
| 03:37:07 | × | Cale quits (~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com) (Ping timeout: 248 seconds) |
| 03:37:12 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 03:41:24 | → | gdown joins (~gavin@h69-11-149-231.kndrid.broadband.dynamic.tds.net) |
| 03:42:00 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 256 seconds) |
| 03:43:52 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
| 03:45:36 | <Axman6> | IIRC the Num instance for (Applicative f, Num a) => Num (f a) is pretty consistent, with (+) = liftA2 (+); negate = fmap negate etc. |
| 03:46:24 | <Axman6> | it definitely makes foldl easier to work with; ave = sum / genericLength |
| 03:48:34 | → | Cale joins (~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com) |
| 03:49:21 | × | jinsun quits (~jinsun@user/jinsun) (Ping timeout: 268 seconds) |
| 03:49:24 | → | jinsun__ joins (~jinsun@user/jinsun) |
| 03:49:24 | jinsun__ | is now known as jinsun |
| 03:52:04 | <[Leary]> | Unfortunately, the `subtract` isn't lawful. Nevertheless, it's available under Ap. |
| 03:52:28 | <Axman6> | how so? |
| 03:52:53 | <[Leary]> | > let a = Ap [1, 2] in a - a == 0 |
| 03:52:55 | <lambdabot> | False |
| 03:52:59 | <[Leary]> | > let a = Ap [1, 2] in a - a |
| 03:53:01 | <lambdabot> | Ap {getAp = [0,-1,1,0]} |
| 03:53:19 | <Axman6> | ah interesting, makes sense |
| 03:56:12 | <[Leary]> | > let a = Ap [1, 2], b = Ap [3, 4], c = Ap [5, 6] in a * (b + c) == a * b + a * c |
| 03:56:14 | <lambdabot> | <hint>:1:18: error: parse error on input ‘,’ |
| 03:56:23 | <[Leary]> | > let a = Ap [1, 2]; b = Ap [3, 4]; c = Ap [5, 6] in a * (b + c) == a * b + a * c |
| 03:56:25 | <lambdabot> | False |
| 03:56:28 | <[Leary]> | That one too. |
| 03:56:57 | × | instantaphex quits (~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 252 seconds) |
| 04:01:04 | <Axman6> | ^H^H^H^H^H^H^H^H^H^H^H^H^H IIRC the Num instance for (Applicative f, Num a) => Num (f a) is highly problematic =) |
| 04:15:57 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 04:16:25 | → | Vajb joins (~Vajb@2001:999:705:3c86:e7ea:442b:1e01:22d8) |
| 04:16:59 | × | king_gs quits (~Thunderbi@2806:103e:29:da7a:1f74:531c:dec2:7aec) (Quit: king_gs) |
| 04:17:09 | → | king_gs1 joins (~Thunderbi@187.201.216.244) |
| 04:19:27 | king_gs1 | is now known as king_gs |
| 04:20:10 | → | Zer000 joins (~phil@64.137.132.26) |
| 04:23:25 | × | Me-me quits (~me-me@user/me-me) (Remote host closed the connection) |
| 04:37:37 | → | mbuf joins (~Shakthi@122.165.55.71) |
| 04:37:48 | ← | etoast parts (~exaltedto@user/exaltedtoast) (Tschüss) |
| 04:38:26 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 04:39:51 | × | luffy quits (~chenqisu1@183.217.201.23) (Ping timeout: 252 seconds) |
| 04:43:22 | → | instantaphex joins (~jb@c-73-171-252-84.hsd1.fl.comcast.net) |
| 04:48:35 | × | instantaphex quits (~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 248 seconds) |
| 04:55:17 | × | Jeanne-Kamikaze quits (~Jeanne-Ka@142.147.89.238) (Quit: Leaving) |
| 04:57:37 | → | king_gs1 joins (~Thunderbi@2806:103e:29:da7a:12b2:9fef:c8de:89e4) |
| 04:57:37 | × | king_gs quits (~Thunderbi@187.201.216.244) (Read error: Connection reset by peer) |
| 04:57:37 | king_gs1 | is now known as king_gs |
| 05:05:18 | × | kannon quits (~NK@135-180-47-54.fiber.dynamic.sonic.net) (Ping timeout: 244 seconds) |
| 05:09:38 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 05:14:30 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds) |
| 05:20:35 | → | instantaphex joins (~jb@c-73-171-252-84.hsd1.fl.comcast.net) |
| 05:24:51 | × | instantaphex quits (~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 248 seconds) |
| 05:34:01 | × | zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!) |
| 05:34:30 | → | kenran joins (~kenran@200116b82b147000cccd10d41cdedf15.dip.versatel-1u1.de) |
| 05:34:31 | × | kenran quits (~kenran@200116b82b147000cccd10d41cdedf15.dip.versatel-1u1.de) (Client Quit) |
| 05:36:31 | → | instantaphex joins (~jb@c-73-171-252-84.hsd1.fl.comcast.net) |
| 05:41:00 | × | instantaphex quits (~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 256 seconds) |
| 05:50:29 | → | Midjak joins (~Midjak@82.66.147.146) |
| 05:59:20 | → | coot joins (~coot@213.134.176.158) |
| 06:00:15 | → | MajorBiscuit joins (~MajorBisc@c-001-001-040.client.tudelft.eduvpn.nl) |
| 06:05:40 | × | gdown quits (~gavin@h69-11-149-231.kndrid.broadband.dynamic.tds.net) (Remote host closed the connection) |
| 06:10:52 | → | `2jt joins (~jtomas@56.red-88-17-82.dynamicip.rima-tde.net) |
| 06:12:32 | → | instantaphex joins (~jb@c-73-171-252-84.hsd1.fl.comcast.net) |
| 06:13:12 | → | Furor joins (~colere@about/linux/staff/sauvin) |
| 06:16:07 | × | Colere quits (~colere@about/linux/staff/sauvin) (Ping timeout: 268 seconds) |
| 06:17:01 | × | instantaphex quits (~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 252 seconds) |
| 06:21:41 | <tomsmeding> | qrpnxz: HLS likely didn't highlight the 1, because the use of 1 itself _is valid_ -- as long as the surrounding context has a Num constraint on the type that you use 1 at. This is why you get an error on the top level only. |
| 06:26:11 | × | `2jt quits (~jtomas@56.red-88-17-82.dynamicip.rima-tde.net) (Ping timeout: 248 seconds) |
| 06:26:31 | → | mmhat joins (~mmh@p200300f1c732d60cee086bfffe095315.dip0.t-ipconnect.de) |
| 06:27:11 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 268 seconds) |
| 06:31:13 | → | nattiestnate joins (~nate@180.243.14.130) |
| 06:31:31 | × | nattiestnate quits (~nate@180.243.14.130) (Client Quit) |
| 06:36:59 | × | shriekingnoise quits (~shrieking@186.137.167.202) (Quit: Quit) |
| 06:37:11 | × | jonathanx quits (~jonathan@h-178-174-176-109.a357.priv.bahnhof.se) (Ping timeout: 252 seconds) |
| 06:37:26 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 06:44:45 | → | pagnol joins (~me@213-205-209-87.ftth.glasoperator.nl) |
| 06:45:12 | → | jonathanx joins (~jonathan@c-5eea764a-74736162.cust.telenor.se) |
| 06:46:07 | → | instantaphex joins (~jb@c-73-171-252-84.hsd1.fl.comcast.net) |
| 06:46:13 | → | Pickchea joins (~private@user/pickchea) |
| 06:48:43 | <[exa]> | ski: uuuh wow thanks for the links, this is actually quite relevant |
| 06:49:58 | sander | is now known as sndr |
| 06:50:43 | × | instantaphex quits (~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 248 seconds) |
| 06:51:15 | × | jonathanx quits (~jonathan@c-5eea764a-74736162.cust.telenor.se) (Ping timeout: 248 seconds) |
| 06:51:29 | → | waldo joins (~waldo@user/waldo) |
| 07:01:09 | × | Zer000 quits (~phil@64.137.132.26) (Quit: Leaving) |
| 07:01:34 | → | nilradical joins (~nilradica@user/naso) |
| 07:02:14 | → | instantaphex joins (~jb@c-73-171-252-84.hsd1.fl.comcast.net) |
| 07:02:19 | → | zeenk joins (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) |
| 07:02:30 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:6041:d333:dc45:72df) |
| 07:02:33 | × | waldo quits (~waldo@user/waldo) (Quit: quit) |
| 07:06:43 | × | instantaphex quits (~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 248 seconds) |
| 07:11:05 | → | lottaquestions_ joins (~nick@104.221.24.83) |
| 07:11:09 | × | lottaquestions_ quits (~nick@104.221.24.83) (Read error: Connection reset by peer) |
| 07:11:32 | → | lottaquestions_ joins (~nick@104.221.24.83) |
| 07:12:15 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 07:12:55 | × | lottaquestions quits (~nick@2607:fa49:503e:7100:276:d569:54ed:ceaf) (Ping timeout: 244 seconds) |
| 07:13:27 | × | coot quits (~coot@213.134.176.158) (Quit: coot) |
| 07:16:16 | × | lottaquestions_ quits (~nick@104.221.24.83) (Client Quit) |
| 07:16:24 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 07:16:24 | × | adanwan_ quits (~adanwan@gateway/tor-sasl/adanwan) (Read error: Connection reset by peer) |
| 07:16:42 | → | lottaquestions_ joins (~nick@2607:fa49:503e:7100:6db8:6536:53f:14df) |
| 07:17:08 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 07:17:20 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 256 seconds) |
| 07:17:53 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 07:19:23 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 07:24:47 | × | king_gs quits (~Thunderbi@2806:103e:29:da7a:12b2:9fef:c8de:89e4) (Quit: king_gs) |
| 07:25:02 | → | king_gs joins (~Thunderbi@187.201.216.244) |
| 07:25:13 | × | king_gs quits (~Thunderbi@187.201.216.244) (Client Quit) |
| 07:25:53 | → | vysn joins (~vysn@user/vysn) |
| 07:30:45 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 07:31:37 | → | ddellacosta joins (~ddellacos@89.45.224.34) |
| 07:32:32 | → | coot joins (~coot@213.134.176.158) |
| 07:32:46 | → | BusConscious joins (~martin@ip5f5bdd28.dynamic.kabel-deutschland.de) |
| 07:32:54 | <BusConscious> | Module ‘Control.Monad.Trans.Except’ does not export ‘tryE’. |
| 07:32:57 | <BusConscious> | why? |
| 07:33:48 | <c_wraith> | from what version of what package? |
| 07:34:43 | <BusConscious> | base >=4.14.1.0 |
| 07:34:44 | <c_wraith> | Oh, are you maybe importing Control.Monad.Except from mtl instead of Control.Monad.Trans.Except from transformers? |
| 07:34:53 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 07:35:04 | <c_wraith> | No version of base appears to have a module by that name |
| 07:35:14 | <BusConscious> | import Control.Monad.Trans.Except |
| 07:35:40 | <BusConscious> | so that should not be the issue |
| 07:36:05 | <c_wraith> | except you didn't mention what version of transformers. or even confirm that it's from transformers |
| 07:36:14 | → | jgeerds joins (~jgeerds@55d46bad.access.ecotel.net) |
| 07:36:27 | <BusConscious> | transformers ^>=0.5.6.2 |
| 07:36:56 | <c_wraith> | that's not a version. |
| 07:37:07 | × | ddellacosta quits (~ddellacos@89.45.224.34) (Ping timeout: 248 seconds) |
| 07:37:15 | <c_wraith> | though... it does constrain transformers to only versions that don't have tryE |
| 07:37:25 | <BusConscious> | it does offer me throwE, catchE and except, but not the documented tryE |
| 07:37:25 | <c_wraith> | https://hackage.haskell.org/package/transformers-0.5.6.2/docs/Control-Monad-Trans-Except.html |
| 07:37:35 | <c_wraith> | look in the docs for the version you're using |
| 07:38:08 | <BusConscious> | ah sorry 0.6.0.5 |
| 07:38:26 | <BusConscious> | *0.6.0.4 |
| 07:38:36 | <c_wraith> | 6.0.4 isn't allowed by that version constraint. |
| 07:38:52 | <c_wraith> | You should look at what version is actually being used by your program |
| 07:38:58 | → | ddellacosta joins (~ddellacos@143.244.47.71) |
| 07:39:40 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 07:40:51 | × | machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 248 seconds) |
| 07:42:07 | <tomsmeding> | how do you do that easily? Can one check that in an easier way than looking at dist-newstyle/cache/plan.json ? |
| 07:42:30 | <c_wraith> | uh. I was just looking at that, and it appears the only easy way at the moment is using cabal freeze |
| 07:42:43 | <tomsmeding> | ah right |
| 07:42:45 | <c_wraith> | Then deleting the cabal.project.freeze file, if you want |
| 07:42:45 | → | waldo joins (~waldo@user/waldo) |
| 07:42:54 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 07:43:10 | <BusConscious> | ah thanks guys. works with 0.6.0.6 |
| 07:43:17 | <BusConscious> | *0.4 whatever |
| 07:44:01 | <c_wraith> | Yeah, whenever the question is along the lines of "why doesn't the documentation match what I can use?", my first suspicion is a version thing |
| 07:44:47 | <BusConscious> | I also had to throw out transformers-either, which I don |
| 07:45:02 | <BusConscious> | 't use anymore and conflicts with transformers >= 0.6 |
| 07:45:25 | → | alp_ joins (~alp@user/alp) |
| 07:46:18 | → | Me-me joins (~Me-me@146.102.215.218.dyn.iprimus.net.au) |
| 07:46:50 | → | acidjnk joins (~acidjnk@p200300d6e7137a99ecb826a5293fa5e0.dip0.t-ipconnect.de) |
| 07:49:16 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 07:56:19 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
| 07:57:46 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 07:58:07 | → | cfricke joins (~cfricke@user/cfricke) |
| 08:07:48 | → | Milan joins (~Milan@46.245.74.243) |
| 08:08:14 | × | Milan quits (~Milan@46.245.74.243) (Client Quit) |
| 08:08:58 | → | fserucas joins (~fserucas@46.50.4.9) |
| 08:09:09 | × | fserucas quits (~fserucas@46.50.4.9) (Client Quit) |
| 08:09:24 | → | eod|fserucas joins (~eod|fseru@46.50.4.9) |
| 08:19:14 | × | nilradical quits (~nilradica@user/naso) () |
| 08:21:07 | → | ubert joins (~Thunderbi@178.165.184.116.wireless.dyn.drei.com) |
| 08:23:27 | → | ccntrq joins (~Thunderbi@172.209.94.92.rev.sfr.net) |
| 08:25:30 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
| 08:25:31 | → | chele joins (~chele@user/chele) |
| 08:28:05 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 08:32:45 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 08:33:00 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 08:33:37 | → | CiaoSen joins (~Jura@p200300c95738a5002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 08:38:24 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 08:41:31 | ← | GoldsteinQ parts (~goldstein@goldstein.rs) (Leaving) |
| 08:41:33 | → | GoldsteinQ joins (~goldstein@goldstein.rs) |
| 08:43:26 | <tomsmeding> | it seems -Wunused-pattern-binds is over-eager in a template-haskell quote? https://paste.tomsmeding.com/d09W0uCZ |
| 08:44:04 | <tomsmeding> | funnily, the warning is still printed if the code is changed to `let ($(varP name)) = 3.0`, but the warning is gone if the code is changed to `let $(varP name) = 3.0` |
| 08:46:27 | <tomsmeding> | (reproduces on the brand-new ghc 9.4.1) |
| 08:46:37 | <c_wraith> | doesn't surprise me that there are issues with that combination. One odd thought: if you explicitly export thing, does anything change? |
| 08:47:46 | <tomsmeding> | c_wraith: nope -- though the warning that 'thing' is unused disappears |
| 08:48:01 | <tomsmeding> | (I ran into this in a situation where the surrounding function is very much used) |
| 08:48:05 | <c_wraith> | yeah, I was wondering if there was some transitive strangeness. |
| 08:48:12 | <tomsmeding> | yeah could've been, but no |
| 08:48:29 | <tomsmeding> | but the "funnily" note is really strange |
| 08:48:59 | <tomsmeding> | is this worth a ghc issue? |
| 08:49:17 | <c_wraith> | yeah, there's definitely something being handled incorrectly there |
| 08:49:47 | <c_wraith> | definitely include versions that do and don't trigger the warning. it makes it much more clear something is weird. |
| 08:50:04 | <tomsmeding> | yeah |
| 08:50:28 | <tomsmeding> | (perhaps I should try to reproduce on ghc master first...) |
| 08:50:54 | <tomsmeding> | config.status: error: cannot find input file: `docs/index.html.in' |
| 08:50:55 | <tomsmeding> | >.> |
| 08:51:09 | <tomsmeding> | ok it reproduces on 9.4.1, I'm going to bet it's still in master |
| 08:51:47 | <c_wraith> | ... man, Paths_ modules are weird with cabal. You auto-generate it. Why are you telling me I need to include it in other-modules? It's not part of the sdist! |
| 08:53:34 | → | instantaphex joins (~jb@c-73-171-252-84.hsd1.fl.comcast.net) |
| 08:58:11 | × | instantaphex quits (~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 248 seconds) |
| 09:00:05 | <BusConscious> | So I want to check if a given file descriptor is open for output. Now I could call getFdStatus. But this gives my a FileStatus. I can open a file I have rw permissions as a user in read only mode and get a file descriptor, that is not open for output |
| 09:00:16 | <tomsmeding> | c_wraith: https://gitlab.haskell.org/ghc/ghc/-/issues/22057 |
| 09:01:24 | <BusConscious> | Do I need to call fcntl via FFI again? |
| 09:01:25 | <tomsmeding> | BusConscious: what about System.IO.hIsWritable? |
| 09:01:31 | <BusConscious> | ah |
| 09:01:38 | <BusConscious> | good idea let me check |
| 09:01:42 | → | kannon joins (~NK@135-180-47-54.fiber.dynamic.sonic.net) |
| 09:01:59 | × | sympt quits (~sympt@user/sympt) (Ping timeout: 268 seconds) |
| 09:02:31 | <BusConscious> | mhm so I do need a handle for that.. but it's better than nothing I guess? |
| 09:03:15 | <tomsmeding> | BusConscious: how would you do it with fcntl |
| 09:03:27 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 09:04:17 | <tomsmeding> | BusConscious: ah, base:System.Posix.Internals.fdGetMode |
| 09:04:41 | <tomsmeding> | I found this by tracing what unix:System.Posix.IO.fdToHandle was doing |
| 09:05:32 | <BusConscious> | ah thank you very much. In C I would probably call fcntl with F_GETFL or something like that |
| 09:06:02 | × | kannon quits (~NK@135-180-47-54.fiber.dynamic.sonic.net) (Ping timeout: 255 seconds) |
| 09:06:35 | <tomsmeding> | BusConscious: lol https://hackage.haskell.org/package/base-4.17.0.0/docs/src/System.Posix.Internals.html#fdGetMode |
| 09:06:40 | <tomsmeding> | that's precisely what that function is going |
| 09:06:41 | <tomsmeding> | *doing |
| 09:07:31 | <tomsmeding> | note that it apparently doesn't work on windows |
| 09:09:58 | → | instantaphex joins (~jb@c-73-171-252-84.hsd1.fl.comcast.net) |
| 09:10:21 | <BusConscious> | we don't care about windows here |
| 09:10:29 | <tomsmeding> | :p |
| 09:12:00 | → | kuribas joins (~user@ptr-17d51eoyn5ldy9jvjfj.18120a2.ip6.access.telenet.be) |
| 09:14:00 | × | toms quits (~foobar@pogostick.net) (Remote host closed the connection) |
| 09:14:55 | × | instantaphex quits (~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 268 seconds) |
| 09:23:00 | → | chexum_ joins (~quassel@gateway/tor-sasl/chexum) |
| 09:23:56 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Quit: No Ping reply in 180 seconds.) |
| 09:24:25 | × | Me-me quits (~Me-me@146.102.215.218.dyn.iprimus.net.au) (Changing host) |
| 09:24:25 | → | Me-me joins (~Me-me@user/me-me) |
| 09:28:18 | → | luffy joins (~chenqisu1@183.217.201.23) |
| 09:29:43 | × | waldo quits (~waldo@user/waldo) (Ping timeout: 268 seconds) |
| 09:30:08 | × | Pickchea quits (~private@user/pickchea) (Quit: Leaving) |
| 09:38:56 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 09:43:32 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
| 09:48:07 | × | kilolympus quits (~kilolympu@90.206.106.191) (Read error: Connection reset by peer) |
| 09:48:58 | × | jmd_ quits (~jmdaemon@user/jmdaemon) (Ping timeout: 244 seconds) |
| 09:51:42 | → | kilolympus joins (~kilolympu@90.206.106.191) |
| 09:57:43 | → | gurkenglas joins (~gurkengla@p548ac72e.dip0.t-ipconnect.de) |
| 09:57:45 | → | benin0 joins (~benin@183.82.178.82) |
| 10:02:11 | × | kilolympus quits (~kilolympu@90.206.106.191) (Ping timeout: 248 seconds) |
| 10:12:51 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:6041:d333:dc45:72df) (Ping timeout: 248 seconds) |
| 10:14:09 | × | vysn quits (~vysn@user/vysn) (Ping timeout: 256 seconds) |
| 10:18:13 | → | kilolympus joins (~kilolympu@90.206.106.191) |
| 10:22:11 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:e00d:69dc:2609:faaf) |
| 10:22:49 | × | pavonia quits (~user@user/siracusa) (Read error: Connection reset by peer) |
| 10:26:23 | → | pavonia joins (~user@user/siracusa) |
| 10:27:15 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:e00d:69dc:2609:faaf) (Ping timeout: 248 seconds) |
| 10:46:49 | × | CiaoSen quits (~Jura@p200300c95738a5002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
| 10:46:52 | × | dknite quits (~dknite@49.37.45.100) (Read error: Connection reset by peer) |
| 10:47:04 | → | dknite joins (~dknite@110.224.4.96) |
| 10:48:43 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:964d:e751:66f2:8202) |
| 10:56:47 | × | xff0x_ quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 252 seconds) |
| 10:59:54 | → | dsrt^ joins (~dsrt@50.231.67.43) |
| 11:05:07 | × | tv quits (~tv@user/tv) (Read error: Connection reset by peer) |
| 11:09:57 | × | alp_ quits (~alp@user/alp) (Remote host closed the connection) |
| 11:10:21 | → | alp_ joins (~alp@user/alp) |
| 11:12:26 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 11:19:30 | × | dknite quits (~dknite@110.224.4.96) (Read error: Connection reset by peer) |
| 11:20:01 | × | pavonia quits (~user@user/siracusa) (Read error: Connection reset by peer) |
| 11:20:31 | → | dknite joins (~dknite@110.224.4.96) |
| 11:23:09 | → | tv joins (~tv@user/tv) |
| 11:23:42 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 11:26:22 | × | coot quits (~coot@213.134.176.158) (Quit: coot) |
| 11:30:11 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
| 11:32:39 | → | jonathanx joins (~jonathan@h-98-128-168-222.NA.cust.bahnhof.se) |
| 11:33:40 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 11:34:44 | × | m1dnight quits (~christoph@78-22-0-121.access.telenet.be) (Quit: WeeChat 3.6) |
| 11:39:10 | → | waldo joins (~waldo@user/waldo) |
| 11:39:52 | × | Techcable quits (~Techcable@user/Techcable) (Remote host closed the connection) |
| 11:40:38 | → | CiaoSen joins (~Jura@p200300c95738a5002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 11:41:23 | → | pavonia joins (~user@user/siracusa) |
| 11:41:41 | → | Techcable joins (~Techcable@user/Techcable) |
| 11:41:45 | → | Allio84 joins (~Android@79-74-233-27.dynamic.dsl.as9105.com) |
| 11:41:55 | × | waldo quits (~waldo@user/waldo) (Client Quit) |
| 11:48:16 | → | merijn joins (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) |
| 11:50:17 | → | xff0x_ joins (~xff0x@2405:6580:b080:900:55a5:3141:91aa:3e87) |
| 11:58:17 | <qrpnxz> | the light of dawn heals my soul |
| 12:00:03 | × | jonathanx quits (~jonathan@h-98-128-168-222.NA.cust.bahnhof.se) (Ping timeout: 248 seconds) |
| 12:00:05 | → | jonathanx_ joins (~jonathan@h-98-128-168-222.NA.cust.bahnhof.se) |
| 12:01:26 | → | seydar joins (~seydar@154-27-113-252.starry-inc.net) |
| 12:03:47 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
| 12:04:51 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 248 seconds) |
| 12:07:05 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 12:07:36 | → | hippoid joins (~idris@c-98-220-13-8.hsd1.il.comcast.net) |
| 12:07:40 | → | m1dnight joins (~christoph@78-22-0-121.access.telenet.be) |
| 12:10:01 | ski | . o O ( "Light of day" ("Pinball Dreams" title music) by Blaizer (aka Olof Gustafsson) / Digital Illusions (later DICE) in 1992 at <https://www.youtube.com/watch?v=dErnfo6eyew> ) |
| 12:11:03 | <janus> | does anyone have experience with upgrading to MonadTrans of transformers-0.6? |
| 12:11:06 | <janus> | i am looking at https://hackage.haskell.org/package/transformers-0.6.0.4/docs/src/Control.Monad.Trans.Class.html#MonadTrans |
| 12:11:27 | <janus> | i want to make servant compatible, but it had no monad constraint on the StepT datatype |
| 12:11:51 | × | tv quits (~tv@user/tv) (Read error: Connection reset by peer) |
| 12:11:54 | <janus> | not sure how i would write the instance declaration such that it demands Monad m |
| 12:13:05 | <janus> | the current transformers-0.5 code is here: https://github.com/haskell-servant/servant/blob/73c87bc2bc0685649f2337b06ab4fdc66c4ce1dd/servant/src/Servant/Types/SourceT.hs#L157 |
| 12:13:57 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 12:14:11 | <janus> | MonadTrans a kind that doesn't allow me to apply the m to StepT |
| 12:14:22 | × | alp_ quits (~alp@user/alp) (Ping timeout: 268 seconds) |
| 12:14:45 | <janus> | so i am thinking that the instance can't exist at all any more, since i have nowhere to put that Monad m |
| 12:16:19 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 12:17:14 | → | david_ joins (~david@2a01:4b00:f42b:3d00:71c6:f067:39da:6e70) |
| 12:17:37 | david_ | is now known as Guest8522 |
| 12:21:08 | <jackdk> | janus: got a repo, branch, or error message ? |
| 12:21:38 | × | dknite quits (~dknite@110.224.4.96) (Ping timeout: 256 seconds) |
| 12:24:25 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 12:24:33 | <janus> | jackdk: yeah, the repos are transformers and servant, i linked them both above. the error message reported when compiling with transformers-0.6 is that it is missing the Monad constraint |
| 12:24:40 | <qrpnxz> | janus: i don't understand the problem. MonadTrans says m is a monad, and you are just fmapping |
| 12:25:21 | <janus> | qrpnxz: the requirement that m is a Monad is new in transformers-0.6. the old behaviour is visible in the other branch of the CPP if |
| 12:25:32 | <jackdk> | what if you put the superclass constraint in the instance decl? |
| 12:26:02 | <janus> | jackdk: yeah, i wanted to do that, but i don't know how to write that since MonadTrans has a kind that doesn't let me apply the m to StepT |
| 12:26:18 | <qrpnxz> | m always had to be a monad. Now also the transformed monad has to be a monad. And if it's not, then it's not really a monad tranformer is it |
| 12:26:56 | <jackdk> | `instance (forall m. Monad m => Monad (StepT m)) => MonadTrans StepT where`? |
| 12:26:56 | <qrpnxz> | you can have your own lift function that puts monads into your not-monad-transformer |
| 12:26:59 | <janus> | qrpnxz: but look at the servant code, StepT is not a Monad as far as i can see |
| 12:27:04 | <qrpnxz> | right |
| 12:27:07 | <qrpnxz> | so it's not a monad transformer |
| 12:27:15 | <janus> | qrpnxz: so the instance should be removed? |
| 12:27:20 | <qrpnxz> | yes |
| 12:27:21 | → | nilradical joins (~nilradica@user/naso) |
| 12:27:56 | × | jgeerds quits (~jgeerds@55d46bad.access.ecotel.net) (Ping timeout: 268 seconds) |
| 12:28:19 | <jackdk> | Right, because Conduit and Streaming both are actual monad transformers because they have a return type from teh whole computation |
| 12:28:38 | <jackdk> | whereas your StepT has a `Stop` with no type param |
| 12:28:40 | → | tv joins (~tv@user/tv) |
| 12:29:00 | <janus> | jackdk: if i do that, i think i get an error about m not being mentioned on the RHS. but not sure, i can try it again. doesn't make too much sense to me |
| 12:29:11 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 12:29:45 | <jackdk> | so I think your options are "remove the instance" because it wasn't ever lawful, or make it a real monad transformer (in which case StepT looks a lot like the core type from package streaming) |
| 12:31:16 | <qrpnxz> | since it's not a transformer, a stream fusion type might be better too. idk if this is public API |
| 12:31:56 | → | themc47 joins (~mc47@xmonad/TheMC47) |
| 12:32:03 | × | luffy quits (~chenqisu1@183.217.201.23) (Ping timeout: 248 seconds) |
| 12:32:09 | → | img joins (~img@user/img) |
| 12:32:42 | <janus> | the test suite still passes if i remove it. |
| 12:33:03 | <janus> | SourceIO looks like it is part of the public api: https://github.com/haskell-servant/servant/blob/0b706aa6d171c59e010f4ea585c8c59529a8f7df/servant/src/Servant/API/Stream.hs |
| 12:34:10 | <qrpnxz> | looks like the internal representation isn't? |
| 12:34:11 | × | mc47 quits (~mc47@xmonad/TheMC47) (Ping timeout: 248 seconds) |
| 12:34:39 | <janus> | well it's exported: https://github.com/haskell-servant/servant/blob/f5a91d20e1bd56958878d50fd3d6bdff69e9ad2a/servant/servant.cabal#L68 |
| 12:35:10 | <qrpnxz> | i see |
| 12:35:12 | <janus> | given that it's exported, i guess a removal would mandate a major bump. but servant has a lot of these afaik |
| 12:36:05 | × | GoldsteinQ quits (~goldstein@goldstein.rs) (Quit: ZNC 1.8.2 - https://znc.in) |
| 12:40:12 | <merijn> | @where pvp |
| 12:40:12 | <lambdabot> | https://pvp.haskell.org/ |
| 12:40:20 | <merijn> | Fortunately, the PVP has a flowchart :p |
| 12:43:50 | × | mvk quits (~mvk@2607:fea8:5ce3:8500::a1ec) (Ping timeout: 255 seconds) |
| 12:45:06 | × | nilradical quits (~nilradica@user/naso) (Remote host closed the connection) |
| 12:45:34 | → | luffy joins (~chenqisu1@183.217.201.23) |
| 12:45:49 | → | GoldsteinQ joins (~goldstein@goldstein.rs) |
| 12:51:06 | → | Everything joins (~Everythin@37.115.210.35) |
| 12:52:19 | × | pagnol quits (~me@213-205-209-87.ftth.glasoperator.nl) (Ping timeout: 248 seconds) |
| 12:52:19 | × | tv quits (~tv@user/tv) (Read error: Connection reset by peer) |
| 12:52:52 | × | ubert quits (~Thunderbi@178.165.184.116.wireless.dyn.drei.com) (Remote host closed the connection) |
| 12:53:10 | → | ubert joins (~Thunderbi@178.165.184.116.wireless.dyn.drei.com) |
| 13:02:13 | → | kannon joins (~NK@135-180-47-54.fiber.dynamic.sonic.net) |
| 13:03:31 | × | hippoid quits (~idris@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 248 seconds) |
| 13:03:47 | <seydar> | alright, back again with my socket writing issues. https://paste.tomsmeding.com/VHZFcldy |
| 13:04:20 | <seydar> | I've got a ruby server and a haskell client, and while I can get haskell to write and ruby to read, I can't get them to do *both* |
| 13:04:58 | × | ec quits (~ec@gateway/tor-sasl/ec) (Quit: ec) |
| 13:05:40 | <seydar> | everything just hangs until I ^C one of the programs, and then they execute the rest of their code. |
| 13:06:10 | → | vysn joins (~vysn@user/vysn) |
| 13:06:47 | × | kannon quits (~NK@135-180-47-54.fiber.dynamic.sonic.net) (Ping timeout: 255 seconds) |
| 13:06:56 | <tdammers> | you mean you want the same program to read and write in parallel? |
| 13:07:09 | <tdammers> | (or, well, concurrently) |
| 13:07:15 | → | nilradical joins (~nilradica@user/naso) |
| 13:08:32 | → | jero98772 joins (~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) |
| 13:08:46 | <seydar> | It's like it's blocking on the ruby side on #read |
| 13:09:18 | <seydar> | tdammers: yeah, I feel like I'm being dumb about it... break it to me hard |
| 13:10:02 | → | tv joins (~tv@user/tv) |
| 13:10:03 | <seydar> | After `sendAll` from Haskell, Ruby hangs. I think it wants to see the socket closed, because that's how pipes work (I think) |
| 13:10:34 | <seydar> | so really my question is: how do I stream data |
| 13:10:51 | <seydar> | and the answer is probably read in chunks as opposed to simply #read, which is prolly reading until EOF |
| 13:11:16 | <seydar> | I'd like to thank everyone for rubber ducking this with me, I will think fondly of you all |
| 13:11:36 | → | coot joins (~coot@213.134.176.158) |
| 13:12:02 | <merijn> | seydar: It might just be stuck in buffers |
| 13:12:11 | <tdammers> | right, so here's somethign you need to know about sockets, and file descriptors in general: most reads and writes are *blocking* |
| 13:13:22 | <seydar> | tdammers: yeah, great point. I guess I sorta assumed that after haskell does sendAll that it'd send an EOF but keep the socket open for reading after that |
| 13:13:34 | <seydar> | I guess I have to write that functionality myself |
| 13:13:50 | <tdammers> | maybe; or you could use a library that takes care of it for you |
| 13:13:54 | <merijn> | The blocking seems fairly irrelevant here (unless ruby's read tries to read until EOF), the fact that both sender/receiver will buffer data is probably more relevant |
| 13:13:59 | <tdammers> | I like zeromq |
| 13:14:44 | <merijn> | zeromq is...considerably more complex thatn it at first appears :p |
| 13:14:52 | <tdammers> | it is |
| 13:14:55 | <tdammers> | but so are sockets |
| 13:15:21 | <merijn> | Sure :p |
| 13:16:28 | <seydar> | ugh. so if I'm reading 1024 bytes from a socket, it's going to block until it receives 1024 bytes or EOF |
| 13:17:06 | <seydar> | sockets are canceled. no one is allowed to use them anymore |
| 13:17:26 | <[exa]> | seydar: if that's a "normal" socket it should not be the case, they return whatever finished packets right away |
| 13:17:28 | <merijn> | seydar: Correct :p |
| 13:17:41 | <merijn> | seydar: you'll want to do a non-blocking read :p |
| 13:17:44 | × | luffy quits (~chenqisu1@183.217.201.23) (Ping timeout: 256 seconds) |
| 13:18:29 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
| 13:19:15 | <kritzefitz> | seydar: I'm with [exa] on this one. If it's actually a socket, it should only block until at least one byte has been received, not considerably longer. |
| 13:20:09 | <merijn> | kritzefitz: No |
| 13:20:17 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 13:20:24 | <merijn> | kritzefitz: TCP sockets with explicit request sizes normally block until that many bytes are received |
| 13:21:15 | <merijn> | Or, well, it depends on sockoptions |
| 13:23:11 | <merijn> | And language wrappers, actually, scratch that, lemme just go with "It Depends (TM)" |
| 13:24:35 | <seydar> | I'm using local unix sockets to write to memory between programs in different languages |
| 13:24:37 | × | nilradical quits (~nilradica@user/naso) (Remote host closed the connection) |
| 13:25:13 | <merijn> | seydar: I would probably just use pipes for that where possible |
| 13:25:39 | → | nilradical joins (~nilradica@user/naso) |
| 13:25:40 | <merijn> | But that's mostly when there is one parent program that spawns and talks to children |
| 13:25:41 | × | Everything quits (~Everythin@37.115.210.35) (Quit: leaving) |
| 13:28:35 | × | mmhat quits (~mmh@p200300f1c732d60cee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 248 seconds) |
| 13:29:50 | <seydar> | merijn: given that the server is in ruby and the client is in haskell, I'm not sure pipes are usable here — please correct me if I'm wrong |
| 13:30:12 | × | nilradical quits (~nilradica@user/naso) (Ping timeout: 256 seconds) |
| 13:30:13 | × | tv quits (~tv@user/tv) (Read error: Connection reset by peer) |
| 13:31:02 | <janus> | seydar: you can use wireshark to see whether the data is on the socket |
| 13:31:16 | <janus> | seydar: with socat you can pipe the unix socket to tcp and then back |
| 13:31:33 | <janus> | (so you don't need to adjust the code) |
| 13:33:35 | → | alp_ joins (~alp@user/alp) |
| 13:33:39 | → | nilradical joins (~nilradica@user/naso) |
| 13:34:49 | <merijn> | seydar: Why wouldn't they be? |
| 13:34:58 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 13:35:31 | <merijn> | seydar: The real issue is that it mostly only makes sense if one process is spawned by the others (so probably not here), but the languages are mostly irrelevant |
| 13:35:53 | <seydar> | merijn: right, that's the thing: one process isn't spawning the other |
| 13:36:11 | → | pagnol joins (~me@dhcp-077-248-010-137.chello.nl) |
| 13:36:49 | <seydar> | actually technically they *could* be, I could just do a proper fork-exec |
| 13:37:06 | <seydar> | connect STDIN and STDOUT |
| 13:37:28 | <seydar> | though now I have the question of having *multiple* input pipes and *multiple* output pipes (just out of curiosity) |
| 13:37:28 | <geekosaur> | there are named pipes |
| 13:37:56 | × | eod|fserucas quits (~eod|fseru@46.50.4.9) (Quit: Leaving) |
| 13:38:15 | → | eod|fserucas joins (~eod|fseru@46.50.4.9) |
| 13:38:32 | × | eod|fserucas quits (~eod|fseru@46.50.4.9) (Client Quit) |
| 13:39:01 | → | fserucas|eod joins (~fserucas|@46.50.4.9) |
| 13:40:23 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 13:41:47 | × | dsrt^ quits (~dsrt@50.231.67.43) (Ping timeout: 252 seconds) |
| 13:43:13 | <merijn> | seydar: so, on posix platforms (i.e. all but windows) you can send file descriptors over pipes |
| 13:43:25 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 13:43:37 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 13:44:12 | <merijn> | seydar: Also, time to go on my usual rant that "proper" fork-exec is impossible for mere mortals, you want posix_spawn (or, specifically in Haskell: the process package) |
| 13:44:58 | → | zer0bitz joins (~zer0bitz@2001:2003:f748:2000:7d8c:cb4c:6f2b:60ad) |
| 13:45:20 | × | sudden quits (~cat@user/sudden) (Read error: Connection reset by peer) |
| 13:46:22 | → | mmhat joins (~mmh@p200300f1c70a1294ee086bfffe095315.dip0.t-ipconnect.de) |
| 13:46:39 | <kritzefitz> | seydar: You don't even need named pipes or STDIN/STDOUT. There's a function "pipe()" that creates two brand new file descriptors connected by a pipe. But I'm not sure how if there's a wrapper in Haskell. |
| 13:46:47 | <kritzefitz> | There probably is in the unix package. |
| 13:46:56 | <ski> | (couldn't one use multiple unnamed pipes ?) |
| 13:47:00 | ← | janus parts (janus@anubis.0x90.dk) () |
| 13:47:32 | <geekosaur> | https://downloads.haskell.org/ghc/9.2.3/docs/html/libraries/unix-2.7.2.2/System-Posix-IO.html#v:createPipe |
| 13:47:48 | → | tv joins (~tv@user/tv) |
| 13:48:19 | <seydar> | I'm also terrified of letting other random processes write to a named pipe. Standard permissions don't feel safe enough |
| 13:48:24 | × | cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.6) |
| 13:48:37 | <merijn> | I wouldn't manually create pipes, though. telling process to make them for you is simpler |
| 13:48:45 | <geekosaur> | AF_UNIX sockets have the same problem |
| 13:48:58 | <geekosaur> | anyone could connect to them if they know the name |
| 13:49:11 | <geekosaur> | and of course AF_INET is worse |
| 13:49:41 | <merijn> | I actually have code that spawns a python process and uses pipes to communicate (since I need multiple parallel communication channels instead of just stdin/stdout) |
| 13:49:48 | <ski> | i wonder what the "May throw an exception if this is an invalid descriptor." on `createPipe' is for |
| 13:49:51 | <merijn> | but looking at the code I'm not sure it's actually helpful |
| 13:50:05 | <merijn> | Since I can only half follow it :p |
| 13:56:07 | × | gurkenglas quits (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
| 14:00:43 | <seydar> | hm you're right. now i need to reimplement authorization over unix sockets |
| 14:00:54 | <seydar> | OAuth over RabbitMQ |
| 14:01:21 | <seydar> | that seems like the right and simple answer for passing calculations back and forth between ruby and haskell |
| 14:01:56 | <seydar> | I need MFA and OAuth over RabbitMQ (google sign-in optional) |
| 14:02:20 | <seydar> | every time you run a program, you get signed up for a mailing list |
| 14:02:57 | <seydar> | phone number required so that I can text you about new releases (unsubscribing will be disallowed for security reasons) |
| 14:03:04 | × | Digit quits (~user@user/digit) (Read error: Connection reset by peer) |
| 14:03:43 | <seydar> | this will take some server space to make, so all local computations will be done on your machine but ferried over to my servers on AWS so I can implement the authorization scheme |
| 14:04:09 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 14:04:27 | <seydar> | to pay for this, every 64KB of data will have 24KB of ads thrown in |
| 14:12:40 | → | phma_ joins (phma@2001:5b0:2172:b518:6336:2e81:da5f:9132) |
| 14:12:43 | → | waldo joins (~waldo@user/waldo) |
| 14:15:02 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:964d:e751:66f2:8202) (Quit: WeeChat 2.8) |
| 14:16:29 | → | zmt01 joins (~zmt00@user/zmt00) |
| 14:17:05 | × | phma quits (~phma@host-67-44-208-110.hnremote.net) (Ping timeout: 268 seconds) |
| 14:19:41 | × | zmt00 quits (~zmt00@user/zmt00) (Ping timeout: 244 seconds) |
| 14:21:06 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 14:21:34 | <seydar> | great news: only one process can bind to a socket at a time, so I don't think I have to worry about security concerns of having a socket be filesystem-accessible |
| 14:23:46 | → | causal joins (~user@50.35.83.177) |
| 14:28:56 | × | seydar quits (~seydar@154-27-113-252.starry-inc.net) (Quit: leaving) |
| 14:35:16 | <tdammers> | sounds like a recipe for GDPR "challenges" |
| 14:36:28 | <merijn> | tdammers: Good, I like sending GDPR requests to companies mailing me when I'm bored :p |
| 14:38:35 | ← | moats parts (~oats@user/oats) () |
| 14:40:21 | <tdammers> | I should pick up that hobby too |
| 14:41:29 | × | causal quits (~user@50.35.83.177) (Quit: WeeChat 3.6) |
| 14:43:35 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 14:45:32 | <raehik> | Any chance there's an efficient way to turn a KnownSymbol into a UTF-8 ByteString (or a ByteArray or something) without going through String? |
| 14:45:48 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 14:47:09 | <geekosaur> | I would expect it's stored in the packed internal format, but accessing that probably requires going through something in GHC.* |
| 14:47:50 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
| 14:50:44 | <geekosaur> | (GHC.Pack and it's already a ByteArray#; sadly you probably have to inspect the generated code to see how to use it, or ask in #ghc) |
| 14:50:47 | <raehik> | GHC.TypeLits only provides a String reify-er (reifier?) and a type-level UnconsSymbol |
| 14:51:14 | <raehik> | Oh thanks for that module name. I couldn't find what I was looking for in a quick text search of GHC |
| 14:55:37 | <geekosaur> | yeh, I don't see any way to access the packed version that ghc emits, all that code is hidden at the haskell level |
| 14:55:40 | → | shriekingnoise joins (~shrieking@186.137.167.202) |
| 14:56:54 | <raehik> | I'm not surprised, but I held on to a glimmer of hope that someone would have written some crazy code for bytestring efficiency which I could use :) |
| 14:57:10 | <geekosaur> | sounds like something edwardk would do 🙂 |
| 14:57:35 | → | kenran joins (~kenran@200116b82b14700069ade1b6a635395b.dip.versatel-1u1.de) |
| 14:58:10 | <geekosaur> | also I'm not saying it's impossible, since ghc evidently emits code that does it; you just have to figure out how to generate the same code from haskell |
| 14:58:43 | <c_wraith> | I recently discovered template haskell gives you tools to work with the same mechanism that it uses to compile strings - you can embed an arbitrary chunk of binary data into a progam at compilation time. |
| 14:59:07 | × | kenran quits (~kenran@200116b82b14700069ade1b6a635395b.dip.versatel-1u1.de) (Client Quit) |
| 14:59:12 | <c_wraith> | But I don't think you can go the opposite direction, looking up the pointer to a chunk of binary data. |
| 14:59:14 | <geekosaur> | sure, that's how file-embedding qqs work too |
| 15:00:13 | <c_wraith> | Unless maybe you can inspect the closure of the thunk that represents a string literal |
| 15:00:29 | <c_wraith> | There are tools for that, but I wouldn't want to rely on them always being right |
| 15:00:56 | <geekosaur> | that's more or less what I was suggesting, since it's doing the same thing |
| 15:01:06 | <c_wraith> | like, if anything has forced the full string already, there might not be any references left |
| 15:02:43 | <geekosaur> | also I think there's a proposal to allow direct access to the packed string for e.g. Text (especially with text 2.0 where it should be very close to the same rep) |
| 15:03:27 | <c_wraith> | that seems like it'd be part of IsString, instead of something more general |
| 15:03:31 | <raehik> | I could do some really silly stuff like Symbol -> [Char], each Char -> Nat, but then for UTF-8 I need to implement the algorithm going from code point to bytes |
| 15:04:35 | <raehik> | and it feels like a waste when I bet they store stuff in UTF-8 internally anyway |
| 15:04:48 | <geekosaur> | they do |
| 15:06:22 | × | nilradical quits (~nilradica@user/naso) () |
| 15:09:06 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
| 15:09:45 | × | jmorris quits (uid537181@id-537181.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
| 15:09:47 | × | pagnol quits (~me@dhcp-077-248-010-137.chello.nl) (Ping timeout: 252 seconds) |
| 15:10:16 | → | gurkenglas joins (~gurkengla@p548ac72e.dip0.t-ipconnect.de) |
| 15:10:42 | × | Me-me quits (~Me-me@user/me-me) (Quit: Going offline, see ya! (www.adiirc.com)) |
| 15:10:58 | <merijn> | geekosaur: They do? I'm pretty sure GHC used some other encoding internally |
| 15:11:14 | <merijn> | some iso something or other |
| 15:11:36 | <raehik> | geekosaur: I think I foud the proposal (#154 on ghc-proposals), good read. Thanks again |
| 15:14:32 | → | mikoto-chan joins (~mikoto-ch@164.5.249.78) |
| 15:16:23 | × | vysn quits (~vysn@user/vysn) (Ping timeout: 255 seconds) |
| 15:20:08 | × | Maxdamantus quits (~Maxdamant@user/maxdamantus) (Ping timeout: 244 seconds) |
| 15:24:51 | × | CiaoSen quits (~Jura@p200300c95738a5002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 248 seconds) |
| 15:27:03 | <geekosaur> | merijn, but I can write a literal string containing characters not in an ISO charset, so I think it has to handle Unicode codepoints somehow |
| 15:27:29 | <geekosaur> | > text "☺" |
| 15:27:31 | <lambdabot> | ☺ |
| 15:28:30 | <geekosaur> | it might be a variant utf8 with a nonstandard encoding for \NUL |
| 15:29:37 | × | tv quits (~tv@user/tv) (Read error: Connection reset by peer) |
| 15:30:16 | → | Maxdamantus joins (~Maxdamant@user/maxdamantus) |
| 15:35:27 | → | PiDelport joins (uid25146@id-25146.lymington.irccloud.com) |
| 15:37:45 | → | Pickchea joins (~private@user/pickchea) |
| 15:40:01 | <PiDelport> | Are there any https://wiki.haskell.org/ admins around, or where can I get in contact with one, regarding an account issue? |
| 15:40:36 | <geekosaur> | if you can't find one here, try #haskell-infrastructure |
| 15:41:34 | <PiDelport> | Ah, thanks! |
| 15:41:40 | <tomsmeding> | % :set -XMagicHash -XBangPatterns -XUnboxedTuples |
| 15:41:40 | <yahb2> | <no output> |
| 15:41:46 | <tomsmeding> | % :m +GHC.Exts GHC.IO GHC.Word |
| 15:41:46 | <yahb2> | <no output> |
| 15:41:52 | <tomsmeding> | % IO (\s -> let !(# s', w #) = readWord8OffAddr# "\NULhoi"# 0# s in (# s', W8# w #)) |
| 15:41:52 | <yahb2> | 0 |
| 15:41:55 | <int-e> | geekosaur: right: -- NB. '\0' is encoded as '\xC0\x80', not '\0'. This is so that we can have 0-terminated UTF-8 strings |
| 15:42:00 | <tomsmeding> | geekosaur: no special encoding for nulls :p |
| 15:42:04 | <tomsmeding> | oh |
| 15:42:51 | <tomsmeding> | % IO (\s -> let !(# s', w #) = readWord8OffAddr# "\NULhoi"# 1# s in (# s', W8# w #)) |
| 15:42:51 | <yahb2> | 104 |
| 15:42:57 | <tomsmeding> | % Data.Char.ord 'h' |
| 15:42:57 | <yahb2> | 104 |
| 15:44:24 | <tomsmeding> | yahb2 is really a missed opportunity, should've been yayahb |
| 15:44:27 | <int-e> | % import GHC.Base |
| 15:44:27 | <yahb2> | <no output> |
| 15:44:30 | <int-e> | % unpackCString# "\NUL123"# |
| 15:44:30 | <yahb2> | "" |
| 15:44:42 | <int-e> | % unpackCString# "\xC0\x80123"# |
| 15:44:42 | <yahb2> | <interactive>:58:16: error: ; primitive string literal must contain only characters <= '\xFF' |
| 15:44:49 | <tomsmeding> | interesting |
| 15:45:03 | <geekosaur> | need a \& |
| 15:45:04 | <int-e> | % unpackCString# "\xC0\x80abc"# |
| 15:45:04 | <yahb2> | <interactive>:60:16: error: ; primitive string literal must contain only characters <= '\xFF' |
| 15:45:07 | <int-e> | errr |
| 15:45:11 | <int-e> | % unpackCString# "\xC0\x80___"# |
| 15:45:11 | <yahb2> | "\192\128___" |
| 15:45:20 | <int-e> | % unpackCStringUtf8# "\xC0\x80___"# |
| 15:45:20 | <yahb2> | "\NUL___" |
| 15:45:30 | <int-e> | Sorry, should've tested offline. |
| 15:46:51 | → | tv joins (~tv@user/tv) |
| 15:46:57 | <int-e> | Hmm, what is the proper way to have an escaped hex character followed by a digit in a String literal? |
| 15:47:22 | → | jpolchlo joins (~jpolchlo@pool-100-34-178-81.phlapa.fios.verizon.net) |
| 15:47:23 | <geekosaur> | \& |
| 15:47:31 | <int-e> | thanks |
| 15:47:35 | <geekosaur> | > "\xC0\x80\&123" |
| 15:47:36 | <lambdabot> | "\192\128\&123" |
| 15:47:41 | <geekosaur> | > "\xC0\x80\&123"# |
| 15:47:43 | <lambdabot> | error: |
| 15:47:43 | <lambdabot> | • Couldn't match a lifted type with an unlifted type |
| 15:47:43 | <lambdabot> | When matching types |
| 15:47:50 | <tomsmeding> | interesting error |
| 15:47:51 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 15:48:09 | <tomsmeding> | ah it's just showing |
| 15:48:15 | <geekosaur> | right |
| 15:48:19 | <jpolchlo> | Hi! Just ran into a bug (https://bugs.gentoo.org/862492) with installing dev-haskell/pantry. Wondering about suggestions for getting around this, given that there are no alternate releases to try in the portage tree. Am I stuck until the new version is released? |
| 15:48:29 | <tomsmeding> | :t "\xC0\x80\&123"# -- geekosaur |
| 15:48:30 | <lambdabot> | GHC.Prim.Addr# |
| 15:50:01 | × | Allio84 quits (~Android@79-74-233-27.dynamic.dsl.as9105.com) (Quit: -a- Connection Timed Out) |
| 15:51:57 | phma_ | is now known as phma |
| 15:53:07 | × | MajorBiscuit quits (~MajorBisc@c-001-001-040.client.tudelft.eduvpn.nl) (Ping timeout: 248 seconds) |
| 15:55:02 | → | Allio84 joins (~Android@79-74-233-27.dynamic.dsl.as9105.com) |
| 15:55:16 | → | MajorBiscuit joins (~MajorBisc@46-229-126.internethome.cytanet.com.cy) |
| 15:55:18 | <geekosaur> | jpolchlo, a new version of cabal was just released, I presume you'll have to wait for other things to catch up with it if portage has already been updated |
| 15:55:21 | <Cale> | jpolchlo: Might depend on what you need it for. If you need the portage version to work, maybe not, but for general Haskell development, I'd almost never recommend using your system package manager anyway. (Unless perhaps it also happened to be nix.) You could just try getting cabal to build the hackage version of pantry perhaps. |
| 15:56:44 | → | yvan-sraka joins (~yvan-srak@57.red-81-44-3.dynamicip.rima-tde.net) |
| 15:57:10 | <Cale> | It looks as if perhaps some version bounds which needed to be present are not? |
| 15:58:59 | × | vglfr quits (~vglfr@145.224.94.75) (Ping timeout: 248 seconds) |
| 16:00:56 | × | mikoto-chan quits (~mikoto-ch@164.5.249.78) (Ping timeout: 256 seconds) |
| 16:02:27 | × | yvan-sraka quits (~yvan-srak@57.red-81-44-3.dynamicip.rima-tde.net) (Remote host closed the connection) |
| 16:03:13 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 16:05:02 | → | mikoto-chan joins (~mikoto-ch@164.5.249.78) |
| 16:05:23 | <albet70> | https://twitter.com/andrewdgordon/status/1559448300134211584?s=21&t=NsHKF0JZLwaeHeyYgxvrlw |
| 16:05:50 | <albet70> | >>= has been 30 years! |
| 16:06:58 | → | jonathanx joins (~jonathan@c-5eea764a-74736162.cust.telenor.se) |
| 16:07:24 | <albet70> | but that IO as Monad isn't near 2000? |
| 16:07:53 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 16:08:18 | × | jonathanx_ quits (~jonathan@h-98-128-168-222.NA.cust.bahnhof.se) (Ping timeout: 256 seconds) |
| 16:08:36 | × | szkl quits (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
| 16:09:40 | × | BusConscious quits (~martin@ip5f5bdd28.dynamic.kabel-deutschland.de) (Quit: leaving) |
| 16:12:07 | × | jonathanx quits (~jonathan@c-5eea764a-74736162.cust.telenor.se) (Read error: Connection reset by peer) |
| 16:21:46 | <albet70> | https://stackoverflow.com/questions/17002119/haskell-pre-monadic-i-o |
| 16:22:05 | <albet70> | when was this pre-monadic IO? |
| 16:22:09 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 16:22:23 | × | MajorBiscuit quits (~MajorBisc@46-229-126.internethome.cytanet.com.cy) (Ping timeout: 252 seconds) |
| 16:23:17 | × | zeenk quits (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) (Quit: Konversation terminated!) |
| 16:28:42 | × | merijn quits (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds) |
| 16:29:05 | → | yvan-sraka joins (~yvan-srak@57.red-81-44-3.dynamicip.rima-tde.net) |
| 16:29:10 | <geekosaur> | https://serokell.io/blog/haskell-history says Haskell 1.3 introduced monadic I/O in 1996 |
| 16:29:48 | <geekosaur> | which is why that other page referred people to the 1.2 report for a description of pre-monadic I/O |
| 16:30:07 | × | yvan-sraka quits (~yvan-srak@57.red-81-44-3.dynamicip.rima-tde.net) (Remote host closed the connection) |
| 16:30:42 | <geekosaur> | one assumes the actual introduction of monadic I/O predated the Report specifying it, so 1992 is quite possible |
| 16:31:34 | × | Pickchea quits (~private@user/pickchea) (Quit: Leaving) |
| 16:32:27 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 16:33:13 | <geekosaur> | I've heard fairly unpleasant things about pre-monadic I/O, like deadlocks if your Requests and Responses get out of sync |
| 16:33:15 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 16:35:05 | → | lyle joins (~lyle@24.244.29.77) |
| 16:35:10 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 16:35:40 | × | kuribas quits (~user@ptr-17d51eoyn5ldy9jvjfj.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3)) |
| 16:40:04 | <dolio> | There were continuation based interfaces that made it harder to get things wrong. |
| 16:40:13 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 16:40:27 | <dolio> | Which are roughly the same as using a monad. |
| 16:41:07 | <ski> | Cont ([Reponse] -> [Request]) |
| 16:41:58 | → | yvan-sraka joins (~yvan-srak@57.red-81-44-3.dynamicip.rima-tde.net) |
| 16:45:40 | × | yvan-sraka quits (~yvan-srak@57.red-81-44-3.dynamicip.rima-tde.net) (Remote host closed the connection) |
| 16:46:51 | <albet70> | so before IO Monad, main use cps computation? |
| 16:47:29 | <ski> | iirc, `main' was still `Dialogue' ? |
| 16:47:31 | <dolio> | Much less convenient, though. You have to specify what happens for errors on every operation. They don't seem to have come up with the equivalent of (>>=). |
| 16:51:43 | × | benin0 quits (~benin@183.82.178.82) (Quit: The Lounge - https://thelounge.chat) |
| 16:55:24 | → | merijn joins (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) |
| 16:57:16 | × | chele quits (~chele@user/chele) (Quit: Leaving) |
| 16:57:16 | × | alp_ quits (~alp@user/alp) (Read error: Connection reset by peer) |
| 16:57:30 | → | king_gs joins (~Thunderbi@2806:103e:29:da7a:1f74:531c:dec2:7aec) |
| 16:57:46 | → | alp_ joins (~alp@user/alp) |
| 16:58:19 | × | ubert quits (~Thunderbi@178.165.184.116.wireless.dyn.drei.com) (Ping timeout: 252 seconds) |
| 16:59:16 | → | cynomys joins (~cynomys@user/cynomys) |
| 16:59:31 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 16:59:42 | <albet70> | ski , Cont (...) where is a? |
| 17:00:01 | <albet70> | Cont r a = (a->r)->r |
| 17:02:31 | → | kannon joins (~NK@135-180-47-54.fiber.dynamic.sonic.net) |
| 17:03:14 | <ski> | @let type Dialogue = [Response] -> [Request] |
| 17:03:15 | <lambdabot> | Defined. |
| 17:03:22 | <ski> | @kind Cont Dialogue |
| 17:03:23 | <lambdabot> | * -> * |
| 17:03:31 | × | lyle quits (~lyle@24.244.29.77) (Ping timeout: 248 seconds) |
| 17:03:36 | <ski> | @unmtl Cont ([Reponse] -> [Request]) a |
| 17:03:36 | <lambdabot> | (a -> [Reponse] -> [Request]) -> [Reponse] -> [Request] |
| 17:05:17 | × | waldo quits (~waldo@user/waldo) (Ping timeout: 252 seconds) |
| 17:06:49 | × | jpolchlo quits (~jpolchlo@pool-100-34-178-81.phlapa.fios.verizon.net) (Quit: Client closed) |
| 17:06:57 | × | mmhat quits (~mmh@p200300f1c70a1294ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.6) |
| 17:07:14 | × | kannon quits (~NK@135-180-47-54.fiber.dynamic.sonic.net) (Ping timeout: 256 seconds) |
| 17:08:59 | → | jmdaemon joins (~jmdaemon@user/jmdaemon) |
| 17:09:07 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 17:10:26 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 17:14:44 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
| 17:16:01 | → | matthews joins (~matthews@gentoo/developer/matthew) |
| 17:16:12 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 17:18:19 | → | Tuplanolla joins (~Tuplanoll@91-159-69-12.elisa-laajakaista.fi) |
| 17:18:33 | → | gmg joins (~user@user/gehmehgeh) |
| 17:24:26 | → | vglfr joins (~vglfr@145.224.94.221) |
| 17:25:57 | <Bulby[m]> | i defined `fromJSONKey` for a non generic item however it's complaining about `fromJSONKeyList` even tho it should be supported |
| 17:26:24 | <Bulby[m]> | https://hackage.haskell.org/package/aeson-2.1.0.0/docs/Data-Aeson.html#v:fromJSONKeyList "end users should always be able to use default implementation of this method" |
| 17:28:01 | × | Maxdamantus quits (~Maxdamant@user/maxdamantus) (Ping timeout: 252 seconds) |
| 17:28:49 | → | vysn joins (~vysn@user/vysn) |
| 17:28:54 | × | king_gs quits (~Thunderbi@2806:103e:29:da7a:1f74:531c:dec2:7aec) (Remote host closed the connection) |
| 17:29:12 | → | king_gs joins (~Thunderbi@2806:103e:29:da7a:1f74:531c:dec2:7aec) |
| 17:31:02 | × | merijn quits (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds) |
| 17:31:34 | → | AlexNoo_ joins (~AlexNoo@94.233.241.197) |
| 17:32:16 | × | king_gs quits (~Thunderbi@2806:103e:29:da7a:1f74:531c:dec2:7aec) (Client Quit) |
| 17:32:31 | → | king_gs joins (~Thunderbi@187.201.216.244) |
| 17:34:25 | × | AlexZenon quits (~alzenon@178.34.151.166) (Ping timeout: 268 seconds) |
| 17:34:59 | × | AlexNoo quits (~AlexNoo@178.34.151.166) (Ping timeout: 252 seconds) |
| 17:35:24 | → | econo joins (uid147250@user/econo) |
| 17:35:41 | × | Alex_test quits (~al_test@178.34.151.166) (Ping timeout: 268 seconds) |
| 17:37:06 | → | waldo joins (~waldo@user/waldo) |
| 17:37:46 | → | AlexZenon joins (~alzenon@94.233.241.197) |
| 17:38:49 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds) |
| 17:39:33 | → | Alex_test joins (~al_test@94.233.241.197) |
| 17:39:36 | AlexNoo_ | is now known as AlexNoo |
| 17:40:10 | × | king_gs quits (~Thunderbi@187.201.216.244) (Quit: king_gs) |
| 17:40:52 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 17:41:28 | → | biberu joins (~biberu@user/biberu) |
| 17:43:52 | → | king_gs joins (~Thunderbi@2806:103e:29:da7a:9512:8995:6da1:2a51) |
| 17:48:50 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 17:50:17 | × | fiddlerwoaroof quits (~fiddlerwo@user/fiddlerwoaroof) (Ping timeout: 255 seconds) |
| 17:50:56 | → | Maxdamantus joins (~Maxdamant@user/maxdamantus) |
| 17:51:29 | × | waldo quits (~waldo@user/waldo) (Quit: quit) |
| 17:52:32 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 17:53:11 | × | Guest8522 quits (~david@2a01:4b00:f42b:3d00:71c6:f067:39da:6e70) (Quit: Leaving) |
| 17:53:32 | × | coot quits (~coot@213.134.176.158) (Ping timeout: 268 seconds) |
| 17:54:23 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 17:57:41 | × | vysn quits (~vysn@user/vysn) (Ping timeout: 256 seconds) |
| 17:58:07 | → | fiddlerwoaroof joins (~fiddlerwo@user/fiddlerwoaroof) |
| 18:02:36 | → | __monty__ joins (~toonn@user/toonn) |
| 18:03:37 | → | dsrt^ joins (~dsrt@50.231.67.43) |
| 18:10:20 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 18:11:57 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 18:13:31 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 18:14:27 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 248 seconds) |
| 18:14:46 | Lord_of_Life_ | is now known as Lord_of_Life |
| 18:14:46 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 18:17:29 | × | king_gs quits (~Thunderbi@2806:103e:29:da7a:9512:8995:6da1:2a51) (Quit: king_gs) |
| 18:17:33 | → | lyle joins (~lyle@24.244.29.158) |
| 18:17:43 | → | king_gs joins (~Thunderbi@2806:103e:29:da7a:8e16:45ff:feeb:cfcf) |
| 18:20:27 | × | dwt_ quits (~dwt_@c-98-198-103-176.hsd1.tx.comcast.net) (Ping timeout: 252 seconds) |
| 18:25:01 | × | mbuf quits (~Shakthi@122.165.55.71) (Quit: Leaving) |
| 18:32:38 | × | srk quits (~sorki@user/srk) (Ping timeout: 240 seconds) |
| 18:33:13 | → | srk joins (~sorki@user/srk) |
| 18:33:39 | × | dsrt^ quits (~dsrt@50.231.67.43) (Ping timeout: 248 seconds) |
| 18:34:55 | <zzz> | why is cli rendering so slow compared to gui rendering? is it *all* because of gpu optimization? |
| 18:35:20 | <monochrom> | Hrm need a TPU don't we? :) |
| 18:35:36 | <monochrom> | But I don't find CLI rendering slow. |
| 18:35:46 | <__monty__> | zzz: Kind of, check out the terminal emulators that rely on GPU, Kitty, Alacritty, probably others. |
| 18:36:13 | × | mikoto-chan quits (~mikoto-ch@164.5.249.78) (Ping timeout: 256 seconds) |
| 18:36:31 | <[exa]> | zzz: quite often it is because of a slow terminal implementation |
| 18:37:30 | <monochrom> | I do agree that in practice the escape codes are quite bulky to transmit for so little information, and many terminal emulators are inefficient. |
| 18:38:08 | <monochrom> | No one makes money off optimizing those or introducing TPU hardware. |
| 18:39:39 | <monochrom> | And given this is #haskell, you can also refine the question to: why is CLI rendering in Haskell so slow? Is it because Haskell? >:) |
| 18:41:42 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
| 18:41:55 | <zzz> | i'm building a simple 2d game just for fun and learning, and been experimenting with different rendering options for the UI. i'm purposefully using a slow machine for making performance hits that much obvious. text interfaces are no competition for graphical ones. simulating a text interface in openGL is faster than just output to terminal. what are some good GPU terminal emulators for 32bit linux? |
| 18:42:07 | <zzz> | monochrom: well... is it because of haskell? :p |
| 18:42:30 | → | pavonia joins (~user@user/siracusa) |
| 18:42:34 | <zzz> | i did try vty and brick |
| 18:42:52 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 18:43:00 | × | alp_ quits (~alp@user/alp) (Ping timeout: 256 seconds) |
| 18:43:11 | × | kilolympus quits (~kilolympu@90.206.106.191) (Ping timeout: 252 seconds) |
| 18:43:16 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 18:43:19 | <zzz> | rendering vectors with gloss is much more performant |
| 18:43:38 | <zzz> | which is counter-intuitive for me |
| 18:46:49 | <geekosaur> | terminals are inherently slow, even when emulated. there are terminal emulators which use hardware accel (notably alacritty) but they don't help much |
| 18:46:58 | <geekosaur> | and kitty |
| 18:47:17 | <dsal> | There are also terminal emulators that will emulate slow modems. If you work on your GUI at like, 1200bps or so, it'll be fast. |
| 18:48:06 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 256 seconds) |
| 18:50:04 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 18:50:06 | → | kilolympus joins (~kilolympu@90.206.106.191) |
| 18:55:17 | × | kilolympus quits (~kilolympu@90.206.106.191) (Ping timeout: 252 seconds) |
| 18:55:54 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds) |
| 18:57:45 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 18:58:07 | Kaipei | is now known as Kaiepi |
| 18:58:46 | → | kilolympus joins (~kilolympu@90.206.106.191) |
| 19:00:06 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 19:03:52 | <zzz> | so in conclusion for performance we're definetly better served with graphics |
| 19:04:10 | × | chexum_ quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
| 19:04:33 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 19:05:34 | leah_ | is now known as thatcher |
| 19:06:07 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 19:06:12 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
| 19:06:25 | <dsal> | I guess it depends on what you're doing. I've done pretty well visualizing stuff with ansi bits before. Seemed fast enough. |
| 19:06:31 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 19:06:41 | <Franciman> | hello, is there any tutorial for FRP graphics in haskell for young people? |
| 19:08:10 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 19:09:15 | → | alphabeta joins (~kilolympu@90.206.106.191) |
| 19:09:38 | × | kilolympus quits (~kilolympu@90.206.106.191) (Ping timeout: 256 seconds) |
| 19:10:24 | <dsal> | zzz: At some point, you make the font so small that characters just turn into pixels, though: https://www.youtube.com/watch?v=R04l7DfyMq4 |
| 19:11:05 | <dsal> | But you get really efficient transfer and storage. I artificially slowed this one down so you could see it happen: https://asciinema.org/a/288367 |
| 19:11:08 | <monochrom> | The Planck font size >:) |
| 19:11:30 | <dolio> | How are you emulating the text interface in opengl? It probably wouldn't be surprising if it's doing something more efficient than certain ways of using a terminal. |
| 19:15:17 | <dolio> | Like, if you cat a large file, most terminals will draw the whole file. It'll happen quickly, but it'd be much quicker to only draw however much of the end of the file will appear on screen, and allow you to scroll back. |
| 19:16:08 | <dolio> | So, if your opengl is inherently buffering what it actually renders, and the TUI is not, the former is going to be faster. |
| 19:16:15 | → | Sciencentistguy6 joins (~sciencent@hacksoc/ordinary-member) |
| 19:16:39 | <dsal> | We need mosh, but for local terminals. |
| 19:17:37 | → | alp_ joins (~alp@user/alp) |
| 19:18:00 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 19:18:03 | <zzz> | dsal: oh man now you got me all excited about aoc. only 15 weeks to go |
| 19:18:08 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 19:18:40 | × | Sciencentistguy quits (~sciencent@hacksoc/ordinary-member) (Ping timeout: 268 seconds) |
| 19:18:40 | Sciencentistguy6 | is now known as Sciencentistguy |
| 19:19:38 | <zzz> | dolio: i drew circles instead of characters, but i'm getting the feeling that even if use bmps it'll be faster |
| 19:20:00 | <zzz> | the terminal might be the bottleneck |
| 19:20:21 | <dsal> | zzz: I'm trying to be less excited since I moved three hours later from last year which was already a bit late. |
| 19:20:39 | <zzz> | 5 am for me :X |
| 19:21:02 | → | pagnol joins (~me@213-205-209-87.ftth.glasoperator.nl) |
| 19:21:45 | <dsal> | That's nicer. I get up around 5 after having moved 3 hours west. So that'd work pretty well for me. Luckily, my day job is at least stimulating so I won't feel like I finally get to write interesting code when that comes around. :) |
| 19:22:05 | <zzz> | the think is, some friends are thinking of going to a cabin in the mountain for 3 or 4 days in december, and we all do aoc |
| 19:22:08 | → | mikoto-chan joins (~mikoto-ch@164.5.249.78) |
| 19:22:33 | <zzz> | so i'm screwed for at least a couple of nights :p |
| 19:23:46 | <zzz> | dsal: nice, few things better than an interesting job |
| 19:24:38 | <dsal> | I didn't have a job during AoC last year. That's definitely the best way to do it. |
| 19:24:47 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
| 19:25:10 | → | chomwitt joins (~chomwitt@2a02:587:dc06:ee00:4f0b:15e9:107f:312) |
| 19:27:02 | <zzz> | i was on vacation for 2 weeks. i definetly agree |
| 19:27:43 | <lyle> | Is there any Haskell streaming library that lets one create a stream from a file that's being appended to (a partial file sitting on disk that's not finished downloading?) The file's expected size would have to be known ahead of time since hitting EOF wouldn't be an indicator that the entire file was streamed. |
| 19:28:09 | <dsal> | I'd think you could do that with conduit with a custom source. |
| 19:31:25 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 19:36:57 | → | MajorBiscuit joins (~MajorBisc@46-229-126.internethome.cytanet.com.cy) |
| 19:38:17 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 19:40:18 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 19:45:48 | → | kenran joins (~kenran@200116b82b1470001d358890e3df3d7b.dip.versatel-1u1.de) |
| 19:46:22 | <lyle> | dsal: thanks, I was mostly looking at conduit and streamly. I guess I'll have to look into how these libraries deal with the normal case (where EOF is meaningful) and go from there. |
| 19:49:20 | × | mikoto-chan quits (~mikoto-ch@164.5.249.78) (Read error: Connection reset by peer) |
| 19:49:32 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 19:53:07 | × | pagnol quits (~me@213-205-209-87.ftth.glasoperator.nl) (Ping timeout: 248 seconds) |
| 19:54:16 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 19:55:18 | × | king_gs quits (~Thunderbi@2806:103e:29:da7a:8e16:45ff:feeb:cfcf) (Quit: king_gs) |
| 19:57:15 | × | Vajb quits (~Vajb@2001:999:705:3c86:e7ea:442b:1e01:22d8) (Read error: Connection reset by peer) |
| 19:57:51 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) |
| 19:58:59 | × | raym quits (~raym@user/raym) (Remote host closed the connection) |
| 19:59:30 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 256 seconds) |
| 20:08:15 | × | biberu quits (~biberu@user/biberu) (Read error: Connection reset by peer) |
| 20:10:01 | × | nerdypepper quits (~nerdypepp@user/nerdypepper) (Quit: bye) |
| 20:10:31 | → | nerdypepper joins (~nerdypepp@user/nerdypepper) |
| 20:10:37 | → | mvk joins (~mvk@2607:fea8:5ce3:8500::a1ec) |
| 20:11:28 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 20:12:00 | → | zeenk joins (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) |
| 20:12:27 | → | raym joins (~raym@user/raym) |
| 20:12:46 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 20:15:33 | × | Midjak quits (~Midjak@82.66.147.146) (Quit: This computer has gone to sleep) |
| 20:22:20 | → | king_gs joins (~Thunderbi@2806:103e:29:da7a:282e:1b4e:1ced:fb6f) |
| 20:29:37 | → | merijn joins (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) |
| 20:36:10 | × | ddellacosta quits (~ddellacos@143.244.47.71) (Quit: WeeChat 3.5) |
| 20:36:14 | × | hrberg quits (~quassel@171.79-160-161.customer.lyse.net) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 20:36:30 | → | hrberg joins (~quassel@171.79-160-161.customer.lyse.net) |
| 20:36:55 | × | AlexNoo quits (~AlexNoo@94.233.241.197) (Read error: Connection reset by peer) |
| 20:37:20 | → | AlexNoo joins (~AlexNoo@94.233.241.197) |
| 20:39:34 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 20:42:04 | × | king_gs quits (~Thunderbi@2806:103e:29:da7a:282e:1b4e:1ced:fb6f) (Remote host closed the connection) |
| 20:42:15 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 20:42:22 | → | king_gs joins (~Thunderbi@2806:103e:29:da7a:282e:1b4e:1ced:fb6f) |
| 20:42:22 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 20:42:59 | × | kenran quits (~kenran@200116b82b1470001d358890e3df3d7b.dip.versatel-1u1.de) (Quit: WeeChat info:version) |
| 20:43:07 | → | Sinbad joins (~Sinbad@user/sinbad) |
| 20:48:40 | → | ajb_ joins (~ajb@mimas.whatbox.ca) |
| 20:50:08 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 20:50:54 | × | gmg quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 20:51:20 | × | ajb- quits (~ajb@mimas.whatbox.ca) (Ping timeout: 244 seconds) |
| 20:54:28 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
| 20:55:26 | × | ccntrq quits (~Thunderbi@172.209.94.92.rev.sfr.net) (Remote host closed the connection) |
| 20:58:43 | × | merijn quits (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 248 seconds) |
| 21:00:32 | <Sinbad> | I am using readProcessWithExitCode "foo" [...] "" and it works as expected most of the time. In particular I can branch on the returned exit code. Some times "foo" does not exist and in this case I get an uncaught exception from the underlying readCreateProcessWithExitCode. That kind of contradicts to the documentation. So I was wondering what's behind of this design decision. |
| 21:02:55 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 21:03:24 | → | coot joins (~coot@213.134.176.158) |
| 21:03:32 | × | alp_ quits (~alp@user/alp) (Ping timeout: 256 seconds) |
| 21:06:13 | <geekosaur[m]> | If you are assuming what the shell does is normal behavior, you should learn that the shell is manufacturing an error code because it has no other way to respond |
| 21:08:34 | <geekosaur[m]> | What you really get is return -1, errno ENOENT and that is always mapped to an exception in Haskell |
| 21:08:38 | → | yvan-sraka joins (~yvan-srak@57.red-81-44-3.dynamicip.rima-tde.net) |
| 21:09:17 | → | alp_ joins (~alp@user/alp) |
| 21:09:21 | <Sinbad> | geekosaur[m]: I don't assume anything about the shell, this use spawn directly shell is not involved. |
| 21:09:36 | Furor | is now known as Colere |
| 21:09:43 | <geekosaur[m]> | (C return not a `waitpid()` result) |
| 21:12:00 | <Sinbad> | ??? |
| 21:12:03 | × | zer0bitz quits (~zer0bitz@2001:2003:f748:2000:7d8c:cb4c:6f2b:60ad) (Ping timeout: 256 seconds) |
| 21:12:25 | → | ddellacosta joins (~ddellacos@143.244.47.100) |
| 21:14:38 | <Sinbad> | well I know what is happening, don't understand why was designed this way instead of just giving me the "posix_spawnp: does not exist..." exit code. |
| 21:16:02 | × | themc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 21:18:06 | × | coot quits (~coot@213.134.176.158) (Quit: coot) |
| 21:18:09 | <qrpnxz> | well, that's not an exit code :) |
| 21:19:50 | <Sinbad> | sure, hair splitting aside, ... |
| 21:20:53 | <Sinbad> | also, I understand that strictly the docs is talking about the exit code of the process created |
| 21:21:35 | × | Ram-Z quits (~Ram-Z@li1814-254.members.linode.com) (Ping timeout: 252 seconds) |
| 21:22:04 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 21:22:11 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 248 seconds) |
| 21:22:36 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
| 21:23:17 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 21:23:21 | → | Vajb joins (~Vajb@2001:999:705:3c86:e7ea:442b:1e01:22d8) |
| 21:24:59 | <geekosaur> | the hair you think we're splitting is the point here, though |
| 21:25:16 | → | jmorris joins (uid537181@id-537181.uxbridge.irccloud.com) |
| 21:26:31 | → | gdown joins (~gavin@h69-11-149-231.kndrid.broadband.dynamic.tds.net) |
| 21:28:47 | × | king_gs quits (~Thunderbi@2806:103e:29:da7a:282e:1b4e:1ced:fb6f) (Ping timeout: 268 seconds) |
| 21:33:37 | × | Sinbad quits (~Sinbad@user/sinbad) (Quit: WeeChat 3.6) |
| 21:34:40 | → | Ram-Z joins (~Ram-Z@li1814-254.members.linode.com) |
| 21:39:53 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 21:40:29 | → | stef204 joins (~stef204@user/stef204) |
| 21:40:45 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 21:40:50 | → | king_gs joins (~Thunderbi@2806:103e:29:da7a:955f:c3b4:36c4:4b7d) |
| 21:41:23 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 21:42:27 | × | MajorBiscuit quits (~MajorBisc@46-229-126.internethome.cytanet.com.cy) (Ping timeout: 248 seconds) |
| 21:48:21 | × | lyle quits (~lyle@24.244.29.158) (Quit: WeeChat 3.6) |
| 21:48:45 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 21:49:25 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 21:49:30 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 21:49:46 | × | yvan-sraka quits (~yvan-srak@57.red-81-44-3.dynamicip.rima-tde.net) (Remote host closed the connection) |
| 21:57:07 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 22:04:07 | × | [Leary] quits (~Leary]@122-58-224-198-vdsl.sparkbb.co.nz) (Ping timeout: 252 seconds) |
| 22:09:07 | × | acidjnk quits (~acidjnk@p200300d6e7137a99ecb826a5293fa5e0.dip0.t-ipconnect.de) (Ping timeout: 248 seconds) |
| 22:12:11 | × | alp_ quits (~alp@user/alp) (Ping timeout: 252 seconds) |
| 22:12:40 | × | king_gs quits (~Thunderbi@2806:103e:29:da7a:955f:c3b4:36c4:4b7d) (Ping timeout: 256 seconds) |
| 22:19:08 | djanatyn1 | is now known as djanatyn |
| 22:20:35 | → | mmhat joins (~mmh@p200300f1c719923bee086bfffe095315.dip0.t-ipconnect.de) |
| 22:28:15 | <qrpnxz> | if foo is not found, then foo never ran, so the exception is not caused by foo failing. foo never ran, so any output at all from that function would be non-sense, exception is the only thing that makes sense for that type |
| 22:29:25 | <qrpnxz> | and it happens in IO, so it's a matter of course it could throw if some realworld thing prevents it doing it's purpose |
| 22:34:11 | → | alp_ joins (~alp@user/alp) |
| 22:40:07 | × | mmhat quits (~mmh@p200300f1c719923bee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.6) |
| 22:40:46 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.5) |
| 22:42:04 | → | jgeerds joins (~jgeerds@55d46bad.access.ecotel.net) |
| 22:42:26 | <geekosaur> | actually it looks like child-side actions are expected to produce something from `waitpid()`. I kinda lost track of where all the stuff was happening when tracing the POSIX side of `createProcess_` |
| 22:42:50 | <geekosaur> | but it was getting back separate errno information from the child and throwing an exception based on it |
| 22:43:34 | <geekosaur> | so in fact ghcrts is doing something nonstandard. would have to discuss that with whoever's maintaining the process library |
| 22:45:00 | <geekosaur> | (from `c_createInteractiveProcess` in (I think) System.Posix.Process.Internal) |
| 22:46:45 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 22:51:57 | <geekosaur> | actually it's a foreign import |
| 22:52:34 | × | arkeet quits (arkeet@moriya.ca) (Quit: ZNC 1.8.2 - https://znc.in) |
| 22:53:11 | <geekosaur> | in System.Process.Posix (not to be confused with System.Posix.Process) |
| 22:54:09 | × | zeenk quits (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) (Quit: Konversation terminated!) |
| 22:54:10 | <geekosaur> | I've done similar when I needed more detail than an exit code of -1, so I assume someone needs that |
| 22:55:05 | × | tomboy64 quits (~tomboy64@user/tomboy64) (Ping timeout: 268 seconds) |
| 22:55:25 | → | merijn joins (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) |
| 23:04:58 | × | PiDelport quits (uid25146@id-25146.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 23:06:56 | → | dsrt^ joins (~dsrt@50.231.67.43) |
| 23:11:36 | × | fserucas|eod quits (~fserucas|@46.50.4.9) (Ping timeout: 256 seconds) |
| 23:11:57 | × | Tuplanolla quits (~Tuplanoll@91-159-69-12.elisa-laajakaista.fi) (Ping timeout: 252 seconds) |
| 23:14:24 | → | tomboy64 joins (~tomboy64@user/tomboy64) |
| 23:16:21 | × | zachel quits (~zachel@user/zachel) (Ping timeout: 252 seconds) |
| 23:18:20 | × | chomwitt quits (~chomwitt@2a02:587:dc06:ee00:4f0b:15e9:107f:312) (Ping timeout: 255 seconds) |
| 23:20:21 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 23:20:56 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 23:21:08 | → | luffy joins (~chenqisu1@183.217.201.23) |
| 23:23:47 | × | cosimone quits (~user@93-44-186-171.ip98.fastwebnet.it) (Remote host closed the connection) |
| 23:29:00 | × | merijn quits (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds) |
| 23:29:49 | → | vysn joins (~vysn@user/vysn) |
| 23:41:04 | × | ddellacosta quits (~ddellacos@143.244.47.100) (Ping timeout: 256 seconds) |
| 23:44:23 | → | arkeet joins (~arkeet@moriya.ca) |
| 23:49:21 | × | tomboy64 quits (~tomboy64@user/tomboy64) (Ping timeout: 268 seconds) |
| 23:54:07 | × | gurkenglas quits (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 23:57:03 | × | jgeerds quits (~jgeerds@55d46bad.access.ecotel.net) (Ping timeout: 252 seconds) |
All times are in UTC on 2022-08-16.