klange changed the topic of #osdev to: Operating System Development || Don't ask to ask---just ask! || For 3+ LoC, use a pastebin (for example https://gist.github.com/) || Stats + Old logs: http://osdev-logs.qzx.com New Logs: https://libera.irclog.whitequark.org/osdev || Visit https://wiki.osdev.org and https://forum.osdev.org || Books: https://wiki.osdev.org/Books
<doug16k> that is what natural selection would do
<doug16k> apparently people can't get enough hashing. who knew?
<doug16k> I always wondered when there would be a workload where it was worthwhile for tons of people to use their spare compute power to make more than electricity cost
kazinsal_ has joined #osdev
vin has joined #osdev
<doug16k> would be nice if it were more tangible than currency thing
<gog> folding@home
yuriks_ has joined #osdev
<doug16k> I did some folding
<gog> less shiny and lucrative, but way more important than literally using gigawatt hours of electricity for a money laundering tool
Belxjander has joined #osdev
<geist> yah i did some in the winter, figured i may as well have the computer being a space heater
<gog> i've done it off and on for years
<gog> not so much on anymore because i don't have 3 sizable computers running constantly
<doug16k> it's so weird how certain programs run 100% full perfect speed, and others are severely affected, by the gpu load
zgrep_ has joined #osdev
kazinsal has quit [Ping timeout: 264 seconds]
CompanionCube has quit [Ping timeout: 264 seconds]
klys has quit [Ping timeout: 264 seconds]
crash has quit [Ping timeout: 264 seconds]
yuu has quit [Ping timeout: 264 seconds]
remexre has quit [Ping timeout: 264 seconds]
zgrep has quit [Ping timeout: 264 seconds]
yuriks has quit [Ping timeout: 264 seconds]
yuriks_ is now known as yuriks
<doug16k> my favourite ide is severely affected by gpu compute
<doug16k> it's nvidia with their software scheduler
remexre has joined #osdev
samis has joined #osdev
klange has quit [Ping timeout: 264 seconds]
ccx has quit [Ping timeout: 264 seconds]
kazinsal_ is now known as kazinsal
dh` has quit [Ping timeout: 264 seconds]
catern has quit [Ping timeout: 264 seconds]
<doug16k> how many irq per sec on your machines? I'm at around 6000 and 15000/sec
<doug16k> bit high no?
<geist> dunno, depends on what's generating them
<geist> seems a bit high if you're not doing anything, but if most of them are timers then it's possobly something chatty doing it
<doug16k> quite idle it is hard to be under 4200/sec
<doug16k> no videos playing. no sound going
zgrep_ is now known as zgrep
<doug16k> that's nuts right?
yuu has joined #osdev
<kazinsal> I'm averaging 40000/sec on my windows machine with a bunch of tabs open doing stuff, a handful of open programs, and VLC paused but active
<doug16k> cpu usage says 0 and it won't go under 4000
<doug16k> ya in windows you can do that multimedia call to make timer resolution fine
pretty_dumm_guy has quit [Quit: WeeChat 3.2-dev]
<doug16k> people trying to get good battery life hate that
<kazinsal> yeah probably a good chunk of these are VLC's media engine still timing things in the background
<doug16k> why does it need a lot of irq though?
<kazinsal> but I don't feel like closing VLC and losing my spot in my playlist to check :P
<doug16k> how does tons of irq help. can't it calculate timestamps between timer ticks? come on!
Arsen has quit [Ping timeout: 264 seconds]
Arsen has joined #osdev
pounce has quit [Ping timeout: 264 seconds]
<doug16k> in my kernel, priorities permitting, if you sleep for 17223 microseconds, I will do my best to return exactly 17223 microseconds from now
<kazinsal> maybe it wants really precise timers but also wants to relinquish some CPU time or something
maurer has quit [*.net *.split]
FireFly has quit [*.net *.split]
dgb has quit [*.net *.split]
<doug16k> I am as fine as the apic timer essentially
pounce has joined #osdev
FireFly has joined #osdev
maurer has joined #osdev
<doug16k> if it causes way more context switches, and stuff sat around ready to run all the way until the next tick, then sure
<doug16k> I guess it is crap like that
<doug16k> in mine if you resume a thread that has more right to run than what is running on that cpu right now, it sends the ipi right then and makes it run right now, or voluntarily switches to it on this cpu right now
<doug16k> my kernel is obsessed with latency
Oli has quit [Quit: leaving]
<doug16k> if dragging a window around with all cpus pegged isn't smooth as glass, it has completely failed, to me :P
<doug16k> it should coffee spray when that usb mouse irq comes in
<doug16k> omg the user wants something
<gog> UI smoothness is very important
Oli has joined #osdev
<moon-child> iirc macos special-cases the audio server thread, and if the audio buffer is ever about to run out will preempt whatever's running and switch to it
<gog> heh, i remember about a decade ago when pulseaudio was new. i was trying to play minecraft i think and pulseaudio was eating all of the cpu
* gog shakes her cane "back in my day"
<moon-child> pulseaudio _still_ climbs up to 100% cpu fairly frequently for me
<GreaseMonkey> the first time i gave up on pulseaudio was when i moved from ubuntu 09.10 to 10.04 i think, and there was an issue where it would spew garbage on dosbox or something which i think i "fixed" by changing the buffer size... when i moved to the later version it was spewing garbage on schismtracker so it had to go
<kazinsal> yeah I have latency issues with pulseaudio in VMs. haven't had any with sndiod
<GreaseMonkey> you don't need a VM to have latency issues with pulseaudio
<doug16k> I am mildly amused by playing music over virt-manager remote console in a vm on my other machine
<doug16k> works perfect
<doug16k> who would have guessed people would end up loading all that code in a browser and downloading and running all that js, to play music
<doug16k> and it calling that mountain of desktop / display accelerator stuff
<kazinsal> makes sense. it's a low barrier to entry on both the user and programmer side
<gog> i just used to use mpc and mpd :p
<doug16k> if it was a bochs "trace on" disassembly of every instruction though...
<kazinsal> the more cycles you have, the more you can blow on lowering the barriers to entry
<doug16k> nobody would believe you would actually use that many instructions to play music
<doug16k> yes I agree about using high level languages and environments for the right stuff
<doug16k> js is several times faster than it needs to be already
<kazinsal> I'm sure `aucat -i nickelback_photograph.au` is a lot simpler than spotify
<moon-child> js is also a lot more convoluted than it needs to be. If you wanna talk about lowering the barrier to entry
<moon-child> and lacks tools for metaprogramming and abstractions that other languages have
<kazinsal> it's perfect for building interfaces to stuff
<kazinsal> and it's excellent at exposing access to the kinds of things that JS engines run inside
<moon-child> please
<moon-child> that's stockholm syndrome
<kazinsal> I don't write JS
<doug16k> you can do hardcore data hiding where you can't even get to it with a debugger unless you stop it inside that scope
<moon-child> doug16k: isn't that any language with closures though?
<doug16k> right just saying that bit is part of explanation of how js started to be taken seriously
<doug16k> you can make certain things utterly impossible
<doug16k> I can't make anything utterly impossible in C++
<moon-child> I think js was taken seriously because of its popularity. Not because of any specific language feature
<moon-child> https://www.destroyallsoftware.com/talks/the-birth-and-death-of-javascript this looks more prophetic every year
<bslsk05> ​www.destroyallsoftware.com: The Birth & Death of JavaScript
<doug16k> you could make libraries with interfaces that lock people out so well that they can't take dependencies on your implementation details
<doug16k> even if they tried
<moon-child> that's not really different in practice from private members or forward-declared structs
<moon-child> yes you can memcpy or whatever, but you could also vendor the js library's source if you really needed to
<doug16k> being able to have an interface boundary that controllable makes it a good language
<doug16k> even if it has some stupid parts
<moon-child> you have very low standards :)
klange has joined #osdev
<gog> we're osdevvers. we catch as catch can
<doug16k> I see the appeal of being able to have constraints that can't be violated
<doug16k> I mean evan an idiot with memcpy can't violate it
<doug16k> can't know, hidden in closure chain in a function object
<doug16k> hopelessly inaccessible
fwg has quit [Quit: .oO( zzZzZzz ...]
gog has quit [Ping timeout: 265 seconds]
<doug16k> I should make a signal test where a thread single steps itself by setting TF in breakpoint handler and priming it with 0xcc, for a laugh
<doug16k> as example of ridiculous level of ability you have to trace where it has something to memcpy it
<doug16k> find code where there is known plaintext nearby pointer value
<doug16k> bingo
<doug16k> good luck constraining
<doug16k> you can even open the maps and know when it will fault and not fault
<doug16k> I only cheated in single player lol
<doug16k> not that hard to find where a variable is and hack modify it
elastic_1 has quit [Ping timeout: 272 seconds]
<doug16k> people will take dependencies that crazy
<doug16k> a person is completely sane. people are crazy though
_whitelogger has joined #osdev
<doug16k> there were cases where microsoft's padding changed in the windows build and they had to fix it so it had the same value as the padding had before
_whitelogger has joined #osdev
klys has joined #osdev
elastic_1 has joined #osdev
<doug16k> they had to make the undefined bits stay exactly like before
<klange> anyone know off-hand what exactly the source of X/y in enpXsY is in udev on Linux? PCI slot? Thinking I'll do something similar.
<moon-child> there was some video game that would free memory and then read from it right after. It broke on a newer version of windows where free would overwrite part of the memory freed
<klange> The freedesktop wiki just says "physical/geographical location of the connector of the hardware" so I guess I have to dig if I want the detailed answer...
<moon-child> so windows added a special case just for that game
<bslsk05> ​access.redhat.com: Chapter 11. Consistent Network Device Naming Red Hat Enterprise Linux 7 | Red Hat Customer Portal
<klange> I have an enp6s0, and it correlates to 06:00.0 so at least the 6 jives with my guess
<doug16k> [P<domain>]p<bus>s<slot>[f<function>][d<dev_id>]
<doug16k> from link
<doug16k> next page
<klange> thanks, that was much more useful than the freedesktop wiki
Shikadi` has joined #osdev
<klange> okay that particular scheme will be easy peasy then
<Ultrasauce> i hope you port s*stemd too
<klange> I have no intention of porting anything close to it, but I do actually like the naming scheme from years of having eth* devices swap around
<Ultrasauce> a mapping of mac address to ifname along the lines of /etc/iftab would probably be good too
<doug16k> when I look at the o<index> and p<bus>s<slot> and x<mac> I can't help think is it all at once
<doug16k> you put all of those there?
<doug16k> I don't see why not
<doug16k> so you can blindly open by mac and not care if its edge connector is a hole in the head?
<doug16k> oh neat, the whole hub path is in usb nics
jaevanko has joined #osdev
<doug16k> port number at each hop
<doug16k> 15 chars max name
<doug16k> if longer it drops it!
<doug16k> admins building trees of hubs leading to usb nic will be mad :P
klys is now known as klysm
freakazoid334 has quit [Ping timeout: 244 seconds]
<doug16k> funny thing is you'd probably get the full gigabit through all the hubs
<radens> so when I read the vmcs field Primary processor-based VM-execution controls during a vm exit I get a nonsense value, and when I write that value back in and vmresmue I get a vmresume failure
<doug16k> can that be?
<radens> yeah exactly
<radens> let me confirm that
<doug16k> this is real machine running it right?
<bslsk05> ​pastebin.com: 140009ae6: b8 02 40 00 00 mov $0x4002,%eax 140009aeb: 0f - Pastebin.com
<radens> yeah a real minnowboard turbot
<doug16k> it can be that it was using stale tlb entry when it did weird thing, now that it has been 1.2 million years since, the tlb is now correct when you look
<radens> That would be nuts in a world which is linearly mapped rwx for all of memory?
<radens> Also, like all the other fields show up right?
<doug16k> so the tlb is always right?
<radens> I'm confused :P
<doug16k> you dont use paging?
<radens> I don't fuck around with paging at all, I use what uefi gives me
<doug16k> ok then that cant be it
<radens> (and exit boot services has not been called)
<doug16k> whoa you mean you are using virtualization and you didn't even take over the computer yet?
<radens> I have taken over everything except for building my own page tables
<doug16k> I didn't know you could even do it without hacking the idt
<radens> I did install my own idt on the host, gdt, etc.
<doug16k> omg
<doug16k> you went miles outside spec
<radens> really?
jaevanko has quit [Quit: Leaving]
<radens> it's like memory is memory
<doug16k> so now if it ever thought it could modify gdt, it would be making a fool of itself modifying memory not being used as gdt
<radens> I'm confused by that statement
<doug16k> the idt is not the same memory ?
<radens> I have my own gdt, idt, etc.
<doug16k> or you modified in place
<radens> Not my own page tables
<doug16k> and you didnt exit boot services
<radens> no, this is a runtime service
<doug16k> I think it is crazy to change the gdt or idt before exit boot services
<radens> I don't change them
<doug16k> you said you have your own
<radens> I just set the host idt & gdt vmcs fields
<radens> and then when I vmexit
<radens> I use those
<doug16k> and interrupts enables
<doug16k> d
<doug16k> what does your idt do with irq
<doug16k> are there any?
<radens> on the host no, in the guest yes
<doug16k> so guest doesn't touch any real devices and cause any real irqs then
<radens> well
<radens> yes this is a passthrough hypervisor
<doug16k> then you get the real irqs on host
<doug16k> and do what, inject?
<radens> yes
<radens> If guest IF=1
<radens> if not, I cache them in the scheme I mentioned earlier to reinject them later
<doug16k> you have that acknowledgement cycle on 1 right?
<radens> ?
<doug16k> to get pic vector
<radens> I am not touching the pic at all
<doug16k> there's a weird bit that authorizes virtualization to do the bus cycle to get the vector number from pic
<doug16k> yes you are
<doug16k> guest does
<doug16k> everything guest does, you did it
<radens> yes
<radens> the vmm is not, uefi is
<radens> yes I think I am setting the interrupt acknowledgment vm execution control bit
<doug16k> so why haven't you exited boot services?
<radens> it's a runtime service
<radens> for a passthrough hypervisor
<doug16k> uefi doesn't get any surprise irqs?
<doug16k> why not?
<radens> surprise irqs?
<doug16k> stays on your idt forever?
<doug16k> so you ripped out the uefi implementation's idt
<radens> the vmm has its own idt but will never hit it since it never clears its i flag
<radens> yes, no uefi idt
<doug16k> that is way more crazy than anything I would even attempt
<radens> You know what I'm trying to build right? How would you do it?
<doug16k> I am way more pessimistic apparently :D
<radens> I may not be doing it right?
<doug16k> I would exit boot services
<doug16k> then I can just do handstands around the apartment and listen to stupid music
<doug16k> everything becomes ok
<radens> I want uefi to be able to load its own os
<radens> this is a runtime service not a bootloader
<radens> I want to assume as little about the guest as possible
<geist> guess you need some sort of diagram or table concerning the split of responsibilities here
<doug16k> you are trying to make virtualization work in uefi application and expect to exit back to shell and everyone is thumbs up?
<doug16k> I would say you can't
<geist> probably the 'simplest' way to do that would be to flip the tables: enter vm mode and run uefi as a guest itself
<geist> then when you're done put it back
<doug16k> total rug pull for guest to change hardware with impunity and still call uefi later
<radens> okay, so hyperjacking hypervisors like Simplevisor install themselves as a driver, set up their own gdt/idt etc. (but not necessarily page tables!), and then vmlaunch into their caller, right?
<radens> Works in ueif
<radens> The goal is that, but I want a gdb stub which talks over com1
<radens> So I need to intercept writes to com1 and the com1 interrupt
<doug16k> you can make it enter the virtualization and work. I am saying crazy part begins when you return to uefi or call its apis at that point
<doug16k> after guest swizzled hardware
<radens> Oh, I stop calling uefi APIs in the VMM
<radens> but the uefi shell is now our guest
<doug16k> then why don't you exit boot services
<doug16k> then you can stomp all over entire machine and it's good to go
<radens> I don't want to set up the guest bootloader myself. I want to write a hypervisor not a bootloader.
<doug16k> at that point, who else would be providing an idt. your idt is the only one
<radens> what?
<radens> There is a guest IDT and a host IDT. I wrote the host IDT.
<doug16k> after exiting boot services it is fine to change everything
<doug16k> before that, not fine
<radens> I don't change any of that shit in the guest
<radens> only in the host
<radens> the host gets its own copy of everythign
<radens> The guest keeps the old copy
<doug16k> so uefi programs can just fiddle with all the hardware all the want then
<doug16k> even move idt and leave it
<radens> yes
<doug16k> no
<radens> should they is a different answer
<radens> uefi drivers run as ring 0
<doug16k> they are providing an environment and you have to play along with their memory manager and stuff to use the drivers it loaded from rom and stuff
<doug16k> can't just stomp all over it and continue calling it
<doug16k> you have to warn them to stay back and you can go nuts then, they watch with popcorn
<radens> I don't stomp over it
<doug16k> by exiting boot services
<doug16k> ok I made my point
aquijoule__ has joined #osdev
<klange> Also despite having a difference between "applications" and "drivers", if you want to yield back to the firmware you have to manually relinquish everything you acquired from it :\
<radens> For a runtime service is that true??
<radens> This is not an application or a driver
<radens> This is runtime services data which I never free
<doug16k> so my runtimeservice can replace the idt too then
<doug16k> point it to mine. I need idt
<radens> I mean the hardware won't stop you
<doug16k> you see why that can't be right though
aquijoule_ has quit [Ping timeout: 264 seconds]
<klange> Runtime services are why regular applications need to free, but you'd think they'd do that for you if you mark yourself as an app...
<klange> My EFI build of my interpreter repl just tries to allocate a huge chunk (trying progressively smaller until it succeeds) to throw its object heap at, and then frees that on exit.
<radens> There are different types of uefi applications: apps, which just run in the shell and exit, like an exe, runtime services, which hang out being SMM drivers and stuff which the OS can call into potentially, and uefi drivers
<klange> And OS loaders are a subset of the first one.
<radens> I believe so
<klange> Just instead of returning to the shell they call exit boot services :)
<radens> yes
<doug16k> I have 320KB heap in bootloader. 320KB ought to be enough for anyone
<radens> so I structured this as a runtime service so UEFI tells the OS not to stomp on my shit
<klange> doug16k: not enough for my object heap that wants to load files into Kuroko bytes objects :)
<doug16k> yeah. I could make it giant in a second if I needed
<radens> Right now I don't set up EPT to stop the guest from stomping on my shit, but I should, just one thing at a time
<klange> Debating whether I should switch that to my own graphical terminal, but using the text services just feels more appropriate...
<klange> Eventually it'll be the basis of my new loader, and I'll have an implementation of Multiboot in knock-off-Pyhton.
<klange> but this network stack must come first, it is the one missing thing blocking an upstream merge.
<klange> I don't really care about storage drivers or filesystems, since the tarball ramdisk stuff is working, SMP is good enough to at least merge and fix all the bugs later, but without a network stack and a package manager, it's not really ToaruOS.
<doug16k> heat, here I am doing that section alignment thing I said not to do the other day in uefi linker script
iorem88 has joined #osdev
iorem has quit [Ping timeout: 272 seconds]
_whitelogger has joined #osdev
iorem88 has quit [Ping timeout: 272 seconds]
freakazoid333 has joined #osdev
heat_ has joined #osdev
heat has quit [Read error: Connection reset by peer]
samis is now known as CompanionCube
<doug16k> neat, objdump --dwarf calls out every inlining site pretty clearly: https://gist.github.com/doug65536/12576e806a5e4e8ef8aa09c5266088fc
<bslsk05> ​gist.github.com: gist:12576e806a5e4e8ef8aa09c5266088fc · GitHub
<geist> yah i think it's really improved over the years
<geist> which is why ealing with inlines is no longer a complete trash fire
<geist> just mostly annoying
<doug16k> you could figure out the actual call stack for a profiler result even if it were inlined to oblivion!
<doug16k> not be all flattened down to top level of inlining
<doug16k> the thing hosting all the inlines I mean
<doug16k> ha! DW_AT_inline : 2 (declared as inline but ignored)
<gorgonical> So we are actually all migrated here?
<doug16k> it tells you the offsets as plain as day https://gist.github.com/doug65536/8b2a44cc80b44c088c2cdf46152bea39
<bslsk05> ​gist.github.com: gist:8b2a44cc80b44c088c2cdf46152bea39 · GitHub
sm2n_ is now known as sm2n
<gorgonical> Making figures for research is not easy
bleb has joined #osdev
lleo has quit [Ping timeout: 244 seconds]
Shikadi` has quit [Ping timeout: 252 seconds]
SanchayanM has joined #osdev
<geist> gorgonical: for the most part. migrated
heat has joined #osdev
heat_ has quit [Ping timeout: 272 seconds]
doug16k has quit [Remote host closed the connection]
bleb has quit [Changing host]
bleb has joined #osdev
dormito has quit [Ping timeout: 265 seconds]
PapaFrog has joined #osdev
dormito has joined #osdev
_whitelogger has joined #osdev
kingoffrance has joined #osdev
doug16k has joined #osdev
fwg has joined #osdev
iorem has joined #osdev
gareppa has joined #osdev
alexander has joined #osdev
<sortie> Hello hello
* geist waves at sortie
<geist> your irc server is still up!
gareppa has quit [Quit: Leaving]
mhall has quit [Read error: Connection reset by peer]
<doug16k> what's supposed to happen if you did this: char f[] = "A🂡b🂡c"; char *x = strtok(f, "🂡"); totally screw up because of 4 byte 🂡 ?
yuu has quit [Ping timeout: 265 seconds]
<sortie> geist: irc.sortix.now and forever!
<sortie> (While kernel panics are in short supply. Offer void where prohibited.)
<doug16k> I'm guessing 🂡 will make 4 delimiters, and randomly screw up any other multibyte stuff that happens to use same 0x80+x thing
tyler569_ has joined #osdev
<doug16k> mbstok I guess
dennis95 has joined #osdev
<kingoffrance> well, doesnt answer your q, but there's always memmem()
fwg has quit [*.net *.split]
klysm has quit [*.net *.split]
FireFly has quit [*.net *.split]
tyler569 has quit [*.net *.split]
Bitweasil has quit [*.net *.split]
moon-child has quit [*.net *.split]
LittleFox has quit [*.net *.split]
<doug16k> yeah I'd never call strtok
<geist> huh. after all these years i've never seen that one
<doug16k> I'd walk it with strcspn
<geist> i've used strtok_r() though, which i think is pretty usable
<kingoffrance> memmem apparently isn't standardized, first appeared in glibc according to netbsd manpage
<kingoffrance> apparently fbsd and linux have it
<doug16k> just realizing you could put a multibyte encoded character in the delimiter string. is it supposed to just screw up, or do a proper scan for that multibyte delimiter?
<doug16k> I can imagine if the 2nd byte were 0x84 then it would go berserk and make every 0x84 utf8 encoded 2nd byte a delimiter
klysm has joined #osdev
<doug16k> which functions have to properly iterate through utf8?
FireFly has joined #osdev
fwg has joined #osdev
moon-child has joined #osdev
LittleFox has joined #osdev
<geist> my guess is DONT_DO_THAT
mhall has joined #osdev
<kingoffrance> <tangent> netbsd "see also"s bm(3) boyer-moore optimized string search based on frequency probability, but only singles -- </tangent> another example of you can always cheat if you have metadata
<kingoffrance> *only single-byte chars
<doug16k> ya bm algo popped into my head when you mentioned memmem
<doug16k> I was kind of looking forward to parsing out all the char32_t from the strcspn delimiter string and walk the string with utf8 parsing, lol
<doug16k> ya this chops it: { char f[] = "Áx"/*c3 81*/; cout << strtok(f, "ā" /* c4 81 */); }
<doug16k> can't I set the locale to enable some utf8?
<doug16k> result is just c3, "81" is a delimiter (as half expected)
gareppa has joined #osdev
gareppa has quit [Read error: Connection reset by peer]
<doug16k> << strtok(0, ",");
<doug16k> oops
<doug16k> the discarding consecutive delimiter thing pretty much wrecks strtok
gareppa has joined #osdev
<doug16k> more like separator?
<doug16k> not a delimiter
<doug16k> it's neat to use separator like " \t\r\n"
gog has joined #osdev
gog has joined #osdev
Ratzeputz has quit [Quit: Lost terminal]
* gog meows
<doug16k> wait yeah I have it backwards
<doug16k> that is delimiter. separator that strictly separates is like csv
<doug16k> space delimited would imply any number of spaces
gareppa has quit [Excess Flood]
gareppa has joined #osdev
gareppa has quit [Remote host closed the connection]
gareppa has joined #osdev
gareppa has quit [Remote host closed the connection]
LittleFox has quit [Ping timeout: 264 seconds]
LittleFox has joined #osdev
Nickwiz has joined #osdev
gareppa has joined #osdev
childlikempress has joined #osdev
moon-child has quit [Killed (NickServ (GHOST command used by childlikempress))]
childlikempress is now known as moon-child
<doug16k> what does c11 standard mblen doc mean mean by this: The implementation shall behave as if no library function calls the mblen function.
<doug16k> can you describe the difference between behaving as if they do call it and behaving as if they don't call it?
<j`ey> doug16k: lol what a weird sentence
<gog> > Each call to mblen updates the internal global conversion state (a static object of type mbstate_t, only known to this function). If the multibyte encoding uses shift states, care must be taken to avoid backtracking or multiple scans. In any case, multiple threads should not call mblen without synchronization: mbrlen may be used instead.
<gog> maybe that was a hamfisted way of saying "this is not thread safe"
Doctor5555 has joined #osdev
<j`ey> gog: yes
<doug16k> ah I see
k3nny has joined #osdev
<gog> also says "until C23" which is exciting
<gog> raw string support in C23 pls
k3nny has quit [Changing host]
k3nny has joined #osdev
asymptotically has joined #osdev
<kingoffrance> i had to look that up. c2 "It's a piece of cake in FortranLanguage 77, where all strings are raw anyway: " lol
<doug16k> basically mblen is amateur hour and you should call mbrlen if you are not an idiot
<kingoffrance> fortran77 predates \n \t etc. ? lol
<gog> doesn't look like that's going to be on the agenda
Arthuria has joined #osdev
k3nny has quit [Quit: Leaving]
GeDaMo has joined #osdev
Doctor5555 has quit [Ping timeout: 264 seconds]
fwg has quit [Remote host closed the connection]
dormito has quit [Ping timeout: 244 seconds]
<doug16k> I have a strstr that uses an incremental hash for the scan. I could probably turn that into memmem
gareppa has quit [Quit: Leaving]
<bslsk05> ​github.com: dgos/strstr.cc at master · doug65536/dgos · GitHub
KidBeta has joined #osdev
KidBeta has joined #osdev
KidBeta has quit [Changing host]
fwg has joined #osdev
Bonstra has quit [Ping timeout: 264 seconds]
Bonstra has joined #osdev
fwg has quit [Quit: so long and thanks for all the fish.]
terrorjack has joined #osdev
dormito has joined #osdev
air has quit [Quit: cria 0.2.9cvs17 -- http://cria.sf.net]
gareppa has joined #osdev
SanchayanM has quit [Quit: SanchayanM]
SanchayanM has joined #osdev
pretty_dumm_guy has joined #osdev
fireglow has joined #osdev
Arsen is now known as Arsen_
Arsen_ is now known as Arsen
isaacwoods has joined #osdev
<klange> well that's not right ;)
<meisaka> it's probably fine...
<Arsen> lgtm
<j`ey> its virtual memory, just allocate it!!
<klange> (I got all four of my cores going, this is a symptom of SMP bugs)
<meisaka> looks like ascii though, i wonder what it says
<klange> :dc6Wf
<j`ey> HELPME
<klange> I don't think it's ascii, I think it's just a coincidence.
<klange> I probably don't want to be debugging this stuff on real hardware, this was just a quick test, and this crash indicates it passed :)
<meisaka> i decoded it to ":dcevip"
<Arsen> hm, what do I need to log into the wiki? I have a phpbb account and I'm in the wiki group (I think), but wiki.osdev.org isn't taking my phpBB creds
<klange> oh i dropped a nibble
<klange> Arsen: let me check, can you link me your profile?
<bslsk05> ​forum.osdev.org: OSDev.org • Login
<Arsen> oh, it's still showing freenode irc names
<klange> yeah, that'll probably stay like that until chase shows up again
<klange> Arsen: oh have you made any posts that have been approved?
kingoffrance has quit [Ping timeout: 272 seconds]
<Arsen> uh not sure, I've mostly been lurking the forums and hanging out on irc and discord
<klange> Total posts: 0
<Arsen> likely not actually
<Arsen> yeah
<klange> I think when the moderation queue was set up the wiki permissions were also updated to require you to be approved first.
<Arsen> that's alright, the thing I wanted to correct is already fixed by someone else, I just wanted to see what I was missing
<Arsen> :^) I'll try to be more active
SanchayanM has quit [Quit: SanchayanM]
SanchayanM has joined #osdev
SanchayanM has quit [Client Quit]
kingoffrance has joined #osdev
KidBeta has quit [Ping timeout: 264 seconds]
gareppa has quit [Quit: Leaving]
Arthuria has quit [Killed (NickServ (GHOST command used by Guest684531!~user@user/arthuria))]
Arthuria has joined #osdev
Terlisimo has joined #osdev
Arthuria has quit [Ping timeout: 264 seconds]
srjek|home has joined #osdev
srjek has quit [Ping timeout: 272 seconds]
srjek|home has quit [Ping timeout: 244 seconds]
lleo has joined #osdev
wereii has joined #osdev
Arthuria has joined #osdev
gareppa has joined #osdev
<heat> is there an invalid IP address that doesn't exist and is not part of the local network?
<heat> currently I'm spamming data to a random google server but that's not very nice of me
<heat> I remember reading about benchmarking/test ones in the local network but that doesn't work once ARP/NDP fail
<LittleFox> heat, you could try or any other from
<LittleFox> but reading the other messages that might not be helpful
<heat> and that should hit localhost no?
<bslsk05> ​en.wikipedia.org: Reserved IP addresses - Wikipedia
<LittleFox> heat, yes that whole range is localhost, but most are not listening on all adresses in that range
<LittleFox> oh
<LittleFox> linux does, even when not configured .. so scrap that and sorry for spam
gruetze_ is now known as gruetzkopf
<heat> LittleFox, not an issue
<GeDaMo> Maybe some of those ones?
<LittleFox> reserved, hm better not I guess?
gareppa has quit [Quit: Leaving]
<LittleFox> (test-net-1)?
<LittleFox> (/24)
<heat> TEST-NET-2 and 3 look promising
<heat> NET-1 not so much since it's in the local network
<LittleFox> is it?
<heat> yes
<LittleFox> is local and is local
<heat> hm
<LittleFox> s/local/private network/
<dormito> if you have control of your router, might set it to simply drop packets dested for the test nets (I've not looked at the RFCs so I don't know if internet routers are also supposed to drop those packets)
<heat> right
<LittleFox> and test-net-1 has the advantage to _look_ normal, so easier to spot I guess? x)
<LittleFox> would be for me at least
<LittleFox> local-but-not-really
<heat> I could also send those since my OS doesn't listen for them and they're explicitly martian packets I think
<heat> so the router would immediately drop them
<LittleFox> need one as destination, right?
<LittleFox> not source?
<heat> yes
<heat> basically I want a sinkhole
<heat> that doesn't impact my future chances of employment by a big tech company ;)
<LittleFox> even would work for that I guess - but technically that would be invalid
<GeDaMo> "Addresses within the TEST-NET-1, TEST-NET-2, and TEST-NET-3 blocks SHOULD NOT appear on the public Internet" https://datatracker.ietf.org/doc/html/rfc5737
<bslsk05> ​datatracker.ietf.org: rfc5737
<LittleFox> hm should is a bit weak
<LittleFox> surprisingly weak
<heat> all of these are technically invalid
gareppa has joined #osdev
air has joined #osdev
<heat> that's the point
<GeDaMo> If they appear on the public Internet, it's someone elses fault :P
<LittleFox> GeDaMo, hm, yes, very true
<LittleFox> :D
<LittleFox> hm no heat, test-net-* is valid when used for testing - or .. no its not judging from that list, but was intended as that?
<LittleFox> .. just do IPv6 and I allocate you one IP for that? XD
<LittleFox> (oh V6 has a "discard prefix")
eight has quit [Ping timeout: 272 seconds]
eight has joined #osdev
pretty_dumm_guy has quit [Quit: WeeChat 3.2-dev]
Benjojo has joined #osdev
Shikadi` has joined #osdev
gareppa has quit [Quit: Leaving]
Oli has quit [Ping timeout: 252 seconds]
Izem has joined #osdev
Oli has joined #osdev
srjek|home has joined #osdev
brynet has joined #osdev
<seds> 0
<seds> sorry, bad channel :p
elastic_1 has quit [Quit: elastic_1]
elastic_dog has joined #osdev
Bitweasil has joined #osdev
<Bitweasil> Morning?
<Bitweasil> Man, either Libera is flakey, or my bouncer and it don't get along. :/
<gog> it's the former
<gog> it's better today
<gog> or rather, the server i connected to this morning has been stable
<Bitweasil> Ok.
<Bitweasil> My bouncer disconnects, then I come back with a conflict nick (Bitweasil-), and it won't auto-identify, so I get banned from channels and it's a pain to sort it out.
<fireglow> Bitweasil: consider SASL auth, ZNC supports it
<Bitweasil> Hm, ok. Does that auto-identify?
<Bitweasil> I've just got the nickserv module enabled.
<fireglow> Yes, it does, during the connection
<meisaka> SASL talks to services directly and will identify you before you join channels
<Bitweasil> Ah, good to know - I'll look into that.
<Bitweasil> Half an hour to get the keys registered and such or so?
<meisaka> you can use plain, which just takes your password
<gog> you give the key fingerprint to nickserv, takes no time or human interaction at all
<gog> if you choose ssl external that is
<Bitweasil> Ok, I'll look. Sounds useful, thanks!
alexander has quit [Ping timeout: 272 seconds]
Izem has quit [Ping timeout: 264 seconds]
<Oli> Here is an URL that leads at a web page offering a guide I think may be relevant for, Bitweasil: https://libera.chat/guides/certfp
<bslsk05> ​libera.chat: Using CertFP | Libera Chat
<kc8apf> TEST-NET-{1,2,3} should only appear in examples and never be used but people do dumb things (see allocated v4 ranges that are used privately by the owner so non-owners got the bright idea to use them as RFC1918 spaces behind NAT which worked great until the owner started using the range publicly)
srjek|home has quit [Ping timeout: 244 seconds]
<heat> kc8apf: TEST-NET-1,2,3 are very clearly stated as non-routable so you're pretty much safe using them
<heat> it's not like you're using a non-allocated block of addresses
<kc8apf> yet someone will advertise them in their BGP config at some point
<kc8apf> It's a near certainty that someone is already using them as additional RFC1918 space
<heat> then they shouldn't be surprised no traffic gets routed there :)
<clever> heat: in the past, i used a vpn that had "claimed" the whole 5.x.y.z range, but many years later, that range began being allocated to real servers
<clever> heat: i still had the vpn in my routing tables, so it took a bit to figure out why some new sites where just never loading
<heat> saying something is reserved != saying something is an example block of IPs and explicitly non-routable
<heat> if you want to break RFCs, it's your fault as a network operator
<clever> yeah
<clever> i dont know what the original state of the 5 block was
<clever> so i'm not sure who was at fault
<heat> wikipedia says reserved
<clever> ah
alexander has joined #osdev
<kazinsal> it was originally a packet radio network block
<kc8apf> in general, the answer to "is there an IPv4 address that is guaranteed to not be reachable" is "only if you are the network operator"
<kc8apf> kazinsal: still lots of arguing about that range being sold improperly
<heat> if your network operator doesn't listen to the RFCs you might as well unplug your ethernet cable :)
<heat> what else did they ignore? does the router translate SYNs to FINs and FINs to SYNs? who knows
<meisaka> maybe all the packets are in little endian
<heat> ports are floating point
pretty_dumm_guy has joined #osdev
<kazinsal> one of the biggest mistakes in network standardization and engineering was making the class E space a hard "reserved". means nothing accepts it, including older core routers, and if the core routers don't accept it, then you can't put it on the internet
<kazinsal> that's a whole /4 that just disappears into the aether because NOS implementers decided to interpret "reserved" as "verboten"
<heat> this reminded me
<clever> kazinsal: a quick google says that would only buy us ~18 months until we run out again
<clever> i feel like it would take over 18 months to work out all of those bugs
<clever> your better off just investing that effort into ipv6
<heat> recently there was a linux patch that made .0 addresses available and routable
iorem has quit [Quit: Connection closed]
<heat> (they were also broadcast for some reason)
<kazinsal> honestly I don't think we're going to get rid of IPv4 anytime soon. we'll just get more clever with NAT and routing
<gog> remember 20 years ago when ipv6 was the future
<gog> and it still is too
<kazinsal> I can imagine that at some point client access connections end up not having a single designated dynamic IP address
<jstoker> maybe in another 20 years it'll be usable for normal people!
<gog> even my last isp, local fiber provider, didn't have v6 end-to-end
<kazinsal> eg. your ISP NATs you to a random IP and random port
<kazinsal> for every stream
<clever> kazinsal: they already do that, carrier grade nat
<gog> the only thign that can stop a bad guy with a NAT is a good guy with a NAT
<kc8apf> heat: the war stories I've heard and shared with people who work on consumer devices that use IP......
<kc8apf> ISPs do all sorts of horrible things to make their network design mostly function
<clever> kc8apf: i once discovered that my pppoe modem, was on, when i had previously thought it was a dumb ppooe bridge
<clever> i didnt discover that, until i was switching from 192.168 to 10.0.0, and ran into an unexpected ip collision
<clever> it also had no config to change that, so my router wound up
<gog> lol whoops
<clever> gog: my current router, also silently ignores all requests to use a 10.0.0.x ip
<clever> because that is part of the iptv subnet, over a 2nd uplink
<gog> at my old client i was reconfiguring things (fireworks store, doing last-minute fixups on july 3) and i forgot to deny all but the MACs for the cash registers on the cash register VLAN and then the owner's oldest son plugs in a wifi router with DHCP enabled
<gog> everything went to shit
<clever> lol
<gog> and i hadn't noticed that while i wasnt looking somebody hooked up the cable that went to the house to the cash register switch
<gog> wrong port lol
<gog> nb: don't let other people plug thigns in
<gog> took me an hour to figure out what happened
heat_ has joined #osdev
heat has quit [Ping timeout: 252 seconds]
heat_ is now known as heat
<bslsk05> ​gyazo.com: Screenshot - eea613172fefde1bc205e2fa9913a682 - Gyazo
<j`ey> ZetItUp: haha
<kazinsal> yeah, I've done the occasional "weird, why isn't make picking up my changes"
<gog> forgot to fg and :wq
<gog> :p
<kazinsal> I need to remember that `C-K S` in vscode is "just save friggin everything"
<ZetItUp> worst thing i've done i think is not adding the actual .c file to the list of files to compile and wondering why everything compiled fine even after i added intentional errors :P
<kazinsal> mhm
<kazinsal> "why isn't this module load-- ah shit"
<heat> that's why I spam ctrl+s
pounce has quit [Changing host]
pounce has joined #osdev
zhiayang_ is now known as zhiayang
Brnocrist has joined #osdev
<j`ey> I was sure x86 had a bit reverse instruction.. https://godbolt.org/z/ax79sh1cW
<bslsk05> ​godbolt.org: Compiler Explorer
pretty_dumm_guy has quit [Ping timeout: 252 seconds]
<kc8apf> huh. I can't find options that get rustc to use SSSE3 for that.
<j`ey> hmm, even using skylake doesnt do anything https://godbolt.org/z/5xx78GjE6
<bslsk05> ​godbolt.org: Compiler Explorer
<kazinsal> iirc there's no bit reverse macroinstruction
<kazinsal> but chances are a shr/adc loop gets microoptimized
<j`ey> maybe i was just thinking of bswap then
<acidx> there's movbe
<acidx> but it's more like byte-swap than bit-swap
<kc8apf> right, there isn't a macroinstruction but rustc 1.52.0's codegen for this isn't the best
<j`ey> blame llvm, not rust! :P
<j`ey> unless it's not passing some features correctly, but i assumed skylake would have gotten that
<kc8apf> oh, it might not prefer SSSE3 in this case since you're only reversing a single u32
<nur> so uh, I'm debugging my kernel right? I'm making interrupt handlers work and its throwing a GPF. So I try to attach GDB and step through it to see which line of code is causing it. Except... interrupts aren't exactly function calls, and I think it's getting confused when it gets to the interrupt handler wrapper (which is in ASM) and saying "Cannot find bounds of current function"
<nur> so uh, how do I deal with this
<gog> are you doing -d int with qemu? it spits out a lot but you can see the error code when it #GPs and slides into a #DF
<nur> yeah
<nur> wait
<nur> error code
<nur> where's the error code at
<nur> lemme try
<gog> on the stack
<nur> oh right
<nur> how do I get to that
<gog> well also in the monitor output
<gog> it should say err: <some number>
<nur> I don't see an err
<nur> can I paste the output and show ya
<bslsk05> ​paste.ubuntu.com: Ubuntu Pastebin
<gog> e=<whatever> is the error code
<nur> oh e
<nur> it's...52
<nur> where do I look up errors
<gog> v=0xd?
<nur> yeah
<nur> check_exception old: 0xffffffff new 0xd
<nur> 1: v=0d e=0052 i=0 cpl=0 IP=0008:00100057 pc=00100057 SP=0010:00106fd0 env->regs[R_EAX]=00000000
<nur> then again
<nur> check_exception old: 0xd new 0xd
<nur> 2: v=08 e=0000 i=0 cpl=0 IP=0008:00100057 pc=00100057 SP=0010:00106fd0 env->regs[R_EAX]=00000000
<nur> now the e is zero
<gog> yeah 8 is double fault
<gog> has no code
<gog> for your GP though the error code is a segment selector
<nur> a permissions thing?
<nur> how do you know what the errors mean
<bslsk05> ​wiki.osdev.org: Exceptions - OSDev Wiki
<gog> for your #GP, the error code being 52 looks wrong
<gog> so i'd examine your idt
<gog> and make sure all the entries are set for PL=0
<nur> ah
<gog> with the kernel's segment selector
<nur> ah I see
<nur> thank you for the information :)
<nur> I think I can read qemu output better now too
<gog> :)
<jimbzy> Wow. My connection isn't dropping every 120 seconds. I don't know how to act, now.
<gog> hey bb
<kazinsal> *jimbzy's connection drops*
<jimbzy> Hehehe
isaacwoods has quit [Ping timeout: 264 seconds]
isaacwoods has joined #osdev
<heat> nur: it says "Cannot find bounds of current function" because you don't have debug information on your assembly code
<doug16k> jimbzy, more copulatory stares would be a start
<jimbzy> Hehehe
<kazinsal> please no staring hornily on main
<jimbzy> ಠ_ಠ
<gog> how dare you i am a married woman
<gog> "my wife and i saw you from across the bar and we hate your vibe. she's gonna kick your ass later"
<kazinsal> none of the exits are safe
sav has joined #osdev
<heat> not even _Exit?
Izem has joined #osdev
<kazinsal> _Exit just directly teleports you to the realm of being beaten up by gog's wife
<heat> abort()?
<kazinsal> I think that's just drinking until you pass out
<heat> when in doubt, brace yourself and ud2
Izem has quit [Client Quit]
<nur> heat, is there a way to get that? I added -g to my compile flags for gcc
<nur> is there one for the assembler too?
<heat> nur: you need to write that yourself
<CompanionCube> kazinsal: what if SIGABRT?
<kazinsal> the bar is on fire. if you're lucky, you'll get beaten up instead of suffering smoke inhalation
<heat> abort is essentially just raise(SIGABRT) + a few failsafes
<nur> heat, oh uh... that is beyond my current comprehension of how things work under the hood :-|
<heat> nur: yeah, dont worry, you just need to stepi and whatnot
<heat> you just don't have fancy debugging over that, which is OK
* CompanionCube wonders how annoying writing the DWARF info your self would be. Probably very.
<nur> note to self, I should probably give google more context when googling dwarf
<kazinsal> suddenly you're twelve tabs in and the credit card is out and you're buying a sharpened battleaxe
<Oli> lol
fireglow has quit [Quit: Gnothi seauton; Veritas vos liberabit]
fireglow has joined #osdev
ephemer0l has joined #osdev
<johnjay> mfw in the open file dialog in windows you can't type file.txt file.txt file.txt
<johnjay> but it WILL open the same file multiple times if you type "file.txt" "file.txt" "file.txt"
<kazinsal> yeah, most windows UI stuff is intended to do the obvious-to-laypersons thing
<geist> i thik it depends on how it's opened. iirc there's a large flags field that says things like multiple file selection, dir selection, etc
<kazinsal> instead of the obvious-to-grognards thing
freakazoid333 has quit [Ping timeout: 244 seconds]
<kazinsal> the average person thinks it's more likely to open a file called "profile history" than it is to open two files called "profile" and "history" at the same time
<kazinsal> for example
<johnjay> i see
<kazinsal> most default win32 UI decisions are about ensuring the average user (who is not exactly a technical type) can do what they want to with the minimum of frustration
<kazinsal> the people who get frustrated the most at windows tend to be unix nerds and the elderly
<johnjay> i suppose that explains it then
<gog> CompanionCube: CFI directives
<johnjay> that's one thing i like about emacs
<kazinsal> the former because we all expect the software to let us just do bizarre things, and the latter because they're hopelessly incompetent
<johnjay> it has advanced settings turned off by default. BUT you can enable them and it asks you if you want to
<gog> see all of doug16k's assembly code for examples on how to thorougly and painstakingly use it
<johnjay> windows should have a setting like, "Really enable advanced settings and also read linux drives like an OS should do anyway?"
<gog> there is an IFS for ext2/3
<gog> haven't used it in years tho
<gog> and it didn't do journaling
<gog> so ext3 volumes were opened as ext2 volumes
<kazinsal> iirc you can mount ext4 volumes in WSL
<kazinsal> but that doesn't make them accessible in File Explorer :(
<kazinsal> oh wait, no, it does in WSL2
<kazinsal> `wsl --mount <diskpath> [-p <partition number>]` in a command prompt or powershell
<kazinsal> then it shows up as a device in /mnt/wsl and can be accessed in the Linux category of the sidebar
<gruetzkopf> that mounts them in linux in a VM and then windows talks 9p2000 to linux
<kazinsal> the 9p support in windows now is quite nice it seems
<gruetzkopf> (i wonder if i can get it to talk to plan 9)
sortie has quit [Ping timeout: 264 seconds]
sortie has joined #osdev
basil has quit [Read error: Connection reset by peer]
bas1l has joined #osdev
GeDaMo has quit [Quit: Leaving.]
dormito has quit [Ping timeout: 264 seconds]
bas1l is now known as basil
srjek|home has joined #osdev
pretty_dumm_guy has joined #osdev
<doug16k> gog, even windows doesn't implement ext4? does anything except linux?!
<doug16k> the backward compatibility of ext4 has screwed it out of anyone implementing it
Seriusam has joined #osdev
<kazinsal> there's a third-party commercial macOS driver for ext4
<kazinsal> but that's about it
<gog> idk i was referring to a (probably ancient and dead) native driver for ext2
<kazinsal> there's a fuse driver for ext4 on macOS but it's read only
<j`ey> geist: looks like fuschehsia is shipping now, gg!
<kazinsal> which is baffling because ext4's reference implementation is open source
<doug16k> does that mean my linux install probably not range based ext4 and is still using the ext2 radix tree thing?
<doug16k> and ext4 isn't even ext4
<kazinsal> ext2 is probably the least crap of the linux filesystems
<kazinsal> higher versions of ext are not guaranteed to actually function as higher versions of ext by the spec
<kazinsal> btrfs eats your data
<kazinsal> reiserfs murders your wife
<doug16k> lol
<gog> oooooooooooooooooooooof
<gog> i forgot about that until this very moment
<gruetzkopf> The last thing Hans Reiser commited was murder.
<kazinsal> much like his wife, hans reiser jokes never get old
asymptotically has quit [Quit: Leaving]
* jimbzy facepalms
<gog> i'm gonna go hold my wife for awhile
<gog> and NOT kill her you sicks
<gog> sickos
<kazinsal> apparently they insta-denied him parole
<kazinsal> like, "try again later fucko"
<jimbzy> kazinsal, Yeah, I don't see him walking out of there honestly.
<doug16k> gog, not UFC kind of hold though, right?
<gog> no, doug, not that kind of hold
<doug16k> ok good
<jimbzy> KFC, not UFC. You gotta hold her like a 10-piece bucket and sides.
<gog> she might prefer i put her in a leglock
<gog> (fried chicken is her biggest vegan weakness)
<gog> anyhow, be back later probably
gog has quit [Quit: bye]
alexander has quit [Quit: Time to sleep. Good night! o/]
<CompanionCube> it's still interesting that ZFSin exists.
<kazinsal> I'm trying to think of other native linux filesystems
<kazinsal> I guess JFS and XFS
<CompanionCube> bcachefs?
<froggey> isn't XFS from AIX originally or something?
<kazinsal> can you boot from that?
<CompanionCube> froggey: IRIX.
<kazinsal> JFS is originally AIX, XFS is SGI
<CompanionCube> kazinsal: you can boot from anything with an initramfs.
<kazinsal> fair
<froggey> oh, you mean like has a native linux driver, not was developed specifically for linux?
dormito has joined #osdev
<kazinsal> yeah, I guess if it has a native driver and you can boot from it it's a native FS
<kazinsal> and supports posix stuff
<kazinsal> so that excludes FAT32
fkrauthan has quit [Quit: ZNC - https://znc.in]
fkrauthan has joined #osdev
bslsk06 has joined #osdev
brown121407 has joined #osdev
hl_ has joined #osdev
tux3_ has joined #osdev
puckipedia has joined #osdev
<gruetzkopf> fat32 used to work
rwb has quit [Quit: ZNC - https://znc.in]
<gruetzkopf> haven't checked in a while
nero has quit [Ping timeout: 272 seconds]
dennisschagt has quit [Read error: Connection reset by peer]
hl has quit [Write error: Connection reset by peer]
puck has quit [Read error: Connection reset by peer]
<gruetzkopf> you might have to turn on case sensitive mode (instead of only being case preserving)
tux3 has quit [Read error: Connection reset by peer]
ornitorrincos has quit [Read error: Connection reset by peer]
smarton has quit [Read error: Connection reset by peer]
ornitorrincos has joined #osdev
bslsk05 has quit [Read error: Connection reset by peer]
k4m1 has quit [Read error: Connection reset by peer]
Stary has quit [Ping timeout: 272 seconds]
Ryozuki has quit [Ping timeout: 272 seconds]
hl_ is now known as hl
Stary has joined #osdev
pbx has quit [Remote host closed the connection]
manawyrm has quit [Excess Flood]
manawyrm has joined #osdev
Mikaku has quit [Ping timeout: 272 seconds]
V has quit [Ping timeout: 272 seconds]
rb has joined #osdev
rb is now known as Guest6182
freakazoid333 has joined #osdev
tux3_ is now known as tux3
Guest6182 is now known as rwb
sav has quit [Remote host closed the connection]
kazinsal has quit [Ping timeout: 265 seconds]
pretty_dumm_guy has quit [Quit: WeeChat 3.2-dev]
kazinsal has joined #osdev
dennis95 has quit [Quit: Leaving]
fireglow has quit [Quit: Gnothi seauton; Veritas vos liberabit]
fireglow has joined #osdev
<sortie> This is the point in osdev where I debug why openssl SSL_new returns null
<sortie> I'm this closed to xkcd 349 compliance
vai has quit [Ping timeout: 264 seconds]
<heat> didn't you use libressl?
<kazinsal> as all good developers should
<heat> you can also pick one of the 300 OpenSSL forks there are
<heat> and pray nothing breaks
<heat> spoiler: it breaks
<Matt|home> er.. i thought OpenSSL was the defacto standard? idk it's been a while. never heard of "libressl"
<kazinsal> libressl is the OpenBSD foundation's fork of openssl
<Matt|home> oh wow openbsd uses it.. that must be the better version :p
<Matt|home> (not joking)
<kazinsal> emphasis on code correctness
<kazinsal> and simpler interfaces
<kazinsal> libtls is meant to be the newer, less obnoxious frontend to libressl than the usual openssl interfaces
<Matt|home> fair enough
Belxjander has quit [Ping timeout: 272 seconds]
<heat> Matt|home: OpenSSL is the defacto standard and very few systems actually use libressl
<heat> libressl is cute and all until stuff breaks
<klange> One day, I will commit the grave sin of writing my own TLS implementation...
<Matt|home> that's a bit strange.. from what i remember of the openbsd team, they take auditing to extreme levels
<klange> (And then sortie can use _that_ in sortix!)
<kazinsal> libressl works fine
<kazinsal> gets updated a lot too
<sortie> heat: Turns out it's well because I don't have AF_UNIX SOCK_DGRAM support and changing it to SOCK_STREAM means the message boundaries got fucked up so libssl didn't get init'd properly
<kazinsal> their base crypto library as part of it is really nice too
<sortie> klange!
<sortie> Come join us over at irc.sortix.org
<heat> kazinsal: which linux distro uses libressl?
<kazinsal> basically all the crypto bits in -lssl separated out into -lcrypto
<heat> yeah, exactly
<klange> do you have cookies?
<sortie> THIS IS THE EU
<kazinsal> heat: none, because linux people tend to be stubborn idiots
<acidx> lol
<bslsk06> ​lwn.net: LibreSSL languishes on Linux [LWN.net]
<kazinsal> masturbatory ideological inertia stops actual meaningful change
<acidx> sortie: if you ever make an embedded version of sortix, please call it shortix
<heat> kazinsal, you should read that
<kazinsal> it's good that openssl has managed to figure out how to write good code
<kazinsal> however its interfaces are still an atrocity
<kazinsal> they enable people to make massive mistakes in TLS implementations
Arthuria has quit [Ping timeout: 272 seconds]
<geist> j`ey: yep!
<geist> already rolling out to N devices
<doug16k> do you guarantee your strerror_r is truncated because nobody's going to check for -1 ERANGE from it in a million years?
<doug16k> or do people like error handlers so much, they add error handlers to their error handlers?
<heat> musl's strerror_r returns ERANGE
Seriusam has quit [Read error: Connection reset by peer]
<doug16k> yes but I mean, you'd give them a null terminated "Unkno\0" if they called strerror_r(23847683, buf, 6)
<doug16k> not Unknow then the following garage until lucky null
* geist senses a disturbance in the sortix
<heat> doug16k, musl handles that, yes
<heat> also you don't return -1 ERANGE, you return ERANGE
gog has joined #osdev
* gog meows
<klysm> ^,,^
<klange> sortie: I hope you're collecting valuable data with this experiment.
<sortie> Hey let me know if you get in
<heat> sortie did this so he could kick us out from the server
<klange> I got to hostname check and then it timed out.
<geist2> same
<heat> Disconnected (Remote host closed socket)
<heat> (on 6697)
<klange> So it did handshake and do some TLSes for a bit.
<geist2> yah
<geist2> a little bit of TLS here a little bit of TLS there
<sortie> Did port 6667 work?
<geist2> you want us to connect to irc like common people?
<doug16k> heat, man page says: The XSI-compliant strerror_r() function returns 0 on success. On error, a (positive) error number is returned (since glibc 2.13), or -1 is returned and errno is set to indicate the error (glibc versions before 2.13).
<doug16k> return -1 then set errno to ERANGE is what I meant
<heat> that's non conforming
<doug16k> yeah?
<doug16k> it says XSI compliant
<doug16k> oh
<heat> yes, but the -1 errno = ERANGE is non conforming
<doug16k> I see
<heat> that's why they fixed it
<heat> sortie, oh wait I forgot to enable SSL for the server lol
<heat> but yeah, still hangs
<sortie> Hmm I can get in via 6667
<johnjay> libera worked for 6667 or 6697 for me i tested both
<heat> johnjay, not libera, irc.sortix.org
<heat> the best irc server in the world
<johnjay> sigh. well at least i tried to be useful there
<johnjay> but anyway has any news happened with freenode yet
<johnjay> or is it still wait and see
<geist2> the freenode osdev channel is muted, so at least it's not forked
<johnjay> meaning if it was taken over it would be unmuted?
<klysm> sortie, for proper ssl you should get a letsencrypt cert and use libgnutls30
<johnjay> are a lot of channels doing that?
<geist2> dunno!
<sortie> lol gnutls
<heat> arch did it too
<doug16k> wont freenode admins force it unmuted eventually?
<geist2> i dunno!
<johnjay> i guess that's the idea. if they do then it shows they are the bad guys
<johnjay> i guess
<klange> Best not to think about it.
* geist2 senses a jedi mind trick through the internet
<johnjay> like when you draw a line in the sand and say don't cross this line or i'll attack! then they cross the line. then you attack with some kind of justification you were in the right
<doug16k> everybody is always right
<heat> sortie: * Connection failed ((336130315) error:1408F10B:SSL routines:ssl3_get_record:wrong version number) <-- is this useful?
<gog> thats what i got too
<sortie> heat: Hmm maybe
<jeaye> Yeah, freenode admins are handing around +F to any folks who want to start taking care of channels which have been cleared out.
<heat> it was a bit random btw
<heat> usually it connects but hangs right after the hostname lookup
<jeaye> Even # channels, which says a lot.