Logs on 2023-09-19 (liberachat/#haskell)
| 00:00:16 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 00:02:26 | <EvanR> | as long as the type signature is somewhere near the top of the page of docs for function f |
| 00:02:48 | <EvanR> | big docs for function or method in other languages are sometimes hard to see or aren't there at all |
| 00:02:56 | <EvanR> | type signature that is |
| 00:06:21 | <jackdk> | The trouble is when the type signature is something like `Lens (Producer a' m x) (Producer a m x) (FreeT (Producer a' m) m x) (FreeT (Producer a m) m x)`, a fair amount of mental bootstrapping is required to get into the library's space at all |
| 00:07:41 | geekosaur | got that… he thinks |
| 00:08:39 | × | AlexZenon quits (~alzenon@178.34.160.78) (Ping timeout: 240 seconds) |
| 00:09:42 | → | libertyprime joins (~libertypr@210.55.232.12) |
| 00:10:04 | × | libertyprime quits (~libertypr@210.55.232.12) (Client Quit) |
| 00:10:10 | × | Alex_test quits (~al_test@178.34.160.78) (Ping timeout: 244 seconds) |
| 00:13:17 | → | AlexZenon joins (~alzenon@178.34.160.78) |
| 00:18:03 | × | geekosaur[c] quits (sid609282@xmonad/geekosaur) (Server closed connection) |
| 00:18:13 | → | geekosaur[c] joins (sid609282@xmonad/geekosaur) |
| 00:18:22 | <geekosaur> | meep? |
| 00:18:42 | → | Alex_test joins (~al_test@178.34.160.78) |
| 00:18:50 | <EvanR> | didn't hear anything |
| 00:21:05 | × | Inst quits (~Inst@120.244.192.250) (Ping timeout: 240 seconds) |
| 00:21:24 | <geekosaur> | irccloud just disconnected and reconnected my puppet for unknown reasons. you won't have noticed if you have joins/parts silenced |
| 00:24:03 | × | glowcoil quits (sid3405@id-3405.tinside.irccloud.com) (Server closed connection) |
| 00:24:12 | → | glowcoil joins (sid3405@id-3405.tinside.irccloud.com) |
| 00:25:55 | → | emmanuelux joins (~emmanuelu@user/emmanuelux) |
| 00:30:27 | × | Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
| 00:43:45 | × | smoothdev quits (~smoothdev@2a01:e0a:279:fb20:34b3:e617:3265:c11f) (Quit: smoothdev) |
| 00:45:40 | <institor> | geekosaur: yes libera has apparently been "shedding" connections recently |
| 00:45:50 | <institor> | i also received "Server closed connection" recently |
| 00:46:02 | <institor> | not sure why |
| 00:46:09 | <Axman6> | Should've written the server in Haskell |
| 00:56:38 | × | emmanuelux quits (~emmanuelu@user/emmanuelux) (Quit: au revoir) |
| 01:01:42 | → | wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com) |
| 01:01:42 | × | wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
| 01:01:42 | → | wroathe joins (~wroathe@user/wroathe) |
| 01:06:59 | → | merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl) |
| 01:10:39 | → | jargon joins (~jargon@184.101.67.95) |
| 01:11:37 | × | merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 01:15:27 | × | bontaq quits (~user@ool-45707d2c.dyn.optonline.net) (Ping timeout: 240 seconds) |
| 01:23:07 | × | hugo quits (znc@verdigris.lysator.liu.se) (Ping timeout: 264 seconds) |
| 01:27:03 | × | bradparker quits (sid262931@id-262931.uxbridge.irccloud.com) (Server closed connection) |
| 01:27:12 | → | bradparker joins (sid262931@id-262931.uxbridge.irccloud.com) |
| 01:35:27 | × | bliminse quits (~bliminse@user/bliminse) (Ping timeout: 240 seconds) |
| 01:36:10 | → | hugo joins (znc@verdigris.lysator.liu.se) |
| 01:37:43 | → | bliminse joins (~bliminse@user/bliminse) |
| 01:40:15 | × | otto_s quits (~user@p5de2f2af.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 01:42:14 | → | otto_s joins (~user@p5de2f287.dip0.t-ipconnect.de) |
| 01:45:14 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 244 seconds) |
| 01:46:05 | → | bilegeek joins (~bilegeek@2600:1008:b04f:99ac:7630:f7e4:827e:bff6) |
| 01:46:12 | → | nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
| 01:46:23 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 01:49:23 | → | Inst joins (~Inst@120.244.192.250) |
| 01:50:07 | → | danse-nr3__ joins (~francesco@rm-19-21-9.service.infuturo.it) |
| 01:50:55 | × | nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 244 seconds) |
| 01:57:41 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
| 02:00:55 | × | machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 264 seconds) |
| 02:04:08 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:a5af:6cb4:7eeb:d04f) (Remote host closed the connection) |
| 02:04:24 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:a5af:6cb4:7eeb:d04f) |
| 02:08:56 | × | jargon quits (~jargon@184.101.67.95) (Remote host closed the connection) |
| 02:27:08 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
| 02:27:08 | → | finn_elija joins (~finn_elij@user/finn-elija/x-0085643) |
| 02:27:08 | finn_elija | is now known as FinnElija |
| 02:28:49 | → | codaraxis___ joins (~codaraxis@user/codaraxis) |
| 02:29:02 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 02:29:24 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 02:32:43 | × | codaraxis__ quits (~codaraxis@user/codaraxis) (Ping timeout: 264 seconds) |
| 02:34:24 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 246 seconds) |
| 02:40:05 | × | td_ quits (~td@i5387090C.versanet.de) (Ping timeout: 240 seconds) |
| 02:41:52 | → | td_ joins (~td@i5387090C.versanet.de) |
| 02:42:05 | → | rekahsoft joins (~rekahsoft@bras-base-orllon1122w-grc-30-70-51-230-102.dsl.bell.ca) |
| 02:50:28 | → | libertyprime joins (~libertypr@125-237-102-54-adsl.sparkbb.co.nz) |
| 02:51:03 | × | jonrh quits (sid5185@id-5185.ilkley.irccloud.com) (Server closed connection) |
| 02:51:13 | → | jonrh joins (sid5185@id-5185.ilkley.irccloud.com) |
| 02:52:55 | × | rekahsoft quits (~rekahsoft@bras-base-orllon1122w-grc-30-70-51-230-102.dsl.bell.ca) (Ping timeout: 244 seconds) |
| 02:54:47 | → | merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl) |
| 02:55:24 | × | libertyprime quits (~libertypr@125-237-102-54-adsl.sparkbb.co.nz) (Quit: leaving) |
| 02:59:32 | → | sm joins (~sm@plaintextaccounting/sm) |
| 03:03:03 | × | T_S____ quits (sid501726@id-501726.uxbridge.irccloud.com) (Server closed connection) |
| 03:03:17 | → | T_S____ joins (sid501726@id-501726.uxbridge.irccloud.com) |
| 03:04:12 | × | sm quits (~sm@plaintextaccounting/sm) (Ping timeout: 260 seconds) |
| 03:05:03 | × | danse-nr3__ quits (~francesco@rm-19-21-9.service.infuturo.it) (Remote host closed the connection) |
| 03:09:27 | × | hugo quits (znc@verdigris.lysator.liu.se) (Ping timeout: 240 seconds) |
| 03:14:10 | × | waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 252 seconds) |
| 03:14:56 | → | hugo joins (znc@verdigris.lysator.liu.se) |
| 03:15:03 | × | sclv quits (sid39734@haskell/developer/sclv) (Server closed connection) |
| 03:15:13 | → | sclv joins (sid39734@haskell/developer/sclv) |
| 03:16:49 | → | sm joins (~sm@plaintextaccounting/sm) |
| 03:29:17 | × | merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 03:29:52 | × | Inst quits (~Inst@120.244.192.250) (Ping timeout: 260 seconds) |
| 03:35:05 | × | sm quits (~sm@plaintextaccounting/sm) (Ping timeout: 240 seconds) |
| 03:35:34 | → | Inst joins (~Inst@120.244.192.250) |
| 03:42:17 | × | haskl quits (~haskl@user/haskl) (Read error: Connection reset by peer) |
| 03:44:21 | → | libertyprime joins (~libertypr@203.96.203.44) |
| 03:44:25 | → | haskl joins (~haskl@user/haskl) |
| 03:46:49 | × | haskl quits (~haskl@user/haskl) (Read error: Connection reset by peer) |
| 03:48:47 | → | haskl joins (~haskl@user/haskl) |
| 04:00:10 | → | smoothdev joins (~smoothdev@91-169-231-236.subs.proxad.net) |
| 04:00:58 | → | aforemny_ joins (~aforemny@i59F516CB.versanet.de) |
| 04:01:19 | × | smoothdev quits (~smoothdev@91-169-231-236.subs.proxad.net) (Client Quit) |
| 04:02:09 | × | aforemny quits (~aforemny@i59f516ff.versanet.de) (Ping timeout: 244 seconds) |
| 04:05:35 | → | _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
| 04:12:59 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 246 seconds) |
| 04:19:05 | × | Square3 quits (~Square4@user/square) (Ping timeout: 240 seconds) |
| 04:19:11 | → | smoothdev joins (~smoothdev@91-169-231-236.subs.proxad.net) |
| 04:21:02 | × | smoothdev quits (~smoothdev@91-169-231-236.subs.proxad.net) (Client Quit) |
| 04:25:33 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
| 04:26:09 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 04:29:16 | → | smoothdev joins (~smoothdev@91-169-231-236.subs.proxad.net) |
| 04:30:42 | × | smoothdev quits (~smoothdev@91-169-231-236.subs.proxad.net) (Client Quit) |
| 04:38:08 | × | bilegeek quits (~bilegeek@2600:1008:b04f:99ac:7630:f7e4:827e:bff6) (Quit: Leaving) |
| 04:42:47 | × | libertyprime quits (~libertypr@203.96.203.44) (Ping timeout: 260 seconds) |
| 04:45:52 | → | merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl) |
| 04:50:04 | × | JeremyB99 quits (~JeremyB99@2607:fb90:8d60:ee30:fc70:2f19:34ae:43d) (Read error: Connection reset by peer) |
| 04:50:21 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 04:50:37 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Client Quit) |
| 04:52:27 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 04:53:30 | → | libertyprime joins (~libertypr@203.96.203.44) |
| 04:53:42 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 04:54:31 | → | acidjnk joins (~acidjnk@p200300d6e7072f09040c85b81d4e368d.dip0.t-ipconnect.de) |
| 04:57:27 | × | Inst quits (~Inst@120.244.192.250) (Ping timeout: 240 seconds) |
| 05:01:08 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
| 05:01:25 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 05:03:15 | → | wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com) |
| 05:03:15 | × | wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
| 05:03:15 | → | wroathe joins (~wroathe@user/wroathe) |
| 05:05:28 | → | Inst joins (~Inst@120.244.192.250) |
| 05:09:17 | → | JeremyB99 joins (~JeremyB99@2607:fb90:8d60:ee30:fc70:2f19:34ae:43d) |
| 05:11:35 | → | Square3 joins (~Square4@user/square) |
| 05:16:37 | × | hugo quits (znc@verdigris.lysator.liu.se) (Ping timeout: 260 seconds) |
| 05:17:28 | × | JeremyB99 quits (~JeremyB99@2607:fb90:8d60:ee30:fc70:2f19:34ae:43d) (Read error: Connection reset by peer) |
| 05:19:18 | <Inst> | is Cabal a strong Haskell codebase? |
| 05:19:32 | → | michalz joins (~michalz@185.246.207.215) |
| 05:19:34 | <Inst> | I'm having usual ambivalence about going through the codebase, for instance, I noticed a bunch of import Prelude () declares |
| 05:20:07 | × | merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 264 seconds) |
| 05:20:36 | <davean> | Inst: what about that? |
| 05:20:59 | <Inst> | that seems to be actually -XNoImplicitPrelude in non-language form, but importing instances? |
| 05:21:33 | <davean> | Well you can't not import instances. |
| 05:21:45 | <davean> | And yes, because language extensions are definitionally non-portable |
| 05:23:06 | <Inst> | well, the library enables type operators |
| 05:23:43 | <int-e> | ...what is the goal here... |
| 05:24:29 | <Inst> | what is goal referring to? |
| 05:24:40 | <int-e> | a purpose |
| 05:24:48 | <Inst> | my goal? |
| 05:25:19 | <int-e> | yes |
| 05:26:33 | <Inst> | just to understand Cabal |
| 05:26:53 | <Inst> | I need to look into the parser, but Cabal is beautiful in its own way, a 200k LOC (possibly 100K SLOC) codebase |
| 05:28:05 | <int-e> | so how does wondering aobut `import Prelude ()` vs NoImplicitPrelude help you with that? |
| 05:29:30 | <Inst> | I'm just trying to assess the quality of the codebase, import Prelude () is a weird idiom |
| 05:29:30 | → | hugo joins (znc@verdigris.lysator.liu.se) |
| 05:30:12 | <int-e> | Well, not really. It's pure Haskell rather than a weird GHC specific extension. |
| 05:30:29 | <int-e> | And it avoids clashing identifiers just fine. |
| 05:30:38 | <Inst> | the way I understand it, import declarations are not stateful |
| 05:30:54 | <Inst> | that is to say, they don't override previous import declarations |
| 05:30:58 | <int-e> | (Cabal is old enough that it was originally written to work with other Haskell implementations.) |
| 05:31:07 | <Inst> | yeah, UHC is mentioned |
| 05:31:26 | <Inst> | but I guess the point is that implicit prelude must be something defined by Haskell report |
| 05:31:36 | <Inst> | and import Prelude () overrides the implicit Prelude declaration |
| 05:31:43 | <int-e> | There is no previous import of Prelude... Prelude is *only* implicitely imported if it's not imported explicitly. |
| 05:32:01 | <davean> | Inst: Thats specificly covered in the report |
| 05:32:11 | <davean> | have you not read the report? |
| 05:32:17 | → | CiaoSen joins (~Jura@2a05:5800:29b:e900:664b:f0ff:fe37:9ef) |
| 05:32:19 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 05:32:46 | <Inst> | Honestly, no, I've skimmed it, I used to try to go through Haskell report when I was just starting out |
| 05:33:17 | <Inst> | but at that stage, I was unable to parse it profitably, so |
| 05:34:27 | <davean> | https://www.haskell.org/onlinereport/haskell2010/haskellch5.html#x11-1110005.6 |
| 05:34:47 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 05:35:10 | <Inst> | yeah, you're on cabal team |
| 05:35:14 | <Inst> | what you do is to import a custom prelude |
| 05:35:53 | <int-e> | to what end? |
| 05:36:57 | <Inst> | myself or cabal team? |
| 05:37:21 | → | coot joins (~coot@89-69-206-216.dynamic.chello.pl) |
| 05:37:39 | <int-e> | well you seem to be trying to talk on behalf on the cabal team there |
| 05:37:47 | <int-e> | so yourself |
| 05:38:40 | <Inst> | "What you do is to import a custom prelude" (They're already importing a custom prelude) |
| 05:38:54 | <Inst> | I got confused for a bit because I see use of fmap operator, and there's no explicit import. |
| 05:39:06 | <Inst> | Not an imperative, a descriptive statement. |
| 05:39:33 | <davean> | You still have to deal with Prelude being implicite. You don't know whats in an arbitrary prelude. This is how you safely work with various haskell implimentations |
| 05:39:48 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 244 seconds) |
| 05:40:06 | <int-e> | Ah, you must be talking about Distribution.Compat.Prelude stuff. |
| 05:41:26 | <int-e> | So this *is* a custom prelude, for coping with the evolution of and different versions of base |
| 05:41:49 | <Inst> | I'm not sure if my bringing up this conversation topic is unwelcome? |
| 05:41:53 | × | _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht) |
| 05:42:11 | <Inst> | Like I said, I find Cabal fascinating, GHC is definitely going to be beyond my ken for quite some time |
| 05:42:30 | <Inst> | also, GHC has some interesting totally redundant do keywords |
| 05:42:47 | <int-e> | Regardless, there's nothing wrong with or smelly about `import Prelude ()`. |
| 05:43:17 | <Inst> | Well, it's my fault, I misunderstood the idiom. |
| 05:44:11 | <int-e> | I've used "superfluous" `do` myself for uniformity when writing monadic code. |
| 05:44:35 | × | Square3 quits (~Square4@user/square) (Ping timeout: 240 seconds) |
| 05:44:41 | <Inst> | I also got recommended to try pandoc code base |
| 05:44:53 | <Inst> | as an example of a canonical "this is professional, high-quality Haskell that in theory can be accessible" |
| 05:45:13 | <Inst> | cabal project has tautologically adroit usage of cabal,project and *.cabal |
| 05:45:45 | <Inst> | https://gitlab.haskell.org/ghc/ghc/-/blob/master/ghc/Main.hs#146 <---note the do usage here |
| 05:46:13 | → | mysl joins (~mysl@user/mysl) |
| 05:47:10 | <monochrom> | This is interesting. We keep hearing the advice "read some real code and learn from it". I see now what's wrong with that. |
| 05:47:31 | <monochrom> | Receivers of that advice interpret it as "in a vacuum". |
| 05:47:58 | → | nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
| 05:49:26 | <monochrom> | But real code is never in a vacuum. Firstly it serves a purpose (or even multiple purposes) and that affects a lot of choices made. Secondly it depends on what kind of people are intended to be collaborators. Thirdly it also depends on a lot of incidental or even accidental constraints like "this has to work for 5 incompatible compilers". etc etc etc. |
| 05:51:48 | <Inst> | That's sort of the "beauty" of it, no? That is to say, you can read and understand the context of the code from the code structure itself. |
| 05:52:47 | × | nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 260 seconds) |
| 05:53:24 | <davean> | Inst: Are you sure you're right? |
| 05:53:52 | <davean> | Also I figured out your GHC do exmaple, its pretty obvious why it is that way |
| 05:54:32 | × | dtman34 quits (~dtman34@2601:447:d000:93c9:e3fb:cd8e:9d7a:53c5) (Ping timeout: 260 seconds) |
| 05:55:06 | <Inst> | i'm assuming it's to make clear that it's quoting a monadic action |
| 05:55:14 | <davean> | Nope |
| 05:55:30 | <davean> | Inst: your GHC thing first off A) there absolutely is a reason that do is there B) your claim above is somewhat disproven by this example of yours |
| 05:55:49 | <davean> | look at the commit that introduces it. |
| 05:56:10 | <davean> | that do is *vestigial* it *was* required when that code was writen |
| 05:56:22 | <davean> | the code has changed, but they didn't restructure other code that had no reason to be touched |
| 05:57:05 | <davean> | it use to "exitWith ExitSuccess" after the case. |
| 05:58:03 | <davean> | Its vestigial, not redundent |
| 05:59:51 | <int-e> | I'm so confused, aren't we talking about this `do`? https://gitlab.haskell.org/ghc/ghc/-/commit/1c1980863810c6b1bbed2ebbcce882a0f9144ade#519f43ef6302b87fec67179ff5343fb9706e9748_113_98 |
| 06:00:53 | <int-e> | Which really isn't required. (I'd also prefer it to be at the end of the previous line, but whatever) |
| 06:01:33 | <davean> | Thats the removal, not the introdxuction, look in the deleted lines |
| 06:01:56 | <int-e> | AH |
| 06:01:57 | <int-e> | thanks |
| 06:02:37 | <Inst> | So, I'll ask the obvious question: why hasn't it been removed? |
| 06:02:48 | <int-e> | (not sure why I didn't do that on my own. sigh.) |
| 06:02:53 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 06:03:22 | <int-e> | because it was there and doesn't hurt |
| 06:03:23 | <davean> | Inst: Its formally the same - why make merges hard? |
| 06:04:13 | <Inst> | I hope I haven't been too irritating in getting you to educate me. |
| 06:04:14 | <int-e> | Could it have been removed with that commit? Sure. But it wasn't. |
| 06:04:34 | <int-e> | . o O ( That hope is entirely unfounded. ) |
| 06:05:14 | <davean> | I mean who would anyone making the change that commit did look for that do to remove it anyway? |
| 06:05:17 | <Inst> | Explicitly, I've been irritating with this question? |
| 06:05:22 | <davean> | one of the properties of haskell is we don't have to |
| 06:05:33 | <int-e> | davean's point explains why it hasn't been removed in the meantime (assuming anyone even noticed it) |
| 06:10:08 | <Inst> | I... don't get it, tbh, have I caused offense? |
| 06:10:14 | <davean> | Anyway, I think this is a good example of why reading the code alone doesn't work. |
| 06:10:46 | → | chele joins (~chele@user/chele) |
| 06:10:50 | <Inst> | via sclv, I'm told Cabal team is overworked, so I wouldn't have been surprised if QC got cut, and rae I think reported that GHC's code base was on shaky foundations as to why he couldn't move ahead with Dependent Haskell |
| 06:11:27 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 260 seconds) |
| 06:11:50 | × | hpc quits (~juzz@ip98-169-35-163.dc.dc.cox.net) (Ping timeout: 244 seconds) |
| 06:12:29 | <davean> | Inst: I don't think anymore minds your questions |
| 06:13:53 | → | hpc joins (~juzz@ip98-169-35-163.dc.dc.cox.net) |
| 06:14:20 | <Inst> | So, I mean, on one hand, the experience and skill of the collaborators is immense, on the other hand, it's a real world project; i.e, it's closer to a repair shop or lab in operation than "FizzBuzz Enterprise Edition", which is some overpolished toy intended as a joke. |
| 06:15:11 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
| 06:15:53 | → | sm joins (~sm@plaintextaccounting/sm) |
| 06:16:03 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 06:18:03 | × | idnar quits (sid12240@debian/mithrandi) (Server closed connection) |
| 06:18:14 | → | idnar joins (sid12240@debian/mithrandi) |
| 06:18:25 | <davean> | I would not call "FizzBuzz Enterprise Edition" polished |
| 06:20:04 | → | smoothdev joins (~smoothdev@91-169-231-236.subs.proxad.net) |
| 06:22:56 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 06:23:54 | <Inst> | What would you use as an example instead, then? |
| 06:24:42 | <Inst> | And, if it's not too irritating, is there any project / library you might recommend as a platonic ideal of a Haskell project? |
| 06:25:17 | <davean> | "FizzBuzz Enterprise Edition" is litterly *miss application of patterns people see* |
| 06:27:49 | <institor> | fizzbuzz enterprise edition is like using a centrifuge to prepare a solution of sugar and tap water |
| 06:28:22 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 260 seconds) |
| 06:28:28 | <monochrom> | Wait, so this Fizzbuzz Enterprise Edition is not made up? |
| 06:28:41 | <institor> | https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition |
| 06:29:04 | <institor> | i've poked around this repo multiple times and i still can't tell where the actual logic is |
| 06:29:55 | <jackdk> | My favourite over-engineered fizzbuzz is https://themonadreader.files.wordpress.com/2014/04/fizzbuzz.pdf , which also manages to be quite instructive |
| 06:29:56 | <davean> | Its a litteral *joke* |
| 06:31:15 | <davean> | "So badly done its funny" |
| 06:31:23 | <monochrom> | Heh |
| 06:32:12 | <Inst> | I don't know Java, I had heard of the package but assumed it was overengineered and overpolished, in reality, it's only overly contrived. |
| 06:32:41 | <institor> | why not read the XMonad source or something |
| 06:33:01 | <institor> | it's written in haskell, it's not a very large codebase, and it's built to be user-extensible so you can actually work with the codebase and do something with it |
| 06:33:09 | <Inst> | Would you recommend the XMonad project, then? I had heard they don't have the labor available to move it to Wayland, unfortunately. |
| 06:33:10 | <institor> | instead of passively consuming the source |
| 06:33:36 | <Inst> | Ehhh, in my case, I'm still trying to build a parser for my project for cabal files. |
| 06:34:16 | <Inst> | Exact parser, rather. That means that I need to understand how the cabal parser works, since it was reported that it's, ummm, unpredictable with the rarely-used braces option. |
| 06:34:17 | → | JeremyB99 joins (~JeremyB99@2607:fb90:8d60:ee30:fc70:2f19:34ae:43d) |
| 06:34:21 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 06:34:46 | <Inst> | So reading over Cabal, as monochro m mentioned, I get an idea of the context in which the parser exists. |
| 06:35:02 | <institor> | i don't know if cabal is really exemplary software |
| 06:35:08 | × | smoothdev quits (~smoothdev@91-169-231-236.subs.proxad.net) (Quit: smoothdev) |
| 06:35:26 | <Inst> | Or, if it's reasonable for me to aspire to contribute to it within the span of a year. |
| 06:36:14 | → | smoothdev joins (~smoothdev@91-169-231-236.subs.proxad.net) |
| 06:36:48 | <institor> | have you gone through the issue tracker |
| 06:37:17 | → | merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl) |
| 06:37:48 | <Inst> | Or the pull release queue? |
| 06:37:55 | <Inst> | ugh |
| 06:38:02 | <Inst> | pull request |
| 06:38:05 | × | JeremyB99 quits (~JeremyB99@2607:fb90:8d60:ee30:fc70:2f19:34ae:43d) (Read error: Connection reset by peer) |
| 06:38:16 | <institor> | sometimes they label good starter issues |
| 06:38:19 | <institor> | just pick one and go with it |
| 06:38:34 | → | codaraxis__ joins (~codaraxis@user/codaraxis) |
| 06:38:40 | <Inst> | Thanks for the suggestion. |
| 06:42:15 | × | codaraxis___ quits (~codaraxis@user/codaraxis) (Ping timeout: 246 seconds) |
| 06:42:22 | × | merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 06:44:55 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:4096:dbe8:3b65:83c5) |
| 06:50:53 | → | dtman34 joins (~dtman34@2601:447:d000:93c9:a832:b3a1:c57:ffa2) |
| 06:51:03 | × | integral quits (sid296274@user/integral) (Server closed connection) |
| 06:51:16 | → | integral joins (sid296274@user/integral) |
| 06:52:17 | × | michalz quits (~michalz@185.246.207.215) (Ping timeout: 260 seconds) |
| 06:53:08 | <Inst> | but, honestly, despite any issues with Cabal codebase, I still find it beautiful |
| 06:54:46 | → | danza joins (~francesco@na-19-75-108.service.infuturo.it) |
| 06:57:53 | → | _0xa joins (~user@user/0xa/x-3134607) |
| 06:58:08 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 06:58:16 | → | ursa-major joins (~ursa-majo@37.19.210.38) |
| 06:58:33 | → | fendor joins (~fendor@2a02:8388:1640:be00:aab:1226:f274:5021) |
| 06:59:34 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 07:02:38 | <sm> | that's the spirit! |
| 07:03:05 | <sm> | #hackage is where the Cabal devs hang out, by the way |
| 07:04:16 | <Inst> | I'm mirrored via Matrix. |
| 07:06:34 | → | cfricke joins (~cfricke@user/cfricke) |
| 07:07:46 | × | sabino quits (~sabino@user/sabino) (Quit: Lambda _ -> x) |
| 07:09:01 | aforemny_ | is now known as aforemny |
| 07:12:15 | × | sm quits (~sm@plaintextaccounting/sm) (Quit: sm) |
| 07:16:57 | × | _0xa quits (~user@user/0xa/x-3134607) (Remote host closed the connection) |
| 07:18:32 | × | danza quits (~francesco@na-19-75-108.service.infuturo.it) (Ping timeout: 260 seconds) |
| 07:19:11 | × | fendor quits (~fendor@2a02:8388:1640:be00:aab:1226:f274:5021) (Remote host closed the connection) |
| 07:20:30 | → | fendor joins (~fendor@2a02:8388:1640:be00:aab:1226:f274:5021) |
| 07:30:03 | × | conjunctive quits (sid433686@id-433686.helmsley.irccloud.com) (Server closed connection) |
| 07:30:13 | → | conjunctive joins (sid433686@id-433686.helmsley.irccloud.com) |
| 07:36:03 | × | cbarrett quits (sid192934@id-192934.helmsley.irccloud.com) (Server closed connection) |
| 07:36:12 | → | cbarrett joins (sid192934@id-192934.helmsley.irccloud.com) |
| 07:43:04 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 07:46:52 | × | acidjnk quits (~acidjnk@p200300d6e7072f09040c85b81d4e368d.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 07:47:16 | → | acidjnk joins (~acidjnk@p200300d6e7072f09040c85b81d4e368d.dip0.t-ipconnect.de) |
| 07:56:38 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 08:02:07 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 264 seconds) |
| 08:03:31 | → | gmg joins (~user@user/gehmehgeh) |
| 08:11:39 | <Inst> | this is honestly so fascinating |
| 08:12:37 | <Inst> | here, someone's using long type variables idiom, whereas in other parts of the codebase, it's traditional haskell single letter type variables |
| 08:13:13 | → | jackneill__ joins (~Jackneill@20014C4E1E062E00A473EFF2719A535F.dsl.pool.telekom.hu) |
| 08:13:40 | → | __monty__ joins (~toonn@user/toonn) |
| 08:26:06 | × | phma quits (phma@2001:5b0:215a:ad98:b113:d71c:5609:dd28) (Read error: Connection reset by peer) |
| 08:26:30 | → | merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl) |
| 08:26:55 | → | phma joins (~phma@host-67-44-208-47.hnremote.net) |
| 08:31:46 | → | ubert joins (~Thunderbi@91.141.40.168.wireless.dyn.drei.com) |
| 08:33:03 | × | snek quits (sid280155@id-280155.lymington.irccloud.com) (Server closed connection) |
| 08:33:12 | → | snek joins (sid280155@id-280155.lymington.irccloud.com) |
| 08:34:47 | → | JeremyB99 joins (~JeremyB99@2607:fb90:8d60:ee30:fc70:2f19:34ae:43d) |
| 08:36:03 | × | iphy quits (sid67735@id-67735.lymington.irccloud.com) (Server closed connection) |
| 08:36:13 | → | iphy joins (sid67735@id-67735.lymington.irccloud.com) |
| 08:38:48 | × | JeremyB99 quits (~JeremyB99@2607:fb90:8d60:ee30:fc70:2f19:34ae:43d) (Read error: Connection reset by peer) |
| 08:39:43 | → | danse-nr3 joins (~francesco@rm-19-39-103.service.infuturo.it) |
| 08:39:49 | × | gmg quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 08:41:19 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:a5af:6cb4:7eeb:d04f) (Ping timeout: 245 seconds) |
| 08:44:21 | × | lottaquestions_ quits (~nick@2607:fa49:503d:b200:f390:54fb:be02:a16f) (Quit: Konversation terminated!) |
| 08:44:44 | → | eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
| 08:45:03 | × | Guest3051 quits (sid1055@id-1055.tinside.irccloud.com) (Server closed connection) |
| 08:45:34 | → | Guest3051 joins (sid1055@id-1055.tinside.irccloud.com) |
| 08:48:11 | → | lottaquestions joins (~nick@2607:fa49:503d:b200:c12f:231b:a760:9783) |
| 08:48:31 | × | _xor quits (~xor@ip-50-5-233-250.dynamic.fuse.net) (Quit: Ping timeout (120 seconds)) |
| 08:50:21 | → | _xor joins (~xor@ip-50-5-233-250.dynamic.fuse.net) |
| 08:50:54 | × | econo_ quits (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity) |
| 08:55:49 | → | lisbeths joins (uid135845@id-135845.lymington.irccloud.com) |
| 08:56:43 | <institor> | https://degoes.net/articles/insufficiently-polymorphic |
| 08:59:06 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 08:59:41 | × | smoothdev quits (~smoothdev@91-169-231-236.subs.proxad.net) (Quit: smoothdev) |
| 09:00:02 | × | merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 09:00:38 | → | smoothdev joins (~smoothdev@91-169-231-236.subs.proxad.net) |
| 09:06:58 | <[exa]> | "descriptive variable names are a code smell" ok whoa I will need to confront pythonfolk with this |
| 09:07:15 | → | Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
| 09:08:16 | × | smoothdev quits (~smoothdev@91-169-231-236.subs.proxad.net) (Quit: smoothdev) |
| 09:09:10 | <dminuoso> | [exa]: Yeah, its why I use lsp-mode to automatically rename identifiers to random 3 letter combinations. |
| 09:09:20 | <dminuoso> | Ever since it stopped smelling in my office. |
| 09:09:32 | × | hyiltiz quits (~hyiltiz@2603-8080-1f00-082f-c970-1295-69c1-54c4.res6.spectrum.com) (Ping timeout: 255 seconds) |
| 09:10:08 | <int-e> | (well, former office, they fired me because nobody could make sense of my code) |
| 09:10:19 | <Inst> | also, https://contributors.scala-lang.org/t/is-john-de-goes-a-respected-member-of-the-scala-community/3659 |
| 09:10:20 | <probie> | Why do you need random 3 letter combinations? You've got all the alphabets in unicode to work with |
| 09:10:53 | <int-e> | the irony is that we don't even pick random single letter identifiers |
| 09:11:15 | <int-e> | f for function, x or a for a value... n m i j k for integers |
| 09:11:38 | <int-e> | (a bit like Fortran... god is real unless declared integer) |
| 09:12:10 | <int-e> | (I barely know enough Fortran to understand that joke) |
| 09:12:32 | <probie> | but also k for continuations - we've got to keep it ambiguous |
| 09:14:30 | → | hyiltiz joins (~hyiltiz@2603-8080-1f00-082f-5873-e3c7-acc6-fcd7.res6.spectrum.com) |
| 09:16:41 | <int-e> | Well, the point that when you have a generic function then it is often helpful to write it with general types rather than the concrete types you need is valid. |
| 09:16:53 | → | marinelli joins (~weechat@gateway/tor-sasl/marinelli) |
| 09:17:01 | → | merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl) |
| 09:23:59 | × | eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 09:24:13 | <Inst> | actually, sorry |
| 09:24:32 | → | arahael joins (~arahael@1.145.97.55) |
| 09:24:44 | <Inst> | i got confused about john de goes; it turns out consensus on him is ambivalent and JDG is just in a feud with Travis Brown |
| 09:29:51 | × | hyiltiz quits (~hyiltiz@2603-8080-1f00-082f-5873-e3c7-acc6-fcd7.res6.spectrum.com) (Ping timeout: 240 seconds) |
| 09:35:14 | → | mastarija joins (~mastarija@141-136-170-127.dsl.iskon.hr) |
| 09:36:10 | → | smoothdev joins (~smoothdev@91-169-231-236.subs.proxad.net) |
| 09:38:20 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 09:38:49 | × | smoothdev quits (~smoothdev@91-169-231-236.subs.proxad.net) (Client Quit) |
| 09:39:36 | <mastarija> | Can anyone help me with encoding my recursive Haskell type into Dhall? |
| 09:39:43 | <mastarija> | I have this code over here: https://paste.tomsmeding.com/vCPvIcQg |
| 09:40:04 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Excess Flood) |
| 09:40:15 | <mastarija> | Basically, I have `Charge` that's recursive. I've succesfully used `Fix` to encode it to `Dhall`. |
| 09:40:19 | → | hyiltiz joins (~hyiltiz@2603-8080-1f00-082f-5873-e3c7-acc6-fcd7.res6.spectrum.com) |
| 09:40:40 | <mastarija> | Problem is, how do I encode and decode things that aren't recursive but they have `Charge` inside of them. |
| 09:40:57 | <mastarija> | I have this type `Q c` that takes the `Charge` representation. |
| 09:41:09 | <mastarija> | And I have problem expressing it in Dhall. |
| 09:42:25 | <mastarija> | I can successfully extract `Charge` from a `Dhall` file that only returns `Charge`, but I don't know how to decode `Q` from a `Dhall` file that's supposed to return `Q` that has `Charge` within. |
| 09:43:06 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 09:46:07 | × | hyiltiz quits (~hyiltiz@2603-8080-1f00-082f-5873-e3c7-acc6-fcd7.res6.spectrum.com) (Ping timeout: 260 seconds) |
| 09:49:28 | → | nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
| 09:50:17 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 09:50:30 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 09:54:04 | × | sudden quits (~cat@user/sudden) (Remote host closed the connection) |
| 09:54:38 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:a12d:97a5:968a:df7f) |
| 09:54:57 | × | nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 252 seconds) |
| 09:55:06 | → | mmhat joins (~mmh@p200300f1c70f84f3ee086bfffe095315.dip0.t-ipconnect.de) |
| 09:55:10 | × | mmhat quits (~mmh@p200300f1c70f84f3ee086bfffe095315.dip0.t-ipconnect.de) (Client Quit) |
| 09:56:07 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 264 seconds) |
| 10:04:13 | × | ft quits (~ft@p3e9bc680.dip0.t-ipconnect.de) (Quit: leaving) |
| 10:05:01 | → | robosexual joins (~spaceoyst@77.223.88.70) |
| 10:07:15 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 10:13:32 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 260 seconds) |
| 10:19:44 | × | merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 255 seconds) |
| 10:19:46 | × | danse-nr3 quits (~francesco@rm-19-39-103.service.infuturo.it) (Remote host closed the connection) |
| 10:20:09 | → | danse-nr3 joins (~francesco@rm-19-39-103.service.infuturo.it) |
| 10:21:07 | × | pavonia quits (~user@user/siracusa) (Ping timeout: 260 seconds) |
| 10:22:02 | → | sudden joins (~cat@user/sudden) |
| 10:24:20 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 10:29:52 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 260 seconds) |
| 10:31:59 | → | JeremyB99 joins (~JeremyB99@2607:fb90:8d60:ee30:fc70:2f19:34ae:43d) |
| 10:35:57 | × | JeremyB99 quits (~JeremyB99@2607:fb90:8d60:ee30:fc70:2f19:34ae:43d) (Read error: Connection reset by peer) |
| 10:38:03 | <tomsmeding> | mastarija: not too familiar with Dhall, but in Haskell land, could you not just go 'data ChargeF r = ... ; newtype Charge = Charge (Fix ChargeF) ; data Q = ... Charge ...'? |
| 10:38:15 | × | CiaoSen quits (~Jura@2a05:5800:29b:e900:664b:f0ff:fe37:9ef) (Ping timeout: 240 seconds) |
| 10:38:29 | <tomsmeding> | or data Q c = ... ; and then 'Q Charge' is perfectly valid |
| 10:39:18 | <mastarija> | Yeah. That's another problem. Right now I'm more concerned about how to express `Q` in Dhall, I think I'm getting closer to the solution. I actually got it working, now I just need to create a few utilities to make construction easier. |
| 10:40:05 | <mastarija> | Basically, instead of a list of `Charge`s, I need to provide a list of functions `Charge Type -> (Fix : ChargeF Charge -> Charge) -> Charge`. |
| 10:45:14 | → | JeremyB99 joins (~JeremyB99@2607:fb90:8d60:ee30:fc70:2f19:34ae:43d) |
| 10:47:44 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 10:51:34 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
| 10:51:53 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 10:53:35 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 240 seconds) |
| 10:57:08 | × | JeremyB99 quits (~JeremyB99@2607:fb90:8d60:ee30:fc70:2f19:34ae:43d) (Read error: Connection reset by peer) |
| 10:58:55 | × | arahael quits (~arahael@1.145.97.55) (Quit: "Gotta fly away!") |
| 11:03:17 | → | JeremyB99 joins (~JeremyB99@2607:fb90:8d60:ee30:fc70:2f19:34ae:43d) |
| 11:03:31 | → | hyiltiz joins (~hyiltiz@2603-8080-1f00-082f-5873-e3c7-acc6-fcd7.res6.spectrum.com) |
| 11:04:00 | × | JeremyB99 quits (~JeremyB99@2607:fb90:8d60:ee30:fc70:2f19:34ae:43d) (Read error: Connection reset by peer) |
| 11:04:56 | × | danse-nr3 quits (~francesco@rm-19-39-103.service.infuturo.it) (Ping timeout: 246 seconds) |
| 11:05:12 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 11:07:48 | × | hyiltiz quits (~hyiltiz@2603-8080-1f00-082f-5873-e3c7-acc6-fcd7.res6.spectrum.com) (Ping timeout: 240 seconds) |
| 11:08:03 | → | JeremyB99 joins (~JeremyB99@2607:fb90:8d60:ee30:fc70:2f19:34ae:43d) |
| 11:11:14 | × | JeremyB99 quits (~JeremyB99@2607:fb90:8d60:ee30:fc70:2f19:34ae:43d) (Read error: Connection reset by peer) |
| 11:18:34 | → | merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl) |
| 11:19:38 | → | JeremyB99 joins (~JeremyB99@2607:fb90:8d60:ee30:fc70:2f19:34ae:43d) |
| 11:25:22 | × | Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
| 11:25:49 | × | JeremyB99 quits (~JeremyB99@2607:fb90:8d60:ee30:fc70:2f19:34ae:43d) (Read error: Connection reset by peer) |
| 11:27:21 | → | JeremyB99 joins (~JeremyB99@2607:fb90:8d60:ee30:fc70:2f19:34ae:43d) |
| 11:27:43 | → | billchenchina joins (~billchenc@2a0c:b641:7a2:320:ee3e:47ca:6070:d71a) |
| 11:29:37 | × | JeremyB99 quits (~JeremyB99@2607:fb90:8d60:ee30:fc70:2f19:34ae:43d) (Read error: Connection reset by peer) |
| 11:30:34 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 11:30:56 | → | JeremyB99 joins (~JeremyB99@2607:fb90:8d60:ee30:fc70:2f19:34ae:43d) |
| 11:31:37 | → | hyiltiz joins (~hyiltiz@2603-8080-1f00-082f-5873-e3c7-acc6-fcd7.res6.spectrum.com) |
| 11:33:32 | × | libertyprime quits (~libertypr@203.96.203.44) (Quit: leaving) |
| 11:36:22 | × | hyiltiz quits (~hyiltiz@2603-8080-1f00-082f-5873-e3c7-acc6-fcd7.res6.spectrum.com) (Ping timeout: 260 seconds) |
| 11:37:41 | × | mastarija quits (~mastarija@141-136-170-127.dsl.iskon.hr) (Quit: Client closed) |
| 11:41:53 | × | JeremyB99 quits (~JeremyB99@2607:fb90:8d60:ee30:fc70:2f19:34ae:43d) (Read error: Connection reset by peer) |
| 11:45:49 | → | JeremyB99 joins (~JeremyB99@2607:fb90:8d60:ee30:fc70:2f19:34ae:43d) |
| 11:48:39 | × | vglfr quits (~vglfr@188.239.201.89) (Ping timeout: 240 seconds) |
| 11:48:46 | → | danse-nr3 joins (~francesco@rm-19-39-103.service.infuturo.it) |
| 11:49:42 | → | vglfr joins (~vglfr@37.73.18.140) |
| 11:53:17 | × | merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 11:55:17 | cayley5 | is now known as cayley10 |
| 11:56:29 | × | vglfr quits (~vglfr@37.73.18.140) (Ping timeout: 255 seconds) |
| 11:58:44 | cayley10 | is now known as cayley5_ |
| 11:59:24 | <dminuoso> | Switching from data to newtype for something, would PVP mandate a major version bump? |
| 12:00:34 | → | vglfr joins (~vglfr@cli-188-239-201-89.bbn.slav.dn.ua) |
| 12:00:56 | → | cayley5 joins (~cayley5@user/phileasfogg) |
| 12:02:06 | <lortabac> | dminuoso: it looks like a breaking change to me. Someone might be relying on newtype-specific tools for that type (Coerce etc.) |
| 12:02:46 | <lortabac> | ah sorry it's in the opposite direction (data -> newtype) |
| 12:03:51 | <dminuoso> | Yeah. Ill add the additional information, that while the constructor is exported, its content is only ever produced by my library without any bottoms (assuming lack of bugs). At best it seems it could have only some performance implications |
| 12:03:52 | <lortabac> | I'd still consider it a breaking change, even though the probability of breakage is extremely low |
| 12:05:10 | × | JeremyB99 quits (~JeremyB99@2607:fb90:8d60:ee30:fc70:2f19:34ae:43d) (Read error: Connection reset by peer) |
| 12:11:29 | → | JeremyB99 joins (~JeremyB99@2607:fb90:8d60:ee30:fc70:2f19:34ae:43d) |
| 12:12:29 | × | JeremyB99 quits (~JeremyB99@2607:fb90:8d60:ee30:fc70:2f19:34ae:43d) (Read error: Connection reset by peer) |
| 12:20:38 | → | smoothdev joins (~smoothdev@91-169-231-236.subs.proxad.net) |
| 12:21:36 | → | JeremyB99 joins (~JeremyB99@2607:fb90:8d60:ee30:fc70:2f19:34ae:43d) |
| 12:21:44 | × | JeremyB99 quits (~JeremyB99@2607:fb90:8d60:ee30:fc70:2f19:34ae:43d) (Read error: Connection reset by peer) |
| 12:24:44 | <Inst> | i hope you don't mind, but we do have function dependency tree visualizers up, right? |
| 12:26:13 | × | bliminse quits (~bliminse@user/bliminse) (Quit: leaving) |
| 12:28:27 | → | danse-nr3_ joins (~francesco@na-19-69-5.service.infuturo.it) |
| 12:28:34 | × | danse-nr3 quits (~francesco@rm-19-39-103.service.infuturo.it) (Read error: Connection reset by peer) |
| 12:32:37 | → | JeremyB99 joins (~JeremyB99@2607:fb90:8d60:ee30:fc70:2f19:34ae:43d) |
| 12:35:42 | × | JeremyB99 quits (~JeremyB99@2607:fb90:8d60:ee30:fc70:2f19:34ae:43d) (Read error: Connection reset by peer) |
| 12:41:42 | <Taneb> | dminuoso: does the type in question have a Generic instance |
| 12:41:49 | <dminuoso> | Taneb: No |
| 12:42:00 | <dminuoso> | And no Data instance either |
| 12:42:03 | × | SethTisue quits (sid14912@id-14912.ilkley.irccloud.com) (Server closed connection) |
| 12:42:07 | <Taneb> | And is the constructor exported? |
| 12:42:09 | <dminuoso> | And actually, I was wrong. Previously the constructor was not even exported. |
| 12:42:12 | → | SethTisue joins (sid14912@id-14912.ilkley.irccloud.com) |
| 12:43:15 | × | foul_owl_ quits (~kerry@185.219.141.160) (Ping timeout: 252 seconds) |
| 12:45:37 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 12:47:36 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Ping timeout: 246 seconds) |
| 12:49:03 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 12:50:24 | → | kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be) |
| 12:51:58 | <Taneb> | Then I'm pretty sure that's not breaking |
| 12:51:59 | × | dfg quits (~dfg@user/dfg) (Quit: I hate quit messages.) |
| 12:53:52 | → | CiaoSen joins (~Jura@2a05:5800:29b:e900:664b:f0ff:fe37:9ef) |
| 12:57:34 | → | foul_owl_ joins (~kerry@174-21-66-189.tukw.qwest.net) |
| 12:58:07 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:4096:dbe8:3b65:83c5) (Quit: WeeChat 2.8) |
| 13:07:18 | → | hyiltiz joins (~hyiltiz@2603-8080-1f00-082f-5873-e3c7-acc6-fcd7.res6.spectrum.com) |
| 13:09:59 | → | JeremyB99 joins (~JeremyB99@2607:fb90:8d60:ee30:fc70:2f19:34ae:43d) |
| 13:12:09 | → | tremon joins (~tremon@83.80.159.219) |
| 13:12:37 | × | hyiltiz quits (~hyiltiz@2603-8080-1f00-082f-5873-e3c7-acc6-fcd7.res6.spectrum.com) (Ping timeout: 260 seconds) |
| 13:19:11 | <L29Ah> | how do i ask cabal what packages do i need to install to satisfy the dependency list of a .cabal package? |
| 13:21:16 | → | pyooque joins (~puke@user/puke) |
| 13:21:16 | puke | is now known as Guest6095 |
| 13:21:16 | × | Guest6095 quits (~puke@user/puke) (Killed (tungsten.libera.chat (Nickname regained by services))) |
| 13:21:16 | pyooque | is now known as puke |
| 13:21:44 | <dminuoso> | L29Ah: Mmm. I always type `cabal build`, ^C when it starts building, and then inspect cabal-plan. |
| 13:21:55 | <dminuoso> | There's probably a few more elegant ways, but its a way at least. |
| 13:23:49 | <L29Ah> | dminuoso: it won't start building as i have offline mode enabled |
| 13:24:03 | <L29Ah> | it will complain about a single missing package and then quit, and i want them all! |
| 13:24:52 | <haskellbridge> | <sm> cabal build --dry-run |
| 13:25:32 | × | cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 4.0.4) |
| 13:27:37 | × | JeremyB99 quits (~JeremyB99@2607:fb90:8d60:ee30:fc70:2f19:34ae:43d) (Read error: Connection reset by peer) |
| 13:29:25 | <L29Ah> | no effect |
| 13:30:14 | <dminuoso> | L29Ah: Will it generate a build plan? |
| 13:30:26 | → | hyiltiz joins (~hyiltiz@2603-8080-1f00-082f-5873-e3c7-acc6-fcd7.res6.spectrum.com) |
| 13:30:38 | → | bontaq joins (~user@ool-45707d2c.dyn.optonline.net) |
| 13:30:42 | × | mysl quits (~mysl@user/mysl) (Ping timeout: 260 seconds) |
| 13:31:37 | <L29Ah> | dminuoso: it just fails at the first unknown package it encounters |
| 13:31:50 | <dminuoso> | L29Ah: Yes thats fine. |
| 13:32:04 | <L29Ah> | it doesn't list them all |
| 13:32:15 | <dminuoso> | Have you tried `cabal-plan` like I suggested above? |
| 13:32:33 | <dminuoso> | The only point of causing `cabal build`, is because it spits out its generated build plan inside dist-newstyle |
| 13:32:36 | <dminuoso> | Even if the build fails. |
| 13:32:46 | <dminuoso> | You either look at it manually, or use `cabal-plan` to inspect it. |
| 13:32:48 | <tomsmeding> | (or inspect dist-newstyle/cache/plan.json manually) |
| 13:33:16 | <tomsmeding> | doesn't cabal emit that build plan also if you do `cabal freeze`? Of course that also writes a freeze file |
| 13:33:23 | <L29Ah> | ah sorry i missed that it's a command |
| 13:33:23 | <dminuoso> | Yes it does. |
| 13:33:31 | <dminuoso> | L29Ah: No worry. |
| 13:33:59 | <tomsmeding> | cabal freeze might be a bit neater than 'cabal build; ^C' if you already have a freeze file :p |
| 13:34:12 | <tomsmeding> | oh, and also, the freeze file will of course also contain all the dependencies! |
| 13:34:39 | <tomsmeding> | without needing an external tool (cabal-plan) or to inspect a big json document manually |
| 13:34:51 | <tomsmeding> | L29Ah: ^ |
| 13:34:54 | × | hyiltiz quits (~hyiltiz@2603-8080-1f00-082f-5873-e3c7-acc6-fcd7.res6.spectrum.com) (Ping timeout: 246 seconds) |
| 13:35:01 | <dminuoso> | cabal-plan is really yummy though. |
| 13:35:23 | <dminuoso> | Its probably my favourite haskell tool. |
| 13:35:53 | <tomsmeding> | if L29Ah is running cabal with --offline they're probably in a situation where less external tools is also better |
| 13:40:34 | <dminuoso> | That's a fair point |
| 13:40:40 | → | JeremyB99 joins (~JeremyB99@2607:fb90:8d60:ee30:fc70:2f19:34ae:43d) |
| 13:40:53 | × | JeremyB99 quits (~JeremyB99@2607:fb90:8d60:ee30:fc70:2f19:34ae:43d) (Read error: Connection reset by peer) |
| 13:46:43 | × | smoothdev quits (~smoothdev@91-169-231-236.subs.proxad.net) (Quit: smoothdev) |
| 13:47:06 | × | danse-nr3_ quits (~francesco@na-19-69-5.service.infuturo.it) (Ping timeout: 255 seconds) |
| 13:51:13 | → | nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
| 13:53:55 | × | L29Ah quits (~L29Ah@wikipedia/L29Ah) (Read error: Connection reset by peer) |
| 13:56:57 | × | nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 260 seconds) |
| 13:57:18 | <exarkun> | I used cabal-plan for the first time a few days ago - it didn't generate a build plan for me, it only consumed the build plan cabal wrote. Was I using it wrong? |
| 13:57:29 | → | hyiltiz joins (~hyiltiz@2603-8080-1f00-082f-5873-e3c7-acc6-fcd7.res6.spectrum.com) |
| 13:57:43 | <tomsmeding> | no |
| 13:57:53 | <tomsmeding> | that's the intended behaviour |
| 13:58:54 | <exarkun> | okay, great, thanks |
| 14:05:07 | × | hyiltiz quits (~hyiltiz@2603-8080-1f00-082f-5873-e3c7-acc6-fcd7.res6.spectrum.com) (Ping timeout: 260 seconds) |
| 14:07:07 | → | merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl) |
| 14:08:05 | → | danse-nr3_ joins (~francesco@na-19-69-5.service.infuturo.it) |
| 14:09:03 | × | PotatoGim quits (sid99505@id-99505.lymington.irccloud.com) (Server closed connection) |
| 14:09:25 | → | PotatoGim joins (sid99505@id-99505.lymington.irccloud.com) |
| 14:11:25 | × | dcoutts_ quits (~duncan@82-69-94-207.dsl.in-addr.zen.co.uk) (Ping timeout: 252 seconds) |
| 14:14:54 | → | privacy_ joins (~privacy@47.219.84.6) |
| 14:15:02 | × | privacy quits (~privacy@47.219.84.6) (Ping timeout: 260 seconds) |
| 14:15:32 | → | JeremyB99 joins (~JeremyB99@2607:fb90:8d60:ee30:fc70:2f19:34ae:43d) |
| 14:15:36 | × | JeremyB99 quits (~JeremyB99@2607:fb90:8d60:ee30:fc70:2f19:34ae:43d) (Read error: Connection reset by peer) |
| 14:21:13 | → | fweht joins (uid404746@id-404746.lymington.irccloud.com) |
| 14:22:26 | × | Inst quits (~Inst@120.244.192.250) (Remote host closed the connection) |
| 14:22:36 | → | dfg joins (~dfg@dfg.rocks) |
| 14:22:36 | × | dfg quits (~dfg@dfg.rocks) (Changing host) |
| 14:22:36 | → | dfg joins (~dfg@user/dfg) |
| 14:22:53 | → | Inst joins (~Inst@120.244.192.250) |
| 14:25:35 | → | hyiltiz joins (~hyiltiz@2603-8080-1f00-082f-5873-e3c7-acc6-fcd7.res6.spectrum.com) |
| 14:28:15 | → | JeremyB99 joins (~JeremyB99@172.58.124.68) |
| 14:30:05 | × | hyiltiz quits (~hyiltiz@2603-8080-1f00-082f-5873-e3c7-acc6-fcd7.res6.spectrum.com) (Ping timeout: 240 seconds) |
| 14:30:42 | → | hyiltiz joins (~hyiltiz@2603-8080-1f00-082f-5873-e3c7-acc6-fcd7.res6.spectrum.com) |
| 14:32:44 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 14:38:49 | → | sm joins (~sm@plaintextaccounting/sm) |
| 14:40:14 | × | merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
| 14:44:44 | × | CiaoSen quits (~Jura@2a05:5800:29b:e900:664b:f0ff:fe37:9ef) (Ping timeout: 246 seconds) |
| 14:47:05 | → | Square3 joins (~Square4@user/square) |
| 14:48:47 | → | dcoutts_ joins (~duncan@2a02:8012:ae9a:0:217c:5666:d075:6292) |
| 14:50:05 | × | JeremyB99 quits (~JeremyB99@172.58.124.68) (Ping timeout: 240 seconds) |
| 14:51:12 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) |
| 14:51:36 | × | Square3 quits (~Square4@user/square) (Ping timeout: 244 seconds) |
| 14:54:22 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) (Read error: Connection reset by peer) |
| 14:54:50 | → | gmg joins (~user@user/gehmehgeh) |
| 14:56:42 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) |
| 14:56:48 | → | smoothdev joins (~smoothdev@91-169-231-236.subs.proxad.net) |
| 15:02:20 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) (Read error: Connection reset by peer) |
| 15:02:23 | → | mysl joins (~mysl@user/mysl) |
| 15:03:35 | × | hyiltiz quits (~hyiltiz@2603-8080-1f00-082f-5873-e3c7-acc6-fcd7.res6.spectrum.com) (Ping timeout: 240 seconds) |
| 15:06:24 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) |
| 15:06:37 | × | sm quits (~sm@plaintextaccounting/sm) (Quit: sm) |
| 15:06:52 | × | ph88 quits (~ph88@ip5b403cd4.dynamic.kabel-deutschland.de) (Ping timeout: 248 seconds) |
| 15:08:19 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 15:08:28 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) (Read error: Connection reset by peer) |
| 15:11:27 | × | dtman34 quits (~dtman34@2601:447:d000:93c9:a832:b3a1:c57:ffa2) (Ping timeout: 240 seconds) |
| 15:16:29 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) |
| 15:16:42 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) (Read error: Connection reset by peer) |
| 15:22:38 | → | hyiltiz joins (~hyiltiz@2620:149:13d1:100::431) |
| 15:25:26 | × | lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 15:26:58 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) |
| 15:27:45 | → | dtman34 joins (~dtman34@2601:447:d000:93c9:a832:b3a1:c57:ffa2) |
| 15:31:07 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:a12d:97a5:968a:df7f) (Remote host closed the connection) |
| 15:34:56 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:a12d:97a5:968a:df7f) |
| 15:37:46 | × | christiaanb quits (sid84827@id-84827.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 15:38:04 | × | qqq quits (~qqq@92.43.167.61) (Remote host closed the connection) |
| 15:41:26 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) (Read error: Connection reset by peer) |
| 15:42:19 | × | jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 264 seconds) |
| 15:44:45 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:a12d:97a5:968a:df7f) (Remote host closed the connection) |
| 15:45:25 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:a12d:97a5:968a:df7f) |
| 15:45:56 | → | econo_ joins (uid147250@id-147250.tinside.irccloud.com) |
| 15:46:26 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) |
| 15:46:40 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) (Read error: Connection reset by peer) |
| 15:56:34 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) |
| 15:58:22 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) (Read error: Connection reset by peer) |
| 15:58:23 | → | merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl) |
| 15:59:07 | <kuribas> | Would it be safe to run accelerate for a production project? |
| 15:59:26 | <kuribas> | Like time series calculations? |
| 16:03:03 | × | merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 240 seconds) |
| 16:04:24 | → | _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
| 16:07:00 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:a12d:97a5:968a:df7f) (Remote host closed the connection) |
| 16:16:50 | → | sabino joins (~sabino@user/sabino) |
| 16:17:07 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) |
| 16:19:20 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) (Read error: Connection reset by peer) |
| 16:19:49 | → | Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
| 16:24:14 | → | segfaultfizzbuzz joins (~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) |
| 16:25:43 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 16:26:15 | × | danse-nr3_ quits (~francesco@na-19-69-5.service.infuturo.it) (Ping timeout: 240 seconds) |
| 16:28:35 | × | pounce quits (~pounce@user/cute/pounce) (Ping timeout: 240 seconds) |
| 16:29:04 | → | pounce joins (~pounce@user/cute/pounce) |
| 16:37:18 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) |
| 16:37:57 | × | hugo quits (znc@verdigris.lysator.liu.se) (Ping timeout: 260 seconds) |
| 16:38:51 | × | kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection) |
| 16:39:49 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) (Read error: Connection reset by peer) |
| 16:40:21 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:a12d:97a5:968a:df7f) |
| 16:41:03 | × | machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 240 seconds) |
| 16:45:03 | × | acertain_ quits (sid470584@id-470584.hampstead.irccloud.com) (Server closed connection) |
| 16:45:18 | → | acertain_ joins (sid470584@id-470584.hampstead.irccloud.com) |
| 16:46:29 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) |
| 16:51:12 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) (Read error: Connection reset by peer) |
| 16:52:19 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) |
| 16:57:02 | × | marinelli quits (~weechat@gateway/tor-sasl/marinelli) (Quit: marinelli) |
| 16:57:26 | × | phma quits (~phma@host-67-44-208-47.hnremote.net) (Read error: Connection reset by peer) |
| 16:57:45 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) (Read error: Connection reset by peer) |
| 16:58:49 | → | phma joins (phma@2001:5b0:211f:8718:5d9f:d28d:c834:ebef) |
| 16:59:09 | → | hugo- joins (znc@verdigris.lysator.liu.se) |
| 16:59:33 | × | robosexual quits (~spaceoyst@77.223.88.70) (Quit: Konversation terminated!) |
| 17:00:14 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 17:01:20 | → | bliminse joins (~bliminse@user/bliminse) |
| 17:03:25 | <tomsmeding> | @tell kuribas safe in what way? |
| 17:03:25 | <lambdabot> | Consider it noted. |
| 17:07:48 | hugo- | is now known as hugo |
| 17:09:22 | → | Square3 joins (~Square4@user/square) |
| 17:12:18 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) |
| 17:12:39 | × | otto_s quits (~user@p5de2f287.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
| 17:12:46 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) (Read error: Connection reset by peer) |
| 17:14:42 | → | otto_s joins (~user@p4ff27687.dip0.t-ipconnect.de) |
| 17:15:09 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) |
| 17:15:29 | × | mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 17:20:00 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:a12d:97a5:968a:df7f) (Remote host closed the connection) |
| 17:20:34 | → | danza joins (~francesco@na-19-70-234.service.infuturo.it) |
| 17:24:19 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 17:24:32 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 17:26:15 | × | Square3 quits (~Square4@user/square) (Ping timeout: 240 seconds) |
| 17:27:09 | → | waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) |
| 17:28:35 | × | mysl quits (~mysl@user/mysl) (Ping timeout: 240 seconds) |
| 17:29:07 | → | deriamis_ joins (deriamis@50.34.50.53) |
| 17:32:43 | × | deriamis quits (deriamis@50.34.50.53) (Ping timeout: 264 seconds) |
| 17:33:53 | → | mysl joins (~mysl@user/mysl) |
| 17:34:39 | × | puke quits (~puke@user/puke) (Ping timeout: 246 seconds) |
| 17:38:34 | <tomsmeding> | @tell kuribas The cpu backend (accelerate-llvm-native) is solid, the gpu backend (accelerate-llvm-ptx) works decently but for larger programs it tends to crash somewhere relating the nvidia gpu driver (if I remember correctly), and we haven't been able to figure out what happens |
| 17:38:34 | <lambdabot> | Consider it noted. |
| 17:39:02 | → | polyphem joins (~polyphem@p4fc2c546.dip0.t-ipconnect.de) |
| 17:41:32 | × | privacy_ quits (~privacy@47.219.84.6) (Ping timeout: 260 seconds) |
| 17:41:53 | × | lambdap237 quits (~lambdap@static.167.190.119.168.clients.your-server.de) (Quit: lambdap237) |
| 17:42:22 | → | lambdap2371 joins (~lambdap@static.167.190.119.168.clients.your-server.de) |
| 17:42:33 | × | lambdap2371 quits (~lambdap@static.167.190.119.168.clients.your-server.de) (Client Quit) |
| 17:42:50 | → | lambdap2371 joins (~lambdap@static.167.190.119.168.clients.your-server.de) |
| 17:44:59 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:a12d:97a5:968a:df7f) |
| 17:45:02 | → | privacy joins (~privacy@47.219.84.6) |
| 17:47:33 | → | merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl) |
| 17:50:17 | × | danza quits (~francesco@na-19-70-234.service.infuturo.it) (Ping timeout: 260 seconds) |
| 17:51:00 | → | privacy_ joins (~privacy@47.219.84.6) |
| 17:51:03 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) (Read error: Connection reset by peer) |
| 17:51:24 | × | privacy quits (~privacy@47.219.84.6) (Ping timeout: 244 seconds) |
| 17:52:59 | → | nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
| 17:54:03 | × | astra quits (sid289983@id-289983.hampstead.irccloud.com) (Server closed connection) |
| 17:54:25 | → | astra joins (sid289983@id-289983.hampstead.irccloud.com) |
| 17:55:13 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) |
| 17:55:15 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) (Read error: Connection reset by peer) |
| 17:58:22 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) |
| 17:58:22 | × | polyphem quits (~polyphem@p4fc2c546.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 17:58:22 | → | p0lyph3m joins (~polyphem@p4fc2c546.dip0.t-ipconnect.de) |
| 17:58:27 | × | nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 260 seconds) |
| 18:00:03 | × | tnks quits (sid412124@id-412124.helmsley.irccloud.com) (Server closed connection) |
| 18:00:13 | → | tnks joins (sid412124@id-412124.helmsley.irccloud.com) |
| 18:04:28 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) (Read error: Connection reset by peer) |
| 18:04:43 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) |
| 18:05:05 | × | hyiltiz quits (~hyiltiz@2620:149:13d1:100::431) (Ping timeout: 240 seconds) |
| 18:08:49 | → | hyiltiz joins (~hyiltiz@2620:149:13d1:100::431) |
| 18:13:02 | <yin> | what's the canonical way of doing `[a -> a] -> a -> a` ? |
| 18:13:20 | tomsmeding | always does foldr (.) id |
| 18:13:30 | <yin> | tomsmeding: elegant |
| 18:13:41 | <erisco> | head |
| 18:13:44 | <tomsmeding> | I mean you can always getEndo . foldMap Endo if you are so inclined :p |
| 18:15:03 | × | hongminhee quits (sid295@id-295.tinside.irccloud.com) (Server closed connection) |
| 18:15:12 | → | hongminhee joins (sid295@id-295.tinside.irccloud.com) |
| 18:15:14 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) (Read error: Connection reset by peer) |
| 18:15:54 | <EvanR> | > head [] x |
| 18:15:56 | <lambdabot> | *Exception: Prelude.head: empty list |
| 18:16:18 | <EvanR> | I want my money back |
| 18:17:56 | <tomsmeding> | yin: if you're using hlint, beware of hlint being condescending about 'foldr (.) id (map ... l)' |
| 18:18:58 | <tomsmeding> | no, 'foldr ((.) . f) id l' is not clearer than 'foldr (.) id (map f l)', and yes I did need to think >10sec before being reasonably sure that ((.) . f) is the right expression |
| 18:19:15 | <erisco> | EvanR, my apologies. foldr const id |
| 18:19:37 | <tomsmeding> | can remove the foldr |
| 18:20:13 | hugo | imagines a good functional lanuage which doesn't look like someone rolled their head through the specal keys |
| 18:20:35 | <tomsmeding> | haskell can be like that if you care about readability |
| 18:20:39 | <tomsmeding> | hlint evidently does not :p |
| 18:20:49 | <EvanR> | the readable haskell movement |
| 18:20:55 | <EvanR> | I'm card carrying |
| 18:21:04 | <yin> | tomsmeding: i have a huuuge .hlint.yaml ;) |
| 18:21:12 | × | merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 18:21:17 | <tomsmeding> | to wit also that '(\x -> f x + 3) <$> something' is not more readable than 'do { x <- something ; return (f x + 3) }' |
| 18:21:35 | <tomsmeding> | yin: the first thing I do after installing HLS is disabling hlint |
| 18:21:39 | <monochrom> | Sapir-Whorf implies that every language rolls your head through its special keys. |
| 18:21:52 | <monochrom> | Every language. No exception. |
| 18:22:14 | <tomsmeding> | monochrom: that's one for your tautologies page |
| 18:22:15 | <monochrom> | Every language brainwashes you. Do not think that any of them is "natural". |
| 18:22:20 | <tomsmeding> | also holds for languages without special keys |
| 18:22:22 | × | Inst quits (~Inst@120.244.192.250) (Ping timeout: 260 seconds) |
| 18:22:23 | <tomsmeding> | it's just a no-op then |
| 18:22:46 | tomsmeding | . o O ( COBOL ) |
| 18:23:12 | <monochrom> | COBOL's special key is clumsy English and in all caps. |
| 18:23:31 | hugo | SELECT's `COBOL` FROM TABLES |
| 18:23:43 | <monochrom> | Plus some random requirement on compulsory indentation. |
| 18:23:47 | <tomsmeding> | hot take: applescript is cobol tried again |
| 18:24:07 | <tomsmeding> | still clumsy English, not all caps any more |
| 18:24:35 | <monochrom> | Actually I write the <$> more often now. |
| 18:24:47 | <tomsmeding> | also if that makes you write a lambda before the <$> ? |
| 18:24:56 | <tomsmeding> | if it was just 'return (f x)', I would also write f <$> |
| 18:24:59 | <monochrom> | I can agree that both forms are on par. |
| 18:25:02 | <erisco> | You know, it does irritate me that "readable" (and most -ables) is so nonobviously subjective |
| 18:25:28 | <monochrom> | Well that's why I brought up Sapir-Whorf. |
| 18:25:46 | <monochrom> | You have been brainwashed by your first language, therefore anything different is "unreadable". |
| 18:25:49 | <tomsmeding> | (I also use lambda plus <$> sometimes, but only if there is some other reason to fit the thing on one line -- perhaps because it's one of 15 of such lines, and it's good to have the whole thing be compact) |
| 18:25:50 | <erisco> | It is a common thing I hear when using anything other than the most popular of choices, be it languages or code libraries. |
| 18:26:04 | <monochrom> | In fact I have banned "readable" and "unreadable" from my vocab. |
| 18:26:17 | <tomsmeding> | monochrom: fair |
| 18:26:18 | <Rembane> | monochrom: What do you use instead? |
| 18:26:53 | <[Leary]> | tomsmeding: `something <&> \x -> f x + 3`. |
| 18:26:58 | <monochrom> | I use "comprehensible" and sometimes clarify with "by the TAs". |
| 18:27:09 | → | tzh joins (~tzh@c-73-25-201-16.hsd1.or.comcast.net) |
| 18:27:17 | <tomsmeding> | comprehensible is precisely as bad as readable |
| 18:27:25 | <tomsmeding> | it's the qualifier that improves things |
| 18:27:34 | <monochrom> | Well that's why I add "by the TAs". |
| 18:27:36 | <tomsmeding> | [Leary]: hmm |
| 18:27:55 | <erisco> | I just gently suggest they mean "familiar" and "unfamiliar" rather than "readable" and "unreadable" |
| 18:28:07 | <tomsmeding> | erisco: good that you do that gently |
| 18:28:17 | <monochrom> | And I assure you, when the day comes that "comprehensible" is also widely abused, I will switch to another word. |
| 18:29:00 | <hugo> | erisco: I hear what you say, but consider invoke(([ws] & qn(([ws] & 'f')) & (([ws] & '(') | nop) & [ws] & ([ws] & string([String])) & [ws] & ',' & [ws] & [ws] & ('{' | nop) & [ws] & qn(([ws] & 'x')) & [ws] & '=>' & [ws] & [ws] & '1' & (([ws] & ',') | nop) & [ws] & qn(([ws] & 'y')) & [ws] & '=>' & [ws] & [ws] & '2' & (([ws] & ',') | nop) & [ws] & ('}' | nop) & (([ws] & ',') | nop) & (([ws] & ')') | |
| 18:29:00 | <hugo> | nop) & (([ws] & nop) | nop))) |
| 18:29:00 | <hugo> | It's familiar to me, but not to you |
| 18:29:08 | <dolio> | Why does hlint suggest manually fusing that? There's a whole framework that exists so you don't have to. |
| 18:29:58 | <tomsmeding> | hugo: no clue what language/library that is, but it looks like a grammar, and I'm confused by the nops |
| 18:30:03 | × | yvan-sraka quits (sid419690@id-419690.lymington.irccloud.com) (Server closed connection) |
| 18:30:13 | → | yvan-sraka joins (sid419690@id-419690.lymington.irccloud.com) |
| 18:30:43 | <hugo> | tomsmeding: I wrote a parser combinator in Python. The nops mean parse nothing and succeed |
| 18:30:58 | <tomsmeding> | right, that's what I expected |
| 18:31:09 | <hugo> | My point was that it's hard to read for most of you, but I have stared at it so much that I can read it rather quickly |
| 18:31:12 | <tomsmeding> | meaning that ([ws] & nop) is just [ws] |
| 18:31:19 | <hugo> | tomsmeding: Indeed |
| 18:31:36 | <hugo> | All the extra '& nop' is due to how it's generated |
| 18:32:30 | <tomsmeding> | I think it's readable enough; I don't know what qn is, nor invoke, but that's relatively benign I'd expect. It's just way too verbose. In my experience, I find it easier to read something the more compactly it is presented, as long as I can intuitively read that notation |
| 18:32:45 | <tomsmeding> | (this may mean that the more familiar you get with the topic, the more compact representations you desire) |
| 18:33:02 | <monochrom> | You know, "foo | nop" can be refactored to "optional foo" by defining "optional p = p | nop". |
| 18:33:19 | <monochrom> | which is what Control.Applicative did. |
| 18:33:24 | <tomsmeding> | here, when familiar with regular expressions, there is very little new stuff to learn, so a _way_ more compact representation would be more readable to me |
| 18:33:31 | <tomsmeding> | monochrom: this is python |
| 18:33:52 | <EvanR> | haskell is unreadable by some people not because they can't read it but because they won't xD |
| 18:33:56 | <tomsmeding> | hugo: is 'qn' optional, perhaps? |
| 18:34:00 | <hugo> | I confess that this is a bad example, it's the expanded form, which makes it lessreadable |
| 18:34:01 | <tomsmeding> | as in "question" |
| 18:34:03 | <monochrom> | Well yeah, but it's still legitimate to pose the refactoring challenge. |
| 18:34:19 | <erisco> | hugo, I wouldn't be saying your grammar is unreadable. I might suggest introducing more named production rules to break that up though |
| 18:34:32 | <hugo> | monochrom: foo | nop is already represented in the source as optional(foo), see my previous poit |
| 18:34:45 | <monochrom> | OK cool. |
| 18:35:38 | <hugo> | tomsmeding: qn I belive is a "qualified name", the example parser puppet code |
| 18:35:56 | <monochrom> | Do you support recursion? p ::= '(' p ')' | nop |
| 18:35:59 | <tomsmeding> | ah, so it's a subgrammar |
| 18:36:28 | <hugo> | But it's good to hear that my dumps are "readable". You really don't want to see the non-prettified grammar |
| 18:36:34 | <tomsmeding> | :D |
| 18:36:43 | <tomsmeding> | they're comprehensible, not very readable |
| 18:36:44 | <tomsmeding> | ;) |
| 18:36:45 | → | Pickchea joins (~private@user/pickchea) |
| 18:37:33 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:a12d:97a5:968a:df7f) (Remote host closed the connection) |
| 18:37:39 | <hugo> | monochrom: Recursion is supported, the problem being that lazy evaluation is achived through local lambdas, which means that it it's non-trivial to compare recursive steps |
| 18:37:52 | <hugo> | (I'm very open to solutions) |
| 18:38:16 | <hugo> | tomsmeding: Is there a difference between a grammar and a sub-grammar? Rather than how large it is? |
| 18:38:53 | <tomsmeding> | hugo: no, just that qn is apparently not a builtin primitive grammar construct, but rather a function that constructs another grammar |
| 18:38:57 | <hugo> | tomsmeding: Nice to hear that they are comprehensible. I personally feed them through a rainbow-parenthesis script to understand them |
| 18:39:02 | <tomsmeding> | :p |
| 18:39:14 | <tomsmeding> | the parentheses are fairly flat here, vim % was sufficient for me |
| 18:39:17 | × | jackneill__ quits (~Jackneill@20014C4E1E062E00A473EFF2719A535F.dsl.pool.telekom.hu) (Ping timeout: 260 seconds) |
| 18:39:45 | <tomsmeding> | re recursion, python is imperative and mutable state is no issue, so perhaps put a unique generated ID in every grammar AST node |
| 18:40:01 | <tomsmeding> | then you can detect recursion by finding cycles in the graph, using IDs as node identifiers |
| 18:40:03 | <EvanR> | every language recognized by the subgrammar of g is recognized by g! |
| 18:40:17 | <tomsmeding> | what is "the" subgrammar of g :p |
| 18:40:22 | <EvanR> | s/the/a |
| 18:40:30 | <tomsmeding> | not true |
| 18:40:42 | <EvanR> | not to be confused with the subgenius |
| 18:40:43 | <tomsmeding> | let g be the regex abcd |
| 18:40:51 | <tomsmeding> | bc is a subgrammar of g |
| 18:40:57 | <monochrom> | Wait, are you just making a joke that references a definition of infinite sets? |
| 18:41:00 | <erisco> | sublanguage versus subgrammar |
| 18:41:05 | × | xmachina quits (~xmachina@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 4.0.4) |
| 18:41:09 | <erisco> | though I haven't heard of "subgrammar" before |
| 18:41:12 | <hugo> | tomsmeding: 'qn' is technically not a sub-grammar, since it parser it's contents as given (it just changes the output). [ws] (and everything within brackes) is however a subgrammar |
| 18:41:18 | <Rembane> | Does this imply that supergrammars exist? |
| 18:41:29 | <exarkun> | I think my grammars are super. |
| 18:41:29 | <tomsmeding> | hugo: I see |
| 18:41:41 | × | danso quits (~danso@user/danso) (Quit: quittin time) |
| 18:41:41 | <exarkun> | wait, that doesn't sound right ... |
| 18:42:16 | <monochrom> | Clearly, Σ* is the super gramma of them all |
| 18:42:17 | <erisco> | Would a subgrammar define a language of substrings? |
| 18:42:33 | <monochrom> | And Gaia is the super grandma of them all. |
| 18:42:39 | <hugo> | tomsmeding: Reganding the rather flat parethesis, this is from a rather simple example, and I have already flattened the tree quite a bit in this output |
| 18:43:02 | <tomsmeding> | my (self-coined, to be fair) usage of subgrammar was intended to mean a subexpression of the grammar |
| 18:43:21 | <tomsmeding> | ah :p |
| 18:43:41 | <hugo> | For example, if I haven't cleaned up [ws] it would expand to string(([ws] & ('always' |
| 18:43:42 | <hugo> | | ("'" & ['a', 'l', 'w', 'a', 'y', 's'] & "'") |
| 18:43:44 | <hugo> | | ('"' & [rich_char(c='a'), rich_char(c='l'), rich_char(c='w'), rich_char(c='a'), rich_char(c='y'), rich_char(c='s')] & '"')))) |
| 18:43:48 | <hugo> | GLHF |
| 18:43:48 | <erisco> | tomsmeding, is it closed? |
| 18:43:56 | <tomsmeding> | beauty |
| 18:44:24 | <monochrom> | Actually, the linebreaks make that more readable... |
| 18:44:24 | <tomsmeding> | erisco: what does closed mean? It looks like these grammars don't have variables or anything of the sort |
| 18:44:27 | → | xmachina joins (~xmachina@modemcable048.127-56-74.mc.videotron.ca) |
| 18:44:40 | → | danso joins (~danso@user/danso) |
| 18:45:15 | <erisco> | tomsmeding, that all production rules referenced in the subgrammar are in the subgrammar |
| 18:46:23 | <tomsmeding> | right, yes that's what I was assuming |
| 18:46:44 | <tomsmeding> | note that qn here is a function, presumably Grammar -> Grammar, and the subgrammar in question would be qn(g'), not qn |
| 18:47:08 | <tomsmeding> | and in expanded form it's unclear whether there are even local definitions at all, so whether scoping is a thing at all |
| 18:47:13 | <erisco> | I guess there is a topology to grammars |
| 18:47:31 | → | califax_ joins (~califax@user/califx) |
| 18:47:53 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) |
| 18:48:06 | × | califax quits (~califax@user/califx) (Ping timeout: 246 seconds) |
| 18:48:43 | <hugo> | The line breaks in my example are manually added by me |
| 18:48:44 | <ncf> | is there? |
| 18:48:51 | califax_ | is now known as califax |
| 18:48:53 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 18:49:01 | <monochrom> | Darn. |
| 18:49:05 | <hugo> | The definition (from a grammar persepctive) of qn is: |
| 18:49:26 | <tomsmeding> | hugo: are you sick of us already :p |
| 18:50:15 | <hugo> | Sorry, I was busy locking up the definition |
| 18:50:29 | <monochrom> | tomsmeding: I teach my students both "pure (\x y -> ...) <*> m1 <*> m2" and "m1 >>= \x -> m2 >>= \y -> pure (...)", and let them choose which one they prefer, I just require them to be able to understand both when they see it. I don't teach them do-notation. |
| 18:50:49 | <tomsmeding> | was with you until "I don't teach them do-notation" |
| 18:50:56 | <monochrom> | haha |
| 18:51:00 | <hugo> | Let's just say `qn(_, x) -> x` |
| 18:51:01 | <erisco> | it's unreadable, is why |
| 18:51:03 | <hugo> | Or the other way around |
| 18:51:06 | <Rembane> | monochrom: What has do-notation ever done to you? |
| 18:51:17 | <hugo> | All it does is attach metadata to the attached parser |
| 18:51:18 | <tomsmeding> | genuinely, I also like my students to understand the more basic definitions |
| 18:51:33 | <tomsmeding> | hugo: ... qn takes 1 argument in your example grammar |
| 18:51:38 | <tomsmeding> | I see |
| 18:52:03 | <hugo> | tomsmeding: Then the gammar is `qn(x) -> x`, since qn only attaches metadata |
| 18:52:06 | <monochrom> | My first time teaching this stuff, I taught do-notation. Then both TAs and students who understood recommended not teaching do-notation. |
| 18:52:23 | <tomsmeding> | hugo: right |
| 18:52:25 | <hugo> | (I know this technically doesn't type check, but it works out i my non-typed Scheme |
| 18:52:28 | <hugo> | ) |
| 18:52:34 | <tomsmeding> | monochrom: interesting |
| 18:52:45 | <tomsmeding> | what was the motivation for that? |
| 18:53:15 | <EvanR> | starting with do notation is like starting to teach C by writing everything in macros |
| 18:53:17 | <hugo> | do-notation, and bind in general is for from trivial, I didn't understand it propertly until I re-implemented it in scheme |
| 18:53:26 | <tomsmeding> | EvanR: I never said _start_ with do-notation |
| 18:53:28 | <hugo> | EvanR: a bit like that |
| 18:53:51 | <monochrom> | I guess it's again "the basics first". |
| 18:54:17 | <hugo> | However; sometimes when people tell me that Haskell is "impossible", I show them 'main = println "Hello, World!"' |
| 18:54:28 | <tomsmeding> | *putStrLn |
| 18:54:46 | <monochrom> | My course also has higher priorities than teaching more Haskell, so we may as well save some time by skipping do-notation. Only >>= and pure are strictly necessary. |
| 18:54:46 | <EvanR> | % print "Hello World" |
| 18:54:46 | <yahb2> | "Hello World" |
| 18:54:47 | <hugo> | tomsmeding: I have written to many other languages recently |
| 18:54:50 | <tomsmeding> | (I know that's not relevant to the point :p) |
| 18:54:53 | <monochrom> | Hell, I don't even teach IO. |
| 18:55:07 | <EvanR> | IO is overrated |
| 18:55:09 | <monochrom> | Instead, we have monadic parsing! |
| 18:55:28 | <tomsmeding> | monochrom: right, your course sounds more theoretical than ours. We have a different course ("languages & compilers") that does lots of parsing stuff, including monadic parsing |
| 18:55:30 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) (Read error: Connection reset by peer) |
| 18:55:39 | <hugo> | Did any previous question pertain to me that I missed? |
| 18:55:46 | <tomsmeding> | the "functional programming" course is slightly more applied, and comes first |
| 18:55:51 | <EvanR> | but one complaint I heard was from someone who heard that haskell is bad at I/O and only good for non-I/O |
| 18:55:56 | <tomsmeding> | hugo: I suggested something about the recursion stuff |
| 18:55:59 | <EvanR> | so not teaching it doesn't help that |
| 18:56:27 | <hugo> | tomsmeding: "Motivation for that?" Or another post? |
| 18:56:35 | <monochrom> | My course is not a Haskell course. (At least, not supposed to.) It's a "principles of programming languages" course. |
| 18:56:36 | <erisco> | ncf, I guess starting nonterminal is important and I am not sure what to make of that |
| 18:57:00 | <tomsmeding> | hugo: re recursion, python is imperative and mutable state is no issue, so perhaps put a unique generated ID in every grammar AST node. then you can detect recursion by finding cycles in the graph, using IDs as node identifiers |
| 18:57:16 | <tomsmeding> | monochrom: see, that's the difference; ours is outspokenly a haskell course |
| 18:57:28 | <tomsmeding> | then one cannot really get around teaching do-notation, because after all, that's what people use |
| 18:57:47 | <monochrom> | So I only need to cover enough Haskell to enable me talking about types, type inference, parametricity, recursive descent parsing, denotational semantics... |
| 18:58:37 | <monochrom> | I also announce at the beginning "Haskell is a practical language, it just doesn't look like it in my course because I use it for academic purposes". |
| 18:58:39 | <tomsmeding> | we have a "concepts of programming language design" course, which is a mandatory master's course for the CS master, and also uses haskell but doesn't use monads at all |
| 18:59:21 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 18:59:29 | <hugo> | tomsmeding: I haven't looked deeper into finding recursion loops yet. I chose my current stack due to python having the libraries I needed. Whenever I try mutable state I lose track of what I am doing. So my Python is basically (bad) Haskell at this point |
| 18:59:35 | <monochrom> | Oh, in fact, this year I managed to ban the words "monad", "applicative", "functor" until the last lecture. :) |
| 18:59:39 | <hugo> | (don't say anything about my analogy) |
| 18:59:41 | <tomsmeding> | hugo: lol |
| 18:59:54 | × | xmachina quits (~xmachina@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 4.0.4) |
| 19:00:28 | <EvanR> | you can ease people into do notation by first teaching don't notation |
| 19:00:34 | <EvanR> | it's simpler |
| 19:00:41 | <hugo> | tomsmeding: Haskell isn't about Monads, but the monad abstraction is one of the best abstractions I have seen |
| 19:00:50 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
| 19:00:56 | <hugo> | EvanR: What is don't notation? |
| 19:01:01 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) |
| 19:01:02 | <tomsmeding> | @hackage acme-dont |
| 19:01:02 | <lambdabot> | https://hackage.haskell.org/package/acme-dont |
| 19:01:03 | <monochrom> | That's like "you can ease people into static typing by first teaching the () type" :) |
| 19:01:25 | <EvanR> | hey I have seen confusion about the () type |
| 19:01:31 | <EvanR> | they sometimes think it's an empty list |
| 19:01:49 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) (Read error: Connection reset by peer) |
| 19:01:54 | <EvanR> | or the same thing as Void because C |
| 19:02:04 | <hugo> | As a teacher aid for bachelors, I have seen most confusions first hand |
| 19:02:24 | <hugo> | EvanR: () and (C's) void are the same thing |
| 19:02:40 | <tomsmeding> | but not the same as Void |
| 19:03:06 | <monochrom> | You can fix that by "there is no Void in C". |
| 19:03:29 | <hugo> | A void procedure in C never returns a value, while a `-> ()` function in Haskell always returns a null value. 0! = 1! |
| 19:03:49 | <monochrom> | I do sometimes grill my students with "it's the year 2023 of our lord, why do you still treat programming languages as case-insenstive!" |
| 19:04:23 | <hugo> | monochrom: What are you talking about? |
| 19:04:30 | <monochrom> | "Void" vs "void" |
| 19:04:41 | <hugo> | go home |
| 19:04:53 | <tomsmeding> | % :i Data.Void.Void |
| 19:04:53 | <yahb2> | type Data.Void.Void :: * ; data Data.Void.Void ; -- Defined in ‘Data.Void’ ; instance [safe] Eq Data.Void.Void -- Defined in ‘Data.Void’ ; instance [safe] Ord Data.Void.Void -- Defined in ‘Data.... |
| 19:05:07 | <monochrom> | If you write your C code like "file *f = FOPEN(..." is it not going to compile, no? |
| 19:06:26 | <EvanR> | we should go further and make bold italic and underline result in different identifiers |
| 19:07:07 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) |
| 19:07:08 | <geekosaur> | inb4 esolang using only attributes |
| 19:07:15 | <hugo> | 1. When did I write "Void", 2. Have you seen PEP 3131 |
| 19:07:40 | <monochrom> | EvanR wrote "Void". That's all. |
| 19:07:42 | <EvanR> | see () causing confusion |
| 19:07:47 | <EvanR> | again |
| 19:08:14 | <monochrom> | I am OK with "() and void are the same" 99.9% of the time. |
| 19:08:32 | → | caryhartline joins (~caryhartl@168.182.58.169) |
| 19:08:44 | <hugo> | I usually tell my (python) students that a procedure without a return return "Nothing", and don't go into details that "Nothing" is the literal "None" object untli they ask." |
| 19:09:57 | <EvanR> | C sucks because its own calling convention ensures something is returned, you just can't use it |
| 19:10:00 | <hugo> | monochrom: Only diffenence I see between "()" and "void" is that one can be asignable to a variable, while the other can't. But what should you do with '() |
| 19:10:13 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:a12d:97a5:968a:df7f) |
| 19:10:49 | <hugo> | EvanR: C's calling convention just returns, void means that no value is return |
| 19:10:59 | <EvanR> | *that you know of* |
| 19:11:08 | <hugo> | a = [void returnig function] is undefined |
| 19:11:32 | <hugo> | Anything you have seen is undefined, which means that all bets are off |
| 19:11:49 | <EvanR> | undefined is javascript, that's something else |
| 19:12:01 | <monochrom> | haha |
| 19:12:15 | <erisco> | Unit in PureScript is anything. I guess like C! |
| 19:13:21 | <hugo> | EvanR: Have you read the C standard? |
| 19:13:30 | <EvanR> | we are in the wrong room for that |
| 19:14:01 | <hugo> | EvanR: You are trying to pull a Hayman here |
| 19:14:04 | × | p0lyph3m quits (~polyphem@p4fc2c546.dip0.t-ipconnect.de) (Quit: CoreIRC for Android - www.coreirc.com) |
| 19:14:43 | <EvanR> | calling conventions isn't in the standards, aiui |
| 19:15:12 | <EvanR> | that's implementation details |
| 19:16:07 | <hugo> | The (nonexistent) value of a void expression (an expression that has type void) shall not |
| 19:16:09 | <hugo> | be used in any way, and implicit or explicit conversions (except to void) shall not be |
| 19:16:11 | <hugo> | applied to such an expression. If an expression of any other type is evaluated as a void |
| 19:16:13 | <hugo> | expression, its value or designator is discarded. (A void expression is evaluated for its |
| 19:16:15 | <hugo> | side effects.) |
| 19:16:17 | <hugo> | C11, ISO 9899:201x |
| 19:16:23 | <EvanR> | WRONG ROOM |
| 19:16:52 | <geekosaur> | then why were you talking about calling conventions? |
| 19:16:59 | <hugo> | So the difference is that void expressions in C can't be checked, and '() expressions in Haskell is worthless to check |
| 19:17:09 | <erisco> | pretty sure Haskell has a C FFI |
| 19:17:44 | <EvanR> | there may be not much to say about () and void and Void when you get down to brass tacks, so I guess we can move on! |
| 19:18:35 | → | actioninja6 joins (~actioninj@user/actioninja) |
| 19:19:21 | <erisco> | Pascal had this all figured out when it separated procedures from functions |
| 19:19:43 | <monochrom> | Pascal followed Algol in this. |
| 19:20:10 | <monochrom> | C also took a lot from Algol, but they decided to deviate from this one. |
| 19:20:20 | <EvanR> | what's the difference between a procedure and a function |
| 19:20:43 | × | actioninja quits (~actioninj@user/actioninja) (Ping timeout: 264 seconds) |
| 19:20:43 | actioninja6 | is now known as actioninja |
| 19:21:04 | <monochrom> | But Algol's 2nd crime was "function but with side effects". |
| 19:22:44 | <erisco> | EvanR, functions have returns, procedures do not |
| 19:23:02 | <EvanR> | "interesting" |
| 19:23:42 | <hugo> | erisco: *procedures may not |
| 19:23:55 | <monochrom> | My unpopular opinion is that we should use the word "procedure" throughout, and accept that some procedures take 0 parameters, and some procedures don't have return values. I don't mind any syntax or reserved word for them, but that should be the fundamental concept. |
| 19:24:41 | <monochrom> | So C got that basically right except they used the word "function" throughout. |
| 19:24:54 | <hugo> | monochrom: My take is that functions are "pure" functions, as in mathematics, while procedures are the programming construct often called functions |
| 19:24:58 | <erisco> | if it unclutters the meaning of "functional programming" then I'm down |
| 19:25:01 | <monochrom> | But that's my point. "function but with side effects" is just illogical. |
| 19:25:33 | <Hecate> | and yet |
| 19:25:38 | <hugo> | monochrom: The scheme world is with you, they use procedure just as you sugests |
| 19:25:39 | <Hecate> | I write these for a living :D |
| 19:26:41 | <monochrom> | Correction: ... accept that procedures can take 0 or more parameters, and have 0 or 1 return values. |
| 19:27:02 | <erisco> | What does Golang have then? |
| 19:27:15 | <hugo> | Why can't a procedure have multiple return values? |
| 19:27:28 | <geekosaur> | golang's do |
| 19:27:48 | <geekosaur> | then again it just looks like a tuple without the parens |
| 19:27:49 | <Hecate> | geekosaur: I've always been surprised by this, isn't it a tuple that is returned? |
| 19:27:59 | <Hecate> | okay yeah, like Python's? |
| 19:28:04 | <monochrom> | One point being instead of the stupid division "0 return value => procedure, 1 return value => function", and doubling down on that error with "oh functions can have side effects too so they are secretly procedures". |
| 19:28:26 | <EvanR> | can I have procedures sometimes return 2 values, please |
| 19:28:38 | <Hecate> | EvanR: only if you eat your vegetables |
| 19:28:38 | <hugo> | The call stack is flexible, and can return multiple values natively |
| 19:28:46 | <EvanR> | why is that too much to ask |
| 19:29:00 | <hugo> | EvanR: Change to a better language |
| 19:29:03 | × | vglfr quits (~vglfr@cli-188-239-201-89.bbn.slav.dn.ua) (Ping timeout: 244 seconds) |
| 19:29:06 | <monochrom> | There are two known meanings for "multiple return values". But neither was in Algol so I will pass. |
| 19:29:07 | <EvanR> | don't say python |
| 19:29:18 | <geekosaur> | don't say golang |
| 19:29:37 | <hugo> | Worth noting, most procedural languagse returning 0 values actually return a value (See Python and it's 'None' returns) |
| 19:30:35 | <hugo> | geekosaur: Doesn't golang have true multiple return? |
| 19:31:14 | <Hecate> | hugo: no it's a tuple |
| 19:31:15 | <Hecate> | https://gobyexample.com/multiple-return-values |
| 19:31:18 | <Hecate> | (int, int) |
| 19:31:20 | <Hecate> | that's a tuple |
| 19:31:30 | <EvanR> | I think my gripe was "better language" |
| 19:31:44 | <erisco> | Hecate, but you cannot assign a multiple return to a variable |
| 19:31:47 | × | sabino quits (~sabino@user/sabino) (Ping timeout: 260 seconds) |
| 19:32:08 | <monochrom> | No one wants to ask me "you said '2nd crime' so what's the 1st crime?"? :) |
| 19:32:16 | <hugo> | Hecate: "Go has built-in support for multiple return values", are you sure it's a tuple |
| 19:32:24 | <geekosaur> | right, in haskell-speak you must deconstruct it immediately |
| 19:32:33 | <geekosaur> | that strikes me more as multiple return than as tuple |
| 19:32:38 | <hugo> | erisco: You are talking syntax |
| 19:32:54 | <Hecate> | erisco: ah yes indeed |
| 19:33:00 | <Hecate> | so, it's a shittier tuple |
| 19:33:02 | <Hecate> | incredible |
| 19:33:07 | <monochrom> | Wait, is that just like Lisp's multiple return values? |
| 19:33:11 | <geekosaur> | that's golang for you |
| 19:33:15 | <hugo> | Hecate: It's a faster "tuple" |
| 19:33:25 | <Hecate> | hugo: faster on which plan? |
| 19:33:43 | → | sabino joins (~sabino@user/sabino) |
| 19:33:54 | <Hecate> | memory layout can't be that different from a tuple in a similar language |
| 19:33:57 | <hugo> | Multiple return values doesn't incur an heap allocation |
| 19:34:05 | <hugo> | And hap allocations are "slow" |
| 19:34:10 | <Hecate> | hugo: where did you read that? |
| 19:34:39 | × | tzh quits (~tzh@c-73-25-201-16.hsd1.or.comcast.net) (Ping timeout: 252 seconds) |
| 19:34:41 | <hugo> | I'm actually in search for a good source that heap allocations are slow, currently I only have the general word of mouth |
| 19:35:02 | <EvanR> | heap allocation doesn't necessarily mean malloc |
| 19:35:05 | <monochrom> | I agree that the heap is more expensive. |
| 19:35:22 | <monochrom> | If anything, there is GC to worry about later. |
| 19:35:44 | <EvanR> | unless you're UrWeb |
| 19:35:45 | → | xmachina joins (~xmachina@modemcable048.127-56-74.mc.videotron.ca) |
| 19:35:53 | <monochrom> | In principle, GC turns a linear-time linear-space algorithm to quadratic time. |
| 19:36:03 | × | gmc quits (sid58314@id-58314.ilkley.irccloud.com) (Server closed connection) |
| 19:36:09 | <dolio> | You don't need to distinguish returning tuples and 'multiple returns' to make things efficient. |
| 19:36:14 | → | gmc joins (sid58314@id-58314.ilkley.irccloud.com) |
| 19:36:59 | <hugo> | Technically you can have "wide returns", but we are "unfortunally" stuck with the calling conventions of our host systems |
| 19:37:37 | → | merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl) |
| 19:37:47 | <tomsmeding> | _tuple_ doesn't necessarily mean heap allocation, unless you're haskell and the function is not inlined so it has to conform to GHC's calling convention which is heap-allocated |
| 19:38:13 | <tomsmeding> | to make things even more muddled :D |
| 19:38:19 | <dolio> | You don't need to inline, either. |
| 19:38:28 | <tomsmeding> | in haskell you do, right? |
| 19:38:35 | <monochrom> | Yeah, even more muddled because sometimes GHC can optimize that away. (And sometimes not.) |
| 19:38:53 | <tomsmeding> | I mean, worker-wrapper exists, but then the wrapper needs to be inlined for the scheme to work |
| 19:38:59 | <EvanR> | using multiple returns in C-- ? |
| 19:39:01 | <tomsmeding> | (no, not that Scheme) |
| 19:39:08 | <Hecate> | hohai tomsmeding |
| 19:39:14 | <tomsmeding> | hai! |
| 19:39:26 | <hugo> | (values 1 2) |
| 19:39:27 | <dolio> | I mean, the compiler has to keep track of this stuff. |
| 19:39:32 | <monochrom> | But all the more important for what dolio said. Separate the denotational semantics from optimizing the operational semantics already. |
| 19:39:39 | <tomsmeding> | I left the conversation when it was about Void, then I took a shower, now it's about multiple return |
| 19:39:41 | <dolio> | That doesn't mean the surface syntax needs it. |
| 19:39:57 | <dolio> | Or, that most people need to worry about it in the surface syntax at least. |
| 19:40:04 | <hugo> | But we are stuck in a world of actual compilers, in theory we could live in a multiple-return-world |
| 19:40:31 | × | caryhartline quits (~caryhartl@168.182.58.169) (Quit: caryhartline) |
| 19:40:41 | <EvanR> | unless we're writing in asm compilers are great |
| 19:40:41 | <dolio> | You only need to force users to care about all this stuff if you're unwilling to make the compiler keep track of it. |
| 19:40:41 | <hugo> | Multiple returns is the same discussion as 0 returns |
| 19:42:01 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 19:42:07 | <monochrom> | I'm going to be arrogant and divisive and say Pike ≠ SPJ so Pike knew no better than letting this detail leak to the supposedly high-level language. |
| 19:42:26 | <hugo> | tomsmeding: Ayr you multiple people? You "brack" was 16s long |
| 19:42:37 | <dolio> | Letting it leak is Industry Standard. |
| 19:43:23 | <tomsmeding> | hugo: I'm talking about 21:04 till 21:37 :p |
| 19:43:49 | <tomsmeding> | if it was still about Void then, my reading comprehension could use a touch-up |
| 19:44:22 | <dolio> | tomsmeding: 0 is a multiple. :þ |
| 19:44:38 | <monochrom> | Nah don't worry, we drifted. :) |
| 19:44:39 | <hugo> | I had completely missed that we talked about Void |
| 19:44:58 | <hugo> | monochrom: Is the Pike you mention this pike https://pike.lysator.liu.se/? |
| 19:45:06 | <monochrom> | Just be thankful no one dared to try fractal return values! |
| 19:45:21 | <hugo> | monochrom: Dear god |
| 19:45:25 | <tomsmeding> | hugo: https://en.wikipedia.org/wiki/Rob_Pike |
| 19:45:28 | <EvanR> | there's a rule that says if you allow 0, 1 or 2 returns you have to also allow infinite returns |
| 19:45:33 | <monochrom> | Go's Pike. |
| 19:45:49 | <hugo> | Thank God it's not "that" Pike |
| 19:46:34 | → | danza joins (~francesco@na-19-76-177.service.infuturo.it) |
| 19:47:59 | × | ubert quits (~Thunderbi@91.141.40.168.wireless.dyn.drei.com) (Ping timeout: 245 seconds) |
| 19:48:36 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 19:49:52 | → | caryhartline joins (~caryhartl@168.182.58.169) |
| 19:50:24 | → | vglfr joins (~vglfr@88.154.54.160) |
| 19:51:20 | × | infinity0 quits (~infinity0@pwned.gg) (Remote host closed the connection) |
| 19:53:22 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 260 seconds) |
| 19:53:27 | → | infinity0 joins (~infinity0@pwned.gg) |
| 20:01:19 | × | infinity0 quits (~infinity0@pwned.gg) (Remote host closed the connection) |
| 20:03:27 | → | infinity0 joins (~infinity0@pwned.gg) |
| 20:04:24 | × | johnw quits (~johnw@69.62.242.138) (Quit: ZNC - http://znc.in) |
| 20:05:15 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 20:06:53 | × | vglfr quits (~vglfr@88.154.54.160) (Ping timeout: 258 seconds) |
| 20:08:57 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 246 seconds) |
| 20:10:08 | × | danza quits (~francesco@na-19-76-177.service.infuturo.it) (Ping timeout: 255 seconds) |
| 20:10:21 | → | tzh joins (~tzh@c-73-25-201-16.hsd1.or.comcast.net) |
| 20:10:52 | × | hyiltiz quits (~hyiltiz@2620:149:13d1:100::431) (Ping timeout: 260 seconds) |
| 20:11:06 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 20:11:38 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) (Read error: Connection reset by peer) |
| 20:11:56 | × | merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 255 seconds) |
| 20:12:16 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) |
| 20:14:02 | → | pavonia joins (~user@user/siracusa) |
| 20:15:07 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) (Read error: Connection reset by peer) |
| 20:17:03 | → | hyiltiz joins (~hyiltiz@2620:149:13d1:100::431) |
| 20:18:45 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 246 seconds) |
| 20:20:40 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) |
| 20:21:01 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 20:23:33 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 20:32:00 | × | _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht) |
| 20:33:47 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 20:34:51 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 246 seconds) |
| 20:37:46 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 20:38:22 | → | accord joins (uid568320@id-568320.hampstead.irccloud.com) |
| 20:46:02 | × | td_ quits (~td@i5387090C.versanet.de) (Ping timeout: 244 seconds) |
| 20:46:36 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 20:47:49 | → | td_ joins (~td@i53870901.versanet.de) |
| 20:48:12 | → | vglfr joins (~vglfr@cli-188-239-201-89.bbn.slav.dn.ua) |
| 20:52:52 | → | mstruebing joins (~mstruebin@2a02:8108:483f:b989:1963:6bff:ae27:c9d3) |
| 20:54:00 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 20:54:37 | × | tzh quits (~tzh@c-73-25-201-16.hsd1.or.comcast.net) (Ping timeout: 260 seconds) |
| 20:59:19 | → | Tuplanolla joins (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) |
| 21:04:09 | × | caryhartline quits (~caryhartl@168.182.58.169) (Quit: caryhartline) |
| 21:06:05 | → | _xor8 joins (~xor@ip-50-5-233-250.dynamic.fuse.net) |
| 21:07:39 | × | _xor quits (~xor@ip-50-5-233-250.dynamic.fuse.net) (Ping timeout: 255 seconds) |
| 21:07:40 | _xor8 | is now known as _xor |
| 21:09:47 | × | acidjnk quits (~acidjnk@p200300d6e7072f09040c85b81d4e368d.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 21:11:49 | × | renegade quits (~renegade@bcdcac82.skybroadband.com) (Read error: Connection reset by peer) |
| 21:13:13 | → | tzh joins (~tzh@c-73-25-201-16.hsd1.or.comcast.net) |
| 21:15:24 | → | renegade joins (~renegade@188.220.172.130) |
| 21:17:29 | → | emmanuelux joins (~emmanuelu@user/emmanuelux) |
| 21:19:45 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 21:22:23 | × | fendor quits (~fendor@2a02:8388:1640:be00:aab:1226:f274:5021) (Remote host closed the connection) |
| 21:22:30 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 21:24:28 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 21:25:53 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 21:28:42 | → | merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl) |
| 21:33:50 | → | liz joins (~liz@212.132.163.201) |
| 21:46:26 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) (Read error: Connection reset by peer) |
| 21:47:19 | → | johnw joins (~johnw@69.62.242.138) |
| 21:47:49 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) |
| 21:50:27 | → | caryhartline joins (~caryhartl@168.182.58.169) |
| 21:52:57 | × | machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 260 seconds) |
| 21:54:47 | → | nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
| 21:58:27 | × | monochrom quits (trebla@216.138.220.146) (Quit: NO CARRIER) |
| 22:00:32 | × | nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 260 seconds) |
| 22:02:07 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) (Read error: Connection reset by peer) |
| 22:02:34 | × | merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 245 seconds) |
| 22:03:27 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) |
| 22:03:55 | × | Pickchea quits (~private@user/pickchea) (Quit: Leaving) |
| 22:03:57 | → | ft joins (~ft@p3e9bc680.dip0.t-ipconnect.de) |
| 22:03:59 | × | caryhartline quits (~caryhartl@168.182.58.169) (Quit: caryhartline) |
| 22:04:08 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) (Read error: Connection reset by peer) |
| 22:05:35 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) |
| 22:10:30 | × | liz quits (~liz@212.132.163.201) (Quit: Leaving) |
| 22:10:57 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) (Read error: Connection reset by peer) |
| 22:13:59 | × | mstruebing quits (~mstruebin@2a02:8108:483f:b989:1963:6bff:ae27:c9d3) (Quit: Client closed) |
| 22:15:57 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) |
| 22:16:02 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) (Read error: Connection reset by peer) |
| 22:19:22 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 22:19:30 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) |
| 22:21:11 | → | hiyori joins (~hiyori@user/hiyori) |
| 22:23:26 | → | puke joins (~puke@user/puke) |
| 22:24:03 | × | stefan-_ quits (~cri@42dots.de) (Server closed connection) |
| 22:24:19 | → | stefan-_ joins (~cri@42dots.de) |
| 22:33:08 | → | hyiltiz2 joins (~hyiltiz@65.199.22.165) |
| 22:35:18 | × | hyiltiz quits (~hyiltiz@2620:149:13d1:100::431) (Ping timeout: 246 seconds) |
| 22:38:24 | × | califax quits (~califax@user/califx) (Ping timeout: 246 seconds) |
| 22:39:21 | → | califax joins (~califax@user/califx) |
| 22:40:47 | → | wroathe joins (~wroathe@user/wroathe) |
| 22:42:34 | × | Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
| 22:42:58 | × | accord quits (uid568320@id-568320.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 22:44:07 | × | gmg quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 22:45:56 | → | sm joins (~sm@plaintextaccounting/sm) |
| 22:46:25 | × | Tuplanolla quits (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Ping timeout: 244 seconds) |
| 22:49:08 | → | sm_ joins (~sm@plaintextaccounting/sm) |
| 22:50:40 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) (Read error: Connection reset by peer) |
| 22:52:05 | × | sm quits (~sm@plaintextaccounting/sm) (Ping timeout: 240 seconds) |
| 22:52:16 | × | coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |
| 22:52:26 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 22:54:43 | × | renegade quits (~renegade@188.220.172.130) (Read error: Connection reset by peer) |
| 22:57:27 | × | sm_ quits (~sm@plaintextaccounting/sm) (Quit: sm_) |
| 22:59:11 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) |
| 23:02:29 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) (Read error: Connection reset by peer) |
| 23:13:26 | × | son0p quits (~ff@186.114.32.184) (Quit: Bye) |
| 23:14:48 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 23:19:47 | → | merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl) |
| 23:21:33 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) |
| 23:21:42 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) (Read error: Connection reset by peer) |
| 23:21:59 | → | Square joins (~Square@user/square) |
| 23:33:40 | × | fweht quits (uid404746@id-404746.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 23:33:50 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) |
| 23:34:31 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 264 seconds) |
| 23:38:18 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) (Read error: Connection reset by peer) |
| 23:39:19 | × | xff0x quits (~xff0x@2405:6580:b080:900:c9f3:66ab:ef62:4559) (Ping timeout: 264 seconds) |
| 23:41:05 | → | xff0x joins (~xff0x@178.255.149.135) |
| 23:42:58 | → | JeremyB99 joins (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) |
| 23:43:06 | × | JeremyB99 quits (~JeremyB99@2607:fb91:17ee:23f5:edee:2b44:e73e:1db8) (Read error: Connection reset by peer) |
| 23:49:36 | × | xff0x quits (~xff0x@178.255.149.135) (Ping timeout: 258 seconds) |
| 23:51:18 | → | xff0x joins (~xff0x@2405:6580:b080:900:b22b:45a6:c80c:f3de) |
| 23:53:41 | × | bontaq quits (~user@ool-45707d2c.dyn.optonline.net) (Remote host closed the connection) |
| 23:54:05 | × | merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 240 seconds) |
| 23:56:57 | → | caryhartline joins (~caryhartl@168.182.58.169) |
| 23:57:09 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 246 seconds) |
| 23:59:35 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 240 seconds) |
| 23:59:50 | → | wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com) |
| 23:59:50 | × | wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
| 23:59:50 | → | wroathe joins (~wroathe@user/wroathe) |
All times are in UTC on 2023-09-19.