Home liberachat/#haskell: Logs Calendar

Logs on 2023-07-06 (liberachat/#haskell)

00:00:47 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
00:01:56 × falafel quits (~falafel@2603-7000-a700-8710-96ac-85c5-1252-d052.res6.spectrum.com) (Ping timeout: 246 seconds)
00:03:28 × bratwurst quits (~dfadsva@2604:3d09:207f:f650::a8c) (Ping timeout: 240 seconds)
00:04:25 <DigitalKiwi> bratwurst > hot dog
00:16:59 × tv quits (~tv@user/tv) (Ping timeout: 246 seconds)
00:17:33 nick4 joins (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5)
00:22:11 × nick4 quits (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) (Ping timeout: 264 seconds)
00:27:54 smalltalkman joins (uid545680@id-545680.hampstead.irccloud.com)
00:33:10 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 260 seconds)
00:35:02 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 250 seconds)
00:37:22 × Feuermagier quits (~Feuermagi@user/feuermagier) (Quit: Leaving)
00:42:30 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
00:42:30 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
00:42:30 wroathe joins (~wroathe@user/wroathe)
00:43:33 × wroathe quits (~wroathe@user/wroathe) (Client Quit)
00:43:45 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
00:43:46 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
00:43:46 wroathe joins (~wroathe@user/wroathe)
00:45:10 × leah2 quits (~leah@vuxu.org) (Ping timeout: 258 seconds)
00:45:37 × waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 245 seconds)
00:50:48 <EvanR> instance Ord MeatShapes
00:54:10 × johnw quits (~johnw@69.62.207.57) (Ping timeout: 246 seconds)
00:57:26 × _d0t quits (~{-d0t-}@user/-d0t-/x-7915216) (Remote host closed the connection)
00:58:18 _d0t joins (~{-d0t-}@user/-d0t-/x-7915216)
01:03:50 nick4 joins (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5)
01:07:48 × nick4 quits (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) (Ping timeout: 240 seconds)
01:11:30 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
01:17:35 npmania joins (~Thunderbi@138.199.21.242)
01:17:36 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
01:19:23 <EvanR> in the layout algorithm detailed in the haskell report, they introduce additional tokens to the stream resulting from lexical analysis. These tokens are of the form {n} and < n >. Then the psuedo-haskell algorithm uses {n} and < n > in patterns, so it looks like these represent atomic pieces of data
01:19:26 akadude[m] joins (~akadudema@2001:470:69fc:105::2:5bf7)
01:19:37 <EvanR> but then they match on } and { too...
01:19:52 <EvanR> does {n} mean {, a number, then } or xD
01:19:55 kleenestar[m] joins (~kleenesta@2001:470:69fc:105::3:6d78)
01:22:19 × phma quits (phma@2001:5b0:215a:8658:1ead:e764:9c5d:6413) (Read error: Connection reset by peer)
01:22:39 <geekosaur> but {n} is a single token, and as such would not be confused with the three tokens {,n,} (n being a number, yes)
01:22:45 phma joins (phma@2001:5b0:215a:8658:2ff0:2260:7332:7cdc)
01:23:29 <geekosaur> likewise < n > is a single token
01:23:56 <geekosaur> the assumption here is that a tokenization step takes place, such that this is meaningful and safe
01:25:50 <dolio> I think the < n > situation is just bad latex formatting.
01:26:17 <geekosaur> (this tokenization is probably why ghc uses happy to tokenize; its internal representation of indentation probably isn't {n} <n>, but it only needs to be equivalent to the report's description)
01:26:23 <dolio> They didn't do anything custom to make it look like one token.
01:28:38 × npmania quits (~Thunderbi@138.199.21.242) (Quit: npmania)
01:30:08 × EvanR quits (~EvanR@user/evanr) (Ping timeout: 240 seconds)
01:30:43 <geekosaur> he's dead, Jim!
01:32:52 nick4 joins (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5)
01:35:36 <nyc> Does current ghc git pass all the tests from ./hadrian --freeze1 test?
01:35:55 <geekosaur> best asked over in #ghc
01:46:26 × nick4 quits (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) (Ping timeout: 260 seconds)
01:47:58 EvanR joins (~EvanR@user/evanr)
01:50:42 johnw joins (~johnw@69.62.242.138)
01:57:19 <EvanR> got it thanks for clarifying
01:58:49 monochrm joins (trebla@216.138.220.146)
01:59:58 × monochrom quits (trebla@216.138.220.146) (Ping timeout: 250 seconds)
01:59:58 monochrm is now known as monochrom
02:00:50 × hugo quits (znc@verdigris.lysator.liu.se) (Ping timeout: 250 seconds)
02:01:06 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
02:03:49 eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
02:06:41 × xff0x_ quits (~xff0x@ai086045.d.east.v6connect.net) (Ping timeout: 245 seconds)
02:06:53 rainbyte joins (~rainbyte@181.31.239.226)
02:13:23 hugo joins (znc@verdigris.lysator.liu.se)
02:15:25 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
02:15:37 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
02:15:37 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
02:15:38 finn_elija is now known as FinnElija
02:19:08 × td_ quits (~td@i53870923.versanet.de) (Ping timeout: 240 seconds)
02:19:52 × hugo quits (znc@verdigris.lysator.liu.se) (Ping timeout: 240 seconds)
02:21:09 td_ joins (~td@i53870936.versanet.de)
02:21:20 <talismanick> I remember seeing someone say it's not possible to "parse with derivatives" in Haskell (extending Brzozowski from regular to CF languages with fixpoints and memoizations)
02:21:24 <talismanick> Why might that be?
02:21:35 <talismanick> (haven't actually read the paper yet)
02:29:13 hugo joins (znc@verdigris.lysator.liu.se)
02:35:35 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds)
02:39:36 hgolden joins (~hgolden@2603-8000-9d00-3ed1-7b72-5998-97ad-985d.res6.spectrum.com)
02:39:57 × YoungFrog quits (~youngfrog@2a02:a03f:ca07:f900:c0d1:a78f:f0d6:915b) (Quit: ZNC 1.7.x-git-3-96481995 - https://znc.in)
02:40:17 YoungFrog joins (~youngfrog@2a02:a03f:ca07:f900:c0d1:a78f:f0d6:915b)
02:47:15 nick4 joins (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5)
02:57:54 reach joins (~reach@74.12.129.40)
03:03:57 xff0x_ joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
03:06:46 <EvanR> > ("\1234", "\123\&4") -- dang how do other languages handle that nonsense
03:06:47 <lambdabot> ("\1234","{4")
03:07:24 × thaumavorio quits (~thaumavor@162.243.123.105) (Quit: ZNC 1.8.2 - https://znc.in)
03:07:39 <monochrom> As in, other languages do not offer the equiv of our "\123\&4" ?
03:08:28 <monochrom> I am not surprised that most people have not understood 0 and the empty string.
03:10:44 thaumavorio joins (~thaumavor@thaumavor.io)
03:10:54 ystael joins (~ystael@user/ystael)
03:15:01 × hipnozis quits (~hipnozis@176-241-45-174.pool.digikabel.hu) (Ping timeout: 245 seconds)
03:15:33 <monochrom> Right? Even me. A long time ago you brought up a binary operator that clearly had an identity (though not obviously useful) and asked why the library didn't provide the identity element, and even I was like "who needs it".
03:16:03 <monochrom> I have learned my lesson. The identity element will always become useful in unforseen ways.
03:17:02 <EvanR> what library?
03:17:04 hipnozis joins (~hipnozis@84-236-122-155.pool.digikabel.hu)
03:17:12 <monochrom> I forgot.
03:18:24 <monochrom> It may have been about this: One could define a binary operator based on forkIO. And then it has an identity element.
03:18:46 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 245 seconds)
03:18:47 <monochrom> But I forgot whether you were talking about that one or something else.
03:18:48 <EvanR> oh like a thread which reliably waits forever
03:19:23 <monochrom> Yeah, sounds like it.
03:20:40 notzmv joins (~zmv@user/notzmv)
03:20:45 <EvanR> hacking in an identity element into this string literal seems like a weird solution to unicode escapes, you could use a fixed-size or delimited unicode escape. But then there's
03:21:06 <EvanR> ("\SOH", "\SO\&H")
03:21:10 <EvanR> > ("\SOH", "\SO\&H")
03:21:12 <lambdabot> ("\SOH","\SO\&H")
03:21:46 <EvanR> whoa what the show instance left the \& in
03:22:05 <dolio> What else would it do?
03:22:29 <EvanR> is it a special case in the show code xD
03:23:18 <EvanR> > "\SO\&L"
03:23:20 <lambdabot> "\SOL"
03:23:33 <monochrom> Oh if Show instance gave you \SOH you would misunderstood it :)
03:23:42 <EvanR> yeah
03:24:07 <hololeap> talismanick: according to typeclassopedia, applicative-only parsers can only parse context-free grammars, but parsers with a monad interface can parse context-sensitive grammars (type-2 and type-1 grammars respectively, here: https://en.wikipedia.org/wiki/Chomsky_hierarchy#The_hierarchy)
03:24:08 <EvanR> string literals grew legs
03:24:13 <dolio> It has to do something. Either not use \SO in that case, or use \&.
03:25:38 <hololeap> would fixpoints mean that it requires a type-0 grammar?
03:27:14 <ski> identity element tends to be useful when branching, as one of the cases. e.g. `a + a * b = a * (1 + b)' kind of thing
03:27:46 <dolio> No, CFGs are equivalent to augmenting regular expressions with a fixed-point operator.
03:28:03 ski . o O ( eta-reduction, tail calls, avoiding no-op round-trip )
03:29:21 <ski> > "\SO\ \H"
03:29:23 <lambdabot> "\SO\&H"
03:30:51 <monochrom> With a monad interface plus lambdas (so, strong monad IIUC), you can parse all decidable languages.
03:32:40 <EvanR> that is a really funny corner case of haskell
03:32:44 <dolio> https://www.cl.cam.ac.uk/~jdy22/papers/a-typed-algebraic-approach-to-parsing.pdf
03:33:26 falafel joins (~falafel@2603-7000-a700-8710-bb02-2c7d-17e2-58d0.res6.spectrum.com)
03:34:34 <ski> ooh, that looks cool, ty
03:36:41 × reach quits (~reach@74.12.129.40) (Remote host closed the connection)
03:36:50 <dolio> Also, depending on how you implement things, applicative parsers can parse any grammar, because every language recognizable by the host language can be embedded into an infinite 'regular' grammar in that language.
03:37:04 reach joins (~reach@bras-base-toroon2643w-grc-19-74-12-129-40.dsl.bell.ca)
03:38:23 <monochrom> Yeah I think we usually mean: applicative, alternative, but the base case primitive are only "satisfy" and "eof".
03:51:49 <ski> (yea, i think EOF shouldn't be expressible ..)
03:51:53 × ystael quits (~ystael@user/ystael) (Ping timeout: 246 seconds)
03:55:02 <monochrom> Ah, I chalk it up to arbitrary parameter passing instead. Equivalently having Reader/ReaderT.
03:55:30 aforemny_ joins (~aforemny@2001:9e8:6ce6:ca00:3bad:e307:8f54:4c53)
03:56:26 × aforemny quits (~aforemny@i59F516D3.versanet.de) (Ping timeout: 246 seconds)
04:02:42 × puke quits (~puke@user/puke) (Ping timeout: 260 seconds)
04:03:17 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
04:05:53 × iteratee quits (~kyle@162.218.222.207) (Ping timeout: 246 seconds)
04:08:11 iteratee joins (~kyle@162.218.222.207)
04:11:38 <monochrom> Now I just have issues with "parse recognizable languages". Normally I expect "parse" to mean "if the input is not in the language, the parser terminates and say 'syntax error'".
04:13:19 _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
04:13:34 puke joins (~puke@user/puke)
04:14:25 <EvanR> while attempt to read the paper without knowing ocaml, I had to give up and ask how to read this type signature found 387, Z : ('a * 'ctx, 'a) var
04:14:39 <EvanR> star means product type? then what's the parentheses
04:15:31 <mauke> Z :: Var (a, ctx) a
04:15:46 <EvanR> whoa
04:17:20 <EvanR> what about the precedence going on between * and -> here, Map : ('a -> 'b) * ('ctx, 'a) t -> ('ctx, 'b) t
04:17:22 <monochrom> MLs use 'foo for type variables. Generally prepending ' to type variable names.
04:17:38 <monochrom> A*B is (A,B)
04:18:21 <monochrom> And yeah postfix notation for type constructors because "reads like English". Consider [Int] vs "int list".
04:19:12 <monochrom> In pattern matching, we have "xs@(x : xt)". MLs literally used "as", i.e., "xs as (x :: xt)"
04:19:34 <mauke> Map :: (a -> b, T ctx a) -> T ctx b
04:19:37 <mauke> I think
04:20:06 <monochrom> Now, ML predated Haskell, so our @ was inspired by their "as" (why else would we choose @ heh) but we chose "line noise".
04:21:04 <monochrom> Yeah.
04:21:34 <EvanR> stashing a pair in the data constructor, instead of currying
04:21:38 <monochrom> Either "T ctx a" or "T (ctx, a)", I forgot how they treat multiple-param polymorphic types.
04:22:18 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds)
04:22:34 <monochrom> OK I guess postfix notation implies that "int bool map" makes no sense and it has to be "(int, bool) map".
04:23:02 <mauke> yeah, it's a (type-level) parameter list
04:23:06 <dolio> Yeah, I mean any language decidable by the host. As long as the host can reject it, the infinite grammar can, too.
04:25:26 azimut_ joins (~azimut@gateway/tor-sasl/azimut)
04:25:38 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
04:35:07 <EvanR> any idea what ==> is on e.g. 381
04:35:47 <EvanR> doh
04:35:49 <EvanR> let (==>) p f = map f p
04:37:29 × CAT_S quits (apic@brezn3.muc.ccc.de) (Ping timeout: 240 seconds)
04:37:36 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds)
04:37:43 trev joins (~trev@user/trev)
04:39:27 × Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Quit: Leaving)
04:41:10 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
04:42:46 × stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
04:43:15 stiell_ joins (~stiell@gateway/tor-sasl/stiell)
04:44:36 <ski> i've called that `pam'
04:47:38 <monochrom> :)
04:57:30 leah2 joins (~leah@vuxu.org)
05:01:32 × iteratee quits (~kyle@162.218.222.207) (Read error: Connection reset by peer)
05:02:33 Sgeo joins (~Sgeo@user/sgeo)
05:06:18 <talismanick> hololeap: Interesting and thanks for linking that, but I don't see what it has to do with my question...
05:07:07 × bonz060 quits (~bonz060@105.163.1.181) (Remote host closed the connection)
05:07:55 <talismanick> I'm talking about the paper https://matt.might.net/papers/might2011derivatives.pdf
05:11:05 iteratee joins (~kyle@162.218.222.207)
05:12:38 <talismanick> The Racket version seems straightforward, so long as you don't think too hard about the macro expansions (`define/fix` and `define/memoize` instead of plain `define`)
05:13:29 <talismanick> https://github.com/plum-umd/parsing-with-derivatives/blob/master/racket-code/racket/
05:17:24 <talismanick> As I understand it, applicative and monadic parsing are interfaces for parsers - they don't say much about how it goes about its business algorithmically
05:18:17 <talismanick> whereas parsing with derivatives is a choice on the level of recursive descent vs LR vs Earley (of which it's most similar to the latter)
05:19:26 × brettgilio quits (~brettgili@2001:19f0:5c00:27fc:5400:4ff:fe7a:1f8e) (Quit: Ping timeout (120 seconds))
05:20:04 brettgilio joins (~brettgili@2001:19f0:5c00:27fc:5400:4ff:fe7a:1f8e)
05:21:25 × azimut_ quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
05:21:48 azimut joins (~azimut@gateway/tor-sasl/azimut)
05:21:50 × falafel quits (~falafel@2603-7000-a700-8710-bb02-2c7d-17e2-58d0.res6.spectrum.com) (Ping timeout: 246 seconds)
05:28:11 × thegeekinside quits (~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
05:28:20 harveypwca joins (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
05:34:48 CAT_S joins (apic@brezn3.muc.ccc.de)
05:39:16 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
05:46:04 `2jt joins (~jtomas@90.162.208.36)
05:47:09 titibandit joins (~titibandi@user/titibandit)
05:47:12 × `2jt quits (~jtomas@90.162.208.36) (Remote host closed the connection)
05:47:35 `2jt joins (~jtomas@90.162.208.36)
05:50:27 × titibandit quits (~titibandi@user/titibandit) (Remote host closed the connection)
05:50:30 × nick4 quits (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) (Ping timeout: 260 seconds)
05:54:32 <dminuoso_> "monochrom | [04:17:22] MLs use 'foo for type variables. Generally prepending ' to type variable names."
05:54:35 <dminuoso_> As opposed to what?
05:54:48 <dminuoso_> In the above example, what does `t` refer to?
05:56:45 × stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
05:57:07 stiell_ joins (~stiell@gateway/tor-sasl/stiell)
05:58:13 <Hecate> dminuoso_: haskell doesn't need the apostrophe to denotate a tyvar
05:58:58 <Hecate> dminuoso_: t might refer to the type defined and exported by the current module I guess?
05:58:59 <dminuoso_> Oh I know. The discussion was about MLs.
05:59:06 <Hecate> ah ok :)
06:01:23 × reach quits (~reach@bras-base-toroon2643w-grc-19-74-12-129-40.dsl.bell.ca) (Ping timeout: 246 seconds)
06:02:04 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
06:02:48 nick4 joins (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5)
06:08:07 qqq joins (~qqq@92.43.167.61)
06:13:21 × hipnozis quits (~hipnozis@84-236-122-155.pool.digikabel.hu) (Ping timeout: 245 seconds)
06:15:23 hipnozis joins (~hipnozis@91-83-10-42.pool.digikabel.hu)
06:16:12 × ft quits (~ft@p508db151.dip0.t-ipconnect.de) (Quit: leaving)
06:22:52 delYsid joins (~user@user/delYsid)
06:24:06 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 260 seconds)
06:28:47 acidjnk joins (~acidjnk@p200300d6e7072f0715f69dbef4a2849d.dip0.t-ipconnect.de)
06:36:16 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 245 seconds)
06:38:57 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
06:39:46 titibandit joins (~titibandi@user/titibandit)
06:50:39 misterfish joins (~misterfis@84-53-85-146.bbserv.nl)
06:53:23 takuan joins (~takuan@178-116-218-225.access.telenet.be)
06:53:55 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
06:58:57 × titibandit quits (~titibandi@user/titibandit) (Remote host closed the connection)
07:00:49 cfricke joins (~cfricke@user/cfricke)
07:01:33 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
07:06:53 fweht joins (uid404746@id-404746.lymington.irccloud.com)
07:07:54 jtza8 joins (~user@165.255.137.176)
07:09:19 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
07:10:28 michalz joins (~michalz@185.246.207.215)
07:14:49 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
07:20:51 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 245 seconds)
07:21:03 × nick4 quits (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) (Ping timeout: 246 seconds)
07:21:37 dibblego joins (~dibblego@116-255-1-157.ip4.superloop.au)
07:21:38 × dibblego quits (~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
07:21:38 dibblego joins (~dibblego@haskell/developer/dibblego)
07:22:54 × mei quits (~mei@user/mei) (Ping timeout: 260 seconds)
07:23:17 × econo_ quits (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
07:24:43 × harveypwca quits (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
07:25:57 coot joins (~coot@89-69-206-216.dynamic.chello.pl)
07:26:33 mei joins (~mei@user/mei)
07:27:00 × hugo quits (znc@verdigris.lysator.liu.se) (Ping timeout: 246 seconds)
07:32:08 Feuermagier joins (~Feuermagi@user/feuermagier)
07:32:10 nick4 joins (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5)
07:32:51 CiaoSen joins (~Jura@2a05:5800:27e:200:664b:f0ff:fe37:9ef)
07:35:51 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
07:35:59 × shriekingnoise quits (~shrieking@186.137.175.87) (Ping timeout: 264 seconds)
07:36:23 × nick4 quits (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) (Ping timeout: 246 seconds)
07:36:50 hugo joins (znc@verdigris.lysator.liu.se)
07:39:56 alternateved joins (~user@77-254-166-50.dynamic.inetia.pl)
07:40:19 dhil joins (~dhil@78.45.150.83.ewm.ftth.as8758.net)
07:43:02 fendor joins (~fendor@2a02:8388:1640:be00:821b:25b5:c8f3:73a0)
07:51:00 nick4 joins (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5)
07:51:30 × eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
07:55:32 × juri_ quits (~juri@84-19-175-187.pool.ovpn.com) (Ping timeout: 240 seconds)
08:00:43 × chiselfuse quits (~chiselfus@user/chiselfuse) (Quit: leaving)
08:01:27 chiselfuse joins (~chiselfus@user/chiselfuse)
08:02:06 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
08:11:13 titibandit joins (~titibandi@user/titibandit)
08:14:15 × misterfish quits (~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 246 seconds)
08:17:42 × acidjnk quits (~acidjnk@p200300d6e7072f0715f69dbef4a2849d.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
08:23:16 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
08:25:56 × YuutaW quits (~YuutaW@mail.yuuta.moe) (Ping timeout: 240 seconds)
08:26:02 yuuta joins (~YuutaW@2404:f4c0:f9c3:502::100:17b7)
08:26:13 nick2 joins (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5)
08:26:17 × kristjansson_ quits (sid126207@id-126207.tinside.irccloud.com) (Ping timeout: 246 seconds)
08:26:17 × ysh____ quits (sid6017@id-6017.ilkley.irccloud.com) (Ping timeout: 246 seconds)
08:26:38 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Ping timeout: 246 seconds)
08:27:20 × nick4 quits (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) (Ping timeout: 246 seconds)
08:27:51 Pickchea joins (~private@user/pickchea)
08:28:25 ysh____ joins (sid6017@id-6017.ilkley.irccloud.com)
08:30:32 kristjansson_ joins (sid126207@id-126207.tinside.irccloud.com)
08:33:02 notzmv joins (~zmv@user/notzmv)
08:33:38 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
08:36:53 <fbytez> When using Parsec, how do I express the length of a token to be parsed that falls within a range? Like, parse 1–5 occurrences of 'A'.
08:38:21 × xff0x_ quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 245 seconds)
08:39:35 × rainbyte quits (~rainbyte@181.31.239.226) (Ping timeout: 264 seconds)
08:39:43 danse-nr3 joins (~francesco@151.43.214.70)
08:40:00 <tomsmeding> fbytez: (++) <$> replicateM 1 (char 'A') <*> fmap catMaybes (replicateM (5 - 1) (optionMaybe (char 'A')))
08:40:05 <tomsmeding> >:D
08:40:17 asivitz joins (uid178348@id-178348.tinside.irccloud.com)
08:40:34 <tomsmeding> should clearly be written to stop trying to parse As after one failure
08:40:42 <tomsmeding> I don't think there is something built-in for this
08:41:04 <tomsmeding> I guess replicateM == Text.Parsec.count
08:41:13 <fbytez> I'm surprised. I would've thought it to be quite a common scenario.
08:41:21 <tomsmeding> I have never yet needed it :p
08:41:26 <tomsmeding> what is the use case
08:41:44 <dminuoso_> fbytez: I personally think its a bit of an antipattern.
08:42:01 <probie> Parsing a language with a maximum identifier length comes to mind
08:42:14 <tomsmeding> disregarding inane languages
08:42:42 <fbytez> An example I had in mind was a IRC nick, which according to RFC2812 should be 1–9 characters.
08:43:03 <tomsmeding> hm makes sense
08:43:03 danse-nr3_ joins (~francesco@151.43.214.70)
08:43:04 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
08:43:36 <dminuoso_> fbytez: Also, with parsec you can use `count 5 (char 'A')`
08:43:47 <tomsmeding> (the irony of saying that to someone with a nick that is 10 characters long)
08:43:48 <dminuoso_> Which is a bit less convoluted.
08:43:58 <fbytez> Yeah, I saw, but that's a specific length rather than a range, right?
08:43:59 <tomsmeding> dminuoso_: that fails if there's just 4 As
08:44:11 × danse-nr3 quits (~francesco@151.43.214.70) (Ping timeout: 245 seconds)
08:44:16 <dminuoso_> Oh.
08:44:58 <dminuoso_> ultimately I think its a design problem if you are writing it this way.
08:45:04 <dminuoso_> Your lexer is too small
08:45:26 <dminuoso_> If your lexer produced word-sized chunks, then its much more easily expressible. But this is a common theme in haskell parser combinator code
08:45:39 <probie> tomsmeding: Perhaps one wants to write a Fortran77 parser to parse some legacy code, and doesn't want to risk accepting invalid programs?
08:45:47 <tomsmeding> probie: yeah I get it :p
08:45:50 <tomsmeding> I was being facetious
08:46:02 × TheCatCollective quits (NyaaTheKit@user/calculuscat) (Quit: Meow Meow Meow Meow Meow Meow Meow Meow)
08:46:18 <fbytez> Fundamentally, I'm just thinking in terms of being able to specify some kind of sane upper-limit.
08:46:25 tomsmeding has never yet written a parsec parser with a lexer
08:46:44 <tomsmeding> perhaps I should try it once
08:48:16 <tomsmeding> fbytez: what would happen if you get a string of As that is longer than 5? do you error, or do you want to pick precisely the 5-long prefix and leave the rest alone?
08:48:22 <dminuoso_> In flatparse or parsley its not as big of an issue, because you get tools to generate efficient tokenizers on the spot.
08:48:50 <tomsmeding> in the first case, guard ((\n -> 1 <= n && n <= 5) . length) (many1 (char 'A'))
08:50:39 tomsmeding looks at the flatparse docs again and is fascinated by fusedSatisfy
08:51:03 <fbytez> I like the look of that but where is `guard` coming from?
08:51:15 <tomsmeding> Control.Monad
08:51:23 × qqq quits (~qqq@92.43.167.61) (Remote host closed the connection)
08:51:37 <dminuoso_> tomsmeding: Things like `switch` are your built-in lexer.
08:51:38 <tomsmeding> fbytez: that fails when given a string of 6 As though; for irc nicks, this may well be fine
08:51:58 <tomsmeding> dminuoso_: well switch would not help at all in this case
08:51:59 eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
08:52:08 <dminuoso_> tomsmeding: And incidentally, thats exactly how you interact with lexers in industrial parser generators like happy or bison.
08:52:10 <tomsmeding> though it is indeed useful for other lexing secenarios
08:52:14 <dminuoso_> You dont get fed tokens, you *demand* them
08:52:34 <dminuoso_> tomsmeding: switch would help at all.
08:52:57 <dminuoso_> or well, let me think
08:53:08 <tomsmeding> the question here is not about specific string literals
08:53:12 <dminuoso_> Ah
08:53:24 <tomsmeding> well, yes, the question as stated was about A/AA/AAA/AAAA/AAAAA
08:53:27 <dminuoso_> tomsmeding: well its just a question of lookahead really.
08:53:39 <tomsmeding> but the obvious generalisation is strings of stuff of length 1-5
08:54:15 <tomsmeding> if we're allowed to error on strings longer than 5, my guard solution does the right thing in parsec land, no need for coolness
08:54:34 <tomsmeding> it's when we want to leave the rest alone when given longer strings that parsec becomes awkward and you have to write your own loop
08:54:48 tv joins (~tv@user/tv)
08:54:48 <tomsmeding> (not that that loop is particularly complicated, but still)
08:55:09 <tomsmeding> dminuoso_: I'm not trying to disparage flatparse, I still want to use it some time and I think it's super cool
08:55:29 <dminuoso_> tomsmeding: `do a <- ident; when (length a > 5) ...`
08:55:33 <dminuoso_> thats probably who I would do it.
08:55:48 <tomsmeding> yeah right
08:56:23 × eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 246 seconds)
08:56:48 <tomsmeding> i.e. having the lexer allows you to compress the parser for stuff of any length to a function from the lexer, but it doesn't do anything with the code to handle <=5 / >5 lengths
08:57:48 <tomsmeding> the only way I can see a lexer being a help here is if that lexer had support for defining token parsers with a regex language that supports {1,5} repetition syntax
08:59:05 EvanR_ joins (~EvanR@user/evanr)
08:59:22 × EvanR quits (~EvanR@user/evanr) (Read error: Connection reset by peer)
09:00:28 <probie> tomsmeding: I don't think the guard solution does the "right thing" in parsec land if the goal is specifying sane upper-limits, since you might go off and read gigabytes of data if there are a lot of consecutive `A`s
09:01:28 <tomsmeding> probie: this is true
09:02:06 <tomsmeding> though nothing in parsec is written to allow dealing with maliciously large inputs
09:02:14 × alternateved quits (~user@77-254-166-50.dynamic.inetia.pl) (Remote host closed the connection)
09:03:35 <tomsmeding> manyMax :: Int -> Parser a -> Parser [a] ; manyMax 0 _ = return [] ; manyMax n p = option [] ((:) <$> p <*> manyMax (n-1) p)
09:04:07 qqq joins (~qqq@92.43.167.61)
09:05:38 <tomsmeding> manyMax :: Int -> Parser a -> Parser [a] ; manyMax n p = go id n p ; where go pre 0 _ = return (pre []) ; go pre n p = optionMaybe p >>= maybe (return []) (\x -> go (pre . (x:)) (n-1) p)
09:05:43 <tomsmeding> less stack buildup
09:06:19 misterfish joins (~misterfis@87.215.131.102)
09:07:56 alternateved joins (~user@77-254-166-50.dynamic.inetia.pl)
09:09:54 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 246 seconds)
09:10:34 Tuplanolla joins (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi)
09:11:05 × tv quits (~tv@user/tv) (Ping timeout: 246 seconds)
09:11:50 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
09:11:50 × mjacob quits (~mjacob@adrastea.uberspace.de) (Read error: Connection reset by peer)
09:12:00 TheCatCollective joins (NyaaTheKit@user/calculuscat)
09:16:10 <fbytez> Thank you for the help.
09:16:14 × kosmikus[m] quits (~andresloe@2001:470:69fc:105::95d) (Remote host closed the connection)
09:17:19 mjacob joins (~mjacob@adrastea.uberspace.de)
09:17:54 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
09:18:13 × dsrt^ quits (~dsrt@24.125.210.85) (Remote host closed the connection)
09:18:30 × AWizzArd quits (~code@gehrels.uberspace.de) (Ping timeout: 250 seconds)
09:18:30 tv joins (~tv@user/tv)
09:20:16 AWizzArd joins (~code@gehrels.uberspace.de)
09:21:48 <dminuoso_> I would start with a threat model. Honestly, reading gigabytes not the biggest concern you have.
09:21:52 <dminuoso_> At least presumably
09:22:27 <dminuoso_> Unless you parse and lex in a streaming fashion, validating the length at lexer/parser time will not help much
09:25:47 × tv quits (~tv@user/tv) (Ping timeout: 246 seconds)
09:26:18 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
09:27:11 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 246 seconds)
09:27:13 × caryhartline quits (~caryhartl@168.182.58.169) (Quit: caryhartline)
09:29:12 Lord_of_Life_ is now known as Lord_of_Life
09:29:28 tv joins (~tv@user/tv)
09:30:01 × hipnozis quits (~hipnozis@91-83-10-42.pool.digikabel.hu) (Ping timeout: 245 seconds)
09:32:01 hipnozis joins (~hipnozis@92-249-179-80.pool.digikabel.hu)
09:32:39 mmhat joins (~mmh@p200300f1c7044c15ee086bfffe095315.dip0.t-ipconnect.de)
09:36:12 tv1 joins (~tv@user/tv)
09:36:12 × noctux quits (~noctux@user/noctux) (Read error: Connection reset by peer)
09:38:36 × tv quits (~tv@user/tv) (Ping timeout: 246 seconds)
09:38:44 noctux joins (~noctux@user/noctux)
09:45:42 <fbytez> True indeed. It would just be nice to be able to easily express my example rather than check the length as an extra step after parsing. I'm just genuinely surprised it's not a standard part of Parsec; particularly as `count` is.
09:46:31 <fbytez> For me, things like this feel like fighting against the library / language.
09:46:40 <fbytez> I'm very new to Haskell.
09:48:09 <fbytez> What I expected to find was the equivalent of `take`, which, because of laziness, I think is lovely.
09:49:14 <Rembane> fbytez: Does `parseTake n = fmap (take n)` do what you want?
09:49:14 × Feuermagier quits (~Feuermagi@user/feuermagier) (Remote host closed the connection)
09:49:31 Feuermagier joins (~Feuermagi@user/feuermagier)
09:51:40 <fbytez> It may do; I'd have to try it.
09:52:25 <probie> Rembane: That consumes input beyond the limit (e.g. on `"AAAAAAAAAAAAAB"` with `parseTake 5 (many char 'A')` it'd return `"AAAAA"` with just `"B"` remaining)
09:53:06 <Rembane> probie: Oh. Hm... back to the drawing board I guess.
09:54:31 <probie> s/many char 'A'/many (char 'A')/
09:54:48 <fbytez> I haven't tried it, but tomsmeding's `manyMax` appears to have the behaviour I'm after.
10:08:08 × nick2 quits (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) (Ping timeout: 240 seconds)
10:12:18 × talismanick quits (~user@76.133.152.122) (Ping timeout: 260 seconds)
10:13:47 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 264 seconds)
10:17:05 gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
10:18:34 <tomsmeding> fbytez: that was the intent :p
10:20:15 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds)
10:22:21 ubert joins (~Thunderbi@2a02:8109:abc0:6434:45dc:6b68:376a:7db8)
10:24:57 kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be)
10:26:41 × bitmapper quits (uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity)
10:26:55 alexherbo2 joins (~alexherbo@2a02-8440-2140-a747-1400-d7b1-148e-7f8c.rev.sfr.net)
10:27:04 nick2 joins (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5)
10:29:27 xff0x_ joins (~xff0x@2405:6580:b080:900:50da:9b7c:4bac:847a)
10:32:09 × nick2 quits (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) (Ping timeout: 246 seconds)
10:39:14 nick2 joins (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5)
10:43:29 × nick2 quits (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) (Ping timeout: 246 seconds)
10:45:41 nick2 joins (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5)
10:47:23 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
10:49:52 × asivitz quits (uid178348@id-178348.tinside.irccloud.com) (Quit: Connection closed for inactivity)
10:51:09 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
10:58:32 × xff0x_ quits (~xff0x@2405:6580:b080:900:50da:9b7c:4bac:847a) (Ping timeout: 245 seconds)
10:58:56 xff0x_ joins (~xff0x@ai086045.d.east.v6connect.net)
11:00:57 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
11:06:29 × alexherbo2 quits (~alexherbo@2a02-8440-2140-a747-1400-d7b1-148e-7f8c.rev.sfr.net) (Ping timeout: 246 seconds)
11:10:28 ryantrinkle joins (~ryantrink@89.247.249.243)
11:16:53 × hugo quits (znc@verdigris.lysator.liu.se) (Ping timeout: 246 seconds)
11:17:06 × danse-nr3_ quits (~francesco@151.43.214.70) (Ping timeout: 245 seconds)
11:20:35 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds)
11:22:21 × coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
11:23:44 delYsid parts (~user@user/delYsid) (ERC 5.6-git (IRC client for GNU Emacs 30.0.50))
11:25:28 waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
11:26:20 hugo joins (znc@verdigris.lysator.liu.se)
11:28:17 danse-nr3_ joins (~francesco@151.43.214.70)
11:29:08 × CiaoSen quits (~Jura@2a05:5800:27e:200:664b:f0ff:fe37:9ef) (Ping timeout: 246 seconds)
11:32:31 × danse-nr3_ quits (~francesco@151.43.214.70) (Ping timeout: 245 seconds)
11:32:45 <fbytez> tomsmeding, Could you explain to me why `id/pre` is needed in `manyMax`, please.
11:33:42 <tomsmeding> fbytez: could have done 'fmap (x:) (manyMax (n-1) p)' instead; that's probably what you were expecting
11:34:03 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
11:34:19 <tomsmeding> it may actually be equivalent, but I was hoping that what I wrote is slightly more efficient due to not needing to stack up a stack of fmaps, and then tearing them down afterwards
11:34:27 × cfricke quits (~cfricke@user/cfricke) (Ping timeout: 246 seconds)
11:34:39 <tomsmeding> but on the other hand, my chain of (x:) closures (the 'pre' thing) will also need to be evaluated /shrug/
11:34:59 <tomsmeding> profiling would determine the winner here
11:35:09 <fbytez> Right. Many thanks.
11:35:48 <tomsmeding> fbytez: my first version without 'go' is also equivalent, but has a different kind of stack buildup
11:36:07 <tomsmeding> but if n is like 5 then this is useless nitpicking :p
11:38:39 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds)
11:38:47 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
11:43:46 × hipnozis quits (~hipnozis@92-249-179-80.pool.digikabel.hu) (Ping timeout: 245 seconds)
11:45:41 hipnozis joins (~hipnozis@84-236-122-153.pool.digikabel.hu)
11:45:59 × myxos quits (~myxos@cpe-65-28-251-121.cinci.res.rr.com) (Quit: myxos)
11:46:13 myxos joins (~myxos@cpe-65-28-251-121.cinci.res.rr.com)
11:46:35 × myxos quits (~myxos@cpe-65-28-251-121.cinci.res.rr.com) (Client Quit)
11:46:48 myxos joins (~myxos@cpe-65-28-251-121.cinci.res.rr.com)
11:48:56 × nick2 quits (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) (Ping timeout: 246 seconds)
11:51:58 × alternateved quits (~user@77-254-166-50.dynamic.inetia.pl) (Remote host closed the connection)
11:52:21 alternateved joins (~user@77-254-166-50.dynamic.inetia.pl)
12:00:50 × mmhat quits (~mmh@p200300f1c7044c15ee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
12:01:19 × alternateved quits (~user@77-254-166-50.dynamic.inetia.pl) (Remote host closed the connection)
12:01:36 alternateved joins (~user@77-254-166-50.dynamic.inetia.pl)
12:02:06 × alternateved quits (~user@77-254-166-50.dynamic.inetia.pl) (Remote host closed the connection)
12:02:19 nick4 joins (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5)
12:02:21 alternateved joins (~user@77-254-166-50.dynamic.inetia.pl)
12:12:45 danse-nr3 joins (~francesco@151.57.138.124)
12:15:01 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 245 seconds)
12:15:05 mmhat joins (~mmh@p200300f1c70e11c9ee086bfffe095315.dip0.t-ipconnect.de)
12:21:12 × mmhat quits (~mmh@p200300f1c70e11c9ee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
12:21:52 dibblego joins (~dibblego@116-255-1-157.ip4.superloop.au)
12:21:52 × dibblego quits (~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
12:21:53 dibblego joins (~dibblego@haskell/developer/dibblego)
12:24:22 × tomboy64 quits (~tomboy64@user/tomboy64) (Ping timeout: 246 seconds)
12:25:24 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
12:25:32 CiaoSen joins (~Jura@2a05:5800:27e:200:664b:f0ff:fe37:9ef)
12:28:44 × GoldsteinQ quits (~goldstein@goldstein.rs) (Quit: ZNC 1.8.2 - https://znc.in)
12:30:52 GoldsteinQ joins (~goldstein@goldstein.rs)
12:31:00 × CiaoSen quits (~Jura@2a05:5800:27e:200:664b:f0ff:fe37:9ef) (Quit: CiaoSen)
12:31:32 × hipnozis quits (~hipnozis@84-236-122-153.pool.digikabel.hu) (Quit: Lost terminal)
12:35:03 × Feuermagier quits (~Feuermagi@user/feuermagier) (Read error: Connection reset by peer)
12:35:12 Feuermagier joins (~Feuermagi@user/feuermagier)
12:35:23 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
12:36:53 tomboy64 joins (~tomboy64@user/tomboy64)
12:40:02 ripspin joins (~chatzilla@1.145.145.210)
12:43:11 × waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 246 seconds)
12:45:27 waleee joins (~waleee@h-176-10-137-138.NA.cust.bahnhof.se)
12:51:36 dcoutts joins (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
12:57:50 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
12:59:04 × waleee quits (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 250 seconds)
13:05:37 × nick4 quits (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) (Ping timeout: 245 seconds)
13:08:42 chomwitt joins (~chomwitt@2a02:587:7a06:dd00:1ac0:4dff:fedb:a3f1)
13:09:27 Reinhilde is now known as [Reinhilde]
13:19:50 nick4 joins (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5)
13:29:44 × nick4 quits (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) (Ping timeout: 246 seconds)
13:36:37 nick4 joins (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5)
13:37:12 shriekingnoise joins (~shrieking@186.137.175.87)
13:39:36 × califax quits (~califax@user/califx) (Remote host closed the connection)
13:39:50 califax joins (~califax@user/califx)
13:41:23 × nick4 quits (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) (Ping timeout: 264 seconds)
13:42:12 bontaq joins (~user@ool-45779b84.dyn.optonline.net)
13:43:20 nick4 joins (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5)
13:47:35 × puke quits (~puke@user/puke) (Ping timeout: 246 seconds)
13:52:29 × nick4 quits (~nick@2600:8807:9084:7800:1810:bce8:8657:15b5) (Ping timeout: 246 seconds)
13:54:01 puke joins (~puke@user/puke)
14:02:50 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
14:03:48 ystael joins (~ystael@user/ystael)
14:09:27 × jtza8 quits (~user@165.255.137.176) (Quit: ERC 5.4 (IRC client for GNU Emacs 28.2))
14:16:08 thegeekinside joins (~thegeekin@189.217.90.138)
14:17:54 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
14:26:56 × bontaq quits (~user@ool-45779b84.dyn.optonline.net) (Remote host closed the connection)
14:27:32 ai5lk joins (~ai5lk@209-188-121-236.taosnet.com)
14:33:26 zer0bitz joins (~zer0bitz@user/zer0bitz)
14:37:05 × zer0bitz_ quits (~zer0bitz@user/zer0bitz) (Ping timeout: 246 seconds)
14:37:56 reach joins (~reach@74.12.129.40)
14:39:07 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
14:39:07 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
14:39:07 wroathe joins (~wroathe@user/wroathe)
14:39:31 acidjnk joins (~acidjnk@p200300d6e7072f0700a8e9aef9077b5f.dip0.t-ipconnect.de)
14:43:48 × mei quits (~mei@user/mei) (Ping timeout: 246 seconds)
14:46:33 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
14:47:32 cfricke joins (~cfricke@user/cfricke)
14:47:49 mei joins (~mei@user/mei)
14:50:46 × gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
14:51:02 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 245 seconds)
14:56:19 bontaq joins (~user@ool-45779b84.dyn.optonline.net)
15:01:27 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
15:06:16 nick4 joins (~nick@wsip-174-78-110-18.pn.at.cox.net)
15:12:58 falafel joins (~falafel@2603-7000-a700-8710-dcd0-82ed-dc77-29f6.res6.spectrum.com)
15:16:09 lainon joins (~textual@2601:7c0:cb00:c0a0:718c:10e2:ff4c:a39)
15:30:29 × falafel quits (~falafel@2603-7000-a700-8710-dcd0-82ed-dc77-29f6.res6.spectrum.com) (Ping timeout: 240 seconds)
15:30:42 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 246 seconds)
15:33:22 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:78da:7b39:4337:d982)
15:37:42 × cfricke quits (~cfricke@user/cfricke) (Ping timeout: 246 seconds)
15:39:15 × thegeekinside quits (~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
15:39:52 × kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 27.1))
15:42:15 × reach quits (~reach@74.12.129.40) (Read error: Connection reset by peer)
15:42:15 <sclv> does anyone have example code of using http-client along with oauth? the oauth client is pretty undocumented...
15:45:51 <sclv> most of the discussion and questions seem to be about the more difficult task of doing an oauth integration. i just want to create a client that lets someone use their creds to make use of an api...
15:46:04 econo_ joins (uid147250@id-147250.tinside.irccloud.com)
15:46:55 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
15:49:01 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:78da:7b39:4337:d982) (Remote host closed the connection)
15:49:13 Lycurgus joins (~juan@user/Lycurgus)
15:50:33 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:78da:7b39:4337:d982)
15:53:17 × lainon quits (~textual@2601:7c0:cb00:c0a0:718c:10e2:ff4c:a39) (Quit: My Mac has gone to sleep. ZZZzzz…)
15:54:43 _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
16:00:01 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 245 seconds)
16:01:04 wroathe joins (~wroathe@50.205.197.50)
16:01:04 × wroathe quits (~wroathe@50.205.197.50) (Changing host)
16:01:04 wroathe joins (~wroathe@user/wroathe)
16:06:59 asivitz joins (uid178348@id-178348.tinside.irccloud.com)
16:10:27 oac joins (~oac@72-50-214-210.fttp.usinternet.com)
16:10:38 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:78da:7b39:4337:d982) (Remote host closed the connection)
16:11:22 × oac quits (~oac@72-50-214-210.fttp.usinternet.com) (Client Quit)
16:11:24 × wroathe quits (~wroathe@user/wroathe) (Quit: Reconnecting)
16:11:40 wroathe joins (~wroathe@50.205.197.50)
16:11:40 × wroathe quits (~wroathe@50.205.197.50) (Changing host)
16:11:40 wroathe joins (~wroathe@user/wroathe)
16:11:51 danse-nr3_ joins (~francesco@151.43.220.217)
16:13:49 thegeekinside joins (~thegeekin@189.217.90.138)
16:14:11 × danse-nr3 quits (~francesco@151.57.138.124) (Ping timeout: 245 seconds)
16:14:34 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:78da:7b39:4337:d982)
16:15:28 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 252 seconds)
16:16:53 falafel joins (~falafel@2603-7000-a700-8710-c3ac-a6ea-45a8-45b9.res6.spectrum.com)
16:18:05 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
16:19:05 × falafel quits (~falafel@2603-7000-a700-8710-c3ac-a6ea-45a8-45b9.res6.spectrum.com) (Remote host closed the connection)
16:19:29 falafel joins (~falafel@2603-7000-a700-8710-9d1b-efc1-e2eb-1a35.res6.spectrum.com)
16:19:53 gensyst joins (~gensyst@user/gensyst)
16:20:18 coot joins (~coot@89-69-206-216.dynamic.chello.pl)
16:20:42 dibblego joins (~dibblego@116-255-1-157.ip4.superloop.au)
16:20:42 × dibblego quits (~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
16:20:42 dibblego joins (~dibblego@haskell/developer/dibblego)
16:24:57 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 246 seconds)
16:25:16 <gensyst> I have bytestrings of format "{latitude}{longitude}{temperature}{three}{more}{doubles}" (6 Doubles). Is it possible to automatically generate getData :: ByteString -> Stuff
16:25:16 <gensyst> data Stuff = Stuff { latitude :: Maybe Double, longitude :: Maybe Double, ... }
16:25:16 <gensyst> where getData is somehow enhanced to specifify want I inside Stuff at the type level?
16:25:16 <gensyst> Of course I could create functions manually for each field, but I want to know if something more cool is possible.
16:25:50 <gensyst> main goal is not waste time deserializing stuff I don't need
16:27:02 L29Ah parts (~L29Ah@wikipedia/L29Ah) ()
16:27:03 × danse-nr3_ quits (~francesco@151.43.220.217) (Remote host closed the connection)
16:27:24 danse-nr3_ joins (~francesco@151.43.220.217)
16:27:27 <gensyst> e.g. could templateHaskell be used to map offsets/lengths (within bytestring) and function name suffixes into actual functions? (i know nothing about templatehaskell)
16:30:45 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:78da:7b39:4337:d982) (Remote host closed the connection)
16:30:48 × falafel quits (~falafel@2603-7000-a700-8710-9d1b-efc1-e2eb-1a35.res6.spectrum.com) (Ping timeout: 240 seconds)
16:30:51 <asivitz> gensyst: I recommend checking out the 'binary' package
16:32:26 <asivitz> oh hm not sure if it has any type magic stuff
16:33:50 <ncf> i don't understand what kind of type magic stuff is even being asked for
16:34:28 <asivitz> maybe something like binary-generic
16:35:46 <gensyst> getData @[Latitude, Longitude] or some magic?
16:35:48 <gensyst> no idea to be honest
16:37:23 <asivitz> do you need a specific format? there has to be tons of libraries that will happily generate their own format
16:39:44 <asivitz> cereal would be a good example of that
16:39:44 <ncf> looks like binary already has support for deriving formats automatically
16:40:21 <ncf> (which is not the same as "guessing what format your bytestrings are automatically")
16:42:14 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:78da:7b39:4337:d982)
16:42:17 <gensyst> Ok let me rephrase,
16:42:56 × titibandit quits (~titibandi@user/titibandit) (Quit: leaving)
16:42:57 <gensyst> Is there any cooler/shorter way than manually writing getLatitude :: ByteString -> Double and so on for all the other fields?
16:43:07 titibandit joins (~titibandi@user/titibandit)
16:43:42 <gensyst> one problem with this manual approach; each function begins by checking the length of the bytestring (sanity check).
16:43:52 <gensyst> so if I ever combine those functions, i'm re-checking the bytestring length many times.
16:44:03 <gensyst> so that would mean, a wrapper for each of those functions.
16:44:17 <gensyst> "getLatitudeWithoutLengthCheck" and "getLatitude"
16:44:25 <gensyst> and so on
16:46:08 reio joins (~reio@86-90-81-176.fixed.kpn.net)
16:46:33 × reio quits (~reio@86-90-81-176.fixed.kpn.net) (Remote host closed the connection)
16:46:57 × paddymahoney quits (~paddymaho@cpe883d24bcf597-cmbc4dfb741f80.cpe.net.cable.rogers.com) (Ping timeout: 258 seconds)
16:47:07 reio joins (~reio@86-90-81-176.fixed.kpn.net)
16:48:20 × ubert quits (~Thunderbi@2a02:8109:abc0:6434:45dc:6b68:376a:7db8) (Remote host closed the connection)
16:48:39 EvanR_ is now known as EvanR
16:48:59 <EvanR> Stuff <$> getDouble <*> getDouble <*> getDouble <*> ...
16:49:30 <EvanR> (couldn't figure out what the Maybes were doing there)
16:52:19 jmdaemon joins (~jmdaemon@user/jmdaemon)
16:52:39 tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
16:53:08 gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
16:55:07 gurkenglas joins (~gurkengla@dynamic-046-114-179-175.46.114.pool.telefonica.de)
16:55:30 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:78da:7b39:4337:d982) (Remote host closed the connection)
16:57:19 × titibandit quits (~titibandi@user/titibandit) (Remote host closed the connection)
16:59:36 × misterfish quits (~misterfis@87.215.131.102) (Ping timeout: 245 seconds)
17:03:06 segfaultfizzbuzz joins (~segfaultf@23-93-74-212.fiber.dynamic.sonic.net)
17:04:36 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 245 seconds)
17:13:56 × `2jt quits (~jtomas@90.162.208.36) (Remote host closed the connection)
17:14:20 `2jt joins (~jtomas@90.162.208.36)
17:15:07 × coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
17:15:23 coot joins (~coot@89-69-206-216.dynamic.chello.pl)
17:15:25 × Lycurgus quits (~juan@user/Lycurgus) (Quit: Exeunt: personae.ai-integration.biz)
17:18:01 talismanick joins (~user@76.133.152.122)
17:22:13 × billb quits (~billb@cpe-66-8-173-22.hawaii.res.rr.com) (Quit: Leaving)
17:23:08 billb joins (~billb@cpe-66-8-173-22.hawaii.res.rr.com)
17:26:41 Midjak joins (~Midjak@82.66.147.146)
17:28:28 Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542)
17:30:01 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 245 seconds)
17:32:10 L29Ah joins (~L29Ah@wikipedia/L29Ah)
17:32:30 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 246 seconds)
17:32:49 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:78da:7b39:4337:d982)
17:34:03 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
17:34:28 dibblego joins (~dibblego@116.255.1.157)
17:34:28 × dibblego quits (~dibblego@116.255.1.157) (Changing host)
17:34:28 dibblego joins (~dibblego@haskell/developer/dibblego)
17:35:59 × thegeekinside quits (~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
17:37:22 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
17:38:44 <probie> What do you mean by "deserializing stuff I don't need"? Maybe I've misinterpreted what you're saying, but my reading is that you've got a bytestring which is 48 bytes long that contains 6 doubles
17:41:20 × alternateved quits (~user@77-254-166-50.dynamic.inetia.pl) (Remote host closed the connection)
17:41:22 <EvanR> what's funny is if you assume that format, then lazy evaluation could stop you from deserializing stuff you don't need
17:41:31 <EvanR> automatically
17:41:33 alternateved joins (~user@77-254-166-50.dynamic.inetia.pl)
17:42:11 <EvanR> though the thunks probably take up more memory than 1 double
17:42:17 Inst__ joins (~Inst@2601:6c4:4081:2fc0:44fe:e619:5fe8:5723)
17:44:43 thegeekinside joins (~thegeekin@189.217.90.138)
17:45:56 × Inst_ quits (~Inst@2601:6c4:4081:2fc0:f0f1:dbda:8b5c:598b) (Ping timeout: 240 seconds)
17:46:20 <probie> This is a bytestring that fits in a single cache line. Checking the length of a (strict) bytestring is also very cheap
17:46:23 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:78da:7b39:4337:d982) (Remote host closed the connection)
17:47:25 <EvanR> would be cool to have your values "backed" by a bytestring somewhere instead of a discrete boxed thing
17:48:06 <EvanR> json munging would benefit
17:50:00 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds)
17:52:27 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
17:53:51 × danse-nr3_ quits (~francesco@151.43.220.217) (Ping timeout: 246 seconds)
17:54:41 × elkcl quits (~elkcl@broadband-37-110-27-252.ip.moscow.rt.ru) (Ping timeout: 246 seconds)
17:56:15 __monty__ joins (~toonn@user/toonn)
17:58:27 azimut joins (~azimut@gateway/tor-sasl/azimut)
18:03:59 × thegeekinside quits (~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
18:04:34 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:78da:7b39:4337:d982)
18:07:16 ft joins (~ft@p508db151.dip0.t-ipconnect.de)
18:10:01 × chomwitt quits (~chomwitt@2a02:587:7a06:dd00:1ac0:4dff:fedb:a3f1) (Remote host closed the connection)
18:11:26 caryhartline joins (~caryhartl@168.182.58.169)
18:16:45 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
18:16:46 × ripspin quits (~chatzilla@1.145.145.210) (Remote host closed the connection)
18:18:49 gmg joins (~user@user/gehmehgeh)
18:20:47 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:78da:7b39:4337:d982) (Remote host closed the connection)
18:21:36 lainon joins (~textual@2601:7c0:cb00:c0a0:718c:10e2:ff4c:a39)
18:22:20 × `2jt quits (~jtomas@90.162.208.36) (Ping timeout: 252 seconds)
18:33:27 thegeekinside joins (~thegeekin@189.217.90.138)
18:38:24 juri_ joins (~juri@84-19-175-187.pool.ovpn.com)
18:40:29 alexherbo2 joins (~alexherbo@59.196.204.77.rev.sfr.net)
18:41:11 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:78da:7b39:4337:d982)
18:43:16 jmdaemon joins (~jmdaemon@user/jmdaemon)
18:48:20 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 250 seconds)
18:49:07 Guest5320 joins (~finn@176-151-21-224.abo.bbox.fr)
18:50:07 <Guest5320> does ghc 9.2 make some changes to the behavior of Data.Coerce(coerce) ? I can't build inline-c gsl examples anymore
18:50:31 <Guest5320> examples/gsl-ode.hs:97:3: error:
18:50:33 <Guest5320> • Couldn't match type ‘CDouble’ with ‘Double’
18:50:35 <Guest5320> arising from a use of ‘coerce’
18:50:37 <Guest5320> • In the first argument of ‘($)’, namely ‘coerce’
18:50:39 <Guest5320> In the expression:
18:50:41 <Guest5320> coerce
18:50:43 <Guest5320> $ solveOdeC (coerce fun) (coerce x0) (coerce f0) (coerce xend)
18:50:45 <Guest5320> In an equation for ‘solveOde’:
18:50:47 <Guest5320> solveOde fun x0 f0 xend
18:50:49 <Guest5320> = coerce
18:50:51 <Guest5320> $ solveOdeC (coerce fun) (coerce x0) (coerce f0) (coerce xend)
18:50:54 <Guest5320> i remember i could build this code before
18:51:16 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 245 seconds)
18:52:30 L29Ah parts (~L29Ah@wikipedia/L29Ah) ()
18:54:50 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 250 seconds)
18:55:27 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 246 seconds)
18:56:33 dibblego joins (~dibblego@116.255.1.157)
18:56:34 × dibblego quits (~dibblego@116.255.1.157) (Changing host)
18:56:34 dibblego joins (~dibblego@haskell/developer/dibblego)
18:57:43 × trev quits (~trev@user/trev) (Quit: trev)
18:59:43 witcher joins (~witcher@wiredspace.de)
19:00:02 × alexherbo2 quits (~alexherbo@59.196.204.77.rev.sfr.net) (Ping timeout: 246 seconds)
19:00:06 witcher parts (~witcher@wiredspace.de) ()
19:00:08 jmdaemon joins (~jmdaemon@user/jmdaemon)
19:05:15 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 246 seconds)
19:05:56 <int-e> Guest5320: it's `vector` that (sensibly) added a nominal role to `Data.Vector.Storable.Vector` in 0.13.0.0. See https://github.com/haskell/vector/pull/235
19:05:57 rainbyte joins (~rainbyte@181.31.239.226)
19:06:16 <int-e> Guest5320: also please use a pastebin if you message is longer than 3-5 lines
19:07:21 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 246 seconds)
19:08:09 <Guest5320> thanks int-e . so what should i do to adapt the code?
19:09:05 jmdaemon joins (~jmdaemon@user/jmdaemon)
19:09:25 <int-e> I suspect you'll need to use `unsafeCoerce` or the newly added `unsafeCoerceVector` mentioned in the ticket, though that will be awkward for the `fun` argument (since that coercion has to be performed on an argument of `fun`)
19:09:38 <int-e> s/ticket/PR/
19:11:42 gtf joins (~gideon@2a02:8012:700a:0:d166:a693:8446:1b7b)
19:11:43 dibblego joins (~dibblego@116-255-1-157.ip4.superloop.au)
19:11:43 × dibblego quits (~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
19:11:43 dibblego joins (~dibblego@haskell/developer/dibblego)
19:11:46 <EvanR> CDouble and Double don't have the same representation?
19:11:52 <int-e> (It's actually a bit surprising that the type role of `ForeignPtr`'s argument isn't nominal. If it were, that would've propagated to `Vector`)
19:12:16 <int-e> EvanR: They do, but nothing at the type level guarantees that the Storable instance use the same bit format.
19:12:22 × gtf quits (~gideon@2a02:8012:700a:0:d166:a693:8446:1b7b) (Quit: Konversation terminated!)
19:12:32 <int-e> *instances
19:12:58 gtf joins (~gideon@2a02:8012:700a:0:d166:a693:8446:1b7b)
19:13:43 <Guest5320> thanks it works
19:14:03 <Guest5320> btw, what do you mean by nominal?
19:14:37 <int-e> https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/roles.html
19:15:53 <Guest5320> once again this channel beats ChatGPT 3.5 ;-D
19:15:58 <int-e> https://github.com/haskell/vector/issues/223 has a really good example of this going wrong using CInt and Int.
19:16:22 Pickchea joins (~private@user/pickchea)
19:16:44 <int-e> (Sure, one is commonly 32 bits and the other is commonly 64 bits, but it's easy to forget about this when using `coerce` just compiles)
19:17:22 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
19:17:23 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
19:17:23 wroathe joins (~wroathe@user/wroathe)
19:18:09 delYsid joins (~user@user/delYsid)
19:18:25 <int-e> EvanR: so it's apparently *worse*; the inferred type role was phantom, coming from `Foreign.ForeignPtr.ForeignPtr`
19:18:56 <delYsid> I'd like to extract all hyperlinks from a html document and filter on the href, what do I use?
19:19:25 <ncf> tagsoup/scalpel
19:19:53 L29Ah joins (~L29Ah@wikipedia/L29Ah)
19:24:22 × gensyst quits (~gensyst@user/gensyst) (Quit: Leaving)
19:26:59 × gtf quits (~gideon@2a02:8012:700a:0:d166:a693:8446:1b7b) (Ping timeout: 264 seconds)
19:28:21 <delYsid> Oh, scalpel looks really neat, thanks!
19:28:22 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:78da:7b39:4337:d982) (Remote host closed the connection)
19:33:28 elkcl joins (~elkcl@broadband-178-140-133-76.ip.moscow.rt.ru)
19:33:45 alexherbo2 joins (~alexherbo@2a02-8440-2140-3f91-1098-4793-95b6-5680.rev.sfr.net)
19:34:18 × Guest5320 quits (~finn@176-151-21-224.abo.bbox.fr) (Ping timeout: 246 seconds)
19:38:51 hisa3877 joins (~hisa38@104-181-102-238.lightspeed.wepbfl.sbcglobal.net)
19:38:57 misterfish joins (~misterfis@84-53-85-146.bbserv.nl)
19:39:56 gtf joins (~gideon@2a02:8012:700a:0:d166:a693:8446:1b7b)
19:45:47 eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
19:46:21 titibandit joins (~titibandi@user/titibandit)
19:49:04 × titibandit quits (~titibandi@user/titibandit) (Remote host closed the connection)
19:49:14 × fendor quits (~fendor@2a02:8388:1640:be00:821b:25b5:c8f3:73a0) (Remote host closed the connection)
19:55:26 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 245 seconds)
19:56:10 justsomeguy joins (~justsomeg@user/justsomeguy)
19:57:39 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
19:59:01 × mei quits (~mei@user/mei) (Remote host closed the connection)
20:01:25 mei joins (~mei@user/mei)
20:02:34 × justsomeguy quits (~justsomeg@user/justsomeguy) (Read error: Connection reset by peer)
20:03:36 × eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
20:06:03 × alexherbo2 quits (~alexherbo@2a02-8440-2140-3f91-1098-4793-95b6-5680.rev.sfr.net) (Remote host closed the connection)
20:06:23 alexherbo2 joins (~alexherbo@2a02-8440-2140-3f91-1098-4793-95b6-5680.rev.sfr.net)
20:16:20 falafel joins (~falafel@2603-7000-a700-8710-87fa-7c70-1d3c-0c29.res6.spectrum.com)
20:21:01 × thegeekinside quits (~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
20:22:22 × alexherbo2 quits (~alexherbo@2a02-8440-2140-3f91-1098-4793-95b6-5680.rev.sfr.net) (Remote host closed the connection)
20:23:59 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
20:26:55 <Yumemi> I'm trying to build a GHC cross compiler for aarch64-linux-android24 (mostly for fun, I know that there are problems when it comes to template Haskell and other things), and I wonder what's the… best? way to specify the toolchain to ./configure/Hadrian? The "problem" is that the only tools prefixed with aarch64-linux-android24- in the Android NDK are clang and clang++ (not nm, ar, ld, …) so if
20:26:56 <Yumemi> I only specify the --target and CC environment variables, it will fail at various points in the build because of missing tools, and if I add them manually through the environment variables AR, LD and NM (though AR and NM aren't mentionned in ./configure --help), the stage 1 build fails with a "Error, rule finished running but did not produce file:
20:26:58 <Yumemi> _build/stage1/lib/aarch64-linux_android-ghc-9.2.8/libHSrts-1.0.2-ghc9.2.8.so" so I suppose that's not a good way to do things? Maybe I should just create symlinks with the prefix for other tools?
20:27:08 Guest5320 joins (~finn@176-151-21-224.abo.bbox.fr)
20:28:39 `2jt joins (~jtomas@90.162.208.36)
20:28:52 <Hecate> Yumemi: I think symlinks are an acceptable hack in the absence of anything better :)
20:29:59 <Yumemi> okay, so symlink + --target it is, I'll try again with that, thanks!
20:30:18 × hugo quits (znc@verdigris.lysator.liu.se) (Ping timeout: 246 seconds)
20:31:27 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection)
20:37:43 hugo joins (znc@verdigris.lysator.liu.se)
20:39:11 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 245 seconds)
20:39:39 alexherbo2 joins (~alexherbo@2a02-8440-2140-3f91-1098-4793-95b6-5680.rev.sfr.net)
20:41:48 × gabiruh quits (~gabiruh@vps19177.publiccloud.com.br) (Quit: ZNC 1.7.5 - https://znc.in)
20:44:37 <Hecate> Yumemi: do keep us updated, but also #ghc might be a better channel for that
20:57:15 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds)
20:57:17 × falafel quits (~falafel@2603-7000-a700-8710-87fa-7c70-1d3c-0c29.res6.spectrum.com) (Ping timeout: 245 seconds)
20:57:29 wroathe joins (~wroathe@50.205.197.50)
20:57:30 × wroathe quits (~wroathe@50.205.197.50) (Changing host)
20:57:30 wroathe joins (~wroathe@user/wroathe)
21:01:21 pavonia joins (~user@user/siracusa)
21:04:05 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:b9c2:276d:fb2c:5cec)
21:08:14 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:b9c2:276d:fb2c:5cec) (Ping timeout: 246 seconds)
21:10:20 × gtf quits (~gideon@2a02:8012:700a:0:d166:a693:8446:1b7b) (Ping timeout: 246 seconds)
21:10:31 × alexherbo2 quits (~alexherbo@2a02-8440-2140-3f91-1098-4793-95b6-5680.rev.sfr.net) (Remote host closed the connection)
21:11:36 × nick4 quits (~nick@wsip-174-78-110-18.pn.at.cox.net) (Ping timeout: 246 seconds)
21:12:12 <Yumemi> Unfortunately still got "Error, rule finished running but did not produce file: _build/stage1/lib/aarch64-linux_android-ghc-9.2.8/libHSrts-1.0.2-ghc9.2.8.so" and I don't have time to investigate more tonight (but I'll continue tomorrow or the day after)
21:12:14 × `2jt quits (~jtomas@90.162.208.36) (Remote host closed the connection)
21:12:36 <Yumemi> and for #ghc I have to admit I wasn't sure whether it was ok or only for tinkering with GHC's code itself
21:15:42 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
21:16:30 × dhil quits (~dhil@78.45.150.83.ewm.ftth.as8758.net) (Ping timeout: 246 seconds)
21:18:59 <Yumemi> (oh, `_build/stage1/lib/aarch64-linux_android-ghc-9.2.8/libHSrts-1.0.2-ghc9.2.8.so` doesn't exist but `./_build/stage1/lib/aarch64-android-ghc-9.2.8/libHSrts-1.0.2-ghc9.2.8.so` was generated, I'll start with this tomorrow)
21:20:43 gabiruh joins (~gabiruh@vps19177.publiccloud.com.br)
21:27:15 waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
21:38:10 × michalz quits (~michalz@185.246.207.215) (Remote host closed the connection)
21:39:54 thegeekinside joins (~thegeekin@189.217.90.138)
21:47:44 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
21:56:59 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
21:57:02 × lainon quits (~textual@2601:7c0:cb00:c0a0:718c:10e2:ff4c:a39) (Quit: My Mac has gone to sleep. ZZZzzz…)
22:00:17 × migas quits (~migas@astra4961.startdedicated.net) (Remote host closed the connection)
22:00:33 migas joins (~migas@astra4961.startdedicated.net)
22:02:37 × reio quits (~reio@86-90-81-176.fixed.kpn.net) (Remote host closed the connection)
22:04:32 × coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
22:05:30 × acidjnk quits (~acidjnk@p200300d6e7072f0700a8e9aef9077b5f.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
22:06:24 jargon joins (~jargon@184.101.73.95)
22:07:21 × ai5lk quits (~ai5lk@209-188-121-236.taosnet.com) (Quit: WeeChat 3.8)
22:09:36 × alternateved quits (~user@77-254-166-50.dynamic.inetia.pl) (Remote host closed the connection)
22:13:23 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
22:13:33 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 246 seconds)
22:13:46 × bontaq quits (~user@ool-45779b84.dyn.optonline.net) (Ping timeout: 245 seconds)
22:16:16 × Guest5320 quits (~finn@176-151-21-224.abo.bbox.fr) (Ping timeout: 245 seconds)
22:17:41 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
22:19:08 delYsid` joins (~user@84-115-138-74.cable.dynamic.surfer.at)
22:19:11 × delYsid quits (~user@user/delYsid) (Ping timeout: 245 seconds)
22:19:51 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
22:27:48 × mstksg quits (~jle`@cpe-23-240-75-236.socal.res.rr.com) (Ping timeout: 240 seconds)
22:30:00 mstksg joins (~jle`@cpe-23-240-75-236.socal.res.rr.com)
22:30:01 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 245 seconds)
22:30:51 × gurkenglas quits (~gurkengla@dynamic-046-114-179-175.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
22:31:16 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 245 seconds)
22:34:05 dibblego joins (~dibblego@116-255-1-157.ip4.superloop.au)
22:34:05 × dibblego quits (~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
22:34:05 dibblego joins (~dibblego@haskell/developer/dibblego)
22:35:06 × phma quits (phma@2001:5b0:215a:8658:2ff0:2260:7332:7cdc) (Read error: Connection reset by peer)
22:35:31 phma joins (~phma@host-67-44-208-75.hnremote.net)
22:39:59 lainon joins (~textual@c-98-54-78-2.hsd1.al.comcast.net)
22:41:04 nick4 joins (~nick@2600:8807:9084:7800:d846:c2ed:f029:599)
22:45:30 × nick4 quits (~nick@2600:8807:9084:7800:d846:c2ed:f029:599) (Ping timeout: 260 seconds)
22:45:48 × sagax quits (~sagax_nb@user/sagax) (Ping timeout: 240 seconds)
22:48:21 × misterfish quits (~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 245 seconds)
22:50:01 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 245 seconds)
22:55:58 × phma quits (~phma@host-67-44-208-75.hnremote.net) (Read error: Connection reset by peer)
23:02:24 phma joins (~phma@2001:5b0:211c:c328:623:9873:19c7:83ce)
23:02:48 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
23:02:49 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
23:02:49 wroathe joins (~wroathe@user/wroathe)
23:03:08 × xff0x_ quits (~xff0x@ai086045.d.east.v6connect.net) (Ping timeout: 240 seconds)
23:04:27 × phma quits (~phma@2001:5b0:211c:c328:623:9873:19c7:83ce) (Read error: Connection reset by peer)
23:04:54 × inversed quits (~inversed@bcdcac82.skybroadband.com) (Read error: Connection reset by peer)
23:05:16 xff0x_ joins (~xff0x@178.255.149.135)
23:07:35 × Midjak quits (~Midjak@82.66.147.146) (Quit: This computer has gone to sleep)
23:09:51 phma joins (phma@2001:5b0:215a:da58:dcbf:27e8:323f:f6ce)
23:15:58 <EvanR> has anything changed since haskell98 regarding the lexical analysis step
23:16:34 × xff0x_ quits (~xff0x@178.255.149.135) (Ping timeout: 250 seconds)
23:16:47 Sgeo joins (~Sgeo@user/sgeo)
23:18:31 xff0x_ joins (~xff0x@2405:6580:b080:900:50da:9b7c:4bac:847a)
23:21:56 × oo_miguel quits (~Thunderbi@78-11-179-96.static.ip.netia.com.pl) (Ping timeout: 246 seconds)
23:29:33 <geekosaur> the layout rule, as described lexically, has changed slightly to eliminate an ambiguity iirc
23:32:13 jmdaemon joins (~jmdaemon@user/jmdaemon)
23:44:37 × thegeekinside quits (~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
23:47:37 × gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.0.1)
23:48:58 <monochrom> dminuoso_: Haskell's "[Int]" becomes MLs' "int list". Now suppose you define your own ADT. Nothing stops you from naming it "t". And it it's a polymorphic type, users will be writing like "int t" instead of Haskell's "T Int". Furthermore, the ML communities are fond of naming their modules nicely, and say "<module name>.t" all the time, and not bother changing "t" to a better name, because the module name there is already the perfect name.
23:49:24 × billb quits (~billb@cpe-66-8-173-22.hawaii.res.rr.com) (Quit: Leaving)
23:50:58 × mei quits (~mei@user/mei) (Remote host closed the connection)
23:51:01 <geekosaur> oh, is that where henningskell comes from?
23:51:23 <monochrom> YES :)
23:52:11 mauke_ joins (~mauke@user/mauke)
23:52:23 monochrom worked with SML in a previous life because of the theorem prover HOL4.
23:53:24 mei joins (~mei@user/mei)
23:53:46 × mauke quits (~mauke@user/mauke) (Ping timeout: 245 seconds)
23:53:46 mauke_ is now known as mauke
23:54:25 ski . o O ( s/polymorphic type/parametric type/ )
23:54:51 <monochrom> Yeah parametric type is better.
23:55:10 <ski> yea, it's a common convention in the MLs
23:55:26 <ski> i guess module functors kinda encourage it, too ?
23:59:00 <ski> (imagine writing a functor (a parameterized module) where the parameter module is expected to contain a type named `t', and a `compare' function operating on it)
23:59:23 <monochrom> I kind of didn't want to believe that, I was hoping that humans would be above using that as an excuse, but upon 2nd thought, yeah totally. :)

All times are in UTC on 2023-07-06.