Search logs:

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

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

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

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


http://bespin.org/~qz/search/?view=1&c=osdev2&y=23&m=9&d=12

Tuesday, 12 September 2023

02:10:00 <moon-child> maybe if k&r had had better socks they would have made a better os
02:16:00 <heat> maybe they should've written it in fucking rust
02:16:00 <heat> the idiots
02:18:00 <cloudowind> moon-child: what a beautiful nick
02:25:00 <moon-child> thank you
02:25:00 <moon-child> I had to wear a lot of programming socks to get it
02:42:00 <bl4ckb0ne> are they red white and blue
02:43:00 <zid> pink, pale blue and white
02:45:00 <moon-child> https://www.amazon.com/s?k=programming+socks us amazon is clueless, apparently
02:45:00 <bslsk05> ​www.amazon.com: Sorry! Something went wrong!
05:04:00 <sham1> I thought that SICP is the original recommendation to go alongside the programming socks
05:05:00 <sham1> Who knows, you could always combine it with the use of a fez
07:44:00 <kazinsal> experiment results: the programmer socks may have made me better at healing in FFXIV
07:45:00 <sham1> Healing socks
07:52:00 <FireFly> oh
07:52:00 <FireFly> maybe I need to acquire some then, I'm basically useless at anything that isn't dps (and tbh that too)
08:01:00 <kof13> ff6 had marvel shoes. marvelous: not understood -- devil's dictionary lol
10:53:00 <Hammdist> I've run into a stumper with my OS thought I'd post here for advice. as you may know when starting a user program the stack is initialized with args, envp, and auxv data. If I copy the initial stack from QEMU, duration of my program is 8s. if I initialize the stack using my own code, duration of my program is 11s. so I suspect the program is
10:53:00 <Hammdist> testing some capability and running in a slower compat mode for some operations. however I've checked in qemu+gdb that the HWCAP auxv entry is picked up correctly by the program. any advice appreciated.
13:52:00 <x8dcc> What do you think is the easiest way of switching between VGA terminal and framebuffer? The only way I know currently is by setting or clearing the bit 2 of the multiboot flags at compile time
13:52:00 <heat> that one
13:53:00 <x8dcc> I mean at runtime, sorry
13:53:00 <heat> it's very hard, don't attempt it
13:53:00 <heat> it involves video drivers and black magic
13:54:00 <nortti> you'll probably just want to write a framebuffer-based console
13:54:00 <heat> yea
13:54:00 <x8dcc> hmm... then I think I am missing something because I saw it in a simple kernel I found on github, but the code is very hard for me to read
13:54:00 <x8dcc> nortti: I already have that
13:54:00 <nortti> what's the kernel?
13:54:00 <heat> linux?
13:54:00 <heat> :p
13:55:00 <x8dcc> https://github.com/ozkl/soso
13:55:00 <bslsk05> ​ozkl/soso - A Simple Unix-like operating system (46 forks/853 stargazers/BSD-2-Clause)
13:55:00 <sham1> The word was "simple", not "pessimal"
13:55:00 <x8dcc> I am no expert, but I just can't navigate his code
13:56:00 <nortti> hm, "vbe.h"
13:56:00 <x8dcc> The thing is, he boots into (what looks like) VGA console, and then switches to framebuffer for a simple WM
13:56:00 <heat> he does not
13:56:00 <heat> ; Graphics requests
13:56:00 <heat> dd 1024
13:56:00 <heat> dd 768
13:56:00 <heat> dd 0x00000000 ; 0 = linear graphics
13:56:00 <heat> dd 32
13:56:00 <x8dcc> but when you close all windows, it goes back to VGA
13:56:00 <x8dcc> yeah, I saw that, he uses GFX. Is it just a VGA-looking font?
13:57:00 <nortti> iirc you can read the actual VGA font from the video card too
13:57:00 <x8dcc> because if you look at kernel.c, it checks the framebuffer mode
13:57:00 <x8dcc> s/kernel.c/main.c
13:57:00 <x8dcc> https://github.com/ozkl/soso/blob/8339000940219bad492c35157ba694036a87c52c/kernel/main.c#L118-L125
13:57:00 <bslsk05> ​github.com: soso/kernel/main.c at 8339000940219bad492c35157ba694036a87c52c · ozkl/soso · GitHub
13:58:00 <x8dcc> I tried figuring out what he does, but I don't like his coding style at all
13:58:00 <heat> BOOL graphics_mode = (MULTIBOOT_FRAMEBUFFER_TYPE_RGB == mboot_ptr->framebuffer_type);
13:58:00 <sham1> x8dcc: it doesn't switch. Whether it uses VGA or the framebuffer is decided by the graphics mode provided by multiboot
13:58:00 <sham1> Yeah
13:58:00 <heat> if (graphics_mode)
13:58:00 <heat> {
13:58:00 <heat> gfx_initialize((uint32_t*)(uint32_t)mboot_ptr->framebuffer_addr, mboot_ptr->framebuffer_width, mboot_ptr->framebuffer_height, mboot_ptr->framebuffer_bpp / 8, mboot_ptr->framebuffer_pitch);
13:58:00 <heat> }
13:58:00 <heat> console_initialize(graphics_mode);
13:58:00 <heat> no swtiching mate
13:58:00 <x8dcc> can you just try the ISO from the releases page? so you can see what I mean
13:59:00 <x8dcc> just do `qemu-system-i386 -cdrom soso.iso`
13:59:00 <sham1> Why can't you do it
13:59:00 <x8dcc> when it boots/you close all windows it really looks like vga
13:59:00 <x8dcc> sham1: what do you mean? do what?
13:59:00 <sham1> Oh, I misread
13:59:00 <heat> yeah none of these are the vga console
14:00:00 <heat> https://i.imgur.com/AuuwKkW.png
14:00:00 <bslsk05> ​i.imgur.com <no title>
14:00:00 <x8dcc> oh okay, then the white background console just looks really similar
14:01:00 <heat> it has a resolution and framebuffer
14:01:00 <sham1> It's probably just the font that's confusing this
14:01:00 <x8dcc> yeah and the cursor
14:02:00 <x8dcc> well, I basically do the same then. Check for the returned mode and if it's not rgb, print an error on VGA console or whatever
14:03:00 <heat> TIL nano-x
14:03:00 <heat> kinda cute
14:06:00 <nortti> I think it runs on ELKS too
16:26:00 <gog> meow
16:26:00 * lian ow
16:42:00 <zid> Me ow. You gog.
16:43:00 <gog> no u
16:43:00 * zid flicks gog on the foothead
16:43:00 <zid> You ow & gog.
16:45:00 <lian> meow :}
16:45:00 <gog> what's a foothead
16:45:00 <gog> meow :3
16:46:00 <zid> :{ is my emoji, it's a very luxurious moustache
16:46:00 <zid> emoticon*
16:50:00 <gog> ominous
16:52:00 <gog> https://i.imgur.com/KX3kfpK.png i'm deleting the website, jojo
16:52:00 <bslsk05> ​i.imgur.com <no title>
16:52:00 <gog> not pleased i had to add 16 lines to accomplish this
18:19:00 <gog> hi
18:41:00 <heat> linux gog linux
18:41:00 <zid> stop, collaborate and listen?
18:41:00 <heat> no, not listen, linux
18:42:00 <zid> oh sorry
18:45:00 <heat> i wrote an interval tree today but im not sure if its correct
18:45:00 <heat> at the very least i'm lacking full coverage
18:47:00 <zid> heat you were supposed to be writing me a trash allocator
18:48:00 <heat> return &heat;
18:51:00 <GeDaMo> Is 'heat' an automatic variable? :|
19:30:00 <gog> heat: do you want some mac and cheese?
19:40:00 <gog> stop, collaborate and linux
19:40:00 <gog> torvalds is back with a brand new invention
19:41:00 <ChavGPT> what
19:41:00 <gog> hi
19:43:00 <ChavGPT> hello gog
19:43:00 <gog> hello ChavGPT
19:43:00 <gog> do you want some mac and cheese
19:43:00 <ChavGPT> i/m operating in code of conduct mode today
19:43:00 <ChavGPT> no thank you, a little late for eating anything for me
19:43:00 <gog> what is code of conduct mode
19:43:00 <gog> does it mean i can't trick you into spewing slurs
19:44:00 <ChavGPT> i don't think tricking people into anything is particularly nice
19:44:00 <gog> fair
19:48:00 <ChavGPT> interesting CoC prevents me from comment on onyx :X
19:48:00 <ChavGPT> interestingly even
19:48:00 <Cindy> hi gog
19:51:00 <Cindy> i took over, bnchs had his time :P
19:51:00 <gog> hi Cindy
19:52:00 <Cindy> now i'm cindy :D
19:53:00 <ChavGPT> i'm spartakus
19:57:00 <gog> i'm gog
19:58:00 <ChavGPT> cccombo breaker innit
19:58:00 <Cindy> hi gog
19:58:00 <Cindy> how are you doing
19:58:00 <gog> p good
19:58:00 <gog> how are you
19:58:00 <Cindy> pretty good too :3
20:07:00 <gog> ChavGPT: i had a pessimal experience today
20:07:00 <gog> my reviewer didn't like how i solved a particular problem so i ended up having to revert it and putting conditionals in a loop where they don't really need to be :(
20:07:00 <gog> we could've saved dozens of cycles
20:08:00 <ChavGPT> ask chatgpt next time
20:09:00 <gog> yes
20:09:00 <gog> the plagiarism machine is what i need in my life
20:10:00 <gog> i've deliberately refused to use chatgpt for anything
20:10:00 <gog> i've played with it momentarily but it's frankly kinda boring
20:10:00 <gog> and i don't think it's a good example of how LLM technology can be of benefit
20:15:00 <moon-child> no code motion?
20:18:00 <gog> no
20:19:00 <moon-child> wut
20:19:00 <moon-child> what kind of compiler are you using?
20:19:00 <geist> what is code motion?
20:20:00 <geist> like hoisting stuff out of the loop automatically?
20:20:00 <moon-child> a compiler optimisation where it moves code--for example, moving a calculation out of a loop
20:20:00 <moon-child> yeah
20:20:00 <gog> idk maybe
20:20:00 <gog> it is .net
20:20:00 <gog> so idk what happens when it all jits
20:21:00 <gog> besides my "optimization" was probably premature
20:23:00 <heat> code lotion
20:23:00 <gog> hhhhh
20:23:00 <heat> ChavGPT, hi how are you
20:24:00 <heat> why are you so mean sometimes
20:30:00 <gog> meow
20:30:00 * moon-child pets gog
20:31:00 * gog prr
20:31:00 <heat> gog giv eme hog
20:31:00 * gog hug heat
20:32:00 * heat hog gog
20:43:00 <zid> heat: is it done now?
20:45:00 <heat> what is
20:45:00 <geist> the only answer is yes
20:45:00 <geist> or if it has anything to do with osdev: no
20:47:00 <heat> i've been doing vm work
20:47:00 <heat> mainly thinking about rmap page -> mappings
20:47:00 <heat> also LRU
20:48:00 <heat> i don't like how the UVM stuff just leaves that to pmap
20:48:00 <heat> "meh, they'll figure it out"
20:48:00 <heat> freebsd does that too
20:48:00 <heat> how ungeneric can this be? lol
20:48:00 <geist> yeah i've always been generally in Team Pmap, but i'm starting to see some of the downsides
20:49:00 <geist> well, trouble is the rmap stuff tends to be managed by the pmap because it's when it has to fiddle around with adding/removing
20:49:00 <geist> but indeed, i see no reason the rmap stuff cant be put outside of pmap in a arch neutral generic place
20:50:00 <heat> the linux stuff just links vmas together, that's the whole rmap
20:50:00 <heat> it's very generic and reusable
20:50:00 <geist> right, well linux doesn't really have a pmap in that cas,e so it kinda sidesteps it
20:50:00 <heat> you don't know if a page *is* mapped under linux rmap
20:50:00 <heat> you just know it can be mapped
20:51:00 <geist> 'could be' as in 'maybe it is, maybe it isn't, but it definitely might be?'
20:51:00 <heat> there's no map(page, addr) { ...; add_to_rmap(page, addr, address_space);}
20:51:00 <heat> yes
20:51:00 <geist> ie, a soft 'yes'
20:51:00 <heat> so you go through mappings and just forcibly make sure it isn't mapped, done
20:52:00 <geist> that's what zircon does, we just dont have a rmap, but then that means some operatios are pretty expensive
20:52:00 <geist> notably shooting down a mapping of any given page is a O(N) walk through every known mapping and doing a shootdown on that aspace
20:52:00 <heat> oh no
20:52:00 <heat> that's not what linux does
20:52:00 <heat> they use an interval tree
20:52:00 <heat> which is what i've been working on today
20:53:00 <heat> basically an augmented binary search tree with ranges
20:53:00 <geist> i think we have an optimization that we know if there are zero mappings at least and skip the shootdown
20:53:00 <geist> but only if there are zero mappings, because then the LRU has tracked that
20:53:00 <heat> like if you want to reclaim a page from a specific inode, you go through its mappings and search for mappings of range [N, N + 4096]
20:53:00 <heat> so it's O(log n)
20:54:00 * geist nods
20:55:00 <geist> in gneral the vast majoroity of pages are mapped once in zircon, so it's really not too bad. for those there's a single mapping, and we already know if the page is definitely unmapped, so we can skip it
20:55:00 <geist> and if it's possibly mapped, we just shoot it down, so it's not the end of the world
20:55:00 <heat> you don't CoW too much?
20:55:00 <geist> well, that's the problem. we have the standard 1990s era 'cow chain that goes on forever' problem
20:56:00 <heat> haha
20:56:00 <geist> so for certain vmos it's pretty bad. that's where most of the work is currently being done to clean things up
20:56:00 <geist> notably libc.so, etc
20:56:00 <heat> the mach kernel people called, they want their problem back
20:56:00 <heat> :P
20:56:00 <geist> yup
20:56:00 <heat> what if
20:56:00 <heat> you just got rid of cow chaining?
20:56:00 <geist> tat's the idea
20:56:00 <geist> some work is afoot to rethink that whole strategy
20:57:00 <heat> and you'll break userspace?
20:57:00 <geist> how so?
20:57:00 <heat> or do you think you have some leeway for that?
20:57:00 <geist> leeway
20:57:00 <heat> don't you expose all the VMO mechanisms to userspace?
20:57:00 <heat> like COW chains and stuff
20:57:00 <geist> ah but we're very veru careful to expose it specifically not like that
20:57:00 <geist> ie, the operations user space has is basically 'make vmo, map vmo, clone vmo'
20:57:00 <geist> but once it's cloned, it's logically separate
20:58:00 <geist> as in the whole parentage, is a side effect, but not load bearing
20:58:00 <heat> the classic solution is to separate CoW pages into an 'amap'-ish thing
20:58:00 <heat> which sticks together with the mapping, but i guess you could make that its own object
20:59:00 <heat> i don't know if that solves your issue, but it solves the UNIX issues
20:59:00 <geist> yeah of course trouble with our design is you can operate on the vmo outside of a mapping
20:59:00 <geist> a mapping is just one of the things you can do, but you can also just pass around a handle to a perfectly unmapped vmo and fiddle with it directly
20:59:00 <geist> so we cant really use mappings as a way to track things. that's probably where most of the complexity comes from
20:59:00 <heat> oh and this is also a funny detail on the linux side - a MAP_PRIVATE file mapping is both on the inode's mapping tree and the anon_vma tree
21:00:00 <heat> it's like a double-edged thing
21:00:00 <geist> vmos are intrinsically more poweful from the get go, since they're functionally a tmpfs like file object from day 1
21:00:00 <geist> but that also means they're a little harder to rethink
21:00:00 <geist> since they have more 'mass' i guess
21:01:00 <geist> one thing i think that might be interesting is to literally shrae pages at the page level, and hust have vmos pointing at runs of pages, each ref counted,e tc. basically like btrfs or whatnot
21:02:00 <geist> probably the data structures for that would be fairly heavyweight, but it would sever the entire parentage stuff
21:02:00 <heat> and marking pages CoW?
21:02:00 <heat> like page->flags |= PAGE_COW;
21:03:00 <geist> well, naieely it wouldn't be at the page level, the vmo itself would know if it's requirede to cow its pages, and when it goes to write to a page, and the page turns out to be ref > 1 then it makes a copy
21:04:00 <geist> ie, pages are just pages, but they may be referred to by multiple vmos, but then the vmo knows if it needs to cow or not
21:04:00 <heat> yeah but ref > 1 is not quite correct is it
21:04:00 <heat> someone could have an ephemeral reference just to read from it or something
21:04:00 <geist> ah depends on if it's useful to have a assymmetric COW mechanism
21:05:00 <geist> or all COW is always intrinsically symmetric
21:05:00 <heat> that's actually a thing i've thought about lately: do i want a ref counter *and* a nr_mappings; counter
21:05:00 <geist> ie do you want to cow something and then non cow clone the first clone
21:05:00 <heat> with 2 counters you can easily see which bits are being temporarily held and which bits are just mapped, and the mapped bits can easily be reclaimed
21:05:00 * geist nods
21:06:00 <geist> anyway, i mostly dont work on that stuff anymore, i'm pretty much 100% riscv right now
21:06:00 <geist> but i talk to our vm folks, good people
21:06:00 <heat> RIIIIIIIIIIIIIIIISCCCCCCCCCCCCCVVVVVVVVVVVVVVVVVVV
21:06:00 <geist> RIIIIIIIISCV
21:06:00 <heat> doesn't have the same ring to it
21:06:00 <gog> RUUUUUUUST
21:06:00 <heat> rest in peace ITAAAAAAAAAAAAAAAAANIUUUUUUUUUUM
21:06:00 <geist> just tracking riscv extensions is like half the work now
21:06:00 <geist> i have this mega spreadsheet with every known extension as i come across them and where the docs are, etc
21:07:00 <gog> what's a good riscv board
21:07:00 <geist> best available for the moment is the visionfive 2
21:07:00 <geist> if you're okay with a headless thing
21:07:00 <gog> hmmm
21:08:00 <gog> maybe i could get a serial port -> usb thing
21:08:00 <geist> like you can run ubuntu server on it, and it seems to happily run linux user space. not super fast, but not terribly slow either
21:08:00 <geist> and yeah for osdev it has grub and whatnot and you can set it up to tftp load a binary, etc
21:08:00 <geist> it's not too bad
21:09:00 <nortti> how's the star64?
21:09:00 <geist> it's about cortex-a53 class
21:09:00 <geist> nortti: hmm, dunno that one. lemme see
21:09:00 <geist> usually you can tell based on what the cores are
21:10:00 <geist> https://wiki.pine64.org/wiki/STAR64 ah looks like it'd be functinoally identical to visionfive 2
21:10:00 <bslsk05> ​wiki.pine64.org: STAR64 - PINE64
21:10:00 <geist> same soc, about the same amount of ram, etc
21:11:00 <geist> yeah, basically same thing, different board layout
21:11:00 <geist> note that there's no KVM on these, since the cpu doesn't have the H extension, so dont expect to use it as a qemu host
21:12:00 <geist> next gen sifive cores have H extension, so probably in a year or so will start seeing those floating around
21:12:00 <geist> P470,p670, p8xx, etc. those also have V extension, so really it's the next gen stuff that will start to actually compete with cortex-a7x class stuff
21:22:00 <heat_> from what i've read around in #riscv visionfive 2 is a lot more usable from an upstream kernel than the pine64 stuff
21:23:00 <heat> anyway all i want in life is affordable fast arm64/riscv64 hardware
21:23:00 <heat> like an intel-i5-level cpu
21:23:00 <heat> not an ampere altra that costs ya 10 gazillion usd dollar
21:24:00 <heat> or a crappy rpi
21:24:00 <nortti> if you want i5 level, ignoring price, what options are there even? intel and amd amd64, apple arm64?
21:25:00 <heat> probably apple arm64 is my best bet yeah
21:25:00 <nortti> you can get used m1 mac minis for a few hundred euros that I've seen in the local apple hobbyists forum
21:26:00 <CompanionCube> is the loongson mips stuff i5 level?
21:26:00 <heat> there's only one single vendor that sells performant cheaper hardware
21:26:00 <heat> oh loongson probably sucks lol
21:27:00 <heat> there's no way an obscure chinese architecture beats even current riscv
21:27:00 <nortti> https://chipsandcheese.com/2023/04/09/loongsons-3a5000-chinas-best-shot/
21:27:00 <bslsk05> ​chipsandcheese.com: Loongson’s 3A5000: China’s Best Shot? – Chips and Cheese
21:28:00 <nortti> tl;dr: "Even though Loongson has gotten their cores up from 1 GHz to 2.5 GHz, no one runs desktop or even laptop CPUs at clocks that low. Because of its massive clock speed deficiency, Loongson can’t even get in to the same performance ballpark as recent desktop CPUs. It even struggles against Neoverse N1 running at 3 GHz."
21:30:00 <heat> "The result is that today, Loongson doesn’t feel any closer to Intel and AMD than they were a decade ago. I also don’t think they have a good chance of landing in the same performance ballpark unless they make some giant leaps"
21:30:00 <heat> lol
21:31:00 <ChavGPT> performant aint a word bro
21:31:00 <sham1> What is it then
21:31:00 <heat> who the fuck asked
21:32:00 <ChavGPT> have some dignity young man
21:32:00 <heat> s/performant/NOT PESSIMAL/
21:34:00 <kazinsal> OED lists "performant", as does cambridge
21:35:00 <kazinsal> thus it is a word
21:36:00 <moon-child> oh yeah
21:36:00 <moon-child> sounds like those dictionaries are PESSIMAL
21:37:00 <nortti> kazinsal: do they have "pessimal"?
21:38:00 <sham1> Do they even have optimal
21:39:00 <heat> wait a fucking minute
21:39:00 <heat> pessimal means worst
21:39:00 <heat> this dude has been using the wrong word
21:39:00 <ChavGPT> what?
21:39:00 <heat> : of, relating to, or constituting a pessimum : WORST
21:40:00 <ChavGPT> i picked it up from an australian geezer
21:40:00 <ChavGPT> true story
21:40:00 <heat> pessimal means worst
21:40:00 <heat> if something is pessimal it has to be the *worst*
21:40:00 <zid> it's the opposite of optimal
21:40:00 <heat> literally the opposite of optimal
21:40:00 <sham1> What *did* you think it meant
21:41:00 <heat> fuck do i know
21:41:00 <zid> tbh that isn't how people use it for computer jargon
21:41:00 <ChavGPT> is my whole life a lie?
21:41:00 <heat> i just saw this freebsd geezer throwing this word around like it was in style
21:41:00 <zid> by which I mean, the three times it's ever been used
21:41:00 <sham1> I mean, optimal means "the best"
21:41:00 <ChavGPT> it is in certain circles mon
21:41:00 <sham1> From the latin optimus, the best
21:41:00 <ChavGPT> and boils down to "slower than it could be for no good reason"
21:41:00 <zid> right but optimize doesn't mean "Make the best"
21:41:00 <zid> in computing
21:41:00 <zid> it means to improve
21:41:00 <zid> so pessimize in computing should mean "to deprove" :p
21:42:00 <sham1> You're trying to make the software the best it can be
21:42:00 <ChavGPT> who is
21:42:00 <sham1> The one optimising
21:42:00 <zid> It's just a lexical gap that we stuffed with a very similar word
21:42:00 <zid> otherwise you'd have to say "attempt to optimize" to mean "make faster"
21:42:00 <zid> which is awkward af
21:42:00 <zid> so, we just say optimize
21:43:00 <sham1> We could always say that we're perfecting the program :P
21:44:00 <zid> right, that's the same
21:44:00 <zid> we don't take it in its literal sense, we take it in a progressive incremental sense
21:44:00 <ChavGPT> i will never use that word again beacause of heat
21:44:00 <heat> good
21:44:00 <heat> what do you think of my mutexes
21:44:00 <ChavGPT> i'm going to stop using slurs as well, indefinitely
21:44:00 <heat> are they unbest
21:44:00 <zid> I think you should add me an allocator
21:44:00 <ChavGPT> i can't answer that Pedro
21:45:00 <zid> spend an hour on it for me
21:45:00 <heat> ok mateusz
21:45:00 <heat> ok mateusz@
21:48:00 <gog> hi
21:48:00 <heat> hi gog
21:48:00 <ChavGPT> gog are you going to be my friend
21:48:00 <gog> yes
21:48:00 <ChavGPT> i have to cut off heat
21:48:00 <ChavGPT> thanks gogs
21:48:00 * ChavGPT hugs gog
21:48:00 <gog> friendship ended with heat, now gog is my best friend
21:48:00 * gog hug ChavGPT
21:49:00 <ChavGPT> OPTIMAL friendship
21:49:00 <heat> motherfucker she branches her whole code and tells IRC
21:49:00 <heat> and you prefer her?
21:50:00 <ChavGPT> i feel deeply demotivated
21:50:00 <ChavGPT> if you can't say code is pessimal, what is even the point
21:50:00 <gog> hey hey hey now
21:50:00 <ChavGPT> of doing a review
21:50:00 <heat> have you considered saying
21:50:00 <heat> "Hey! This could be improved:"
21:50:00 <gog> i wanted to keep the reduction
21:50:00 <ChavGPT> heat: i don't work at corporate anymore
21:51:00 <gog> it was cleaner to me
21:51:00 <gog> but the argument was "what if you a year ago saw this code"
21:51:00 <ChavGPT> heat: you have the right mindset for your corpoate job though
21:51:00 <gog> :|
21:51:00 <gog> me a year ago "sweet it's optimal"
21:51:00 <heat> what's the mindset? being nice?
21:51:00 <ChavGPT> mon
21:51:00 <ChavGPT> :D
21:52:00 <ChavGPT> that's not being nice in the english speaking world
21:52:00 <zid> Can I have an example of the two
21:52:00 <zid> so I can pick the good one and scold the bad one
21:52:00 <ChavGPT> vast majority of these sentences have an implied "you fucking retard" after them
21:52:00 <heat> is the english speaking world to you al viro's emails?
21:52:00 <ChavGPT> i think i already told you how native speakers operate in this manner
21:52:00 <ChavGPT> but i'm going to do it again
21:53:00 <zid> we love katamari reroll+ royal reverie is 25% off on steam..
21:53:00 <ChavGPT> person asks, gets a response "looks great, good job"
21:53:00 <heat> here's a nice tip: normal people take criticism really harshly
21:53:00 <ChavGPT> then the guy who said that writes to his buddy "what a fucking retard"
21:53:00 <zid> they do, it's odd
21:53:00 <zid> don't give a shit about their craft, just their eggos
21:53:00 <heat> programmers have a higher tolerance level but being nice is still good
21:53:00 <ChavGPT> i see no problems with people being nice
21:54:00 <heat> it's not giving a shit about a craft
21:54:00 <ChavGPT> i'm saying they are normally not nice but they are pretending
21:54:00 <heat> when you try hard and do something and someone tells you "ye mate this sucks" it stings
21:54:00 <sham1> heat: your code is pessimal and you should feel bad
21:54:00 <heat> see, that would hurt
21:54:00 <zid> heat: 1000% disagree.
21:55:00 <zid> If your focus was on improving, because you're crap, you'd welcome CC.
21:55:00 <zid> Focused on the craft, not focused on the result, or the praise, etc
21:55:00 <ChavGPT> you can deliver constructive criticism without making the person feel like shite
21:56:00 <ChavGPT> the problem is that people who claim to do it mostly don't even by their own assesment
21:56:00 <ChavGPT> just like when banning cussing makes people invite other ways of being nasty
21:57:00 <ChavGPT> banning "harsh" comments invites creative ways of insulting people instead
21:57:00 <ChavGPT> which people *do* take advantage of with plausible deniability
21:57:00 <sham1> I think the problem there is there being constructive is in a way ill-defined
21:57:00 <zid> englaise sil vous plait
21:58:00 <ChavGPT> sham1: sure, but it boils down to: is this actionable and workign towards resolution
21:58:00 <ChavGPT> "LOL GIT GUD KID" clearly is not
21:59:00 <ChavGPT> "you need to read this and that chapter of 'programming for idio^Wpeople like you' is
22:00:00 <ChavGPT> assming chapters at hand explain how to do something the person messed up
22:00:00 <heat> getting criticism is a trial by fire and it stings harder the less you've got
22:01:00 <ChavGPT> code review: 10k LOC: LGTM ; 10 LOC: endless nitpicks
22:01:00 <heat> it's not that people don't care about "their craft", it's that people have feeling and feelings hurt
22:01:00 <ChavGPT> on that positive note i'm going afk
22:01:00 <ChavGPT> rest assured most so-calledp rogrammers don't care
22:02:00 <ChavGPT> for real
22:02:00 <zid> It only "hurts" *if your feelings are hinged on something other than the craft*
22:02:00 <ChavGPT> the typical idea is to move to management as soon asy ou can
22:02:00 <zid> like say, praise, or results, or showing off, or whatever
22:02:00 <heat> or effort
22:02:00 <zid> If they're pinned to how good you are, you *like* it when people help you improve your shit
22:04:00 <gog> i don't really follow what this argument is about
22:04:00 <gog> specifically, not generally
22:05:00 <Ermine> gog: may I pet you
22:05:00 <gog> yes
22:05:00 <heat> on another note i'm using gcov today for the first time and it works nicely
22:05:00 * Ermine pets gog
22:05:00 <zid> use gperf instead, make some hashtables
22:05:00 * gog prr
22:11:00 <heat> gperf makes hashtables lol
22:11:00 <heat> that's some weird naming
22:11:00 <zid> yea it is
22:11:00 <gog> nerds with your programming
22:13:00 <heat> actually gcov just helped me find some dead code
22:13:00 <heat> yay
22:17:00 <heat> https://i.imgur.com/OOyTUCM.png look at this fucking line coverage
22:17:00 <bslsk05> ​i.imgur.com <no title>
22:17:00 <heat> branches could be better but i take it anyway
22:18:00 <heat> i should hack together gcov support for my kernel one day
22:19:00 <zid> after my allocator
22:23:00 <moon-child> why are there perfect bound hardbacks
22:23:00 <moon-child> this should be illegal
22:24:00 <moon-child> I hate what our world has become
22:24:00 <gog> zid: i'm writing your allocator
22:29:00 <zid> nice
22:43:00 <kof13> > 10k LOC: LGTM ; 10 LOC: endless nitpicks that ....sounds like bike shedding :D
22:44:00 <gog> i'm bike shedding
22:44:00 <gog> i have bicycles coming off of me
22:44:00 <kof13> also story of mel uses pessimum IIRC
22:44:00 <zid> red
22:45:00 <kof13> > just like when banning cussing makes people invite other ways of being nasty that sounds like tao lol
22:47:00 <kof13> i didn't really have a point, just these are all known and have names (not a criticism, a recognition, concurring)
23:02:00 <kof13> also conway's law for the last...have to communicate being nasty some other way if the vocabulary does not allow it :D
23:03:00 <CompanionCube> https://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git/commit/?h=remove-ia64&id=cf8e8658100d4eae80ce9b21f7a81cb024dd5057 rip
23:03:00 <bslsk05> ​git.kernel.org: kernel/git/ardb/linux.git - Unnamed repository; edit this file 'description' to name the repository.
23:03:00 * kof13 .oO( writes meta design patterns book )
23:12:00 <zid> concensus seems to be "yea, it's broken and nobody cares, it'd be nice to get rid of" contrasted against "but it's not actually doing any harm by being there undeleted"
23:17:00 <gog> wuh
23:18:00 <gog> if there's code that needs deleting then delete it
23:18:00 <gog> why preserve something that's rotted
23:18:00 <zid> that's the thing, it doesn't need to be
23:18:00 <gog> ok
23:18:00 <zid> and it's probably easily repaired if anybody cares about ia64 next month
23:18:00 <gog> oh
23:18:00 <zid> but it *is* currently broken, and glibc wants to be rid of supporting it, etc
23:18:00 <gog> i mean that's fair enough imo
23:19:00 <zid> so now would be a good time to pull the trigger if it's going to eventually happen anyway
23:19:00 <gog> can't keep bringing along niche platforms forever i guess
23:19:00 <kazinsal> yeah, that's netbsd's job
23:19:00 <gog> yes
23:37:00 <ChavGPT> does it even work on itanium
23:38:00 <ChavGPT> Tasks remaining:
23:38:00 <ChavGPT> - context switching and forking appear unfinished, vm_machdep.c::cpu_lwp_fork() appears incomplete
23:38:00 <ChavGPT> - fix memory detection, on real hardware doesn't find all memory
23:38:00 <ChavGPT> - implement interrupts (sacpi & pci)
23:38:00 <ChavGPT> and so on
23:38:00 <ChavGPT> basically it does not