00:01:13 -!- xkapastel has quit (Quit: Connection closed for inactivity).
00:11:33 -!- Phantom_Hoover has quit (Ping timeout: 265 seconds).
00:14:26 -!- imode has quit (Ping timeout: 240 seconds).
00:17:47 -!- imode has joined.
00:19:43 -!- imode2 has joined.
00:19:53 <Lykaina> is that if, while, switch type?
00:20:31 <b_jonas> those are usually called "control flow". I don't know what "flow operation" means.
00:21:58 <b_jonas> the "control" is the important word because a lot of Haskell libraries are named "Control" something in this sense, without mentioning flow
00:22:17 -!- imode has quit (Ping timeout: 268 seconds).
00:23:27 <Lykaina> in debugging, i found problems at the very core of the echidna language.
00:23:52 <Lykaina> basically, i've never tried breaking out of a loop before
00:24:12 <Lykaina> and not immediately ending
00:24:55 <Lykaina> well, to be precise, the implementation of the core
00:25:19 -!- cocof has joined.
00:25:40 <b_jonas> Lykaina: ah, I never really looked at that part of the interpreter code
00:26:00 <b_jonas> I cared more about the arithmetic stuff
00:26:43 <b_jonas> so basically, Samus got bitten by a radioactive baby metroid in the ending of Super Metroid, and since then she has super metroid powers and metroid sense and metroid DNA in his body?
00:26:54 <b_jonas> how do they invent such a story?
00:29:20 <cocof> how about astral travel?
00:29:27 <cocof> since you choose such name
00:29:36 <cocof> how can code be astral?
00:30:38 <int-e> cocof: just look at regular expressions; they're full of stars
00:30:40 <Lykaina> esoteric programming languages
00:31:08 <cocof> both gays and esoteric code is a fail :)
00:31:14 <cocof> for not been able to use own name
00:31:43 <int-e> it's also worth noting that "esoteric" has nothing to do with stars.
00:32:23 <int-e> esoteric, 'from Greek esoterikos "belonging to an inner circle" (Lucian), from esotero "more within,"'
00:32:24 <cocof> why not call it language nr 23 :D
00:33:48 <int-e> I like shooting stars? Nah, that's a lie, I don't like shooting at all.
00:34:01 <zzo38> cocof: Unicode characters can be astral if it is more than 0xFFFF
00:34:21 <cocof> while not obviously related, how come shifting awareness outside body is tricky/
00:34:45 <cocof> well programming is fun also
00:34:50 <HackEso> Twinkle, twinkle, little star!
00:35:33 <zzo38> I don't know about shifting awareness outside body, and I doubt anyone else on here does. I am not even sure if it is possible
00:35:53 <shachaf> My awareness is not inside my body in the first place, so it's impossible to shift it out.
00:36:38 <cocof> when u carry bottle of vodka and your are alcoholic and all shops are closed...
00:36:50 <cocof> where is your awareness? D:
00:37:06 <cocof> same with body we are bodyholics :)
00:37:14 <zzo38> I think "where is your awareness" is not so clear what it is, to me
00:37:29 <cocof> bodyholics anon :)
00:37:31 <shachaf> Personally, I'm a utilityholic.
00:37:38 <shachaf> I'm addicted to utility. I just can't get enough.
00:38:20 <int-e> shachaf: Does that make you a tool...
00:39:37 <cocof> zzo38 well when you code you are a code :)
00:40:07 <cocof> now that you are can be some physical object but we are not accustomed and perhaps scared of such intimate encounters
00:40:50 <cocof> due to bodyholicm :) if I am a laptop i cant be 6`1 green eyes human perhaps, i wont be able to come back :P
00:42:15 <shachaf> I'm capable of being both of those things at once.
00:43:30 -!- GeekDude has quit (Quit: WeeChat 2.5).
00:44:01 <cocof> shachaf so as a laptop what do you feel when humans type on you? :)
00:45:05 <zzo38> Also I think sometimes you might be unaware
00:45:41 <zzo38> Or only partially aware
00:46:16 <int-e> only fungot is constantly aware
00:46:16 <fungot> int-e: fnord/ doc/ fnord/ dp/ 0262681374/ fnord/ fnord ( the red dot is where the final return value is a list
00:46:17 <cocof> i would say 100% unaware
00:47:00 <int-e> 0262681374 unlocks the gate to the gold mine
00:47:45 <cocof> although midas myth is so fake
00:48:00 <cocof> he was touching Earth while walking
00:48:07 <cocof> so entire planet would be gold :P
00:48:28 <zzo38> Well, I suppose, nobody can ever be fully aware, because that seems to be a violation of law of physics
00:48:43 <zzo38> cocof: Yes, of course, but that is how stories are written.
00:49:19 <cocof> yep and physics is a story
00:56:27 -!- cocof has quit (Remote host closed the connection).
01:14:05 -!- tromp_ has quit (Remote host closed the connection).
01:14:39 -!- tromp has joined.
01:23:21 <imode2> that did not just work.
01:23:33 <zzo38> Which one didn't work?
01:24:13 <imode2> just implemented the common 'pick' operation..
01:27:31 <imode2> https://hatebin.com/jgkozrchae
01:28:14 <imode2> it allows you to reach back into the stack to "pick" out an item.
01:30:31 <esowiki> [[User talk:A]] https://esolangs.org/w/index.php?diff=66171&oldid=66170 * Ais523 * (-527) Undo revision 66170 by [[Special:Contributions/A|A]] ([[User talk:A|talk]]): please stop provoking people, or you may end up blocked again
01:53:22 -!- Lykaina has quit (Quit: leaving).
02:41:53 <esowiki> [[The Subtyping Machine]] N https://esolangs.org/w/index.php?oldid=66172 * Ais523 * (+11621) document a language (although, this time, it wasn't me who created it)
02:49:25 <zzo38> Do you like PostScript Z-machine?
03:11:54 <imode2> I do rather enjoy PostScript, haven't written anything in Z-machine assembly though.
03:12:38 <zzo38> Did you ever write a implementation of Z-machine, though?
03:12:58 <zzo38> (I did so, in C, JavaScript, Glulx, and now also PostScript.)
03:14:11 <imode2> I did not. never had a desire to.
03:18:01 <zzo38> Also, mine are some of the only few that implement small-endian (as well as big-endian) (except the one with Glulx, which implements only big-endian Z-machine). Some implementations at least check the endianness and refuse to run small-endian story files, which is OK. But some fail to even check such thing.
03:19:57 <zzo38> Also, one of them I wrote, includes a debugger, too.
03:20:28 <zzo38> imode2: What programs have you written in PostScript, then?
03:20:31 <imode2> I'm impressed you did it in postscript..
03:20:53 <imode2> I actually haven't written any usable programs, just small snippets.
03:20:56 -!- imode2 has changed nick to imode.
03:21:07 <imode> which is kinda funny, I guess.
03:21:50 <zzo38> OK. What small snippets?
03:22:29 <imode> the stuff you write when you're initially learning postscript and other concatenative languages. factorial and fibonacci and such.
03:24:17 <zzo38> I wrote a JSON parser in PostScript also, and then after I posted it to comp.lang.postscript, someone else also made another JSON parser in PostScript.
03:24:53 -!- Frater_EST has joined.
03:25:44 -!- Frater_EST has quit (Read error: Connection reset by peer).
03:26:24 <imode> something I just realized is that I can actually store _arrays_ in the queue in a linear format..
03:26:55 <zzo38> Can you elaborate on that?
03:27:32 <imode> so I'm building a little queue-based language, i.e a language who's primary work area is a cyclical queue.
03:27:54 <imode> I've been trying to make it reasonably close to something like Forth.
03:28:37 -!- Frater_EST has joined.
03:29:33 <zzo38> OK. Once you have enough of it written, you can mention the document and then we can read
03:32:23 -!- Frater_EST has quit (Remote host closed the connection).
03:34:24 <imode> zzo38: https://repl.it/repls/WrongJauntyRectangle
03:35:05 <imode> line 169 is the actual program you're running when you hit "run".
03:39:25 <imode> using things like 'pick' as an "indexing" operator, along with length-prefixed sections of the queue, you could implement arrays.
03:44:57 <esowiki> [[Deklare]] N https://esolangs.org/w/index.php?oldid=66173 * A * (+274) Created page with "[[Deklare]] is a language where variables are initialized before they are declared. ==Example== <pre> a=b=c # a, b, and c are the same value. d=e=f # d, e, and f are the same..."
03:45:44 <esowiki> [[Deklare]] M https://esolangs.org/w/index.php?diff=66174&oldid=66173 * A * (+102)
03:49:27 <esowiki> [[Deklare]] M https://esolangs.org/w/index.php?diff=66175&oldid=66174 * A * (+119)
03:50:30 <esowiki> [[Deklare]] M https://esolangs.org/w/index.php?diff=66176&oldid=66175 * A * (+138)
03:54:11 -!- ais523 has joined.
03:54:42 <ais523> my latest bit of esolanging ridiculousness: https://codegolf.stackexchange.com/a/192843
03:55:03 <shachaf> Oh man, a non-referral link! So convenient.
03:58:02 <ais523> not for me, it's a pain to edit the referral out
03:58:34 <shachaf> But you only need to do it once, and you save n other people the work.
03:58:37 <ais523> fwiw, the SE devs don't seem to appreciate that a referral link might be viewed negatively
04:00:22 <ais523> well, the referral link mostly impacts the person who posted it (your most popular referral links are shown on your profile)
04:00:51 <shachaf> I try not to click on referral links as some sort of principle.
04:01:32 -!- ais523 has quit (Quit: sorry for my connection).
04:01:45 -!- ais523 has joined.
04:02:51 <shachaf> I've switched from compiling my thing with gcc to tcc by default, because it's so much faster.
04:03:00 <shachaf> Why do people put up with slow compilers?
04:05:25 <ais523> it depends on how much time the compiler saves me in a) debugging code and/or b) executing the program
04:05:56 <ais523> compared to the time cost of the compile
04:06:28 <ais523> at least in my case, I get really upset if the output asm is obviously suboptimal, which makes it hard to use any compiler atm, but I think most people aren't the same way
04:06:52 <shachaf> I mean -O0 compilation, of course.
04:07:47 <shachaf> If you compile your program many times and run it briefly, you should count the total time spent on optimizing against the time saved by generating better code.
04:08:29 <shachaf> You need quite a lot of optimization to offset 500ms extra of compilation time.
04:11:46 <ais523> I guess this depends on what sort of programs you run?
04:12:10 <ais523> typically if I'm using a compiled language, I expect the program to run for several minutes
04:12:27 <ais523> otherwise I'd have written it in a different language
04:13:19 <ais523> (or it might be a library, but in that case I'm going to be running tests on it, and my best use of time wrt testing is normally to write an exhaustive test or a fuzzer, both of which benefit hugely from speed)
04:31:09 -!- adu has quit (Quit: adu).
04:32:09 -!- Lord_of_Life has quit (Ping timeout: 246 seconds).
04:33:30 -!- Lord_of_Life has joined.
04:48:44 -!- wmww has quit (*.net *.split).
04:48:45 -!- xylochoron[m] has quit (*.net *.split).
04:48:45 -!- Taneb has quit (*.net *.split).
04:48:46 -!- zemhill_________ has quit (*.net *.split).
04:49:25 -!- xylochoron[m] has joined.
04:49:56 -!- wmww has joined.
04:50:50 -!- Lord_of_Life has quit (Ping timeout: 240 seconds).
04:54:16 -!- Taneb has joined.
04:54:16 -!- zemhill_________ has joined.
04:54:30 -!- Lord_of_Life has joined.
05:25:45 <esowiki> [[Category:Deque-based]] https://esolangs.org/w/index.php?diff=66177&oldid=14068 * YamTokTpaFa * (+24)
05:27:55 -!- Frater_EST has joined.
05:30:23 <esowiki> [[Talk:Pxem]] https://esolangs.org/w/index.php?diff=66178&oldid=66069 * YamTokTpaFa * (+348) /* This language should be one of deque languages */ new section
05:51:47 -!- FreeFull has quit.
05:53:22 -!- Frater_EST has quit (Ping timeout: 245 seconds).
06:07:46 <esowiki> [[Special:Log/newusers]] create * Yqloss * New user account
07:00:15 <imode> really getting used to working in a queue-based language. with some primitive operations, it's as natural as working in a stack-based language.
07:01:49 <imode> with the added benefit that "impure" operations like `pick` and `roll` can be implemented in the language itself. still trying to figure out how to do things like swapping.
07:05:00 <imode> 'swap' is unique in that it changes the order of the first two queue elements... hm.
07:05:46 <imode> doing that only with `dup`, `roll`, `last` and `drop` is my goal.
07:07:35 <shachaf> Oh, is this related to https://esolangs.org/wiki/Call_Queue ?
07:07:42 <shachaf> I wanted a language with a call queue once.
07:07:44 <imode> nope, my own language.
07:07:50 <imode> no call queue, but a data queue.
07:08:38 <shachaf> For some reason I never thought about the fact that Forth has a separate call stack.
07:08:56 <imode> yup, only reason it's TC.
07:09:10 <imode> that and the fact that it has access to main memory. but strip that away, that's the only way.
07:09:19 <imode> https://repl.it/repls/PoorUnevenDeskscan
07:10:25 <imode> the interpreter has a few bugs (conditional, mainly, because I'm too lazy to implement an 'if' macro.)
07:14:12 <imode> I want to experiment with a call queue, though. I had something like it with Modal, but that's because it was based on term rewriting, i.e the whole program was stored in a queue and rewrote itself.
07:15:29 <imode> I imagine if you allow manipulation of the call queue via words (like Forth does with the return stack), you can use it as a stack.
07:15:57 -!- Frater_EST has joined.
07:23:13 <b_jonas> imode: I don't think so, because forth can also pick the data stack
07:24:30 <imode> that is true. can also roll it.
07:25:33 -!- ais523 has quit (Quit: quit).
07:33:12 <b_jonas> imode: factorial and fibonacci => I prefer catalan numbers, see http://www.math.bme.hu/~ambrus/pu/catalan.ps
07:33:31 <imode> I don't consider `pick` and `roll` to be pure, though.
07:33:56 <b_jonas> it even does the calculations in postscript
07:34:15 <b_jonas> dunno why, that must have been inconvenient, I wouldn't have made it that way if I had to today
07:37:42 <b_jonas> cocof => no, you're forgetting that Midas was a rich king, so he didn't walk anywhere, he was carried by his servants in a hand-lifted palanquin, and had carpets everywhere, presumably even in the toilet
07:39:55 <b_jonas> that said, even if coding in postscript is stupid, the lesson that it shows of how handshakes correspond to triangulations, is a useful one
07:40:07 <b_jonas> because it's a nontrivial bijection
07:40:26 <b_jonas> it's worth to try to prove it without looking at the code, by looking at the output only
07:48:28 -!- b_jonas has quit (Remote host closed the connection).
08:10:31 <esowiki> [[User talk:Ais523]] https://esolangs.org/w/index.php?diff=66179&oldid=66153 * YamTokTpaFa * (+254) /* Any features to insert mathematical formulas like TeX style? */ new section
08:14:59 -!- imode has quit (Remote host closed the connection).
08:22:34 <esowiki> [[()]] https://esolangs.org/w/index.php?diff=66180&oldid=44645 * YamTokTpaFa * (+235) added some descriptions, though not done yet
08:57:03 -!- arseniiv has joined.
09:10:59 -!- FraterEST has joined.
09:14:02 -!- Frater_EST has quit (Ping timeout: 240 seconds).
10:39:23 -!- Frater_EST has joined.
10:41:47 -!- FraterEST has quit (Ping timeout: 276 seconds).
11:29:10 -!- tromp has quit (Remote host closed the connection).
12:13:58 -!- Phantom_Hoover has joined.
12:21:36 -!- xkapastel has joined.
12:24:55 <esowiki> [[Talk:Pxem]] M https://esolangs.org/w/index.php?diff=66181&oldid=66178 * A * (+111) /* This language should be one of deque languages */
12:25:10 <esowiki> [[Talk:Pxem]] M https://esolangs.org/w/index.php?diff=66182&oldid=66181 * A * (+151)
12:30:20 -!- Frater_EST has quit (Ping timeout: 276 seconds).
12:51:06 -!- Frater_EST has joined.
13:20:41 -!- Lykaina has joined.
13:21:10 <Lykaina> ugh...bugs are so annoying
13:38:25 -!- FreeFull has joined.
13:50:25 -!- b_jonas has joined.
14:06:51 -!- Phantom_Hoover has quit (Ping timeout: 258 seconds).
14:28:24 -!- tromp has joined.
14:41:05 -!- Sgeo has joined.
14:42:48 -!- Sgeo_ has quit (Ping timeout: 245 seconds).
14:50:24 <Lykaina> hold on...how long have i been debugging?
14:59:30 <b_jonas> Lykaina: do you have an updated version of the formatted docs?
14:59:47 <b_jonas> also, why does echidna have so many instructions now?
15:03:36 -!- tromp has quit (Remote host closed the connection).
15:06:17 <Lykaina> b_jonas: 1) About to make it. 2) Everything not under "S" is added to avoid bugs.
15:07:32 <Lykaina> 3) i gotta make sure of something...
15:09:11 <Lykaina> gonna make the formatted docs for 0.11a0 in a moment
15:11:19 <b_jonas> Lykaina: this is strange, haven't you changed how addressing modes work so that you write `@0000` to either read from the first word of memory or write to it? the instruction docs seem to suggest it's still the older way, where you say `@0000` to read from the first word and `=0000` to write into it
15:13:56 <b_jonas> hmm, so the previous M operation is gone
15:14:16 <Lykaina> i'll try to fix it in the 11a0 doc
15:14:29 <b_jonas> why do you need all these many-argument bitwise thingies? can't you just have four simple ones that take two input arguments and one output like the rest of the arithmetic does?
15:17:04 <Lykaina> nobody else does it, but maybe someone should
15:18:34 <b_jonas> erk, these control instructions are getting more complicated
15:18:40 <b_jonas> I liked while they were simple
15:18:50 -!- imode has joined.
15:20:03 <b_jonas> especially given that the language doesn't seem to have any easy way to avoid the if-block statements
15:20:09 -!- Frater_EST has quit (Ping timeout: 268 seconds).
15:21:00 <Lykaina> what should i add next time around?
15:21:07 <b_jonas> heh, you now have 32-bit arithmetic builtins? but they work in a somewhat strange way
15:21:34 <b_jonas> do you really need them to take separate addresses for the low and high bytes, as opposed to always reading from two adjacent addresses?
15:22:26 <b_jonas> and there's no 32-bit move... interesting
15:24:02 <b_jonas> nor any signed compare or 32-bit compare, so you'll use three or four comparisons for that, fun
15:24:21 <b_jonas> and you can't even use the bitwise instructions to help anymore, because they're so long
15:24:49 <b_jonas> I guess you can still use subtract, then it only takes two subtractions and one compare to do a 16-bit signed comparison
15:25:53 <Lykaina> i can always recode afteer i'm done with the documentation
15:34:17 <Lykaina> i no longer need to rely on L and M, but I like them. I plan on making AND, OR, XOR, and NOT instructions for both 16-bit and 32-bit in the next version. I'll also take your advice into consideration.
15:37:18 -!- tromp has joined.
15:40:11 <b_jonas> I'd recommend AND, OR, XOR, ANDC instead
15:40:27 <b_jonas> but the traditional AND, OR, XOR, NOT also works
15:41:25 <b_jonas> Lykaina: AND with the right input argument complemented
15:41:41 -!- tromp has quit (Ping timeout: 246 seconds).
15:42:26 -!- adu has joined.
15:43:59 -!- tromp has joined.
15:56:24 <b_jonas> Lykaina: it would have been easy if you just kept the previous version of M (or was it L?) that takes only one extra argument and that one can only be one of 16 possibilities
15:56:46 <b_jonas> I could just think of that as 16 instructions with a two-character opcode in the source code
15:57:28 -!- tromp has quit (Remote host closed the connection).
15:58:52 <b_jonas> well, maybe not, because that would give too many instructions total, but you could fix that by restricting the addressing modes in all instructions in general
16:00:53 <b_jonas> or do it the opposite way: add post-increment and pre-decrement addressing modes, allow all 100 combinations to each arithmetic and bitwise instruction :-)
16:12:40 <b_jonas> fungot, what is your favorite flavor of ice cream, and what is your favourite flavour of ice cream?
16:12:41 <fungot> b_jonas: postgresql for database.
16:16:44 <imode> what's the end goal behind echidna?
16:18:06 <Lykaina> to create a programmable console-based language
16:18:33 <Lykaina> a console-based language i can program in
16:19:21 <b_jonas> imode: I think it's for learning or something
16:21:10 <imode> "console-based language"?
16:22:18 <Lykaina> i mean, i don't want a gui
16:28:00 <Lykaina> b_jonas: http://sif.lesidhetree.com/sara/echidna/Echidna%20v0_11a0.pdf
16:28:16 -!- tromp has joined.
16:30:23 -!- Lord_of_Life_ has joined.
16:32:03 <b_jonas> huh, now you changed the comparison conditionals?
16:32:38 <Lykaina> there were bugs with the original system
16:33:41 -!- Lord_of_Life has quit (Ping timeout: 265 seconds).
16:33:48 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
16:42:19 <Lykaina> i have one more change planned for that. I want to be able to call subs indirectly
16:44:26 <Lykaina> i know the language looks a lot different than it used to
16:47:46 <Lykaina> b_jonas: you were saying something about possibly having too many instructions?
16:48:33 <b_jonas> Lykaina: I'd still recommend you to find all subroutine starts once, when loading the program, make a table of their names and addresses in source code, ideally sort it too,
16:49:07 <b_jonas> and make the subroutine calls just look up sub names there, rather than reading the whole source
16:49:32 <Lykaina> i agree, just not sure how to do that
16:50:16 <b_jonas> Lykaina: first do it without the sorting
16:50:46 <b_jonas> even that helps because there are much fewer subs than source code characters
16:52:04 <b_jonas> read through the source code, find all the sub heading statements, as you find them, put them in successive entries of a table that stores the name of the sub and its offset in the source code array
16:53:45 <b_jonas> for a subroutine call, read through the names in that table until you find a matching name,
16:54:02 <b_jonas> then go to the offset in the source code given in that table
16:54:39 <b_jonas> then you're only reading through a smaller table rather than the source code which has lots of instructions that aren't sub headings
16:56:25 <Lykaina> is it a good idea to have the name of the sub, when called, be in memory as a possible option, as in indirectly?
16:57:25 -!- tromp has quit (Remote host closed the connection).
16:57:30 <Lykaina> oh...the table would have to be 128 KiB for that to work...
16:58:49 -!- tromp has joined.
16:59:05 <Lykaina> so, what do you recommend?
17:11:44 <Lykaina> gonna have to move some letters around again
17:19:45 -!- hermez has joined.
17:21:56 -!- tromp has quit (Remote host closed the connection).
17:44:05 -!- imode has quit (Remote host closed the connection).
17:58:34 -!- imode has joined.
18:04:46 -!- hermez has quit.
18:30:03 -!- tromp has joined.
18:31:03 <imode> surprised that there's very little literature on queue machines vs. stack machines.
18:31:44 <int-e> imode: well there are tag systems :)
18:32:14 <int-e> queues are awkward, except when used as pipes between various stages of a process.
18:32:24 <imode> hehe, yeah, but I mean actual, y'know, processors.
18:32:33 <imode> I find them pretty natural actually. it's weird.
18:33:49 <int-e> imode: Oh have you found the Mill architecture? Its "belt" is a sort of queue.
18:34:19 -!- Phantom_Hoover has joined.
18:34:20 <imode> I've heard of it, isn't that the one with the rolling register file?
18:34:40 <imode> i.e a few spots down from the head of the queue are directly addressible?
18:35:27 <int-e> (Disclaimer: I do not know much about that architecture; I'm not convinced it's practical; and I have no clue whether they will ever produce real hardware. I'm really rather skeptical about it.)
18:35:39 <int-e> imode: I'd think the whole (finite) queue is addressable.
18:35:46 <imode> I think that was my gist as well when I saw it... also, ech.
18:36:36 <int-e> The belt is a cute idea. But one cute idea doesn't make a processor. :)
18:37:35 <imode> there's some literature on using queue machines to evaluate expressions in parallel via partitioning the dependency graph between expressions. it looks like a lot of the literature around queue machines is locked up in datalow architectures.
18:37:38 <shachaf> The Mill has a whole bunch of cute ideas!
18:37:40 <int-e> (Real CPUs probably end up doing something similar... via register renaming.)
18:37:49 <imode> yeah there are register windows and stuff.
18:37:55 <imode> you never really see that though.
18:38:55 <imode> sorry, dataflow. missed an f.
18:39:35 <int-e> imode: Yeah, but that didn't stop me from wondering what a datalow could be... I mean, given the channel and all.
18:39:53 <imode> hahahahaha, good point.
18:44:33 <imode> int-e: if you're curious, https://repl.it/repls/SparklingHealthyArraylist
18:44:37 <int-e> shachaf: There's a huge hole in my knowledge about modern processors when it comes to assessing the viability of that Mill architecture... namely, I don't know how much of the parallelism that superscalar CPUs discover dynamically can actually be determined statically.
18:44:58 <imode> a queue-based Forth-like.
18:45:14 <shachaf> int-e: Yes, I'd also like to know the answer to that question.
18:45:52 <imode> that 'pick' actually works, by the by. `5 range 3 $ pick` yields you `4 1 2 3 4 5 0`
18:46:20 <imode> you could probably eliminate `roll`, too.
18:47:10 <shachaf> int-e: I think they had a claimed number which was pretty high and maybe cited some paper for it?
18:48:37 <imode> there's a bug in `range` (and subsequently, `factorial-recursive`) that causes it to clobber the queue when generating the range and then performing the multiplications.
18:48:54 <imode> do it with a bare queue and it's fine, but do it with some work already done and it breaks. I was lazy.
18:51:55 <int-e> shachaf: I'm rather skeptical mainly because I imagine that it involves predicting the level of the memory hierarchy that data resides in. that may work for some inner loops... but oftentimes it will just not be possible.
18:52:14 <Lykaina> indirect sub calls should work, though i haven't tested them
18:52:49 <b_jonas> Lykaina: that's not really what I said, but sure, if you want a dense array indexed by name, you can do that, it just gets uglier to write programs because you can't give more descriptive names to the subs
18:53:02 <int-e> shachaf: Maybe they (the Mill people) expect that some prefetching instructions will work for that?
18:53:24 <b_jonas> Lykaina: have you at least made sure that it gives some sort of error if you try to call a nonexistant sub?
19:00:42 <Lykaina> should i change the bitwise to just ADD, ADDC, OR, XOR?
19:02:03 <b_jonas> Lykaina: that's what I suggest, but it's your choice really, you're the one who's going to use this language
19:04:18 <shachaf> int-e: I was looking for a reference but all the information is in multi-hour videos so it's hopeless.
19:17:27 -!- adu has quit (Quit: adu).
19:34:16 <zzo38> Yes, I think they should write a text rather than trying to make most stuff as videos instead.
19:35:14 <Lykaina> you're gonna love the new M? command
20:19:50 <Lykaina> http://sif.lesidhetree.com/sara/echidna/Echidna%20v0_11a1.pdf
20:37:32 -!- cocof has joined.
20:37:34 <Lykaina> http://sif.lesidhetree.com/sara/echidna/Echidna%20v0_11a1a.pdf
20:38:12 <cocof> someone hacked EOS
20:38:18 <cocof> and gained 110,000 usd :)
20:38:43 <cocof> https://cointelegraph.com/news/hacker-spends-1k-to-win-over-110k-in-eos-betting-game-using-rex
20:39:37 -!- atslash has quit (Ping timeout: 245 seconds).
20:45:08 -!- atslash has joined.
20:47:01 <Lykaina> http://sif.lesidhetree.com/sara/echidna/Echidna%20v0_11a1a.pdf fixed
20:49:20 -!- arseniiv has quit (Ping timeout: 246 seconds).
20:59:34 -!- xkapastel has quit (Quit: Connection closed for inactivity).
21:11:38 -!- Lymia has quit (Quit: Hugs~ <3).
21:45:09 -!- Lymia has joined.
22:20:40 <kmc> is life good
22:21:20 <kmc> I'm feeling down as well
22:21:22 * kmc offers hugs
22:23:11 <Lykaina> does anyone want to look at the hopefully fixed version of Echidna? i'm not in the mood to make changes right now
22:24:57 <Lykaina> btw, what defines an esoteric language?
22:25:30 <cocof> esoteric is a veil
22:26:20 <cocof> its a bunch of symbols
22:28:51 <cocof> what is a language?
22:30:41 <kmc> Lykaina: I'd say it's a language whose primary design goal is to be fun, interesting, weird, and/or frustrating, rather than anything "practical"
22:30:58 <kmc> though I would exclude "serious" research languages even though "interesting" is arguably the goal there
22:31:18 <kmc> it's a bit hard to say
22:31:22 <kmc> is my Qoppa an esolang
22:31:36 <kmc> 'twas made as a demonstration of how tiny you can make a scheme-like language using fexprs
22:32:00 <kmc> (no special forms, only 3 eval cases, only a handful of built-ins)
22:32:07 <kmc> it got cited in a couple of papers
22:32:19 <kmc> and it's kind of based on someone's PhD thesis
22:33:27 <kmc> Lykaina: I sometimes say that C++ (and especially C++ template metaprogramming) is an esolang because it has that same bizarre mind-twisting nature, but by accident
22:33:52 <kmc> in exploit programming you frequently encounter "found esolangs" as well
22:34:01 <kmc> such as alphanumeric-only x86 code
22:34:44 <Lykaina> Echidna is just for fun and to releive boredom. I tend not to care about consistancy between pushes to the repo.
22:35:00 <kmc> or programs stitched together from an arbitrary collection of ROP gadgets
22:36:09 <Lykaina> i might use what i learn from making it to make something more usable
22:38:36 <Lykaina> i got annoyed with only having 20 ops, so i made subops.
22:39:28 <kmc> the found esolangs are sometimes called "weird machines" in infosec
22:39:44 <HackEso> kmc did not run the International Devious Code Contest of 2013.
22:39:52 <b_jonas> ^ this wisdom entry is somewhat underwhelming
22:39:53 <kmc> ELF unwinding info could be considered another example
22:40:53 <kmc> when people design file formats to have a certain type of flexibility
22:40:58 <b_jonas> kmc: or https://esolangs.org/wiki/The_Subtyping_Machine as a found esolang
22:41:11 <kmc> they often don't consider whether it allows nontrivial computation
22:41:17 <kmc> within the format parser
22:42:30 <b_jonas> which is why I like to do obfuscated code in non-esoteric languages, to point out interesting features of those languages, like https://www.perlmonks.com/?node_id=1008395
22:43:10 <b_jonas> shachaf: it has to have unwinding info so that you can throw and catch exceptions through multiple compilation units
22:45:41 <b_jonas> yeah, that's why this sort of thing is easier in perl
22:53:10 <int-e> sort of... http://wiki.dwarfstd.org/index.php?title=Exception_Handling#Relationship_with_DWARF
22:53:30 <shachaf> Oh, it's DWARF-like but not DWARF.
22:53:48 <shachaf> If I don't use C++ this is irrelevant, right?
22:54:41 <int-e> Might be used by other languages?
22:55:34 <shachaf> I think all algorithms should be named after the Unicode code point that looks most visually similar to their execution graph.
22:56:59 <zzo38> I think that there might not be such a code point. Sometimes there might be one in another character set, but, there might not be a suitable character in another character set either. And, sometimes two algorithm will have a similar execution graph, and then it is same name and that is no good, either. So, I think it won't work
22:58:30 <kmc> shachaf: Rust uses it
22:58:33 <kmc> probably other things
22:58:41 <kmc> I think there's even exception support for C as a GNU extension?
22:58:46 <kmc> though generally unwinding thru C code is UB
23:01:02 <shachaf> Seems like panic should maybe just be longjmp.
23:01:03 -!- tromp_ has joined.
23:01:24 <shachaf> I guess Rust is all about resource cleanups, though.
23:04:02 -!- tromp has quit (Ping timeout: 240 seconds).
23:05:29 -!- tromp_ has quit (Ping timeout: 246 seconds).
23:17:40 -!- Phantom_Hoover has quit (Quit: Leaving).
23:21:20 <Lykaina> http://sif.lesidhetree.com/sara/echidna/Echidna%20v0_11a1a_1.pdf very minor formatting change
23:23:54 -!- FreeFull has quit.
23:27:49 -!- b_jonas has quit (Remote host closed the connection).
23:37:47 <Lykaina> http://sif.lesidhetree.com/sara/echidna/Echidna%20v0_11a1a_2.pdf a different change
23:39:28 <Lykaina> there was a typo in the previous one
23:41:23 <kmc> shachaf: yes, a thread is supposed to be able to clean up as it panics
23:43:56 <Lykaina> i just overwrote the pdf with the new one
23:45:03 -!- xkapastel has joined.