code logs -> 2022 -> Mon, 19 Sep 2022< code.20220918.log - code.20220920.log >
--- Log opened Mon Sep 19 00:00:02 2022
01:20 Degi [Degi@Nightstar-lm99sc.pool.telefonica.de] has quit [Ping timeout: 121 seconds]
01:28 Degi [Degi@Nightstar-8osb43.pool.telefonica.de] has joined #code
01:35 Pinkhair is now known as Pink
02:40 Kimo|autojoin [Kindamoody@Nightstar-l6j0oj.tbcn.telia.com] has joined #code
02:40 mode/#code [+o Kimo|autojoin] by ChanServ
02:50 Kimo|autojoin [Kindamoody@Nightstar-l6j0oj.tbcn.telia.com] has quit [Ping timeout: 121 seconds]
03:34 Kimo|autojoin [Kindamoody@Nightstar-l6j0oj.tbcn.telia.com] has joined #code
03:34 mode/#code [+o Kimo|autojoin] by ChanServ
03:34 ErikMesoy1 [Bruker@Nightstar-37t.pui.211.84.IP] has joined #code
03:36 ErikMesoy [Bruker@Nightstar-37t.pui.211.84.IP] has quit [Ping timeout: 121 seconds]
04:34 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has quit [Connection closed]
04:46 Vorntastic [uid293981@Nightstar-phvupn.irccloud.com] has joined #code
04:46 mode/#code [+qo Vorntastic Vorntastic] by ChanServ
04:47 ErikMesoy [Bruker@Nightstar-37t.pui.211.84.IP] has joined #code
04:49 ErikMesoy1 [Bruker@Nightstar-37t.pui.211.84.IP] has quit [Ping timeout: 121 seconds]
06:37 Kimo|autojoin [Kindamoody@Nightstar-l6j0oj.tbcn.telia.com] has quit [Client exited]
06:53 gnolam [lenin@Nightstar-j9ajs0.priv.bahnhof.se] has joined #code
06:53 mode/#code [+o gnolam] by ChanServ
07:03 Kimo|autojoin [Kindamoody@Nightstar-l6j0oj.tbcn.telia.com] has joined #code
07:03 mode/#code [+o Kimo|autojoin] by ChanServ
07:05 Kimo|autojoin is now known as Kindamoody
07:26
<&McMartin>
AHAHAHAHAHAHA
07:26 * McMartin chooses violence, and in so doing, chooses peace
07:27
<&McMartin>
AmigaOS predates memory protection, and a big part of its speed was that it didn't bother with actually going into any kind of OS mode or special OS memory for dealing with syscalls or kernel data structures
07:27
<&McMartin>
That means that the "syscalls" that give me "kernel objects" are neither of them anything of the sort
07:27 * McMartin bakes them directly into his data section and gets away with it
08:04
<~Vorntastic>
So wait, you... ... Hang on. So like you... Uh... I can't even describe what i think you said you did
08:05
<~Vorntastic>
You said "hey give me the display pointer" to the computer and then instead of having your program do that, you just put the display pointer that it returned into the program?
08:20
<&McMartin>
So the mental block you have here is that you are thinking of "pointers"
08:20
<&McMartin>
Normally, yes, I would ask Exec for, say, an I/O Request block suitable for this message port etc
08:20
<&McMartin>
and it would allocate it and hand it to me.
08:20
<&McMartin>
OR
08:21
<&McMartin>
I could just put the structures for the I/O request buffer into my data segment directly, pre-initialized the way the OS routine would do so, only copying in the port at run-time, since that's the result of a different system call.
08:21
<&McMartin>
OR
08:22
<&McMartin>
I could do the same, *with* the port, and only initialize *that* with the dynamic value that is "which channel will the Task end up assigning to this port" assigned at run time
08:22
<&McMartin>
And since the Task structure is created by Exec before my code starts running, that is as far as it can be pushed; AllocSignal() and FreeSignal() need to be configured with data you get by interrogating the microkernel, and that cannot be done at compile time.
08:23
<&McMartin>
(Similarly, you cannot actually put the I/O device pointers into the request, since I/O devices are in a different location on every boot -- but Exec is weird in that you have to create the I/O requests before you open the devices the request is for; the request block parameterizes the call the OpenDevice().)
08:26
<&McMartin>
(My summary of "well, OK, I guess this *is* where you go to do your madness" when it comes to Exec and the rest of AmigaOS is at https://bumbershootsoft.wordpress.com/2022/07/17/amiga-500-our-first-real-gui-program/ -- TF noted at the time that it was very similar to some other academic microkernels she had studied many years earlier)
08:29
<&McMartin>
This misses some of the mightier bits of madness in there, though, like the way that one of the functions you'd call out to, that was not part of exec, is implemented as a thin C-API wrapper around an assembler macro, because -- in part -- it is using 12 bytes to represent two eight-byte structures, and just carefully overlaps them so that this makes sense
08:36
<&McMartin>
Unfortunately I can't really push code to explain this until I have a bunch of build system nonsense sorted out too, but Soon (tm)
12:42 Vorntastic [uid293981@Nightstar-phvupn.irccloud.com] has quit [[NS] Quit: Connection closed for inactivity]
13:53
<@celticminstrel>
So it’s like the kernel has an InitSomeStruct function which fills in the fields of a struct SomeStruct, and instead of calling the function you’re manually filling in the fields?
15:04 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has joined #code
15:04 mode/#code [+qo Vornicus Vornicus] by ChanServ
15:50 ErikMesoy1 [Bruker@Nightstar-37t.pui.211.84.IP] has joined #code
15:52 ErikMesoy [Bruker@Nightstar-37t.pui.211.84.IP] has quit [Ping timeout: 121 seconds]
17:27 Emmy [Emmy@Nightstar-l49opt.fixed.kpn.net] has joined #code
19:51 ErikMesoy1 is now known as ErikMesoy
20:49 jessifae_ [catalyst@Nightstar-ejd4sd.cable.virginm.net] has quit [Connection closed]
20:50 jessifae [catalyst@Nightstar-ejd4sd.cable.virginm.net] has joined #code
20:50 ErikMesoy1 [Bruker@Nightstar-37t.pui.211.84.IP] has joined #code
20:51 ErikMesoy is now known as NSGuest50755
20:51 ErikMesoy1 is now known as ErikMesoy
20:53 NSGuest50755 [Bruker@Nightstar-37t.pui.211.84.IP] has quit [Ping timeout: 121 seconds]
22:42 Emmy [Emmy@Nightstar-l49opt.fixed.kpn.net] has quit [Ping timeout: 121 seconds]
23:17
<&McMartin>
celticminstrel: Pretty much, though the part that makes it worthwhile instead of just hideously perverse is that this "manually filling in the fields" is happening at *compile* time, not runtime.
23:31 Kindamoody is now known as Kindamoody[zZz]
--- Log closed Tue Sep 20 00:00:04 2022
code logs -> 2022 -> Mon, 19 Sep 2022< code.20220918.log - code.20220920.log >

[ Latest log file ]