00:18:57 -!- MDude has joined.
00:37:47 <esowiki> [[Special:Log/newusers]] create * Xanman12321 * New user account
00:37:58 -!- erkin has quit (Quit: Ouch! Got SIGIRL, dying...).
00:42:45 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=55456&oldid=55453 * Xanman12321 * (+219)
00:43:06 <esowiki> [[User:Xanman12321]] N https://esolangs.org/w/index.php?oldid=55457 * Xanman12321 * (+13) Created page with "Hey, I'm Xan."
00:53:55 -!- ais523 has quit (Remote host closed the connection).
00:55:08 -!- ais523 has joined.
00:59:15 <tswett> Y'all know about skullcode, right? http://skullcode.com/
00:59:46 <tswett> It's this thing. It's not completely obvious what, exactly, it is.
00:59:47 <ais523> are you going to try to convince me to click the link?
01:00:10 <tswett> I mean, it's a "self-hex-editor" hosted in some sort of VM.
01:00:29 <tswett> It's a hex editor running on a VM, where the thing that it's editing is the memory of that VM.
01:01:09 <ais523> doesn't that make it a codenomic, technically?
01:01:40 <tswett> But it's not multi-player.
01:01:43 <ais523> not normally; sometimes I logread when I have nothing better to do (not the case right now!) but in such cases I'll typically not be on IRC at the time
01:01:43 <tswett> shachaf: do I? I don't.
01:01:49 <ais523> if someone suggests logreading then that'll normally prompt me to read
01:01:56 <tswett> Anyway, let me segue into my question.
01:02:19 <tswett> Does anyone know of a browser-hosted VM (similar to skullcode) where you can edit, save, and load snapshots of the VM state?
01:02:27 <tswett> Preferably a VM with a simple architecture, like MIPS?
01:02:50 <shachaf> I wrote a bit about for-else above but by now I've had a whole bunch of other thoughts.
01:02:59 -!- ais523 has quit (Quit: sorry for my connection).
01:03:11 -!- ais523 has joined.
01:04:02 <ais523> <shachaf> In Ruby you can write a regular while function that can be used like while(p) { ... }, right? ← this is a defining feature of call-by-name languages
01:04:24 <ais523> some languages are normally call-by-value but let you explicitly lazify an argument, which makes them effectively call-by-name in that respect
01:05:20 <shachaf> That's not exactly what's going on there, I think.
01:06:03 <shachaf> You can't reevaluate an arbitrary argument, just restart the entire function from the top, including argument evaluation.
01:06:25 <shachaf> Also when people say call-by-name I usually think of languages without mutable variables.
01:06:32 <HackEso> /hackenv/bin/`: line 5: ocaml: command not found
01:06:37 <ais523> was going to give an example
01:06:48 <shachaf> I mean, I believe you, it makes sense.
01:06:55 <ais523> shachaf: that defeats most of the point of call-by-name if you don't have mutable variables
01:07:00 <ais523> as that makes the calling convention invisible
01:07:18 <ais523> so you don't know or care if it's call-by-name or not and in most contexts, call-by-value is more efficient
01:08:37 <shachaf> Unless an argument doesn't terminate or something like that.
01:08:51 <ais523> that's effectively an effect too
01:16:42 <ais523> shachaf: here, here's a program I just wrote: http://nethack4.org/pastebin/15.txt
01:16:52 <ais523> and it shows off call-by-name pretty well
01:17:07 <ais523> although not the control flow behaviour (Algol 60 control flow is painful), more the basic idea of CBN
01:17:19 <ais523> it shows off re-evaluating arbitrary arguments, at least
01:17:46 <ais523> (OK, technically it isn't proper Algol 60 as Algol 60 doesn't have a print statement, but my Algol 60 compiler adds one as an extension)
01:23:55 <ais523> you can probably guess what output gets printed
01:24:42 <esowiki> [[Roie]] https://esolangs.org/w/index.php?diff=55458&oldid=55448 * Galaxtone * (+112) Just incase.
01:30:20 <ais523> actually that code feels a bit icky to me from a types point of view, functions should be distinguishing between integer lvalues and integer rvalues
01:32:12 -!- erkin has joined.
01:45:19 -!- variable has joined.
01:55:14 -!- erkin has quit (Quit: Ouch! Got SIGIRL, dying...).
02:14:56 -!- erkin has joined.
02:20:40 -!- Galaxtone has joined.
02:20:48 <Galaxtone> this roie language is giving me some real trouble to make it actually work
02:20:58 <Galaxtone> Might have to add yet another instruction
02:34:17 <esowiki> [[User:Xanman12321]] https://esolangs.org/w/index.php?diff=55459&oldid=55457 * Xanman12321 * (+34)
02:40:25 <esowiki> [[User:Xanman12321/Consequences]] N https://esolangs.org/w/index.php?oldid=55460 * Xanman12321 * (+573) Created page with "'''Consequences''' is an esolang very similar to Brainfuck, however each command does something unwanted. {| class="wikitable" |- ! Command !! Extra action |- | > || Decrement..."
02:47:12 <ais523> that's userspace, so it's probably a draft rather than a final version
02:48:49 <ais523> I was wondering if it was TC until I saw the side effect of +
02:48:56 <ais523> now I think it probably is TC, although I'm not sure
02:49:17 <ais523> there might be something specific you can't do that you need to but I can't see anything obvious
02:49:36 <ais523> I think you mostly use + to go left, > to go right, - to adjust cells
02:49:55 <ais523> and leave enough junk elements on the tape that you can throw away most of the side effects in places you don't care about
02:50:23 <esowiki> [[User:Xanman12321/Consequences]] https://esolangs.org/w/index.php?diff=55461&oldid=55460 * Xanman12321 * (-573) Blanked the page
02:51:01 <esowiki> [[User:Xanman12321/Consequences]] https://esolangs.org/w/index.php?diff=55462&oldid=55461 * Xanman12321 * (+573)
02:51:47 <esowiki> [[Special:Log/move]] move * Xanman12321 * moved [[User:Xanman12321/Consequences]] to [[Esolang:Xanman12321/Consequences]]
02:52:01 <ais523> oh, I think they're trying to move it to mainspace
02:52:06 <ais523> I'd better intervene, screwed-up moves can be hard to fix
02:52:14 <esowiki> [[Special:Log/move]] move * Xanman12321 * moved [[Esolang:Xanman12321/Consequences]] to [[Xanman12321/Consequences]]
02:52:32 <esowiki> [[Special:Log/move]] move * Ais523 * moved [[Esolang:Xanman12321/Consequences]] to [[Consequences]]: I assume the author's trying to move this to mainspace
02:53:01 <esowiki> [[Special:Log/delete]] delete * Ais523 * deleted "[[User:Xanman12321/Consequences]]": Broken redirect
02:53:02 <Galaxtone> He already moved it back berfore you did that
02:53:23 <esowiki> [[Special:Log/move]] move * Xanman12321 * moved [[Xanman12321/Consequences]] to [[Consequential]]
02:53:35 <esowiki> [[Consequential]] https://esolangs.org/w/index.php?diff=55470&oldid=55468 * Xanman12321 * (+1)
02:54:07 <shachaf> I kind of want to write an implementation of this block language.
02:54:15 <shachaf> But it might be a lot of work.
02:54:16 <esowiki> [[Special:Log/delete]] delete * Ais523 * deleted "[[Consequences]]": Broken redirect
02:54:39 <shachaf> And I'm mostly procrastinating on something important by thinking about it.
02:54:47 <esowiki> [[Special:Log/delete]] delete * Ais523 * deleted "[[Xanman12321/Consequences]]": Broken redirect: redirect left behind after a chain page-move
02:54:49 <Galaxtone> sorry mate, looks like you were trying to help but just ended up messing up in the end.
02:55:10 <ais523> no, he didn't move it back
02:55:15 <ais523> he moved it to three different titles
02:55:19 <ais523> and I had to clean up after each of them
02:55:39 <Galaxtone> He has been on the discord and just created his account
02:55:41 <ais523> <ais523> I'd better intervene, screwed-up moves can be hard to fix ← looks like I was slightly too slow on the intervening, but luckily it was screwed up in a way that was fairly easy for an admin to fix
02:55:54 <Galaxtone> I'll inform him of this redirect "issue".
02:55:57 <ais523> what's the page name /meant/ to be? if it's Consequential, then all is fine
02:56:19 <ais523> the basic rule is that you can't move the same page twice without admin help, or things end up getting slightly broken
02:56:39 <ais523> but quite a few people try to get round this issue via copy-and-paste which makes things a lot worse
02:56:57 <ais523> that didn't happen so the cleanup wasn't so hard
02:57:02 <Galaxtone> ok I've sent him an image of this so he knows about it.
02:57:11 <Galaxtone> so that he doesn't accidentally create redirects unkouwningly
02:58:06 <ais523> incidentally, when you create a new language, it's often worth adding it to categories (see https://esolangs.org/wiki/Esolang:Categorisation) and to the [[e:Language list]]
02:58:11 <ais523> err, https://esolangs.org/wiki/Language_list
02:58:26 <ais523> that makes it easier for other people to come across it
02:58:43 <ais523> which increases the chance that you get comments from other people, implementations, computational class proofs, etc.
02:59:13 <ais523> if the only places it shows are in Special:RecentChanges (and it stops being recent after a while…) and Special:Allpages, very few people are likely to ever see it
02:59:48 <esowiki> [[Consequential]] https://esolangs.org/w/index.php?diff=55471&oldid=55470 * Xanman12321 * (+44)
03:00:07 <esowiki> [[Consequential]] https://esolangs.org/w/index.php?diff=55472&oldid=55471 * Xanman12321 * (+1)
03:00:49 <esowiki> [[Consequential]] https://esolangs.org/w/index.php?diff=55473&oldid=55472 * Xanman12321 * (+8)
03:01:07 <esowiki> [[Consequential]] https://esolangs.org/w/index.php?diff=55474&oldid=55473 * Xanman12321 * (+0)
03:01:31 <esowiki> [[Consequential]] https://esolangs.org/w/index.php?diff=55475&oldid=55474 * Xanman12321 * (-3)
03:01:37 <esowiki> [[Consequential]] https://esolangs.org/w/index.php?diff=55476&oldid=55475 * Xanman12321 * (-1)
03:01:51 <esowiki> [[Consequential]] https://esolangs.org/w/index.php?diff=55477&oldid=55476 * Ais523 * (-12) site policy: links to userspace must have the "User:" visible
03:32:07 <Galaxtone> Wait did you just update your privacy policy?!?!
03:32:42 <ais523> nah, that's been a policy for years and years
03:32:59 <ais523> http://esolangs.org/wiki/Esolang:Policy
03:33:04 <Galaxtone> well I know plently of esolang pages which don't have User:
03:33:19 <ais523> since 2007: http://esolangs.org/w/index.php?title=Esolang:Policy&oldid=7955
03:33:23 <Galaxtone> `[[User:Galaxtone|Galaxtone]]` well there goes this.
03:33:23 <HackEso> /srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: [[User:Galaxtone|Galaxtone]]`: not found
03:33:40 <ais523> right, it's not that enforced because it's easy to miss it
03:33:52 <ais523> but the point is that we want to separate pages /about/ something or someone from pages /by/ something or somoene
03:34:13 <ais523> I can write more or less what I like on https://esolangs.org/wiki/User:ais523, but people visiting the page should know that it might be potentially biased or the like
03:34:16 <Galaxtone> time to go through all my contributions
03:35:05 <ais523> actually it was policy even before 2007 I think
03:35:33 <ais523> the Esolang:Policy page started off as observational, i.e. "this is a list of things that people got banned for disobeying even though there were no explicit rules", back when Esolang was pretty much a dictatorship
03:35:38 <ais523> nowadays we use it as a guide to what the rules are
03:35:47 <esowiki> [[Roie]] M https://esolangs.org/w/index.php?diff=55478&oldid=55458 * Galaxtone * (-10) Just learned it's against esolang "policy" to hide "User:" in user page links. ;-;
03:36:12 <Galaxtone> well now to apply that to like 5 other pages
03:37:09 <esowiki> [[Seeker]] M https://esolangs.org/w/index.php?diff=55479&oldid=55452 * Galaxtone * (-15) Just learned it's against esolang "policy" to hide "User:" in page links. ;-;
03:37:30 <esowiki> [[Schmuu]] M https://esolangs.org/w/index.php?diff=55480&oldid=55423 * Galaxtone * (-18) Just learned it's against esolang "policy" to hide "User:" in page links. ;-;
03:37:49 <esowiki> [[The Insane Esolang]] M https://esolangs.org/w/index.php?diff=55481&oldid=55420 * Galaxtone * (-10) Just learned it's against esolang "policy" to hide "User:" in page links. ;-;
03:38:21 <Galaxtone> Emoji-gramming doesn't show who created the language.
03:47:07 -!- variable has quit (Quit: /dev/null is full).
03:58:21 <shachaf> zzo38: Do you like this? https://www.youtube.com/watch?v=ar9WRwCiSr0
04:04:11 <shachaf> Also I guess that's somewhat on-topic in here.
04:48:28 <esowiki> [[Consequential]] https://esolangs.org/w/index.php?diff=55482&oldid=55477 * Galaxtone * (+404) Redid the layout a bit.
04:50:34 <ais523> Galaxtone: hmm, your friend deleted the end of the article by mistake
05:28:04 -!- arseniiv has joined.
05:29:42 -!- erkin has quit (Quit: Ouch! Got SIGIRL, dying...).
06:30:43 -!- oerjan has joined.
07:33:44 -!- imode has quit (Ping timeout: 256 seconds).
07:42:49 -!- xkapastel has quit (Quit: Connection closed for inactivity).
07:57:47 -!- oerjan has quit (Quit: Nite).
08:05:20 -!- sebbu2 has joined.
08:07:04 -!- Phantom_Hoover has joined.
08:07:41 -!- sebbu has quit (Ping timeout: 276 seconds).
08:13:36 -!- ais523 has quit (Quit: quit).
09:21:35 <esowiki> [[Special:Log/newusers]] create * Fyr * New user account
09:29:04 -!- wob_jonas has joined.
09:30:18 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=55483&oldid=55456 * Fyr * (+137)
09:31:30 <wob_jonas> shachaf: no, Rust always had return values from blocks, they were always expressions like do-blocks in perl
09:31:59 <wob_jonas> shachaf: the new feature is that now you can use a break statement for a bare labeled block, as opposed to just in a while loop with or without a label
09:32:10 <wob_jonas> and for such a break statement, you can also return a value, which isn't too new
09:33:42 <wob_jonas> it doesn't allow return values for while loops and for loops, for the technical reason that the return value wouldn't be defined if the condition is false the first time in a while loop or there are no iterations on the for loop
09:33:59 <wob_jonas> but forever loops always have at least one iteration, because they don't start with a condition, so it's no problem there
09:35:15 <wob_jonas> shachaf: I'd also like to note that my esolang geo has plain blocks and forever loops, and for both you have unconditional and conditional breaks that can deliver a return value for the block, but only for the innermost level, no labels or multi-level breaks
09:37:22 <shachaf> I thought saw an RFC for adding these things to Rust but maybe it was quite old.
09:37:32 <wob_jonas> and rust has supported multi-level breaks using loop labels for very long, but not through function/lambda boundaries
09:39:05 <wob_jonas> ruby and mathematica also have values for blocks, with not much difference between statements and expressions
09:40:27 <wob_jonas> in rust there's some slight difference, as in, you need a brace block (as opposed to just parenthesis) for semicolons or local variable declarations or other declarations, and brace blocks make the lexical scope of identifiers declared inside local into them and gets local variables declared in them destroyed at the end of the block (like C++)
09:41:05 <shachaf> I think I also want possible input values for blocks.
09:41:42 <wob_jonas> but brace blocks themselves are expressions that you can put anywhere in an expression and have a value, and all the control statements (if, while, for, case, loop) are statements you can put anywhere too (although while and for always return unit)
09:42:41 <wob_jonas> shachaf: you have those too, if you mean like the limited syntax support for local variables declared in the head condition of an if/while/for like in C++
09:42:54 <wob_jonas> I'm not sure what else you mean by input values
09:43:46 <shachaf> Hmm, well, how would you translate { it := for(a); ... } as described earlier?
09:44:03 <wob_jonas> um... described where? let me check the logs
09:44:56 <wob_jonas> shachaf: I don't understand the question. can you clarify?
09:45:25 <shachaf> I don't understand it either, exactly.
09:45:57 <shachaf> If you defined a "for" operator that iterates a thing and yields a value to the rest of the block, what code would it turn into?
09:48:30 <shachaf> Maybe something like: { L: Iterator it, end; start: it = a.begin(); end = a.end(); upkeep: if (it == end) break L; goto main; main: { ... }; end: ++i; goto upkeep; }
09:49:35 <wob_jonas> shachaf: in rust, the for loop always returns the unit value (), because that's how it's defined and that's what makes sense when it can have zero iterations. if you want a return value, you use a library method such as map, find, max, sum, fold, ...
09:50:11 <wob_jonas> or you can use a local variable and access it inside a for loop or in the callback of some of those methods
09:51:04 <wob_jonas> rust has mutable local variables like C++, perl, ruby, scheme, etc, so you can do this easily, unlike in haskell
09:51:27 <shachaf> You can do that but sometimes it doesn't make sense to have an uninitialized variable.
09:52:16 <wob_jonas> for the fold method, you give an initializer; for the find method, it returns an Option (which is like a Maybe in haskell)
09:53:36 <shachaf> OK, but I'm not talking about Rust.
09:54:24 <shachaf> There's no real reason to talk about C++ iterators either, of course, but they're a reasonable starting point.
09:56:35 <wob_jonas> shachaf: I think what rust does here is more or less reasonable
10:04:32 <wob_jonas> shachaf: for syntax and semantics of loops and statements and expressions, at least in a language that you may want to compile
10:04:48 <wob_jonas> (as opposed to some fully dynamically typed language that you'll always interpret)
10:05:27 <wob_jonas> (you know, one like ruby or perl where you can override most builtin ops)
10:09:33 <shachaf> But I specifically want this other syntax and semantis.
10:10:01 <shachaf> It's still all compiled, though, hopefully to equally efficient code.
10:11:04 <wob_jonas> shachaf: um, but what's the other syntax and semantics you're proposing?
10:14:45 <shachaf> Well, that's what I'm figuring out.
10:15:08 <shachaf> The syntax looks like { x := for(a); ...; }
10:16:22 <shachaf> It would do "for(x : a) { ... }"
10:16:39 <shachaf> For example, I don't know, { i := for(range(n)); j := for(range(m)); if (i < j); print (i,j); }
10:16:51 <shachaf> Each thing affects the rest of the block that comes after it.
10:17:06 <shachaf> I talked about this earlier but probably not very clearly.
10:23:35 <shachaf> I think "blocks that have an input" is similar to SSA
10:24:47 <shachaf> Also I guess conditional goto is standard in SSA.
10:25:01 <shachaf> With basic blocks/extended basic blocks and all that?
10:37:49 -!- Galaxtone has quit (Quit: Tis but a scratch).
11:32:34 <esowiki> [[Infbf]] N https://esolangs.org/w/index.php?oldid=55484 * Fyr * (+1346) Created page with "'''Infbf''' is an [[esoteric programming language]] by [[User:Fyr]]. It is a derivative of [[brainfuck]] with an infinite-dimensional hypercube tape where each dimension has t..."
11:33:41 <esowiki> [[User:Fyr]] N https://esolangs.org/w/index.php?oldid=55485 * Fyr * (+9) Created page with "[[Infbf]]"
11:37:09 -!- SopaXorzTaker has joined.
12:02:13 -!- xkapastel has joined.
12:40:04 <esowiki> [[Infbf]] https://esolangs.org/w/index.php?diff=55486&oldid=55484 * Fyr * (+200)
12:45:06 -!- variable has joined.
12:55:13 <esowiki> [[Infbf]] M https://esolangs.org/w/index.php?diff=55487&oldid=55486 * Fyr * (+8)
15:39:07 <HackEso> smlist 464: shachaf monqy elliott mnoqy Cale
15:42:42 -!- wob_jonas has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client).
15:54:20 <esowiki> [[Special:Log/newusers]] create * Seigel * New user account
16:01:46 -!- SopaXorzTaker has quit (Remote host closed the connection).
16:07:16 -!- SopaXorzTaker has joined.
16:42:11 -!- erkin has joined.
17:02:26 -!- Melvar has quit (Quit: thunderstorm).
17:19:29 -!- ais523 has joined.
17:25:07 -!- joast has quit (Quit: Leaving.).
17:29:47 -!- Melvar has joined.
17:35:57 -!- joast has joined.
17:39:17 <esowiki> [[Infbf]] https://esolangs.org/w/index.php?diff=55488&oldid=55487 * Fyr * (+88) Added implementation
17:48:24 -!- TIKOALA has joined.
17:49:01 -!- TIKOALA has left.
18:01:40 -!- Naergon has quit (Ping timeout: 260 seconds).
18:03:48 -!- sebbu2 has changed nick to sebbu.
18:47:24 -!- imode has joined.
18:58:16 -!- user24 has joined.
19:05:45 -!- MDude has quit (Ping timeout: 256 seconds).
19:07:27 -!- arseniiv has quit (Ping timeout: 240 seconds).
19:34:32 -!- imode has quit (Ping timeout: 256 seconds).
19:41:24 -!- xkapastel has quit (Quit: Connection closed for inactivity).
20:04:16 -!- sebbu2 has joined.
20:04:19 -!- SopaXorzTaker has quit (Remote host closed the connection).
20:07:59 -!- sebbu has quit (Ping timeout: 276 seconds).
20:38:56 -!- sebbu2 has changed nick to sebbu.
20:39:40 -!- MDude has joined.
21:23:43 <esowiki> [[Infbf]] https://esolangs.org/w/index.php?diff=55489&oldid=55488 * Fyr * (+25)
21:24:24 -!- iconmaster has joined.
22:05:30 -!- heroux has quit (Ping timeout: 260 seconds).
22:06:08 -!- heroux has joined.
22:11:50 -!- iconmaster_ has joined.
22:15:56 -!- iconmaster has quit (Ping timeout: 276 seconds).
22:24:47 -!- xkapastel has joined.
22:28:45 -!- imode has joined.
22:37:00 -!- imode has quit (Ping timeout: 256 seconds).
23:07:57 -!- danieljabailey has quit (Ping timeout: 240 seconds).
23:23:50 -!- Phantom_Hoover has quit (Remote host closed the connection).
23:25:52 -!- user24 has quit (Ping timeout: 260 seconds).
23:38:38 -!- user24 has joined.
23:55:59 -!- iconmaster__ has joined.
23:56:01 -!- oerjan has joined.
23:58:01 -!- friendlyGoat has joined.