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
dude12312414 has quit [Remote host closed the connection]
dude12312414 has joined #osdev
<Mondenkind> are cli/sti slow?
thinkpol has quit [Remote host closed the connection]
<Mondenkind> agner says they were on really old chips, but has nothing for new ones
<Mutabah> Probably not noticably slow
<Mutabah> Although, you'd want to limit the amount of time spent with IF=0 just to reduce interrupt latency
mavhq has joined #osdev
thinkpol has joined #osdev
<Mondenkind> yeah
<Mondenkind> I'm trying to work out of it's sensible to guard allocations with if=0 so it's safe to allocate in isrs. (Ignoring nmi ofc)
<Mondenkind> i guess i could check in the isr if the allocator is running, and switch to an alternate heap if so
<clever> Mondenkind: wait a second, they put the source for the whole program, into the program output! lol
mavhq has quit [Quit: http://quassel-irc.org - Chat comfortably. Anywhere.]
brynet has joined #osdev
mavhq has joined #osdev
sprock has joined #osdev
<kingoffrance> whats inside your resume? Doom </color of money klange>
mavhq has quit [Quit: http://quassel-irc.org - Chat comfortably. Anywhere.]
<kingoffrance> the cycle is complete!
<kingoffrance> esp. if you put it inside a briefcase
mavhq has joined #osdev
<kazinsal> klange: You are the only person I know whose resume has a BSD license as a section :P
<klange> It's an NCSA/University of Illinois license :P
[itchyjunk] has joined #osdev
m3a has joined #osdev
m3a has quit [Client Quit]
m3a has joined #osdev
m3a has quit [Client Quit]
m3a has joined #osdev
srjek|home has joined #osdev
zhiayang has quit [Quit: oof.]
zhiayang has joined #osdev
zaquest has quit [Remote host closed the connection]
zaquest has joined #osdev
srjek|home has quit [Ping timeout: 264 seconds]
<klange> I should a roll a new beta, it's been nearly a month since 1.99.7 and a lot's gone in. There's still too much blocking 2.0 to hold out for it...
* klange marks tag and push
<klange> Now we just sit and wait for CI build to finish and post the draft with the changelog, download the release build, and grab a screenshot...
<zid> while you're waiting, write a script to do all that ;)
<klange> The only remaining non-automated things are not scriptable.
<klange> The screenshots are tailored to demonstrate new features, and I'm not going to bother automating downloading the release build - I just click the attachment when the release draft is available.
<geist> are you doing a CI build on github or on one of your machines?
<geist> curious if you do it using an action where you put the results
<klange> Github
<geist> push the result to your server?
<klange> Nope, just attaches to a release in Github.
<klange> Any tag build produces a draft release.
<klange> Includes a changelog from the last tag and a boilerplate template with a spot to put a screenshot and prose description of changes.
<geist> nice
<klange> My CI setup runs under a docker image that has the GCC/binutils toolchain pre-built. Takes about two to three minutes to download that and build everything. That happens for all commits, and the resulting CD is available as an artifact.
<klange> Anyway, here's ToaruOS 1.99.8: https://github.com/klange/toaruos/releases/tag/v1.99.8
<klange> They changed the format for the release pages and now my heading is doubled, I should remove the superfluous one from the template...
<klange> This is the template for the release notes: https://github.com/klange/toaruos/blob/v1.99.8/util/generate-release-notes.sh
<kazinsal> aha, I was just going to ask if you had a fancy git log pipeline for the release notes
Oli has quit [Quit: leaving]
EtherNet has quit [Ping timeout: 265 seconds]
EtherNet has joined #osdev
vdamewood has quit [Read error: Connection reset by peer]
vdamewood has joined #osdev
<Mondenkind> today's xkcd seems topical
<geist> oh my exactly
[itchyjunk] has quit [Remote host closed the connection]
MarchHare has joined #osdev
MiningMarsh has quit [Quit: ZNC 1.8.2 - https://znc.in]
MiningMarsh has joined #osdev
mctpyt has quit [Ping timeout: 260 seconds]
mctpyt has joined #osdev
vin has quit [Quit: WeeChat 2.8]
ZetItUp has joined #osdev
mctpyt has quit [Ping timeout: 264 seconds]
mavhq has quit [Quit: http://quassel-irc.org - Chat comfortably. Anywhere.]
mavhq has joined #osdev
remexre has quit [Ping timeout: 245 seconds]
shikhin has quit [Ping timeout: 245 seconds]
kingoffrance has quit [Ping timeout: 245 seconds]
remexre has joined #osdev
<geist> huh. i thought i had this on a long time ago, but i just re-discovered -Wmissing-declarations
<geist> already found quite a few places where something wasn't matching up with the header
<klange> That's the one that requires a declaration for all non-static functions before their definition?
<geist> yes
<geist> otherwise it's fairly easy to int foo(int) in a header and int foo() in a file and never notice that they dont match
<geist> as i'm finding right now. i swear i had this on a long time ago, but probably lost the switch, or it got broken out in some refactor
<geist> or was too annoying and turned it off
<klange> I think I've got far too many places at the moment where I don't bother marking something static even if it's not really part of an API used by other compilation units.
ElectronApps has joined #osdev
<geist> also that is most of the warnings i'm fixing
<kazinsal> yeah I need to clean that up as well
<kazinsal> I should put myself together a todo list
<kazinsal> in order of importance
<klange> My TODO list ends up being the list of thigns I avoid doing.
dude12312414 has quit [Ping timeout: 276 seconds]
zaquest has quit [Ping timeout: 258 seconds]
<geist> yaht hat's true
<geist> i literally just fixed a bug that was filed like 3 years ago
<geist> and was trivial
<geist> but then it was also a trivial bug, which made me mostly ignore it
nur has joined #osdev
zaquest has joined #osdev
kingoffrance has joined #osdev
opios2 has joined #osdev
ravan has joined #osdev
<kazinsal> "With this PCIe card, you can add a 10/100/1000/25000 Mbps Ethernet port to any PC through a PCIe slot." Hmm, I think that might be one too many zeroes...
<Mutabah> Ooh, 25 gigglebit
<kazinsal> Does make me think though, even with my job involving big chunky networking boxes, I've never actually seen 25GBASE-T
<kazinsal> Plenty of 10GBASE-T and 25GBASE-SR and other higher bandwidth fibre connections, but no 25GbE over Cat8
<Griwes> okay, managed to get my build system to be able to build unit tests in a (somewhat) reasonable fashion
<Griwes> now the hard part, i.e. actually writing some :'D
<klange> At some point in the past I had all sorts of test harness stuff set up.
X-Scale` has joined #osdev
X-Scale has quit [Ping timeout: 252 seconds]
<klange> These days I just add a kuroko script as an additional multiboot module and set `root=/dev/ram1` :D
<klange> Not exactly unit tests, but gives me a kernel with nothing else running.
X-Scale` is now known as X-Scale
<klange> Where is that dang snake... I'll have to poke its wrangler.
bslsk05 has joined #osdev
<klange> yay
ravan has quit [Remote host closed the connection]
<Griwes> klange: oh yeah I'll eventually do _something_ like that, for what I'd probably call integration tests
<Griwes> but I'm getting to the point where I need multiple non-trivial generic datastructures and I'd rather have tests that actually tell me which part is broken without needing to debug the kernel :P
pretty_dumm_guy has joined #osdev
Belxjander has joined #osdev
C-Man has quit [Ping timeout: 260 seconds]
janemba has quit [Read error: Connection reset by peer]
janemba has joined #osdev
vai has quit [Remote host closed the connection]
GeDaMo has joined #osdev
<warlock> exit
warlock has quit [Quit: leaving]
warlock has joined #osdev
MarchHare has quit [Ping timeout: 264 seconds]
ElectronApps has quit [Remote host closed the connection]
devcpu has quit [Ping timeout: 260 seconds]
C-Man has joined #osdev
devcpu has joined #osdev
Coldberg has joined #osdev
C-Man has quit [Ping timeout: 258 seconds]
X-Scale` has joined #osdev
X-Scale has quit [Ping timeout: 252 seconds]
X-Scale` is now known as X-Scale
vinleod has joined #osdev
vdamewood has quit [Read error: Connection reset by peer]
xenos1984 has quit [Remote host closed the connection]
xenos1984 has joined #osdev
vinleod is now known as vdamewood
dennis95 has joined #osdev
JerryXiao has quit [Quit: Bye]
JerryXiao has joined #osdev
ravan has joined #osdev
zacque has left #osdev [Goodbye :D]
m3a has quit [Quit: leaving]
Oli has joined #osdev
Arthuria has joined #osdev
gxt_ has quit [Remote host closed the connection]
gxt_ has joined #osdev
ahalaney has joined #osdev
ravan has quit [Ping timeout: 252 seconds]
dude12312414 has joined #osdev
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
[itchyjunk] has joined #osdev
mniip has quit [Remote host closed the connection]
mniip has joined #osdev
srjek|home has joined #osdev
ElectronApps has joined #osdev
gxt_ has quit [Remote host closed the connection]
gxt_ has joined #osdev
xenos1984 has quit [Remote host closed the connection]
xenos1984 has joined #osdev
ravan has joined #osdev
JerryXiao has quit [Quit: Bye]
nyah has joined #osdev
JerryXiao has joined #osdev
ElectronApps has quit [Remote host closed the connection]
dormito has joined #osdev
dormito10 has joined #osdev
dormito10 has quit [Client Quit]
dormito has quit [Ping timeout: 260 seconds]
brettgilio has quit [Quit: Leaving...]
brettgilio has joined #osdev
[itchyjunk] has quit [Read error: Connection reset by peer]
dutch has quit [Quit: WeeChat 3.3]
dutch has joined #osdev
dennis95 has quit [Read error: Connection reset by peer]
Arthuria has quit [Ping timeout: 260 seconds]
MarchHare has joined #osdev
anon16_ has joined #osdev
sprock has quit [Ping timeout: 264 seconds]
anon16_ has quit [Ping timeout: 260 seconds]
nyah has quit [Remote host closed the connection]
anon16_ has joined #osdev
sprock has joined #osdev
xenos1984 has quit [Read error: Connection reset by peer]
Oli has quit [Ping timeout: 260 seconds]
Oli has joined #osdev
Vercas has quit [Remote host closed the connection]
Vercas has joined #osdev
xenos1984 has joined #osdev
srjek|home has quit [Ping timeout: 264 seconds]
doppler has quit [Ping timeout: 264 seconds]
m3a has joined #osdev
srjek|home has joined #osdev
GeDaMo has quit [Remote host closed the connection]
gog has quit [Remote host closed the connection]
nyah has joined #osdev
gog has joined #osdev
ahalaney has quit [Quit: Leaving]
devcpu has quit [Quit: leaving]
devcpu has joined #osdev
srjek|home has quit [Ping timeout: 252 seconds]
srjek has joined #osdev
sprock has quit [Ping timeout: 260 seconds]
dormito has joined #osdev
srjek has quit [Ping timeout: 264 seconds]
dude12312414 has joined #osdev
nyah has quit [Ping timeout: 260 seconds]
pretty_dumm_guy has quit [Quit: WeeChat 3.3]
<eryjus> rubber ducking with doxygen is proving to me more fruitful than i expected.
[itchyjunk] has joined #osdev
<klange> How does one rubber duck with doxygen? Reading your own docs?
<Mondenkind> writing them, I would guess. 'My system works like--hmm, how _does_ my system work?'
<klange> I spent a lot of time on the docs for my programming language.
<eryjus> "wait, is that what I did? what the heck was I thinking?"
eremitah has joined #osdev
dude12312414 has quit [Ping timeout: 276 seconds]
sonny has joined #osdev
<sonny> Can a garbage collector be implemented as a special interface / program for compilers?
<sonny> ... or is the problem always, the os has no idea what to collect?
<klange> Garbage collection has nothing to do with OSes.
<sonny> OSes manage memory ... it's not a far stretch
<klange> Garbage collection actually has very little to do with managing memory, even.
<klange> Garbage collection is about finding things you reference somewhere.
<klange> The OS has no clue about your datastructures and how they reference each other.
<junon> It's also an entirely opinionated design decision to use a GC. Not every program wants, needs or even benefits from it.
<junon> So to generalize it at the OS level, even if practical, would be locking in a bunch of people to your design philosophy.
<sonny> yeah, that's the idea
<junon> It's not practical though. That's klange's point.
<klange> Concepts like this have been tried, and while forums and Hacker News comment sections may be full of reminiscent gray beards pining for those days to return, they've all gone the way of the dodo.
<junon> ^
<sonny> ok
<junon> FWIW it's useful to consider these things as mental exercises. I don't think anyone here would disagree there are learning opportunities when applying such things to OS design theory. But we're at a point now where novel ideas and applications of things are far and few in between.
<sonny> I'm still thinking about it, I disagree though, because we keep getting new hacks instead of refined concepts
<sonny> with the novel ideas bit*
<junon> That's a pretty nebulous statement. Can you give an example?
<klange> Turns out hacks are what make the world go round.
<klange> I think if there's one lesson to be learned from decades of operating systems research, it's that dumb, simple solutions actually tend to be worthwhile ones, and the market doesn't give a shit about how refined your concept is.
<junon> Or clever.
<junon> Nobody cares about clever. They care about useful.
<klange> I think this beautifully exemplified by the weeks of time my OS course in uni spent talking about scheduler design, and how much time textbooks on the subject devote to it, but you know what turns out to be really good for general-purpose computing? Round robin.