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=5&d=5

Saturday, 5 May 2018

00:00:00 --- log: started osdev/18.05.05
00:03:31 --- join: NaNkeen (~nankeen@175.142.112.54) joined #osdev
00:03:40 --- join: msk (~mskreczko@sub243-90.elpos.net) joined #osdev
00:05:41 <variable> izabera: shush
00:06:29 --- quit: sixand (Ping timeout: 268 seconds)
00:11:32 --- quit: silas (Ping timeout: 264 seconds)
00:11:54 --- quit: FireFly (Quit: Goodbye)
00:15:19 --- join: Arcaelyx (~Arcaelyx@2604:2000:f14a:2500:96a:c55a:783:142e) joined #osdev
00:16:59 --- quit: kasumi-owari (Ping timeout: 256 seconds)
00:17:30 --- join: kasumi-owari (~kasumi-ow@ftth-213-233-237-007.solcon.nl) joined #osdev
00:30:41 --- quit: msk (Quit: Lost terminal)
00:36:08 --- join: sixand (~Thunderbi@175.44.160.12) joined #osdev
00:36:59 --- join: glauxosdever (~alex@athedsl-112278.home.otenet.gr) joined #osdev
00:40:55 --- quit: sixand (Ping timeout: 264 seconds)
00:45:23 --- quit: Goplat (Remote host closed the connection)
00:48:07 --- quit: bemeurer (Ping timeout: 264 seconds)
00:50:09 --- join: ALowther (~alowther@68.200.236.134) joined #osdev
00:55:12 --- quit: ALowther (Ping timeout: 268 seconds)
00:57:30 --- join: doug16k (~dougx@99.238.40.229) joined #osdev
00:57:36 --- quit: MarchHare (Ping timeout: 260 seconds)
01:04:28 --- join: zeus1 (~zeus@197.239.7.99) joined #osdev
01:09:28 --- join: xerpi (~xerpi@231.red-83-45-198.dynamicip.rima-tde.net) joined #osdev
01:10:04 --- quit: xerpi (Remote host closed the connection)
01:10:31 --- join: xerpi (~xerpi@231.red-83-45-198.dynamicip.rima-tde.net) joined #osdev
01:11:32 --- join: Pseudonym73 (~Pseudonym@124.149.136.240) joined #osdev
01:14:56 --- join: kimundi (~Kimundi@i577A9FC2.versanet.de) joined #osdev
01:16:41 --- quit: punch (Ping timeout: 260 seconds)
01:25:57 --- quit: zeus1 (Ping timeout: 240 seconds)
01:41:52 --- join: oaken-source (~oaken-sou@p4FE2C58D.dip0.t-ipconnect.de) joined #osdev
01:53:36 --- quit: hmmmm (Remote host closed the connection)
02:04:05 --- quit: NaNkeen (Ping timeout: 256 seconds)
02:06:22 --- join: Asu (~sdelang@AMarseille-658-1-22-22.w86-203.abo.wanadoo.fr) joined #osdev
02:22:21 --- join: sixand (~Thunderbi@175.44.160.12) joined #osdev
02:26:37 --- quit: Pseudonym73 (Remote host closed the connection)
02:32:04 --- quit: Arcaelyx (Quit: Textual IRC Client: www.textualapp.com)
02:36:06 --- quit: nightmared (Quit: WeeChat 2.1)
02:36:14 --- quit: vaibhav (Quit: Leaving)
02:36:23 --- quit: aalm (Ping timeout: 248 seconds)
02:37:23 --- join: aalm (~aalm@37-219-119-194.nat.bb.dnainternet.fi) joined #osdev
02:41:33 --- join: nightmared (~nightmare@unaffiliated/nightmared) joined #osdev
02:46:18 --- join: zeus1 (~zeus@197.239.7.99) joined #osdev
02:55:26 --- join: light2yellow (~l2y@185.220.70.165) joined #osdev
03:01:54 --- join: nortega (~nortega@gateway/tor-sasl/deathsbreed) joined #osdev
03:18:40 --- join: sortie (~Sortie@static-5-186-55-44.ip.fibianet.dk) joined #osdev
03:19:28 --- join: attah (~attah@h-155-4-135-114.NA.cust.bahnhof.se) joined #osdev
03:27:57 --- join: martossikas1 (~garramba@p251190-ipngn3001kokuryo.gunma.ocn.ne.jp) joined #osdev
03:29:23 <martossikas1> Kazinsal: actually for xilinx that multiwafer or layer technology is not something for past decade they have done this in/for their real fpga products
03:29:30 --- join: Pseudonym73 (~Pseudonym@124-168-223-127.dyn.iinet.net.au) joined #osdev
03:29:42 <martossikas1> *something new
03:31:42 <sortie> Hello martossikas1
03:33:53 --- quit: martossikas1 (Quit: Leaving)
03:35:31 --- quit: Pseudonym73 (Ping timeout: 264 seconds)
03:36:51 --- quit: mra90 (Read error: Connection reset by peer)
03:37:38 --- join: mra90 (~Martin@bsd174.neoplus.adsl.tpnet.pl) joined #osdev
03:42:19 --- quit: mra90 (Ping timeout: 240 seconds)
03:43:06 --- join: mra90 (~Martin@brp82.neoplus.adsl.tpnet.pl) joined #osdev
03:51:11 --- join: cloudowind (~ben@pa49-185-179-234.pa.vic.optusnet.com.au) joined #osdev
03:51:42 <cloudowind> hello everyone
03:53:21 * Mutabah waves
03:54:01 <cloudowind> thanks
03:56:15 <klys> ~
04:00:40 --- quit: xerpi (Quit: Leaving)
04:09:43 --- quit: paradigm (Ping timeout: 264 seconds)
04:10:03 --- quit: Beato (Ping timeout: 276 seconds)
04:12:34 --- join: Beato (~Beato@unaffiliated/beato) joined #osdev
04:13:02 --- join: Hdphn (~akira@gateway/tor-sasl/hdphn) joined #osdev
04:14:03 --- quit: glauxosdever (Quit: leaving)
04:15:53 --- join: glauxosdever (~alex@athedsl-112278.home.otenet.gr) joined #osdev
04:18:59 --- join: onering (~Beato@unaffiliated/beato) joined #osdev
04:19:19 --- quit: Beato (Ping timeout: 264 seconds)
04:19:23 --- nick: onering -> Beato
04:25:51 --- join: onering (~Beato@unaffiliated/beato) joined #osdev
04:25:55 --- quit: Beato (Ping timeout: 264 seconds)
04:26:29 --- nick: onering -> Beato
04:26:44 --- join: FireFly (znc@freenode/staff/firefly) joined #osdev
04:32:20 --- join: aleamb (~aleamb@unaffiliated/malpas) joined #osdev
04:32:39 --- quit: Beato (Ping timeout: 248 seconds)
04:32:51 --- join: onering (~Beato@unaffiliated/beato) joined #osdev
04:33:16 --- nick: onering -> Beato
04:33:57 --- quit: awordnot (Ping timeout: 240 seconds)
04:34:03 --- join: Pseudonym73 (~Pseudonym@124-168-223-127.dyn.iinet.net.au) joined #osdev
04:34:42 --- quit: Beato (Remote host closed the connection)
04:34:55 --- join: awordnot (~awordnot@67.184.137.130) joined #osdev
04:37:11 <cloudowind> a bit quite today
04:38:15 <Mutabah> quite quiet
04:39:13 <cloudowind> yea , better than senseless noise sometimes, but not all the times...
04:39:43 --- join: Beato (~Beato@unaffiliated/beato) joined #osdev
04:40:26 --- quit: Pseudonym73 (Remote host closed the connection)
04:46:35 --- join: onering (~Beato@unaffiliated/beato) joined #osdev
04:46:55 --- quit: Beato (Ping timeout: 264 seconds)
04:46:58 --- nick: onering -> Beato
04:51:07 --- quit: zeus1 (Ping timeout: 264 seconds)
04:51:27 --- quit: oaken-source (Ping timeout: 240 seconds)
04:52:00 --- quit: Beato (Ping timeout: 268 seconds)
04:58:12 --- quit: zhiayang (Quit: ZNC 1.6.6 - http://znc.in)
05:01:23 --- join: zhiayang (~zhiayang@124.197.97.227) joined #osdev
05:06:56 --- quit: Hdphn (Ping timeout: 255 seconds)
05:11:51 --- join: Beato (~Beato@unaffiliated/beato) joined #osdev
05:14:14 --- join: user10032 (~Thirteen@2a02:c7d:314e:b300:1096:a056:dc53:e750) joined #osdev
05:19:06 --- join: CrystalMath (~coderain@reactos/developer/theflash) joined #osdev
05:20:06 --- quit: Beato (Quit: Bye!)
05:24:43 --- quit: immibis (Ping timeout: 264 seconds)
05:34:10 --- join: zeus1 (~zeus@197.239.7.99) joined #osdev
05:40:01 --- join: pd_ (~pd@14.139.61.131) joined #osdev
05:40:24 --- nick: pd_ -> Guest20423
05:40:32 --- join: bender (uid106562@gateway/web/irccloud.com/x-zzgxfmhigaxpoefg) joined #osdev
05:40:58 --- join: Pseudonym73 (~Pseudonym@124-168-223-127.dyn.iinet.net.au) joined #osdev
05:42:24 --- quit: nortega (Quit: Vivu lante, vivu feliĉe!)
05:42:59 --- join: SGautam (~GautamS@unaffiliated/gautams) joined #osdev
05:45:11 --- quit: Pseudonym73 (Ping timeout: 248 seconds)
05:45:48 --- join: `Guest00000 (~user@37.113.172.28) joined #osdev
05:48:00 --- join: daniele_athome (~daniele_a@5.170.125.166) joined #osdev
05:48:53 --- quit: Guest20423 (Quit: Leaving)
05:49:44 --- join: pd09041999 (~pd@14.139.61.131) joined #osdev
05:50:53 <cloudowind> i don't think machine can learn
05:51:05 <cloudowind> actually it even sounds to me stupid
05:51:45 <SGautam> well the human brain can be considered as a very good machine
05:51:58 <SGautam> we just haven't figured out the algorithm that the brain uses
05:52:37 <bcos> The human brain can also be considered a dodgy, fallible and inconsistant blob of worthless crap
05:53:25 <cloudowind> human brain is the part of its body , part of the rest
05:53:28 <cloudowind> nothing by itself
05:53:31 --- quit: zeus1 (Ping timeout: 264 seconds)
05:53:42 <cloudowind> as this is same for the logic , logic is nothing without sense
05:53:44 <SGautam> actually i argue against that
05:54:02 <SGautam> the rest of the body works for the brain
05:54:12 <SGautam> except the reproductive system
05:54:13 <bcos> Human body isn't well designed either (and obtaining aftermarket parts is far from easy)
05:54:44 <SGautam> bcos, well it's the best we got.
05:55:03 <SGautam> unless we discover some hyperevolved race from another planet
05:57:30 <cloudowind> so you recon the rest of the body orginized for the sake of brain hey?
05:58:27 <bcos> So.. you want to take the computers we have (which don't any of the problems humans do) and make them worse until they become as crappy and unreliable as humans?
05:59:06 <SGautam> cloudowind, yes
05:59:09 <SGautam> bcos, no
05:59:25 <SGautam> i'm thinking it would be better if we could have hybrids
05:59:34 <SGautam> i mean this is sound like fictional sci-fi shit, and it is but
05:59:41 <bcos> Ah, Borgs?
06:00:07 <SGautam> e.g. replacing biological limbs with better mechanical ones
06:00:29 <bcos> Don't forget the "mesh network" comms chip.. ;-)
06:00:38 <SGautam> Quake 4 lmao
06:01:01 <SGautam> but seriously, it could be a great thing for our governments
06:01:22 <bcos> Yes - they will be able to spy on and control out thoughts - awesome!
06:01:24 <SGautam> what's better than have a bunch of killing machines powered by human intelligence
06:01:26 <bcos> *our
06:01:39 <bcos> Erm
06:01:42 --- join: Philpax (~Philpax@144.132.100.253) joined #osdev
06:01:53 <bcos> A bunch of killing machines that aren't powered by human intelligence would be more effective
06:02:14 <SGautam> No, I'm thinking of a hand-to-hand battlefield situation
06:02:29 <SGautam> How would a machine be able to distinguish between allies and enemies?
06:02:35 <bcos> Hand to hand? Like the kind of fighting people did many centuries ago?
06:03:04 <SGautam> Well, a lot of war still happens with soldiers going to the field
06:03:07 <cloudowind> there brainless (as in the sense of organ ) species out there , yet they still feel , function survive , i am thinking , you are considering the brain as an unltimate goal for the rest of body , because you thinkg , every process related with sensing / feeling occurs in and arround brain , are we in our brains?:)
06:03:12 --- quit: glauxosdever (Quit: leaving)
06:03:27 --- quit: andrei-n (Ping timeout: 240 seconds)
06:04:02 <SGautam> I won't really be surprised if the next leap in neuroscience comes from the military
06:04:08 <cloudowind> i understand the a place or an organisation , responsible with cognition , percieving and survival thingies those logical thingies are dealt within , but it is not representing the whole of the subject
06:06:29 <SGautam> wait, I think you could see it this way too
06:06:42 <pixelherodev> Question
06:06:47 <SGautam> nearly every part of the body is designed in such a way to assist in reproduction
06:06:56 <SGautam> great i just concluded fucking is the primary reason we exist
06:06:57 <pixelherodev> When did this channel become #philosophy ?
06:07:17 <pixelherodev> SGautam, We've known that for years.
06:07:19 <SGautam> pixelherodev, sorry
06:07:23 <pixelherodev> Not complaining
06:07:30 <pixelherodev> Merely curious
06:07:48 <SGautam> started from the idea whether machines can truly learn or not
06:07:54 <pixelherodev> If there's no other chat going on and mods don't care, IMO it's fine
06:07:57 <pixelherodev> Oh
06:08:01 <pixelherodev> Interesting
06:08:22 <pixelherodev> Better question: can machines really have *consciousness*?
06:08:43 --- quit: zaquest (Quit: Leaving)
06:08:46 <SGautam> can't be answered because we haven't really discovered consciousness
06:08:54 <pixelherodev> True
06:09:06 <grange_c> I think behind this question lives an other one: do we really have consciousness ?
06:09:13 <pixelherodev> An interesting question nonetheless.
06:09:15 <SGautam> grange_c, absolutely
06:09:20 <SGautam> i know i'm here
06:09:21 <pixelherodev> grange_c, That's what I was gettinga t
06:09:28 --- join: tacco| (~tacco@i59F526A9.versanet.de) joined #osdev
06:09:29 <pixelherodev> s/ga t/g at/
06:09:58 <SGautam> I've read about some absolutely crazy stuff suggesting that consciousness might be an inherent property within the universe
06:10:03 <SGautam> like a physical property
06:10:19 <SGautam> like energy or mass
06:10:22 <pixelherodev> For instance, look at an 8-bit computer. Easy to understand how it works completely. If you think about it, how can it have consciousness?
06:10:32 <pixelherodev> Then realize, bacteria are analogous to that 8-bit computer.
06:10:40 <grange_c> And all of this comes to 'why robots made of organic matter (animals) are better than robots made of metal ?'
06:10:53 <pixelherodev> Because we are them and we say so
06:11:02 <pixelherodev> That's all it boils down to
06:11:41 <pixelherodev> Objectively speaking, metallic robots are superior.
06:11:48 <SGautam> nah
06:11:58 <SGautam> a metal robot can't create another metal robot and make it better
06:11:59 <pixelherodev> They can treat themselves to prevent/cure rusting, we can't prevent/reverse aging.
06:12:13 <pixelherodev> If it has consciousness and the ability to learn? Yes it can.
06:12:28 <SGautam> the biggest advantage we have against metal bots is the fact that we can evolve
06:12:59 --- join: Shikadi (~Shikadi@cpe-98-10-34-205.rochester.res.rr.com) joined #osdev
06:13:11 <pixelherodev> That's the only advantage I can think of.
06:13:11 <SGautam> brb reading my high school biology textbook before i start spouting pseudo-biology
06:13:15 <pixelherodev> Heh
06:13:23 <grange_c> I'm pretty sure we can raise that a scale up so that our creator (God?) don't think we are conscious because all he can see are our defaults in comparison to him (and his species?), just like us with robots
06:13:43 <grange_c> (I'm not sure about the grammar of this sentence, let me know if you know a better way)
06:14:25 <pixelherodev> "if you know a better way" could be better written as "if you know *of* a better way"
06:14:33 <pixelherodev> Or, more seriously, s/this/that/
06:14:33 <SGautam> yeah that's a question i always wondered whether something like paramecium was conscious or not
06:14:44 <pixelherodev> paramecium?
06:14:46 <cloudowind> i would say her instead of him when i am talking about god
06:14:48 <cloudowind> :)
06:14:54 <pixelherodev> I would say it.
06:15:11 <pixelherodev> I dislike humanizing god.
06:15:23 <mrvn> grange_c: You called?
06:15:26 <SGautam> pixelherodev, it's a pretty advanced unicellular eukaryote
06:15:32 <SGautam> https://en.wikipedia.org/wiki/Paramecium
06:15:33 <bslsk05> ​en.wikipedia.org: Paramecium - Wikipedia
06:15:35 <pixelherodev> Regardless of whether you believe god exists or not, thinking of god as a human is downright stupid.
06:15:57 <grange_c> mrvn ?
06:16:21 <pixelherodev> ?
06:16:40 <mrvn> grange_c: I am your god, he who talks on irc, though shall know me by my funny commentary.
06:16:52 <cloudowind> everything exists
06:16:57 <cloudowind> anyway , catch you fellows
06:17:00 --- quit: cloudowind (Quit: time after)
06:17:21 <grange_c> mrvn Ah, i thought maybe i missclicked somewhere x)
06:17:32 <SGautam> also it's big enough to be seen by the naked eye
06:17:41 <SGautam> i mean it's a pretty cool organism
06:18:01 <SGautam> you can mess around with it
06:18:36 <pixelherodev> *If* there is a god, I still don't think humans were created for any real purpose, but I'd rather not turn this into #religious-debate so I'm not getting into it now.
06:19:28 <pixelherodev> Philosophy is fun to discuss, religion makes me terrified someone will disagree with me and start spouting death threats. Because humans.
06:20:29 <SGautam> huh that reminds me i recently tamed a gecko
06:21:05 --- join: glauxosdever (~alex@athedsl-112278.home.otenet.gr) joined #osdev
06:21:05 --- join: elevated (~elevated@unaffiliated/elevated) joined #osdev
06:22:07 <SGautam> i just wanted to see if i could starve it enough to make it want to eat something like leaves or wheat
06:22:10 <mrvn> pixelherodev: so what is your porpoise?
06:23:20 <pixelherodev> His name is Bob, and he lives in an aquarium. Did you mean to say "who?"
06:23:22 <pixelherodev> tvtropes.org/pmwiki/pmwiki.php/Main/AskAStupidQuestion
06:23:24 <bslsk05> ​tvtropes.org: Ask a Stupid Question... - TV Tropes
06:23:37 <mrvn> pixelherodev: word play on purpose
06:23:58 <pixelherodev> I know
06:24:03 <Mutabah> *snerk*
06:24:09 <pixelherodev> Do you want to know how many times I've heard that?
06:24:21 <pixelherodev> Or similar things to it?
06:24:36 <SGautam> i recently added three more goldfishes to my goldfish collection
06:24:44 <SGautam> so my goldfish isn't a loner anymore :D
06:25:02 <pixelherodev> Is goldfishes actually the plural? Huh.
06:25:18 <pixelherodev> For some reason I though it was something like goldphish :P
06:25:25 --- quit: pd09041999 (Quit: Leaving)
06:25:30 <pixelherodev> Goldphish, verb. Phishing for gold.
06:25:35 <pixelherodev> :P
06:25:46 <SGautam> when you're camping in the switzerlands
06:25:52 <SGautam> goldphising
06:26:01 <SGautam> *goldphishing
06:26:10 <pixelherodev> idgi
06:26:47 <SGautam> "The report asserted that in 1945, the Vatican had confiscated 350 million Swiss francs in Nazi gold for "safekeeping," of which 150 million Swiss francs had been impounded by British authorities at the Austro-Swiss border."
06:28:07 <mrvn> I'm still trying to get the watchdog working right on an armada 388: https://stackoverflow.com/questions/50079852/configuring-watchdog-timeout-on-marvell-armada-388-helios4
06:28:09 <bslsk05> ​stackoverflow.com: arm - Configuring watchdog timeout on Marvell armada-388-helios4? - Stack Overflow
06:30:18 --- quit: mavhq (Read error: Connection reset by peer)
06:31:33 --- join: mavhq (~quassel@cpc77319-basf12-2-0-cust433.12-3.cable.virginm.net) joined #osdev
06:32:07 --- quit: bauen1 (Ping timeout: 256 seconds)
06:33:23 --- join: Guest46 (4d3b9548@gateway/web/cgi-irc/kiwiirc.com/ip.77.59.149.72) joined #osdev
06:33:31 --- join: bauen1 (~bauen1@ipbcc18c77.dynamic.kabel-deutschland.de) joined #osdev
06:37:19 --- join: zeus1 (~zeus@197.239.37.130) joined #osdev
06:40:59 --- join: Hdphn (~akira@gateway/tor-sasl/hdphn) joined #osdev
06:42:20 --- join: Pseudonym73 (~Pseudonym@124-168-223-127.dyn.iinet.net.au) joined #osdev
06:46:55 --- quit: Pseudonym73 (Ping timeout: 264 seconds)
06:47:56 --- quit: zeus1 (Ping timeout: 268 seconds)
06:51:38 --- quit: byte512 (Ping timeout: 268 seconds)
06:53:48 --- quit: aleamb (Quit: Leaving)
06:54:39 --- join: aleamb (~aleamb@unaffiliated/malpas) joined #osdev
06:54:56 --- quit: zhiayang (Quit: ZNC 1.6.6 - http://znc.in)
06:57:34 --- join: byte512 (~4096bits@90-230-246-13-no187.tbcn.telia.com) joined #osdev
06:58:15 <lkurusa> good day #osdev
06:59:15 --- join: zwerty (~quassel@81.4.103.63) joined #osdev
07:02:49 --- quit: zwerty (Client Quit)
07:03:09 --- join: zwerty (~quassel@81.4.103.63) joined #osdev
07:03:23 --- join: andrei-n (~andrei@51.214-65-87.adsl-dyn.isp.belgacom.be) joined #osdev
07:06:19 --- quit: sixand (Ping timeout: 240 seconds)
07:11:27 <Hdphn> damn it
07:11:30 <Hdphn> arch just broke on me
07:11:31 <Hdphn> today
07:11:54 <Hdphn> might ditch this distro all together for manjaro. is that correct choice? or you have some other recommendations?
07:12:29 <SGautam> Windows 10
07:12:41 --- quit: attah (Ping timeout: 260 seconds)
07:13:22 <lkurusa> Fedora works wonders for me
07:15:27 <SGautam> The windows 10 suggestion is serious, you should try WSL
07:15:45 <SGautam> i mean unless you're working with stuff that relies on Linux for some reason
07:15:57 <Hdphn> I see
07:16:01 <Hdphn> will try windows now
07:16:07 <Hdphn> fed up with linux crap
07:16:14 <Hdphn> every distro I tried so far has some faults
07:16:30 <Hdphn> didnt try fedora thou
07:16:30 <lkurusa> you will be fed up with windows crap soon :-)
07:16:45 <Hdphn> tried debian, arch, ubuntu, kali and opensuse etc.
07:16:55 <Hdphn> all of them are crap
07:16:56 <Hdphn> lol
07:17:11 <Hdphn> arch was the least crap but it broke on me. so its of no use
07:17:13 <Hdphn> :)
07:17:25 <Hdphn> no time for gentoo since I dont have powerful PC to compile
07:17:29 <Hdphn> again and again
07:17:37 <lkurusa> fedora is worth a try imo
07:17:45 <Hdphn> lkurusa: you using it as main OS?
07:17:46 <lkurusa> i had no issues with it for a long while
07:17:52 <lkurusa> that's right
07:18:01 <Hdphn> which DE?
07:18:22 <lkurusa> GNOME 3
07:18:34 <lkurusa> but most recently I started using Awesome
07:18:39 <SGautam> win10 is fine if you are willing to pay for a quality OS and aren't very paranoid about telemetry
07:18:52 <SGautam> my linux experience has been.. unpolished
07:19:29 <SGautam> even better would be to get a Mac, but then you'll have to buy Apple hardware
07:19:44 <lkurusa> I used a Mac for a while
07:19:49 <lkurusa> The fabled 2016 MBP
07:19:55 <lkurusa> it broke so many times i gave up
07:20:09 <Hdphn> SGautam: yea. its expensive otherwise I see macOS as the best of both worlds (w10 + linux) without the unpolishness
07:20:14 <Hdphn> oh I am surprised lkurusa
07:20:28 <SGautam> yeah Macs are usually robust
07:21:01 <lkurusa> Usually
07:21:18 <lkurusa> but my 2016 mbp has visited the apple store more than i ever did before i got the damn mbp
07:21:35 <lkurusa> first the keyboard broke, then again, then the battery went to 50% capacity at like 200 cycles
07:21:40 <lkurusa> then the keyboard again
07:21:43 <lkurusa> now the screen gave up
07:21:50 <SGautam> sounds like you got the wrong set of hardware
07:22:07 <SGautam> didn't go for a complete replacement?
07:22:10 <lkurusa> they replaced the entire logic board
07:22:25 <lkurusa> thanks to consumer law i had to pay nothing
07:22:40 <lkurusa> but it's still annoying
07:22:44 --- quit: jakogut (Remote host closed the connection)
07:22:57 <Hdphn> lkurusa: where do you live
07:23:03 <Hdphn> here apple makes you pay for it
07:23:06 --- join: jakogut (~jakogut_@162.251.69.147) joined #osdev
07:23:10 <Hdphn> (india0
07:23:13 <lkurusa> london, uk
07:23:22 --- quit: Guest46 (Remote host closed the connection)
07:23:35 <SGautam> Hdphn, yeah apple india is just jackass
07:23:35 <Hdphn> lkurusa: since you have used macOS and fedora. which one do you prefer the most?
07:23:40 <Hdphn> yea
07:23:42 <lkurusa> Fedora by far
07:23:48 <Hdphn> oh
07:23:59 <SGautam> the models are pricey as hell
07:24:02 <lkurusa> macOS is nice if you don't want to do anything that apple didn't think about
07:24:13 <Hdphn> SGautam: yea true
07:24:13 <lkurusa> Fedora is nice overall
07:24:21 <Hdphn> is fedora stable
07:24:22 <SGautam> i could get a laptop with a good CPU plus something like a 940MX for half the price
07:24:25 <lkurusa> biggest benefit of Linux for me is the ability to have meaningful error messages
07:24:31 <Hdphn> because last time I heard its used as testing platform for RHEL
07:24:32 <Hdphn> :D
07:24:35 <SGautam> :D
07:24:36 <lkurusa> on macOS you get "Error occured" "OK, CANCEL"
07:24:42 <Hdphn> haha true
07:24:49 <jjuran> Wow, that’s terse.
07:24:55 <SGautam> on windows at least you get an error code
07:25:04 <SGautam> IRQL_LESS_THAN_OR_NOT_EQUAL
07:25:07 <lkurusa> helpful
07:25:09 <SGautam> or something like that
07:25:10 <lkurusa> /s
07:25:10 <qoxncyha> i am wondering if it's possible to atomically remove an element from a LIFO stack
07:25:11 <Hdphn> :D
07:25:18 <jjuran> A proper error message would be “Sorry, the operation could not be completed because an error occurred.” :-D
07:25:37 <qoxncyha> however, there cannot be a spinlock or GC
07:25:38 <lkurusa> also macOS froze on me so many times while i did random things
07:25:41 <lkurusa> fedora never crashed
07:25:46 <SGautam> you can still get a proper error log from the Windows Event Viewer
07:26:00 <lkurusa> maybe it's just me, and yes i did get the wrong model, but fedora is so much stable for me
07:26:04 <lkurusa> even though fedora is "Bleeding Edge"
07:26:10 <lkurusa> or close to it, i should say
07:26:24 <Hdphn> and also a testing platform for red hat enterprise linux distro
07:26:27 <Hdphn> afaik
07:26:33 <SGautam> well one of the things i didn't like with linux is that the DE is never fully integrated with the system
07:26:51 <SGautam> on windows, explorer is just mingled with the system
07:26:53 --- quit: jakogut (Remote host closed the connection)
07:27:02 <SGautam> so it's so much less hassle
07:27:05 <Hdphn> yea very true
07:27:08 <Hdphn> I also felt that
07:27:09 <SGautam> take creating a desktop shortcut for example
07:27:17 --- join: jakogut (~jakogut_@162.251.69.147) joined #osdev
07:27:48 <lkurusa> tbh on Linux I don't even use the desktop
07:27:58 <lkurusa> but yes, that's true
07:28:09 <lkurusa> GNOME 3 by default doesn't even have a traditonal desktop
07:28:24 <lkurusa> if you want a desktop as in the windows sense, then Linux Mint is nice
07:28:38 <Hdphn> lkurusa: have you tried i3
07:28:38 <lkurusa> I can also recommend that, I've used it on a desktop system
07:28:50 <lkurusa> not i3, i use awesome
07:28:53 <Hdphn> lkurusa: do you find fedora repo to be sufficient for you?
07:29:02 <Hdphn> it lacks a lot of packages as compared to debian or even AUR
07:29:09 <SGautam> i've been slowly shifting my linux boxes to a windows 10 + WSL
07:29:12 <lkurusa> with rpmfusion, yes
07:29:17 <lkurusa> also fedora has flatpak built in, which is cool
07:29:41 <SGautam> also I largely work with visual studio so windows is like a must
07:30:09 <Hdphn> yea linux lacks so many applications for coding
07:30:16 <Hdphn> such as visual studio and Xcode
07:30:27 <SGautam> there's codeblocks and android studio
07:30:54 <lkurusa> personally i think the biggest drawback of using fedora is that most instructions for open source stuff are for debian based systems
07:31:06 <lkurusa> you need to manually translate those instructions to fedora's "language"
07:31:16 <lkurusa> i.e., dnf instead of apt, -devel instead of -dev
07:31:19 <lkurusa> etc.
07:31:24 --- join: sixand (~Thunderbi@112.5.237.49) joined #osdev
07:31:29 --- join: freakazoid0223 (~IceChat9@pool-108-52-244-197.phlapa.fios.verizon.net) joined #osdev
07:31:37 <SGautam> but then you don't get the feel of a commercial program designed by one of the largest corporations when you fire up codeblocks
07:31:47 <qoxncyha> is it possible to atomically remove an element from a LIFO stack?
07:31:50 <SGautam> like i said everything just lacks polish
07:31:59 <SGautam> qoxncyha, Last In First Out?
07:32:03 <qoxncyha> yes
07:32:05 --- join: zeus1 (~zeus@197.239.37.130) joined #osdev
07:32:12 <SGautam> hm
07:32:47 <SGautam> i don't know
07:33:00 <qoxncyha> with the added stipulation of not using GC or a spinlock
07:34:33 <lkurusa> qoxncyha: you could mark the element as "invalid"
07:34:40 <lkurusa> but yes, to truly remove it you'd use a GC
07:36:38 <qoxncyha> i am wondering about a potential wait-free solution
07:36:56 <qoxncyha> could i have an array with an element for each thread, containing 'help requests' that other threads must traverse before attempting removal?
07:37:33 --- join: Esa_ (~esa.syt@99-50-199-38.lightspeed.snjsca.sbcglobal.net) joined #osdev
07:37:47 <mrvn> you need an owner flag in the element. Then to remove it you get the first element, atomically test-and-set the owner and if that succeeds you test-and-set the LIFO to the next element.
07:37:56 <mrvn> otherwise you start again.
07:38:27 <qoxncyha> mrvn: doesn't that require a spinlock?
07:38:42 <mrvn> no. it just keeps trying over and over till it succeeds.
07:39:35 <mrvn> personally I think a spinlock is a far cleaner design than all this try-and-repeat stuff.
07:39:36 <lkurusa> isn’t that a spinlock :-)
07:40:12 <mrvn> you could say it misuses the owner and first fields as spinlocks.
07:40:38 <qoxncyha> mrvn: try-and-repeat is the what spinlock means i think
07:41:02 <mrvn> qoxncyha: a spinlock uses try-and-repeat but on it's own data structure
07:41:14 <qoxncyha> okay so i want to avoid try-and-repeat
07:41:18 <mrvn> you can't.
07:41:19 <qoxncyha> does that make sense?
07:41:38 <qoxncyha> well, there are 'wait-free' solutions which do not involve spinlocks or GC
07:42:02 <mrvn> You only have two choices: disable interrupts on a single core system or locking
07:42:21 <mrvn> qoxncyha: 'wait-free' solutions are try-and-repeat
07:42:29 <qoxncyha> actually they are not
07:42:46 <mrvn> or was that lock-free?
07:43:00 <qoxncyha> mrvn: i think so =)
07:43:41 <mrvn> "By contrast, wait-free algorithms ensure that in addition to all CPUs continuing to do useful work, no computation can ever be blocked by another computation."
07:43:44 <qoxncyha> i think lock-free implies no thread barriers or context switching
07:43:55 --- quit: JusticeEX (Ping timeout: 264 seconds)
07:44:14 <mrvn> qoxncyha: "In lock-free systems, while any particular computation may be blocked for some period of time, all CPUs are able to continue performing other computations."
07:44:17 <qoxncyha> mrvn: wait-free means the algorithm has a guaranteed execution time
07:44:43 <mrvn> I guess try-and-repeat means the cpu is blocked.
07:44:45 <qoxncyha> lock-free is when at least one thread makes progress, wait-free is when all threads can guarantee progress
07:45:51 <mrvn> qoxncyha: A FIFO with locks and interrupt disabling locally has guaranteed execution time
07:46:15 --- quit: Oxyd76 (Ping timeout: 248 seconds)
07:46:25 <mrvn> with wait queues.
07:46:30 <qoxncyha> mrvn: i am talking about LIFOs
07:46:38 <mrvn> LIFI too
07:46:41 <mrvn> LIFO
07:47:10 <qoxncyha> mrvn: a locking data structure cannot be wait-free
07:47:35 <mrvn> qoxncyha: you can guarante that no lock will be held longer than a certain time and that each CPU will have it's turn in a certain time. Guarantied time does not imply lock-free.
07:48:18 <qoxncyha> mrvn: yes but the amount of operations another thread might perform can be arbitrarily high
07:48:48 <qoxncyha> it's not guaranteed time, it's guaranteed algorithmic complexity so to speak
07:49:23 <mrvn> A lot of the concepts overlap or go only one way.
07:50:08 --- quit: bender (Quit: Connection closed for inactivity)
07:50:11 <mrvn> you can make a wait-free algorithm that uses randomization and has no time guarantee at all.
07:50:57 <qoxncyha> mrvn: i'm not sure what you mean
07:51:23 --- join: attah (~attah@h-155-4-135-114.NA.cust.bahnhof.se) joined #osdev
07:51:28 <mrvn> It's not that important. Back to your LIFO question
07:51:47 <mrvn> WHat atomic primitives do you have? Can you atomically test-and-set 2 pointers?
07:52:17 <qoxncyha> mrvn: i can CAS/test-and-set, but not two at once
07:52:49 <mrvn> and you have multiple cores or no control over interrupts?
07:53:08 <qoxncyha> yes
07:55:01 <qoxncyha> so the question is how to atomically remove from a LIFO queue without spinlocks or GC
07:55:32 <mrvn> I think you can't.
07:56:57 <mrvn> Only thing I can think of requires atomic operations on 2 values.
07:57:37 <qoxncyha> if i have an N-element array where N is the number of threads, each element can store a 'help record' which other threads must traverse before starting their own work
07:59:53 <qoxncyha> i've seen this design in some papers but i don't fully understand how it works yet
08:00:08 <mrvn> qoxncyha: are you thiking that before a thread can take an element from the LIFO or put one there it first has to help all other threads to finish their operation?
08:00:24 <qoxncyha> mrvn: yes
08:00:37 --- quit: glauxosdever (Quit: Lost terminal)
08:00:42 <mrvn> and what prevents 2 threads doing that work in parallel on multiple cores?
08:00:52 <qoxncyha> mrvn: atomic operations, hopefully
08:01:27 <mrvn> but the second core has to wait eventually for the first core to finish.
08:01:32 <qoxncyha> mrvn: actually that would be okay as long as there was a preemption mechanism
08:01:52 <qoxncyha> or a way to discard results
08:02:05 <mrvn> can't discard results, that's a try-and-repeat.
08:02:10 <qoxncyha> sure you can
08:02:42 <mrvn> at least you have to guarantee there is only a limited number of discards for any operation
08:03:47 <qoxncyha> mrvn: yes some algorithms do a 'fast-path-slow-path' approach where they try-and-repeat N times for the fast path, which still counts as wait-free
08:04:18 <mrvn> yep. Because with N being limited by a constant you can define progress.
08:05:54 <qoxncyha> the problem i see with removing from a LIFO is that two things have to happen at once, that the node does not have children at the same time as the removal
08:06:06 --- join: Brek (~akira@gateway/tor-sasl/hdphn) joined #osdev
08:06:36 --- join: JonRob (~jon@host165-120-84-64.range165-120.btcentralplus.com) joined #osdev
08:06:56 --- quit: Hdphn (Ping timeout: 255 seconds)
08:07:03 <mrvn> qoxncyha: no. The problem is two cores might want to remove something. So they both pick the first item from the LIFO and need to ajust the pointer to the first item to the next.
08:08:41 <mrvn> Say cpu0 then gets the first item and cpu1 will take the second. cpu0 doesn't know how long cpu1 will have a pointer to the first item.
08:09:33 <mrvn> Most papers use a GC to manage memory so they don't have to care.
08:09:52 --- join: sleepyspider (~quassel@99-74-63-171.lightspeed.hstntx.sbcglobal.net) joined #osdev
08:09:55 <qoxncyha> there are some wait-free algorithms with wait-free memory reclamation
08:10:13 --- join: graff (~graff@unaffiliated/graff) joined #osdev
08:11:17 <graff> we're writing a C standard C library. and have a few ports to various architectures. there's some confusion though about whether or not our inline assembly syscall layer is correct and if it will work with or without -FPIC
08:11:26 <graff> all we are trying to support right now is static linking
08:11:38 <graff> -fPIC *
08:11:43 --- quit: zeus1 (Ping timeout: 240 seconds)
08:11:51 <mrvn> graff: make it position independent and it works everywhere
08:12:06 <graff> mrvn: is it needed with static linking though?
08:12:13 <mrvn> Note: -fPIC isn't position independent.
08:12:25 <graff> hmm
08:12:42 --- quit: user10032 (Quit: Leaving)
08:12:45 <mrvn> graff: needed? no. but it's the ultimate code.
08:12:51 --- join: Oxyd76 (~quassel@5.18.99.0) joined #osdev
08:13:21 --- quit: Asu (Remote host closed the connection)
08:13:32 <graff> I don't want the ultimate, i want something that is simple for people to understand yet still works
08:14:10 <mrvn> graff: you can do both.
08:14:30 <mrvn> graff: do you need to access any C symbols or tables in your syscall asm?
08:14:52 --- quit: sortie (Quit: Leaving)
08:14:58 <graff> the focus is on new implementations of algorithms and mathematics in general. and just new implementations. I'd like the simplest possible assembly syscall layer
08:15:19 <mrvn> graff: most people just put the syscall number into a special register and leave all other arguments in the standard calling convention location.
08:16:03 <graff> but tbh honest as i try to make everything work with i386, x86_64, arm, aarch64 and mips buildig with glibc and musl on variou distros ... things are falling apart a little
08:16:53 <qoxncyha> okay, two threads try to remove A from A -> B. each thread must do two things simultaneously: traverse A to get to B, and set the nextptr to B.
08:16:59 <graff> mostly linking errors, seemingly anomalous.
08:17:11 --- quit: variable (Quit: /dev/null is full)
08:17:17 <mrvn> e.g. on x86_64 you have a scratch register. SYSCALL() then just loads the right number into r11 (iirc) and syscalls.
08:17:38 <mrvn> qoxncyha: yes
08:18:02 <qoxncyha> mrvn: can it be done with the work record array?
08:18:36 <qoxncyha> so thread one tries to remove. it traverses A to get to B but that's all it has time for
08:18:38 <mrvn> qoxncyha: I don't see how
08:19:08 <qoxncyha> then it makes a work record for setting the head to B
08:19:16 <qoxncyha> maybe?
08:19:21 <mrvn> qoxncyha: "makes"? When does it do that? It has no time to do that
08:19:27 --- join: unixpickle (~alex@c-24-5-86-101.hsd1.ca.comcast.net) joined #osdev
08:19:35 <qoxncyha> mrvn: it has exclusive access to its index in the work record array
08:19:47 <qoxncyha> exclusive write access
08:20:40 <mrvn> qoxncyha: when you say "that's all it has time for" then I conclude it gets interrupted, preempted.
08:20:54 <qoxncyha> mrvn: i am thinking out loud
08:21:08 --- join: jeryel (5631f38a@gateway/web/freenode/ip.86.49.243.138) joined #osdev
08:21:26 <mrvn> qoxncyha: are you thinking multiple threads, multiple cores or both?
08:21:34 --- quit: m_t (Quit: Leaving)
08:21:41 <qoxncyha> mrvn: multiple parallel executors, so threads, cores, whatever
08:22:08 <mrvn> That's the hardest because you have threads that get interrupted as well as threads running in parallel.
08:22:47 <qoxncyha> let's say thread interrupts don't count as lost time
08:23:24 <mrvn> it doesn't.
08:23:36 <qoxncyha> right
08:23:38 --- join: variable (~variable@freebsd/developer/variable) joined #osdev
08:25:01 --- quit: sixand (Ping timeout: 260 seconds)
08:25:11 <mrvn> qoxncyha: I think you have to make a work-intent-order in your array. Instead of "I've read A" you have to store "I'm going to read A" in there
08:25:26 --- quit: jeryel (Ping timeout: 260 seconds)
08:25:31 <qoxncyha> mrvn: what does that solve?
08:25:44 --- join: zeus1 (~zeus@197.239.37.130) joined #osdev
08:26:03 <mrvn> qoxncyha: then if it gets interrupted reading A everyone else can still see in the work order that A is still needed.
08:27:24 <qoxncyha> mrvn: by interrupted you mean a CAS fails?
08:27:44 <mrvn> qoxncyha: no, by interrupt I mean the threads timeslize runs out and the kernel schedules a different thread to run.
08:27:56 --- join: glauxosdever (~alex@ppp-94-66-42-2.home.otenet.gr) joined #osdev
08:28:09 <mrvn> qoxncyha: or receives a network packet so it puts the thread to sleep.
08:29:26 <qoxncyha> mrvn: how would another thread help A? what does A do in the meantime
08:29:55 <qoxncyha> s/A/thread reading A/
08:31:19 --- quit: zeus1 (Ping timeout: 264 seconds)
08:32:04 <mrvn> qoxncyha: For that you have to make the work order structure bigger, e.g.: "1. I'm going to read A, 2. A = ???, 3. I'm going to read A->next, 4. A->next = ???, 5. I'm going to set lifo.first = A->next". The for each step you do the work and atomically check it of with a CAS.
08:32:49 <mrvn> if some other thread wants to help it can fill in the blanks too. When the CAS of the owner fails that means another thread helped and it has to discard it's own result and read the result from the work sheet.
08:32:52 --- join: fujisan (uid4207@gateway/web/irccloud.com/x-xswacggxaefjrwsw) joined #osdev
08:33:02 <mrvn> qoxncyha: That could work.
08:33:32 <qoxncyha> mrvn: what does the requesting thread do in the meantime?
08:33:58 <mrvn> qoxncyha: it either works or sleeps because the kernel interrupted it.
08:34:17 <qoxncyha> and if it doesnt?
08:34:26 <qoxncyha> then it tries to help itself?
08:34:35 <qoxncyha> hmm
08:35:10 <qoxncyha> this approach requires the number of threads to be known in advance
08:35:24 <mrvn> qoxncyha: or have them in a linkes list.
08:35:39 <qoxncyha> mrvn: what would the linked list contain?
08:36:01 <mrvn> qoxncyha: What I don't get with this approach is how you prevent or detect other threads adding a new work order while you run through the list or array or work orders.
08:36:21 <mrvn> qoxncyha: the array of work order could be a linked list to make it dynamic.
08:36:28 --- quit: Naergon (Ping timeout: 268 seconds)
08:36:36 <qoxncyha> mrvn: it would need to be atomic, begging the question
08:36:53 <mrvn> qoxncyha: do you have a wait-free FIFO?
08:37:25 --- quit: brynet (Quit: leaving)
08:38:02 <qoxncyha> mrvn: once a thread CASes a given thread's work record, it either helps or doesn't help, then it traverses all threads again
08:38:48 <qoxncyha> mrvn: i have a wait-free FIFO but it is not 'population-oblivious': the number of threads must be known in advance
08:40:31 <mrvn> qoxncyha: then you could put the work orders into a FIFO and work through them in that order.
08:40:56 <qoxncyha> mrvn: what's the advantage over a statically allocated array?
08:41:25 <mrvn> qoxncyha: the entries are ordered by time
08:41:49 <mrvn> every thread will always help another thread that made their request earlier.
08:42:33 <qoxncyha> mrvn: it would be faster probably, but it requires the number of threads to be known in advance
08:42:47 <mrvn> qoxncyha: your array does too
08:43:09 <qoxncyha> mrvn: yep. the FIFO uses a similar array/help record structure internally
08:43:52 --- join: Pseudonym73 (~Pseudonym@124-168-223-127.dyn.iinet.net.au) joined #osdev
08:44:39 --- join: zeus1 (~zeus@197.239.5.19) joined #osdev
08:44:44 <mrvn> qoxncyha: personally I would throw the whole idea away. A LIFO serializes your access. There can be no parallelity there. Redesign your algorithm so it doesn't have that choke point.
08:45:25 <qoxncyha> mrvn: i am using LIFO to simplify the problem, i'm actually designing a wait-free b-tree
08:45:35 <mrvn> and if you must then implement wait queues in the kernel and use those with a lock.
08:46:11 <qoxncyha> my goal is to make a wait-free population-oblivious structure but i am afraid it cannot be done
08:47:30 <mrvn> qoxncyha: even if it can be done you will have complex code (more bugs) and multiple cores doing the same work whenever you have a collision.
08:48:00 <mrvn> With a b-tree hopefully the only choke point is the root.
08:48:48 --- quit: Pseudonym73 (Ping timeout: 268 seconds)
08:48:50 --- join: oaken-source (~oaken-sou@p4FE2C58D.dip0.t-ipconnect.de) joined #osdev
08:49:49 <mrvn> qoxncyha: have you added some accounting to the tree to see how many collisions you have with locks? Is it even worth thinking about wait-free stuff?
08:50:35 <qoxncyha> mrvn: if i can do it wait-free, i can do it about as fast as lock-free
08:51:13 --- join: NaNkeen (~nankeen@115.164.81.83) joined #osdev
08:51:39 <qoxncyha> i still can't get over that i need to know the number of threads in advance
08:56:48 --- join: brynet (~brynet@brynet6.biz.tm) joined #osdev
09:01:49 --- join: Pseudonym73 (~Pseudonym@124-168-223-127.dyn.iinet.net.au) joined #osdev
09:05:27 --- join: Hdphn (~akira@gateway/tor-sasl/hdphn) joined #osdev
09:05:53 --- quit: Brek (Ping timeout: 255 seconds)
09:07:19 --- quit: zeus1 (Ping timeout: 248 seconds)
09:08:02 --- quit: Hdphn (Remote host closed the connection)
09:11:12 --- join: JusticeEX (~justiceex@pool-98-113-143-43.nycmny.fios.verizon.net) joined #osdev
09:13:19 --- quit: magnificrab (Ping timeout: 264 seconds)
09:13:40 --- join: magnificrab (~pi@189.171.148.122.sta.dodo.net.au) joined #osdev
09:14:13 --- quit: Pseudonym73 (Ping timeout: 240 seconds)
09:14:37 --- join: l2y (~l2y@217.30.64.102) joined #osdev
09:16:55 --- quit: light2yellow (Ping timeout: 264 seconds)
09:17:58 --- quit: r00tus3r (Quit: Connection closed for inactivity)
09:18:24 --- quit: NaNkeen (Ping timeout: 268 seconds)
09:18:37 --- nick: l2y -> light2yellow
09:27:55 <CrystalMath> what is the maximum number of IRQs in an IOAPIC?
09:29:02 <mrvn> 256? 1024? 2^32? Isn't the better question: How do I see how many MY IOAPIC has?
09:29:31 <CrystalMath> well i sorta need to know how many could there ever be on an x86-PC-like system
09:29:40 <CrystalMath> to think of a good data structure for managing them all
09:29:46 <CrystalMath> as i want to abstract away all the IRQ stuff
09:30:22 <CrystalMath> that is, in my kernel, i only want to handle hardware IRQ number <-> interrupt vector, through a module that will figure it out
09:30:25 <CrystalMath> whatever that module may be
09:30:34 <CrystalMath> so i can have a default PIC module
09:30:38 <CrystalMath> and later load an APIC module to replace it
09:30:54 <mrvn> CrystalMath: so make it an array and resize it to fit.
09:30:57 <CrystalMath> but while designing this, i'd like to know the maximum total number of hardware IRQs ever
09:31:07 <CrystalMath> that's not efficient if the number is small
09:31:22 <CrystalMath> if the number is big, but the values are sparse
09:31:32 <CrystalMath> like let's say 2^32 numbers but not more than 100 devices
09:31:40 <CrystalMath> then i'd use a dictionary of some kind
09:31:46 <CrystalMath> like a tree or a hash map
09:31:47 <mrvn> It's at least 256 although most people use only 32 for PIC.
09:31:58 <CrystalMath> 16 for PIC, right?
09:32:05 <CrystalMath> 8 per PIC, 2 PICs
09:32:14 <CrystalMath> there's 256 interrupt vectors
09:32:25 <mrvn> not on x86_64 as the first 16 are used for exceptions and you remap the PIC.
09:32:40 <CrystalMath> yeah but there's still only 16
09:32:51 <CrystalMath> they start from 32 for example
09:32:54 <CrystalMath> and go to 48
09:32:59 <CrystalMath> but there's only 16 of them
09:33:03 <mrvn> yes.
09:33:17 <CrystalMath> that's what i mean, the number of different hardware IRQ numbers
09:33:26 <CrystalMath> ever
09:33:29 <mrvn> which would be 48 in that case.
09:33:46 <CrystalMath> how? 32 - 47 are 0 -15
09:33:52 <CrystalMath> there's 16 on a PIC
09:33:56 <CrystalMath> but i want to know for an APIC
09:34:00 --- quit: grumble (Read error: Connection reset by peer)
09:34:02 <CrystalMath> well, IOAPIC
09:34:04 <mrvn> CrystalMath: 0-31 for exceptions, 32-48 for pic.
09:34:13 <CrystalMath> exceptions aren't IRQs
09:34:20 --- quit: promach2 (Remote host closed the connection)
09:34:34 --- join: grumble (~grumble@freenode/staff/grumble) joined #osdev
09:34:42 <mrvn> shared table on x86_64.
09:35:04 <CrystalMath> hmm... but in an IOREDTBL
09:35:12 <CrystalMath> the indexes are hardware IRQs
09:35:16 <CrystalMath> and inside the table
09:35:19 <CrystalMath> you put the interrupt vector
09:35:23 <mrvn> anyway. Even with PIC you already have 256 possible but only want 48 (or 16 by your count). So you want to only allocate the needed entries.
09:35:25 <CrystalMath> now i can see 8 bits are reserved
09:35:29 --- join: AverageJ0e (~joe@ip98-167-200-207.ph.ph.cox.net) joined #osdev
09:35:32 <CrystalMath> i'm not talking about vectors
09:35:38 <CrystalMath> i'm talking about hardware IRQ lines
09:35:43 <CrystalMath> the ones coming in from outside the processor
09:35:49 <CrystalMath> the ones mentioned as indexes to the IOREDTBL
09:36:01 <Ameisen> so close to gcc building successfully
09:36:07 <Ameisen> make and make install finished... but no gcc. just the libs.
09:36:18 <Ameisen> how it made the libs without gcc, I'm unsure
09:36:23 <mrvn> CrystalMath: some have interrupt protocols where the number is send as data 32bit number.
09:37:09 <CrystalMath> i see...
09:37:26 <mrvn> CrystalMath: if you want to keep this abstract you probably want a tree.
09:37:31 <mrvn> or hashtable
09:37:47 --- quit: unixpickle (Quit: My MacBook has gone to sleep. ZZZzzz…)
09:37:47 <CrystalMath> ok, thank you
09:44:42 --- join: macdonag (~macdonag@cpc110673-lewi19-2-0-cust478.2-4.cable.virginm.net) joined #osdev
09:51:52 --- quit: daniele_athome (Ping timeout: 265 seconds)
09:52:46 --- join: MarchHare (~Starwulf@mo-184-5-204-232.dhcp.embarqhsd.net) joined #osdev
09:53:06 --- quit: Philpax (Ping timeout: 260 seconds)
09:54:34 --- quit: SGautam (Ping timeout: 255 seconds)
10:03:16 --- join: NaNkeen (~nankeen@115.164.81.83) joined #osdev
10:04:24 <mrvn> Why can't I make a stack of a const enum? https://gist.github.com/mrvn/1570ab4022946ae2cf134bef31955753
10:04:26 <bslsk05> ​gist.github.com: foo.cc · GitHub
10:06:57 --- join: sixand (~Thunderbi@112.5.248.197) joined #osdev
10:08:01 --- quit: NaNkeen (Ping timeout: 256 seconds)
10:09:48 --- join: unixpickle (~alex@c-24-5-86-101.hsd1.ca.comcast.net) joined #osdev
10:15:11 <CrystalMath> it's too bad C doesn't have an extendable preprocessor
10:16:26 <CrystalMath> does gcc have any non-standard extension with which i can basically generate some code?
10:17:02 --- quit: variable (Quit: /dev/null is full)
10:17:04 <mrvn> only asm()
10:21:39 --- quit: Esa_ (Remote host closed the connection)
10:22:00 --- join: Esa_ (~esa.syt@99-50-199-38.lightspeed.snjsca.sbcglobal.net) joined #osdev
10:22:50 --- join: booyah (~bb@193.25.1.157) joined #osdev
10:22:54 --- quit: MarchHare (Ping timeout: 263 seconds)
10:23:11 --- join: newls (~francky@unaffiliated/newls) joined #osdev
10:24:27 --- quit: quc (Ping timeout: 240 seconds)
10:25:24 --- join: variable (~variable@freebsd/developer/variable) joined #osdev
10:25:25 --- join: MarchHare (~Starwulf@mo-184-5-204-232.dhcp.embarqhsd.net) joined #osdev
10:26:12 --- quit: newls (Quit: leaving)
10:27:16 <AndrewBC> You can do m4
10:28:11 <Ameisen> CrystalMath - no reason you cannot add one
10:28:39 <Ameisen> I'm actually planning on adding such an extension to GCC for this project
10:28:42 <Ameisen> #pragma external
10:28:49 <Ameisen> calls external program, inserts stdout from that program as code
10:29:12 <Amaan> Oooh, that sounds interesting (and dangerous in some sense too)
10:29:21 <Ameisen> it is!
10:29:29 <Amaan> What's your use-case?
10:29:33 <Ameisen> I want to add __builtin_external too, but I have _no_ idea how to implement the interface
10:29:43 <Ameisen> in C++, I've considered having it return an array of strings and requiring templates to parse
10:29:54 <Ameisen> autogenerated data from outside the compiler
10:30:04 <Ameisen> in gamedev it would be useful for scripts/etc to autogenerate script headers in C++
10:30:07 --- quit: oaken-source (Ping timeout: 264 seconds)
10:30:18 --- quit: elevated (Ping timeout: 276 seconds)
10:30:32 <Ameisen> can be used in MCU development for running an external emulator to test algorithm performances on the fly, and thus select between algorithms
10:30:32 <Amaan> For cases like that, I usually just have the data be generated as part of my build process and the C files just #include the generated file
10:30:40 <Ameisen> in this case, you don't require a separate build process component.
10:30:54 <Amaan> Ooh
10:31:03 <Ameisen> it's part of the preprocessor
10:31:07 <mrvn> Amaan: much simpler solution: add a Makefile rule to generate external.h and include that.
10:31:10 <Ameisen> if I figure out __builtin_external, it will be part of the compiler
10:31:15 <Amaan> mrvn: That's what I meant
10:31:18 <Ameisen> with language-awareness, etc
10:31:33 <mrvn> Amaan: sorry, wrong nick completion, mend Ameisen
10:31:52 <Ameisen> mrvn - most of my projects don't use makefiles. I could add prebuild steps, but I'm already extending GCC for this
10:31:59 <Ameisen> so adding something like #pragma external isn't a big task
10:32:19 <Ameisen> and plays somewhat nicely with precompiled headers
10:32:21 <mrvn> Ameisen: it's a pain to maintain while Makefiles already do this kind of stuff perfectly.
10:32:27 <Amaan> ^
10:32:41 <mrvn> Ameisen: including not recompiling the file very single time if the output of external hasn't changed.
10:32:45 <Amaan> It sounds interesting, but I think realistically, the use-cases are a bit limited
10:33:21 <Amaan> The dynamic selection of algorithms is kind of cool, but you could also do that more safely by just having it happen as part of your build process (linking in a version that your external evaluation script chooses)
10:33:28 <Ameisen> Either way, still working on building GCC :|
10:33:40 <lkurusa> Sounds like an interesting security hole
10:33:47 <Amaan> Haha, that could be a while
10:34:14 <lkurusa> “Compile this code” -> “rm -rf /the-root-directory”
10:34:20 <lkurusa> especially when obfuscated with the existing preprocessor
10:34:21 <Ameisen> well, I'd prefer __builtin_external, since it would have language awareness, could take derived constexpr values, etc
10:34:25 <Ameisen> I just have no idea how to expose it
10:34:30 <CrystalMath> what i wouldn't give for a #for
10:34:41 <AndrewBC> If you can access a system's compiler, you've effectively already rooted it
10:34:51 <Ameisen> you could just put rm -rf /root into a makefile as well
10:35:03 <CrystalMath> but that only deletes root's home directory
10:35:03 <Amaan> AndrewBC: This is much more dangerous
10:35:11 <CrystalMath> (since SVR4)
10:35:13 <Amaan> People often blindly git clone and build
10:35:17 <CrystalMath> not sure if /root was used before
10:35:40 <CrystalMath> i think in older unixes / was root's home directory
10:35:51 <Amaan> Though that's a larger problem (since you could also rm -rf / in the Makefile or the configure step :P)
10:36:09 <Ameisen> yeah
10:36:15 <Ameisen> as said though, I'd prefer context awareness anyways
10:36:17 <Ameisen> which would make it more useful
10:36:25 <CrystalMath> why doesn't cpp have for :(
10:36:27 <Ameisen> just... no idea how to actually implement that
10:36:31 <CrystalMath> i mean #for
10:36:41 <Ameisen> because it's not intended to be a turing complete language
10:36:50 <Ameisen> I try to avoid macros in C++ anyways
10:36:54 <AndrewBC> It is dangerous, of the kind that already requires violation. The acticity that's actually violating happened before. Maybe people shouldn't blindly git clone and build if they're worried!
10:36:57 <Ameisen> sometimes I can't though
10:37:24 <Ameisen> what I'd prefer is a programmable preprocessor of some kind... but that's functionally equivalent to #pragma external
10:37:34 <lkurusa> well, people never really learn
10:37:37 <CrystalMath> see, i'd like to statically initialize an array of doubly linked lists
10:37:44 <lkurusa> it does sound like a very useful feature, though.
10:37:52 <Ameisen> what'd be REALLY nice is user-programmable variable modifiers
10:37:54 <Ameisen> and function modifiers
10:37:55 <Ameisen> etc
10:37:58 <CrystalMath> each element needs to be { &name[0], &name[0] }
10:37:59 * variable glares at Ameisen
10:38:06 <Ameisen> without wrapping in template helpers
10:38:07 <CrystalMath> well not [0]
10:38:19 <CrystalMath> { &name[i], &name[i] }
10:38:28 <mrvn> Ameisen: a programmable preprocessor usualy can't do file operations.
10:38:34 <CrystalMath> i currently have a huge list
10:38:35 <Ameisen> CrystalMath - doable using C++ templates/constexpr
10:38:46 <CrystalMath> #define INITIALIZERS256(name) INITIALIZERS255(name), LIST_INITIALIZER(name[255])
10:38:49 <CrystalMath> Ameisen: pure C
10:38:56 <Ameisen> why
10:39:06 <Ameisen> your problem is already solved in C++
10:39:06 --- quit: MarchHare (Ping timeout: 264 seconds)
10:39:10 <CrystalMath> meh, if C++ can do it C can do it too
10:39:16 <Ameisen> It literally cannot.
10:39:18 <variable> if C can do it, so can TOD
10:39:20 <mrvn> CrystalMath: wrong
10:39:29 <lkurusa> Ewww, C++.
10:39:36 <Ameisen> C does not have strong metaprogramming capabilities. It cannot really autogenerate code.
10:39:39 <Ameisen> C++ is designed to do that.
10:39:44 <variable> seriously, why would anyone could use C or C++ when they could use TOD
10:39:45 <mrvn> CrystalMath: C++ can do it for any size, C(cpp) only for a fixed size
10:39:45 <CrystalMath> then i will add an autogenerator
10:39:58 <Ameisen> then you've implemented a crappier version of C++
10:40:03 <variable> TOD > C++
10:40:32 <Ameisen> you're solving a solved problem :|
10:40:40 <CrystalMath> i will not use C++
10:40:44 <CrystalMath> especially not in the kernel
10:40:49 <Ameisen> adding metaprogramming to C is literally just making a worse version of C++
10:40:50 <glauxosdever> What is TOD?
10:40:50 <variable> CrystalMath: you shouldn't. Use TOD instead
10:40:54 <Ameisen> Why not?
10:40:58 <CrystalMath> variable: never heard of that
10:40:59 <variable> glauxosdever: my language.
10:41:01 <variable> glauxosdever: https://esolangs.org/wiki/TOD
10:41:01 * Ameisen is confused by the C++ htae
10:41:02 <bslsk05> ​esolangs.org: TOD - Esolang
10:41:03 <Ameisen> hate*
10:41:22 <variable> Ameisen: its mostly hate by a bunch of people who first learned C++ back in 2007 and never bothered to keep up IMHO
10:41:30 <glauxosdever> Whoa!
10:41:36 --- join: MarchHare (~Starwulf@mo-184-5-204-232.dhcp.embarqhsd.net) joined #osdev
10:41:39 <variable> or people don't understand that ergonomics of programming languages
10:41:44 <variable> anyways
10:41:44 <mrvn> variable: c++ templates are insane.
10:41:53 <booyah> mrvn: no
10:41:58 <variable> mrvn: you're not wrong, but no one said you needed them :)
10:42:00 <AndrewBC> or it also could just be language hate
10:42:04 <variable> also. TOD > C++
10:42:05 <CrystalMath> Ameisen: it's not hate, it's the fact that if i can't compile something in my head, i don't want to use it
10:42:13 <CrystalMath> Ameisen: in general, i want things to be very simple
10:42:14 <AndrewBC> no need to explain it away, lol
10:42:17 * booyah looks at the C plebes
10:42:23 <CrystalMath> Ameisen: C was a compromise
10:42:26 <CrystalMath> i wanted assembly
10:42:31 <mrvn> CrystalMath: Oh I can perfectly compile it in my head. I just can't spot when the type is wrong and why.
10:42:31 <CrystalMath> but it was too difficult
10:42:32 <variable> CrystalMath: use TOD
10:42:37 <Ameisen> can you compile an autogenerated doubly-linked list in your head?
10:42:44 <variable> I will *always* advocate TOD for any language war
10:42:51 <variable> in any context
10:42:55 <variable> mostly cause I wrote it
10:43:03 <Amaan> That would make sense
10:43:15 <Ameisen> the idea there isn't to 'compile it', but to make it semantically reasonable
10:43:19 <mrvn> Like my gist above. Why is std::stack<const Foo> foo; wrong when Foo is an enum?
10:43:20 <CrystalMath> variable: nice :)
10:43:26 <Ameisen> just by reading it, you know it's a doubly-linked list generator
10:43:35 <glauxosdever> unsigned int C = INT_MAX; unsigned int C-
10:43:39 <glauxosdever> Erm
10:43:40 <Ameisen> which is really what the language is designed to do.
10:43:41 <CrystalMath> Ameisen: if C can't do it, it's not simple enough
10:43:50 <glauxosdever> unsigned int C = INT_MAX; unsigned int CPLUSPLUS = C++;
10:43:55 <Ameisen> But you are wanting to implement a code generator
10:43:56 <CrystalMath> and this isn't simple enough
10:43:57 <glauxosdever> Uh
10:43:58 <Ameisen> which is making C more complex.
10:44:01 <glauxosdever> unsigned int C = UINT_MAX; unsigned int CPLUSPLUS = C++;
10:44:06 <variable> CrystalMath: can C provide timing guarantees?
10:44:12 <AndrewBC> lesse, how do you push word again? what machine is my head? delusion_v0.1.0 -- Ah that compiles easy, calling convention for that is "It works, trust me"
10:44:16 <mrvn> glauxosdever: perfectly valid code. what's your point?
10:44:19 <Ameisen> on x86, nothing can provide timing guarantees that are reasonable
10:44:40 <AndrewBC> Let's try C++ now, shit I
10:44:41 <glauxosdever> THat it ends up being C > C++
10:44:41 --- join: lachlan_s (uid265665@gateway/web/irccloud.com/x-iwwrsnwuvdzmstgz) joined #osdev
10:44:47 <AndrewBC> 've got a halting problem
10:44:57 <glauxosdever> I.e. C being better than C++
10:44:59 <variable> AndrewBC: TOD > C
10:45:02 <variable> AndrewBC: TOD > C++
10:45:06 <variable> C ~ C++
10:45:10 <mrvn> variable: so TOD has a halting problem.
10:45:11 <AndrewBC> Who is Todd?
10:45:18 <variable> AndrewBC: TOD not Todd
10:45:19 <CrystalMath> Ameisen: truth be told C++ simply makes me sick
10:45:21 <variable> AndrewBC: https://esolangs.org/wiki/TOD
10:45:22 <glauxosdever> Phase difference
10:45:29 <CrystalMath> Ameisen: when i think about writing libc++
10:45:31 <Ameisen> I mean, all right.
10:45:35 <Ameisen> That's really really odd, but all right.
10:45:43 <CrystalMath> Ameisen: i love using it for everything but osdev
10:45:50 <Ameisen> C doesn't make me sick. It just annoys me because it greatly, greatly limits my flexibility and control.
10:46:09 <CrystalMath> i suppose you might say that writing a libc++ is unavoidable
10:46:10 <AndrewBC> variable: "The design goal was to make running Hello world take longer than compiling OpenOffice.org."
10:46:21 <variable> AndrewBC: yes
10:46:26 <Ameisen> why not just use one of the existing libc++s?
10:46:28 <variable> AndrewBC: that was my goal
10:46:34 <CrystalMath> but i'd really like to avoid it as much as possible
10:46:36 <AndrewBC> So it's useless crap and I'm supposed to laugh or something?
10:46:39 <CrystalMath> Ameisen: too complex
10:46:43 <Ameisen> eh?
10:46:48 <Ameisen> Building llvm's libc++ is trivial
10:46:51 <CrystalMath> mine would be minimal
10:46:55 <CrystalMath> no, the libraryu
10:46:57 <CrystalMath> *library
10:46:59 <CrystalMath> is too complex
10:47:00 <Ameisen> ...
10:47:06 <geist> AndrewBC: you fell for the TOD bait
10:47:08 <Ameisen> it complies with the spec. Yours wouldn't.
10:47:13 <CrystalMath> it will
10:47:19 <CrystalMath> i'm writing my own libc
10:47:20 <AndrewBC> geist, is that a common thing? :(
10:47:28 <Ameisen> If you are going to write something 'simple' yet complying with the C++ spec, you're going to end up with something worse
10:47:30 <geist> most of us have already been baited a bunch
10:47:33 <glauxosdever> geist: Needs some ELTORITO and it will be complete
10:47:36 <AndrewBC> lol
10:47:37 <geist> EL TORITO!
10:47:38 <variable> geist: :(
10:47:39 <CrystalMath> Ameisen: actually the C spec
10:47:43 <Ameisen> ...
10:47:46 <CrystalMath> Ameisen: the C++ spec... i just see no way to make it simple
10:47:47 <Ameisen> you're writing a libc++ complying with the C spec?
10:47:52 <CrystalMath> no, libc
10:47:57 <Ameisen> which C spec?
10:48:02 <variable> geist: I really dislike language wars
10:48:04 <CrystalMath> C99
10:48:06 <variable> 99% of the time they are not data driven
10:48:07 <Ameisen> Why not C11?
10:48:11 <geist> HOTSAUCE, a language designed to implement a EL TORITO bootloader
10:48:21 <CrystalMath> Ameisen: i don't see why not
10:48:23 <variable> geist: or driven by ergonomics, or actual understanding of how humans work
10:48:24 <Ameisen> why not use BCPL instead?
10:48:25 <AndrewBC> C99 is a real man's standard
10:48:27 <glauxosdever> geist: That would be an EL BURRITO bootloader though
10:48:27 <Ameisen> It's simpler than C.
10:48:33 <variable> geist: so its more fun to just advocate for TOD
10:48:38 <AndrewBC> C11 requires less implementation
10:48:38 <variable> and shut down the silly flamewars
10:48:42 <CrystalMath> Ameisen: but i refuse to implement the type safety stuff
10:48:49 --- quit: JonRob (Ping timeout: 240 seconds)
10:48:52 <CrystalMath> and memory bound checking
10:48:58 <Ameisen> BCPL is even better
10:49:00 <Ameisen> it doesn't have types
10:49:01 <geist> variable: yeah though in general we're pretty good here, so there's not as much of a need to point out the silliness of wars
10:49:04 <glauxosdever> AndrewBC: What about C11 threads?
10:49:08 <CrystalMath> Ameisen: sounds great, but i'm used to C
10:49:19 <AndrewBC> what are threads? :)
10:49:23 <booyah> mrvn: wtf are you trying to do with std::stack of const anything? it anyway can't modify elements it owns, it doesn't have an at / [] accessor
10:49:31 <geist> as in they're discussing languages, but it's fairly rational, so it's not a silly war
10:49:32 <variable> geist: also, don't forget: baiting people is fun, .... and I did write it
10:49:38 --- join: JonRob (~jon@host165-120-84-64.range165-120.btcentralplus.com) joined #osdev
10:49:53 <CrystalMath> Ameisen: i will consider writing a libc++
10:50:02 <CrystalMath> Ameisen: it will take quite a long time though
10:50:02 <variable> geist: at least I'm /sometimes/ constructive here
10:50:05 <variable> geist: riht?
10:50:07 <geist> oh ho, do you dont want to write a libc++
10:50:12 <Ameisen> I wrote an optimizing brainfuck interpreter to benchmark emulators
10:50:14 <geist> er you do not want
10:50:17 --- quit: aalm (Ping timeout: 268 seconds)
10:50:28 <Ameisen> pretty sure CrystalMath wants to write libc++ in C
10:50:31 <AndrewBC> variable: props for writing it, best kind of trolling is self made
10:50:33 <CrystalMath> no, in C++
10:50:34 <Ameisen> which... I don't see how that would work.
10:50:39 <CrystalMath> it would be C++11
10:50:53 <mrvn> CrystalMath: *blah* use c++17
10:50:58 <Ameisen> the odds of writing something fully compliant are low
10:50:59 <geist> for what purpose are you doing this, CrystalMath ?
10:51:04 <CrystalMath> geist: for my OS
10:51:07 <variable> AndrewBC: so, the actual story behind that language was that I was actually trying to compile OO.o one day
10:51:14 <geist> yes, but why are you doing it from scratch, precisely?
10:51:16 <variable> AndrewBC: and 6 hours later it still wasn't done
10:51:16 --- join: aalm (~aalm@37-219-119-194.nat.bb.dnainternet.fi) joined #osdev
10:51:23 <CrystalMath> geist: i think all the existing ones are ugly
10:51:23 <AndrewBC> variable, lol
10:51:32 <CrystalMath> geist: or they don't use my code formatting style :P
10:51:34 <geist> CrystalMath: mkay. <shrug>
10:51:40 <CrystalMath> 4 spaces
10:51:53 --- join: zeus1 (~zeus@197.239.6.113) joined #osdev
10:51:54 * geist steps back and walks away from this one
10:51:59 <CrystalMath> :P
10:52:06 <CrystalMath> geist: idk, i tried, really
10:52:07 <glauxosdever> If they are not 3 spaces, then it's ok
10:52:21 <CrystalMath> but porting existing C libraries is a pain
10:52:32 <CrystalMath> also i was inspired by an OSDev wiki sentence
10:52:33 <glauxosdever> Really, why do some books even suggest using 3 spaces for identation?
10:53:00 <mrvn> glauxosdever: 2, 4, 8 and tabs are copyrighted.
10:53:11 <AndrewBC> maybe they have the base 3 bug like russian SETUN computers are balanced ternary
10:53:19 <glauxosdever> mrvn: I hope you are trolling now..
10:53:32 <mrvn> glauxosdever: me too
10:53:45 <CrystalMath> The best option, in terms of code quality and integration with your operating system, is to write your own C library. You can aim for making a clean and high-quality implementation that follows standards well. It will integrate cleanly with your kernel as no portability layer is needed. You can be secure and robust. You can surpass the limits of what you can do with existing implementations. You can add
10:53:47 <CrystalMath> vendor-extensions that replace bad interfaces and do things better. You can break a lot of code because you followed the standards and applications didn't, then fix the applications as well. It can be better than the competition if you make that your goal.
10:53:52 <CrystalMath> i didn't realize it was that long
10:53:58 <CrystalMath> that's the sentence that inspired me
10:54:01 <mrvn> CrystalMath: I won't write a C library. My OS isn't posix.
10:54:09 <CrystalMath> mine isn't either
10:54:21 <variable> mine isn't either
10:54:25 <variable> but its damn close
10:54:25 <CrystalMath> my C library contains a POSIX layer
10:54:26 <variable> :-)
10:54:31 <CrystalMath> mine isn't posix at all
10:54:32 <glauxosdever> mrvn: Assuming you will support C, what will you use? glibc?
10:54:37 <geist> keep in mind that C library does not implly posix
10:54:40 <AndrewBC> what is a "standard"
10:54:43 <glauxosdever> Which can't even statically link?
10:54:43 <mrvn> glauxosdever: exec.library.
10:54:44 <variable> probably should use musl, not glibc
10:54:52 <CrystalMath> geist: yeah but i'm also implementing a posix layer
10:54:53 <geist> in the old days they were a lot more separate, but linux and glibc in particular has blurred those lines for many
10:54:55 <glauxosdever> veriable: Sure
10:54:59 <CrystalMath> geist: basically what microsoft did with MSVCRT
10:55:04 <mrvn> glauxosdever: and io.library, fs.library and others where needed
10:55:08 <CrystalMath> in fact, mine is called MLCRT
10:55:09 <variable> geist: also macOS
10:55:09 <geist> right. and what we're doing for fuchsia
10:55:19 <variable> that you can't tell syscalls without going through libc
10:55:26 <variable> * call
10:55:30 <CrystalMath> it is clear that i am extremely ReactOS-inspired
10:55:45 <mrvn> variable: I have no syscalls (for the user). Only library functions.
10:55:50 <CrystalMath> you can consider my project an attempt to make another NT which is extremely simplified
10:55:53 <glauxosdever> Fun fact, ReactOS is not endorsed by the FSF
10:55:54 <variable> mrvn: yeah, that's what macOS does
10:56:08 <CrystalMath> glauxosdever: i work on ReactOS too
10:56:08 <variable> glauxosdever: doesn't shock me, but curious why?
10:56:09 <mrvn> variable: linux basically too nowadys. vdso segment.
10:56:34 <variable> I have limited respect for the FSF - they do some good stuff, but also some harmful things :'(
10:56:37 <glauxosdever> variable: Because it's designed to run Windows' proprietary software
10:56:46 <glauxosdever> (As they say)
10:56:46 <CrystalMath> glauxosdever: monolithium isn't
10:56:49 <Ameisen> didn't the FSF used to hate C++
10:56:49 <variable> glauxosdever: okay, exactly as expected
10:56:57 <Ameisen> saying that C++ promoted proprietary software?
10:57:01 <CrystalMath> Ameisen: reactos is mostly non-C++
10:57:08 <CrystalMath> Ameisen: because windows is
10:57:15 <CrystalMath> and so my OS will also be mostly-C
10:57:25 <geist> mrvn: re: the vdso we took that much farther with fuchsia
10:57:27 <glauxosdever> Ameisen: Yet they converted gcc to C++
10:57:31 <Ameisen> my kernel is C++ with a smattering of asm.
10:57:37 <Ameisen> glauxosdever - yes. converted.
10:57:40 <geist> the kernel exports a full ELF file, all syscalls *must* originate from the library
10:57:43 <Ameisen> I'm not sure I'd call that C++
10:57:49 <Ameisen> it is really weird C with sometimes random C++
10:58:02 <variable> geist: how so ?
10:58:03 <CrystalMath> Ameisen: i'm aiming for simplicity, so should i just forget trying to generate this thing?
10:58:08 --- join: drakonis (~drakonis@unaffiliated/drakonis) joined #osdev
10:58:11 <variable> [10:57:18] <geist> the kernel exports a full ELF file, all syscalls *must* originate from the library -- o
10:58:15 <CrystalMath> but why, i just need a dumb repeat
10:58:28 <CrystalMath> of the same line with a different counter
10:58:42 <CrystalMath> i have some generated code
10:58:44 <CrystalMath> with awk
10:58:46 <CrystalMath> maybe i can awk this too
10:58:58 <Ameisen> The problem with simplicity is it sometimes causes your code to be less simple as a result.
10:59:08 <CrystalMath> i'm trying to balance that
10:59:10 <variable> Ameisen: ++
10:59:11 <CrystalMath> i don't think i need C++
10:59:11 <geist> variable: which part?
10:59:13 <variable> Ameisen: yes!
10:59:13 <Ameisen> more complexity can sometimes resolve a TON of code.
10:59:20 <CrystalMath> Ameisen: and really i came quite far with C
10:59:24 <variable> geist: I got it thence the "o"
10:59:30 <CrystalMath> it's mean of anyone to tell me to change my programming language
10:59:32 <mrvn> geist: I'm not sure I will enforce the *must* (which is basically just a boundary check on the return address). But syscalls may suddenly disappear and be just a function in my "vdso". Or change numbers or any other kind of incompatibility that the vdso masks.
10:59:32 <CrystalMath> i simply will not
10:59:40 <geist> mrvn: right
10:59:40 <CrystalMath> C all the way
10:59:43 <variable> anyways
10:59:49 <variable> back to debugging gdb
10:59:50 --- join: elevated (~elevated@unaffiliated/elevated) joined #osdev
10:59:54 <CrystalMath> i'm sticking with it to the end
10:59:56 <Ameisen> The problem is you are trying to do something that C++ was literally designed to do, and C was not
11:00:00 <variable> because gdb likes to crash on me
11:00:01 <variable> woo
11:00:02 <geist> we have a syscall generator app that generates both the stubs in user space and the corresponding kernel stub
11:00:10 <geist> that lets us actually per call marshall args as we see fit
11:00:21 <CrystalMath> Ameisen: i also have some generated code that is rather weird, like i collect all functions named "syscall_" to make system call tables
11:00:27 <geist> and generate multiple vdsos if we need to
11:00:30 <mrvn> geist: mashaling the args is the hardest part for me.
11:00:33 <Ameisen> geist - ever get a chance to tinker with streaming syscalls over a command buffer yet?
11:00:42 <geist> yah. it's much harder on x86. arm64 its almost trivial
11:00:44 <geist> Ameisen: nah
11:00:54 <CrystalMath> Ameisen: i will use awk
11:01:14 <mrvn> geist: e.g. a Directory entry array with variable length strings for the file names in it.
11:01:29 <AndrewBC> Trust that C++ has a design and standardized way to do just about every problem under the sun
11:01:42 --- join: pounce (~pounce@c-24-11-27-195.hsd1.ut.comcast.net) joined #osdev
11:01:54 <variable> AndrewBC: ++
11:01:57 <CrystalMath> AndrewBC: if i wanted to use something that already exists, i wouldn't be writing an OS
11:02:09 <variable> CrystalMath: lol
11:02:22 <AndrewBC> What kinda problem you got oh no man the runtime is the same you shouldn't push C you need to mainline C++ it's good for yeah ohhhh yeeeeah
11:02:33 <variable> CrystalMath: my normal take on that is "I want to be working on the thing I care about, but use standardized everything else"
11:02:38 <Ameisen> ah
11:02:40 <Ameisen> the templeos approach
11:02:43 <CrystalMath> variable: i want to torture myself in any way i can
11:02:44 <glauxosdever> CrystalMath: But you still use a C/C++ compiler, a bootloader, etc
11:02:53 <CrystalMath> variable: :P
11:02:58 <Ameisen> glauxosdever - and a computer
11:03:03 <glauxosdever> Right
11:03:14 <CrystalMath> the standard library is where i draw the line
11:03:16 <CrystalMath> that is my job
11:03:24 <variable> CrystalMath: that's also one of the reaosns I work on freebsd, and not my own stuff
11:03:25 --- quit: light2yellow (Quit: light2yellow)
11:03:28 <variable> care more about impact
11:03:35 <variable> and about learning things
11:03:37 <variable> :/
11:03:59 <CrystalMath> i work on ReactOS for the impact
11:04:04 <variable> ah
11:04:15 <variable> I should look at ReactOS again some time
11:04:19 <variable> tis been a while
11:04:28 <Ameisen> variable - you should use my vfs for freebsd
11:04:29 <glauxosdever> Don't. The FSF won't like you
11:04:30 --- quit: sixand (Remote host closed the connection)
11:04:31 <Ameisen> that gives namespaces!
11:04:32 <Ameisen> :D
11:04:37 <CrystalMath> tbh, i wanted to make my own programming language
11:04:39 <CrystalMath> for my OS
11:04:44 <glauxosdever> Cool
11:04:45 <variable> glauxosdever: I don't care much for the FSF
11:04:51 <CrystalMath> it would have been very type-unsafe
11:04:55 <CrystalMath> basically BCPL
11:04:58 <CrystalMath> with lots of inline asm
11:04:59 <variable> they do some good stuff, but have also done a lot to hurt the open source / free software community
11:05:02 <glauxosdever> Not cool
11:05:16 <variable> [11:04:07] <Ameisen> variable - you should use my vfs for freebsd --> why?
11:05:19 <variable> how does it differ?
11:05:31 <Ameisen> because it's fun
11:05:38 <Ameisen> it just adds namespace support
11:05:41 <AndrewBC> Doing your own language along with a new OS is the perfect time to do it
11:05:45 <Ameisen> so you can have, like, system:/foo/bar
11:05:46 <glauxosdever> variable: GNU software is of generally bad quality. You've heard sortie whining, right?
11:05:52 <Ameisen> and map the 'system' namespace to a path
11:05:55 <variable> glauxosdever: not yet
11:05:57 <CrystalMath> my favorite programming languagei s perl
11:05:59 <CrystalMath> *is
11:06:08 <CrystalMath> i'd love to port perl to my OS
11:06:09 <variable> glauxosdever: though my favorite is that GNU's true(1) implementation has a bug
11:06:24 <glauxosdever> variable: That's fun
11:06:31 <AndrewBC> how?
11:06:41 <AndrewBC> How does that happen!?
11:06:41 <glauxosdever> Not just a bug. It's also non-compliant at all.
11:06:43 <variable> /usr/bin/true --help 2>&-
11:06:51 <variable> will return 1
11:07:07 <variable> :-)
11:07:28 <CrystalMath> i see C as the perl for system software
11:07:38 <CrystalMath> that's all
11:07:41 <CrystalMath> C++ is very different
11:07:48 <CrystalMath> it has different ideas in it
11:07:48 <variable> CrystalMath: perl is a utility for turning serial port line noise into executable code
11:08:10 <geist> TECO
11:08:16 <CrystalMath> variable: i really dislike that sentence :(
11:08:20 <CrystalMath> perl is beautiful
11:08:22 <glauxosdever> geist: What's this again?
11:08:28 <geist> https://en.wikipedia.org/wiki/TECO_(text_editor)#Example_1
11:08:28 <bslsk05> ​en.wikipedia.org: TECO (text editor) - Wikipedia
11:08:29 <AndrewBC> write once read never?
11:08:41 <variable> CrystalMath: my favorite star trek character is jar jar binx
11:09:03 <CrystalMath> there's nothing wrong with perl
11:09:08 <CrystalMath> i can write anything in perl
11:09:12 <CrystalMath> except an OS i suppose
11:09:21 <variable> you could write an OS in perl
11:09:22 <CrystalMath> except a bootable kernel
11:09:25 <CrystalMath> to be exact
11:09:31 <variable> you'd just need a small amount of glue
11:09:31 <Ameisen> write a kernel in brainfuck
11:09:41 <CrystalMath> there's NOTHING wrong with perl......
11:09:49 <variable> Ameisen: doesn't seem hard https://github.com/arthaud/c2bf
11:09:50 <bslsk05> ​arthaud/c2bf - Compiler from C to brainfuck (3 forks/15 watchers)
11:09:53 <CrystalMath> once you earn its insides
11:09:57 <CrystalMath> everything becomes clear
11:10:00 --- quit: glauxosdever (Quit: leaving)
11:10:17 <Ameisen> only works on a subset of C
11:10:20 <CrystalMath> so maybe undef, 0, '', and '0'
11:10:23 <CrystalMath> are all false
11:10:30 <CrystalMath> but is that so hard to learn?
11:11:04 <CrystalMath> besides, i think that it's really cool that numbers are strings
11:11:07 --- join: Pseudonym73 (~Pseudonym@124-168-223-127.dyn.iinet.net.au) joined #osdev
11:11:08 <CrystalMath> and strings are sometimes numbers
11:13:51 <variable> strings are ints and ints are floats and floats are bytes
11:13:58 <variable> so bytes are strings
11:14:01 <CrystalMath> yes
11:14:12 <variable> this is why you should just run Scala
11:14:27 <CrystalMath> or perl
11:14:32 <CrystalMath> perl is great for functional programming
11:14:56 --- join: light2yellow (~l2y@217.30.64.102) joined #osdev
11:14:57 --- join: t3hn3rd (~Logic_Bom@cpc91224-cmbg18-2-0-cust219.5-4.cable.virginm.net) joined #osdev
11:15:04 <t3hn3rd> Evening all \o_
11:15:15 <CrystalMath> perl can do OOP too, perl can do everything
11:15:25 <CrystalMath> if you just learn how
11:15:32 <AndrewBC> Do you ever read perl?
11:15:34 <CrystalMath> i don't want to live in a dumbed-down world
11:15:36 <CrystalMath> AndrewBC: yes
11:15:49 <geist> this is starting to get weird
11:15:56 --- quit: Pseudonym73 (Ping timeout: 260 seconds)
11:16:02 <CrystalMath> AndrewBC: i can open perl code i wrote a long time ago
11:16:06 <CrystalMath> and i still understand everything
11:16:18 <drakonis> variable, are you a constant or a variable today?
11:16:31 <variable> drakonis: mutable constant
11:16:37 <drakonis> hmm
11:16:39 <drakonis> well played
11:16:42 <CrystalMath> if (lc(getch()) eq 'y') { ...
11:16:45 <geist> oh interesting, apparently TECO was the original emacs implementation language
11:16:49 <geist> didn't make that connection
11:16:53 <CrystalMath> i stopped at this line thinking what lc is
11:16:59 <CrystalMath> getch() is ncurses
11:17:03 <CrystalMath> then i realized
11:17:06 <CrystalMath> "ah, lowercase"
11:17:10 <geist> ah 'editor macros' for the TECO language
11:17:12 <CrystalMath> that's the only confusing part
11:17:14 <CrystalMath> of this code
11:17:22 <CrystalMath> and it has 2,000 lines (and is not finished)
11:17:23 * graff reads some anti FSF marxist / coporatist drivel
11:17:24 <CrystalMath> it's a game
11:17:31 * graff leaves
11:17:43 --- part: graff left #osdev
11:18:01 <AndrewBC> anti-FSF that is also marxist? Fair do's. Let the marxists fight the marxists
11:18:14 <CrystalMath> i just ignore the anti-FSF stuff
11:18:15 --- join: baschdel (~baschdel@2a01:5c0:10:3d11:bca2:7797:3876:4668) joined #osdev
11:18:16 <geist> wait, where they implying that that's what we're spewing?
11:18:28 <CrystalMath> i love the FSF
11:18:32 <CrystalMath> i hate corporations
11:18:38 <CrystalMath> and i hate money too, to some extent
11:18:42 <CrystalMath> :P
11:18:46 <AndrewBC> It's like anything I twitter about makes me a nazi
11:18:57 <geist> yeah, stay away from twitter
11:19:01 <variable> I agtee
11:19:03 --- quit: light2yellow (Client Quit)
11:19:05 <variable> stay away from twitter
11:19:09 <t3hn3rd> Perl is one language I've actually never had any run-ins with
11:19:14 <variable> should totally never ever tweet
11:19:20 <variable> I should tell my employer that
11:19:27 <CrystalMath> i'm a communist but i'm not childish about it
11:19:29 <variable> (I work for twitter)
11:19:48 <CrystalMath> also perhaps i'm more anarcho-communist
11:19:55 <drakonis> idgi
11:20:01 <variable> idgi ?
11:20:18 <geist> well, whatever it is lets not overrun the channel with politics or whatnot
11:20:29 <AndrewBC> variable: tell Jack I am a human bean goddammit
11:20:30 <t3hn3rd> idgi = I don't get it
11:20:39 <variable> o
11:20:45 <variable> AndrewBC: who's jack?
11:20:47 <drakonis> why is it anti fsf marxist / corporatist drivel
11:20:50 <drakonis> this makes no sense
11:20:58 <AndrewBC> variable: ceo of twitter
11:21:00 <drakonis> Ameisen, fork freebsd and plug the vfs into it
11:21:02 <variable> never heard of em
11:21:10 <drakonis> otherwise you won't reasonably make that a reality
11:21:49 <geist> drakonis: <shrug>
11:22:48 <Ameisen> drakonis - I may. Need a BIT more work to be fully usable everywhere
11:22:58 <Ameisen> mainly I need to add the ability to _easily_ change namespaces
11:23:07 <Ameisen> I already fixed the libc issues
11:23:13 <t3hn3rd> IRC needs a defrag command.
11:23:24 <drakonis> i already have no love for the community there
11:23:55 <Ameisen> people throw around the word 'marxist' a lot in ways that don't make sense.
11:24:02 <drakonis> yes they do
11:24:12 <geist> t3hn3rd: yeah today is pretty bad
11:24:19 <Ameisen> Karl Marx would be incredibly confused.
11:24:27 <Ameisen> Engels too
11:24:34 <drakonis> do you have the source for the vfs?
11:24:43 <Ameisen> yeah, it's on my backup drive :|
11:24:51 <CrystalMath> if i use more initializers than required
11:24:53 <klys> engels: the father of the modern-day oxymoron. thesis. antithesis. synthesis.
11:24:54 <AndrewBC> gosh darned word fascists, you can't just use word for "bad"
11:25:06 <CrystalMath> is that an error?
11:25:06 <klys> erm, hegel, not engels.
11:25:30 <drakonis> :|
11:25:42 <drakonis> fork freebsd and let extreme changes trickle in
11:25:56 <geist> XTREME BSD
11:26:02 <drakonis> :agreed:
11:26:05 <Ameisen> the problem is namespaces are sort of... not really UNIXy
11:26:09 <Ameisen> they're more AMIGAy
11:26:12 <Ameisen> or Windowsy
11:26:16 <drakonis> to be fair
11:26:19 <drakonis> that's irrelevant today
11:26:23 <t3hn3rd> geist: Need to train a NN to recognise and link IRC messages to conversations and then use it to make a defrag plugin for HexChat. :P
11:26:31 <klys> are you guys actually talking about forking a modern version of freebsd
11:26:39 <klys> lewd
11:26:41 <drakonis> yes
11:26:54 <drakonis> linux has namespaces and its sort of cool
11:26:55 <geist> t3hn3rd: yeah most attempts i've seen to have threaded irc like chat rooms doesnt work for a bunch of other reasons
11:27:00 <geist> i dunno, it's jus thard
11:27:06 <Ameisen> time for you to try
11:27:09 <drakonis> gave it a lot of weight in the "someone else's computer"
11:27:12 --- join: Asu (~sdelang@AMarseille-658-1-22-22.w86-203.abo.wanadoo.fr) joined #osdev
11:27:14 --- quit: baschdel (Ping timeout: 256 seconds)
11:27:17 <drakonis> world
11:27:20 <graphitemaster> no one understands the context
11:27:23 <graphitemaster> the problem with threaded irc is
11:27:33 <CrystalMath> Ameisen: meh, you know what i'll do? i'll just give up on static initializers... everyone can just initialize manually at runtime, that's how it is in windows
11:27:48 --- join: hmmmm (~sdfgsf@pool-72-79-161-213.sctnpa.east.verizon.net) joined #osdev
11:28:03 <geist> once you have 3 or 4 active threads running, even if they're separated somehow, slack style, it just forces you to context switch in a more clumsy way and you miss stuff
11:28:12 <geist> though i suppose for an individual threads if you want to ignroe the others it kind of works
11:28:35 <drakonis> how does threaded irc work anyways?
11:28:43 <t3hn3rd> Aha, maybe just train the NN to recognise political chat and discard.
11:28:58 <drakonis> sounds clunky
11:29:14 <AndrewBC> someone should make a thread pinning thing for each "processor"
11:29:25 <geist> we use a threaded chat thing internally at work, and it doesn't personally work well for me, because then you just end up with 20 different threads, and it forces me to context switch them manually
11:29:55 <geist> it seems to encourage more threads, which while may be healthy for the thread itself, makes it harder to follow along
11:30:02 <AndrewBC> and just fix everything to work with green threads multiplexed on threads and there bada bing bang boom
11:30:14 <Ameisen> hmm. It IS generating the compiler
11:30:17 <Ameisen> at some point it's deleting it for some reason
11:30:25 <t3hn3rd> What if instead of having a distinct window for each thread it just highlighted the message with an identifier of some form
11:30:30 <drakonis> ^^
11:30:50 <drakonis> someone can join a thread
11:30:52 <t3hn3rd> So instead of having to read political nonsense, you can continue to read OSDev stuff
11:30:53 <drakonis> willingly
11:31:18 <t3hn3rd> just by looking at the identifier/color/symbol/thing
11:31:48 --- join: hppavilion[1] (~dosgmowdo@160-7-174-206.gci.net) joined #osdev
11:32:23 --- join: glauxosdever (~alex@ppp-94-66-42-2.home.otenet.gr) joined #osdev
11:34:01 <drakonis> that'd be nice in practice
11:34:07 <drakonis> now, as an implementation detail
11:34:17 <t3hn3rd> Very true; Having never trained a NN though, I have no idea how realistic it is to have one identify what messages belong to a given conversation.
11:34:18 <drakonis> have an main window that fuses all threads into an unified view
11:34:28 <drakonis> and separate windows for each thread
11:35:18 --- quit: zeus1 (Ping timeout: 265 seconds)
11:36:04 <klys> hierarchy of threads.
11:36:12 <drakonis> prob
11:36:37 <t3hn3rd> Aha, that'd be pretty cool, new threads spawning off of old ones, would make it easy to retrace your train of thought.
11:36:46 <geist> so i've been feeling fairly retro lately with this 386 i've been playing with
11:36:59 <geist> thinking of sittng down and busting out a 286 protected mode system for lulz
11:37:13 <geist> and even use the TSS for task switching
11:37:19 <klys> geist, you got linux on it? perhaps you could upload an image file?
11:37:37 <geist> i do have linux on it, though it's pretty much swapping hard by default because 4MB max
11:37:49 <klys> mine has 16 MiB.
11:38:03 <klys> and a Zip 750
11:38:09 <geist> yah i'm thinking of cobbling together a faster 386, maybe a am386DX-40 with more ram
11:38:18 <geist> this one is a 386sx-16, 4MB, no cache
11:38:26 <geist> so its pretty mucha bout as slow as it gets
11:38:55 <geist> interestingly i was digging through old benchmarks and remembered that 386 is no faster than an equivalent 286. so in general with 16bit code a 386sx runs roughtly the same speed
11:39:27 <geist> and as far as i can tell the 32bit bus on a 386dx only really kicks in when you're in 32bit mode, for obvious reasons
11:39:39 <klys> well, 286 is 16-bit so it uses elks if anything linux-related
11:39:42 --- join: BrainFog (~BrainFog@cpc89010-gill18-2-0-cust1263.20-1.cable.virginm.net) joined #osdev
11:39:47 <BrainFog> hey guys
11:39:52 <klys> h-hi
11:40:03 <BrainFog> so, did'ya hear about Donald Trump
11:40:07 <BrainFog> jk
11:40:20 <BrainFog> My friend said what happened
11:40:35 <geist> klys: you fell fori t
11:40:51 <klys> haha not from anyone here
11:40:57 --- join: ALowther (~alowther@68.200.236.134) joined #osdev
11:41:43 --- quit: Asu (Remote host closed the connection)
11:41:44 --- join: zeus1 (~zeus@197.239.6.113) joined #osdev
11:42:00 --- join: m_t (~m_t@p5DDA0D02.dip0.t-ipconnect.de) joined #osdev
11:42:42 <klys> h-him?
11:43:21 <geist> hmm, how is the zip drive attached?
11:43:25 <klys> ide
11:43:25 <geist> ide probably
11:43:39 <t3hn3rd> scsi
11:43:51 <klys> scsi zip is diicult to find
11:43:57 --- quit: MarchHare (Ping timeout: 240 seconds)
11:43:57 <geist> i had one up until fairly recently, i think i still do somewhere
11:44:10 <t3hn3rd> :P I used one back in the day
11:44:12 <geist> it has the nice property of being easy to plug into old Apple 2 GS
11:44:21 <klys> t3hn3rd, same
11:44:24 <geist> actually a nice way to transfer bits between pc and mac/apple2 world
11:44:27 <geist> FAT formatted zip disk
11:45:14 <t3hn3rd> To be fair, I was quite young, was helping a family member at their business with doing backups, and at the time they used ZIP drives.
11:46:10 <geist> fun thing i noticed when running a suite of benchmarking apps and whatnot yesterday: emm386 leaves the cpu in v86 mode
11:46:30 <klys> emm386 usually installs vcpi
11:46:38 <geist> kind of makes sense. i suspect that it actually sets up some page tables to map stuff in the 640k hole and then drops the system back into v86
11:46:48 <geist> i was always wondering how it makes the expanded memory hole appear
11:47:55 <geist> or for that matter any upper memory blocks, since the 'raw' memory map of this particular 386 eappears to be 0-640K, 1MB-(4MB+384K)
11:48:11 <geist> ie, there's no ram backing anything in the UMB area
11:49:15 <geist> so i do wonder how 32bit dos extenders work with ems/xms. to keep from trashing what is already there i assume there's some sort of allocate and handoff
11:49:26 <geist> and then the protected mode app promises not to trash the setup that was already there
11:49:39 <klys> yeah, there's a thing called cwsdpmi with a simpler version called pmode
11:49:51 <klys> and you can run pmodetsr
11:50:01 <klys> and then fire up your djgpp program
11:50:02 * geist nods
11:50:13 <geist> yah this old kludge after kludge is fascinating
11:50:39 --- join: ACE_Recliner (~ACE_Recli@c-73-18-225-48.hsd1.mi.comcast.net) joined #osdev
11:50:39 <klys> alternatively emx uses vcpi instead of dpmi
11:51:02 <klys> except emx is gcc 2.7, where djgpp is gcc 7.3
11:51:27 * geist nods
11:51:50 <geist> i need to sit down and read the ems/xms spec and really grok it
11:52:05 <geist> for some reason there has always been a hole in my brain ready to be filled by the magical nonsense in there
11:52:09 <klys> vcpi is much better. go32 is a bit complex and not exactly gpl-licensed.
11:53:14 <klys> geist, my links might be relevant for you at http://show.ing.me/
11:54:00 <geist> oh very. also how does that url work?
11:54:12 <geist> is that your url, or is it some sort of time multiplexed thing?
11:54:35 <klys> it's a python script hooked up to a database
11:54:50 <klys> it's just my bookmarks for now
11:55:14 <geist> so that implies that EMS was using paging to map stuff into the UMB window, and thus should be taking a slight performance hit
11:55:25 <geist> presumably it identity maps the rest of 0-640k
11:55:41 <geist> emm386 specifically
11:55:54 <klys> pmode is a slight performance hit...however...considering the alternative.
11:56:22 <geist> oh sure, but iin this case i'm talking about pure 16 bit 'real mode' stuff
11:56:29 <geist> which is now running in v86 with paging enabled behind it
11:56:39 <geist> because of emm386 using it to map in UMB blocks
11:57:13 <klys> yeah v86 mode is a bit of a performance hit on the 80386 speicifically
11:57:30 <geist> right. double so if you dont have any cache (like this machine)
11:57:38 <geist> though the TLB is not super tiny
11:57:43 <geist> it has a fair number of entries
11:57:56 <geist> also fun fact that i noticed after reading the 386 manual: it has no invlpg
11:58:05 --- join: Asu (~sdelang@AMarseille-658-1-22-22.w86-203.abo.wanadoo.fr) joined #osdev
11:58:16 <geist> so if you unmap/etc something you pretty much gotta dump the entire TLB via a cr3 reload
11:58:22 <geist> invlpg was added in 486
11:59:55 <klys> instructions added: 386: pretty much everything 32-bit. 486: cmpxchg (and invlpg) (drops loadall out). 586: rdtsc, flat/unreal mode.
12:00:31 <mrvn> do you want to really support anything that doesn't have cmov?
12:00:37 <geist> ah figured unreal mode would have been available from 386 on?
12:00:58 <klys> I have never used cmov. and retro is one thing, os support is another
12:01:22 <klys> well it might be to some extent, just my code seems to require at least a 586
12:01:25 <geist> yah usually my x86 oses bottom out with pentium, since rdtsc/invlpg/cpuid is assumed to just be there
12:02:46 <geist> did you see what i wrote the other day about looking at the low evel 287/387 interface? it's naaaaasty
12:02:52 --- join: baschdel (~baschdel@2a01:5c0:10:3d11:bca2:7797:3876:4668) joined #osdev
12:02:53 <mrvn> klys: your compiler has used it tons of time
12:02:55 <mrvn> times
12:03:12 <klys> my compiler is emx...?
12:03:14 --- join: freakazoid0223_ (~IceChat9@pool-108-52-244-197.phlapa.fios.verizon.net) joined #osdev
12:03:21 <geist> yah i seem to remember cmov being useful enough that it actually ended up being a non negligable performance tweak to compile with it
12:03:45 --- join: NaNkeen (~nankeen@115.164.81.83) joined #osdev
12:03:47 <geist> now of course it wouldn't matter at all, since it could easily be a macro op detected by the decoder
12:03:52 <mrvn> geist: exactly. And any x86 chip you buy new has it.
12:04:32 <geist> but there was some consternation in the late 90s and early 2000s when some linux distros switched to i686 as their default
12:04:41 <geist> or at least you could get the i386 or the i686 version of distro
12:04:56 --- quit: freakazoid0223 (Ping timeout: 260 seconds)
12:05:02 <mrvn> geist: Debian switched to i586+cmov a while back.
12:05:03 <klys> geist, if you're looking or 386-compatible kernels, there's kind of an enclave of them here: http://www.delorie.com/pub/djgpp/current/v2tk/00_index.txt
12:05:16 <mrvn> geist: after glibc dropped support for anything less
12:07:56 * geist nods
12:07:57 --- quit: NaNkeen (Ping timeout: 240 seconds)
12:10:51 --- quit: ALowther (Remote host closed the connection)
12:11:51 --- join: Asu` (~sdelang@92.184.97.3) joined #osdev
12:11:56 --- quit: Asu (Ping timeout: 260 seconds)
12:12:13 --- quit: drakonis (Read error: Connection reset by peer)
12:12:44 --- join: Pseudonym73 (~Pseudonym@124-168-223-127.dyn.iinet.net.au) joined #osdev
12:12:58 <mrvn> Worst c++ code ever: https://gist.github.com/mrvn/9ab95e4fa4cb00cf53d62a9e8d712733
12:13:00 <bslsk05> ​gist.github.com: worst.cc · GitHub
12:13:19 <mrvn> Reading other peoples source I sometimes despair.
12:14:30 --- quit: `Guest00000 (Ping timeout: 255 seconds)
12:14:58 --- join: drakonis (~drakonis@unaffiliated/drakonis) joined #osdev
12:15:18 --- join: `Guest00000 (~user@37.113.172.28) joined #osdev
12:16:57 --- quit: Pseudonym73 (Ping timeout: 240 seconds)
12:18:09 --- quit: unixpickle (Quit: My MacBook has gone to sleep. ZZZzzz…)
12:19:19 --- join: dbittman (~dbittman@2601:647:ca00:1651:b26e:bfff:fe31:5ba2) joined #osdev
12:24:05 <FreeFull> mrvn: I've seen much worse
12:24:23 <FreeFull> mrvn: But yeah, that person never heard of the main use of <<
12:26:46 <CrystalMath> i decided to try and hack the c preprocessor
12:26:59 <CrystalMath> to do this for counts up to 10,000
12:27:09 <CrystalMath> but the number has to be given as a decimal number
12:27:18 --- quit: AverageJ0e (Ping timeout: 256 seconds)
12:27:33 <CrystalMath> it looks absolutely terrible :P
12:27:47 <CrystalMath> maybe i can make it for hex and octal too
12:27:54 <CrystalMath> yeah
12:27:56 <CrystalMath> i can
12:28:01 <CrystalMath> i have my counter which is separate digits
12:28:08 <CrystalMath> but i can have several counters
12:28:12 <CrystalMath> 3 specifically
12:28:25 <CrystalMath> then loop until i get to the count in either dec, 0xhex or 0oct
12:28:34 <CrystalMath> :)
12:28:37 <CrystalMath> it can work
12:29:13 <mrvn> CrystalMath: In c++ I simply do: for (size_t i = 0; i < size; ++i) { ... }
12:29:23 <CrystalMath> well that works too
12:29:26 <mrvn> or iter from begin() to end()
12:29:26 <CrystalMath> but that's not compile-time
12:29:34 <CrystalMath> i need to repeat a macro
12:29:35 <mrvn> CrystalMath: yes it is: const expression
12:29:53 <CrystalMath> i hmm....
12:29:56 <CrystalMath> well :P
12:30:00 <CrystalMath> this will work
12:30:03 <CrystalMath> in C
12:30:15 <mrvn> CrystalMath: That's why you want at least c++15, because they added const expression for loops there
12:30:21 <CrystalMath> please advocate C++ to those who aren't deadset on C
12:30:26 <CrystalMath> or those who haven't decided yet
12:30:35 <FreeFull> I heard D has really good const expressions
12:30:48 <CrystalMath> to those who have already decided on C, it's not helping
12:30:57 <FreeFull> I never wrote much D though
12:31:24 <FreeFull> Rust's const fn is currently rather basic
12:31:32 <FreeFull> But it has good macros
12:31:34 <Ameisen> C++14
12:31:36 <Ameisen> not 15
12:31:43 --- quit: fujisan (Quit: Connection closed for inactivity)
12:32:37 <mrvn> Ameisen: I stand corrected.
12:34:06 --- quit: elevated (Ping timeout: 260 seconds)
12:39:46 --- quit: Asu` (Remote host closed the connection)
12:40:12 --- join: Asu` (~sdelang@92.184.97.3) joined #osdev
12:40:53 <Ameisen> hrmm
12:41:01 <Ameisen> the GCC build script is stopping after GCC, but before gdb
12:41:02 <Ameisen> but there's no errors
12:42:57 --- quit: hppavilion[1] (Remote host closed the connection)
12:43:19 --- quit: zeus1 (Ping timeout: 264 seconds)
12:46:56 --- quit: pounce (Ping timeout: 260 seconds)
12:49:50 --- join: Barrett (~barrett@unaffiliated/barrett) joined #osdev
12:52:33 --- join: pie__ (~pie_@unaffiliated/pie-/x-0787662) joined #osdev
12:52:55 --- quit: pie_ (Ping timeout: 248 seconds)
12:54:19 --- quit: Asu` (Ping timeout: 240 seconds)
12:56:05 --- join: zeus1 (~zeus@197.239.32.34) joined #osdev
13:00:14 --- join: Asu` (~sdelang@92.184.101.55) joined #osdev
13:05:37 <CrystalMath> attempting to hack the C preprocessor is giving me a heart attack
13:05:51 <CrystalMath> perhaps i don't know enough about it
13:06:02 <Barrett> that's the original purpose of the preprocessor
13:06:12 <Barrett> giving people heart attacks
13:07:28 <CrystalMath> i wrote a macro called EVAL that will just do what's inside
13:07:33 <CrystalMath> #define EVAL(...) __VA_ARGS__
13:07:46 <CrystalMath> perhaps that isn't doing enough
13:11:27 --- join: lldd_ (~atrapado@unaffiliated/atrapado) joined #osdev
13:11:41 <CrystalMath> yay it worked
13:11:50 <CrystalMath> now to add a fifth digit
13:12:03 <CrystalMath> and i will support up to 100,000
13:13:14 --- join: Pseudonym73 (~Pseudonym@124-168-223-127.dyn.iinet.net.au) joined #osdev
13:15:10 --- join: pounce (~pounce@c-24-11-27-195.hsd1.ut.comcast.net) joined #osdev
13:15:48 --- quit: zwerty (Remote host closed the connection)
13:16:26 --- quit: Asu` (Ping timeout: 268 seconds)
13:16:57 <mrvn> CrystalMath: can't you write one for N digits?
13:17:10 --- join: Asu` (~sdelang@AMarseille-658-1-22-22.w86-203.abo.wanadoo.fr) joined #osdev
13:17:27 --- quit: Pseudonym73 (Ping timeout: 248 seconds)
13:18:44 <CrystalMath> mrvn: absolutely not :P
13:19:28 <CrystalMath> i have to teach the C preprocessor
13:19:30 <CrystalMath> to add numbers
13:19:36 <CrystalMath> so there's no way it can work for N digits
13:19:40 <CrystalMath> but then again, it doesn't need to
13:20:03 <CrystalMath> it's like making a full adder circuit :P
13:21:46 --- quit: lldd_ (Quit: Leaving)
13:21:53 --- join: ALowther (~alowther@68.200.236.134) joined #osdev
13:22:47 --- quit: doug16k (Ping timeout: 248 seconds)
13:23:41 --- join: unixpickle (~alex@c-24-5-86-101.hsd1.ca.comcast.net) joined #osdev
13:26:21 --- quit: ALowther (Ping timeout: 256 seconds)
13:26:53 --- join: jakogut_ (~jakogut@162.251.69.147) joined #osdev
13:29:24 --- join: MrOnlineCoder (~MrOnlineC@195.225.231.219) joined #osdev
13:31:44 --- quit: MrOnlineCoder (Read error: Connection reset by peer)
13:40:09 --- quit: lachlan_s (Quit: Connection closed for inactivity)
13:53:49 <pounce> I'm not sure if language updates that break my OS are due to a bad language choice or bad programming practices
13:53:51 <pounce> probably both
13:55:02 --- join: Shamar (~giacomote@unaffiliated/giacomotesio) joined #osdev
13:57:52 --- quit: mra90 (Quit: Leaving)
13:58:44 --- quit: Asu` (Remote host closed the connection)
13:59:42 --- quit: glauxosdever (Quit: leaving)
14:02:19 --- join: Asu (~sdelang@AMarseille-658-1-22-22.w86-203.abo.wanadoo.fr) joined #osdev
14:10:10 --- quit: Barrett (Read error: Connection reset by peer)
14:10:27 --- join: malpas (~aleamb@81.61.178.198.dyn.user.ono.com) joined #osdev
14:10:50 --- nick: malpas -> Guest49769
14:10:51 --- quit: m_t (Quit: Leaving)
14:12:03 --- join: aleamb__ (~aleamb@81.61.178.198.dyn.user.ono.com) joined #osdev
14:13:59 --- quit: aleamb (Ping timeout: 248 seconds)
14:15:27 --- quit: Guest49769 (Ping timeout: 240 seconds)
14:16:11 --- quit: macdonag (Quit: macdonag)
14:28:27 --- quit: andrei-n (Ping timeout: 240 seconds)
14:29:52 --- join: AverageJ0e (~joe@ip98-167-200-207.ph.ph.cox.net) joined #osdev
14:29:54 --- quit: pounce (Quit: WeeChat 2.1)
14:38:19 --- quit: aalm (Ping timeout: 240 seconds)
14:45:34 --- quit: baschdel (Ping timeout: 256 seconds)
14:45:35 --- quit: Shamar (Quit: Lost terminal)
14:45:40 --- quit: aleamb__ (Quit: Leaving)
14:46:56 --- quit: attah (Quit: Leaving)
14:56:22 --- quit: xenos1984 (Quit: Leaving.)
15:01:20 --- quit: kimundi (Read error: Connection reset by peer)
15:01:31 --- join: kimundi (~Kimundi@i577A9FC2.versanet.de) joined #osdev
15:04:56 <mrvn> Our galaxy is too small, only 12.5 stars per person. Get one while they last.
15:05:27 --- quit: mavhq (Read error: Connection reset by peer)
15:06:14 --- quit: rain1 (Remote host closed the connection)
15:06:27 --- quit: Asu (Ping timeout: 240 seconds)
15:06:43 --- join: mavhq (~quassel@cpc77319-basf12-2-0-cust433.12-3.cable.virginm.net) joined #osdev
15:08:54 <lkurusa> just as i was praising linux mint & cinnamon earlier today, cinnamon just crashed on me
15:09:06 <lkurusa> wow, jinxing things is real.
15:09:22 <_mjg_> more like confirmation bias
15:14:50 --- join: Pseudonym73 (~Pseudonym@124-168-223-127.dyn.iinet.net.au) joined #osdev
15:16:47 --- quit: gattuso (Remote host closed the connection)
15:17:48 --- join: gattuso (~gattuso@pompel.me) joined #osdev
15:19:41 --- quit: Pseudonym73 (Ping timeout: 256 seconds)
15:24:47 --- join: godel (~gonzalo@190.192.95.122) joined #osdev
15:25:03 --- quit: Darksecond (Read error: Connection reset by peer)
15:28:47 --- join: Darksecond (~darksecon@a82-94-53-70.adsl.xs4all.nl) joined #osdev
15:34:01 --- join: Asu (~sdelang@92.184.101.177) joined #osdev
15:34:19 --- quit: pisculichi (Changing host)
15:34:19 --- join: pisculichi (pisculichi@unaffiliated/pisculichi) joined #osdev
15:35:15 --- join: gamozo (~gamozo@96.74.23.209) joined #osdev
15:35:37 --- join: _sfiguser (~sfigguser@95.141.40.109) joined #osdev
15:35:54 <gamozo> Woo, benchmarks for my new VMM/PMM are in, I can lazily allocate 1.5 GiB/sec, zeroing it in
15:37:47 <mrvn> That's rather slow if it's lazy. I can allocate 100000000000 GiB in on syscall.
15:38:37 <mrvn> Do you mean you can fault + bzero() 1.5GiB/s of lazy allocated memory?
15:38:40 <booyah> gamozo: "lazy" it doesn't mean what you think it does
15:39:16 <booyah> anyway why you zero that memory?
15:39:25 <gamozo> mrvn: yeah
15:39:36 <mrvn> booyah: to prevent information leak from the last process that used that page
15:39:42 <gamozo> booyah: so I can see how quickly I can fault it in
15:40:28 <mrvn> gamozo: do you zero out pages in the idle task?
15:41:23 <gamozo> in this case the pages are actually faulted in not zeroed, but I'm explicitely bzeroing the allocation I get back
15:41:54 <gamozo> so I reserve 8 GiB of ram as fault-in-as-RW-uninitialized, then I bzero that reservation
15:42:23 <mrvn> gamozo: how much faster if you only write a byte every 4k?
15:42:40 <booyah> how do you zero it actually?
15:42:55 <gamozo> mrvn: doing that literally right now :P
15:43:00 <booyah> like, normal CPU writes to memory, or some DMA?
15:43:40 <mrvn> booyah: usespace usualy doesn't do DMA
15:44:00 <booyah> mrvn: isn't kernel clearing it?
15:44:23 <gamozo> mrvn: about 5% slower, seems like all the CPU time is in the paging and such
15:44:27 <mrvn> booyah: no. He is calling bzero() in user space to trigger the kernel to map the page.
15:44:29 <gamozo> err 5% faster*
15:45:00 <mrvn> gamozo: yeah. a syscall and page table manipulations take forever.
15:45:01 <gamozo> comes out to about 420k page faults/second being filled
15:45:08 <gamozo> which I'm very happy with
15:45:08 <booyah> mrvn: wouldn't kernel keep pool of zero'ed pages? and zero them by dma?
15:45:23 <mrvn> booyah: the point isn't the zeroing but the faulting
15:45:33 --- quit: Asu (Quit: Konversation terminated!)
15:45:42 <booyah> ok. though normally systems do it that way?
15:45:46 <gamozo> Hmm, I want to test this on a real box that isn't 1.3 GHz :P
15:45:53 <gamozo> probably >1M page faults/second on a nromal machine
15:46:00 <mrvn> booyah: yes, your kernel should zero out or randomize pages before mapping them.
15:46:01 --- quit: JusticeEX (Ping timeout: 260 seconds)
15:46:36 <mrvn> gamozo: try using 64KB (virtual) page size or 1M.
15:46:44 <gamozo> in my case this kernel is not designed for multi-user, or userspace at all. so all allocations I allow to return uninitialized. Since only Rust is allowed in the kernel and rust requires initialization before use this is safe
15:46:49 <gamozo> unless you explicitely do unsafe code
15:47:23 <mrvn> gamozo: till you write a network client.
15:47:23 <gamozo> mrvn: should be about the same performance of pages/second, until I can no longer find 2 MiB pages
15:47:40 <mrvn> gamozo: yeah, so 512 times faster.
15:47:45 <gamozo> yeah, per byte
15:48:07 <gamozo> it's a lockless page table design which is the whole point of this kernel
15:48:27 <gamozo> so I can do this full rate on all cores without issue (no shared memory, no need for TLB shootdowns)
15:48:29 <mrvn> gamozo: My thought is that above a certain process memory size and if it's not too fragmented then it makes no sense to map 4k pages anymore.
15:49:10 <gamozo> yeah. Lots of my work is with VMs which are 32+ GiB of memory, and this memory is sparsly used so 4 KiB is ideal from that perspective
15:49:15 <gamozo> but large linear allocations I use large pages for
15:51:07 --- join: aalm (~aalm@37-219-119-194.nat.bb.dnainternet.fi) joined #osdev
15:52:09 <mrvn> gamozo: one could probably do some pretty tricks mixing 4k and 2M pages so the threads working set uses both TLBs equally.
15:54:26 <gamozo> yeah, I really want to do that but I'm concerned about code bloat
15:54:37 <gamozo> just lots of complexity for probably 1% more performance in reality
15:54:47 <gamozo> im sure in theory it would be a huge perf gain with a specific test
15:57:40 <gamozo> whoops I'm an idiot, I had page zeroing enabled for debug internally
15:58:29 <gamozo> now it's about 2 GiB/sec, or 2520 cycles per page fault
15:59:20 --- join: bender (uid106562@gateway/web/irccloud.com/x-peasklggddlwohzz) joined #osdev
15:59:59 <gamozo> sounds fast to me but it's hard to tell without a reference point
16:00:25 <mrvn> try linux
16:05:46 --- join: NaNkeen (~nankeen@115.164.81.83) joined #osdev
16:10:19 --- quit: NaNkeen (Ping timeout: 240 seconds)
16:12:16 --- join: ALowther (~alowther@68.200.236.134) joined #osdev
16:17:07 --- quit: ALowther (Ping timeout: 268 seconds)
16:18:21 --- part: epony left #osdev
16:32:55 --- join: immibis (~chatzilla@222-155-160-32-fibre.bb.spark.co.nz) joined #osdev
16:47:03 --- join: Kimundi_ (~Kimundi@i577A94E0.versanet.de) joined #osdev
16:49:55 --- join: ALowther (~alowther@68.200.236.134) joined #osdev
16:50:19 --- quit: kimundi (Ping timeout: 240 seconds)
17:01:21 --- join: freakazoid0223 (~IceChat9@pool-108-52-244-197.phlapa.fios.verizon.net) joined #osdev
17:02:27 --- quit: freakazoid0223_ (Ping timeout: 240 seconds)
17:02:44 --- quit: Mutabah (Quit: Rebooting server)
17:07:15 --- quit: adam4813 (Quit: Connection closed for inactivity)
17:07:48 <BrainFog> What'd you guys think of this colour scheme https://cdn.discordapp.com/attachments/112749374764761088/442476004787617792/unknown.png
17:11:03 --- join: Pseudonym73 (~Pseudonym@124-168-223-127.dyn.iinet.net.au) joined #osdev
17:11:20 --- join: rain1 (~rain1@unaffiliated/rain1) joined #osdev
17:12:27 <t3hn3rd> ^ Any feedback/suggestions would be appreciated, we're both pretty bad when it comes to UI/UX design.
17:12:41 --- join: Mutabah (~tpg@pdpc/supporter/student/thepowersgang) joined #osdev
17:15:22 <_mjg_> <snarky remark about colour blindness>
17:16:16 <t3hn3rd> :P Honestly, be as mean/snarky as you like - I'd like to have something half decent, and both of us know our UX design ability is pretty limited.
17:18:25 <_mjg_> well i can't do any better myself, but
17:18:39 <_mjg_> just do a quick look at what popular DEs look like
17:18:49 <_mjg_> general color schemes and just steal one
17:20:24 --- join: doug16k (~dougx@198-91-135-200.cpe.distributel.net) joined #osdev
17:22:18 <t3hn3rd> That's true - just wish I could be more creative without horrible results.
17:22:47 <_mjg_> tbf i think the win 2000 scheme looked great
17:23:05 --- join: freakazoid0223_ (~IceChat9@pool-108-52-244-197.phlapa.fios.verizon.net) joined #osdev
17:23:49 --- quit: freakazoid0223 (Ping timeout: 240 seconds)
17:26:01 --- part: abvi[m] left #osdev
17:31:39 --- quit: x0x0 (Quit: removing from IRC because user idle on matrix for 30+ days)
17:34:31 <geist> the ui is nice and simple and clean, but the dark red on dark purple on darker purple is a bit much
17:34:50 <geist> the dark purple background is nice, but i'd go with a bit more constrast
17:35:16 <geist> _mjg_: yeah for the longest time i kept using the win2k theme for XP and whatnot up until windows 10
17:35:35 <_mjg_> ye
17:35:56 <_mjg_> i have weirdly soft spot for w2k
17:36:24 <geist> i did too for the longest time. eventually it faded, but i held onto it until at least the late 2000s
17:36:48 <geist> now i'm kind of fond for 2010 era gnome 2. MATE basically
17:37:02 <geist> just straightforward windows decorations, no funny shit, and some sort of start menu like thing
17:37:29 <ACE_Recliner> i think xfce is similar enough for the most part, particularly as mint themes it
17:37:44 <geist> and then i think clearlooks style windows decorations, which is basically win2k like
17:37:51 <geist> indeed
17:40:20 <geist> yah xfce works too. as does cinnamon
17:41:32 --- quit: shivarthk[m] (Quit: removing from IRC because user idle on matrix for 30+ days)
17:41:37 --- quit: agrim (Quit: removing from IRC because user idle on matrix for 30+ days)
17:42:40 <_mjg_> geist: i hoped onto the tiling window manager bandwagon around 2005
17:43:19 <geist> eh doesn't really work for me
17:43:21 <_mjg_> now i have trouble clicking around
17:43:33 <geist> lots of folks at work do tilers, but i just can't quite get used to it
17:43:35 <_mjg_> ye it is mostly a preference
17:43:50 <_mjg_> if it suits your style there is no going back
17:43:57 <_mjg_> and if it does not, you can't do shit
17:44:11 <geist> i tend to have large monitors (30" ish) and really the hot zone is near the center and i arrange for less used stuff to be in the corners
17:44:25 --- quit: ketanhwr (Quit: removing from IRC because user idle on matrix for 30+ days)
17:44:29 <_mjg_> i find myself with way too many terminals
17:44:33 <geist> and i love focus follows mouse so i typically leave compiling windows behind the main editor and whatnot, with the bottom sticking out
17:44:41 <geist> so i can compile and not bring the entire window to the front
17:44:44 <_mjg_> it got bad to the point where i dedicated one worskacpe for "random"
17:44:48 <_mjg_> which i just clean up from time to time
17:45:04 <geist> yah i eep it to something like 3 or 4 per desktop, but then i use multiple desktops to organize my life
17:45:27 <_mjg_> i do too, but suddenly i need to check something so i spawn a terminal
17:45:38 <_mjg_> i odn't kill it because the result can be useful later so i leave it handy
17:45:45 * geist nods
17:45:49 <_mjg_> and after few days i end up with fuckton of terminals
17:46:06 <_mjg_> i reboot once every few weeks, so there is that
17:46:06 <geist> i'm fairly religious about closing things i'm not using. i think it comes from when you grew up without infinite resources like modern machines
17:46:16 <geist> close programs you're not using because it'll cause the machine to swap, etc
17:46:38 <geist> same with tabs in chrome. if it gets so that i can't read the first few letters, it's time to clean up or make another window
17:47:01 <_mjg_> i actually got way better with tabs in browsers
17:47:08 <_mjg_> but that's specifically because they eat so much ram
17:47:17 <BrainFog> http://prntscr.com/je9g4v
17:47:17 <_mjg_> i only have 8GB
17:47:18 <bslsk05> ​prntscr.com: Screenshot by Lightshot
17:47:19 <geist> i think knowing a thing or two about kernels makes you want to reduce ram footprint, unnecessarily so
17:47:50 <geist> like 'oh no that tab is going to use 200MB out of 32GB. but that's 200MB more disk cache!'
17:47:54 <geist> even though nope no difference
17:48:22 <geist> i'm constantly fiddling with looking at top, or ps or what the VM is doing
17:48:25 <_mjg_> it makes a practical diff for me though, with 8GB i am actually getting tight on ram
17:48:35 <geist> yeah with 8 you can start feeling it if you have a bunch of tabs open
17:48:45 <_mjg_> haha, i manage to not look at that at my workstation
17:48:55 <_mjg_> but every remote machine i log into, first thing to do is top
17:49:02 <_mjg_> stupid sysadmin habits
17:49:08 <geist> that's why lately all my new builds start with 16GB minimum. at the moment after 16 it starts to get into extraneous territory, unless you're doing workstationy things
17:49:21 <geist> yep! top or it didn't happen, basically
17:49:32 <_mjg_> my laptop is basically a terminal server + web browser
17:49:43 <_mjg_> if it was not for wtf pages i would make it work with < 512MB of ram
17:49:47 <_mjg_> ez
17:49:56 <geist> yah and i frequently use a few chromebooks of various amounts of ram. you get a bit picky on those
17:50:16 <geist> but, on a fun note i'm literally building linux 1.2.13 kernel right now on a 386 with 4MB ram
17:50:23 <_mjg_> nice
17:50:24 <geist> it's been at it an hour or so, but actually making some amount of progress
17:50:36 <geist> swapping like crazy, but it's a very quiet drive so i cant tell
17:50:37 <BrainFog> just get a 3GB/s NVMe
17:51:17 <BrainFog> drive
17:51:23 <geist> BrainFog: have to be a bit careful there on laptops. not all the nvme m.2s are particularly good with power
17:51:34 <geist> and causing it to unnecessarily do IO is a pretty good power drain
17:52:03 <geist> of course it depends on what else the machine is doing at the same time
17:52:12 <_mjg_> mining bitcoin
17:52:27 <geist> exactly, in that case nope. nvme power usage aint your problem
17:52:27 <t3hn3rd> and playing crisis @ max settings.
17:53:25 <graphitemaster> lol Fortran 2018 is a thing
17:53:40 <CrystalMath> yay
17:53:42 <CrystalMath> new fortran
17:53:48 <CrystalMath> but i prefer the old fortran 77
17:53:54 <CrystalMath> nothing will ever replace it
17:54:21 <geist> F77 and F90 is all i ever ended up writing
17:54:44 --- quit: fooblar[m] (Quit: removing from IRC because user idle on matrix for 30+ days)
17:54:45 --- part: aesycos[m] left #osdev
17:54:57 <geist> kick the idlers!
17:58:13 <graphitemaster> so I bothed the homebrew on my nintendo switch, rendering it a brick about a week ago, I finally got it unbricked and just reverted everything to status quo and was having problem getting things to run because of some messed up voltages in caps that are not supposed to be there
17:58:17 <graphitemaster> *botched
17:58:50 <graphitemaster> I let the battery drain literally to dead status, and brought it back from the dead over a SEVEN HOUR charge
17:58:56 <graphitemaster> and now everything works
18:04:19 --- join: JusticeEX (~justiceex@pool-98-113-143-43.nycmny.fios.verizon.net) joined #osdev
18:06:44 --- join: NaNkeen (~nankeen@115.164.81.83) joined #osdev
18:11:49 --- quit: NaNkeen (Ping timeout: 255 seconds)
18:12:10 --- join: drakonis_ (~drakonis@unaffiliated/drakonis) joined #osdev
18:12:13 --- quit: zeus1 (Ping timeout: 240 seconds)
18:12:55 <_mjg_> interesting
18:13:32 --- quit: drakonis (Ping timeout: 256 seconds)
18:13:33 <_mjg_> #define bzero(buf, len) memset((buf), 0, (len))
18:13:46 <_mjg_> and clang seeing static size of 512 generated an in place loop
18:13:59 <_mjg_> would not be anything special
18:14:01 <_mjg_> but
18:14:10 <rain1> why do ppl always inline via macros it pisses me off
18:14:11 <_mjg_> #define bzero(buf, len) __builtin_memset((buf), 0, (len))
18:14:22 <_mjg_> this *does* generate the call
18:15:03 <CrystalMath> btw, freebasic's preprocessor has #for
18:15:12 <CrystalMath> freebasic > C++
18:15:19 --- quit: ALowther (Remote host closed the connection)
18:15:33 <_mjg_> rain1: depends what they "inline", but there are legit reasons
18:15:41 <_mjg_> rain1: in particular __FILE__/__LINE__
18:16:04 <_mjg_> if you use an actual inline you get the implementation, not the user
18:18:21 <geist> yah. and then there's legacy C before inline became standardized
18:18:35 <geist> in general yes, you should probably use a real inline function. though with -O0 it may not emit it
18:19:14 <aalm> mm __inline
18:19:15 <doug16k> gcc has an interesting __builtin_LINE() which can be used as a default template argument to get caller's line. sucks having to put <> after the function name though
18:20:41 <aalm> it's not gnu for nothing:p
18:21:27 --- quit: ACE_Recliner (Ping timeout: 248 seconds)
18:23:58 <doug16k> geist, did you add -Wl,--no-keep-memory to the flags? it will probably speed up links a lot if they page hard
18:25:09 <geist> no, but i'm interested now
18:27:07 <geist> ah well, will see. it's still compiling
18:27:18 <geist> though it's making reasonably fast progress. maybe 30s or so per .c file
18:27:24 <doug16k> :O
18:27:31 <aalm> ugh, 25years from now and i guess i won't remember even -jN of the flags i use everywhere to build w/o artificial slowdowns:D
18:27:33 <geist> but 1.2.13 is muuuuch smaller
18:27:39 <geist> plus i've configured it darn slim
18:28:05 <aalm> what are you building it on?
18:28:15 <doug16k> on a modern machine, the source compiles fly by so fast you can't read them :D
18:28:45 <aalm> i wish, but i do mostly only openbsd :<
18:28:53 <_mjg_> oh man
18:28:53 <geist> aalm: it's an old 386sx-16 w/4MB
18:29:19 <aalm> geist, figured that, but os?
18:29:20 <geist> yeah always fun when the screen is the bottleneck, so much text flying by
18:29:26 <geist> slackware 3.0
18:29:33 <geist> which is just a tad too big. might go back to 2.x series
18:29:48 <aalm> oh
18:29:52 <geist> 3.0 is when it switched from a.out to ELF, and from ps you can really see the binary size grow a bit
18:29:53 <aalm> cool
18:30:52 <aalm> my first unix-like was some weird frankenlinux aka zipslack(slackware)
18:36:31 <doug16k> my first was ancient (~ 1993-1994) free-bsd on 486DX-33 - was a nightmare to get it to work at all with cd-rom that connected to soundcard interface
18:38:25 <doug16k> I had tons of memory though, 8MB :D
18:38:57 --- quit: bender (Quit: Connection closed for inactivity)
18:41:26 <geist> yah 8 vs 4 is a big jump
18:41:43 <geist> i went to a local surplus computer part store a while ago, but sadkly they had nothing in the 386/486 era
18:41:59 <geist> that stuff has all been picked over. 'ancient' to them is basically athlons
18:42:08 <aalm> heh
18:42:13 <geist> but they have tons and tons of $3 scsi cards and whatnot
18:42:16 <geist> pci of course
18:44:43 <aalm> i don't really even remember the machines i grew up with before pc that was actually built for 'gaming', w/amd k6-2
18:45:02 <geist> for some reason i'm fond of a K5 machine i had in college. wish i hadn't tossed it
18:45:11 <geist> though i could probably assemble one from ebay for a little bit
18:45:29 <geist> being into K5 is ultimate underdog, since it wasn't a terribly great cpu
18:46:12 <aalm> does your current machine btw. have the stupid (un)TURBO btn?
18:48:14 <doug16k> the oldest ram on digikey is 128MB 100MHz SDRAM. I thought for sure they'd have ancient ram at ripoff price
18:48:59 <doug16k> that 128MB module is $140
18:50:29 <aalm> :x
18:50:41 <aalm> if that isn't ripoff price idk..
18:54:22 <doug16k> geist, http://www.memoryx.com/72pinsimm.html
18:54:23 <bslsk05> ​www.memoryx.com: 72 Pin SIMM
18:54:27 <doug16k> practically giving it away ^
18:55:08 --- join: promach__ (~promach@bb219-74-174-136.singnet.com.sg) joined #osdev
18:55:37 --- join: zeus1 (~zeus@197.239.32.34) joined #osdev
18:56:59 <aalm> at those prices i'd buy all sizes just in case
18:58:37 <aalm> (.. the bios doesn't like too big)
18:58:43 <klange> my qemu froze... scared me, thought it was my OS freezing, but something messed up IO on the host: "main-loop: WARNING: I/O thread spun for 1000 iterations"
18:59:30 --- quit: tacco| ()
19:01:31 <Mutabah> lololol
19:02:48 --- join: quc (~quc@87.116.228.164) joined #osdev
19:06:07 --- quit: promach__ (Quit: WeeChat 2.1)
19:07:25 <doug16k> klange, I've seen that before
19:07:48 <doug16k> doing disk I/O stress
19:09:03 <doug16k> doesn't happen anymore though, I didn't figure out the exact cause
19:10:15 <geist> doug16k: yeah that's pretty good
19:10:44 <geist> this 386 takes 30 pin, but yeah i'm thinking of i cobble eotgether another machine from parts i'll start with a 486
19:10:58 <geist> amd486-133 + 16MB would be lovely
19:11:19 <doug16k> yeah, 486 is a monster compared to a 386
19:11:43 <geist> had a -133 in college for a short while. my first real headless linux box
19:12:25 <geist> but really its a race to get all of this out of my system before i plonk down too much more $$
19:12:39 <geist> i get in the mood like this for a few weeks. it too will pass
19:12:58 <geist> but i use it to regenerate my osdev foo. thinking about old machiens inevitably has me thinking about running simple kernels and whatnot
19:13:09 <geist> and that somehow recharges my desire to do low level hackery
19:14:30 --- quit: zeus1 (Ping timeout: 264 seconds)
19:17:55 <doug16k> I'd love to see how much READY# is deasserted on that thing - I bet it spends a ton of time waiting for bus transactions to complete
19:18:21 <geist> i was just thinking about how slow this dram is on the 386 with no cache at all
19:18:36 <geist> a cache timing app i was fiddling with says the access time is about 155ns
19:18:57 <geist> which given 16mhz is probably a few cycles
19:19:22 --- quit: Mutabah (Quit: Rebooting post-upgrade)
19:19:43 <geist> ets see 10mhz would be 100ns, so 16mhz would be like 70 or so
19:19:57 <geist> and 155 is doube that, so looks like 2 cycle latency
19:21:07 <doug16k> that seems awfully good - it would have to ping pong the dram row buffer back and forth between the code and data, because it has to keep fetching code from RAM. perhaps that test had the code and data in the same row
19:21:53 <geist> eah i think it is. it was intended to pick out your L1/L2 cache so it was probably accessing it in the fastest possible way
19:22:23 <geist> oh re/code/data yeah that's a good point
19:26:33 <geist> dunno precisely how the instruction buffering does for 386, but i suspect it prefetches 16 bytes or so
19:26:41 <geist> even old 8086 did something like that
19:30:49 <doug16k> yeah, 80386DX has a 16 byte queue but due to a bug, it only fills 12 bytes. 386SX didn't have the bug, it fills 16 bytes at a time
19:31:07 <doug16k> which ain't much in 32 bit code though
19:32:25 <geist> guess as many prefixes didn't exist back then on the dx. i wodner if a 13+ byte instructino would cause problems
19:32:31 <aalm> that's what loops are for
19:33:11 <geist> well, you'd assume that the point of the large prefetch buffer (or two) is that eventually the decoder has all of the instruction inside the cpu at once
19:38:29 <doug16k> 386sx would be awesome for 16 bit code though, instructions were mostly pretty small so 16 bytes is pretty huge for that. something like add $0x8000,es:0xf000(%edi,%ecx,4) would probably kill perf :)
19:38:46 <doug16k> addl*
19:39:11 <geist> that's what was interesting,. i saw a bunch of benchmarks that folks were running between a 386 *dx* and a 286, and in general they were about the same, a 286 + cache would be an uncached dx
19:39:25 <geist> but the assumption is the benchmarks were 16 bit code mostly, so the 32bit wide bus wouldn't really help
19:39:28 <geist> except maybe instruction fetches
19:45:16 --- join: promach__ (~promach@bb219-74-174-136.singnet.com.sg) joined #osdev
19:45:35 --- nick: promach__ -> promach2
19:45:58 --- join: NaNkeen (~nankeen@115.164.81.83) joined #osdev
19:48:03 --- quit: NaNkeen (Client Quit)
19:49:28 --- quit: JusticeEX (Ping timeout: 255 seconds)
19:54:22 --- join: Mutabah (~tpg@pdpc/supporter/student/thepowersgang) joined #osdev
19:56:50 --- join: ACE_Recliner (~ACE_Recli@c-73-18-225-48.hsd1.mi.comcast.net) joined #osdev
19:57:38 --- join: zeus1 (~zeus@197.239.32.34) joined #osdev
20:02:14 --- quit: freakazoid0223_ (Quit: Give a man a fish and he will eat for a day. Teach him how to fish, and he will sit in a boat and drink beer all day)
20:04:09 --- quit: godel (Ping timeout: 256 seconds)
20:07:48 --- join: Goplat (~Goplat@reactos/developer/Goplat) joined #osdev
20:09:08 <doug16k> lol @ default apache install: http://gcc.parentingamerica.com/
20:09:09 <bslsk05> ​gcc.parentingamerica.com <no title>
20:09:59 <doug16k> lol, another canadian mirror does same thing: http://gcc.skazkaforyou.com/
20:09:59 <bslsk05> ​gcc.skazkaforyou.com <no title>
20:10:09 <doug16k> fix your server, eh?
20:11:27 --- quit: zeus1 (Ping timeout: 268 seconds)
20:12:05 <geist> aboot time
20:14:21 --- quit: nj0rd (Ping timeout: 260 seconds)
20:18:51 <gamozo> it works!
20:19:02 --- quit: Pseudonym73 (Remote host closed the connection)
20:22:25 --- quit: variable (Quit: /dev/null is full)
20:28:55 --- join: nj0rd (~nj0rd@i577BC046.versanet.de) joined #osdev
20:31:27 <gamozo> anyone have benchmarks for interrupt round trip times assuming the interrupt does nothing
20:31:38 <gamozo> IIRC syscall was like 600-700 cycles? so interrupt is probably like 1500?
20:31:46 <gamozo> (assuming ring0<->ring0, no stack change, etc)
20:34:51 --- quit: quc (Remote host closed the connection)
20:35:04 --- join: quc (~quc@87.116.228.164) joined #osdev
20:35:14 --- join: AndrewBC_ (~AndrewBC@ip70-187-57-150.pn.at.cox.net) joined #osdev
20:36:04 <geist> depends a lot on the particular core
20:36:20 <geist> 600-700 is pretty slow. my experience is a syscall/sysret is something like 150
20:36:24 <geist> on a modern core
20:37:31 <geist> so on say a 3Ghz-4Ghz core its something like 40ns for a syscall roundtrip
20:37:59 --- quit: AndrewBC (Ping timeout: 248 seconds)
20:39:38 <geist> and i think that's including some code on the other side, so the raw dispatch is probably a bit faster than that. maybe just a pipeline dump + a few uops. say 50 cycles
20:40:32 <gamozo> weird, that's a lot faster than I benchmarked recently
20:40:41 <gamozo> i need to try on my coffee lake
20:40:50 <geist> and that's syscall/sysret
20:42:07 <gamozo> i expect interrupts to be much worse, but i shall see
20:42:31 <gamozo> although IIRC single stepping is about 400x slower than native, so it probably shouldn't be more than 400 cycles?
20:43:29 <geist> eah i'm starting to doubt it now. will check later when i get a chance
20:43:56 <gamozo> I can quickly check on my phi for int3 round trip, but my other boxes are offline
20:48:09 <gamozo> I'm getting 389 cycles per int3 where it's a loop of 100M int3s and the interrupt handler is literally just `iretq`
20:49:00 <gamozo> im manually doing movdqu to save/restore xmm contexts in my interrupt handler. First they're probably unaligned, and second I'm not sure if xsave is faster
20:52:30 <gamozo> 480 cycles/int3 when I correctly save/restore register context and handle it as a nop from Rust
20:52:44 <gamozo> so about 100 cycles just to save state and transition to rust, which isn't _too_ bad
20:54:39 --- join: zeus1 (~zeus@197.239.32.34) joined #osdev
20:58:02 --- quit: mavhq (Read error: Connection reset by peer)
20:58:04 --- join: variable (~variable@freebsd/developer/variable) joined #osdev
20:59:18 --- join: mavhq (~quassel@cpc77319-basf12-2-0-cust433.12-3.cable.virginm.net) joined #osdev
21:02:01 --- quit: zeus1 (Ping timeout: 268 seconds)
21:05:42 --- join: vdamewood (~vdamewood@unaffiliated/vdamewood) joined #osdev
21:06:31 --- quit: unixpickle (Quit: My MacBook has gone to sleep. ZZZzzz…)
21:11:06 --- join: xenos1984 (~xenos1984@22-164-191-90.dyn.estpak.ee) joined #osdev
21:13:11 --- quit: CrystalMath (Quit: Support Free Software - https://www.fsf.org/)
21:15:51 <geist> ah so the kernel compile finished after a few hours. runs like a champ, and is noticably smaller
21:16:09 <geist> stripped a few hundred KB out of the uncompressed image size
21:16:33 <geist> gamozo: what core are you testing on? cofee lake?
21:18:57 --- quit: promach2 (Ping timeout: 256 seconds)
21:22:09 <_mjg_> geist: compile some kde
21:22:51 <klys> if geist compiled kde for me i'd run it
21:28:05 --- quit: Shikadi (Read error: Connection reset by peer)
21:32:52 --- join: isd (~isd@209.6.64.199) joined #osdev
21:41:32 --- quit: BrainFog (Read error: Connection reset by peer)
21:41:37 --- join: aaron (~BrainFog@cpc89010-gill18-2-0-cust1263.20-1.cable.virginm.net) joined #osdev
21:41:49 --- join: adam4813 (uid52180@gateway/web/irccloud.com/x-mfuqqcsqaltubvmi) joined #osdev
21:41:54 <klys> http://www.kde.com is terribly broken
21:41:56 <bslsk05> ​www.kde.com: KDE Community Home - KDE.org
21:42:01 --- nick: aaron -> Guest31018
21:43:41 --- join: elevated (~elevated@unaffiliated/elevated) joined #osdev
21:44:05 --- join: Hdphn (~akira@gateway/tor-sasl/hdphn) joined #osdev
21:44:53 --- quit: pie__ (Remote host closed the connection)
21:45:36 --- join: zeus1 (~zeus@197.239.32.34) joined #osdev
21:45:54 --- join: pie__ (~pie_@unaffiliated/pie-/x-0787662) joined #osdev
21:45:56 --- quit: kleinweby (Ping timeout: 260 seconds)
21:46:57 --- quit: plonk (Read error: Connection reset by peer)
21:47:07 --- join: plonk (~plonk@rosa.physik-pool.tu-berlin.de) joined #osdev
21:47:07 --- quit: plonk (Changing host)
21:47:07 --- join: plonk (~plonk@unaffiliated/plonk) joined #osdev
21:48:11 --- join: kleinweby (~kleinweby@unaffiliated/kleinweby) joined #osdev
21:50:36 --- quit: sprocklem (Ping timeout: 260 seconds)
21:51:30 --- quit: Esa_ ()
21:51:40 --- join: sprocklem (~sprocklem@unaffiliated/sprocklem) joined #osdev
21:52:49 --- quit: zeus1 (Ping timeout: 240 seconds)
22:08:25 --- join: andrei-n (~andrei@51.214-65-87.adsl-dyn.isp.belgacom.be) joined #osdev
22:26:39 --- join: AvgJoe (~joe@ip98-167-200-207.ph.ph.cox.net) joined #osdev
22:26:43 --- join: MDead (~MDude@pa-67-234-118-37.dhcp.embarqhsd.net) joined #osdev
22:27:10 --- join: pie___ (~pie_@unaffiliated/pie-/x-0787662) joined #osdev
22:27:11 --- join: booyah_ (~bb@193.25.1.157) joined #osdev
22:27:14 --- quit: mrush (Changing host)
22:27:14 --- join: mrush (~user@unaffiliated/mrush) joined #osdev
22:27:25 --- join: salek_ (~salek@91-155-9-229.elisa-laajakaista.fi) joined #osdev
22:27:46 --- join: xiphias (~xiphffff@unaffiliated/dkingston) joined #osdev
22:27:50 --- quit: booyah (Read error: Connection reset by peer)
22:27:52 --- quit: pie__ (Read error: Connection reset by peer)
22:28:49 --- quit: MDude (Ping timeout: 240 seconds)
22:28:55 --- nick: MDead -> MDude
22:29:03 --- quit: xiphias_ (Read error: Connection reset by peer)
22:29:49 --- quit: AverageJ0e (Ping timeout: 240 seconds)
22:29:49 --- quit: Salek (Ping timeout: 240 seconds)
22:35:55 --- join: zeus1 (~zeus@197.239.32.34) joined #osdev
22:41:21 --- quit: zeus1 (Ping timeout: 260 seconds)
22:41:29 --- quit: drakonis_ (Remote host closed the connection)
22:45:28 --- join: godel (~gonzalo@190.192.95.122) joined #osdev
23:01:03 --- quit: dbittman (Ping timeout: 276 seconds)
23:10:48 --- quit: andrei-n (Quit: Leaving)
23:24:07 --- join: zeus1 (~zeus@197.239.32.34) joined #osdev
23:36:41 --- quit: isd (Quit: Leaving.)
23:36:54 --- quit: ACE_Recliner (Remote host closed the connection)
23:37:28 --- quit: vdamewood (Quit: Textual IRC Client: www.textualapp.com)
23:37:54 --- join: Pseudonym73 (~Pseudonym@124-168-223-127.dyn.iinet.net.au) joined #osdev
23:50:33 --- join: m_t (~m_t@p5DDA0911.dip0.t-ipconnect.de) joined #osdev
23:52:31 --- quit: zeus1 (Ping timeout: 260 seconds)
23:59:59 --- log: ended osdev/18.05.05