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> | <jean-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> | <jean-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> | <jean-paul.> But I can see that it never returns a ByteString with a NUL byte in it |
| 12:20:12 | <haskellbridge> | <jean-paul.> (well "never" ~= "20 different inputs") |
| 12:22:24 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:71fa:b3fe:b11e:9973) |
| 12:23:41 | <haskellbridge> | <jean-paul.> Oh blargh |
| 12:24:25 | <haskellbridge> | <jean-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> | <jean-paul.> So the bytes probably come out fine and then are destroyed by some text decoding |
| 12:26:16 | <haskellbridge> | <jean-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> | <Inst> 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> | <Inst> 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> | <Inst> on megaparsec |
| 13:27:39 | → | ystael joins (~ystael@user/ystael) |
| 13:27:53 | <haskellbridge> | <Inst> right now, I skipped ahead and ponies can now call cabal in the selected directory |
| 13:29:12 | <haskellbridge> | <Inst> 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> | <jean-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> | <jean-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> | <jean-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> | <jean-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> | <jean-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> | <mauke> 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.