<bslsk05>
'[Dark Souls] Let's Skip The Catacombs! (Shortcut Tutorial / Leeroy Summon / Pinwheel Fight)' by A skeleton trapped in a man body (00:03:47)
<heat>
here's a 10 year old vid
gog has quit [Ping timeout: 240 seconds]
ajunior has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
eck has quit [Quit: PIRCH98:WIN 95/98/WIN NT:1.0 (build 1.0.1.1190)]
dude12312414 has joined #osdev
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
eck has joined #osdev
bleb has quit [Read error: Connection reset by peer]
bleb has joined #osdev
duderonomy has quit [Remote host closed the connection]
duderonomy has joined #osdev
eck has quit [Quit: PIRCH98:WIN 95/98/WIN NT:1.0 (build 1.0.1.1190)]
eck has joined #osdev
Vercas6 has joined #osdev
Vercas has quit [Ping timeout: 240 seconds]
Vercas6 is now known as Vercas
Jari-- has joined #osdev
<Jari-->
so basically you do need ELF for dynamic applications, -fpic pie wont help you on output format binary
<Jari-->
working on my elf loader at the moment
<Mutabah>
It might help a bit, as it changes some of the codegen to make the code position-indepenent
<Mutabah>
but some of it needs linker support
<Jari-->
Mutabah binary of elf?
<Jari-->
binary position independent executable exists? thats what I am thinking about now.
<Jari-->
pure headerless binary
<sham1>
But why
<Jari-->
lunix on C64 does dynamic linking:) at 1 MHz
<sham1>
You need some kind of a header to a) know that it can be loaded and b) to know how to load it
<Jari-->
wont hurt a bit I guess
<Jari-->
sham1 yeah I think
<Jari-->
sham1 I am currently using .bin format for binary executables (purely binary headerless)
<Jari-->
.bin file name
<sham1>
While ELF wasn't designed quite for the specs of a C64, it was designed for machines that are orders of magnitude slower and just worse than our current things
goliath has joined #osdev
xenos1984 has quit [Read error: Connection reset by peer]
<Jari-->
to get fixed start address you have to pass the linker no pie
<Jari-->
on binary linkagwe
<Jari-->
thats what I am doing with the kernel
Jari-- has quit [Ping timeout: 260 seconds]
Jari--- has joined #osdev
<Jari--->
re
andydude has quit [Quit: Leaving.]
xenos1984 has joined #osdev
andydude has joined #osdev
andydude has quit [Client Quit]
andydude has joined #osdev
Burgundy has joined #osdev
Jari--- has quit [Remote host closed the connection]
sprock has quit [Remote host closed the connection]
Jari-- has joined #osdev
sprock has joined #osdev
bradd has joined #osdev
danilogondolfo has joined #osdev
Matt|home has joined #osdev
vinc has joined #osdev
GeDaMo has joined #osdev
acharles has joined #osdev
mhall has joined #osdev
andydude has quit [Quit: Leaving.]
nyah has joined #osdev
stolen has quit [Quit: Connection closed for inactivity]
<Jari-->
this is interesting theory:
<Jari-->
[11:53] <_Dbug_> Jari--, for what's worth, I once wrote a trivial to relocate executable format prototype for the Oric: Assemble the program twice at two different addresses (once at +0 and once at +256) then compare all the differences, these are all the relocated locations that need relocation, then use a small patch routine to set these bytes to the load location offset <_Dbug_> (obviously
<Jari-->
limited to page aligned locations, not free location)
bslsk05 has quit [Quit: :)]
puck has quit [Quit: -w-]
gog has joined #osdev
puck has joined #osdev
bslsk05 has joined #osdev
netbsduser has joined #osdev
Jari-- has quit [Ping timeout: 244 seconds]
gareppa has joined #osdev
Left_Turn has joined #osdev
danilogondolfo has quit [Ping timeout: 250 seconds]
danilogondolfo has joined #osdev
Matt|home has quit [Ping timeout: 260 seconds]
gildasio has joined #osdev
Matt|home has joined #osdev
stefanct has quit [Read error: Connection reset by peer]
stefanct has joined #osdev
<gog>
meow?
heat has joined #osdev
* sham1
purr
<heat>
meow
* gog
petpetpetpet
vinc has quit [Read error: Connection reset by peer]
<zid>
Ring Ring.
ajunior has joined #osdev
<sham1>
Banana phone
<zid>
Ring Ring.
<gog>
hello?
<zid>
Hi, I can't find my phone have you seen it
<zid>
I've looked up and down and all around and it's just gone
gildasio has quit [Ping timeout: 240 seconds]
CaCode_ has quit [Ping timeout: 260 seconds]
<gog>
it's in ur hand
<gog>
against your face
<zid>
*click*
MiningMarsh has joined #osdev
heat_ has joined #osdev
heat has quit [Read error: Connection reset by peer]
Matt|home has quit [Ping timeout: 246 seconds]
gareppa has quit [Quit: WeeChat 3.8]
danilogondolfo has quit [Ping timeout: 260 seconds]
danilogondolfo has joined #osdev
heat_ has quit [Remote host closed the connection]
<bslsk05>
lwn.net: A virtual filesystem locking surprise [LWN.net]
<mjg>
i had seen the thread
<heat>
aw
<mjg>
this is not a locking surprise though
<heat>
conditional locking is always a horrendous surprise
<heat>
according to brauner intel hasn't found regressions yet
<heat>
which maybe speaks volumes for the validity of this kind of optimization :)
ajunior has quit [Ping timeout: 246 seconds]
<mjg>
in order to get the "surprise" you had to intentionally violate the invariant that if the table has refcount 1, nobody else can fuck with your files
<mjg>
are you for real man
<mjg>
just few days ago i veririfed that atomics remain expensive af on saphire rapid, which is liek top intel cpu today
<mjg>
if the intel test suite does not find the diff, it is because they don't bench the affected codepath
<heat>
they bench will-it-scale, stressng, etc etc
<mjg>
the codepath is kind of niche
<mjg>
also you may be forgetting will-it-scale somehow does not have benches for stat family nor access
<mjg>
i.e. the suite is weirdly incomplete
<heat>
fdget_pos is for reads innit?
<heat>
and getdents
<mjg>
only some
<mjg>
do they bench getdends anywhere?
<mjg>
i know will-it-scale does not
<heat>
yes, all regular files and dirs?
ajunior has joined #osdev
<heat>
i dont know
<heat>
if (S_ISREG(inode->i_mode) || S_ISDIR(inode->i_mode))
<heat>
f->f_mode |= FMODE_ATOMIC_POS;
<heat>
yeah, all regular files and all dirs
<heat>
this is a beaten path for sure
<mjg>
i'll have access to the box later today, i'm gonna check if it lands there
<mjg>
if they can't find the diff, it either does not or they are reading big-ass bufferz
goliath has quit [Quit: SIGSEGV]
Turn_Left has joined #osdev
Left_Turn has quit [Ping timeout: 246 seconds]
gareppa has quit [Quit: WeeChat 3.8]
<Ermine>
Some unix fans admit that perl is shit
<heat>
unix fans? admitting stuff is shit????
<sham1>
perl is good
<heat>
Larry Wall is a fucking genius
<sham1>
yes
<sham1>
As long as you use English
<sham1>
As in `use English;`
<mjg>
PERL KURW^W
<mjg>
one of the shittiest aspects was patched few years ago
<mjg>
namely *now* you can have function declarations
<mjg>
great work larry, too bad all the legacy shit out there does not use it
<heat>
Wall's Christian faith has influenced some of the terminology of Perl
<mjg>
and new progs are not even in perl
<heat>
fuck that shit
<sham1>
heat: bless
<mjg>
ey fuckers
<mjg>
do you think perl is pass by ref or by value
<heat>
ref
<mjg>
press 3 if you don't know
<sham1>
yes
<mjg>
that iz correct
<mjg>
heat: larry has good quotes
<mjg>
e.g., he is standing on the shoulders of giants
<mjg>
and is kicking their ears as he pleases
<heat>
i am standing on the shoulders of relatively small people that are all stacked together in some weird tower of babel scenario
<mjg>
ey not seeing far because you are standing on the shoulder of midgets
<mjg>
is my quote, copyrighted 'n shit
<sham1>
tower of barbie
<mjg>
would oppenheimer use RUST?
<heat>
probably
<mjg>
would he use... ATOMICS
<mjg>
GET IT
<heat>
he would extensively use atomics
<mjg>
author of the atomic op
<heat>
then he'd regret the whole thing
<mjg>
i am become geezer, destroyer of performance
<heat>
oppie writes a lockless malloc
<mjg>
ye with lock cmpxchg
<mjg>
or cmpxchg64b
<heat>
oppie then regrets releasing such a bad thing to the world
<heat>
#mm on bonwick's magazines idea: <jedix> might be better to not use gun termonology though?
<mjg>
> how about "bong" and "stash"
<mjg>
> stick to guns
Matt|home has joined #osdev
<heat>
hahaha
<mjg>
so i just did a read1_threads, according to perf mutex_lock + unlock account for just shy of 4% of cpu time
<mjg>
and that is with other pessimizaitons already in place
<mjg>
that's on ice lake
<mjg>
gonna test saphire later
<froggey>
serenity's mutexes are recursive rwlocks? lol
<mjg>
first thing they do in the fast path is unlock it
<mjg>
LOL
* mjg
doublechecks if this is not a bsd kernel
zxrom_ has joined #osdev
<gog>
gotta go fast
zxrom has quit [Read error: Connection reset by peer]
<sham1>
GNU/Sanic
<gog>
and to think if UC Berkeley didn't get sued by AT&T we'd all be using BSD rn
gareppa has joined #osdev
nvmd has joined #osdev
dude12312414 has joined #osdev
<heat>
i would be fuckin hrm
<heat>
not using bsd
<heat>
i would be using windows
<heat>
or linux-based macOS
<Ermine>
We all could use onyx
<mjg>
cause without a rebel
<Ermine>
gog: may I oet you
<Ermine>
pet*
<heat>
mjg, btw you need to lock that folio anyway in shmem_get_folio_gfp
<mjg>
it plausibly can e hacked to work with membarz instead
<mjg>
point though is that the codepath is PESSIMIZED
<Ermine>
What is folio
<sham1>
Clearly the OS we'd use without Linux would be VMS
<heat>
a folio is a collection of pages
<heat>
struct page*'s
<mjg>
you lock/unlock and ref/deref the folio and then lock/unlock the page
<mjg>
that is 4 more atomics than you should need to do
<Ermine>
Ah, cool name
<mjg>
but it is plausibly hard to fix
<heat>
so back in the good old days you asked for a compound page using __GFP_COMP and then you had struct pages that pointed back to the "Head" of the composite page, that essentially treats all those pages you allocated as a single one
<gog>
yes
<heat>
so this meant shit like void page_mark_dirty(struct page *p) { if (is_compound_page(p)) {page_mark_dirty(p->head); return;} p->flags |= DIRTY;}
<gog>
my band name is going to be folio
<heat>
which is horrendous
<heat>
so willy unfucked it and made up a new type
<heat>
that actually atm completely overlays struct page
gog has quit [Quit: Konversation terminated!]
<sham1>
Shakespeare's folios
<heat>
ima write code rn
zxrom_ is now known as zxrom
<sham1>
I'll also write some code
<zid>
I'll watch
Bonstra_ has quit [Quit: Pouf c'est tout !]
xenos1984 has quit [Ping timeout: 246 seconds]
xenos1984 has joined #osdev
Bonstra has joined #osdev
vinc has quit [Read error: Connection reset by peer]
gog has joined #osdev
zxrom has quit [Ping timeout: 246 seconds]
<heat>
hi gog
<gog>
hi heat
<mjg>
hi mg
ajunior has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
heat_ has joined #osdev
heat has quit [Remote host closed the connection]
<sham1>
And it suddenly got cold
<heat_>
hi gog
<heat_>
hi sham1
<gog>
hi heat_
<nikolar>
hi gog
<gog>
hi nikolar
<sham1>
Oh hi Mark
zxrom has joined #osdev
<sham1>
My hands are typing words! Haaaaands!
antranigv has quit [Ping timeout: 244 seconds]
<gog>
meow
xenos1984 has quit [Ping timeout: 246 seconds]
vinc has joined #osdev
ajunior has joined #osdev
zxrom has quit [Remote host closed the connection]
zxrom has joined #osdev
<zid>
sham1: weird, I use my nose
vinc has quit [Read error: Connection reset by peer]
heat_ has quit [Read error: Connection reset by peer]
antranigv has joined #osdev
awita has quit [Quit: Leaving]
gareppa has quit [Quit: WeeChat 3.8]
<gog>
somebody doesn't own a $5 depth collar
<zid>
Why would you buy a gadget
<zid>
when tape is available
<zid>
I mean
<zid>
IT'S NOT FOR THAT, IT'S ILL
<FreeFull>
When precision doesn't matter
<zid>
drills don't have precision anyway
<zid>
it's not an endmill or whatever
* sham1
techno beats
CaCode has quit [Quit: Leaving]
vinc has joined #osdev
nur has quit [Ping timeout: 260 seconds]
<heat>
poll is fucking horrendously unspecified for anything that's not a regular file or a pipe
<heat>
shit interface
<heat>
shinterface
vinc has quit [Read error: Connection reset by peer]
<Ermine>
specify it and propose to austin group
<Cindy>
today i had a wonderful day
<Cindy>
pulseaudio obliterated my laptop's speakers
<Cindy>
:D
<clever>
that reminds me of a hw bug/limitation in an old laptop
<clever>
every time a terminal received a bel character, it had to play a beep from the onboard speakers
<clever>
but i was using headphones
<heat>
Ermine, posix really doesn't have authority here
<heat>
it lacks authority mostly everywhere
<clever>
it only has 1 DAC, so it would switch from headphone->speakers, play a beep, then switch back
<clever>
and leak a fragment of whatever i was listening to
<sham1>
Hopefully you didn't freak anyone out with any weird porn or whatever
<heat>
yeah
<heat>
normal porn is fine
<sham1>
Yeah
<heat>
weird porn though? straight to jail
<clever>
i wasnt crazy enough to watch porn with somebody in the room :P
<heat>
it'd be ok if it were normal
<clever>
another laptop was worse though
<Cindy>
pulseaudio decided one day i don't deserve laptop speaker privileges
<clever>
it played the pc-beep over the headphones, at 1000% volume, lol
<Cindy>
it overamplifed my audio because of a lost bluetooth packet
<clever>
so you hit one wrong key in the terminal, and now your deaf for 10 seconds
<sham1>
PA does some weird audio mixing sometimes
dutch has quit [Quit: WeeChat 4.0.2]
GeDaMo has quit [Quit: That's it, you people have stood in my way long enough! I'm going to clown college!]
vinc has joined #osdev
valshaped742 has quit [Quit: Gone]
stolen has quit [Quit: Connection closed for inactivity]
valshaped7424 has joined #osdev
bgs has quit [Remote host closed the connection]
dutch has joined #osdev
danilogondolfo has quit [Remote host closed the connection]
wblue has joined #osdev
<geist>
sortie: is your irc down, or am i just having toruble connecting to it?
<gog>
hi
<geist>
hmm, i can get to it from my personal network, so thinking maybe irccloud got klined a few weeks ago
<nortti>
oh irc.sortix.org is down, something went wrong with the VM and sortie is on holiday atm so it's been down for a bit and will be down until he gets back
ajunior has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<geist>
ah interestng, i just telnetted to it locally and it went through, but maybe i just telnned into some sort of redirector
<geist>
the socket connected, but i didn't try speaking irc. anyway, kk
<nortti>
my guess would be that one hits ipv4 (goes directly to the VM) and one hits ipv6 (routed through a simple proxy that will jsut sit there ignoring everything)
<nortti>
*just
<geist>
yah was via ipv6
ajunior has joined #osdev
<mcrod>
hi
<geist>
hiya
<mcrod>
i hate ub. i hate ub. i hate ub.
<mcrod>
day 2 of dealing with this
<mcrod>
tomorrow will be day 3
<mcrod>
in case people are wondering: I do `static struct this_is_a_struct name;`, and I'm watching in the debugger the members of `name` being constantly written over
<mcrod>
which looks like the memory area in that area and around it, is getting trashed
<mcrod>
unresponsive to breakpoints, in some cases evading detection entirely
<zid>
if the debugger isn't catching it, either you don't have hardware watch points, or it's not the program doing it. i.e interrupts
<mcrod>
no I mean
<mcrod>
data breakpoints are HIT
<mcrod>
but they're nonsense
<mcrod>
sometimes it'll be a _iar_zero_init thing
<mcrod>
sometimes it'll set the program counter to... an address pointing to a uint8_t[][]
<mcrod>
this is deterministic, too
<mcrod>
no access to -fsanitize=undefined or -fsanitize=address
<zid>
-fanalyzer? :p
<mcrod>
nothing
<zid>
oh wait, it isn't C is it
<mcrod>
it is C
<zid>
oh I thought it was C++
<mcrod>
no
<mcrod>
firmware is C99
<zid>
My gut says interrupts are to blame
<mcrod>
it's certainly possible
<mcrod>
except I have no idea how to fix it
<zid>
it explains why the debugger doesn't see useful info
<mcrod>
this is where I start to falter in my debugging ability
<zid>
potentially, at least, maybe you're debugging at a true bare metal level and it would catch those too
<mcrod>
interrupts are to blame, maybe, but how the fuck do I fix _that_
ajunior has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<zid>
better debugging, or audit the interrupt code
<mcrod>
I set a write data breakpoint for the address, and was stunned that I'm seeing nothing but garbage
<mcrod>
the memory view doesn't tell me anything either
<mcrod>
to your point, I'm watching the int32_t increase by 500 every time
<mcrod>
so maybe it *is* interrupts doing something stupid
<zid>
seeing nothing but garbage might be the result of the debugger not getting to see the interrupt handler run, was my thought
<zid>
it suddenly notices the value has changed at some other point
<mcrod>
what's interesting is
<mcrod>
first off, what I'm debugging is a slave component
<mcrod>
if I *enable* a breakpoint, the master component will fail to communicate with this slave component, *even though I don't see the breakpoint being hit*
<zid>
I wonder if it got suspended :P
<mcrod>
i don't know. i don't know what the problem is.
<zid>
can you not debug the master?
<mcrod>
i can
<zid>
Sounds like it might be shitting on the slave's memory
<mcrod>
I also know we do some funky oddities
<mcrod>
for example, we have a uint8_t cmd_buffer[num_commands]; thing
<mcrod>
actually, I won't go into that until I look at it again
<mcrod>
because even typing it out is gibberish bullshit
<mcrod>
most i'll go is it looks like a weird attempt to avoid needing two arrays for eeprom write/read requests
<mcrod>
which is so fucking far out to lunch it's not even funny
austincheney has joined #osdev
<austincheney>
would this be a wrong channel to ask about writing terminal emulators?
<mcrod>
no
<austincheney>
excellent, I am writing a JavaScript based terminal emulator for the browser. It seems that in terminal applications there is anormal mode with a prompt and then there is an interactive mode for things like IRSSI, VIM, Nano, and so forth. How should a terminal know to transition between these modes?
<zid>
that's.. nothing to do with terminal emulators?
<zid>
That's just whether bash/sh/etc is connected to the tty or vim is
<zid>
what the terminal does is strictly controlled by what the applications send to the tty, ansi escape codes + plaintext
<zid>
The way unix does it is just that stdin/stdout of `login` are connected to the tty, which then runs your shell (/etc/passwd tells it what to run), and the fork() it does hands stdin/stdout over, repeat
<zid>
(bash might then run nethack via fork, nethack's stdin/stdout are now connected to the tty)
<zid>
Your terminal emulator is the *other* end of the tty, the wire leading into the display, not the software end that unix controls
<heat>
i think they're talking about the distinction between cooked mode and raw mode in the tty?
<zid>
maybe? but that's still just nothing the tty has to care about
<zid>
the terminal I mean
<heat>
depends if they're emulating the tty too
<heat>
javascript-based terminal emulator for the browser sounds like it may
<zid>
yea, on the tty end there's usually a bunch of stuff like isatty() etc for applications to determine if they're being ran interactively etc?
<zid>
otherwise you end up with colours in your pipes
<austincheney>
Node probably has a library for this. I need to check
<austincheney>
I already have basic support for ANSI escape sequences for basic colors but not extended colors
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
<austincheney>
is there an ANSI escape sequence that tells the terminal application when to engage the tty versus using a prompt?
<heat>
i don't know whta that means
<heat>
you're always "engaging the tty"
heat has quit [Remote host closed the connection]
<zid>
seems like you didn't understand what I said
<zid>
If you're emulating a terminal, all you get is text in, and text out (from its keyboard)
<zid>
you draw the text to the screen, sometimes processing special characters like \n
<heat>
namely, the tty layer, sometimes with ncurses sprinkled on top
<zid>
Terminals are *completely* dumb, they don't run programs, or have prompts, or anything
<zid>
they just draw characters that come in through the serial cable
<heat>
for shit like irssi the stack looks something like "app <-> ncurses (provides TERM specific escapes, manipulates the tty) <-> tty layer (does \n -> \r\n, sometimes cooked input, etc) <-> terminal emulator/real terminal (takes bytes and makes the go brrrrrrrrrrrrrrrrrr)"
<heat>
doing a standard printf("Hello World!\n"); always goes app -> tty -> terminal
<zid>
'the prompt' is a user process called the shell
<zid>
The terminal is *right* on the other end, connected over basically a phone line
<heat>
yeah, tho line discipline is part of the tty layer
<zid>
yea the dashed box is the tty bits
xenos1984 has quit [Read error: Connection reset by peer]
<heat>
i wouldn't have them separated in my imaginary much-good diagram
<zid>
they're not
<zid>
they're all inside the dashed box as tty/
<heat>
UART is not part of the tty AFAIK
<zid>
yea I suppose not
<heat>
even though they're kind of connected in linux, including the source code location
<zid>
This is like the map of uk/britain/british isles/etc :p
<heat>
i prefer to think of the tty as an in<->out blackbox that processes whatever input it gets and spits something out for the other end
<zid>
yea I just imagine it as "whatever software gook needs to happen to turn in dx, al / out dx, al into read/write"
<heat>
where the backend can be a serial terminal, virtual terminal in the kernel, pty in userspace, etc
Burgundy has quit [Ping timeout: 245 seconds]
ajunior has joined #osdev
andydude has quit [Quit: Leaving.]
xenos1984 has joined #osdev
nvmd has quit [Quit: WeeChat 3.8]
vinc has quit [Read error: Connection reset by peer]
ajunior has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<mcrod>
now
<mcrod>
it is time to play dark souls
<gog>
hi
<gog>
my soul is p dark
<mcrod>
gog: i need a hug
<mcrod>
it is urgent
* gog
hug mcrod
<gog>
i got you buddy
* mcrod
hug gog
<Cindy>
hey gog
<Cindy>
i need a hug too
* gog
hug Cindy
<gog>
i got you girl
* Cindy
hugs gog and cries
<zid>
gog doesn't got me :(
* gog
hug zid
<gog>
wrong buddy
<zid>
gog avoids me because of my comically oversized genetalia, just like everybody else!
<mcrod>
zid, we love you
* mcrod
pet
<gog>
you know what i'm gonna just
* gog
unhug zid
<zid>
see!
<zid>
It goes all the way from a to z on my keyboard :(
<mcrod>
so...
<mcrod>
i cannot warp back to pinwheel
<mcrod>
since i apparently didn't see the ladder...
<mcrod>
fuck.
<zid>
pinwheel does not have a bonfire no
<mcrod>
i know that
<mcrod>
but
<zid>
doesn't the ladder appear in the cutscene
<mcrod>
yes
<mcrod>
but
<mcrod>
I did not see it at the time
<mcrod>
seeing no way out I homeward boned
<zid>
seems it doesn't
<zid>
but it animates and makes a noise
<mcrod>
why is frampt asleep
ajunior has joined #osdev
<mcrod>
do I hit him
<zid>
cus he's a sleepy mofo
<zid>
you never actually have to talk to him ever
<zid>
He's entirely optional
<mcrod>
o
<zid>
You should learn
<zid>
the catacombs skip, it's super trivial
<kof123>
so i watched video heat linked what we lost with unix. i didn't think it was bad, but scratches the surface maybe :/ just seemed to say ppl seem to get trapped into ways of thinking, so conway's law IMO
<zid>
basically, as you run into catacombs from the bonfire near the lever, you get attackd by 2 skeletons, then go over the bridge
<kof123>
or superstition can be defined as: doing things without knowing why, original reason lost
<zid>
under the bridge is the big pit room with the bonwheels that lead to pinwheel
<zid>
and you can just drop from the bridge to a very obvious ledge, twice, to get there
<zid>
there's an item down there too, that you can only reach this way, so it's like.. semi intentional
wblue has quit [Quit: wblue]
edr has joined #osdev
<kof123>
" there is anormal mode with a prompt and then there is an interactive mode" this sounds like buffering, e.g. line buffering for the prompt
<mcrod>
zid: excellent, worked
ajunior has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<zid>
the blight town one is cooler
<zid>
firelink -> new londo ruins -> new londo ruins -> valley of the drakes -> blighttown -> throw yourself off the first available ledge and hit everything on the way down like a ragdoll -> land in the swamp
<zid>
heat can confirm that that is what happens
<mcrod>
ok
<mcrod>
i hate tomb of the giants
<zid>
good
<zid>
It's scary as shit
<zid>
and a total maze without the skips or collision viewer
<zid>
good luck
<heat>
what?
<heat>
confirm what?
<zid>
firelink -> new londo ruins -> new londo ruins -> valley of the drakes -> blighttown -> throw yourself off the first available ledge and hit everything on the way down like a ragdoll -> land in the swamp
<heat>
the blighttown skip?
<zid>
throw arms up in Y shape, get 7/10 from the russian judge
<zid>
but 10 from everybody else
<heat>
i don't see why new londo ruins -> new londo ruins
<heat>
but yes that seems plausible
<zid>
because I am silly
<heat>
i usually don't throw myself off because im not good
<zid>
I was thinking of it in my head like when you say "firelink to londo, londo to drakes, " then swapped system
<heat>
so i do it slowly
<zid>
half way through
<mcrod>
fuck...
<mcrod>
FUCK
<mcrod>
patches
<heat>
haha
<zid>
good
<zid>
pick up the lantern
<zid>
enjoy being able to see
<heat>
bro do you have the fire keeper yet?
<mcrod>
yes
<mcrod>
she's alive
<heat>
good
<heat>
why are you following tutorials you casul
<zid>
has the FAP ring too then presumably
<zid>
FAP ring is FAP
<mcrod>
i hate the skull lantern
<mcrod>
and yes I have FAP
<heat>
cry
<zid>
why, aren't you STRENGTH BOI
<zid>
you can deal with 1 handing your weapon
<heat>
you can turn around and go to lost izalith
<heat>
get your light hat there
<gog>
computer operating systems development chat
<zid>
cosdc?
<zid>
doesn't sound likely
<gog>
cosdc
<zid>
this is overachievement souls: dark, extra virgins
<heat>
dong
<gog>
does anybody like makeup or smth
<zid>
I've never tried
<gog>
you should
<mcrod>
i... i can't wear the lantern
<zid>
my skin is fucked up though maybe I should
<mcrod>
?
<mcrod>
?A???A???
<zid>
it's a shield
<mcrod>
oh
<mcrod>
i see
<mcrod>
ok
<heat>
it doesn't actually protect
<heat>
btw
<gog>
what about shopping
<heat>
just in case you accidentally try it out with the giant skeleton
<zid>
I don't have money
<zid>
so no shopping
<zid>
only busking
<gog>
oh
<heat>
i like shopping
<gog>
let's go shopping
<zid>
I like the concept of shopping, never done it
<heat>
no
<heat>
this is #darksouls not #estrogensouls
<gog>
sir this is #osdev
<heat>
it is not
<zid>
it is
<zid>
overachievement souls: dark, extra virgins
<gog>
o...s...d.....e....v
<gog>
ohhhhh
<gog>
my mistake
<zid>
oestrogen
<heat>
this is kinda a silly idea but formally you need a write memory barrier after setting up a new thread's state right?
<zid>
why?
<heat>
you will probably need a lock to make it runnable so not quite, but...
<zid>
if you scheduled it to run on a different cpu, I guess?
<gog>
is the new thread being sleep'd right away and might execute on another cpu
<heat>
yes, if you don't have any release stores
<zid>
if it's the cpu you're on, you shouldn't, unless you're on an alpha
<zid>
in which case your writes can appear before you've made them
<gog>
alpha so fucken fast
<zid>
or not appear until after you've read them
<heat>
it's not an actual problem because making a thread runnable likely requires some sort of release store in a lock
<gog>
this is not my beautiful cache, these are not my beautiful memory maps
<gog>
well
<gog>
how did i get here
<zid>
you jumped from catacombs
<gog>
that was a talking heads reference
<heat>
you jumped from the catacombs down to the demon ruins
<heat>
wait, no
<gog>
wait are we on dark souls again
<heat>
you've spawned in ash lake
<gog>
i played that game for 5 minutes
<heat>
far away you see a dragon and a hydra
<heat>
but you don't care, you're just there to enjoy the landscape
<zid>
A skeleton nibbles your ankles, you kick it away, its cranium turns to dust.
<zid>
You feel a wellspring of power suffuse your body.
<gog>
do you use main with argc, argv and envp
<zid>
YOU ARE... JOHN DARK SOUL
<zid>
eww envp, disGASTING
<gog>
ok so that's not a thing people do anymore then
<zid>
what are we, ld.so
<gog>
sort of actually
<gog>
serving a similar function
<zid>
that's the only situation I can think of for it, at least
<mcrod>
FUCK
<mcrod>
KSDFKSNDFS FUICK
<mcrod>
FUCK
<zid>
he died before finding the bumfire?
<mcrod>
yes
<zid>
Good news, you went past it
<mcrod>
i got to the light
<zid>
so you can get it ez next time
<mcrod>
now I have to do this all over again..
<heat>
gog: yeah usually i use int main(int argc, char **argv, char **envp)
<mcrod>
past it _where_
<zid>
just before patches
<mcrod>
WHAT
<zid>
you slide down the coffin lids
<mcrod>
yes
<gog>
is envp safe to mutate
<heat>
no
<zid>
and there's just the barest little hint of the top of a ladder
<zid>
along the outside edge
<heat>
gog: well, it depends
<zid>
down that ladder is just a ledge with a bonfire
<zid>
envp in sysv is just on your stack
<heat>
safe? yes correct? no
<heat>
yeah
<zid>
same with argv
<zid>
but the _start interface *isn't* the C interface, so you can't just declare start as (int argc, char ..)
<zid>
fun fun
<heat>
_start has no arguments in sys v
<gog>
it doesn't seem to have any parameters in the calling convention anyway
<zid>
yup, it's a weird bespoke interface
<heat>
you get argc, argv and envp through %rsp/%esp/%sp/whatever
<zid>
It could trivially have decided to put the stack addreses into rdi/rsi but neglected to bother