00:06:13 -!- imode has quit (Ping timeout: 265 seconds).
00:15:57 -!- sust has quit (Quit: Bye!).
00:17:41 -!- moony has joined.
00:18:25 -!- FreeFull has quit.
00:46:48 -!- tromp has joined.
00:52:02 -!- tromp has quit (Ping timeout: 276 seconds).
01:06:20 -!- oerjan has joined.
01:12:08 <oerjan> @tell <kspalaiologos> I nearly started a disaster <-- it's traditional. although make sure you know how to stop it, or that there's an op actively present who can do so.
01:12:25 <oerjan> @tell kspalaiologos <kspalaiologos> I nearly started a disaster <-- it's traditional. although make sure you know how to stop it, or that there's an op actively present who can do so.
01:12:35 <oerjan> hm have i forgotten that recently?
01:13:13 <oerjan> no matches for @tell < this month before that
01:14:10 <b_jonas> oerjan: I made sure. both bfbot and fungоt lets you redefine that command on the fly, thus stopping the loop
01:14:35 <b_jonas> in fact, I should probably undefine those commands now, to stop future disasters in case the ignore list changes
01:14:54 <fungot> Usage: ^def <command> <lang> <code>
01:15:01 <bfbot> No such command. Try =help.
01:15:26 <b_jonas> (I defined those commands originally)
01:15:48 <b_jonas> also kspalaiologos runs bfbot so he could probably have stopped it somehow
01:20:39 <oerjan> ^def quine ul (^quine)S
01:20:52 <oerjan> no harm since fungot doesn't read its own lines
01:20:53 <fungot> oerjan: you speak nonsense that i find useful fnord things out. once i figured it
01:21:58 <oerjan> hm it wouldn't be too hard to make that a quine with payload in bf
01:22:20 <HackEso> 91 ++++++++++++++[>++++++++>+++++++>++><<<<-]>>----.<+.++++.>+++++++++++.<-------.>----.>++++. [61]
01:23:08 <oerjan> or wait, then it would technically be wrong if given no argument
01:24:05 <oerjan> and i don't think there's anyway in ^bf to distinguish a command given no argument from one given an empty one
01:26:08 <oerjan> apparently fungot writes nothing then
01:26:08 <fungot> oerjan: explicit at what level this kind of things.
01:27:32 <b_jonas> admittedly there's still some risk that my internet dies between starting the loop and stopping it
01:28:07 <oerjan> well as long as there's an obvious way anyone can stop it...
01:28:46 <b_jonas> yes, I should say something like 'say "=undef quine" to stop if this happens to loop' before issuing the command
01:28:54 <oerjan> there's also a risk that a spammer enters and starts blasting nonsense, which is probably greater so your risk can be rounded away :P
01:35:38 <HackEso> Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot = .
01:36:02 <oerjan> `slwd prefixes//s, .$,.,
01:36:07 <HackEso> /hackenv/bin/sled: 2: /hackenv/bin/sled: [[: not found \ usage: sled file//script
01:36:27 <oerjan> `slwd prefixe//s, .$,.,
01:36:29 <HackEso> /hackenv/bin/sled: 2: /hackenv/bin/sled: [[: not found \ usage: sled file//script
01:38:14 <HackEso> cd $HACKENV/wisdom; sled "$1" | sed '1s/^Rosebud!$/Roswbud!/'
01:38:29 <HackEso> Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot = .
01:39:03 <HackEso> opts="${2--i}" \ [[ "$1" == ?*//* ]] || { echo 'usage: sled file//script'; exit 1; }; key="${1%%//*}"; value="${1#*//}"; [[ -f "$key" ]] || { echo 'Rosebud!'; exit 1; }; sed $opts "$value" "$key" ;
01:39:29 <oerjan> `sled wisdom/prefixes//s, .$,.,
01:39:30 <HackEso> /hackenv/bin/sled: 2: /hackenv/bin/sled: [[: not found \ usage: sled file//script
01:40:00 <esowiki> [[Special:Log/newusers]] create * Orvira * New user account
01:40:47 <HackEso> lrwxrwxrwx 1 0 0 4 Jan 17 2019 /bin/sh -> dash
01:41:21 <HackEso> cat: test: No such file or directory
01:42:01 -!- imode has joined.
01:42:17 <oerjan> `sled ../wisdom/prefixes//s, .$,.,
01:42:18 <HackEso> /hackenv/bin/sled: 2: /hackenv/bin/sled: [[: not found \ usage: sled file//script
01:45:46 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=67383&oldid=67368 * Orvira * (+305)
01:45:48 <oerjan> hm no recent repository changes seem relevant
01:49:32 <HackEso> PID TTY TIME CMD \ 49 ? 00:00:00 cat \ 50 ? 00:00:00 ps
01:49:48 <HackEso> #!/bin/bash \ cmd="${@-quote}" \ TIMEFORMAT="real: %lR, user: %lU, sys: %lS" \ shopt -s extglob globstar \ eval -- "$cmd" | rnooodl
01:50:26 <oerjan> `` slwd 'prefixe//s, .$,.,'
01:50:34 <oerjan> `` slwd 'prefixes//s, .$,.,'
01:50:37 <HackEso> prefixes//Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot =.
01:51:05 <oerjan> fizzie: you've started running commands with /bin/sh instead of /bin/bash
01:51:14 <fizzie> Yes, although not really intentionally.
01:51:48 <HackEso> #!/bin/bash \ if grep -q \ <<<"$1"; then "${1%% *}" "${1#* }"; else "$1"; fi
01:52:15 <fizzie> There used to be a bash script called 'limits' that everything was executed through, and it had a #! /bin/bash header.
01:52:35 <fizzie> I made that redundant and removed it, so now the command is executed by a direct execvp.
01:53:18 <fizzie> Which defaults to /bin/sh for the "permissions say executable, but the file format is not recognized" case.
01:53:54 <fizzie> Wonder how I should fix this though.
01:54:28 <oerjan> `` slbd 'sled//1i#!/bin/bash'
01:54:30 <HackEso> sled//#!/bin/bash \ opts="${2--i}" \ [[ "$1" == ?*//* ]] || { echo 'usage: sled file//script'; exit 1; }; key="${1%%//*}"; value="${1#*//}"; [[ -f "$key" ]] || { echo 'Rosebud!'; exit 1; }; sed $opts "$value" "$key" ;
01:55:04 <fizzie> I mean, one fix is to put #!/bin/bash in every file, but that kind of breaks the easy mkx script generation.
01:55:50 <oerjan> right, i just mitigated this one
01:56:00 <fungot> Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot (, jconn ), j-bot [, bfbot = .
01:56:18 <oerjan> ^def prefixes (Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot =.)S
01:56:18 <fungot> Usage: ^def <command> <lang> <code>
01:56:28 <oerjan> ^def prefixes ul (Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot =.)S
01:56:52 <oerjan> there. of course i also ^def'ed a useless test command above.
01:59:08 <oerjan> (the change was in spaces btw, they're supposed to be there only when part of the prefix)
01:59:29 <fizzie> It took me longer than I'd like to admit to realize that, but got there eventually.
02:00:00 <fizzie> I could make umlbox init do the $PATH lookup manually, and then use execv, and handle the ENOEXEC error by running /bin/bash instead.
02:02:43 <fizzie> Or I could just say scripts with no designated interpreter use /bin/sh (dash). Ugh. I don't know what's best.
02:04:00 <oerjan> slashlearn_append which you moved today would also be affected
02:05:03 <fizzie> Hmp. I guess people have gotten used to there being a bash.
02:05:48 <oerjan> changing $SHELL would also be an option, no?
02:06:09 <fizzie> No, because that's not used for execvp.
02:08:04 <fizzie> It's just a hardcoded "/bin/sh" (aka _PATH_BSHELL) in glibc.
02:08:41 <fizzie> It's not like searching $PATH is particularly hard, it was just convenient that the function did it for me.
02:10:26 <fizzie> OTOH, I might give it a better error message while I'm at it, one that includes the command name.
02:10:32 <HackEso> umlbox: execvp: No such file or directory
02:18:22 <fizzie> I'm tempted to make that error say asdf? ¯\(°_o)/¯ but that'd be so confusing.
02:34:53 -!- tromp has joined.
02:37:17 <fizzie> `mkx shtest//echo "[$BASH_VERSION]"
02:38:30 <fizzie> Cheated a little, actually mkx itself was broken before I did that, because it too uses [[ and ${x%%//*} stuff.
02:39:17 -!- tromp has quit (Ping timeout: 250 seconds).
02:51:53 <fizzie> Opted not to add the ¯\(°_o)/¯.
04:13:03 <oerjan> `` unidecode $(\? haiku)
04:13:04 <HackEso> [U+1F028 MAHJONG TILE AUTUMN] [U+3084 HIRAGANA LETTER YA] [U+26C4 SNOWMAN WITHOUT SNOW]
04:14:07 <oerjan> i just learned about kireji from a reference on the iwc forum
04:14:16 <oerjan> and amazingly, this one seems to have one
04:14:27 <oerjan> in the right spot, even
04:16:00 <oerjan> https://en.wikipedia.org/wiki/Kireji#Mid-verse_ya_や
04:16:28 <HackEso> 1248) <mauris> MAHJONG TILE AUTUMN / HIRAGANA LETTER YA / SNOWMAN WITHOUT SNOW
04:16:48 <oerjan> i wonder if mauris was aware of this rule
04:17:17 * oerjan winds forward nick changes in his mind
04:18:48 <oerjan> lynn: my winding is uncertain but suggests you ^
04:20:07 <oerjan> (if so, please confirm if you were aware of that purpose for the YA twh)
04:23:07 -!- tromp has joined.
04:25:15 <oerjan> https://esolangs.org/logs/2016-01-12.html#lYh
04:27:50 -!- tromp has quit (Ping timeout: 276 seconds).
04:37:32 -!- tromp has joined.
04:42:08 -!- tromp has quit (Ping timeout: 276 seconds).
05:00:02 -!- Lord_of_Life has quit (Ping timeout: 252 seconds).
05:00:51 -!- Lord_of_Life has joined.
05:06:10 <oerjan> argh ^U in irssi doesn't seem undoable
05:11:06 <oerjan> *sigh*, ^Y would have worked but i'd of course long since deleted something else while _searching_ for how to do it
05:12:13 <oerjan> because it's called the inexplicable yank_from_cutbuffer, googling for "undo irssi" gave nothing useful
05:14:19 <oerjan> <b_jonas> =def 1prefixes <-- way back, i carefully suggested a bot prefix to make the ()s match precisely so i could use underload and _stop_ having to feed fungot brainfuck through str every time ^prefixes needs to change tdnh
05:14:19 <fungot> oerjan: the second two... the parser can be excised from the task
05:14:58 <oerjan> in other words, i'm not going to be updating that one.
05:15:06 <bfbot> Bot prefixes: fungot ^, HackEso `, lambdabot @ or ?, j-bot [, bfbot =.
05:15:25 <oerjan> oh it has only a subset
05:15:35 <oerjan> but there's still a space missing after [
05:31:04 <oerjan> > fix$(0:).tail.(<**>[id,(1-)])
05:31:06 <lambdabot> [0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1...
05:31:56 <oerjan> on int-e had most of it, but not the <**>
05:42:00 <oerjan> <b_jonas> I don't even know what idris-bot or thutubot is supposed to be. I suspect their names were just invented to pad out the prefixes. Maybe we should invent more fictional bots there. <-- no, they weren't. do you ever suspect that most of your suspicions are incorrect twh
05:42:38 <oerjan> (idris-bot did Idris, thutubot did Thutu hth)
05:55:43 <HackEso> ayacc is ais523's yacc parser generator implementation, get it from darcs clone http://nethack4.org/projects/ayacc
05:58:18 <lambdabot> error: Variable not in scope: interleave
06:20:27 <zzo38> Now I found a implementation of INTERCAL in Rust, in case you are interested such thing
06:26:04 -!- tromp has joined.
06:27:39 -!- kingoffrance has joined.
06:30:20 -!- tromp has quit (Ping timeout: 246 seconds).
06:32:38 -!- imode has quit (Ping timeout: 276 seconds).
06:47:49 <HackEso> subobject classifier? ¯\(°_o)/¯
07:01:02 -!- Frater_EST has joined.
07:46:48 -!- sprocklem has quit (Quit: ...).
07:50:41 -!- sprocklem has joined.
08:03:04 <b_jonas> oerjan: ah sorry about the spaces
08:05:51 <b_jonas> =str 1s++++[->++++<]>[->++>+++>++++>+++++>++++++>+++++++<<<<<<]> >>++.>>+++++++++++++++.>++++.<<<<<.>>>>>----.++.<----------.+.+++.>++++++.<----.>-----.<<<<++++++++++.<.>>>>+.>++.<++++++++.-------.++++++++.>-.<<<<<.>>>++++++++++++++.<<<++++++++++++.------------.>>++++++.>>--------------.++.++++++++.<<---.>>>-.<++++.
08:05:56 <b_jonas> =str 1a<<<<.>>>>---------------.<<<<++++++++++++.------------.>>>>++++++++++++.-----------.++++++++++++.-----------.++.---.+.+++++++++++++.>+.<<<<<.>>-----.<<.>>>>.>--.<<<<<.>+++++.<++++++++++++.------------.>>>>-----.<<<<+++++++++++++.>>>>--------.+++++++++++++.>++.<<<<<-------------.>>>---.<<<.++++++++++++.-------
08:06:01 <b_jonas> =str 1a-----.>>>>-------------.++++.----.+++++++++++++.>.<<<<<.>--.<++++++++++++++.
08:06:04 <bfbot> ok, defined 'prefixes'
08:06:05 <bfbot> Bot prefixes: fungot ^, HackEso `, lambdabot @ or ?, j-bot [ , bfbot =.
08:06:56 <b_jonas> wasn't jconn configured to run without the space though? or did that change later?
08:07:55 <fungot> Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot =.
08:08:31 <HackEso> https://hack.esolangs.org/repo/log/tip/wisdom/prefixes
08:08:57 <b_jonas> basically for [ it makes sense to require a space because it's a nick charcaer, and that's why the original jeval/evalj that I ran with the prefix ] also required the space
08:09:09 <b_jonas> but when the prefix is a parenthesis that doesn't apply
08:09:47 <oerjan> for a left parenthesis it matters because that's very frequent to begin text with
08:10:02 <oerjan> but right isn't quite as clear
08:10:55 <HackEso> https://hack.esolangs.org/repo/log/tip/bin/prefixes
08:12:05 <b_jonas> oerjan: yeah, although I think left parenthesis was never an invocation character of jevalbot. the right parenthesis was used for at least two different instance AND for ijx which is an unrelated J evaluator bot written in J by NotJack
08:13:48 <oerjan> hm i explicitly inserted that space in https://hack.esolangs.org/repo/rev/0ec7180baa0f
08:15:46 <oerjan> before that no prefix had one, so i must have concluded it was necessary
08:16:51 -!- sprocklem has quit (Ping timeout: 250 seconds).
08:18:16 -!- tromp has joined.
08:19:00 <oerjan> https://esolangs.org/logs/2013-05-05.html#lVx shows it didn't work without
08:22:47 <HackEso> Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot =.
08:22:48 <HackEso> Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot =.
08:23:09 <fungot> Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot =.
08:23:13 <bfbot> Bot prefixes: fungot ^, HackEso `, lambdabot @ or ?, j-bot [ , bfbot =.
08:24:04 <lambdabot> • Perhaps you meant ‘prefixed’ (imported from Data.List.Lens)
08:24:45 <oerjan> lambdabot is in too many channels to keep such an #esoteric-specific list even if we could add it
08:25:23 <oerjan> well, i guess we could add an #esoteric-specific key in one of its databases
08:26:05 <oerjan> but it would not have as simple syntax as the rest, so it would be easily forgotten
08:26:40 <lambdabot> where provides: where url what where+
08:26:55 <lambdabot> what <key>. Return element associated with key
08:27:01 <lambdabot> where <key>. Return element associated with key
08:27:03 <b_jonas> ``` echo -n 'actually, lambdabot already has '; grep -Ec '^[^(]*(.lambdabot) ' /hackenv/share/whatis; echo ' commands. nobody would notice an extra.'
08:27:04 <HackEso> actually, lambdabot already has 0 \ commands. nobody would notice an extra.
08:27:35 <oerjan> 0, 1, what's the difference
08:27:37 <b_jonas> ``` grep -E '^[^(]*\(.lambdabot\)' /hackenv/share/whatis
08:27:38 <HackEso> activity(8lambdabot) - no description \ bf(8lambdabot) - evaluate brainfuck snippet \ check(8lambdabot) - no description \ @(8lambdabot) - compose tree of lambdabot commands \ ?(8lambdabot) - compose tree of lambdabot commands \ .(8lambdabot) - compose two lambdabot commands \ compose(8lambdabot) - compose two lambdabot commands \ dice(8lambdabot) - no description \ roll(8lambdabot) - no description \ dict-help(8lambdabot) - no description \ a
08:27:43 <b_jonas> ``` grep -Ev '^[^(]*\(.lambdabot\)' /hackenv/share/whatis
08:27:43 <HackEso> aio.h(0p) - asynchronous input and output \ arpa_inet.h(0p) - definitions for internet operations \ assert.h(0p) - verify program assertion \ complex.h(0p) - complex arithmetic \ cpio.h(0p) - cpio archive values \ ctype.h(0p) - character types \ dirent.h(0p) - format of directory entries \ dlfcn.h(0p) - dynamic linking \ errno.h(0p) - system error numbers \ fcntl.h(0p) - file control options \ fenv.h(0p) - point environment \ float.h(0p) - flo
08:27:45 <b_jonas> ``` grep -Ec '^[^(]*\(.lambdabot\)' /hackenv/share/whatis
08:27:55 <b_jonas> (some of which are synonyms)
08:28:26 <b_jonas> ``` perl -ne '/^([^(]*)\(.lambdabot\)/ and print "$1 "' /hackenv/share/whatis
08:28:27 <HackEso> activity bf check @ ? . compose dice roll dict-help all-dicts bouvier cide devils easton elements foldoc gazetteer hitchcock jargon thesaurus vera wn world02 djinn djinn-add djinn-del djinn-env djinn-names djinn-clr djinn-ver eval choose dummy bug id show wiki paste docs learn haskellers botsnack get-shapr shootout faq googleit hackage thanks thx thank you ping tic-tac-toe elite leet l33t
08:28:42 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
08:28:45 <lambdabot> I'm encased in the lining of a pure pork sausage!!
08:29:38 <lambdabot> where+ <key> <elem>. Define an association
08:29:42 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
08:29:44 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
08:30:43 <b_jonas> @what+ prefixes Bot prefixes on #esoteric : fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot =.
08:30:43 <fungot> b_jonas: because it evaluated the set! macro looks at x and says, ' tell us where to send the passwords in the clear!
08:31:12 <b_jonas> doesn't quite seem to work
08:31:19 <lambdabot> http://www.haskell.org/haskellwiki/FAQ
08:31:31 <b_jonas> @where+ prefixes Bot prefixes on #esoteric : fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot =.
08:31:31 <fungot> b_jonas: maybe one of them.
08:31:36 <lambdabot> Bot prefixes on #esoteric : fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot =.
08:31:46 <b_jonas> @what prefixes does #esoteric have?
08:31:46 <lambdabot> Bot prefixes on #esoteric : fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot =.
08:32:53 <oerjan> i don't think @you actually exists, there's a @thank you that isn't actually working
08:33:24 <oerjan> and which gets listed deceptively
08:33:29 <lambdabot> dummy provides: eval choose dummy bug id show wiki paste docs learn haskellers botsnack get-shapr shootout faq googleit hackage thanks thx thank you ping tic-tac-toe
08:34:06 <b_jonas> @thank you good documentation
08:37:24 <HackEso> thank: nothing appropriate.
08:38:05 <b_jonas> I don't know what character it is supposed to be, but it spellcheck corrects from \u00A0
08:38:11 <b_jonas> I don't know a way to find the real command name
08:38:20 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
08:38:26 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
08:38:29 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
08:38:39 <oerjan> ic. space fails because it's confusable with thanks
08:39:04 <b_jonas> any other such deceptively listed commands that you know about?
08:41:06 <oerjan> it is possible the "real" name _is_ "thank you" with space, as in the string that's used to register it - it's just that none of the other code supports looking _up_ such commands
08:41:12 <b_jonas> buubot3 commands can actually contain one space in their name, and yes, there is an ambiguity between a one-word and a two-word command, which you can use deliberately to set a default for a lookup under a subcommand database
08:41:28 <oerjan> well, except by using spell correction
08:41:34 <b_jonas> that wasn't my idea by the way, buu made it that way
08:42:43 -!- oerjan has quit (Quit: leaving).
08:43:01 -!- sprocklem has joined.
08:44:35 <HackEso> A is one of seven villages in Norway. The BBC invented them by not understanding things on top of letters.
08:44:49 <b_jonas> I wonder if this should mention something about he having made more language entries on the wiki than anyone else
08:57:56 <esowiki> [[RarVM]] M https://esolangs.org/w/index.php?diff=67384&oldid=64686 * Void * (-33)
09:00:48 <zzo38> In DOSBOX if a mouse cursor is displayed in text mode, the cell with the mouse cursor is not updated in some cases.
09:02:35 <b_jonas> do you mean a mouse cursor outside of DOSBOX?
09:11:33 -!- b_jonas has quit (Remote host closed the connection).
09:13:12 <zzo38> I mean the mouse cursor displayed by the DOS program
09:26:24 -!- Frater_EST has quit (Remote host closed the connection).
09:43:13 <FireFly> https://github.com/chessai/theseus interesting reversible language
10:12:24 -!- wib_jonas has joined.
10:19:48 <esowiki> [[Theseus]] N https://esolangs.org/w/index.php?oldid=67385 * B jonas * (+674) FireFly pointed at this language on chat. it deserves a stub.
10:23:11 <wib_jonas> hey look, apparently github has such things as tags on repositories. https://github.com/topics/programming-language is the list of all 2638 repositories with the tag programming-language. it might contain a lot of esolangs.
10:23:39 <wib_jonas> It seems to have some non-eso languages too.
10:27:44 <esowiki> [[User:B jonas]] https://esolangs.org/w/index.php?diff=67386&oldid=59208 * B jonas * (-119) /* Todo */
10:28:40 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=67387&oldid=67275 * B jonas * (+14) [[Theseus]]
10:36:39 <int-e> Oh wow, "Someone just used your password to try to sign in to your account from a non-Google app." is now a *Critical* security alert.
10:42:28 <int-e> I see, they have silently disabled the option to allow "less secure apps" whatever that is supposed to mean. Assholes.
10:46:01 <wib_jonas> int-e: presumably it means anything that can't keep up with their rapid interface changes
10:46:44 <int-e> I know what it means... it's anything not using OAuth. Like mutt with smtp+starttls.
10:47:59 <int-e> I've been through this before. I'm pretty angry that Google reset that option unilaterally. But I set it again... let's see if it lasts.
10:51:38 <esowiki> [[Theseus]] https://esolangs.org/w/index.php?diff=67388&oldid=67385 * B jonas * (+25)
10:52:01 <esowiki> [[Orca]] N https://esolangs.org/w/index.php?oldid=67389 * B jonas * (+301) Created page with "Orca is an esoteric programming language that lets you generate MIDI or OSC music output interactively. It is maintained by Hundredrabbits. == Links == [https://github.com/h..."
10:52:33 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=67390&oldid=67387 * B jonas * (+11) [[Orca]]
11:05:58 <fizzie> int-e: Where's that option? I don't think I've ever had to toggle any settings to allow mutt to use smtp.gmail.com, I just created an app password for it like usual.
11:13:29 -!- Frater_EST has joined.
11:39:21 -!- lifthrasiir_ has joined.
11:39:48 -!- lifthrasiir has quit (Remote host closed the connection).
11:39:48 <int-e> mmm "app password"
11:39:48 -!- zzo38 has quit (Ping timeout: 240 seconds).
11:39:48 <int-e> Ah, "App Passwords can only be used with accounts that have 2-Step Verification turned on."
11:48:32 <int-e> Sorry, but that's way too much hassle for a secondary account.
11:48:32 <int-e> fizzie: anyway, there's a "allow less secure app(lication)s option under security options somewhere.
11:53:41 -!- Sgeo has quit (Read error: Connection reset by peer).
11:54:06 -!- Sgeo has joined.
11:54:54 <HackEso> PDF stands for Pretty Depressing Format.
11:55:00 <HackEso> Nicely formatted classical wisdoms and quotes book at https://www.dropbox.com/s/fyhqyvy3i8oh25m/wisdom.pdf
11:56:33 <esowiki> [[HackEso]] https://esolangs.org/w/index.php?diff=67391&oldid=67332 * B jonas * (+586) /* The wisdom and quote databases */
11:57:03 <HackEso> Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot =.
11:58:03 <int-e> fizzie: So /why/ are app passwords tied to 2-step authentication?
11:58:48 <esowiki> [[Jconn]] N https://esolangs.org/w/index.php?oldid=67392 * B jonas * (+19) Redirected page to [[J-bot]]
11:59:55 <esowiki> [[J-bot]] https://esolangs.org/w/index.php?diff=67393&oldid=67209 * B jonas * (+17)
12:00:09 <esowiki> [[Esolang:Community portal]] https://esolangs.org/w/index.php?diff=67394&oldid=67208 * B jonas * (+52) /* #Esoteric */
12:10:11 -!- kspalaiologos has joined.
12:21:30 -!- arseniiv has joined.
12:41:10 <int-e> https://pwmarcz.pl/kaboom/ is cute
12:47:21 <wib_jonas> nice. if you want a normal one, I recommend https://www.chiark.greenend.org.uk/~sgtatham/puzzles/js/mines.html by the way. that's a nice collection of games, implemented so that you can play them in a browser or download and play as a normal program
12:47:51 <wib_jonas> "The first square you open is guaranteed to be safe, and (by default) you are guaranteed to be able to solve the whole grid by deduction rather than guesswork. (Deductions may require you to think about the total number of mines.) "
12:52:18 <int-e> Interestingly I find the "hurt me plenty" preset harder than the "ultra-violence" though.
12:54:00 <int-e> (The problem is to determine when it's safe to guess, that is, when you've run out of forced conclusion.)
12:54:04 <fizzie> int-e: No idea. It's a bit weird. I guess that's just the context they were invented for.
12:54:40 <fizzie> (FWIW, I'd really like to be able to restrict the scope of app passwords to specific actions as well.)
12:55:05 <fizzie> (The way you can grant different permissions for "third-party apps" that do the OAuth thing.)
13:39:34 <esowiki> [[Hello world program in esoteric languages]] https://esolangs.org/w/index.php?diff=67395&oldid=66605 * PythonshellDebugwindow * (+412) /* evil */
13:40:25 -!- LKoen has joined.
13:40:51 <esowiki> [[HWorld]] N https://esolangs.org/w/index.php?oldid=67396 * OsmineYT * (+216) Created page with "{{wrongtitle|title=H}} H (or HWorld) is joke esoteric programming language by [[User:OsmineYT|User:OsmineYT]] designed in 2019. Because it has only printing commands,..."
13:41:37 <esowiki> [[User:OsmineYT]] https://esolangs.org/w/index.php?diff=67397&oldid=67312 * OsmineYT * (+43)
13:43:28 <esowiki> [[Talk:HWorld]] N https://esolangs.org/w/index.php?oldid=67398 * OsmineYT * (+104) Created page with "The disguising discussion. (I can't very English well. xD) == Q & A == '''NOTE:''' It's a joke esolang."
13:47:27 <int-e> wib_jonas: and the kaboom variant definitely also requires you to find conclusions that involve counting
13:47:40 <int-e> (I just ran into one such case)
13:49:02 <int-e> wib_jonas: I like that variant. It /almost/ matches how I actually play... except that I guess early if I can prove locally that I will have to guess eventually anyway, which the variant punishes severely.
13:50:01 <wib_jonas> ok. I don't play much minesweeper, though I played some games back when it was about the only game that I could implement on my programmable calculator
13:51:50 <wib_jonas> even then I played more with a simpler luck-based game that I implemented
13:54:59 <esowiki> [[User talk:Ais523]] https://esolangs.org/w/index.php?diff=67399&oldid=66200 * OsmineYT * (+73)
13:57:11 <esowiki> [[User talk:Ais523]] https://esolangs.org/w/index.php?diff=67400&oldid=67399 * OsmineYT * (+41)
14:04:56 <esowiki> [[HWorld]] https://esolangs.org/w/index.php?diff=67401&oldid=67396 * OsmineYT * (+67)
14:10:49 <esowiki> [[Hello world program in esoteric languages]] https://esolangs.org/w/index.php?diff=67402&oldid=67395 * Palaiologos * (+504) Hello, World! in asm2bf
14:11:20 <esowiki> [[Hello world program in esoteric languages]] M https://esolangs.org/w/index.php?diff=67403&oldid=67402 * Palaiologos * (+1) Close the tag
14:13:13 <esowiki> [[HWorld]] https://esolangs.org/w/index.php?diff=67404&oldid=67401 * OsmineYT * (+225)
14:14:44 -!- LKoen has quit (Remote host closed the connection).
14:16:23 -!- LKoen has joined.
14:38:05 <esowiki> [[HWorld]] https://esolangs.org/w/index.php?diff=67405&oldid=67404 * OsmineYT * (+17)
14:38:25 <esowiki> [[HWorld]] https://esolangs.org/w/index.php?diff=67406&oldid=67405 * OsmineYT * (-17)
14:39:29 <esowiki> [[Timed]] https://esolangs.org/w/index.php?diff=67407&oldid=67287 * OsmineYT * (+9)
14:40:21 <esowiki> [[HWorld]] https://esolangs.org/w/index.php?diff=67408&oldid=67406 * OsmineYT * (+31)
14:40:45 <esowiki> [[HWorld]] https://esolangs.org/w/index.php?diff=67409&oldid=67408 * OsmineYT * (+0)
14:41:10 <esowiki> [[HWorld]] https://esolangs.org/w/index.php?diff=67410&oldid=67409 * OsmineYT * (-22)
14:45:19 <esowiki> [[HWorld]] https://esolangs.org/w/index.php?diff=67411&oldid=67410 * OsmineYT * (+174)
14:45:56 <esowiki> [[Chess]] https://esolangs.org/w/index.php?diff=67412&oldid=66951 * OsmineYT * (+1)
15:08:30 <esowiki> [[Special:Log/move]] move * A * moved [[HWorld]] to [[H]]: Trying to fix the title...
15:08:30 <esowiki> [[Special:Log/move]] move * A * moved [[Talk:HWorld]] to [[Talk:H]]: Trying to fix the title...
15:15:31 <esowiki> [[H]] https://esolangs.org/w/index.php?diff=67417&oldid=67413 * OsmineYT * (+78)
15:16:43 <esowiki> [[H]] M https://esolangs.org/w/index.php?diff=67418&oldid=67417 * A * (+265)
15:20:48 -!- arseniiv has quit (Ping timeout: 252 seconds).
15:21:25 <esowiki> [[Timed]] M https://esolangs.org/w/index.php?diff=67419&oldid=67407 * A * (+221)
15:22:41 <esowiki> [[Bin-8]] M https://esolangs.org/w/index.php?diff=67420&oldid=67320 * A * (+143)
15:23:07 <int-e> kspalaiologos: I'm trying 20x20 with 100 mines... still haven't finished even once :P
15:24:23 <esowiki> [[Talk:H]] M https://esolangs.org/w/index.php?diff=67421&oldid=67415 * A * (+5)
15:25:14 -!- arseniiv has joined.
15:25:28 <esowiki> [[Talk:H]] M https://esolangs.org/w/index.php?diff=67422&oldid=67421 * A * (+226)
15:25:42 <int-e> kspalaiologos: the trouble being things like https://int-e.eu/~bf3/tmp/mines.png where I currently don't see a forced conclusion... but it's so easy to miss one!
15:27:38 <wib_jonas> int-e: isn't the cell to the west of the number 4 near the middle height at west free?
15:28:31 <int-e> wib_jonas: is it? I think I can pick either of the cells below, and either of the other two (to the left)
15:31:09 <int-e> But it turns out that there is a forced conclusion elsewhere.
15:31:13 <wib_jonas> ok, how about, is the cell diagonally between the two 3s always a mine, because exactly one of the two cells to the east of it is a mine and there's a 4 below?
15:31:16 <esowiki> [[Talk:H]] https://esolangs.org/w/index.php?diff=67423&oldid=67422 * A * (+593)
15:31:27 <wib_jonas> it just lets you mark something a mine
15:31:32 -!- LKoen has quit (Remote host closed the connection).
15:31:52 <int-e> https://int-e.eu/~bf3/tmp/minesd.png
15:32:57 <esowiki> [[Talk:H]] M https://esolangs.org/w/index.php?diff=67424&oldid=67423 * A * (+344)
15:33:08 <int-e> It starts with the 4. I can reason it through. But it's soo easy to miss (I'm repeating myself, I know.)
15:33:25 <esowiki> [[Talk:H]] M https://esolangs.org/w/index.php?diff=67425&oldid=67424 * A * (-53)
15:34:55 <int-e> and obviously now I've cheated so the attempt doesn't count.
15:35:18 -!- LKoen has joined.
15:36:00 <esowiki> [[Nope.]] M https://esolangs.org/w/index.php?diff=67426&oldid=60757 * A * (+81)
15:36:04 <wib_jonas> asking #esoteric isn't cheating. it's just ineffective.
15:36:42 <int-e> no, I clicked the `debug` button to reveal the forced conclusion(s).
15:37:11 <esowiki> [[H]] https://esolangs.org/w/index.php?diff=67427&oldid=67418 * OsmineYT * (+462)
15:39:03 <int-e> I don't know what that is.
15:39:48 <wib_jonas> startscumming is restarting the game until you get one that starts easy
15:40:06 <wib_jonas> restarting after taking very few moves so you can do it many times quickly
15:42:43 <int-e> Oh. That's fine, but doesn't work so well in this variant, at least not with "Allow guessing everywhere" disabled.
15:43:32 <int-e> still wondering about "scumming", hmm.
15:44:19 <int-e> "To remove the scum from." ... I guess.
15:44:27 <esowiki> [[Recursion]] M https://esolangs.org/w/index.php?diff=67428&oldid=37340 * A * (+37)
15:44:42 <esowiki> [[Talk:H]] https://esolangs.org/w/index.php?diff=67429&oldid=67425 * OsmineYT * (+144)
15:44:49 <int-e> Somehow I've seen "scum" (and "SCUMM") but never the verb?
15:45:09 <esowiki> [[Talk:H]] https://esolangs.org/w/index.php?diff=67430&oldid=67429 * OsmineYT * (+1)
15:45:23 <esowiki> [[Talk:H]] https://esolangs.org/w/index.php?diff=67431&oldid=67430 * OsmineYT * (+5)
15:47:34 <esowiki> [[H]] https://esolangs.org/w/index.php?diff=67432&oldid=67427 * OsmineYT * (+2)
15:49:18 <esowiki> [[User:OsmineYT]] https://esolangs.org/w/index.php?diff=67433&oldid=67397 * OsmineYT * (-4)
15:50:07 <esowiki> [[User:OsmineYT]] https://esolangs.org/w/index.php?diff=67434&oldid=67433 * OsmineYT * (+40)
15:50:23 <esowiki> [[User:OsmineYT]] https://esolangs.org/w/index.php?diff=67435&oldid=67434 * OsmineYT * (-42)
15:51:13 <esowiki> [[User:OsmineYT]] https://esolangs.org/w/index.php?diff=67436&oldid=67435 * OsmineYT * (+43)
15:55:15 <esowiki> [[Bin-8]] https://esolangs.org/w/index.php?diff=67437&oldid=67420 * OsmineYT * (+58)
15:55:42 <esowiki> [[Bin-8]] https://esolangs.org/w/index.php?diff=67438&oldid=67437 * OsmineYT * (+17)
15:57:27 <esowiki> [[H]] https://esolangs.org/w/index.php?diff=67439&oldid=67432 * OsmineYT * (-28)
16:01:55 <esowiki> [[Talk:H]] https://esolangs.org/w/index.php?diff=67440&oldid=67431 * OsmineYT * (+117) /* An input in HWorld */ new section
16:02:14 <esowiki> [[Talk:H]] https://esolangs.org/w/index.php?diff=67441&oldid=67440 * OsmineYT * (+9)
16:03:15 <int-e> wib_jonas: It may also allude to skimming.
16:03:59 <int-e> wib_jonas: Anyway, I don't even know what a lucky start *is* here. For ordinary mine sweeper, you want to reveal as much as possible... but here there's a tradeoff between having much exposed and being certain that there are no forced conclusions...
16:04:06 <esowiki> [[Talk:H]] https://esolangs.org/w/index.php?diff=67442&oldid=67441 * OsmineYT * (+23)
16:18:40 <fizzie> int-e: I'm used to being able to click on a number that has the same amount of flags adjacent to it as the number, and have it reveal all squares not flagged. :/
16:19:12 <wib_jonas> fizzie: https://www.chiark.greenend.org.uk/~sgtatham/puzzles/js/mines.html lets you do that
16:19:30 <fizzie> Yes, but it doesn't have the kaboom feature of cruel-but-fair.
16:20:16 <fizzie> I don't think it's fair either?
16:20:37 <fizzie> I assume the "fair" bit refers to the fact that if you're forced to guess, it's always safe to guess.
16:20:39 <int-e> fizzie: double-click does it... less convenient than a simple click/simple click with shift (or is it control)?
16:20:58 <fizzie> int-e: Oh, I didn't even try double-clicking.
16:20:59 <wib_jonas> fizzie: the doc says "The first square you open is guaranteed to be safe, and (by default) you are guaranteed to be able to solve the whole grid by deduction rather than guesswork."
16:21:13 <fizzie> Oh, right. Well, it's a different kind of fair.
16:21:13 <wib_jonas> that means that you're required to guess only in your first step, and the first step is safe
16:21:47 <fizzie> I forgot it had that no-guessing-needed property.
16:21:59 <int-e> wib_jonas: but it's a different kind of puzzle... you never have to wonder whether there are any forced conclusions left.
16:22:19 <wib_jonas> I recommend that website though, it has a lot of these nice puzzles
16:22:35 <wib_jonas> all fair in this way, that is, you can always solve them in theory
16:22:42 <int-e> yeah, channel regulars should know that site ;)
16:22:42 <wib_jonas> (there may be more than one solution for some puzzles)\
16:22:45 <fizzie> I use the Android app version in the Tube.
16:23:05 <wib_jonas> oh, is it one of those sites that I first learned about here? quite possible
16:23:12 <int-e> I know we've been collectively addicted to it a couple of years ago.
16:23:16 <fizzie> I'm not 100% sure all of them are fair, though most of them definitely are.
16:23:42 <fizzie> What was that dot platformer that we were all playing at one point?
16:23:46 <int-e> (I may be exaggerating slightly)
16:23:55 <int-e> Hmm, a platformer?
16:24:40 <wib_jonas> fizzie: I dunno. I remember when everyone was addicted to that puzzle about euclidean constructions with limited number of steps
16:24:43 <int-e> Doesn't ring a bell. I only recall various puzzle games, Baba is you being the most recent one.
16:24:56 <fizzie> You controlled a square that could jump. (No, not Thomas Was Alone, a lot less graphically fancy.)
16:25:06 <fizzie> There were a hundred levels, or some-such. Maybe.
16:25:30 <fizzie> Dot Action 2, that was it. I think.
16:26:08 <int-e> wib_jonas: Euclid: The Game. was the name
16:26:17 <wib_jonas> oh yeah, Baba is you definitely counts
16:27:44 <fizzie> Dot Action 2 was first around in 2008, then again in 2010.
16:29:02 <fizzie> Unfortunately it's a Flash game, so probably not long for the world anymore.
16:31:05 <int-e> Anyway. Enough Mine Sweeper. I forgot how addictive that game was. And this variant may be worse, because whenever you lose it's all your own fault.
16:39:30 -!- zzo38 has joined.
16:41:57 -!- wib_jonas has quit (Remote host closed the connection).
16:46:01 <esowiki> [[User talk:OsmineYT]] N https://esolangs.org/w/index.php?oldid=67443 * OsmineYT * (+129) Created page with "Here's the original discussion page. [[User:A|User:a]] is allowed! == Just add some topics == Add<sub>some<sub>topic</sub></sub>"
16:46:15 <esowiki> [[User talk:OsmineYT]] https://esolangs.org/w/index.php?diff=67444&oldid=67443 * OsmineYT * (+0)
16:58:49 <esowiki> [[Hello world program in esoteric languages]] https://esolangs.org/w/index.php?diff=67445&oldid=67403 * OsmineYT * (+20)
17:01:05 <esowiki> [[Hello world program in esoteric languages]] https://esolangs.org/w/index.php?diff=67446&oldid=67445 * OsmineYT * (+1)
17:01:26 -!- Lord_of_Life_ has joined.
17:02:25 <esowiki> [[Talk:H]] https://esolangs.org/w/index.php?diff=67447&oldid=67442 * OsmineYT * (+9)
17:02:29 -!- Lord_of_Life has quit (Ping timeout: 276 seconds).
17:02:47 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
17:22:08 <zzo38> I think start scumming is not cheating if you count every restart containing information as a loss
17:25:12 <esowiki> [[Special:Log/upload]] upload * OsmineYT * uploaded "[[File:HWorld.png]]"
17:27:04 <esowiki> [[H]] https://esolangs.org/w/index.php?diff=67449&oldid=67439 * OsmineYT * (+50)
17:31:51 -!- axtre has joined.
17:32:17 -!- axtre has left.
17:37:36 <esowiki> [[H]] https://esolangs.org/w/index.php?diff=67450&oldid=67449 * OsmineYT * (+56)
17:40:58 <esowiki> [[H]] https://esolangs.org/w/index.php?diff=67451&oldid=67450 * OsmineYT * (+45)
17:41:30 <esowiki> [[H]] https://esolangs.org/w/index.php?diff=67452&oldid=67451 * OsmineYT * (+2)
17:47:23 -!- zzo38 has quit (Ping timeout: 245 seconds).
17:57:39 -!- LKoen has quit (Read error: Connection reset by peer).
17:58:07 -!- LKoen has joined.
18:43:18 -!- Lokee has joined.
18:44:18 -!- b_jonas has joined.
18:47:23 <esowiki> [[H]] https://esolangs.org/w/index.php?diff=67453&oldid=67452 * OsmineYT * (+46)
18:48:03 <esowiki> [[H]] https://esolangs.org/w/index.php?diff=67454&oldid=67453 * OsmineYT * (+12)
18:48:32 <esowiki> [[Talk:H]] https://esolangs.org/w/index.php?diff=67455&oldid=67447 * OsmineYT * (+59)
18:51:27 <Lokee> How hard would it be to create your own library for something?
18:52:35 <fizzie> Well, you'll need to hire a librarian, and purchase or build a building.
18:53:29 <b_jonas> But a modern building where the floors are designed for heavy load, not one of those old castles, those can't bear modern dense book packing shelves.
18:54:31 <int-e> =8ball Will I see another improvement?
18:54:32 <bfbot> Outlook not so good
18:54:39 <int-e> That's what I thought.
18:54:42 <b_jonas> Also you need to buy a lot of books, and those are initially more expensive than the building.
18:54:44 <fizzie> You might also invest in some robots. https://towardsdatascience.com/the-little-robot-that-lived-at-the-library-90431f34ae2c
18:54:56 <b_jonas> Though later, when you have lot of books, maintaining the building will cost the most.
18:55:01 <fizzie> I'm so sad the robots weren't out yet when I visited Oodi.
18:55:26 <Lokee> I mean the programming library. Didn't clarify.
18:56:25 <b_jonas> fizzie: yeah, OSzK has these wierd little automated carts running on rails that carry books between the storage space and the customer space.
18:56:39 <b_jonas> a programming library? is that in our scope?
18:56:47 <HackEso> Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: <https://esolangs.org/>. (For the other kind of esoterica, try #esoteric on EFnet or DALnet.)
18:56:48 <fizzie> b_jonas: "You might wonder how a user benefits from a sad robot. The answer is, we’re not sure yet either."
18:56:59 <fizzie> This is probably an early ancestor for Marvin.
18:58:08 <int-e> I was going to say that Marvin set a perfect example.
18:59:12 <fizzie> FWIW, for a library in the programming sense, you'll probably have to clarify still further, since it really depends quite a lot of the context, especially the intended target language(s).
18:59:21 -!- FreeFull has joined.
18:59:27 <shachaf> Oh man. Is the Cantor function computable?
19:00:21 <b_jonas> Lokee: if you manage to get a good software library, tell it to shachaf. he wanted one at https://esolangs.org/logs/2019-11-20.html#lu .
19:00:59 <int-e> Hah, I *was* right about the antenna (Schlock)
19:01:12 <b_jonas> shachaf: sorry, but that question was so vague that it matches this one perfectly
19:01:34 <b_jonas> you didn't give away what evil scheme you needed the library for
19:01:41 <b_jonas> or good scheme, as it may be
19:04:14 <Lokee> Ive been trying to create a lang that makes it easier to create bots in discord, irc channels, etc.
19:04:38 <Lokee> i wanted to know how difficult it would be to create a library to accomplish this
19:08:09 -!- Lokee has quit (Remote host closed the connection).
19:13:01 <HackEso> 439) <itidus20> anyway, notational systems are a function of the euclidean plane
19:20:09 -!- kspalaiologos has quit (Quit: Leaving).
20:51:56 -!- joast has quit (Quit: Leaving.).
21:04:46 <tswett[m]> Oh no. Something terrible has happened.
21:04:52 <tswett[m]> I just thought of a premise for a horrible, horrible esolang.
21:05:46 <tswett[m]> So, it's your standard-issue simple-but-powerful dynamic programming language. It has the usual kinds of data: lists, numbers, first-class functions, mutable closures, dictionaries, all that.
21:05:59 <tswett[m]> However, all of these are implemented as mutable character strings.
21:06:12 <b_jonas> tswett[m]: sort of like tcl?
21:06:27 <tswett[m]> I hope tcl isn't like that. Is tcl like that?
21:06:42 <b_jonas> I don't really know the details of tcl
21:06:47 <b_jonas> I think it doesn't involve _mutable_ character strings
21:07:11 <b_jonas> it involves strings, I think for the commands, like when you're doing something in the shell, so you expand variables to a string to pass them as an argument
21:07:19 <b_jonas> I think it's not the storage that's string-based
21:07:29 <b_jonas> but I don't know the details, I never tried to figure it out really
21:07:41 <tswett[m]> Suppose you want to pass around a mutable dictionary like {x: 3, y: 4}.
21:07:55 <tswett[m]> You literally just pass around a string that says "{x:3,y:4}".
21:08:06 <b_jonas> tswett[m]: oh yeah, people do that in SQL
21:08:09 <tswett[m]> But it's a mutable string, so you can mutate it and other things with a reference to the same string will see your changes.
21:08:14 <b_jonas> store stuff like that as strings in a database
21:08:43 <b_jonas> with thin wrappers above so they sort of behave like a specific string-backed class
21:09:55 <tswett[m]> Then suppose you have a function like this: function make_counter(x) { var x = 0; function inc() { x = x + 1; }; return inc; }
21:10:22 <tswett[m]> When you call that, the result will be, of course, just a string representing a function.
21:10:39 <tswett[m]> But it will, of course, be a mutable string. I guess it will contain a copy of x, and it will mutate itself every time you call it.
21:11:17 -!- LKoen has quit (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”).
21:11:56 <tswett[m]> Ah, but what if you have multiple functions that contain references to the same variable? I guess we need some way to tie strings together so that when one is mutated, the mutation is also visible in the other one.
21:12:20 <tswett[m]> Anyway, I gotta get back to doing my real-life grown-up job. :D
21:13:47 -!- joast has joined.
21:17:35 <arseniiv> tswett[m]: Mathematica (now Wolfram) doesn’t have scopes AFAIR so it makes do with replacements of function bodies and all that. When you run a `Module` returning names of functions defined in its body, it actually renames these names (and all other defined in its body) before proceeding, so they all reference themselves correctly. Reminds me what Python does when using double-underscore attributes, though M.’s names aren’t that o
21:17:36 <arseniiv> bfuscated, shall one to compare
21:17:55 <arseniiv> so maybe just do that dirty hack in this esolang too?
21:19:57 <arseniiv> M. also has other scoping constructors which work in other ways: `Block` AFAIR just memorizes old values of the names defined inside, blanks them, proceeds with the body and then restores the old values back, so one would get strange errors if calling a thing defined using `Block` from itself recursively
21:22:29 <arseniiv> and `With` does something even more basic, it just replaces all occurrences of defined names in its body with values they are defined with; this one semantically doesn’t allow to use assignment on these vars, though if you do assign to them, it’ll make strange things; this is just an analog to `let` from normal languages
21:23:13 <arseniiv> also there are weird things like `Dynamic`, I don’t even know how that works, maybe via newer primitive operations
21:24:19 <arseniiv> so, replacements make for a decent esolang (s)coping mechanisms
21:25:47 <Cale> Mathematica also has upvalues, which are kinda wacky
21:26:29 <b_jonas> arseniiv: I wouldn't describe that as "doesn't have scopes". that's a perfectly good way to implement scopes, especially since those variables can escape unevaluated in expressions and you want to print those expressions in a way that you can see which names are different and which ones aren't.
21:26:39 <b_jonas> so no, I don't htink that's a dirty hack.
21:26:50 <Cale> You can write Cos[x] ^= 2 and this becomes part of the definition of x rather than part of the definition of Cos
21:27:26 <Cale> i.e. it's always looking to see if the arguments to a function have their own definitions for what happens when that function is applied to them
21:28:06 <arseniiv> b_jonas: that’s error-prone, and any old unused names are left in the memory… I don’t quite like that
21:28:21 <b_jonas> arseniiv: no they're not. there's a garbage-collector. they're not _stupid_.
21:28:34 <esowiki> [[Exp]] https://esolangs.org/w/index.php?diff=67456&oldid=67379 * PythonshellDebugwindow * (+39)
21:28:57 <arseniiv> Cale: yeah, I was confused when I tried to reconcile Lua’s upvalues (an impl detail about closures) and M.’s upvalues one time :D
21:29:11 <b_jonas> arseniiv: yes, two different meanings of "upvalues"
21:29:25 <b_jonas> what Lua calls upvalues are the values bound to closures
21:31:53 <b_jonas> I think those are called upvalues because they're from stack frames below the closure
21:32:23 <arseniiv> <b_jonas> there's a garbage-collector => but I think it doesn’t collect things eagerly. I was able to use the names returned by previous calls to `Module` even when they weren’t, I think, used in any expression in the notebook, nor by definitions, nor, and this one is hypothetical, by Out[n] values
21:34:03 <arseniiv> I still use the thing, though, so I can’t say it’s unusable :D
21:35:16 <arseniiv> I plan to learn another CAS some time later, which I wait for, and it doesn’t come
21:37:26 <b_jonas> what do you need a CAS for?
21:41:13 <arseniiv> sometimes making something with math, or a bit of generative pictures. For the latter, I tried to use Python with a module for a human-friendly SVG generation and Jupyter for rendering it immediately to see if it’s delightful enough
21:43:05 <arseniiv> e. g. https://i.postimg.cc/X39g1D1k/mandala3.png
21:47:01 <arseniiv> or IFS fractals but I can’t find anything interesting to show
21:48:21 <arseniiv> ah, I meant to say, I tried Python and SVG but I hadn’t yet transitioned to them, so M. is quicker to use, still, if the need arises
22:02:19 <esowiki> [[The Temporary Stack]] N https://esolangs.org/w/index.php?oldid=67457 * PythonshellDebugwindow * (+2833) Created page with "'''The Temporary Stack''' is an stack-based esoteric coding language created by [[User:PythonshellDebugwindow]]. ==Instructions== Instructions are separated by spaces. {| clas..."
22:09:21 -!- hppavilion[1] has joined.
22:37:00 -!- Frater_EST has quit (Read error: Connection reset by peer).
22:45:38 -!- tromp has quit (Remote host closed the connection).
23:06:56 -!- tromp has joined.
23:22:44 -!- tromp has quit (Remote host closed the connection).