←2020-10-27 2020-10-28 2020-10-29→ ↑2020 ↑all
00:07:29 -!- t20kdc has quit (Remote host closed the connection).
00:17:19 <esowiki> [[BrainFuckFart]] M https://esolangs.org/w/index.php?diff=78206&oldid=78204 * PythonshellDebugwindow * (-41) /* Commands */ Looking at the interpreter, it seems that consume does mean set to zero
00:18:06 <esowiki> [[BrainFuckFart]] M https://esolangs.org/w/index.php?diff=78207&oldid=78206 * PythonshellDebugwindow * (+137) /* Contact */ Categorues
00:20:12 -!- ais523 has quit (Quit: quit).
00:33:57 -!- delta23 has quit (Read error: Connection reset by peer).
00:36:12 -!- deltaepsilon23 has joined.
00:44:43 -!- imode has quit (Ping timeout: 260 seconds).
00:46:08 -!- deltaepsilon23 has quit (Quit: Quit).
00:46:33 -!- imode has joined.
00:52:45 -!- Lord_of_Life_ has joined.
00:54:48 -!- Lord_of_Life has quit (Ping timeout: 265 seconds).
01:10:16 -!- FreeFull has quit.
01:15:04 -!- Lord_of_Life_ has quit (Ping timeout: 240 seconds).
01:18:39 -!- Lord_of_Life has joined.
02:01:26 -!- adu has joined.
03:22:48 -!- pikhq has quit (Ping timeout: 260 seconds).
03:25:01 -!- pikhq has joined.
03:27:11 -!- dcristofani has joined.
03:54:25 -!- dcristofani has quit (Read error: Connection reset by peer).
04:10:04 -!- tromp has quit (Remote host closed the connection).
04:39:32 -!- tromp has joined.
04:44:40 -!- tromp has quit (Ping timeout: 260 seconds).
05:29:25 -!- MDude has joined.
05:29:26 -!- MDead has joined.
05:30:12 -!- MDude has quit (Client Quit).
05:30:22 -!- MDead has changed nick to MDude.
05:31:07 -!- MDude has quit (Client Quit).
06:25:01 -!- Sgeo has quit (Read error: Connection reset by peer).
06:36:18 -!- adu has quit (Quit: adu).
07:00:44 -!- imode has quit (Ping timeout: 240 seconds).
07:32:09 -!- tromp has joined.
07:55:27 -!- Lord_of_Life has quit (Changing host).
07:55:27 -!- Lord_of_Life has joined.
08:07:52 -!- hendursa1 has joined.
08:10:23 -!- hendursaga has quit (Ping timeout: 240 seconds).
08:30:23 -!- aaaaaa has quit (Quit: leaving).
08:48:47 <esowiki> [[5D Brainfuck With Multiverse Time Travel]] M https://esolangs.org/w/index.php?diff=78208&oldid=78178 * RocketRace * (-23) Clarify ~ behavior
08:49:25 <esowiki> [[5D Brainfuck With Multiverse Time Travel]] M https://esolangs.org/w/index.php?diff=78209&oldid=78208 * RocketRace * (+51) Formatting
08:51:33 -!- b_jonas has quit (Quit: leaving).
08:52:27 <esowiki> [[5D Brainfuck With Multiverse Time Travel]] M https://esolangs.org/w/index.php?diff=78210&oldid=78209 * RocketRace * (+108) Recommended implementation-dependent behavior
09:42:33 <esowiki> [[Minasm]] N https://esolangs.org/w/index.php?oldid=78211 * OsmineYT * (+23) Created page with "{{lower}} '''minasm'''"
09:43:09 <esowiki> [[Minasm]] https://esolangs.org/w/index.php?diff=78212&oldid=78211 * OsmineYT * (+4)
09:43:19 <esowiki> [[Minasm]] https://esolangs.org/w/index.php?diff=78213&oldid=78212 * OsmineYT * (-1)
09:51:39 -!- t20kdc has joined.
10:08:25 <esowiki> [[Turing machine]] M https://esolangs.org/w/index.php?diff=78214&oldid=77981 * OsmineYT * (+1) Grammar
10:17:44 <esowiki> [[Minasm]] https://esolangs.org/w/index.php?diff=78215&oldid=78213 * OsmineYT * (+310)
10:17:59 <esowiki> [[Minasm]] https://esolangs.org/w/index.php?diff=78216&oldid=78215 * OsmineYT * (-336) Blanked the page
10:18:06 <esowiki> [[Minasm]] https://esolangs.org/w/index.php?diff=78217&oldid=78216 * OsmineYT * (+336)
10:18:39 <esowiki> [[Minasm]] https://esolangs.org/w/index.php?diff=78218&oldid=78217 * OsmineYT * (-4)
10:19:00 <esowiki> [[Minasm]] https://esolangs.org/w/index.php?diff=78219&oldid=78218 * OsmineYT * (+4)
10:20:00 <esowiki> [[Minasm]] https://esolangs.org/w/index.php?diff=78220&oldid=78219 * OsmineYT * (+1)
10:21:11 <esowiki> [[User:OsmineYT]] https://esolangs.org/w/index.php?diff=78221&oldid=78010 * OsmineYT * (+12)
10:21:43 -!- hendursa1 has quit (Ping timeout: 240 seconds).
10:22:08 <esowiki> [[Minasm]] https://esolangs.org/w/index.php?diff=78222&oldid=78220 * OsmineYT * (-10)
10:22:17 <esowiki> [[Minasm]] https://esolangs.org/w/index.php?diff=78223&oldid=78222 * OsmineYT * (+1)
10:33:15 -!- hendursa1 has joined.
11:12:03 <esowiki> [[Template:ItalicTitle]] N https://esolangs.org/w/index.php?oldid=78224 * SunnyMoon * (+53) New template!
11:13:01 <esowiki> [[99 (Esolang)]] https://esolangs.org/w/index.php?diff=78225&oldid=78196 * SunnyMoon * (+6) Yee new template!
11:23:25 -!- arseniiv has joined.
12:16:45 <esowiki> [[Turing machine]] M https://esolangs.org/w/index.php?diff=78226&oldid=78214 * PythonshellDebugwindow * (-1) Grammar (hm? why `An T`?)
12:18:27 <esowiki> [[99 (Joke language)]] M https://esolangs.org/w/index.php?diff=78227&oldid=78184 * PythonshellDebugwindow * (+39) Distinguish/Confusion
12:20:38 <esowiki> [[99 (Esolang)]] M https://esolangs.org/w/index.php?diff=78228&oldid=78225 * PythonshellDebugwindow * (+69) Distinguish/Confusion
12:25:05 <esowiki> [[Increment]] M https://esolangs.org/w/index.php?diff=78229&oldid=73127 * PythonshellDebugwindow * (-2) /* Partial Implementation */ Correct header level
12:53:47 -!- rain1 has quit (Quit: Leaving).
13:03:55 -!- hendursa1 has quit (Quit: hendursa1).
13:04:10 -!- hendursaga has joined.
13:04:26 -!- hendursaga has quit (Client Quit).
13:04:38 -!- hendursaga has joined.
13:11:57 <esowiki> [[Probablyfuck]] M https://esolangs.org/w/index.php?diff=78230&oldid=78171 * Rdococ * (+162) /* Multiplication */
13:15:41 <esowiki> [[Probablyfuck]] M https://esolangs.org/w/index.php?diff=78231&oldid=78230 * Rdococ * (-1) /* Instructions */
13:22:55 <esowiki> [[Minasm]] https://esolangs.org/w/index.php?diff=78232&oldid=78223 * OsmineYT * (+885)
14:02:47 -!- FreeFull has joined.
14:24:51 -!- atehwa has joined.
14:50:22 -!- ais523 has joined.
14:50:53 <ais523> when using a shell to run a command, and specifying the command's arguments, what characters can safely be used without any form of quoting?
14:51:39 <ais523> ideally in a way that's portable across all commonly used shells on all common OSes, but failing that I'll settle for sh and its derivatives
14:52:18 -!- wib_jonas has joined.
14:52:34 <ais523> I'm pretty sure letters, digits, underscores, - and _ are safe, and fairly confident on @ and +; I suspect % is safe on POSIX but not Windows
14:52:40 <wib_jonas> ais523: yeah, that's an ugly question and usually leads to no good
14:53:06 <ais523> oh, . is safe and , probably is
14:53:34 <wib_jonas> ais523: do you count the program name itself as an argument?
14:53:39 <ais523> we might have reached the limits of ASCII punctuation now
14:53:42 <ais523> wib_jonas: not for this purpose
14:54:22 <ais523> ah, / is also safe, but I forgot to mention it earlier (I was thinking about it though)
14:54:31 <wib_jonas> does perl count as a commonly used shell? I often use it on windows because the shell sucks.
14:54:40 <wib_jonas> to invoke commands that is
14:54:55 <ais523> I think ? and * are safe on Windows, because there, globs are expanded by the program not the shell
14:55:24 <ais523> when using perl as a shell, do you need some sort of prefix to explicitly invoke shell commands?
14:55:34 <ais523> rather than perl functions?
14:55:43 <wib_jonas> yes
14:56:07 <ais523> right, there are some obvious clashes otherwise, like "rmdir"
14:56:32 <ais523> I'm trying to design the command-line interface for an esolang, and thought it would be nice if it didn't require quoting
14:56:56 <ais523> presumably if you're calling it from Perl, you're used to having to quote things
14:57:48 <wib_jonas> ais523: if you're designing a command-line interface, I suggest one that does require quoting, but only easy quoting:
14:58:40 <wib_jonas> use ascii characters other than double quote, single quote, backslash, percent, circumflex; plus possibly some non-ascii non-control characters. then you can double-quote on windows and single-quote on posix and you have no problems anywhere.
14:58:55 <ais523> ooh, is ^ safe on POSIX?
14:58:57 <wib_jonas> if you want to go further, make it also no dollar signs and no backticks so you can double-quote the arguments anywhere
14:59:30 <ais523> the thing is, the esolang uses base 64 syntax, so programs consist only of letters, digits, +, /, and I think those are all shell-safe
14:59:50 <ais523> so I just wanted two more characters to allow programs to be read from a file (as either packed base64 or ASCII-encoded base64)
15:00:08 <ais523> I believe "read this command-line argument from a file" is traditionally expressed using @
15:00:41 <wib_jonas> ais523: it's ugly because non of the punctuations are safe in all contexts. in any one context you can find two punctuation that's safe enough to make a base64 thing, but it's not a single set of two punctuation. I wish it was, I looked into it.
15:00:46 <ais523> but I'd want an alternative to specify that the file should be unpacked too (or an extra option, but that's boring and this is #esoteric)
15:01:05 <wib_jonas> for just shells I recommend . and _
15:01:27 <wib_jonas> dot and underscore if you need just two
15:01:45 <wib_jonas> but that's specifically for shells, they're not the best in all contexts
15:02:03 -!- ais523 has quit (Remote host closed the connection).
15:02:16 -!- ais523 has joined.
15:02:33 <ais523> the + and / are already locked in as part of the syntax
15:02:44 <ais523> but I think they're shell-safe anyway
15:03:03 <ais523> fwiw, if I wanted some fairly safe base64, I would probably use - and _ as the extra two characters
15:03:31 <wib_jonas> + and / were usually considered argument-separators on DOS, so a few windows commands treat it specially, but if you pass them to your program then they're safe
15:04:15 <wib_jonas> I don't like hyphen in shells, it's considered an option prefix in too many contexts
15:04:27 <ais523> oh, you mean that /a/b might be passed as "/a" "/b" rather than as one argument?
15:04:29 <wib_jonas> it's fine if you can guarantee it's not the first of an argument
15:04:48 <ais523> also, isn't the entire point of options to be passed to the program?
15:05:17 <ais523> so it doesn't really matter whether an option starting - is parsed as an option or not
15:05:22 <wib_jonas> ais523: yes of course, but you might be implementing your language in something that hijacks those before they reach your program
15:05:54 <ais523> oh, you mean at the executable level?
15:06:06 <ais523> I'm implementing it in OCaml, I don't think that hijacks options
15:08:35 <wib_jonas> ais523: do you know, off the top of your head, the option for ghc to compile *your* main program such that it doesn't scan the argv for a certain special string as an escape for settings for the haskell runtime and garbage collector? nor do many other people, so they'll misimplement your language, if programs can start with "+RTS" . that doesn't
15:08:35 <wib_jonas> even start with a hyphen. yes, it's bloody stupid of ghc, but I think this is exactly the sort of bloody stupid thing you're asking about right now.
15:09:14 <wib_jonas> ("https://downloads.haskell.org/ghc/latest/docs/html/users_guide/runtime_control.html#setting-rts-options" for reference)
15:09:51 <wib_jonas> admittedly the quoting that I mentioned wouldn't fix that either
15:10:21 <ais523> that's a nice sort of stupid thing to warn me about :-)
15:11:10 <wib_jonas> and I think programs you compile for cygwin do something even worse
15:11:18 <wib_jonas> I don't remember what, I hate cygwin and don't use it
15:12:33 <wib_jonas> I wonder if it might help if your programs always start with ./
15:12:41 <wib_jonas> then the later minuses won't matter
15:12:46 <wib_jonas> and usually the pluses either
15:12:59 <wib_jonas> neither
15:13:20 <wib_jonas> at least when it's just shell arguments, not filenames or URLs or mediawiki page titles or some such
15:18:36 -!- Sgeo has joined.
15:21:49 <esowiki> [[Minasm]] https://esolangs.org/w/index.php?diff=78233&oldid=78232 * OsmineYT * (+503)
15:28:16 <esowiki> [[Minasm]] https://esolangs.org/w/index.php?diff=78234&oldid=78233 * OsmineYT * (+84)
15:30:32 -!- rain1 has joined.
15:52:52 -!- wib_jonas has quit (Quit: Connection closed).
17:07:36 -!- Arcorann_ has quit (Read error: Connection reset by peer).
17:39:56 -!- MDude has joined.
17:40:02 -!- MDead has joined.
18:31:17 <oren> sed -e s/\'/\'\\\\\'\'/g -e s/^/\'/ -e s/\$/\'/
18:31:35 <oren> is there any way to do this that doesn't look this bad
18:37:29 <oren> I tried perl but it didn't work
18:39:00 <user3456> what is this code supposed to do?
18:43:06 <oren> take a string, possibly containing spaces, ', ", etc and convert to single-quoted string that can be copypasted back into bash
18:48:41 <esowiki> [[Minasm]] https://esolangs.org/w/index.php?diff=78235&oldid=78234 * OsmineYT * (+1097)
18:55:35 <user3456> There's another way using python instead of sed
18:55:50 <user3456> but afaik this is the best when using sed
18:56:16 * user3456 isn't that experienced with sed though
18:58:53 -!- imode has joined.
19:08:03 -!- hendursaga has quit (Ping timeout: 240 seconds).
19:09:16 -!- hendursaga has joined.
19:30:03 <esowiki> [[Minasm]] https://esolangs.org/w/index.php?diff=78236&oldid=78235 * OsmineYT * (+535)
19:33:39 <ais523> oren: I used a Perl module off CPAN for that; overkill but more readable
19:35:27 <ais523> so my command would be perl -MShellQuote::Any::Tiny=shell_quote -lpe '$_ = shell_quote $_'
19:36:02 <ais523> I think it's using the algorithm of «replace ' with '"'"', prepend ', append '»
19:36:20 <ais523> but this algorithm is a pain to write down in almost any context because it has so many punctuation marks in it that it's hard to quote
19:37:26 <ais523> creating double-quoted strings is probably easier in Perl, because there's a builtin `quotemeta`
19:47:55 -!- orbitaldecay has joined.
19:48:09 <orbitaldecay> Greetings all
19:49:22 <orbitaldecay> Looking for some insight about linear bounded automata. A finite state machine attached to a finite, but arbitrarily large tape is equivalent in expressive power to a LBA because we can just pad the input length arbitrarily, true?
19:54:37 <orbitaldecay> To put it in other words, an LBA can execute any program that uses a finite about of memory? But any program that uses an unbounded amount of memory it cannot?
19:57:06 <imode> I wouldn't use unbounded, just whatever that finite bound is + 1.
19:58:50 <orbitaldecay> imode: but couldn't we then just pad the input by 1 symbol to allow for the required tape length?
19:59:50 <orbitaldecay> we could introduce a symbol that does nothing but pad and is otherwise ignored by the LBA
20:00:15 <ais523> the amount of memory an LBA can use is input-dependent; the amount of memory an FSM can use isn't
20:00:35 <ais523> many FSMs can take an arbitrary amount of input, but they can't store it anywhere
20:00:41 <ais523> whereas an LBA can
20:01:12 <orbitaldecay> but if the input length is > storage space in FSM algos have to be "online" in some form?
20:01:18 <orbitaldecay> not true of lbas?
20:01:50 <ais523> the way to think about it is that FSMs read the input one bit (/byte/symbol/whatever, but a fixed size) at at ime
20:01:58 <ais523> * at a time
20:02:04 <orbitaldecay> that makes sense to me
20:02:19 -!- diverger has quit (Ping timeout: 246 seconds).
20:02:23 <ais523> the way in which an LBA reads doesn't really matter, because it has enough memory to store the entire input
20:03:14 <ais523> there are middle grounds, like NL (which is particularly interesting); in NL, the program can store a finite number of points to the input, and read and reread it through them, but can't write to the space storing the input and otherwise doesn't have linear memory
20:03:23 <ais523> * pointers to the input
20:03:34 -!- diverger has joined.
20:03:54 <orbitaldecay> so, can we say that an lba is equivalent to any machine that has a finite but input dependent tape length (because of padding)? Or are we strictly stuck with linear space usage?
20:04:36 <orbitaldecay> I've seen information that claimed O(n) space usage as a limit, but I'm having trouble convincing myself of that
20:05:17 <orbitaldecay> I get the extending the alphabet argument for an arbitrary constant attached to the n
20:05:57 <orbitaldecay> I just don't see why it's limited to O(n) space
20:06:25 <orbitaldecay> Say I encode the input to be input + length(input)^2 null symbols
20:06:48 <orbitaldecay> wouldn't the dependency on the original input be quadratic in space?
20:06:59 <ais523> LBAs are limited to O(n) space by definition, if you have more it isn't an LBA
20:07:09 <ais523> but, what an LBA can do depends on the input encoding, as a consequence
20:07:31 <ais523> normally, automaton theory is concerned with specific input encodings (I think it evolved out of parser theory, and of course a parser doesn't get to choose how its input is encoded)
20:08:11 <ais523> the "encode the input to be input + length(input)^2 null symbols" step is something that an LBA can't do, and if you have a separate program or person doing it for you, that raises the computational class of the system as a whole
20:08:26 -!- diverger has quit (Ping timeout: 256 seconds).
20:09:06 <orbitaldecay> Ahhhh, bingo, that was the piece of information I wasn't seeing., That encoding of the input requires a separate computational object with greater expressive power than an LBA
20:09:27 <orbitaldecay> Thank you
20:10:34 <orbitaldecay> Is there such a thing as a polynomial bounded automaton?
20:10:44 <ais523> yes, but I don't think they've been studied much
20:11:15 <orbitaldecay> interesting
20:12:09 <ais523> LBAs have a tendency to arise "naturally" sometimes, e.g. https://esolangs.org/wiki/BuzzFizz is an LBA
20:12:22 <ais523> I'm not sure I've seen higher-degree bounded automata in the wild
20:13:49 <orbitaldecay> The interesting thing about LBAs that I was exploring is their link to monotonic grammars. I doubt polynomial bounded automata have such a nice representation
20:16:27 <orbitaldecay> Testing intuition: if you only use non-nested for loops for control flow in a procedural program, you get an LBA?
20:17:42 <ais523> this really depends on what sort of memory access and arithmetic primitives you have available
20:17:54 <ais523> it's probably an LBA if you don't have anything more powerful than "increment" for doing arithmetic
20:17:58 <orbitaldecay> Of course, I'm thinking in the realm of BF
20:18:02 <orbitaldecay> for example
20:21:01 <orbitaldecay> Okay, this is all really helpful. Thank you. I'm going to do more reading and try to expand my intuition on how this interesting little things work.
20:21:02 -!- diverger has joined.
20:25:50 -!- diverger has quit (Read error: Connection reset by peer).
20:26:07 -!- diverger has joined.
20:38:04 -!- FreeFull has quit (Read error: Connection reset by peer).
20:45:26 -!- diverger has quit (Quit: ZNC 1.7.5 - https://znc.in).
20:47:00 -!- diverger has joined.
20:57:08 -!- divergence has joined.
20:57:51 -!- diverger has quit (Ping timeout: 258 seconds).
21:04:44 -!- b_jonas has joined.
21:07:44 -!- divergence has quit (Ping timeout: 240 seconds).
21:08:15 -!- diverger has joined.
21:59:17 -!- hakatashi1 has quit (*.net *.split).
21:59:17 -!- BWBellairs has quit (*.net *.split).
21:59:17 -!- HackEso has quit (*.net *.split).
21:59:18 -!- aloril has quit (*.net *.split).
21:59:23 -!- HackEso has joined.
21:59:34 -!- hakatashi has joined.
21:59:38 -!- BWBellairs has joined.
22:01:54 -!- aloril has joined.
22:34:05 -!- aaaaaa has joined.
22:41:54 -!- Arcorann_ has joined.
23:20:44 -!- adu has joined.
23:28:39 -!- orbitaldecay has quit (Remote host closed the connection).
23:58:23 -!- tromp has quit (Remote host closed the connection).
←2020-10-27 2020-10-28 2020-10-29→ ↑2020 ↑all