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: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 <zzo38> 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 <ais523> 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 <ais523> (that last character is a literal ctrl-G)
04:35:53 <zzo38> (Or, if someone else know to wrote one.)
04:36:19 <ais523> 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 <alercah> ais523: my interpretation of k' is "pop the stack, push the next n characters and skip them"
04:50:09 <ais523> what does it do if it wraps around the edge of the program, though?
04:50:16 <ais523> cfunge appears to see one space when that happens
04:50:34 -!- sleffy has quit (Ping timeout: 255 seconds).
04:50:57 <ais523> 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 <ais523> 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 <alercah> ais523: it should use funge-98 wrapping
04:51:46 <ais523> I know, but I'm not sure that's fully defined wrt the edge of the program
04:51:53 <ais523> in string literals it doesn't matter because consecutive spaces are merged
04:52:06 -!- sleffy has joined.
04:52:13 <ais523> 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 <alercah> my reading is that it's *specifically* when the IP enters the whitespace
04:53:05 <ais523> 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 <alercah> ais523: yes, right, the apostrophe does get pushed
04:54:03 <alercah> 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 <alercah> in this fashion it will actually skip the character at the other end
04:54:48 <alercah> so I think your quine doesn't work per spec
04:57:52 <ais523> 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 <ais523> it works in cfunge, anyway, so if it's non-spec-compliant, cfunge will probably have to be changed
04:58:39 <alercah> - load the character at (position + delta) onto the stack
04:58:47 <alercah> - position = position + delta
04:59:27 <alercah> the wrapping behaviour says
04:59:55 <alercah> "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 <alercah> so it travels to the ^G at the end, but then stops and is reflected
05:00:17 <alercah> it resumes execution of the next ', causing it to push k and skip past it
05:00:54 <alercah> you could probably avoid this by extending the program slightly?
05:06:39 <ais523> moving the leading space to the end of the program would possibly be enough under the rules you describe
05:07:43 <ais523> 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 <ais523> 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 <ais523> I'm not sure that was the intention, but it's a plausible argument
05:10:16 <alercah> yeah, that's my reading of it
05:11:02 <alercah> 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 <alercah> meaning the leading space would not be needed except possibly for alignment
05:11:28 <ais523> which means that the program would then not need the space at all
05:11:49 <ais523> 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:19:32 <ais523> 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 <ais523> to avoid trivial solutions like `1234` (which works in a lot of languages)
05:27:26 <alercah> how is that true with your current version?
05:28:00 <ais523> the space at the start is generated by cfunge implicitly while wrapping
05:28:03 <ais523> rather than quoting itself
05:37:28 <alercah> I wonder if you could exploit my version of the behaviour to let you get around it
05:39:45 <alercah> notwithstanding alignment issues that might result from the length changing
05:59:31 -!- sleffy has quit (Ping timeout: 252 seconds).
06:07:30 <ais523> another possibility would be to write the program as a palindrome and read the string in the other direction
06:07:40 <ais523> 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 <Deewiant> @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:22:29 -!- oerjan has joined.
06:41:31 -!- dingbat has joined.
06:54:12 -!- FreeFull has quit.
07:24:17 <rdococ> I don't think many surfaces in video games are genus-two surfaces.
07:24:39 <rdococ> I still want to find a good coordinate system for them nevertheless.
07:41:22 <oerjan> "The Bolza surface is the most symmetric Riemann surface of genus 2." sounds promising.
08:03:06 <rdococ> I was also working on a three-dimensional space for a torus.
08:11:55 -!- MoALTz has joined.
08:15:16 -!- AnotherTest has joined.
08:19:06 -!- augur has quit (Remote host closed the connection).
08:22:38 <HackEgo> Eric Steven Raymond's Beard
08:23:02 <oerjan> `learn ESRB is short for Eric Steven Raymond's Beard.
08:23:06 <HackEgo> Relearned 'esrb': ESRB is short for Eric Steven Raymond's Beard.
08:25:12 <oerjan> <rdococ> 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 <oerjan> (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: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:32:03 -!- gsora has joined.
13:40:37 -!- ais523 has joined.
13:44:59 <orby> ais523: mornin'
13:45:41 <orby> Do you know if anyone is still interested in working on an esoteric OS?
13:45:52 <orby> 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 <ais523> it's one of those things that keeps stalling out because nobody wants to figure out the details
13:49:20 <ais523> it'd probably work better as a solo project than a group project
13:51:25 <orby> 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 <orby> I think an esoteric OS should be written in an esoteric language :)
13:52:43 <ais523> most esolangs are defined independently of the hardware they're on, i.e. they're "portable"
13:52:50 <ais523> that's not really what you want to write an OS
13:53:11 <ais523> I guess you could write a Funge-98 fingerprint that gave access to low-level system operations
13:53:45 <orby> I'll have to read up on funge
13:55:21 <orby> 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 <ais523> you could use efi as the bootloader
14:23:03 <ais523> 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 <ais523> although it's a pretty powerful standard library, containing things like filesystem access code and GUI primitives
14:24:03 <ais523> 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 <orby> 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 <orby> though unfortunately I can't remember exactly what those issues are
14:26:37 <orby> 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 <orby> 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 <orby> maybe it would be suitable in this case, i'd have to read up on it again
14:27:28 <b_jonas> I think there's already at least one esoteric OS: that tiny one written in C for one of the IOCCCs.
14:27:51 <orby> b_jonas: do you have a link?
14:30:01 <orby> ah, found it http://www.ioccc.org/2004/gavin.hint
14:30:10 <b_jonas> orby: http://www.ioccc.org/years-spoiler.html#2004_gavin
14:30:18 <orby> cool, thanks :)
14:34:28 <orby> 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:36:11 <b_jonas> orby: that one is from 2004. they didn't have multiboot back then. at least not well-supported.
14:37:07 <orby> *shrugs* I do not know. multiboot has been around for a while but has gone through some major changes
14:41:56 <orby> 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 <orby> a couple others for low level os stuff, lgdt, etc.
14:45:05 <ais523> 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 <Phantom_Hoover> i've never seen a concept for an esoteric OS that really grabbed me
14:57:15 <Phantom_Hoover> most of them were just "run an esolang straight off the bootloader"
14:57:59 -!- `^_^v has joined.
14:58:17 <Phantom_Hoover> 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 <rdococ> Phantom_Hoover: how about hardware that natively runs Haskell, and then the OS builds up anti-abstractions?
16:17:56 <Phantom_Hoover> anti-abstraction's pretty easy right, it's just simulation?
16:18:38 <rdococ> programs written in an assembly language running on a Haskell emulator, which itself is running on hardware
16:19:06 <rdococ> 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:27:02 <hppavilion[1]> rdococ: I find myself making a more accurate translation of the old German national anthem with all the propoganda stripped
16:27:33 <hppavilion[1]> (as in, all the Allied propaganda inserted into the translation. Not the propaganda in the original lyrics, those get preserved)
16:28:10 <rdococ> hppavilion[1]: make versions of the ads you see on tv, but make them brutally honest
16:28:44 <hppavilion[1]> rdococ: Germany, Germany it's my favorite / it's my personal favorite in the world!
16:30:33 <orby> 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 <rdococ> hppavilion[1]: imagine hardware that natively runs something like Haskell
16:32:00 <rdococ> 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:32:49 <rdococ> Imagine an assembly language with an additional instruction, DCS, which doubles the clock speed.
17:33:26 <rdococ> 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 <rdococ> I think it's uncountable, but I want to hear other opinions.
17:37:35 -!- FreeFull has joined.
17:37:52 <HackEgo> P is the complexity class of Problems. They can be solved by reduction to NP.
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:30 <\oren\> ps -l isn't enough apparently
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: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 <rdococ> "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:51 <rdococ> +[+] 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 <rdococ> \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 <rdococ> that's why I suggest that it's uncountable
17:57:33 <orby> I think rdococ may be right
17:57:56 <rdococ> +[D>*</] would set cell 0 to 0 and cell 1 to (either countable or uncountable) infinity, but it will halt.
17:58:23 <rdococ> since I forgot to initialize cell 1
18:00:51 <rdococ> Hm, but does a +[D/] loop end in countably, or uncountably infinite steps?
18:01:14 <rdococ> Since we're dividing by 2, the result is 2^-n.
18:02:33 -!- hppavilion[1] has joined.
18:03:15 <rdococ> hppavilion[1]: hi again.
18:03:39 <rdococ> We're talking about a hypothetical BF extension which adds an instruction D, which would double the clock speed.
18:04:15 <rdococ> I'm pondering whether +[D/] | where / divides the current cell by 2 | ends in a countable, or uncountable, number of steps.
18:05:10 <rdococ> . o O (countable infinity modulo arithmetic)
18:08:02 <rdococ> Meh, you're probably right.
18:23:51 -!- deltab_ has changed nick to deltab.
18:27:26 <hppavilion[1]> 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 <hppavilion[1]> 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:28:14 <rdococ> hm. So +>+<[D>*</] does end after a countable number of iterations - but what is the value of the second cell?
18:28:56 <rdococ> I'm gonna say uncountable infinity.
18:50:16 <ais523> 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 <rdococ> ais523: yes, I am aware of that
19:20:50 <orby> ais523: Do you know if virtualbox (or any other free virtualization solution) supports uefi?
19:21:03 <ais523> orby: I don't, but it wouldn't surprise me at all
19:21:10 <ais523> given that supporting uefi is needed to run modern versions of Windows
19:21:20 <orby> 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 <orby> I seem to recall that virtualbox does
19:21:40 <orby> 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 <orby> ais523: beaten to the punch https://gist.github.com/alphaKAI/b9aaa0f693e7498f8a5e
19:38:12 <orby> 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 <izabera> 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: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 <shachaf> 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:46:33 -!- augur has quit (Remote host closed the connection).
21:47:07 -!- augur has joined.
21:51:58 -!- augur has quit (Ping timeout: 268 seconds).
21:54:32 -!- augur has joined.
22:07:12 -!- DHeadshot has joined.
22:25:07 * Zarutian bets that hppavilion got a keyboard lock on or off
22:27:17 <ais523> well it obviously wasn't caps lock (it might be now, last few lines were in allcaps)
22:27:21 <ais523> and scroll lock probably wouldn't matter
22:27:26 <ais523> num lock? keyboard layout setting?
22:37:16 <shachaf> 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).