Search logs:

channel logs for 2004 - 2010 are archived at http://tunes.org/~nef/logs/old/ ·· can't be searched

#osdev2 = #osdev @ Libera from 23may2021 to present

#osdev @ OPN/FreeNode from 3apr2001 to 23may2021

all other channels are on OPN/FreeNode from 2004 to present


http://bespin.org/~qz/search/?view=1&c=osdev2&y=21&m=10&d=21

Thursday, 21 October 2021

00:01:00 <Mondenkind> are cli/sti slow?
00:02:00 <Mondenkind> agner says they were on really old chips, but has nothing for new ones
00:02:00 <Mutabah> Probably not noticably slow
00:02:00 <Mutabah> Although, you'd want to limit the amount of time spent with IF=0 just to reduce interrupt latency
00:03:00 <Mondenkind> yeah
00:03:00 <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)
00:04:00 <Mondenkind> i guess i could check in the isr if the allocator is running, and switch to an alternate heap if so
00:07:00 <clever> Mondenkind: wait a second, they put the source for the whole program, into the program output! lol
00:09:00 <klange> You can play Doom on my résumé. https://klange.dev/s/Screenshot%20from%202021-10-21%2009-09-25.png
00:19:00 <kingoffrance> whats inside your resume? Doom </color of money klange>
00:21:00 <kingoffrance> the cycle is complete!
00:22:00 <kingoffrance> esp. if you put it inside a briefcase
00:32:00 <kazinsal> klange: You are the only person I know whose resume has a BSD license as a section :P
00:38:00 <klange> It's an NCSA/University of Illinois license :P
02:17:00 <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...
02:18:00 * klange marks tag and push
02:19:00 <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...
02:22:00 <zid> while you're waiting, write a script to do all that ;)
02:22:00 <klange> The only remaining non-automated things are not scriptable.
02:23:00 <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.
02:25:00 <geist> are you doing a CI build on github or on one of your machines?
02:25:00 <geist> curious if you do it using an action where you put the results
02:25:00 <klange> Github
02:25:00 <geist> push the result to your server?
02:25:00 <klange> Nope, just attaches to a release in Github.
02:26:00 <klange> Any tag build produces a draft release.
02:26:00 <klange> Includes a changelog from the last tag and a boilerplate template with a spot to put a screenshot and prose description of changes.
02:27:00 <geist> nice
02:28:00 <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.
02:29:00 <klange> Anyway, here's ToaruOS 1.99.8: https://github.com/klange/toaruos/releases/tag/v1.99.8
02:30:00 <klange> They changed the format for the release pages and now my heading is doubled, I should remove the superfluous one from the template...
02:30:00 <klange> This is the template for the release notes: https://github.com/klange/toaruos/blob/v1.99.8/util/generate-release-notes.sh
02:30:00 <klange> And this is the Github Actions config: https://github.com/klange/toaruos/blob/v1.99.8/.github/workflows/build.yml
02:31:00 <kazinsal> aha, I was just going to ask if you had a fancy git log pipeline for the release notes
03:14:00 <Mondenkind> today's xkcd seems topical
03:32:00 <geist> oh my exactly
06:29:00 <geist> huh. i thought i had this on a long time ago, but i just re-discovered -Wmissing-declarations
06:29:00 <geist> already found quite a few places where something wasn't matching up with the header
06:33:00 <klange> That's the one that requires a declaration for all non-static functions before their definition?
06:36:00 <geist> yes
06:36:00 <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
06:36:00 <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
06:36:00 <geist> or was too annoying and turned it off
06:37:00 <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.
06:38:00 <geist> also that is most of the warnings i'm fixing
06:38:00 <kazinsal> yeah I need to clean that up as well
06:39:00 <kazinsal> I should put myself together a todo list
06:39:00 <kazinsal> in order of importance
06:40:00 <klange> My TODO list ends up being the list of thigns I avoid doing.
06:45:00 <geist> yaht hat's true
06:45:00 <geist> i literally just fixed a bug that was filed like 3 years ago
06:45:00 <geist> and was trivial
06:45:00 <geist> but then it was also a trivial bug, which made me mostly ignore it
07:16:00 <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...
07:19:00 <Mutabah> Ooh, 25 gigglebit
07:20:00 <kazinsal> Does make me think though, even with my job involving big chunky networking boxes, I've never actually seen 25GBASE-T
07:21:00 <kazinsal> Plenty of 10GBASE-T and 25GBASE-SR and other higher bandwidth fibre connections, but no 25GbE over Cat8
07:40:00 <Griwes> okay, managed to get my build system to be able to build unit tests in a (somewhat) reasonable fashion
07:41:00 <Griwes> now the hard part, i.e. actually writing some :'D
07:44:00 <klange> At some point in the past I had all sorts of test harness stuff set up.
07:44:00 <klange> These days I just add a kuroko script as an additional multiboot module and set `root=/dev/ram1` :D
07:44:00 <klange> Not exactly unit tests, but gives me a kernel with nothing else running.
07:45:00 <klange> Current script... does this: https://gist.github.com/klange/28e5594b793f1e057169389470da4f73
07:48:00 <klange> And this is how it does it: https://github.com/klange/toaruos/blob/master/util/init.krk
07:49:00 <klange> Where is that dang snake... I'll have to poke its wrangler.
07:50:00 <klange> yay
07:57:00 <Griwes> klange: oh yeah I'll eventually do _something_ like that, for what I'd probably call integration tests
07:58:00 <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
09:39:00 <warlock> exit
23:01:00 <eryjus> rubber ducking with doxygen is proving to me more fruitful than i expected.
23:21:00 <klange> How does one rubber duck with doxygen? Reading your own docs?
23:22:00 <Mondenkind> writing them, I would guess. 'My system works like--hmm, how _does_ my system work?'
23:22:00 <klange> I spent a lot of time on the docs for my programming language.
23:23:00 <eryjus> "wait, is that what I did? what the heck was I thinking?"
23:44:00 <sonny> Can a garbage collector be implemented as a special interface / program for compilers?
23:45:00 <sonny> ... or is the problem always, the os has no idea what to collect?
23:45:00 <klange> Garbage collection has nothing to do with OSes.
23:48:00 <sonny> OSes manage memory ... it's not a far stretch
23:48:00 <klange> Garbage collection actually has very little to do with managing memory, even.
23:48:00 <klange> Garbage collection is about finding things you reference somewhere.
23:48:00 <klange> The OS has no clue about your datastructures and how they reference each other.
23:49:00 <junon> It's also an entirely opinionated design decision to use a GC. Not every program wants, needs or even benefits from it.
23:49:00 <junon> So to generalize it at the OS level, even if practical, would be locking in a bunch of people to your design philosophy.
23:50:00 <sonny> yeah, that's the idea
23:50:00 <junon> It's not practical though. That's klange's point.
23:51:00 <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.
23:52:00 <junon> ^
23:54:00 <sonny> ok
23:55:00 <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.
23:57:00 <sonny> I'm still thinking about it, I disagree though, because we keep getting new hacks instead of refined concepts
23:57:00 <sonny> with the novel ideas bit*
23:57:00 <junon> That's a pretty nebulous statement. Can you give an example?
23:57:00 <klange> Turns out hacks are what make the world go round.
23:58:00 <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.
23:59:00 <junon> Or clever.
23:59:00 <junon> Nobody cares about clever. They care about useful.
23:59:00 <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.