←2020-04-12 2020-04-13 2020-04-14→ ↑2020 ↑all
00:01:47 -!- shachaf has joined.
00:02:33 <shachaf> https://www.youtube.com/watch?v=Imquk_3oFf4 is pretty impressive.
00:06:14 <esowiki> [[Talk:Pointless.]] N https://esolangs.org/w/index.php?oldid=70963 * LegionMammal978 * (+384) Created page with "It might be a good idea to call this "Pointless (Qpliu)" or something to make it more explicit that the language name does not include a literal period. (Potentially, Pointl..."
00:30:45 <zzo38> Does someone play Magic: the Gathering with draft and duplicate sealed both together?
00:33:06 -!- FreeFull has quit (Read error: Connection reset by peer).
00:35:55 <esowiki> [[Printf]] M https://esolangs.org/w/index.php?diff=70964&oldid=68188 * LegionMammal978 * (+14) fixed title
00:45:39 <esowiki> [[Probie]] M https://esolangs.org/w/index.php?diff=70965&oldid=69686 * LegionMammal978 * (-8) fixed link
00:48:13 <zzo38> One idea I thought of for Magic: the Gathering, is there is meld to make a single object from two objects, which are then two objects again when it leaves the battlefield, so I thought the other way would be something that causes the card to become two objects once it enters the battlefield, and then moving either or both of them causes it to become a single object again.
00:51:34 <zzo38> That is even more confusing, I think, but perhaps rules can be written which can work.
00:55:04 <zzo38> I thought, each half can have different characteristics, timestamps, controller, counters, status, damage, etc, but never different owners or zone.
01:01:24 <esowiki> [[PyText?!.]] https://esolangs.org/w/index.php?diff=70966&oldid=53077 * LegionMammal978 * (+17) fixed code block
01:08:09 <esowiki> [[Special:Log/move]] move * LegionMammal978 * moved [[Q-Bal]] to [[Q-BAL]]: fix capitalization
01:08:40 <esowiki> [[Q-BAL]] https://esolangs.org/w/index.php?diff=70969&oldid=70967 * LegionMammal978 * (+0) fixed capitalization
01:09:39 <zzo38> The problem is in case two effects conflict in which zone they are trying to move the two halfs to.
01:15:06 <zzo38> But, I think there are solutions to this too. One is the case of replacement effects, in which case the normal rules for replacement effects apply. The other case is if an effect tries to move one half to one zone and the other have to another zone, then it moves to the first zone, and the other half is no longer in the battlefield so the effect fails to find it and fails to move it.
01:31:34 -!- sftp has joined.
01:32:02 <esowiki> [[QKAS]] https://esolangs.org/w/index.php?diff=70970&oldid=45919 * LegionMammal978 * (+54) fixed links
01:46:02 -!- sftp has quit (Excess Flood).
01:46:18 -!- sftp has joined.
01:58:10 <esowiki> [[Qwertyuiopasdfghjkl;vb]] M https://esolangs.org/w/index.php?diff=70971&oldid=56020 * LegionMammal978 * (+14) fixed title
02:00:59 <Sgeo__> What file formats allow for one file that can be read in multiple formats?
02:14:10 <zzo38> Can you explain better what you mean, perhaps?
02:19:27 <ais523> Sgeo__: you mean like a polyglot?
02:19:53 <ais523> the main restriction is that the two formats can't require conflicting bytes at the same byte position (e.g. magic numbers that clash)
02:20:01 <Sgeo__> Yes, like a file format polygot, png and something else for instance. I copuld have sworn I saw one in a book about web securit
02:20:02 <Sgeo__> y
02:20:22 <ais523> normally, if there isn't something that obviously blocks it like that, you can make it work
02:20:38 <ais523> I vaguely remember that zip has its header at the end, so zip/something polyglots are common
02:21:30 <ais523> yep
02:21:38 <shachaf> Windows PE files don't have their header at the beginning, if I remember correctly?
02:21:41 <ais523> oh wow this format is stupid
02:22:06 <ais523> the zip file header comes at the end of the file, but its last field is free text (length-prefixed), it's variable length, and the header is at the start
02:22:19 <ais523> this implies among other things that it's possible to polyglot zip with itself without violating the format
02:22:22 <ais523> s oyou get an ambiguous zip file
02:23:13 <ais523> shachaf: there are two headers, one is the "MZ" magic number that has to go at the start but just indicates a DOS/Windows executable in general, there's a second header at a fixed offset that clarifies what sort of executable
02:23:32 <zzo38> You could have PNG and ZIP together; I have done that.
02:23:47 <shachaf> Hmm, maybe the MZ is still required, which would make sense.
02:24:04 <shachaf> But I vaguely remember something about a PE polyglot of some sort.
02:24:18 <ais523> "MZ" is probably short enough to work into a polyglot with something else
02:24:24 <ais523> source code, for example
02:24:53 <ais523> oh wow, could you create source code that compiles into itself?
02:24:56 <ais523> a sort of compile-time quine
02:25:19 <shachaf> Treating the compiler as an interpreter.
02:26:05 <esowiki> [[Rand.Next()]] M https://esolangs.org/w/index.php?diff=70972&oldid=31579 * LegionMammal978 * (+14) fixed title
02:26:18 <shachaf> I suspect it wouldn't be possible with typical architectures and languages.
02:26:18 <ais523> well, you could go further and make the resulting executable print itself when actually run, too
02:26:46 <ais523> the problem is that languages have a fixed executable stub, normally, which clearly isn't valid source code
02:26:58 <ais523> at least if we're talking about Windows .exe
02:27:11 <shachaf> You could generate .com
02:27:11 <ais523> and I'm not sure what sort of linker magic you'd need to replace it
02:27:17 <ais523> .com would be a lot easier, yes
02:27:21 <zzo38> COM format DOS programs do not have MZ at the beginning; it is x86 instructions.
02:27:45 <shachaf> But even that doesn't sound very feasible with most languages.
02:28:11 <ais523> you just need to start a comment in one or the other language as soon as possible
02:29:02 <shachaf> Hmm.
02:29:30 <ais523> bleh, '/' isn't a valid machine code instruction on x86
02:29:36 <ais523> err, on x86_64
02:29:42 <ais523> .com is 32-bit, though, it might be valid there
02:30:20 <ais523> ooh, it is
02:30:22 <ais523> also, I'm wrong
02:30:24 <ais523> .com is 16-bit
02:30:50 <shachaf> Hmm, https://www.felixcloutier.com/x86/das
02:30:53 <ais523> but "/*" corresponds to DAS followed by the first byte of a SUB instruction
02:30:55 <ais523> we can live with that
02:32:06 <ais523> actually we can't, short of inline asm
02:32:14 <ais523> but I guess inline asm is acceptable in a challenge like this
02:32:27 <ais523> or defining main as raw machine code, I guess
02:32:37 <shachaf> I thought your input would be assembly in the first place.
02:32:43 <ais523> oh, I was thinking C
02:32:50 <ais523> if very system-specific C
02:33:35 <shachaf> ; is CMP
02:35:02 <ais523> aww, I have a 16-bit compiler on this system but it seems to be missing the appropriate libraries to compile to DOS .com
02:35:22 <ais523> I guess the next question is "why do I have a 16-bit C compiler on this system" but I assume there was a reason at the time
02:36:01 <ais523> it takes K&R C as input; again I'm not entirely sure why
02:36:08 <ais523> but in my test program I had to correct "int main(void)" to "int main()"
02:36:27 <shachaf> `asm cmp eax, [rax]
02:36:28 <HackEso> 0: 3b 00 cmp eax,DWORD PTR [rax]
02:36:33 <shachaf> `cat ../bin/asm
02:36:33 <HackEso> ​#!/bin/sh \ echo "$1" > /tmp/asm.s; for o in ',' '-msyntax=intel -mnaked-reg,-M intel'; do if as ${o%,*} /tmp/asm.s -o /tmp/asm.o 2>>/tmp/asm.err; then objdump ${o#*,} -d --insn-width=20 /tmp/asm.o | sed -e "1,/0000000000000000/d" | perl -pe 'if (/^\s*(\w+:)\s*((?:\w\w )+)\s*(\S.*)$/) { ($a,$b,$c) = ($1,$2,$3); $_ = "$a $b ".($c =~ s/\s+/ /rg)."\n"; }'; exit; fi; done; cat /tmp/asm.err
02:37:03 <ais523> shachaf: you want most of the machine code program to be inside a string literal or comment from the point of view of the asm, and most of the asm to be goto'd over from the machine code program
02:37:17 <shachaf> Yes.
02:37:29 <shachaf> I was thinking of ; comments in an assembler.
02:37:52 <shachaf> It's easy enough if your language allows unprintable characters in comments, which I was thinking it wouldn't for some reason.
02:39:55 <ais523> that depends on the lexer more than anything else
02:40:07 <ais523> many languages even allow unprintables in string literals
02:43:42 <esowiki> [[Redivider]] https://esolangs.org/w/index.php?diff=70973&oldid=25372 * LegionMammal978 * (+36) /* External resources */ fixed link
02:48:29 <zzo38> There is different assembly language for different computer and also different assembly language for the same computer too.
03:00:00 -!- Taneb has quit (Quit: I seem to have stopped.).
03:00:37 <esowiki> [[Revomer]] https://esolangs.org/w/index.php?diff=70974&oldid=20094 * LegionMammal978 * (+50) /* External resources */ fixed links
03:01:38 -!- Taneb has joined.
03:11:49 <Sgeo__> Not sure I understand the .zip header thing. Can I have another format's magic at the end still?
03:12:10 <Sgeo__> WorldsPlayer .world files always begin with PERSISTER Worlds, Inc.
03:12:16 <Sgeo__> and end with END PERSISTER
03:14:27 <zzo38> Sgeo__: I don't know about ZIP. What I do know though is that you can append a ZIP archive to another file.
03:18:55 <Sgeo__> Turns out WorldsPlayer doesn't actually read past END PERSISTER. Thank you zzo38
03:21:46 <esowiki> [[Rflct]] M https://esolangs.org/w/index.php?diff=70975&oldid=37107 * LegionMammal978 * (+14) fixed title
03:22:03 <Sgeo__> It didn't work
03:22:56 <Sgeo__> zzo38, you're saying this should result in a valid zip? cat WorldsPlayer-956.world WorldsPlayer-956.zip > WorldsPlayer-9567.zip
03:24:07 <zzo38> Yes, although it is possible that some programs might not recognize it. It also might not work if the code that identifies the beginning of a ZIP file is found somewhere inside the WorldsPlayer file (it is "PK\x03\x04")
03:26:09 <Sgeo__> That's not the case here, so why isn't it opening
03:26:49 <Sgeo__> Oh maybe because what you said
03:27:28 <zzo38> Another possibility might be that the index at the end of the file requires absolute offsets, although I don't know whether or not that is the case.
03:28:16 <zzo38> But I don't think so; I seem to remember I have once concatenated a PNG and ZIP together and was able to open it with either a PNG or ZIP program just fine.
03:31:23 <ais523> <Sgeo__> Not sure I understand the .zip header thing. Can I have another format's magic at the end still? ← yes, the last field of the .zip header (which goes at the end of the file) is "comment", which gives you room to stick another magic number in there
03:31:58 <ais523> also, the .zip file header references other parts of the file relative to the /start/ of the file, so a pure concatenation won't work
03:32:10 <Sgeo__> ...how did unzip work?
03:32:18 <ais523> you can append to a .zip file without rewriting the first part of the file, but that requires small changes to the second part
03:32:34 <zzo38> Maybe I misremembered; I don't know
03:32:38 <ais523> Sgeo__: as far as I can tell from the specification, the format is ambiguous; you can write one file that's valid as a zip file in two different ways
03:32:45 <ais523> so presumably unzip has to pick one arbitrarily
03:32:46 <esowiki> [[Rogex]] https://esolangs.org/w/index.php?diff=70976&oldid=70840 * LegionMammal978 * (-181) /* Interpreter */ fixed code block
03:33:23 <zzo38> O, maybe different implementations work differently. That is also who I was unable to unzip a PDF/ZIP combination file with one program but another program worked, I suppose.
03:35:42 <Sgeo__> warning [WorldsPlayer-9567.zip]: 2438 extra bytes at beginning or within zipfile
03:35:42 <Sgeo__> (attempting to process anyway)
03:48:59 -!- MDude has quit (Quit: Going offline, see ya! (www.adiirc.com)).
03:59:17 <esowiki> [[Cool]] https://esolangs.org/w/index.php?diff=70977&oldid=66898 * Hdjensofjfnen * (+31)
04:21:40 -!- MDude has joined.
04:35:32 -!- Cale has quit (Ping timeout: 260 seconds).
04:36:16 <esowiki> [[Underload/Numbers]] https://esolangs.org/w/index.php?diff=70978&oldid=65919 * CatIsFluffy * (-7) This is a little embarrassing (up to 11 verified optimal under 1000 steps and 4998 stack characters
04:46:16 <esowiki> [[Underload/Numbers]] https://esolangs.org/w/index.php?diff=70979&oldid=70978 * CatIsFluffy * (-14) Trivial improvements
04:46:50 <esowiki> [[Underload/Numbers]] M https://esolangs.org/w/index.php?diff=70980&oldid=70979 * CatIsFluffy * (-2) I swear this is the last one of this round
04:47:28 -!- Cale has joined.
04:56:38 -!- hashtar has joined.
04:56:45 <hashtar> well ma friendz
04:57:03 <hashtar> does anyone have a knowledge about angels pls help me!
04:58:42 <hashtar> aaaaa neeed knowledge about two specific angels
04:58:55 <hashtar> and a voice in my head a man/woman voice speaking to me from depth
04:58:57 <hashtar> what is it?
04:59:58 <hashtar> step two forward and three left and own down to the right
05:00:01 <hashtar> where are you?
05:00:19 <hashtar> thats called the flash of lights
05:00:25 <hashtar> into the pit
05:01:30 <esowiki> [[Underload/Numbers]] M https://esolangs.org/w/index.php?diff=70981&oldid=70980 * CatIsFluffy * (-1) Sorry
05:01:48 <esowiki> [[Underload/Numbers]] M https://esolangs.org/w/index.php?diff=70982&oldid=70981 * CatIsFluffy * (-2) Not this again
05:05:05 <ais523> `? esoteric
05:05:10 <HackEso> This channel is about programming -- for the other kind of esoterica, try #esoteric on EFnet or DALnet.
05:07:10 <esowiki> [[Underload/Numbers]] M https://esolangs.org/w/index.php?diff=70983&oldid=70982 * Ais523 * (+37) cat; the category is arguably misnamed but it's our usual category for things like this
05:34:39 <zzo38> I don't have knowledge about angels, and I doubt many people here do, nor do I understand what you are talking about.
05:35:10 <zzo38> (You could try EFnet or DALnet, like the message from HackEso says, I suppose. Maybe they know, and if they don't know either, then I don't know who to ask; sorry.)
05:36:31 <zzo38> Is anyone think something about my idea I mentioned about the Magic: the Gathering? I thought to call it "fission", so, it is a fission card.
05:42:40 <hashtar> ok
05:42:43 <hashtar> thanks for your help
05:48:43 -!- Maitor has quit (Ping timeout: 240 seconds).
05:51:04 -!- Maitor has joined.
05:54:20 -!- mniip has joined.
07:04:32 -!- Sgeo_ has joined.
07:08:01 -!- Sgeo__ has quit (Ping timeout: 264 seconds).
07:14:03 -!- sprocklem has quit (Read error: Connection reset by peer).
07:14:23 -!- sprocklem has joined.
07:18:52 -!- ais523 has quit (Ping timeout: 256 seconds).
07:48:34 -!- imode has quit (Ping timeout: 240 seconds).
08:07:17 -!- kspalaiologos has joined.
08:09:14 <kspalaiologos> "Welcome to the international hatchery for [...] egg-plants"?
08:09:26 <kspalaiologos> what's wrong with eggplants
08:09:59 -!- hashtar has quit (Ping timeout: 260 seconds).
08:17:22 -!- hashtar has joined.
08:43:31 <esowiki> [[Asm2bf]] https://esolangs.org/w/index.php?diff=70984&oldid=70783 * Palaiologos * (-843) Major cleanup
09:23:36 -!- Sgeo__ has joined.
09:26:46 -!- Sgeo_ has quit (Ping timeout: 256 seconds).
09:35:51 -!- LKoen has joined.
09:40:34 -!- Lord_of_Life has quit (Ping timeout: 240 seconds).
09:40:44 -!- Lord_of_Life_ has joined.
09:42:03 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
09:44:05 -!- kapilavashtu has joined.
09:56:55 <esowiki> [[User:GDavid]] https://esolangs.org/w/index.php?diff=70985&oldid=57391 * GDavid * (+15) Stopwatch
10:04:07 <esowiki> [[List of ideas]] https://esolangs.org/w/index.php?diff=70986&oldid=70578 * GDavid * (+17) /* Based on dimensions */
10:28:50 -!- arseniiv has joined.
10:35:04 <arseniiv> hi what did I miss^W^W^W^W
11:07:43 <b_jonas> ais523: but the slash doesn't have to be the first byte of the instruction
11:25:09 -!- LKoen has quit (Remote host closed the connection).
11:31:39 <fizzie> Spam subject line of the day: "Re: Best human hair"
11:34:19 -!- Phantom_Hoover has joined.
11:34:19 -!- Phantom_Hoover has quit (Changing host).
11:34:19 -!- Phantom_Hoover has joined.
11:46:23 -!- LKoen has joined.
12:09:51 -!- Phantom__Hoover has joined.
12:10:15 -!- Phantom__Hoover has changed nick to Guest48241.
12:43:09 -!- hashtar has quit.
13:02:01 <esowiki> [[Ser2]] M https://esolangs.org/w/index.php?diff=70987&oldid=52441 * LegionMammal978 * (+14) fixed title
13:41:39 -!- FreeFull has joined.
13:57:08 -!- ais523 has joined.
14:01:14 -!- joast has quit (Quit: Leaving.).
14:10:01 -!- joast has joined.
14:16:59 -!- imode has joined.
14:32:26 <tromp> int-e: i don't understand the step from line 108 to 109 in latest BB.txt
14:32:56 <tromp> (i pushed some commits)
14:52:27 <esowiki> [[Slistp]] M https://esolangs.org/w/index.php?diff=70988&oldid=20914 * LegionMammal978 * (+14) fixed title
14:54:49 <b_jonas> Sgeo__: this yes, some files can contain fixed strings that help users identify the type of file, but aren't actually read by the reader, so they're optional.
14:55:33 <b_jonas> eg. many of my perl or python scripts start with a shebang line that is not really used for anything but helpful as a programmer
14:55:45 <b_jonas> #!perl or #!python3
15:01:26 <myname> aren't shebangs supposed to be absolute paths?
15:01:49 <myname> which is why you are seeing /bin/env python or the like
15:02:01 <b_jonas> myname: if you want to execute the script directly then yes
15:02:08 <b_jonas> but I don't do that, I execute them with perl or python3
15:02:21 <b_jonas> perl still reads command-line options from there
15:02:34 <b_jonas> and python has a py wrapper that reads the version number (python2 vs python3) and a bit more
15:02:41 <b_jonas> but I don't really use those features
15:02:50 <b_jonas> these are just mostly for convenience as a human
15:03:10 <b_jonas> also the .pl extension is terribly ambiguous
15:03:27 <b_jonas> at one point I wondered if we should just use .pm as the extension of all perl scripts
15:06:43 <ais523> @pl \x y -> y x
15:06:43 <lambdabot> flip id
15:06:59 <ais523> together with Perl and Prolog that's at least three meanings of pl
15:07:15 <b_jonas> that too, yes
15:07:21 <ais523> also I think there are circumstances under which shebangs work without the /
15:07:31 <ais523> but it probably depends a lot on the shell and OS
15:07:50 <ais523> there are some UNIXes which treat the magic number for an executable as "#! /" (four bytes)
15:07:58 <ais523> which is why I typically put a space in my shebangs
15:08:07 <ais523> even though I think that's an obsolete way of doing it
15:08:07 <b_jonas> I didn't know that
15:08:14 <b_jonas> I never put a space
15:08:43 <b_jonas> I just like shebang as a human-readable way to declare the type of a file, even to people not familiar with that file format
15:09:06 <b_jonas> obviously there are many formats where it doesn't work because they have a magic number at the start
15:09:25 <b_jonas> but file formats could be designed such that the magic number isn't at the start, so you can put a short comment at the start
15:10:18 <b_jonas> especially esoteric file formats
15:10:19 <ais523> <Wikpedia> It has been claimed that some old versions of Unix expect the normal shebang to be followed by a space and a slash (#! /), but this appears to be untrue;[citation needed]
15:10:20 <ais523> OK, that makes things even more interesting
15:10:21 <ais523> especially the {{cn}}
15:10:51 <esowiki> [[Small]] https://esolangs.org/w/index.php?diff=70989&oldid=62150 * LegionMammal978 * (-571) rewrapped code blocks
15:12:25 -!- kritixilithos has joined.
15:12:46 <ais523> in a work-in-progress version of Underlambda I put a shebang /in/ the magic number
15:12:46 <ais523> but it was controversial
15:12:47 -!- ais523 has quit (Remote host closed the connection).
15:12:55 <b_jonas> ais523: does linux even allow a space between the shebang and the interpreter filename, for the purpose of plain execve?
15:13:27 <b_jonas> oh also, it can be worth to design a file format such that it at least ignores a shebang line
15:13:55 <b_jonas> modern shell scripts already have that property, as well as perl and python scripts
15:14:00 -!- ais523 has joined.
15:14:09 <ais523> b_jonas: I believe it does
15:14:32 <ais523> one of the larger reasons for # comments is so that they're shebang-compatible
15:14:35 <kritixilithos> tromp: how are you defining busy beaver in BB.txt?
15:14:44 <ais523> and there are some languages that don't have # comments, but ignore the first line if it starts with #!
15:15:02 <b_jonas> ais523: no, I think that's backwards, the shebang magic bytes were chosen because they're compatible with shell script comments
15:16:00 <ais523> b_jonas: can't both be true?
15:16:16 <tromp> kritixilithos: see https://mathoverflow.net/questions/353514/whats-the-smallest-lambda-calculus-term-not-known-to-have-a-normal-form
15:16:20 <ais523> new language uses # comments, to be compatible with other tooling that assumes # comments
15:18:15 <b_jonas> ais523: probably, for some new languages
15:18:47 <b_jonas> also it's a pity that C preprocessors don't ignore the #! line, not even if you use a double slash at the start of the path
15:19:13 <b_jonas> so there's probably no way to start a C source file with a shebang
15:23:04 -!- ais523 has quit (Remote host closed the connection).
15:24:18 -!- ais523 has joined.
15:24:25 <b_jonas> not until someone adds an extension to the C preprocessor where #! is a null directive
15:33:35 <kritixilithos> tromp: i see, thanks
15:33:51 <b_jonas> `? blind alley
15:33:53 <HackEso> blind alley? ¯\(°​_o)/¯
15:50:35 -!- ais523 has quit (Ping timeout: 250 seconds).
15:59:22 <oren> #! just gives me an warning
15:59:50 <b_jonas> hmm
16:00:36 <oren> Oh, right, that's because I'm using tcc
16:00:51 <oren> lol I forgot that my "cc" command is tcc
16:01:07 <oren> gcc throws an error
16:01:52 <b_jonas> ah
16:02:25 <oren> tcc supports shebang lines so you can have executable C "scripts"
16:02:27 <b_jonas> also, you invoke cc ? I always invoke gcc or g++ directly, rather than cc and c++
16:02:44 -!- ais523 has joined.
16:03:58 <ais523> b_jonas: based on experience with the megapolyglot, we believe the most portable way to start a program is with a "pre-preprocessed #line directive"
16:04:06 <ais523> which looks like # then a number then a string
16:04:16 <b_jonas> ais523: for a pre-processed file, sure
16:04:22 <b_jonas> pre-processed C file
16:04:28 <b_jonas> but then you can't use the preprocessor
16:04:35 <ais523> b_jonas: most C compilers are happy to accept pre-preprocessed input and will preprocess it a second time
16:04:42 <b_jonas> that doesn't hurt the polyglot much, but in real world C source files I want to use preprocessor directives
16:04:56 <b_jonas> wait really? they just accept a line directive?
16:04:57 <b_jonas> nice
16:05:01 <ais523> as are, oddly, many implementations for languages other than C, even if they don't normally use the C preprocessor
16:05:03 <b_jonas> I mean an output line directive
16:05:36 <ais523> yep, just tested
16:05:57 <b_jonas> ok
16:05:59 <ais523> # 1 "hello.c" \ int main(void) { \ puts("Hello, world!"); \ }
16:06:13 <ais523> compiled under gcc I get a warning for "hello.c" even though the file is named something else, about the implicit definition of puts
16:06:20 <ais523> and the resulting executable works fine
16:06:24 <b_jonas> um, that doesn't actually have a preprocessor directive like #include <stdio.h> after the line directive
16:06:50 <ais523> OK, I added a preprocessor directive, and it was honoured
16:06:54 <b_jonas> good
16:07:08 <ais523> which is not surprising, how would it know to turn the preprocessor off when it encountered the compiled-#line?
16:07:33 <b_jonas> yeah. I just expected that the output preprocessor line would give an error in the preprocessor
16:07:45 <ais523> it works in clang too: https://tio.run/#c-clang
16:07:47 <ais523> err
16:07:54 <ais523> https://tio.run/##S9ZNzknMS///X1nBUEEpIzUnJ18vWYlLOSU1LTMvVaG4pLRAoaC0pJgrM69EITcxM0@jLD8zRVOhmksBLKmh5AHSo6NQnl@Uk6KopGnNVcv1/z8A
16:08:22 <ais523> and tcc: https://tio.run/##S9YtSU7@/19ZwVBBKSM1JydfL1mJSzklNS0zL1WhuKS0QKGgtKSYKzOvRCE3MTNPoyw/M0VToZpLASypoeQB0qOjUJ5flJOiqKRpzVXL9f8/AA
16:08:28 <ais523> I've run out of C compilers to check on TIO now, though
16:10:37 <ais523> anyway, for ages the polyglot started with a compiled-#line directive then /*
16:10:52 <ais523> which causes a huge number of languages to temporarily suspend the parser
16:10:55 <b_jonas> https://rextester.com can compile with MSVC :-)
16:11:17 <ais523> (the filename was chosen to put lots of esolangs into a comment / string literal / large jump, too)
16:12:04 <ais523> source_file.c(1): error C2019: expected preprocessor directive, found '1'
16:12:06 <ais523> aww
16:12:29 <b_jonas> I don't know what version of MSVC it runs though
16:12:32 <ais523> I guess it wouldn't be the first time MSVC didn't follow a de-facto standard that nonetheless wasn't an actual standard
16:12:39 <ais523> Microsoft (R) C/C++ Optimizing Compiler Version 19.00.23506 for x64
16:12:55 <b_jonas> that's recent
16:12:55 <b_jonas> nice
16:15:46 <oren> yeah when I compile things I use cc typically, i think because one of my first computers had gcc installed as "cc" and didn't accept a "gcc" command
16:16:00 <b_jonas> I see
16:16:43 <oren> what's really weird is now you see people with clang installed as "gcc"
16:17:15 <b_jonas> that's not too weird, clang is pretty closely compatible to gcc
16:18:27 <oren> but what that means is, "gcc" has become so intrenched as "the command to compile stuff"
16:18:56 <oren> cc has been forgoten, even though it's one less letter to type
16:19:12 <b_jonas> yes, because before linux and gcc got so spread, there were computers with separate cc and gcc commands. that's why autoconf scripts try gcc first, before cc
16:19:41 <b_jonas> also now there's c99 as a command name too
16:19:57 <b_jonas> because of POSIX or something like that
16:20:47 <ais523> oren: my first UNIXish environment had cc as provided by the OS manufacturer, it wasn't gcc
16:21:18 <ais523> it also had c99 but I didn't discover that for ages, and it was presented as though it were an entirely separate program from cc (although of course they probably shared a lot of code)
16:21:43 <ais523> so I still think of cc as being "the OS stock C compiler" and gcc as being a specific C compiler
16:21:54 <ais523> and on Linux, assume that the two are the same, as gcc is the standard C compiler on Linux
16:22:00 <ais523> (but this doesn't hold on other Unices)
16:22:29 <b_jonas> just as glibc is also the standard on linuxes, but it might be one of the other brands of libc that imitate glibc
16:22:54 <ais523> "gcc" on Mac OS X is normally actually clang, isn't it, nowadays?
16:23:18 <ais523> now I'm interested in what "cc" typically is on BSD
16:23:36 <b_jonas> may depend on which BSD
16:23:55 <ais523> I was wondering about that
16:24:35 <ais523> I'm surprised that BSD doesn't get more attention, actually; it's a perfectly solid OS and for most programs, it's very comparable to Linux, with easy porting both ways
16:25:32 <myname> hardware compatibility, probably
16:26:08 <ais523> that sort-of makes sense, I assume it has a smaller community of driver-writers
16:26:24 <ais523> I'd expect the hardware compatibility to be at least decent on older machines, though
16:28:24 <b_jonas> I suspect that BSD doesn't get much attention because it's non-proselytizing, or however that word is called, that is, there is a small community of people who use BSD, but they aren't actively trying to convince other people to also use BSD, whereas Linux fanatics try to convince people to use Linux all the time
16:29:01 <ais523> well, when programmers proselytize, they often do so by writing code to make things more user-friendly
16:29:13 -!- xkapastel has joined.
16:29:42 <b_jonas> that's the good kind, yes
16:31:33 <b_jonas> plus I think it's also that at least some BSD activity focuses on using BSD in servers and routers and the like
16:31:58 <b_jonas> rather than workstations or mobile phones
16:32:20 <ais523> huh, assuming you aren't on Windows: http://localhost:631
16:32:32 <ais523> I kind-of hope that thing's firewalled by default
16:33:06 <b_jonas> just look at https://www.pcbsd.org , they used to brand themselves as a FreeBSD variant useful as a desktop environment for ordinary home users, but the distribution has disappeared or got renamed, and they now target servers
16:33:20 <ais523> I guess that's one way to make a semi-major part of an operating system OS-independent but it still seems really weird
16:33:22 <b_jonas> ais523: is that the printer server?
16:33:49 <b_jonas> I don't have anything running on that port here
16:34:12 <ais523> b_jonas: yes
16:34:20 <ais523> it even has Apple branding
16:34:25 <ais523> despite me being on Linux
16:35:03 <ais523> it seems to contain a list of everything I've ever printed, too
16:35:15 <ais523> (although I hardly ever print things so it's quite short)
16:49:24 <ais523> hmm, I wonder what the greatest proportion of the set of all bytestrings is, such that after all common sorts of encoding-related damage, the original string can be uniquely reconstructed
16:49:57 <ais523> obviously sticking to printable ASCII survives all common forms of encoding-related damage, but I think you safely can expand this into some of the control codes and high-bit-set characters
16:50:19 <ais523> (but not all of them, because you need to be able to, e.g., distinguish an unchanged source from mojibake)
16:51:27 <esowiki> [[Stacked Brainfuck]] https://esolangs.org/w/index.php?diff=70990&oldid=39483 * LegionMammal978 * (+36) /* Implementation */ fixed link
16:52:11 <b_jonas> that may depend on what you count as encoding-related. does word-wrapping count? HTML turning whitespace sequences to single spaces?
16:52:33 <b_jonas> old forums that output HTML from wiki-like input that change some spaces to nbsp?
16:54:47 <ais523> I think all those examples count
16:54:55 <ais523> so sticking to printable ASCII is not in fact enough
16:55:05 <ais523> (another encoding-related issue that can happen in printable ASCII: & becoming &amp;)
16:55:50 <b_jonas> oh yes, that too
16:56:18 <ais523> there's also the case of stray = signs from quoted-printable
16:56:28 <ais523> which can affect even input that's entirely alphanumeric
16:56:39 <b_jonas> would it count when web thingies replace anything with an @ sign in it with some javascript email address protection thing? when twitter or twitch chat replaces anything with a dot in it with a http hyperlink?
16:56:43 <ais523> and ASCII/EBCDIC misinterpretation, I guess, although that isn't common nowadays
16:57:14 <ais523> b_jonas: the former of those is done by Cloudflare under some circumstances, isn't it?
16:57:18 <ais523> which makes it very common
16:57:23 <ais523> and the latter is also frequently seen
16:57:36 <b_jonas> I've first seen it on the FSF's mailing list archive web interface
16:57:48 <ais523> (another related issue: ASCII sequences that look like emoticons being replaced with Unicode or even <img>-tag-based smileys)
16:58:07 <ais523> b_jonas: oh right, mailing list archives do that too
16:58:08 <b_jonas> oh yeah, Mibbit
16:58:27 <b_jonas> as well as some phpbb, and in fact twitch chat too now that I think of it
16:58:51 <b_jonas> changing the :D to a smiley in Data::Dumper, turning :) and :-) to the same thing
17:00:12 <ais523> ASCII-as-UTF-16 misinterpretation has to be pretty rare
17:00:17 <b_jonas> there's also some wordpress-based web comment forms that turn ascii double quotes to fancy quotes
17:00:30 <ais523> although didn't Notepad do that once?
17:00:50 <ais523> ah yes: https://en.wikipedia.org/wiki/Bush_hid_the_facts
17:01:01 <b_jonas> I think that usually happens backwards, reading an utf-16 file as if it was some ascii-compatible encoding and adding nul bytes between
17:02:04 <ais523> b_jonas: yes but in that case it's normally really obvious what happened
17:02:27 <ais523> if you see a file that looks like ASCII but there's a NUL byte every other byte, you can typically figure out what went wrong even if you've never heard of UTF-16
17:02:39 <ais523> (and some formats, like VT-100, ignore NUL, so the file will even appear to work)
17:02:40 <b_jonas> ah, I didn't know about that one
17:02:49 <ais523> (assuming it has no non-ASCII characters)
17:03:18 <b_jonas> usually yes. not if I just try to run a grep command, get no matches, and forget that the file is utf-16 encoded
17:03:37 <b_jonas> that happened to me a few times recently
17:04:42 -!- MDude has quit (Quit: Going offline, see ya! (www.adiirc.com)).
17:06:04 <ais523> `unicode U+0D0A
17:06:07 <HackEso> ​ഊ
17:06:19 <ais523> hmm, that seems wrong
17:06:21 <ais523> `unicode 0D0A
17:06:22 <HackEso> ​ഊ
17:06:40 <ais523> `unidecode ഊ
17:06:41 <HackEso> ​[U+0D0A MALAYALAM LETTER UU]
17:06:49 <ais523> perhaps not
17:06:58 <ais523> I'm reading blog posts about the Notepad misdetection
17:07:19 <ais523> and one of them mentions that the CRLF character is explicitly illegal in Unicode, presumably to make detection easier
17:07:22 <ais523> I think it's just lying though?
17:07:26 <ais523> `unicode 0A0D
17:07:27 <HackEso> ​਍
17:07:36 <b_jonas> oh, there's also some encoding-related garbage that you can get from perl's encoding io layer, which is somehow messed up in more than one way
17:07:42 <ais523> hmm, perhaps it only detects it that way round
17:07:55 <ais523> but it'd be weird to have such a detection for one endianness but not the other
17:08:22 <ais523> I guess this is one argument to prefer UTF16-LE over UTF16-BE
17:08:30 <b_jonas> in particular, on windows with a native win32 perl, when I try to write a file with layer :encoding(utf-16-le):crlf , I get garbage. no, it doesn't just output the crlf wrong, it outputs everything wrong after some point in the file.
17:08:42 <esowiki> [[User:Hakerh400]] https://esolangs.org/w/index.php?diff=70991&oldid=70882 * Hakerh400 * (+134) /* Languages */
17:08:47 <b_jonas> many years ago I saw the encoding layer cause to output some lines twice.
17:08:55 <ais523> b_jonas: how does that compare to :crlf:encoding(utf-16-le)?
17:09:13 <ais523> I'd expect at least one of those to replace all the 0x0D bytes in the Unicode encoding with 0x0D/0x0A pairs, which would throw off the byte pairing
17:09:25 <b_jonas> ais523: I don't recall the details, I think it's just :encoding(utf-16-le) that's buggy, because :crlf is the default
17:09:43 <b_jonas> a workaround is to use :raw:encoding(utf-16-le) and then put crlf at the end of my lines manually
17:10:23 <b_jonas> ais523: no, it isn't just messed up in any of those trivial ways, and the output that I tried to write is mostly ascii
17:10:40 <b_jonas> I didn't really try to isolate the bug, I just gave up
17:10:43 <b_jonas> and worked it around
17:10:54 <b_jonas> and also trying to move away for perl, not only for this reason
17:11:05 <ais523> heh, the blog post later discuses the MALAYALAM LETTER UU issue
17:11:20 <ais523> b_jonas: what are you planning to move onto?
17:11:45 <b_jonas> ais523: python3. I already have a csv reader and writer in python, and a lot of more specific scripts related to work.
17:12:13 <b_jonas> eventually I should make a patched python3 that adds extra syntax so I can write python in a single line, useful for command-line or IRC
17:12:36 <b_jonas> it can be done in a sane backwards compatible way, I already have a candidate for the syntax
17:12:47 <ais523> b_jonas: I'm considering looking for alternatives to Perl, however I dislike Python and don't consider it a reasonable alternative for me
17:12:50 <b_jonas> ideally should get that thing into vanilla python, because I'm not the only one who's missing that feature
17:13:02 <b_jonas> but I'm not getting my hope up
17:13:33 <b_jonas> still, it's a pure syntax extension, so the modified python would be compatible with all existing python code, which is the whole point
17:13:43 <b_jonas> ais523: any specific reason why you dislike python
17:14:00 <b_jonas> one advantage of python is that the standard library is more suited to native windows
17:14:30 <b_jonas> not perfectly suited, it's still written by unix programmers, but you don't have to install CPAN modules to open files with non-ascii filenames or any of that nonsense
17:14:50 <ais523> b_jonas: I think the largest design flaw is to have a language where values carry types, with strong restrictions on how types can be combined + context-sensitive overloading, /but/ no static typing
17:15:20 <ais523> although Perl started to move in that direction over time with operator overloading, at least most packages keep the normal meanings of the operators
17:15:38 <ais523> + and * in Python can do two unrelated things based on where the arguments come from
17:15:42 <b_jonas> ais523: if you want static typing, there's always rust and C++, and you can mix them with python just as you can with perl
17:15:50 <ais523> `! python print("2" + 3)
17:15:51 <HackEso> ​/hackenv/bin/!: line 4: /hackenv/ibin/python: No such file or directory
17:15:56 <esowiki> [[Asm2bf]] https://esolangs.org/w/index.php?diff=70992&oldid=70984 * Palaiologos * (+275)
17:16:11 <ais523> `` echo 'print("2" + 3)' > /tmp/t.py; python3 t.py
17:16:12 <HackEso> python3: can't open file 't.py': [Errno 2] No such file or directory
17:16:16 <ais523> `` echo 'print("2" + 3)' > /tmp/t.py; python3 /tmp/tt.py
17:16:17 <HackEso> python3: can't open file '/tmp/tt.py': [Errno 2] No such file or directory
17:16:19 <ais523> `` echo 'print("2" + 3)' > /tmp/t.py; python3 /tmp/t.py
17:16:20 <HackEso> Traceback (most recent call last): \ File "/tmp/t.py", line 1, in <module> \ print("2" + 3) \ TypeError: can only concatenate str (not "int") to str
17:16:25 <ais523> `` echo 'print("2" * 3)' > /tmp/t.py; python3 /tmp/t.py
17:16:26 <HackEso> 222
17:16:31 <ais523> `` echo 'print(2 * 3)' > /tmp/t.py; python3 /tmp/t.py
17:16:32 <HackEso> 6
17:16:53 <ais523> so there's this big distinction between "2" and 2 in how they behave, and code will only be correct for one or the other
17:17:11 <b_jonas> ais523: I don't find that too much of a problem, but ok, that's a good specific answer
17:17:14 <ais523> but there's no sensible way to have this checked automatically
17:17:29 <ais523> Perl doesn't have this problem because "2" and 2 act very similarly in any numeric context
17:17:30 <b_jonas> I understand why you'd want different names for the concat and repeat operators
17:17:36 <ais523> and, indeed, in any string context
17:17:58 <ais523> you can distinguish them if you really want to, but normally you don't want to
17:18:18 <ais523> also this has lead to bugs in practice
17:18:27 <ais523> the Python program I most often use is the Jelly interpreter
17:18:30 <b_jonas> right, but in python, "2" and 2 never act similarly, so this generally doesn't cause confusion
17:18:38 <b_jonas> just like in C
17:19:04 <b_jonas> about the only time when they act similarly is if you pass them to the int or float constructor
17:19:08 <ais523> and it leads to programs like the following quine: https://tio.run/##y0rNyan8//9R4z4gerhjCRD9/w8A
17:19:14 <ais523> which isn't even valid Jelly but the interpreter doesn't notice
17:19:41 <ais523> b_jonas: the confusion is the lack of a type error when passing a value of the wrong type
17:20:07 <ais523> other things I dislike are the way it does variable declarations, and the whitespace-sensitivity
17:20:56 <ais523> also the package manager, but cpan the package managing software isn't all that great either (I'm fine with CPAN the repository, though, and with cpanm)
17:21:26 <b_jonas> ais523: right, but it doesn't occur often. the + operator for add vs concatenation, the * operator for multiplication vs repeat, the str function semi-pretty-printing things, int and float converting numbers or parsing strings, plus the [] operator for arrays vs dictionaries, those are about the only cases when this happens
17:21:38 <b_jonas> most of the time when I pass the wrong type of value, I get an error
17:21:58 <ais523> the ⁾⁾ḤḤ quine exploits the second case
17:22:12 <b_jonas> as for variable declarations and whitespace sensitivity, those complaints I do understand
17:22:16 <ais523> ⁾ creates a 2-character string, and a string in Jelly is an array of characters
17:22:17 <b_jonas> I want to fix the whitespace sensitivity
17:22:31 <b_jonas> I probably don't want to fix variable declarations, though there could be an extension fixing that
17:22:33 <ais523> so it creates the string ⁾Ḥ
17:22:40 <ais523> then Ḥ doubles a number, or all numbers in an array
17:22:41 <b_jonas> mind you, Julia's rules for variable declarations are way worse than python's IMO
17:22:47 <ais523> and you can guess what happened next :-D
17:23:10 <ais523> anyway, gtg
17:23:12 -!- ais523 has quit (Quit: quit).
17:25:05 <b_jonas> more likely in that crazy esolang idea that I'll probably never develop, the configurable one where you can choose between APL order and C order and even more for function calls, I'd have 2*2 options for how variable declarations and scoping work, as in 2 for explicit my and implicit nonlocal vs explicit nonlocal and implicit my, and if/while/for creating a scope vs if/while/for not creating a scope
17:26:14 <b_jonas> and allow to toggle those lexically within a scope
17:37:36 -!- ais523 has joined.
17:44:19 -!- ArthurStrong has joined.
17:51:16 -!- Guest48241 has quit (Ping timeout: 256 seconds).
17:59:45 <int-e> tromp: hmm, what's the issue with that step from line 108 to 109? It splits X^V' into W^V' and B^V', expands W^V'[v := X^V] as before and B^V' using the undyction hypothesis?
18:00:20 -!- ais523 has quit (Remote host closed the connection).
18:00:22 <int-e> Hah, "undyction" is beautiful.
18:01:33 -!- ais523 has joined.
18:05:22 -!- ais523 has quit (Excess Flood).
18:05:49 -!- Guest48241 has joined.
18:06:49 -!- ais523 has joined.
18:12:23 <tromp> int-e: induction on size of term in B^V' ?
18:14:02 <int-e> tromp: I'm treating B^V = H[W^V X^V] = H[W^V (W^V u B^V)] as the inductive definition of B^V.
18:14:14 <int-e> tromp: But yes, induction on the size will work as well.
18:14:43 <int-e> tromp: it's proper because while H may be empty, we take at least one W^V off.
18:14:47 <tromp> ok, i'll add an intermediate line = H[W^V'[v := X^V] (W^V'[v := X^V] ∪ B^V'[v := X^V]) ] to make the steps clearer
18:15:50 <int-e> Funny that we both added an nf[_]size command.
18:17:42 <tromp> i only did so after you mentioned it (but before checking the repo)
19:10:06 <kspalaiologos> so essentially if I wanted to write a JIT or AOT compiler based on my current interpreter in JAva
19:10:20 <kspalaiologos> should I target java bytecode, C, x86 assembly, llvm... ?
19:10:50 -!- Phantom__Hoover has joined.
19:10:59 <kspalaiologos> I'm not really sure because I don't want to kill portability Java offers and overload my program with unnecessary external libraries or programs
19:11:09 <Sgeo__> Homestuck music update!
19:11:13 -!- Phantom__Hoover has changed nick to Guest51731.
19:11:30 <zzo38> I don't know, there are advantages and disadvantages in each case.
19:12:39 -!- Guest48241 has quit (Ping timeout: 260 seconds).
19:13:01 <kspalaiologos> that's what I think
19:13:08 <kspalaiologos> so I can't make a decision really
19:13:16 <kspalaiologos> I think I may go with Java bytecode
19:13:19 <imode> where are you intending to run this.
19:13:30 <imode> and is this like a brainfuck interpreter?
19:13:31 <kspalaiologos> but then I'll have to clog my program with BCEL
19:13:54 <kspalaiologos> imode, said that already, I want it as portable as possible; and this is a brainfuck interpreter now, but I can eaisly transform it into a compiler
19:15:15 <zzo38> C code may be more portable, or a simple code using an emulation
19:15:32 <imode> you haven't said it in my logs, so I don't think asking is out of the question.
19:15:46 <ais523> kspalaiologos: if you're writing in Java, then Java bytecode may be a good target format, as the Java runtime will JIT that once you generate it
19:15:47 <imode> if you want portability, yeah, you can hardly beat Java.
19:15:55 <ais523> so you basically have a platform-independent JIT
19:16:12 <imode> if you want _actual_ portability, compile it to C. every platform has a C compiler at some point.
19:16:18 <kspalaiologos> well then
19:16:23 <ais523> at work I use a library called ASM (confusingly) to generate Java bytecode at runtime
19:16:31 <ais523> C is a good target language if you want AOT rather than JIT
19:16:33 <kspalaiologos> I'll go with BCEL instaed
19:16:42 <kspalaiologos> what about performance
19:16:45 <kspalaiologos> and optimization
19:17:08 <ais523> C compiler optimizers are pretty good nowadays, although I can normally beat them programming by hand
19:17:23 <kspalaiologos> C may be orders of magnitude more performant than Java
19:17:28 <ais523> although, the workings of modern computers are confusing, and optimizing for speed is really counterintuitive sometimes
19:17:39 <kspalaiologos> depends on your knowledge on the platforms
19:17:46 <kspalaiologos> cache lines, instruction alignment
19:17:54 <kspalaiologos> it all becomes logical at certain point
19:18:03 <ais523> out-of-order execution has a much larger impact than instruction alignment
19:18:11 <kspalaiologos> yeah this too
19:18:20 <ais523> and it interacts with caching in weird ways
19:19:34 <kspalaiologos> yeah, I'm going with java
19:19:41 <ais523> a while ago, to test out my optimization skills, I decided to aim for the following challenge: given a simple (inlinable) function that generates a continuous stream of bytes in a way that doesn't take up much of the CPU's time
19:19:47 <ais523> write the resulting bytes to memory as quickly as possible
19:19:53 <arseniiv> ha, C, Java. I plan to compile something into Python (as for programs written in it it’s pretty logical; there’s a module to work with its own AST and a function for compiling it)
19:19:54 <zzo38> I thikn computers should be designed less confusing
19:20:21 <ais523> it took a lot of attempts and experimentation to find an optimal (or as optimal as I could get it) solution, but I beat the C compilers fairly quickly
19:20:22 <kspalaiologos> python doesn't seem like a good target
19:20:37 <kspalaiologos> C is hard to optimize by the compiler
19:20:42 <kspalaiologos> you can't even reassociate math
19:20:47 <zzo38> You could also allow it to support multiple targets
19:20:49 <kspalaiologos> without changing behaviour of some snippets
19:21:03 <kspalaiologos> zzo38, not today, that's too much effort :P, I'll maybe support C later on
19:21:10 <ais523> (for people who are wondering, take a couple of 128-bit registers, store intermediate results there, and then write them using nontemporal writes; this is fastest even though GPR→vector register copies are documented as slow)
19:21:32 <ais523> (oddly, this was fastest even though the CPU had 256-bit registers available)
19:21:54 <kspalaiologos> it's always cheering to see a fellow assembly programmer
19:21:55 <arseniiv> <kspalaiologos> python doesn't seem like a good target => for production code, I more or less agree, but for quick proof-of-concept things why not
19:22:11 <kspalaiologos> ^ yeah, for a proof of concept python is sufficient
19:22:33 <arseniiv> assembly programmers are magicians
19:22:56 <kspalaiologos> Malbolge programmers are true magicians
19:23:08 <arseniiv> as any true magician, an assembly master is a rare sight
19:23:09 <ais523> I don't write in asm much, but I think it's an important language to know, especially when trying to work out how to write the quickest possible code
19:23:26 <kspalaiologos> seducers, thiefs, simonists
19:23:29 <ais523> I consider asm to be a fairly easy language to write (if you aren't aiming for performance), incidentally, it's just really time-consuming
19:23:44 <kspalaiologos> that's true
19:24:01 <arseniiv> <kspalaiologos> Malbolge programmers are true magicians => hmhm maybe they are abstract theoretical magicians then, and assembly ones, practicing ones ;D
19:24:01 <kspalaiologos> writing my Assembly implementation for the Seed generator has been a quite long process
19:24:08 <esowiki> [[Indent]] M https://esolangs.org/w/index.php?diff=70993&oldid=70947 * PythonshellDebugwindow * (+12) /* Examples */
19:24:15 <kspalaiologos> in fact, it took around 2 days to get it up and running
19:24:20 <kspalaiologos> did you check the code btw?
19:24:26 <kspalaiologos> I'm always up for some optimization tips
19:25:05 <ais523> I looked at it but didn't really read it
19:25:23 -!- kritixilithos has quit (Quit: quit).
19:27:28 <esowiki> [[User:PythonshellDebugwindow/Sandbox]] M https://esolangs.org/w/index.php?diff=70994&oldid=70146 * PythonshellDebugwindow * (+16) Removed redirect to [[User:PythonshellDebugwindow/(Unnamed language)]]
19:29:24 <arseniiv> though in view of wanting to call myself a bit of a magician too I need to postulate Haskell-or-other programmers should be magicians too, just of a school almost incompatible in its workings to an assembly ones. It’s even plain to see: an assembly magician assembles (with others) and a haskell one, well, “has call”, which might mean that they can talk to one another at a distance, which is quite a good trait these times. I’ll s
19:29:24 <arseniiv> how myself out
19:30:22 <zzo38> There are different assembly language for different computers and VMs, so you might know one way better than other one.
19:30:25 -!- ais523 has quit (Quit: quit).
19:32:43 <zzo38> I have used the assembly language of 6502, MIX, MMIX, Glulx, Z-machine, and maybe a few others
19:33:28 <zzo38> If you want to write a text adventure game, you may want to learn Glulx or Z-machine programming; there are some tricks I have figured out
19:37:30 -!- MDude has joined.
19:38:21 <zzo38> Infocom put in some features in Z-machine that they then didn't use. And then, there are many other tricks they didn't consider, such as the SET->BCOM optimization, etc. So, if you write programs for Z-machine, then you can learn this, please.
19:42:54 <esowiki> [[Tttt]] M https://esolangs.org/w/index.php?diff=70995&oldid=67806 * PythonshellDebugwindow * (-19) /* the symbols */ Fixing your ordered list so it is legible
19:55:44 <esowiki> [[Elevated Parser]] N https://esolangs.org/w/index.php?oldid=70996 * Hakerh400 * (+8045) +[[Elevated Parser]]
19:55:47 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=70997&oldid=70961 * Hakerh400 * (+22) +[[Elevated Parser]]
19:55:50 <esowiki> [[User:Hakerh400]] https://esolangs.org/w/index.php?diff=70998&oldid=70991 * Hakerh400 * (+38) +[[Elevated Parser]]
19:58:38 <zzo38> ais523: Which instruction set and what CPU were you writing the program you mentioned is fastest?
19:58:52 <esowiki> [[Elevated Parser]] M https://esolangs.org/w/index.php?diff=70999&oldid=70996 * Hakerh400 * (+11) /* Processing abstract syntax tree */
20:01:10 -!- kspalaiologos has quit (Quit: Leaving).
20:01:35 <esowiki> [[Elevated Parser]] M https://esolangs.org/w/index.php?diff=71000&oldid=70999 * Hakerh400 * (-1)
20:03:29 <esowiki> [[Elevated Parser]] M https://esolangs.org/w/index.php?diff=71001&oldid=71000 * Hakerh400 * (+2)
20:04:19 <esowiki> [[Elevated Parser]] M https://esolangs.org/w/index.php?diff=71002&oldid=71001 * Hakerh400 * (+0)
20:08:46 <int-e> Hrm. "Are you sure you want to cancel this operation? [Cancel] [Ok]"
20:08:56 -!- xkapastel has quit (Quit: Connection closed for inactivity).
20:09:05 <int-e> I clicked "Cancel" rather than "Ok" and then wondered why nothing happened.
20:11:14 <zzo38> That isn't very good, they should write (Y/N) instead
20:12:49 <kmc> you cancelled the cancelling
20:13:24 <kmc> i agree with zzo38, that isn't very good
20:14:42 <int-e> (This is github btw, when cancelling editing of a comment.)
20:15:12 <int-e> (But are those labels provided by the JS code or by the browser, hmm.)
20:15:34 <int-e> aww @xkcd
20:16:56 <arseniiv> can a cell cancel
20:18:19 <zzo38> If it is in the browser and is provided by a JavaScript prompt() function, then that isn't a problem, since they just have to make the expectation (although maybe they should put labels true/false). If it is a confirmation the browser puts by itself, perhaps due to an altered but not yet submitted form (this would be a better way, subject to user configuration), then it should use better writing.
20:21:55 <arseniiv> yeah, this xkcd is poetic. A glider ensouled takes into the sky and expands the boundaries of life
20:23:25 <arseniiv> though maybe it doesn’t quite reach the surreal, and that’s a pity
20:29:54 <kmc> it's pretty good
20:30:52 <int-e> arseniiv: what do you want, the glider breaking out of the frame and psychedelic rainbow colors when the glider hits the edge of the browser window?
20:31:34 <int-e> (the former would be kind of cute, but hard to do with just an animated gif :) )
20:32:22 <arseniiv> int-e: hmmm the idea is nice but I don’t know if it would be linked to surreal numbers by many
20:34:09 <kmc> i kind of thought it would break out of the frame
20:35:34 <int-e> I was wrong, this isn't actually happening on github (which phrases the message differently); it's just its sibling, gist.
20:38:19 <int-e> Huh. Can't reproduce? Maybe my brain read something that wasn't there. In that case... let me get back on the project of detonating the Sun to erase all evidence of this ever happening.
20:41:25 -!- shachaf has left.
20:42:55 <arseniiv> `? int-e
20:42:56 <HackEso> int-e är inte svensk. Hen kommer att spränga solen. Hen står för sig själv. Hen gillar inte färger, men han gillar dissonans. Er hat ein Hipster-Spiel gekauft.
20:43:00 -!- ais523 has joined.
20:43:20 <ais523> I'm not sure if I should continue reading the HTML spec, it just continues to get weirder and weirder
20:43:22 <arseniiv> hm yes I still haven’t learned this language
20:43:48 <ais523> for example, it uses the three-word phrase "will declaratively refresh" as though it were a single-word noun
20:44:06 <ais523> e.g. "If document's will declaratively refresh is true, then return."
20:44:21 <int-e> arseniiv: Yes, it is mentioned in there.
20:44:55 <ais523> which, given that most of the document is written in pseudocode, I'm not even sure I can argue that this is wrong because variable names can be anything without changing the meaning
20:45:17 <ais523> but you'd have thought that reasonable programs would try to use something less unwieldy
20:46:54 <arseniiv> int-e: (could you maybe try the Moon first? If it’ll be sufficient then at least someone will still have the Sun)
20:48:30 <int-e> arseniiv: No, the whole point of this endeavour is to be thorough.
20:48:51 <int-e> arseniiv: Unfortunately, I don't even know where to begin. ;)
20:49:01 <arseniiv> int-e: but the Sun may be not enough
20:49:20 <int-e> arseniiv: True, true.
20:49:34 <int-e> arseniiv: However you should make up your mind about what you want.
20:50:03 <ais523> <int-e> Hrm. "Are you sure you want to cancel this operation? [Cancel] [Ok]" ← I'm having problems working out a good interface for that, especially because by the normal interface guidelines, /both/ buttons should say "Cancel"
20:50:14 <ais523> (this is assuming that there's no easy way to undo the cancel once it's started)
20:50:24 <ais523> (otherwise, you just cancel and have an "undo cancel" button, which is 100% clear)
20:50:31 <arseniiv> ah, so I need to distract you with blowing up Sagittarius A* after all
20:50:42 <arseniiv> int-e: ^
20:51:17 <ais523> that might be a fun question for the user interface design stack exchange
20:51:31 <ais523> I think nowadays my main usage of stack exchange is asking ridiculously hard questions that I don't expect there to be a good answer to
20:51:37 <zzo38> I think (Y/N) is best, but that is not applicable to HTML. I suggested displaying true/false if the confirm() function is used.
20:51:45 <zzo38> Since, those are the return values of the confirm() function.
20:51:53 <ais523> (nothing is lost if I'm right, but something amazing often happens when I'm wrong, so the overall expectation is very positive)
20:52:09 <int-e> I'm really miffed about not being able to reproduce it, and not knowing whether it's a corner case or something I just imagined.
20:52:48 <int-e> Not enough to go diving into github's code, but it's kind of a close call.
20:54:31 <arseniiv> int-e: I tried to cancel editing my own comment now at my gist, and it asks “Are you sure you want to discard your unsaved changes?” with OK and Cancel (translated) buttons
20:54:53 <arseniiv> is it what you think you have seen?
20:56:28 <arseniiv> ah, btw the browser is Firefox and the dialog is seemingly by Firefox, so it should be a standard JS function being used, yep
20:57:19 <int-e> arseniiv: That is what I'm seeing when I try to reproduce the problem :P
20:57:38 <arseniiv> ah sorry
20:57:44 <int-e> arseniiv: But it's not what I thought I saw.
20:58:01 <int-e> arseniiv: Don't worry. It's nice to get *something* right. :P
20:58:15 <arseniiv> though at least what you see instead is more reproducible that it was known prior
20:59:17 <arseniiv> int-e: *something* right => then not the Sun, Sagittarius A*
21:03:08 <esowiki> [[User:PythonshellDebugwindow/Sandbox]] M https://esolangs.org/w/index.php?diff=71003&oldid=70994 * PythonshellDebugwindow * (+859)
21:04:29 <int-e> arseniiv: Nah, I also try to keep my goals realistic. If I'm to shoot at stars, I'll start with the Sun.
21:05:05 <arseniiv> still, I have some time to dissuade you
21:05:44 <int-e> Perhaps so, but all you're accomplishing is to strengthen my resolve.
21:09:04 <arseniiv> int-e: hmm it came to my mind if I blow up Sgt A* first (and in the right way), you woudn’t get a chance with the Sun… hm
21:10:08 <arseniiv> though this is a goal no less distant to me too, so I’m just musing alound
21:10:58 <arseniiv> though no, I should pick Betelgeuse
21:11:18 <ais523> are there any natural languages where the natural translations of "yes" and "no" start with the same letter?
21:30:12 <fizzie> A table on the Internet says that in the Bambara language (which is "mostly written in the Latin script") those are Awɔ and Ayi respectively. But another dictionary page writes the yes as "ɔwɔ", and there is an uppercase Ɔ as well, so maybe not. It does seem to be a different vowel, at least.
21:34:18 <fizzie> The Hawaiian ʻae (yes) and ʻaʻole (no) might count. (I don't know any of these languages, just guessing.)
21:40:16 -!- Lord_of_Life_ has joined.
21:42:55 -!- Lord_of_Life has quit (Ping timeout: 260 seconds).
21:43:03 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
21:49:45 <zzo38> The user interface guidelines are perhaps no good then. What is done in vi is better, you must type :q! if you want to discard your changes, if you type :q and there are unsaved changes, it tell you that you must type :q! instead if you want to discard the unsaved changes or :w to save changes, or :wq to save and quit.
22:03:16 -!- joast has quit (Ping timeout: 256 seconds).
22:25:15 <ais523> zzo38: that's a good solution for a command-line interface
22:26:09 <ais523> hmm, the best dialog button names I can think of for this are "Confirm cancel" and "Continue, don't cancel"
22:27:42 <zzo38> Perhaps "discard" and "continue editing" (and possibly also "save changes")
22:30:18 <ais523> zzo38: if it's just for an editor, then yes, that's the standard
22:32:16 <zzo38> Yes. For other things, there is other stuff. Such as, if an operating is processing and then will be completed by itself in time, to put: Copying interrupted. Push space to resume copying or ^C to cancel copying.
22:48:08 <zzo38> Maybe the overspill for reconnaissance should be you can look at the top card of any player's regular pile.
22:50:25 <zzo38> (You cannot look at the card underneath the top card even if you have more than one reconnaissance, but if you have two reconnaissances then you can look at both your own and your opponent's card.)
23:00:49 -!- Guest51731 has quit (Read error: Connection reset by peer).
23:05:31 -!- Phantom_Hoover has quit (Ping timeout: 260 seconds).
23:20:39 -!- joast has joined.
23:58:48 -!- arseniiv has quit (Ping timeout: 256 seconds).
←2020-04-12 2020-04-13 2020-04-14→ ↑2020 ↑all