<heat>
"Heh. I've enjoyed seeing your argumentative style that made you so famous back in the days. Maybe it's always been there, but I haven't seen the BSD people in so long that I'd forgotten all about it."
<heat>
GAME RECOGNIZES GAME
<heat>
geist, do you know of any PDP -> VAX cross compiler?
<heat>
or did the VAX PDP-11 backwards compat Just Work(tm)?
<geist>
good question. initial binary compat i think was only on a few models before they dropped it
<geist>
there was a PDP-11 bit in the PSR
<heat>
basically i'm very curious as to what's the most straightforward C bootstrapping path from the original C compiler (in asm)
<geist>
well, at least for DEC i dont think a lot of stuff was written in C back then
<geist>
they wrote a lot of code in various macro assemblers, which itself would have probably allowed you to reassemble to vax
<geist>
BLISS i think was a major thing
<geist>
VMS itself was written in assembly
<heat>
at some point you need to cross from the PDP-11 to something else, and VAX is probably the best bet
<heat>
then... i guess you could rely on the PDP-11 backwards compat, if UNIX ever supported that
<heat>
then build the first gcc, and everything else should be a really straightforward bootstrap through gccs
core-ix has joined #osdev
<geist>
yah though in the case of gcc, it was clear that stalman was using existing compilers to compile it
<geist>
since there were C compilers long before gcc
<heat>
yep
<heat>
given a solid enough bootstrap path, i wonder how long that would take
<heat>
jumping to gcc would be great, because then at some point you could cross-compile yourself into modern hardware
<zid>
I think the neatest part of bootstrapping is the beginning
<zid>
like, what's the *simplest* target, like, pretending you've pre-written everything ahead of time, but you lost all computers, except an x86 machine with nothing on its storage or whatever
<zid>
like, you start with something like wozmon inputted via toggle switches
<zid>
then use wozmon to write a bunch of 6502
<zid>
all the way up to compiling linux
<zid>
if you can get smoke signals in there at some point, bonus points
<zid>
or a loom
<heat>
>manually encoding x86 instructions
<heat>
i'll take caveman tyvm
<zid>
writing a limited nasm into wozmon
<zid>
so that you can assemble a nasm bootstrap for x86
<zid>
which you then assemble the nasm that provides macros with
<zid>
then you assemble a shitty C compiler with that, then compile a less shitty C compiler with that, then compile gcc 2
<geist>
also even within that, Woz wrote Sweet-16 that he then wrote some amount of stuff in, like integer basic
<heat>
gosh i need to write a shit C compiler one of these days
<heat>
when i finish my lexer
<heat>
C89 is probably not too hard to implement, i imagine
<geist>
yeah, and i've seen some tiny ones. there's a C compiler for PDP-8 that i've fiddled with
<geist>
fits in 4K, since that's the address space of it (12 bit machine)
<heat>
C is probably one of the only languages you can translate most lines to assembly directly
<heat>
wow 4K is nuts
<zid>
int NAM;
<zid>
/* 8.3 support coming in v2 */
<zid>
int FIRST_NAM; /* v2 support finally here! */
<zid>
My mouse needs charging, now how do I play factorio? :
<heat>
get a wired mouse
<zid>
my pc is on my left and I am right handed, and I keep using my PC from bed
<zid>
it kills the wires
<zid>
but I never remember to charge the mouse except every 3 weeks when it stops working :D
<core-ix>
heat: ... or if not for educational purposes, just use pcc/tcc/wcc ...
[itchyjunk] has joined #osdev
<heat>
why else would i write a compiler
<zid>
To dethrone llvm
<core-ix>
:D
<heat>
i will write worse, slower to compile C++
<zid>
(as the least user-friendly compiler)
<heat>
ok i need some help figuring this out
<heat>
the linux test project has a lot of tests that were contributed in the early 00s by IBM and "ported" from some unnamed system
<heat>
what system could this be?
<heat>
literally IBM AIX?
<core-ix>
z/OS ?
<heat>
they make vague references to internal things in test descriptions sometimes, but a quick search doesn't really return anything
<zid>
Love it when you stand just barely outside the battery range of the bots, so you ask for 2000 things to be delivered, a huge swarm of bots flies to you, then gets within 10cm and flies away like you have an AT field
<zid>
and goes home to recharge
<nikolapdp>
heh yeah
<zid>
In my case though I really do have an AT field
<netbsduser>
i am not a big fan of most of the m* APIs
<netbsduser>
i would rather mmap yielded a token and then you can operate on that token
<netbsduser>
this is an API closer to how all modern unixlikes really conceive of memory: as distinct mapped regions and not as a big pile of pages
<heat>
i dont like mseal because its all over the place, ands eems to be designed exclusively for chrome
<heat>
but the thread around it is fucking toxic
<netbsduser>
last i had heard about sealing it was something for memefds
<netbsduser>
and i couldn't make heads or tails of that
<netbsduser>
other than it might allow you to ban future writeable mappings of some mmfd
<heat>
mseal is somewhat like openbsd's mimmutable
Arthuria has joined #osdev
genr8eofl has quit [Remote host closed the connection]
Shaddox404 has quit [Quit: Connection Terminated.]
rcvalle has quit [Read error: Connection reset by peer]
Arthuria has quit [Ping timeout: 268 seconds]
<heat>
<netbsduser> this is an API closer to how all modern unixlikes really conceive of memory: as distinct mapped regions and not as a big pile of pages
<heat>
why would you look at it as pages?
<heat>
mmap() was always a lot more complex than a big pile of pages
heat has quit [Remote host closed the connection]
heat has joined #osdev
cow321 has quit [Read error: Connection reset by peer]
cow321 has joined #osdev
gog is now known as pog
<heat>
pog
<zid>
gop
<heat>
grand old gog
<pog>
graphics output protocol
<zid>
gog outputs poo
<heat>
poop out gog
<pog>
D:
<zid>
That's when you respond "nuh-uh, girls don't poo"
<pog>
what do you think the surgery does
<heat>
stuff
<zid>
ohh
<pog>
that's right
<nikolar>
Hello pog
theruran has quit [Quit: Connection closed for inactivity]
<pog>
hi
<zid>
trying to beat huge biter nests with just personal laser defence is a slog.
<bslsk05>
news.ycombinator.com: Here are all the IKEA products you can spell in hex: A16 ALG, A15EDA ALSEDA, A77... | Hacker News
bitoff has quit [Ping timeout: 264 seconds]
<heat>
netbsduser, why?
<heat>
in UNIX mapping files was always the norm, the brk and the stack were an exception
<netbsduser>
heat: i think you read the opposite of what i meant
Starfoxxes has joined #osdev
vdamewood has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
gbowne1 has joined #osdev
<nikolar>
zid wrong, a lot of those have diacritics
<nikolar>
That's not hex
<nikolar>
You're welcome
pretty_dumm_guy has joined #osdev
Matt|home has quit [Ping timeout: 268 seconds]
goliath has quit [Quit: SIGSEGV]
GeDaMo has quit [Quit: That's it, you people have stood in my way long enough! I'm going to clown college!]
rustyy has quit [Ping timeout: 260 seconds]
rustyy has joined #osdev
<geist>
hey fun new architecture to play with: qemu has 64bit PA-RISC support now
<nikolar>
Nice
<heat>
stacks grow upwards, wake up sheeple
<zid>
stacks go sideways
<mjg>
arrays start at 1
<heat>
avg php dev
<heat>
WEBDEV
<mjg>
get your own talking points
goliath has joined #osdev
divine has joined #osdev
<Ermine>
wat
<Ermine>
which genius came up with that
<heat>
with what
<Ermine>
upward stack
<heat>
why would the stack grow downwards
<heat>
which genius came up with that
<zid>
stack grows up if you use a silly version of up
<zid>
where 0 is on top
<heat>
i'm not sure if there's a good hw reason for the stack to grow downwards
<heat>
like, if you were to forget about brk and traditional UNIX positioning of the brk and stack
jack_rabbit has quit [Ping timeout: 256 seconds]
<zid>
because rom grows forwards
<zid>
and ram grows backwards
jack_rabbit has joined #osdev
<zid>
(like, it doesn't really 'grow', but it's common to SKU stuff and have different amounts of ram, so putting stack pointer at 0xFFFF makes sense and then have it grow down)
<zid>
Rather than having it at 0x8000 or 0xC000 depending on installed ram
<heat>
ram definitely grows upwards though?
<zid>
not if you put it at the end of the address space
Left_Turn has quit [Read error: Connection reset by peer]
zxrom has quit [Quit: Leaving]
Maja has joined #osdev
<Maja>
how do I "git blame" a wiki page? https://wiki.osdev.org/FAT32#BPB_.28BIOS_Parameter_Block.29 describes the version field in a way that doesn't make sense at all
<bslsk05>
wiki.osdev.org: FAT - OSDev Wiki
<Maja>
like, > The first 8 Bytes (3 - 10) is the version of DOS being used. The next eight Bytes 29 3A 63 7E 2D 49 48 and 43 read out the name of the version.
<Maja>
it's an 8 byte field, and it's being described like it has 16 bytes???
<Mutabah>
Maja: "History"
<heat>
i don't think there's a way to git blame, but see the history
<Maja>
Mutabah: I don't think that's "git blame". that's "git log" at best
<Mutabah>
point
<Mutabah>
binary search for the change
<zid>
It's.. not describing it as 16 bytes though?
<Maja>
"the first 8 bytes are $foo, the next eight bytes are $bar"
<Maja>
and the hex it lists decode as "):c~-IHC" which... ????
<zid>
oh, I see, it's just a bad splice
<zid>
It's written conversationally and was edited poorly
<Maja>
oh god, it's been this way for years
<zid>
It's supposed to flow from The first three bytes EB 3C 90 to The next eight Bytes 29 3A 63 7E 2D 49 48 and 43
<Mondenkind>
wiki.osdev.org in a nutshell
<heat>
oh ew
<Maja>
oh, as in, it used to be an example?
<heat>
good point zid
<zid>
but it's had a 'The first 8 bytes (3-10)" prepended to it
<zid>
which you read to mean 8 bytes + the next 8 bytes