--- 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 |