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=1&d=20

Friday, 20 January 2023

02:38:00 <kaichiuchi> https://info.computerhistory.org/apple-lisa-code
02:38:00 <bslsk05> ​info.computerhistory.org: Download Apple Lisa
02:40:00 <klange> The Lisa was much maligned, but it really was a fundamental change in consumer computer interfaces.
02:41:00 <klange> It's also exciting to see Apple make a museum donation of source code.
02:50:00 <epony> for a 40 year obsolete project
02:51:00 <epony> it's like Microsoft donating the source code to Windows 2
02:54:00 <epony> orhttps://en.wikipedia.org/wiki/History_of_the_graphical_user_interface?useskin=vector#Apple_Lisa_and_Macintosh_(and_later,_the_Apple_IIgs)
02:54:00 <Mutabah> Given MS's backwards compatability standards - Windows 2's code might still hold some value to them
02:55:00 <epony> for DOS/WIN 3
02:55:00 <Mutabah> And really, any company releasing historically significant code is interesting
02:55:00 <epony> the Lisa emulators are so important, we can hardly wait on these
02:55:00 <kazinsal> Apparently the code for the original release of PostScript is on CHM now too.
02:55:00 <moon-child> valuable in what sense? I mean, it's valuable for them to have it, but releasing the source code wouldn't stop their having it
02:56:00 <epony> it's 40 years too late
02:56:00 <Mutabah> legal/IP value
02:56:00 <epony> should have been release for previous generation machine support when new come up
02:56:00 <epony> yeah, fuck patents and copyright law, pirate everything!
02:57:00 <epony> or much rather, don't use systems like that, so they are not important ever again
02:58:00 <epony> you don't get trillion dollar worth with correct and public interest and science and technology decisions
02:59:00 <epony> it's just bad designs and bad technical achievements that are into incompatibility, lack of standardisation, proprietary and secretive exploits
03:00:00 <epony> so they are not "anti"-IBM, they are IBM done worse for consumers and suckers
03:00:00 <epony> (and cost more and work worse)
03:01:00 <epony> fall into the category of parody, consumer with incompatiblity and good chance to make a long lasting impact for computing, instead making money and models that don't work well so a new model obsoletes it
03:03:00 <epony> https://en.wikipedia.org/wiki/Market_share_of_personal_computer_vendors#Worldwide_(1975%E2%80%931995)
03:04:00 <epony> Apple really had an advantage on cheap and low end PCs in the beginning
03:13:00 <epony> well, maybe it's like Windows 3/3.1 moreso than 2/2.1 (incomplete) but Win3 is much more successful since it came later and had more features and capability (newer and more powerful computers) and benefitted more from the DOS epoch, while Apple took the early feature on a weaker incompatible computers and then high costs too
05:28:00 <moon-child> hmmm. How do I say 'round up to the next positive multiple of 16'?
05:28:00 <moon-child> not (x+15)&~15, because then 0 rounds to 0, not 16
05:29:00 <bradd> if (x % 16) x = x + (16 - (x % 16)) maybe?
05:30:00 <moon-child> I might as well branch, then. Just curious if there's something clever I've missed
05:31:00 <moon-child> oh, and your solution do anything with x=0 either
05:31:00 <Mutabah> The branch is required afaik
05:32:00 <bradd> oh. thought you wanted it aligned to a multiple of 16
05:32:00 <Mutabah> If you do it after the operation, the compiler might just emit a `cmov` and it'd be basically free
05:32:00 <moon-child> I would prefer a branch to a cmov
05:32:00 <moon-child> context is malloc
05:33:00 <Mutabah> wait, what do you mean about prefering a branch to a `cmov`?
05:34:00 <Mutabah> (I mean the `cmov` instruction)
05:34:00 <moon-child> cmov goes on the criticial path. Branch, if correctly predicted, does not
05:34:00 <zid> !!!x<<4
05:35:00 <zid> add that?
05:35:00 <moon-child> if I can do malloc(0) -> malloc(16) for free, I'll do it. Otherwise I'll eat the branch earlier and do something else
05:36:00 <zid> what's the difference between rounding down then adding 16?
05:36:00 <zid> that should offset your sequence by 16 like you wanted no?
05:36:00 <moon-child> because 16 should round to 16
05:36:00 <moon-child> the only thing I want is that 0 should round to 16
05:36:00 <zid> okay then what I said works
05:36:00 <moon-child> !!!x<<4? Yeah but that's extra ops
05:36:00 <Mutabah> Does your malloc have a block header or footer?
05:37:00 <zid> well yea, it's an extra step
05:37:00 <zid> you want a discontinuity
05:37:00 <Mutabah> If it does, you could add the size of that then round
05:37:00 <moon-child> Mutabah: nope
05:37:00 <moon-child> (did consider to add an overflow canary, but it'll be optional if I do add it)
05:54:00 <epony> it's very simple, using a bitmask or toggling to 1 the least significant four bits (nibble)
05:54:00 <epony> you people with your mini-divisors
06:19:00 <zid> Bytes? In my cache? It's more likely than you think.
06:24:00 <sham1> Bytes? How very unstructured
06:28:00 <geist> bytes are a crutch
06:29:00 <kazinsal> three groups of six bits per word or gtfo
06:30:00 <geist> octets are for children
06:30:00 <kazinsal> good enough for the PDP-7, good enough for anyone
06:31:00 <geist> hextets ftw
06:40:00 <epony> on the wrong kind of machines you shift left, on the right kind of machines you shift 3b
06:41:00 <epony> in the better programming languages, that is machine independent, in the worse programming languages you really have no access to the hardware so you need real ones to do your work
06:41:00 <epony> of which you obviously know nothing
06:42:00 <epony> so all kinds of contraptions are invented ;-) but expect to find an instruction in the listing of the machine instructions that does that
06:42:00 <epony> might optimise away a whole block of code and a couple of fake languages
06:46:00 <dinkelhacker> I mean even in the _real_ languages the compiler will optimize away many blocks of code^^
06:48:00 <epony> only if you're the same level of stupidity as the one that the compiler knows how to deal with
06:48:00 <dinkelhacker> Like I vividly remember my colleagues face when I told him that he had to debug his code with -O2 bc. it wouldn't fit in the target otherwise. Like for every 20 lines of c code 1 line of asm was left.
06:49:00 <geist> yah thats frequently a real issue with embedded targets
06:49:00 <dinkelhacker> epony: which most people are..
06:49:00 <epony> if only you could pick your colleagues.. by working at the correct job / facility
06:50:00 <dinkelhacker> including myself sometimes I guess^^
06:53:00 <dinkelhacker> geist: yeah 1 MB of internal RAM wasn't enough...
07:48:00 <heat> i am back
07:48:00 <heat> my cat left my chair
07:57:00 <clever> ive been building some arm code for the GBA, and ive noticed, gcc is using the `b` opcode to call functions, but the GBA encourages use of thumb mode
07:57:00 <clever> ive also noticed the linker generating wrapper functions, to switch modes
07:58:00 <clever> what determines if gcc uses b or bx?
08:06:00 <zid> -mthumb :P
08:07:00 <clever> zid: the problem is the inter-op
08:07:00 <clever> if i compile one .o in arm mode, and its using b
08:08:00 <clever> and then another .o in thumb mode
08:08:00 <clever> and i link them together
08:08:00 <clever> `b` is not the right opcode to cross over
08:08:00 <zid> it knows based on the low bit of the address doesn't it
08:08:00 <zid> does it not check?
08:08:00 <clever> the bx opcode does, branch and exchange
08:08:00 <clever> but the b opcode isnt even capable of holding that low bit
08:08:00 <clever> the bit is just missing
08:09:00 <clever> the linker is aware of it, but its too late to change the assembly
08:09:00 <zid> you can also erm, -mthumb-inerwork
08:09:00 <clever> `b` takes an immediate pc-relative offset, with bits 0/1 missing
08:09:00 <clever> so a single 32bit opcode is enough to jump +/- 8mb
08:09:00 <clever> but `bx` instead takes a register, and uses the low bit to determine if its arm or thumb
08:09:00 <zid> also mcallee-super-interworking
08:10:00 <clever> so you need a 2nd opcode to load that addr
08:10:00 <zid> which makes all functions arm but they b +1 or something at the start
08:10:00 <clever> and then a .word to hold the addr
08:10:00 <clever> trying those 2 flags...
08:14:00 <clever> with -mthumb (but one function is forced to arm mode), i see bl being used for every call, from both arm and thumb mode, and bx being used for returns
08:15:00 <clever> the same if i omit it, and it defaults to arm
08:15:00 <zid> https://github.com/gcc-mirror/gcc/blob/master/gcc/config/arm/README-interworking
08:15:00 <bslsk05> ​github.com: gcc/README-interworking at master · gcc-mirror/gcc · GitHub
08:15:00 <zid> Found a guide
08:15:00 <clever> ah, nice
08:16:00 <geist> yeah i used to know that in an out, but i've forgottem more about it
08:16:00 <clever> with -mthumb-interwork, it still uses bl to call printf/puts, no real change
08:16:00 <geist> but yeah it also depends exactly on what version of the ARM isa you're using
08:16:00 <geist> notably, armv4, armv5, and armv6/7
08:16:00 <geist> because there are more instructions available in v5 that make the interworking simpler (blx is the biggie)
08:16:00 <geist> and v6 makes it such that less of the special instructions are needed, etc
08:17:00 <geist> by the time v6/v7 was around, interworking was not really that special case, but early on it was a pain
08:17:00 <clever> arm7tdmi i believe
08:17:00 <geist> yah arm7tdmi is the earliest thumb cpu, basically (and very popular for a while)
08:17:00 <geist> armv4
08:17:00 <clever> the GBA is capable of running arm opcodes, but the bus to the cartridge rom is only 16bits wide
08:17:00 <clever> so it takes twice as long to load an arm opcode
08:17:00 <zid> arm7tdmi <3
08:17:00 <geist> for it you really need to compile *all* the code with -mthumb-interwork, as zid said
08:17:00 <zid> gba has weird memory map with some fast ram and stuff too
08:18:00 <geist> so that the arm code is ready to deal with back and forth
08:18:00 <geist> *at some cost* i should add, which is why it's not the default
08:18:00 <zid> so you need to bank bits of code in and out of it
08:18:00 <clever> geist: i tried with -mthumb-interwork but it still used bl, i need to double-check the docs zid linked
08:18:00 <zid> did you compile both ends with it?
08:18:00 <geist> its complicated. some of the b/bl/blx instructions can be fixed in the linker, some cant
08:18:00 <geist> based on the isa
08:18:00 <clever> yeah
08:19:00 <geist> also the linker can decide tha tyou're going from arm to arm and not do special shit, etc
08:19:00 <clever> the arm7tdmi have a nice table on the bit level encoding, and its surprisingly simple
08:19:00 <geist> but stuff like exiting a function generally involves poppping into lr and bx lr
08:19:00 <clever> and `b` is always pc-relative, with bit0/1 missing
08:19:00 <geist> because it might be returning to a thumb caller, etc
08:19:00 <kazinsal> fiddling with CP/M-86 in an 86box virtual machine and it's actually kinda neat how much more complicated the CLI is than DOS in some ways
08:19:00 <clever> while `bx` takes a register, and now you need an extra cost to populate the reg
08:19:00 <geist> right. and there was in v4 iirc a bl <address> but not a blx <address>
08:19:00 <clever> and the linker cant insert more opcodes after the fact
08:19:00 <kazinsal> eg. the HELP command loads something more like a man pager with subsections that you can specifically invoke
08:19:00 <geist> blx <address> came in v5
08:20:00 <clever> ooooo
08:20:00 <clever> that might be the problem then
08:20:00 <geist> so if you might call into thumb you had to go through ah interwork vaneer routine that the linker generated
08:20:00 <clever> the cpu just lacks blx, so it must go thru a wrapper!
08:20:00 <geist> that basically loads the target into a reg and uses bx
08:20:00 <clever> yeah, the linker was already generating those, i wanted it to not, and just blx
08:20:00 <clever> but it sounds like the cpu just isnt able to
08:20:00 <kazinsal> if you do `help protocol examples` it'll show you examples of how to invoke the `protocol` command
08:20:00 <geist> and due to the quirk of the pipeline: mov pc lr; bx target is the equivalent of blx
08:21:00 <geist> because mov lr, pc (sorry was wrong before) puts the instruction 2 instructions in the future
08:21:00 <geist> which just so happens to be the one after bx
08:21:00 <geist> correct, re blx. blx came along in v5
08:22:00 <geist> v6 tidied things up a bit and said 'all instructions that shove a thing in PC honor the bottom bit and interwork'
08:22:00 <geist> whereas in v4 and v5 you had to use the bx <reg> instruction and stuff like mov pc, <some reg> didn't work
08:22:00 <geist> anyway, it's a fucking mess
08:23:00 <geist> geezus i used to know this in an out and now you caused me to drag it out of my memory and stuff it on the top of the stack
08:23:00 <clever> i did also see that pipeline quirk, in the offset b contains
08:23:00 <geist> yah cute huh
08:23:00 <clever> its pc-relative, but its ~2 opcodes ahead of the b
08:23:00 <heat> what's an ISA without ✨✨mess✨✨
08:23:00 <geist> this is where the riscv 16/32 instruction stuff is so pretty and nice
08:23:00 <geist> and as a result very very effectively AFAICT
08:23:00 <geist> effective
08:24:00 <geist> but thumb was jammed in late. side note arstechnica has a pretty good 3 part article series on the history of arm, starting with https://arstechnica.com/gadgets/2022/09/a-history-of-arm-part-1-building-the-first-chip/
08:24:00 <bslsk05> ​arstechnica.com: A history of ARM, part 1: Building the first chip | Ars Technica
08:24:00 <clever> let me try one other thing, that i expect to horribly break it...
08:25:00 <clever> *facepalm*
08:25:00 <clever> i was going to remove -mcpu= to trick it into using blx
08:25:00 <heat> reject thumb, embrace jazelle
08:25:00 <geist> note this is somewhat why in LK i removed v4 and v5 support (and v6 really). i got tired of dealing with some of this legacy nonsense. by v7 the thumb2 support was a nice complete solution
08:25:00 <clever> -mcpu= is already missing, i forgot to include it in the gcc args, lol
08:26:00 <geist> if you dont want to pick a cpu you can also use -march=armv5, etc
08:26:00 <clever> i had been considering re-adding it, but as a new arch, so it couldnt conflict too heavily
08:26:00 <clever> just so i can run LK on more crazy things
08:26:00 <geist> meh.
08:27:00 <geist> originally i wrote it halfway to run on https://github.com/travisg/armemu
08:27:00 <bslsk05> ​travisg/armemu - ARM emulator (11 forks/40 stargazers/MIT)
08:27:00 <geist> which emulates up through v5
08:27:00 <clever> but it also lacks an mmu
08:27:00 <clever> and even VBAR
08:27:00 <clever> all irq's jump to the bios rom, which then loads an addr from ram, and jumps to it, in arm mode
08:27:00 <geist> indeed. in early arm7tdmi and whatnot it had one of two vector tables: 0 and something like -64K
08:27:00 <geist> iirc
08:28:00 <heat> leave the crazy things to die
08:28:00 <geist> https://github.com/travisg/armemu/blob/master/arm/cp15.c#L87
08:28:00 <bslsk05> ​github.com: armemu/cp15.c at master · travisg/armemu · GitHub
08:28:00 <geist> yep, i remembered correctly
08:48:00 <heat> rookiest mistake there is: info mem on a KASAN'ed kernel
09:07:00 <heat> yesterday I realized I have continuously left .rodata executable
09:07:00 <heat> which sux
09:08:00 <moon-child> lol
09:08:00 <heat> wait until you find out this is the default toolchain behavior for microsoft linkers
09:09:00 * geist beats heat with the proverbial wet noodle
09:10:00 <heat> noooo not the proverbial wet noodle
09:11:00 <heat> geist, my x86 entry code is 700 LoC vs riscv's 80 :v
09:12:00 <heat> and defo not yet finished :(
09:12:00 <geist> opensbi does all the work
09:12:00 <geist> all hail SBI
09:12:00 <geist> for all your doings of things
09:16:00 <heat> not that you really have that much work do you
09:17:00 <heat> getting dropped onto M mode is still a relatively trivial condition you can easily bootstrap out of
09:20:00 <geist> yeah indeed. as i generally tell people, riscv is almost comically simple
09:20:00 <geist> especially after coming from armv8
09:25:00 <micttyl> please don't bring over-complicated mess from old architectures
09:25:00 <heat> arch/x86_64/realmode.S:78:5: error: ambiguous instructions require an explicit suffix (could be 'jb', or 'jl')
09:25:00 <heat> j .
09:26:00 <heat> llvm as errors are miles off of binutils'
09:26:00 <micttyl> don't get confused simplicity with personal familiarity
09:30:00 <geist> huh, i never though j was an appropriate pseudo isntruction on x86 anyway. always used jmp
09:30:00 <heat> it's not, it was a typo
09:31:00 <heat> well, in this case the error is slightly misleading
09:31:00 <dinkelhacker> I'm looking at the dts qemu genreated (arm64, virt). According to the dts the timer interrupts are interrupts = <0x01 0x0d 0x104 0x01 0x0e 0x104 0x01 0x0b 0x104 0x01 0x0a 0x104>;. I thought if the first value is non-zero that means its an SPI. Shouldn't the timer irs be core local an therefore be PPIs?
09:40:00 <ddevault> paste the dts?
09:41:00 <heat> https://www.reddit.com/r/LinuxCirclejerk/comments/10g1j9z/reminder_that_were_all_united_in_gnu_the_real/ linux memes immitates linux cj
09:41:00 <ddevault> from Documentation/devicetree/bindings/arm/gic.txt:
09:41:00 <bslsk05> ​www.reddit.com: Reddit - Dive into anything
09:41:00 <ddevault> >The 1st cell is the interrupt type; 0 for SPI interrupts, 1 for PPI interrupts
09:41:00 <ddevault> dinkelhacker: ^
09:42:00 <ddevault> and from Documentation/devicetree/bindings/arm/arch_timer.txt, the interrupts are, in order, secure, non-secure, virtual, and hypervisor
09:42:00 <dinkelhacker> Wait what? I've been on like 2 page where they say its the other way arround
09:42:00 <ddevault> the meaning of interrupts = <> is specific to the interrupt controller
09:43:00 <ddevault> I'm assuming your configuration has a standard ARM GIC, which is probably true
09:43:00 <ddevault> in which case consult gic.txt for details on the interrupts = <> format
09:43:00 <dinkelhacker> yes it has... oh okay I thought it is independet of the controller... silly me. Thx!
09:48:00 <Ermine> heat: Onyx uses musl doesn't it
09:49:00 <heat> Ermine, korrekt
09:50:00 <heat> i do have a WIP glibc port in my ~
09:50:00 <heat> :))
09:50:00 <Ermine> heat: hence we're not part of GNU
09:50:00 <gog> i am
09:51:00 <heat> Ermine, yes
09:51:00 <heat> are you talking about the copypasta in README.md?
09:52:00 <heat> https://github.com/heatd/Onyx/tree/master/usystem/filesystem/fsstress found GPLv2 code
09:52:00 <bslsk05> ​github.com: Onyx/usystem/filesystem/fsstress at master · heatd/Onyx · GitHub
09:52:00 <Ermine> heat: no I'm about the meme you've posted
09:52:00 <heat> onyx is now a GNU distribution enhanced by the GNU operating system and the GNU core utilities
09:53:00 <mjg> heat: https://lore.kernel.org/all/202301201341.ad4e3d46-oliver.sang@intel.com/
09:53:00 <heat> https://i.redd.it/x1dgs3o6osca1.png
09:53:00 <bslsk05> ​lore.kernel.org: [linus:master] [lockref] f5fe24ef17: fxmark.ssd_xfs_MRPH_72_bufferedio.works/sec 164.9% improvement - kernel test robot
09:53:00 <mjg> heat: no need to thank me tho!
09:54:00 <heat> mjg, just posted genz humor
09:54:00 <heat> no need to thank me tho!
09:54:00 * mjg laughs preemptively
09:54:00 <mjg> ye good thing i chuckled before opening the url
09:54:00 <mjg> not chuckling now
09:54:00 <mjg> i wonder if you find ELER amusing
09:55:00 <mjg> lemme find it
09:55:00 <mjg> heat: https://geekz.co.uk/lovesraymond/archive/hyper-threading
09:55:00 <bslsk05> ​geekz.co.uk: Hyper Threading – Everybody loves Eric Raymond
09:56:00 <heat> nope, too old, made by oldies
09:57:00 <mjg> generational gap right there
09:58:00 <heat> the only linux memes I'll ever enjoy are the meta-memes of laughing at linux people
09:58:00 <heat> hear that, wincuck?
09:58:00 <heat> FreeBShitDickuck
09:59:00 <heat> use gnuuuuuuuuuuuU!1111111!!!11111111
09:59:00 <mjg> you clearly want a polish joke so here it is
09:59:00 <mjg> 'gnu' gets "jokingly" expanded as Gówno Nie Uzywac
09:59:00 <mjg> which translates roughly to "shit, don't use"
09:59:00 <heat> oh no, not the polish jokes
10:00:00 <heat> everybody gangsta until eastern european humor shows up
10:02:00 <mjg> what do you think about the following:
10:02:00 <mjg> schrodinger's cat goes to visit a doctor... and it does not
10:07:00 <heat> nerd humor, straight out of the big bang theory
10:07:00 <mjg> dude what
10:07:00 <mjg> if they have this joke, that's a massive slap in the face for me
10:08:00 <heat> why
10:09:00 <heat> this is the sort of unfunny joke they would try to pull off, but with a worse delivery
10:09:00 <mjg> bbt predominantly has jokes which boil down to "look at social ineptitude"
10:09:00 <mjg> well i found it funny, you genz!
10:09:00 <heat> also cats don't willingly go to the vet
10:10:00 <sham1> To me, this meta-discussion made the joke funny
10:10:00 <sham1> Nice
10:11:00 <ddevault> FOSDEM slots secured :D
10:11:00 <heat> mjg, bbt has jokes that boil down to social ineptitude and *doing a physics joke and laughing super hard about it* is exactly the kind of shit they would pull
10:11:00 <heat> ddevault, wooooooooooooooooooo congrats
10:11:00 <ddevault> https://fosdem.org/2023/schedule/event/helios/
10:11:00 <bslsk05> ​fosdem.org: FOSDEM 2023 - Introducing Helios
10:11:00 <ddevault> BoF mentioned in this abstract not on the schedule yet, but confirmed
10:13:00 <heat> what's a BoF?
10:13:00 <ddevault> basically a community meetup
10:13:00 <ddevault> it stands for birds-of-a-feather and it's a really dumb way to say community meetup
10:14:00 <heat> ah
10:14:00 <heat> weird
10:14:00 <mjg> heat: now that you mention it i just remembered a joke they told about a physicist testing chickens
10:15:00 <mjg> i found it funny, the characaters were laughing, while penny was making a "fuck this" face
10:15:00 <mjg> which i presume was supposed to be the actual funny part
10:15:00 <mjg> characters as in the main physicist gang
10:16:00 <mjg> https://www.youtube.com/watch?v=Id0Ppz4OBKE
10:16:00 <bslsk05> ​'The Big Bang Theory | Leonard Hofstadter Chicken Joke' by Best Television Clips (00:01:11)
10:17:00 <heat> it's mildly amusing
10:17:00 <heat> but not hahahahahhahahahahahaha funny
10:18:00 <mjg> i would say you are missing out on reasonable laughs, but then you keep posting these genz urlz
10:18:00 <mjg> which presumably make you piss yourself, or close to
10:18:00 <mjg> while anyone born before 9/11 does not laugh at all
10:19:00 <heat> the unfunnyness makes the funny
10:20:00 <heat> it's why I like r/*circlejerk so much
10:20:00 <heat> for instance in my OG linux wincucks link, the unfunnyness + the people making the actual joke makes the funny
10:20:00 <mjg> r/bookscirclejerk was funny af
10:21:00 <mjg> i even posted a few times
10:21:00 <moon-child> programmingcirclejerk is a work of art
10:23:00 <mjg> r/shittymath has some good ones
10:23:00 <moon-child> indeed
10:24:00 <moon-child> https://forum.bodybuilding.com/showthread.php?t=107926751&page=1
10:24:00 <bslsk05> ​forum.bodybuilding.com: Full Body Workout Every Other Day? - Bodybuilding.com Forums
10:24:00 <heat> https://www.reddit.com/r/soccercirclejerk/comments/zwdwrn/mohamed_elneny_extended_highlights_against_west/
10:24:00 <bslsk05> ​www.reddit.com: Reddit - Dive into anything
10:26:00 <mjg> moon-child: if nobody asks if OP even lifts is it even a bodybuilding thread?
10:33:00 <moon-child> oh man I forgot about https://i.redd.it/cbcviv2rnuuz.jpg. Not the funniest thing there, but probably the simplest and cleverest
10:54:00 * zid reposts into a discord channel called 'scary math'
11:00:00 <ddevault> new slide deck for lightning talk format: https://l.sr.ht/RHGy.pdf
11:01:00 <mjg> > Can we do better than, dare I suggest, Linux?
11:01:00 <mjg> way too much respect for that project
11:04:00 <heat> am I hearing this from respected linux kernel developer Mateusz Guzik
11:04:00 <heat> that introduces heavy optimizations to our dear linux kernel
11:05:00 <heat> mjg, btw you made it to lwn, congrats
11:05:00 <heat> the most famous you'll ever be
11:06:00 <mjg> lol
11:06:00 <mjg> where
11:06:00 <heat> https://lwn.net/SubscriberLink/920259/ed70806d7f713d03/
11:06:00 <bslsk05> ​lwn.net: Kernel code on the chopping block [LWN.net]
11:07:00 <kazinsal> I wonder how much profit lwn makes
11:07:00 <heat> little? it's very affordable
11:07:00 <heat> btw tl;dr of that article, debian sucks stop using debian
11:08:00 <kazinsal> 32 million desktop linux users as of latest steam survey, assuming 0.01% of them are LWN subscribers at nine bucks a month per...
11:08:00 <kazinsal> that's what, just shy of $300k/mo?
11:09:00 <heat> 32 million desktop linux users? (X) Doubt
11:09:00 <kazinsal> that's what steam survey says
11:09:00 <heat> where? I can only see percentages
11:09:00 <kazinsal> a hundredth of a percent of desktop linux users seems like a pretty reasonable figure for the kind of dorks who want to know when bungomarks-devel-khttpd gets mainlined
11:10:00 <kazinsal> and argue in the comments on a very specialized version of hackernews
11:11:00 <mjg> heat: shitty article
11:11:00 <GeDaMo> Most popular Linux distro "SteamOS Holo"
11:11:00 <kazinsal> the insufferable level of dork will tell you that linux is used by four billion people due to the proliferation of inexpensive androids
11:12:00 <GeDaMo> Would that be the Steamdeck?
11:12:00 <mjg> heat: "computer necrophiliacs" quote from the itanium guy did not make it in
11:12:00 <heat> mjg, lmao
11:12:00 <kazinsal> but realistically 30 million or so seems accurate
11:12:00 <moon-child> :\
11:12:00 <heat> GeDaMo, yes, steamdeck
11:12:00 <heat> if your linux numbers have the steam deck they are heavily skewed
11:13:00 <kazinsal> eight billion people on this rock, a tenth of them being vaguely tech savvy, a hundredth of those being dorks, a third of those being linux on the desktop goobers
11:13:00 <GeDaMo> I'm looking at https://store.steampowered.com/hwsurvey?platform=linux
11:13:00 <bslsk05> ​store.steampowered.com: Steam Hardware & Software Survey
11:13:00 <kazinsal> roughly fits
11:14:00 <kazinsal> GeDaMo: I love that the largest proportion of linux version there is Other because the overwhelming majority of Linux On The Desktop 2023 duders don't fit in the top 8 distros
11:14:00 <kazinsal> and for some reason at least one distro reports itself as Freedesktop.org SDK 22.08 (Flatpak etc
11:14:00 <kazinsal> I guess `cat /etc/*release | head -1` was too difficult
11:16:00 <heat> ok, conclusions: a quarter of those linux users are not linux users; stop using manjaro; stop using manjaro, 2; linux people's hardware is always worse than windows people's
11:16:00 <mjg> use debian
11:16:00 <mjg> on itanium no less
11:16:00 <mjg> i demand phones running itanium
11:16:00 <heat> YES
11:16:00 <heat> LFG
11:17:00 <heat> mjg, you know there was a prototype of a mobo that supported IA32 and IA64 at the same time right?
11:17:00 <heat> like literally 2 architectures running at the same time
11:17:00 <heat> we should bring that back, just saying
11:17:00 <gog> why not just have the IA32 running on a PCI card
11:17:00 <kazinsal> win11 seems to be growing in user base. guess I oughta GPT convert my boot disk and join 'em
11:18:00 <gog> kazinsal: don't
11:18:00 <gog> 10 is fine
11:18:00 <heat> do
11:18:00 <mjg> heat: wut
11:18:00 <heat> windows 11 is better than 10
11:18:00 <gog> i hate the way it looks
11:18:00 <mjg> 95 is bigger than 11
11:18:00 <mjg> just sayin
11:18:00 <kazinsal> kinda curious as to if upgrading to 11 on my 7700X will improve my framerates in DX12 stuff
11:18:00 <heat> gog, I love the way it looks
11:18:00 <heat> what shall we do now
11:18:00 <gog> fight to the death
11:18:00 <kazinsal> EVE and COD mostly
11:19:00 <heat> mjg, wut wut
11:19:00 <kazinsal> I inhabit two opposite ends of the gamer spectrum
11:19:00 <kaichiuchi> hi
11:19:00 <heat> kazinsal, you know, what you really should be using, is linux
11:19:00 <kazinsal> on one, grognard playing space sociopath simulator. on the other, brain disengage and playing honky-in-the-middle-east sociopath simulator
11:19:00 <zid> Oh dust was shut down in 2016, til
11:20:00 <kazinsal> yeah dust died when the PS3 did
11:20:00 <gog> factorio is the only game that needs to exist
11:20:00 <kaichiuchi> i bought a new keyboard, right?
11:20:00 <kaichiuchi> and I hate it
11:20:00 <heat> ok
11:20:00 <gog> heat you should join my factorio game
11:20:00 <heat> use your mouse and a virtual keyboard
11:20:00 <zid> wow
11:20:00 <zid> I don't get invited but heat does
11:20:00 <heat> oh wait its linux you probably have none
11:20:00 <gog> zid you should join gtoo
11:20:00 <kazinsal> I got an NDA signing request a month and change ago from CCP regarding an EVE FPS tho
11:20:00 <kaichiuchi> it's an excellent keyboard for everyone who isn't a programmer
11:20:00 <zid> what version are you on
11:20:00 <kazinsal> so hopefully new EVE MMOFPS soon
11:20:00 <gog> latest stable
11:20:00 <kaichiuchi> you need to hold Fn for basically everything
11:20:00 <zid> ah okay I cannae play then
11:20:00 <gog> dang
11:20:00 <zid> unless latest is .79, I think I have that
11:21:00 <heat> gog, i don't know what factorio is
11:21:00 <gog> fuck off you liar
11:21:00 <GeDaMo> I think it's a video game :|
11:21:00 <zid> I've been playing .74 cus that's the version that space explo needed
11:21:00 <heat> it looks very old school
11:21:00 <heat> kind of cringe
11:21:00 <zid> heat thinks games are bad if they don't have grass and men in shorts
11:22:00 <zid> althetic men, with strong legs
11:22:00 <mjg> heat: have you ever used windows 95?
11:22:00 <heat> mjg, yes
11:22:00 <mjg> the 9x family was famously unstable
11:22:00 <zid> gog: turn auth off and tell me login
11:22:00 <mjg> to the point where even fanboys were not claiming otherwise
11:22:00 <kazinsal> focusing on leg day to be a proper gamer
11:22:00 <heat> mjg, i was wutting to your wut
11:22:00 <zid> 95 was kinda stable
11:22:00 <kaichiuchi> i really liked 2000/XP
11:23:00 <zid> 98 was less-so because.. more random hardware with shit chinese drivers existed by that point :P
11:23:00 <mjg> heat: wut re itanium and i386
11:23:00 <zid> WHQL now exists for a reason
11:23:00 <mjg> bro
11:23:00 <heat> mjg, yeah it existed internally
11:23:00 <mjg> zid: lemme tell you my adventure with windows 95
11:23:00 <zid> nah
11:23:00 <mjg> zid: it literally stopped booting out of nowhere
11:24:00 <zid> tell me login for factorio
11:24:00 <zid> ip pls
11:24:00 <kazinsal> if I have to boot an operating system for non work purposes that's older than 15 years old I boot up a new 86box VM
11:25:00 <kaichiuchi> still kinda remarkable how much old tech is still used
11:25:00 <heat> fork() moment
11:25:00 <kazinsal> and if someone's telling me to boot up a > 15 year old operating system for work I'm calling an account manager with a bunch of short and angry words prepped
11:25:00 <kaichiuchi> nuclear missile silos still use DOS
11:25:00 <gog> zid: it's not my server
11:25:00 <gog> i'll ask if we can do
11:25:00 <zid> tell ip
11:25:00 <mjg> 127.0.0.1
11:25:00 <gog> :1
11:25:00 <zid> I'll make you a red circuit
11:25:00 <heat> :1 is not an ip gog
11:26:00 <zid> :1 is a port heat
11:26:00 <zid> you need a port
11:26:00 <zid> ::1:1
11:26:00 <heat> :::::::::::::::::::::::::::::::::::::::::::::::...................::::::::::...........
11:26:00 <kazinsal> up until a few years ago Vancouver's train system was running on second generation SelTrac images
11:26:00 <heat> braille.
11:26:00 <zid> do you need [::1]:1
11:26:00 <zid> for ports in ipv6
11:26:00 <zid> or can you legit do ::1:1
11:26:00 <heat> you need them I think
11:27:00 <zid> omg does ipv6 support the decimal notation that ipv4 does
11:27:00 <zid> so I can use a giant integer for my ip
11:27:00 <zid> 2001^256 or whatever
11:27:00 <zid> 400 digits long
11:27:00 <kazinsal> 700 thousand people per day riding on an automated train powered by OG pentiums and 3.5 inch floppies
11:27:00 <mjg> :[
11:28:00 <heat> mjg, is that PESSIMAL
11:28:00 <mjg> heat: does not SCALE
11:28:00 <kaichiuchi> kazinsal: yeah...
11:28:00 <kazinsal> I am a daily commuter using that system
11:28:00 <mjg> there was an airport which in 2010 was still on windows 98
11:28:00 <mjg> i don't know what's goin on there now
11:28:00 <kazinsal> and one of the reasons I have long placed my trust in it is because my uncle wrote a good chunk of it :P
11:28:00 <heat> mjg, those systems are ideal for OpenSSL
11:29:00 <heat> erm, what
11:29:00 <kazinsal> so y'know if I die because the train explodes it's his fault
11:29:00 <heat> OpenBSD
11:29:00 <heat> also OpenSSL, they go hand in hand. probably written in the same year
11:29:00 <mjg> kazinsal: gonna let him know after the fact
11:29:00 <mjg> heat: "open" is an old african word for "crap"
11:29:00 <kaichiuchi> I'm getting an SGI workstation very soon
11:29:00 <kazinsal> he was an early adopter of it
11:29:00 <heat> FreeBSD is a crap-source operating system
11:29:00 <zid> my ip is 1365630351 btw
11:30:00 <mjg> heat: show some respect for distinguished scholars who wrote it
11:30:00 <kaichiuchi> as someone who has been playing with freebsd on the desktop lately
11:30:00 <kazinsal> then he moved to toronto but he's planning on coming back and is looking forward to using it in retirement and yelling at his ex-coworkers when things aren't working right
11:30:00 * kaichiuchi gently scolds heat
11:30:00 <heat> like phk, pronounced "phuck"
11:30:00 <heat> using freebsd????
11:30:00 <heat> not even freebsd developers use that
11:31:00 <kaichiuchi> i've been using freebsd for a long time for server stuff
11:31:00 <kazinsal> paul hungry kamp
11:31:00 <moon-child> lol
11:35:00 <zid> I told you my ip, why are you not hacking me
11:36:00 <heat> i'm pinging you
11:38:00 <heat> zid, give me ssh
11:38:00 <kazinsal> bombarding your IP with thousands of streams of femboy breeding ASMR
11:39:00 <zid> heat: okay
11:39:00 <heat> kazinsal, shh don't spoil it
11:40:00 <heat> zid, huge latency btw
11:40:00 <zid> done
11:40:00 <heat> kind of weird
11:40:00 <zid> yea my router is fucked
11:41:00 <zid> give public key
11:42:00 <heat> ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILeHZk/1BfMNAohdeAj0OAjFGYjN1/TSrL1u4JIhqP9K pedro.falcato@gmail.com
11:42:00 <heat> inb4 you don't support ed25519
11:42:00 <zid> try?
11:42:00 <heat> what's the user?
11:42:00 <heat> heat?
11:43:00 <zid> yea
11:43:00 <zid> unless you wanted pedro
11:43:00 <heat> seems set up for password auth?
11:43:00 <heat> prompting me for one at least
11:43:00 <zid> well yea, but there isn't one, so it won't work, but if you have keys it'll take one
11:44:00 <heat> seems to be failing every key
11:44:00 <zid> oh that's neat btw
11:45:00 <zid> I hit paste in vmware and It turned your @ into a "
11:45:00 <zid> cus of the gb/us layout difference
11:45:00 <heat> lol
11:45:00 <zid> I must have hit alt-shift in vmware at some point
11:45:00 <kazinsal> reminds me, I need to make a C64 video cable
11:45:00 <zid> how do I debug this
11:46:00 <heat> did you reload sshd?
11:46:00 <kazinsal> p much every C64 has " as the shift+2
11:46:00 <zid> I mean, you do't have to
11:46:00 <zid> okay try ow
11:47:00 <zid> tail -f /var/log/sshd isn't updating, ARE YOU EVEN TRYING?
11:48:00 <heat> hel
11:48:00 <heat> o
11:48:00 <zid> what does that even mean
11:49:00 <zid> oh I see a 'w'
11:49:00 <heat> i am here
11:49:00 <zid> I should mastuqeurade my nat or something
11:49:00 <heat> ... are you running a DE as root?
11:49:00 <zid> you're connected from 192.168.211.1
11:49:00 <zid> yes, it's a VM who gives a fuck
11:49:00 <zid> which wasn't even sshable until 10 seconds ago
11:49:00 <zid> I had to port forward you
11:50:00 <heat> lol
11:50:00 <heat> cool system
11:50:00 <mjg> watcha doin mofos
11:50:00 <heat> am I encapsulated in some sort or is it just a uid thing?
11:50:00 <zid> he's ssh'd into my face
11:50:00 <zid> you're just a regular user
11:51:00 <heat> htop when?
11:51:00 <heat> ok im building htop
11:51:00 <zid> no, I am
11:51:00 <zid> done
11:53:00 <heat> you have 2 htops now
11:53:00 <heat> congrats
11:53:00 <zid> no i don't
11:54:00 <heat> oh you mofo
11:55:00 <heat> >nano
11:55:00 <heat> -bash: nano: command not found
11:55:00 <zid> vim
11:55:00 <heat> unusable, fix
11:56:00 <zid> I made a makefile while you added stdlib and stdio
11:56:00 <heat> EXIT_SUCCESS is gr8
11:57:00 <gog> dk how you cna use nano for real editing
11:57:00 <zid> easy you just type
11:57:00 <gog> no
11:57:00 <zid> then hit ^W when you're done, or ^O, whatever it was
11:57:00 <zid> gog did you get me on the WHITELIST yet
11:58:00 <gog> i asked, the admin isn't on yet
11:58:00 <gog> it's not my server
11:58:00 <zid> k
12:01:00 <zid> one sec heat, idk if you're busy
12:01:00 <heat> this is the best experience of my life
12:01:00 <heat> gog, you wish
12:01:00 <zid> heat: do something on your ssh?
12:01:00 <heat> yeah
12:01:00 <zid> boo didn't work
12:02:00 <heat> what?
12:02:00 <zid> I tried to dup your stdout over something
12:03:00 <heat> 7 day uptime with a xeon
12:03:00 <zid> You were there when I rebooted it, I think
12:03:00 <heat> 10k power bill?
12:03:00 <zid> hmm? it's using 20W
12:03:00 <zid> it's just an i7
12:03:00 <zid> but with ecc
12:05:00 <zid> wtf is your term doing
12:06:00 <heat> hm?
12:06:00 <zid> oh maybe I am dum and I tried to spy on ssh
12:06:00 <heat> I did dmesg | less
12:07:00 <heat> the vmware acpi and pci layouts are seriously fucked
12:08:00 <zid> heh
12:08:00 <heat> are you sigstopping me or what?
12:08:00 <zid> hmm no I tried to tail -f you
12:08:00 <zid> guess it blocked?
12:08:00 <heat> yeah
12:09:00 <zid> I am bad at industrial espionage
12:10:00 <heat> indeed
12:11:00 <zid> you fucked my makefile up
12:11:00 <heat> i fixed it
12:12:00 <zid> no, you made the dep omg.o
12:12:00 <zid> so updatign omg.c does nothing
12:12:00 <zid> and you used the link and compile options together
12:12:00 <heat> prog: omg.o omg.o: omg.c
12:12:00 <heat> "and you used the link and compile options together" as you must in LTO
12:12:00 <zid> no
12:12:00 <heat> yes
12:12:00 <zid> no
12:13:00 <heat> yeeeeees
12:13:00 <zid> -fwhole-program on a .o is not what you want
12:13:00 <heat> fixed
12:13:00 <zid> so the .o .c is implicit here?
12:14:00 <heat> yeah
12:14:00 <zid> fair
12:15:00 <zid> why the fuck can I not get gcc to warn about your K&R
12:15:00 <zid> There we go
12:15:00 <zid> you *need* -W, even with -pedantic
12:16:00 <zid> are you going to ssh -L and watch iplayer
12:16:00 <zid> is that the plan
12:16:00 <heat> lol
12:16:00 <heat> great idea
12:17:00 <heat> ssh is boring, Xorg when?
12:17:00 <zid> maan the fonts are so much better
12:19:00 <zid> https://cdn.discordapp.com/attachments/417023075348119556/1065968727436308560/image.png
12:19:00 <zid> making heat envious.jpg
12:19:00 <heat> aw
12:19:00 <heat> you fucking cunt
12:19:00 <zid> surprising good performance, it's not lagging
12:20:00 <zid> I must have the passthrough stuff working properly
12:20:00 <zid> what are you clonig
12:20:00 <zid> eddy kay two?
12:21:00 <heat> yes i am giving you a superior OVMF
12:21:00 <zid> what is ovmf
12:21:00 <heat> without networking
12:21:00 <heat> UEFI for VMs
12:21:00 <zid> what do I do with that
12:21:00 <zid> use it to boot onyx in qemu?
12:21:00 <heat> boot windoze in your vm
12:22:00 <heat> onyx works too yeah
12:22:00 <zid> disk space is limited btw
12:22:00 <heat> i know
12:22:00 <zid> 2G left :p
12:23:00 <heat> that's why I didn't download a toolchain and built onyx
12:23:00 <zid> where does portage live
12:23:00 <heat> idk
12:23:00 <zid> me either
12:23:00 <heat> i use arch, btw
12:24:00 <heat> holy fucking shit how deep is this clone
12:24:00 <zid> It used to be /usr
12:24:00 <zid> wtf
12:24:00 <zid> /var/db/repos/gentoo
12:25:00 <zid> there, freed up 7GB
12:26:00 <heat> hmm, i would scp a toolchain but i'm afraid it will be slow as shit
12:27:00 <mjg> what are you doing guys i have to ask
12:27:00 <zid> He's hacking me
12:27:00 <mjg> no judgment
12:27:00 <heat> sex
12:27:00 <mjg> ssh sex?
12:27:00 <heat> yes
12:27:00 <zid> why would it be slow
12:27:00 <mjg> must be a genz thing
12:27:00 <zid> cus your internet is bad?
12:27:00 <heat> zid, idk the clone was like 2MB/s
12:27:00 <mjg> you gonna run onyx on zid's stuff?
12:27:00 <zid> That's probably just how fast clone goes on a mech drive :P
12:27:00 <mjg> that definitely involves fucking someone over
12:28:00 <zid> fast.com gives 140Mbps in that vm
12:28:00 <heat> woah
12:28:00 <heat> ew
12:28:00 <heat> mechanical moment
12:28:00 <zid> you think I give it precious precious boot ssd space?
12:28:00 <heat> my mechanical hdd wasn't that slow
12:28:00 <heat> are you sure yours isn't dying
12:29:00 <zid> yea it's on my black I think so it should be okayish
12:29:00 <zid> git makes lots of small files though
12:30:00 <clever> thats what .pack files help with
12:30:00 <heat> hah you still have acpica-tools
12:30:00 <heat> from when I asked for your acpi tables
12:31:00 <zid> I already had it
12:31:00 <heat> are you secretely a efi
12:31:00 <zid> no
12:31:00 <zid> I was adding acpi to qemu
12:31:00 <zid> boros
12:31:00 <zid> so I was like, might as well look at what a table looks like
12:38:00 <heat> zid, get xorriso
12:39:00 <heat> grub-mkrescue ded
12:40:00 <heat> ... why is your bin and usr/bin split
12:41:00 <zid> why would it not be
12:41:00 <zid> that's what unix do
12:41:00 <heat> the split was deprecated like 15 years ago
12:42:00 <zid> why would you use xorriso or grub-mkrescue
12:42:00 <heat> to make an iso
12:42:00 <zid> but I have mkisofs?
12:42:00 <zid> mkisofs -o blah.iso fs/
12:43:00 <zid> (-b boot/grub/stage2_eltorito -r -no-emul-boot -bootload-size 4 -J -boot-info-table)
12:43:00 <zid> simples
12:43:00 <heat> feel free to hack that in
12:44:00 <zid> my PC is the lag, are you a building
12:44:00 <heat> i'm busy building some packages
12:44:00 <heat> yes
12:44:00 <zid> if my memes lag I will be upst
12:50:00 <heat> zid, ok I almost got an ISO, but i have no boot/grub/stage2_eltorito
12:50:00 <zid> there I copied you one
12:51:00 <zid> fun trick, `file` knows how it was compiled wrt the config filename it wants
12:51:00 <zid> no idea *why* it knows that, but it does, and it's useful
12:52:00 <heat> still doesn't work
12:52:00 <heat> fuggit
12:52:00 <heat> you get the idea
12:52:00 <zid> do I? idk what you did
12:53:00 <heat> iso.sh needs something to put the iso together
12:53:00 <heat> scripts/iso.sh iirc
12:53:00 <zid> so can I delete all this now
12:53:00 <zid> if you're done
12:53:00 <heat> kernel/vmonyx is the kernel, initrd.tar.zst is an image of the full system
12:53:00 <heat> no, just like I did of boros
12:53:00 <heat> never deleted it
12:53:00 <heat> s/of/for/g
12:53:00 <zid> that system has crippling disk space issues
12:54:00 <zid> because I refuse to reinstall it on a bigger vmdk
12:56:00 <clever> zid: you should be able to resize a vmdk
12:56:00 <zid> but then I need to resize the fs
12:56:00 <zid> and I can't do that either
12:57:00 <clever> why not?
12:57:00 <zid> autism? idk
12:57:00 <clever> what fs is it?
12:57:00 <zid> heat what fs is it
12:57:00 <heat> what fs is what
12:57:00 <sham1> Seems that the inability to resize it is a you-problem
12:57:00 <zid> yes
12:57:00 <zid> I didn't say it was clever's fault wtf
13:02:00 <gog> who
13:03:00 <zid> gog is an owl now
13:03:00 * gog spins her head 180°
13:05:00 <zid> same
13:05:00 <zid> *crunch*
14:39:00 <kaichiuchi> gog: we have chili
14:39:00 <kaichiuchi> come to america
15:32:00 <zid> maan, 84 copper miners and I still ain't got shit for circuits, gating mining prod behind space sucks
16:00:00 <gog> kaichiuchi: i'm not going back there
16:00:00 <gog> scary place
16:00:00 <clever> zid: on my SE map, i added LTN, and i had a blueprint for a train station, that could both request resources (constant combinator) and supply resources (excess stuff)
16:00:00 <clever> i would pop one of those outposts by every ore field, and set it to request miners/belts/poles, and create another ltn station offering only ore
16:01:00 <clever> another mod, auto-deconstructs miners as they run out
16:01:00 <gog> clever: nested blueprints?
16:01:00 <clever> so LTN would then recycle those miners into the next outpost
16:01:00 <clever> gog: just manually pasted blueprints
16:01:00 <gog> ah ok
16:01:00 <clever> one for the outpost, which had a roboport and could request materials from the core
16:02:00 <clever> then with SE sat nav mode, i could change the constant combinator and paste down more blueprints
16:02:00 <clever> and the outpost would build itself
16:02:00 <clever> and it could also auto-repair
16:02:00 <clever> each outpost also kept an artilery turret, and kept a stock of ammo, so biters where kept at a good distance
16:04:00 <clever> gog: https://media.discordapp.net/attachments/925048523379081296/1066025375290900530/20220615034624_1.jpg an example outpost
16:04:00 <clever> the big mess of logic circuits, interfaces with LTN, and sets up bi-directional supply&demand
16:04:00 <clever> the constant combinators set the required stock
16:05:00 <clever> and critically, the inserters can load the roboport directly from the train
16:05:00 <gog> ive looked at LTN and it seems interesting
16:05:00 <clever> so i dont have to feed it myself
16:05:00 <gog> yeh
16:05:00 <clever> just build it (even with a remote spidertron)
16:05:00 <clever> the train delivers robots, and the inserters populate the roboport
16:06:00 <clever> there is also a feature with the cargo rockets that isnt fully documented i think?
16:06:00 <clever> if you fire a spidertron, and contruction robots in a cargo rocket, it gets auto-deployed and loaded
16:06:00 <clever> upon crashing
16:07:00 <clever> so you can fire self-replicating spiders at every body in the game
16:07:00 <clever> and they can then begin building out a base
16:07:00 <clever> if you added recursive blueprints, it could auto-build a new import/export hub, and more miners
16:11:00 <gog> that's space exploration mod?
16:11:00 <zid> https://cdn.discordapp.com/attachments/417023075348119556/1066027133585064026/image.png
16:11:00 <zid> needs moar copper still
16:11:00 <clever> gog: yeah
16:12:00 <clever> gog: do you remember those warehouse mods in factorio, where its bigger on the inside?
16:12:00 <zid> It's using 3 sets of boilers already cus it's an isolated outpost :P
16:12:00 <clever> zid: oh, that reminds me, i wanted more power, so i went to a website, and grabbed a random nuclear reactor
16:13:00 <clever> after building it fully (took days) and looking at the map, i realized a mistake
16:13:00 <zid> a.. website? what?
16:13:00 <clever> the reactor, was 3x bigger then my base
16:13:00 <zid> than
16:14:00 <zid> I'm still on my starter-starter base
16:14:00 <zid> I will upgrade it to being a starter base at some point
16:19:00 <dinkelhacker> how do you guys configure which drivers should go in a certain build? autotools? Asking for a friend^^
16:19:00 <gog> clever: yeh factorissimo
16:20:00 <zid> all of them?
16:21:00 <zid> doubt many of us are fancy enough to not just do that
16:21:00 <clever> gog: thats using a feature in factorio where you can have multiple surfaces, and teleport freely between them
16:21:00 <clever> gog: SE basically just creates 2 surfaces per planet/moon, one for the surface, and one for in-orbit
16:21:00 <clever> and to progress thru the tech tree, you need ores that are on other bodies
16:22:00 <gog> ah neat
16:22:00 <zid> 'teleport' as in, very expensive and complicated passenger/cargo rockets
16:22:00 <zid> but you don't get to use bots
16:22:00 <zid> or mining eff
16:23:00 <zid> because it's behind space science
16:23:00 <dinkelhacker> zid: right.. and at runtime you just parse the dtb? Since I haven't implemented that I'll think I have to do some #ifdef bla
16:23:00 <froggey> just play seablock. no mining, no prod problems
16:24:00 <clever> dinkelhacker: yeah, if you parse the dtb at runtime, and have drivers for all chips, you target, then one kernel will work on all chips
16:24:00 <zid> froggey: I started a seablock, and decided the loop was annoying but I liked the technology, so I just played it on a normal map :D
16:24:00 <clever> froggey: SE core mining can do the same thing
16:24:00 <clever> froggey: big-ass drill, that hollows out the planet (turns power into ore)
16:24:00 <zid> It failed lategame though once of the recipes was unbalanced, some purple ore and aluminium came out together and I just had to trash millions of it
16:25:00 <clever> the ore it produces, is based on the local ore mix
16:25:00 <zid> also the fucking sodium hydroxide shenanigans fml
16:26:00 <zid> I really enjoyed piping metal fluids around rather than using belts though
16:26:00 <clever> dinkelhacker: as a rough example: https://gist.github.com/cleverca22/495f0eac98f4bad6434f06f36e0ae398#file-pi4-dts-L2231-L2241
16:26:00 <bslsk05> ​gist.github.com: pi4.dts · GitHub
16:26:00 <zid> that was seablock and not A+B right?
16:26:00 <zid> I've done A+B, seablock, krastorio, SE, etc, it's all starting to jumble together
16:27:00 <froggey> https://cdn.discordapp.com/attachments/1017722910456156171/1066031111379099658/Screenshot_2023-01-20_at_16.26.15.png
16:27:00 <clever> dinkelhacker: compatible="arm,pl011"; tells you which driver to use (its a \0 seperated array of many aliases), reg= tells you the addr and size of the IO window you need to map, but the ranges= up on line 717 tells you to map 7e over to fe
16:27:00 <froggey> nearly done with seablock, dunno what I'll move on to next
16:28:00 <zid> froggey: done krastorio yet?
16:28:00 <froggey> nope
16:28:00 <zid> It's polished but not super intense
16:28:00 <zid> you can smash through it and enjoy it
16:28:00 <froggey> lol, alright
16:28:00 <clever> dinkelhacker: with just basic recursion, handling of #address-cells, #size-cells, and ranges, and a compatible->driver table, you can support basically any non-dma device, with support for dma-ranges, dma devices will also work
16:28:00 <zid> some custom buildings and processes, but very little added bullshit
16:28:00 <froggey> fuck sodium hydroxide, we all hate it
16:29:00 <zid> SE is 1000% on the bullshit meter
16:29:00 <zid> sodium hydroxide is 50%
16:29:00 <zid> vanilla 0%, krastorio 5%
16:29:00 <zid> krastorio is like.. bigger vanilla?
16:29:00 <froggey> I played SE ages ago, fucked up my base design and burned out once I got to space
16:29:00 <zid> I just built a cargo rocket pad
16:29:00 <zid> now I need.. 100 rocket parts, and none of those things are on belts yet
16:30:00 <zid> or in places that can be easily routed
16:30:00 <zid> give me my fucking booots :(
16:30:00 <zid> or bots, boots are also good
16:31:00 <clever> dinkelhacker: https://github.com/librerpi/lk-overlay/blob/master/platform/bcm28xx/platform.c#L445-L476 this can iterate over every node, but its lacking the recursion part
16:31:00 <bslsk05> ​github.com: lk-overlay/platform.c at master · librerpi/lk-overlay · GitHub
16:31:00 <dinkelhacker> clever: Thx. Thanks for the hint on the ranges. I was always confused why they put the "legacy addresses" into the dts. Btw: Is there something similar to the dtb that tells a kernel its load address?
16:32:00 <clever> dinkelhacker: i think the simplest way to get the load addr, is to just peek at pc, or use a pc-relative label opcode
16:32:00 <clever> dinkelhacker: i forget which opcode, but there is a way to just do `mov r0, foo` and put a `foo:` at the start, and if you use the right variant of the opcode, it will be stored as a pc-relative offset, not an absolute addr
16:33:00 <zid> who needs device trees for finding more than the busses
16:33:00 <clever> so it always returns the actual addr `foo:` wound up at in ram
16:34:00 <clever> dinkelhacker: ranges= opens up new fun, the rpi allows you to move the MMIO window to basically 63 different spaces, at 16mb increments, and by just changing the ranges= field only, i can fix the entire DTB
16:35:00 <dinkelhacker> interesting...
16:35:00 <clever> zid: yeah, you could just query the ranges and not much else, and then assume the hw is at the offsets you expect, but you will have to recreate that code on each board
16:36:00 <zid> the hw is on a pci-e bus or doesn't exist*
16:36:00 <clever> but with dtb parsing, assuming the uart clock is initialized, you could in theory boot your kernel on anything with a pl011, and get debug, without having added support for the board
16:36:00 <zid> what is this, 1998
16:37:00 <clever> zid: the gigabit ethernet on the pi4 isnt in pci-e, the uart's arent in pci-e, the 3d core isnt in pci-e
16:37:00 <zid> it's not my fault the pi is bad
16:37:00 <dinkelhacker> xD
16:37:00 <clever> nearly every arm device does this
16:37:00 <clever> a lot lack pcie entirely
16:38:00 <zid> It's not my fault nearly every arm device is bad either
16:38:00 <dinkelhacker> I was gonna ask: what IS actually in pci-e on the pi?
16:38:00 <heat> my cat stole my chair again
16:38:00 <heat> see you tomorrow
16:38:00 <clever> dinkelhacker: the pi4 has a single pcie lane, that goes to the vl805 pcie<->usb3 controller
16:39:00 <clever> you can get the vl805 in a pcie card format, for desktop use, those have 4 x usb3 ports
16:39:00 <clever> but the pi4 is wired up as 2 x usb2 + 2 x usb3
16:39:00 <clever> i dont think pcie 1x has enough bandwidth to drive all 4 at once, at usb3 speeds
16:41:00 <dinkelhacker> clever: that's good to know. I'll hope it will help me the day I'll try to hook up a keyboard to my "os"
16:42:00 <clever> dinkelhacker: the pi4 has 3 usb controllers you can pick from
16:42:00 <clever> the crusty old dwc2 usb controller from past models, is still present, and routed to the usb-c port
16:43:00 <heat> doesn't the cm4 even have nvme?
16:43:00 <clever> so you can do both host and device roles
16:43:00 <clever> heat: the cm4 just exposes that 1x pcie lane, the official IO board gives you a standard pcie slot, the user can then add nvme if they want to
16:43:00 <clever> the firmware also supports booting from nvme, but only if its directly on that 1x lane
16:43:00 <clever> pcie expanders break the firmware bootloader
16:45:00 <dinkelhacker> clever: so the usb ports are controllable through either of them o.O? Is it somehow muxed or how does it work?
16:45:00 <clever> dinkelhacker: but if you add otg_mode=1 to config.txt, youll instead get a broadcom xhci controller, host only, on the usb-c port
16:45:00 <clever> the dwc2, and the broadcom xhci, share the usb-c port with an internal mux
16:46:00 <clever> the main 4 type-a ports, are exclusively for the vl805
16:46:00 <clever> the broadcom xhci has better cpu usage, but is host only
16:46:00 <clever> the dwc2 has worse cpu usage, but can do both host and device
16:47:00 <clever> the vl805 is also xhci, so you could drive both the usb-c and the usb-a's with a single xhci driver, giving you 5 ports total
16:47:00 <clever> and qemu also has xhci, both emulated i believe, and pcie forwarding from your host
16:48:00 <clever> so you can prepare for xhci far more easily
16:48:00 <clever> and the docs are freely available
16:48:00 <clever> the dwc2 docs, arent freely available
16:49:00 <dinkelhacker> gottcha! xhci it is! :)
16:49:00 <clever> you also really want to respect dtb, when talking to the broadcom xhci
16:49:00 <clever> if you dont set otg_mode=1, and try to poke the broadcom xhci, the whole system just locks up hard
16:50:00 <clever> otg_mode=1 updates the dtb, to tell you its safe to poke it
16:50:00 <dinkelhacker> That's really valuable information. Thx alot!
16:50:00 <clever> the vl805 xhci is missing from dtb, you discover it via standard pcie enumeration
16:50:00 <clever> the dtb instead tells you how to setu the pcie controller
16:51:00 <clever> the mux, to switch between dwc and xhci, is also undocumented
16:52:00 <clever> you just have to edit config.txt, reboot, and let start4.elf do its thing
16:55:00 <dinkelhacker> okay so let me recap. you set that in config.txt, that will give me 1x xhci on the usb-c and 4x on the usb-a's. All host only?
16:55:00 <clever> yep
16:55:00 <dinkelhacker> Cool!
16:55:00 <clever> the usb-c port is also usb2 speeds max
16:59:00 <clever> dinkelhacker: from memory, you setup 2 rings (master in and out) in ram, and you put the address of them into some MMIO in the xhci, then all master commands are done by appending to the ring, and whacking a doorbell
16:59:00 <clever> the xhci controller will then read the ring in ram, and perform each action
17:00:00 <clever> there are then many layers of rings, for each port, and endpoint, and the master ring is used to set those up
17:02:00 <dinkelhacker> ring = ring buffer?
17:02:00 <clever> yeah
17:02:00 <clever> each command in the ring, has an is-valid bool, but 1 is not always valid
17:02:00 <clever> the "valid" state changes, on each loop around the ring
17:03:00 <clever> and the last command in the ring, is a special goto, that jumps to the start, and inverts what state is "valid"
17:03:00 <clever> so all old commands in the ring, become invalid, until you overwrite them with new ones
17:03:00 <zid> yeaa it should just flip the valid bit
17:04:00 <clever> thats a nice trick, that lets you reuse the ring, without having to pre-clear ahead of where the xhci is reading
17:04:00 <zid> until you get out of sync on what thing valid is due to a race condition
17:04:00 <zid> and fuck it all
17:05:00 <clever> or a hardware bug in the xhci controller causes a fifo to overflow, and it doesnt reset the read pointer correctly
17:05:00 <clever> so it repeats the last 512 bytes worth of data
17:05:00 <dinkelhacker> I'll have to store the logs of this somewhere for reference once I'll get there^^
17:05:00 <zid> YOu may have noticed, but clever likes to take a topic and just run with it and info dump
17:06:00 <zid> if he happens to know about something related
17:06:00 <clever> let the flood gates open!
17:07:00 <dinkelhacker> I highly appreciate that!^^
17:07:00 <dinkelhacker> (Although I don't understand everything just now)
17:07:00 <zid> Someone say tetra or stack or something
17:08:00 <zid> I need to write a 20 page essay on tetris
17:10:00 <GeDaMo> For why, zid, for why? :|
17:10:00 <zid> GeDaMo: So I can educate dinkelhacker ofc
17:20:00 <clever> bbl
17:52:00 <vin> How is everyone holding up today? Seems like a bleak winter
17:57:00 <sham1> It's great! Not so annoying to get around when compared to years with loads of snow. Also keeps the electricity costs (relatively) down alongside gas demand
18:06:00 <dinkelhacker> where are you guys acutally located?
18:06:00 <vin> sham1: I meant both figuratively and literally. Finally got some fresh snow yesterday so I am excited about that but I see soo many layoffs and am bummed and feel sad for people
18:08:00 <gog> nowhere
18:08:00 <kof123> northern hemisphere, early 21st century </fuzzy clock>
18:09:00 <kof123> * century[20]
18:10:00 <gog> 69°N, 42.0°W
18:10:00 <dinkelhacker> We don't have much snow here in southern germany this year. Like 10 days at most.
18:10:00 <GeDaMo> Scotland
18:11:00 <vin> It's the warmest January in recorded history here in US
18:12:00 <gog> we have a lot of ice rn
18:12:00 <gog> but it's vv warm today and everything is melty
18:12:00 <gog> kinda sloppy and dangerous tbh
18:13:00 <vin> I haven't skied at all this season :/
18:14:00 <gog> we still have good skiing. i don't ski tho
18:14:00 <vin> I hope this winter is an anomaly
18:14:00 <gog> i guess i could check the bookings for the local ski resort to gauge how busy it is :P
18:15:00 <vin> Yes, I plan on going next week. Doesn't matter if it's icy!
19:57:00 <FireFly> dinkelhacker: hey now, we have snow in southern germany right now at least :p