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

Friday, 19 April 2024

09:26:00 <zid> The burning sky orb is back
09:26:00 <zid> I vote we do something about it
09:26:00 <zid> How did they blot out the sky in the matrix
09:27:00 <GeDaMo> Wind and rain here :|
09:27:00 <zid> scotland doing scotland things
09:28:00 <zid> 12C, no wind, sun is annoyingly flickering because of clouds
09:37:00 <kof673> TLDR: inconceivable! > The Mercury having been often sublimed, is at length fixed, and becomes capable of resisting fire: the sublimation must be repeated until at length the fixation is attained.
09:38:00 <kof673> > A SALAMANDER LIVES IN THE FIRE, WHICH IMPARTS TO IT A MOST GLORIOUS HUE. so......the SICP lambda on the cover is the solution
09:38:00 <kof673> no pun on solution
09:38:00 * kof673 zzzzzzzzzzzzzzzzzzzzzzzzz
09:57:00 <nikolapdp> zid the sky orb is back over here too
10:02:00 <zid> it's left here, so now we know where it's gone at least
10:03:00 <zid> It appears to be heading east at approximately 132km/hr
10:03:00 <GeDaMo> Uh ... doesn't the sun apparently move to the West? :|
10:03:00 <zid> err math error, 800kmh
10:04:00 <zid> GeDaMo: That's why we need to f ind it!
10:04:00 <zid> Damn thing is going the wrong way
10:17:00 <nikolapdp> it's left here now too
10:17:00 <zid> fuck, we need more scouts
10:17:00 <zid> which direction did it go in?
10:17:00 <nikolapdp> don't know, it just vanished
10:18:00 <zid> useless
10:19:00 <nikolapdp> oh it's bacj
10:19:00 <nikolapdp> back
10:20:00 <zid> bizzare
10:22:00 <zid> I have cake
10:25:00 <nikolar> The cake is a lie
10:25:00 <zid> nikolar: 3.0+1.0 today?
10:26:00 <nikolar> Maybe
10:26:00 <zid> 3.99997 best movie
10:27:00 <nikolar> I only used fixed point
10:27:00 <nikolar> 4.0
11:58:00 <kof673> > doesn't the sun apparently move to the West? normally, yes
11:59:00 <kof673> lets say...10000 years of illiteracy at play lol > in front of the temple’s main east entrance https://www.eastidahonews.com/2023/12/christmas-themed-performances-return-to-idaho-falls-lds-temple-visitors-center/
11:59:00 <bslsk05> ​www.eastidahonews.com: Christmas-themed performances return to Idaho Falls LDS temple Visitors’ Center - East Idaho News
14:02:00 <zid> https://pbs.twimg.com/media/GLgTODyWQAAxtbO.png:large
14:04:00 <sham1> It's joevwr
14:04:00 <sham1> Joever
14:11:00 <nortti> ez80 seems to stil be produced
14:44:00 <nikolar> :(
14:44:00 <nikolar> Rip
14:45:00 <nikolar> Next you'll tell me that 6502 is being discontinued
14:45:00 <leg7> hey I'm trying to make an IDT in nasm via a macro but the problem is that I can't separate an address into high low parts with the preprocessor because it doesn't know the value of the address yet.
14:45:00 <leg7> Is there a way to get around this with a linker script?
14:45:00 <leg7> https://0x0.st/Xo22.nasm.asm
14:47:00 <zid> you're trying to fill out the idt with the addresses from your macro? That's a constant expression and should work fine
14:47:00 <leg7> Well nasm tells me it can't compute it because it's not a "scalar value"
14:48:00 <leg7> I ran into the same problem in C
14:48:00 <zid> assuming you did the normal thing where you do idt0: push 0; jmp blah; idt1: push 1; jmp blah; idt2: push 2; jmp blah or whatever, then they IDT just needs idt0, idt1, idt2, ..
14:48:00 <leg7> the issue is that the addresses of the ISRs are not known at compile time
14:48:00 <zid> They absolutely can be
14:48:00 <zid> you must have written it down funny
14:48:00 <leg7> I shared my code above
14:49:00 <leg7> I'm not doing the C indirection thing
14:49:00 <zid> it didn't have the right content type
14:49:00 <leg7> wdym?
14:49:00 <zid> Content-Type: http header
14:49:00 <zid> the server tried to serve me it as binary, not text/plain
14:49:00 <zid> so I could only download it, not view it
14:50:00 <zid> as though you gave the 'download' or 'raw' link, not the paste link
14:50:00 <leg7> yeah it did the same for me idk why
14:50:00 <leg7> maybe because of the file extension
14:51:00 <zid> so does this assemble or not, as it is now?
14:51:00 <leg7> no
14:52:00 <zid> and what's the error, on what line?
14:52:00 <leg7> https://0x0.st/Xo2p.txt
14:52:00 <zid> what line?
14:52:00 <leg7> I gave you the log
14:52:00 <zid> right but
14:52:00 <zid> the paste
14:53:00 <zid> is 4 files catted together is it not
14:53:00 <zid> oh no you just have those as actual comments?
14:53:00 <zid> they look like artificial breaks you put in so you could paste multiple files, sorry
14:53:00 <zid> where is Isr0 clared?
14:53:00 <zid> ah I see the macro, 38
14:55:00 <zid> isr0: ret; meow dw isr >> 16
14:55:00 <zid> error: shift operator may only be applied to scalar values
14:55:00 <zid> okay my test case is successful
14:58:00 <leg7> So what do you think?
14:58:00 <leg7> Is there a way to avoid doing this at runtime
14:58:00 <leg7> ?
14:58:00 <zid> you can add and subtract, so technically you could do blah: isr0: isr1: .. and do isr0-blah to get the offset from blah
14:58:00 <zid> then add it back onto blah and stuff
14:58:00 <zid> or use $$ etc
14:59:00 <zid> but I don't really see the need to write magic code
14:59:00 <zid> when you could just fill it out in 4 lines and 4 nanoseconds at runtime to resolve this
15:00:00 <leg7> I'm not even sure adding and subtracting would work
15:03:00 <zid> worked for my test case
15:03:00 <zid> but I did slightly less complex math
15:04:00 <zid> oh because I didn't change segment, ofc
15:05:00 <zid> https://cdn.discordapp.com/attachments/417023075348119556/1230897096740044851/image.png?ex=6634fd40&is=66228840&hm=8bdcd08ce8ea6b67e175e4036f88f51a875b36a9f42cdca0f71c83c1409d9a8f&
15:07:00 <zid> label - label is a scalar, then you can do math
15:07:00 <zid> but you lose the high bits of the original address
15:07:00 <zid> so you need to add them back in or whatever somehow else, like by having it all at a fixed address
15:08:00 <leg7> yeah thanks but I have no clue how that works
15:08:00 <zid> if it's at a fixed address, all the issues nasm has goes away, for obvious reasons
15:08:00 <zid> you don't understand why label-label is a scalar?
15:09:00 <leg7> yes I don't see how subtracting labels suddenly makes it ok to operate on
15:09:00 <zid> it's guarenteed to be a number with a known value
15:09:00 <leg7> I don't think that would work in the preprocessor
15:09:00 <zid> it's *always* 5
15:09:00 <zid> nothing can change that
15:10:00 <zid> if start is at 0xBEEF0000 and isr5 is at 0xBEEF0005, answer is 5
15:10:00 <zid> if start is at 0xF0000 and isr5 is at 0xF0005, answer is 5
15:10:00 <zid> etc etc
15:10:00 <zid> so that expression is just 0x5FEEF, every time
15:10:00 <leg7> yeah ok but isn't that just the distance between both?
15:11:00 <zid> Yes
15:11:00 <zid> now we go back to
15:11:00 <zid> > but you lose the high bits of the original address
15:11:00 <zid> > so you need to add them back in or whatever somehow else, like by having it all at a fixed address
15:11:00 <zid> the fact they're not at a fixed address is *why* it doesn't 'just work' in the first place
15:11:00 <zid> nasm doesn't know what address they're going to be loaded at, so it can't do that computation
15:12:00 <leg7> Yeah what I wanted to know was how to give them fixed addresses
15:12:00 <leg7> So it works right away
15:12:00 <zid> linker script to set . = 0xBEEF0000; or whatever before you include leg7.o's .text
15:12:00 <zid> now you know it starts at 0xBEEF0000 and can just hardcode everything in your isr tables
15:12:00 <zid> but.. why bother
15:13:00 <leg7> ok
15:13:00 <zid> they're going to change at runtime regardless so you need to write some code to change them
15:13:00 <zid> you add for(i = 0; i < 255; i++) set_handler(i, default_handler); to your project, done
15:13:00 <zid> or two loops, if feeling spicy, one for exceptions and one for not-exceptions
15:13:00 <zid> 0-31 and 32-255
15:14:00 <leg7> sure
15:14:00 <leg7> I just wanted to avoid having the indirection of the Isr calling a C function that switches on the value it pushed to do something
15:14:00 <leg7> I find that jarring
15:15:00 <zid> You need it regardless unless you want to duplicate your common code 256 times instead
15:16:00 <leg7> no you can do it like I did
15:16:00 <zid> you duplicated a bunch of code 256 times, I saw it :p
15:16:00 <zid> I didn't understand it, but I saw it
15:16:00 <leg7> what code?
15:16:00 <leg7> is duplicated?
15:17:00 <zid> you hadd 255 copies of jmp isrstart push dword msg call puts add esp, 4 jmp isrend
15:17:00 <leg7> `call puts` is duplicated but that is a placeholder
15:17:00 <zid> and jmp isrstart is.. fatal
15:17:00 <zid> idk how you recover from that tbh
15:17:00 <leg7> fatal?
15:18:00 <zid> how do you ever get to the push dword msg?
15:18:00 <leg7> lol
15:18:00 <leg7> XD
15:18:00 <leg7> Ok
15:19:00 <leg7> I'll just copy something that works and improve it later if I can
15:19:00 <zid> and it also trashes all your registers
15:19:00 <zid> not the best thing to do in an interrupt handler
15:19:00 <leg7> wdym?
15:20:00 <zid> what do I mean what do I mean? I mean what I said, ask about the part you didn't understand
15:22:00 <leg7> Ok nvm thank you for the help
15:23:00 <zid> I'll rephrase in case you don't know, you need to iret from your interrupt handler with the exact same register state you entered with
15:23:00 <zid> else random programs that are running are going to have all their registers change at random for no discernable reason
15:24:00 <gog> who needs things like state
15:25:00 <gog> i'm an anarchist and i don't think the state should exist
15:25:00 <zid> while(a < 7) {} /* Eventually an interrupt will break me out of this loop, I hope */
15:26:00 <heat> saying "oh screw it i'll copy someone else" is not a solution to anything
15:26:00 <heat> you'll find yourself with similar issues but with a frankenstein project you don't understand
15:27:00 <leg7> I never copy without understanding I'm not retarded
15:28:00 <leg7> The thing is these sysemts were put in place arbitrarily and there is no point re-inventing the wheel
15:28:00 <leg7> when I don't even have a working wheel
15:28:00 <leg7> how many different ways is there to make an IDT?
15:28:00 <leg7> As for state the Isrs are supposed to exit with iret
15:28:00 <leg7> as you can see in IsrEnd
15:29:00 <heat> yes, totally, you can't get your IDT to work so you'll copy someone else's while "understanding it"
15:30:00 <leg7> I imagine you implemented an IDT by yourself without ever looking at a reference
15:30:00 <zid> I mean, I did
15:30:00 <leg7> because that's cheating or something
15:30:00 <zid> but I already knew how to program for embed
15:30:00 <heat> i did have a franken OS that i barely knew how it worked
15:30:00 <heat> and i know how awful and debilitating that is
15:30:00 <zid> "do as I say not as I do" :p
15:31:00 <heat> absolutely
15:31:00 <heat> i barely *knew C*
15:31:00 <heat> like i literally learned C
15:31:00 <zid> You still barely know C dw
15:31:00 <heat> with osdev
15:31:00 <heat> i thought uint16_t * could only address the first 16 bits of address space
15:31:00 <heat> ofc ctrl+c and ctrl+v will get you some of the way but you don't understand jack shit of what you just did
15:32:00 <heat> if you can read a spec, the IDT is simple, just like the GDT. these are all simple (convoluted) tables that you just fill in with correct values
15:33:00 <leg7> I try doing it my own way and you tell me it's trash and I should do it the normal way. I say I'm going to do it the normal way and you tell me I shouldn't copy code...
15:54:00 <gog> it's ok to experiment and not know what you're doing
15:55:00 <gog> zid let people make mistakes and get frustrated and discouraged and question their existence
15:59:00 <zid> me? It was heat
16:00:00 <zid> why I am getting the blame for this :(
16:00:00 <leg7> It's ok I don't mind
16:01:00 <zid> No more memes for gog
16:01:00 <heat> tf did i do?
16:01:00 <heat> i just said no copying
16:01:00 <zid> give me my hamster back
16:01:00 <heat> and no copying, i'll say it any day of the week
16:02:00 <zid> heat: idk, you stormed in and came on super strong about something that hadn't really happened?
16:16:00 <gog> i'm copying myself
16:16:00 <gog> i'm also repeating myself
16:17:00 <gog> webdev
16:18:00 <heat> WEBDEV
16:18:00 <heat> gog sortie has php now
16:18:00 <heat> go WEBDEV on sortix
16:27:00 <gog> does he have dotnet
16:28:00 <gog> i need my enterpriserelationfactorybuilder<T>
16:29:00 <gog> one of the API documents i'm reading
16:29:00 <gog> https://i.imgur.com/ePjw6Cj.png
16:29:00 <bslsk05> ​i.imgur.com <no title>
16:29:00 <gog> a rude question to ask imo
16:33:00 <heat> lol
16:33:00 <zid> I just write egg
16:33:00 <heat> didn't know you were working with prager u
16:33:00 <heat> hello im penis prager and today we're going to be building an enterprise concentration camp system for minorities
16:34:00 <zid> They're called call centers
16:37:00 <nikolar> zid where egg
16:37:00 <zid> up ur but
16:37:00 <nikolar> no
16:37:00 <kazinsal> #osdev is being renamed to #egg_irl. sorry, I don't make the rules uwu
16:38:00 <heat> zid, can you explain why char (*)[5] != char *?
16:38:00 <heat> i never got that
16:38:00 <zid> yes
16:38:00 <zid> one is an array of 5
16:38:00 <zid> one is not
16:39:00 <heat> why does &array give you an array type but 'array' gives you a pointer
16:39:00 <heat> is this language stupid?
16:39:00 <zid> char (*x)[5] -> "declare x as pointer to array 5 of char"
16:39:00 <zid> The static analyzer uses it but not much else
16:39:00 <heat> well, 'array' doesn't give you a pointer, but it decays to one
16:39:00 <heat> whereas the char (*)[5] will not
16:40:00 <zid> You need it for doing multidim arrays though
16:40:00 <zid> else there's no way to make the math work
16:40:00 <nikolar> Basically
16:40:00 <zid> You'll never usually see one in the wild, except as something typeof will show you
16:41:00 <nikolar> You could do the multidimensional math on your own and never write those
16:41:00 <zid> sizeof (*x) being 5 is important, basically
16:42:00 <zid> rather than sizeof char * which which is wrong answer
16:42:00 <nikolar> which which
16:43:00 <zid> yes yes
16:43:00 <zid> https://godbolt.org/z/4jWxdq5zv
16:43:00 <bslsk05> ​godbolt.org: Compiler Explorer
16:43:00 <zid> 1 vs 10!
16:43:00 <heat> gotcha, that makes kinda sense
16:43:00 <zid> https://godbolt.org/z/ac4Mrra48
16:43:00 <bslsk05> ​godbolt.org: Compiler Explorer
16:43:00 <zid> 10, 1, 10!
16:43:00 <heat> i still maintain that &arr not giving you a pointer is kinda weird though
16:44:00 <nikolar> What's arr in this case
16:44:00 <zid> c[0] needs to have the same type as *b
16:44:00 <zid> else none of this makes any sense
16:44:00 <heat> just saw some guy on the lkml fix some scanf Wformat warnings by casting the &array to (char*)
16:44:00 <zid> and sizeof c[0] not being 10 is fucking.. wrong?
16:45:00 <heat> which is obviously wrong but i never knew what the exact semantics of &array are
16:45:00 <heat> just that I Shouldn't Do It
16:45:00 <nikolar> What's array, char array[10]?
16:45:00 <heat> yep something like that
16:46:00 <nikolar> Well yeah, c arrays represent memory so taking the address of it gives you a pointer to the first element
16:46:00 <zid> https://godbolt.org/z/M8G1hv3nh
16:46:00 <bslsk05> ​godbolt.org: Compiler Explorer
16:46:00 <zid> or rather, there are no true array types
16:47:00 <nikolar> Yeah
16:47:00 <zid> so unless used in special contexts that are array aware, they just decay to pointers to first elem
16:47:00 <nikolar> That too
16:47:00 <heat> nikolar, yes, and you want a pointer to the first element
16:47:00 <nikolar> Exactly
16:47:00 <heat> right
16:47:00 <heat> but &arr != char *
16:47:00 <heat> typeof(&arr) i mean
16:48:00 <zid> yea because typeof and sizeof get it 'before' it decays
16:48:00 <zid> they know what arrays are
16:48:00 <nikolar> Why would it though, you're taking a pointer of an array, you get a pointer to an array
16:48:00 <heat> it would make more sense if typeof(array) was a stronger array type and typeof(&array) was typeof(array[0])* or some shit
16:49:00 <zid> https://godbolt.org/z/K8dK3Kqr1 Is a good demonstration of the difference
16:49:00 <bslsk05> ​godbolt.org: Compiler Explorer
16:49:00 <heat> because in this case it's all backwards
16:49:00 <zid> `a` is still an array there so we get +100
16:49:00 <zid> but &a has to force it to not be array to give it to unary &
16:49:00 <zid> so you end up just getting char *
16:50:00 <nikolar> I think you swapped them zid lol
16:50:00 <nikolar> a+1 gives you lea rdi, [rsp+1]
16:51:00 <zid> what's arg order in ssyv!?
16:51:00 <nikolar> rdi, rsi
16:51:00 <zid> oopsie!
16:51:00 <nikolar> Which makes perfect sense
16:51:00 <zid> gcc confused me I TRUSTED IT
16:51:00 <zid> BLINDLY
16:51:00 <zid> I shall take my flogging
16:51:00 <nikolar> Lol it loaded args backwards for some reason
16:51:00 <zid> a+1 is the 2nd thing of a
16:52:00 <zid> weird
16:52:00 <nikolar> Yes
16:52:00 <zid> almost as though
16:52:00 <zid> that's how arrays work
16:52:00 <nikolar> Makes perfect sense no?
16:52:00 <zid> *(a+1) == a[1]
16:52:00 <zid> so a+1 has to give char * + 1
16:52:00 <nikolar> &a + 1 gives you a second element of an array of array
16:52:00 <nikolar> So you get +100
16:52:00 <zid> I'm trying to think of an easy to rationalise reason
16:53:00 <heat> c arrays are ass
16:53:00 <zid> rather than "&a just does that"
16:53:00 <heat> that's all i'm going to say
16:53:00 <zid> well yea, but they wanted polymorphism over arrays and pointers
16:53:00 <zid> so that you don't have to do strlenA(T (*)[]); and strlenP(T *);
16:53:00 <zid> like we're fucking winapi
16:53:00 <nikolar> So (t *)p + 1 = (char *)p + sizeof(t)
16:54:00 <nikolar> &a gives you a pointer to an array
16:54:00 <nikolar> You get +100 from normal pointer arithmetic
16:54:00 <heat> i wish we were winapi
16:55:00 <heat> CalculateStringLengthA
16:55:00 <nikolar> strlen
16:55:00 <nikolar> Which one would you rather type lol
16:55:00 <zid> you mean AP, heat
16:55:00 <zid> need ascii and usc-2 versions of array and pointer
16:55:00 <zid> so 4 total
16:56:00 <nikolar> Lol zid isn't the A suffix usually meant for "ascii", as in 1 byte per char encodings
16:56:00 <zid> yes? That's why there's AA, AP, WA, WP
16:56:00 <zid> ascii array, ascii pointer, wide array, wide pointer
16:56:00 <heat> nikolar, quick, off the top of your head, how do you convert a utf8 string to wide char in C
16:56:00 <zid> and any function that takes 2 things
16:57:00 <zid> easy heat wtf
16:57:00 <zid> needs to have 8 variants, even better
16:57:00 <nikolar> heat manually lol
16:57:00 <zid> By saying "Why the fuck would I want a wide string?"
16:57:00 <zid> and calling the winapi version
16:57:00 <zid> cus that's the only thing that uses wide strings
16:57:00 <zid> it has wstrtmbs right?
16:57:00 <heat> there are many reasons why one would want a wide string
16:58:00 <zid> name one that isn't windows
16:58:00 <nikolar> Lol
16:58:00 <heat> you want to convert a utf 8 string to unicode codepoints
16:58:00 <nikolar> You usually want to iterate over runes, not convert the whole string
16:58:00 <nikolar> Which is very easy with utf8
16:58:00 <zid> why would I ever do that by converting to wide first
16:58:00 <zid> I'd just decode the utf-8
16:58:00 <zid> which is trivial
16:58:00 <heat> wide IS utf32
16:58:00 <nikolar> Exactly what I said zid
16:58:00 <heat> in most sane systems
16:59:00 <zid> except it's ucs-2 in every C impl I own
16:59:00 <zid> that has a w* function that ever gets called
16:59:00 <zid> wcstombs is the only wide function I have *ever* called :D
16:59:00 <zid> I needed to turn a hid.dll string into a device name
16:59:00 <zid> Device name: \\?\HID#VID_0079&PID_0006#a&28b1f0ab&1&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
16:59:00 <zid> DeviceName: Generic USB Joystick
16:59:00 <zid> ^ wcstombs
16:59:00 <heat> wchar_t is 32-bits in gcc
17:00:00 <nikolar> I think there's a wchar32_t or something in c2x for utf32
17:00:00 <zid> why am I not logged into github
17:01:00 <nikolar> Because you frogor
17:01:00 <zid> and what the fuck is my github password
17:01:00 <zid> I just got ip banned
17:01:00 <zid> I use ssh keys for everything
17:02:00 <nikolar> Sorry, it's char32_t for utf32
17:02:00 <nikolar> Why would you get ip banned
17:02:00 <zid> > and what the fuck is my github password
17:02:00 <nikolar> And use a password manager
17:02:00 <heat> it's char32_t for utf32 because wchar_t is UNDEFINED
17:02:00 <zid> I have one, it's called "Why the fuck would I ever log out"
17:02:00 <nikolar> Lol
17:02:00 <nikolar> New machine?
17:02:00 <zid> what are those
17:02:00 <zid> I've changed PC once in 10+ years
17:03:00 <nikolar> You haven't reinstalled the os in 10+ years?
17:03:00 <zid> and all my passwords are just hunter7zidsecuresecuresecure
17:03:00 <zid> yes, once
17:03:00 <nikolar> Or the browser or something
17:03:00 <zid> I went from my original w7 install, to a w10 install
17:03:00 <zid> when I replaced my PC
17:03:00 <zid> (that PC involved me switching from xp64 to w7)
17:04:00 <zid> w8 was already out but it looked retarded so I went for w7 instead
17:04:00 <zid> I've been using NETSCAPE NAVIGATOR for longer than heat's been alive, re new browser
17:05:00 <nikolar> Rip
17:05:00 <heat> google has all my passwordz
17:07:00 <zid> HidD_GetProductString(f, wname, 256);
17:07:00 <zid> wcstombs(name, wname, 256);
17:07:00 <zid> :(
17:07:00 <zid> There is no A
17:08:00 <heat> yep
17:08:00 <nikolar> :(
17:08:00 <heat> cuz hid deals with ucs2
17:08:00 <nikolar> Is USB ucs2
17:08:00 <zid> cus windows
17:08:00 <heat> yes usb is ucs2
17:08:00 <nikolar> Rip
17:08:00 <zid> You get to waste 100% more bytes per byte, nikolapdp
17:08:00 <zid> it's perfect for 1.0 usb
17:09:00 <nikolar> Sounds about right for USB consortium or whatever they are called lol
17:09:00 <zid> microsoft DOES NO EVIL
17:09:00 <nikolar> Lol
17:09:00 <zid> they just buy their way onto every standards board
17:09:00 <zid> and make whatever windows does the standard
17:09:00 <zid> remember ooxml?
17:09:00 <zid> that was fun
17:09:00 <nikolar> Nope thankfully
17:10:00 <zid> reddit was on *fire*, everything was just ooxml
17:10:00 <zid> back when reddit was like hackernews
17:10:00 <nikolar> Lol
17:10:00 <zid> and didn't have subreddits, or users
17:10:00 <zid> it was just tech posts about microsoft casting 7 votes for themselves, and everybody else voting against them
17:10:00 <nikolar> Kek
17:14:00 <zid> There was fun stuff like microsoft telling the UK government it'd cost £500M/yr to use ODF
17:15:00 <zid> based on it taking 10 minutes for them to use an external tool to convert a .docx to .odf and back
17:15:00 <zid> every time someone wanted to use a file
17:16:00 <nikolar> And the UK government believed that?
17:16:00 <zid> ofc they did, like they're going to believe a random neckbeard going "no it won't"
17:16:00 <zid> when they've got 2 billion in contracts with microsoft for microsoft office on the line
17:16:00 <zid> which microsoft will say or do anything to product
17:16:00 <nikolar> Lol typical
17:16:00 <zid> to prtect*
17:16:00 <zid> to stop anybody switching to open office
17:17:00 <zid> They just bought all other smaller members' votes
17:17:00 <zid> "If you vote for ooxml, panasonic, we'll give you a hundred million dollars" is hard to turn down
17:18:00 <nikolar> Not wrong
17:19:00 <zid> or whoever the fuck else had ISO voting rights, idk
17:20:00 <nikolar> Yeah same thing
19:19:00 <kof673> "hundred million dollars" well dollars were specie, but that was actual states that used that. remember, 24/7 chaos is "law".
19:20:00 <kof673> lawyer 1: let me name my old thing exactly the same as my new thing lawyer 2: sounds good!
19:20:00 <kof673> judge: yep! no confusion there!
19:22:00 <kof673> #define malloc free
19:22:00 <kof673> ^ law
19:53:00 * Ermine gives gog a piece of cheese
19:55:00 * nikolar gives Ermine a cheese of piece
19:56:00 * Ermine is visibly confused
19:57:00 <heat> chesse
20:00:00 <Ermine> Chessa is Adélie's irc bot
20:01:00 <zid> is Ermine a markov chain today
20:02:00 <heat> why would anyone name an irc bot chessa
20:02:00 <heat> if its *not* a chess channel at least
20:02:00 <Ermine> idk, but this is the way it is
20:04:00 <kof673> > Finding nothing but a piece of old cheese, he put that into his pocket. Outside the town gate he found a bird that was caught in a bush. It went into his pocket with the cheese. He bravely took to the road, and being light and agile he did not grow weary. The road led him up a mountain, and when he reached the top a huge giant was sitting there
20:07:00 <mjg> so i asked my good friend chatgpt to generate some haskell for lulz
20:07:00 <mjg> it does nto compile
20:10:00 <Ermine> breaking news!
20:10:00 <heat> <heat> mjg, why are you using chatgpt
20:10:00 <heat> <heat> are you stupid
20:11:00 <mjg> it literally states "for lulz"
20:11:00 <GeDaMo> Type errors? :P
20:12:00 <heat> https://i.imgur.com/C23Y5sh.png
20:12:00 <bslsk05> ​i.imgur.com <no title>
20:12:00 <heat> hth
20:12:00 <kazinsal> butlerian jihad when
20:13:00 <geist> time to start huffing spice so we can mentat our way out of this
20:14:00 <GeDaMo> https://en.wikipedia.org/wiki/Erewhon
20:14:00 <GeDaMo> «Specifically, it concerns itself, in the three-chapter "Book of the Machines", with the potentially dangerous ideas of machine consciousness and self-replicating machines.»
20:15:00 <geist> ah i didn' tknow the connection there
20:16:00 <GeDaMo> I haven't read it but it's on Project Gutenberg
20:16:00 <sortie> <heat> gog sortie has php now
20:16:00 <sortie> <heat> go WEBDEV on sortix
20:16:00 <zid> "by English writer Samuel Butler, first published anonymously in 1872"
20:16:00 <zid> bastards
20:16:00 <sortie> Mwahahaha I am competing hard with you heat
20:16:00 <mjg> GeDaMo: first it claimed there is ambiguous name used, after i patched that it says variables not in scope
20:16:00 <mjg> GeDaMo: this is wher i dropped it
20:16:00 <heat> sortie, i have a v8 port
20:16:00 <heat> get on my level
20:16:00 <kazinsal> uuuuugh I have to rebuild my entire build server after last weekend's home server explosion
20:17:00 <zid> I have a v8 port, but I ported it to dev null
20:17:00 <zid> where it belongs
20:17:00 <sortie> heat, pictured: heat with javascript. I'm sorry for your loss.
20:17:00 <zid> javascript should be slow
20:17:00 <kazinsal> wonder what distro I should use
20:17:00 <mjg> heat: you do understand i'm not trying to use chatgpt in prod :d
20:17:00 * kazinsal pulls the pin, throws the grenade, and dives for cover
20:17:00 <mjg> heat: that said you convinced me to to coerece chatpt into writing a patch which could be submitted to onyux
20:18:00 <heat> kazinsal, dragonflybsd
20:19:00 <zid> I want a red hat with "Make javascript slow again"
20:20:00 <heat> JAVASCRIPT ENGINES WERENT MEANT TO HAVE 5 JITTERS
20:20:00 <zid> They've played us for absolute fools
20:21:00 <zid> we had interactive websites, they were called FLASH PORTALS
20:21:00 <GeDaMo> Fabrice Bellard wrote a JS interpreter called Quick JS :P
20:21:00 <zid> And they didn't mine bitcoins
20:22:00 <heat> personally i think we should go back to java applets
20:22:00 <zid> I liked java applets
20:22:00 <zid> they were way way way more reliable than javascript is
20:23:00 <zid> and it actually had multiple implementations
20:23:00 <heat> >ppl praising java
20:23:00 <heat> hey bud, you ok?
20:23:00 <zid> that's just how bad javascript is, heat
20:23:00 <zid> I was praising *flash*
20:23:00 <hunta987> my old dell server's portal ran a java applet, never got it to run
20:24:00 <zid> I played a lot of runescape, worked great
20:24:00 <zid> and sodaplay
20:25:00 <zid> someone remade sodaplay in js, it runs *worse* somehow :D
20:30:00 <gog> hi
20:31:00 <zid> gog did you renounce renouncing me yet
20:31:00 <Ermine> chatgpt kinda has a point
20:31:00 <gog> zid: never
20:32:00 <zid> no more cheese for you
20:33:00 <nikolar> FLASH FLASH FLASH
20:34:00 <Ermine> mentats good
20:35:00 <GeDaMo> https://ludism.org/mentat
20:35:00 <bslsk05> ​ludism.org: Mentat Wiki: Home Page
20:39:00 <kof673> > ShorthandSystems > CoffeeForProductivity
20:40:00 <kof673> found my source of "volunteers"
20:51:00 <heat> mjg, mon
20:51:00 <heat> does dtrace/bpftrace deal with inlined functions at all?
20:53:00 <mjg> no
20:53:00 <mjg> it can only handle realities of what's emitted
20:53:00 <heat> that's wack
20:55:00 <mjg> heat: https://chat.openai.com/share/2d6661b2-c99d-406b-9f4d-f52525cb09ce
20:55:00 <bslsk05> ​chat.openai.com: ChatGPT
20:55:00 <gog> zid: i forgive you
20:55:00 <gog> can i have some cheese now
20:56:00 <zid> I'm supposed to forgive you
20:56:00 <gog> what
20:56:00 <zid> No to both
20:56:00 <gog> what did i do
20:56:00 <zid> called me out for something heat did
20:56:00 <gog> oh right
20:56:00 <gog> sorry heat
20:56:00 <zid> apology accepted
20:58:00 <heat> mjg, https://chat.openai.com/share/2c434e9f-9aad-4fef-87ab-8f860192f4d1
20:58:00 <bslsk05> ​chat.openai.com: ChatGPT
20:58:00 <zid> shockingly, the 'word predictor model', after being told a new fact, predicts a set of words that supports the new fact
20:59:00 <zid> It's really good at word algebra
20:59:00 <heat> its like jedi mind-tricking a baby
21:00:00 <hunta987> the netflix research operating system, formerly freebsd
21:00:00 <heat> mjg, anyway here's some fanfic have fun https://chat.openai.com/share/df762833-d73c-4c3f-b139-22d36024a305
21:00:00 <bslsk05> ​chat.openai.com: ChatGPT
21:02:00 <mjg> heat: STAY PESSIMAL
21:02:00 <mjg> is the real openbsd catchphrase
21:02:00 <mjg> not that shit about 2 remote holes
21:02:00 <kof673> > In an Exorcist-style display of flexibility, owls can rotate their necks a maximum of 270 degrees
21:02:00 <kof673> i would be on board with gpt when it learns hieroglyphs
21:04:00 <childlikempress> heat: still a better love story than--
21:15:00 <gog> wow openbsd and i have a lot in common
22:10:00 <zid> you're both heavily used by 1 person at a time, and need constant patches to work on your new hardware?
22:25:00 <sortie> https://irc.sortix.org/forum/viewtopic.php?p=2 ← Hi can anyone help me answer my forum question about what level of self-hosting this is?
22:25:00 <bslsk05> ​irc.sortix.org: Wait how self-hosting am I? - irc.sortix.org #osdev
22:33:00 <Ermine> GeDaMo: I mean mentats from fallout
22:59:00 <mjg> sortie: :p
22:59:00 <mjg> sortie: of all the things one could be proud of, i don't know if running PHP is one of them