Home freenode/#haskell: Logs Calendar

Logs: freenode/#haskell

←Prev  Next→
Page 1 .. 5015 5016 5017 5018 5019 5020 5021 5022
502,152 events total
2021-05-22 02:34:36 <wroathe> That's too bad. Getting Carmack onboard would've done a lot for functional programming and gaming
2021-05-22 02:34:44 <edwardk> the #haskell-game folks did all the other stuff like sdl, etc
2021-05-22 02:34:51 <ezzieyguywuf> ah, drat
2021-05-22 02:34:53 <edwardk> wroathe: it made me sad
2021-05-22 02:35:35 star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2021-05-22 02:35:49 <ezzieyguywuf> I've been brushing up on opengl for an interview next week (😯 i can't believe someone actually wants to interview me) - I'm a bit surprised that I didn't need to use something like glew or glad in my opengl haskell code
2021-05-22 02:36:09 <ezzieyguywuf> is that somehow handled behind-the-scenes?
2021-05-22 02:36:14 <edwardk> yeah
2021-05-22 02:37:09 <ezzieyguywuf> in a cross-platform way? how? is the glew/glad stuff essentially re-written?
2021-05-22 02:38:24 <edwardk> basically we hook in in a similar fashion and i codegen something that manufactures a thunk for each function once each time it has to get it from the driver
2021-05-22 02:38:39 falafel joins (~falafel@2600:8800:4700:53f0:f53c:2c68:6b15:1c2d)
2021-05-22 02:39:13 <ezzieyguywuf> dang bro - no idea what that means but seems damned impressive
2021-05-22 02:39:32 <ezzieyguywuf> "codegen" and "from the driver" seem to stand out
2021-05-22 02:39:33 carlomagno joins (~cararell@148.87.23.4)
2021-05-22 02:39:40 <edwardk> there's a few compile options that set up https://github.com/ekmett/gl/blob/master/gl/cbits/gl.c which exports a void * hs_gl_getProcAddress(const char *name) -- that lets us ask the opengl driver for functions by name. then i set up machinery that caches them all based on the contents of that xml document
2021-05-22 02:40:42 <edwardk> in 99.9% of the scenarios you need opengl for, this 'just works'. there's a vanishingly small fraction of the time when you need to run multiple instances of opengl in a given process where the scheme i use would need to be elaborated upon
2021-05-22 02:41:20 × star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Read error: Connection reset by peer)
2021-05-22 02:41:22 <edwardk> e.g. if you need a legacy opengl 2 context and an opengl 4.1 context, because say, you are writing some kind of application that needs to interop with a bunch of ancient crufty opengl code _and_ qt quick or something
2021-05-22 02:41:46 <edwardk> but those are really rare cases
2021-05-22 02:43:06 × Sigyn quits (~lokasenna@freenode/utility-bot/sigyn) (Read error: Connection reset by peer)
2021-05-22 02:43:31 Sigyn joins (~lokasenna@freenode/utility-bot/sigyn)
2021-05-22 02:43:31 ChanServ sets mode +o Sigyn
2021-05-22 02:44:01 <edwardk> in those scenarios then some code i offer might have the wrong semantics. e.g. https://github.com/ekmett/gl/blob/master/gl/src/Graphics/GL/Internal/Proc.hs#L58 assumes it can enumerate all the extensions once and for all, because you won't be using several opengl drivers at the same time, without it i'd have to give back an IO action, and then you couldn't use the little feature flag detectors as pattern guards without making your own
2021-05-22 02:44:01 <edwardk> copies of them and passing them around.
2021-05-22 02:44:12 <ezzieyguywuf> hm, maybe I misunderstood what glew was doing, but I thought it was a bunch of preprocessor stuff that was like `#if NVIDIA_TI_1050I (then do this thing) #if NEWER_NVIDIA (do this other thing)` etc.
2021-05-22 02:44:58 × LiberaStaff quits (~comcat@gateway/tor-sasl/comcat) (Killed (Sigyn (Spam is off topic on freenode.)))
2021-05-22 02:45:09 <edwardk> nah, we don't need to do anything like that, we ask the driver for the extension set, and the extensions are all documented and comply (mostly) with the xml specification from khronos modulo a couple glaring errors
2021-05-22 02:45:20 <edwardk> that tells us the signature of the functions, and the names of the constants
2021-05-22 02:45:44 <edwardk> so i package them up in modules using a boatload of ad hoc preprocessing and fetch standard documentation and try to include it
2021-05-22 02:45:50 <edwardk> and poof, opengl.
2021-05-22 02:46:02 <ezzieyguywuf> awesome
2021-05-22 02:46:22 <ezzieyguywuf> now I'm trying to read up on "carmack bouncing off haskell"
2021-05-22 02:46:27 <ezzieyguywuf> he seems like a pretty important dude
2021-05-22 02:47:09 <edwardk> he talked about it at quakecon at one point. he and his son settled into doing some gamedev stuff in racket afterwards. i treated it like a personal failing on the part of haskell and took some time to try to avoid that sort of failure in the future
2021-05-22 02:48:05 <ezzieyguywuf> i'm watching the quackecon thing now
2021-05-22 02:48:13 <edwardk> so gl was to make it so using opengl wasn't just observably worse than working in other languages. (the old opengl binding would kinda sorta let you work with opengl 3.3 but nothing newer, but forced you to use weird haskelly names for everything and had no documentation and hid internals from you preventing you from gracefully degrading to use the 'raw' bindings when you got stuck
2021-05-22 02:48:55 <edwardk> and i've done a couple passes on building higher level bindings, and started playing around with signed distance field rendering and the like. nowadays the latter is pretty common actually, shadertoy popularized the shit out of it
2021-05-22 02:48:59 <ezzieyguywuf> edwardk: I can say - and this coming from someone that knew zero about opengl - my experience in haskell was very nice
2021-05-22 02:49:10 <ezzieyguywuf> I was able to follow right along with the learnopengl.com thing
2021-05-22 02:49:27 <edwardk> i'm very heartened to hear that. that was precisely my goal with shipping gl
2021-05-22 02:49:45 <ezzieyguywuf> there were one or two things early on that I ended up peeking at some dude's code, who also tried to do learnopengl in haskell. but it wasn't specific to the bindings at all, it was haskell-specific stuff
2021-05-22 02:49:56 <ezzieyguywuf> (i.e. like pointers and peek etc)
2021-05-22 02:50:03 <edwardk> yeah
2021-05-22 02:50:06 <mniip> yikes
2021-05-22 02:50:07 <edwardk> haskell ffi is a strange beast
2021-05-22 02:50:15 <edwardk> mniip: yikes?
2021-05-22 02:52:23 <mniip> I've had several people assume that the spam is ours
2021-05-22 02:52:46 <edwardk> mniip: the 'move to libera.chat' stuff?
2021-05-22 02:52:56 <mniip> yeah
2021-05-22 02:53:10 <edwardk> seems to be the usual crowd of shit-stirrers
2021-05-22 02:53:34 <mniip> it is
2021-05-22 02:53:37 <ezzieyguywuf> hah, the whole gentoo crew seems to be moving
2021-05-22 02:53:46 <ezzieyguywuf> *shrug* I registered the nick and figured I'd wait for the dust to settle.
2021-05-22 02:54:10 <mniip> it's not hard to figure out who it is if you've been on freenode for a while
2021-05-22 02:54:34 <edwardk> i've mostly moved over. i lurk in here to do what i can here and there but i expect if i lost connection to freenode on irccloud i'd probably fail to notice it.
2021-05-22 02:54:40 <ski> mniip : spam's occuring on multiple other networks, too
2021-05-22 02:54:49 <mniip> makes sense
2021-05-22 02:54:51 <edwardk> i'm rather heartened at quite how many folks have made the move
2021-05-22 02:54:58 <mniip> yup
2021-05-22 02:55:06 <edwardk> my expectation a priori was that it'd be a third of what we got
2021-05-22 02:55:18 sm joins (~user@li229-222.members.linode.com)
2021-05-22 02:55:21 sm parts (~user@li229-222.members.linode.com) ("ERC (IRC client for Emacs 27.0.50)")
2021-05-22 02:55:32 <edwardk> my faith in humanity's ability to see what is going on around it grew three sizes that day.
2021-05-22 02:57:08 <edwardk> the first couple of days we got mostly people doing what i'm doing and trying to keep one foot on each boat (even if i've put trusted most of my weight on libera), today i'm noticing that the channel here has hollowed out by 15-20%, seems more people are just leaving rather than splitting between servers.
2021-05-22 02:57:08 plutoniix joins (~q@node-usl.pool-125-24.dynamic.totinternet.net)
2021-05-22 02:59:27 star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2021-05-22 02:59:47 danso joins (~dan@23-233-111-52.cpe.pppoe.ca)
2021-05-22 03:07:36 Boarders parts (sid425905@gateway/web/irccloud.com/x-wiacsxledaeudbti) ()
2021-05-22 03:09:33 <edwardk> mniip: i've really been amused at andrews's attempts to "set the record straight" with half-out-of-context snippets of chat transcripts and glaring timeline omissions. just enough flak to keep the folks who aren't paying attention at the 'he said, she said, what is truth anyways?' level
2021-05-22 03:09:36 × star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood)
2021-05-22 03:10:06 × stree quits (~stree@68.36.8.116) (Ping timeout: 240 seconds)
2021-05-22 03:10:25 <edwardk> or i guess i would be amused, if i didn't notice a percentage of folks actually buying the charm offensive. weird
2021-05-22 03:10:43 star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2021-05-22 03:15:54 × Tario quits (~Tario@201.192.165.173) (Ping timeout: 260 seconds)
2021-05-22 03:16:46 <wroathe> edwardk: I'm still waiting on the channels I'm in to commit ;)
2021-05-22 03:17:21 <wroathe> ##c is literally going to keep both channels operating in parallel until they've got more information
2021-05-22 03:17:50 Lord_of_Life_ joins (~Lord@unaffiliated/lord-of-life/x-0885362)
2021-05-22 03:18:11 × Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 265 seconds)
2021-05-22 03:18:31 <edwardk> wroathe: my experience is you rarely get a complete move after a split, you get half, then a bunch of people lurk, one goes quiet, no op maintenance is done and it goes with a whimper not a bang
2021-05-22 03:18:58 <mniip> I was not expecting to get half
2021-05-22 03:19:12 Lord_of_Life_ is now known as Lord_of_Life
2021-05-22 03:19:42 × star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 260 seconds)
2021-05-22 03:19:51 <edwardk> i learned algorithms and data structures because after the ircnet/efnet split all the good programmers left the #coders channel, and so i had to find my way onto the ircnet side of the divide through the one server that'd let me in from america and then found the entire #coders channel had turned into a scandinavian demoscene subcommunity once the normies went away.
2021-05-22 03:20:31 <edwardk> so i do suspect that some culture drift is possible, though, there it was particularly bad, because one side just couldn't connect to the other without jumping through crazy hoops, and that's not the case here
2021-05-22 03:21:06 <mniip> I was anticipating some split between here, there, and giving up on IRC for good, with at least 10k in each
2021-05-22 03:22:12 star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2021-05-22 03:22:42 stree joins (~stree@68.36.8.116)
2021-05-22 03:26:43 × ddellacosta quits (~ddellacos@86.106.143.217) (Remote host closed the connection)
2021-05-22 03:26:52 ddellacosta joins (~ddellacos@86.106.143.217)
2021-05-22 03:28:14 tamiko joins (~tamiko@gentoo/developer/tamiko)
2021-05-22 03:29:14 <edwardk> do you have a sense of relative total server populations?
2021-05-22 03:29:19 tamiko parts (~tamiko@gentoo/developer/tamiko) ()
2021-05-22 03:29:41 <mniip> /lusers
2021-05-22 03:29:58 × a6a45081-2b83 quits (~aditya@122.163.181.9) (Remote host closed the connection)
2021-05-22 03:32:58 polyaletheia joins (~polyaleth@c-24-18-229-32.hsd1.wa.comcast.net)
2021-05-22 03:33:20 <edwardk> ok so 5:1 or so globally, and maybe 2:5 in the haskell ecosystem that have moved
2021-05-22 03:33:56 <edwardk> i suspect a fairly large percentage of lurker population are going to wind up staying behind on freenode
2021-05-22 03:34:31 <mniip> I can confirm first hand that there's people who will connect in 2 years and be like "huh something happen?"
2021-05-22 03:34:50 <wroathe> huh, something happen?
2021-05-22 03:36:13 <edwardk> sure, when i tune out from irc i tune out hard, too

All times are in UTC.