Logs on 2022-06-08 (liberachat/#haskell)
| 00:01:47 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 00:03:29 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection) |
| 00:04:22 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 00:05:18 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection) |
| 00:06:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 00:06:44 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 00:07:29 | × | Tuplanolla quits (~Tuplanoll@91-159-69-1.elisa-laajakaista.fi) (Quit: Leaving.) |
| 00:12:34 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 00:15:30 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.5) |
| 00:24:53 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 00:25:59 | → | calleum_ joins (~calleum@user/calleum) |
| 00:31:44 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 00:32:52 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 00:41:33 | liz_ | is now known as liz |
| 00:47:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 00:48:03 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 256 seconds) |
| 00:50:03 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 00:51:34 | × | DNH quits (~DNH@2a02:8108:1100:16d8:e92a:ff3d:d8c7:63da) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 00:52:37 | <dragestil> | does anyone know how to build ghc-9.2.2 obtained from `cabal unpack ghc`? I did `cabal new-build` and got problems like `fatal error: primop-vector-uniques.hs-incl: No such file or directory` |
| 00:53:22 | <geekosaur> | it's only on hackage for the documentation; it can only be built as part of ghc proper |
| 00:53:35 | <geekosaur> | (it's the public API to ghc internals) |
| 00:54:13 | <dragestil> | geekosaur: ok, but I was able to build ghc-8.6.5 with `cabal configure -f integer-gmp && cabal new-build` |
| 00:54:39 | <dragestil> | so something changed with the building method from 8.6.5 to 9.2.2 |
| 00:54:52 | <geekosaur> | the switch to hadrian, maybe |
| 00:55:28 | <dragestil> | i see. I do want to build just the GHC API though |
| 00:55:30 | <geekosaur> | but I'd be surprised if that build actually got you something, if it's actually the ghc package from hackage which is *not* the full ghc source |
| 00:56:03 | <geekosaur> | I think you need to ask in #ghc, but don't be surprised if the answer is "you can't" |
| 00:56:27 | <dragestil> | yeah it got what I wanted, the built API in some form |
| 00:56:31 | <dragestil> | ok thanks |
| 00:56:43 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 00:57:56 | <geekosaur> | also I hope you're doing this with the same version of ghc that it's versioned for; there is very little chance of it working at all right with a different version |
| 00:58:36 | <dragestil> | yeah, i built 8.6.5 using 8.6.5 and am trying to build 9.2.2 using 9.2.2 |
| 00:58:41 | <geekosaur> | the internals change constantly, and in particular got redesigned again for 9.x (although the intent of that one was to stabilize the API so things might fare better with future versions) |
| 01:00:40 | <dragestil> | ha, looks like I can cabal build ghc-lib-9.2.2, at least it's not giving me any errors |
| 01:00:45 | <dragestil> | for now |
| 01:02:00 | <dragestil> | geekosaur: yeah I know, I just ported an app heavy on ghc api use from 8.x.x to 9.2.2 |
| 01:02:56 | <dragestil> | I'm guessing the ghc-lib build is as good as a ghc build for my use case |
| 01:03:38 | × | xff0x quits (~xff0x@b133147.ppp.asahi-net.or.jp) (Ping timeout: 255 seconds) |
| 01:03:46 | <dragestil> | maybe I should just ditch ghc in favour of ghc-lib when using the ghc api |
| 01:03:55 | × | gurkenglas quits (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) (Ping timeout: 256 seconds) |
| 01:03:59 | × | ashln quits (~ashln@98.38.236.123) (Ping timeout: 244 seconds) |
| 01:04:13 | → | Alleria_ joins (~AllahuAkb@68.65.161.35) |
| 01:05:27 | × | Alleria_ quits (~AllahuAkb@68.65.161.35) (Client Quit) |
| 01:10:00 | → | ashln joins (~ashln@98.38.236.123) |
| 01:10:24 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 01:10:34 | <Bulby[m]> | How would I lift this to applicative where the function is `Applicative f => (a -> Bool) -> Map k a -> f (Map k a)` |
| 01:10:34 | <Bulby[m]> | https://hackage.haskell.org/package/containers-0.6.5.1/docs/Data-Map-Strict.html#v:filter |
| 01:14:50 | <EvanR> | erm, if you put together a Map filtering function of type Map k a -> Map k a, then you lift it to applicative with pure |
| 01:15:40 | <Bulby[m]> | oops, I missed something in that type sig |
| 01:15:49 | <Bulby[m]> | `Applicative f => (a -> f Bool) -> Map k a -> f (Map k a)` |
| 01:16:32 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 01:16:51 | <EvanR> | :t asum |
| 01:16:52 | <lambdabot> | (Foldable t, Alternative f) => t (f a) -> f a |
| 01:17:35 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 255 seconds) |
| 01:17:43 | <EvanR> | I couldn't sworn that was not Alternative |
| 01:20:17 | <EvanR> | what is the type you're looking for |
| 01:20:42 | <Bulby[m]> | I gave you the type |
| 01:20:43 | <Bulby[m]> | `Applicative f => (a -> f Bool) -> Map k a -> f (Map k a)` |
| 01:22:30 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 01:25:07 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 01:28:31 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
| 01:28:33 | <EvanR> | it's funny that looks very similar to |
| 01:28:49 | <EvanR> | no... |
| 01:28:51 | <EvanR> | :t traverse |
| 01:28:53 | <lambdabot> | (Traversable t, Applicative f) => (a -> f b) -> t a -> f (t b) |
| 01:29:04 | <Bulby[m]> | it's always traverse 😭 |
| 01:29:06 | → | Guest5815 joins (~Guest58@modemcable048.16-160-184.mc.videotron.ca) |
| 01:29:16 | <EvanR> | it's not, b's don't match |
| 01:29:25 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:b5bc:25b:5256:1595) (Remote host closed the connection) |
| 01:29:28 | × | Guest5815 quits (~Guest58@modemcable048.16-160-184.mc.videotron.ca) (Client Quit) |
| 01:29:39 | → | Guest58452222224 joins (~Guest5845@modemcable048.16-160-184.mc.videotron.ca) |
| 01:34:54 | <Bulby[m]> | witherable basically the function I want, but at this point is it worth it |
| 01:36:58 | <c_wraith> | :t M.traverseMaybeWithKey |
| 01:36:59 | <lambdabot> | Applicative f => (k -> a -> f (Maybe b)) -> M.Map k a -> f (M.Map k b) |
| 01:37:20 | <c_wraith> | it's a bit more general than what you asked for, but it's what does what you want |
| 01:37:21 | × | gentauro quits (~gentauro@user/gentauro) (Read error: Connection reset by peer) |
| 01:37:34 | <c_wraith> | *it does |
| 01:38:15 | <c_wraith> | (also, the increased generality nicely sidesteps boolean blindness) |
| 01:43:06 | → | gentauro joins (~gentauro@user/gentauro) |
| 01:43:45 | → | xff0x joins (~xff0x@s5.HtokyoFL1.vectant.ne.jp) |
| 01:45:17 | <c_wraith> | :t \f -> M.traverseMaybeWithKey (\_ x -> bool (Just x) Nothing <$> f x) -- Bulby[m]: Like so |
| 01:45:18 | <lambdabot> | Applicative f => (b -> f Bool) -> M.Map k b -> f (M.Map k b) |
| 01:45:21 | → | sebastiandb_ joins (~sebastian@pool-108-18-101-17.washdc.fios.verizon.net) |
| 01:45:32 | <Bulby[m]> | \o/ |
| 01:45:32 | → | andrey_ joins (~andrey@p200300dbcf0a1200fc5b10ce87df1c2d.dip0.t-ipconnect.de) |
| 01:46:23 | <c_wraith> | Oh. except probably reverse the args to bool |
| 01:46:35 | <c_wraith> | (that boolean blindness strikes again) |
| 01:47:47 | × | andrey__ quits (~andrey@p200300dbcf1e5100509bf59e4ea7342a.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 01:50:39 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 01:56:18 | × | BusConscious quits (~martin@ip5f5acfd5.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
| 01:56:47 | <Bulby[m]> | yay my baby GC is working |
| 01:58:12 | × | gdown quits (~gavin@h69-11-149-231.kndrid.broadband.dynamic.tds.net) (Remote host closed the connection) |
| 01:58:38 | <Bulby[m]> | one issue with the current system is that even with heap clearing, the counter keeps incrementing |
| 01:59:34 | <Bulby[m]> | which means if more than `maxBound :: Int` vars are assigned then oopsies it crashes |
| 02:02:20 | → | Guest68 joins (~Guest68@186.66.48.125) |
| 02:02:58 | <Guest68> | Hey qq… best way to use Ghci on a mobile device for studying abroad with no computer? |
| 02:07:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 02:07:13 | × | Guest68 quits (~Guest68@186.66.48.125) (Quit: Client closed) |
| 02:09:44 | → | gdown joins (~gavin@h69-11-149-231.kndrid.broadband.dynamic.tds.net) |
| 02:11:42 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 02:13:43 | <EvanR> | Bulby[m], do you actually want to solve that one |
| 02:18:45 | × | zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!) |
| 02:19:17 | × | td_ quits (~td@muedsl-82-207-238-064.citykom.de) (Ping timeout: 256 seconds) |
| 02:19:29 | <DigitalKiwi> | i use ghci in nix-on-droid https://github.com/t184256/nix-on-droid |
| 02:20:49 | → | td_ joins (~td@muedsl-82-207-238-024.citykom.de) |
| 02:20:58 | × | darkling quits (~darkling@2001-ba8-1f1-f0e6-0-0-0-2.autov6rev.bitfolk.space) (Ping timeout: 244 seconds) |
| 02:23:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 02:23:45 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:b5bc:25b:5256:1595) |
| 02:26:59 | → | frost joins (~frost@user/frost) |
| 02:39:47 | × | liz quits (~liz@host86-159-158-175.range86-159.btcentralplus.com) (Quit: Lost terminal) |
| 02:44:24 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
| 02:44:24 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 02:47:00 | → | causal joins (~user@2001:470:ea0f:3:329c:23ff:fe3f:1e0e) |
| 02:47:48 | → | nate3 joins (~nate@98.45.169.16) |
| 02:48:49 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection) |
| 02:51:04 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 02:52:30 | × | nate3 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds) |
| 02:53:05 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 02:53:05 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 02:53:05 | → | wroathe joins (~wroathe@user/wroathe) |
| 03:05:39 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:b5bc:25b:5256:1595) (Remote host closed the connection) |
| 03:06:39 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:b5bc:25b:5256:1595) |
| 03:09:11 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 03:09:37 | × | calleum_ quits (~calleum@user/calleum) (Ping timeout: 246 seconds) |
| 03:09:51 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 03:10:08 | → | califax joins (~califax@user/califx) |
| 03:19:04 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 246 seconds) |
| 03:22:04 | → | littlebo1eep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 03:24:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 03:41:36 | × | Me-me quits (~me-me@user/me-me) (Remote host closed the connection) |
| 03:42:15 | → | money joins (~Gambino@user/polo) |
| 03:44:04 | → | Me-me joins (~me-me@tunnel690570-pt.tunnel.tserv12.mia1.ipv6.he.net) |
| 03:44:17 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
| 03:44:40 | × | sebastiandb_ quits (~sebastian@pool-108-18-101-17.washdc.fios.verizon.net) (Ping timeout: 244 seconds) |
| 03:47:04 | × | littlebo1eep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 03:49:53 | → | vicfred joins (~vicfred@user/vicfred) |
| 03:50:06 | → | king_gs joins (~Thunderbi@2806:103e:29:8d08:4e22:df26:be6a:6f94) |
| 03:56:05 | → | z0k joins (~z0k@206.84.141.105) |
| 03:57:04 | × | money quits (~Gambino@user/polo) (Quit: money) |
| 03:57:25 | × | king_gs quits (~Thunderbi@2806:103e:29:8d08:4e22:df26:be6a:6f94) (Quit: king_gs) |
| 03:57:34 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 04:01:08 | → | Polo joins (~Gambino@user/polo) |
| 04:04:31 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 04:06:20 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 04:07:06 | × | Polo quits (~Gambino@user/polo) (Ping timeout: 276 seconds) |
| 04:09:40 | → | Vajb joins (~Vajb@n5ar9yynwxqg80e32-2.v6.elisa-mobile.fi) |
| 04:11:20 | → | Polo joins (~Gambino@user/polo) |
| 04:12:52 | × | slac74904 quits (~slack1256@186.11.84.227) (Ping timeout: 260 seconds) |
| 04:18:56 | × | Guest58452222224 quits (~Guest5845@modemcable048.16-160-184.mc.videotron.ca) (Ping timeout: 252 seconds) |
| 04:21:01 | × | Polo quits (~Gambino@user/polo) (Ping timeout: 246 seconds) |
| 04:24:14 | → | Polo joins (~Gambino@user/polo) |
| 04:25:01 | → | Guest77 joins (~Guest77@2600:1700:6438:2810:2847:a97b:34b7:6321) |
| 04:28:27 | → | Furor joins (~colere@about/linux/staff/sauvin) |
| 04:28:50 | × | Polo quits (~Gambino@user/polo) (Ping timeout: 240 seconds) |
| 04:31:01 | × | Colere quits (~sauvin@about/linux/staff/sauvin) (Ping timeout: 258 seconds) |
| 04:38:16 | → | jonathanx_ joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
| 04:38:17 | × | jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Read error: Connection reset by peer) |
| 04:44:30 | × | shapr quits (~user@pool-173-73-44-186.washdc.fios.verizon.net) (Ping timeout: 240 seconds) |
| 04:46:00 | × | jonathanx_ quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Read error: Connection reset by peer) |
| 04:46:06 | → | jonathanx joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
| 04:48:24 | × | z0k quits (~z0k@206.84.141.105) (Quit: WeeChat 3.5) |
| 04:50:39 | → | coot joins (~coot@213.134.190.95) |
| 04:51:10 | → | Polo joins (~Gambino@user/polo) |
| 04:52:38 | × | coot quits (~coot@213.134.190.95) (Client Quit) |
| 04:54:33 | → | coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
| 04:56:22 | × | jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 246 seconds) |
| 04:59:16 | × | sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 05:00:30 | → | sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
| 05:00:38 | × | noteness quits (~noteness@user/noteness) (Remote host closed the connection) |
| 05:01:29 | → | noteness joins (~noteness@user/noteness) |
| 05:04:52 | × | Guest77 quits (~Guest77@2600:1700:6438:2810:2847:a97b:34b7:6321) (Quit: Client closed) |
| 05:11:04 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 05:16:40 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 05:17:57 | × | bgamari quits (~bgamari@68.238.49.109) (Ping timeout: 276 seconds) |
| 05:21:59 | × | Polo quits (~Gambino@user/polo) (Quit: Polo) |
| 05:25:37 | → | Polo joins (~Gambino@user/polo) |
| 05:26:46 | → | yosef`` joins (~user@2409:8955:61c:4510:bc38:4f13:2f21:ed8c) |
| 05:27:41 | × | yosef`` quits (~user@2409:8955:61c:4510:bc38:4f13:2f21:ed8c) (Client Quit) |
| 05:28:33 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
| 05:29:01 | → | yosef` joins (~user@user/yosef/x-2947716) |
| 05:31:35 | → | bgamari joins (~bgamari@70.16.100.231) |
| 05:32:11 | × | _xor quits (~xor@72.49.198.103) (Quit: bbiab) |
| 05:34:34 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 05:40:03 | × | bgamari quits (~bgamari@70.16.100.231) (Ping timeout: 276 seconds) |
| 05:40:08 | → | chomwitt joins (~chomwitt@2a02:587:dc1f:5600:d683:3d28:fc15:22d4) |
| 05:41:20 | → | odnes joins (~odnes@5-203-158-63.pat.nym.cosmote.net) |
| 05:42:14 | × | Polo quits (~Gambino@user/polo) (Read error: Connection reset by peer) |
| 05:43:35 | → | Polo joins (~Gambino@user/polo) |
| 05:44:13 | × | noteness quits (~noteness@user/noteness) (Quit: bye) |
| 05:44:38 | → | noteness joins (~noteness@user/noteness) |
| 05:46:28 | × | incertia quits (~incertia@d47-69-133-171.try.wideopenwest.com) (Quit: ZNC 1.7.5 - https://znc.in) |
| 05:46:53 | → | incertia joins (~incertia@d47-69-133-171.try.wideopenwest.com) |
| 05:48:32 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 05:52:06 | → | bgamari joins (~bgamari@70.16.104.230) |
| 05:53:03 | → | _ht joins (~quassel@231-169-21-31.ftth.glasoperator.nl) |
| 06:04:34 | → | acidjnk_new joins (~acidjnk@p200300d0c7068b36d8e1b90c13cd8a15.dip0.t-ipconnect.de) |
| 06:07:48 | → | littlebo1eep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 06:09:36 | × | shriekingnoise quits (~shrieking@201.231.16.156) (Quit: Quit) |
| 06:10:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 06:14:13 | × | gdown quits (~gavin@h69-11-149-231.kndrid.broadband.dynamic.tds.net) (Remote host closed the connection) |
| 06:17:39 | × | tomjaguarpaw quits (~tom@li367-225.members.linode.com) (Remote host closed the connection) |
| 06:17:47 | → | tomjaguarpaw joins (~tom@li367-225.members.linode.com) |
| 06:20:42 | × | motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 244 seconds) |
| 06:20:58 | × | P1RATEZ quits (piratez@user/p1ratez) (Remote host closed the connection) |
| 06:21:09 | → | motherfsck joins (~motherfsc@user/motherfsck) |
| 06:21:41 | × | _ht quits (~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection) |
| 06:23:01 | × | Guest3304 quits (~mike@2406:d501::79ae:5f3e) (Quit: WeeChat 3.1) |
| 06:23:10 | → | feetwind joins (~mike@user/feetwind) |
| 06:26:05 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 06:29:34 | × | littlebo1eep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 06:34:34 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 06:34:41 | → | alp joins (~alp@user/alp) |
| 06:35:10 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 06:35:33 | × | vicfred quits (~vicfred@user/vicfred) (Quit: Leaving) |
| 06:37:06 | → | littlebo1eep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 06:38:41 | → | Pickchea joins (~private@user/pickchea) |
| 06:39:34 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 06:42:15 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 06:45:03 | × | Furor quits (~colere@about/linux/staff/sauvin) (Ping timeout: 256 seconds) |
| 06:50:09 | × | Zemyla quits (~ec2-user@ec2-54-80-174-150.compute-1.amazonaws.com) (Ping timeout: 256 seconds) |
| 06:50:24 | → | Zemyla joins (~ec2-user@ec2-54-80-174-150.compute-1.amazonaws.com) |
| 06:51:02 | × | motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 255 seconds) |
| 06:51:11 | → | Guest727 joins (Guest72@2600:3c00::f03c:93ff:fee9:e8e2) |
| 06:57:04 | × | littlebo1eep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 06:58:09 | → | Colere joins (~colere@about/linux/staff/sauvin) |
| 06:59:00 | → | cfricke joins (~cfricke@user/cfricke) |
| 07:04:12 | → | lottaquestions_ joins (~nick@104.221.94.126) |
| 07:04:24 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 07:05:12 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 07:06:30 | × | lottaquestions quits (~nick@104.221.94.126) (Ping timeout: 240 seconds) |
| 07:07:11 | → | motherfsck joins (~motherfsc@user/motherfsck) |
| 07:08:29 | → | MajorBiscuit joins (~MajorBisc@c-001-029-035.client.tudelft.eduvpn.nl) |
| 07:08:29 | × | MajorBiscuit quits (~MajorBisc@c-001-029-035.client.tudelft.eduvpn.nl) (Client Quit) |
| 07:08:57 | → | MajorBiscuit joins (~MajorBisc@c-001-029-035.client.tudelft.eduvpn.nl) |
| 07:12:36 | × | dextaa quits (~DV@user/dextaa) (Read error: Connection reset by peer) |
| 07:12:59 | → | Infinite joins (~Infinite@49.39.122.221) |
| 07:15:22 | → | dextaa joins (~DV@user/dextaa) |
| 07:18:13 | <sloorush> | Hello, is the link to the prelude documentation in the wiki(https://wiki.haskell.org/Prelude) supposed to be https://hackage.haskell.org/package/base-4.16.1.0/docs/Prelude.html instead of http://www.haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html in the documentation section? |
| 07:19:17 | <Axman6> | it should probably be https://hackage.haskell.org/package/base-4.16.1.0/docs/Prelude.html if it has any chance of remaining up to date |
| 07:19:19 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:c365:1120:4914:7262) |
| 07:19:35 | → | chele joins (~chele@user/chele) |
| 07:26:21 | → | dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net) |
| 07:27:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 07:28:13 | <Axman6> | damn, now I'm reading prelude source code and wondering why countLeadingZeros for Bool isn't countLeadingZeros b = Int# (1# - dataToTag# b) |
| 07:28:56 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
| 07:29:55 | × | MajorBiscuit quits (~MajorBisc@c-001-029-035.client.tudelft.eduvpn.nl) (Quit: WeeChat 3.5) |
| 07:30:13 | → | MajorBiscuit joins (~MajorBisc@c-001-029-035.client.tudelft.eduvpn.nl) |
| 07:32:23 | → | darkling joins (~darkling@2001-ba8-1f1-f0e6-0-0-0-2.autov6rev.bitfolk.space) |
| 07:33:39 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 07:36:00 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 07:36:17 | × | niko quits (niko@libera/staff/niko) (Read error: Connection reset by peer) |
| 07:37:57 | × | zaquest quits (~notzaques@5.130.79.72) (Remote host closed the connection) |
| 07:38:02 | <dragestil> | I just tried again, the `all` target does not include test suites. I also took a look at ~/.cabal/config and don't see how I can include it. does anyone know how to invoke `cabal new-build` build absolutely every components of a project? |
| 07:38:55 | <dcoutts> | dragestil: it includes test suites if you enable test suites by default for that package. |
| 07:39:22 | <dcoutts> | same for benchmarks |
| 07:39:47 | <dcoutts> | you can enable them on a per-package basis, or for all packages in the project |
| 07:40:19 | → | zaquest joins (~notzaques@5.130.79.72) |
| 07:40:55 | <dragestil> | dcoutts: is it possible to override the setting in .cabal files for the projects? I'd like to run a script that run cabal build on a set of projects after cd into the project dirs |
| 07:41:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 07:41:19 | <dcoutts> | You can set it in the project file. |
| 07:41:48 | <dcoutts> | It's a "builder role" setting, not an "author role" setting, so it's set in the project file, not the package .cabal files. |
| 07:42:38 | <dcoutts> | But most such things can also be set on the cabal build command line too. iirc it's just --enable-testsuites --enable-benchmarks |
| 07:42:51 | × | acidjnk_new quits (~acidjnk@p200300d0c7068b36d8e1b90c13cd8a15.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
| 07:42:58 | → | yrlnry joins (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) |
| 07:43:13 | <dcoutts> | It's usually better to put them in the cabal.project (or cabal.project.local) file, so it's not ephemeral |
| 07:43:22 | <dcoutts> | but ephemeral is doable too] |
| 07:44:23 | <dragestil> | dcoutts: I see, thanks. --enable-testsuites --enable-benchmarks sounds good as my use case is to run a script to `cabal unpack` a bunch of packages, cd into them, and then `cabal build` |
| 07:45:24 | <dragestil> | oh but I can't do cabal new-build --enable-testsuites --enable-benchmarks |
| 07:45:39 | <dcoutts> | oh, use it with cabal configure |
| 07:45:41 | <merijn> | Also, still calling it "new-build" is a bit dated, considering it's been the default for 3 (soon 4) releases ;) |
| 07:46:33 | <dcoutts> | dragestil: cabal configure --enable-testsuites --enable-benchmarks will make a cabal.project.local with those two settings, so that a subsequent cabal build all will do what you expect |
| 07:47:00 | <dcoutts> | (some of these flags also work on build directly, but I was clearly forgetting which ones) |
| 07:47:27 | <dragestil> | dcoutts: i see, thanks |
| 07:47:41 | <dragestil> | merijn: ok |
| 07:47:41 | × | coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
| 07:48:45 | × | yrlnry quits (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) (Ping timeout: 276 seconds) |
| 07:49:46 | → | chreekat2 joins (~b@dys-fmydgp1rbq8l5qb7t-3.rev.dnainternet.fi) |
| 07:49:52 | → | Unicorn_Princess joins (~Unicorn_P@93-103-228-248.dynamic.t-2.net) |
| 07:54:10 | × | Pickchea quits (~private@user/pickchea) (Ping timeout: 272 seconds) |
| 07:58:03 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 07:58:12 | <tomsmeding> | Bulby[m]: that's a lot of allocations, 2^63 :p |
| 07:59:39 | <tomsmeding> | > 2 ^ 63 / 10 ^ 9 / 3600 / 24 / 365 |
| 07:59:41 | <lambdabot> | 292.471208677536 |
| 08:00:05 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 08:00:24 | <tomsmeding> | Bulby[m]: will take you >292 years to overflow that counter if you manage to increment it once per clock cycle on a 5GHz cpu (you won't, unless you do `lab: inc rax ; jmp lab` maybe) |
| 08:00:52 | <tomsmeding> | > 2 ^ 63 / (5 * 10 ^ 9) / 3600 / 24 / 365 |
| 08:00:53 | <lambdabot> | 58.4942417355072 |
| 08:00:57 | <tomsmeding> | sorry, 58 years |
| 08:01:42 | <tomsmeding> | this is what Natural in Numeric.Natural is for though :p |
| 08:07:49 | → | zincy joins (~zincy@2a01:cb18:82de:bf00:545d:42c6:141c:ed13) |
| 08:12:07 | → | mbuf joins (~Shakthi@122.174.45.107) |
| 08:14:09 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 08:14:18 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
| 08:14:43 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 08:15:31 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:b5bc:25b:5256:1595) (Remote host closed the connection) |
| 08:20:04 | → | gurkenglas joins (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) |
| 08:22:15 | × | Guest727 quits (Guest72@2600:3c00::f03c:93ff:fee9:e8e2) (Quit: Client closed) |
| 08:22:40 | → | Guest7240 joins (~Guest72@240e:341:3834:600:f841:5677:841d:bc80) |
| 08:22:56 | × | Guest7240 quits (~Guest72@240e:341:3834:600:f841:5677:841d:bc80) (Client Quit) |
| 08:31:17 | × | alp quits (~alp@user/alp) (Ping timeout: 260 seconds) |
| 08:33:33 | w1gz_ | is now known as w1gz |
| 08:35:34 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 08:43:23 | × | Polo quits (~Gambino@user/polo) (Quit: Polo) |
| 08:46:31 | × | zincy quits (~zincy@2a01:cb18:82de:bf00:545d:42c6:141c:ed13) (Remote host closed the connection) |
| 08:49:09 | → | coot joins (~coot@213.134.190.95) |
| 08:49:44 | × | noteness quits (~noteness@user/noteness) (Remote host closed the connection) |
| 08:50:01 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
| 08:50:29 | → | noteness joins (~noteness@user/noteness) |
| 08:55:57 | → | kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be) |
| 09:04:34 | → | alp joins (~alp@user/alp) |
| 09:05:04 | → | jgeerds joins (~jgeerds@55d45f48.access.ecotel.net) |
| 09:06:13 | → | BusConscious joins (~martin@ip5f5acfd5.dynamic.kabel-deutschland.de) |
| 09:07:02 | × | Colere quits (~colere@about/linux/staff/sauvin) (Remote host closed the connection) |
| 09:07:20 | → | Colere joins (~colere@about/linux/staff/sauvin) |
| 09:07:26 | → | natechan joins (~nate@98.45.169.16) |
| 09:07:31 | × | nahcetan quits (~nate@98.45.169.16) (Read error: Connection reset by peer) |
| 09:08:18 | → | zeenk joins (~zeenk@2a02:2f04:a013:9000:e45d:7fb3:ec71:e806) |
| 09:08:24 | <BusConscious> | hello everyone I have a Q re forkProcess. When I do forkProcess it executes the IO action provided as argument, but then it lingers around as defunct process even after calling exitImmediately? |
| 09:08:36 | → | yosef`` joins (~user@223.73.113.211) |
| 09:08:55 | <BusConscious> | What's up with that? How do I properly exit my child process? |
| 09:09:46 | <BusConscious> | oh it must have something to do with my pipe nevermind |
| 09:10:28 | × | yosef` quits (~user@user/yosef/x-2947716) (Ping timeout: 258 seconds) |
| 09:10:31 | vgtw_ | is now known as vgtw |
| 09:15:57 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:b5bc:25b:5256:1595) |
| 09:20:07 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:b5bc:25b:5256:1595) (Ping timeout: 240 seconds) |
| 09:21:10 | <merijn> | BusConscious: forkProcess from the unix package? |
| 09:23:03 | <merijn> | Gonna go ahead and queue my usual spiel that the correct answer to any of your questions past/future should be: do *not* use forkProcess, it is *wildly* unsafe and it's existence is borderline negligent |
| 09:23:31 | <merijn> | (although, more concretely, your problem is that terminated child processes will remain zombie processes until the parent wait()'s on them) |
| 09:24:01 | <BusConscious> | Try programming a unix shell with no unix forks :) |
| 09:24:36 | → | ubert joins (~Thunderbi@2a02:8109:abc0:6434:a6ac:910b:92e7:63a8) |
| 09:24:48 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 09:25:07 | <merijn> | Easy |
| 09:25:15 | <merijn> | fork has been deprecated for near 2 decades |
| 09:25:26 | <merijn> | You should use posix_spawn, even for programming shells |
| 09:26:15 | <merijn> | fork in single-threaded C code is merely hard to use correctly. fork in multi-threaded processes is borderline (if not literally) impossible to use safely and all Haskell programs (well, those compiled by GHC) are inherently multi-threaded |
| 09:26:34 | <maerwald> | there's no api for posix_spawn |
| 09:26:45 | <merijn> | maerwald: Yes, I know. That does not make fork safer, though |
| 09:26:58 | <maerwald> | that makes your suggestion unrealistic though |
| 09:27:16 | <maerwald> | forkProcess works fine for me, but I don't use exitImmediately |
| 09:27:26 | <merijn> | maerwald: Only because you have religious objection to using the process library, which does in fact use posix_spawn internally |
| 09:27:35 | <BusConscious> | I could try to link to posix_spawn, but is not even half as flexible as traditional forks. I want to clone my Shell environment |
| 09:27:41 | <maerwald> | merijn: I use the process library on windows and it's a mess |
| 09:27:46 | <merijn> | maerwald: exitImmediatley is a red herring, you always need to wait on child process to terminate the zombie |
| 09:28:08 | <maerwald> | posix_spawn is complicated api |
| 09:28:11 | <BusConscious> | * link to C |
| 09:28:22 | <merijn> | BusConscious: realistically you want the process library |
| 09:28:26 | <merijn> | @hackage process |
| 09:28:26 | <lambdabot> | https://hackage.haskell.org/package/process |
| 09:28:31 | <merijn> | For spawning sub processes |
| 09:28:40 | <merijn> | Which simplifies setting up pipes, etc. too |
| 09:28:48 | <BusConscious> | I will look into that though thanks |
| 09:28:49 | <maerwald> | weelll.... that depends |
| 09:29:20 | <maerwald> | https://hackage.haskell.org/package/process-1.6.14.0/docs/System-Process.html#v:readCreateProcessWithExitCode |
| 09:29:26 | <maerwald> | returns Strings for the handles... |
| 09:29:28 | <maerwald> | great |
| 09:29:31 | → | GascOwn joins (~gasc_own@151.16.46.77) |
| 09:29:32 | × | Infinite quits (~Infinite@49.39.122.221) (Quit: Client closed) |
| 09:29:36 | <merijn> | I would not use the readCreate* stuff at all |
| 09:29:39 | <maerwald> | now your stuff is garbled with encoding issues |
| 09:29:44 | <merijn> | but manual CreateProcess and handles |
| 09:29:50 | <maerwald> | right, I would not use most of process |
| 09:29:53 | <merijn> | maerwald: Not if your system doesn't have a broken setup |
| 09:29:56 | <maerwald> | so just don't |
| 09:30:05 | <maerwald> | merijn: huh? |
| 09:30:37 | <merijn> | maerwald: If your system is configured correctly, the encoding is set correctly. If you don't want String you should be using the Handle API anyway |
| 09:30:39 | <maerwald> | conversion to string from CString is not total |
| 09:30:59 | <maerwald> | even if your encoding is set up correctly |
| 09:31:01 | <maerwald> | doesn't matter |
| 09:31:02 | <merijn> | maerwald: Sure, if your subprocess is producing binary data, don't use the String stuff |
| 09:31:11 | <maerwald> | yeah, shitty api |
| 09:31:18 | <GascOwn> | join #haskell-web |
| 09:31:44 | <merijn> | I would support deprecating and/or deleting all of the read* functions from process |
| 09:32:23 | <merijn> | Or, at least, moving them to separate System.Process.String, System.Process.ByteString, System.Process.Text submodules with similar/identical APIs for read calls |
| 09:32:44 | × | bliminse quits (~bliminse@host86-132-158-77.range86-132.btcentralplus.com) (Quit: leaving) |
| 09:32:54 | <merijn> | maerwald: Would that make you happier? Probably not, because that'd change the API and you don't approve of changing APIs on version bumps either :) |
| 09:33:23 | <maerwald> | if you need windows support, just use Win32 package... then you don't need to wait for the windows IO manager to become default anyway |
| 09:33:34 | <maerwald> | process by default shoves all windows stuff to this odd posix compat layer |
| 09:33:36 | <maerwald> | ugh. |
| 09:36:17 | <merijn> | Anyway, this doesn't affect BusConscious's use case anyway, for a unix shell-like thing he'll want createProcess and/or withCreateProcess which (with appropriate passing of CreatePipe/Inherit/UseHandle) will get back a bunch of handles for the subprocess to do shell-y things with |
| 09:37:25 | → | CiaoSen joins (~Jura@p200300c95738d2002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 09:37:26 | <maerwald> | BusConscious: using unix package is fine |
| 09:37:36 | × | alp quits (~alp@user/alp) (Remote host closed the connection) |
| 09:39:08 | <maerwald> | to wait for child process, you use getProcessStatus |
| 09:40:58 | → | trisolaran joins (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
| 09:42:04 | <maerwald> | merijn: feel free to create a PR https://github.com/haskell/unix/issues/196 |
| 09:42:45 | <sm> | nice discussion! (of Haskell) |
| 09:42:46 | <sm> | https://news.ycombinator.com/item?id=31658638 |
| 09:44:52 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 09:45:38 | × | cheater quits (~Username@user/cheater) (Ping timeout: 255 seconds) |
| 09:46:06 | → | cheater joins (~Username@user/cheater) |
| 09:47:02 | → | alp joins (~alp@user/alp) |
| 09:48:46 | → | DNH joins (~DNH@2a02:8108:1100:16d8:e92a:ff3d:d8c7:63da) |
| 09:54:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 09:56:23 | → | Infinite joins (~Infinite@49.39.122.221) |
| 10:01:09 | → | bliminse joins (~bliminse@host86-132-158-77.range86-132.btcentralplus.com) |
| 10:01:18 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 10:05:58 | <maerwald[m]> | sm: nix being implemented in Haskell is always a strong sign they don't know what they are talking about :p |
| 10:07:37 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 10:08:33 | <merijn> | I mean, "HN commenters not knowing what they are talking about" is a pretty safe heuristic in general |
| 10:10:34 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 10:13:03 | × | jgeerds quits (~jgeerds@55d45f48.access.ecotel.net) (Ping timeout: 276 seconds) |
| 10:14:28 | <maerwald[m]> | But I do think the language extension gold rush and GHC being used as an academic playground field are factors |
| 10:14:45 | → | coot joins (~coot@213.134.190.95) |
| 10:19:05 | <kuribas> | ugh, people complaining about extensions, yet every languages has them, they just aren't called that. |
| 10:19:12 | × | jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 260 seconds) |
| 10:19:12 | × | sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 10:19:34 | <kuribas> | At least being "extensions" you can turn them off. |
| 10:21:04 | <kuribas> | Every language accumulates features. |
| 10:22:19 | → | sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
| 10:23:33 | <maerwald[m]> | kuribas: Go has extensions? |
| 10:23:47 | <kuribas> | I don't know? |
| 10:23:53 | × | xff0x quits (~xff0x@s5.HtokyoFL1.vectant.ne.jp) (Ping timeout: 255 seconds) |
| 10:23:53 | <kuribas> | I don't know go. |
| 10:24:33 | <maerwald[m]> | Pretty sure it doesn't and it also doesn't accumulate features |
| 10:25:26 | <kuribas> | didn't it acquire generics recently? |
| 10:25:35 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 10:25:58 | <maerwald[m]> | I think that's discussed for Go2, which is a different language |
| 10:30:06 | <yushyin> | go1.18 has generics support |
| 10:30:29 | <yushyin> | 'Go release, version 1.18, is a significant release, including changes to the language' |
| 10:31:00 | <maerwald[m]> | Ah right, I mixed it up with the union types |
| 10:32:12 | <kuribas> | maerwald[m]: I didn't say those changes don't come with a version bump, which is a sensible thing to do. |
| 10:32:21 | <yushyin> | but it's optional/retrofitted, old code should just continue to work without changes |
| 10:34:40 | <maerwald[m]> | At any rate, no, not all languages randomly add features |
| 10:35:36 | <maerwald[m]> | Even rust develops at a much slower pace |
| 10:36:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 10:38:08 | <Benzi-Junior> | I'm trying to write a function that takes an input and depending on case either reads or writes to a TChan, the issue that I'm havingi is that writeTChan has type STM (), what is the right way to change it to STM a, as I don't actually want it to return |
| 10:38:31 | × | trisolaran quits (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 256 seconds) |
| 10:48:09 | × | merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 276 seconds) |
| 10:49:16 | <tomsmeding> | Benzi-Junior: what do you want to do with the read value? |
| 10:49:28 | <maerwald[m]> | Benzi-Junior: Either () a |
| 10:49:47 | <maerwald[m]> | Or Maybe |
| 10:51:30 | × | caubert_ quits (~caubert@136.244.111.235) (Quit: WeeChat 3.4) |
| 10:51:42 | → | caubert joins (~caubert@136.244.111.235) |
| 10:56:39 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 11:04:28 | → | xff0x joins (~xff0x@b133147.ppp.asahi-net.or.jp) |
| 11:11:48 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 11:13:25 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 11:13:57 | → | merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) |
| 11:15:36 | × | yosef`` quits (~user@223.73.113.211) (Read error: Connection reset by peer) |
| 11:15:53 | → | yosef`` joins (~user@223.73.113.211) |
| 11:16:59 | → | lyle joins (~lyle@104.246.145.85) |
| 11:17:50 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:b5bc:25b:5256:1595) |
| 11:18:58 | <Benzi-Junior> | tomsmeding, just dump it to console |
| 11:19:23 | × | gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 11:19:32 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 11:19:48 | <Benzi-Junior> | so it's a "Show a => STM a" |
| 11:21:38 | <tomsmeding> | Benzi-Junior: \x -> case x of { ... -> atomically (writeTVar var ...) ; ... -> do { value <- atomically (readTVar var); print value } } |
| 11:21:38 | <tomsmeding> | ? |
| 11:21:52 | <tomsmeding> | with newlines instead of { ; } |
| 11:22:19 | <tomsmeding> | or should the whole case live in STM |
| 11:22:23 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:b5bc:25b:5256:1595) (Ping timeout: 255 seconds) |
| 11:25:07 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 11:26:10 | × | yosef`` quits (~user@223.73.113.211) (Ping timeout: 258 seconds) |
| 11:29:24 | → | bontaq joins (~user@ool-45779fe5.dyn.optonline.net) |
| 11:30:47 | → | ph88 joins (~ph88@ip5f5af71f.dynamic.kabel-deutschland.de) |
| 11:40:29 | × | dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 252 seconds) |
| 11:41:17 | → | pottsy joins (~pottsy@129.227.183.244) |
| 11:44:49 | × | odnes quits (~odnes@5-203-158-63.pat.nym.cosmote.net) (Ping timeout: 246 seconds) |
| 11:45:05 | → | __monty__ joins (~toonn@user/toonn) |
| 11:46:11 | → | yrlnry joins (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) |
| 11:46:28 | → | Pickchea joins (~private@user/pickchea) |
| 11:50:14 | → | littlebo1eep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 11:51:48 | <kuribas> | IMO a lot of language extensions take like 1 minute to learn. |
| 11:51:49 | × | GascOwn quits (~gasc_own@151.16.46.77) (Ping timeout: 246 seconds) |
| 11:52:08 | <kuribas> | For example lambda case, pattern guards, ... |
| 11:53:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 11:55:54 | <sm> | I think people land on a lot of weak reasons to justify not studying haskell a bit |
| 11:56:28 | <sm> | I don't really blame them, but there are better reasons |
| 11:57:07 | <geekosaur> | nobody ever wants to admit they're scared of something… |
| 11:57:47 | → | odnes joins (~odnes@5-203-251-36.pat.nym.cosmote.net) |
| 11:57:53 | <sm> | k I'll say it, I'm Simon and I'm scared of nix[os] |
| 12:00:04 | <sm> | actually I should make a list, that'd probably be a useful exercise |
| 12:00:11 | <lortabac> | I think there is a subjective factor in these discussions that is never going to be solved |
| 12:00:12 | <maerwald[m]> | kuribas: uh, DataKinds qnd TypeFamilies 1 minute? xR |
| 12:00:47 | <lortabac> | just as I find Nix crazy and a waste of time, some people have the same opinion about Haskell |
| 12:00:54 | <lortabac> | that's fair |
| 12:01:07 | <lortabac> | nobody is right or wrong |
| 12:01:23 | <maerwald[m]> | I think it's objectively false claiming that most extensions take 1m to learn |
| 12:01:53 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 12:02:04 | × | littlebo1eep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 12:02:35 | <sm> | discussions generally aren't "solvable", but I'm enjoying this one and glad when I see bits of illumination getting out there |
| 12:02:45 | <geekosaur> | I like the *idea* of Nix. applying it to a different OS/distro strikes me as asking for trouble, but I don't quite have time to learn how NixOS is configured |
| 12:03:01 | <sm> | and getting in here too, of course! |
| 12:03:32 | <geekosaur> | I also don't like what I hear about conflicting package configurations, but it also doesn't surprise nme |
| 12:04:32 | → | califax joins (~califax@user/califx) |
| 12:07:31 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 12:07:48 | <maerwald[m]> | Took the Haskell community many years to recognize there's a problem with API breaking churn, constantly changing surface language and compiler stability. |
| 12:08:35 | <maerwald[m]> | And still, many people still believe the way to increase adoption is to push more esoteric features |
| 12:09:15 | <sm> | it's because of our history and evolutionary path. That creates a huge inertia |
| 12:09:35 | <hpc> | alternatively, keep pushing the state of the art as much as possible, until someday javascript developers don't realize they're secretly writing haskell98 with funny syntax |
| 12:09:36 | <sm> | takes time and money to shift |
| 12:10:02 | × | CiaoSen quits (~Jura@p200300c95738d2002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 12:10:08 | → | califax joins (~califax@user/califx) |
| 12:10:25 | <maerwald[m]> | sm: yep, tunnel view |
| 12:10:36 | <sm> | the Haskell community is much more diverse than mainstream languages I think |
| 12:11:31 | <sm> | it's interesting to more kinds of people |
| 12:12:02 | <maerwald[m]> | sm: I'm not sure |
| 12:12:46 | <maerwald[m]> | Java has a lot of engaged researchers too |
| 12:15:41 | <sm> | perhaps not Java then. But it had the industry focus from the start |
| 12:15:59 | <sm> | but more than say javascript, go, or python |
| 12:16:19 | <maerwald[m]> | I'm not really sure how you come to that conclusion honestly |
| 12:16:57 | <sm> | perhaps I'm being unclear - I mean js/go/python have less in them to interest CS researchers, for example |
| 12:17:11 | <kuribas> | maerwald: DataKinds is pretty easy if you know what a "kind" is. |
| 12:17:38 | <sm> | or to interest engineers needing high assurance |
| 12:17:49 | <maerwald[m]> | JavaScript got TypeScript and Flow. Two huge research projects |
| 12:18:33 | <maerwald[m]> | And react, revolutionizing the frontend framework space |
| 12:18:41 | <sm> | huge indeed, but aren't those coming from industry primarily. The diversity isn't quite as extreme |
| 12:19:27 | <sm> | the academic camp isn't as strong. I could be wrong. |
| 12:19:53 | <kuribas> | maerwald: and I found type families much less daunting then I expected. |
| 12:20:38 | <maerwald[m]> | sm: I think that's simply because you're more familiar with the haskell community |
| 12:21:03 | → | zincy joins (~zincy@213.205.194.63) |
| 12:21:32 | <maerwald[m]> | Also, a lot of research does come from industry |
| 12:21:57 | <sm> | I mean obviously everything in js world is much bigger than in haskell world, but if you imagine js at same size and stage of growth as haskell is now, I feel haskell has more diverse interests pulling it in different directions. Primarily the academic vs engineering interests. Just my 2c |
| 12:22:27 | <geekosaur[m]> | I'm not sure Tweag counts as industry |
| 12:22:51 | <maerwald[m]> | geekosaur: they have industry clients |
| 12:23:56 | <lortabac> | kuribas: type families are incredibily tricky, I've used them for years and I'm still surprised from time to time |
| 12:24:50 | <lortabac> | among other things: they are not parametric, they have different variants and they imply MonoLocalBinds |
| 12:24:57 | <maerwald[m]> | I think kuribas is dramatically oversimplifying |
| 12:26:23 | <maerwald[m]> | We can't solve issues of we don't recognize them |
| 12:26:48 | → | acidjnk_new joins (~acidjnk@p200300d0c7068b36d8e1b90c13cd8a15.dip0.t-ipconnect.de) |
| 12:27:28 | → | Topsi joins (~Topsi@dyndsl-095-033-021-202.ewe-ip-backbone.de) |
| 12:28:42 | <yrlnry> | Is there a tool that will dump out the contents of a `.hie` file in a human-readable form? |
| 12:29:08 | <sm> | maerwald++ |
| 12:29:16 | × | koz quits (~koz@121.99.240.58) (Ping timeout: 246 seconds) |
| 12:29:34 | <maerwald[m]> | The mixture of stockholm syndrome and "maybe you're not smart enough" sentiment is probably one of the reasons the entry barrier to haskell is still so high. Rust has a lot of very complicated features too, but they make a better job at making it accessible |
| 12:30:18 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 12:30:45 | <sm> | that has always been a high priority for them, it's not such a widely shared priority for us |
| 12:31:19 | <maerwald[m]> | "Just learn type families in one minute" |
| 12:31:21 | <sm> | many (not all) of us say we want it, but it doesn't usually come first |
| 12:31:44 | × | zincy quits (~zincy@213.205.194.63) (Remote host closed the connection) |
| 12:31:52 | → | dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net) |
| 12:32:02 | → | koz joins (~koz@121.99.240.58) |
| 12:33:46 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5) |
| 12:36:26 | <geekosaur> | yrlnry, possibly `ghc --show-iface` |
| 12:36:41 | <yrlnry> | I'll look at that, thanks. |
| 12:37:32 | <geekosaur> | not sure it'll work with a .hie file and older ghcs, "fat .hi files" are still kinda new |
| 12:39:40 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 12:44:02 | <yrlnry> | `--show-iface` is interesting, but for `.hi` files, seems not to work on `.hie`. There's a `hiedb` program which looks like it might be useful. |
| 12:46:12 | → | Topsi1 joins (~Topsi@dyndsl-095-033-021-202.ewe-ip-backbone.de) |
| 12:46:21 | <geekosaur> | yeh, that was what I was afraid of. there's at least two "hie" file types, one the extended .hi file and one the hie db |
| 12:46:37 | <geekosaur> | since then the extended hi file was simply merged with normal ones |
| 12:46:53 | <geekosaur> | don't know how to use hiedb though |
| 12:47:06 | <geekosaur> | at this point #haskell-language-server might be more helpful |
| 12:49:03 | × | Topsi quits (~Topsi@dyndsl-095-033-021-202.ewe-ip-backbone.de) (Ping timeout: 276 seconds) |
| 12:51:06 | → | yosef` joins (~user@user/yosef/x-2947716) |
| 12:58:01 | × | yosef` quits (~user@user/yosef/x-2947716) (Ping timeout: 244 seconds) |
| 12:58:24 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 12:58:50 | → | jgeerds joins (~jgeerds@55d45f48.access.ecotel.net) |
| 13:00:43 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 13:03:42 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 13:03:59 | → | califax joins (~califax@user/califx) |
| 13:06:21 | <BusConscious> | ok so I made some progress. I was not looking for getProcessStatus directly. Instead I am forking my progress duplicating the writing end of the pipe to stdout in the child process and using hGetContents to read from the reading end in the parent |
| 13:06:26 | <BusConscious> | so far so good |
| 13:06:58 | → | trisolaran joins (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
| 13:07:01 | <BusConscious> | issue is after reading from the pipe I need to kill my child process, but I am not allowed to kill it before that |
| 13:07:56 | <BusConscious> | because otherwise my pipe is broken |
| 13:08:07 | <geekosaur> | the problem there is you don't know when it's done writing |
| 13:08:28 | <geekosaur> | unless you have some kind of protocol with an end/done packet |
| 13:09:39 | <maerwald> | BusConscious: https://hackage.haskell.org/package/unix-2.7.2.2/docs/System-Posix-IO-ByteString.html#v:fdRead |
| 13:09:44 | <maerwald> | are you looking for that? |
| 13:09:53 | <maerwald> | it throws an exception on EOF |
| 13:10:11 | <geekosaur> | but you won't get eof from it until the process exits |
| 13:10:18 | <BusConscious> | geekosaur that may very well be the problem, but when I don't kill the child after reading or exit the child it appears to be working |
| 13:10:32 | <BusConscious> | except i'm no leaking processes |
| 13:10:40 | <geekosaur> | and if the process exits you need waitForProcess to reap the zombie |
| 13:11:15 | <maerwald> | BusConscious: you want the parent to get the child stdout/stderr? |
| 13:11:29 | <BusConscious> | the parent to get the child stdout |
| 13:11:36 | <maerwald> | yeah |
| 13:11:41 | <geekosaur> | there's a potential race condition here, you may need to read output in a separate thread |
| 13:11:44 | <BusConscious> | and then afterwards the child should terminate |
| 13:11:51 | <maerwald> | BusConscious: I have an implementation here: https://gitlab.haskell.org/haskell/ghcup-hs/-/blob/master/lib/GHCup/Prelude/Process/Posix.hs#L74-317 |
| 13:11:54 | <geekosaur> | sinceif you're waiting on the child you're not reading |
| 13:12:56 | → | shapr joins (~user@2600:4040:2d31:7100:9163:bb47:6e24:ceed) |
| 13:12:59 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 13:13:05 | × | dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 255 seconds) |
| 13:13:05 | <maerwald> | probably going through captureOutStreams is enough |
| 13:14:07 | × | raym quits (~raym@user/raym) (Ping timeout: 240 seconds) |
| 13:14:16 | → | califax joins (~califax@user/califx) |
| 13:14:17 | <BusConscious> | I don't really wait for the child I just read from the pipe using hGetContents which should read until EOF is found, but you're probably right, that I should not rely on the child being faster than the parent |
| 13:14:31 | <BusConscious> | because most likely it will be the other way around |
| 13:14:38 | × | frost quits (~frost@user/frost) (Ping timeout: 252 seconds) |
| 13:15:08 | → | raym joins (~raym@user/raym) |
| 13:15:29 | <BusConscious> | ok thank you now it works |
| 13:16:11 | × | [Leary] quits (~Leary]@122-58-228-205-vdsl.sparkbb.co.nz) (Ping timeout: 258 seconds) |
| 13:16:26 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 13:17:43 | × | infinity0 quits (~infinity0@185.112.146.113) (Ping timeout: 258 seconds) |
| 13:17:46 | <BusConscious> | I really need getProcessStatus |
| 13:18:02 | × | Pickchea quits (~private@user/pickchea) (Ping timeout: 255 seconds) |
| 13:19:33 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:b5bc:25b:5256:1595) |
| 13:20:05 | → | infinity0 joins (~infinity0@185.112.146.113) |
| 13:22:34 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 13:23:30 | × | gnyeki quits (~gnyeki@user/gnyeki) (Quit: leaving) |
| 13:23:53 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:b5bc:25b:5256:1595) (Ping timeout: 255 seconds) |
| 13:24:19 | → | zincy joins (~zincy@lfbn-bay-1-105-223.w83-193.abo.wanadoo.fr) |
| 13:26:20 | × | zincy quits (~zincy@lfbn-bay-1-105-223.w83-193.abo.wanadoo.fr) (Read error: Connection reset by peer) |
| 13:26:32 | → | zincy joins (~zincy@2a01:cb18:82de:bf00:7c30:ae5d:9b9b:c61d) |
| 13:26:35 | × | cfricke quits (~cfricke@user/cfricke) (Ping timeout: 255 seconds) |
| 13:28:30 | × | ashln quits (~ashln@98.38.236.123) (Ping timeout: 244 seconds) |
| 13:29:51 | × | acowley quits (~acowley@c-68-83-22-43.hsd1.nj.comcast.net) (Quit: ZNC - http://znc.in) |
| 13:35:15 | <BusConscious> | Why does fork(2) in unistd.h fork the calling thread, but forkProcess in Haskell not? |
| 13:35:28 | <BusConscious> | I somewhat stumbled upon that earlier today |
| 13:35:38 | → | gnyeki joins (~gnyeki@user/gnyeki) |
| 13:37:01 | <geekosaur> | forkProcess shuts down the Haskell runtime (including its manager threads, notwithstanding what merijn said earlier) before forking. I think this has to be done in the main thread |
| 13:38:42 | <geekosaur> | it's best not to rely on thread behavior around fork() anyway; as merijn said, all guarantees go out the window in a threaded program |
| 13:39:07 | <geekosaur> | because you have no idea what state any other thread is in and threads are *not* copied into the new process |
| 13:39:56 | <geekosaur> | (nor would othose other threads know they'd been copied, if they were, so things would quickly go awry) |
| 13:40:37 | <BusConscious> | I don't need multithreading in my shell interpreter .. I think? |
| 13:41:14 | <geekosaur> | you don't |
| 13:41:17 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 13:41:24 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 13:41:48 | <geekosaur> | shell interpreters are designed and intended to manage processes, not threads |
| 13:44:08 | → | [Leary] joins (~Leary]@122-58-228-205-vdsl.sparkbb.co.nz) |
| 13:44:10 | × | odnes quits (~odnes@5-203-251-36.pat.nym.cosmote.net) (Ping timeout: 240 seconds) |
| 13:44:16 | → | ashln joins (~ashln@98.38.236.123) |
| 13:44:34 | → | califax joins (~califax@user/califx) |
| 13:44:50 | × | jgeerds quits (~jgeerds@55d45f48.access.ecotel.net) (Ping timeout: 240 seconds) |
| 13:47:22 | × | yrlnry quits (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) (Remote host closed the connection) |
| 13:48:19 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 13:48:19 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 13:48:19 | → | wroathe joins (~wroathe@user/wroathe) |
| 13:57:50 | × | infinity0 quits (~infinity0@185.112.146.113) (Remote host closed the connection) |
| 13:59:04 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 13:59:53 | → | infinity0 joins (~infinity0@185.112.146.113) |
| 14:01:46 | → | califax joins (~califax@user/califx) |
| 14:01:55 | × | kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection) |
| 14:02:18 | → | Pickchea joins (~private@user/pickchea) |
| 14:15:30 | <Benzi-Junior> | is there a "sleep" function available in base or the STM package, I'm just not finding anything |
| 14:16:43 | × | merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds) |
| 14:16:43 | × | Vajb quits (~Vajb@n5ar9yynwxqg80e32-2.v6.elisa-mobile.fi) (Read error: Connection reset by peer) |
| 14:16:44 | <geekosaur> | Control.Concurrent.threadDelay |
| 14:17:14 | <Benzi-Junior> | ye, that's what I thought |
| 14:18:03 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 14:18:46 | <geekosaur> | pausing the whole process á la C's sleep() would break the I/O manager, so isn't a thing |
| 14:20:25 | <Benzi-Junior> | geekosaur, interesting, I was just looking to avoid having to import additional libraries to solve the task I've been set |
| 14:20:34 | <geekosaur> | be warned that threadDelay is in microseconds |
| 14:20:45 | <Benzi-Junior> | ye I already discovered that |
| 14:21:14 | <geekosaur> | afaik Control.Concurrent is in base |
| 14:21:34 | <Benzi-Junior> | question, why is Control.Concurrent.threadDelay available in ghci without importing it? |
| 14:21:52 | → | dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net) |
| 14:21:58 | <Benzi-Junior> | geekosaur, well that's what I thought after discovering ^ and that hoogle said so |
| 14:22:02 | <geekosaur> | ghci is magic, if you use a fully qualified name it implicitly imports it |
| 14:22:38 | <geekosaur> | runghc does the same, but ghc doesn't |
| 14:23:30 | → | shriekingnoise joins (~shrieking@201.231.16.156) |
| 14:25:31 | → | yrlnry joins (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) |
| 14:26:24 | <mrianbloom> | tomsmeding: My solution to that problem was to use an injective open type family. https://replit.com/@IanBloom/TestTypeFamilyGADT#Main.hs |
| 14:28:59 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 14:31:27 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 14:31:27 | → | califax joins (~califax@user/califx) |
| 14:33:54 | × | dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.5) |
| 14:39:08 | → | GascOwn joins (~gasc_own@151.16.46.77) |
| 14:43:19 | → | cfricke joins (~cfricke@user/cfricke) |
| 14:43:42 | → | merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) |
| 14:47:06 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 14:48:09 | → | califax joins (~califax@user/califx) |
| 14:49:31 | → | [_] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 14:49:31 | <sm> | wow, I didn't know that about ghci |
| 14:51:53 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 252 seconds) |
| 14:52:34 | × | hughjfchen quits (~hughjfche@vmi556545.contaboserver.net) (Quit: WeeChat 2.8) |
| 14:55:06 | → | hughjfchen joins (~hughjfche@vmi556545.contaboserver.net) |
| 14:57:26 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 14:58:25 | → | vicfred joins (~vicfred@user/vicfred) |
| 15:00:36 | × | Alleria quits (~textual@user/alleria) (Read error: Connection reset by peer) |
| 15:06:50 | × | Infinite quits (~Infinite@49.39.122.221) (Ping timeout: 252 seconds) |
| 15:07:30 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 15:07:40 | × | ubert quits (~Thunderbi@2a02:8109:abc0:6434:a6ac:910b:92e7:63a8) (Remote host closed the connection) |
| 15:09:43 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:c365:1120:4914:7262) (Quit: WeeChat 2.8) |
| 15:09:47 | × | [_] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 240 seconds) |
| 15:10:33 | × | yrlnry quits (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) (Remote host closed the connection) |
| 15:11:09 | → | yrlnry joins (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) |
| 15:15:10 | × | yrlnry quits (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) (Ping timeout: 240 seconds) |
| 15:16:29 | → | Tuplanolla joins (~Tuplanoll@91-159-69-1.elisa-laajakaista.fi) |
| 15:19:12 | → | Guest77 joins (~Guest77@2600:1700:6438:2810:65fe:5bd2:205c:e7f2) |
| 15:19:34 | → | dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net) |
| 15:21:10 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:b5bc:25b:5256:1595) |
| 15:21:20 | × | son0p quits (~ff@181.136.122.143) (Remote host closed the connection) |
| 15:25:26 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:b5bc:25b:5256:1595) (Ping timeout: 252 seconds) |
| 15:29:54 | × | GascOwn quits (~gasc_own@151.16.46.77) (Read error: Connection reset by peer) |
| 15:33:50 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 15:34:34 | × | mjs2600 quits (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Quit: ZNC 1.8.2 - https://znc.in) |
| 15:34:49 | → | mjs2600 joins (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) |
| 15:36:48 | → | califax joins (~califax@user/califx) |
| 15:38:36 | → | KCombinator joins (~KCombinat@118.179.211.17) |
| 15:39:19 | → | Infinite joins (~Infinite@49.39.115.183) |
| 15:39:27 | <KCombinator> | hello folks |
| 15:39:44 | <KCombinator> | this is an opinion question |
| 15:40:07 | <KCombinator> | I have been learning haskell on/off for a while now and I feel pretty confident in the basics |
| 15:40:25 | <KCombinator> | but then I tried to reinforce that understanding by teaching others |
| 15:40:40 | <KCombinator> | and before that teaching begins, I usually need to sell Haskell |
| 15:40:52 | <KCombinator> | since usually they're like, "I can just use Python bro" |
| 15:41:25 | <tdammers> | some wisdom from my own experience: |
| 15:41:28 | <KCombinator> | which is fine and dandy, but I find that Haskell is in a unique position where the mental framework you need to understand its value is developed while you learn it |
| 15:41:33 | <tdammers> | - you cannot convince someone against their will |
| 15:41:41 | <tdammers> | - meditate on the problem-solution ordering |
| 15:42:04 | <KCombinator> | "- meditate on the problem-solution ordering" |
| 15:42:08 | <c_wraith> | I don't think I'd try any stronger sell than "learning new stuff is fun, and Haskell is great for learning new stuff." |
| 15:42:09 | <KCombinator> | could you elaborate on this? |
| 15:42:16 | <tdammers> | - don't advocate for Haskell on the job until you're way past the beginner stage, because when something doesn't work, you will have to be able to fix it |
| 15:42:29 | → | yrlnry joins (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) |
| 15:42:36 | × | werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 276 seconds) |
| 15:42:59 | <maerwald> | I think I've never sold Haskell to someone. Why would you even do that |
| 15:43:05 | <tdammers> | the problem-solution ordering is a teaching concept, about 100 years old or so, and slowly gaining traction in today's education. the core idea is that you should always present the problem before the solution |
| 15:44:03 | <KCombinator> | c_wraith: sadly, not everyone is motivated by fun, hence the need for a down-to-earth pitch that goes like "hey you've got a broken tool; here's a better one" |
| 15:44:22 | <tdammers> | maerwald: for the monies, of course. like the shady guy on Sesame Street: "psst, hey you, wanna buy a haskell?" |
| 15:44:36 | <Rembane> | MONEY! |
| 15:44:42 | <maerwald> | if they don't wanna learn Haskell, I wouldn't teach them |
| 15:44:58 | <tdammers> | anyway, selling people in Blub Valley on a "better" programming language is extremely difficult and usually ends in frustration |
| 15:45:49 | <tdammers> | I've tried it with PHP folks, Python folks, Clojure folks, Java folks, and the result is always the same - someone who doesn't consider their current situation painful enough will simply not see any benefits |
| 15:45:57 | <Rembane> | KCombinator: Out of pure curiosity on my part, why do you want to teach Haskell? |
| 15:46:04 | <KCombinator> | tdammers: ah i see. that makes sense. the question i pose is basically, "what is the problem that haskell solves better than others and how?" |
| 15:46:31 | <KCombinator> | tdammers: i wouldn't mind standing by the dark alleys at night and dealing some ol' haskpills ;) |
| 15:46:57 | <tdammers> | the problem Haskell solves better is "most of programming", but explaining the "how" requires quite a lot of elaboration |
| 15:46:57 | <KCombinator> | Rembane: it's a strategy that's worked for me when I want to make sure I really understand something. I teach it. |
| 15:47:23 | <tdammers> | what Haskell brings to the table doesn't pay off until your project is reasonably large, complex, and has undergone a fair amount of organic growth |
| 15:48:09 | <KCombinator> | tdammers: yep, that's the exact trouble I have because with programming-in-the-small it's easy to point to a neat trick in your lang and go, "look ma! no hands" |
| 15:48:20 | <tdammers> | staying on top of that complexity through compiler-supported certainty is where Haskell shines. Haskell makes it easier to write code that is "obviously bug-free", easy and safe to refactor, easy to read, etc. |
| 15:48:28 | <Rembane> | KCombinator: That's cool. My hypothesis is that there are people out there who want to learn because they like programming languages, if you find any of those people it should be easier to learn Haskell by teaching them. |
| 15:48:30 | <KCombinator> | kind of hard to replicate that wow factor with Haskell since small programs just look like an exercise in sadomasochism |
| 15:48:55 | <Rembane> | I think the area where Haskell shines regardless of size of program is in interpreters and compilers. |
| 15:48:59 | <KCombinator> | Rembane: hmm..point taken |
| 15:49:08 | <geekosaur> | <--one of them |
| 15:49:15 | <tdammers> | indeed. Haskell in the small is not that much greater than most mainstream languages, and coming from an imperative language, you have to make quite a few sacrifices in order to reap the benefits |
| 15:49:18 | <KCombinator> | @geekos |
| 15:49:18 | <lambdabot> | Unknown command, try @list |
| 15:49:35 | <KCombinator> | geekosaur: could you wipe your brain so i can teach you haskell XD |
| 15:50:16 | <tdammers> | and yeah, compilers, interpreters, transformation tools, DSLs - to the extent that a Haskeller's first instinct with any given problem domain is "let's build a little EDSL that captures the problem domain, and then we'll simply write the solution in that" |
| 15:50:35 | <geekosaur> | wouldn't help much, I'm also strongly into self-learning |
| 15:50:51 | <KCombinator> | geekosaur: damn it :/ |
| 15:51:35 | <KCombinator> | tdammers: hmm...while we are on that topic, I think that makes for a pretty strong case for Haskell |
| 15:51:42 | <KCombinator> | the DSLs |
| 15:52:18 | <KCombinator> | the way I see it, all programming APIs are basically DSLs |
| 15:52:28 | <KCombinator> | but Haskell makes writing DSLs fun |
| 15:52:33 | <KCombinator> | as well as using them |
| 15:52:40 | <KCombinator> | okay maybe the last part not so much lol |
| 15:52:45 | <tdammers> | API and DSL are really just two ways of looking at the same thing |
| 15:52:53 | <KCombinator> | I shudder from the type errors I see sometimes :s |
| 15:53:00 | <tdammers> | but the "DSL" lens tends to be more useful as a user programmer |
| 15:53:18 | → | cosimone` joins (~user@93-44-186-171.ip98.fastwebnet.it) |
| 15:53:23 | <KCombinator> | tdammers: right |
| 15:53:56 | <geekosaur> | Haskell encourages thinking through a problem first and designing a proper solution up front, plus enforcing discipline that is useful in other languages (even untyped ones) |
| 15:54:10 | <Rembane> | KCombinator: Have you taken a look at Purescript btw? |
| 15:54:12 | × | cosimone quits (~user@2001:b07:ae5:db26:57c7:21a5:6e1c:6b81) (Ping timeout: 244 seconds) |
| 15:54:31 | <maerwald> | geekosaur: that's a bit far fetched imo |
| 15:55:39 | <KCombinator> | Rembane: nope, but i have heard of it |
| 15:57:48 | <Rembane> | KCombinator: Purescript is Haskell but for frontend web development and with strict semantics. This means that frontend web development can be done in Purescript and might be a smaller jump. |
| 15:58:09 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 15:59:06 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 258 seconds) |
| 15:59:17 | <KCombinator> | Rembane wow i feel like i was living under a rock lol |
| 15:59:44 | <maerwald> | Haskell won't make a better engineer per se. It might (for some) cause them to think more precisely about effects, data etc. |
| 16:00:00 | <tdammers> | geekosaur: IME, Haskell doesn't enforce "upfront design" at all - on the contrary, I find that Haskell makes it much easier to just start typing code and then progressively refining it to approach the correct solution |
| 16:00:07 | × | yoggurt[m] quits (~yoggurtma@2001:470:69fc:105::2:ba5) (Quit: You have been kicked for being idle) |
| 16:00:19 | <KCombinator> | Rembane thanks for that. this is actually a good in for me |
| 16:00:20 | <tdammers> | mainly because refactoring is so ridiculously safe and straightforward |
| 16:00:55 | <Rembane> | KCombinator: There are many good rocks to live under. :) |
| 16:00:57 | <Rembane> | KCombinator: No worries! |
| 16:01:00 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 16:01:05 | <KCombinator> | tdammers i agree. i always feel overwhelmed when using APIs in say, python |
| 16:01:08 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 16:01:08 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 16:01:08 | → | wroathe joins (~wroathe@user/wroathe) |
| 16:01:15 | <KCombinator> | too much stuff to keep in your head |
| 16:01:25 | <KCombinator> | Haskell feels idiot proof |
| 16:01:34 | <maerwald> | python is easy... you just have to remember that your unit tests always have to be 10x the size of your implementation |
| 16:01:44 | <Rembane> | Haskell makes a worse engineer when I'm not coding in Haskell. I'm like: "I'll just change this little thing here, the typeche... the test suite will catch any regressions!" |
| 16:01:45 | <KCombinator> | maerwald lol |
| 16:01:53 | <maerwald> | no... that's what I actually do in python |
| 16:01:56 | <maerwald> | and it works well then |
| 16:02:00 | → | Vajb joins (~Vajb@n5ar9yynwxqg80e32-2.v6.elisa-mobile.fi) |
| 16:02:31 | <KCombinator> | sadly unit tests are pretty rare at my work |
| 16:02:57 | <tdammers> | I have never gotten to the point where unit tests can guide refactorings the way types do in Haskell |
| 16:03:39 | <maerwald> | if you've a shitton of them... they do. It's just... well, a shitton of work |
| 16:03:58 | <KCombinator> | tdammers haha yeah i agree. i feel like unit tests often implement a duct-tape type system |
| 16:04:47 | <maerwald> | but if someone pays you for that nonsense, why not |
| 16:04:47 | <KCombinator> | i subscribe to the ethos of "dont work if the computer can do it" |
| 16:05:00 | <KCombinator> | but well, then you meet reality haha |
| 16:05:20 | → | econo joins (uid147250@user/econo) |
| 16:05:47 | <KCombinator> | i wonder if in the 23rd century our tools will be so advanced that unit tests will look like ancient hieroglyphics level tech |
| 16:06:33 | <maerwald> | I don't think there's anything that can replace unit tests. QuickCheck certainly can't, unless you're abusing it in ways it wasn't meant for |
| 16:06:33 | <KCombinator> | we have only been programming since like the 70s or so right so we're pretty much in a neophyte class discipline |
| 16:06:41 | <geekosaur> | may be there by the 22nd. ask someone born in the early 1900s |
| 16:07:10 | <maerwald> | but hey... unit tests test for expected regressions, so don't expect anything else |
| 16:07:51 | <maerwald> | the times they uncover logic bugs is probably zero |
| 16:09:11 | × | dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.5) |
| 16:09:27 | × | acidjnk_new quits (~acidjnk@p200300d0c7068b36d8e1b90c13cd8a15.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 16:09:42 | × | Infinite quits (~Infinite@49.39.115.183) (Quit: Client closed) |
| 16:11:27 | → | Infinite joins (~Infinite@49.39.115.183) |
| 16:20:11 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 258 seconds) |
| 16:34:12 | → | razetime joins (~quassel@49.207.193.240) |
| 16:40:21 | → | gdown joins (~gavin@h69-11-149-231.kndrid.broadband.dynamic.tds.net) |
| 16:42:17 | × | zincy quits (~zincy@2a01:cb18:82de:bf00:7c30:ae5d:9b9b:c61d) (Remote host closed the connection) |
| 16:42:18 | × | Vajb quits (~Vajb@n5ar9yynwxqg80e32-2.v6.elisa-mobile.fi) (Read error: Connection reset by peer) |
| 16:43:00 | → | zincy joins (~zincy@2a01:cb18:82de:bf00:7c30:ae5d:9b9b:c61d) |
| 16:43:05 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 16:44:55 | → | wonko- joins (~wjc@user/wonko) |
| 16:45:19 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 16:46:00 | <tdammers> | unit tests do serve a purpose, but out in the wild, I'd wager that 90% of unit tests would be better rewritten as property checks or types |
| 16:46:31 | <tdammers> | biggest problem with unit tests is that, unlike types, the don't automatically propagate |
| 16:47:23 | × | zincy quits (~zincy@2a01:cb18:82de:bf00:7c30:ae5d:9b9b:c61d) (Ping timeout: 252 seconds) |
| 16:47:47 | <KCombinator> | tdammers do you think the new hype around gradual typing provides a nice ramp to transition from only-tests to tests-and-types? |
| 16:50:10 | × | trisolaran quits (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 240 seconds) |
| 16:50:30 | <KCombinator> | I'm kind of late to that party. Only started to look into it because I kept seeing it in the pytorch docs (e.g., Union[String, Tensor] in Python for a Haskell Either) |
| 16:51:14 | <KCombinator> | Basically you need to use these annotations and a separate tool (mypy) to enforce types |
| 16:51:19 | <KCombinator> | kind of like typescript I guess |
| 16:52:22 | <KCombinator> | I gotta say though, my understanding of type systems is very rudimentary so the academic research wasn't very easy to get into |
| 16:52:44 | <tdammers> | I thought the 'gradual typing' hype had already died again |
| 16:52:55 | <tdammers> | python is just late to the party |
| 16:53:22 | <tdammers> | but anyway, I think "gradual typing" is kind of misguided and nowhere near as useful as it may seem |
| 16:54:01 | <tdammers> | the big big win with typed code is that you gain certainty - but that only works if *everything* is typed, or at least, if you can have clear enforced boundaries around the untyped stuff |
| 16:54:18 | <tdammers> | but if your starting point is "everything is untyped, and now we add some type annotations", you're unlikely to achieve that |
| 16:54:28 | <tdammers> | in short, type systems should be opt-out, not opt-in |
| 16:56:41 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:b5bc:25b:5256:1595) |
| 16:56:56 | × | ashln quits (~ashln@98.38.236.123) (Ping timeout: 272 seconds) |
| 16:57:09 | → | ashln joins (~ashln@98.38.236.123) |
| 16:58:01 | <sm> | https://www.extrema.is/articles/haskell-books/learn-haskell-blog-generator looks nice |
| 17:01:15 | × | razetime quits (~quassel@49.207.193.240) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 17:01:35 | <maerwald> | tdammers: IME, there's only a very small intersection of property tests and unit tests. It's just that people usually understand neither concept |
| 17:02:21 | <maerwald> | yes, you can always shove custom data into your arbitrary instance |
| 17:02:43 | → | zincy joins (~zincy@2a01:cb18:82de:bf00:7c30:ae5d:9b9b:c61d) |
| 17:02:44 | × | MajorBiscuit quits (~MajorBisc@c-001-029-035.client.tudelft.eduvpn.nl) (Ping timeout: 258 seconds) |
| 17:03:12 | <maerwald> | but I'd rather not rely on an arbitrary instance to create (for example) very specific filepaths such as: \\?\C:foo/bar |
| 17:05:31 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
| 17:06:11 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 17:06:56 | <maerwald> | and if you have very complex data, it's almost impossible to come up with a good generator that will emit a set with very specific properties |
| 17:07:29 | <Benzi-Junior> | Hey, if I have a "Monad m => m a" and a function "a -> b -> c" what is the appropriate way to use the output from the monad as the first argument for the function ? |
| 17:08:24 | <maerwald> | as in: Test.QuickCheck.elements can be abused as unit tests, yeah |
| 17:09:06 | <maerwald> | but it's a failure, because you have low variance |
| 17:10:36 | <dminuoso> | Is there a way to share some build-depends constraints between two or more cabal files? |
| 17:10:59 | <maerwald> | custom templating |
| 17:11:05 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 17:11:56 | geekosaur | wonders if 3.8's "import" works with files or only urls |
| 17:12:18 | <dminuoso> | geekosaur: They are not necessarily mutually exclusive |
| 17:12:26 | <dminuoso> | Given file:/// or the likes |
| 17:12:33 | <geekosaur> | true |
| 17:12:41 | <geekosaur> | unless it doesn't handle file: |
| 17:13:06 | <geekosaur> | rc1's out, so it's relatively easy to test |
| 17:13:22 | <maerwald> | dminuoso: that's for project files |
| 17:13:25 | <maerwald> | not cabal files |
| 17:13:43 | <dminuoso> | Ah I see |
| 17:14:17 | → | werneta joins (~werneta@137.79.206.133) |
| 17:14:22 | <maerwald> | that would be a disaster if cabal files would allow imports |
| 17:14:29 | <Rembane> | Benzi-Junior: They aren't really connected, are the a's related in some way? |
| 17:15:22 | <Benzi-Junior> | Rembane, same a |
| 17:15:31 | <geekosaur> | maerwald, it was added specifically to support fetching cabal.freeze files from stackage.org corresponding to various resolvers |
| 17:15:38 | <geekosaur> | so it may have other limitations |
| 17:15:44 | <maerwald> | geekosaur: I know |
| 17:16:41 | <sclv> | geekosaur: it handles both files and urls just fine |
| 17:17:03 | <Benzi-Junior> | I thought it should be >>= but I was wrong |
| 17:17:07 | <maerwald> | I don't see how that relates to your question though |
| 17:17:20 | <sclv> | or rather filesystem urls and http urls |
| 17:17:22 | <Rembane> | :t (>>=) -- Benzi-Junior |
| 17:17:24 | <lambdabot> | Monad m => m a -> (a -> m b) -> m b |
| 17:17:30 | <Rembane> | :t fmap -- Benzi-Junior |
| 17:17:32 | <lambdabot> | Functor f => (a -> b) -> f a -> f b |
| 17:17:41 | <geekosaur> | Benzi-Junior, the monads have to match so you can't just switch to ((->) e) mid-stream |
| 17:18:09 | <sclv> | but yeah there's absolutely no way to share build-depends constraints between different cabal files. one option would be merging the two cabal files into a single file with more targets, if the different things are that coupled |
| 17:18:45 | <maerwald> | I'd probably use dhall or something to generate the cabal files |
| 17:19:06 | <dminuoso> | I guess that can actually work for us. There's a bunch of executable targets, but we wont publish this on hackage anyway |
| 17:19:12 | × | zincy quits (~zincy@2a01:cb18:82de:bf00:7c30:ae5d:9b9b:c61d) (Ping timeout: 260 seconds) |
| 17:19:42 | × | mbuf quits (~Shakthi@122.174.45.107) (Quit: Leaving) |
| 17:20:26 | <dminuoso> | sclv: I guess an added benefit is that a single cabal file tends to behave nicer in HLS as well. |
| 17:21:14 | <dminuoso> | (If one package A depends on another B, and you modify files from package B, at least on my machine HLS doesnt automatically pick up these changes when switching back to A without restarting the lsp workspace) |
| 17:24:45 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 17:26:54 | × | Infinite quits (~Infinite@49.39.115.183) (Ping timeout: 252 seconds) |
| 17:27:29 | → | califax joins (~califax@user/califx) |
| 17:29:28 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 17:29:34 | × | kjak quits (~kjak@pool-108-45-56-21.washdc.fios.verizon.net) (Ping timeout: 246 seconds) |
| 17:30:06 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 17:30:36 | → | califax joins (~califax@user/califx) |
| 17:33:32 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 17:39:01 | → | Simon15 joins (~Simon@2001:4ca0:0:f237:ec6d:7c65:e03a:7bef) |
| 17:39:04 | × | cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.5) |
| 17:40:12 | → | sebastiandb_ joins (~sebastian@pool-108-31-128-56.washdc.fios.verizon.net) |
| 17:40:55 | → | califax joins (~califax@user/califx) |
| 17:44:32 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
| 17:44:41 | × | KCombinator quits (~KCombinat@118.179.211.17) (Quit: Client closed) |
| 17:45:08 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 17:46:08 | → | agumonkey joins (~user@2a01:e0a:8f9:d3e0:b117:81a8:33f6:93e7) |
| 17:46:34 | → | nate3 joins (~nate@98.45.169.16) |
| 17:48:50 | × | werneta quits (~werneta@137.79.206.133) (Ping timeout: 240 seconds) |
| 17:49:01 | → | zincy joins (~zincy@2a01:cb18:82de:bf00:7c30:ae5d:9b9b:c61d) |
| 17:52:22 | × | Simon15 quits (~Simon@2001:4ca0:0:f237:ec6d:7c65:e03a:7bef) (Quit: Client closed) |
| 17:53:08 | × | zincy quits (~zincy@2a01:cb18:82de:bf00:7c30:ae5d:9b9b:c61d) (Remote host closed the connection) |
| 17:53:21 | → | zincy joins (~zincy@2a01:cb18:82de:bf00:7c30:ae5d:9b9b:c61d) |
| 17:53:58 | → | _ht joins (~quassel@231-169-21-31.ftth.glasoperator.nl) |
| 17:54:58 | <Benzi-Junior> | http://ix.io/3ZHO < at the bottom, is my implementation of the helper function a sensible way to deal with a single agent ? |
| 17:57:47 | <Benzi-Junior> | and does anyone know of a way to do the "Delay" case without importing Control.Concurrent ? |
| 17:57:59 | <dminuoso> | What's wrong with importing Control.Concurrent? |
| 17:59:47 | <dminuoso> | Your atoms function is missing the Pure case, |
| 17:59:50 | × | mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 18:00:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 18:01:09 | <dminuoso> | Also you're not using the msg in the Receive case |
| 18:06:53 | × | ph88 quits (~ph88@ip5f5af71f.dynamic.kabel-deutschland.de) (Quit: Leaving) |
| 18:07:33 | → | odnes joins (~odnes@5-203-131-121.pat.nym.cosmote.net) |
| 18:08:18 | × | jrm quits (~jrm@user/jrm) (Quit: ciao) |
| 18:08:22 | → | unit73e joins (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) |
| 18:09:14 | × | pottsy quits (~pottsy@129.227.183.244) (Ping timeout: 265 seconds) |
| 18:10:01 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 18:10:25 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:b5bc:25b:5256:1595) (Remote host closed the connection) |
| 18:10:41 | <Benzi-Junior> | dminuoso, well so far I hadn't had to add additional libs and was wondering if I was missing something in Control.Concurrent.STM |
| 18:11:16 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 18:11:17 | <geekosaur[m]> | It's in base |
| 18:11:30 | × | Pickchea quits (~private@user/pickchea) (Ping timeout: 240 seconds) |
| 18:11:40 | <dminuoso> | Benzi-Junior: These are not separate libraries, they are just modules. |
| 18:15:53 | → | werneta joins (~werneta@137.78.30.207) |
| 18:16:16 | × | odnes quits (~odnes@5-203-131-121.pat.nym.cosmote.net) (Remote host closed the connection) |
| 18:16:33 | → | odnes joins (~odnes@5-203-131-121.pat.nym.cosmote.net) |
| 18:18:34 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 240 seconds) |
| 18:21:42 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 18:23:12 | → | jrm joins (~jrm@user/jrm) |
| 18:26:13 | × | zeenk quits (~zeenk@2a02:2f04:a013:9000:e45d:7fb3:ec71:e806) (Quit: Konversation terminated!) |
| 18:26:18 | × | alp quits (~alp@user/alp) (Ping timeout: 258 seconds) |
| 18:26:53 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 18:28:48 | → | alp joins (~alp@user/alp) |
| 18:30:22 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
| 18:30:55 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 18:34:42 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 18:38:12 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:b5bc:25b:5256:1595) |
| 18:44:19 | → | Pickchea joins (~private@user/pickchea) |
| 18:46:31 | → | gehmehgeh_ joins (~user@user/gehmehgeh) |
| 18:46:45 | × | jespada quits (~jespada@cpc121022-nmal24-2-0-cust171.19-2.cable.virginm.net) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 18:48:04 | × | gehmehgeh quits (~user@user/gehmehgeh) (Ping timeout: 240 seconds) |
| 18:48:06 | → | jespada joins (~jespada@cpc121022-nmal24-2-0-cust171.19-2.cable.virginm.net) |
| 18:49:11 | × | odnes quits (~odnes@5-203-131-121.pat.nym.cosmote.net) (Quit: Leaving) |
| 18:49:15 | × | nate3 quits (~nate@98.45.169.16) (Ping timeout: 256 seconds) |
| 18:51:20 | × | Guest77 quits (~Guest77@2600:1700:6438:2810:65fe:5bd2:205c:e7f2) (Quit: Client closed) |
| 18:55:40 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:b5bc:25b:5256:1595) (Remote host closed the connection) |
| 18:57:55 | × | yrlnry quits (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) (Remote host closed the connection) |
| 18:58:08 | × | sebastiandb_ quits (~sebastian@pool-108-31-128-56.washdc.fios.verizon.net) (Ping timeout: 244 seconds) |
| 18:58:19 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:b5bc:25b:5256:1595) |
| 18:58:26 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 18:59:05 | → | ulvarrefr joins (~user@185.24.53.152) |
| 19:00:51 | → | Guest77 joins (~Guest77@2600:1700:6438:2810:65fe:5bd2:205c:e7f2) |
| 19:02:17 | <ashln> | What's the (!) function in blaze-html? I believe it's operating over monoids (or semigroups?). |
| 19:03:54 | → | coot joins (~coot@213.134.190.95) |
| 19:04:33 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 19:04:35 | <geekosaur> | https://hackage.haskell.org/package/blaze-markup-0.8.2.3/docs/Text-Blaze.html#v:-33- |
| 19:05:11 | <ashln> | oh huh, hoogle failed me there - thanks :) |
| 19:07:49 | → | slack1256 joins (~slack1256@186.11.84.227) |
| 19:08:20 | <slack1256> | I recall there was a tool to generate flame-graphs on memory usage per cost-centre, but I cannot remember the name. Anyone can help me out? |
| 19:09:14 | <dminuoso> | ghc-prof-flamegraph ? |
| 19:09:55 | <slack1256> | That probably is! |
| 19:09:56 | × | chreekat2 quits (~b@dys-fmydgp1rbq8l5qb7t-3.rev.dnainternet.fi) (Ping timeout: 248 seconds) |
| 19:10:46 | <slack1256> | There was another, saboteur? it was french named. It was like a frontend to this one. |
| 19:12:00 | <slack1256> | It was profiteur! |
| 19:12:01 | <maerwald> | baguette? |
| 19:12:03 | <maerwald> | oh |
| 19:13:43 | → | roboguy joins (~roboguy@user/roboguy) |
| 19:14:50 | × | Guest77 quits (~Guest77@2600:1700:6438:2810:65fe:5bd2:205c:e7f2) (Quit: Client closed) |
| 19:15:14 | → | yrlnry joins (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) |
| 19:17:14 | × | chomwitt quits (~chomwitt@2a02:587:dc1f:5600:d683:3d28:fc15:22d4) (Quit: Leaving) |
| 19:17:37 | → | chomwitt joins (~chomwitt@2a02:587:dc1f:5600:d683:3d28:fc15:22d4) |
| 19:19:18 | <slack1256> | ghc-prof-flamegraph and profiteur are excelent tools to extend the value we get from .prof files (or their JSON equiv). But that info is only printed at the end of the program. If I want to know the memory usage of my program /while it is running/, I have to rely on manipulating the .hp files as told on here https://downloads.haskell.org/ghc/latest/docs/html/users_guide/profiling.html#manipulating-the-hp-file . Is there a newer alternative to that? may |
| 19:19:18 | <slack1256> | be using the eventlog or some other tool? |
| 19:27:12 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 19:28:43 | → | Guest27 joins (~Guest27@2601:281:d47f:1590::59a2) |
| 19:31:48 | → | sebastiandb_ joins (~sebastian@pool-108-31-128-56.washdc.fios.verizon.net) |
| 19:33:09 | <geekosaur> | I think you can run the eventlog to a socket and use that, but iirc ghc-eventlog-socket isn't too stable as yet (it's a hack) |
| 19:34:16 | × | ashln quits (~ashln@98.38.236.123) (Quit: Lost terminal) |
| 19:34:29 | → | slac16641 joins (~slack1256@191.125.99.201) |
| 19:35:49 | gehmehgeh_ | is now known as gehmehgeh |
| 19:36:22 | × | slack1256 quits (~slack1256@186.11.84.227) (Ping timeout: 244 seconds) |
| 19:37:00 | → | acidjnk_new joins (~acidjnk@p200300d0c7068b36d8e1b90c13cd8a15.dip0.t-ipconnect.de) |
| 19:39:01 | <dminuoso> | Where can I find the documentation on the Paths_ api? |
| 19:39:46 | → | money joins (~Gambino@user/polo) |
| 19:40:37 | × | money quits (~Gambino@user/polo) (Client Quit) |
| 19:40:46 | → | pavonia joins (~user@user/siracusa) |
| 19:40:57 | <geekosaur> | https://cabal.readthedocs.io/en/3.6/cabal-package.html#accessing-data-files-from-package-code is the best there is currently, I think |
| 19:41:27 | <dminuoso> | Thanks! How did you even find that? That full text search refused to yield fruitful results with `Paths_`? |
| 19:42:08 | <geekosaur> | I remembered that it wss part of the "Package description" chapter |
| 19:44:18 | <geekosaur> | right. Paths_ doesn't work but Paths_pkgname does |
| 19:44:26 | <geekosaur> | kinda not helpful |
| 19:45:06 | <__monty__> | It's like how GitHub's search wordsplits on _ and makes the code search useless if the search term is common words separated by _'s. |
| 19:45:13 | <dminuoso> | Im sure writing a full text search that is both accurate enough when you want it to be, but fuzzy enough when you dont know what you're looking for, is a very complicated business. |
| 19:45:29 | <dminuoso> | But still frustrating. |
| 19:45:48 | <dminuoso> | __monty__: That's okay, source code is not github's strength. |
| 19:46:25 | <dminuoso> | Im being almost serious even, the product does not revolve around code, but all the coordination ardount i |
| 19:48:26 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 19:48:52 | → | Guest77 joins (~Guest77@2600:1700:6438:2810:65fe:5bd2:205c:e7f2) |
| 19:48:58 | <Guest27> | Also feeding all of it to copilot :P |
| 19:51:25 | → | trisolaran joins (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
| 19:53:28 | × | Feuermagier_ quits (~Feuermagi@84.17.49.18) (Remote host closed the connection) |
| 19:54:07 | → | ashln joins (~ashln@98.38.236.123) |
| 19:54:59 | × | Pickchea quits (~private@user/pickchea) (Ping timeout: 256 seconds) |
| 19:55:38 | → | dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net) |
| 20:00:52 | × | Guest27 quits (~Guest27@2601:281:d47f:1590::59a2) (Quit: Client closed) |
| 20:02:02 | → | Guest27 joins (~Guest27@2601:281:d47f:1590::59a2) |
| 20:03:02 | × | jespada quits (~jespada@cpc121022-nmal24-2-0-cust171.19-2.cable.virginm.net) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 20:03:43 | × | _ht quits (~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection) |
| 20:05:20 | × | yrlnry quits (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) (Remote host closed the connection) |
| 20:06:15 | × | zincy quits (~zincy@2a01:cb18:82de:bf00:7c30:ae5d:9b9b:c61d) (Remote host closed the connection) |
| 20:07:23 | × | ashln quits (~ashln@98.38.236.123) (Quit: Lost terminal) |
| 20:07:34 | × | agumonkey quits (~user@2a01:e0a:8f9:d3e0:b117:81a8:33f6:93e7) (Remote host closed the connection) |
| 20:08:14 | → | agumonkey joins (~user@2a01:e0a:8f9:d3e0:b117:81a8:33f6:93e7) |
| 20:09:52 | slac16641 | is now known as slack1256 |
| 20:11:41 | → | kjak joins (~kjak@pool-108-31-68-111.washdc.fios.verizon.net) |
| 20:12:22 | → | ashln joins (~ashln@98.38.236.123) |
| 20:18:25 | <slack1256> | Is there an eventlog alternative to .hp files? |
| 20:18:51 | <slack1256> | Some tools to generate diagrams from it would be great |
| 20:21:37 | × | lyle quits (~lyle@104.246.145.85) (Quit: WeeChat 3.5) |
| 20:22:04 | → | dcoutts__ joins (~duncan@host86-144-78-203.range86-144.btcentralplus.com) |
| 20:23:21 | <geekosaur> | I think you'll have to ask in #ghc. eventlogs are still evolving and, while my understanding is that they're supposed to replace the other stuff at some point, I don't know how far along they are |
| 20:24:24 | × | dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.5) |
| 20:24:25 | × | dcoutts_ quits (~duncan@host86-144-78-203.range86-144.btcentralplus.com) (Ping timeout: 244 seconds) |
| 20:24:25 | × | dcoutts quits (~duncan@host86-144-78-203.range86-144.btcentralplus.com) (Ping timeout: 244 seconds) |
| 20:25:14 | → | stackdroid18 joins (14094@user/stackdroid) |
| 20:25:29 | → | dcoutts joins (~duncan@host86-144-78-203.range86-144.btcentralplus.com) |
| 20:29:12 | → | jespada joins (~jespada@cpc121022-nmal24-2-0-cust171.19-2.cable.virginm.net) |
| 20:30:31 | × | jespada quits (~jespada@cpc121022-nmal24-2-0-cust171.19-2.cable.virginm.net) (Client Quit) |
| 20:35:10 | × | haskl quits (~haskl@user/haskl) (Ping timeout: 240 seconds) |
| 20:35:10 | → | haskl[error] joins (~haskl@user/haskl) |
| 20:36:47 | × | trisolaran quits (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 255 seconds) |
| 20:38:53 | × | fjmorazan quits (~quassel@user/fjmorazan) (Quit: fjmorazan) |
| 20:38:57 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:b5bc:25b:5256:1595) (Remote host closed the connection) |
| 20:39:29 | → | fjmorazan joins (~quassel@user/fjmorazan) |
| 20:41:11 | → | zeenk joins (~zeenk@2a02:2f04:a013:9000:e45d:7fb3:ec71:e806) |
| 20:42:36 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 20:43:16 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:b5bc:25b:5256:1595) |
| 20:45:45 | → | nate3 joins (~nate@98.45.169.16) |
| 20:46:09 | × | sebastiandb_ quits (~sebastian@pool-108-31-128-56.washdc.fios.verizon.net) (Ping timeout: 276 seconds) |
| 20:47:34 | → | trisolaran joins (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
| 20:49:07 | → | trillp joins (~trillp@69.233.98.238) |
| 20:50:42 | × | nate3 quits (~nate@98.45.169.16) (Ping timeout: 276 seconds) |
| 20:50:42 | × | slack1256 quits (~slack1256@191.125.99.201) (Read error: Connection reset by peer) |
| 20:51:11 | → | slack1256 joins (~slack1256@186.11.84.227) |
| 20:51:39 | × | _73 quits (~user@pool-173-76-102-248.bstnma.fios.verizon.net) (Remote host closed the connection) |
| 20:57:38 | → | jmdaemon joins (~jmdaemon@user/jmdaemon) |
| 20:59:55 | → | califax joins (~califax@user/califx) |
| 21:08:07 | × | agumonkey quits (~user@2a01:e0a:8f9:d3e0:b117:81a8:33f6:93e7) (Ping timeout: 240 seconds) |
| 21:08:11 | <Bulby[m]> | I know for a fact that my toy lang will crash if it _makes_ more than `maxBound :: Int` variables. not has at one time, makes. |
| 21:08:26 | <Bulby[m]> | would there be a way to free up unused ids as a resource? |
| 21:08:59 | <geekosaur[m]> | you are now looking at garbage collection and possibly a free list |
| 21:09:26 | <Bulby[m]> | I sort of garbage collect already when exiting blocks and functions, but that doesn't free the ids because of my Counter effect |
| 21:09:58 | <geekosaur[m]> | right, that's where the free list comes in |
| 21:10:44 | <geekosaur[m]> | your `Counter` would become more complex because you'd have to feed ids or ranges back to it and it would allocate from those first before generating a new id |
| 21:11:15 | <Bulby[m]> | that means it couldn't run as an Input anymore... and would require a lot of work on it |
| 21:11:21 | <Bulby[m]> | https://github.com/TheDrawingCoder-Gamer/lox-hs/blob/rewrite/src/Polysemy/Counter.hs |
| 21:11:29 | <tomsmeding> | Bulby[m]: use Natural? |
| 21:11:38 | <Bulby[m]> | the general idea of my Counter effect rn |
| 21:11:45 | <tomsmeding> | https://hackage.haskell.org/package/base-4.16.0.0/docs/Numeric-Natural.html#t:Natural |
| 21:11:58 | <tomsmeding> | all nonnegative integers |
| 21:12:44 | <tomsmeding> | slightly less efficient than Int, but solves all problems |
| 21:12:47 | <Bulby[m]> | that still feels wasteful - wouldn't that mean as time goes on, the size of the id gets bigger and bigger? |
| 21:12:57 | <tomsmeding> | I mean, yes, but suuuuuper slowly |
| 21:13:11 | × | ashln quits (~ashln@98.38.236.123) (Quit: Lost terminal) |
| 21:13:20 | <monochrom> | Is that not better than crashing? |
| 21:13:24 | <tomsmeding> | sure, after 40-odd years you can run out of Int if you allocate like crazy, but you aren't going to run out of twice 64-bits |
| 21:13:33 | <monochrom> | Good, fast, cheap --- pick two. |
| 21:13:36 | <geekosaur[m]> | yes, it'd be wasteful over time but garbage collecting Ints is the only other approach |
| 21:13:36 | <Bulby[m]> | yes 😄 |
| 21:13:45 | <tomsmeding> | > 2 ^ 64 * 40 -- years |
| 21:13:46 | ← | trillp parts (~trillp@69.233.98.238) (Leaving) |
| 21:13:46 | <lambdabot> | 737869762948382064640 |
| 21:13:55 | <tomsmeding> | I think humanity doesn't exist anymore at that point |
| 21:14:11 | <tomsmeding> | and after that many years you start having a counter that is _three_ machine words long! |
| 21:14:13 | <Bulby[m]> | 40-odd years with Int? |
| 21:14:34 | × | matijja quits (~matijja@193.77.181.201) (Quit: ZNC 1.8.2 - https://znc.in) |
| 21:14:45 | <tomsmeding> | yesterday I computed that if you generate 1 new ID per CPU clock cycle, on a 5GHz processor, then it takes something like 45 years to overflow Int |
| 21:14:50 | → | matijja joins (~matijja@193.77.181.201) |
| 21:14:55 | <geekosaur[m]> | tomsmeding is suggesting a 128-bit integer |
| 21:15:05 | <geekosaur[m]> | I think |
| 21:15:17 | <Bulby[m]> | ... does a toy program need to be running for 45 years |
| 21:15:18 | <tomsmeding> | > 2 ^ 63 / (5 * 10 ^ 9) / 3600 / 24 / 365 |
| 21:15:20 | <lambdabot> | 58.4942417355072 |
| 21:15:25 | <tomsmeding> | ah, 58 years |
| 21:15:33 | <tomsmeding> | geekosaur[m]: no, I'm suggesting Natural |
| 21:15:49 | <tomsmeding> | and disproving that these IDs will get large that way |
| 21:16:08 | <monochrom> | Let's spread some myth. |
| 21:16:09 | <Bulby[m]> | if it takes that long I think it will be a non issue |
| 21:16:13 | <tomsmeding> | Bulby[m]: even if you want it to run for 58 years, you're not going to allocate one ID per clock cycle |
| 21:16:27 | <monochrom> | Natural is wasteful because each Natural allocates infinite memory. |
| 21:16:32 | × | matijja quits (~matijja@193.77.181.201) (Client Quit) |
| 21:16:40 | <Bulby[m]> | be quiet |
| 21:17:19 | → | matijja joins (~matijja@193.77.181.201) |
| 21:17:19 | <tomsmeding> | just https://downloadmoreram.com/ |
| 21:17:33 | → | Pickchea joins (~private@user/pickchea) |
| 21:18:38 | → | yrlnry joins (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) |
| 21:18:51 | <tomsmeding> | monochrom: does Integer then allocate twice infinite memory? |
| 21:18:54 | → | kenaryn joins (~aurele@89-88-44-27.abo.bbox.fr) |
| 21:19:10 | <Bulby[m]> | 😱 |
| 21:19:16 | <tomsmeding> | we need a Turing machine with a bidirectional tape then! |
| 21:19:16 | <monochrom> | This is where Hilbert's Hotel fits in. |
| 21:20:11 | → | jespada joins (~jespada@cpc121022-nmal24-2-0-cust171.19-2.cable.virginm.net) |
| 21:20:29 | <Bulby[m]> | is haskell even capable of running my vardecl stmt in one clock cycle |
| 21:20:50 | <monochrom> | This is where Hugs fits in. |
| 21:20:57 | <Bulby[m]> | WHAT |
| 21:20:59 | <tomsmeding> | Bulby[m]: no |
| 21:21:07 | <DigitalKiwi> | in 58 years they're going to come back and yell at us |
| 21:21:08 | <monochrom> | Hugs runs slower. |
| 21:21:20 | <monochrom> | If you can run Haskell quickly, you can run Haskell slowly! |
| 21:21:29 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 258 seconds) |
| 21:21:51 | → | jgeerds joins (~jgeerds@55d45f48.access.ecotel.net) |
| 21:22:09 | <tomsmeding> | Bulby[m]: https://ircbrowse.tomsmeding.com/day/lchaskell/2022/06/08?id=579269#trid579269 |
| 21:22:27 | <tomsmeding> | not even yesterday, this morning! |
| 21:25:11 | <int-e> | @time tomsmeding |
| 21:25:11 | <lambdabot> | Local time for tomsmeding is Wed, 08 Jun 2022 23:25:11 +0200 |
| 21:25:21 | × | Guest27 quits (~Guest27@2601:281:d47f:1590::59a2) (Quit: Client closed) |
| 21:25:35 | <tomsmeding> | where do you think ircbrowse's timezone comes from lol |
| 21:25:40 | <tomsmeding> | but @time is cool |
| 21:26:03 | <int-e> | though it relies on your client to be truthful... |
| 21:26:18 | <monochrom> | I actually set my client to lie. :) |
| 21:26:35 | <int-e> | tomsmeding: I don't know. I have this server set to UTC and a timezone configured for just this user. |
| 21:26:42 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 21:27:02 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 21:27:21 | <tomsmeding> | int-e: I should probably change ircbrowse to serve logs in a consistent timezone as well. Currently it takes the system timezone of my server, which happens to be my own. :) |
| 21:27:31 | <int-e> | eh. the real thing is, I didn't look closely at the timestamps in ircbrowse |
| 21:28:17 | <geekosaur> | my client lies as well, since I run it in utc so logs etc. are more useful given that others are in different timezones |
| 21:33:56 | × | Tuplanolla quits (~Tuplanoll@91-159-69-1.elisa-laajakaista.fi) (Quit: Leaving.) |
| 21:34:29 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 252 seconds) |
| 21:35:17 | × | acidjnk_new quits (~acidjnk@p200300d0c7068b36d8e1b90c13cd8a15.dip0.t-ipconnect.de) (Ping timeout: 258 seconds) |
| 21:35:58 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 21:39:46 | × | roboguy quits (~roboguy@user/roboguy) () |
| 21:45:53 | × | Guest77 quits (~Guest77@2600:1700:6438:2810:65fe:5bd2:205c:e7f2) (Quit: Client closed) |
| 21:47:02 | × | Unicorn_Princess quits (~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Remote host closed the connection) |
| 21:49:12 | × | trisolaran quits (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 276 seconds) |
| 21:50:31 | <EvanR> | Bulby[m], for your purposes pretending Int is unlimited might be practical. One data point here is sqlite's ROW_IDs. If they ever reach maxInt, then it will try some number of random Ints to try to find one that's not used |
| 21:50:39 | <EvanR> | if that doesn't work "soon" it crashes |
| 21:51:25 | × | stackdroid18 quits (14094@user/stackdroid) (Quit: hasta la vista... tchau!) |
| 21:52:04 | <EvanR> | I find it hard to believe this has ever happened without intentionally skipping most of the Intspace |
| 21:54:47 | <EvanR> | if you think about it, it sounds hard to get that strategy to actually crash. You'd need to have a LOT of IDs in use |
| 21:55:31 | → | stackdroid18 joins (~stackdroi@user/stackdroid) |
| 21:55:51 | <monochrom> | But we are talking about s/in use/was used/ |
| 21:56:14 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Read error: Connection reset by peer) |
| 21:56:18 | <geekosaur> | test 1: forcibly set max id, test "random id" |
| 21:56:21 | <EvanR> | Bulby[m] has a garbage collection algorithm to clear the heap of unused objects, which I assume means clearing the key |
| 21:56:39 | <geekosaur> | test 2: write a db with every ID in use (presumably the table contains only a rowid) |
| 21:56:42 | <monochrom> | No, the key is not cleared. |
| 21:56:49 | <EvanR> | why not... |
| 21:57:02 | <monochrom> | I don't know. |
| 21:57:03 | <Bulby[m]> | it doesn't clear the key... the counter counts up oblivious to what is happening in the heap |
| 21:57:07 | × | BusConscious quits (~martin@ip5f5acfd5.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
| 21:57:14 | <EvanR> | what bearing does this have on the strategy xD |
| 21:57:18 | <Bulby[m]> | because polysemy effects 🙂 |
| 21:57:20 | <monochrom> | "I respect your decision." |
| 21:58:00 | <EvanR> | anyway, this is similar to storing the runtime timer in a double... how many angels can dance at maxInt |
| 21:59:05 | <Bulby[m]> | https://github.com/TheDrawingCoder-Gamer/lox-hs/blob/rewrite/src/Polysemy/Counter.hs it counts up til maxInt |
| 21:59:27 | <EvanR> | geekosaur do you think it will crash, maybe because of birthday issues |
| 21:59:30 | <Bulby[m]> | iirc [0..] implicitly adds upper bound if it is an instance of Bounded also |
| 21:59:57 | <EvanR> | wat |
| 22:00:23 | <EvanR> | > [2^63 - 5 ..] |
| 22:00:25 | <lambdabot> | [9223372036854775803,9223372036854775804,9223372036854775805,922337203685477... |
| 22:00:41 | <EvanR> | > [2^63 - 3 ..] |
| 22:00:43 | <lambdabot> | [9223372036854775805,9223372036854775806,9223372036854775807,922337203685477... |
| 22:00:58 | × | kenaryn quits (~aurele@89-88-44-27.abo.bbox.fr) (Quit: leaving) |
| 22:01:07 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 22:01:07 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 22:01:07 | → | wroathe joins (~wroathe@user/wroathe) |
| 22:01:15 | <Bulby[m]> | > [2^63 -2 :: Int..] |
| 22:01:16 | <EvanR> | something must be wrong with my coffee |
| 22:01:16 | <Bulby[m]> | i can't do it on matrix lol |
| 22:01:18 | <lambdabot> | <hint>:1:13: error: Operator applied to too few arguments: Int.. |
| 22:01:23 | <monochrom> | Perhaps use Word instead of Int to delay the "inevitable". |
| 22:01:42 | <Bulby[m]> | """"inevitable"""" |
| 22:02:08 | <geekosaur> | Prelude> last [(maxBound::Int) - 10 ..] |
| 22:02:08 | <geekosaur> | 9223372036854775807 |
| 22:02:21 | → | kenaryn joins (~aurele@cre71-h03-89-88-44-27.dsl.sta.abo.bbox.fr) |
| 22:02:54 | <EvanR> | so your list is finite |
| 22:03:03 | <geekosaur> | also I'm surprised about not being able to do it on matrix, I was able to pm lambdabot with stuff earlier from my phone |
| 22:03:05 | <Bulby[m]> | idk why we needed to test that, it says it in the description of Enum |
| 22:03:15 | <Bulby[m]> | I was able to, just took a bit |
| 22:03:34 | <EvanR> | if you wear an ultrafinitist hat, then the problem ... is not a problem xD |
| 22:03:52 | <EvanR> | this list is as infinite as anything else |
| 22:04:34 | <monochrom> | This fibonacci list is as infinite as the previous two fibonacci lists combined. :) |
| 22:04:48 | × | wonko- quits (~wjc@user/wonko) (Ping timeout: 258 seconds) |
| 22:06:02 | × | jbrechtel quits (~Srain@162-226-201-119.lightspeed.tukrga.sbcglobal.net) (Remote host closed the connection) |
| 22:07:27 | → | wonko- joins (~wjc@user/wonko) |
| 22:07:28 | × | yrlnry quits (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) (Remote host closed the connection) |
| 22:07:29 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 22:09:12 | → | zebrag joins (~chris@user/zebrag) |
| 22:11:18 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 276 seconds) |
| 22:14:49 | × | jespada quits (~jespada@cpc121022-nmal24-2-0-cust171.19-2.cable.virginm.net) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 22:16:19 | → | jespada joins (~jespada@cpc121022-nmal24-2-0-cust171.19-2.cable.virginm.net) |
| 22:25:58 | <zzz> | its also as finite |
| 22:26:55 | <EvanR> | yeah a quotienting of concepts into one |
| 22:27:25 | × | gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 22:32:54 | × | sagax quits (~sagax_nb@user/sagax) (Excess Flood) |
| 22:33:04 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 22:33:05 | × | Pickchea quits (~private@user/pickchea) (Ping timeout: 256 seconds) |
| 22:38:12 | × | zeenk quits (~zeenk@2a02:2f04:a013:9000:e45d:7fb3:ec71:e806) (Quit: Konversation terminated!) |
| 22:43:16 | × | unit73e quits (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Ping timeout: 248 seconds) |
| 22:43:32 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 260 seconds) |
| 22:43:57 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:b5bc:25b:5256:1595) (Remote host closed the connection) |
| 22:48:53 | × | forell quits (~forell@user/forell) (Ping timeout: 258 seconds) |
| 22:49:40 | → | forell joins (~forell@user/forell) |
| 22:54:12 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 276 seconds) |
| 23:03:15 | → | dextaa2 joins (~DV@user/dextaa) |
| 23:03:23 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 23:04:31 | × | jespada quits (~jespada@cpc121022-nmal24-2-0-cust171.19-2.cable.virginm.net) (Ping timeout: 246 seconds) |
| 23:04:31 | × | dextaa quits (~DV@user/dextaa) (Ping timeout: 246 seconds) |
| 23:04:31 | dextaa2 | is now known as dextaa |
| 23:04:36 | × | Katarushisu quits (~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net) (Ping timeout: 258 seconds) |
| 23:07:39 | → | jespada joins (~jespada@cpc121022-nmal24-2-0-cust171.19-2.cable.virginm.net) |
| 23:11:04 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 23:13:27 | × | chomwitt quits (~chomwitt@2a02:587:dc1f:5600:d683:3d28:fc15:22d4) (Ping timeout: 240 seconds) |
| 23:14:19 | × | andrey_ quits (~andrey@p200300dbcf0a1200fc5b10ce87df1c2d.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 23:16:34 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds) |
| 23:18:04 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:b5bc:25b:5256:1595) |
| 23:18:51 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 23:19:57 | × | HotblackDesiato quits (~HotblackD@gateway/tor-sasl/hotblackdesiato) (Remote host closed the connection) |
| 23:19:57 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 23:19:57 | → | Katarushisu joins (~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net) |
| 23:20:23 | → | HotblackDesiato joins (~HotblackD@gateway/tor-sasl/hotblackdesiato) |
| 23:20:35 | → | califax joins (~califax@user/califx) |
| 23:33:25 | → | Katarushisu8 joins (~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net) |
| 23:34:02 | × | Katarushisu quits (~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net) (Ping timeout: 244 seconds) |
| 23:34:02 | Katarushisu8 | is now known as Katarushisu |
| 23:39:02 | × | motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 255 seconds) |
| 23:48:20 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 23:48:20 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 23:48:20 | → | wroathe joins (~wroathe@user/wroathe) |
| 23:52:24 | × | werneta quits (~werneta@137.78.30.207) (Ping timeout: 272 seconds) |
| 23:54:42 | × | alp quits (~alp@user/alp) (Ping timeout: 260 seconds) |
| 23:57:56 | × | xff0x quits (~xff0x@b133147.ppp.asahi-net.or.jp) (Ping timeout: 255 seconds) |
All times are in UTC on 2022-06-08.