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=osdev&y=18&m=11&d=8

Thursday, 8 November 2018

07:22:24 <geist>
07:24:10 <klange> very insightful
07:24:13 <klange> A+ comment
07:25:57 <bcos_> klange: The comment is entitled "Existential Exasperation" - people would pay thousands if it was in an art gallery
07:26:09 <bcos_> ;-)
07:31:51 * geist tosses trash for the grovelling masses to pick up and worship as art
07:31:58 <geist> be at you, man
08:09:57 <graphitemaster>
08:10:00 <graphitemaster>
08:10:21 <Mutabah>
08:11:40 <klange>
08:20:09 <graphitemaster>
08:20:49 <lkurusa>
08:21:04 <lkurusa> d'oh i thought my font rendering was broken
08:21:05 <lkurusa> smh
08:21:09 <graphitemaster>
08:22:21 <lkurusa> the logbot doesn't lie :D
08:26:00 <aalm> .roa
08:26:00 <glenda> - When the messenger comes to appropriate your profits ... kill the messenger.
08:26:00 <aalm> .theo
08:26:00 <aalm> :(
08:26:00 <aalm> you broke it
08:26:00 <aalm> all that A+
08:26:19 <graphitemaster> .theo
08:26:19 <glenda> The solution is obvious.
08:26:25 <graphitemaster> .theo
08:26:25 <glenda> You are very confused.
08:26:41 <aalm> bettar:]
08:26:47 <graphitemaster> .theo
08:26:47 <glenda> This is more than a meme. It is a plot.
08:27:01 <graphitemaster> I need this db of quotes
08:27:04 <graphitemaster> .theo
08:27:04 <glenda> There is no way to forgive people who intentionally step in the shit.
08:27:22 <klange> graphitemaster: https://github.com/enukane/9front-work/blob/master/lib/theo
08:27:23 <aalm> .ken
08:27:23 <glenda> I wanted to separate data from programs, because data and instructions are very different.
08:27:40 <klange> (possibly 7 years outdated)
08:28:07 <graphitemaster> > Tell linus. You can google for his email address.
08:28:08 <graphitemaster> WOW
08:28:12 <graphitemaster> that's some shade
08:28:20 <aalm> .theo
08:28:20 <glenda> Are you saying OpenBSD does it wrong, or that all the operating systems do it wrong?
08:28:48 <graphitemaster> > You enabled things which are disabled for a good reason.
08:28:57 <graphitemaster> I need to make a bot
08:29:02 <klange> ah here we go straight from the actual source https://code.9front.org/hg/plan9front/file/b90924e837f6/lib/theo
08:29:53 <klange> over 900 theo quotes at your disposal
08:31:15 <graphitemaster> > I hope that one day due process is denied you.
08:32:30 <klange> i was thinking of writing a TLS client
08:32:34 <klange> but i know this is a bad idea
08:32:45 <graphitemaster> the irony in this one
08:32:46 <graphitemaster> > You are killing us with hyperbole. It is now hard to take anything you say seriously.
08:32:46 <klange> so i don't want to make it actally OSI-approved open-source
08:33:16 <klange> i want the license to be "you accept that as this is security software written by someone who shouldn't be writing security software you will not use it for anything ever"
08:34:58 <aalm> > Your grief would seem more sincere if didn't look like a shopping list.
08:34:58 <klange> "By downloading this SOFTWARE you agree to never actually use it."
08:35:24 <klange> That should probably be the license on all of ToaruOS
08:37:00 <klange> "YOU HEREBY AGREE to only run this OS on spare laptops from a decade ago, virtual machines, or maybe just once on your gaming rig to see if it works (but only for a minute or two). YOU ALSO AGREE to not attempt to learn anything valuable about operating system design from the included SOURCE CODE."
08:38:14 <aalm> sounds good:]
08:39:20 <graphitemaster> > Violates POSIX and C89, which violate best practice in this century.
08:46:43 <aalm> > Get your shit together
09:04:48 <klange> this serial console is too slow and making my text editor unfun
09:05:11 <klange> TCP socket is so much faster
09:08:52 <lkurusa> ? :D
09:22:37 <aalm>
09:41:17 <klange> My old "getty" wrapped the serial device in a pty, but then I made the serial driver implement the pty interface... brought back that old getty so I can turn arbitrary bidirectional pipes - including sockets - into functioning login shells and...
09:41:35 <klange> very simple change to my scripts and there's remote shell over TCP instead of serial https://github.com/klange/toaruos/commit/c71ed6ab60fd6185661d8d7eb09e7fc8679b7215
02:21:37 <mrvn> bored. Somebody dance.
02:22:29 <Mutabah> O/-<
02:22:32 <Mutabah> O\-<
02:22:41 <Mutabah> O>-<
02:22:45 <Mutabah> O<X-<
02:31:05 <mrvn> Now do the chicken dance. :)
03:20:35 <mrvn> Is there a way to tell GCC that when a function is called then r10 contains "struct Library *this_library;" and must do so again when the function returns?
03:21:06 <mrvn> Like in c++ where the first argument is "this".
03:27:23 <froggey> gcc's global register variables feature might do what you want: https://gcc.gnu.org/onlinedocs/gcc/Global-Register-Variables.html
03:52:30 <mrvn> froggey: I think that isn't selective enough. I only want it for some functions.
03:53:17 <mrvn> Maybe I will just make the library a c++ class so the compiler naturally has a this
06:23:27 <Ameisen> Did motorola have a true successor to the 68000 line?
06:23:35 <Ameisen> I know there was the 88000, but that isn't really the same thing
06:42:17 <geist> not really. they were part of the ppc alliance, so that was probably their successor
06:42:57 <geist> but by the 2000s they had spun off their silicon biz to freescale, which still made ppcs and arms, but not their own architecture anymore
06:43:16 <geist> though i think they still made coldfire and whatnot chips
07:14:28 <dasabhi> hey are binary semaphores by default spinlocks or blocking locks?
07:22:02 <geist> well, i guess they didn't want to know that much
07:23:00 <_mjg> it's wait off-irc
07:24:25 <_mjg> so i started reading short stires (mostly sci-fi). have to say harlan ellison can pack a solid punch
07:24:38 <_mjg> s/stires/stories
07:41:36 <geist> a good short story collection is great
07:41:49 <geist> lets you get in and have a good idea explored without a lot of excess stuff
07:47:15 <_mjg> fuckin 'A
07:48:39 <_mjg> in that spirit let me recommend https://www.amazon.com/Have-No-Mouth-Must-Scream/dp/1497643074
08:23:55 <bauen1> how tf do i debug my scheduler breaking after a thread sleeps and then exits ._.
08:24:57 <geist> i'd probably start off by trying to add some asserts to the system i fyou haven't already
08:25:08 <geist> trying to detect these sort of bad states early
08:25:21 <geist> also if you know the end state you can try to add an infinite loop there
08:25:25 <bauen1> well, half of my code is asserts :/
08:25:32 <geist> and then break into your emulator and try to reverse how it got there
08:26:08 <geist> especialyl if there's a definitive spot wher eyou know things are broken, and can add test code to catch it
08:26:27 <_mjg> what do you mean by breaks though?
08:26:47 <geist> but debugging something like that has a lot of implementation specific stuff, so it's hard to have general recommendations that aren't usually just plain debugging tricks
08:26:49 <_mjg> your description so far hints at the thread not being removed from whatever scheduler data structers you got there
08:27:08 <geist> exactly, start by identifying exactly the broken state
08:27:44 <bauen1> i've already got asserts in place to cover exit() returning
08:28:09 <geist> sure. i'm only providing you with hints
08:28:15 <geist> i'm not here to hear excuses
08:28:37 <bauen1> yeah
08:28:42 <geist> as in, you have to do this, and i really know your code
08:28:57 <geist> that came out way harsher than i expected. sorry :)
08:29:25 <geist> but i mean functionally trying to explain to me that you've done something already isn't meaningful to me, *unless* it's a form of duck debugging
08:29:32 <geist> which is of course also a very helpful strategy
08:29:55 <bauen1> true
08:31:10 <_mjg> geist: chanelling ellison? :)
08:32:37 <bauen1> huh, seems like gdb is the source of the random debug exceptions i receive every now and then
08:33:14 <geist> not surprising. this sort of thing is precisely why i never use it to debug low level kernel stuff
08:33:28 <geist> gdb has lots of assumptions about what it's debugging, and sometimes that works contrary to kernels
08:33:41 <geist> plus it will simply fail you sometimes and then leave you more lost
08:34:23 <bauen1> geist: what do you use instead ?
08:34:57 <geist> manual. printf, use built in emulator functionality, and try not to make mistakes in low level code, etc
08:43:27 <bauen1> found the issue after 4 hours lol
08:43:38 <bauen1> not sure if it's a good thing or a bad thing
08:44:07 <olsner> I've had some luck with bochs' debugger in the past, but it's only sometimes sensible since you can really only do assembly-level debugging
08:45:22 <bauen1> so my method scheduler_unlock that re-enables kernel preemption will schedule a new task when the final unlock is called, apparently that sometimes breaks stuff, even though it's not supposed to ._.
08:46:10 <aalm> .theo
08:46:10 <glenda> I quite dislike the direction this is going.
10:00:11 <lkurusa> i want to install dragonflybsd so badly
10:00:17 <lkurusa> ... but i don't have a free machine
10:01:00 <mischief> get a thinkpad
10:01:17 <aalm> put something else in a vm
10:05:35 <mischief> lkurusa: you can get an old but usable thinkpad for like $100-200
10:05:57 <lkurusa> mischief: yeah i'm looking at those right now
10:06:56 <mischief> check out x301, x200, maybe t420/x220 for something a little newer.
10:07:43 <mischief> maybe x131e
10:20:21 <SzateX> Hi. I'm thinking about memory pagination and some devices like vga. I mean addresses mapping. now is simple 0xB0000 or 0xA0000. But what in pagging mode
10:22:01 <lkurusa> mischief: i found one near me
10:22:23 <lkurusa> SzateX: those are physical addresses
10:22:35 <lkurusa> when using paging, you can map them to whatever virtual address you want
10:22:55 <SzateX> And put into page table yes?
10:23:20 <lkurusa> if you want to map a virtual addr to a physical one, you need to put it into a paging structure, yah
10:29:24 <SzateX> Oh okay... i didn't able to imagine it simply.
10:44:41 <dasabhi> hey do you know when why the golden rule for resource unlocking exist?
10:45:01 <dasabhi> like locka lockb unlock b unlock a
10:45:16 <dasabhi> i havent been able to figure out why its in that order
10:46:30 <klys> two processes run, one locks a, locks b, unlocks b. the other locks a? no. back to the first.
10:47:30 <dasabhi> well this is for threads
10:47:44 <dasabhi> and sure if you did lock a lock b unlock b..
10:47:56 <dasabhi> how is that any different from unlock a unlock b
10:48:12 <klys> there is no predicting, they are concurrent and must remain reentrant.
10:48:31 <dasabhi> i dont understand?
10:48:33 <dasabhi> what do you mean by that
10:51:10 <lkurusa> if you unlock b before unlocking a, you risk getting preempted and introducting a deadlock on a
10:51:42 * lkurusa yawns and goes to sleep
10:54:49 <klys> two processes run, one locks a, locks b, unlocks a. the other locks a. the first unlocks b, locks a? no. the second locks b, unlocks a. the first locks a...
10:56:28 <klys> if you still can't see the problem, you must not be seeing them as independent mutex values.
11:07:08 <clever> klys: STM in haskell took a unique solution at solving that kind of issue, it treats the entire set of actions as a transaction, which operate mostly on a copy of the data each lock protects, and then when its done, it grabs a real lock, and confirms that nothing has changed, before exposing the results of the transaction
11:07:28 <clever> if any conflicts occur due to concurrent access, it just throws the result out, and redoes the transaction
11:09:24 <dasabhi> klys: i dont know i am still not exactly seeing it
11:33:59 <dormito|2> clever: that sounds a bit like load-reserve/store-conditional semantics