Logs: freenode/#haskell
| 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.