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

Thursday, 19 July 2018

00:00:00 --- log: started osdev/18.07.19
00:00:11 <klys> building
00:00:35 <mischief> you didn't already have the repo pulled??
00:01:55 <klys> I had it cloned, thought I'd pull again to make sure
00:02:31 <klys> something about /root/src/sys/efivim/edk2/StdLib/LibC/Math/s_frexp.c
00:02:33 <klys> so yeah
00:03:06 <mischief> what about it exactly
00:03:47 <mischief> 'make nuke' deletes edk2/vim btw, forcing a full rebuild
00:04:05 --- join: angel0xff (~zzz@158-58-227-127.sf.ddns.bulsat.com) joined #osdev
00:04:57 <klys> "gcc" -g -fshort-wchar -fno-builtin -fno-strict-aliasing -Wall -Werror ... /root/src/sys/efivim/edk2/StdLib/LibC/Math/s_modf.c; cc1: all warnings being treated as errors; make[1]: *** [/root/src/sys/efivim/edk2/Build/AppPkg/RELEASE_GCC49/X64/AppPkg/Applications/Lua/LuaLib/OUTPUT/src/ldo.obj] Error 1
00:05:16 <klys> I did make clean.
00:05:41 <klys> it's probably a logged error Idk
00:06:21 <mischief> so what's the error? can't you just paste the full output on gist or something?
00:07:17 <klys> that's as close as it got to demonstrating an error.
00:07:58 --- join: xerpi (~xerpi@80.red-83-45-193.dynamicip.rima-tde.net) joined #osdev
00:08:41 <mischief> i'm confused, there's no real error? gcc only prints Error 1 and nothing else?
00:08:48 <klys> yes.
00:09:13 <klys> except this is "gcc", the makefile is hiding something.
00:09:21 <mischief> edk2's generated makefile prints the gcc invocation
00:09:29 <mischief> can't you copy and paste it to run it by hand?
00:10:17 <klys> I tried make V=1, same. a bit miffed all the same.
00:10:42 <klange> klys has quite a knack for breaking things
00:10:44 <klys> is it just gcc, perhaps I have done this before
00:10:47 <klange> :)
00:11:04 <mischief> of course it is just gcc
00:11:48 <klys> killed that file's error, assuming another is sure to come...
00:12:04 <klange> what did you do to "kill" it?
00:12:08 <klys> now with CheckSum.c
00:12:23 <mischief> klys: what host system are you building on
00:12:24 <klys> oh I just replaced "gcc" with gcc and dismissed -Werror
00:12:35 <klange> "gcc" and gcc are the same thing
00:12:51 <klys> Linux debian 4.11.0-1-amd64 #1 SMP Debian 4.11.6-1 (2017-06-19) x86_64 GNU/Linux
00:12:54 <klange> the quotes are likely part of the generated file in case CC is set to something with spaces
00:13:16 <klange> most Makefiles don't bother, but if that's a path to something suspiciously windows-y...
00:13:42 <mischief> "babby's first compiler.bak.exe"
00:13:43 <klys> it's the main ext2 partition, I was using it day before yesterday to clone efivim.
00:13:47 <klange> "/mnt/c/Program Files/You/Are Going/To Have/A Bad Time"
00:14:11 <klange> /mnt/c/Program: file not found
00:14:59 <mischief> klys: mischief@omicron:~ $ gcc -v 2>&1 | grep 'gcc version'
00:15:01 <mischief> gcc version 6.3.0 20170516 (Debian 6.3.0-18+deb9u1)
00:15:03 <mischief> mischief@omicron:~ $ cat /etc/debian_version
00:15:05 <mischief> 9.5
00:15:23 <klys> ...and DevSearch.c
00:15:25 <mischief> and i originally wrote efivim on gentoo
00:15:49 <klange> my stretch is 9.2 because we haven't updated our repo snapshot
00:18:19 <klys> http://show.ing.me/paste/edk20001.png
00:18:54 <mischief> i just ran the gcc invocation to compile DevSearch.c by hand and it works
00:18:59 <klange> why does your web server suck so much
00:19:26 <mischief> this url doesn't load for me
00:19:38 <mischief> can't you paste a textual error on ix.io or something?
00:19:49 <klys> http://45.55.20.239/paste/edk20001.png
00:20:10 <klange> gist.github.com, paste.ubuntu.com, ...
00:20:30 <klys> you want the whole build output?
00:20:38 <mischief> ostensibly
00:21:05 <klange> 'show.ing.me' is returning NXDOMAIN
00:21:52 --- quit: sysfault (Remote host closed the connection)
00:22:05 <klys> ok fixed
00:22:07 <klange> now I get a cname to www.ing.me, but this doesn't point to the same IP as you gave, it appears to be unresponsive over HTTP...
00:22:21 <klys> it's a name.ly "site" which I have a redirect for
00:22:41 --- join: sysfault (~exalted@pool-108-53-157-115.nwrknj.fios.verizon.net) joined #osdev
00:23:09 <klange> > yellow on blue terminal
00:23:12 <klange> > running as root
00:23:24 <klange> You *do* live dangerously.
00:23:44 --- join: asymptotically (~asymptoti@gateway/tor-sasl/asymptotically) joined #osdev
00:24:46 <klys> yayy done
00:33:57 <klys> http://45.55.20.239/paste/efivim0001.png http://show.ing.me/paste/efivim0001.png
00:34:10 <bslsk05> ​show.ing.me <no title>
00:34:10 <klys> yeah it started vim
00:34:37 <mischief> it works \o/
00:34:58 <mischief> somebody spray champagne on klys
00:35:38 <klange> what the hell is happening to your QEMU window
00:36:06 --- quit: jakogut (Read error: Connection reset by peer)
00:36:15 --- join: jakogut_ (~jakogut_@162.251.69.147) joined #osdev
00:36:28 <klys> http://45.55.20.239/paste/efivim0002.png http://show.ing.me/paste/efivim0002.png
00:36:32 <bslsk05> ​show.ing.me <no title>
00:36:36 <klys> you can see here, I am not a vi user
00:37:05 <klange> clearly
00:37:16 <klys> and... that's a transparent konsole window
00:37:53 <mischief> i didn't bother copying any help files into the ESP, so no :help for you
00:38:01 <klys> :>
00:38:52 --- quit: sysfault (Remote host closed the connection)
00:39:04 <klys> klange, oh, were you meaning to ask about the margins?
00:39:21 --- join: sysfault (~exalted@pool-108-53-157-115.nwrknj.fios.verizon.net) joined #osdev
00:39:28 <klys> It's what ovmf has been giving me
00:39:29 <klange> klys: no that's a standard thing in OVMF
00:39:41 <klange> klys: your QEMU window in efivim0001.png is extremely transparent
00:40:05 <klys> it's backgrounded there
00:40:22 <klange> and why did you do that when taking a picture of it
00:40:39 <klys> oh, so folks could see what was going on then
00:41:11 <klange> but the window that *is* readable is your IRC session
00:41:32 <klange> we can see that already, we're here!
00:41:49 --- quit: leinne_ (Remote host closed the connection)
00:42:21 --- join: leinne (~leinne@gateway/tor-sasl/leinne) joined #osdev
00:42:55 <klys> well vim is perhaps improved in a way I'll learn of another day.
00:46:38 <klys> bcos_, perhaps it'll need an objcopy trick or an i686-elf-gcc compiler. hope I can get it to work sometime tho
00:47:14 <klys> no sense doing what I did and compiling it x86_64 tho
00:47:27 * klys switches out gcc
00:49:57 --- quit: nwm (Ping timeout: 276 seconds)
00:51:15 <klys> for sure bcos_'s C file needs one of those solutions...
00:51:46 <klys> I'll be digging deep tho
00:52:40 --- quit: MarchHare (Ping timeout: 244 seconds)
00:55:37 --- join: debug (~debug@m176-68-12-24.cust.tele2.se) joined #osdev
01:00:40 --- quit: zeus2 (Ping timeout: 268 seconds)
01:07:19 <Matviy> Would each core of an x86 have it's own eflags register?
01:07:33 <klys> yes
01:07:52 <klys> also, they have their own eip register
01:08:02 <Matviy> So they're pretty much their own CPUs
01:11:57 <klange> That is the idea, yes.
01:13:23 --- join: zeus2 (~zeus@154.226.249.25) joined #osdev
01:14:19 --- quit: froggey (Ping timeout: 240 seconds)
01:15:31 --- quit: tsurai (Quit: ZNC 1.7.0 - https://znc.in)
01:15:40 --- quit: celadon (Quit: ZNC 1.7.0+deb1+b1 - https://znc.in)
01:16:03 --- join: tsurai (~tsurai@mail.tsunix.de) joined #osdev
01:16:20 --- join: celadon (~celadon@66.157-14-84.ripe.coltfrance.com) joined #osdev
01:20:45 --- join: nortega (~nortega@gateway/tor-sasl/deathsbreed) joined #osdev
01:24:10 --- quit: fornew (Quit: Leaving)
01:35:29 --- join: fornew (~wherenew@120.78.87.130) joined #osdev
01:39:04 --- quit: FreeFull (Quit: Rebooting)
01:40:17 --- join: FreeFull (~freefull@defocus/sausage-lover) joined #osdev
01:48:19 --- join: booyah (~bb@193.25.1.157) joined #osdev
01:52:28 --- quit: manzerbredes (Ping timeout: 268 seconds)
02:01:13 --- quit: hmmmm (Remote host closed the connection)
02:02:21 --- join: baschdel (~baschdel@2a01:5c0:1c:6201:bb0:858:a281:6ed8) joined #osdev
02:02:42 --- join: SopaXorzTaker (~SopaXorzT@unaffiliated/sopaxorztaker) joined #osdev
02:11:51 --- join: Asu (~sdelang@250.203.136.77.rev.sfr.net) joined #osdev
02:13:27 --- quit: angel0xff (Ping timeout: 248 seconds)
02:16:22 --- join: glauxosdever (~alex@athedsl-4475666.home.otenet.gr) joined #osdev
02:31:22 --- quit: sysfault (Remote host closed the connection)
02:31:48 --- nick: vaibhav|gone -> vaibhav
02:31:53 --- join: sysfault (~exalted@pool-108-53-157-115.nwrknj.fios.verizon.net) joined #osdev
02:32:31 --- quit: sysfault (Max SendQ exceeded)
02:33:13 --- join: sysfault (~exalted@pool-108-53-157-115.nwrknj.fios.verizon.net) joined #osdev
02:37:10 --- join: SopaXT (~SopaXorzT@unaffiliated/sopaxorztaker) joined #osdev
02:37:28 --- quit: SopaXorzTaker (Disconnected by services)
02:37:31 --- nick: SopaXT -> SopaXorzTaker
02:39:08 --- join: SopaXT (~SopaXorzT@unaffiliated/sopaxorztaker) joined #osdev
02:40:44 --- join: navidr (uid112413@gateway/web/irccloud.com/x-shbzqrnqpquwtcym) joined #osdev
02:40:49 --- quit: NightBlade (Ping timeout: 240 seconds)
02:42:09 --- quit: xerpi (Quit: Leaving)
02:44:07 --- join: angel0xff (~zzz@158-58-227-127.sf.ddns.bulsat.com) joined #osdev
02:44:52 --- quit: sysfault (Remote host closed the connection)
02:45:20 --- join: sysfault (~exalted@pool-108-53-157-115.nwrknj.fios.verizon.net) joined #osdev
02:48:55 --- quit: SopaXT (Ping timeout: 244 seconds)
02:50:22 --- quit: nortega (Quit: Vivu lante, vivu feliĉe!)
03:01:21 --- quit: shakesoda ()
03:06:46 <klange> lessee here... binutils wants... how the fuck do i not have a strncat... sscanf but only seems to call it to parse a hex string...
03:06:50 <klange> mktemp...
03:07:26 <klange> sscanf again, this time for... %08lX is also another hex string...
03:07:48 * UNIVAC ​reports changes to wiki page "OS Specific Toolchain" by A22347: Added LINK_SPEC <​https://wiki.osdev.org/index.php?title=OS_Specific_Toolchain&diff=22528&oldid=22224>
03:09:21 --- quit: samathy (Quit: ZNC 1.6.5+deb1 - http://znc.in)
03:09:58 <klange> sigemptyset, sigprocmask... ew. vfprintf, why is that missing... putc, lol, might macro that...
03:09:59 --- quit: zeus2 (Ping timeout: 248 seconds)
03:10:18 <klange> bsearch... fscanf "%50s %50s"
03:10:40 <klange> sscanf "%" BFD_VMA_FMT "u" // lovely
03:12:16 <klange> strcasecmp, strncasecmp, strtoul, umask, putchar...
03:12:34 --- join: samathy (~samathy@2001:bc8:4400:2700::1371) joined #osdev
03:13:04 --- quit: samathy (Client Quit)
03:14:29 <klange> oh it wants sigemptyset/sigprocmask because I apparently define SIG_SETMASK, which I suspect is defined because Python
03:19:48 --- join: Kimundi_ (~Kimundi@i577A93F7.versanet.de) joined #osdev
03:22:01 --- join: samathy (~samathy@2001:bc8:4400:2700::1371) joined #osdev
03:23:26 --- join: lkurusa_ (~pi@BC06AE14.catv.pool.telekom.hu) joined #osdev
03:26:10 --- quit: lkurusa_ (Changing host)
03:26:10 --- join: lkurusa_ (~pi@fedora/Levex) joined #osdev
03:26:39 --- quit: samathy (Client Quit)
03:28:57 --- join: samathy (~samathy@2001:bc8:4400:2700::1371) joined #osdev
03:29:27 --- join: zeus2 (~zeus@160.242.134.239) joined #osdev
03:31:40 --- quit: samathy (Client Quit)
03:31:52 --- join: samathy (~samathy@samathy.space) joined #osdev
03:32:38 <Lowl3v3l> has anyone of you built a gcc with lto to use in osdev? which config parameters would i need to pass for lto to be enabled?
03:34:41 <klys> I'm guessing you'd start with the libtool documentation
03:34:58 <klys> although this gcc/gcc/lto1 binary is new to me.
03:35:07 --- join: m3nt4L (~asvos@2a02:587:a01d:4100:3285:a9ff:fe8f:665d) joined #osdev
03:36:48 --- quit: zeus2 (Ping timeout: 255 seconds)
03:38:41 --- quit: Celelibi (Ping timeout: 260 seconds)
03:46:04 --- join: Celelibi (celelibi@par69-9-88-166-81-29.fbx.proxad.net) joined #osdev
03:47:00 --- join: zeus2 (~zeus@160.242.134.239) joined #osdev
03:47:39 --- join: MrOnlineCoder (~MrOnlineC@195.225.231.218) joined #osdev
03:48:12 --- quit: glauxosdever (Quit: leaving)
03:50:50 --- join: glauxosdever (~alex@athedsl-4475666.home.otenet.gr) joined #osdev
03:52:17 <Matviy> On x86, when an interrupt handler is called through an IDT interrupt gate, are all interrupts for that CPU disabled because the interrupt gate makes the CPU automatically clear the IF flag?
03:53:06 <bcos_> Matviy: All interrupts that can be masked by IF will be masked by IF (and all interrupts that can't be masked by IF won't be - e.g. NMI, exceptions, ...)
03:54:32 <Matviy> Got it, reason I'm asking is because i know interrupts can be nested. But since the IF flag is cleared, more interrupts cannot happen unless the handler manually executes sti?
03:54:38 --- join: manzerbredes (~loic@myriads-lg.irisa.fr) joined #osdev
03:55:26 <Matviy> (was talking specifically about Linux here btw)
03:55:26 <bcos_> There's also "trap gates" (where CPU won't automatically clear IF)
03:57:50 <yrlf> I really have to read up on interrupt handling on x86
03:57:56 --- join: CrystalMath (~coderain@reactos/developer/theflash) joined #osdev
03:59:06 --- quit: X-Scale (Ping timeout: 260 seconds)
04:06:41 --- quit: SopaXorzTaker (Remote host closed the connection)
04:07:14 --- join: SopaXorzTaker (~SopaXorzT@unaffiliated/sopaxorztaker) joined #osdev
04:09:54 --- join: m_t (~m_t@p5DDA31B0.dip0.t-ipconnect.de) joined #osdev
04:12:52 --- join: dennis95 (~dennis@i577BCEAA.versanet.de) joined #osdev
04:13:48 --- join: lldd_ (~atrapado@unaffiliated/atrapado) joined #osdev
04:19:05 --- join: Kimundi__ (~Kimundi@i577A9F42.versanet.de) joined #osdev
04:19:20 --- quit: xenos1984 (Ping timeout: 244 seconds)
04:19:37 --- join: froggey (~froggey@unaffiliated/froggey) joined #osdev
04:21:12 --- quit: zeus2 (Ping timeout: 276 seconds)
04:22:43 --- quit: Kimundi_ (Ping timeout: 240 seconds)
04:32:42 --- join: quc (~quc@host-89-230-164-98.dynamic.mm.pl) joined #osdev
04:34:07 --- quit: spare (Remote host closed the connection)
04:34:51 --- quit: flacks (Ping timeout: 276 seconds)
04:38:26 --- join: flacks (flacks@184.91.69.131) joined #osdev
04:43:39 --- join: sortie (~sortie@static-5-186-55-44.ip.fibianet.dk) joined #osdev
04:44:01 <sortie> Good day
04:44:15 <sortie> It's the summer of osdev!
04:44:19 <sortie> How're y'all doing?
04:45:51 --- join: bauen1 (~bauen1@ipbcc18c77.dynamic.kabel-deutschland.de) joined #osdev
04:46:21 <Lowl3v3l> pretty good^^
04:46:28 <Lowl3v3l> today i am in fact payed for osdev :D
04:47:00 <Lowl3v3l> and you? everything well?
04:47:51 <sortie> Not paid to osdev, but on paid vacation :3
04:49:26 --- quit: quc (Remote host closed the connection)
04:49:40 --- join: quc (~quc@host-89-230-164-98.dynamic.mm.pl) joined #osdev
04:49:41 <Lowl3v3l> our svn is fucked up, someone broke the testing infrastructure and the one that could fix it is in vacation xD
04:50:20 <Lowl3v3l> for the best "watching the world burn"-experience i only lack an appropriate drink
04:51:56 --- join: zeus1 (~zeus@160.242.134.239) joined #osdev
04:54:44 <sortie> :(
04:54:54 <sortie> I went on vacation and let people notes on what to do if my testing infra breaks
04:55:06 <Lowl3v3l> why?
04:55:11 <Lowl3v3l> why rob them of this? :D
04:55:19 --- quit: qeos (Ping timeout: 240 seconds)
04:55:29 <sortie> There's this cool thing called the bottom line
04:57:06 <Lowl3v3l> :P
04:59:03 --- join: vdamewood (~vdamewood@unaffiliated/vdamewood) joined #osdev
05:08:13 --- join: X-Scale (~ARM@83.223.227.11) joined #osdev
05:09:18 --- quit: zeus1 (Ping timeout: 276 seconds)
05:12:56 --- quit: Affliction` (Remote host closed the connection)
05:13:13 --- join: edr (~edr@enlo.co) joined #osdev
05:13:13 --- quit: edr (Changing host)
05:13:14 --- join: edr (~edr@pdpc/supporter/professional/edr) joined #osdev
05:13:50 --- join: Affliction (affliction@2402:1f00:8101:135::) joined #osdev
05:15:59 --- quit: [Obsidian] (Quit: There are paranoid crossroads and shipwreck alleys.)
05:19:11 --- join: [MisbehavingOs] (~while@unaffiliated/awaxx/x-0928682) joined #osdev
05:25:01 --- join: Amaan (uid4967@gateway/web/irccloud.com/x-ymjrriqfdltztyhr) joined #osdev
05:25:55 --- join: vmlinuz (~vmlinuz@32.104.18.203) joined #osdev
05:25:55 --- quit: vmlinuz (Changing host)
05:25:55 --- join: vmlinuz (~vmlinuz@unaffiliated/vmlinuz) joined #osdev
05:26:11 --- join: MrOnlineCoderX (~MrOnlineC@195.225.231.218) joined #osdev
05:28:56 --- quit: MrOnlineCoder (Ping timeout: 260 seconds)
05:29:31 --- quit: navidr (Quit: Connection closed for inactivity)
05:32:24 --- join: MrOnlineCoder (~MrOnlineC@195.225.231.218) joined #osdev
05:35:31 --- quit: MrOnlineCoderX (Ping timeout: 264 seconds)
05:36:25 --- join: zeus1 (~zeus@160.242.134.239) joined #osdev
05:37:47 --- join: MrOnlineCoderX (~MrOnlineC@195.225.231.218) joined #osdev
05:39:35 --- join: spare (~user@unaffiliated/spareproject) joined #osdev
05:40:49 --- quit: MrOnlineCoder (Ping timeout: 240 seconds)
05:44:30 --- join: epony (~nym@77-85-135-149.ip.btc-net.bg) joined #osdev
05:44:47 --- quit: zeus1 (Ping timeout: 245 seconds)
05:46:20 --- quit: spare (Quit: leaving)
05:46:25 --- quit: dennis95 (Quit: Leaving)
06:03:56 --- quit: adam4813 (Quit: Connection closed for inactivity)
06:04:41 --- quit: sh3iny (Ping timeout: 250 seconds)
06:05:50 --- join: sh3iny (~mike@gateway/tor-sasl/sh3iny) joined #osdev
06:06:51 --- quit: aalm (Ping timeout: 260 seconds)
06:28:11 --- quit: Lowl3v3l (Remote host closed the connection)
06:34:52 --- quit: sysfault (Remote host closed the connection)
06:35:22 --- join: sysfault (~exalted@pool-108-53-157-115.nwrknj.fios.verizon.net) joined #osdev
06:35:42 --- join: zeus1 (~zeus@160.119.149.222) joined #osdev
06:35:51 --- quit: sysfault (Max SendQ exceeded)
06:35:56 --- join: JusticeEX (~justiceex@pool-98-113-143-43.nycmny.fios.verizon.net) joined #osdev
06:36:22 --- join: sysfault (~exalted@pool-108-53-157-115.nwrknj.fios.verizon.net) joined #osdev
06:42:04 --- join: MarchHare (~Starwulf@mo-184-5-202-5.dhcp.embarqhsd.net) joined #osdev
06:52:00 --- quit: Kimundi__ (Ping timeout: 276 seconds)
06:55:52 --- join: Asu` (~sdelang@82.42.136.77.rev.sfr.net) joined #osdev
06:55:54 --- quit: sysfault (Remote host closed the connection)
06:56:30 --- join: sysfault (~exalted@pool-108-53-157-115.nwrknj.fios.verizon.net) joined #osdev
06:58:24 --- quit: sysfault (Remote host closed the connection)
06:58:30 --- quit: zeus1 (Ping timeout: 276 seconds)
06:58:51 --- quit: Asu (Ping timeout: 255 seconds)
06:58:58 --- join: sysfault (~exalted@pool-108-53-157-115.nwrknj.fios.verizon.net) joined #osdev
06:59:27 --- quit: sysfault (Max SendQ exceeded)
07:10:51 --- quit: MarchHare (Ping timeout: 276 seconds)
07:11:38 --- join: nwm (~nwm@d162-156-46-158.bchsia.telus.net) joined #osdev
07:12:25 --- quit: celadon (Quit: ZNC 1.7.1+deb1 - https://znc.in)
07:15:49 --- join: Lowl3v3l (~Lowl3v3l@dslb-002-203-152-091.002.203.pools.vodafone-ip.de) joined #osdev
07:19:30 --- join: promach_ (~promach@bb219-74-174-136.singnet.com.sg) joined #osdev
07:27:36 --- quit: HeTo (Quit: changing realname)
07:27:55 --- join: HeTo (henkka@battery.modeemi.fi) joined #osdev
07:32:55 --- join: hmmmm (~sdfgsf@pool-72-79-160-70.sctnpa.east.verizon.net) joined #osdev
07:36:40 <glauxosdever> I started committing code again (it's for a UNIX-like system as I thought that some compatibility is better than a superior design). Anyone willing to review the initial things? https://gitlab.com/glaux/glaux
07:36:41 <bslsk05> ​gitlab.com: Glaux / glaux · GitLab
07:36:43 --- quit: angel0xff (Ping timeout: 264 seconds)
07:38:19 <sortie> glauxosdever is experienced and is starting with a bootsector / bootloader
07:38:52 <sortie> I already gave it a quick look, anyone see any other things glauxosdever should be doing? (bugs, documentation, unit testing, etc.)
07:42:26 <Lowl3v3l> i like your owl @glauxosdever
07:43:10 <glauxosdever> Thanks. It's an old one
07:44:00 --- join: celadon (~celadon@37.170.195.160) joined #osdev
07:44:06 <Lowl3v3l> why do you assume i386 and not something with sse though?
07:44:33 <bcos_> glauxosdever: Relocating the code (possibly on top of the current stack) and then setting up stack is potentially dangerous
07:44:42 <glauxosdever> Because I'm not using sse yet
07:45:08 <glauxosdever> bcos_: Right. Didn't think of that!
07:45:53 <glauxosdever> Hm, although a NMI would have to happen. I can disable NMIs maybe or is there a better idea?
07:46:18 <glauxosdever> Set the stack first?
07:46:34 <Lowl3v3l> no you can't mask nmi's
07:47:01 * bcos_ desn't agree with ever disabling NMI - they indicate hardware failures that shouldn't be ignored. Better to set IDT limit to zero (to guarantee "triple fault on hardware failure" rather than risking undefined who-knows-what)
07:47:17 <Lowl3v3l> +1
07:47:38 <glauxosdever> Shouldn't this happen though when enabling protected mode?
07:47:52 <bcos_> Should be able to leave normal (maskable) IRQs enabled - set stack to somewhere safe (neither old or new location of code), relocate, jump
07:48:29 <bcos_> I'm sure Intel say "disable NMIs" somewhere. Intel are wrong.
07:49:15 --- quit: celadon (Ping timeout: 255 seconds)
07:49:59 <glauxosdever> Ok, so I'll do that. Anything else?
07:50:02 --- join: celadon (~celadon@37.170.195.160) joined #osdev
07:50:36 <bcos_> I also wouldn't recommend using CLI to disable IRQs when changing to protected mode for the last time - better to mask IRQs (in PIC) then do a few NOPs to give BIOS a chance to handle any unhandled IRQs, so that you don't end up with "PIC jam" later
07:50:49 --- quit: Tobba (Ping timeout: 240 seconds)
07:53:01 --- quit: flacks (Ping timeout: 256 seconds)
07:53:03 <glauxosdever> I'm still far from changing to protected mode for the last time, but I'll apply your advice when time will come
07:53:05 --- quit: grouse (Quit: Leaving)
07:53:09 --- quit: celadon (Read error: Connection reset by peer)
07:53:49 <bcos_> glauxosdever: Where is "loader" (from the line "call loader" in the file "_start.s")?
07:53:58 <glauxosdever> It's in loader.c
07:54:11 <bcos_> Oh..
07:54:27 --- join: flacks (flacks@184.91.69.131) joined #osdev
07:54:32 <glauxosdever> It just outputs a characted 'A' to 0xB8000, didn't query EDID or set the framebuffer yet
07:56:37 --- join: xenos1984 (~xenos1984@22-164-191-90.dyn.estpak.ee) joined #osdev
07:57:00 <glauxosdever> Anything else?
07:57:04 <bcos_> Ah - I see - "_start.S" just loads the rest of the boot loader, then sets up 32-bit protected mode (initially) so "loader.c" can be 32-bit; then (later) I guess you'll switch between protected mode/C and real mode/assembly where needed (to get memory map, etc from BIOS)
07:57:14 <glauxosdever> Exactly
07:57:24 <bcos_> That should be fine :-)
07:57:48 <bcos_> ..although there's a risk of losing IRQs and confusing/breaking BIOS if you're in protected mode with IRQs disabled for too long
07:59:10 --- join: angel0xff (~zzz@158-58-227-127.sf.ddns.bulsat.com) joined #osdev
07:59:23 <glauxosdever> That implies I shouldn't "sti" before "call loader"
08:03:38 <bcos_> D'oh - how are you in protected mode with IRQs enabled?
08:04:26 <bcos_> ^ I do this; but I setup a protected mode IDT and protected mode interrupt handlers (which switch back to real mode and call the real mode interrupt handler and switch back)
08:06:00 <bcos_> The easier alternative (that I've also used) is to have IRQs disabled while in protected mode, but have a "do nothing" function that switched to real mode and enables IRQs and does a few NOPs, then disables IRQs again and switches back to protected mode...
08:06:10 --- join: Asu (~sdelang@103.197.136.77.rev.sfr.net) joined #osdev
08:06:31 <bcos_> ...where the idea is to sprinkle calls to "do nothing" in anything that might take too long, to give BIOS a chance to handle its IRQs
08:09:43 --- quit: Asu` (Ping timeout: 240 seconds)
08:10:12 <glauxosdever> I'll probably disable interrupts for now while in protected mode
08:11:02 <glauxosdever> As for the other functions, test_disk_ext, read_sectors, test_a20, etc?
08:16:25 <bcos_> "call enable_a20" (which returns "carry = set = failed") and then ignore the returned status/carry and crash if it failed?
08:17:34 <glauxosdever> Oops. Forgot to handle that
08:17:55 <MrOnlineCoderX> it is a silly question, but anyway: given an 20-bit address, a bit mask (0xFFFFF000) and an target page entry (which is just a uintptr), how can I apply this address to it? just stuck with bitwise logic
08:18:13 <bcos_> glauxosdever: Could be optimised a bit too (e.g. replace a lot of pushes/pops with a "these registers are trashed by this routine" comment); but that's not really important at this stage
08:18:58 <glauxosdever> Since it gets executed once per booting, I don't care about optimising it. I care more about clarity
08:19:06 <bcos_> MrOnlineCoderX: Given a 20-bit physical address (and a 96-bit virtual address)?
08:19:38 <bcos_> glauxosdever: Sounds like a nice theory until you have to add something (e.g. TPM support) and can't make it fit in 512-bytes
08:19:40 <bcos_> ;-)
08:19:50 <MrOnlineCoderX> ah, my bad, i receive a normal physical address as uintptr_t, I need to apply it to the page entry by bitmasking 0xFFFFF000
08:19:55 <glauxosdever> True
08:19:57 --- join: Tobba (~Tobba@h-25-157.A159.priv.bahnhof.se) joined #osdev
08:20:03 <MrOnlineCoderX> but only 20 bits of given address are set
08:20:15 <MrOnlineCoderX> are important, to be exact
08:20:28 <bcos_> MrOnlineCoderX: Usually it works the other way - you convert a virtual address into a physical address (and never convert physical address into virtual)
08:20:30 --- nick: MrOnlineCoderX -> MrOnlineCoder
08:21:01 <glauxosdever> But this is for El-Torito, where I have 2048 bytes. For HDD, I won't do all of that in 512 bytes. Like you say, it won't fit. I'll postpone a20 and protected mode too
08:21:16 <bcos_> Erm
08:21:41 <bcos_> glauxosdever: For El-Torito you have up to about 500 KiB - don't need to mess about with "int 0x13 extensions" to load the remainder
08:21:56 <bcos_> (excluding rare buggy BIOSeses)
08:22:07 --- quit: Tobba (Client Quit)
08:22:27 --- join: Tobba (~Tobba@h-25-157.A159.priv.bahnhof.se) joined #osdev
08:22:32 <MrOnlineCoder> i need to implement function like set_page_table_entry_address(uintptr_t pte, uintptr_t addr) so it sets page table address to real physical page
08:22:49 <glauxosdever> It's these rare buggy BIOSes that complicate this :-(
08:23:09 <bcos_> glauxosdever: Will you be supporting computers from ~20 years ago?
08:23:46 <bcos_> MrOnlineCoder: You'll need more details; like how many levels of paging there are, how many entries per page table, etc
08:24:11 <glauxosdever> Probably not. But I don't want the code to mysteriously fail either
08:25:09 <bcos_> glauxosdever: That's fair, but you can just put a magic value at a known offset, test if the value was loaded by BIOS, and print a "boot loader not fully loaded" error message
08:25:50 <MrOnlineCoder> ok, forget about paging, given this 0000 0000 0000 1011 for example, and this: 0001 0110 1001 0000, how can I 'apply' second number to first, so it will look like this: 0001 0110 1001 1011 :D
08:26:03 <bcos_> Of course if you really need to support old computers you can do the same thing, except fall back to a "load the remainder" instead of doing the error message (so that for almost all computers "load the remainder" is skipped)
08:26:30 <bcos_> MrOnlineCoder: That's a bitwise OR
08:26:31 --- quit: manzerbredes (Ping timeout: 264 seconds)
08:26:56 <bcos_> (or maybe XOR, but you probably don't want that)
08:27:50 <glauxosdever> That's also a solution. Before I started this code, I was writing a bootloader in nasm (but never released it). I did exactly that (as you suggested in an osdev forum thread). But I thought it may more fail-safe if I always load the remainder (as the magic value may be by chance the correct one)
08:27:53 <MrOnlineCoder> and what if second number looks like: 0000 0001 0110 10001 (shifted one), I need to bitshift it and then OR?
08:29:08 <bcos_> MrOnlineCoder: Yes - for that it looks like you'd want to shift left by 4 (or add it to itself 4 times, or multiply by 16, or ..)
08:29:14 --- join: Cynosure_ (485df870@gateway/web/freenode/ip.72.93.248.112) joined #osdev
08:29:35 <Cynosure_> Hello, I was wondering if anyone here has any idea why a gcc gas macro might not be fully expanding out
08:30:21 <bcos_> Cynosure_: My guess is, it is fully expanding out (but not expanding to what you thought it should)
08:31:04 <MrOnlineCoder> bcos_, but if I have 0101 0001 (base) and 0000 1000 (target), so I need it to be 1000 0001, but with OR it will be 1101 0001 which is not what i am looking for
08:31:09 <glauxosdever> Ok, fixed the missing "jc" after "enable_a20"
08:31:16 <Cynosure_> Hmm thats also a very likely possibility.
08:31:40 <glauxosdever> Now it displays a nice error message if I artificially make it to always return CF=set
08:31:42 <MrOnlineCoder> i have a mask for this high bits which i need to set
08:33:30 <bcos_> MrOnlineCoder: Like maybe "page_offset = virtual_address & (page_size-1); entry_number = virtual_address >> page_size_in_bits"?
08:34:09 --- quit: Amaan (Quit: Connection closed for inactivity)
08:34:40 <bcos_> ..and then some way to fetch from the page table entry at "page_table[entry_number]" (in the physical address space)?
08:35:05 <lkurusa_> EL TORITO!
08:35:12 <lkurusa_> (delayed :-) )
08:35:39 <glauxosdever> ELTORITO!
08:35:53 <bcos_> ..and do "physical = (page_table[entry_number] & ~(page_size-1)) | page_offset;" to get the final physical address (from the original virtual address)?
08:36:13 <glauxosdever> Ok, pushed the fixed. Is there anything else you can spot?
08:38:14 <bcos_> glauxosdever: "call enable_a20; mov $error_no_a20, %si; jc .error"
08:38:40 <bcos_> (without jumping to "no_a20")
08:38:50 <bcos_> ..probably similar for the other errors
08:39:11 <MrOnlineCoder> bcos_, thanks, but my question is not really about fetching physcial addr from virtual one, check out this image: https://wiki.osdev.org/File:Page_table.png . I need to be bits 31-11 an address that I want. How can I bitwise set it?
08:39:12 <bslsk05> ​wiki.osdev.org: File - OSDev Wiki
08:39:25 <glauxosdever> I fixed it now
08:40:00 <glauxosdever> Did you reload the repo?
08:40:23 <glauxosdever> There is a "jc no_a20"
08:40:33 <bcos_> glauxosdever: After A20 fix, yes
08:41:11 <bcos_> MrOnlineCoder: First you have to make sure page table is mapped into the virtual address space somewhere so you can access page table entries
08:41:31 <MrOnlineCoder> i am setting up the paging
08:41:35 <MrOnlineCoder> nothing is mapped
08:41:41 <MrOnlineCoder> i need this function to do the real map
08:42:43 <bcos_> Ah, in that case usually it's more like "*PTE = physical | flags;" where the physical address is aligned on a page boundary so all of the lower bits are clear and don't need to be masked off
08:42:52 <glauxosdever> bcos_: Anyway, there is a reason they say that assembly is error-prone :-)
08:43:24 <glauxosdever> Or maybe I just forgot some assembly things from the good old days :-)
08:43:33 --- join: zeus1 (~zeus@197.239.3.153) joined #osdev
08:44:39 <MrOnlineCoder> and what if i set my flags separately, like page_set_flag(pte_t* pte, int index)
08:45:11 <MrOnlineCoder> so there is separate page_set_address(pte_t* pte, physaddr_t addr)
08:45:38 <bcos_> glauxosdever: I suspect you might have misunderstood my last suggestion (e.g. getting rid of "no_a20:" piece that you've just added by loading SI before doing "jc .error")
08:46:12 <glauxosdever> Ah
08:46:26 <glauxosdever> It should also work
08:46:41 <bcos_> ..mostly, it'd make the code a little tidier (less "branch to a jump")
08:47:35 <glauxosdever> Yes, definitely better
08:47:35 --- quit: ornitorrincos (Ping timeout: 248 seconds)
08:48:39 --- quit: cruxeter (Ping timeout: 248 seconds)
08:49:07 <bcos_> glauxosdever: Only other thing I'd mention is that maybe GDT could be aligned - other than that I'd say "good enough for now" :-)
08:49:49 --- join: cruxeternus (~cruxetern@secspeed.com) joined #osdev
08:53:32 <glauxosdever> 8-byte aligned?
08:54:04 <bcos_> If you can :-)
08:54:13 <MrOnlineCoder> bcos_, haha, I figured it out: *pte = addr | (*pte & 0xFFF); anyway thanks for the help
08:54:16 <glauxosdever> I sure can
08:54:55 <bcos_> MrOnlineCoder: If you're creating the page tables for the first time, then they'd be empty and it doesn't make sense to keep the "not set yet" previous flags
08:55:31 <MrOnlineCoder> but that would cause problems if i want to remap my page table in the future, wouldn't it?
08:55:42 <MrOnlineCoder> if i dont care about previous state
08:55:56 <bcos_> Where did the flags come from?
08:56:11 <bcos_> ..and why are you setting flags if you don't know if a page will/won't be "present"?
08:56:14 --- join: ornitorrincos (~ornitorri@163.172.62.96) joined #osdev
08:56:14 --- quit: ornitorrincos (Changing host)
08:56:14 --- join: ornitorrincos (~ornitorri@unaffiliated/ornitorrincos) joined #osdev
08:56:33 <MrOnlineCoder> i am setting it up, i set the flags
08:57:03 --- quit: Tobba (Ping timeout: 256 seconds)
08:57:23 <bcos_> So you do one loop to fill a page table with potentially wrong flags (without setting the physical addresses correctly); then have a whole second loop to set the physical addresses (but not the flags)?
08:57:35 --- quit: leinne (Ping timeout: 250 seconds)
08:57:44 <glauxosdever> Alright. That's a lot of fixes :-)
08:57:51 <glauxosdever> I can't thank you enough
08:57:56 <bcos_> glauxosdever: :-)
08:58:11 --- join: isaac_ (~isaac@host81-129-159-113.range81-129.btcentralplus.com) joined #osdev
08:58:27 <bcos_> MrOnlineCoder: I'd suggest writing a "set_PTE(uint physical_address, int flags) { }" function and calling that in a "for each page I want ( set_PTE(.." loop
08:58:38 <MrOnlineCoder> bcos_, no, I just like to set each thing seperately
08:58:41 <MrOnlineCoder> ok, thanks
08:58:46 --- join: manzerbredes (~loic@2a01cb0885e31500cfc30bb534d5bc37.ipv6.abo.wanadoo.fr) joined #osdev
08:58:54 --- nick: isaac_ -> isaacwoods
08:59:56 --- join: leinne (~leinne@gateway/tor-sasl/leinne) joined #osdev
09:07:35 --- join: Tazmain (~Tazmain@unaffiliated/tazmain) joined #osdev
09:13:34 --- quit: Cynosure_ (Quit: Page closed)
09:14:54 --- quit: m_t (Quit: Leaving)
09:26:27 --- quit: MindlessDrone (Ping timeout: 240 seconds)
09:29:20 --- join: Tobba (~Tobba@h-25-157.A159.priv.bahnhof.se) joined #osdev
09:36:51 --- quit: alyptik (Ping timeout: 260 seconds)
09:37:08 --- quit: SopaXorzTaker (Quit: Leaving)
09:41:50 <Ameisen> Is there a shorthand in sh for, say
09:42:03 <Ameisen> cp -f /some/directory/file [the same directory]other_file?
09:42:42 --- join: celadon (~celadon@66.157-14-84.ripe.coltfrance.com) joined #osdev
09:51:23 <Lowl3v3l> Ameisen: cd <somedirectory> && cp -f src dest
09:51:45 <Ameisen> without changing directory
09:52:00 --- join: Vulcan (~Vulcan@rc137-3-88-172-220-120.fbx.proxad.net) joined #osdev
09:52:19 --- join: alyptik (ayy@cpe-76-173-133-37.hawaii.res.rr.com) joined #osdev
09:52:44 <Lowl3v3l> how obscure do you want it?
09:53:12 <Ameisen> as obscure as it needs to be
09:53:30 <Lowl3v3l> what is your goal?
09:53:36 <Ameisen> make it easier to type commandsl
09:53:38 <Ameisen> commands*
09:53:54 <Lowl3v3l> i dont know wether there's an idiomatic way, but you can use find
09:54:07 <Lowl3v3l> okay my solution is definitely not easier xD
09:54:10 <Ameisen> I'm surprised that there's no token that's accpeted like # or something
09:54:15 <Ameisen> or ~~
10:02:11 <Lowl3v3l> shells are not contextual like that
10:10:02 <newnix> Ameisen: you could always construct a function that takes $1 as the directory to use and then passes $2 and $3 to a constructed command of `cp -f $1/$2 $1/$3`
10:10:49 <Ameisen> I could also alter the source for the cp command to add a symbol for it :|
10:10:56 <Ameisen> and mv and whatnot
10:11:13 <newnix> sure, if you wanted to, but that's not using your shell
10:13:27 --- join: Asu` (~sdelang@77.136.86.200) joined #osdev
10:15:10 --- quit: Lucretia (Read error: Connection reset by peer)
10:15:11 --- quit: jack_rabbit (Quit: Leaving)
10:15:50 --- quit: promach_ (Ping timeout: 244 seconds)
10:15:55 --- join: Lucretia (~Luke@pdpc/supporter/active/lucretia) joined #osdev
10:16:11 --- join: dennis95 (~dennis@i577BCEAA.versanet.de) joined #osdev
10:16:51 --- quit: Asu (Ping timeout: 255 seconds)
10:20:51 --- join: bemeurer (~bemeurer@148.64.103.131) joined #osdev
10:26:51 --- quit: Vulcan (Remote host closed the connection)
10:29:34 --- join: MindlessDrone (~MindlessD@unaffiliated/mindlessdrone) joined #osdev
10:30:49 --- quit: zeus1 (Ping timeout: 240 seconds)
10:39:15 --- join: tacco| (~tacco@i59F4A124.versanet.de) joined #osdev
10:46:58 --- join: jermar (~jermar@93-153-64-87.tmcz.cz) joined #osdev
10:49:13 --- quit: bemeurer (Quit: WeeChat 2.1)
10:54:07 --- quit: MindlessDrone (Ping timeout: 264 seconds)
10:55:27 --- join: MindlessDrone (~MindlessD@unaffiliated/mindlessdrone) joined #osdev
10:56:24 --- quit: angel0xff (Ping timeout: 276 seconds)
11:00:28 --- join: Cynosure_ (485df870@gateway/web/freenode/ip.72.93.248.112) joined #osdev
11:01:00 --- join: aalm (~aalm@37-219-73-181.nat.bb.dnainternet.fi) joined #osdev
11:01:02 <Cynosure_> Does anyone have any good resources that talk about how to deal with the default intel exceptions? Like for example how to deal with the divide by zero exception.
11:05:35 <lucus16> Ameisen: cp -f /some/directory/{file,other_file}
11:10:21 --- quit: m3nt4L (Remote host closed the connection)
11:11:27 --- join: angel0xff (~zzz@158-58-227-127.sf.ddns.bulsat.com) joined #osdev
11:13:55 --- quit: nwm (Ping timeout: 264 seconds)
11:18:13 --- quit: MrCivvy (Ping timeout: 260 seconds)
11:21:26 --- join: MrCivvy (MrCivvy@gateway/shell/panicbnc/x-ntsxjmttmkbkqdpg) joined #osdev
11:22:28 --- quit: asymptotically (Remote host closed the connection)
11:29:08 --- join: nortega (~nortega@gateway/tor-sasl/deathsbreed) joined #osdev
11:31:45 --- join: pie__ (~pie_@unaffiliated/pie-/x-0787662) joined #osdev
11:36:20 <MrOnlineCoder> if enabling paging causes qemu to restart (possibly triple-fault), what are possible reasons to it?
11:40:46 --- quit: leinne (Disconnected by services)
11:40:57 --- join: drakonis (~drakonis@unaffiliated/drakonis) joined #osdev
11:41:06 --- join: leinne_ (~leinne@gateway/tor-sasl/leinne) joined #osdev
11:47:40 --- quit: drakonis (Remote host closed the connection)
11:49:43 --- join: teej (uid154177@gateway/web/irccloud.com/x-jinrrcjewcrrmijt) joined #osdev
11:51:33 --- quit: jjuran (Quit: jjuran)
11:53:47 --- quit: teej ()
11:58:14 <geist> MrOnlineCoder: more or less anything. enabling paging when it wasn't already running is about the most 'dangerous' thing you can do
11:58:27 <geist> ie, many things have to be perfectly set up or it wont work
11:58:39 <MrOnlineCoder> is there any way to efficiently debug this?
11:58:49 <geist> the biggest problem being that the instant you switch it on the code you're currently running needs to be identically mapped on the other side
11:59:14 <MrOnlineCoder> i identity map the first 4 mb
11:59:26 <geist> keep in mind you *think* you do
11:59:27 <MrOnlineCoder> so it should just enable it and then halt the execution
11:59:32 <geist> whether or not you actually do is in question
11:59:33 --- join: drakonis (~drakonis@unaffiliated/drakonis) joined #osdev
11:59:48 <geist> so yeah, that would be a good first step. if you have an emulator like bochs or qemu you can trace it
12:00:04 <geist> see how it blows up. tracing all the exceptions might help(assuming it doesn't just make it to paging and then halt)
12:00:13 <geist> so that'll be a good first step. see if it survives the switch first
12:06:04 --- quit: [MisbehavingOs] (Quit: There are paranoid crossroads and shipwreck alleys.)
12:07:50 --- join: [UsualVictim] (~while@unaffiliated/awaxx/x-0928682) joined #osdev
12:14:24 --- quit: booyah (Ping timeout: 276 seconds)
12:20:28 --- quit: S_Gautam (Quit: Connection closed for inactivity)
12:24:36 --- join: booyah (~bb@193.25.1.157) joined #osdev
12:27:43 --- join: Vulcan (~Vulcan@rc137-3-88-172-220-120.fbx.proxad.net) joined #osdev
12:30:42 --- nick: nchambers -> uplime
12:31:57 --- quit: Vulcan (Ping timeout: 240 seconds)
12:34:40 --- join: Vulcan (~Vulcan@rc137-3-88-172-220-120.fbx.proxad.net) joined #osdev
12:37:20 --- join: freakazoid0223 (~frkazoid@pool-108-52-244-197.phlapa.fios.verizon.net) joined #osdev
12:39:45 --- quit: baschdel (Read error: Connection reset by peer)
12:40:38 --- quit: pie__ (Read error: Connection reset by peer)
12:41:15 --- join: pie__ (~pie_@unaffiliated/pie-/x-0787662) joined #osdev
12:45:13 --- quit: nortega (Quit: Vivu lante, vivu feliĉe!)
12:46:50 --- quit: Vulcan (Remote host closed the connection)
12:49:55 --- join: Vulcan_ (~Vulcan@rc137-3-88-172-220-120.fbx.proxad.net) joined #osdev
12:52:27 --- join: kuldeep_ (~kuldeep@unaffiliated/kuldeepdhaka) joined #osdev
12:54:58 <doug16k> what sorcery does fuse (such as curlftpfs) use to block kill -9 ?
12:55:24 <doug16k> can't kill a cp
12:55:35 --- quit: lldd_ (Quit: Leaving)
12:55:58 <_mjg_> the kernel code most likely puts the thread in an uninterruptible sleep
12:56:05 <_mjg_> i mean the kernel side of fuse
12:56:06 * DusXMT would try kill -11
12:56:35 <_mjg_> so not really sorcery, if anything it is a missed failure mode
13:00:01 --- quit: Cynosure_ (Ping timeout: 252 seconds)
13:00:50 --- join: jjuran (~jjuran@172.56.34.195) joined #osdev
13:01:17 <CompanionCube> DusXMT: doubt a s SEGV would change it being blocked in kernelspace
13:02:50 <_mjg_> it will have no effect
13:03:04 <_mjg_> the code is blocked s waiting for a wakeup on a wait channel
13:03:16 <_mjg_> any signal processin gwill be done after it gets back to the user<->kernel boundary
13:03:31 <_mjg_> but it wont happen until i/o path wakes it up
13:08:21 --- quit: manzerbredes (Ping timeout: 276 seconds)
13:10:07 <DusXMT> Good points indeed, I just find that in in practice, applications often catch SIGKILL, but less often SIGSEGV; and since fuse-based drivers run in userspace, what I thought is that the programmer perhaps tried to make it more "reliable" by catching SIGKILL during file operations to prevent incomplete transfers or such
13:10:54 <DusXMT> (that was at least my line of thought for trying -11 before opting for a reboot)
13:10:59 --- join: MDead (~MDude@c-73-187-225-46.hsd1.pa.comcast.net) joined #osdev
13:12:06 --- quit: MDude (Ping timeout: 260 seconds)
13:12:09 --- nick: MDead -> MDude
13:12:36 --- quit: pie__ (Read error: Connection reset by peer)
13:13:19 --- join: pie__ (~pie_@unaffiliated/pie-/x-0787662) joined #osdev
13:14:36 --- join: zeus1 (~zeus@197.239.3.153) joined #osdev
13:20:32 --- quit: pie__ (Read error: Connection reset by peer)
13:20:33 --- quit: jermar (Ping timeout: 256 seconds)
13:21:18 --- join: pie__ (~pie_@unaffiliated/pie-/x-0787662) joined #osdev
13:24:49 --- join: typikal (ayy@cpe-76-173-133-37.hawaii.res.rr.com) joined #osdev
13:24:59 --- quit: alyptik (Ping timeout: 268 seconds)
13:25:56 --- nick: typikal -> alyptik
13:27:08 --- join: qeos (~qeos@ppp91-79-249-247.pppoe.mtu-net.ru) joined #osdev
13:28:37 --- quit: drakonis (Read error: Connection reset by peer)
13:29:31 --- quit: MDude (Ping timeout: 264 seconds)
13:30:46 --- quit: zeus1 (Ping timeout: 260 seconds)
13:31:13 --- quit: leinne_ (Remote host closed the connection)
13:31:40 --- join: drakonis (~drakonis@unaffiliated/drakonis) joined #osdev
13:32:10 <MrOnlineCoder> my page directory shouldn't be aligned at 4kb, or should it?
13:32:56 <MrOnlineCoder> only the addresses of page tables/pages in it, yea?
13:33:24 <doug16k> MrOnlineCoder, all page tables must be aligned on a 4KB boundary, including the page directory
13:33:30 --- join: spare (~user@unaffiliated/spareproject) joined #osdev
13:33:32 <MrOnlineCoder> argh
13:34:10 <doug16k> look at the format of cr3. the low 12 bits are not part of the address
13:34:15 <MrOnlineCoder> it is not mentioned in https://wiki.osdev.org/Paging or I am wrong?
13:34:16 <bslsk05> ​wiki.osdev.org: Paging - OSDev Wiki
13:37:31 <_mjg_> DusXMT: you can't catch sigkill
13:37:38 <MrOnlineCoder> anyway there is strange thing, I print my page directory address to the screen and then dump the registers after I load it into cr3, the value in cr3 is 107000 while my PD is 106000 (4kb difference)
13:37:40 <_mjg_> DusXMT: (11). you can catch sigterm
13:40:06 --- quit: vmlinuz (Quit: Leaving)
13:40:09 --- quit: jjuran (Remote host closed the connection)
13:40:38 --- join: jjuran (~jjuran@172.56.34.195) joined #osdev
13:40:38 <DusXMT> _mjg_: huh, that's strange, I recall eg. aptitude managing to catch it
13:43:13 --- join: bemeurer (~bemeurer@stdcognition.static.monkeybrains.net) joined #osdev
13:43:29 --- quit: doug16k (Remote host closed the connection)
13:46:55 <_mjg_> erm. you can't sigkill (9). yo ucan catch sigsegv (9) and sigterm (15)
13:47:09 <_mjg_> sigh, sigsegv(11)
13:48:10 <DusXMT> Then my memory is probably faulty, but I do remember it happening... it was several years ago though
13:50:16 --- join: m_t (~m_t@p5DDA31B0.dip0.t-ipconnect.de) joined #osdev
13:50:56 --- join: leinne (~leinne@gateway/tor-sasl/leinne) joined #osdev
13:58:33 <MrOnlineCoder> if I have a page_directory struct with array of page_directory_entries in as only 1 member, will pointer to this struct be the same as pointer to the array itself? (so I can pass it to cr3)
14:03:57 --- quit: booyah (Ping timeout: 245 seconds)
14:05:57 --- quit: stee3 (Ping timeout: 240 seconds)
14:13:06 --- quit: spare (Quit: leaving)
14:15:21 --- join: stee (~junk@66.252.139.92) joined #osdev
14:20:55 --- quit: glauxosdever (Quit: leaving)
14:22:05 --- quit: Vulcan_ (Remote host closed the connection)
14:22:06 --- join: Kimundi__ (~Kimundi@i577A9F42.versanet.de) joined #osdev
14:25:11 --- quit: CWiz (Ping timeout: 248 seconds)
14:29:03 --- join: nicht (~nicht@2804:7f1:2080:919e:3544:fe79:a8e7:e602) joined #osdev
14:32:01 --- join: CWiz (~cipherwiz@216.21.169.52) joined #osdev
14:38:29 --- join: doug16k (~dougx@172-97-186-251.cpe.distributel.net) joined #osdev
14:39:08 <MrOnlineCoder> AH, finally I've managed to set up paging correctly! thanks to everyone who helped me :D
14:39:19 <doug16k> nice
14:39:37 <yrlf> Usually, yes. In C struct layout, definitely
14:40:06 <doug16k> for page tables?
14:40:30 <MrOnlineCoder> bcos_, I ve made a single function to set the page, like you said, just page = addr | flags, it worked, there was a problem with my function which set the address.
14:41:20 <MrOnlineCoder> is &page_table == &page_table.entries[0] (entires is the only member)
14:41:37 <doug16k> entries? a page table isn't a structure. it is an array
14:41:50 <doug16k> what other fields are there? none
14:41:54 <doug16k> superfluous
14:42:04 <yrlf> In a C struct, a struct with only one field has the same layout and alignment as that field
14:42:14 <MrOnlineCoder> that what I asked
14:43:12 <doug16k> that's why I suggested just using a pointer yesterday. then you can index into it naturally with [] syntax directly, and it can represent a pointer to an entire page table, or a specific entry, trivially
14:43:13 --- join: pie_ (~pie_@unaffiliated/pie-/x-0787662) joined #osdev
14:43:18 <yrlf> If it were a C++ object (not POD), the first member is afaik not guaranteed to be at the start.
14:43:34 <doug16k> a pointer to a pte*
14:43:42 --- quit: pie__ (Read error: Connection reset by peer)
14:44:22 <doug16k> why would you want to make a huge 4KB structure anyway? it is an array of int sized things, why not represent it the most efficient way, as the address of an entry?
14:44:33 <doug16k> uintptr_t sized*
14:45:08 <jjuran> There's a Slashdot article about Fuchsia
14:45:32 <jjuran> Hopefully Google's website can handle the traffic :-)
14:47:23 <MrOnlineCoder> doug16k, this is most likely because of my love for abstraction, taken from other languages, probably I will fix it as you said. but doesn't that mean that my pte's will be dynamically alocated?
14:48:29 <doug16k> not necessarily dynamically. an array of pte with 1024 elements would represent it equally well
14:48:53 --- quit: jjuran (Quit: jjuran)
14:48:55 <MrOnlineCoder> wouldn't it be the same as my struct now?
14:49:11 <doug16k> how do you represent one page table entry with that?
14:49:25 <geist> uh oh. slashdotted!
14:49:49 <doug16k> MrOnlineCoder, it adds nothing other than superfluous instances of "entries" in the code
14:49:56 <MrOnlineCoder> [00:48:07] <doug16k> not necessarily dynamically. an array of pte with 1024 elements would represent it equally well
14:50:19 <DusXMT> MrOnlineCoder: You can't iterate over the fields of a struct, you have to explicitly set the individual fields
14:51:26 <doug16k> are you making the page directory in C by making a global variable, of that 4KB sized 1024 entries struct?
14:51:59 <MrOnlineCoder> I see what you are trying to tell me, yes, currently it is
14:52:19 <doug16k> that works, but there are better ways to do it
14:52:31 <MrOnlineCoder> surely I am not happy that my first-time page directory takes dozens of memory space
14:52:38 <doug16k> you already need to conjure up pages when you make page tables, right? why not conjure up the page directory the same way?
14:52:42 <geist> dozens of memory space!
14:53:08 <MrOnlineCoder> xd
14:53:17 <geist> sorry, was just funny
14:53:20 <MrOnlineCoder> bytes*
14:53:49 <MrOnlineCoder> 0:53 here, there is dozens of trash in my head xd
14:53:51 <doug16k> i.e. when you map a page at 0x12345000 you need to lookup 0x12345000>>22 in the page directory, and if it's null, conjure up a new page table and put its address at pd[0x12345000>>22]
14:54:13 <doug16k> so create the page directory that same way, calling whatever allocates a new page table
14:54:51 <doug16k> you already had to solve making new page tables, just make the page directory itself with that same mechanism
14:55:52 <doug16k> s/mak/allocat/
14:56:26 --- join: MDude (~MDude@c-73-187-225-46.hsd1.pa.comcast.net) joined #osdev
14:57:48 <doug16k> then you can represent the page directory as simply a pointer to a page table entry, which is the first entry, then natural C pointer indexing behaviour makes it also an array
14:58:02 <MrOnlineCoder> wow, thanks, too many details
14:58:16 <doug16k> that_ptr[0] thru that_ptr[1023]
14:59:11 --- join: lordofthekebabs (4ea06f78@gateway/web/freenode/ip.78.160.111.120) joined #osdev
14:59:58 --- join: Icefoz (~Icefoz@roc.alopex.li) joined #osdev
15:00:54 <lordofthekebabs> good night! I am confused about the desktop envioroments ... I mean os x has aqua, some linux distros use gnome, windows has its own ... my question is when should I learn aboout GUI while developing a operating system. I am trying to approach learning OS in a long way and trying to go from top to down starting from human taught writing high level programs to learning about compilers and and comp architecture
15:01:03 --- quit: vdamewood (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
15:01:09 <lordofthekebabs> I am just not sure weather should I learn gtk+ at the moment or not
15:01:50 <Icefoz> Learning any GUI API will teach you a lot about how such things work, and then you can start digging down into a particular system from there.
15:01:58 --- quit: dennis95 (Quit: Leaving)
15:01:58 <Icefoz> But starting from the top and going down is an unusual approach.
15:02:07 <lordofthekebabs> really ?
15:02:14 <lordofthekebabs> is it a bad approach ?
15:02:26 <Icefoz> Different approaches are useful for different people.
15:02:45 <Icefoz> But GUI's are big and complicated.
15:02:48 <doug16k> MrOnlineCoder, don't worry about it, it's fine as a global variable or whatever. just suggesting a more general approach which would be more suitable later on when you end up with multiple page directories (one per process)
15:03:21 <MrOnlineCoder> doug16k, np, optimization is always a good thing, I just wanted to setup the basics
15:03:25 <chrisf> recursive mapping isnt quite so cute if you're using PAE
15:04:00 <lordofthekebabs> Icefoz I am trying to build a text editor right now for the high level programs the thing is i can learn gtk and try to build it that way but even though for a learning standpoint
15:04:05 <lordofthekebabs> it seems like a overkill
15:04:17 <lordofthekebabs> I can easily and more fastly develop it with PyQT
15:04:39 <lordofthekebabs> or am i wrong
15:04:47 <Icefoz> lordofthekebabs: But would you learn as much about how things work?
15:05:36 <Icefoz> lordofthekebabs: The question is, what are you interested in knowing most?
15:05:59 <lordofthekebabs> Icefoz interested in reaching the end goal of building a tablet OS
15:06:23 <lordofthekebabs> I dont care if gtk+ or QT or something else takes me there
15:06:53 <MrOnlineCoder> doug16k, is it ok to have my memory look like: bios, bootloader (1mb) | 3 mb for kernel itself | 1 mb for kernel heap | rest for user pages, so my page frame allocator would put pages right after the kernel heap
15:06:54 <lordofthekebabs> I am just wondering if gtk+ will help me get there if it does when should I learn it in the high level progams or when I start to dig deeper
15:07:27 <doug16k> MrOnlineCoder, sure. if/when that becomes inadequate, improve it then
15:07:52 --- join: ALowther_ (~quassel@107.144.136.35) joined #osdev
15:07:54 <Icefoz> lordofthekebabs: "tablet OS" is a very complicated thing and the graphical side of it is just one part.
15:08:38 <Icefoz> So you might want to do some research on the different pieces of OS's and how they interact.
15:08:40 --- quit: ALowther_ (Remote host closed the connection)
15:08:49 --- join: pie__ (~pie_@unaffiliated/pie-/x-0787662) joined #osdev
15:09:57 <doug16k> MrOnlineCoder, it's a good idea to make things "good enough" at first, and not perfect
15:10:00 <lordofthekebabs> yes i will i am already gathering resources but as i said and you said a 'unusual ' approach i am not there yet and I need to pass the levels before I start learning the pieces of OS
15:10:05 --- quit: pie_ (Read error: Connection reset by peer)
15:10:07 --- nick: kuldeep_ -> kuldeep_do
15:10:11 <lordofthekebabs> Icefoz may I ask what is the 'usual' way ?
15:10:28 <lordofthekebabs> probably it is a better approach
15:10:32 <geist> bottom up. OSes are intrinsically an abstraction of hardware to one or more users/programs/services
15:10:38 <Icefoz> ^
15:10:46 <geist> so starting at the service level (a gui) is not particularly a useful thing
15:11:05 <geist> so you need to drill down 2 or 3 more levels and then start thinking there
15:11:29 <lordofthekebabs> okay so what is the lowest `bottemest` point i should start ?
15:11:33 <geist> like, what is a computer *really*, how does one write code to run directly on the cpu, how do common operating systems allow multiple programs to run simultaneously, etc
15:11:49 <geist> get familiar with low level programming if you aren't already
15:12:02 <geist> pointers, memory, stacks, some assembly language, etc
15:12:30 <geist> the UI layer (gtk/qt/etc) is extremely abstract from most of this stuff
15:12:41 <lordofthekebabs> yeah you told me that erlier and some links
15:12:48 <lordofthekebabs> I am already learning c at the moment
15:12:50 --- quit: kuldeep (Quit: Its never too late!)
15:12:55 <geist> not sure i did, but okay
15:12:55 <lordofthekebabs> but aside from learning a langauge
15:13:02 <klys> you're writing an editor? what are the features of your editor wishlist?
15:13:02 <yrlf> The first OS level thing to do would probably be a multiboot kernel that just hangs without crashing.
15:13:03 --- nick: kuldeep_do -> kuldeep
15:13:17 <lordofthekebabs> what is the starting point in the bottom ?
15:13:20 --- quit: Belxjander (Quit: AmigaOSv4.1.6+//PowerPC native)
15:13:39 --- join: Belxjander (~Belxjande@sourcemage/Mage/Abh-Elementalist) joined #osdev
15:13:43 <geist> what i just told you before
15:13:43 <klys> starting at the bottom means you are familiar with the prospects
15:13:51 <geist> yes, i gave you a list a little while ago
15:14:15 --- quit: bemeurer (Quit: WeeChat 2.1)
15:14:17 <lordofthekebabs> yes I noted in on my notes and klys what do you mean by prospects ?
15:14:17 <yrlf> If you use Asm, C, and C++ I recommend getting familiar with all the compiler flag juggling needed to make something compile for the nothing-in-the-world-but-me (aka i686-elf or similar) target
15:14:44 <klys> if you think you're interested in a computer, that's fine. computers are like calculators more than they are like editors, though..
15:15:03 <lordofthekebabs> yeah maybe my approach is very bad
15:15:19 --- quit: Kimundi__ (Ping timeout: 240 seconds)
15:15:22 <lordofthekebabs> but I taught trying to build an editor would be much easier than to boot a toy kernel
15:15:39 <yrlf> Computers are like a fusion between a calculator and someone who takes evergthing literally and is very pedantic
15:15:48 <klys> how about writing an editor as simple as possible and then getting a feel for what you wrote it to run on?
15:15:50 <geist> lordofthekebabs: perhaps, but then what is the point?
15:16:00 <geist> if the point is to learn how to write an OS, then start doing that
15:16:04 <geist> dont beat around the bush about it
15:16:23 <klys> unless you had plans for a collaborative editor or one that used extensive data structures
15:16:33 <geist> and yes, it'll seem like a lot of information, but that it is
15:16:56 <lordofthekebabs> yeah you are right i mean I asked erlier in this chat about weather i should learn comp architecture because the bottom point is very sttraight forward there like truth tables than NAND gates than xor adder chips and so on
15:17:11 <lordofthekebabs> but you said comp architecture is good to have but not necessary
15:17:18 <klys> I am not even sure what you mean by writing an editor... :)
15:17:33 <lordofthekebabs> well I taught it would be benefical for learning file systems
15:17:39 <lordofthekebabs> how to get them retrieve them etc.
15:17:55 <klys> perhaps you should write a simple /bin/ls program.
15:18:01 <DusXMT> Writing a full featured Vi implementation, with unicode support, now that's quite the project :)
15:18:03 <lordofthekebabs> its stupid i get it im gonna dive in and learn toying with a simple OS
15:18:05 <geist> like i said, you will *need* to understand how to program at a low level. C like. that level of programming
15:18:17 <geist> pointers, languages that compile to native code. assembly (a bit)
15:18:22 <yrlf> lordofthekebabs in my comp arch class we started with that and then made a dead simple CPU and iteratively added things like MMIO, Caches, Interrupts, ... onto it
15:18:28 <lordofthekebabs> yes im following the KR modern approach
15:18:36 <geist> how cpus work at the lowest 'user' level. ie, instructions, stacks, etc
15:19:01 <lordofthekebabs> yrlf did learnig thata give you a very good adventage or ? it was just very useful
15:19:01 <geist> doesn't mean you need to know how the cpu works internally, but you need to be pretty familiar with the 'programmers view' of a cpu
15:19:18 <lordofthekebabs> okay im gonna dive into all of your link sthan
15:19:19 <lordofthekebabs> than
15:19:39 <yrlf> It really gives you an understanding about how e.g. paging works, how register values end up the way they are, etc.
15:19:43 <klys> lordofthekebabs, did you mean the wiki? http://wiki.osdev.org/
15:19:45 <bslsk05> ​wiki.osdev.org: Expanded Main Page - OSDev Wiki
15:19:50 <yrlf> Makes something like the x86 manual more readable
15:20:00 <lordofthekebabs> well I already knew that thats how i found this chat
15:20:12 <klys> okay
15:20:12 <lordofthekebabs> geist sent some 4-5 links on tutorials on github
15:20:14 <lordofthekebabs> to follow
15:20:18 <lordofthekebabs> i can send it if you would like it
15:20:22 <geist> i did not
15:20:26 <geist> but someone probably did
15:20:27 --- quit: Belxjander (Quit: AmigaOSv4.1.6+//PowerPC native)
15:20:27 <lordofthekebabs> you did not ?
15:20:30 <lordofthekebabs> oh sorry
15:20:32 <lordofthekebabs> probably
15:20:38 <geist> i'm sure i didn't, because i'm not a big tutorial fan
15:20:48 <geist> i can't even think of 4 or 5 tutorials i'd want to link to anyone
15:21:10 <lordofthekebabs> oh how do you learn than just fire up reference ?
15:21:14 <lordofthekebabs> while doing
15:21:59 <geist> i spent years on it. over time you will piece things together and as you build up background knowledge more and more stuff will make sense as you come across it
15:22:14 <geist> when you first start you dont have any frame of reference to attach new information to, that's the hardest part
15:22:26 <lordofthekebabs> i hope so 10 thousand hours i suppose
15:22:26 <geist> but once you start diving in and picking stuff up it becomes easier to learn new stuff
15:22:35 <yrlf> Well most of us have read their fair share of tutorials and dug through loads of documentation. After a while some stuff just sticks.
15:22:37 <klys> my five favorite tutorials: the python tutorial, the pygtk tutorial, the djgpp faq, the gnu c library reference, the i386 programmers' reference manual
15:22:40 <geist> exactly
15:22:45 <doug16k> you learn a lot by trying to do things and failing. at first your understanding is skewed and figuring out what went wrong corrects your misunderstanding
15:22:50 <geist> right
15:22:50 <yrlf> At aome point you just *know* it
15:23:02 --- join: Belxjander (~Belxjande@sourcemage/Mage/Abh-Elementalist) joined #osdev
15:23:30 <lordofthekebabs> evreka moment i guess but i am so far from it right now :)
15:23:36 <lordofthekebabs> uhm can i ask one more qustion
15:23:43 <geist> you will have countless eureka moments. they're great
15:23:55 <yrlf> True that
15:24:04 <lordofthekebabs> what do you think about Apprenticeship programs of large corps
15:24:05 <geist> sometimes stuff wont make sense, then later you'll go back and reread it and it'll click the second time
15:24:19 <lordofthekebabs> well it is happening right now slowly with webdev
15:24:20 <yrlf> Before starting on os stuff I totally recommend getting familiar with C, and debugging C
15:24:47 <lordofthekebabs> yeah I will read the entire modern c KR book
15:25:04 <yrlf> Nothing hits harder than the eureka moment when you understand how a stack buffer overflow works and what it actually overflows into
15:25:36 <lordofthekebabs> i understood some words in that sentence
15:25:37 <yrlf> lordofthekebabs I actually never read ANY book on C.
15:25:43 <lordofthekebabs> what
15:26:04 <lordofthekebabs> this is ... not very helpful I mean i really like and try to use your advices
15:26:15 <geist> everyone has a different path
15:26:18 <lordofthekebabs> and confusing so how did you learn c
15:26:28 <yrlf> Just started reading a few turorials, then linux man pages, and .. well then I read part of the standard
15:26:33 <geist> many folks dont do the book thing, especially now with the internet and the millions of tutorials and pages
15:26:35 <yrlf> @geist: This so much
15:27:12 <lordofthekebabs> well I try to use all of it
15:27:16 <lordofthekebabs> maybe that will help
15:27:21 <lordofthekebabs> thanks a lot!
15:27:35 <lordofthekebabs> seriously for taking your time
15:27:39 <lordofthekebabs> have a nice day!
15:27:55 <yrlf> Everyones path is different. If you just try to follow someone elses path then YMMV
15:28:05 <geist> sure thing!
15:28:09 <geist> good luck!
15:28:24 <yrlf> I try to get inspired by how other people found their way, and let what i find guide me
15:28:38 <doug16k> you can read about backflips all day, but you have to land on your head a few times to actually learn how to do it :)
15:28:45 <lordofthekebabs> well of course I try to have my own way but the thing is
15:28:48 <yrlf> Good luck from me as well
15:29:21 <lordofthekebabs> i am just 19 and what i found really interesting is most of the time 40 year old or 50 year of experience can boil down to 1 -2 hour full conversation
15:29:36 <yrlf> I'm 21
15:29:43 <yrlf> I started out just like you
15:29:44 <lordofthekebabs> and I can get that 2 hour treasure bounty from all over the place
15:30:28 <lordofthekebabs> and irc is like the bounty hunt place where so many bright folks thats why i like and try to use your way of learning
15:30:34 <yrlf> Most of what I know is not from formal CS education. I'm doing it know because I just started Uni and it can't hurt :)
15:30:37 --- join: adam4813 (uid52180@gateway/web/irccloud.com/x-ldhjtfrwgogkiehk) joined #osdev
15:30:50 <yrlf> IRC is really a good place to find people :)
15:31:13 <yrlf> s/it know/it now/
15:31:36 <lordofthekebabs> yeah, thanks again
15:31:42 <lordofthekebabs> good nigt bye
15:31:48 <yrlf> My best decision until now was starting to use linux. Man pages are a godsend when learning C
15:31:54 <yrlf> Good night :)
15:32:06 --- quit: lordofthekebabs (Quit: Page closed)
15:32:23 --- quit: Asu` (Remote host closed the connection)
15:32:40 <yrlf> doug16k, your message about backflips rings so true :)
15:35:26 --- quit: isaacwoods (Quit: isaacwoods)
15:37:56 --- quit: angel0xff (Ping timeout: 260 seconds)
15:59:44 --- quit: quc (Remote host closed the connection)
16:00:00 --- join: quc (~quc@host-89-230-164-98.dynamic.mm.pl) joined #osdev
16:01:42 --- quit: xenos1984 (Quit: Leaving.)
16:02:15 --- quit: Tazmain (Ping timeout: 248 seconds)
16:02:29 --- quit: MrOnlineCoder (Quit: Goodbye)
16:08:38 --- join: spare (~user@unaffiliated/spareproject) joined #osdev
16:13:01 --- join: bemeurer (~bemeurer@stdcognition.static.monkeybrains.net) joined #osdev
16:20:25 --- join: eremitah_ (~int@unaffiliated/eremitah) joined #osdev
16:21:07 --- quit: eremitah (Ping timeout: 264 seconds)
16:21:08 --- nick: eremitah_ -> eremitah
16:42:34 --- join: jjuran (~jjuran@184.165.3.250) joined #osdev
16:52:36 --- quit: qeos (Read error: Connection reset by peer)
16:53:38 --- join: qeos (~qeos@ppp91-79-249-247.pppoe.mtu-net.ru) joined #osdev
17:00:11 --- quit: zhiayang_ (Ping timeout: 260 seconds)
17:01:32 --- quit: drsn0w (Read error: Connection reset by peer)
17:01:42 --- join: zhiayang (~zhiayang@175.156.221.216) joined #osdev
17:01:48 --- join: drsn0w (~drsn0w@unaffiliated/drsn0w) joined #osdev
17:01:49 --- quit: magnificrab (Ping timeout: 240 seconds)
17:02:04 --- join: magnificrab (~pi@189.171.148.122.sta.dodo.net.au) joined #osdev
17:03:01 --- join: dustinm` (~dustinm@68.ip-149-56-14.net) joined #osdev
17:03:54 --- quit: md_5 (Ping timeout: 268 seconds)
17:04:57 --- quit: bemeurer (Ping timeout: 240 seconds)
17:06:19 --- join: bemeurer (~bemeurer@stdcognition.static.monkeybrains.net) joined #osdev
17:06:39 --- join: promach_ (~promach@bb219-74-174-136.singnet.com.sg) joined #osdev
17:06:54 --- quit: dustinm`_ (Ping timeout: 264 seconds)
17:07:20 --- quit: Belxjander (*.net *.split)
17:07:20 --- quit: Tobba (*.net *.split)
17:07:21 --- quit: jakogut_ (*.net *.split)
17:07:22 --- quit: FManTropyx (*.net *.split)
17:07:22 --- quit: yrlf (*.net *.split)
17:07:23 --- quit: andrewrk (*.net *.split)
17:07:25 --- quit: frolv (*.net *.split)
17:07:25 --- quit: geist (*.net *.split)
17:07:25 --- quit: clever (*.net *.split)
17:07:25 --- quit: karlguy (*.net *.split)
17:07:26 --- quit: ephemer0l_ (*.net *.split)
17:07:26 --- quit: bcos_ (*.net *.split)
17:07:27 --- quit: sssnap (*.net *.split)
17:07:27 --- quit: bslsk05 (*.net *.split)
17:07:29 --- quit: shirk (*.net *.split)
17:07:32 --- quit: air (*.net *.split)
17:07:33 --- quit: sns (*.net *.split)
17:07:33 --- quit: shakeel (*.net *.split)
17:07:34 --- quit: FireFly (*.net *.split)
17:07:35 --- join: md_5 (~md_5@mcdevs/trusted/md-5) joined #osdev
17:09:49 <klange> RIP freenode
17:10:35 --- quit: VOIDShana[m] (Ping timeout: 245 seconds)
17:10:37 --- quit: xobroll[m] (Ping timeout: 245 seconds)
17:10:49 --- quit: caseypme[m] (Ping timeout: 256 seconds)
17:10:50 --- quit: Stary[m] (Ping timeout: 256 seconds)
17:10:51 --- quit: equalunique[m] (Ping timeout: 256 seconds)
17:10:51 --- quit: am2on (Ping timeout: 256 seconds)
17:10:54 --- quit: dafnamay[m] (Ping timeout: 276 seconds)
17:10:57 --- quit: lkurusa (Ping timeout: 256 seconds)
17:10:58 --- quit: marcthe12 (Ping timeout: 256 seconds)
17:10:59 --- quit: Wallbraker (Ping timeout: 256 seconds)
17:11:01 --- quit: Drakonis[m] (Ping timeout: 245 seconds)
17:11:11 --- quit: htafdwes[m] (Ping timeout: 260 seconds)
17:11:11 --- quit: Ringil[m] (Ping timeout: 260 seconds)
17:11:23 --- quit: kataria[m] (Ping timeout: 256 seconds)
17:11:24 --- quit: fristonio[m] (Ping timeout: 256 seconds)
17:11:24 --- quit: hcd[m] (Ping timeout: 256 seconds)
17:11:33 --- quit: llmm_ (Ping timeout: 276 seconds)
17:11:34 --- quit: hl[m] (Ping timeout: 276 seconds)
17:13:09 --- quit: md_5 (Ping timeout: 268 seconds)
17:16:07 --- join: Belxjander (~Belxjande@sourcemage/Mage/Abh-Elementalist) joined #osdev
17:16:07 --- join: Tobba (~Tobba@h-25-157.A159.priv.bahnhof.se) joined #osdev
17:16:07 --- join: jakogut_ (~jakogut_@162.251.69.147) joined #osdev
17:16:07 --- join: FManTropyx (~fooman@82-203-190-31.bb.dnainternet.fi) joined #osdev
17:16:07 --- join: yrlf (~yrlf@core.recodex.at) joined #osdev
17:16:07 --- join: andrewrk (~andrewrk@cpe-68-175-109-180.nyc.res.rr.com) joined #osdev
17:16:07 --- join: frolv (~frolv@CPE00fc8d4905d3-CM00fc8d4905d0.cpe.net.cable.rogers.com) joined #osdev
17:16:07 --- join: geist (~geist@tkgeisel.com) joined #osdev
17:16:07 --- join: clever (~clever@unaffiliated/clever) joined #osdev
17:16:07 --- join: karlguy (~karlguy@ool-4a5a3082.dyn.optonline.net) joined #osdev
17:16:07 --- join: ephemer0l_ (~ephemer0l@pentoo/user/ephemer0l) joined #osdev
17:16:07 --- join: bcos_ (~bcos@101.174.151.170) joined #osdev
17:16:07 --- join: sssnap (~feddywhap@lab46.corning-cc.edu) joined #osdev
17:16:07 --- join: bslsk05 (~bslsk@puckipedia.com) joined #osdev
17:16:07 --- join: shirk (~shirk@bitspin.org) joined #osdev
17:16:07 --- join: air (~brand@c-73-20-100-123.hsd1.ut.comcast.net) joined #osdev
17:16:07 --- join: sns (~sns@do1.swilson.id.au) joined #osdev
17:16:07 --- join: shakeel (sid164733@gateway/web/irccloud.com/x-pandnauyiiywppmt) joined #osdev
17:16:07 --- join: FireFly (znc@freenode/staff/firefly) joined #osdev
17:16:18 --- quit: Belxjander (Max SendQ exceeded)
17:16:22 --- join: Bjander (~Belxjande@sourcemage/Mage/Abh-Elementalist) joined #osdev
17:16:42 --- join: md_5 (~md_5@mcdevs/trusted/md-5) joined #osdev
17:16:45 --- nick: Bjander -> Belxjander
17:18:55 <klys> oioyoi
17:21:17 --- quit: pie__ (Remote host closed the connection)
17:21:44 --- join: pie__ (~pie_@unaffiliated/pie-/x-0787662) joined #osdev
17:40:19 <sortie> klange: Them splutting nets
17:46:38 --- join: kataria[m] (katariamat@gateway/shell/matrix.org/x-rdwrlkvtcpywlocv) joined #osdev
17:52:41 --- quit: m_t (Quit: Leaving)
17:53:39 --- quit: pie__ (Remote host closed the connection)
17:53:52 --- join: pie_ (~pie_@unaffiliated/pie-/x-0787662) joined #osdev
17:56:01 --- quit: pie_ (Excess Flood)
17:56:27 --- join: pie_ (~pie_@unaffiliated/pie-/x-0787662) joined #osdev
18:02:36 --- quit: quc (Ping timeout: 260 seconds)
18:09:59 --- join: quc (~quc@87.116.231.10) joined #osdev
18:13:20 --- quit: alyptik (Quit: https://ptpb.pw/~docrivers.gif)
18:18:24 --- quit: debug (Ping timeout: 244 seconds)
18:19:45 --- quit: jp (Quit: https://ptpb.pw/~docrivers.gif)
18:25:45 --- quit: tacco| ()
18:25:47 --- join: jp (ayy@cpe-76-173-133-37.hawaii.res.rr.com) joined #osdev
18:26:13 --- join: isd (~isd@209.6.64.199) joined #osdev
18:28:57 --- quit: promach_ (Quit: WeeChat 2.2)
18:34:15 --- join: angel0xff (~zzz@158-58-227-127.sf.ddns.bulsat.com) joined #osdev
18:38:45 --- quit: angel0xff (Ping timeout: 256 seconds)
18:39:21 --- quit: mniip (Ping timeout: 615 seconds)
18:58:15 --- join: MarchHare (~Starwulf@mo-184-5-202-5.dhcp.embarqhsd.net) joined #osdev
18:59:17 --- quit: doug16k (Remote host closed the connection)
19:00:27 --- quit: bemeurer (Ping timeout: 268 seconds)
19:02:52 --- join: doug16k (~dougx@172-97-186-251.cpe.distributel.net) joined #osdev
19:07:29 --- quit: CWiz (Ping timeout: 244 seconds)
19:09:39 --- join: am2on[m] (am2onataun@gateway/shell/matrix.org/x-ryojulljgauprtoe) joined #osdev
19:09:40 --- join: Stary[m] (starymatri@gateway/shell/matrix.org/x-lyrmdzyfnskcarvi) joined #osdev
19:09:41 --- join: equalunique[m] (equaluniqu@gateway/shell/matrix.org/x-tyfebsqfadttkrad) joined #osdev
19:09:42 --- join: lkurusa[m] (lkurusamat@gateway/shell/matrix.org/x-xdnijlhkaortolns) joined #osdev
19:09:42 --- join: hcd[m] (hcdmatrixo@gateway/shell/matrix.org/x-dvfmagogczmjefcv) joined #osdev
19:09:42 --- join: Wallbraker[m] (wallbraker@gateway/shell/matrix.org/x-nzaoeszxzvxprqla) joined #osdev
19:09:42 --- join: marcthe12[m] (marcthe12m@gateway/shell/matrix.org/x-yryrzglouabgzywn) joined #osdev
19:09:43 --- join: dafnamay[m] (dafnamayma@gateway/shell/matrix.org/x-dtmjaetfgyrdaqaa) joined #osdev
19:09:54 --- join: htafdwes[m] (htafdwesma@gateway/shell/matrix.org/x-wbekbrhzyzrpfmhh) joined #osdev
19:09:55 --- join: hl[m] (M148833mat@gateway/shell/matrix.org/x-uznhjmyrkabznkdk) joined #osdev
19:09:55 --- join: Drakonis[m] (drakonisma@gateway/shell/matrix.org/x-lckeleihpuzszvrb) joined #osdev
19:09:55 --- join: caseypme[m] (caseypmema@gateway/shell/matrix.org/x-drgjrapxfrvdbuew) joined #osdev
19:09:55 --- join: xobroll[m] (xobrollmat@gateway/shell/matrix.org/x-tclygqqeilkdkwrq) joined #osdev
19:10:05 --- join: VOID001[m] (void001mis@gateway/shell/matrix.org/x-vtihzfylhokxrmow) joined #osdev
19:10:05 --- join: Ringil[m] (ringilmatr@gateway/shell/matrix.org/x-xqxtoejwzujwvtrw) joined #osdev
19:10:28 --- quit: jjuran (Quit: jjuran)
19:15:02 --- join: shakesoda (uid36406@celestiaradio/shark/soda) joined #osdev
19:20:01 --- quit: sortie (Quit: Leaving)
19:35:27 --- join: Goplat (~Goplat@reactos/developer/Goplat) joined #osdev
19:37:32 --- quit: nicht (Ping timeout: 265 seconds)
19:38:19 --- quit: flacks (Ping timeout: 240 seconds)
19:39:41 --- join: CWiz (~cipherwiz@216.21.169.52) joined #osdev
19:41:34 --- join: flacks (flacks@184.91.69.131) joined #osdev
19:58:21 --- join: chao-tic (~chao@203.97.21.86) joined #osdev
20:04:05 --- join: Atrap[m] (atrapmatri@gateway/shell/matrix.org/x-dnavpqqepgnjojbb) joined #osdev
20:04:06 --- join: fristonio[m] (fristoniom@gateway/shell/matrix.org/x-ftvkxcoswctfppss) joined #osdev
20:04:27 --- quit: epony (Quit: QUIT)
20:05:49 --- quit: fornew (Ping timeout: 268 seconds)
20:07:08 --- join: epony (~nym@77-85-135-149.ip.btc-net.bg) joined #osdev
20:18:00 --- join: jjuran (~jjuran@c-73-132-80-121.hsd1.md.comcast.net) joined #osdev
20:21:20 --- quit: jp (Ping timeout: 276 seconds)
20:23:30 --- join: jp (ayy@cpe-76-173-133-37.hawaii.res.rr.com) joined #osdev
20:27:17 --- quit: drakonis (Remote host closed the connection)
20:28:34 --- join: bemeurer (~bemeurer@c-24-6-228-111.hsd1.ca.comcast.net) joined #osdev
20:29:21 --- join: glamas (~acelee@113.87.226.95) joined #osdev
20:37:22 --- quit: CrystalMath (Quit: Support Free Software - https://www.fsf.org/)
20:42:04 --- part: glamas left #osdev
20:43:07 --- quit: tuxillo (Ping timeout: 256 seconds)
20:50:08 --- join: tuxillo (~antonioh@89.128.97.235) joined #osdev
20:55:50 --- quit: nj0rd (Ping timeout: 265 seconds)
21:03:43 --- quit: bemeurer (Ping timeout: 264 seconds)
21:07:27 --- quit: flacks (Ping timeout: 260 seconds)
21:08:46 --- join: nj0rd (~nj0rd@200116b845e0960028a6fe78a3331a45.dip.versatel-1u1.de) joined #osdev
21:09:05 --- quit: spare (Quit: leaving)
21:10:05 --- join: flacks (flacks@184.91.69.131) joined #osdev
21:10:10 --- quit: nikivi (Quit: ZNC 1.6.6 - http://znc.in)
21:10:16 --- join: xenos1984 (~xenos1984@22-164-191-90.dyn.estpak.ee) joined #osdev
21:15:21 --- quit: freakazoid0223 (Remote host closed the connection)
21:18:14 --- join: bemeurer (~bemeurer@c-24-6-228-111.hsd1.ca.comcast.net) joined #osdev
21:18:58 <klange> I should redo my printf...
21:23:27 <Ameisen> void printf() { put("f"); }
21:24:28 --- join: booyah (~bb@193.25.1.157) joined #osdev
21:34:02 --- join: zeus1 (~zeus@160.119.149.222) joined #osdev
21:37:35 --- quit: pie_ (Remote host closed the connection)
21:37:52 --- join: pie_ (~pie_@unaffiliated/pie-/x-0787662) joined #osdev
21:41:12 <graphitemaster> void printf(const char *fmt, ...) { getaddrinfo("printfsas.service"); int sock = socket(...); connect(...); send(...); recv(...); puts(buffer); }
21:42:20 --- join: jermar (~jermar@93-153-64-87.tmcz.cz) joined #osdev
21:48:58 --- join: manzerbredes (~loic@2a01cb0885e31500cfc30bb534d5bc37.ipv6.abo.wanadoo.fr) joined #osdev
21:52:46 <geist> oh yeah, that's some stuff
21:53:06 <geist> there was some codebase i was workking on that actually ran some sort of regexp matcher against every printf
21:53:29 <geist> so you could tag the printf with a list of stuff at the start of it, and then later on the logger would pick out ones that were tagged (or squelch them)
21:53:42 <geist> it was kind of neat if you didn't think about how slow it probably was
21:55:03 <geist> oh wait i remember it was an iostream style thing
21:55:22 <geist> so there was some sort of logger::get("list,of,tags") << "foo" << endl;
21:56:28 <geist> nowadays you can probably do some clever constexpr style thing to flatten that string into a unique key or something, i guess
22:06:28 --- join: Lowl3v3l1 (~Lowl3v3l@ulbp2362.ulb.uni-jena.de) joined #osdev
22:07:54 --- join: mniip (mniip@freenode/staff/mniip) joined #osdev
22:08:26 --- part: jermar left #osdev
22:08:29 <klys> what's a constexpr?
22:09:21 <klys> geist
22:10:41 <bcos_> klys: It's an expression (e.g. "x = 123 * y;"), but where the programmer tells the compiler that it has to be converted to a constant at compile time
22:11:09 <bcos_> (e.g. so that it ends up like "x = 246;" if y was 2)
22:11:11 <Lowl3v3l1> klys: though they can be way more powerful, you could e.g. have constexpr functions
22:11:33 <Lowl3v3l1> it is an even stronger concept than "const" since it has to be truly compile time constant
22:11:44 <bcos_> Mostly, it exists because the compiler's optimiser is shit and doesn't do this whenever possible anyway
22:11:57 --- quit: bemeurer (Quit: WeeChat 2.1)
22:14:18 <klys> hmm so the compiler would be evaluating operator<<().
22:15:01 <Lowl3v3l1> only if its constexpr, and i dont know wether operators could be honestly
22:15:13 <bcos_> Yes (but compilers have been doing that for ages - see https://en.wikipedia.org/wiki/Constant_folding )
22:15:13 <bslsk05> ​en.wikipedia.org: Constant folding - Wikipedia
22:16:13 <bcos_> Hrm
22:16:44 <bcos_> A better (more polite) way of thinking of is that "constexpr" gives you an error at compile time (when the compiler couldn't optimise)
22:21:46 <geist> well, it's also a lot more powerful
22:22:13 <geist> but yes, in a gist it's a way of forcing the compiler to eval at compile time, and there are rules about what you can and cannot do
22:22:26 <geist> so it's reliable. the compiler can't suddently decide it can't do it tomorrow
22:24:33 --- quit: behalebabo (Excess Flood)
22:24:54 --- join: behalebabo (~behalebab@unaffiliated/behalebabo) joined #osdev
22:28:25 <Lowl3v3l1> geist: isn't what happens if it is not a true constexpr undefined though? e.g. it could be treated as a normal function? Or is the error case defined in the stadard?
22:30:03 <geist> i think it errors
22:31:06 <klys> "could not evaluate expression"
22:31:15 --- join: bemeurer (~bemeurer@c-24-6-228-111.hsd1.ca.comcast.net) joined #osdev
22:31:57 <geist> note that i think you can feed constexpr functions non constant input, just not in a situation where it is required to do it at runtime
22:32:00 <geist> er compile time
22:33:07 --- quit: chao-tic (Quit: WeeChat 1.0.1)
22:37:29 --- join: nwm (~nwm@d162-156-46-158.bchsia.telus.net) joined #osdev
22:40:01 --- quit: pie_ (Read error: Connection reset by peer)
22:40:13 --- join: pie_ (~pie_@unaffiliated/pie-/x-0787662) joined #osdev
22:47:25 --- quit: manzerbredes (Ping timeout: 256 seconds)
22:51:43 --- join: graphene (~graphene@46.101.134.251) joined #osdev
22:52:11 --- join: qwerty123 (~user@62.217.135.70) joined #osdev
22:52:39 <qwerty123> Does anyone know of any regex implementation resources other than Russ Cox's papers?
22:52:55 <ybyourmom> Nope, sorry
22:53:03 <ybyourmom> I can't even imagine how to start writing a regex implementation
22:53:11 <qwerty123> Is it supposed to be hard?
22:53:21 <ybyourmom> Dunno, I think it looks hard
22:53:34 <ybyourmom> But idk how hard it is considered by consensus
22:53:48 <klange> qwerty123: As in many cases, try studying existing implementations.
22:53:50 <Ameisen> bcos_ - constexpr functions don't guarantee that it will be executed at compile time.
22:54:03 <qwerty123> klange: Most existing implementations are very hard to crack
22:54:05 <Ameisen> it's an indication that it _can_ be.
22:54:09 <Ameisen> maybe.
22:54:10 <klange> qwerty123: "regular expressions" are pretty easy to implement, regex is a bit of a different game.
22:54:20 <qwerty123> klange: What's the difference?
22:54:35 <Ameisen> If the function itself isn't actually constexpr though, it will still error in a constant context, and there's no requirement for the compiler to expand such a function at compile time
22:54:58 <qwerty123> I know what it means from theory of computation point of view but I thought regular expressions == regex?
22:55:08 <klange> to save me from explaining all the details, http://www.rexegg.com/regex-vs-regular-expression.html
22:55:09 <bslsk05> ​www.rexegg.com: Regex vs. Regular Expressions
22:55:32 <qwerty123> thanks
22:55:35 <klange> the tl;dr is "regular expression" originally meant a very specific language for pattern matching with rules that, amongst other things, made it *regular* (in a mathematical sense)
22:55:58 <Ameisen> My understanding from stack overflow is that regex is also a thing you can use to parse html
22:56:02 <qwerty123> I thought only thing making most modern implementations not-regular was the "backtracking" feature
22:56:06 <klange> but then implementations added features which made them decidedly not regular - backtracking and what not
22:56:33 <klange> backtracking is definitely the big one
22:57:07 <qwerty123> Do you have your own implementation?
22:57:33 <klange> yeah, but it's written in brainfuck
22:57:42 <qwerty123> Can I get a link?
22:57:43 <klange> and I think I lost it somewhere
22:57:48 <klange> let me see if I can even find it
22:57:57 <qwerty123> Are you serious about the brainfuck part?
22:58:26 <klange> shit I don't have this repo anymore... that's what I get for not backing things up
22:58:59 <klange> oh dammit I *do* have the brainfuck implementation though... oh right because I didn't write the regex parser and the teammate who did never pushed it...
22:59:07 <klange> *sigh*
22:59:23 <qwerty123> Why brainfuck though?
23:00:01 <klange> Well, see, we had our own CPU design, and for shits and giggles we wrote a brainfuck interpreter in its native assembly... and then to demonstrate that we wrote some fun stuff in brainfuck
23:00:14 <klange> don't ask me, I'm 95% certain we were all drunk on mimosas at the time
23:00:33 <klange> And if you think regexes in brainfuck on a custom CPU are crazy, you don't know me.
23:00:37 <qwerty123> Was this CPU emulated?
23:00:50 <klange> It was running on an FPGA for at least two days.
23:01:06 <qwerty123> Gotta go to a meeting
23:01:09 --- quit: flacks (Ping timeout: 276 seconds)
23:01:28 --- quit: qwerty123 (Quit: WeeChat 2.2)
23:01:47 <Ameisen> doing _anything_ in brainfuck is crazy.
23:01:55 <Ameisen> well, except executing it.
23:02:03 --- quit: pie_ (Ping timeout: 244 seconds)
23:02:09 <Ameisen> optimizing brainfuck is fun.
23:02:20 <klange> I only had two days, give me a break.
23:03:44 --- join: flacks (flacks@184.91.69.131) joined #osdev
23:04:18 <Ameisen> write a neural network that does regex parsing in brainfuck
23:07:19 <klange> amazing, pcre has 967 revisions in its cvs and last one was two days ago
23:15:09 --- join: manzerbredes (~loic@myriads-lg.irisa.fr) joined #osdev
23:17:27 --- quit: isd (Ping timeout: 256 seconds)
23:21:48 --- join: isd (~isd@209.6.64.199) joined #osdev
23:24:09 --- join: pie_ (~pie_@unaffiliated/pie-/x-0787662) joined #osdev
23:29:35 --- join: spare (~user@unaffiliated/spareproject) joined #osdev
23:30:17 --- quit: isd (Ping timeout: 256 seconds)
23:31:20 --- join: CheckDavid (uid14990@gateway/web/irccloud.com/x-ejprcmuydfswdryf) joined #osdev
23:36:17 --- join: xerpi (~xerpi@128.red-83-45-199.dynamicip.rima-tde.net) joined #osdev
23:38:04 --- quit: xerpi (Remote host closed the connection)
23:38:24 --- join: xerpi (~xerpi@128.red-83-45-199.dynamicip.rima-tde.net) joined #osdev
23:44:11 --- quit: leinne (Ping timeout: 250 seconds)
23:46:29 --- join: leinne (~leinne@gateway/tor-sasl/leinne) joined #osdev
23:49:38 --- join: geekodour08 (~geekodour@103.96.51.16) joined #osdev
23:55:43 --- join: grouse (~grouse@83-233-9-2.cust.bredband2.com) joined #osdev
23:57:19 --- quit: zeus1 (Ping timeout: 240 seconds)
23:57:27 --- quit: flacks (Ping timeout: 248 seconds)
23:59:59 --- log: ended osdev/18.07.19