klange changed the topic of #osdev to: Operating System Development || Don't ask to ask---just ask! || For 3+ LoC, use a pastebin (for example https://gist.github.com/) || Stats + Old logs: http://osdev-logs.qzx.com New Logs: https://libera.irclog.whitequark.org/osdev || Visit https://wiki.osdev.org and https://forum.osdev.org || Books: https://wiki.osdev.org/Books
<geist> so the cpu cores can and do exist independent of the PCI bus. same with legacy PC stuff mostky
<geist> yah PCH is relatively new. i think in the 2000s they started naming stuff that. just came laong with some variant of their chipsets. prior to that it was just the chipset, or something like PIIX or whatnot
<geist> and/or they started saying PCH when they pulled it into the cpu socket (late 2000s)
<gog> northbridge/southbridge
<geist> but it's basically just a marketing term
<gog> intel nomenclature was Memory Controller Hub and I/O Controller Hub
<geist> yah when they started using the Hub moniker
zid has joined #osdev
<geist> maybe with the i810 or so in the early 2000s
<zid> Think my psu might be dying :(
<klange> f
<gog> PCH was when they were combined into one when PCIe started to be a thing iirc
<zid> should switch to my i810 machine
<zid> on the plus side, the extra fans I added to make my E5-1650 cool, make my E5-1620 *very* cool.
<zid> And the psu can at least handle this cpu
<gog> zid: can it be fixed
<gog> the psu
<zid> I've never tried.. I don't own capacitors the size of my head to try replacements
<gog> fair
<zid> My guess is that the 12V -> 3.3V DC/DC stage is dying
<gog> you'd probably need a scope to see for sure
<zid> it drops .2V under 100W of cpu load, my much beefier cpu drops it even more and the mobo turns off
<gog> oh yeah that sounds like bad cap rather than bad fet
<Mutabah> You are an inspiration
<papaya_> gog: for w/e reason it complains about implicit declaration of memcmp in kc/boot/kc_main.c
<klange> I want to reiterate that the ponysay code is absolute garbage, and porting it was an abysmal three hours of my life
bgs has quit [Ping timeout: 240 seconds]
<klange> Also I need to update the Kuroko wasm builds because they have a parser bug...
bgs has joined #osdev
<eryjus> klange, are you aware the links are giving "not found" errors?
<kazinsal> I'm always impressed at the lengths you go to for a recurring April Fools joke
<gog> papaya_: shouldn't do, it's declared in lib/lib.h
<klange> eryjus: your client is likely borking the escapes, which is a problem on your end
<papaya_> gog: yea I checked that and saw it too, but none the less it complains x.x
<gog> are you running ./debug in the project root?
<papaya_> yes
<klange> While I was really hoping to have the ARM stuff ready and it's definitely not, PonyOS 8 is still going to be a pretty huge release since it's the first since Misaka.
<gog> do you have CFLAGS in your env?
<papaya_> gog: no
<eryjus> Ahhh '%2520'
<gog> papaya_: edit defaults.mk in the root and delete -Werror
<papaya_> for C or CXX as well?
<klange> > Kuroko 1.2.4 Mar 23 2022 at 09:08:22 (wasm)
<klange> Excellent, that should fix the parsing on this one file...
<klange> I have a static analyzer in the WASM IDE for Kuroko, which very nicely catches all the necessary variable declarations when porting Python code.
<klange> Otherwise I have to run things and just wait for them throw undefined name errors at runtime
<gog> papaya_: just for C
<gog> i don't use any C++ but i had been at some point
<papaya_> gog: new issues after that: https://pastebin.com/K2qEbKS5
<bslsk05> ​pastebin.com: main_efi.c:14:26: error: static declaration of 'ST' follows non-static declarati - Pastebin.com
<gog> papaya_: the heck
<papaya_> seems to conflict with stuff in the efi headers
<gog> does your local copy of loader/main_efi.c include <efilib.h> ?
<zid> EFI is for sillies
<gog> zid: true
<klange> I'm just... not gonna actually finish fixing up this port, it works well enough for the release. https://klange.dev/s/Screenshot%20from%202022-03-23%2009-16-22.png
<papaya_> gog: gnu-efi 3.0.14-2, clang 13.0.1-2 in case its relevant
<zid> good news, my E5-1620 survived prime95
<zid> bad news, I used thermal paste, so now every object in a 4 mile radius of me is now slightly smeared with it
<gog> papaya_: those are fine, but i don't use efilib.h anymore and those symbols shouldn't conflict
<papaya_> <efi.h> and <efidebug.h>
<gog> ok delete efidebug.h
<gog> in fact wait a minute
<zid> I used the 'squirt it all over the die then smush it around a bit with the nozzle' method, they don't show that one on linus tech tips
<gog> yeah delete the include efidebug.h
<papaya_> gog: there's also a <loader/efi/shim.h>
<gog> that's fine leave that
<papaya_> no change
<gog> papaya_: what revision do you have?
<papaya_> revision of your source?
<gog> yeah
<gog> what's the top line of git history
<gog> err git log
<zid> "git: command not found"
<papaya_> zid: lol
<papaya_> well I'm on origin/main, _MSC_EXTENSIONS was causing empty definition of __attribute__ leading to calling convention issue in enter_shim
<gog> this makes no sense lol
<gog> WONTFIX:WORKSFORME
<papaya_> lol
<klange> this is why I just tell people use a prebuilt docker image to build my shit
<papaya_> well it works against your /usr/local includes, what version of the gnu-efi libs did u have
<papaya_> klange: smart
<gog> whatever git revision i checked out a while ago but i changed it to compile against my distro's package and it works fine
<gog> also memcmp implicit warning is nonsense because it's declared
<papaya_> but what version does your distro use
<gog> 3.0.14-2
<papaya_> well it says its being redeclared static I think
<gog> yeah i did that but it shouldn't even matter
<gog> because i don't use efilib.h
<papaya_> but in the headers its defined also and non-static
<papaya_> hmm but its included
<gog> where?
<papaya_> did you say to get rid of <efi.h> also and I just miss it?
<gog> no
<gog> keep efi.h
<gog> but efi.h should not include efilib.h
<gog> efi.h is just declarations
<gog> no library funcs, just firmware
<papaya_> let me see if I can figure out whats including it then
[itchyjunk] has quit [Read error: Connection reset by peer]
<gog> aha ok
<papaya_> gog: main_efi.d is linker file yea?
<gog> no it's a dep file
<papaya_> oh I see now
<papaya_> tho it has a reference to efilib.h
<gog> yeah
<gog> it shouldn't
<gog> i changed to my distro's version of gnu-efi and now it's pulling efilib.h
<papaya_> oh so it is the lib version
<gog> *
<gog> aha found it
<gog> i'm pulling lib.h from /usr/include/efi by accident
<gog> so idk how to work around this rn
<papaya_> well now you have something to do later :3
<gog> ok
<gog> i fixed it already
<gog> git pull
<gog> a quick find, sed and git mv and it's fixed
<papaya_> ok cool I'll try it out in just a bit
<gog> :|
<gog> it's broken again anyway
<papaya_> nuuuu
pretty_dumm_guy has joined #osdev
<gog> papaya_: ok i fixed it agin lol
<gog> no discrepancy
<gog> but you'll have to git pull again
<mrvn> Will this work on ARM? https://youtu.be/15etE6WcvBY?t=1463
<bslsk05> ​'Why You Should Write Code That You Should Never Write - Daisy Hollman - CppCon 2021' by CppCon (01:05:14)
<mrvn> Will the "static int count" be garbage because it remains in the write back buffer of one core when the second core initializes the static again?
<papaya_> oh I need to install lld
<papaya_> what is edk2-ovmf? seems to also be a dep
<gog> papaya_: need for qemu
<papaya_> oh is that for virtualization mode? I didn't need it when I ran my own b/c emu?
<gog> it's a firmware image for UEFI
<papaya_> oh ok
<gog> also you'll have to copy /usr/share/ovmf/x64/OVMF_VARS.fd to the project root
lainon has joined #osdev
<gog> because more deficiencies
<gog> because i don't expect people to actually try to use this crap lol
<gog> stop making me do work
<papaya_> yea I just realized that about the file not being in the place it was expected
<papaya_> lol
<gog> it's gotta be in a place where it's R/W because idk ovmf wants it for nvram
<gog> i think
<papaya_> or I could just, you know, update the debug script
<papaya_> oh
<gog> no it has to be writeable
<papaya_> I see
<gog> yeah
<papaya_> does this display anything when run?
<gog> nah it spits debug output through qemu's magic serial port
<gog> in sophia.log
<gog> like i said, it literally does nothin
<papaya_> oh ok so, no display, just debug info :o "Guest has not initialized the display (yet)."
<gog> oh you just have to go to the monitor and type "cont"
<papaya_> I still find it interesting to poke around at XD
<gog> it starts in paused mode
<gog> so if i need to attach gdb or smth
<papaya_> oooooo ok
<gog> it'll output until it can't use UEFI firmware calls anymore
<gog> then everything goes into sophia.log
<papaya_> it works :3
<papaya_> maybe just make the debug script do the file copy from /usr/share
<papaya_> then with the right packages installed should be an easy setup
<gog> it's not guaranteed to be in that exact path
lainon has quit [Remote host closed the connection]
lainon has joined #osdev
<gog> i could just add it to the repo but it's hard to say what'll happen if OVMF changes version and any of the default efi variables change
<papaya_> Yea that could be problematic
<gog> probably nothing
<gog> but idk
X-Scale` has joined #osdev
X-Scale has quit [Ping timeout: 240 seconds]
X-Scale` is now known as X-Scale
<papaya_> how'd you come up with your name for it
<gog> my wife's second name
lainon has quit [Quit: Palaver https://palaverapp.com]
lainon has joined #osdev
vdamewood has joined #osdev
<papaya_> Interestingly I get different behaviour now with the i386 and i686 cross compilers I made XD
<papaya_> I feel like under normal circumstances this should not make a difference lol
lainon has quit [Remote host closed the connection]
<gog> different how?
<papaya_> it displays correctly with a i386 compiler, i686 does this: https://ibb.co/9vJGH8m
<bslsk05> ​ibb.co: Untitled — ImgBB
<papaya_> the console still works tho
<papaya_> maybe its another register getting clobbered in an asm routine
<gog> maybe
<papaya_> well its not interrupts b/c I disabled them and no change with that
<bslsk05> ​gitlab.com: src/main.c · master · Papaya / Sandbox OS · GitLab
<gog> that's the line that draws this yes?
<gog> or draws the erroneous bit
<papaya_> yea except it draws that char many more times than it should, and the loop after it does not do it enough it seems
<papaya_> actually nvm that latter part
<papaya_> yes thats the line
<papaya_> so... removing -O2 fixes the banner
<papaya_> so its something the optimization level did
<gog> i was just thinking about that
<papaya_> but -O2 shouldn't break it unless its bugged to start with no?
<mrvn> is that with drivers in ASM?
<gog> because it looked like it was drawing twice as many chars
<gog> mrvn: nah this is C code
<gog> papaya_: also not necessarily, -O2 makes certain assumptions that may or may not cause bugs in correct code
<mrvn> if you remove the -O2 then every variable is always stored in memory so nothing can get clobbered. That's why I automatically though "asm drivers"
pretty_dumm_guy has quit [Quit: WeeChat 3.4.1]
<mrvn> papaya_: don't make thinks uint8_t where you don't care about the size.
<mrvn> what does PutChar look like?
lainon has joined #osdev
<papaya_> mrvn: its in display.c
<papaya_> LOL if I make the for loop var an int instead of uint8 it goes crazy printing tons of lines
<papaya_> tons of line spam before reaching a prompt: for ( unsigned int Temp = 1; Temp < 79; Temp++ ) { PutChar( 0xC4 ); }
<mrvn> Why is that Caml case by the way?
<papaya_> mrvn: I wondered the same thing, today me is scolding 15?yr ago me about that in my head
<mrvn> data, buffer1 but MemorySize and Temp?
<papaya_> or maybe it was like 10yrs ago, still
<mrvn> what does the asm for line 75 look like?
<papaya_> mrvn: I honestly don't know what was going thru my head at the time
<papaya_> so, I just found a way to fix it and I don't know why
<papaya_> if I set Temp = cursor_x instead of 1 it works, even tho cursor_x should be 1 at this point..
<papaya_> (confirmed it is 1)
<mrvn> 0xB3 is |, right?
<papaya_> yea
zid has quit [Ping timeout: 240 seconds]
<papaya_> whats the easiest way to view the assembler code for the method, the object file?
<mrvn> what happens with -Os and -O1?
<gog> objdump
<papaya_> on main.o ?
<gog> yeah objdump -d
<papaya_> dumb question perhaps but what is -0s
<papaya_> -Os
<mrvn> papaya_: main.o doesn't have linker refrences substituted but usually it's good enough.
<papaya_> -O1 works
<mrvn> -Os optimizes for code size
<papaya_> objdump the kernel binary then?
<mrvn> Also -O2 -W -Wall -Werror
<mrvn> papaya_: if you can't read the main.o output or the linker generated addresses/offsets matter then yes.
<papaya_> -Os breaks
<gog> also -Mintel-mnemonic if you prefer to read your disassembled code in intel syntax
<mrvn> do you have output to serial? Does it fail in qemu and bochs?
<mrvn> print out Temp to serial inside the loop
zid has joined #osdev
<mrvn> You also might want to invest some time into implementing printf: printf("|%.78s|", " SANDBOX OS"); is so much shorter than those loops.
<bslsk05> ​pastebin.com: main.o: file format elf32-i386Disassembly of section .text:00000 - Pastebin.com
<mrvn> are you compiling with -g?
<papaya_> yes
<mrvn> try the full kernel.elf
<mrvn> Mostall the CALL opcodes just point to the next
<bslsk05> ​gist.github.com: gist:98941e6c02e947871880751bfabb6df2 · GitHub
<mrvn> Most CALL opcodes just point to the next byte
<gog> upper is -O2 and lower is -O0
<mrvn> where did the cmp go in -O2?
<mrvn> gog: I think you have to include a few lines before that where it initializes %al or -0x9(%ebp)
<papaya_> oh damn, now that I think about it not sure what optimization level I used to make the dump
<gog> mrvn: ah yes
<papaya_> I should be using O2 for the dump yes?
<mrvn> papaya_: hard to see what goes wrong if the asm isn't going wrong
<mrvn> gog: -O2 seems to use %esi as count-down. so check where that gets set
sonny has joined #osdev
<mrvn> can't 32bit do "sub $0x1, %esi"?
<papaya_> kernel with O2: https://pastebin.com/wTR9SNd7
<bslsk05> ​pastebin.com: i386/kernel: file format elf32-i386Disassembly of section .text: - Pastebin.com
<gog> updated
<gog> what is eiz
<gog> what the fu
<mrvn> 101d0c:bb 4e 00 00 00 mov $0x4e,%ebx
<gog> i have never seen a zero register
<papaya_> looks like the loop is around 101d5e
<mrvn> papaya_: That sets the count-down to 78.
<gog> oh it's fake decoding
<papaya_> 78 would be the correct number of times to print...
<mrvn> So somewhere between 101d0c and 101d5e the ebx register gets trashed.,
<papaya_> but its going way past that
<gog> i bet it's more of your interrupt code lol
<gog> trashing registers with abandon
<papaya_> oh I tried disabling interrupts
<mrvn> Input, Output, nitializeStatusBar, SetAttrib or IRQs corrupt ebx
<gog> TimerISR trashes EBX, EDI
<gog> Timer_ISR*
<papaya_> but wouldnt pushad preserve that
<gog> err no it does pushad though
<gog> yeah
<papaya_> how does InitializeStatusBar trash ebx? It's a C function
<papaya_> SetAttrib is also
<mrvn> papaya_: which makes IRQ the top suspect
<papaya_> cant be IRQ if it happens interrupts disabled tho?
<gog> god ia32 assembly is like trying to read a language that's partially mutually intelligible with your native language
<mrvn> papaya_: unless you screwed that up
<mrvn> keyboard.s: GetKey destroys ebx, so it's the Input call.
<gog> mrvn: we fixed that
<gog> but
<gog> common.s
<papaya_> I commented out the STI line and the keyboard no longer worked, so I think IRQs were off
<gog> Input trashes ebx
<papaya_> Input in common.s has to return a value thru EBX I think?
<mrvn> Oh, Input doesn't call GetKey. my bad.
<papaya_> nvm I see now
<mrvn> Input has to push EBX before clobbering it
<mrvn> papaya_: I recommend making inb/outb inline asm.
<papaya_> maybe but if I make that change the whole thing fails to boot
<mrvn> papaya_: when you push it don't forget to pop it at the end
<papaya_> mrvn: yes I did
* gog pops and locks
<gog> i should consider sleeping
<papaya_> oh
<papaya_> pushing EBX is shifting my function params
<papaya_> I need to push EBX after setting EBP
<mrvn> gog: always a good idea. Then remove Input, Output, IO_Input and IO_Output and reqrite them as C functions calling In and Out. No need to have so many asm functions.
<papaya_> well shit, that did it
<papaya_> ya'll are amazing
* gog takes the gun from papaya_
* gog empties the ebx bullets
<mrvn> gratulations.
<gog> stop footshooting with these
<papaya_> no I must make all the EBX trashfires
<mrvn> papaya_: The nice think is that if you make "inb" inline asm then the compiler can pick what register it will use with them instead of always having to shuffel stuff around and do a function call.
<gog> yeah i have very little assembly in mine
<gog> only where absolutely necessary
<mrvn> papaya_: often you really just end up with a single "inb" opcode for the whole thing, at least on amd64.
<papaya_> oh wow with that last fix it even works on my arch distro's system compiler now
<mrvn> hehe
<papaya_> I'm sure I'll end up needing the cross compiler still later anyway but hey its a nice touch that it just works now
<gog> clang
<gog> friendship ended with gcc
<gog> now clang is my best friend
<papaya_> I also modded my scripts to not use any vbox commands unless run-vbox.sh is explicitly used
<papaya_> so will use qemu now
<mrvn> "Have you compared the compile time performance for this approach and the arbitrary-index approach?" "It's garbage." "Both of them?" "EVery
<mrvn> "Everything I've shown you in this talk is garbage -- compile time perfomance wise"
nyah has quit [Ping timeout: 252 seconds]
<gog> mrvn: lmao
<gog> if you care about compile time stop using c++
<gog> best advice
<mrvn> at least drop most of template
<mrvn> gog: a bunch of days ago I managed to make an infinite loop of template type deduction.
<gog> now that's really bad for compile time performance
<gog> infinitely bad even
<papaya_> I pushed all the changes now also
<papaya_> now if I can figure out how to work with my disk image and loop device without having to sudo
<mrvn> mtools can work directly on disk images
<geist> you can just screate it once and then set the perms on the loopback /dev file to you
<rustyy> just wanted to say thanks to whoever posted the jeff bonwick slab paper, now i can dig into slub code =)
<geist> yah thats a good paper, though probably a bit out of date. some of the stuff on cache coloring and whatnot is probably not useful anymore
<geist> probably mattered a lot more then most data caches were direct mapped
<rustyy> geist: thanks (love) =)
<geist> i actually met Jeff once. he's a really nice guy
<rustyy> cool =)
MiningMarsh has quit [Ping timeout: 240 seconds]
MiningMarsh has joined #osdev
<papaya_> oh there's a udisksctl command that may do what I want
k8yun has joined #osdev
<sonny> rustyy what are you working on?
skipwich has quit [Quit: DISCONNECT]
[itchyjunk] has joined #osdev
lainon has quit [Quit: WeeChat 3.4]
Starfoxxes has quit [Ping timeout: 268 seconds]
mrvn has quit [Ping timeout: 252 seconds]
Starfoxxes has joined #osdev
eddof13 has joined #osdev
matrice64 has joined #osdev
<klange> ay, my qemu gtk double click fix finally made it in https://gitlab.com/qemu-project/qemu/-/commit/2297db8228cc0ee601a21b3e3f443ab6879f2a06
<bslsk05> ​gitlab.com: ui/gtk: Ignore 2- and 3-button press events (2297db82) · Commits · QEMU / QEMU · GitLab
<klange> means it should actually land in 7.0
<geist> yay
<rustyy> sonny: i fix kernel bugs, for free =) i am getting relatively good at this =)
<sonny> tell me more, that sounds interesting
<rustyy> sonny: currently i have a weird slub corruption bug, no reproducer, distro kernel, and it is not clear whether the bug is actually present in upstream
k8yun has quit [Quit: Leaving]
<sonny> oh sorry, I meant getting to kernel bugs
<rustyy> sonny: that particular bug came up for 3rd party proprietary software (company i work for), but usually i fix bug reported by syzbot
<sonny> I haven't even heard of slub corruption yet
<sonny> ah
lainon has joined #osdev
<sonny> how did you confirm if you can't reproduce?
lainon has quit [Remote host closed the connection]
Arthuria has quit [Ping timeout: 240 seconds]
<rustyy> sonny: i have a kdump =)
<sonny> oh ok
rorx has quit [Ping timeout: 252 seconds]
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
rorx has joined #osdev
matrice64 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
sonny has quit [Ping timeout: 256 seconds]
eddof13 has joined #osdev
wand has quit [Remote host closed the connection]
wand has joined #osdev
mrvn has joined #osdev
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Payam67 has joined #osdev
[itchyjunk] has quit [Read error: Connection reset by peer]
C-Man has quit [Ping timeout: 256 seconds]
wand has quit [Remote host closed the connection]
wand has joined #osdev
pretty_dumm_guy has joined #osdev
xenos1984 has quit [Remote host closed the connection]
xenos1984 has joined #osdev
GeDaMo has joined #osdev
lkurusa has joined #osdev
Payam67 has quit [Ping timeout: 256 seconds]
bauen1 has quit [Ping timeout: 256 seconds]
C-Man has joined #osdev
zid has quit [Ping timeout: 240 seconds]
ravan_ has quit [Remote host closed the connection]
ravan_ has joined #osdev
zid has joined #osdev
janemba has quit [Ping timeout: 256 seconds]
janemba has joined #osdev
mrvn has quit [Ping timeout: 268 seconds]
mrvn has joined #osdev
Burgundy has joined #osdev
pretty_dumm_guy has quit [Quit: WeeChat 3.4.1]
Coldberg has joined #osdev
C-Man has quit [Ping timeout: 240 seconds]
nyah has joined #osdev
skipwich has joined #osdev
bauen1 has joined #osdev
orthoplex64 has quit [Ping timeout: 240 seconds]
Arthuria has joined #osdev
dennis95 has joined #osdev
bauen1 has quit [Ping timeout: 240 seconds]
Arthuria has quit [Killed (NickServ (GHOST command used by guest2795))]
Arthuria has joined #osdev
blockhead has quit []
Arthuria has quit [Ping timeout: 256 seconds]
lainon has joined #osdev
lainon has quit [Remote host closed the connection]
lainon has joined #osdev
lainon has quit [Remote host closed the connection]
lainon has joined #osdev
lainon has quit [Remote host closed the connection]
srjek has joined #osdev
lkurusa has quit [Quit: I probably fell asleep (or went out). Who will ever know.]
Ermine has quit [Quit: Cya!]
Ermine has joined #osdev
mrkajetanp has quit [Ping timeout: 256 seconds]
k8yun has joined #osdev
bauen1 has joined #osdev
pretty_dumm_guy has joined #osdev
<gog> mew
* papaya_ pats gog.
* gog prrs
<zid> Wem, a small market town in shropshire, the birthplace of Greg Davies
k8yun has quit [Read error: Connection reset by peer]
k8yun has joined #osdev
[itchyjunk] has joined #osdev
Ali_A has joined #osdev
srjek has quit [Ping timeout: 240 seconds]
k8yun_ has joined #osdev
<papaya_> my boss wants a date field in our app to perform keystroke validations like... if the user types 14/ then immedaitely change it to 12, or if they type a 5 then put a leading 0 instead (no 5, they'll have to type that again I guess) like what the heck are we trying to mess with our users like this for, just let them type a date and if it makes sense then fix the formatting otehrwise make them correct it
<papaya_> themselves, too many weird assumptions, pitfalls, and bad UX trying to manually force keystroke validations in this manner /rant
<mrvn> 14 is a perfectly valid day.
<papaya_> somehow boss just doesn't get how bad of a user experience this creates
<mrvn> or year
k8yun has quit [Ping timeout: 252 seconds]
<mrvn> In QT you can type 1 and then it will only accept 0, 1 or 2 next.
<papaya_> in the US fwiw, our backwards practice is MM/DD/YYYY but yes I brought up this point, what if they are trying to put in a different format, we can't just magically change their input with no warning that will be horrible
<mrvn> That's why you ask month as name and not number.
<papaya_> well my boss wants to die on this hill, feels bad for our users
<papaya_> he would have a stroke if I said users should type the month by name
<papaya_> lol
<gog> time is fake, date fields are unnecessary
<mrvn> In QT when you press a key the resulting string + cursor position is put to the QValidator and if that says the input is invalid then the keystroke is simply rejected. So you can never input a wrong thing in the first place. But that sucks often when you want to edit. Like say the widget has 23 for the day. So you want to delete that and start over. delete the 3 gives you 2, OK. delete the 2 gives you 0,
<mrvn> FAIL. no,m can't delete the 2.
<kingoffrance> "our backwards practice" close, its middle endian :D YYYY MM DD big DD MM YYYY little
<mrvn> kingoffrance: big-small middle endian or small-big :)
<clever> mrvn: ive had problems where i wanted to change 200 to 300, so i backspace out the 2, but 00 then magically turns into 0 on its own!
<kingoffrance> s/middle/mixed/
Payam69 has joined #osdev
<Bitweasil> Yeah, if you're going to validate, do it on loss of focus, and then just mark it red or something.
<Bitweasil> Keystroke validation sucks.
<Bitweasil> I share the "Hate it with a burning passion" sentiment there.
<mrvn> clever: can't delete the 2 because 0 is invalid. Can't add a 3 because 3200 is too big.
<mrvn> clever: there are so many ways the validator can hurt you
<clever> ive also run into problems with middle-click paste
<papaya_> I agree Bitweasil, but my arguments against it fell flat with my boss
<clever> a lot of sites use key-up to trigger the search
<clever> ctrl+v has a key-up
<clever> middle-click doesnt have a key-up
<clever> thats what onchange is for!
<Bitweasil> Ban pasting to the field. It's cleaner that way!
<gog> yeah altering input while the input is taking place is nasty
<mrvn> But it's not QTs fault. Validator also has a "intermediate" state, saying the input is not valid but can be made valide. Your validator has to use that more.
<papaya_> There's so many ways keystroke validation can go wrong or infuriate the user
<mrvn> papaya_: I think for near current dates the best you can do is show a calender.
<papaya_> we do have a datepickers, its use is optional, as I feel it should be (datepickers have accessibility issues)
kkd has quit [Remote host closed the connection]
Payam69 has quit [Quit: Client closed]
Ali_A has quit [Quit: Connection closed]
eddof13 has joined #osdev
Ikkepop has joined #osdev
Coldberg has quit [Ping timeout: 260 seconds]
gog has quit [Quit: byee]
sonny has joined #osdev
Oli has joined #osdev
knusbaum has quit [Ping timeout: 240 seconds]
knusbaum has joined #osdev
<bslsk05> ​www.techradar.com: UltraRAM could soon eliminate the need for separate RAM and storage | TechRadar
Arthuria has joined #osdev
mahmutov has joined #osdev
jack_rabbit has joined #osdev
knusbaum has quit [Ping timeout: 252 seconds]
knusbaum has joined #osdev
jack_rabbit has quit [Ping timeout: 250 seconds]
knusbaum has quit [Quit: ZNC 1.8.2 - https://znc.in]
particleflux_ is now known as particleflux
xenos1984 has quit [Remote host closed the connection]
knusbaum has joined #osdev
xenos1984 has joined #osdev
Ali_A has joined #osdev
kkd has joined #osdev
Oli has quit [Quit: leaving]
pretty_dumm_guy has quit [Ping timeout: 256 seconds]
sonny has quit [Quit: Ping timeout (120 seconds)]
sonny has joined #osdev
Ali_A has quit [Quit: Connection closed]
sonny has quit [Ping timeout: 256 seconds]
eddof13 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<sham1> GeDaMo: I reserve the right to be skeptical
<GeDaMo> Ask me again a thousand years after I get one :P
<j`ey> that was a fun bug. linux kernel runtime patching, patching only the first instruction of a 4 instruction sequence, before that function was called again, ending up in a boot hang :D
rwb has quit [Quit: ZNC - https://znc.in]
rwb has joined #osdev
sonny has joined #osdev
dude12312414 has joined #osdev
mrkajetanp has joined #osdev
dennis95 has quit [Quit: Leaving]
eroux has joined #osdev
terminalpusher has joined #osdev
netbsduser has quit [Quit: Leaving]
mahmutov_ has joined #osdev
mahmutov has quit [Ping timeout: 250 seconds]
heat has joined #osdev
<zid> who needs ram when you have 768MB of L3
sonny has quit [Quit: Client closed]
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
gog has joined #osdev
<kingoffrance> one giant step for cache, one small step towards pages inside registers
<gog> mew
<gog> 4096-byte registers yes
<zid> I have some of those
<gog> gigabyte caches
k8yun_ has quit [Quit: Leaving]
<zid> I even have a cool remapping system for them
<zid> I can map any reg to any other reg
<zid> The opcode to move values between regs is weird though, it's mov rsi, reg1; mov rdi, reg2; mov rcx, 4096; rep movsb
<zid> instructions*
<gog> nice
<zid> it's easier to just remap them
sonny has joined #osdev
sonny has quit [Quit: Client closed]
eroux has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
nur has quit [Ping timeout: 256 seconds]
fkrauthan has quit [Quit: ZNC - https://znc.in]
fkrauthan has joined #osdev
terminalpusher has quit [Remote host closed the connection]
catern has joined #osdev
hbag has joined #osdev
<catern> "We had special assembly language macros to create gates; we never fixed the compilers or the binder to let ordinary programs be gates." wtf i hate multics now
<bslsk05> ​multicians.org: Multics Virtual Memory - Tutorial and Reflections
blockhead has joined #osdev
papaya_ is now known as papaya
X-Scale has quit [Ping timeout: 256 seconds]
X-Scale` has joined #osdev
X-Scale` is now known as X-Scale
<papaya> \o/
eroux has joined #osdev
<gog> mew
<GeDaMo> I just had a Polish Witcher-themed energy drink, the flavour was apple and kiwi called "Kot" (Polish for cat)
<gog> i want the cat drink
<gog> also speaking of cats, our visitor came back this morning and his airtag was beeping and i looked at his collar again and found a name tag with a phone number. his fur is so thick i missed it before :p
<gog> got in contact with the owner and said "hey we have your cat if you're looking for him lol"
ravan_ is now known as ravan
<geist> black metal cat's only home is pain
<heat> cat
papaya has quit [Quit: leaving]
<gog> cat
<GeDaMo> kot
<gog> k
<gog> köttur
<kazinsal> nyäa
<bslsk05> ​'TIK TOK COMPILATION - ALL MY VIDEOS of calling cats and people in different languages! #shorts' by Dennis loves cats (00:09:43)
srjek has joined #osdev
GeDaMo has quit [Remote host closed the connection]
Ikkepop has quit [Ping timeout: 240 seconds]
papaya has joined #osdev
Ali_A has joined #osdev
<Ali_A> trying to load my kernel which is at sector 2 with my bootloader which is at sector 1
<Ali_A> yet, when i set a breakpoint and use gdb to check, gdb says signal trap was received.
<Ali_A> everything I did is at the paste bin below
<bslsk05> ​pastebin.com: try to load kernel - Pastebin.com
<immibis> it is a rare day that I look at IRC and I have not been kicked out of #osdev because of some connection problem and not automatically rejoining after identifying
<immibis> why *does* this channel require identification?
<kazinsal> slows down bots and unhinged people
<klange> Because after the major spam wave on Freenode just a bit before the migration it was essentially required to require identification if you wanted a functioning channel.
<immibis> Arthuria: Linux, at least on ARM, has this fake "platform bus" which is just a container for all the stuff that's not discoverable via an actual bus that supports discovering things. And its contents are either hardcoded (old kernels) or come from the device tree (which is hardcoding with extra steps, if you embed the device tree in the kernel, but it can also be in the firmware)
sonny has joined #osdev
<bslsk05> ​www.kernel.org: Platform Devices and Drivers — The Linux Kernel documentation
mahmutov_ has quit [Ping timeout: 240 seconds]
wereii has quit [Quit: ZNC - https://znc.in]
C-Man has joined #osdev
wereii has joined #osdev
Burgundy has left #osdev [#osdev]
<sonny> in small embedded environments, is the OS just a loader/runtime for your app?
<heat> yes
<heat> more like a library honestly
<j`ey> its the same for desktop OS too :p
<heat> in small embedded stuff you do everything in the kernel
<heat> note: small stuff is progressively less "small embedded"
<heat> but yeah something like an rpi pico is way too tiny for an OS
<sonny> nice, I was thinking of something that size
<heat> 2MB flash is decent for a kernel or firmware of some sort, but not an actual system
<kazinsal> yeah that's "single purpose dedicated kernel and friends" level stuff
<heat> and way too little ram
<sonny> the embedded part means you already know what the application will be for, and the SDKs provide functions that describe hardware and some other related stuff?
<kazinsal> wow yeah didn't realize the rpi pico only had 264K of RAM
<kazinsal> that's nutty
<sonny> so the SDK would describe the I2C, SPI, pins etc?
<heat> think so yeah
<sonny> ohhhh
<heat> and really basic functions
<sonny> ok, that makes sense
<heat> i always think of an arduino
<sonny> yeah, so arduino ide ... what is that?
<heat> it's a very basic example of an embedded thing: all you do is define the main function and do stuff to the pins, the sdk does the rest
Ali_A has quit [Quit: Connection closed]
<sonny> I see
<sonny> it's no wonder the C ABI is so popular then
<heat> the C ABI doesn't exist how is it popular lol
<sonny> hmm? that's what they use for devices like this?
<heat> C doesn't define an ABI
<sonny> ok, so I guess the chip makers do then?
<heat> no
wand has quit [Ping timeout: 240 seconds]
<heat> architectures sometimes define the ABI (like RISCV)
<heat> others don't (like x86) so it depends on the OS/toolchain
wand has joined #osdev
sonny has quit [Remote host closed the connection]
sonny has joined #osdev
Arthuria has quit [Ping timeout: 250 seconds]