00:23:42 `asm .byte 0xff, 0x35, 0xba, 0x0a, 0x20, 0x00 00:23:43 0: ff 35 ba 0a 20 00 pushq 0x200aba(%rip) # 0x200ac0 00:23:50 Hmm, that's not right. 00:24:30 `asm .byte 0xff, 0x25, 0xba, 0x0a, 0x20, 0x00 00:24:31 0: ff 25 ba 0a 20 00 jmpq *0x200aba(%rip) # 0x200ac0 00:24:33 That's the one I meant. 00:31:28 Oh, I misunderstood what was going on in the debugger somehow. That's actually reasonable. 00:51:31 -!- hppavilion[1] has joined. 00:52:38 y'know, I could cheat and just do `last` between every single operation and treat the queue as a stack... 01:20:10 http://sif.lesidhetree.com/sara/echidna/Echidna%20v0_10a1.pdf 01:26:50 it seems like "seek to next last item" is a pretty powerful operation for queues. I wonder if it can be simulated using traditional queue ops and markers. 01:36:14 imode: when I considered a typed concatenative language I thought it would be useful to make something like “list environment”, as in usual code `f g h`, f should be composable with g with h, and if one wants to make other constraints instead of composability, one would need to treat space between words differently, 01:36:14 so there would be special brackets to tell that inside spaces have other meaning, and AFAIR I thought that to be expressible as a typeclass (I considered a haskellish type system) 01:36:14 class ListLike a e where { init :: e; add :: a -> e -> e } 01:36:14 though this seems too restrictive and I don’t remember if I came up with something smarter that time; anyway the environment defined by an instance of that then desugars like `[1 2 3]` → `add 3 (add 2 (add 1 init))` 01:36:14 so maybe you could make an environment where each space means `last` :D 01:36:14 but it’s a heavy machinery of course, one needs to implement an elegant way to describe what brackets these defined environments use, etc., syntactic matters 01:36:50 that's interesting... you'd need to have 01:37:01 spaces evenly balanced, then. or one space between each token. 01:37:34 * arseniiv ’s going to sleep 01:37:41 sweet dreams, thanks for the advice. 01:37:44 imode: ah, I meant logical spaces 01:38:19 like, what there is between parsed tokens (nothing, but let’s pretend) 01:38:35 thank you too! 01:38:38 ah, gotcha. 01:38:52 yeah that ain't a bad idea.. hm. 01:38:55 I’m late now, I should sleep 2x fast :D 01:39:02 lol. 01:40:38 when i had general anaesthesia recently it felt like i was sleeping 8x as fast 01:40:55 like I had a whole night's worth of really deep good sleep in an hour of wallclock time 01:41:08 unlike the previous time it didn't feel like an instantaneous time jump 01:41:14 i may have even dreamed 01:42:06 that is a thing that happens, apparently 01:42:13 wild. 01:42:29 yep 01:42:34 not as wild as the galantamine dreams though 01:42:35 oh man 01:43:38 -!- arseniiv has quit (Ping timeout: 246 seconds). 01:43:49 if you want a truly esoteric dream experience, wake up after 4 hours, take 8mg galantamine, then go back to sleep 01:44:08 the first time i did it, my dreams were intense and deeply-nested 01:44:19 i gave up trying to write anything down because every time I tried I realized I was still dreaming 01:44:47 when I finally woke up for real I exclaimed out loud "Wow! That was something." 01:45:09 next time I think I'll take it with a small amount of LSD 02:17:52 [[Kov]] N https://esolangs.org/w/index.php?oldid=66124 * A * (+239) Created page with "[[Kov]] ([K]olmon[o]gro[v]) is a simple language inspired by [https://codegolf.stackexchange.com/questions/tagged/kolmogorov-complexity Kolmonogrov-complexity challenges]. C..." 02:18:49 [[Kov]] M https://esolangs.org/w/index.php?diff=66125&oldid=66124 * A * (+394) 02:20:57 [[Kov]] M https://esolangs.org/w/index.php?diff=66126&oldid=66125 * A * (+156) 02:21:40 [[Kov]] M https://esolangs.org/w/index.php?diff=66127&oldid=66126 * A * (+173) 02:30:04 [[Kov]] M https://esolangs.org/w/index.php?diff=66128&oldid=66127 * A * (+634) 02:31:18 how do i get a randomly selected quote from HackEso? 02:31:23 matching some regex 02:31:25 or list of all quotes 02:34:07 ok, i did what i wanted with `` grep kmc quotes | paste 02:34:17 now i can bask in the wisdom and wit of many-years-ago me 02:37:24 [[Kov]] M https://esolangs.org/w/index.php?diff=66129&oldid=66128 * A * (+61) 02:37:41 "quote kmc | paste" would be the canonical answer probably. 02:37:50 I hear kmc has good quotes. 02:41:08 * kmc canonicalizes shachaf 02:41:10 I have a few good ones 02:41:25 cocks, truly cocks 02:42:02 BBC: Exercise 'can be as good as pills' oh, they mean for your health 02:42:21 `doag 02:42:22 11927:2019-09-08 mkx bin/as-encoding//echo "$1" | as -o /tmp/out.o - && objdump -d /tmp/out.o | grep -P \'^ *[0-9a-f]+:\' | sed \'s/^[^\\t]*\\t//; s/ *\\t/: /g\' \ 11926:2019-09-08 mkx bin/as-encoding//echo "$1" | as -o /tmp/out.o - && objdump -d /tmp/out.o | grep -P \'^ *\\d+:\' | sed \'s/^[^\\t]*\\t//; s/ *\\t/: /g\' \ 11925:2019-09-01 learn The password of the month is ninjaed. \ 11924:2019-08-29 `` perl -p 02:42:27 hmm 02:44:04 what's a doag 02:44:52 `` ls -lt tmp/paste 02:44:54 total 564 \ -rw-r--r-- 1 1000 1000 11630 Sep 13 02:32 paste.2937 \ -rw-r--r-- 1 1000 1000 1210 Aug 3 03:34 paste.31274 \ -rw-r--r-- 1 1000 1000 115029 Jul 21 10:19 paste.3516 \ -rw-r--r-- 1 1000 1000 702 Jul 19 23:16 paste.11087 \ -rw-r--r-- 1 1000 1000 0 Jul 16 12:40 paste.18219 \ -rw-r--r-- 1 1000 1000 1031 Apr 21 17:05 paste.6806 \ -rw-r--r-- 1 1000 1000 2146 Apr 14 00:08 paste.4591 \ -rw-r--r-- 1 1000 1000 1715 Apr 13 23:53 paste.2226 02:44:58 `url tmp/paste/paste.2937 02:44:59 https://hack.esolangs.org/tmp/paste/paste.2937 02:45:51 you're the mannow doag 02:47:00 http://sif.lesidhetree.com/sara/echidna/Echidna%20v0_10a1a.pdf 02:47:13 (messed up an example) 02:53:39 `cat bin/hog 02:53:40 hlnp --template "{desc}\n" -- "$@" 02:53:54 `cat bin/dog 02:53:54 cat: bin/dog: No such file or directory 02:54:22 shachaf: not very much orthogonality there 02:57:37 Ah, "np" is for "no ping". 02:58:50 "a" is, presumably, for "all revisions" (including deleted ones). "d" is for "include date". 02:59:28 shachaf: and wtf was your reasoning behind "dogue" 03:00:09 err hogue. 03:04:45 http://sif.lesidhetree.com/sara/echidna/Echidna%20v0_10a1ac.pdf (Calibri test version) 03:05:26 what's a good font for documentation? 03:26:16 int-e: dog presumably should exist but since no one ever uses hog it's kind of irrelevant. 03:26:25 Let me see if I can trace the etymology. 03:26:33 The original was hog = hg log 03:26:38 `cat bin/hog 03:26:39 hlnp --template "{desc}\n" -- "$@" 03:26:43 `cat bin/hoag 03:26:44 hlnp --removed --template "{desc}\n" -- "$@" 03:27:13 If I'm not mistaken, "hoag" is named after The Unpleasant Profession of Jonathan Hoag. 03:27:35 I don't think anyone cares about the version that doesn't show removed entries, though. 03:27:47 doag is the version of hoag that shows dates. That's very useful so no one ever uses the h commands. 03:28:01 `cat bin/hogue 03:28:03 cat: bin/hogue: No such file or directory 03:28:09 `cat bin/dogue 03:28:10 cat: bin/dogue: No such file or directory 03:29:00 `doag bin/hogue 03:29:01 8420:2016-06-09 ` mv bin/ho{gue,ag} \ 8329:2016-06-04 mkx bin/hogue//hg log --removed --template "{desc}\\n" "$@" \ 8328:2016-06-04 mkx bin/hogue//hg log --remvoed --template "{desc} 03:29:03 `doag bin/hoag 03:29:05 9214:2016-10-10 ` sed -i \'s/hg log/hlnp/\' bin/hoag \ 8453:2016-06-12 sled bin/hoag//s/"\\$@"/-- "$@"/ \ 8420:2016-06-09 ` mv bin/ho{gue,ag} 03:29:14 I didn't remember that at all. 03:32:00 int-e: I think hog->hogue isn't much less plausible than hog->hoag 03:32:05 Presumably they're pronounced the same. 03:33:24 kmc: higan 03:33:43 I saw a good cat today 03:34:42 -!- craigo has joined. 03:34:48 i see that 03:41:34 `randquote kmc 03:41:35 834) i was going to say that the complexity of a demo grows exponentially with size, but it's not so much "exponential" as "faster than any computable function" 03:42:07 `randquote kmc 03:42:09 977) prediction: kmc never comes back * kmc has joined #esoteric 03:42:16 `randquote kmc 03:42:17 1058) are you a hardcore PC gamer Sgeo_ Want to be 03:42:31 wow, forgot about that one 03:42:37 `randquote kmc 03:42:38 1004) LIST OF ACRONYMS: List Integrating Some Terminology Of Fine Authentic Credibility Relating to Our New Year Media System 03:42:44 `randquote kmc 03:42:44 1054) oh my, this is a photo of an elliott fisting [...] i meant elephant but you know what, ok. Bike: ... Bike: can you send me that picture when i'm not at work ok plz and thx 03:47:25 I think I'm probably wrongue about "hoag". 05:19:52 `randquote shachaf 05:19:53 1169) pippi långstrump's name is translated as "gilgi" or "bilbi" usually Does she have a ring of power? 05:19:57 `randquote shachaf 05:19:58 737) U+2205 [∅] NO LETTER O ALLOWED 05:20:01 `randquote shachaf 05:20:05 915) shachaf: LC_ALL=de_DE.utf-8 errno -l Veraltete NFS-Dateizugriffsnummer Eingabe-/Ausgabefehler "Unterbrechung während des Betriebssystemaufrufs" i think that was in the Ring Cycle 05:20:10 `randquote shachaf 05:20:12 716) elliott: Apparently Rowan Williams is Primate of All England. CHECKMATE CREATIONISTS 05:20:14 `randquote shachaf 05:20:16 1011) i would visit elliott but i'm vegetarian 05:20:23 i like how one of the shachaf-quotes was actually a kmc-quote 05:20:26 i'm everywhere baby 05:24:52 is that like "everywhere continuous" 05:29:39 lol 05:29:45 /o/ 05:46:16 -!- Sgeo has joined. 05:49:00 -!- Sgeo_ has quit (Ping timeout: 246 seconds). 05:52:23 -!- Sgeo_ has joined. 05:53:43 `quote LC_ 05:53:44 915) shachaf: LC_ALL=de_DE.utf-8 errno -l Veraltete NFS-Dateizugriffsnummer Eingabe-/Ausgabefehler "Unterbrechung während des Betriebssystemaufrufs" i think that was in the Ring Cycle 05:55:17 -!- Sgeo has quit (Ping timeout: 246 seconds). 06:01:58 -!- Sgeo_ has quit (Ping timeout: 245 seconds). 06:05:08 -!- Sgeo has joined. 06:16:44 Oh german. 06:18:28 . o O ( Which is correct, "Eingabe" or "Eingebung"? ) 06:35:43 [[Inc]] N https://esolangs.org/w/index.php?oldid=66130 * A * (+411) Created page with "[[Inc]] is a joke language that can only add the top of the stack. == Instructions == There is initially a 0 in the stack. * . This increments the top of the stac..." 06:37:04 [[Inc]] M https://esolangs.org/w/index.php?diff=66131&oldid=66130 * A * (-39) 06:37:57 [[Inc]] M https://esolangs.org/w/index.php?diff=66132&oldid=66131 * A * (-17) 06:38:14 [[Inc]] M https://esolangs.org/w/index.php?diff=66133&oldid=66132 * A * (-2) Golfed this into a one-liner! 06:52:03 -!- craigo has quit (Read error: Connection reset by peer). 06:55:49 [[GolfJoke]] M https://esolangs.org/w/index.php?diff=66134&oldid=66006 * A * (+25) 06:59:12 [[Truth-machine]] M https://esolangs.org/w/index.php?diff=66135&oldid=65908 * Dtuser1337 * (-1) Removing unnessecary newline in above Argh! 07:04:29 -!- tromp has joined. 07:04:37 -!- imode has quit (Ping timeout: 265 seconds). 07:07:47 -!- tromp_ has quit (Ping timeout: 276 seconds). 07:10:56 [[Intramodular Transaction]] M https://esolangs.org/w/index.php?diff=66136&oldid=66123 * Hakerh400 * (-1) 07:33:10 -!- cpressey has joined. 07:52:07 -!- sftp has quit (Excess Flood). 07:52:29 -!- sftp has joined. 08:00:09 -!- Phantom_Hoover has joined. 08:01:00 -!- Phantom_Hoover has quit (Client Quit). 08:23:27 [[Baba Is You]] M https://esolangs.org/w/index.php?diff=66137&oldid=60915 * A * (+235) 08:44:31 -!- atslash has joined. 08:45:08 [[Baba Is You]] M https://esolangs.org/w/index.php?diff=66138&oldid=66137 * A * (+3006) /* Descriptions */ Upload my notes in Chinese 08:54:53 -!- Lord_of_Life has quit (Ping timeout: 245 seconds). 08:57:41 [[Baba Is You]] M https://esolangs.org/w/index.php?diff=66139&oldid=66138 * A * (+189) 08:59:10 -!- Lord_of_Life has joined. 09:03:48 [[Baba Is You]] M https://esolangs.org/w/index.php?diff=66140&oldid=66139 * A * (+191) /* Push */ 09:05:16 are games considered an esolang? 09:06:05 int-e: "Eingebung" is more like an unexpected idea 09:06:29 getting understanding of something 09:06:50 [[Baba Is You]] M https://esolangs.org/w/index.php?diff=66141&oldid=66140 * A * (+56) /* Float */ 09:06:53 myname: It was a trick question. (German is my first language.) 09:07:04 okay! 09:08:01 [[Baba Is You]] M https://esolangs.org/w/index.php?diff=66142&oldid=66141 * A * (+105) /* Words */ 09:09:01 myname: I should have written "which spelling is correct" to make the intent clearer. (Answer: both). 09:09:04 -!- wob_jonas has joined. 09:10:00 [[Baba Is You]] M https://esolangs.org/w/index.php?diff=66143&oldid=66142 * A * (+242) 09:12:15 myname: Some games definitely come close to being esolangs, and vice versa 09:12:58 iirc the classic example is that Transport Tycoon is Turing-complete 09:12:58 cpressey: such as OpenTTD, Minecraft, Factorio? 09:14:08 OpenTTD = opensource clone of Transport Tycoon Deluxe, so, yes 09:14:30 ``` for x in quote \' \" q; whatis $x; done # kmc 09:14:31 bash: -c: line 0: syntax error near unexpected token `whatis' \ bash: -c: line 0: `for x in quote \' \" q; whatis $x; done # kmc' 09:14:37 ``` for x in quote \' \" q; do whatis $x; done # kmc 09:14:39 quote(1hackeso) - search quote database or print random quote \ quote(8lambdabot) - no description \ '(1hackeso) - search quote database or print random quote \ "(1hackeso) - show two random quotes \ q(1hackeso) - search quote database or print random quote 09:15:48 kmc: you can also just read the quotes from the file "quotes" in hackenv, or use the allquotes command to print them all with line numbering 09:15:56 it's just a text file, one quote per line 09:16:01 cpressey: TC-ness of games are interesting, but I would not consider those an esolang in the sense of the wiki 09:16:20 reading the files directly without using the commands seems to annoy some people here 09:16:24 I'd make a page for a list of TC games or something like that 09:16:55 `whatis quotes 09:16:56 quotes(1hackeso) - search quote database or print random quote 09:17:41 ah I see, you already found the file 09:17:52 `whatis doag 09:17:53 doag(1hackeso) - query hackenv version control log, with dates 09:18:31 `whatis hurl 09:18:32 hurl(1hackeso) - no description 09:18:48 `` type hwrl 09:18:49 hwrl is /hackenv/bin/hwrl 09:19:19 " I don't think anyone cares about the version that doesn't show removed entries, though." => I am interested. I generally use hg log -T "{rev}:{date|shortdate}:{desc}\n" rather than any of your fancy wrappers. 09:19:26 `whatis url 09:19:27 url(7) - uniform resource identifier (URI), including a URL or URN \ url(1hackeso) - no description \ url(8lambdabot) - no description 09:20:31 `whatis whatis 09:20:32 whatis(1) - display one-line manual page descriptions 09:20:46 int-e: the whatis descriptions for hackeso all come from me, so for any command that I didn't know about, they just say "no description". but they're in a plain text file that you can edit if you want (just be careful because the web `edit form tends to mess up non-ascii files when you save them). 09:21:25 the whatis descriptions for unix commands and functions don't come from me, they're from the headers of manpages 09:22:14 also the wisdom database has longer help for some hackeso commands, but that's only occasional, doesn't even try to be exhaustive 09:22:18 whatis does try to be exhaustive 09:23:32 `whatis relcome 09:23:33 ReLcOmE(1hackeso) - no description \ relcome(1hackeso) - welcome new user to irc channel, colorfully 09:30:20 `help fetch 09:30:22 ​`fetch [] downloads files, and is the only web access currently available in HackEgo. It is a special builtin that cannot be called from other commands. See also `edit. 09:31:19 `fetch share/whatis http://int-e.eu/~bf3/tmp/whatis 09:31:22 2019-09-13 09:31:22 URL:http://int-e.eu/~bf3/tmp/whatis [752504/752504] -> "share/whatis" [1] 09:31:56 `whatis relcome 09:31:57 ReLcOmE(1hackeso) - CoLoRfUlLy wElCoMe nEw uSeR To iRc cHaNnEl \ relcome(1hackeso) - welcome new user to irc channel, colorfully 09:32:31 `sled share/whatis//s/^url(1hackeso) - .*/url(1hackeso) - print URL to view contents of a hackenv file/ 09:32:33 share/whatis//aio.h(0p) - asynchronous input and output \ arpa_inet.h(0p) - definitions for internet operations \ assert.h(0p) - verify program assertion \ complex.h(0p) - complex arithmetic \ cpio.h(0p) - cpio archive values \ ctype.h(0p) - character types \ dirent.h(0p) - format of directory entries \ dlfcn.h(0p) - dynamic linking \ errno.h(0p) - system error numbers \ fcntl.h(0p) - file control options \ fenv.h(0p) - point environment \ float.h(0p) - fl 09:32:57 `sled share/whatis//s/^hurl(1hackeso) - .*/hurl(1hackeso) - print URL to view version log of a hackenv file/ 09:32:59 share/whatis//aio.h(0p) - asynchronous input and output \ arpa_inet.h(0p) - definitions for internet operations \ assert.h(0p) - verify program assertion \ complex.h(0p) - complex arithmetic \ cpio.h(0p) - cpio archive values \ ctype.h(0p) - character types \ dirent.h(0p) - format of directory entries \ dlfcn.h(0p) - dynamic linking \ errno.h(0p) - system error numbers \ fcntl.h(0p) - file control options \ fenv.h(0p) - point environment \ float.h(0p) - fl 09:33:04 fizzie: I did those! 09:33:38 throw new ConcurrentModificationException("sorry"); 09:34:02 fizzie: I'm more annoyed at the duplicated work if anything else :) 09:34:38 `whatis hwrl 09:34:39 hwrl(1hackeso) - link to wisdom entry history in hackenv version control 09:34:45 of course now this is inconsistent 09:35:09 I took my lead from 09:35:11 `whatis paste 09:35:12 paste(1) - merge lines of files \ paste(1p) - merge corresponding or subsequent lines of files \ paste(1hackeso) - print URL to read a file in hackenv through web \ paste(8lambdabot) - no description 09:35:33 `whatis howt 09:35:34 howt(1hackeso) - query hackenv version control log for wisdoms, oldest first 09:35:42 I was inspired by one of these instead 09:36:26 `sled share/whatis//s/^hwrl(1hackeso) - .*/hwrl(1hackeso) - print URL to view version log of a wisdom entry/ 09:36:29 share/whatis//aio.h(0p) - asynchronous input and output \ arpa_inet.h(0p) - definitions for internet operations \ assert.h(0p) - verify program assertion \ complex.h(0p) - complex arithmetic \ cpio.h(0p) - cpio archive values \ ctype.h(0p) - character types \ dirent.h(0p) - format of directory entries \ dlfcn.h(0p) - dynamic linking \ errno.h(0p) - system error numbers \ fcntl.h(0p) - file control options \ fenv.h(0p) - point environment \ float.h(0p) - fl 09:36:46 The 'paste' one could be clarified, since it doesn't really hint that `... | paste` is also a thing. 09:40:47 I guess the downside of `fetch is that it doesn't really say what is being changed. 09:41:15 Well, the sled output isn't that useful for large files either. 09:41:19 fizzie: do you happen to know if the `edit web interface is supposed to be broken for files that contain non-ascii files? 09:41:30 because I used it recently, and it messed up the contents of a file 09:41:38 I fixed it in private message, but still 09:42:59 fizzie: I didn't know that was a thing. how does that work? 09:43:12 wob_jonas: It's not supposed to be broken, but I'm not super-surprised it is, it's Python3 + Flask + strings. There's probably some way to make it use bytes instead. 09:43:28 ``` seq 170 7 480 | paste 09:43:29 https://hack.esolangs.org/tmp/paste/paste.6371 09:43:37 wow indeed 09:43:41 cool, I didn't know 09:43:41 It just makes a new file in tmp/. 09:45:05 For some reaosn I thought `edit was written in Go. 09:45:19 Ah, I guess I wrote the first version of it in Go. 09:45:40 I think if I was writing it today, I might have written it in Go. 09:46:50 It's not a super-complicated web app, https://bitbucket.org/fizzie/hackedit/src/master/hackedit.py 09:47:46 Go is kind of scow but Python is too. 09:47:57 For a small program like this the main thing is library availability. 09:48:19 I guess I should make my own language and give it a bunch of good libraries. 09:51:49 The Flask documentation doesn't seem to talk too much about whether form parameters are decoded strings or raw bytes. Although it does look like it's calling f.write on them on a file opened with just 'w', so I guess it's in text mode and that's a string. 09:53:12 `` python3 -c 'print("a" "b")' 09:53:13 ab 09:53:22 Speaking of Python, someone told me about that the other day and I was, like, whoa, dude. 09:53:30 How C. 09:54:12 Anyway I'd be fine writing a thing like that in C if there was a convenient C library for HTTP servers. 09:54:20 I think I saw that mentioned somewhere, in some style guide about how to write long strings. 09:54:53 esolangs.org/logs/ uses civetweb. 09:54:54 wait, there are C HTTP servers 09:54:58 The C++ bindings, but still. 09:55:21 I'd be wary of them, it's really easy to write bugs in 09:55:29 Not sure if the label "convenient" is super-applicable either. 09:55:42 true 09:56:02 I don't think there's a particular reason they shouldn't be convenient? 09:56:10 hmm, wonder if I could run an http server on my vax 09:56:18 Not "they" in general, civetweb in particular. 09:56:47 Ah, sure. 09:56:55 It may be more convenient in C than in C++, the C++ interface feels a little bit like an afterthought. 09:59:30 Sep 13 10:10:00 techne.zem.fi esobot[20492]: [135B blob data] 09:59:35 At some point I should fix that. I think it's from the debugging output of the wiki change notification, which includes the color codes, which makes systemd journal think it's binary data not fit for human eyes. 10:02:33 Here's something I learned recently: if you make your thing print out syslog priority annotations at the start of your lines (as in, "<4>warning, warning"), the standard systemd stdout/stderr-to-journal pipe will use them as priority levels. 10:09:29 `mkx bin/beat//s=$(date +%s); echo @$(((s+3600) % 86400 * 10 / 864)) 10:09:31 bin/beat 10:09:32 `beat 10:09:33 ​@464 10:09:46 We didin't have a Swatch Internet Time clock yet, I don't think. 10:10:37 fizzie: no! that's not general enough. modify glibc to add a new format for that into strftime, rebuild the whole thing, then we can just use /bin/date for this 10:13:22 Fair enough, but I'll save that for a rainy day. 10:13:36 Although I think it's always three digits, so let's fix that at least. 10:13:40 `mkx bin/beat//s=$(date +%s); printf '@%03d' $(((s+3600) % 86400 * 10 / 864)) 10:13:42 bin/beat 10:18:36 fizzie: shouldn't you add a -u switch to date, for future compatibility when the next generation of HackE?o will use new zealand timezone again? 10:20:53 fizzie: also, I think that truncates to integer seconds prematurely, though that'll be harder to fix 10:21:02 -!- hppavilion[1] has quit (Remote host closed the connection). 10:21:32 -!- hppavilion[1] has joined. 10:28:41 -!- arseniiv has joined. 10:38:45 oh wait 10:38:55 the +%s format is epoch time, so the -u wouldn't change anything 10:38:56 sorry 10:43:26 ``` echo '#!/usr/bin/python3; import math,time; b = math.floor(100*((time.time()+3600) % 86400) / 86.4); print("%03d.%02d"%(b//100,b%100))' | tr \; \\n > bin/beat; chmod -v a+x bin/beat 10:43:28 mode of 'bin/beat' retained as 0755 (rwxr-xr-x) 10:43:51 ``` datei; for x in {0..5}; do beat; done; datei 10:43:52 ​ File "/hackenv/bin/beat", line 2 \ import math,time \ ^ \ IndentationError: unexpected indent \ File "/hackenv/bin/beat", line 2 \ import math,time \ ^ \ IndentationError: unexpected indent \ File "/hackenv/bin/beat", line 2 \ import math,time \ ^ \ IndentationError: unexpected indent \ File "/hackenv/bin/beat", line 2 \ import math,time \ ^ \ IndentationError: unexpected indent \ File "/hackenv/bin/beat", line 10:43:59 gtfo 10:44:13 ``` echo '#!/usr/bin/python3;import math,time;b = math.floor(100*((time.time()+3600) % 86400) / 86.4);print("%03d.%02d"%(b//100,b%100))' | tr \; \\n > bin/beat; chmod -v a+x bin/beat 10:44:15 mode of 'bin/beat' retained as 0755 (rwxr-xr-x) 10:44:19 ``` datei; for x in {0..5}; do beat; done; datei 10:44:21 2019-09-13 10:44:20.077065689 +0000 UTC September 13 Friday 2019-W37-5 \ 489.12 \ 489.12 \ 489.12 \ 489.12 \ 489.12 \ 489.12 \ 2019-09-13 10:44:20.793925337 +0000 UTC September 13 Friday 2019-W37-5 10:44:38 ``` datei; for x in {0..5}; do sleep 1; beat; done; datei 10:44:45 2019-09-13 10:44:38.662409684 +0000 UTC September 13 Friday 2019-W37-5 \ 489.34 \ 489.36 \ 489.37 \ 489.38 \ 489.40 \ 489.41 \ 2019-09-13 10:44:45.582049236 +0000 UTC September 13 Friday 2019-W37-5 10:45:19 fizzie: ^ will that work? now it doesn't truncate to seconds before the computation 10:46:31 or should it display no decimal digits? 10:56:49 -!- Frater_EST has joined. 10:57:21 I seem to be missing another bit of pop culture here 10:58:51 int-e: it's not really pop culture, it's a stupid marketing gimmick 11:01:02 -!- ahrkl has joined. 11:08:02 -!- hppavilion[1] has quit (Ping timeout: 240 seconds). 11:13:11 hmm I opened Metamath λ page and saw beta-reduction formalized as, roughly, A: β ⟹ (λx:α A)(x:α) = A, without any explicit substitution. Maybe my thing could avoid them either? I didn’t realize at all that the engine should be able to work with such “reflexive” definitions 11:13:43 -!- ahrkl has left ("Leaving"). 11:14:05 (and I don’t get how, yet. It should unify the right way but how) 11:14:08 wob_jonas: The .xx part is not part of the official beat notation. :/ 11:14:25 wob_jonas: I was thinking it should be an option, but couldn't think of a flag for it. 11:14:30 (-v?) 11:15:32 ``` echo '#!/usr/bin/python3;import math,time;b = math.floor(((time.time()+3600) % 86400) / 86.4);print("%03d"%(b,))' | tr \; \\n > bin/beat; chmod -v a+x bin/beat 11:15:34 mode of 'bin/beat' retained as 0755 (rwxr-xr-x) 11:15:36 `beat 11:15:36 `beat 11:15:37 510 11:15:37 `beat 11:15:37 510 11:15:38 510 11:15:53 `? beat 11:15:54 beat? ¯\(°​_o)/¯ 11:16:35 -!- Frater_EST has left. 11:17:06 or maybe that one alone isn’t sufficient, I would need to see what proofs are using 12:13:45 `fetch bin/beat https://hack.esolangs.org/get/bin/beat 12:13:47 2019-09-13 12:13:46 URL:https://hack.esolangs.org/get/bin/beat [616/616] -> "bin/beat" [1] 12:13:53 ``` beat; beat -p 12:13:53 bash: /hackenv/bin/beat: python3: bad interpreter: No such file or directory \ bash: /hackenv/bin/beat: python3: bad interpreter: No such file or directory 12:14:28 ``` beat; beat -p 12:14:29 ​[] \ 551 \ [('-p', '')] \ 551.72 12:14:48 ``` beat; beat -p 12:14:49 551 \ 551.95 12:14:50 better 12:14:57 fizzie: ^ -p command-line option now 12:24:08 http://sif.lesidhetree.com/sara/echidna/Echidna%20v0_10a1ac2.pdf does this look appealing to the human eye? 12:28:51 http://sif.lesidhetree.com/sara/echidna/Echidna%20v0_10a1a.pdf compared to this? 12:50:25 wob_jonas: Nice, although what's the -p short for? 12:50:38 (Penny?) 12:50:40 fizzie: precision 12:50:44 Ah, I see. 12:51:12 I guess penny works too 12:51:19 only 12:51:42 ``` beat -P4 # it clearly means precision (in the sense that printf uses precision specifiers) here 12:51:43 577.5790 12:51:54 ``` beat -P2; beat -P1; beat -P3; beat -P0 12:51:55 577.71 \ 577.7 \ 577.722 \ 577 12:54:20 -!- xkapastel has joined. 12:59:58 made another version of the documentation in Comic Sans as a joke for my dad. i know better than to put it on the web. 13:47:33 [[Brank]] N https://esolangs.org/w/index.php?oldid=66144 * A * (+384) Created page with "[https://softwareengineering.stackexchange.com/questions/132385/what-makes-a-language-turing-complete?rq=1 In an answer for this question:] In general, for an imperative langu..." 13:53:42 [[Talk:Baba Is You]] M https://esolangs.org/w/index.php?diff=66145&oldid=60916 * A * (+328) 14:12:26 [[Baba Is You]] M https://esolangs.org/w/index.php?diff=66146&oldid=66143 * A * (+170) /* Shut */ 14:14:14 [[Baba Is You]] M https://esolangs.org/w/index.php?diff=66147&oldid=66146 * A * (+108) /* External Resources */ 14:29:20 -!- Sgeo_ has joined. 14:32:14 -!- Sgeo has quit (Ping timeout: 246 seconds). 14:37:01 -!- Sgeo_ has quit (Ping timeout: 265 seconds). 14:37:55 [[EnilKode]] https://esolangs.org/w/index.php?diff=66148&oldid=60887 * EnilKoder * (+461) Mutable 14:40:58 > let both p1 p2 x = (p1 x) && (p2 x) in let inRange = both (\x -> x > 3) (\x -> x < 8) in inRange 5 14:41:01 True 14:41:41 > let inRange = (\x -> x > 3) && (\x -> x < 8) in inRange 5 14:41:44 error: 14:41:44 • Couldn't match expected type ‘Bool’ 14:41:44 with actual type ‘Integer -> Bool’ 14:42:42 I think you could detect that and coerce that upwards in a general fashion. I'm not saying you should. But I think you could. 14:47:05 -!- Soni has left ("http://quassel-irc.org - Chat comfortably. Anywhere."). 14:47:17 > let { inRange = (&&) <$> (x > 3) <*> (\x < 8); } in inRange 5 14:47:19 :1:42: error: parse error on input ‘<’ 14:47:25 http://sif.lesidhetree.com/sara/echidna/Echidna%20v0_10a1ac3p.pdf (hopefully this is saner to read) 14:47:26 > let { inRange = (&&) <$> (x > 3) <*> (x < 8); } in inRange 5 14:47:29 error: 14:47:29 • Couldn't match expected type ‘f Bool’ with actual type ‘Bool’ 14:47:29 • In the second argument of ‘(<$>)’, namely ‘(x > 3)’ 14:47:40 > let { inRange = (&&) <$> (> 3) <*> (< 8); } in inRange 5 14:47:43 True 14:47:54 > let { inRange = (&&) <$> (> 3) <*> (< 8); } in fmap inRange [0..10] 14:47:56 [False,False,False,False,True,True,True,True,False,False,False] 14:47:59 cpressey: something like that 14:48:31 wob_jonas: Something like that except the implementation figures it out for you. 14:48:38 but of course it's much easier to write inRange x = 3 < x && x < 8 14:49:33 cpressey: try that esolang of which I heared of only recently and I don't recall the name 14:49:57 that really crazy one 14:50:14 you mean echidna? 14:50:42 no, I mean Husk 14:50:49 but good try 14:54:46 wob_jonas: i gave you yesterday and the day before to not look at echidna. 14:55:35 wob_jonas: I see, yes. https://github.com/barbuz/Husk/blob/master/Builtins.hs#L90 would handle my example I think? 14:56:08 cpressey: no clue, I don't know how that language works. I looked at the doc'ation and decided it was too crazy for me to try to understand 14:56:33 Well I'm totally guessing anyway. 14:56:35 I looked at it because I mentioned some ideas of what an esolang could do, and Husk does do that, but it also does more 14:59:51 -!- cpressey has quit (Quit: A la prochaine.). 15:08:38 -!- Sgeo has joined. 15:11:31 Sgeo: hi 15:19:55 -!- sebbu2 has joined. 15:24:01 -!- sebbu has quit (Ping timeout: 268 seconds). 15:29:17 -!- MDude has quit (Ping timeout: 258 seconds). 15:33:24 -!- MDude has joined. 16:03:39 -!- wob_jonas has quit (Remote host closed the connection). 16:05:43 -!- Sgeo_ has joined. 16:08:26 -!- Sgeo has quit (Ping timeout: 240 seconds). 16:40:57 -!- imode has joined. 16:44:36 http://sif.lesidhetree.com/sara/echidna/Echidna%20v0_10a2_p.pdf 17:11:05 my `last` operation seems like something a traditional queue automaton wouldn't be able to do without some significant setup, because you have to know the length of the queue ahead of time. 17:15:18 http://sif.lesidhetree.com/sara/echidna/Echidna%20v0_10a2_p.pdf 17:15:25 oops 17:15:30 dead link now 17:15:59 * Lykaina needs to get paste to behave 17:22:59 http://sif.lesidhetree.com/sara/echidna/Echidna%20v0_10a2_p2.pdf should work... 17:24:12 -!- b_jonas has joined. 17:25:25 Lykaina: the links you gave earlier, "http://sif.lesidhetree.com/sara/echidna/Echidna%20v0_10a1ac2.pdf" and "http://sif.lesidhetree.com/sara/echidna/Echidna%20v0_10a1a.pdf", are broken. do you have an URL for the current rendered documentation? 17:25:36 oh wait 17:25:41 you just missed it 17:25:45 http://sif.lesidhetree.com/sara/echidna/Echidna%20v0_10a2_p2.pdf should work... 17:26:17 let me know if i mistyped the fixed document 17:26:19 that one works 17:27:40 it's an emergency fix for an emergency fix 17:28:22 Eso question. Are there words that specifically mean a 12-bit or 24-bit integer, you know, the kind like (byte, char, short, int, long, halfword, word, doubleword, wyde, tetra) but specific enough that they can't apply to 8 or 16 or 32 or 64 bit values? 17:28:53 I can call them "halfword" and "word" if there aren't, but I'd prefer some specific terminology 17:30:00 are you asking me for clarification? 17:35:34 Lykaina: no 17:35:48 or not yet, at least 17:36:41 -!- sebbu2 has changed nick to sebbu. 17:37:01 [ (,+/@:_3{.)^:39] 0 0 1 17:37:01 b_jonas: |domain error 17:37:01 b_jonas: | (, +/@:_3{.)^:39]0 0 1 17:37:12 [ (,+/@:(_3&{.))^:39] 0 0 1 17:37:13 b_jonas: 0 0 1 1 2 4 7 13 24 44 81 149 274 504 927 1705 3136 5768 10609 19513 35890 66012 121415 223317 410744 755476 1389537 2555757 4700770 8646064 15902591 29249425 53798080 98950096 181997601 334745777 615693474 1132436852 2082876103 3831006429 7046319384 12960201916 17:38:21 b_jonas: like the new formatting? 17:40:48 -!- FreeFull has joined. 17:41:23 b_jonas, https://en.wikipedia.org/wiki/24-bit apparently has 24-bit as 'sword'. 17:41:57 i managed to get copies of calibri, cambria, and consolas onto my linux laptop 17:42:01 I think you just call 'em words. 17:42:09 with the appropriate bit prefix. 17:42:25 imode: hmm, interesting. although "thword" might work better. 17:42:36 thword lmao. 17:42:51 but the problem is, "halfsword" or "halfthword" sound too much like "halfword" unless you pronounce them very carefully 17:43:06 > fix(([0,0,1]++).ap(zipWith(flip(-)))(drop 3).scanl(+)0) 17:43:09 [0,0,1,1,2,4,7,13,24,44,81,149,274,504,927,1705,3136,5768,10609,19513,35890,... 17:43:43 maybe "thyte" for the 12-bit one then 17:43:54 nah, not good enoguh 17:44:05 > fix(([0,0,1]++).join(zipWith(-).drop 3).scanl(+)0) 17:44:06 [0,0,1,1,2,4,7,13,24,44,81,149,274,504,927,1705,3136,5768,10609,19513,35890,... 17:44:20 @oeis A73 17:44:21 https://oeis.org/A000073 Tribonacci numbers: a(n) = a(n-1) + a(n-2) + a(n-3)... 17:44:21 [0,0,1,1,2,4,7,13,24,44,81,149,274,504,927,1705,3136,5768,10609,19513,35890,... 17:45:20 I just like (ab)using scanl 18:01:46 I'm wrong, you can absolutely implement 'last' using only an end-of-queue marker. 18:10:28 int-e: what language is that? 18:11:25 Lykaina: Haskell 18:12:00 Lykaina: though in a deliberately concise and incomprehensible style (if you can even call it that). 18:12:42 is haskell oo? 18:14:08 no 18:14:45 Haskell is a pure, lazy, functional programming language. 18:15:18 oh 18:16:12 > let twice f x = f (f x) in twice succ 3 -- 'succ' adds 1 to a number; 'twice' takes a function and applies it two times to a given value... the ability to pass functions to other functions is what makes the language functional 18:16:12 seems i never learned any functional languages 18:16:14 5 18:16:35 except pretty much every language allows you to pass functions to other functions 18:16:55 basic? 18:16:55 'functional language' like 'object-oriented language' is a fuzzy category 18:17:09 more useful for starting arguments than anything else 18:17:15 kmc: function pointers aren't the same. we're getting there, though. 18:17:21 is javascript functional? is rust object oriented? whatever. 18:17:27 i thought not having side effects is what makes a language functional 18:17:34 fight me twh 18:17:36 what is c? 18:17:37 kmc: even java has lambdas nowadays. 18:17:45 (IIRC) 18:17:49 see, i told you it was good for starting arguments :) 18:18:07 also fights are foughts exclusively with hugs 18:18:16 * kmc hugs shachaf 18:18:30 is C procedural or imperitive? i forgot 18:18:32 people sure love aruging about what definitions are 18:18:44 (not even what they should be, which is a sort of reasonable argument maybe) 18:18:59 . o O ( definitions are arbitrary ) 18:19:49 . o O ( arguing, v.: putting the "defy" into "definition". ) 18:19:58 `? c 18:19:59 C is the language of��V�>WIד�.��Segmentation fault 18:20:25 Lykaina: it's both I think 18:22:40 It's imperious. 18:22:45 And perilous. 18:22:50 Lykaina: both. imperative because it's mostly based on mutable variables and assignment rather than immutable values; procedural because it's based mostly on structured control form, as in if/while/for and function calls, rather than goto and gosub. 18:23:28 In the past I would accidentally say "imperial programming language". 18:23:35 does anyone actually use vb.net? 18:23:36 The imperative is mostly a default, you can still write code that is mostly functional, as in, assigning each variable only once at the declaration. 18:23:48 I guess if/while/for make it "structured", and function calls "precedural" 18:24:19 Lykaina: no, but it's probably basically free to have once you have the compiler and other requirements for C# or some other dotnet language. 18:24:31 Moreover, goto makes it unstructured and NULL makes it expensive 18:24:55 I heard it's the zero-terminated strings that make it an expensive mistake. 18:24:56 C is great because it has features like writing f(g(x), h(y)) 18:25:08 You don't even need to say what registers the intermediate results go into! 18:25:16 It's such a high-level language. 18:26:05 fizzie: I was refering to Hoare: 'Tony Hoare introduced Null references in ALGOL W back in 1965 "simply because it was so easy to implement", says Mr. Hoare. He talks about that decision considering it "my billion-dollar mistake".' 18:26:06 and c--? 18:26:27 shachaf: I disagree. a language is functional if bindings and values are immutable by default, even if mutability is provided. so standard ML and rust are functional languages. 18:26:32 prolog too. 18:26:39 and J too in fact 18:26:45 though for J it's more debatable 18:26:56 fizzie: But yes, zero-terminated strings are their own can of worms. 18:27:00 nah, J probably shouln't count as functional 18:27:02 I disagree. A language is functional if it works, and dysfunctional if it doesn't work. 18:27:15 int-e: I was referring to https://queue.acm.org/detail.cfm?id=2010365 18:27:35 is kotlin a functional language by that definition? 18:28:15 what's a kotlin? 18:28:21 Kotlin makes me think of chickens, which makes me think of Scheme. 18:28:39 I don't know, I've never koppled before. 18:28:40 heh 18:28:43 H@0000=000FG@001048656c6c6f2c2057G@00186f726c64210a0000Q!0000=000AW0T@0000@0000=0001J!0000-W0K 18:28:49 fizzie: Obviously if you wanted to save space you'd use ASCII and tag the last string element by setting the high bit. (Who needs non-ASCII or empty strings anyway...) 18:28:49 uh 18:28:54 I don't know, I've never kottled before. 18:29:03 not the crazy paste again 18:29:36 fungot: What sort of programming paradigm do you feel like you represent most? 18:29:37 fizzie: it refers to the real world is just one hygienic macro system based on closures. 18:29:50 int-e: if you wanted to save space, you'd use five-bit strings with shift codes 18:29:53 Deep truths day today. 18:30:05 fizzie: But you're right, if you want to pinpoint an expensive mistake that is specific to C, NUL-terminated strings are a good candidate. 18:30:39 int-e: I'm not sure that even started with C. didn't unix have nul-terminated strings for filenames before C came around? 18:31:23 b_jonas: I'm confused about the history here. 18:32:18 unix and c were created for each other 18:32:28 they got married in 72 18:33:00 Yeah I thought the developments were intertwined. 18:33:06 -!- MDude has quit (Quit: Going offline, see ya! (www.adiirc.com)). 18:33:06 int-e: UNIX v1 is an early unix (but not the earliest unix) of which we have the full set of manual pages. it precedes C, but is after the invention of pathnames (the earliest unix didn't have that). http://man.cat-v.org/unix-1st/2/sys-open says that open takes a nul-terminated string as filename. 18:33:27 b_jonas: what did MULTICS do on that front? 18:33:50 UNIX v1 was implemented in some machine language, and only later was a version of unix mostly implemented in C made. 18:33:55 int-e: I don't know. 18:34:20 it might be older than unix too, I'm just saying that nul-terminating definitely preceded C 18:34:21 b_jonas: Anyway, I would say that since UNIX and C were basically created by the same people, shifting the blame from C to UNIX isn't all that meaningful. 18:34:29 int-e: no no 18:34:35 that's definitely not the history 18:34:49 same three people 18:35:48 unix was created by ken and dmr; C was started to get invented by kernigham, then dmr joined by popularizing C by basing the already popular unix to it, so that both userspace programs could be written in C and the kernel was implemented in C 18:36:17 dmr did further C by a lot, which is only to be expected when he was its main user, 18:36:52 hmm no 18:36:55 I got that history wrong 18:37:00 int-e: ok, you're probably right 18:37:11 it's the same people 18:37:30 still, I sort of think that unix makes sense even without C 18:37:41 unix makes sense? 18:38:33 sorry 18:38:46 think about it, the rust people and a certain #esoteric regular both experiment with making a compiler that can make executables that run on unix and uses unix syscalls without depending on either C or libc 18:39:11 `? member 18:39:13 I'm sorry, #esoteric has regulars, not members. Who told you about members? There are definitely no members here, and you wouldn't be allowed to know about them, anyway. 18:39:13 so I think even today the abstractions are a bit separated, even if they are tightly wound together because a lot of basic libraries are implemented in C 18:39:22 yes, that's what I said 18:39:35 a regular 18:39:55 even if there was such a thing as members, I would not be allowed to tell who is and isn't a member 18:40:07 if you knew 18:40:32 as for me, i lost my membership form 18:40:48 i wouldn't /join any channel that would have me as a member 18:41:24 i wouldn't last a minute in one 18:41:40 yes, I also don't know who are members, and have no way to know, because the only reliable way to verify that someone is a member is the secret handshake, which I also don't know, and since I live in Hungary but no other regular does, I haven't met anyone from #esoteric irl, and so couldn't have shaken their hands 18:42:09 i know sgeo in rl, and no others. 18:42:17 Huh. 18:42:18 i do not deny this 18:42:46 kmc: i'd like to "do the secret handshake" with you, if you know what i mean 18:43:08 i don't know 18:43:11 (sure, that's not a watertight argument, because at least two other #esoteric regulars have admitted to have visited Hungary; and I have been to the UK and Norway and like three other countries where #esoteric regulars work) 18:43:14 shachaf: does it involve any dismemberment that would explain our lack of members? 18:43:22 does it involve taking my clothes off 18:43:36 hm, that's a more advanced handshake than the one i know 18:43:36 . o O ( let's not get crazy here ) 18:43:39 `? alice 18:43:41 Alice doesn't want to go among mad people. 18:44:07 int-e: no. it's a zero-knowledge handshake to any party who doesn't know about the handshake, and dismembering people would be easily detectable so it would break that 18:44:14 b_jonas: Have you considered being to California? 18:44:19 as far as i know, sgeo and i were best friends in college. they introduced me to here. 18:44:27 shachaf: yes, and I decided I don't want to be there 18:45:24 I decided I want to stay mostly in Europe during the foreseeable future 18:45:32 b_jonas: maybe you just have to hide it cleverly (think Kill Bill) 18:45:57 int-e: hmm, that would explain my messed up sleep schedule 18:47:11 the line of "code" i accidentally pasted here was a distilled hello world. 18:49:03 b_jonas: What about Hexham? 18:49:43 shachaf: that is somewhat more reasonable, I may yet go there at some point 18:50:39 but my next vacation, starting in a week, will be in North-Reine Wesphalia, with one night in München before 18:55:23 shachaf: although of course in the unlikely case that Brexit makes travel to England seriously inconvenient, I won't travel there 18:56:20 but I hope that the current situation is stable: no Brexit, a promise of the intention to Brexit soon, and a sacrifice of two or three prime ministers per year 18:57:21 it's like how Hungary has a contractual requirement to start using the Euro currency within like ten years, and have had so since like fifteen years ago, so we will permanently be planning to start the Euro ten years from the present 18:57:25 that works fine 18:57:59 it's just harder for Brexit because the promise is for a shorter term in the future 19:16:01 -!- Phantom_Hoover has joined. 19:22:56 I wonder how many different locations of Google have people working there that are also #esoteric regulars 19:23:26 and whether they represent all the major super-secret branches of Google 19:28:11 but that latter is probably unanswerable 19:46:08 I reported a bug in Ghostscript and it has now been fixed. 19:46:17 nice 19:46:28 when did you report? 19:47:16 I reported it on Sunday; it was fixed on Tuesday. 19:47:55 (The bug has to do with using the forall command with strings.) 20:01:31 trying to implement 'swap' using only dup, roll and drop. 20:02:00 harder than I thought. 20:05:31 managed to implement 'over' using minimal primitives, which is something. 20:14:58 -!- xkapastel has quit (Quit: Connection closed for inactivity). 20:24:03 'last' can also be done in constant time. really 'roll' and 'last' are basically just 'rotate queue left' and 'rotate queue right'. 20:29:01 imode: is this still the crazy queue-based thing? 20:29:27 yessir. 20:29:47 imode: why don't you add named lexically local variables to this interpreter, and then implement swap as { /a /b b a } 20:29:50 I added an operation that lets you recall an item from the end of the queue to the front of the queue. 20:30:13 note that for an ordinary stack-based language like GML it would be { /a /b a b } 20:40:49 -!- MDude has joined. 20:41:52 -!- Camto[m] has quit (Remote host closed the connection). 20:42:05 -!- xylochoron[m] has quit (Remote host closed the connection). 20:42:08 -!- ivzem[m] has quit (Read error: Connection reset by peer). 20:42:14 -!- wmww has quit (Write error: Connection reset by peer). 20:42:21 -!- tswett[m] has quit (Write error: Connection reset by peer). 20:43:56 lexically scoped variables are too complex for the scope of this interpreter. 20:44:11 but that's kinda funny how that's a little non-intuitive. 20:44:52 "here's your parameters in order... and here they are again, but they're technically swapped because of the behavior of the stack." 20:45:36 https://hastebin.com/equnosetok.txt 20:46:10 whoops. 20:46:26 https://hastebin.com/welojekoqu.txt 20:46:30 there. 20:49:56 -!- Camto[m] has joined. 20:52:11 a pretty literal translation of an iterative factorial algorithm that I wrote in forth. 20:54:32 -!- Lord_of_Life_ has joined. 20:57:53 -!- Lord_of_Life has quit (Ping timeout: 265 seconds). 20:57:56 -!- Lord_of_Life_ has changed nick to Lord_of_Life. 21:11:42 -!- wmww has joined. 21:11:42 -!- tswett[m] has joined. 21:11:42 -!- xylochoron[m] has joined. 21:11:50 -!- ivzem[m] has joined. 21:15:06 aha, it didn't work. but it didn't work because of the way I do math. 21:17:42 https://hastebin.com/gebucenehe.txt an updated version, plus a direct Python translation: https://repl.it/repls/LongtermBruisedDeals 21:21:13 this is pretty neat, because by the virtue of 'roll' and 'last', you can skip over newer elements in favor of old ones. 'last' can be implemented in a reasonable manner in a typical queue automaton by using the current state as temporary storage, and in an implementation with a circular buffer, can be done in constant time. 21:21:36 it's effectively a tape that grows and moves to the right on insert. 22:47:55 I thought a open source implementation of Magic: the Gathering should have a command line interface. At many prompts, you can enter a blank line to use the default action or to use a shortcut. The "priority prompt" might say something like "Mark:m1:0>" if the active player is Mark, the current phase is the precombat main phase, and the stack is empty. 22:51:47 u=upkeep, d=draw, m1=precombat main, bc=begin combat, da=declare attackers, db=declare blockers, fs=first strike combat damage, ns=normal strike combat damage, ec=end combat, m2=postcombat main, e=end, c=cleanup. 23:11:17 hi 23:18:38 b_jonas: should my subs have return values? 23:22:23 -!- ArthurStrong has joined. 23:24:14 -!- Phantom_Hoover has quit (Ping timeout: 246 seconds). 23:43:35 -!- arseniiv has quit (Ping timeout: 276 seconds).