00:17:02 -!- Lord_of_Life_ has joined. 00:17:41 -!- Lord_of_Life has quit (Ping timeout: 244 seconds). 00:18:22 -!- Lord_of_Life_ has changed nick to Lord_of_Life. 01:11:39 Hmm, maybe chroma isn't quite as impossible as it seemed at first... 01:15:29 int-e: it's good when a puzzle feels that way 01:15:53 I still wish the levels were smaller though 01:16:45 Simply because I prefer solving ten small levels in two hours than solving one big one. 01:16:54 What size do you want? 01:16:54 s/than/to/ 01:17:53 something where solutions are 50-200 moves rather than 500-2000 :P 01:18:28 Anyway, progress: https://int-e.eu/~bf3/tmp/chroma.png 01:22:35 I prefer Hero Hearts myself (some levels do need 2000 moves or more, but many need many less moves). I also like to make up my own levels and classes of objects 01:25:44 You can also try to make up your own smaller levels in Chroma too I suppose, if you want to do 01:26:44 These are of a class of puzzle games involving grid based turn based level based puzzle games with deterministic rules 01:26:55 Which others are there? Probably there are many 01:37:50 there are a ton of sokoban derivatives 01:40:04 Yes, there are many games like that, but do you have a list? There is also some game where there isn't pushing other objects around but still meets the other criteria 01:43:28 (Also have you made up your own?) 01:46:53 No, I don't have a list. A Monster's Expedition, Fish Fillets, XSok, small ones like Vertebrae, 5 Step Steve... there are many more that I forgot. And many games have (easy) Sokoban puzzles as minigames. 01:48:19 and "grid-based" is too broad to even consider an enumeration... it includes stuff like Rush Hour which has moving pieces but no agent. Even the 15 puzzle is grid-based. 01:48:35 Another game I have played is Sokoball, which is similar to Sokoban in some ways, but once a box is placed on a target, the box disappears so that you can now walk over it and put another box there too; there are also some new pieces such as arrows to walk only one way, and tiles that cause all other tiles in a line with it ti slide toward you, etc. 01:48:52 Though I guess in that case you can think of the empty space as the agent. 01:49:12 (With the power to swap places with an adjacent piece) 01:49:25 And no, I have not tried to make my own puzzles. 01:49:35 Xsok is more general in that you can define your own kind of pieces, although it is rather limited. 01:52:43 There is a Game Boy Advance game called "Brain N Bells"; I have the source code too. That game has no pushable objects (although since the source code is available, such objects could be added). 01:53:26 int-e: it seems we will very soon see whether my guild hall theory is correct 01:54:38 -!- SGautam has quit (Quit: Connection closed for inactivity). 01:55:23 no logistics problem, sadly... those replicas are too good 01:56:22 I want to port Chroma, Brain N Bells, and other games to Free Hero Mesh too. A converter could also be made Xsok -> Free Hero Mesh, maybe (as long as the pictures are square and can be changed to the required palette, if necessary; I haven't checked the palettes). (Maybe better graphics can also be made for Xsok since I think the included ones aren't very good) 01:57:44 I guess Baba is You would also make the list. But Recursed wouldn't because it has platforming elements. 01:58:39 Platform elements are accepiable if it still uses a rectangular grid and is turn based rather than time based 02:00:00 hmm 02:00:32 [[SRL++]] M https://esolangs.org/w/index.php?diff=89066&oldid=89053 * TheJonyMyster * (+0) bear => beer 02:00:51 so if all coordinates are exact pixels... 02:00:52 :P 02:03:10 Anyway, no, Recursed has grid-based level layouts but boxes can be pushed horizontally by pixels, and jumping is smooth and there's a timing element to jumps (mainly because you can throw stuff mid jump) 02:04:07 OK. 02:06:20 err, s/pushed/placed/ 02:07:08 (you move boxes by picking them up, carrying them to another place, then putting them down; it's not sokoban-like at all, really) 02:21:46 -!- ais523 has joined. 02:22:14 I finished writing the world's fastest FizzBuzz: https://codegolf.stackexchange.com/a/236630 02:22:32 it has reminded me to complain about the x86(-64) CPUID instruction 02:22:51 I'm not sure how it's possible to design an API like that 02:23:22 specifically, there are a number of possible CPUID commands, some of which will and some of which won't be implemented on any given CPU 02:24:04 they're divided into two sets, "normal" and "extended" (the former have small numbers, the larger have small numbers except with 0x8000000 added) 02:24:41 if you try to use a command that isn't implemented, but its number is lower than another command in the same set, it returns all-zeroes 02:25:01 if you try to use a command that isn't implemented and its number is *higher* than any other implemented command in the same set, it returns garbage, rather than all-zeroes 02:25:40 so you have to use a special CPUID command, CPUID command 0 or 0x80000000, to ask for the highest implemented command, before you can safely call any of the others 02:26:46 the CPUs clearly know what their maximum implemented command is – why not make all the unimplemented ones return zeroes, rather than only the commands whose number is less than a particular number that you have to always have to ask for 02:27:29 oh, also all these commands have four return values, which they return in eax, ebx, ecx, edx, even though you probably only wanted one of those values (and ebx is a call-preserved register and gets clobbered anyway) 02:28:26 the other weird thing is that CPUID does a pipeline flush as a side effect, which is just strange (there are less side-effecty ways to get the same effect, and no particular reason you'd want to do a pipeline flush and CPUID at the same time) 02:29:19 maybe it's the oldest way to do a pipeline flush, and the more sensible ways only exist on newer processors 02:30:40 …actually, maybe it really is the only way, the other instructions only seem to flush subsets of the pipeline, rather than *everything* 02:30:46 still makes no sense though 02:55:25 (now I'm wondering why you'd ever want to flush the entire CPU pipeline, rather than just the bits of it you cared about) 03:06:27 Some games include solutions; that is helpful if reimplementing it in Free Hero Mesh since then the autotest mode can be used, to verify that the implementation is correct. 03:06:45 I think that the modern x86 is too complicated designed 03:08:38 I don't like how prefix-heavy the instruction set is 03:08:43 it isn't Huffman-coded very well 03:09:14 also I don't know how to feel about `lea` in particular 03:09:37 -!- sprout has joined. 03:09:49 (I think the old x86 (8088) isn't quite too bad, though) 03:13:14 it is obviously possible to do a lot better, but backwards compatibility is an important selling point 03:14:27 -!- sprout has quit (Ping timeout: 260 seconds). 03:26:28 …out of all the "move with sign-extension" opcodes, why is 32-bit to 32-bit the one with the shortest encoding? that one isn't even useful 03:26:46 and there's a note in the manual saying that you should just use a regular move instead 03:28:21 the instruction seems to have been newly added on x86-64, and they picked one of the few one-byte opcodes for *that* 03:29:06 (you can prefix it into a 32-bit to 64-bit sign-extend, but it's completely useless without the prefix) 03:41:39 -!- sprout has joined. 03:46:35 -!- sprout has quit (Ping timeout: 260 seconds). 03:49:16 -!- oerjan has quit (Quit: Nite). 03:56:18 -!- dermato has quit (Ping timeout: 260 seconds). 03:57:51 -!- sprout has joined. 03:58:05 -!- dermato has joined. 03:59:47 -!- ais523 has quit (Ping timeout: 264 seconds). 04:02:47 -!- sprout has quit (Ping timeout: 264 seconds). 04:09:53 -!- Hooloovoo has changed nick to Hoolooboo. 04:15:35 -!- sprout has joined. 04:19:41 -!- sprout has quit (Ping timeout: 245 seconds). 05:02:11 -!- Kit has quit (Ping timeout: 264 seconds). 05:02:55 -!- NotApplicable has joined. 05:03:02 -!- sprout has joined. 05:08:00 -!- NotApplicable1 has joined. 05:08:15 -!- sprout has quit (Ping timeout: 260 seconds). 05:09:16 -!- NotApplicable has quit (Ping timeout: 245 seconds). 05:42:16 -!- sprout has joined. 05:47:11 -!- sprout has quit (Ping timeout: 264 seconds). 05:59:24 -!- dyeplexer has joined. 06:17:57 -!- sprout has joined. 07:07:13 -!- immibis has quit (Remote host closed the connection). 07:07:35 -!- immibis has joined. 07:34:10 -!- Sgeo has quit (Read error: Connection reset by peer). 08:03:11 04:16:45 Simply because I prefer solving ten small levels in two hours than solving one big one. -- but the thing is that you sometimes need to drag some item from one room to another one 08:03:16 at least in XOR 08:05:49 -!- hendursa1 has joined. 08:05:59 nice fizzbuzz 08:08:39 -!- hendursaga has quit (Ping timeout: 276 seconds). 08:27:13 -!- sprout has quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.). 08:28:23 -!- spruit11 has joined. 08:30:43 -!- Guest95 has joined. 08:32:43 -!- spruit11 has quit (Client Quit). 08:33:41 -!- sprout has joined. 08:36:56 -!- sprout has quit (Client Quit). 08:37:14 -!- sprout has joined. 08:41:18 -!- sprout has quit (Client Quit). 08:42:30 -!- egelbot has joined. 08:44:20 -!- egelbot has quit (Client Quit). 08:45:12 -!- sprout has joined. 08:46:00 the most stupid thing in reddit ban is that I'm unable to add new mods to my cats subreddit -- later they'll just remove it "because being unmoderated" 08:49:50 together with inability to even report content the ban is obviously isn't something to protect the website from something bad but rather opposite -- it's a tool for admins to express their hate and to ruin the community that users build 08:56:29 -!- Guest95 has quit (Ping timeout: 256 seconds). 09:01:52 -!- Guest95 has joined. 09:18:31 -!- hendursa1 has quit (Remote host closed the connection). 09:22:56 -!- hendursa1 has joined. 09:30:45 that's a shame 09:33:53 -!- Guest95 has quit (Ping timeout: 256 seconds). 09:45:22 -!- dyeplexer has quit (Ping timeout: 260 seconds). 09:52:45 -!- sprout has changed nick to egelbot. 09:55:01 -!- egelbot has changed nick to sprout. 09:59:48 -!- dyeplexer has joined. 10:26:34 -!- nakilon has quit (Quit: rasengan did nothing wrong). 11:09:38 -!- wib_jonas has joined. 11:32:49 -!- tech_exorcist has joined. 12:23:46 -!- dutch has quit (Ping timeout: 252 seconds). 12:27:27 -!- dutch has joined. 12:34:00 -!- arseniiv has joined. 12:35:24 -!- nakilon has joined. 12:46:18 -!- SGautam has joined. 12:55:01 thanks to someone on this channel who mentioned Oracle Cloud -- I've just migrated to there from Yandex Cloud since that doesn't have server Free Tier 13:44:11 -!- NotApplicable1 has quit (Ping timeout: 264 seconds). 13:47:34 -!- Sgeo has joined. 13:51:43 -!- Thelie has joined. 14:15:21 -!- NotApplicable has joined. 14:21:48 -!- Koen has joined. 14:47:59 -!- tech_exorcist has quit (Remote host closed the connection). 14:48:37 -!- tech_exorcist has joined. 14:54:57 -!- hendursa1 has quit (Quit: hendursa1). 14:55:28 -!- hendursaga has joined. 14:58:53 -!- tech_exorcist has quit (Quit: see you later). 15:37:18 -!- tech_exorcist has joined. 16:01:58 -!- Thelie has quit (Remote host closed the connection). 16:09:45 -!- wib_jonas has quit (Quit: Client closed). 16:38:31 -!- arseniiv has quit (Ping timeout: 260 seconds). 16:53:10 [[EPL Main]] https://esolangs.org/w/index.php?diff=89067&oldid=88452 * Aboba228 * (+18) /* Hello, world Program for Windows */ 16:53:50 [[Sleep]] N https://esolangs.org/w/index.php?oldid=89068 * PixelatedStarfish * (+34) Created page with "[http://sleep.dashnine.org/ Sleep]" 17:08:22 -!- arseniiv has joined. 17:11:38 [[EPL Main]] https://esolangs.org/w/index.php?diff=89069&oldid=89067 * Timofeyka * (-18) Undo revision 89067 by [[Special:Contributions/Aboba228|Aboba228]] ([[User talk:Aboba228|talk]]) 17:14:27 -!- sprock has quit (Ping timeout: 260 seconds). 17:15:18 -!- Koen has quit (Remote host closed the connection). 17:17:26 -!- Koen has joined. 17:31:56 [[Jaune]] https://esolangs.org/w/index.php?diff=89070&oldid=88853 * CoffeeHax17 * (+115) /* Interpreters */ 17:40:35 -!- Guest8428 has joined. 17:43:12 -!- Guest8428 has quit (Client Quit). 17:44:01 -!- Koen has quit (Remote host closed the connection). 17:47:28 [[User:CoffeeHax17]] https://esolangs.org/w/index.php?diff=89071&oldid=78797 * CoffeeHax17 * (+55) /* Hi there! */ 18:05:54 -!- SGautam has quit (Quit: Connection closed for inactivity). 18:07:14 [[JSMeth]] https://esolangs.org/w/index.php?diff=89072&oldid=89036 * CoffeeHax17 * (+886) Added Tape JavaScript constructor 18:13:09 [[JSMeth]] M https://esolangs.org/w/index.php?diff=89073&oldid=89072 * CoffeeHax17 * (-27) Removed category 18:13:38 [[JSMeth]] M https://esolangs.org/w/index.php?diff=89074&oldid=89073 * CoffeeHax17 * (-2) 18:14:25 hmm 18:14:36 you can make a compiler frmo an interpreter and vice versa 18:15:29 if our platform is the language B, and the host language is L. let c : B -> L be a compiler, and i : B -> () be an interpreter (not a pure function) 18:16:53 correction c : L -> 18:16:55 correction c : L -> B 18:17:34 given a self interpreter for self : B -> (), then you can do: i'(program) = self(c(program)) 18:18:56 other way, let "i" : L be the source code for the interpreter i, then c(program) = "i"(program) 18:19:15 so the fake interpreter compiles the program and runs a self interpreter 18:19:26 the fake compiler just sticks the interpreter and input program together 18:22:21 -!- NotApplicable has quit (Remote host closed the connection). 18:22:39 -!- NotApplicable has joined. 18:25:04 i guess you can iterate this 18:25:13 are you rediscovering the futamura projection? 18:25:30 take an interpreter and make it worse/slower by adding a level of compilation and self-interpretation 18:28:55 this is much simpler and easier to implement than futamura 18:29:12 bbut it makes things worse instead of better 18:31:30 Futamura's reasoning shouldn't require a good specializer. Like, you should be able to make a slow compiler-compiler in the same fashion. 18:32:31 fair enough 18:38:11 -!- tech_exorcist_ has joined. 18:38:18 * sprout mumbles something about theory and practice 18:38:30 -!- dyeplexer has quit (Remote host closed the connection). 18:38:58 -!- tech_exorcist has quit (Remote host closed the connection). 18:40:32 say that again clearer? 18:45:08 the requirements usually differ for interpreters and compilers. the biggest difference is that for interpreters you usually want zero overhead to start interpreting, compilers it's the opposite 18:45:52 right? for a compiler you usually don't care that much that it takes minutes to compile something, with interpreters it's the exact opposite 18:46:08 [[Tiltedc]] M https://esolangs.org/w/index.php?diff=89075&oldid=89055 * Rphii * (+144) /* Disadvantages */ con: file size 18:46:57 yes that's a nice view 18:47:13 though I have to admit something like Haskell seems to be very good at marrying both requirements 18:47:19 *ghc 18:47:21 if you measure the overhead of the setup and the execution 18:47:32 that tells you whether something is an interpreter or compiler 18:47:46 more overhead in execution means interpreter, more overhead in setup means compiler 18:48:00 something like that yah 18:48:05 never thought about it this way before 18:50:23 [[Tiltedc]] M https://esolangs.org/w/index.php?diff=89076&oldid=89075 * Rphii * (+245) /* Advantages */ pro: looks (and more) 18:50:58 [[Jaune]] M https://esolangs.org/w/index.php?diff=89077&oldid=89070 * CoffeeHax17 * (+2) /* Multiplier */ Replaced code. Previous jaune programme would loop indefinitely for value 1 of 1st cell. 19:01:17 [[Jaune]] https://esolangs.org/w/index.php?diff=89078&oldid=89077 * CoffeeHax17 * (-6610) Removed common lisp implementation code. The source is very long and takes the focus away from the language itself. Please add a link with the source code instead if necessary. 19:18:00 [[JSMeth]] M https://esolangs.org/w/index.php?diff=89079&oldid=89074 * CoffeeHax17 * (+1) /* Real JavaScript implementation */ 19:30:20 sprout: I don't think that's true. you could have a high-level language that is interpreted but also requires significant preprocessing of the whole program. 19:33:40 riv: just imagine a Haskell interpreter: not only does it have to read the whole program because names can be defined in any order and referenced earlier, but also may have to typecheck the whole program to figure out what instance to use in any one place, 19:33:53 and if you use enough extensions for Haskell, that typechecking could take a lot of time 19:55:14 b_jonas: but then it would fail to meet a simple requirement for an interpreter. which is "start running the program as fast as possible" 19:55:36 which is, of course, a requirement I invented. but feels plausible 19:58:14 you can request that, but not all interpreters can do that, and there can be languages (like Haskell) where it's not possible, probably even esolangs where it's not possible even for a typical program (as opposed to only evil programs in Haskell) 20:03:25 -!- sprock has joined. 20:07:16 sure, but then I would argue those aren't interpreters in the conventional/pragmatic sense 20:07:26 let's agree to disagree 20:10:53 sprout: you can certainly say that, I just don't understand the framing where that's the distinction between a compiler and an interpreter 20:12:12 sprout: A fast GLSL interpreter typically compiles to GPU-specific native code before execution, as a counterexample. 20:12:28 emphasis on 'fast' 20:12:51 Well, your requirement is where "fast" comes from. It's not a theoretical requirement, but one borne from software engineering. 20:13:23 it's just an observation. you do care that Python doesn't spend minutes compiling scripts before you run them, for C++ not so much 20:14:31 I suppose that this is one reason why Futamura's projections are nice. They cut through this problem by showing that compilers are specialized interpreters, creating an interpreter-compiler relationship which doesn't care about relative speeds. 20:14:52 I wouldn't say that an interpreter has to begin execution as fast as possible. there might be cases where you don't want that, like maybe to achieve improved performance when the code is actually running 20:15:55 like it'd be faster to just start interpreting source code directly rather than compiling to bytecode first, but a bytecode intepreter generally achieves better performance after the initial compile overhead 20:16:19 I am going to hold my ground on this! 20:16:55 for something very simple that's executed often, you might want to skip bytecode compilation, but if it's something that only starts up infrequently and runs for a long while, the extra startup time could be worth the tradeoff 20:17:27 sprout: I agree that, as an engineering principle, an interactive environment ought to be low-latency. But there's just too many counterexamples if we try to make it formal. 20:17:54 but with a lot of stuff you can precompile the bytecode, so like a source code or AST interpreter is never really necessary afaict 20:18:14 Suppose that an interpreter sorts its input program somehow before executing (e.g. as in BASIC); would you say that an interpreter is not a real interpreter if it uses a suboptimal sorting algorithm? 20:18:19 Corbin: apart from some general observation that there's some trade-off there possibly 20:19:27 something about all abstractions go wrong 20:27:34 -!- NotApplicable has changed nick to Kit. 20:34:54 -!- tech_exorcist_ has quit (Quit: see you tomorrow). 21:39:03 -!- sprock has quit (Ping timeout: 260 seconds). 23:38:59 -!- sprock has joined.