00:00:40 very simple benchmark show that BIPLAN seems around 3 times slower than python, considering BIPLAN much simpler, it must be less efficient. 00:01:15 I mean that this is not a very good way to design P-code format, since that makes it less efficient. You can design it to be simple and more efficient, but not needing parsing; do the parsing at compile time 00:01:19 although a month ago was 9 times slower than python :) 00:02:03 I did not consider that, you are right, I could make some of the work at compile time 00:02:57 [[Tower]] M https://esolangs.org/w/index.php?diff=84615&oldid=84278 * PythonshellDebugwindow * (+67) /* Examples */ Categories 00:03:40 I probably reached a point in which the implementation is more optimized than the p-code format, yes 00:04:12 I have done P-code stuff (such as Free Hero Mesh and ZZ Zero) 00:05:17 very intriguing stuff, I am really enjoying this experiment 00:05:35 Free Hero Mesh looks really cool 00:07:18 Why you have used big numbers for the P-codes? 00:08:05 I mean why you avoid most values between 10 and 32768 00:09:03 [[User:Salpynx/n-Genus Graph Embedding]] N https://esolangs.org/w/index.php?oldid=84616 * Salpynx * (+4585) trying to test for n-genus embedding in source code, like wire-crossing problem. Experimental idea. 00:09:18 They aren't avoided; they are used for constants and stuff. I suppose you are looking at instruc.h 00:09:32 yes 00:10:05 I will read it don't want to waste your time explaining something I can undestand 00:10:35 -!- spirgel has joined. 00:10:50 See internals.doc for the list of opcode ranges that are used 00:11:13 thank you 00:12:15 For example, opcode 0x4001 pushes class 1 to the stack, and opcode 0x0200 pushes the INIT message to the stack. 00:12:59 the big difference is that I do not have a stack, this for sure 00:15:08 do you think the gain in portability and simplicity of tooling obtained by an ASCII p-code values the performance loss? 00:15:34 -!- spirgel has quit (Ping timeout: 268 seconds). 00:15:50 it is very handy to have the program as a string, it can be easily transmitted whatever is the medium, potentially even via SMS 00:15:54 [[User:Salpynx/n-Genus Graph Embedding]] M https://esolangs.org/w/index.php?diff=84617&oldid=84616 * Salpynx * (+0) /* Desargues graph */ typ0 00:16:06 It depends on the application, probably. Sometimes it is useful, other times not 00:16:40 this is not the first project in which I apply this pattern, which is probably as old as programming languages: 00:17:02 https://github.com/gioblu/BIPLAN/tree/master/src/interfaces 00:17:16 I have interfaces which abstract system calls, the thing can easily run more or less everywhere 00:17:28 Arduino Mega -> Linux 00:17:29 Using a stack makes it easier to parse and makes it unnecessary to deal with precedence, too 00:18:12 the usecase is fit a simple VM I can understand in a very limited machine 00:18:31 and have the chance to inspect it / run it everywhere I need 00:19:27 Yes, although it is still possible to improve it in many ways, although other than that it does seem a good idea for what you seem to be trying to do. 00:19:49 https://www.youtube.com/watch?v=yD2hqngGI6U&feature=emb_title 00:19:51 check this out 00:20:27 it can be re-programmed using the arduino toolchain, I could fit in there a more modern language than tinybasic and write my own applications directly in there 00:20:54 I built some arduino BASIC computers, very cool, but the language sucks 00:21:28 the arduino boards need a very slick impl, even micropython does not fit 00:21:56 so I wrote BIPLAN 00:23:02 I would be very happy to improve it, if you have any idea and will to share it I would be happy to try to implement them 00:27:32 Having separate instruction for print character, print string, and print number, also would be better I think, than using such things as "print index" 00:29:11 -!- spirgel has joined. 00:30:26 Forth is another alternative to BASIC 00:30:37 true, print does not look nice, specially because I have to carry the information of the type 00:30:50 from the bottom of the parser 00:31:23 yes, for sure better than BASIC, although I cannot work productively with that 00:32:10 `? forth 00:32:12 Since Biblical times, Forth has been the go-to language for multiplication. 00:32:48 yes, although it for sure looks intriguing 00:33:17 hehehe 00:33:27 -!- salpynx has quit (Ping timeout: 268 seconds). 00:34:04 -!- spirgel has quit (Ping timeout: 268 seconds). 00:34:11 I really miss a computer that does not need minutes to boot, and additional stuff to be able to be used for general purpose computation 00:36:36 I think the smart response, being arduino compatible is for sure a good base, with a language like BIPLAN a lot of stuff could be done, the code editor itself could be written in BIPLAN 00:37:38 I will see what happens having dedicated p-codes for the print function, thank you 00:42:04 I agree about missing a computer that does not need minutes to boot and that stuff. I also had idea of new computer system, that has BIOS and Forth in ROM, so it can just load right away and does not need a separate operating system 00:42:57 you could do that with the smart response if you have familiarity with the arduino toolchain 00:43:41 for sure is a limited machine, but that is portable and very nice :) 00:45:24 I enjoy coding since the 2000s but I still see forth a little scary, although I have probably never jumped into it or had the necessity to use it. 00:46:34 -!- spirgel has joined. 00:51:05 -!- spirgel has quit (Ping timeout: 244 seconds). 01:03:06 -!- spruit11 has quit (Ping timeout: 240 seconds). 01:04:33 -!- spirgel has joined. 01:09:18 -!- spirgel has quit (Ping timeout: 264 seconds). 01:11:46 -!- delta23 has joined. 01:21:32 -!- spirgel has joined. 01:26:29 -!- spirgel has quit (Ping timeout: 268 seconds). 01:27:54 forth is neat. needs more abstractions. 01:31:39 -!- spruit11 has joined. 01:36:38 -!- spruit11 has quit (Ping timeout: 252 seconds). 01:36:51 -!- salpynx has joined. 01:42:17 -!- spirgel has joined. 01:46:57 -!- spirgel has quit (Ping timeout: 268 seconds). 01:47:18 -!- cd has changed nick to moon. 02:00:05 -!- spirgel has joined. 02:04:43 -!- spirgel has quit (Ping timeout: 268 seconds). 02:18:32 -!- spruit11 has joined. 02:23:20 -!- spruit11 has quit (Ping timeout: 268 seconds). 02:25:13 forth is pretty clever, but it's not really done as a language for big systems. it's done as one that works decently _while being small) 02:26:50 one wonders what scaling that up might look like. 02:27:57 like, think "clojure, but for forth". 02:29:28 -!- spirgel has joined. 02:33:41 FORTH is my favorite choice for small embedded systems 02:33:42 like 02:33:54 -!- spirgel has quit (Ping timeout: 244 seconds). 02:33:56 my Propeller 2 has a FORTH in about ~12KiB of it's 16KiB ROM and it's pretty much full featured 02:35:28 in all my workings with concatenative languages, the split between "you're just using a stack machine" and "this is a lisp using reverse polish notation" gets wider and weirder the more you look around. 02:35:53 in Forth you've got a pretty explicit memory model. 02:35:57 in PostScript you don't. 02:36:03 (afaiui) 02:36:22 but you can build things out of lists/quotations in PostScript. 02:36:34 you have to decide how to build things using Forth. 02:36:45 does PostScript have stuff like Forth's "immediate words"? 02:37:20 i.e can I fit an "infix expression parser" into PostScript and use it as a DSL, I wonder. 02:38:01 I just want a categorical concatenative language. No variables or stack effects, just composition. 02:38:29 you kinda need stack effects to do any kind of expression reordering. 02:39:21 It can be done with algebra alone. Also, maybe expressions aren't a good unit of code; I want arrows/morphisms instead. 02:39:21 I guess.. what do you mean by "stack effects". 02:40:07 do you have maybe some sample of how that'd differ from an existing concatenative language? or what it'd look like syntactically and behave like semantically? 02:40:21 "categorical concatenative language" doesn't really conjure many concrete feelings for me. 02:40:29 e.g. the typical Forth has `dup`, which copies the top of stack and pushes that copy. Meanwhile, the typical Cartesian closed category has `dup : A -> (A, A)` which takes a value and returns a pair of that value, duplicated. 02:41:39 I mean, you'd then need to add things to destructure those pairs. 02:42:05 `dup first` would be equivalent to the stack effect, I guess. how do you deal with expressions that deal with multiple items at a time. 02:42:07 dup? No such file or directory 02:42:10 sorry hackeso. 02:42:15 Yes. Here's an example abomination syntax: https://bpa.st/4EXQ 02:42:41 Currying and uncurrying is the standard answer. 02:42:41 I don't understand any of that. 02:42:59 can you de-jargon that. 02:45:00 If you have a function that's applied like f(x, y) then there's an altered version f' which is called like f'(x)(y). We say that f' is the "curried" form of f, or that f is the "uncurried" form of f'. 02:45:21 This is the standard way that Cartesian closed categories deal with multiple arguments simultaneously. 02:45:52 right, I get what currying is. 02:46:06 -!- spirgel has joined. 02:46:20 you still... need a stack, though. 02:46:39 Surely to be a "curried" form it should include some cumin, turmeric, etc.? 02:46:41 like, by definition. you need to hold at least two items: the "structure" you want to work on and the operand. 02:47:41 That's just a pair. There's an arrow ([X, Y], X) -> Y for evaluation. 02:48:20 that.. doesn't really address my concern, though. 02:48:25 how are you "evaluating" this. 02:48:31 The concatenative language need not mirror the opcodes of a low-level stack machine. That's mixing language design with runtime design. 02:48:57 I dunno, I was going to throw it all into RPython and generate a JIT. I'm pretty lazy. 02:49:10 that I'll agree with, but "stack operations" map prety well to the very high-level requirements of "re-ordering data". 02:49:31 you need to be able to duplicate, erase, and re-order things. 02:49:31 -!- hendursaga has quit (Ping timeout: 252 seconds). 02:49:43 and you need to be able to handle multiple of those things at once, so where are you storing your "data". 02:49:48 I guess I don't understand the split of "you're just using a stack machine" and "this is a Lisp using RPN"; a categorical arrow is neither. 02:50:38 it's the difference between "I'm manipulating a linked list and blocks of memory" and "I'm manipulating abstract lists of symbols using a small base of primitives". 02:50:41 All of the immediate parallelism is done with pairs. This is the "monoidal" approach. It is a little silly and reductive at first, but it does work. 02:50:57 parallelism? 02:50:58 -!- spirgel has quit (Ping timeout: 268 seconds). 02:51:27 Like, multiple things at once. 02:51:29 -!- hendursaga has joined. 02:51:52 so, humor me for a second. 02:52:08 what is the equivalent of, say, 1 2 + 3 4 + * in your language. 02:52:48 and something like `dup *`, or the quadratic formula. 02:53:15 the last one usually strains people. 02:53:31 It could be as simple as `*(+(1, 2), +(3, 4))`. They're applicative trees. 02:53:44 so.. you're talking about a lisp, then. 02:53:58 Maybe? I thought that Lisps usually had names and lambdas. 02:54:06 that's not really concatenative, the syntax doesn't form a monoid. 02:54:07 I'm kind of sick of both of those things. 02:54:13 -!- spruit11 has joined. 02:54:15 yeah you and me both. 02:54:53 All categories form monoids under composition. My example syntax (both here and in the abomination writeup) goes from left to right. If I write `fg`, imagine it as `comp(f, g)`. 02:55:31 can you write that in a manner that doesn't involve explicit bracketed delimiters. 02:56:43 the point of a concatenative language is that you can stitch arbitrary program fragments together. 02:56:54 and slice them apart at any point. 02:58:42 -!- spruit11 has quit (Ping timeout: 240 seconds). 02:59:04 Stitch, yes; slice, no. Indeed I know of no Forth or concatenative language with the second property. 02:59:16 well y'do now. :P 02:59:21 mine. 02:59:45 How do you handle quotations? Definitions? 02:59:54 defining them via composition and quotation. 03:00:03 one sec, I can go into this more after a dog walk. 03:04:40 -!- spirgel has joined. 03:09:02 -!- spirgel has quit (Ping timeout: 244 seconds). 03:17:02 Culex looks interesting, and the formalism is nice to have. If there was an interpreter I'd play with it to make sure I understood it. The S and K definitions make sense (but the visible backticks in that view are distracting and breaking my concentration :) 03:22:21 It's not good, IMO. I have been frustrated the past few weeks by the fact that the last language that wanted to be categorical without names was Hagino's Categorical Programming Language. 03:23:47 I'm so tired of syntax. I hate typing. I don't understand why I have to write out the same programs that we've been writing for decades, but in Yet Another New Syntax every time. 03:24:54 back. 03:25:00 Corbin: you'd looooooove Feather. 03:25:27 lemme show you some samples! that don't work because I'm an idiot and made a destructive change to the interpreter (that salpynx is helping me unwind), but used to work. 03:26:10 https://bpa.st/ASOQ 03:27:49 Nifty. Not sure if I believe the slicing property, but I can see how it's approached. 03:28:08 the brackets are simply pieces of code. 03:28:19 rather, "words" in forth parlance. 03:28:42 [ pushes a delimiter, ] composes everything until it hits that delimiter. 03:28:42 imode: |spelling error 03:28:42 imode: | pushes a delimiter, ] composes everything until it hits that delimiter. 03:28:42 imode: | ^ 03:28:46 sorry j-bot. 03:29:25 every piece of syntax in that file can be sliced apart to yield a valid program. 03:30:18 the primitives are thin: dup swap drop left right compose quote apply ! 03:30:42 you build quotations (without any prior definitions) via compose and quote. 03:31:16 How's that first line work then? Doesn't it have `.` and `define` as primitives? Do tokens change behavior depending on context? 03:31:35 -!- spirgel has joined. 03:31:39 "define" is a primitive. "." is defined as a shorthand for "compose". 03:32:01 "define"s effect is simply "take a thing, and a symbol, and put it in the global environment". 03:32:11 it's just some shorthand. 03:33:18 I see, cool. Hope you get your interpreter working again. 03:33:30 will post it if I do. 03:33:35 it's neat to see it in action. 03:34:09 for example, just typing out 'if' in this case will plop a giant set of quotations onto the "stack". 03:34:41 that can be terminated by a "then", and actually does checks for valid syntax. 03:35:08 the if ... then ... else ... end syntax is defined on lines 161 through 194 of that file. 03:35:22 -!- Lord_of_Life has quit (Ping timeout: 268 seconds). 03:35:33 -!- Lord_of_Life_ has joined. 03:36:36 -!- spirgel has quit (Ping timeout: 268 seconds). 03:36:45 -!- Lord_of_Life_ has changed nick to Lord_of_Life. 03:44:06 Are you able to set up the log on the IRC channel I have set up for my projects too now (in a different directory, but with the same raw logs formats)? 03:45:24 (I forgot who it was, but whoever it is if they agree to set it up I will grant the +t permission for them) 03:48:05 -!- spirgel has joined. 03:52:38 -!- spirgel has quit (Ping timeout: 268 seconds). 03:55:31 -!- spruit11 has joined. 04:00:37 -!- spruit11 has quit (Ping timeout: 272 seconds). 04:03:59 -!- oerjan has quit (Quit: Nite). 04:16:23 -!- spirgel has joined. 04:21:18 -!- spirgel has quit (Ping timeout: 264 seconds). 04:32:46 -!- spirgel has joined. 04:33:24 [[User:Salpynx/n-Genus Graph Embedding]] M https://esolangs.org/w/index.php?diff=84618&oldid=84617 * Salpynx * (+0) /* Specific embeddings to demonstrate genus */ the other English 04:36:29 imode: PostScript doesn't have something like Forth's "immediate words", although it does have that you can write // to immediately replace a name by what it refers to rather than waiting for being executed 04:37:06 -!- spirgel has quit (Ping timeout: 240 seconds). 04:38:21 However, procedures are just executable arrays and can be manipulated like any other arrays, so you can do what you want with them 04:39:44 fair. 04:47:35 You can probably use it as a DSL. 04:48:40 -!- spirgel has joined. 04:52:53 -!- spirgel has quit (Ping timeout: 244 seconds). 05:06:13 -!- spirgel has joined. 05:10:18 -!- spirgel has quit (Ping timeout: 240 seconds). 05:35:09 -!- spirgel has joined. 05:39:56 -!- spirgel has quit (Ping timeout: 268 seconds). 05:52:41 -!- spirgel has joined. 06:11:06 -!- spirgel has quit (Ping timeout: 264 seconds). 06:13:03 -!- spirgel has joined. 06:14:06 [[Special:Log/newusers]] create * Rphii * New user account 06:26:50 [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=84619&oldid=84603 * Rphii * (+77) ~~~~ 06:27:22 [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=84620&oldid=84619 * Rphii * (+74) /* Introductions */ 06:28:45 -!- tromp has joined. 06:30:02 -!- salpynx has quit (Quit: Connection closed). 06:30:22 [[User:Rphii]] N https://esolangs.org/w/index.php?oldid=84621 * Rphii * (+64) First steps 06:44:02 [[Tiltedc]] N https://esolangs.org/w/index.php?oldid=84622 * Rphii * (+272) Created 06:44:05 -!- Trieste has quit (Ping timeout: 252 seconds). 06:44:33 [[Language list]] https://esolangs.org/w/index.php?diff=84623&oldid=84608 * Rphii * (+14) /* Non-alphabetic */ 06:45:37 -!- Trieste has joined. 06:47:38 [[Language list]] M https://esolangs.org/w/index.php?diff=84624&oldid=84623 * Rphii * (+14) /* Tiltedc */ 06:57:37 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 07:08:10 -!- riv has joined. 07:14:08 -!- Guest86 has quit (Ping timeout: 250 seconds). 07:27:52 -!- spirgel has quit. 07:45:34 -!- spruit11 has joined. 07:50:06 -!- spruit11 has quit (Ping timeout: 244 seconds). 07:51:03 -!- riv has quit (Quit: Leaving). 08:06:53 -!- hendursa1 has joined. 08:10:10 -!- hendursaga has quit (Ping timeout: 252 seconds). 08:14:57 -!- Sgeo has quit (Read error: Connection reset by peer). 08:19:15 -!- spruit11 has joined. 08:24:18 -!- spruit11 has quit (Ping timeout: 264 seconds). 08:41:14 -!- Guest86 has joined. 08:46:42 -!- Trieste has quit (Ping timeout: 240 seconds). 08:48:45 -!- Trieste has joined. 08:50:53 -!- tromp has joined. 08:51:20 [[Language list]] M https://esolangs.org/w/index.php?diff=84625&oldid=84624 * VilgotanL * (-14) remove duplicate 08:52:19 -!- spruit11 has joined. 08:57:11 -!- spruit11 has quit (Ping timeout: 252 seconds). 08:58:04 [[Tiltedc]] https://esolangs.org/w/index.php?diff=84626&oldid=84622 * Rphii * (+8) added return value for cleaner C code 09:10:42 -!- Guest86 has quit (Ping timeout: 250 seconds). 09:39:07 -!- imode has quit (Ping timeout: 244 seconds). 09:51:46 -!- spruit11 has joined. 09:54:09 [[Tiltedc]] https://esolangs.org/w/index.php?diff=84627&oldid=84626 * Rphii * (+34) adjusted description 11:18:01 -!- spruit11 has quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.). 11:21:01 -!- fizzie[m] has joined. 11:27:54 -!- spruit11 has joined. 11:28:59 [[Esolang:Community portal]] M https://esolangs.org/w/index.php?diff=84628&oldid=84571 * Fizzie * (-65) /* IRC */ Make Matrix note less tentative, since it apparently works. 11:29:07 [[-]] N https://esolangs.org/w/index.php?oldid=84629 * Grs * (+480) Created page with "- is a joke esoteric programming language by ~~~. The language will deny everything the programmer tells it to do, except... == Command == {| class="wikitable" |+ Command |- !..." 11:30:23 [[User:Grs]] https://esolangs.org/w/index.php?diff=84630&oldid=84548 * Grs * (+7) 11:48:39 -!- Trieste has quit (Ping timeout: 272 seconds). 11:51:41 -!- Trieste has joined. 11:59:11 -!- tech_exorcist has joined. 12:14:57 -!- delta23 has quit (Quit: Leaving). 12:21:16 [[Column]] M https://esolangs.org/w/index.php?diff=84631&oldid=84427 * PythonshellDebugwindow * (+28) /* Interpreter */ See also 12:26:18 Corbin: have you ever heard of Joy? 12:27:19 * jedb makes a note to ask imode too when he gets back online 12:32:10 [[Tiltedc]] M https://esolangs.org/w/index.php?diff=84632&oldid=84627 * PythonshellDebugwindow * (+163) See also/ext. res. 12:35:36 [[-]] M https://esolangs.org/w/index.php?diff=84633&oldid=84629 * PythonshellDebugwindow * (+241) /* Implementation (there is none yet) */ Implement cats 12:37:06 Heh, apparently in-order delivery of messages is still a hard problem: https://zem.fi/tmp/order.png 12:37:07 Yeah. Also Cat and Kitten. Cool ideas for sure. 12:39:09 [[Python is Magic]] M https://esolangs.org/w/index.php?diff=84634&oldid=84454 * PythonshellDebugwindow * (+48) /* Implementation */ Cats 12:42:10 -!- arseniiv has joined. 12:42:31 -!- spruit11 has quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.). 12:44:28 -!- wib_jonas has joined. 12:45:55 just wanted to ask because that immediately comes to mind when you see some people talking about the gap between Forth and Lisp 13:17:05 I'm logreading. sorry, but "I am working since 2017 to some sort of esoteric language, I was wondering if this is not off topic" makes me laugh 13:17:34 I guess the topic now says "esoteric programming proselytization, propagation, and pronunciation" so it's not that obvious 13:19:07 * jedb tends to be more interested in obscure research languages rather than outright esoterica 13:19:38 except for TURKEY BOMB 13:19:43 that one will always remain my favourite 13:26:50 anyway, Guest86 who is working on https://github.com/gioblu/BIPLAN : yes, this is on topic enough on this channel that you can definitely ask about it on this channel. \ 13:28:27 I don't care too much about programming on devices with little RAM, but from what I understand there's a distinction that you have to make here. BASIC and Forth was used on old personal computers (and later programmable calculators) for when you want to write the program directly on that device, you don't have a different computer with more RAM to 13:28:28 compile on. they make more sense for that, though even then some parts of BASIC are outdated. 13:29:12 you seem to want a language that you compile to a bytecode on a separate computer with more RAM. that's a good thing, and it makes sense that you want something better than BASIC for that. 13:30:30 in such a language, you can afford real named local variables, long identifiers for every label, subroutine, variable, since the names don't end up in the RAM, a structured syntax that is parsed on the computer and possibly some jumps turned to jumps with byte offsets embedded in the byte code, etc. 13:30:43 -!- Guest86 has joined. 13:30:51 I don't know what existing tools are available for this, again because I don't work on such computers, and everything has a lot of RAM these days. 13:31:35 which computers? 13:31:39 I just have the one complaint that "I really miss a computer that does not need minutes to boot" is an unfair comment if you are compiling the code on a separate computer. how quickly can you boot and transfer the compiled program to your small device? 13:32:01 Guest86: on the computers with 16K or 64K RAM, the ones you want to target here. I don't work on those. 13:33:22 well, except for the part where I would still like to find out how the heck Game Boy games implement animated tiles, because from what I know the hardware isn't capable of that, e.g. is there special address translation logic for it on the cart or something, but so far I haven't found the right person to ask this. 13:34:27 wib_jonas I do not compile the program on a separate computer, the whole point of BIPLAN is to have a virtual machine able to run in small computers, that uses a modern programming language 13:34:44 I have written a few programs on a BASIC-programmable calculator with exactly 2K RAM, but that was like 20 years ago. 13:34:49 both compiler and interpreter can fit in the same arduino micrococontroller 13:35:10 Guest86: oh? the compiler is on the arduino and you enter the source code form there? ok, then I want to see the details 13:35:17 :) 13:35:38 you saw the video I linked? 13:35:53 I'd prefer to read than to watch video, but I might look at it later 13:36:04 https://www.youtube.com/watch?v=yD2hqngGI6U 13:36:15 this is my preferable target, with the addition of networking 13:36:51 BIPLAN runs also on linux because I did it to be portable, development would have been a real PITA on the arduino 13:37:34 also runs on linux => sure, you can port it to a computer with much more RAM 13:37:43 see also what rob kai does with simple arduino boards and tinybasic: https://www.youtube.com/watch?v=C66ceBc0ne8 13:38:15 imagine that thing running BIPLAN, which by far more modern, with a simple editor like nano 13:38:46 that "SMART Response XE" calculator, how much RAM does it have? 13:39:42 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 13:40:16 ATmega128RFA1 processor with 128k RAM, 4k EEPROM, and external 1Mbit memory chip. 13:40:33 you can imagine what you can do with that? that is very very cool 13:41:20 128K of ram. that's much better. 13:41:33 and an external 1M memory chip, much better 13:41:47 I could write the compiler in BIPLAN and store it in the memory chip 13:42:18 and there would be a lot of space for user defined apps/programs 13:42:47 that could also be just BIPLAN 13:42:49 sure, but it's 1 megabyte. I have run Windows and compilers on 1 megabyte. that's much easier. 13:43:00 it's a bit tight for all that, I admit 13:43:08 no that's mega BITS sadly 13:43:17 oh, 1 megabit? then no 13:43:36 that's only 128 kilobytes 13:43:48 so only as much as the built-in memory 13:44:18 well yes, it makes sense if you want to build some kind of bytecode compiler for conveniently programming that 13:44:40 especially since that device has a keyboard that looks nice (I can't tell how usable it is) and enough keys 13:45:12 it also has 128k of internal flash memory where I could store the compiler and the interpreter 13:46:57 so all in all there is 128k of flash and 128k of external memory chip 13:47:16 BIPLAN already gets translated in byte-code or p-code 13:47:31 -!- Sgeo has joined. 13:47:33 so, the compiled program does not occupy a lot of space, for sure better than plain basic 13:47:48 -!- Sgeo|web has joined. 13:47:51 -!- Sgeo|web has left. 13:48:34 for now BIPLAN looks around 2.5 times slower than python and an order of magnitude faster than tinybasic 13:49:37 I agree about the keyboard. 13:50:18 I would be happy to be able to compute stuff with my own language in an air-gapped machine I can more or less fully understand. 13:52:35 these small devices are cool, I just can't keep up the enthusiasm when I have a compact camera with hundreds of megabytes of RAM in it (admittedly it also costs about as many euros as it has megabytes of RAM), a computer with 32 gigabytes of RAM at home (that one was proportionally cheaper), and a computer with 16 gigabytes of RAM at work. 13:53:34 Guest86: "does not occupy a lot of space" => but can you then debug and edit that compiled program even if you don't have the source form? 13:54:06 because if you do have to keep the source form, then there's not much point for the space reduction, or you can't claim that it's programmed on that device, one of that. 13:54:25 I think the best way to do that is to keep both versions 13:54:29 but you can have space reductions if you can compress it in a way that still lets you edit, like storing each identifier name only once and a special editor 13:54:39 (also compressing all the keywords obviously) 13:54:46 that is a better idea I agree 13:54:57 if you keep both versions, that's fine if you have enough RAM for that, but it doesn't really save you space. 13:55:17 compiling can still makes sense if you can run the program easier with precomputed jumps, admittedly 13:55:20 the compilation process is mostly done to gain speed, more than space 13:55:26 and precomputed lexical variable addresses 13:55:28 yes 13:55:38 but yes, I agree with you 13:55:48 the source does not need to be in ram 13:55:54 the bytecode yes 13:56:16 I mean, when the interpreter reads the byte-code, it must be in ram when the source is compiled for sure 13:56:26 you could perhaps even do both, with a specialized source editor, it might still make sense if you only have 128KB or twice 128KB of ram 13:56:47 I think it may have sense I agree 13:57:13 for now I do not see many computers of this sort with the features I described 13:57:21 I would have bought it :) 13:58:42 what you describe looks like a sort of de-compiler? 13:59:48 then user defined apps (calculator, games, messanging, ecc.) could be recalled by the buttons around the screen, 14:00:12 or by a keyword 14:00:31 those could be themself be written in BIPLAN in the same machine that will run it 14:00:42 that's the whole point :) 14:01:23 I teach at youngsters how to code, a thing of this sort would make them interested I think. 14:02:19 also, being the byte-code just an ascii string, it will be easy to transmit/share that even if the machines are very different 14:03:02 and also they could just ready the byte-code as a text file, without additional tooling, that was very handy for me while making BIPLAN 14:03:34 Guest86: not quite a decompiler. at least I don't think it's called a decompiler but you can call it that. the difference is that you'd deliberately make the compiled form usable for re-editing, eg. you would store the name of every local variable name (possibly compressed, and only once) 14:03:55 yes, that is a very good idea 14:04:17 "I teach at youngsters how to code" => that's another different scope, you might want a simpler but not that good system for that, and it can be worth to waste RAM for it 14:04:41 the youngsters these days can learn coding on a computer with gigabyte sized RAM, even if the program they write could fit on a simpler system 14:04:55 I have been able to spark some interest in them for VMs I also have made BIPLAN with them in some lessons 14:05:37 in my opinion removing complexity under the carpet and show them a very radical and simple construct makes them more aware of what effectively they are looking at 14:06:07 IIRC, TI-BASIC (which definitely won't win any performance awards) gets stored in a mildly tokenized but still editable form by the built-in editor. I think that's pretty common for BASIC implementations? 14:06:36 ciao fizzie, yes, I think at the time was called tokenization if I am not mistaken 14:07:08 And fungot's brainfuck interpreter generates an intermediate form with +-<> run-length-encoded and [] jump targets pre-calculated, which the ^show command then reverses. 14:07:09 fizzie[m]: uh. except that the bf functions aren't in memory. a list of categories to categorize each language ( sorry for only tangentially being on-topic) ' ( for-syntax fnord)) fnord)) 14:08:14 more or less in BIPLAN happens more or less the same: 14:08:18 ... I don't think fungot's bf interpreter would be the best example for how to use a small device with a keyboard to write cool programs on it, or to teach programming to youngsters, but maybe I'm closed minded and traditional 14:08:18 wib_jonas: please read thi. it's incredible what can be done,,,and everything else is just being lame and scheme48 got it right 14:08:26 `coins 14:08:33 ​thrcoin befcerecoin heracoin orcystacoin gemorseyecoin entumcoin adecoin ferricoin cycliccoin myxosomniacoin blakkarnajord!cpucoin cramocoin heatecoin gracoin lighflcoin karcoin troncoin rceceivecoin luidcoin yamcoin 14:08:46 print fibonacci(40) 14:08:46 stop 14:08:47 function fibonacci($n) 14:08:47 $a = 0 14:08:48 $b = 1 14:08:48 $next = 0 14:08:49 for $r = 0 to $n - 1 14:08:49 $a = $b 14:08:50 $b = $next 14:08:50 $next = $a + $b 14:08:51 next 14:08:51 return $next 14:09:03 compiled in: 14:09:05 p~#(40)xf#($$)$%0$&1$#0@$'0,$$-1$%$&$&$#$#$%+$&nr$# 14:09:47 fungоt: no, it's not incredible what can be done, and nobody does anything interesting with *your* brainfuck interpreter. the befunge interpreter that you run on might be a better example. 14:10:25 Geust86: yes, we can read the example from https://github.com/gioblu/BIPLAN , please don't paste the whole thing here 14:10:48 sorry 14:10:51 unless perhaps you run an interpreter bot on IRC, in which case still please avoid pasting many line long code 14:11:34 are the rules of the chat available somewhere so I can avoid breaking some again ? 14:12:51 As for small devices and teaching youngsters, there was that BBC micro:bit project as a modern spin of that. But I think as far as languages go it was "by default" just MicroPython, boringly enough. 14:13:41 my students love BASIC, but hate python, they even prefer to that C or javascript 14:13:43 O_O 14:13:45 rules for IRC? not really, it's all a silly traditional community that doesn't tell about its own rules. the only definite rule is that if you make full logs of a channel that you want to publish, you have to advertise that in advance. which we do advertise on this channel, in the topic. 14:14:15 17:13:41 my students love BASIC, but hate python 14:14:17 good students 14:14:25 Guest86: do they hate real python or the micropython thing? 14:14:32 real python 14:14:38 I have not used micropython still 14:14:41 to teach them 14:14:54 don't teach them bad languages 14:15:03 I see they are already willing to learn languages 14:15:10 let them chose 14:15:22 they go mad because of the many versions of the same language, and struggle finding the right docs 14:15:33 about python 14:15:39 well I for one want my user-defined structured data, and a library function to sort data on any key, and the BASICs that I occasionally program make both of those really hard 14:15:59 even finding specific version docs won'thelp them, since those docs are awful 14:16:00 Guest86: show them all the many versions of BASIC 14:16:03 -!- tromp has joined. 14:16:05 even pushing data into an array looks ugly in the BASICs that I use 14:16:26 Guest86: instil in them an early appreciation for language standards! 14:16:28 "struggle finding the right docs about python" => can they read English? 14:16:39 I agree BASIC is not the right way to teach the how to think algorithmically, considering the presence of line numbers and vast use of gotos 14:16:53 Guest86: we have done away with the line numbers long ago 14:17:08 nor do we have to use gotos, we have proper structured while and if blocks now 14:17:10 doesn't basic have functions? 14:17:12 we don't live in the nineties 14:17:16 functions too, yes 14:17:17 nothing wrong with a well placed goto 14:17:30 true too 14:17:36 it's structured data that basic still haven't really learned how to handle 14:17:59 if your students have a BASIC where it's easy to sort an array of pairs of numbers, then it's fine that they love it 14:18:09 there are BASIC dialects that are sane enough for that 14:18:20 yes there are functions, but for many of them goto is a simpler concept to understand, and they end up always using it, and I must fight it in most cases 14:18:22 though I'd prefer if pushing into an array was also easy enough 14:19:15 Guest86: yes, I have an example task that tries to teach you to use functions. it doesn't work, students don't realize that it's supposed to teach that. I should try to be less subtle. 14:19:16 I end up designing with them how array work in BIPLAN, they for sure learned how it works, they participated to the design 14:19:21 let them learn 14:19:57 by writing code in whatever style/way/instructions they want to 14:20:14 until they see in practice how they all compare to each other 14:20:20 I might tell you some of those tasks just to see what you think of them 14:20:21 yes, I agree that is fundamental, although many of them are super disorganized and forget syntax heheh 14:20:38 Guest86: forgetting syntax is not a problem, that's what computers are for, remembering stupid stuff 14:20:42 you learn it if you use it enough 14:20:54 yes, that is for sure true 14:21:19 as long as you have a sane language where it's not easy to get a silently wrong program or misleading error message if you think the syntax is slightly different from what it actually is 14:21:28 I must say, they are smart, they understood closures in one lesson (using javascript) 14:22:16 the course is almost finished, we are now doing closures in the BIPLAN interpreter implementation 14:22:42 I am traditional, I don't think closures are all that important in the practical sense. I do use them occasionally, but rarely in a way where they outlive the scope of their outvalues. 14:23:03 they are working on enabling the interpreter to find a function definition and jump until the call is found... although they still have not seen they need a end function symbol to achieve that, I hope they will notice it before running the impl 14:24:37 I agree with you about closures, I thought it could have been a good way to let them work on their internal abstract thought engine 14:26:06 I come from development, but really enjoy to teach, this is the second year, by far the best job I did for now, very refreshing 14:29:35 how young are the youngsters? 14:30:04 wait, have I already asked that? 14:30:08 14-18 14:30:42 no, I asked if they can read English instead 14:31:05 thanks 14:31:10 obviously who is 14 reads english less good 14:32:14 BASIC works well for classes of very young people, javascript and c are liked by the older ones 14:32:46 none of them like python, I have tried lisp with the oldest without any success 14:33:16 you teach C to 18 year olds? isn't that considered a bad idea? 14:33:25 why? 14:34:37 well I already mentioned the array sort thing, but also it's useful to have automatic checks for out of bound indexes. which, by the way, javascript is also terrible at, but at least it just silently returns the wrong thing instead of possibly overwriting memory that doesn't belong to the array in the worst case. 14:35:40 I insist a lot on the bounds' consistency of their algorithms, I hope I will spare them the time I lost myself 14:36:15 python is sort of better, though it's also not perfect in this respect, because it will still silently tell me the wrong value for small negative indexes 14:36:21 some of them are pretty good at c, one of the students is already working part-time using c in the afternoon, I must say, that is nice to see 14:36:23 why can't languages still get this right? 14:36:54 BIPLAN throws an error if you go out of bound hehe 14:37:42 I agree with you, being that just an experiment is crazy to see that stuff in production we use daily still does not do so 14:37:56 Guest86: ok, but again the sort thing. most programs I write do either a lot of array sorts or dictionary lookup. you can reduce some of those, but if you don't have a convenient way neither for sorting nor for dictionary lookups (and yes, I can do both in C if I really want to, but it's not so easy as in a high level language) then it does suffer 14:37:56 for an educational language. 14:38:02 here in Russia current generation is raised by people who lived in a country that was leading in half of technology fields, had own computers, etc. not all people needed to know Englsh because our own school was good enough; but after the collapse the free education is gone, the culture of respecting knowledge and science is gone, people have no 14:38:03 way to keep up with new techonologies on their own but the old tradition that "knowing only Russian language is enough" remains -- people fool themselves 14:39:16 naklion: well, the computer designs were cloned from the West and so lagged behind, so I don't think "leading in half of the technology fields" is that appropriate, but sure 14:39:25 wib_jonas I may see what you mean, you miss in BIPLAN the concept of a list or the iterators python exposes? 14:39:38 nakilon, I have a couple of Delta CA 14:40:05 those are by far the best z80 based computers I have ever used. 14:40:33 the keyboard and the editor are pure sci-fi if compared to the spectrum or the msx 14:40:36 b_jonas we even had ternary computer though 14:41:28 Guest86: heck no, not iterators in particular. I just want an easy way to create a new array, push new items into an array, possibly sort the array on the keys of my choice and possibly backwards on some keys, and then look up items by index or iterate on items or search by sorted key, and all this if the values can be structured with multiple 14:41:29 fields, some of which can be varible length arrays or strings. 14:41:49 incredible what you were able to do, it must have helped to be on the other side, reverse engineering must have been a daily job in many sectors of IT at the time of gorbachev 14:42:40 I can do all of that in C if I really want to, but I don't want to spend my time on that, so I use languages that make this easy; and most of the time I write code where the execution time isn't critical, so I can live with less efficient design, but in the few cases when I know I need my code to run fast, I do also know how to optimize it 14:43:37 and if I do an out of bounds access, I want my program to die with an error message with source code location 14:43:42 and then I fix my code 14:43:58 same on all the assertion checks that I sprinkle my code with 14:44:27 half of my code is checking the other half because that helps me develop programs better, I don't have to handle all cases that might be in the data, the rest can give an error and then I can write the code for the cases that actually occur in my data 14:44:30 students have to implement this stuff at least once to then use some higher languages of their choise but knowing what's under the hood 14:44:31 occurr 14:44:55 no, "occur "was right 14:45:00 drat 14:45:21 it's "occur" but "occurrence" 14:45:38 BIPLAN is all statically defined, strings, variables and arrays are just very big indexed registers 14:45:53 nakilon: no, I don't see the point of students starting with implementing the low level stuff like that. they can learn how it's done later. 14:45:55 very difficult to implement the first part of your suggestion 14:46:06 I don't agree jonas 14:46:10 they won't learn later 14:46:12 I have a friend in SAP 14:46:21 yesterday was here, I showed him BIPLAN 14:46:28 nakilon: most of them don't *have* to learn later, most won't have a work where they write programs 14:46:34 they'll keep living with flawed understanding of how computers work and will refuse to learn the truth, it's psychological 14:46:35 he was not able to visualize how C code could execute BIPLAN and what was doing what 14:46:47 my students are able to visualize that, it took some lessons, but now they are able 14:46:47 we teach the basics to lots of people because we don't know which ones of them will want to program, and they don't know yet either 14:47:43 I mean, they know that the python keyword in the console is a c program that does the same we did with BIPLAN, they know about the python bytecode 14:47:58 my friend that works in the industry doesn't, and uses python every day 14:47:59 if someone won't code in future then it would be nothing bad in teaching them low level anyway 14:48:08 nakilon: what I do want to teach, to all the students, even the ones who won't end up programming, is to understand what a computer can do and what it can't do or can perhaps do but it's hard, in case they might want to ask someone else to program something, so they have an idea for whether they're asking easy or hard things 14:48:37 so that they can ask early to automate the things that they spend lots of work on doing manually even though they would be easy to automate 14:48:43 for sure thsat is important wib, I agree 14:48:48 most people who work with computers don't seem to understand that 14:48:53 you won't understand what computers can and can't do, and what approaches are effectiev or not, if you don't teach the low level 14:48:59 and that's why they can't help me in my work, where I'm the guy who automates things 14:49:13 so I end up having to ask them what they are doing and tell them which parts would be how easy or hard to automate 14:49:19 and then automate the easy parts 14:49:22 it saves time 14:49:55 nakilon: that might depend on what you mean by "low level". 14:50:16 in any case BIPLAN is just a caricature of what python does, it is just a couple of thousands lines, compiler and interpreter 14:50:32 managers who were not taught how computers work today are throwing gygabytes of RAM and a block of 4 videocards to just solve a single quadratic equation that can be solved within a nanosecond 14:50:51 actually implementing a sorting algorithm or lookup in a sorted list is not a useful thing to have these people spend their time on; making them understand that you can search quickly in a telephone book or find matching names or missing names between two sorted telephone books is useful 14:50:59 but I think is for sure educational, I have tried to show them inside cpython, they asked, but it was impossible to exctract much from looking inside, their attention span is small 14:51:46 nakilon: "throwing gigabytes of RAM" => those are the people who do write programs. that's an important challenge too, but not really my target here. 14:51:54 for sure it is scary to see how slow is python, I mean, how can BIPLAN be in the same order of magnitude? 14:53:04 I mean I call atoi on numeric values, they are written in as strings, how can that be approaching python performance? 14:53:39 -!- spruit11 has joined. 14:53:50 "language runtime speed "comparison is what matters the least 14:54:14 nakilon what you mean? 14:54:36 with minimal edits you can reimplement almost any language in any another lagnauge changing the perfomance by magnitudes 14:54:44 that must be a term to estimate the performance envelope 14:54:59 programmer shouldn't care about his language speed 14:55:03 I am implementing BIPLAN in c, and comparing in to the C python interpreter 14:55:34 the only speed that matters is how quickly he can get things done 14:55:57 you mean the coder who uses the language? heheh 14:56:10 and tehre he struggles with shitty docs, shitty syntaxes, shity stdlib, shitty sommunity, etc. 14:57:33 also you implement pieces of your application in different langauges 14:58:13 wib_jonas I understand your point, that for sure is a big part of the role of a teacher. And I agree the teacher must not fall in love with implementation detail or they will get bored 14:58:37 you mean that the compiler is c++ and the interpreter is c? 14:59:59 -!- imode has joined. 15:02:21 -!- immibis has quit (Read error: Connection reset by peer). 15:02:43 -!- immibis_ has joined. 15:03:09 Guest86 if that's a question on my last line then no, I mean the whole product of any kind usually is made of pieces written in different languages 15:03:24 ah sorry 15:03:55 for sure the industry is a very complex ecosystem of different languages and implementations 15:05:31 I read the story of this chat and the whole recent mess, it looks to have no sense, very strange. 15:52:51 Guest86: yes, welcome to #esolangs 15:53:06 `welcome Guest86 15:53:08 Guest86: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: . (For the other kind of esoterica, try #esoteric on EFnet or DALnet.) 15:53:29 Guest86: also you might want to choose a more expressive nick than Guest86. 15:53:48 You can use the /nick command to change your nick, or choose a nick when you start the webchat client 15:55:11 -!- wib_jonas has quit (Quit: Client closed). 16:14:10 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 16:20:36 -!- tromp has joined. 16:28:45 [[User:Majorcob]] https://esolangs.org/w/index.php?diff=84635&oldid=84595 * Majorcob * (+7) /* Truth-machine */ 16:28:53 [[School]] https://esolangs.org/w/index.php?diff=84636&oldid=84610 * AceKiron * (+219) 16:32:30 -!- Guest86 has changed nick to [O_O]. 16:32:51 <[O_O]> this really reminds me my childwood 16:33:13 <[O_O]> when people was fighting to find the weirdest nick on iirc 16:35:23 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 16:52:06 These newfangled networks with all their fancy "services" make IRC wars completely different though. It used to be all about channel takeovers, and expending a lot of effort trying to get clients and/or bots on as many servers as possible, at least where I was. 16:52:56 [[User:ZippyMagician/Ideas]] M https://esolangs.org/w/index.php?diff=84637&oldid=76438 * ZippyMagician * (+68) Change ideas 16:57:57 [[Language list]] https://esolangs.org/w/index.php?diff=84638&oldid=84625 * ZippyMagician * (+53) Add two esolangs I forgot to add before 17:00:31 [[Arsm]] M https://esolangs.org/w/index.php?diff=84639&oldid=80680 * PythonshellDebugwindow * (+13) Lower 17:01:21 [[Arsm]] M https://esolangs.org/w/index.php?diff=84640&oldid=84639 * PythonshellDebugwindow * (-2) Fix name 17:03:29 -!- tromp has joined. 17:04:15 <[O_O]> one question 17:04:27 <[O_O]> is this implementation approach of the function call in an interpreter sane? 17:04:28 <[O_O]> https://github.com/gioblu/BIPLAN/blob/master/src/BIPLAN.c#L514 17:05:19 <[O_O]> I mean, I recursively call bip_expression that may be another function, so the overhead that would have gone in the vm stack (which BIPLAN does not have) is pushed on the stack of the real machine 17:06:20 <[O_O]> I do not see a better way to do it for now without adding a lot of complexity 17:13:46 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 17:17:38 -!- Guest20 has joined. 17:18:19 -!- Guest20 has quit (Client Quit). 17:20:37 fizzie[m]: yeah, right now I'm trying to figure out how you're even supposed to give anyone channel ops without a race condition if there are no service. do you have to set a ban on their nick!user@host, then wait until that propagates to every server, then give them channel ops with a full nick!user@host, then remove the ban? 17:21:39 or are channel ops only supposed to connect from IP addresses that they use alone or control the identd so that nobody else can fake their hostmask? but I don't think the serviceless IRC servers care about their identd. 17:24:42 -!- immibis_ has quit (Remote host closed the connection). 17:25:07 -!- immibis_ has joined. 17:29:43 [[Qoibl]] M https://esolangs.org/w/index.php?diff=84641&oldid=84563 * Toxinite * (+90) 17:52:06 -!- tromp has joined. 18:02:07 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 18:06:20 -!- Guest5 has joined. 18:07:56 -!- Guest5 has quit (Client Quit). 18:13:24 b_jonas: IME, I feel mostly that was dealt with by per-channel bots that handled giving ops in response to a password (sent via private messages). 18:14:15 IRCnet does do the "~ in username means no identd" thing. 18:14:58 And a lot of people did connect using Unix shell accounts hosted by either an ISP or a university, where spoofing identd would have been tricky. 18:16:28 I seem to recall I had a runaway ircII script temporarily DoS the shell server of one of the smaller Finnish dialup ISPs, because they didn't really have any enforced resource limits on it. 18:18:37 -!- tromp has joined. 18:30:27 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 18:31:43 [[FolderCode]] M https://esolangs.org/w/index.php?diff=84642&oldid=84428 * Dominicentek * (+18) 18:32:08 [[Column]] M https://esolangs.org/w/index.php?diff=84643&oldid=84631 * Dominicentek * (+18) 18:33:19 [[School]] https://esolangs.org/w/index.php?diff=84644&oldid=84636 * AceKiron * (-46) /* Functionality */ 18:33:48 -!- tromp has joined. 18:34:48 [[Special:Log/newusers]] create * CodyNinja1 * New user account 18:35:21 -!- tromp has quit (Client Quit). 18:36:11 fizzie[m]: yes, but how do the ops give channel op to anyone withotu a face condition? 18:36:30 if there is an identd for the whole public IP, then yes, then that works 18:37:04 but I don't think that eg. my employer's NAT has an identd... I have never really tested it, I admit 18:39:12 [[School]] https://esolangs.org/w/index.php?diff=84645&oldid=84644 * AceKiron * (+526) /* Functionality */ 18:39:38 and yes, I know NATs weren't so common back when IRC was invented, and nobody used cryptography etc 18:43:52 [[School]] https://esolangs.org/w/index.php?diff=84646&oldid=84645 * AceKiron * (+110) /* Functionality */ 18:43:56 good old IoT... Internet of Trust 18:44:23 `grWp freenode 18:44:25 advertisement:Advertisement starts: have you heard about this hip and froopy 'net place called #esoteric? It is on freenode. Brought to you by The Board of Timeskewed Advertiesements. \ e:e is a freenode admin. e is not known to be an Agora player. \ freenode:The Realm of Freenode is our homeland. The Chännel dwells in it since... Uhm... Quite a few years ago? 18:45:19 somehow, that entry on `e` is again true... 18:51:17 `learn Libera has always been our homeland. The Chännel has been dwelling in it since the beginning of time. Any rumors about another network called "freenode" are compleetely bogus. 18:51:21 Relearned 'libera': Libera has always been our homeland. The Chännel has been dwelling in it since the beginning of time. Any rumors about another network called "freenode" are compleetely bogus. 18:52:21 `slwd freenode//s=is=used to be=;s=dwells=dwelled= 18:52:24 freenode//The Realm of Freenode used to be our homeland. The Chännel dwelled in it since... Uhm... Quite a few years ago? 18:53:00 `rm ../wisdom/e 18:53:02 No output. 18:53:34 any guess whether "Advertiesements" is an intentional typo? 18:57:23 -!- brainfunnel has joined. 19:09:40 I think identd in general used to be much more prevalent. At least the shell servers I had accounts on were running it. 19:10:35 Also, you were incentivized to run an identd by getting more permissive I:lines from ircds. 19:16:25 Interesting, looks like at least two Finnish ISPs are still running (IRCnet) IRC servers; irc.elisa.fi and irc.nebula.fi. 19:23:19 -!- tromp has joined. 19:23:55 fizzie[m]: hmm yes, that's true, I think I saw a MOTD on ircnet that says multi-user shell servers are allowed only if they run identd. 19:24:22 I will check my employer's ipv4 NAT when I'm in there, but I don't think they run identd 19:24:24 int-e: My guess is it's an unintentional typo, but I don't know for sure. 19:24:38 i know irccloud runs an identd, but i imagine they're one of the few places that actually does 19:25:13 pikhq: yes, but they're specifically a massive IRC proxy, not a generic NAT for the employees on which most people don't use IRC 19:25:27 I no longer have an account on any shell server other than VPSes I personally administer. Feels slightly odd. :/ 19:25:49 yeah -- it's one of the use cases that identd still makes _some_ sense for 19:27:59 This Matrix/Libera bridge app server doesn't seem to run an identd, so everyone's got a ~ on it. 19:28:30 I mean I don't see how they could even run a meaningful identd, when they have a single wifi password 19:29:32 they can know the identity of my work laptop, because that's a laptop owned by the employer, but anyone can also connect to the wifi from any other computer, and even the ethernet, ethernet just needs a bit more physical proximity 19:29:57 You can have a forwarding identd setup (oidentd at least supports that) for a NAT, but that's stretching the definition of "meaningful". 19:30:01 I normally connect through ethernet because I'm old-style, but I have used the wifi a few times 19:30:20 fizzie[m]: yes, but then I can run an identd on my own laptop that lies anything, and so can the attacker 19:30:28 the attacker who wants to get the same hostmask that is 19:31:12 I've got fungot running on a (virtual) system that has a dedicated public IPv6 address but a NAT'd IPv4 one, so it's fungot!~fungot@... when connecting over IPv4 but fungot!fungot@... when connecting over IPv6. 19:31:12 fizzie[m]: python's module system wreaks havoc with static compilation and doesn't have much practical value, and no registers, it has own scheme dialect which supports optional types. similar to dylan. 19:31:32 (Because I run it at home, and my ISP only gives out a single IPv4 address, unsurprisingly.) 19:32:18 also I just talked to the sysadmin about how their SVN proxy is broken and doesn't forward file copies to the internal network, and it turns out the machine that handles that proxying runs some simple software that they can't configure to do the kind of URL rewriting that has two URLs in the same query 19:32:33 I'm actually kind of surprised that commits even work through that proxy 19:33:09 so I sort of don't think that they would do identd forwarding, that would also require specific protocol parsing 19:33:32 the workaround is that I'll have to set up a VPN and use SVN through that by the way 19:34:07 fizzie[m]: yeah, I also never tested whether the IPV6 is natted too 19:34:15 I should check that too 19:37:44 (Also, while I'm no Python expert, I don't think what our channel mascot said about the Python module system is true. Or coherent.) 19:39:20 yes, the module system isn't particularly relevant for why python is too dynamic to be typeable statically 19:40:17 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 19:41:47 although ruby is even worse 19:45:43 python is at least sensible enough to not allow just arbitrarily redefining the methods of built-in types. but it does allow redefining builtin functions. 19:55:52 -!- arseniiv has quit (Ping timeout: 268 seconds). 20:05:52 -!- riv has joined. 20:06:44 -!- Thelie has joined. 20:14:02 -!- arseniiv has joined. 20:46:50 Animated tiles on Game Boy is mentioned. Does it support bank switching graphics? I can look. I know that NES/Famicom does have bankswitching graphics, I will look about Game Boy 20:50:14 [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=84647&oldid=84620 * CodyNinja1 * (+208) /* Introductions */ 20:51:18 -!- tromp has joined. 20:54:46 [[User:CodyNinja1]] N https://esolangs.org/w/index.php?oldid=84648 * CodyNinja1 * (+41) Created page with "Hello i am codyninja1 and i like esolangs" 20:57:30 [[UToober]] N https://esolangs.org/w/index.php?oldid=84649 * CodyNinja1 * (+1842) Created page with "

