2022/10/20

2022-10-20 00:00:05 +0200 <dminuoso> (Well in fact any modification to that ptr will break referential transparency, even inside the continuation.
2022-10-20 00:00:13 +0200 <moonsheep> ah well I don't mean to do that
2022-10-20 00:00:15 +0200 <dminuoso> So if you want to modify it, memcpy it first into a fresh buffer
2022-10-20 00:00:28 +0200 <dminuoso> But if you just want to reinterpret and read from it, its all good.
2022-10-20 00:00:41 +0200 <dminuoso> Even if you extract the ptr from the continuation
2022-10-20 00:01:33 +0200 <moonsheep> right
2022-10-20 00:02:05 +0200 <moonsheep> since everything is immutable in haskell, the second I return an polymorphic type from the function it's basically read-only right?
2022-10-20 00:02:22 +0200 <dminuoso> No?
2022-10-20 00:02:31 +0200Feuermagier(~Feuermagi@user/feuermagier) (Quit: Leaving)
2022-10-20 00:02:38 +0200 <dminuoso> Im a bit unsure what makes you think there's any relationship between polymorphic types and read-only.
2022-10-20 00:03:06 +0200Lycurgus(~juan@user/Lycurgus) (Quit: Exeunt juan@acm.org)
2022-10-20 00:03:18 +0200 <geekosaur> ByteString assumes it's safe to modify stuff directly because it knows when there's only one reference to it. you're in a position to break that
2022-10-20 00:03:22 +0200 <geekosaur> (iirc)
2022-10-20 00:03:42 +0200 <moonsheep> dminuoso: well it doesn't really matter that it's polymorphic
2022-10-20 00:03:49 +0200 <geekosaur> just casting to something else does not change this
2022-10-20 00:03:49 +0200 <moonsheep> any value in haskell is immutable right?
2022-10-20 00:03:55 +0200 <dminuoso> moonsheep: sort of..
2022-10-20 00:04:34 +0200 <dminuoso> moonsheep: Thats precisely what Im getting at. unsafeUseAsCStringLen lets you violate that mutability and break referential transparency in strange ways. That's why there's an `unsafe` tagged to its name.
2022-10-20 00:04:59 +0200 <dminuoso> But in the absence of unsafe primitives *values* themselves are immutable
2022-10-20 00:05:07 +0200 <moonsheep> right, but if I don't mutate it within the function, then it's fine, no?
2022-10-20 00:05:21 +0200 <moonsheep> and since I don't plan to mutate it I should be fine, is that correct?
2022-10-20 00:05:24 +0200 <dminuoso> Well, and as long as you dont do any memory access errors. :)
2022-10-20 00:05:26 +0200 <dminuoso> But yeah
2022-10-20 00:05:33 +0200 <dminuoso> So if you do something like:
2022-10-20 00:05:35 +0200 <moonsheep> right, all I wanted to hear :)
2022-10-20 00:06:06 +0200 <geekosaur> doesn't ghc optimize to a mutation when it knows there's only one copy, which this would break?
2022-10-20 00:06:17 +0200 <dminuoso> unsafeUseAsCStringLen (\(ptr, len) -> peek ((castPtr ptr) :: Ptr Double))
2022-10-20 00:06:29 +0200 <moonsheep> oh thanks
2022-10-20 00:06:31 +0200 <dminuoso> This is in principle fine (as long as you dont do out-of-bound reads for example
2022-10-20 00:06:44 +0200 <dminuoso> geekosaur: Clean does that.
2022-10-20 00:07:20 +0200Topsi(~Topsi@dyndsl-095-033-094-034.ewe-ip-backbone.de) (Read error: Connection reset by peer)
2022-10-20 00:08:00 +0200mikoto-chan(~mikoto-ch@193.185.223.3) (Ping timeout: 252 seconds)
2022-10-20 00:08:03 +0200 <dminuoso> Never heard of GHC doing similar mutation-instead-of-copy
2022-10-20 00:08:23 +0200 <geekosaur> thought that was list fusion
2022-10-20 00:08:38 +0200 <geekosaur> not just not creating a new list but also not creating new list items
2022-10-20 00:08:46 +0200 <dminuoso> Do you mean the build/foldr RULE?
2022-10-20 00:08:46 +0200 <geekosaur> just mutating in place
2022-10-20 00:09:02 +0200 <geekosaur> one's the rule, the other's the runtime iirc
2022-10-20 00:09:16 +0200 <dminuoso> Cool, first time Im hearding of this
2022-10-20 00:09:19 +0200 <dminuoso> *hearing
2022-10-20 00:09:32 +0200 <dminuoso> Sorry, my chair position is slightly off, which causes me to mispress keys constantly
2022-10-20 00:09:36 +0200moonsheep(~moonsheep@user/moonsheep) ()
2022-10-20 00:09:56 +0200 <geekosaur> since the runtime can tell there's only one reference it can mutate it. otherwise you'd still be creating new values even if you're not adding them to new lists. at least that's my understanding
2022-10-20 00:10:25 +0200 <geekosaur> there are limits to it but it exists, as I understand it
2022-10-20 00:10:34 +0200 <dminuoso> If you find details, let me know
2022-10-20 00:10:41 +0200 <dminuoso> Im very curious
2022-10-20 00:10:53 +0200 <geekosaur> I think Clean has fewer limits because it can do a better job of recognizing when only one reference to a value exists
2022-10-20 00:13:31 +0200 <geekosaur> mm, I'm poking around and it certainly seems to be false in the general case 😞
2022-10-20 00:13:32 +0200caryhartline(~caryhartl@2600:1700:2d0:8d30:5cd5:afa2:55e9:2fce) (Quit: caryhartline)
2022-10-20 00:14:06 +0200zeenk(~zeenk@2a02:2f04:a105:5d00:c862:f190:2ea:d494)
2022-10-20 00:16:03 +0200 <geekosaur> okay, apparently it's not ghc itself but list/stream fusion
2022-10-20 00:16:13 +0200 <geekosaur> so it would be related to build/foldr
2022-10-20 00:16:32 +0200michalz(~michalz@185.246.207.200) (Remote host closed the connection)
2022-10-20 00:18:46 +0200 <dminuoso> davean: By the way, Im beginning to understand that what Im asking simply does not exist. :(
2022-10-20 00:22:27 +0200 <dminuoso> And there's some really disturbing things in ghc-prim
2022-10-20 00:29:35 +0200jmdaemon(~jmdaemon@user/jmdaemon)
2022-10-20 00:31:53 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-10-20 00:34:06 +0200 <davean> dminuoso: well, the idea of actually sized prims is recent
2022-10-20 00:34:52 +0200 <davean> Curious what disturbes you
2022-10-20 00:35:41 +0200 <dminuoso> Is there no way to stuff a Word64# into a Word#? Or can I just unsafeCoerce# this?
2022-10-20 00:36:08 +0200 <EvanR> squint, what if Word# is too small
2022-10-20 00:36:27 +0200 <hpc> what if Word# is too large, even
2022-10-20 00:37:05 +0200 <EvanR> you don't want it jumbling around when I'm driving
2022-10-20 00:37:19 +0200 <hpc> is there a way to limit something to building on 64-bit only?
2022-10-20 00:37:26 +0200 <davean> dminuoso: In earlier version before there was sizing, you want extendWord16#
2022-10-20 00:37:28 +0200 <davean> etc
2022-10-20 00:37:30 +0200 <dminuoso> EvanR: Would you even have a Word64 type on a 32-bit machine?
2022-10-20 00:37:41 +0200 <davean> (and narrowWord16#)
2022-10-20 00:37:44 +0200 <EvanR> interesting point
2022-10-20 00:37:46 +0200 <davean> but we changed to new stuff
2022-10-20 00:37:55 +0200 <dminuoso> davean: Yeah, but these didnt exist for Word64#
2022-10-20 00:37:59 +0200 <davean> dminuoso: yes, you would have a Word64 type on a 32 bit machine
2022-10-20 00:38:20 +0200 <dminuoso> davean: Thats hard to believe, because all the sized types were just wrappers on native words.
2022-10-20 00:38:25 +0200 <dminuoso> This just got changed in 9.2
2022-10-20 00:38:27 +0200 <EvanR> er I took that to mean Word64#
2022-10-20 00:41:31 +0200 <dminuoso> davean: either way, there's just no primops for extending or narrowing from/into 64 bit types in base-4.15.0.0 or earlier.
2022-10-20 00:41:36 +0200 <dminuoso> I feel like I must be missing something
2022-10-20 00:41:58 +0200 <dminuoso> Should check what a fromIntegral from Word to Word64 really does
2022-10-20 00:45:50 +0200 <dminuoso> do_word = \ (x_a1z8 :: Word) -> case x_a1z8 of { W# x#_a1za -> GHC.Word.W64# x#_a1za }
2022-10-20 00:46:08 +0200 <dminuoso> That suspicously looks unsafeCoerce#able
2022-10-20 00:46:29 +0200 <dminuoso> What would this do on a 32 bit system though?
2022-10-20 00:46:49 +0200 <EvanR> I ask everyone on the plane if anyone has a 32 bit computer
2022-10-20 00:47:57 +0200 <dminuoso> Also curious, why is there no type annotation for x#_a1za?
2022-10-20 00:48:04 +0200 <dminuoso> Isnt everything explicitly typed in core?
2022-10-20 00:48:58 +0200 <EvanR> would a type sig be redundant because W# is monomorphic constructor
2022-10-20 00:49:42 +0200 <dminuoso> I wonder whether perhaps theres some excemption about primitive types
2022-10-20 00:51:47 +0200 <dminuoso> https://gitlab.haskell.org/ghc/ghc/-/issues/17377
2022-10-20 00:53:47 +0200gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2022-10-20 00:57:53 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 268 seconds)
2022-10-20 00:57:55 +0200thegeekinside(~thegeekin@189.180.97.156) (Ping timeout: 268 seconds)
2022-10-20 00:58:43 +0200 <dminuoso> Ive been helped in another place.
2022-10-20 00:59:32 +0200 <dminuoso> So on 64 bit systems you can just unsafeCoerce#, and for 32 bit systems there's GHC.IntWord64 which provides an FFI call wordToWord64#
2022-10-20 00:59:50 +0200axeman(~quassel@2a02:8109:a380:78:5151:14f6:9d87:4a52)
2022-10-20 01:03:44 +0200beteigeuze(~Thunderbi@a79-169-109-107.cpe.netcabo.pt)
2022-10-20 01:06:20 +0200jonathanx__(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
2022-10-20 01:06:47 +0200jonathanx_(~jonathan@178.174.176.109) (Read error: Connection reset by peer)
2022-10-20 01:09:05 +0200rockystone(~rocky@user/rockymarine)
2022-10-20 01:09:57 +0200vglfr(~vglfr@145.224.100.100) (Ping timeout: 252 seconds)
2022-10-20 01:13:03 +0200Tuplanolla(~Tuplanoll@91-159-69-245.elisa-laajakaista.fi) (Quit: Leaving.)
2022-10-20 01:13:42 +0200talismanick(~talismani@96.71.204.25)
2022-10-20 01:14:12 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz
)
2022-10-20 01:26:20 +0200talismanick(~talismani@96.71.204.25) (Remote host closed the connection)
2022-10-20 01:26:41 +0200talismanick(~talismani@96.71.204.25)
2022-10-20 01:30:44 +0200nate1(~nate@98.45.169.16)
2022-10-20 01:35:12 +0200nate1(~nate@98.45.169.16) (Ping timeout: 260 seconds)
2022-10-20 01:39:37 +0200 <EvanR> is there a lightweight functional pearl for conjuring a supply of unique names in an algorithm
2022-10-20 01:40:50 +0200 <EvanR> in one paper there's this whole thing with an impure generator going on but really
2022-10-20 01:40:54 +0200acidjnk_new(~acidjnk@p200300d6e7137a877551a7e8fd85f50e.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2022-10-20 01:43:51 +0200mmhat(~mmh@p200300f1c73377eeee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.7)
2022-10-20 01:44:11 +0200axeman(~quassel@2a02:8109:a380:78:5151:14f6:9d87:4a52) (Ping timeout: 272 seconds)
2022-10-20 01:45:10 +0200lisbeths(uid135845@id-135845.lymington.irccloud.com)
2022-10-20 01:45:39 +0200zeenk(~zeenk@2a02:2f04:a105:5d00:c862:f190:2ea:d494) (Quit: Konversation terminated!)
2022-10-20 01:51:09 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 272 seconds)
2022-10-20 01:52:23 +0200 <geekosaur> what else were you expecting? if they need to be unique then you need to keep a seed somewhere
2022-10-20 01:53:02 +0200 <dminuoso> EvanR: A functional pearl? Like `s -> (s, t)`?
2022-10-20 01:54:31 +0200 <geekosaur> well, yes, there is State, but if if that were enough I'd assume EvanR wouldn't be asking
2022-10-20 01:54:37 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 268 seconds)
2022-10-20 01:55:01 +0200 <dminuoso> Im not entirely sure what they are asking for, then.
2022-10-20 01:55:14 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 268 seconds)
2022-10-20 01:57:22 +0200 <jackdk> I would probably newtype over state in a way that doesn't expose the standard operations and only allows a "next gensym".
2022-10-20 01:57:45 +0200rockystone(~rocky@user/rockymarine)
2022-10-20 01:58:43 +0200 <EvanR> yes "gensym" is part of the lore on doing this without State monads
2022-10-20 01:59:22 +0200 <EvanR> why would you want to not use State monads? I guess at that time in history no one had heard of a State monad. Today, it's just a pain in the ass to shoe horn into pure code
2022-10-20 01:59:46 +0200 <dminuoso> the idea of a state monad is as old as lambda calculus.
2022-10-20 01:59:59 +0200 <dminuoso> you just didnt call it monad back then.
2022-10-20 02:00:05 +0200 <EvanR> really, did leibniz come up with it? xD
2022-10-20 02:01:02 +0200 <dminuoso> Im just saying that the idea of encoding state as a function producing a tuple is very old
2022-10-20 02:01:21 +0200 <EvanR> well the question wasn't how to keep state but how to get a supply of unique names
2022-10-20 02:01:54 +0200 <EvanR> there's the splittable generator stuff, but it seems a bit involved
2022-10-20 02:02:22 +0200 <dminuoso> Are you implementing a language?
2022-10-20 02:03:52 +0200Kaiepi(~Kaiepi@108.175.84.104) (Ping timeout: 268 seconds)
2022-10-20 02:03:52 +0200 <dminuoso> At any rate, a simple state based name generator can be as simple as just keeping a counter in your state, and then using that number in your name
2022-10-20 02:04:13 +0200 <dminuoso> So if that isnt enough, you arent telling us enough.
2022-10-20 02:04:30 +0200 <geekosaur> which is all `gensym` does except it uses the equivalent of unsafePerformIO on a counter in an IORef
2022-10-20 02:04:34 +0200 <EvanR> a simple state based state is simple by keeping state in the state and then you have state xD
2022-10-20 02:04:58 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-10-20 02:04:58 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-10-20 02:04:58 +0200wroathe(~wroathe@user/wroathe)
2022-10-20 02:05:01 +0200wroathe_(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-10-20 02:05:05 +0200 <EvanR> yeah that's gensym
2022-10-20 02:05:11 +0200 <dminuoso> Im highly unsure what you are asking for. You want a pure stateful name generation without unsafePerformIO, and you dont want state..?
2022-10-20 02:05:21 +0200 <EvanR> I never said anything about state lol
2022-10-20 02:05:23 +0200 <dminuoso> Okay.
2022-10-20 02:05:46 +0200 <geekosaur> I will ask this more explicitly than earlier, then: what part of `unique` does not imply state to you?
2022-10-20 02:06:12 +0200 <EvanR> well, is a list of unique values "state" ?
2022-10-20 02:06:16 +0200 <geekosaur> or even more explicitly: how does it ensure uniqueness without state?
2022-10-20 02:06:23 +0200 <geekosaur> yes
2022-10-20 02:06:28 +0200 <EvanR> ._.
2022-10-20 02:06:29 +0200 <dminuoso> EvanR: sure. knowing what values have been picked so far is state.
2022-10-20 02:06:31 +0200 <EvanR> where am I
2022-10-20 02:06:41 +0200 <dminuoso> EvanR: which is why the simplest such implementation is just a counter.
2022-10-20 02:06:46 +0200 <geekosaur> or what values to pick next, which is just state in the other direction
2022-10-20 02:06:48 +0200 <dminuoso> where the counter denotes all the numbers that have, already, been used for a name
2022-10-20 02:07:46 +0200mtjm(~mutantmel@2604:a880:2:d0::208b:d001) (Remote host closed the connection)
2022-10-20 02:08:58 +0200mtjm(~mutantmel@2604:a880:2:d0::208b:d001)
2022-10-20 02:10:04 +0200 <EvanR> if you have an infinite list of unique values, i.e. the supply, then you can split it by taking the evens and the odds to get two new supplies. Which might be the answer. In one paper they throw something equivalent to this under the bus because of performance
2022-10-20 02:10:42 +0200lyxia(~lyxia@poisson.chat) (Quit: WeeChat 3.5)
2022-10-20 02:10:44 +0200 <EvanR> but might be the answer
2022-10-20 02:11:55 +0200wonko(~wjc@2a0e:1c80:2:0:45:15:19:130) (Ping timeout: 246 seconds)
2022-10-20 02:12:30 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 268 seconds)
2022-10-20 02:13:01 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-20 02:13:08 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-10-20 02:14:23 +0200 <dminuoso> Generating a list of numbers is probably easier and scales better
2022-10-20 02:14:38 +0200wroathe(~wroathe@user/wroathe) (Killed (NickServ (GHOST command used by wroathe_!~wroathe@206-55-188-8.fttp.usinternet.com)))
2022-10-20 02:14:42 +0200wroathe_wroathe
2022-10-20 02:14:55 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-10-20 02:14:55 +0200wroathe(~wroathe@user/wroathe)
2022-10-20 02:15:31 +0200 <dminuoso> otherwise you will have a nasty quadric asymptotic on the depth of your name generation.
2022-10-20 02:17:16 +0200 <EvanR> quadratic? how do you figure
2022-10-20 02:17:18 +0200 <dminuoso> which is also splittable with some basic encoding, where you might say prepending [n, 0] is for local names, and [x] where x is non-null for splitting
2022-10-20 02:17:26 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 252 seconds)
2022-10-20 02:17:38 +0200 <talismanick> How can I shorten `\x -> let _ = x :: MyType in foo . bar $ x` when calling QuickCheck from within HSpec?
2022-10-20 02:17:44 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 272 seconds)
2022-10-20 02:17:50 +0200 <EvanR> oh, the thing they threw under the bus was to keep tacking on prefixes each time you split
2022-10-20 02:18:00 +0200 <dminuoso> EvanR: imagine you generate a list of all numbers, the first time you split, each time you want to generate a number you have to force 2 elements of the spine of the original list.
2022-10-20 02:18:10 +0200 <dminuoso> you split again, you will have to force 4 elements for each name
2022-10-20 02:18:11 +0200 <talismanick> because it's a rather roundabout way to say that the argument should be of `MyType`
2022-10-20 02:18:16 +0200 <EvanR> yeah that's exponential right
2022-10-20 02:19:37 +0200 <dminuoso> talismanick: \(x :: MyType) -> ...
2022-10-20 02:19:48 +0200 <dminuoso> (required ScopedTypeVariables)
2022-10-20 02:19:59 +0200 <talismanick> ahh, I see
2022-10-20 02:20:12 +0200 <talismanick> the typechecker didn't like that when I wrote it
2022-10-20 02:20:20 +0200 <dminuoso> EvanR: hence, if you generate a list you can avoid that.
2022-10-20 02:21:09 +0200 <dminuoso> well its actually generating a tree, sort if
2022-10-20 02:21:36 +0200 <talismanick> yay, it works. thanks
2022-10-20 02:21:42 +0200 <dminuoso> each non-left-most leaf would be a name
2022-10-20 02:22:16 +0200thegeekinside(~thegeekin@189.180.97.156)
2022-10-20 02:23:00 +0200 <EvanR> for each split you increase the list of prefixes by 1, so it's linear in the splits instead of exponential?
2022-10-20 02:23:05 +0200 <dminuoso> Right
2022-10-20 02:23:15 +0200lyxia(~lyxia@51.255.32.62)
2022-10-20 02:23:25 +0200 <dminuoso> Well you can actually avoid the linear cost at the expense of memory
2022-10-20 02:24:15 +0200 <dminuoso> but it depends on what kind of names you want to generate
2022-10-20 02:24:25 +0200 <EvanR> unique ones xD
2022-10-20 02:24:31 +0200 <dminuoso> do they have to be pretty?
2022-10-20 02:24:34 +0200 <EvanR> nope
2022-10-20 02:25:17 +0200 <dolio> You can instead store the information that would generate such numbers, which is an amount to shift, and bits to fill in the shifted portion with. However, you will still be using very large numbers very quickly.
2022-10-20 02:26:22 +0200 <dolio> Like, Word64 probably isn't big enough.
2022-10-20 02:26:54 +0200 <EvanR> without knowing the pattern of splitting ahead of time, you can't make the most use of the bits
2022-10-20 02:27:09 +0200 <EvanR> which is probably where this performance concern came from
2022-10-20 02:27:17 +0200 <dminuoso> Is splitting important to you for parallelism?
2022-10-20 02:27:37 +0200 <EvanR> not really but that's a nice benefit
2022-10-20 02:27:53 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 272 seconds)
2022-10-20 02:27:57 +0200inversed(~inversed@90.209.137.56) (Ping timeout: 268 seconds)
2022-10-20 02:28:04 +0200 <EvanR> I'm just tired of rewriting every other pure function as a state monad
2022-10-20 02:28:16 +0200 <EvanR> hoping to sometimes find there's other ways
2022-10-20 02:28:34 +0200 <dminuoso> See, I found pleasure in using unboxed state with unboxed tuples, unboxed ints...
2022-10-20 02:28:41 +0200 <dminuoso> Not boring anymore. :)
2022-10-20 02:31:06 +0200 <Axman6> you know you're having a good day when you get to use a bunch of #'s
2022-10-20 02:31:41 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-20 02:37:42 +0200rockystone(~rocky@user/rockymarine)
2022-10-20 02:37:47 +0200 <EvanR> dminuoso you're in good company, see the very bottom snippet https://stackoverflow.com/questions/6311512/creating-unique-labels-in-haskell
2022-10-20 02:38:44 +0200 <EvanR> i get the impression any and all tasks have a solution involving # everywhere
2022-10-20 02:39:06 +0200Lumia(~Lumia@user/Lumia)
2022-10-20 02:39:37 +0200talismanick(~talismani@96.71.204.25) (Ping timeout: 255 seconds)
2022-10-20 02:42:17 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 260 seconds)
2022-10-20 02:47:03 +0200zaquest(~notzaques@5.130.79.72) (Remote host closed the connection)
2022-10-20 02:57:57 +0200rockystone(~rocky@user/rockymarine)
2022-10-20 03:00:04 +0200Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2022-10-20 03:00:38 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 268 seconds)
2022-10-20 03:01:20 +0200Lord_of_Life_Lord_of_Life
2022-10-20 03:05:33 +0200ryanbooker(uid4340@id-4340.hampstead.irccloud.com)
2022-10-20 03:10:56 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 258 seconds)
2022-10-20 03:12:01 +0200xff0x(~xff0x@2405:6580:b080:900:6701:db86:2182:5220) (Ping timeout: 260 seconds)
2022-10-20 03:12:09 +0200danza(~francesco@151.57.79.164) (Read error: Connection reset by peer)
2022-10-20 03:12:10 +0200zaquest(~notzaques@5.130.79.72)
2022-10-20 03:23:09 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Quit: Lost terminal)
2022-10-20 03:26:50 +0200codaraxis__(~codaraxis@user/codaraxis)
2022-10-20 03:28:12 +0200danza(~francesco@151.57.122.37)
2022-10-20 03:29:41 +0200codaraxis(~codaraxis@user/codaraxis)
2022-10-20 03:30:41 +0200codaraxis___(~codaraxis@user/codaraxis) (Ping timeout: 260 seconds)
2022-10-20 03:32:37 +0200img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2022-10-20 03:32:46 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 246 seconds)
2022-10-20 03:33:07 +0200codaraxis__(~codaraxis@user/codaraxis) (Ping timeout: 272 seconds)
2022-10-20 03:35:31 +0200img(~img@user/img)
2022-10-20 03:35:57 +0200Lumia(~Lumia@user/Lumia) (Ping timeout: 260 seconds)
2022-10-20 03:41:43 +0200jargon(~jargon@184.101.208.112)
2022-10-20 03:43:00 +0200jargon(~jargon@184.101.208.112) (Remote host closed the connection)
2022-10-20 03:43:32 +0200beteigeuze(~Thunderbi@a79-169-109-107.cpe.netcabo.pt) (Ping timeout: 260 seconds)
2022-10-20 03:44:57 +0200phma_phma
2022-10-20 03:47:04 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-20 03:50:33 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 260 seconds)
2022-10-20 03:51:40 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 252 seconds)
2022-10-20 03:53:11 +0200rockystone(~rocky@user/rockymarine)
2022-10-20 03:53:39 +0200zaquest(~notzaques@5.130.79.72) (*.net *.split)
2022-10-20 03:53:39 +0200lyxia(~lyxia@51.255.32.62) (*.net *.split)
2022-10-20 03:53:39 +0200jonathanx__(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (*.net *.split)
2022-10-20 03:53:39 +0200pavonia(~user@user/siracusa) (*.net *.split)
2022-10-20 03:53:55 +0200lyxia(~lyxia@poisson.chat)
2022-10-20 03:54:01 +0200jonathanx__(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
2022-10-20 03:54:01 +0200zaquest(~notzaques@5.130.79.72)
2022-10-20 03:54:36 +0200xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
2022-10-20 03:57:41 +0200frost78(~frost@user/frost)
2022-10-20 03:57:55 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 255 seconds)
2022-10-20 03:58:36 +0200pavonia(~user@user/siracusa)
2022-10-20 04:02:11 +0200img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2022-10-20 04:03:10 +0200Midjak(~Midjak@82.66.147.146) (Quit: This computer has gone to sleep)
2022-10-20 04:04:57 +0200img(~img@user/img)
2022-10-20 04:06:22 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-10-20 04:06:22 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-10-20 04:06:22 +0200wroathe(~wroathe@user/wroathe)
2022-10-20 04:17:56 +0200td_(~td@83.135.9.59) (Ping timeout: 260 seconds)
2022-10-20 04:19:40 +0200td_(~td@83.135.9.19)
2022-10-20 04:19:44 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-20 04:24:18 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 252 seconds)
2022-10-20 04:24:52 +0200rockystone(~rocky@user/rockymarine)
2022-10-20 04:29:10 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2022-10-20 04:29:10 +0200finn_elija(~finn_elij@user/finn-elija/x-0085643)
2022-10-20 04:29:10 +0200finn_elijaFinnElija
2022-10-20 04:35:40 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-20 04:38:22 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 260 seconds)
2022-10-20 04:38:35 +0200yuzhao(~yuzhao@36.112.45.77)
2022-10-20 04:39:41 +0200rockystone(~rocky@user/rockymarine)
2022-10-20 04:41:39 +0200king_gs(~Thunderbi@2806:103e:29:c5:4fb1:a8c9:906f:c6e0)
2022-10-20 04:45:22 +0200jmorris(uid537181@id-537181.uxbridge.irccloud.com)
2022-10-20 04:47:07 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 260 seconds)
2022-10-20 04:48:10 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2022-10-20 04:54:56 +0200detuneattune(~detuneatt@user/detuneattune)
2022-10-20 04:55:25 +0200nate1(~nate@98.45.169.16)
2022-10-20 04:57:07 +0200yuzhao(~yuzhao@36.112.45.77) (Ping timeout: 246 seconds)
2022-10-20 04:58:13 +0200king_gs(~Thunderbi@2806:103e:29:c5:4fb1:a8c9:906f:c6e0) (Ping timeout: 255 seconds)
2022-10-20 04:58:44 +0200rockystone(~rocky@user/rockymarine)
2022-10-20 05:03:06 +0200detuneattune(~detuneatt@user/detuneattune) (Quit: detuneattune)
2022-10-20 05:06:24 +0200inversed(~inversed@bcdcac82.skybroadband.com)
2022-10-20 05:07:18 +0200detuneattune(~detuneatt@user/detuneattune)
2022-10-20 05:07:25 +0200jero98772(~jero98772@2800:484:1d80:d8ce:3490:26c5:1782:da8c) (Remote host closed the connection)
2022-10-20 05:08:10 +0200detuneattune(~detuneatt@user/detuneattune) (Client Quit)
2022-10-20 05:09:42 +0200yuzhao(~yuzhao@36.112.45.77)
2022-10-20 05:14:24 +0200detuneattune(~detuneatt@user/detuneattune)
2022-10-20 05:19:12 +0200yuzhao(~yuzhao@36.112.45.77) (Ping timeout: 260 seconds)
2022-10-20 05:21:10 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 255 seconds)
2022-10-20 05:25:18 +0200Lumia(~Lumia@user/Lumia)
2022-10-20 05:36:07 +0200nate1(~nate@98.45.169.16) (Ping timeout: 260 seconds)
2022-10-20 05:38:00 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 252 seconds)
2022-10-20 05:46:34 +0200yuzhao(~yuzhao@36.112.45.77)
2022-10-20 05:46:34 +0200Vajb(~Vajb@2001:999:504:1841:9e47:1ec7:a52e:1d57) (Read error: Connection reset by peer)
2022-10-20 05:46:49 +0200Vajb(~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi)
2022-10-20 05:50:50 +0200yuzhao(~yuzhao@36.112.45.77) (Ping timeout: 252 seconds)
2022-10-20 05:53:08 +0200074AAAFF2(~vn36@123.63.203.210)
2022-10-20 05:54:40 +0200 <EvanR> when I translated my glorious state monad code to elixir, which does not have monads, I used a temporary process to hold the state. The size of the code came out equal to haskell, but I was told it was not idiomatic xD
2022-10-20 05:55:46 +0200 <EvanR> haskell : monads :: elixir : processes, come on
2022-10-20 05:57:17 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-20 06:01:19 +0200monochrom(trebla@216.138.220.146) (Quit: NO CARRIER)
2022-10-20 06:01:47 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 260 seconds)
2022-10-20 06:02:07 +0200nate1(~nate@98.45.169.16)
2022-10-20 06:07:07 +0200nate1(~nate@98.45.169.16) (Ping timeout: 246 seconds)
2022-10-20 06:07:49 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 246 seconds)
2022-10-20 06:11:32 +0200rockystone(~rocky@user/rockymarine)
2022-10-20 06:13:05 +0200monochrom(trebla@216.138.220.146)
2022-10-20 06:13:29 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-10-20 06:18:24 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 272 seconds)
2022-10-20 06:20:18 +0200mbuf(~Shakthi@49.204.135.71)
2022-10-20 06:21:08 +0200yelllloowwww(~igloo@76.209.246.53)
2022-10-20 06:24:18 +0200Vajb(~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-10-20 06:24:42 +0200[Leary](~Leary]@user/Leary/x-0910699) (Remote host closed the connection)
2022-10-20 06:24:47 +0200ryanbooker(uid4340@id-4340.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2022-10-20 06:24:59 +0200Vajb(~Vajb@2001:999:504:1841:9e47:1ec7:a52e:1d57)
2022-10-20 06:26:17 +0200yelllloowwww(~igloo@76.209.246.53) (Ping timeout: 260 seconds)
2022-10-20 06:27:33 +0200[Leary](~Leary]@user/Leary/x-0910699)
2022-10-20 06:29:19 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-20 06:30:01 +0200Lumia(~Lumia@user/Lumia) (Ping timeout: 255 seconds)
2022-10-20 06:30:24 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 264 seconds)
2022-10-20 06:31:38 +0200 <Axman6> dminuoso: are you responsible for flatparse?
2022-10-20 06:34:59 +0200nate1(~nate@98.45.169.16)
2022-10-20 06:40:17 +0200nate1(~nate@98.45.169.16) (Ping timeout: 260 seconds)
2022-10-20 07:02:42 +0200074AAAFF2(~vn36@123.63.203.210) (Ping timeout: 252 seconds)
2022-10-20 07:11:58 +0200danza(~francesco@151.57.122.37) (Read error: Connection reset by peer)
2022-10-20 07:15:09 +0200jmorris(uid537181@id-537181.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2022-10-20 07:16:26 +0200axeman(~quassel@2a02:8109:a380:78:5219:72f2:505c:674c)
2022-10-20 07:28:27 +0200danza(~francesco@151.43.231.219)
2022-10-20 07:31:57 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2022-10-20 07:33:09 +0200mixfix41(~sdeny9ee@user/mixfix41)
2022-10-20 07:33:28 +0200emmanuelux(~emmanuelu@user/emmanuelux) (Quit: au revoir)
2022-10-20 07:36:46 +0200chomwitt(~chomwitt@2a02:587:dc1e:5e00:1ac0:4dff:fedb:a3f1)
2022-10-20 07:42:00 +0200yvan-sraka(~yvan-srak@2a01cb0802a4b900babea20f7de51cb8.ipv6.abo.wanadoo.fr)
2022-10-20 07:46:26 +0200axeman(~quassel@2a02:8109:a380:78:5219:72f2:505c:674c) (Ping timeout: 272 seconds)
2022-10-20 07:47:18 +0200aliosablack(~chomwitt@2a02:587:dc1e:5e00:1ac0:4dff:fedb:a3f1)
2022-10-20 07:49:05 +0200aliosablack(~chomwitt@2a02:587:dc1e:5e00:1ac0:4dff:fedb:a3f1) (Remote host closed the connection)
2022-10-20 07:49:32 +0200aliosablack(~chomwitt@2a02:587:dc1e:5e00:1ac0:4dff:fedb:a3f1)
2022-10-20 07:52:12 +0200chomwittGuest4561
2022-10-20 07:52:12 +0200Guest4561(~chomwitt@2a02:587:dc1e:5e00:1ac0:4dff:fedb:a3f1) (Killed (tungsten.libera.chat (Nickname regained by services)))
2022-10-20 07:52:12 +0200aliosablackchomwitt
2022-10-20 07:52:37 +0200Guest4561(~chomwitt@2a02:587:dc1e:5e00:1ac0:4dff:fedb:a3f1)
2022-10-20 07:58:21 +0200yvan-sraka(~yvan-srak@2a01cb0802a4b900babea20f7de51cb8.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
2022-10-20 07:59:36 +0200jakalx(~jakalx@base.jakalx.net) ()
2022-10-20 08:02:26 +0200king_gs(~Thunderbi@187.201.131.180)
2022-10-20 08:02:35 +0200jakalx(~jakalx@base.jakalx.net)
2022-10-20 08:10:41 +0200Cale(~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com) (Ping timeout: 260 seconds)
2022-10-20 08:15:13 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 246 seconds)
2022-10-20 08:17:44 +0200berberman(~berberman@user/berberman) (Quit: ZNC 1.8.2 - https://znc.in)
2022-10-20 08:18:04 +0200berberman(~berberman@user/berberman)
2022-10-20 08:21:37 +0200vn36_(~vn36@123.63.203.210)
2022-10-20 08:21:39 +0200king_gs(~Thunderbi@187.201.131.180) (Read error: Connection reset by peer)
2022-10-20 08:22:02 +0200kenran`(~user@user/kenran)
2022-10-20 08:22:55 +0200Cale(~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com)
2022-10-20 08:23:14 +0200king_gs(~Thunderbi@2806:103e:29:c5:4fb1:a8c9:906f:c6e0)
2022-10-20 08:27:02 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 252 seconds)
2022-10-20 08:30:09 +0200xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 272 seconds)
2022-10-20 08:31:27 +0200rockystone(~rocky@user/rockymarine)
2022-10-20 08:31:53 +0200xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
2022-10-20 08:32:19 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-20 08:34:37 +0200vn36_(~vn36@123.63.203.210) (Ping timeout: 260 seconds)
2022-10-20 08:35:34 +0200echoreply(~echoreply@45.32.163.16) (Quit: WeeChat 2.8)
2022-10-20 08:36:06 +0200echoreply(~echoreply@45.32.163.16)
2022-10-20 08:36:29 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 272 seconds)
2022-10-20 08:37:15 +0200Lycurgus(~juan@user/Lycurgus)
2022-10-20 08:38:48 +0200m1dnight(~christoph@78-22-0-121.access.telenet.be) (Quit: WeeChat 3.7)
2022-10-20 08:40:18 +0200rockystone(~rocky@user/rockymarine)
2022-10-20 08:40:47 +0200m1dnight(~christoph@78-22-0-121.access.telenet.be)
2022-10-20 08:48:55 +0200akegalj(~akegalj@109.60.124.36)
2022-10-20 08:49:36 +0200Guest4561(~chomwitt@2a02:587:dc1e:5e00:1ac0:4dff:fedb:a3f1) (Remote host closed the connection)
2022-10-20 08:49:36 +0200chomwitt(~chomwitt@2a02:587:dc1e:5e00:1ac0:4dff:fedb:a3f1) (Remote host closed the connection)
2022-10-20 08:51:28 +0200chomwitt(~chomwitt@2a02:587:dc1e:5e00:1ac0:4dff:fedb:a3f1)
2022-10-20 08:53:48 +0200raym(~aritra@user/raym) (Ping timeout: 264 seconds)
2022-10-20 08:54:32 +0200raym(~aritra@user/raym)
2022-10-20 08:58:25 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2022-10-20 08:59:32 +0200zeenk(~zeenk@2a02:2f04:a105:5d00:c862:f190:2ea:d494)
2022-10-20 08:59:55 +0200titibandit(~titibandi@xdsl-78-34-208-230.nc.de)
2022-10-20 09:01:40 +0200 <akegalj> User on reddit post said "it would be useful if type system could track partial functions" https://old.reddit.com/r/haskell/comments/y8dulb/why_is_the_koolaid_so_fucking_delicious/it1e2s0/ . Well, is there anything foundamentally stopping us to define Partial class and mark bits of functions with it and thus colour every function upstream with this constraint? It might have poor performance but in my
2022-10-20 09:01:46 +0200 <akegalj> mind it could be done. Am I missing something?
2022-10-20 09:02:26 +0200Lycurgus(~juan@user/Lycurgus) (Quit: Exeunt juan@acm.org)
2022-10-20 09:06:29 +0200chomwitt(~chomwitt@2a02:587:dc1e:5e00:1ac0:4dff:fedb:a3f1) (Remote host closed the connection)
2022-10-20 09:08:05 +0200acidjnk_new(~acidjnk@p200300d6e7137a8750050d53bd5e9e4e.dip0.t-ipconnect.de)
2022-10-20 09:08:31 +0200chomwitt(~chomwitt@2a02:587:dc1e:5e00:1ac0:4dff:fedb:a3f1)
2022-10-20 09:09:06 +0200mc47(~mc47@xmonad/TheMC47)
2022-10-20 09:09:08 +0200Kaiepi(~Kaiepi@108.175.84.104)
2022-10-20 09:09:36 +0200Ristovski(~Ristovski@hellomouse/perf/ristovski) (Ping timeout: 260 seconds)
2022-10-20 09:10:40 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 255 seconds)
2022-10-20 09:11:17 +0200chomwitt(~chomwitt@2a02:587:dc1e:5e00:1ac0:4dff:fedb:a3f1) (Remote host closed the connection)
2022-10-20 09:11:20 +0200michalz(~michalz@185.246.207.221)
2022-10-20 09:13:11 +0200chomwitt(~chomwitt@2a02:587:dc1e:5e00:1ac0:4dff:fedb:a3f1)
2022-10-20 09:14:55 +0200MajorBiscuit(~MajorBisc@c-001-024-010.client.tudelft.eduvpn.nl)
2022-10-20 09:15:10 +0200Ristovski(~Ristovski@hellomouse/perf/ristovski)
2022-10-20 09:18:02 +0200 <c_wraith> akegalj: I think the request was more along the lines of mandatory tracking. Which is difficult. A naive first pass would have to mark every recursive function call as Partial
2022-10-20 09:23:53 +0200yvan-sraka(~yvan-srak@163.172.69.160)
2022-10-20 09:24:12 +0200codaraxis__(~codaraxis@user/codaraxis)
2022-10-20 09:24:56 +0200lisbeths(uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2022-10-20 09:25:36 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-10-20 09:25:42 +0200akegalj(~akegalj@109.60.124.36) (Ping timeout: 252 seconds)
2022-10-20 09:27:09 +0200Ristovski(~Ristovski@hellomouse/perf/ristovski) (Ping timeout: 272 seconds)
2022-10-20 09:27:40 +0200codaraxis(~codaraxis@user/codaraxis) (Ping timeout: 246 seconds)
2022-10-20 09:28:42 +0200yvan-sraka(~yvan-srak@163.172.69.160) (Ping timeout: 244 seconds)
2022-10-20 09:29:07 +0200rockystone(~rocky@user/rockymarine)
2022-10-20 09:29:32 +0200coot(~coot@213.134.171.3)
2022-10-20 09:32:38 +0200akegalj(~akegalj@212.15.177.13)
2022-10-20 09:33:20 +0200 <akegalj> c_wraith: yes, it would be hard to move whole ecosystem to the state where everything is marked as Partial. Are you saying that most systems out there which support tracking partial functions can do it optionally ? If I remember correctly purescript also has mandatory partial tracking
2022-10-20 09:33:21 +0200yvan-sraka(~yvan-srak@163.172.69.160)
2022-10-20 09:33:27 +0200 <akegalj> c_wraith: or did you mean it "would be difficult" in some other way?
2022-10-20 09:34:17 +0200 <akegalj> (sorry if this message came out few times, connection issues)
2022-10-20 09:37:29 +0200yvan-sraka(~yvan-srak@163.172.69.160) (Ping timeout: 244 seconds)
2022-10-20 09:39:33 +0200 <c_wraith> I was mostly looking at "partial" being really annoying to determine in turing-complete langauges
2022-10-20 09:39:44 +0200 <c_wraith> wow, my spelling is atrocious at this time of day
2022-10-20 09:39:44 +0200 <[Leary]> akegalj: Your description using a constraint would rely on programmer discipline. Actual compiler-checked totality isn't easy to implement, nor is it easy for programmers to shape their programs so the compiler will accept them as such.
2022-10-20 09:40:36 +0200 <c_wraith> (by "really annoying" I mean "actually impossible")
2022-10-20 09:42:16 +0200glguy(~glguy@libera/staff-emeritus/glguy) (Ping timeout: 260 seconds)
2022-10-20 09:42:21 +0200 <akegalj> c_wraith: [Leary]: that makes sense
2022-10-20 09:42:50 +0200 <akegalj> do you happen to know how purescript implements Partial functionality ?
2022-10-20 09:43:10 +0200 <c_wraith> It probably ignores non-termination as a source of partiality
2022-10-20 09:43:39 +0200 <c_wraith> If you do that, you can just mark specific language constructs, like incomplete pattern matches
2022-10-20 09:44:06 +0200yvan-sraka(~yvan-srak@163.172.69.160)
2022-10-20 09:44:29 +0200 <[Leary]> So long as we don't actually /reject/ partial functions we won't lose turing completeness. It's just that the compiler can only recognise a decidable subset of total functions, so you'd have to write your program within that subset or accept the compiler presuming it partial.
2022-10-20 09:44:40 +0200 <dminuoso> Axman6: No, but I've started doing work on it.
2022-10-20 09:44:50 +0200 <[Leary]> Idris and co work like that.
2022-10-20 09:45:08 +0200 <[Leary]> Well, except that they really do reject the partial functions.
2022-10-20 09:45:19 +0200yvan-sraka(~yvan-srak@163.172.69.160) (Remote host closed the connection)
2022-10-20 09:45:37 +0200yvan-sraka(~yvan-srak@163.172.69.160)
2022-10-20 09:46:22 +0200zer0bitz(~zer0bitz@2001:2003:f748:2000:b8a3:a4ce:6b2a:34af)
2022-10-20 09:47:02 +0200glguy(~glguy@libera/staff-emeritus/glguy)
2022-10-20 09:47:14 +0200 <dminuoso> EvanR: Huh Im surprised, state is usually modelled very similar to state monad - but it requires a bit of squinting.
2022-10-20 09:49:14 +0200 <akegalj> [Leary]: c_wraith: ok, that makes things clear for me. I was always confused how purescript managed to pull that up, but I guess it only marks subset of all partial functions as partial (ignoring non-termination)
2022-10-20 09:51:50 +0200 <akegalj> and when I was writing my first comment/question up there (asking why haskell can't do a similar trick) I actually forgot about non-termination part :D which was a bit naive from me
2022-10-20 09:55:07 +0200 <dminuoso> EvanR: At any rate, `Functional Pearl: On generating unique names` by Lennart Augustsson, Mikael Rittri and Dan Synek seems to be the relevant document.
2022-10-20 09:55:57 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2022-10-20 09:57:27 +0200thegeekinside(~thegeekin@189.180.97.156) (Ping timeout: 260 seconds)
2022-10-20 09:57:31 +0200_xor(~xor@74.215.182.83)
2022-10-20 09:57:45 +0200shriekingnoise(~shrieking@186.137.167.202) (Quit: Quit)
2022-10-20 09:59:33 +0200shriekingnoise(~shrieking@186.137.167.202)
2022-10-20 10:00:56 +0200nate1(~nate@98.45.169.16)
2022-10-20 10:01:31 +0200ccapndave(~ccapndave@xcpe-62-167-164-44.cgn.res.adslplus.ch)
2022-10-20 10:03:19 +0200yvan-sraka(~yvan-srak@163.172.69.160) (Ping timeout: 244 seconds)
2022-10-20 10:03:26 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:dd67:259e:7b08:293e) (Remote host closed the connection)
2022-10-20 10:03:58 +0200yvan-sraka(~yvan-srak@37.171.191.42)
2022-10-20 10:05:19 +0200dagit6406(~dagit@2001:558:6025:38:6476:a063:d05a:44da)
2022-10-20 10:05:42 +0200shriekingnoise(~shrieking@186.137.167.202) (Quit: Quit)
2022-10-20 10:06:12 +0200nate1(~nate@98.45.169.16) (Ping timeout: 260 seconds)
2022-10-20 10:06:47 +0200MajorBiscuit(~MajorBisc@c-001-024-010.client.tudelft.eduvpn.nl) (Ping timeout: 260 seconds)
2022-10-20 10:06:59 +0200dagi33709(~dagit@2001:558:6025:38:6476:a063:d05a:44da)
2022-10-20 10:07:18 +0200dagit(~dagit@2001:558:6025:38:6476:a063:d05a:44da) (Ping timeout: 264 seconds)
2022-10-20 10:07:33 +0200dagit6406(~dagit@2001:558:6025:38:6476:a063:d05a:44da) (Read error: Connection reset by peer)
2022-10-20 10:07:47 +0200Ristovski(~Ristovski@hellomouse/perf/ristovski)
2022-10-20 10:09:00 +0200yvan-sraka(~yvan-srak@37.171.191.42) (Ping timeout: 244 seconds)
2022-10-20 10:13:51 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-10-20 10:17:07 +0200jespada(~jespada@nmal-24-b2-v4wan-166357-cust1764.vm24.cable.virginm.net) (Ping timeout: 248 seconds)
2022-10-20 10:18:30 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
2022-10-20 10:20:39 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2022-10-20 10:20:39 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-10-20 10:20:39 +0200stiell_(~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
2022-10-20 10:20:39 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2022-10-20 10:21:50 +0200stiell_(~stiell@gateway/tor-sasl/stiell)
2022-10-20 10:22:02 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2022-10-20 10:22:09 +0200jespada(~jespada@nmal-24-b2-v4wan-166357-cust1764.vm24.cable.virginm.net)
2022-10-20 10:22:36 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-10-20 10:22:52 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2022-10-20 10:27:10 +0200jespada(~jespada@nmal-24-b2-v4wan-166357-cust1764.vm24.cable.virginm.net) (Ping timeout: 255 seconds)
2022-10-20 10:28:20 +0200titibandit(~titibandi@xdsl-78-34-208-230.nc.de) (Remote host closed the connection)
2022-10-20 10:31:34 +0200MajorBiscuit(~MajorBisc@c-001-024-010.client.tudelft.eduvpn.nl)
2022-10-20 10:32:33 +0200mc47(~mc47@xmonad/TheMC47) (Ping timeout: 255 seconds)
2022-10-20 10:32:45 +0200jespada(~jespada@nmal-24-b2-v4wan-166357-cust1764.vm24.cable.virginm.net)
2022-10-20 10:37:56 +0200MajorBiscuit(~MajorBisc@c-001-024-010.client.tudelft.eduvpn.nl) (Ping timeout: 252 seconds)
2022-10-20 10:40:28 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 246 seconds)
2022-10-20 10:43:51 +0200rockystone(~rocky@user/rockymarine)
2022-10-20 10:45:45 +0200gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de)
2022-10-20 10:48:47 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 260 seconds)
2022-10-20 10:49:45 +0200enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7)
2022-10-20 10:50:30 +0200 <albet70> let a=3 in id a, this 'let' create a lexical scope?
2022-10-20 10:52:14 +0200Ristovski(~Ristovski@hellomouse/perf/ristovski) (Ping timeout: 252 seconds)
2022-10-20 10:55:04 +0200birdgoose(~jesse@2406:e003:1d87:6601:e725:b6b4:ace8:4ebe)
2022-10-20 10:56:45 +0200ubert(~Thunderbi@178.115.56.41.wireless.dyn.drei.com)
2022-10-20 10:57:40 +0200 <dminuoso> Zes.
2022-10-20 10:57:43 +0200 <dminuoso> Yes.
2022-10-20 10:58:31 +0200kuribas(~user@silversquare.silversquare.eu)
2022-10-20 11:01:28 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
2022-10-20 11:01:46 +0200yvan-sraka(~yvan-srak@163.172.69.160)
2022-10-20 11:01:59 +0200 <albet70> is it a closure?
2022-10-20 11:02:47 +0200 <ski> "closure" is an implementation term
2022-10-20 11:03:15 +0200 <ski> `a' is just a local variable, bound to `3'
2022-10-20 11:03:53 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:dd67:259e:7b08:293e)
2022-10-20 11:04:51 +0200 <ski> (what are you trying to ask about ?)
2022-10-20 11:05:52 +0200ubert(~Thunderbi@178.115.56.41.wireless.dyn.drei.com) (Ping timeout: 255 seconds)
2022-10-20 11:06:47 +0200yvan-sraka(~yvan-srak@163.172.69.160) (Remote host closed the connection)
2022-10-20 11:07:29 +0200rockystone(~rocky@user/rockymarine)
2022-10-20 11:08:22 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:dd67:259e:7b08:293e) (Ping timeout: 252 seconds)
2022-10-20 11:12:48 +0200ubert(~Thunderbi@77.119.160.6.wireless.dyn.drei.com)
2022-10-20 11:13:01 +0200akegalj(~akegalj@212.15.177.13) (Ping timeout: 246 seconds)
2022-10-20 11:13:06 +0200danza(~francesco@151.43.231.219) (Read error: Connection reset by peer)
2022-10-20 11:13:27 +0200 <kuribas> Anyone going to FOSDEM or BOB?
2022-10-20 11:14:59 +0200vglfr(~vglfr@145.224.100.100)
2022-10-20 11:15:25 +0200vglfr(~vglfr@145.224.100.100) (Remote host closed the connection)
2022-10-20 11:16:45 +0200 <albet70> in other languages like python or scheme we can create a closure by bind a function and a outside variable, so I wonder how to do x in y
2022-10-20 11:17:47 +0200 <kuribas> > let adder = (+); add5 = adder 5 in add5 3
2022-10-20 11:17:49 +0200 <lambdabot> 8
2022-10-20 11:17:56 +0200 <kuribas> albet70: ^
2022-10-20 11:18:15 +0200 <kuribas> you could capture a IORef if that's what you fancy.
2022-10-20 11:18:39 +0200vglfr(~vglfr@145.224.100.100)
2022-10-20 11:20:24 +0200ccapndave(~ccapndave@xcpe-62-167-164-44.cgn.res.adslplus.ch) (Quit: Textual IRC Client: www.textualapp.com)
2022-10-20 11:24:40 +0200akegalj(~akegalj@213-202-90-118.dsl.iskon.hr)
2022-10-20 11:25:07 +0200wonko(~wjc@2a0e:1c80:2:0:45:15:19:130)
2022-10-20 11:25:52 +0200yvan-sraka(~yvan-srak@163.172.69.160)
2022-10-20 11:26:48 +0200mjacob(~mjacob@adrastea.uberspace.de) (Read error: Connection reset by peer)
2022-10-20 11:27:50 +0200danza(~francesco@151.37.141.231)
2022-10-20 11:31:22 +0200jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 260 seconds)
2022-10-20 11:31:40 +0200yvan-sraka(~yvan-srak@163.172.69.160) (Ping timeout: 244 seconds)
2022-10-20 11:31:57 +0200mmhat(~mmh@p200300f1c73377eeee086bfffe095315.dip0.t-ipconnect.de)
2022-10-20 11:32:12 +0200mjacob(~mjacob@adrastea.uberspace.de)
2022-10-20 11:32:30 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz
)
2022-10-20 11:33:48 +0200ft(~ft@p3e9bc845.dip0.t-ipconnect.de) (Quit: leaving)
2022-10-20 11:36:10 +0200Everything(~Everythin@37.115.210.35)
2022-10-20 11:37:15 +0200gmg(~user@user/gehmehgeh)
2022-10-20 11:38:08 +0200 <dminuoso> albet70: A closure is an implementation detail.
2022-10-20 11:42:19 +0200acidjnk_new(~acidjnk@p200300d6e7137a8750050d53bd5e9e4e.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
2022-10-20 11:46:01 +0200 <dminuoso> albet70: Semantically what you meant is, given `let x = 5 in \y -> x + y`, `y` is bound in \y -> x + y`
2022-10-20 11:46:33 +0200 <dminuoso> So yes, Haskell lets you bind variables from outside a lambda. Whether we end up using a closure or a different technique to implement that is an implementation detail
2022-10-20 11:46:38 +0200`2jt(~jtomas@191.red-88-17-199.dynamicip.rima-tde.net)
2022-10-20 11:46:58 +0200 <dminuoso> Oh sorry, I miswrote. `x` is bound in \y -> x + y`
2022-10-20 11:47:30 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-10-20 11:48:12 +0200 <dminuoso> We could, instead, just create a new function on the spot with `x` replaced by 5. No closure needed.
2022-10-20 11:48:43 +0200 <dminuoso> But from a semantic point of view this is indistinguishable, aside from the performance perspective
2022-10-20 11:49:09 +0200kavvadias(~kavvadias@2001:9e8:632f:ca00:d323:974c:a374:e838)
2022-10-20 11:49:37 +0200 <kavvadias> hey i was wondering if someone could help me with hls and coc for nvim
2022-10-20 11:50:02 +0200 <[exa]> kavvadias: please state your trouble. :]
2022-10-20 11:50:55 +0200 <dminuoso> *please state the nature of your functional emergency
2022-10-20 11:54:37 +0200 <kavvadias> i was setting up coc-config, as per their github and im struglling with the navigation (to Definition, type Definition) i keep getting typeDefinition not found
2022-10-20 11:54:38 +0200danza(~francesco@151.37.141.231) (Read error: Connection reset by peer)
2022-10-20 11:55:38 +0200 <[exa]> does it work on some tiny example (such as you define the type, use it on a next line and try the goto definition) ?
2022-10-20 11:55:47 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-10-20 12:01:02 +0200birdgoose(~jesse@2406:e003:1d87:6601:e725:b6b4:ace8:4ebe) (Ping timeout: 272 seconds)
2022-10-20 12:01:35 +0200 <kavvadias> no it doesnt
2022-10-20 12:02:07 +0200 <[exa]> ok then it's just broken it seems. I'm not using these so I don't know much about how to debug that but chances are others here will know
2022-10-20 12:02:14 +0200 <[exa]> in the meantime, are there any logs?
2022-10-20 12:05:32 +0200 <kavvadias> ihttps://pastebin.com/rLVHgCLz
2022-10-20 12:05:40 +0200 <kavvadias> thats from Coc log
2022-10-20 12:06:07 +0200 <[exa]> nothing suspicious there right
2022-10-20 12:06:29 +0200 <kavvadias> dont seem like it
2022-10-20 12:09:02 +0200kuribas(~user@silversquare.silversquare.eu) (Read error: Connection reset by peer)
2022-10-20 12:11:49 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 246 seconds)
2022-10-20 12:12:28 +0200xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 255 seconds)
2022-10-20 12:14:24 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-10-20 12:15:23 +0200Midjak(~Midjak@82.66.147.146)
2022-10-20 12:17:22 +0200acidjnk_new(~acidjnk@p200300d6e7137a8750050d53bd5e9e4e.dip0.t-ipconnect.de)
2022-10-20 12:19:25 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 272 seconds)
2022-10-20 12:20:25 +0200econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2022-10-20 12:24:43 +0200haritz(~hrtz@user/haritz) (Remote host closed the connection)
2022-10-20 12:25:20 +0200rockystone(~rocky@user/rockymarine)
2022-10-20 12:25:25 +0200 <dminuoso> % :set -XPolyKinds
2022-10-20 12:25:25 +0200 <yahb2> <no output>
2022-10-20 12:25:41 +0200 <dminuoso> % data T (s :: TYPE rr) = T s
2022-10-20 12:25:42 +0200 <yahb2> <interactive>:70:25: error: ; ‱ A levity-polymorphic type is not allowed here: ; Type: s ; Kind: TYPE rr ; ‱ In the definition of data constructor ‘T’ ; In the data ty...
2022-10-20 12:25:58 +0200 <dminuoso> % data T (s :: TYPE rr) = T s
2022-10-20 12:25:58 +0200 <yahb2> <interactive>:74:25: error: ; ‱ A levity-polymorphic type is not allowed here: ; Type: s ; Kind: TYPE rr ; ‱ In the definition of data constructor ‘T’ ; In the data ty...
2022-10-20 12:26:01 +0200 <dminuoso> % newtype T (s :: TYPE rr) = T s
2022-10-20 12:26:01 +0200 <yahb2> <no output>
2022-10-20 12:26:24 +0200 <dminuoso> % f :: T s -> Int; f = undefined
2022-10-20 12:26:24 +0200 <yahb2> <no output>
2022-10-20 12:26:33 +0200 <dminuoso> % {-# SPECIALIZE f :: T Int# -> Int #-}
2022-10-20 12:26:33 +0200 <yahb2> <no output>
2022-10-20 12:26:41 +0200 <dminuoso> Huh!
2022-10-20 12:27:39 +0200vglfr(~vglfr@145.224.100.100) (Ping timeout: 272 seconds)
2022-10-20 12:29:46 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 252 seconds)
2022-10-20 12:38:05 +0200 <tomsmeding> kavvadias: what happens if you try to run `haskell-language-server-wrapper` in a terminal in your project folder? Does that succeed?
2022-10-20 12:38:40 +0200__monty__(~toonn@user/toonn)
2022-10-20 12:39:26 +0200zkSNOOP(~username@ptr-21zvp7pbt2o6jn2ooyl.18120a2.ip6.access.telenet.be)
2022-10-20 12:40:03 +0200 <kavvadias> https://pastebin.com/K6c9ArCU
2022-10-20 12:41:22 +0200 <dminuoso> Ohh GHCI cant do these pragmas right
2022-10-20 12:41:39 +0200JonathanWatson[m(~jjwmatrix@2001:470:69fc:105::2:a544)
2022-10-20 12:42:53 +0200rockystone(~rocky@user/rockymarine)
2022-10-20 12:44:44 +0200coot(~coot@213.134.171.3) (Quit: coot)
2022-10-20 12:47:05 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 258 seconds)
2022-10-20 12:48:28 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan)
2022-10-20 12:48:55 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 246 seconds)
2022-10-20 12:50:08 +0200absence_absence
2022-10-20 12:56:55 +0200jakalx(~jakalx@base.jakalx.net) ()
2022-10-20 12:59:34 +0200haritz(~hrtz@82-69-11-11.dsl.in-addr.zen.co.uk)
2022-10-20 12:59:34 +0200haritz(~hrtz@82-69-11-11.dsl.in-addr.zen.co.uk) (Changing host)
2022-10-20 12:59:34 +0200haritz(~hrtz@user/haritz)
2022-10-20 12:59:58 +0200vglfr(~vglfr@145.224.100.100)
2022-10-20 13:02:06 +0200rockystone(~rocky@user/rockymarine)
2022-10-20 13:02:09 +0200 <kavvadias> can someone share some config file for nvim please ?
2022-10-20 13:06:01 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-10-20 13:06:18 +0200jakalx(~jakalx@base.jakalx.net)
2022-10-20 13:06:26 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 252 seconds)
2022-10-20 13:08:23 +0200MajorBiscuit(~MajorBisc@c-001-024-010.client.tudelft.eduvpn.nl)
2022-10-20 13:08:27 +0200vn36(~vn36@123.63.203.210)
2022-10-20 13:08:34 +0200raym(~aritra@user/raym) (Quit: kernel update, rebooting...)
2022-10-20 13:10:08 +0200Tobias83(~Tobias@dyndsl-095-033-094-034.ewe-ip-backbone.de)
2022-10-20 13:11:07 +0200gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2022-10-20 13:12:54 +0200Tobias83(~Tobias@dyndsl-095-033-094-034.ewe-ip-backbone.de) (Client Quit)
2022-10-20 13:18:36 +0200 <tomsmeding> for coc+nvim specifically, I assume
2022-10-20 13:20:03 +0200 <dminuoso> % newtype State (s :: TYPE rr) a = State { runState :: s -> (# s, a #) }
2022-10-20 13:20:03 +0200 <yahb2> <no output>
2022-10-20 13:20:10 +0200 <dminuoso> % put :: forall rr (s :: TYPE rr). s -> State s (); put x = State (\_ -> (# x, () #))
2022-10-20 13:20:11 +0200 <dminuoso> % put :: forall rr (s :: TYPE rr). s -> State s (); put x = State (\_ -> (# x, () #))
2022-10-20 13:20:11 +0200 <yahb2> <interactive>:88:55: error: ; A levity-polymorphic type is not allowed here: ; Type: s ; Kind: TYPE rr ; In the type of binder ‘x’
2022-10-20 13:20:23 +0200 <dminuoso> Is there a way to build this?
2022-10-20 13:21:37 +0200vn36(~vn36@123.63.203.210) (Quit: leaving)
2022-10-20 13:21:47 +0200 <raehik> isn't it impossible to bind a levity poly value
2022-10-20 13:22:00 +0200 <raehik> (I have a note from myself that says as much when I tried before)
2022-10-20 13:22:22 +0200 <dminuoso> So much for my brilliant idea of making a levity polymorphic variant of FlatParse.Stateful :(
2022-10-20 13:22:29 +0200 <dminuoso> That idea prompt died.
2022-10-20 13:22:32 +0200 <dminuoso> *promptly
2022-10-20 13:22:58 +0200 <dminuoso> raehik: Hi! I have some further thoughts to share on 9.4 compatibility on flatparse, by the wya
2022-10-20 13:23:07 +0200 <kavvadias> tomsmeding yes , that would be great, even for more plugins, im kind of new to nvim
2022-10-20 13:23:42 +0200 <raehik> dminuoso: yes plz! I wonder if you were added to the repo as a contributor yet
2022-10-20 13:23:51 +0200 <dminuoso> I just started yesterday :P
2022-10-20 13:24:53 +0200 <dminuoso> raehik: So invested a few hours last night in various approaches. Im close to having convinced myself ditching 32 bit support is the best course of action.
2022-10-20 13:25:41 +0200 <raehik> current flatparse design doesn't support 32-bit anyway so I'm comfortable with that
2022-10-20 13:25:46 +0200 <dminuoso> Alternatively you either risk poorer performance (since you need to constantly convert things around depending on which primop you use, and they arent all noops), or you will spend reimplementing a lot
2022-10-20 13:25:58 +0200 <dminuoso> In that case, the word-compat way is the only sensible
2022-10-20 13:26:08 +0200 <dminuoso> its less effort, and wont require re-converting on every primop and callsite
2022-10-20 13:26:32 +0200 <dminuoso> we dont have to use the package itself, all we really need is just similar bidirectional view patterns
2022-10-20 13:26:52 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:3f57:8fd:2b35:c02c)
2022-10-20 13:27:33 +0200 <dminuoso> raehik: by the way, getting a Word64# on ghc 9.0 is easy.
2022-10-20 13:27:51 +0200 <tomsmeding> kavvadias: I'm using the built-in lsp functionality of nvim; has less features than coc, and is supposedly harder to set up, but it works for me
2022-10-20 13:27:59 +0200 <dminuoso> Let me give you the code Ive written last night
2022-10-20 13:28:02 +0200mixfix41(~sdeny9ee@user/mixfix41) (Ping timeout: 260 seconds)
2022-10-20 13:28:18 +0200nschoe(~q@141.101.51.197)
2022-10-20 13:30:29 +0200 <dminuoso> raehik: https://gist.github.com/dminuoso/d583018afcac70ccc034b4eefac416cd
2022-10-20 13:31:00 +0200 <dminuoso> The dark secret here, is that on 32bit there's suddenly a new primop wordToWord64#, which is however not visible on haddock because it uses the same CPP macro guard in the gist
2022-10-20 13:31:07 +0200 <raehik> dminuoso: ah right, that's fair
2022-10-20 13:31:21 +0200 <dminuoso> raehik: alternatively, you can do this:
2022-10-20 13:31:38 +0200 <dminuoso> Or rather, for the opposite direction:
2022-10-20 13:31:47 +0200 <dminuoso> word64ToWord# w64 = let GHC.W# w = fromIntegral (GHC.W64# w64) in w
2022-10-20 13:32:02 +0200 <dminuoso> (Which is obviously only safe on 64 bits)
2022-10-20 13:32:25 +0200 <dminuoso> This relies on a) a RULES that will inline the corresponding primop (which however is not exported), and b) GHC will definitely unbox this.
2022-10-20 13:32:40 +0200acidjnk_new(~acidjnk@p200300d6e7137a8750050d53bd5e9e4e.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2022-10-20 13:33:07 +0200 <dminuoso> And on 32 bit that thing actually exists (but is iomplemented as an FFI call)
2022-10-20 13:33:12 +0200 <dminuoso> See libraries/ghc-prim/GHC/IntWord64.hs
2022-10-20 13:34:03 +0200 <dminuoso> raehik: by the way, where do we not support 32 bits yet?
2022-10-20 13:34:10 +0200 <raehik> huh. that is all a bit confusing
2022-10-20 13:35:45 +0200 <raehik> dminuoso: there are parser combinators that use Word, Word# though state themselves to be 64-bit, and some implementations might rely on 64-bit ints
2022-10-20 13:35:53 +0200rockystone(~rocky@user/rockymarine)
2022-10-20 13:36:09 +0200 <dminuoso> Word# does definitely not state itself to be 64 bit.
2022-10-20 13:36:17 +0200 <dminuoso> It's just a machine word sized prim type.
2022-10-20 13:36:24 +0200 <dminuoso> On 32 bit systems it will be 32 bit.
2022-10-20 13:37:17 +0200 <dminuoso> The trick is that on old GHC Word64, using CPP will use Word# on 64 bit, and on 32 bit systems it will use Word64# (which is only ever generated on 32 bit systems)
2022-10-20 13:37:27 +0200 <tomsmeding> dminuoso: I think raehik meant that the parser combinators state themselves to be 64-bit
2022-10-20 13:37:31 +0200 <raehik> we assume Word# s are 8-bytes long though: https://github.com/AndrasKovacs/flatparse/blob/f51ead69b568f73bb7d3b47f3bc7a2b2b6db259d/src/FlatPa

2022-10-20 13:38:15 +0200 <dminuoso> I would personally really prefer `withAnyWord64 :: (Word64# -> ...) -> ...`
2022-10-20 13:38:29 +0200 <dminuoso> But there's really no pretty way to make it happen
2022-10-20 13:38:55 +0200 <dminuoso> Because then you need to provide an indexWord64OffAddr# shim for example
2022-10-20 13:39:13 +0200 <raehik> yeah, that's what I did in my temp GHC 9.4 branch https://github.com/AndrasKovacs/flatparse/pull/29/files#diff-902431788ef1828ee9050e062bd33fc61675e

2022-10-20 13:39:16 +0200xff0x(~xff0x@2405:6580:b080:900:e42c:dea5:20dc:c5aa)
2022-10-20 13:40:26 +0200 <raehik> certain we could remove some amount of the 64-bit assumption, some things will need a little more thought? maybe CPP solves it though
2022-10-20 13:41:38 +0200 <dminuoso> On the bright side, regardless of what approach we chose, its fixed work,.
2022-10-20 13:41:50 +0200 <dminuoso> I think its mostly done on GHC 9.4
2022-10-20 13:42:01 +0200 <dminuoso> There's just a few rough edges missing
2022-10-20 13:42:22 +0200 <dminuoso> What I just dont really like is the `type Word64'# = Word64#` shenanigans.
2022-10-20 13:42:49 +0200 <dminuoso> If we just force a Word64# onto, regardless of what GHC version you use, its easier from the consumer side to reliably deal with it.
2022-10-20 13:42:55 +0200 <dminuoso> Otherwise you essentially impose CPP on the library user
2022-10-20 13:43:36 +0200 <dminuoso> Which is sort of why forcing everything into Word# induces less work for us and users.
2022-10-20 13:43:51 +0200 <dminuoso> Very unsatisfying
2022-10-20 13:45:43 +0200 <dminuoso> raehik: Tell you what, you finish your approach on (3), and Ill try and roll (1)
2022-10-20 13:45:46 +0200 <raehik> I agree - I went with WordX'# because I didn't want to lose the improvements from 9.2
2022-10-20 13:45:53 +0200 <dminuoso> And when we're done, well just compare them
2022-10-20 13:46:14 +0200 <Franciman> does ghc runtime support Word128# ?
2022-10-20 13:46:16 +0200 <dminuoso> Well, thats the beauty of (1). If you use newer GHC, you will definitely not pay a penalty
2022-10-20 13:46:20 +0200 <dminuoso> Butfor older versions you might
2022-10-20 13:46:22 +0200 <dminuoso> Franciman: No
2022-10-20 13:46:25 +0200 <raehik> yeah that I'm fine with
2022-10-20 13:46:31 +0200 <Franciman> how come?
2022-10-20 13:46:36 +0200 <Franciman> is there a specific reason not to?
2022-10-20 13:46:52 +0200 <merijn> Franciman: "without a specific reason to support it, nobody has bothered"?
2022-10-20 13:47:06 +0200 <Franciman> crystal clear
2022-10-20 13:47:30 +0200 <dminuoso> raehik: there's another alternative, by the way.
2022-10-20 13:47:31 +0200 <Franciman> so haskell has no interest in working with high performance numeric computations?
2022-10-20 13:47:44 +0200 <dminuoso> We could go with (1) *and* expose Word# casted variants of combinators
2022-10-20 13:47:48 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2022-10-20 13:48:22 +0200 <dminuoso> So you have: `anyWord64# :: (Word64# -> Parser e a) -> Parser e a` and `anyWord64'# :: (Word# -> Parser e a) -> Parser e a`
2022-10-20 13:48:48 +0200 <dminuoso> That way, newer GHC users can just use anyWord64, and newer users can too, of for better compatibility decide for anyWord64'# instead.
2022-10-20 13:48:57 +0200 <dminuoso> It defers the compatibility choice to the user
2022-10-20 13:49:07 +0200 <merijn> Franciman: I mean, GMP is already rather high performance
2022-10-20 13:49:28 +0200 <merijn> What high performance numeric problem does Word128# solve?
2022-10-20 13:49:30 +0200 <Franciman> ok i understand
2022-10-20 13:49:30 +0200cfricke(~cfricke@user/cfricke)
2022-10-20 13:49:42 +0200 <dminuoso> Franciman: Feel free to submit a pull request implementing Work128# if you want it?
2022-10-20 13:49:47 +0200 <Franciman> sure
2022-10-20 13:50:02 +0200 <Franciman> i wasn't aware GMP was already high performance
2022-10-20 13:50:03 +0200 <raehik> dminuoso: why not `anyWord# :: (Word# -> ...` ?
2022-10-20 13:50:14 +0200 <Franciman> if it's enough for the haskell communityu, it's probably enough for me too
2022-10-20 13:50:16 +0200 <dminuoso> raehik: And how much does that parse off the input? :P
2022-10-20 13:50:32 +0200 <Franciman> word128# solves various problems in which you work with large numbers without resorting to bignum tricks
2022-10-20 13:50:54 +0200 <Franciman> but there are no widespread architectures supporting word128, so it's only natural
2022-10-20 13:50:55 +0200 <dminuoso> raehik: but honestly, we dont even need that. a user can just unsafeCoerce# a Word64# into Word# themselves for easier use.
2022-10-20 13:50:56 +0200 <raehik> dminuoso: ...could we just give up there and use CPP like in your snippet?
2022-10-20 13:50:56 +0200 <Franciman> that nobody cares
2022-10-20 13:51:08 +0200 <dminuoso> these wrappers might be redundant
2022-10-20 13:51:30 +0200 <dminuoso> raehik: Im not a big fan of the interface/types changing depending on CPP.
2022-10-20 13:51:57 +0200 <dminuoso> Because this forces CPP on consumers if they want broad GHC compatibility
2022-10-20 13:52:10 +0200MajorBiscuit(~MajorBisc@c-001-024-010.client.tudelft.eduvpn.nl) (Quit: WeeChat 3.6)
2022-10-20 13:52:45 +0200 <probie> I think the only time I've used a "Word128" was when doing bitboards for things like Reversi
2022-10-20 13:53:16 +0200 <raehik> dminuoso: ok, haven't thought of wider implications of using CPP before
2022-10-20 13:53:18 +0200 <dminuoso> Franciman: Honestly, I think if we want better optimization potential, auto vectorization in GHC is probably a better source of it/
2022-10-20 13:53:33 +0200 <Franciman> yup
2022-10-20 13:53:35 +0200 <Franciman> i agree
2022-10-20 13:54:29 +0200 <dminuoso> raehik: So I guess that should be the first decision, whether we want to impose CPP onto library users or not.
2022-10-20 13:54:53 +0200 <dminuoso> If not, then its just a matter of "Coerce everything into Word# or not"
2022-10-20 13:55:23 +0200 <dminuoso> Realistically users will hate you for it either way.
2022-10-20 13:57:07 +0200 <dminuoso> If you force Word# for a Word8# on them, and they are on GHC 9.4 its not too terrible. because the main advantage of a native Word8# is being able to pack them densely inside constructors, say `data D = D {-# UNPACK #-} Word8# {-# UNPACK #-} Word8# {-# UNPACK #-} Word8# {-# UNPACK #-} Word8#` being packed into a single Word32# internally
2022-10-20 13:57:21 +0200 <dminuoso> But that's not the side we care about
2022-10-20 13:57:21 +0200 <raehik> I have now viewed the Tweag article on why CPP bad. Good points
2022-10-20 13:57:45 +0200kavvadias(~kavvadias@2001:9e8:632f:ca00:d323:974c:a374:e838) (Quit: Client closed)
2022-10-20 13:59:07 +0200MajorBiscuit(~MajorBisc@c-001-024-010.client.tudelft.eduvpn.nl)
2022-10-20 13:59:37 +0200 <dminuoso> raehik: There is also a case to be made to not provide prim types here at all, and expecting GHC to unbox them.
2022-10-20 13:59:53 +0200 <dminuoso> Given that everything is inlined, the chances of unboxing are extremely high
2022-10-20 14:00:11 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-10-20 14:01:13 +0200 <raehik> mm I appreciate providing parsers using unboxed types for the clear performance implications. but truthfully I do not understand compilation machinery enough to give strong opinions for any of this...!
2022-10-20 14:01:51 +0200 <raehik> we should start some discussion on the repository
2022-10-20 14:02:01 +0200 <dminuoso> Well, we could just move them into an internal module, that would avoid public API being brittle
2022-10-20 14:02:26 +0200nate1(~nate@98.45.169.16)
2022-10-20 14:02:51 +0200 <dminuoso> And then, if its inconvenient to use it (for whatever reason, say because it gives you Word64# on GHC 9.0, or Word# everywhere on 9.4), well tough luck, its an internal module. Write your own if you want a particular flavour.
2022-10-20 14:02:56 +0200 <dminuoso> Maybe, yeah
2022-10-20 14:07:42 +0200nate1(~nate@98.45.169.16) (Ping timeout: 260 seconds)
2022-10-20 14:13:25 +0200shriekingnoise(~shrieking@186.137.167.202)
2022-10-20 14:28:00 +0200_xor(~xor@74.215.182.83) (Quit: brb)
2022-10-20 14:29:48 +0200maerwald(~maerwald@mail.hasufell.de) (Changing host)
2022-10-20 14:29:48 +0200maerwald(~maerwald@user/maerwald)
2022-10-20 14:32:53 +0200_xor(~xor@74.215.182.83)
2022-10-20 14:33:02 +0200enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq)
2022-10-20 14:33:50 +0200acidjnk_new(~acidjnk@p200300d6e7137a87a017d72952e61ce6.dip0.t-ipconnect.de)
2022-10-20 14:46:21 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 272 seconds)
2022-10-20 14:46:49 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-10-20 14:47:13 +0200rockystone(~rocky@user/rockymarine)
2022-10-20 14:51:40 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 252 seconds)
2022-10-20 14:55:36 +0200ec_(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2022-10-20 14:57:41 +0200ec_(~ec@gateway/tor-sasl/ec)
2022-10-20 14:58:26 +0200L29Ah(~L29Ah@wikipedia/L29Ah) (Ping timeout: 268 seconds)
2022-10-20 15:01:26 +0200frost78(~frost@user/frost) (Ping timeout: 244 seconds)
2022-10-20 15:05:14 +0200king_gs(~Thunderbi@2806:103e:29:c5:4fb1:a8c9:906f:c6e0) (Ping timeout: 252 seconds)
2022-10-20 15:07:16 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:dd67:259e:7b08:293e)
2022-10-20 15:08:24 +0200gmg(~user@user/gehmehgeh) (Quit: Leaving)
2022-10-20 15:12:13 +0200`2jt(~jtomas@191.red-88-17-199.dynamicip.rima-tde.net) (Remote host closed the connection)
2022-10-20 15:12:19 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:dd67:259e:7b08:293e) (Ping timeout: 272 seconds)
2022-10-20 15:12:32 +0200`2jt(~jtomas@191.red-88-17-199.dynamicip.rima-tde.net)
2022-10-20 15:16:21 +0200 <sayola> whats the next best thing to a sum type but thats somehow extensible?
2022-10-20 15:17:42 +0200L29Ah(~L29Ah@wikipedia/L29Ah)
2022-10-20 15:20:26 +0200 <lortabac> sayola: it depends, there are several ways to make extensible sum types
2022-10-20 15:21:32 +0200 <lortabac> the simplest one is to add a polymorphic constructor, for eg.: data Foo ext = Foo | Ext ext
2022-10-20 15:21:42 +0200 <probie> A sum type? data ExtendableThingy a = C1 ... | C2 ... | Extend a; type Thingy = ExtendableThingy Void; data MyExt = C3_ ... | C4_ ...; pattern (C3 a b c ...) = Extend (C3_ a b c ..); pattern (C4 a b c ...) = Extend (C4_ a b c ...)
2022-10-20 15:22:16 +0200 <sayola> hmh wasnt thinking about pattern synonyms lol
2022-10-20 15:22:19 +0200rockystone(~rocky@user/rockymarine)
2022-10-20 15:22:33 +0200 <sayola> but i guess that might work
2022-10-20 15:23:11 +0200 <sayola> its for an event type, but which should be extensible so that the user could feed it with other events. the user is also the only one to consume it.
2022-10-20 15:24:13 +0200thegeekinside(~thegeekin@189.180.97.156)
2022-10-20 15:24:35 +0200 <[Leary]> sayola: In that case, I'd suggest `class Typeable e => Event e; data SomeEvent where SomeEvent :: Event e => e -> SomeEvent`.
2022-10-20 15:25:30 +0200causal(~user@50.35.83.177) (Quit: WeeChat 3.6)
2022-10-20 15:25:37 +0200 <probie> In that case, I wouldn't even suggest pattern synonyms. Just keep it simple and have `data Event userEvent = SomeEventType ... | AnotherEventType ... | UserEvent userEvent`
2022-10-20 15:26:09 +0200 <[Leary]> Ah, though I guess if it really is only the user consuming it, then the existential version might be overkill.
2022-10-20 15:26:24 +0200 <[Leary]> Since it doesn't need to play nice with other extensions.
2022-10-20 15:26:34 +0200 <sayola> it be great to pattern match over it in the end, so probably a mix of the basic plus one synonym for a single extension
2022-10-20 15:27:28 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 246 seconds)
2022-10-20 15:29:10 +0200 <sayola> thank you guys
2022-10-20 15:35:50 +0200vglfr(~vglfr@145.224.100.100) (Remote host closed the connection)
2022-10-20 15:36:41 +0200vglfr(~vglfr@145.224.100.100)
2022-10-20 15:38:37 +0200 <probie> sayola: alternatively, you could flip it around, and require the user to embed your event type https://paste.tomsmeding.com/eG3pbKYB
2022-10-20 15:40:34 +0200 <sayola> interesting idea. i'll keep it in mind. i'll work around a bit and see how it works out.
2022-10-20 15:43:28 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2022-10-20 15:43:41 +0200 <probie> I've never done that or seen it done, and it probably won't play nicely with the exhaustiveness checker without requiring the user to add a COMPLETE pragma.
2022-10-20 15:44:55 +0200 <probie> If your code only produces events and never reads them, having the user supply a function `SystemEvent -> UserEvent` is probably the most flexible and convenient solution
2022-10-20 15:45:51 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-10-20 15:45:53 +0200mmhat(~mmh@p200300f1c73377eeee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.7)
2022-10-20 15:47:57 +0200chexum(~quassel@gateway/tor-sasl/chexum) (Quit: No Ping reply in 180 seconds.)
2022-10-20 15:48:48 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-10-20 15:48:48 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-10-20 15:48:48 +0200wroathe(~wroathe@user/wroathe)
2022-10-20 15:50:10 +0200chexum(~quassel@gateway/tor-sasl/chexum)
2022-10-20 15:51:07 +0200mncheck(~mncheck@193.224.205.254)
2022-10-20 15:54:44 +0200rockystone(~rocky@user/rockymarine)
2022-10-20 15:55:49 +0200chomwitt(~chomwitt@2a02:587:dc1e:5e00:1ac0:4dff:fedb:a3f1) (Ping timeout: 246 seconds)
2022-10-20 15:57:17 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 272 seconds)
2022-10-20 16:00:55 +0200chomwitt(~chomwitt@2a02:587:dc1e:5e00:1ac0:4dff:fedb:a3f1)
2022-10-20 16:01:31 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 255 seconds)
2022-10-20 16:02:38 +0200stef204(~stef204@user/stef204)
2022-10-20 16:05:52 +0200vglfr(~vglfr@145.224.100.100) (Remote host closed the connection)
2022-10-20 16:06:47 +0200vglfr(~vglfr@145.224.100.100)
2022-10-20 16:07:37 +0200vglfr(~vglfr@145.224.100.100) (Remote host closed the connection)
2022-10-20 16:08:06 +0200vglfr(~vglfr@145.224.100.100)
2022-10-20 16:10:11 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-20 16:10:50 +0200vglfr(~vglfr@145.224.100.100) (Remote host closed the connection)
2022-10-20 16:12:02 +0200vglfr(~vglfr@145.224.100.100)
2022-10-20 16:15:01 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 272 seconds)
2022-10-20 16:15:04 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 246 seconds)
2022-10-20 16:21:44 +0200raym(~aritra@user/raym)
2022-10-20 16:25:53 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-20 16:29:49 +0200vglfr(~vglfr@145.224.100.100) (Remote host closed the connection)
2022-10-20 16:30:33 +0200vglfr(~vglfr@145.224.100.100)
2022-10-20 16:31:10 +0200vglfr(~vglfr@145.224.100.100) (Remote host closed the connection)
2022-10-20 16:33:30 +0200vglfr(~vglfr@145.224.100.100)
2022-10-20 16:38:40 +0200vglfr(~vglfr@145.224.100.100) (Remote host closed the connection)
2022-10-20 16:39:47 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2022-10-20 16:39:49 +0200vglfr(~vglfr@145.224.100.100)
2022-10-20 16:39:52 +0200vglfr(~vglfr@145.224.100.100) (Remote host closed the connection)
2022-10-20 16:40:14 +0200beteigeuze(~Thunderbi@a79-169-109-107.cpe.netcabo.pt)
2022-10-20 16:42:47 +0200vglfr(~vglfr@145.224.100.100)
2022-10-20 16:45:12 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 260 seconds)
2022-10-20 16:53:01 +0200vglfr(~vglfr@145.224.100.100) (Remote host closed the connection)
2022-10-20 16:53:46 +0200vglfr(~vglfr@145.224.100.100)
2022-10-20 16:54:50 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz
)
2022-10-20 16:59:04 +0200shriekingnoise(~shrieking@186.137.167.202) (Quit: Quit)
2022-10-20 16:59:27 +0200Sgeo(~Sgeo@user/sgeo)
2022-10-20 17:06:19 +0200acidjnk_new(~acidjnk@p200300d6e7137a87a017d72952e61ce6.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
2022-10-20 17:08:11 +0200o-90(~o-90@gateway/tor-sasl/o-90)
2022-10-20 17:08:44 +0200 <zzz> why are cyclic imports a problem in haskell?
2022-10-20 17:09:13 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-10-20 17:11:44 +0200AlexZenon(~alzenon@178.34.163.70) (Quit: ;-)
2022-10-20 17:12:04 +0200Alex_test(~al_test@178.34.163.70) (Quit: ;-)
2022-10-20 17:12:24 +0200AlexNoo(~AlexNoo@178.34.163.70) (Quit: Leaving)
2022-10-20 17:14:04 +0200o-90(~o-90@gateway/tor-sasl/o-90) (Remote host closed the connection)
2022-10-20 17:14:32 +0200shriekingnoise(~shrieking@186.137.167.202)
2022-10-20 17:14:47 +0200 <lortabac> zzz: do you mean what is the technical reason why GHC doesn't support them without hs-boot files?
2022-10-20 17:15:21 +0200shriekingnoise(~shrieking@186.137.167.202) (Client Quit)
2022-10-20 17:15:47 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-10-20 17:16:47 +0200shriekingnoise(~shrieking@186.137.167.202)
2022-10-20 17:19:06 +0200 <zzz> i don't know what hs-boot files are but yes i guess that's what i'm asking
2022-10-20 17:21:57 +0200shriekingnoise(~shrieking@186.137.167.202) (Quit: Quit)
2022-10-20 17:22:13 +0200littlefinger(~littlefin@pool-74-102-98-242.nwrknj.fios.verizon.net)
2022-10-20 17:22:31 +0200 <lortabac> zzz: hs-boot files are special files that are needed to compile mutually recursive modules https://downloads.haskell.org/ghc/latest/docs/users_guide/separate_compilation.html#how-to-compile

2022-10-20 17:23:04 +0200 <lortabac> I don't know exactly what the technical issue is, but I'm sure it has something to do with the fact that modules are the basic compilation unit in GHC
2022-10-20 17:23:37 +0200shriekingnoise(~shrieking@186.137.167.202)
2022-10-20 17:25:41 +0200 <lortabac> mutually recursive modules require the compiler to be somehow able of more granularity than modules
2022-10-20 17:26:37 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 260 seconds)
2022-10-20 17:27:01 +0200AlexNoo(~AlexNoo@178.34.163.70)
2022-10-20 17:27:03 +0200 <geekosaur> less granular, actually: it would need to compile two modules at once, each referencing the other
2022-10-20 17:27:09 +0200AlexNoo(~AlexNoo@178.34.163.70) (Client Quit)
2022-10-20 17:27:25 +0200 <lortabac> geekosaur: that's also another possibility
2022-10-20 17:27:30 +0200AlexZenon(~alzenon@178.34.163.70)
2022-10-20 17:27:51 +0200 <geekosaur> it can do that *within* a single module (you can have data Foo = Foo Bar at the top and data Bar ... at the bottom, but not across modules
2022-10-20 17:27:55 +0200 <lortabac> I meant something like: compile one function from module A, then one function from module B, then another from module A etc.
2022-10-20 17:28:26 +0200 <geekosaur> s/.../= Bar Foo/
2022-10-20 17:28:38 +0200AlexNoo(~AlexNoo@178.34.163.70)
2022-10-20 17:29:39 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-10-20 17:30:02 +0200cfricke(~cfricke@user/cfricke) (Quit: WeeChat 3.7)
2022-10-20 17:32:01 +0200Alex_test(~al_test@178.34.163.70)
2022-10-20 17:32:38 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2022-10-20 17:32:48 +0200yvan-sraka(~yvan-srak@2001:470:1f13:21d:e7f8:f613:453a:84bf)
2022-10-20 17:32:54 +0200 <zzz> why don't we just concatenate everything that's imported into a single file and compile that?
2022-10-20 17:34:20 +0200 <zzz> (solving for name collisions etc of course)
2022-10-20 17:34:24 +0200kenran`(~user@user/kenran) (Remote host closed the connection)
2022-10-20 17:34:32 +0200 <geekosaur> because you may not have the file to import, you may only have a .hi file from a compiled package. granting you can't have a recursive import in that case, but then that means you have two different kinds of imports to deal with
2022-10-20 17:34:51 +0200 <geekosaur> remember, separate compilation, not whole-program
2022-10-20 17:35:13 +0200jakalx(~jakalx@base.jakalx.net)
2022-10-20 17:36:01 +0200 <geekosaur> oh, and no way to tell which kind of import is which from the source; the compiler only finds out when it tries to do the import
2022-10-20 17:36:25 +0200 <zzz> fair enough. so that's the main reason
2022-10-20 17:37:37 +0200 <geekosaur> it's a bit late to try to turn ghc into a whole-program compiler (although I think someone recently=ish tried to?) and the memory usage would really explode
2022-10-20 17:38:09 +0200 <geekosaur> https://github.com/grin-compiler/ghc-grin
2022-10-20 17:39:24 +0200 <geekosaur> which is one of the major reasons for ghc being module at a time, as is even that can use a lot of memory
2022-10-20 17:40:26 +0200akegalj(~akegalj@213-202-90-118.dsl.iskon.hr) (Quit: leaving)
2022-10-20 17:42:28 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-20 17:43:04 +0200tremon(~tremon@83-84-18-241.cable.dynamic.v4.ziggo.nl)
2022-10-20 17:43:21 +0200stef204(~stef204@user/stef204) (Quit: WeeChat 3.7)
2022-10-20 17:45:38 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:dd67:259e:7b08:293e)
2022-10-20 17:48:46 +0200 <tomsmeding> geekosaur: are you talking about the GHC-WPC project thing by Csaba Hruska?
2022-10-20 17:48:57 +0200 <tomsmeding> (just dropping the name in case you forgot and were looking for it)
2022-10-20 17:49:21 +0200 <tomsmeding> oh this is also csaba :D
2022-10-20 17:49:26 +0200 <geekosaur> maybe there are multiiple. I recall grin wanted to do WPC for some reason though
2022-10-20 17:50:07 +0200 <tomsmeding> seems said project is linked from the ghc-grin repo readme
2022-10-20 17:50:56 +0200yvan-sraka(~yvan-srak@2001:470:1f13:21d:e7f8:f613:453a:84bf) (Remote host closed the connection)
2022-10-20 17:52:26 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
2022-10-20 17:54:25 +0200shriekingnoise(~shrieking@186.137.167.202) (Remote host closed the connection)
2022-10-20 17:54:35 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:3f57:8fd:2b35:c02c) (Quit: WeeChat 2.8)
2022-10-20 17:55:37 +0200shriekingnoise(~shrieking@186.137.167.202)
2022-10-20 17:56:14 +0200Topsi(~Topsi@dyndsl-095-033-094-034.ewe-ip-backbone.de)
2022-10-20 17:58:31 +0200MajorBiscuit(~MajorBisc@c-001-024-010.client.tudelft.eduvpn.nl) (Ping timeout: 255 seconds)
2022-10-20 17:58:44 +0200shriekingnoise(~shrieking@186.137.167.202) (Client Quit)
2022-10-20 17:59:46 +0200shriekingnoise(~shrieking@186.137.167.202)
2022-10-20 18:03:31 +0200milia(~milia@user/milia)
2022-10-20 18:04:05 +0200nate1(~nate@98.45.169.16)
2022-10-20 18:05:11 +0200 <EvanR> dminuoso, I'm told it's more idiomatic to pass updated state back in a tuple and carefully thread the latest state through each function call (in elixir) which I'm just going to say "isn't monads" xD
2022-10-20 18:05:19 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2022-10-20 18:05:29 +0200 <EvanR> because there's no type system or sugar to help with that
2022-10-20 18:06:55 +0200HackingSpring(~haru@201-27-75-20.dsl.telesp.net.br)
2022-10-20 18:08:07 +0200beteigeuze(~Thunderbi@a79-169-109-107.cpe.netcabo.pt) (Ping timeout: 246 seconds)
2022-10-20 18:08:52 +0200nate1(~nate@98.45.169.16) (Ping timeout: 255 seconds)
2022-10-20 18:09:21 +0200razetime(~quassel@117.254.34.48)
2022-10-20 18:11:33 +0200 <EvanR> dminuoso, I've seen this paper but I didn't realize it was only 4 pages... thanks
2022-10-20 18:12:58 +0200vglfr(~vglfr@145.224.100.100) (Ping timeout: 252 seconds)
2022-10-20 18:18:43 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-10-20 18:19:21 +0200Goodbye_Vincent(cyvahl@freakshells.net) (Quit: Ping timeout (120 seconds))
2022-10-20 18:20:45 +0200mastarija(~mastarija@212.15.178.9)
2022-10-20 18:20:58 +0200 <HackingSpring> Hey, folks. Coming here to get some help. If this is not the right place, please let me know. I'm trying to debug a compiled haskell program with lldb. I can't get the bare example from ghc user guide docs to work. Maybe worth noting, I'm using a mac m1. Is there some limitation for darwin arm?
2022-10-20 18:23:03 +0200 <mastarija> Where is the list of packages installed with `cabal install`?
2022-10-20 18:23:55 +0200 <HackingSpring> What I'm doing: a simple Main.hs with a main function and a simple adder function. I'm compiling the file with these ghc flags: -g3,-rtsopts,-O0. Afterwards, I execute dsymutil Main (which, btw, tells me "warning: no debug symbols in executable (-arch arm64)") and execute `lldb Main -- +RTS -V0`
2022-10-20 18:25:30 +0200 <HackingSpring> once into lldb, I can't set breakpoints using `Main.hs:3`. It also doesn't work when using the extended command `breakpoint set --file Main.hs --line 4`
2022-10-20 18:26:06 +0200 <HackingSpring> neither can I execute `target symbols add Main.dSYM` to get that functionality
2022-10-20 18:26:30 +0200 <HackingSpring> am I missing something while compilling/executing?
2022-10-20 18:28:38 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz
)
2022-10-20 18:28:53 +0200Goodbye_Vincent(cyvahl@freakshells.net)
2022-10-20 18:30:16 +0200MajorBiscuit(~MajorBisc@86-88-79-148.fixed.kpn.net)
2022-10-20 18:31:53 +0200 <geekosaur> mastarija, normally library packages are installed under ~/.cabal/store and exposed as needed according to cabal files, so so you can have multiple versions of packages installed without causing conflicts
2022-10-20 18:32:10 +0200 <geekosaur> you should generally not try to manage this yourself
2022-10-20 18:32:22 +0200 <geekosaur> but let cabal do it
2022-10-20 18:32:23 +0200 <mastarija> I want to delete that file :)
2022-10-20 18:33:57 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-10-20 18:34:00 +0200 <mastarija> geekosaur, I don't think that's it
2022-10-20 18:34:09 +0200 <mastarija> that's a folder containing libraries
2022-10-20 18:34:15 +0200 <geekosaur> there is no "file" unless you';ve been installing with --lib, in which case you want to look for something like .ghc.environment.<ghcver>
2022-10-20 18:34:44 +0200 <geekosaur> otherwise I think you're assuming cabal is doing something it isn't
2022-10-20 18:35:00 +0200 <mastarija> yes, that's it I think
2022-10-20 18:36:46 +0200MajorBiscuit(~MajorBisc@86-88-79-148.fixed.kpn.net) (Ping timeout: 255 seconds)
2022-10-20 18:37:45 +0200isamiamsam(~d@zukertort.childrenofmay.org)
2022-10-20 18:38:09 +0200mastarija(~mastarija@212.15.178.9) (Quit: Leaving)
2022-10-20 18:39:38 +0200 <isamiamsam> is there a way to automatically generate Read instances that allow the terse constructor syntax?
2022-10-20 18:39:39 +0200 <geekosaur> HackingSpring, I don't think DWARF support is provided in current release versions of ghc; you'd have to build it yourself
2022-10-20 18:39:44 +0200 <geekosaur> skkukuk «xmonad*skkukuk» ⁅xmonad-bsa⁆ Z$ grep libdw $(ghc --print-libdir)/settings
2022-10-20 18:39:44 +0200 <geekosaur> ,("RTS expects libdw", "NO")
2022-10-20 18:39:54 +0200 <EvanR> I vaguely remember ghc-pkg list
2022-10-20 18:40:16 +0200 <geekosaur> EvanR, there's no package db in either --lib or store cases
2022-10-20 18:40:25 +0200 <geekosaur> that's only used for bootlibs these days
2022-10-20 18:40:34 +0200 <geekosaur> and you can't delete those without breaking ghc
2022-10-20 18:41:32 +0200 <EvanR> isamiamsam, terse constructor syntax?
2022-10-20 18:41:53 +0200Tuplanolla(~Tuplanoll@91-159-69-245.elisa-laajakaista.fi)
2022-10-20 18:42:22 +0200 <HackingSpring> geekosaur: are you talking about the execution of "dsymutil Main"?
2022-10-20 18:42:46 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 246 seconds)
2022-10-20 18:43:24 +0200raym(~aritra@user/raym) (Quit: leaving)
2022-10-20 18:44:10 +0200 <isamiamsam> EvanR: where you don't specify the field names
2022-10-20 18:44:42 +0200 <geekosaur> HackingSpring, from the manual: "GHC binary distributions configured in this way are provided for a select number of platforms; other platforms are advised to build using Hadrian’s +debug_info flavour transformer. Note as well that the built-in unwinding support provided by the base library’s GHC.ExecutionStack module requires that the runtime system be built with libdw support enabled (using the --enable-dwarf-unwind flag to configure wh
2022-10-20 18:44:42 +0200 <geekosaur> ile building the compiler) and a platform which libdw supports."
2022-10-20 18:45:51 +0200 <geekosaur> also "Currently only DWARF debug information is supported on x86-64 and i386." which implies no support for M1s
2022-10-20 18:46:12 +0200 <geekosaur> this from the 9.4.2 manual
2022-10-20 18:46:24 +0200 <EvanR> isamiamsam, i just found this https://hackage.haskell.org/package/deriving-show-simple
2022-10-20 18:46:33 +0200 <EvanR> dammit that is Show not Read
2022-10-20 18:46:58 +0200 <HackingSpring> oof, I was completely blind when reading that section. thanks for helping me, geekosaur
2022-10-20 18:49:38 +0200 <EvanR> https://hackage.haskell.org/package/deriving-compat-0.6.1 seems to have code for deriving Read instances, but no option to skip field names. But it might contain something to go on
2022-10-20 18:50:15 +0200nschoe(~q@141.101.51.197) (Ping timeout: 255 seconds)
2022-10-20 18:54:24 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-20 18:54:42 +0200Everything(~Everythin@37.115.210.35) (Ping timeout: 260 seconds)
2022-10-20 18:55:28 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 258 seconds)
2022-10-20 18:56:53 +0200raym(~aritra@user/raym)
2022-10-20 18:57:16 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-10-20 18:58:15 +0200econo(uid147250@user/econo)
2022-10-20 18:58:48 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 255 seconds)
2022-10-20 19:00:21 +0200shriekingnoise(~shrieking@186.137.167.202) (Quit: Quit)
2022-10-20 19:04:13 +0200rockystone(~rocky@user/rockymarine)
2022-10-20 19:05:11 +0200vglfr(~vglfr@145.224.100.100)
2022-10-20 19:06:37 +0200razetime(~quassel@117.254.34.48) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2022-10-20 19:07:24 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:dd67:259e:7b08:293e) (Remote host closed the connection)
2022-10-20 19:11:39 +0200akegalj(~akegalj@212.15.177.32)
2022-10-20 19:13:12 +0200raym(~aritra@user/raym) (Quit: leaving)
2022-10-20 19:14:11 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-20 19:15:10 +0200 <lyxia> isamiamsam: using generic-data https://gist.github.com/Lysxia/0951fc852da2bb3274433f241a013307
2022-10-20 19:16:23 +0200birdgoose(~jesse@2406:e003:1d87:6601:e725:b6b4:ace8:4ebe)
2022-10-20 19:17:19 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2022-10-20 19:18:28 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 246 seconds)
2022-10-20 19:19:02 +0200mvk(~mvk@2607:fea8:5ce3:8500::a80f)
2022-10-20 19:19:32 +0200akegalj(~akegalj@212.15.177.32) (Read error: Connection reset by peer)
2022-10-20 19:19:32 +0200gentauro(~gentauro@user/gentauro) (Read error: Connection reset by peer)
2022-10-20 19:24:49 +0200gentauro(~gentauro@user/gentauro)
2022-10-20 19:25:27 +0200littlefinger(~littlefin@pool-74-102-98-242.nwrknj.fios.verizon.net) (Ping timeout: 244 seconds)
2022-10-20 19:25:32 +0200polo(sid532813@user/polo)
2022-10-20 19:26:17 +0200birdgoose(~jesse@2406:e003:1d87:6601:e725:b6b4:ace8:4ebe) (Ping timeout: 272 seconds)
2022-10-20 19:27:48 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2022-10-20 19:33:57 +0200jakalx(~jakalx@base.jakalx.net)
2022-10-20 19:34:10 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Quit: ZNC - https://znc.in)
2022-10-20 19:34:47 +0200mbuf(~Shakthi@49.204.135.71) (Quit: Leaving)
2022-10-20 19:34:57 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-20 19:36:26 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-10-20 19:39:18 +0200heartburn(~gass@2a00:d880:3:1::b1e4:b241) (Ping timeout: 240 seconds)
2022-10-20 19:40:36 +0200wonko(~wjc@2a0e:1c80:2:0:45:15:19:130) (Ping timeout: 252 seconds)
2022-10-20 19:40:46 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:dd67:259e:7b08:293e)
2022-10-20 19:53:07 +0200feliix42(~felix@gibbs.uberspace.de) (Read error: Connection reset by peer)
2022-10-20 19:53:07 +0200AWizzArd(~code@gehrels.uberspace.de) (Read error: Connection reset by peer)
2022-10-20 19:55:59 +0200feliix42(~felix@gibbs.uberspace.de)
2022-10-20 19:58:44 +0200AWizzArd(~code@gehrels.uberspace.de)
2022-10-20 20:00:03 +0200heartburn(~gass@2a00:d880:3:1::b1e4:b241)
2022-10-20 20:07:35 +0200ulvarrefr(~user@188.124.56.153)
2022-10-20 20:07:41 +0200 <isamiamsam> lyxia: awesome
2022-10-20 20:10:07 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:dd67:259e:7b08:293e) (Remote host closed the connection)
2022-10-20 20:15:59 +0200acidjnk_new(~acidjnk@p200300d6e7137a985cc769c881031731.dip0.t-ipconnect.de)
2022-10-20 20:19:59 +0200mvk(~mvk@2607:fea8:5ce3:8500::a80f) (Quit: Going elsewhere)
2022-10-20 20:20:23 +0200mvk(~mvk@2607:fea8:5ce3:8500::a80f)
2022-10-20 20:23:52 +0200raym(~aritra@user/raym)
2022-10-20 20:25:22 +0200AlexNoo_(~AlexNoo@178.34.162.124)
2022-10-20 20:25:22 +0200kenran(~user@user/kenran)
2022-10-20 20:27:27 +0200AlexZenon(~alzenon@178.34.163.70) (Ping timeout: 255 seconds)
2022-10-20 20:28:59 +0200Alex_test(~al_test@178.34.163.70) (Ping timeout: 272 seconds)
2022-10-20 20:28:59 +0200AlexNoo(~AlexNoo@178.34.163.70) (Ping timeout: 272 seconds)
2022-10-20 20:31:24 +0200 <EvanR> updating thunk for this subject to generic-data xD
2022-10-20 20:32:21 +0200Alex_test(~al_test@178.34.162.124)
2022-10-20 20:32:30 +0200AlexZenon(~alzenon@178.34.162.124)
2022-10-20 20:35:36 +0200ubert(~Thunderbi@77.119.160.6.wireless.dyn.drei.com) (Remote host closed the connection)
2022-10-20 20:37:12 +0200birdgoose(~birdgoose@222-153-24-178-adsl.sparkbb.co.nz)
2022-10-20 20:37:22 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 260 seconds)
2022-10-20 20:54:42 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-20 20:56:41 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2022-10-20 20:59:25 +0200ksu(~ksu@user/prtr) (Ping timeout: 252 seconds)
2022-10-20 21:00:19 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 255 seconds)
2022-10-20 21:04:37 +0200AlexNoo_AlexNoo
2022-10-20 21:04:46 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-20 21:05:57 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds)
2022-10-20 21:05:59 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:dd67:259e:7b08:293e)
2022-10-20 21:11:19 +0200LukeHoersten(~LukeHoers@user/lukehoersten)
2022-10-20 21:12:45 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-10-20 21:13:16 +0200mc47(~mc47@xmonad/TheMC47)
2022-10-20 21:18:41 +0200kenran(~user@user/kenran) (Remote host closed the connection)
2022-10-20 21:22:10 +0200Momentum(momentum@tilde.team)
2022-10-20 21:23:21 +0200polo(sid532813@user/polo) ()
2022-10-20 21:24:36 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 255 seconds)
2022-10-20 21:24:52 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-10-20 21:27:51 +0200danza(~francesco@151.43.69.239)
2022-10-20 21:28:11 +0200LukeHoersten(~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz
)
2022-10-20 21:29:53 +0200LukeHoersten(~LukeHoers@user/lukehoersten)
2022-10-20 21:31:51 +0200LukeHoersten(~LukeHoers@user/lukehoersten) (Client Quit)
2022-10-20 21:35:28 +0200Maja(~quassel@178-37-215-128.adsl.inetia.pl) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2022-10-20 21:37:43 +0200polo_(sid532813@id-532813.tinside.irccloud.com)
2022-10-20 21:37:57 +0200polo_(sid532813@id-532813.tinside.irccloud.com) (Client Quit)
2022-10-20 21:38:10 +0200polo_(sid532813@user/polo)
2022-10-20 21:38:50 +0200polo_polo
2022-10-20 21:39:06 +0200pavonia(~user@user/siracusa)
2022-10-20 21:42:51 +0200[Ristovski](~Ristovski@hellomouse/perf/ristovski)
2022-10-20 21:42:52 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:dd67:259e:7b08:293e) (Remote host closed the connection)
2022-10-20 21:46:48 +0200rockystone(~rocky@user/rockymarine)
2022-10-20 21:51:19 +0200ksu(~ksu@user/prtr)
2022-10-20 21:55:13 +0200[Ristovski](~Ristovski@hellomouse/perf/ristovski) (Ping timeout: 258 seconds)
2022-10-20 21:55:17 +0200Ristovsk-(~Ristovski@hellomouse/perf/ristovski)
2022-10-20 21:56:06 +0200raym(~aritra@user/raym) (Quit: leaving)
2022-10-20 21:56:07 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 260 seconds)
2022-10-20 21:56:44 +0200rockystone(~rocky@user/rockymarine)
2022-10-20 22:01:44 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 258 seconds)
2022-10-20 22:02:51 +0200rockystone(~rocky@user/rockymarine)
2022-10-20 22:05:36 +0200nate1(~nate@98.45.169.16)
2022-10-20 22:08:15 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 258 seconds)
2022-10-20 22:09:10 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 255 seconds)
2022-10-20 22:10:04 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-10-20 22:10:33 +0200nate1(~nate@98.45.169.16) (Ping timeout: 258 seconds)
2022-10-20 22:18:46 +0200mestre(~mestre@191.177.185.178)
2022-10-20 22:19:17 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-20 22:25:01 +0200raym(~aritra@user/raym)
2022-10-20 22:29:10 +0200littlefinger(~littlefin@pool-74-102-98-242.nwrknj.fios.verizon.net)
2022-10-20 22:37:00 +0200yvan-sraka(~yvan-srak@2a01cb0802a4b900266adbf2c2065e5f.ipv6.abo.wanadoo.fr)
2022-10-20 22:43:23 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:dd67:259e:7b08:293e)
2022-10-20 22:46:09 +0200littlefinger(~littlefin@pool-74-102-98-242.nwrknj.fios.verizon.net) (Quit: Client closed)
2022-10-20 22:48:19 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:dd67:259e:7b08:293e) (Ping timeout: 272 seconds)
2022-10-20 22:56:05 +0200ec_(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2022-10-20 23:02:49 +0200jmdaemon(~jmdaemon@user/jmdaemon)
2022-10-20 23:04:17 +0200wonko(~wjc@2a0e:1c80:2:0:45:15:19:130)
2022-10-20 23:09:00 +0200tremon(~tremon@83-84-18-241.cable.dynamic.v4.ziggo.nl) (Quit: getting boxed in)
2022-10-20 23:09:43 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2022-10-20 23:10:11 +0200coot(~coot@213.134.171.3)
2022-10-20 23:15:24 +0200yvan-sraka(~yvan-srak@2a01cb0802a4b900266adbf2c2065e5f.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
2022-10-20 23:16:55 +0200mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2022-10-20 23:17:03 +0200 <Alex_test> 1862
2022-10-20 23:17:44 +0200zeenk(~zeenk@2a02:2f04:a105:5d00:c862:f190:2ea:d494) (Quit: Konversation terminated!)
2022-10-20 23:18:29 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-10-20 23:21:20 +0200acidjnk_new(~acidjnk@p200300d6e7137a985cc769c881031731.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2022-10-20 23:21:43 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz
)
2022-10-20 23:23:46 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 258 seconds)
2022-10-20 23:24:08 +0200chexum(~quassel@gateway/tor-sasl/chexum) (Quit: No Ping reply in 180 seconds.)
2022-10-20 23:24:35 +0200chomwitt(~chomwitt@2a02:587:dc1e:5e00:1ac0:4dff:fedb:a3f1) (Remote host closed the connection)
2022-10-20 23:25:20 +0200yvan-sraka(~yvan-srak@2a01cb0802a4b900c2769ca0f3b46125.ipv6.abo.wanadoo.fr)
2022-10-20 23:25:38 +0200chexum(~quassel@gateway/tor-sasl/chexum)
2022-10-20 23:25:49 +0200coot(~coot@213.134.171.3) (Quit: coot)
2022-10-20 23:32:12 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2022-10-20 23:32:19 +0200ec(~ec@gateway/tor-sasl/ec)
2022-10-20 23:38:04 +0200milia(~milia@user/milia) (Quit: leaving)
2022-10-20 23:39:45 +0200Athas(athas@sigkill.dk) (Quit: ZNC 1.8.2 - https://znc.in)
2022-10-20 23:41:01 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 258 seconds)
2022-10-20 23:43:18 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-10-20 23:44:39 +0200ft(~ft@p3e9bc845.dip0.t-ipconnect.de)
2022-10-20 23:45:37 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-20 23:47:32 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 258 seconds)
2022-10-20 23:49:02 +0200caryhartline(~caryhartl@2600:1700:2d0:8d30:989e:e378:903e:38da)
2022-10-20 23:49:10 +0200cyphase(~cyphase@user/cyphase) (Ping timeout: 246 seconds)
2022-10-20 23:49:14 +0200max25(~max25@187.32.187.113)
2022-10-20 23:49:23 +0200max25(~max25@187.32.187.113) ()
2022-10-20 23:49:30 +0200`2jt(~jtomas@191.red-88-17-199.dynamicip.rima-tde.net) (Ping timeout: 255 seconds)
2022-10-20 23:50:18 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 252 seconds)
2022-10-20 23:50:59 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2022-10-20 23:51:20 +0200detuneattune(~detuneatt@user/detuneattune) (Quit: detuneattune)
2022-10-20 23:51:22 +0200bitmapper(uid464869@id-464869.lymington.irccloud.com)
2022-10-20 23:51:57 +0200zkSNOOP(~username@ptr-21zvp7pbt2o6jn2ooyl.18120a2.ip6.access.telenet.be) ()
2022-10-20 23:54:07 +0200cyphase(~cyphase@user/cyphase)
2022-10-20 23:55:20 +0200EvanR(~EvanR@user/evanr) (Quit: Leaving)
2022-10-20 23:56:28 +0200Athas(athas@2a01:7c8:aaac:1cf:d087:7abc:7f63:ba68)
2022-10-20 23:58:37 +0200vglfr(~vglfr@145.224.100.100) (Ping timeout: 272 seconds)
2022-10-20 23:59:22 +0200vglfr(~vglfr@145.224.100.100)