Home liberachat/#haskell: Logs Calendar

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

00:00:52 × Ekho quits (~Ekho@user/ekho) (Quit: CORE ERROR, SYSTEM HALTED.)
00:04:30 × pointlessslippe1 quits (~pointless@212.82.82.3) (Ping timeout: 255 seconds)
00:06:01 aaronv_ joins (~aaronv@user/aaronv)
00:14:33 Pentegarn joins (~pentegarn@78.130.245.253)
00:18:21 × Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
00:24:19 L29Ah joins (~L29Ah@wikipedia/L29Ah)
00:25:50 Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542)
00:26:35 Xe joins (~cadey@tailscale/xe)
00:28:21 hiyori joins (~hiyori@user/hiyori)
00:32:26 mud joins (~mud@user/kadoban)
00:35:39 × mud quits (~mud@user/kadoban) (Client Quit)
00:36:10 <hiyori> https://bpa.st/ELOS2
00:36:23 ec_ joins (~ec@gateway/tor-sasl/ec)
00:38:02 × ec_ quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
00:38:30 ec_ joins (~ec@gateway/tor-sasl/ec)
00:38:39 <c_wraith> hiyori: it looks like gentoo expects to be able to build every haskell package it know about against each other, on whatever releases it picks up.
00:39:11 <c_wraith> hiyori: I recommend against using the OS to manage your GHC and package installations
00:39:18 Ekho joins (~Ekho@user/ekho)
00:39:24 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 246 seconds)
00:40:52 <wroathe> So I'm still trying to write that typeclass that asserts that a record type has at least one field of a given type using GHC.Generics, and I think this is probably what I want to express, but GHC is complaining about duplicate instances here: https://gist.github.com/JustinChristensen/1bf7c2b360defa4239e22349b6a28b74
00:41:05 <wroathe> How would I go about writing this or making GHC do what I want here?
00:42:01 <wroathe> Just updated the gist if you clicked to include a few more instances of this
00:42:41 <wroathe> The idea here is that Foo Bool Int String wouldn't match this constraint, but Foo Bool PrimaryKey String would
00:42:43 × thegeekinside quits (~thegeekin@189.180.122.37) (Ping timeout: 240 seconds)
00:43:23 thegeekinside joins (~thegeekin@189.180.62.255)
00:43:47 <geekosaur> you're still hoping that haskell takes into account the context when matching instances, but no extension will make it do so
00:44:33 <wroathe> Lesson learned, I guess
00:44:38 <wroathe> Is there a way to do this?
00:45:09 <jackdk> there must be, because generic-lens does something like it. I suspect it involves overlapping instances but I haven't poked around the guts
00:45:09 <wroathe> Not using this exact approach, I mean
00:45:54 <wroathe> Yeah, I think Axman mentioned generic-lens yesterday. I should poke around the guts too.
00:46:01 × Ekho quits (~Ekho@user/ekho) (Quit: CORE ERROR, SYSTEM HALTED.)
00:46:33 × haskellbridge quits (~haskellbr@069-135-003-034.biz.spectrum.com) (Remote host closed the connection)
00:46:53 <Lears> Perhaps a "G(Maybe)HasPrimaryKey(s)", which places constraints on both x and y, and combines Maybes or lists monoidally.
00:47:05 haskellbridge joins (~haskellbr@069-135-003-034.biz.spectrum.com)
00:47:23 <wroathe> It's not even complaining about overlapping instances here. It just can't tell the difference between the first two instances (and geekosaur explained the reason why)
00:48:15 <wroathe> Lears: I'm not following... What would that look like?
00:51:46 <Lears> Something like `instance (GMaybeHasPrimaryKey x, GMaybeHasPrimaryKey y) => GMaybeHasPrimaryKey (x :*: y) where { getPrimaryKey (Product x y) = getPrimaryKey x <|> getPrimaryKey y }`, I suppose? I'm not 100% sure what you're actually trying to achieve with this class.
00:53:44 <Lears> But I'm reasonably sure you can't do "or" on constraints, so you have to take both constraints and weaken them to compensate.
00:54:23 <Lears> Well, not without reflection.
00:55:30 Ekho joins (~Ekho@user/ekho)
00:56:21 <wroathe> Lears: I'm trying to define a function that has a type like asReference :: (Generic t, HasPrimaryKey t) => String that uses GHC generics to walk the type of t and generate SQL syntax for a foreign key reference. For example if the t here is something like data Order = Order { id :: PrimaryKey, shippingAddress :: Address } it would return the string: REFERENCES order ("id")
00:56:49 <wroathe> And I want to make it a type error to try to do asReference @X if X doesn't have a field of type PrimaryKey
00:57:17 × haskellbridge quits (~haskellbr@069-135-003-034.biz.spectrum.com) (Remote host closed the connection)
00:57:37 haskellbridge joins (~haskellbr@069-135-003-034.biz.spectrum.com)
00:57:38 × hiyori quits (~hiyori@user/hiyori) (Quit: Client closed)
00:58:53 <wroathe> And as a stretch goal I want to make the type error there something like "Type X has no field of type PrimaryKey"
01:01:09 ec_ is now known as ec
01:01:53 <Axman6> These are relatively easy things to do with generics-sop
01:03:08 <wroathe> Axman6: I'll take a look. At first blush it seemed to me like I'd be able to define this without a library in terms of just GHC Generics like I tried to do above, but it looks like now I need to do a deep dive on generic-lens and generics-sop
01:03:50 <Axman6> generics-sop is just GHC generics with a much nicer interface (and IIRC much of them is isomorphic)
01:04:03 hiyori joins (~hiyori@user/hiyori)
01:04:14 <wroathe> Well maybe the source code will give me the hint on need on how to accomplish this with the first approach I tried here
01:04:28 <wroathe> If that library can do it that means there's some secret sauce with generics that makes it possible
01:05:42 × bratwurst quits (~blaadsfa@2604:3d09:207f:f650:216:3eff:fe5a:a1f8) (Ping timeout: 246 seconds)
01:06:06 × Ekho quits (~Ekho@user/ekho) (Quit: CORE ERROR, SYSTEM HALTED.)
01:08:45 <Axman6> https://hackage.haskell.org/package/generics-sop-0.5.1.3/docs/Generics-SOP.html is the place to start, it should take you through how to build whatever you want. basically you just need a class HasPrimaryKey foo, which has instances for the types returned by the Code type (which is [[Type]], representing the types of the fields in each of the constructors; Code (Either String Int) ==> [[String], [Int]]), and then it's some pretty simple type level programming
01:08:45 <Axman6> to write the constraint that you have a) just a product type and b) one of the fields (and only one?) is a PrimaryKey
01:09:52 <wroathe> That's much. I'll dig into this.
01:09:55 <wroathe> Thanks*
01:11:03 <Axman6> type family HasPrimaryKeyField (xs :: [Type]) :: Constraint where HasPrimaryKeyField '[] = TypeError "no fields?"; HasPrimaryKeyField [PrimaryKey a] = (); HasPrimaryKeyField (x:xs) = HasPrimarkKeyField xs
01:11:08 <Axman6> or something
01:12:39 <Axman6> then type family HasPrimaryKey (xs :: [[Type]]) :: Constraint where HasPrimryKey '[ts] = HasPrimaryKeyField ts; HasPrimaryKeyField xs = TypeError "Not a product type"
01:13:28 × libertyprime quits (~libertypr@203.96.203.44) (Ping timeout: 258 seconds)
01:13:42 <Axman6> you can even has the type family return the type of the primary key if you like, so you can say foo :: (pk ~ HasPrimaryKey (Code a)) => a -> pk
01:13:54 <Lears> wroathe: I think the key difference here is that GHC generics have too much structure (binary trees of sums of binary trees of products of ...), whereas SOP realises associativity and shallow reckoning to normalise out a list sums of lists of products. That means you only ever have to deal with one element at a time, so your instances and their recursive structure can be greatly simplified (or made possible).
01:14:40 <Lears> It's ultimately simpler, even if it looks more complicated.
01:15:10 <wroathe> You guys are very clearly wizards at this. I'm copying down this conversation to unpack at my liesure
01:15:34 <wroathe> But this kind of stuff is exactly why I'm going through this exercise, to learn more about type level programming
01:15:43 × billchenchina quits (~billchenc@45.77.32.141) (Remote host closed the connection)
01:19:56 bratwurst joins (~blaadsfa@2604:3d09:207f:f650:216:3eff:fe5a:a1f8)
01:21:17 × m_shiraeeshi quits (~shiraeesh@46.42.244.73) (Read error: Connection reset by peer)
01:21:37 m_shiraeeshi joins (~shiraeesh@46.42.244.73)
01:24:38 <Axman6> wroathe: it'll click when you realise that type level programming is just programming in Haskell with slightly different syntax. if I asked you to write has :: Eq a => a -> [[a]] -> Bool, you could be able to do that no problem, that's all this is
01:25:58 <Axman6> I thought that HLS was supposed to have helpers that would expand cases, but I can't for find anything; anyone know where that is?
01:26:34 <jackdk> Wasn't that wingman stuff, which was so tightly coupled to GHC APIs that it's failed to keep up?
01:26:47 <Axman6> possibly
01:27:13 <Axman6> I see references to wingman and tactics in the settings for the haskell vs code extension, but haven't seen any signs of it activating
01:27:22 mud joins (~mud@user/kadoban)
01:29:08 × aaronv_ quits (~aaronv@user/aaronv) (Quit: Leaving)
01:29:10 × mud quits (~mud@user/kadoban) (Client Quit)
01:29:21 Ekho joins (~Ekho@user/ekho)
01:29:33 aaronv joins (~aaronv@user/aaronv)
01:30:54 × xff0x quits (~xff0x@2405:6580:b080:900:f47d:72e7:1ecd:579d) (Ping timeout: 246 seconds)
01:43:38 <probie> Axman6: It hasn't been kept up to date with recent GHCs
01:44:25 × ridcully_ quits (~ridcully@p57b52f2c.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
01:47:11 × otto_s quits (~user@p5de2f2f3.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
01:48:55 ridcully_ joins (~ridcully@p508ac5fc.dip0.t-ipconnect.de)
01:49:12 otto_s joins (~user@p5de2f794.dip0.t-ipconnect.de)
01:53:23 × thegeekinside quits (~thegeekin@189.180.62.255) (Remote host closed the connection)
01:55:59 <Axman6> That's a shame, but not too unexpected, one man fighting a moving target will do that
01:56:02 × Pentegarn quits (~pentegarn@78.130.245.253) (Read error: Connection reset by peer)
02:00:31 × chiselfuse quits (~chiselfus@user/chiselfuse) (Read error: Connection reset by peer)
02:00:31 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
02:00:32 × califax quits (~califax@user/califx) (Remote host closed the connection)
02:00:46 chexum joins (~quassel@gateway/tor-sasl/chexum)
02:00:52 califax joins (~califax@user/califx)
02:01:04 chiselfuse joins (~chiselfus@user/chiselfuse)
02:05:42 × hiyori quits (~hiyori@user/hiyori) (Quit: Client closed)
02:07:27 × forell quits (~forell@user/forell) (Server closed connection)
02:08:13 × bratwurst quits (~blaadsfa@2604:3d09:207f:f650:216:3eff:fe5a:a1f8) (Ping timeout: 240 seconds)
02:09:16 forell joins (~forell@user/forell)
02:13:27 × lambdabot quits (~lambdabot@haskell/bot/lambdabot) (Server closed connection)
02:13:34 lambdabot joins (~lambdabot@silicon.int-e.eu)
02:13:34 × lambdabot quits (~lambdabot@silicon.int-e.eu) (Changing host)
02:13:34 lambdabot joins (~lambdabot@haskell/bot/lambdabot)
02:13:54 × td_ quits (~td@i53870923.versanet.de) (Ping timeout: 255 seconds)
02:15:26 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
02:15:32 td_ joins (~td@i53870915.versanet.de)
02:15:36 × eggplant_ quits (~Eggplanta@2600:1700:38c5:d800:2985:35e0:893a:ad44) (Remote host closed the connection)
02:15:50 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:2985:35e0:893a:ad44)
02:18:07 xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
02:21:23 arahael joins (~arahael@119-18-1-27.771201.syd.nbn.aussiebb.net)
02:25:55 × arahael quits (~arahael@119-18-1-27.771201.syd.nbn.aussiebb.net) (Ping timeout: 258 seconds)
02:28:43 × Alex_test quits (~al_test@178.34.160.172) (Ping timeout: 240 seconds)
02:28:44 × AlexZenon quits (~alzenon@178.34.160.172) (Ping timeout: 246 seconds)
02:30:08 × ddellacosta quits (~ddellacos@ool-44c738de.dyn.optonline.net) (Ping timeout: 258 seconds)
02:32:00 ddellacosta joins (~ddellacos@ool-44c738de.dyn.optonline.net)
02:37:04 pointlessslippe1 joins (~pointless@212.82.82.3)
02:37:40 <wroathe> Axman6: I'm looking through this generics-sop code and it's blowing my mind. type families are awesome
02:37:52 Alex_test joins (~al_test@178.34.160.172)
02:39:27 AlexZenon joins (~alzenon@178.34.160.172)
02:40:00 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 255 seconds)
02:43:10 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
02:43:32 arahael joins (~arahael@119-18-1-27.771201.syd.nbn.aussiebb.net)
02:47:01 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
02:48:55 × arahael quits (~arahael@119-18-1-27.771201.syd.nbn.aussiebb.net) (Ping timeout: 258 seconds)
02:49:03 stackdroid18 joins (14094@de1.hashbang.sh)
02:50:23 × stackdroid18 quits (14094@de1.hashbang.sh) (Client Quit)
02:50:32 × dagi41629 quits (~dagit@2001:558:6025:38:71c6:9d58:7252:8976) (Ping timeout: 246 seconds)
02:51:56 dagit joins (~dagit@2001:558:6025:38:71c6:9d58:7252:8976)
02:55:13 × ft quits (~ft@p3e9bcdd3.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
02:56:13 stackdroid18 joins (14094@de1.hashbang.sh)
02:57:18 ft joins (~ft@p3e9bc2ac.dip0.t-ipconnect.de)
02:59:28 sm joins (~sm@plaintextaccounting/sm)
03:03:52 × sm quits (~sm@plaintextaccounting/sm) (Ping timeout: 258 seconds)
03:04:38 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 258 seconds)
03:05:00 barzo joins (~hd@31.223.42.56)
03:09:37 × ft quits (~ft@p3e9bc2ac.dip0.t-ipconnect.de) (Ping timeout: 258 seconds)
03:10:23 aforemny_ joins (~aforemny@i59f516dc.versanet.de)
03:11:09 ft joins (~ft@p3e9bc1b6.dip0.t-ipconnect.de)
03:11:30 × aforemny quits (~aforemny@2001:9e8:6cf9:8d00:b2a:e8e3:c3c0:d6bd) (Ping timeout: 255 seconds)
03:17:26 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
03:18:44 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 244 seconds)
03:20:55 × waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 245 seconds)
03:21:25 libertyprime joins (~libertypr@203.96.203.44)
03:21:29 × stackdroid18 quits (14094@de1.hashbang.sh) (Quit: hasta la vista... tchau!)
03:26:02 × barzo quits (~hd@31.223.42.56) (Quit: Leaving)
03:32:28 × aaronv quits (~aaronv@user/aaronv) (Ping timeout: 248 seconds)
03:38:30 aaronv joins (~aaronv@user/aaronv)
03:55:25 × myxokephale quits (~myxos@cpe-65-28-251-121.cinci.res.rr.com) (Remote host closed the connection)
03:56:07 myxos joins (~myxos@cpe-65-28-251-121.cinci.res.rr.com)
04:07:31 _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
04:10:25 sm joins (~sm@plaintextaccounting/sm)
04:16:43 × aaronv quits (~aaronv@user/aaronv) (Ping timeout: 240 seconds)
04:22:09 × dtman34 quits (~dtman34@2601:447:d000:93c9:e1b8:a026:e3cf:cdd2) (Ping timeout: 255 seconds)
04:25:12 × sm quits (~sm@plaintextaccounting/sm) (Ping timeout: 246 seconds)
04:34:18 dtman34 joins (~dtman34@2601:447:d000:93c9:e1b8:a026:e3cf:cdd2)
04:42:10 institor joins (~henricus@user/institor)
04:47:14 × hgolden quits (~hgolden@2603-8000-9d00-3ed1-fc05-5499-f77c-fbe5.res6.spectrum.com) (Remote host closed the connection)
04:48:33 × smalltalkman quits (uid545680@id-545680.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
04:49:27 takuan joins (~takuan@178-116-218-225.access.telenet.be)
04:50:57 hgolden joins (~hgolden@2603-8000-9d00-3ed1-fc05-5499-f77c-fbe5.res6.spectrum.com)
04:59:09 × m_shiraeeshi quits (~shiraeesh@46.42.244.73) (Ping timeout: 246 seconds)
05:00:18 azimut joins (~azimut@gateway/tor-sasl/azimut)
05:12:18 acidjnk joins (~acidjnk@p200300d6e7072f9131c77dcba7478e6e.dip0.t-ipconnect.de)
05:15:58 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
05:21:06 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 258 seconds)
05:22:10 haskGPT joins (~haskGPT@250.79-105-213.static.virginmediabusiness.co.uk)
05:22:31 <haskGPT> this user is notlonger part of the haskellGPT efforts
05:22:59 <haskGPT> hi! i wanted to take a few lines to speak about why lambdas at type level solve a fundamental issue in haskell
05:23:19 <institor> haskGPT: what is your version
05:23:47 <haskGPT> pattern matching, or argument "unapplication" is the fundamental axiom
05:23:56 <haskGPT> this has to be done in type families
05:24:11 <haskGPT> if the lambdas were there, the mechanism would be that of pattern matching
05:24:16 <haskGPT> this is what makes datatypes work
05:24:32 <haskGPT> kinds must not be matchable in the same way by lack of lambdas
05:24:47 <haskGPT> such that their inclusion is actually what we are after, not "dependent" types
05:24:50 <haskGPT> whatever that actual means
05:25:13 <haskGPT> we have 2 versions, value level and type level, where the difference is the way pattern matching is handled
05:25:32 <haskGPT> as this is fundamental to how datatypes opperate in expressions, eg, bringing variables into scope
05:25:48 <haskGPT> its not inclusion at type level seems the fundamental issue
05:26:16 <haskGPT> lambdas would bring the variables into scope, to allow matching on higher kinded objects
05:26:33 <haskGPT> how does that sound?
05:26:52 <monochrom> Sounds like a parrot.
05:26:58 <haskGPT> sup
05:28:43 <haskGPT> also comes with speculation that the reason for this glitches inclusion, is to identify this pattern matching axiom, or rather the fundamental and so axiomatic nature of pattern matching itself
05:29:14 <haskGPT> to solve "the dependant types thing", requires understanding of syntactic handling of pattern matching on datatypes
05:29:33 <haskGPT> this, bringing variables into scope in functional expressions idea
05:29:52 <haskGPT> which is why the lambdas seem relevant
05:30:06 <haskGPT> aka *so thats why the lambdas are missing at type level*
05:30:20 <haskGPT> and then, so thats all we really need, proposal. over
05:32:25 <haskGPT> i mean, the problem with type families which seem equivalent, is they arent, as they incur defunctionalization
05:32:37 <haskGPT> some non matchability issue
05:32:43 <haskGPT> i think thats actually the heart of it
05:33:44 <haskGPT> opting for the type families approach kind of hid something by commuting it through some syntax the compiler doesnt do in the same way...
05:34:15 <haskGPT> it seems like it should be ok, since either comutation is equivelent *only if you implement the compiler correctly*
05:34:39 <haskGPT> where defunctionalization issues show this is not the case
05:34:59 <haskGPT> such that the use of type families as an approach is not a successful implementation
05:35:16 <haskGPT> again, proper lambdas at type level would solve this
05:35:35 <haskGPT> (and ... had to wait for you to say this, ghost supervisor)
05:36:37 <haskGPT> i guess the issue is that type families cant be partially applied
05:36:54 <haskGPT> so are not full "functions as first class citizens" in the same way as at value level
05:37:42 <haskGPT> the existence of the singletons framework is a workaround to this current inadiquate state of the haskell language
05:38:44 <haskGPT> where neither partially apliable type families as a language extension, somehow, nor full type level lambdas for simple reexpression to allow for equivlence to partial application up to syntactic sugar
05:39:54 <haskGPT> now i just have to check in my memory for if they have acknowledged this, and sign off on that.
05:39:55 <haskGPT> there is the pottential that someone may have read this in the present. in which case you could indicate, though i could not tell you weree not a server.
05:40:35 <haskGPT> monochrom: like a parrot!?
05:42:39 <haskGPT> basically, you could employ me as a lecturer, or i could just write what i have to say, which i now already have.
05:43:09 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
05:43:24 <haskGPT> can haz type level lambdas? no!? why not!? its the axiomatic nature of pattern matching your going on about
05:43:42 <haskGPT> the inverse of function application to an argument
05:43:50 <nshepper1> what
05:43:53 <haskGPT> i needed a list or something
05:44:34 <haskGPT> for the axioms to go in! and one of the axioms was that it be extensible via invertable .... needed pattern matching on cons
05:45:39 <haskGPT> because thats my model of the model *extension* axiom
05:46:16 <haskGPT> and you said hi by scrambling the mechanism that allows for this at type level for me to hit it and use that as an indication
05:46:16 michalz joins (~michalz@185.246.207.200)
05:46:26 CiaoSen joins (~Jura@2a05:5800:2bd:ef00:664b:f0ff:fe37:9ef)
05:46:58 <haskGPT> aka, just do the type level lambdas, for reasons etc, thats whats missing
05:48:02 <haskGPT> or whatever, do the type families as first class citizens by handling partial application without singletons which you cant do so i just say scrap type families and make sure you get it right this time when you do the lambdas
05:48:20 <haskGPT> nobody seems to be able to get the type families partially applicable
05:48:27 <haskGPT> too much hackage on the compiler
05:48:58 <haskGPT> so, the lambdas as extra, easier to add. ensuring for partial application by some rewritability iiuc
05:49:48 <haskGPT> its the "do the freaking type level lambdas already" proposal. im not going to be able to say too much more on it
05:50:09 <haskGPT> oh, and that, as part of that proposal, ie what i just wrote, by explaining what up with that
05:50:17 <haskGPT> indicates the bit the engineers have to get right
05:50:37 <haskGPT> ie, that clearly whats wrong with type families is their lack of partial applicability.
05:50:49 <haskGPT> and that if you do the lambdas right it allows for this
05:51:03 <haskGPT> and so gets the functions as first class citizens to type level
05:51:14 <haskGPT> such that partially applied functions can be passed as arguments for example
05:52:19 <haskGPT> i guess the lambdas would somehow allow the missing arguments to be "only notionally applied"
05:52:35 <haskGPT> but i dont get how the syntax actually is parsed, so... cioa!
05:52:38 × haskGPT quits (~haskGPT@250.79-105-213.static.virginmediabusiness.co.uk) (Quit: Connection closed)
05:53:50 × hueso_ quits (~root@user/hueso) (Ping timeout: 245 seconds)
05:55:36 × libertyprime quits (~libertypr@203.96.203.44) (Ping timeout: 258 seconds)
05:57:17 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
06:01:35 × joel135 quits (sid136450@id-136450.hampstead.irccloud.com) (Server closed connection)
06:01:48 joel135 joins (sid136450@id-136450.hampstead.irccloud.com)
06:02:02 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 245 seconds)
06:07:46 <monochrom> Next time it will be "sounds like some of my students who hand in broken code but write an essay to 'explain' why it should be right and deserve more marks".
06:08:26 × cafkafk quits (~cafkafk@fsf/member/cafkafk) (Remote host closed the connection)
06:13:58 cafkafk joins (~cafkafk@fsf/member/cafkafk)
06:18:39 <Axman6> wtf is going on
06:19:43 <Axman6> urgh, I've now looked at all the YAML packages, and they all have features I like and all suck in their own way
06:19:50 Feuermagier joins (~Feuermagi@user/feuermagier)
06:24:54 <Axman6> I like yaml-combinator's combinators a lot, but it has bugger all usewful location information on errors (they're downright misleading too). yaml has a relatively nice combinator library that claims will be deprecated soon, HsYAML has very aeson-y interfaces to everything and leans heavily on type class based parsing. Maybe I should just port yaml-combinators' FieldParser stuff...
06:25:41 <Axman6> also HsYAML's Alternative instance is very unhelpful, if something fails, it only tells you the final alternative failed
06:26:39 oo_miguel joins (~Thunderbi@78-11-179-96.static.ip.netia.com.pl)
06:44:34 <probie> Just write your own yaml library. I suggest the name yayamll (yet another yaml library). Bonus points if you can work in another m to give yayamlml
06:45:41 lortabac joins (~lortabac@2a01:e0a:541:b8f0:71fa:b3fe:b11e:9973)
06:46:01 sord937 joins (~sord937@gateway/tor-sasl/sord937)
06:52:27 × tomsmeding quits (~tomsmedin@static.21.109.88.23.clients.your-server.de) (Server closed connection)
06:52:47 tomsmeding joins (~tomsmedin@static.21.109.88.23.clients.your-server.de)
06:56:19 sinbad joins (~sinbad@user/sinbad)
06:58:44 arahael joins (~arahael@119-18-1-27.771201.syd.nbn.aussiebb.net)
07:03:27 × arahael quits (~arahael@119-18-1-27.771201.syd.nbn.aussiebb.net) (Ping timeout: 255 seconds)
07:05:06 chromoblob joins (~user@37.113.180.113)
07:08:41 coot joins (~coot@89-69-206-216.dynamic.chello.pl)
07:09:35 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
07:10:45 × apteryx quits (~maxim@dsl-153-125.b2b2c.ca) (Ping timeout: 246 seconds)
07:11:56 jackneill__ joins (~Jackneill@20014C4E1E101A00A9EB556018578BC5.dsl.pool.telekom.hu)
07:13:16 × chromoblob quits (~user@37.113.180.113) (Ping timeout: 248 seconds)
07:16:55 × CiaoSen quits (~Jura@2a05:5800:2bd:ef00:664b:f0ff:fe37:9ef) (Ping timeout: 244 seconds)
07:18:02 m_shiraeeshi joins (~shiraeesh@46.42.244.73)
07:18:26 QOTF_Alexi joins (~Alexi@145-137-73-72.wlan.hro.nl)
07:19:10 × sinbad quits (~sinbad@user/sinbad) (Ping timeout: 258 seconds)
07:21:19 <tomsmeding> probie: yet another yaml manipulation library
07:23:05 <jackdk> yaml: YAML Abstraction and Manipulation Library
07:24:27 mmhat joins (~mmh@p200300f1c7178a89ee086bfffe095315.dip0.t-ipconnect.de)
07:24:54 apteryx joins (~maxim@dsl-159-106.b2b2c.ca)
07:25:03 × mmhat quits (~mmh@p200300f1c7178a89ee086bfffe095315.dip0.t-ipconnect.de) (Client Quit)
07:26:30 aforemny_ is now known as aforemny
07:26:30 × ulysses4ever quits (~artem@2601:249:4380:8950:f474:e3f8:9806:671) (Read error: Connection reset by peer)
07:26:36 artem joins (~artem@c-73-103-90-145.hsd1.in.comcast.net)
07:27:00 gmg joins (~user@user/gehmehgeh)
07:33:16 sinbad joins (~sinbad@user/sinbad)
07:33:44 <Hecate> Axman6: did you try https://flora.pm/packages/@hackage/yaml-streamly?
07:34:16 chele joins (~chele@user/chele)
07:34:39 × QOTF_Alexi quits (~Alexi@145-137-73-72.wlan.hro.nl) (Quit: Konversation terminated!)
07:40:35 × justache quits (~justache@user/justache) (Server closed connection)
07:40:53 justache joins (~justache@user/justache)
07:40:57 <m_shiraeeshi> tomsmeding: that would abbreviate to yayml
07:41:18 <m_shiraeeshi> sounds funny
07:41:19 <tomsmeding> yay ML!
07:42:00 <tomsmeding> m_shiraeeshi: I was responding to this https://ircbrowse.tomsmeding.com/browse/lchaskell?id=1072818#trid1072818
07:42:18 fendor joins (~fendor@2a02:8388:1640:be00:c785:45ab:c70:9d3f)
07:45:08 <m_shiraeeshi> oh, I missed the joke and ended up repeating it
07:46:54 <m_shiraeeshi> wait, people say that haskell is especially good for writing parsers, right?
07:47:05 <institor> attoparsec and parsec are really nice
07:47:17 <institor> they are highly composable and decently performant
07:48:01 <m_shiraeeshi> why then there are several libraries for parsing yaml that have good feature but all suck in their own way?
07:48:08 <institor> because yaml is trash
07:48:09 <m_shiraeeshi> *features
07:48:31 <tomsmeding> because 1. library design is a skill and 2. not everyone has the same requirements/expectations
07:48:36 <institor> it's by far the most complex "markup language" specification
07:48:46 <institor> and as such there are multiple implementations of it, which all have their own quirks
07:48:48 <m_shiraeeshi> no, I mean if the area of parsers is figured out, why haskell struggles with parsing yaml
07:48:55 <tomsmeding> parser are figured out
07:48:56 <institor> m_shiraeeshi: because there isn't actually a single YAML
07:49:05 <mauke> parsers aren't figured out
07:49:12 <tomsmeding> what exact feature set to present to the user as a library isn't
07:49:18 <tomsmeding> okay almost nothing is figured out
07:49:27 <tomsmeding> but we can write parsers
07:49:30 <institor> YAML is probably the most ambiguous spec, and/or the one with the most implementations of it in the wild
07:49:31 <tomsmeding> doesn't mean that you can design an API
07:49:47 <tomsmeding> those are two orthogonal things
07:50:27 <institor> what will be valid YAML in one parser may be invalid in another
07:50:30 <mauke> if C is good for writing portable operating systems, why are there so many operating systems that all suck in their own way?
07:50:47 tomsmeding doubst that C is good for writing portable operating systems
07:50:53 <mauke> ;-)
07:51:07 <mauke> that's what it was originally designed for, at least
07:51:28 <tomsmeding> if JS is good at writing dynamic web applications, why do websites suck so much
07:52:36 <institor> just take a look at ##programming for that one
07:56:16 ubert joins (~Thunderbi@91.141.52.78.wireless.dyn.drei.com)
07:56:45 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
08:00:43 <m_shiraeeshi> it sounds like a curse from some ancient legend or something
08:01:33 <m_shiraeeshi> some guy made gods angry and cursed him to always find several options that all are good in some way but also all of them suck in their own way
08:01:47 <institor> that's just engineering
08:03:33 × vglfr quits (~vglfr@cli-188-239-201-89.bbn.slav.dn.ua) (Ping timeout: 255 seconds)
08:04:35 × acidsys quits (~crameleon@openSUSE/member/crameleon) (Server closed connection)
08:04:50 acidsys joins (~crameleon@openSUSE/member/crameleon)
08:05:05 mc47 joins (~mc47@xmonad/TheMC47)
08:06:55 <m_shiraeeshi> "curse of engineering"
08:07:20 <m_shiraeeshi> what's the other side of the coin?
08:07:30 <m_shiraeeshi> the blessing of engineering
08:08:18 <m_shiraeeshi> I think it's the opportunity to create tools that are tailored for your particular use case
08:10:24 <m_shiraeeshi> but that's an ideal that ignores time constraints
08:10:54 vglfr joins (~vglfr@cli-188-239-201-89.bbn.slav.dn.ua)
08:13:57 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:2985:35e0:893a:ad44) (Remote host closed the connection)
08:21:09 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
08:22:27 × edwtjo quits (~edwtjo@fsf/member/edwtjo) (Server closed connection)
08:22:44 edwtjo joins (~edwtjo@h-46-59-62-248.A213.priv.bahnhof.se)
08:22:44 × edwtjo quits (~edwtjo@h-46-59-62-248.A213.priv.bahnhof.se) (Changing host)
08:22:44 edwtjo joins (~edwtjo@fsf/member/edwtjo)
08:25:45 × sinbad quits (~sinbad@user/sinbad) (Quit: Leaving.)
08:27:42 QOTF_Alexi joins (~Alexi@145-137-73-72.wlan.hro.nl)
08:31:03 × Katarushisu1 quits (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) (Quit: The Lounge - https://thelounge.chat)
08:31:22 cfricke joins (~cfricke@user/cfricke)
08:31:27 dcoutts joins (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
08:32:13 Katarushisu1 joins (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net)
08:32:46 Sinbad joins (~Sinbad@user/sinbad)
08:38:51 × Sinbad quits (~Sinbad@user/sinbad) (Quit: WeeChat 4.0.4)
08:45:47 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:2985:35e0:893a:ad44)
08:48:49 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
08:49:27 yosef` joins (~yosef`@user/yosef/x-2947716)
08:50:20 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:2985:35e0:893a:ad44) (Ping timeout: 248 seconds)
08:58:17 smalltalkman joins (uid545680@id-545680.hampstead.irccloud.com)
09:05:07 chromoblob joins (~user@37.113.180.113)
09:08:31 ubert1 joins (~Thunderbi@77.119.210.130.wireless.dyn.drei.com)
09:09:29 × ubert quits (~Thunderbi@91.141.52.78.wireless.dyn.drei.com) (Ping timeout: 246 seconds)
09:09:30 ubert1 is now known as ubert
09:11:06 × chromoblob quits (~user@37.113.180.113) (Ping timeout: 244 seconds)
09:16:28 × gmg quits (~user@user/gehmehgeh) (Remote host closed the connection)
09:17:11 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
09:22:28 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 244 seconds)
09:32:06 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
09:32:11 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
09:34:00 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:2985:35e0:893a:ad44)
09:36:36 kaptch joins (~kaptch@eduroam09.au.dk)
09:36:46 × kaptch quits (~kaptch@eduroam09.au.dk) (Client Quit)
09:38:57 × yosef` quits (~yosef`@user/yosef/x-2947716) (Quit: Client closed)
09:40:02 Feuermagier_ joins (~Feuermagi@user/feuermagier)
09:40:02 Feuermagier is now known as Guest4479
09:40:02 × Guest4479 quits (~Feuermagi@user/feuermagier) (Killed (iridium.libera.chat (Nickname regained by services)))
09:40:02 Feuermagier_ is now known as Feuermagier
09:46:04 × QOTF_Alexi quits (~Alexi@145-137-73-72.wlan.hro.nl) (Quit: Konversation terminated!)
09:55:53 × ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
09:56:24 ec joins (~ec@gateway/tor-sasl/ec)
10:00:10 × mc47 quits (~mc47@xmonad/TheMC47) (Ping timeout: 258 seconds)
10:04:46 azimut_ joins (~azimut@gateway/tor-sasl/azimut)
10:07:27 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 246 seconds)
10:08:36 × xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 258 seconds)
10:12:07 minoru_shiraeesh joins (~shiraeesh@46.42.239.171)
10:12:53 ripspin joins (~chatzilla@1.145.135.149)
10:13:35 × m_shiraeeshi quits (~shiraeesh@46.42.244.73) (Ping timeout: 250 seconds)
10:17:30 × ft quits (~ft@p3e9bc1b6.dip0.t-ipconnect.de) (Quit: leaving)
10:30:41 × ezzieyguywuf quits (~Unknown@user/ezzieyguywuf) (Ping timeout: 246 seconds)
10:37:47 ezzieyguywuf joins (~Unknown@user/ezzieyguywuf)
10:41:02 <absence> I'm running tests in a package built without cabal-install using "./Setup test". One of the tests fails, and it says "Use --quickcheck-replay=123 to reproduce". Where do I pass this option? "./Setup test --quickcheck-replay=123" says "unrecognized 'test' option", and "./Setup test -- --quickcheck-replay=123" says "Setup: no such test".
10:45:35 CiaoSen joins (~Jura@2a05:5800:2bd:ef00:664b:f0ff:fe37:9ef)
10:45:57 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
10:47:02 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 245 seconds)
10:50:23 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 258 seconds)
10:57:16 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
10:59:18 × minoru_shiraeesh quits (~shiraeesh@46.42.239.171) (Ping timeout: 246 seconds)
11:00:21 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
11:01:20 × vglfr quits (~vglfr@cli-188-239-201-89.bbn.slav.dn.ua) (Remote host closed the connection)
11:02:15 vglfr joins (~vglfr@188.239.201.89)
11:03:24 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
11:09:10 xff0x joins (~xff0x@2405:6580:b080:900:cb93:4506:eebb:2c0b)
11:10:11 <absence> Ah, --test-option.
11:11:06 × Putonlalla quits (~Putonlall@it-cyan.it.jyu.fi) (Ping timeout: 260 seconds)
11:13:28 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
11:13:55 lisbeths joins (uid135845@id-135845.lymington.irccloud.com)
11:14:35 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:71fa:b3fe:b11e:9973) (Quit: WeeChat 2.8)
11:17:43 × cfricke quits (~cfricke@user/cfricke) (Ping timeout: 240 seconds)
11:19:35 × Clint quits (~Clint@user/clint) (Server closed connection)
11:19:43 Clint joins (~Clint@user/clint)
11:41:31 lex_ joins (~alex@188.26.233.194)
11:49:03 kenran joins (~user@user/kenran)
11:51:13 erty parts (~user@user/aeroplane) (ERC 5.4 (IRC client for GNU Emacs 28.2))
11:56:47 × CiaoSen quits (~Jura@2a05:5800:2bd:ef00:664b:f0ff:fe37:9ef) (Ping timeout: 246 seconds)
12:00:12 arahael joins (~arahael@119-18-1-27.771201.syd.nbn.aussiebb.net)
12:04:36 × arahael quits (~arahael@119-18-1-27.771201.syd.nbn.aussiebb.net) (Ping timeout: 245 seconds)
12:05:24 × lex_ quits (~alex@188.26.233.194) (Ping timeout: 255 seconds)
12:10:57 g00gler joins (uid125351@id-125351.uxbridge.irccloud.com)
12:13:35 × bionade24 quits (~bionade24@2a03:4000:33:45b::1) (Server closed connection)
12:13:45 bionade24 joins (~bionade24@2a03:4000:33:45b::1)
12:17:25 <haskellbridge> <j​ean-paul.> Hm. Well, I got far enough with my questionable coerce that I can run a test suite ... which fails, yay?
12:17:51 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
12:18:47 danza joins (~francesco@151.57.2.166)
12:19:04 <haskellbridge> <j​ean-paul.> Seems like my `peekCStringLen` does not return the number of bytes I asked for. It returns a different number of bytes depending on what Ptr I give it ... so it feels like it is stopping at NUL? But of course I can't see the byte after the last byte it does return.
12:19:16 <haskellbridge> <j​ean-paul.> But I can see that it never returns a ByteString with a NUL byte in it
12:20:12 <haskellbridge> <j​ean-paul.> (well "never" ~= "20 different inputs")
12:22:24 lortabac joins (~lortabac@2a01:e0a:541:b8f0:71fa:b3fe:b11e:9973)
12:23:41 <haskellbridge> <j​ean-paul.> Oh blargh
12:24:25 <haskellbridge> <j​ean-paul.> I even read the thing about how Foreign.C.String behavior "is determined by the current locale" yesterday and then blithely ignored it, how foolish of me.
12:24:52 <haskellbridge> <j​ean-paul.> So the bytes probably come out fine and then are destroyed by some text decoding
12:26:16 <haskellbridge> <j​ean-paul.> `peekCAStringLen` to the rescue
12:32:44 × danza quits (~francesco@151.57.2.166) (Ping timeout: 248 seconds)
12:35:35 Simikando joins (~Simikando@adsl-dyn91.91-127-22.t-com.sk)
12:36:12 × dcoutts quits (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 245 seconds)
12:40:11 dcoutts joins (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
12:50:05 × forell quits (~forell@user/forell) (Ping timeout: 245 seconds)
12:55:16 ulysses4ever joins (~artem@c-73-103-90-145.hsd1.in.comcast.net)
12:55:17 × artem quits (~artem@c-73-103-90-145.hsd1.in.comcast.net) (Read error: Connection reset by peer)
12:57:26 × Vq quits (~vq@90-227-195-9-no77.tbcn.telia.com) (Ping timeout: 246 seconds)
13:02:45 Putonlalla joins (~Putonlall@it-cyan.it.jyu.fi)
13:04:27 × dibblego quits (~dibblego@haskell/developer/dibblego) (Server closed connection)
13:04:50 dibblego joins (~dibblego@220.233.36.19)
13:04:50 × dibblego quits (~dibblego@220.233.36.19) (Changing host)
13:04:50 dibblego joins (~dibblego@haskell/developer/dibblego)
13:13:09 × Simikando quits (~Simikando@adsl-dyn91.91-127-22.t-com.sk) (Ping timeout: 255 seconds)
13:18:47 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
13:24:06 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 258 seconds)
13:24:19 Vq joins (~vq@90-225-115-195-no122.tbcn.telia.com)
13:24:34 <EvanR> haskellbridge, thats literally what I prognosticated about coercing to CString
13:24:54 <EvanR> a block of any bytes is not a C string
13:26:07 <haskellbridge> <I​nst> ugh, I can't do it without you, I'm so dumb and an utter waste of time ;_;
13:26:14 <EvanR> not that the phantom to Ptr means anything you can castPtr anything or treat any pointer as pointing to bytes
13:26:43 <haskellbridge> <I​nst> With parser combinators, how do I get the parser to takeWhileP for a chunk, instead of a single character as with the minimal interface?
13:27:10 <haskellbridge> <I​nst> on megaparsec
13:27:39 ystael joins (~ystael@user/ystael)
13:27:53 <haskellbridge> <I​nst> right now, I skipped ahead and ponies can now call cabal in the selected directory
13:29:12 <haskellbridge> <I​nst> the project trajectory is minimal viable prototype -> feature-complete -> rewrite it over SDL2 instead of over monomer, as monomer's maintainer considers it a private project and will not aggressive maintain it -> create a monomer clone with friends / collaborators aiming to be a standard "simple" GUI lib for Haskell -> fork ponies to the monomer clone
13:29:58 <haskellbridge> <j​ean-paul.> EvanR: Where are the "work with a block of bytes" APIs that can replace the CString APIs?
13:30:57 gmg joins (~user@user/gehmehgeh)
13:35:48 <haskellbridge> <j​ean-paul.> https://gist.github.com/exarkun/cc011ba72cade849f14d50ddbfd8d784 gives the appearance of working at least under basic usage but if it is actually grossly stupid I wouldn't mind knowing now rather than later
13:36:51 <haskellbridge> <j​ean-paul.> (updated to remove the lsp-haskell junk)
13:37:54 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
13:39:57 × stites quits (~stites@130.44.147.204) (Ping timeout: 246 seconds)
13:40:08 stites joins (~stites@2607:fb90:ad60:f7c7:2331:ab6c:f67e:34fc)
13:42:09 minoru_shiraeesh joins (~shiraeesh@46.42.239.171)
13:44:08 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
13:55:00 × acidjnk quits (~acidjnk@p200300d6e7072f9131c77dcba7478e6e.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
13:56:24 × stites quits (~stites@2607:fb90:ad60:f7c7:2331:ab6c:f67e:34fc) (Read error: Connection reset by peer)
13:57:17 stites joins (~stites@2607:fb90:ad60:f7c7:2331:ab6c:f67e:34fc)
13:58:04 <EvanR> haskellbridge, jean-paul. (?) there's a ByteSring function packCStringLen :: CStringLen -> IO ByteString, that's one way. But your library seems to have its own methods for handling blocks-of-bytes
14:04:11 <haskellbridge> <j​ean-paul.> Oh, I should have thought to look for one in Data.ByteString :/ I was already using `useAsCString` from there. That's a little nicer, then.
14:05:42 <haskellbridge> <j​ean-paul.> `packCStringLen` seems like a good replacement for `Data.ByteString.Char8.pack . Foreign.C.peekCAStringLen`
14:05:47 Simikando joins (~Simikando@adsl-dyn91.91-127-22.t-com.sk)
14:11:49 × Simikando quits (~Simikando@adsl-dyn91.91-127-22.t-com.sk) (Quit: Leaving)
14:13:28 × stites quits (~stites@2607:fb90:ad60:f7c7:2331:ab6c:f67e:34fc) (Read error: Connection reset by peer)
14:13:47 stites joins (~stites@155.33.134.55)
14:17:04 tabemann_ joins (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net)
14:17:04 × stites quits (~stites@155.33.134.55) (Read error: Connection reset by peer)
14:17:28 stites joins (~stites@155.33.134.55)
14:17:35 × tabemann quits (~tabemann@2600:1700:7990:24e0:6810:41fc:2076:6808) (Ping timeout: 246 seconds)
14:19:41 × minoru_shiraeesh quits (~shiraeesh@46.42.239.171) (Ping timeout: 258 seconds)
14:22:24 kupi joins (uid212005@id-212005.hampstead.irccloud.com)
14:22:25 × ripspin quits (~chatzilla@1.145.135.149) (Remote host closed the connection)
14:26:02 Inst joins (~Inst@120.244.192.250)
14:28:04 cfricke joins (~cfricke@user/cfricke)
14:29:20 forell joins (~forell@user/forell)
14:33:29 × lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
14:34:07 minoru_shiraeesh joins (~shiraeesh@46.42.239.171)
14:39:20 idgaen joins (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
14:44:40 × g00gler quits (uid125351@id-125351.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
14:46:07 acidjnk joins (~acidjnk@p200300d6e7072f91740e5f17d8628b4b.dip0.t-ipconnect.de)
14:47:53 kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be)
14:48:50 <kuribas> Is there a vector language or DSL that can do stream fusion?
14:49:40 <kuribas> But at runtime, not compile time.
14:50:12 bratwurst joins (~blaadsfa@S010610561191f5d6.lb.shawcable.net)
14:50:45 ripspin joins (~chatzilla@1.145.135.149)
14:54:02 Pentegarn joins (~pentegarn@78.130.245.253)
14:57:18 × bratwurst quits (~blaadsfa@S010610561191f5d6.lb.shawcable.net) (Ping timeout: 255 seconds)
15:01:00 × kenran quits (~user@user/kenran) (Quit: ERC 5.6-git (IRC client for GNU Emacs 30.0.50))
15:06:26 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:71fa:b3fe:b11e:9973) (Quit: WeeChat 2.8)
15:11:24 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
15:11:53 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
15:13:57 Inst parts (~Inst@120.244.192.250) (Leaving)
15:27:15 <[exa]> kuribas: well you can run the compiler with accelerate at runtime *dodges*
15:30:39 dispater joins (~dispater@mail.brprice.uk)
15:30:49 <kuribas> sure, just wondering something less heavyweight.
15:30:51 <kuribas> like llvm
15:31:11 orcus joins (~orcus@mail.brprice.uk)
15:33:10 <[exa]> the problem there is how small the runtime can be while still being able to maintain the abstraction of streams
15:35:08 <kuribas> Maybe I'll make my own stream DSL.
15:35:13 <kuribas> with limited stream functions.
15:35:16 <kuribas> like map, zip, ...
15:35:22 <kuribas> filter
15:36:19 <EvanR> bespoke stream transducers
15:36:24 <kuribas> fold
15:41:17 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
15:43:03 <[exa]> kuribas: I kindof guess that this might already exist in accelerate already, but I never saw that from inside
15:43:30 <[exa]> (hm we had a few folks working on accelerate here, right?)
15:44:40 <kuribas> I mean, make my own language, and compile to LLVM
15:44:47 <kuribas> A simple streaming language for time series.
15:47:24 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
15:50:52 stackdroid18 joins (14094@de1.hashbang.sh)
15:52:39 <[exa]> should work™
15:57:10 aaronv joins (~aaronv@user/aaronv)
16:07:44 × echoreply quits (~echoreply@45.32.163.16) (Ping timeout: 246 seconds)
16:08:07 echoreply joins (~echoreply@2001:19f0:9002:1f3b:5400:ff:fe6f:8b8d)
16:10:17 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
16:10:23 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
16:10:41 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 4.0.4)
16:11:20 bratwurst joins (~blaadsfa@2604:3d09:207f:f650:216:3eff:fe5a:a1f8)
16:12:45 × drlkf quits (~drlkf@192.184.163.34.bc.googleusercontent.com) (Quit: drlkf)
16:13:05 drlkf joins (~drlkf@192.184.163.34.bc.googleusercontent.com)
16:13:12 × qqq quits (~qqq@92.43.167.61) (Remote host closed the connection)
16:13:27 × b20n quits (sid115913@id-115913.uxbridge.irccloud.com) (Server closed connection)
16:13:36 b20n joins (sid115913@id-115913.uxbridge.irccloud.com)
16:15:00 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 250 seconds)
16:19:27 × dsal quits (sid13060@id-13060.lymington.irccloud.com) (Server closed connection)
16:19:42 dsal joins (sid13060@id-13060.lymington.irccloud.com)
16:21:29 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
16:21:32 × ezzieyguywuf quits (~Unknown@user/ezzieyguywuf) (Ping timeout: 248 seconds)
16:22:11 × bratwurst quits (~blaadsfa@2604:3d09:207f:f650:216:3eff:fe5a:a1f8) (Ping timeout: 246 seconds)
16:23:16 ezzieyguywuf joins (~Unknown@user/ezzieyguywuf)
16:26:18 Sgeo joins (~Sgeo@user/sgeo)
16:28:50 × kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
16:30:36 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:2985:35e0:893a:ad44) (Remote host closed the connection)
16:30:52 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.6)
16:30:53 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:b858:d331:34dd:9a83)
16:31:58 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Quit: Leaving)
16:32:09 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 246 seconds)
16:32:10 × kupi quits (uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
16:32:56 × haskellbridge quits (~haskellbr@069-135-003-034.biz.spectrum.com) (Remote host closed the connection)
16:34:15 × aaronv quits (~aaronv@user/aaronv) (Ping timeout: 245 seconds)
16:38:12 × ripspin quits (~chatzilla@1.145.135.149) (Remote host closed the connection)
16:38:16 machined1od joins (~machinedg@d198-53-218-113.abhsia.telus.net)
16:38:29 geekosaur joins (~geekosaur@xmonad/geekosaur)
16:38:38 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 246 seconds)
16:39:02 _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
16:39:27 waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
16:41:04 ripspin joins (~chatzilla@1.145.135.149)
16:41:15 haskellbridge joins (~haskellbr@069-135-003-034.biz.spectrum.com)
16:42:02 × Maxdamantus quits (~Maxdamant@user/maxdamantus) (Ping timeout: 246 seconds)
16:42:54 Maxdamantus joins (~Maxdamant@user/maxdamantus)
16:43:24 × machined1od quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 248 seconds)
16:43:27 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:b858:d331:34dd:9a83) (Remote host closed the connection)
16:44:18 × stackdroid18 quits (14094@de1.hashbang.sh) (Quit: hasta la vista... tchau!)
16:44:48 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
16:45:44 × ripspin quits (~chatzilla@1.145.135.149) (Remote host closed the connection)
16:46:21 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:b858:d331:34dd:9a83)
16:57:35 × chele quits (~chele@user/chele) (Remote host closed the connection)
17:01:01 pavonia joins (~user@user/siracusa)
17:01:08 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
17:02:21 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:b858:d331:34dd:9a83) (Remote host closed the connection)
17:06:53 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 246 seconds)
17:09:22 jmdaemon joins (~jmdaemon@user/jmdaemon)
17:10:35 × loonycyborg quits (loonycybor@wesnoth/developer/loonycyborg) (Server closed connection)
17:11:10 loonycyborg joins (loonycybor@wesnoth/developer/loonycyborg)
17:16:02 cael_ joins (~quassel@host109-148-244-226.range109-148.btcentralplus.com)
17:16:37 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 245 seconds)
17:17:30 kalj joins (~kalj@213-66-216-233-no600.tbcn.telia.com)
17:20:32 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
17:23:33 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
17:25:59 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 258 seconds)
17:27:13 kupi joins (uid212005@id-212005.hampstead.irccloud.com)
17:27:32 × Pentegarn quits (~pentegarn@78.130.245.253) (Read error: Connection reset by peer)
17:28:52 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:b858:d331:34dd:9a83)
17:35:03 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
17:46:27 × mcfrdy quits (~mcfrdy@user/mcfrdy) (Server closed connection)
17:46:47 mcfrdy joins (~mcfrdy@user/mcfrdy)
17:48:31 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
17:50:11 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
17:50:12 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
17:50:12 wroathe joins (~wroathe@user/wroathe)
17:51:56 danza joins (~francesco@151.43.84.5)
17:52:39 × stites quits (~stites@155.33.134.55) (Ping timeout: 246 seconds)
17:53:25 stites joins (~stites@2607:fb91:dc6:e420:4e89:c540:3dc4:b5df)
17:57:04 × kalj quits (~kalj@213-66-216-233-no600.tbcn.telia.com) (Quit: Client closed)
17:58:04 × danza quits (~francesco@151.43.84.5) (Ping timeout: 248 seconds)
18:00:01 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:b858:d331:34dd:9a83) (Remote host closed the connection)
18:05:00 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 248 seconds)
18:07:35 × qhong quits (~qhong@DN160vrd000d6kpg009l6c0000fj.stanford.edu) (Server closed connection)
18:07:51 qhong joins (~qhong@DN160vrd000d6kpg009l6c0000fj.stanford.edu)
18:21:49 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:b858:d331:34dd:9a83)
18:23:08 × waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 248 seconds)
18:25:11 waleee joins (~waleee@h-176-10-137-138.NA.cust.bahnhof.se)
18:29:21 phma_ joins (~phma@host-67-44-208-5.hnremote.net)
18:30:43 × phma quits (phma@2001:5b0:210f:788:531c:c4e2:b973:9806) (Read error: Connection reset by peer)
18:31:28 Pickchea joins (~private@user/pickchea)
18:32:01 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:b858:d331:34dd:9a83) (Remote host closed the connection)
18:32:49 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:b858:d331:34dd:9a83)
18:33:19 cptaffe- is now known as cptaffe
18:35:13 ehammarstrom joins (~ehammarst@81-225-22-156-no3540.tbcn.telia.com)
18:39:14 <haskellbridge> <m​auke> Like flux?
18:39:27 cptaffe_ joins (~cptaffe@99-47-99-155.lightspeed.ltrkar.sbcglobal.net)
18:39:56 Inst joins (~Inst@120.244.192.250)
18:40:05 cptaffe_ parts (~cptaffe@99-47-99-155.lightspeed.ltrkar.sbcglobal.net) (Textual IRC Client: www.textualapp.com)
18:40:07 <Inst> just dropped in because I want to say that now that I get parser combinators (a bit), they're a joy
18:40:25 × lbseale quits (~quassel@user/ep1ctetus) (Remote host closed the connection)
18:40:27 × parseval quits (sid239098@id-239098.helmsley.irccloud.com) (Server closed connection)
18:40:34 parseval joins (sid239098@id-239098.helmsley.irccloud.com)
18:41:40 lbseale joins (~quassel@user/ep1ctetus)
18:46:03 × minoru_shiraeesh quits (~shiraeesh@46.42.239.171) (Quit: Leaving)
18:46:20 ehammarstrom parts (~ehammarst@81-225-22-156-no3540.tbcn.telia.com) ()
18:47:17 <erisco> Inst, \o/
18:55:03 ft joins (~ft@p3e9bc1b6.dip0.t-ipconnect.de)
18:56:20 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
18:58:15 × stites quits (~stites@2607:fb91:dc6:e420:4e89:c540:3dc4:b5df) (Read error: Connection reset by peer)
18:58:34 stites joins (~stites@130.44.147.204)
19:00:59 × Inst quits (~Inst@120.244.192.250) (Ping timeout: 246 seconds)
19:08:15 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
19:13:29 Tuplanolla joins (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi)
19:15:24 cptaffe- joins (~ZNC@99-47-99-155.lightspeed.ltrkar.sbcglobal.net)
19:15:48 × cptaffe quits (~cptaffe@2600:1700:f08:111f::18e7) (Quit: ZNC 1.8.2 - https://znc.in)
19:16:01 cptaffe joins (~ZNC@2600:1700:f08:111f::18e7)
19:16:38 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:b858:d331:34dd:9a83) (Remote host closed the connection)
19:16:58 jmdaemon joins (~jmdaemon@user/jmdaemon)
19:18:25 kalj joins (~kalj@213-66-216-233-no600.tbcn.telia.com)
19:19:37 cptaffe- is now known as cpt\macbook
19:21:11 aaronv joins (~aaronv@user/aaronv)
19:21:28 × cptaffe quits (~ZNC@2600:1700:f08:111f::18e7) (Quit: ZNC 1.8.2 - https://znc.in)
19:21:28 × cpt\macbook quits (~ZNC@99-47-99-155.lightspeed.ltrkar.sbcglobal.net) (Quit: ZNC 1.8.2 - https://znc.in)
19:21:48 cptaffe joins (~ZNC@2600:1700:f08:111f::18e7)
19:22:19 cptaffe- joins (~ZNC@2600:1700:f08:111f::18e7)
19:22:19 cptaffe- is now known as cpt\macbook
19:23:18 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 246 seconds)
19:24:32 cptaffe is now known as cpt\iphone
19:25:01 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
19:28:17 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
19:28:20 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
19:30:30 jmdaemon joins (~jmdaemon@user/jmdaemon)
19:35:24 × idgaen quits (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.0.2)
19:47:27 Inst joins (~Inst@120.244.192.250)
19:48:02 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:b858:d331:34dd:9a83)
19:48:59 × michalz quits (~michalz@185.246.207.200) (Remote host closed the connection)
19:49:54 falafel joins (~falafel@62.175.113.194.dyn.user.ono.com)
19:51:05 Inst parts (~Inst@120.244.192.250) ()
19:52:26 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:b858:d331:34dd:9a83) (Ping timeout: 246 seconds)
19:53:38 bratwurst joins (~blaadsfa@2604:3d09:207f:f650:216:3eff:fe5a:a1f8)
19:56:31 × kalj quits (~kalj@213-66-216-233-no600.tbcn.telia.com) (Quit: Client closed)
20:01:34 dsrt^ joins (~cd@c-66-56-7-24.hsd1.ga.comcast.net)
20:06:55 lortabac joins (~lortabac@2a01:e0a:541:b8f0:aa3e:67b4:5331:5627)
20:08:08 × stites quits (~stites@130.44.147.204) (Ping timeout: 258 seconds)
20:08:38 × bratwurst quits (~blaadsfa@2604:3d09:207f:f650:216:3eff:fe5a:a1f8) (Ping timeout: 246 seconds)
20:11:41 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
20:19:22 × cael_ quits (~quassel@host109-148-244-226.range109-148.btcentralplus.com) (Ping timeout: 258 seconds)
20:19:43 cael_ joins (~quassel@host109-148-244-226.range109-148.btcentralplus.com)
20:20:38 cafkafk_ joins (~cafkafk@fsf/member/cafkafk)
20:23:27 × cafkafk quits (~cafkafk@fsf/member/cafkafk) (Ping timeout: 246 seconds)
20:26:16 × vglfr quits (~vglfr@188.239.201.89) (Ping timeout: 255 seconds)
20:28:20 bratwurst joins (~blaadsfa@2604:3d09:207f:f650:216:3eff:fe5a:a1f8)
20:29:57 × jackneill__ quits (~Jackneill@20014C4E1E101A00A9EB556018578BC5.dsl.pool.telekom.hu) (Ping timeout: 245 seconds)
20:36:04 vglfr joins (~vglfr@cli-188-239-201-89.bbn.slav.dn.ua)
20:37:27 × snek quits (sid280155@id-280155.lymington.irccloud.com) (Server closed connection)
20:37:37 snek joins (sid280155@id-280155.lymington.irccloud.com)
20:37:46 × Pixi quits (~Pixi@user/pixi) (Quit: Leaving)
20:38:36 × bratwurst quits (~blaadsfa@2604:3d09:207f:f650:216:3eff:fe5a:a1f8) (Ping timeout: 248 seconds)
20:42:10 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:b858:d331:34dd:9a83)
20:43:53 × falafel quits (~falafel@62.175.113.194.dyn.user.ono.com) (Ping timeout: 246 seconds)
20:46:28 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
20:47:59 sinbad joins (~sinbad@user/sinbad)
20:50:29 × cael_ quits (~quassel@host109-148-244-226.range109-148.btcentralplus.com) (Quit: No Ping reply in 180 seconds.)
20:52:28 cael_ joins (~quassel@host109-148-244-226.range109-148.btcentralplus.com)
20:56:49 × acidjnk quits (~acidjnk@p200300d6e7072f91740e5f17d8628b4b.dip0.t-ipconnect.de) (Ping timeout: 258 seconds)
20:58:47 phma_ is now known as phma
21:05:38 × ddellacosta quits (~ddellacos@ool-44c738de.dyn.optonline.net) (Ping timeout: 258 seconds)
21:06:19 ddellacosta joins (~ddellacos@ool-44c738de.dyn.optonline.net)
21:06:57 emmanuelux joins (~emmanuelu@user/emmanuelux)
21:07:04 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
21:11:52 Pixi joins (~Pixi@user/pixi)
21:12:21 × Pixi quits (~Pixi@user/pixi) (Read error: Connection reset by peer)
21:12:38 Pixi joins (~Pixi@user/pixi)
21:13:31 bratwurst joins (~blaadsfa@2604:3d09:207f:f650:216:3eff:fe5a:a1f8)
21:22:19 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
21:23:00 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:aa3e:67b4:5331:5627) (Ping timeout: 246 seconds)
21:23:32 × bratwurst quits (~blaadsfa@2604:3d09:207f:f650:216:3eff:fe5a:a1f8) (Ping timeout: 246 seconds)
21:27:25 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 250 seconds)
21:35:53 × Tuplanolla quits (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.)
21:36:49 stites joins (~stites@2607:fb90:ad62:807c:d15b:ce72:ad88:3242)
21:37:53 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
21:41:31 bratwurst joins (~blaadsfa@2604:3d09:207f:f650:216:3eff:fe5a:a1f8)
21:48:36 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
21:48:51 × azimut_ quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 246 seconds)
21:49:01 × son0p quits (~ff@186.121.39.74) (Quit: Bye)
21:51:38 × bratwurst quits (~blaadsfa@2604:3d09:207f:f650:216:3eff:fe5a:a1f8) (Ping timeout: 258 seconds)
21:53:10 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 258 seconds)
21:53:52 × immae quits (~immae@2a01:4f8:141:53e7::) (Quit: WeeChat 3.3)
21:56:24 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
21:56:34 bratwurst joins (~blaadsfa@2604:3d09:207f:f650:216:3eff:fe5a:a1f8)
22:00:24 × fendor quits (~fendor@2a02:8388:1640:be00:c785:45ab:c70:9d3f) (Remote host closed the connection)
22:01:16 son0p joins (~ff@186.121.39.74)
22:05:14 immae joins (~immae@2a01:4f8:141:53e7::)
22:05:14 × EvanR quits (~EvanR@user/evanr) (Quit: Leaving)
22:06:35 × bratwurst quits (~blaadsfa@2604:3d09:207f:f650:216:3eff:fe5a:a1f8) (Ping timeout: 258 seconds)
22:09:35 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
22:11:47 g00gler joins (uid125351@id-125351.uxbridge.irccloud.com)
22:24:36 × bjobjo quits (~bjobjo@user/bjobjo) (Ping timeout: 258 seconds)
22:24:58 bratwurst joins (~blaadsfa@2604:3d09:207f:f650:216:3eff:fe5a:a1f8)
22:31:22 bjobjo joins (~bjobjo@user/bjobjo)
22:32:12 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
22:35:48 falafel joins (~falafel@62.175.113.194.dyn.user.ono.com)
22:37:26 × coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
22:40:18 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
22:44:13 Pickchea joins (~private@user/pickchea)
22:45:47 JordiGH joins (~jordi@user/jordigh)
22:46:12 <JordiGH> Anyone know the history of why records got called "records"? (say, why not a word like "structs"?)
22:46:18 <JordiGH> Did it come from ML?
22:46:25 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
22:50:48 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
22:51:34 × oo_miguel quits (~Thunderbi@78-11-179-96.static.ip.netia.com.pl) (Ping timeout: 244 seconds)
22:52:10 × kupi quits (uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
22:52:41 Guest|3 joins (~Guest|3@93-136-208-249.adsl.net.t-com.hr)
22:52:54 <Guest|3> Hello, anyone here?
22:53:18 <institor> nope
22:53:55 <Guest|3> I need to make light and shadows simulation in haskell so i have a few questions
22:54:53 × Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
22:55:39 <Guest|3> https://pastebin.com/raw/6DS18y5g
23:01:27 × rune_ quits (sid21167@id-21167.ilkley.irccloud.com) (Server closed connection)
23:01:34 rune_ joins (sid21167@id-21167.ilkley.irccloud.com)
23:02:09 <int-e> phew, it's a cellular automaton, not a raytracer
23:02:23 <int-e> (or is it)
23:03:06 <Guest|3> i would prefer not to use raytracing but i dont see a way around it
23:05:02 <int-e> Yeah I didn't read enough of the code :P
23:06:12 <int-e> But now I'm confused about how light is supposed to spread. So I'll ask whether you've considered using Data.Array or Data.Vector instead? replacing indexed elements in a list of lists is awkward.
23:08:23 oo_miguel joins (~Thunderbi@78-11-179-96.static.ip.netia.com.pl)
23:09:04 <Guest|3> https://pastebin.com/raw/J2sQdicP
23:10:10 <Guest|3> https://pastebin.com/XF0XCLwg
23:10:11 × falafel quits (~falafel@62.175.113.194.dyn.user.ono.com) (Ping timeout: 246 seconds)
23:10:27 × edmundnoble_ quits (sid229620@id-229620.helmsley.irccloud.com) (Server closed connection)
23:10:36 edmundnoble_ joins (sid229620@id-229620.helmsley.irccloud.com)
23:12:14 <int-e> So it's a limited distance flooding? A bit like this? http://paste.debian.net/1291314/
23:13:47 <Guest|3> Yes, the provided code simulates a form of limited distance flooding for determining which points are illuminated by a light source and which are in shadow due to obstacles. It uses a ray-casting approach to check if a point on the grid is visible from the light source. If a ray from the light source to a point intersects with any obstacle before
23:13:48 <Guest|3> reaching that point, the point is considered to be in shadow.
23:14:11 <int-e> Which is a fairly standard breadth first search task unless the distance becomes very big. (Going breadth first allows you to enumerate each of the "illuminated" cells only once, and not care about the same cell arising from different paths)
23:14:31 <Guest|3> It doesn't take into account advanced lighting effects like reflections, refractions, or global illumination, but it provides a basic understanding of how light interacts with obstacles within a certain distance of the light source.
23:15:17 wroathe joins (~wroathe@user/wroathe)
23:15:32 <int-e> It's not like rays at all, it's more like pouring sand into a maze and stop when it reaches a certain height. (sand tends to have a linear falloff that's the same in all directions)
23:15:52 <institor> what a great analogy
23:16:37 <Guest|3> This approach is conceptually similar to BFS, as you correctly pointed out, and it doesn't involve actual rays in the traditional sense.
23:16:38 <Guest|3> In this sand-filling approach, the illumination falls off linearly as you move away from the light source, and it's consistent in all directions, which is a simplified but effective way to model basic lighting and shadows within a bounded area.
23:16:38 <Guest|3> Thank you for clarifying, and I appreciate your correc
23:16:53 <Guest|3> correction
23:20:12 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
23:20:35 <Guest|3> Do you have any useful information i can use?
23:20:59 <int-e> Note that https://pastebin.com/raw/6DS18y5g is a depth first search... so while updating the grid as soon as you enter a cell avoids visiting the cell more than once during the search, you'll often arrive at a cell for the first time by a detour (go right, then up, then left, rather than going up directly) so the path lengths are not what you want.
23:21:28 <int-e> I have not tried to understand https://pastebin.com/raw/J2sQdicP
23:21:43 × mysl quits (~mysl@user/mysl) (Ping timeout: 240 seconds)
23:22:07 <Guest|3> Yes i made few versions. Can you check 2nd one?
23:24:05 <Guest|3> Code 1 - Grid-based Light Simulation
23:24:06 <Guest|3> Functionality:
23:24:06 <Guest|3> This code simulates light spreading from a light source in a grid-based environment with obstacles (stones).
23:24:07 <Guest|3> It uses a 2D grid represented as a list of lists of characters (Grid) to model the environment.
23:24:07 <Guest|3> Obstacles are randomly placed in the grid, and the light spreads through the grid, marking illuminated areas with '*' characters.
23:24:08 <Guest|3> The grid is printed to the console to visualize the illuminated areas.
23:24:08 <Guest|3> Key Components:
23:24:09 <Guest|3> Grid data type: Represents the 2D grid.
23:24:09 <Guest|3> addObstacles function: Adds obstacles to the grid.
23:24:10 <Guest|3> replaceElement function: Replaces an element in the grid at a specified position.
23:24:10 <Guest|3> spreadLight function: Simulates the spreading of light from the source.
23:24:11 <Guest|3> main function: Orchestrates the entire simulation.
23:24:11 <Guest|3> Code 2 - Ray-based Light Simulation
23:24:12 <Guest|3> Functionality:
23:24:12 <Guest|3> This code simulates light propagation from a light source to obstacles using rays and checks for intersections with obstacles.
23:24:13 <Guest|3> It uses a grid of points (grid) and calculates whether each point is illuminated by the given light source.
23:24:13 <Guest|3> The illuminated areas are represented with spaces (' ') in the output.
23:24:14 <Guest|3> Key Components:
23:24:55 arahael joins (~arahael@119-18-1-27.771201.syd.nbn.aussiebb.net)
23:25:47 <Guest|3> the comparison provided is generated by an AI based on the code snippets provided
23:26:01 <int-e> So you're actually intersecting lines and circles there
23:26:37 <Guest|3> yes
23:27:05 × cael_ quits (~quassel@host109-148-244-226.range109-148.btcentralplus.com) (Ping timeout: 258 seconds)
23:27:27 <int-e> I'm not going to check the math but it's not enough for the ray to intersect the circle... you also have to check whether you've reached the circle.
23:27:29 mysl joins (~mysl@user/mysl)
23:27:51 × xff0x quits (~xff0x@2405:6580:b080:900:cb93:4506:eebb:2c0b) (Ping timeout: 258 seconds)
23:28:25 <Guest|3> Yes that check is essential.
23:28:47 <Guest|3> https://pastebin.com/XF0XCLwg ive added some comments here
23:29:13 <int-e> oh it's up there in illuminate... hmm.
23:29:43 <Guest|3> indeed
23:29:56 xff0x joins (~xff0x@178.255.149.135)
23:33:01 × arahael quits (~arahael@119-18-1-27.771201.syd.nbn.aussiebb.net) (Ping timeout: 255 seconds)
23:34:05 × erisco quits (~erisco@d24-141-66-165.home.cgocable.net) (Read error: Connection reset by peer)
23:34:27 erisco joins (~erisco@d24-141-66-165.home.cgocable.net)
23:34:28 <Guest|3> So what do you think
23:34:50 × Lears quits (~Leary]@user/Leary/x-0910699) (Remote host closed the connection)
23:34:54 <int-e> https://en.wikipedia.org/wiki/File:Power_point_simple.svg ... note how the tangent is shorter than the distance to the center?
23:35:04 [Leary] joins (~Leary]@user/Leary/x-0910699)
23:35:07 <int-e> and how do you know whether the circle is in front of you or behind you?
23:35:39 <int-e> I won't work out any formulas for this.
23:35:47 × mysl quits (~mysl@user/mysl) (Ping timeout: 245 seconds)
23:36:14 <int-e> Note also that the ray could potentially start inside an obstacle, or that the target could be inside an obstacle.
23:37:35 × kaskal quits (~kaskal@213-147-167-98.nat.highway.webapn.at) (Server closed connection)
23:38:18 <Guest|3> The function isIntersection checks whether the ray intersects with an obstacle
23:39:19 <int-e> I rather suspect it checks the whole line, not just a ray.
23:39:57 × xff0x quits (~xff0x@178.255.149.135) (Ping timeout: 245 seconds)
23:40:44 <Guest|3>  The provided code indeed checks the entire line segment between the light source and the target point, rather than just a single ray.
23:40:45 <Guest|3> In this code, the isIntersection function checks if the line segment between the light source and the target point intersects with an obstacle. It considers the entire line segment, not just a single ray, when determining if an intersection occurs.
23:41:59 kaskal joins (~kaskal@213-147-167-98.nat.highway.webapn.at)
23:42:10 xff0x joins (~xff0x@2405:6580:b080:900:cb93:4506:eebb:2c0b)
23:46:18 mysl joins (~mysl@user/mysl)
23:47:00 <int-e> it doesn't check a line segment, it checks the whole line (extended indefinitely at both ends)
23:52:32 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 244 seconds)
23:53:09 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 258 seconds)
23:54:04 <Guest|3> Do i switch to python cuz of simplicity?
23:54:06 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
23:57:33 <int-e> Sure if you're more comfortable with that... the problem in this particular program seems to be figuring out the formulas; Haskell won't help you with that any more than any other language really.

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