UToober

UToober is a [[Brainfuck|Brainfrain]]-like programming language created by [[User:CodyNinja1|CodyNinja1]]

Usage and Commands

{| class="wikitable" |+..." 20:58:08 [[UToober]] M https://esolangs.org/w/index.php?diff=84650&oldid=84649 * CodyNinja1 * (-17) remove the other header 21:00:43 [[User:CodyNinja1]] https://esolangs.org/w/index.php?diff=84651&oldid=84648 * CodyNinja1 * (+43) 21:00:54 If there are only two frames of animated tiles, then it could work: https://gbdev.io/pandocs/Tile_Data.html 21:17:17 [[UToober]] https://esolangs.org/w/index.php?diff=84652&oldid=84650 * CodyNinja1 * (+1117) 21:19:20 [[UToober]] https://esolangs.org/w/index.php?diff=84653&oldid=84652 * CodyNinja1 * (+39) 21:21:07 [[UToober]] https://esolangs.org/w/index.php?diff=84654&oldid=84653 * CodyNinja1 * (+16) 21:27:17 zzo38: I think so, but only a few tiles are animated, and it seems like you'd have to duplicate the whole tile table as many times as animation frames, which would be a lot of unnecessarey ROM space. I expect there's some way around that. 21:28:05 you can change the pointer for the tile table in any case, and games often change them between different levels 21:28:21 so like grass levels have grass tiles, while volcano levels have lava tiles 21:31:58 -!- oerjan has joined. 21:48:00 -!- salpynx has joined. 21:57:09 NES/Famicom also is limited to two frames in a similar way, but NES/Famicom also can use external video memory, so using that it is possible to add more frames. 22:15:56 -!- [O_O] has quit (Quit: Client closed). 22:20:07 -!- oerjan has set topic: Welcome to the liberated church of esoteric programming, proselytization, propagation, and pronunciation! | https://esolangs.org | logs: https://logs.esolangs.org/. 22:20:29 b_jonas: this should clear it up hth 22:20:52 -!- riv has quit (Quit: Leaving). 22:22:19 `? proselytization 22:22:20 proselytization? ¯\(°​_o)/¯ 22:28:24 is the topic meant to exclude amateurs? 22:29:06 amateurs are fine as long as they believe in the cause hth 22:29:23 (also, all i did was add a comma 22:29:24 ) 22:31:01 The comma does make a positive difference. Just noticed all the pros for the first time. 22:32:07 -!- Thelie has quit (Remote host closed the connection). 22:39:15 `` wn proselytize -over | grep '^1' # I wish lambdabot's @wn was more concise and/or the WordNet CLI more friendly 22:39:16 1. proselytize, proselytise -- (convert to another faith or religion) 22:40:12 -!- tech_exorcist has quit (Quit: tech_exorcist). 22:40:12 ^show 22:40:12 echo reverb rev rot13 rev2 fib wc ul cho choo pow2 source help hw srmlebac uenlsbcmra scramble unscramble asc ord prefixes tmp test celebrate wiki chr ha rainbow rainbow2 welcome me tell eval elikoski list ping def a thanks tmp2 8ball rreree rerere botsnack bf 22:40:18 ^show rot13 22:40:18 ,[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+14<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>>+5[<-5>-]<2-[>+<-[>+<-[>+<-[>+<-[>+<-[>+ 22:40:32 Elegant. 22:40:48 fizzie: ^show doesn't reverse the run length encoding tdnh 22:41:24 Yeah, I realized that as I was writing it, but it seemed to hard to describe what I actually meant. 22:41:27 Anyway, it could. 22:42:42 Also, you can tell that program was "compiled" (translated?) before that one bug was fixed, because it contains ">>" instead of ">2". 22:42:59 ic 22:44:30 i'll just excuse you because you were in the matrix at the time 22:44:40 was it solid? 22:44:51 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 22:45:22 It's been a bit flaky, but that's probably because I picked the most experimental thing there was. 22:45:46 Also, my phone started saying "bong" every time I got highlighted, which was a bit much. 22:47:01 also, fungot's response to that log message was eerily close to on topic 22:47:01 oerjan: i could make a " who want's to be millionaire program". here's the complete context of the stuff on esolang's like that, you're probably doing something wrong 22:47:16 until it got into the fnords 22:48:03 * Hooloovoo is wearing a "bob" dobbs mask 22:49:41 hm, we definitely need a picture of a superintelligent shade of blue with a "bob" dobbs mask 22:51:53 `` $(🌱 2 6) -s 🌱 $HACKENV/bin/seed 22:51:56 No output. 22:53:47 `seed 4 30029010 22:53:48 True 22:54:57 that worked. `seed is a little more usable than `🌱 22:55:37 ^wiki seed 22:55:37 https://esolangs.org/wiki/seed 22:56:16 ^wiki anything, even something that doesn't have an article about it (just checking) 22:56:16 https://esolangs.org/wiki/anything, even something that doesn't have an article about it (just checking) 22:56:40 ^show wiki 22:56:41 +15[>+4>+7>+7>+8<4-]>3-.>-4..<2+7.+3.<-2.-11..>2-3.<.>2-5.-3.<-4.>+2.<+6.<.<-.>3+.+3.<.<2+.>+4.>+2.+2.-2.<2.,[.,] 22:56:46 I mean, it could have hardly be anything else, but you never know. 22:57:08 From the format, pretty sure the `https://esolangs.org/wiki/` prefix came out of bf_txtgen. 23:09:36 oerjan, http://hooloovoo.blue/files/dobbs.jpg 23:09:49 I think it's one of the more creepy possible masks to have? 23:20:25 Hooloovoo++ 23:21:02 although you don't look that su... i mean, blue. 23:25:25 `cbt karma 23:25:26 ​#!/bin/sh \ echo "$1 has $(${HACKENV-/hackenv}/lib/karma "$1") karma." 23:25:45 `t cat lib/karma 23:25:46 ​#!/bin/sh \ count () { \ hg log --template '{desc}\n' | \ egrep '^<[^>]*> karma\'$1 | \ fgrep -vix "<$2> karma$1 $2" | \ cut -d' ' -f3 | \ fgrep -cix "$2" \ } \ plus=$(count + "$1") \ minus=$(count - "$1") \ echo $(($plus-$minus)) 23:28:36 `karma Hooloovoo 23:28:44 Hooloovoo has 0 karma. 23:28:50 `karma Hooloovoo 23:28:58 Hooloovoo has 0 karma. 23:29:05 `karma oerjan 23:29:12 oerjan has 0 karma. 23:29:15 `karma oerjan 23:29:22 oerjan has 0 karma. 23:29:48 hm who _has_ HackEso karma 23:29:54 `karma fizzie 23:30:03 fizzie has 2 karma. 23:30:06 `karma fizzie 23:30:21 fizzie has 0 karma. 23:30:27 thoughts so. 23:31:25 `karma 23:31:32 ​ has 0 karma. 23:31:49 `karma+ Hooloovoo 23:32:10 Hooloovoo now has 1 karma. 23:32:29 oerjan++ 23:32:36 @karma 23:32:36 You have a karma of 1 23:32:51 @karma 23:32:52 You have a karma of 1 23:33:02 cool 23:33:57 -!- Riviera has joined. 23:37:12 `` interp "befunge $(seed 4 141745954)@" <<< '20 3' 23:37:13 23 23:38:07 `karma+ nakilon 23:38:22 nakilon now has 1 karma. 23:39:29 I can't the `! befunge interp to accept parameters to ignore unrecognised commands, and the source seed add program doesn't terminate with `@` neatly. 23:39:37 it takes him 15 seconds to increment 23:40:14 [[UToober]] M https://esolangs.org/w/index.php?diff=84655&oldid=84654 * PythonshellDebugwindow * (+96) Cats/wikiheaders 23:40:15 22.5hrs estimated to locate a cleanly terminating befunge program `&&+.@` 23:40:38 [[UToober]] M https://esolangs.org/w/index.php?diff=84656&oldid=84655 * PythonshellDebugwindow * (+1) /* Interpreter */ Fxi tpyo 23:40:51 The counting of karma, the way HackEso does it, involves looking through the entire history of 12k or so revisions. 23:41:22 A typically #esolangs-y combination of elegance and whatever the word for the opposite is. 23:47:44 -!- arseniiv has quit (Ping timeout: 268 seconds). 23:55:03 `` hg log -k karma --template '{desc}\n' | paste 23:55:06 https://hack.esolangs.org/tmp/paste/paste.24635 23:55:41 `` hg log -k '> karma' --template '{desc}\n' | paste 23:55:44 https://hack.esolangs.org/tmp/paste/paste.30567 23:56:17 much better 23:57:26 `sled ../lib/karma//3s/log/log -k '> karma' / 23:57:28 ​../lib/karma//#!/bin/sh \ count () { \ hg log -k '> karma' --template '{desc}\n' | \ egrep '^<[^>]*> karma\'$1 | \ fgrep -vix "<$2> karma$1 $2" | \ cut -d' ' -f3 | \ fgrep -cix "$2" \ } \ plus=$(count + "$1") \ minus=$(count - "$1") \ echo $(($plus-$minus)) 23:57:37 `karma oerjan 23:57:41 oerjan has 0 karma. 23:57:57 `karma Hooloovoo 23:58:02 Hooloovoo has 1 karma. 23:59:01 -!- delta23 has joined.