00:05:38 -!- contrapumpkin has joined. 00:19:20 -!- LKoen has quit (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”). 00:22:47 -!- Lord_of_Life has quit (Ping timeout: 258 seconds). 00:28:30 `? dr hexham 00:28:31 dr hexham? ¯\(°​_o)/¯ 00:31:53 -!- Lord_of_Life has joined. 01:10:48 -!- Akaibu has quit (Quit: Connection closed for inactivity). 01:38:18 -!- sirnaysayer has changed nick to t3ry4k1b33f. 02:00:28 -!- Lord_of_Life has quit (Ping timeout: 255 seconds). 02:33:07 -!- Phantom_Hoover has quit (Remote host closed the connection). 02:42:46 -!- Lord_of_Life has joined. 02:48:36 -!- hppavilion[1] has joined. 03:18:41 -!- sleffy has joined. 04:20:10 -!- sleffy has quit (Ping timeout: 260 seconds). 04:21:49 -!- sleffy has joined. 04:33:10 -!- Lord_of_Life has quit (Ping timeout: 252 seconds). 04:34:03 -!- ais523 has joined. 04:35:14 Where do I find some good JPEG library like LodePNG is for PNG, but one that is for work with JPEG instead? 04:35:18 I just improved the record for the shortest non-cheating Befunge-98 quine by 2 or 3 bytes (depending on how exactly you define cheating): ` 'k<@,k␇` (explanation: https://codegolf.stackexchange.com/a/117555/62131) 04:35:50 (that last character is a literal ctrl-G) 04:35:53 (Or, if someone else know to wrote one.) 04:36:19 however, it depends a lot on some bizarre edge-case behaviour of the `k` command, and I'm not quite sure if it's correct/undef/broken (Vorpal? Deewiant?) 04:38:11 -!- Lord_of_Life has joined. 04:49:45 ais523: my interpretation of k' is "pop the stack, push the next n characters and skip them" 04:50:09 what does it do if it wraps around the edge of the program, though? 04:50:16 cfunge appears to see one space when that happens 04:50:34 -!- sleffy has quit (Ping timeout: 255 seconds). 04:50:57 at least if there are no actual spaces in the path, or if there's one space at an end of the program (as seen here) 04:51:17 FBBI does something else but I'm not entirely sure what (it's hard to test as failed tests tend to cause infinite loops that leak memory) 04:51:29 ais523: it should use funge-98 wrapping 04:51:46 I know, but I'm not sure that's fully defined wrt the edge of the program 04:51:53 in string literals it doesn't matter because consecutive spaces are merged 04:52:06 -!- sleffy has joined. 04:52:13 but with `'` and `#` and friends the details do matter; IIRC Mycology has a test for this, but it's UNDEF because it's ill-defined 04:52:35 my reading is that it's *specifically* when the IP enters the whitespace 04:53:05 I agree on your general description of what `k'` does, though (although it pushes the apostrophe first, that's just typical `k` weirdness that's predictable when you know about the other cases of `k` weirdness) 04:53:47 ais523: yes, right, the apostrophe does get pushed 04:54:03 I think what happens with ' is that a space gets pushed, then the IP goes off the edge, so it wraps around to the other end 04:54:09 in this fashion it will actually skip the character at the other end 04:54:48 so I think your quine doesn't work per spec 04:57:52 I'm not sure what you mean by that, but I'd be surprised if any non-whitespace characters in the program didn't get pushed 04:58:05 it works in cfunge, anyway, so if it's non-spec-compliant, cfunge will probably have to be changed 04:58:29 ' is defined as follows: 04:58:39 - load the character at (position + delta) onto the stack 04:58:47 - position = position + delta 04:59:27 the wrapping behaviour says 04:59:55 "When the IP attempts to travel into the whitespace between the code and the end of known, addressable space... it finds the other 'edge' of code when there is again nothing but whitespace in front of it. It is reflected 180 degrees once more" 05:00:08 so it travels to the ^G at the end, but then stops and is reflected 05:00:17 it resumes execution of the next ', causing it to push k and skip past it 05:00:21 it never pushes ^G 05:00:54 you could probably avoid this by extending the program slightly? 05:06:39 moving the leading space to the end of the program would possibly be enough under the rules you describe 05:07:43 as far as I can see, your argument is that the IP must always be within the non-whitespace-bounded version of the playfield 05:08:02 thus the ' command can only see spaces in front of the non-whitespace-bounded version of the playfield (and thus can never see the first character on a line)? 05:08:53 I'm not sure that was the intention, but it's a plausible argument 05:10:16 yeah, that's my reading of it 05:11:02 I think that the correct behaviour would actually be to regard the wrapping as applying to any form of offset, however, so then ' would always wrap 05:11:24 meaning the leading space would not be needed except possibly for alignment 05:11:28 which means that the program would then not need the space at all 05:11:49 although then it'd cease to be a quine under PPCG's proper quine rules (which IMO are buggy and lead to a lot of unintended effects) 05:16:22 oh? 05:19:32 PPCG requires at least one character in the output to have its value derived from something other than the corresponding character in the input 05:19:44 to avoid trivial solutions like `1234` (which works in a lot of languages) 05:27:06 ahh 05:27:26 how is that true with your current version? 05:28:00 the space at the start is generated by cfunge implicitly while wrapping 05:28:03 rather than quoting itself 05:36:32 ah right 05:37:28 I wonder if you could exploit my version of the behaviour to let you get around it 05:39:25 oh yeah you could 05:39:45 notwithstanding alignment issues that might result from the length changing 05:59:31 -!- sleffy has quit (Ping timeout: 252 seconds). 06:07:30 another possibility would be to write the program as a palindrome and read the string in the other direction 06:07:40 but I think that'd be considerably longer even if you could reuse the `k`s 06:14:19 -!- ais523 has quit (Ping timeout: 260 seconds). 06:17:17 @tell ais523 I'm pretty sure I disagree with what cfunge does here, in a 32-bit Funge-Space there are some 2^31 - 7 spaces that that k' sequence would have to push before reaching the ^G on the other side. I.e. I don't think ' should wrap around while it's executing, whether that's via k or not. 06:17:17 Consider it noted. 06:22:29 -!- oerjan has joined. 06:41:31 -!- dingbat has joined. 06:54:12 -!- FreeFull has quit. 07:04:49 hi. 07:24:17 I don't think many surfaces in video games are genus-two surfaces. 07:24:39 I still want to find a good coordinate system for them nevertheless. 07:41:22 "The Bolza surface is the most symmetric Riemann surface of genus 2." sounds promising. 07:42:05 also brain-wrecking. 08:03:06 I was also working on a three-dimensional space for a torus. 08:03:12 as in, a + bi + cj. 08:11:55 -!- MoALTz has joined. 08:12:17 MoALTz! 08:15:16 -!- AnotherTest has joined. 08:19:06 -!- augur has quit (Remote host closed the connection). 08:22:14 `? esbr 08:22:27 esbr? ¯\(°​_o)/¯ 08:22:36 `? esrb 08:22:38 Eric Steven Raymond's Beard 08:23:02 `learn ESRB is short for Eric Steven Raymond's Beard. 08:23:06 Relearned 'esrb': ESRB is short for Eric Steven Raymond's Beard. 08:25:12 Well, I've somehow ended up designing my own map projection. <-- now you just need to get User:Strebe to feature it on wikipedia 08:26:00 (ok, there are a few intermediate steps, like that notability thing.) 08:40:43 -!- deltab_ has joined. 08:40:59 -!- heroux_ has joined. 08:41:36 -!- heroux has quit (Write error: Broken pipe). 08:41:36 -!- deltab has quit (Write error: Broken pipe). 08:41:38 -!- puckipedia has quit (Excess Flood). 08:41:44 -!- heroux_ has changed nick to heroux. 08:41:50 -!- puckipedia has joined. 08:56:42 -!- hppavilion[1] has quit (Ping timeout: 240 seconds). 09:07:46 -!- LKoen has joined. 09:43:56 Morning 09:44:47 o7 09:56:01 -!- Jafet has quit (Ping timeout: 268 seconds). 09:59:27 -!- Jafet has joined. 10:43:14 -!- oerjan has quit (Quit: Later). 10:56:11 -!- augur has joined. 11:00:34 -!- augur has quit (Ping timeout: 260 seconds). 11:04:02 -!- erkin has quit (Quit: Ouch! Got SIGABRT, dying...). 11:16:50 -!- augur has joined. 11:24:19 -!- augur has quit (Ping timeout: 255 seconds). 11:34:21 -!- boily has joined. 12:16:37 -!- olsner has quit (Ping timeout: 240 seconds). 12:24:09 -!- Phantom_Hoover has joined. 12:24:09 -!- Phantom_Hoover has quit (Changing host). 12:24:09 -!- Phantom_Hoover has joined. 12:26:36 -!- boily has quit (Quit: DOCUMENT CHICKEN). 12:49:49 -!- AnotherTest has quit (Ping timeout: 255 seconds). 12:56:18 -!- Jafet has quit (Ping timeout: 260 seconds). 12:57:19 -!- olsner has joined. 13:01:51 -!- olsner has quit (Ping timeout: 260 seconds). 13:06:51 -!- olsner has joined. 13:11:46 -!- olsner has quit (Ping timeout: 260 seconds). 13:12:18 -!- AnotherTest has joined. 13:13:43 -!- Jafet has joined. 13:26:47 -!- orby has joined. 13:27:05 greetings! 13:32:03 -!- gsora has joined. 13:33:18 * orby waves. 13:40:37 -!- ais523 has joined. 13:44:59 ais523: mornin' 13:45:07 afternoon 13:45:41 Do you know if anyone is still interested in working on an esoteric OS? 13:45:52 I saw the page on it and it struck me as a fun idea 13:46:03 -!- gsora_ has joined. 13:47:52 -!- gsora has quit (Ping timeout: 255 seconds). 13:49:10 it's one of those things that keeps stalling out because nobody wants to figure out the details 13:49:20 it'd probably work better as a solo project than a group project 13:51:25 I've got some experience writing bootloaders and simple kernels. Do you know if there are any esoteric languages on the wiki that would be suitable for low level system programming? 13:52:04 I think an esoteric OS should be written in an esoteric language :) 13:52:43 most esolangs are defined independently of the hardware they're on, i.e. they're "portable" 13:52:50 that's not really what you want to write an OS 13:52:58 yeah, exactly 13:53:11 I guess you could write a Funge-98 fingerprint that gave access to low-level system operations 13:53:45 I'll have to read up on funge 13:55:21 it'd probably be easiest to use an existing bootloader like grub and just compile some existing language to an elf binary 14:09:39 -!- olsner has joined. 14:14:11 -!- olsner has quit (Ping timeout: 260 seconds). 14:21:57 -!- olsner has joined. 14:22:42 you could use efi as the bootloader 14:23:03 most systems have it nowadays, and it runs what are basically .exe files (although with a very different "standard library" from the typical .exe file) 14:23:28 although it's a pretty powerful standard library, containing things like filesystem access code and GUI primitives 14:24:03 this is the bootloader that windows 8+ uses as standard, and is also normally used to chain-load GRUB on Linux (Linux can use it directly too, but that's a less common setup) 14:25:51 That's an interesting idea. I've looked at uefi for other projects in the past. The functions that uefi makes available make it seem like you could write an entire OS that just makes uefi calls, but I remember running into issues with that idea 14:26:00 though unfortunately I can't remember exactly what those issues are 14:26:37 there is a uefi call you make to go into "os mode", which basically tells uefi that you're going to be taking full control of the hardware 14:26:58 previous to that, you're not supposed to be mucking around with any ram that hasn't been specifically allocated by the uefi calls, etc. 14:27:24 maybe it would be suitable in this case, i'd have to read up on it again 14:27:28 I think there's already at least one esoteric OS: that tiny one written in C for one of the IOCCCs. 14:27:51 b_jonas: do you have a link? 14:30:01 ah, found it http://www.ioccc.org/2004/gavin.hint 14:30:10 orby: http://www.ioccc.org/years-spoiler.html#2004_gavin 14:30:12 that, yes 14:30:18 you were faster 14:30:18 cool, thanks :) 14:30:42 google magic 14:34:28 multiboot is a much simpler standard that uefi and is well supported by grub, I think that might be an easier starting point. maybe a kernel written in an esoteric subset of x86 :) 14:35:10 sub than that 14:36:11 orby: that one is from 2004. they didn't have multiboot back then. at least not well-supported. 14:36:18 or did they? 14:37:07 *shrugs* I do not know. multiboot has been around for a while but has gone through some major changes 14:41:56 maybe a good starting project would be a self-hosting esoteric x86 assembler. supporting a sub opcode and jne should be sufficient in theory. 14:43:01 a couple others for low level os stuff, lgdt, etc. 14:45:05 writing an esolang compiler to target EFI (or an esolang interpreter that runs on EFI) seems like an arguably productive goal even if we don't use it for a bootloader 14:50:29 -!- `^_^v has joined. 14:54:08 -!- `^_^v has quit (Client Quit). 14:57:01 i've never seen a concept for an esoteric OS that really grabbed me 14:57:15 most of them were just "run an esolang straight off the bootloader" 14:57:59 -!- `^_^v has joined. 14:58:17 i mean the point of an OS is to build up abstractions over hardware and most esolangs eschew abstraction 15:16:55 -!- LKoen has quit (Remote host closed the connection). 15:51:15 -!- LKoen has joined. 16:17:15 Phantom_Hoover: how about hardware that natively runs Haskell, and then the OS builds up anti-abstractions? 16:17:47 lol 16:17:56 anti-abstraction's pretty easy right, it's just simulation? 16:18:07 ye 16:18:38 programs written in an assembly language running on a Haskell emulator, which itself is running on hardware 16:19:06 or we could nest it: programs written in an assembly language running on a C++ emulator running on a Haskell emulator 16:25:07 -!- hppavilion[1] has joined. 16:26:02 hi hppavilion[1] 16:26:21 Hi rdococ 16:27:02 rdococ: I find myself making a more accurate translation of the old German national anthem with all the propoganda stripped 16:27:33 (as in, all the Allied propaganda inserted into the translation. Not the propaganda in the original lyrics, those get preserved) 16:28:10 hppavilion[1]: make versions of the ads you see on tv, but make them brutally honest 16:28:44 rdococ: Germany, Germany it's my favorite / it's my personal favorite in the world! 16:30:33 ais523: an esolang interpreter that runs on efi sounds like a great idea and could be an integral part of an esoteric os 16:30:59 hppavilion[1]: imagine hardware that natively runs something like Haskell 16:31:08 rdococ: No. 16:32:00 okay, what about Prolog 16:37:32 -!- sleffy has joined. 16:39:55 -!- hppavilion[1] has quit (Ping timeout: 240 seconds). 16:57:55 -!- sleffy has quit (Ping timeout: 240 seconds). 17:02:36 -!- sleffy has joined. 17:09:51 -!- sleffy has quit (Ping timeout: 245 seconds). 17:12:24 -!- sleffy has joined. 17:12:50 -!- betaveros has quit (Remote host closed the connection). 17:21:45 -!- betaveros has joined. 17:30:52 hi 17:31:20 Hi 17:31:50 ih 17:32:28 hm. 17:32:49 Imagine an assembly language with an additional instruction, DCS, which doubles the clock speed. 17:33:26 Now, if you use an infinite loop to perform the DCS a countably infinite number of times, what is the clock speed - is it countable or uncountable? 17:33:44 I think it's uncountable, but I want to hear other opinions. 17:37:28 <\oren\> `? ps 17:37:35 -!- FreeFull has joined. 17:37:52 P is the complexity class of Problems. They can be solved by reduction to NP. 17:38:00 <\oren\> argh 17:38:06 <\oren\> `? pss 17:38:08 pss? ¯\(°​_o)/¯ 17:38:37 <\oren\> I recently figured out that in order for ps to actaully print out all the info you have to do 17:40:10 <\oren\> ps -lFj 17:40:30 <\oren\> ps -l isn't enough apparently 17:40:55 hi 17:42:19 <\oren\> rdello 17:42:59 <\oren\> "countable" applies to sets, not numbers 17:45:24 -!- sleffy has quit (Ping timeout: 264 seconds). 17:45:53 -!- sleffy has joined. 17:46:31 <\oren\> so suppose we use BF and have the D instruction. The program you're proposing is +[D]. 17:48:18 <\oren\> The result depends on semantics 17:49:51 -!- orby has quit (Ping timeout: 260 seconds). 17:50:27 <\oren\> can the BF machine detect that it has "finished" the infinite loop and therefore exit it? 17:51:09 hm 17:52:49 -!- LKoen has quit (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”). 17:53:46 "for (i = 1, countable infinity) { double clock speed }" in pseudo code would work 17:53:55 <\oren\> now it gets more interesting if we equip the BF machine with the / (divide by two) and * (multiply by two) instructions. 17:54:23 ooh 17:54:51 +[+] in Super-TC BF would yield countable infinity while +[*] would yield uncountable infinity 17:55:17 <\oren\> +[D/] would indeed exit because the cell's value approaches 0 as the clock speed aprroaches infinity 17:56:20 -!- orby has joined. 17:56:21 -!- sleffy has quit (Ping timeout: 255 seconds). 17:56:36 <\oren\> rdococ: no, multiplying countable infinity by two is still countable infinity 17:57:01 <\oren\> Read about the Hilbert Hotel 17:57:07 \oren\: the way I see it, multiplication by two n times is equal to 2^n, so 2^countable infinity is uncountably infinite 17:57:25 that's why I suggest that it's uncountable 17:57:33 I think rdococ may be right 17:57:56 +[D>* wait 17:58:10 +>+<[D>* since I forgot to initialize cell 1 17:58:26 (to 1) 18:00:51 Hm, but does a +[D/] loop end in countably, or uncountably infinite steps? 18:01:14 Since we're dividing by 2, the result is 2^-n. 18:02:33 -!- hppavilion[1] has joined. 18:03:15 hppavilion[1]: hi again. 18:03:24 Hello 18:03:39 We're talking about a hypothetical BF extension which adds an instruction D, which would double the clock speed. 18:04:15 I'm pondering whether +[D/] | where / divides the current cell by 2 | ends in a countable, or uncountable, number of steps. 18:05:10 . o O (countable infinity modulo arithmetic) 18:07:13 rdococ: ...uh, countable. 18:07:16 Trivially countable. 18:08:02 Meh, you're probably right. 18:23:51 -!- deltab_ has changed nick to deltab. 18:26:02 rdococ: s/ob/ov/ 18:26:48 heh 18:27:26 The number of steps being countable means that you can put each step (which we'll just represent as the whole tape to indicate the changes made) in a list where the state at each and every step can be found at some finite index 18:27:48 Sequential programs like this are pretty easy to order: Every time you run a command, add the current tape to the end of the list 18:27:55 ah 18:28:01 viola. The set is countable. 18:28:14 hm. So +>+<[D>* I'm gonna say uncountable infinity. 18:50:16 rdococ: doubling a nonzero integer countably infinitely many times gives you an uncountable value (specifically, aleph-1) 18:53:36 -!- AnotherTest has quit (Ping timeout: 260 seconds). 18:54:31 ais523: yes, I am aware of that 19:20:50 ais523: Do you know if virtualbox (or any other free virtualization solution) supports uefi? 19:21:03 orby: I don't, but it wouldn't surprise me at all 19:21:10 given that supporting uefi is needed to run modern versions of Windows 19:21:20 I'm going to play around with the example at http://x86asm.net/articles/uefi-programming-first-steps/ and start working on a uefi bf bootloader 19:21:27 I seem to recall that virtualbox does 19:21:40 then we can write a kernel in bf :) 19:23:26 -!- DHeadshot has joined. 19:24:21 -!- AnotherTest has joined. 19:31:35 -!- Akaibu has joined. 19:32:11 -!- hppavilion[1] has quit (Ping timeout: 264 seconds). 19:37:22 -!- Zarutian has joined. 19:37:29 ais523: beaten to the punch https://gist.github.com/alphaKAI/b9aaa0f693e7498f8a5e 19:38:12 but that one doesn't load a file, it takes the bf program as an argument 19:44:30 -!- DHeadshot has quit (Ping timeout: 246 seconds). 19:46:23 -!- augur has joined. 19:47:54 -!- zzo38 has quit (Ping timeout: 260 seconds). 20:10:56 -!- DHeadshot has joined. 20:13:12 -!- hppavilion[1] has joined. 20:17:09 -!- iovoid has quit (Quit: *). 20:17:17 -!- iovoid has joined. 20:17:18 -!- iovoid has quit (Changing host). 20:17:18 -!- iovoid has joined. 20:26:33 -!- hppavilion[1] has quit (Ping timeout: 260 seconds). 20:27:59 -!- `^_^v has quit (Quit: This computer has gone to sleep). 20:35:11 https://i.imgur.com/Q7LRkRQ.mp4 20:39:15 -!- ais523 has quit (Remote host closed the connection). 20:40:24 -!- ais523 has joined. 20:45:10 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds). 20:57:14 -!- hppavilion[1] has joined. 21:01:47 -!- hppavilion[1] has left. 21:01:50 -!- hppavilion[1] has joined. 21:01:52 Oops 21:04:32 -!- ais523 has quit (Remote host closed the connection). 21:05:44 -!- ais523 has joined. 21:06:48 -!- DHeadshot has quit (Ping timeout: 260 seconds). 21:10:08 -!- Phantom_Hoover has joined. 21:10:08 -!- Phantom_Hoover has quit (Changing host). 21:10:08 -!- Phantom_Hoover has joined. 21:14:25 lynn: i,i http://dmitry.gr/index.php?r=05.Projects&proj=07.%20Linux%20on%208bit 21:18:44 -!- ais523 has quit (Remote host closed the connection). 21:19:56 -!- ais523 has joined. 21:21:49 -!- sleffy has joined. 21:30:21 -!- orby has quit (Ping timeout: 260 seconds). 21:34:12 -!- hppavilion[1] has quit (Ping timeout: 240 seconds). 21:41:13 -!- hppavilion[1] has joined. 21:43:26 Uh 21:43:29 This is concerning 21:43:44 KeePass isn't accepting my password 21:45:00 OK, this is definitely not right 21:46:28 Fuckfuckfuckfuckfuckfuckfuck 21:46:33 -!- augur has quit (Remote host closed the connection). 21:47:07 -!- augur has joined. 21:50:29 WHY. 21:50:34 I KNOW I'M PUTTING IT IN RIGHT. 21:51:58 -!- augur has quit (Ping timeout: 268 seconds). 21:54:32 -!- augur has joined. 21:59:01 FUUUUUUUUCK 22:07:12 -!- DHeadshot has joined. 22:25:07 * Zarutian bets that hppavilion got a keyboard lock on or off 22:27:17 well it obviously wasn't caps lock (it might be now, last few lines were in allcaps) 22:27:21 and scroll lock probably wouldn't matter 22:27:26 num lock? keyboard layout setting? 22:37:16 Keybord layout seems plausible. 22:40:03 -!- Marcela_Gandara1 has joined. 22:47:49 -!- Marcela_Gandara1 has changed nick to Lilly_Goodman. 22:59:11 -!- Lilly_Goodman has quit (Ping timeout: 268 seconds). 23:04:27 -!- Marcela_Gandara1 has joined. 23:06:35 -!- hppavilion[1] has quit (Ping timeout: 268 seconds). 23:14:53 -!- AnotherTest has quit (Ping timeout: 240 seconds). 23:21:38 -!- Marcela_Gandara1 has quit (Read error: Connection reset by peer). 23:48:00 -!- hppavilion[1] has joined. 23:53:40 -!- Marcela_Gandara1 has joined. 23:55:57 * hppavilion[1] . o O ( If x squared is x*x, then x equilaterally triangled must be x*x*sqrt(3)/4 ) 23:58:39 -!- Zarutian has quit (Quit: Zarutian).