code logs -> 2019 -> Sun, 10 Feb 2019< code.20190209.log - code.20190211.log >
--- Log opened Sun Feb 10 00:00:21 2019
00:07 Emmy [Emmy@Nightstar-9p7hb1.direct-adsl.nl] has quit [Ping timeout: 121 seconds]
01:07 Kindamoody|autojoin is now known as Kindamoody[zZz]
01:26 himi [sjjf@Nightstar-v37cpe.internode.on.net] has quit [Connection closed]
02:14 Emmy [Emmy@Nightstar-9p7hb1.direct-adsl.nl] has joined #code
02:20 Emmy [Emmy@Nightstar-9p7hb1.direct-adsl.nl] has quit [Ping timeout: 121 seconds]
02:52 Degi [Degi@Nightstar-n8jkkf.dyn.telefonica.de] has quit [Connection closed]
04:55 Derakon is now known as Derakon[AFK]
05:17 Vorntastic [uid293981@Nightstar-6br85t.irccloud.com] has joined #code
05:17 mode/#code [+qo Vorntastic Vorntastic] by ChanServ
05:20
<&McMartin>
Huh.
05:20
<&McMartin>
Things I kind of knew academically but didn't really pay attention to until recently: just how incredibly tightly POSIX/UNIX is tied to the C library.
05:21
<&McMartin>
There's not really an equivalent to Windows's KERNEL32.DLL; if you disable the C standard library, you have to replace it with something that looks more or less like the C standard library
05:21
<&McMartin>
If you remove the C standard library from a Windows program, you can still do basically everything in your HLL even if that HLL is in fact C
05:23
<&McMartin>
☂💾
05:23
<&[R]>
Because kernel32.dll provides the cstdlib?
05:24
<&[R]>
Indirectly?
05:24
<&[R]>
Or because even in C you'd want to mostly call winapi shit?
05:28
<&McMartin>
Because it's *possible* to do all your work only calling winapi shit and that stuff isn't in the C runtime DLLs, it's in its own DLLs
05:28
<&McMartin>
creat(2) and read(2) and write(2) and all the (2) stuff is in libc on Unices.
05:29
<&McMartin>
(Not only does the winapi not include the C standard library it doesn't even use the same ABI; windows API calls use the Pascal calling convention)
05:30
<&McMartin>
(Not that a C programmer has to care, because the OS-specific header files just note that and the compiler does the rest, but it does explain why none of them use varargs)
05:32
<&[R]>
The pascal convention doesn't support varargs? How does printf work on Windows then?
05:32
<&McMartin>
printf uses the C ABI, because it is part of the C stdlib.
05:32
<&[R]>
Ah
05:33
<&McMartin>
The Windows API does not include a function equivalent to printf, because it is is the equivalent of "man 2". It has several things that can be mapped to write(2), and your formatter would use those.
05:34
<&McMartin>
Now that said, stuff like directx does in fact link its own versions of the C or even C++ stdlibs, but you can't get at them because there's a strong barrier between them and you (stronger than the usual DLL separation but weaker than process separation).
05:34
<&McMartin>
I'm mostly amused because it does open the possibility of writing Windows code the way I write code for old consoles :D
05:34
<&[R]>
That seems like amazing fodder for the private APIs conspiracy
05:35
<&McMartin>
... a well-documented component model and a guarantee that components can't mess with each other?
05:35
<&McMartin>
I mean, yes, modules mean that people can put private stuff in and it will work, or that private stuff can be extended meaningfully anyway
05:35
<&McMartin>
Le Gasp, etc.
05:35
<&McMartin>
Otherwise I'm not sure what threat model you are implying.
05:36
<&[R]>
Not even a threat model
05:36
<&McMartin>
Sorry, reflex, I see "conspiracy" in Windows talk and I assume it's Bill Gates's latest attempt to outlaw general-purpose computing
05:36
<&[R]>
The infamous "MS has private APIs that its programs can use, but no-one else's can, meaning we can't compete with them."
05:36
<&McMartin>
Ah
05:37
<&McMartin>
That conspiracy has been resolved with the principle of "Git Gud", for the most part.
05:37
<&McMartin>
Or less cynically: DirectX *is* that API, because they have to compete with Sony
05:38
<&[R]>
Playstation?
05:38
<&McMartin>
Right. If your third-party developers have a performance penalty for shipping on Xbox, they won't.
05:38
<&[R]>
Yeah
05:39
<&McMartin>
The more I learn about the history of turn-of-the-century graphics technology, the more convinced I am that everyone at MS and in the Khronoso Group were working in good faith, but simply had no idea what the Hell they were doing.
05:39
<&McMartin>
*Khronos
05:40
<&McMartin>
It's an endless series of hardware outstripping the APIs that could be used to program them and trying to do device-specific -- not even vendor specific, device specific -- APIs for all of them
05:40
<&McMartin>
Followed by endless committee infighting at OpenGL while MS just tried to map the hardware vaguely enough that it was at least theoretically possible that shit would work on more than one card, while trying to browbeat the hardware developers into knocking that shit off and doing something that can be consistently developed for
05:41
<&McMartin>
Stabilizing in the mid aughts with shaders taking the same rough form they still have fifteen years later, at which point this is what the committees standardized on
05:42
<&McMartin>
And this time when a hardware company introduces a brand-new vendor specific API it gets generalized into a new industry standard more or less immediately, which is a much nicer place to be
05:42
<&McMartin>
(Vulkan owes a *whole lot* to Mantle)
08:15 Kindamoody[zZz] is now known as Kindamoody|afk
11:09 Emmy [Emmy@Nightstar-9p7hb1.direct-adsl.nl] has joined #code
11:32 Degi [Degi@Nightstar-ljkg75.dyn.telefonica.de] has joined #code
15:04 celmin|sleep is now known as celticminstrel
15:15 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has joined #code
15:15 mode/#code [+qo Vornicus Vornicus] by ChanServ
15:45 Kindamoody|afk is now known as Kindamoody
16:25 Degi [Degi@Nightstar-ljkg75.dyn.telefonica.de] has quit [Connection reset by peer]
17:23 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has quit [Connection closed]
18:16 Vorntastic [uid293981@Nightstar-6br85t.irccloud.com] has quit [[NS] Quit: Connection closed for inactivity]
19:26 Derakon[AFK] is now known as Derakon
20:50 Degi [Degi@Nightstar-ljkg75.dyn.telefonica.de] has joined #code
23:10 Emmy [Emmy@Nightstar-9p7hb1.direct-adsl.nl] has quit [Ping timeout: 121 seconds]
23:58 Degi_ [Degi@Nightstar-4mugn8.dyn.telefonica.de] has joined #code
23:59 Degi [Degi@Nightstar-ljkg75.dyn.telefonica.de] has quit [Ping timeout: 121 seconds]
--- Log closed Mon Feb 11 00:00:23 2019
code logs -> 2019 -> Sun, 10 Feb 2019< code.20190209.log - code.20190211.log >

[ Latest log file ]