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 @tell 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:08 Consider it noted. 01:12:11 oops 01:12:25 @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 Consider it noted. 01:12:35 hm have i forgotten that recently? 01:13:13 no matches for @tell < this month before that 01:14:10 oerjan: I made sure. both bfbot and fungоt lets you redefine that command on the fly, thus stopping the loop 01:14:35 in fact, I should probably undefine those commands now, to stop future disasters in case the ignore list changes 01:14:42 ^undef quine 01:14:46 =undef quine 01:14:46 ok 01:14:54 ^def quine (?)S 01:14:54 Usage: ^def 01:14:57 ^def quine ul (?)S 01:14:57 Defined. 01:15:00 ^quine 01:15:00 ? 01:15:01 =quine 01:15:01 No such command. Try =help. 01:15:26 (I defined those commands originally) 01:15:48 also kspalaiologos runs bfbot so he could probably have stopped it somehow 01:20:39 ^def quine ul (^quine)S 01:20:39 Defined. 01:20:42 ^quine 01:20:42 ^quine 01:20:52 no harm since fungot doesn't read its own lines 01:20:53 oerjan: you speak nonsense that i find useful fnord things out. once i figured it 01:21:11 b_jonas: yeah 01:21:58 hm it wouldn't be too hard to make that a quine with payload in bf 01:22:16 `! bf_txtgen ^quine 01:22:20 91 ++++++++++++++[>++++++++>+++++++>++><<<<-]>>----.<+.++++.>+++++++++++.<-------.>----.>++++. [61] 01:23:08 or wait, then it would technically be wrong if given no argument 01:23:15 which is ugly 01:24:05 and i don't think there's anyway in ^bf to distinguish a command given no argument from one given an empty one 01:24:22 *any way 01:25:18 ^bf ,[+.,]! 01:25:31 curious 01:25:43 ^bf ,[+.,]!a 01:25:43 b 01:26:08 apparently fungot writes nothing then 01:26:08 oerjan: explicit at what level this kind of things. 01:26:44 ^def fdip bf ,[+.,] 01:26:44 Defined. 01:26:48 ^fdip 01:26:51 ^fdip 01:26:54 ^fdip a 01:26:54 b 01:26:59 no difference 01:27:06 ^hm 01:27:32 admittedly there's still some risk that my internet dies between starting the loop and stopping it 01:28:07 well as long as there's an obvious way anyone can stop it... 01:28:46 yes, I should say something like 'say "=undef quine" to stop if this happens to loop' before issuing the command 01:28:54 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:29:01 (it's happened) 01:35:37 `? prefixes 01:35:38 Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot = . 01:36:02 `slwd prefixes//s, .$,., 01:36:07 ​/hackenv/bin/sled: 2: /hackenv/bin/sled: [[: not found \ usage: sled file//script 01:36:27 `slwd prefixe//s, .$,., 01:36:29 ​/hackenv/bin/sled: 2: /hackenv/bin/sled: [[: not found \ usage: sled file//script 01:36:35 wat 01:38:12 `cbt slwd 01:38:14 cd $HACKENV/wisdom; sled "$1" | sed '1s/^Rosebud!$/Roswbud!/' 01:38:27 `? prefixes 01:38:29 Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot = . 01:39:03 `cbt sled 01:39:03 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 `sled wisdom/prefixes//s, .$,., 01:39:30 ​/hackenv/bin/sled: 2: /hackenv/bin/sled: [[: not found \ usage: sled file//script 01:39:58 curious 01:40:00 [[Special:Log/newusers]] create * Orvira * New user account 01:40:02 `` echo $SHELL 01:40:09 ​/bin/sh 01:40:33 `/bin/sh -v 01:40:34 No output. 01:40:37 `/bin/sh -V 01:40:38 No output. 01:40:46 `` ls -l /bin/sh 01:40:47 lrwxrwxrwx 1 0 0 4 Jan 17 2019 /bin/sh -> dash 01:40:51 still dash 01:41:20 `cat test 01:41:21 cat: test: No such file or directory 01:41:29 `pwd 01:41:30 ​/hackenv/tmp 01:41:38 `` echo a >test 01:41:40 No output. 01:41:51 oh hm 01:42:01 -!- imode has joined. 01:42:17 `sled ../wisdom/prefixes//s, .$,., 01:42:18 ​/hackenv/bin/sled: 2: /hackenv/bin/sled: [[: not found \ usage: sled file//script 01:42:25 ok it's not that 01:45:46 [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=67383&oldid=67368 * Orvira * (+305) 01:45:48 hm no recent repository changes seem relevant 01:45:51 `which [[ 01:45:52 No output. 01:49:31 `ps 01:49:32 ​ PID TTY TIME CMD \ 49 ? 00:00:00 cat \ 50 ? 00:00:00 ps 01:49:48 `cbt ` 01:49:48 ​#!/bin/bash \ cmd="${@-quote}" \ TIMEFORMAT="real: %lR, user: %lU, sys: %lS" \ shopt -s extglob globstar \ eval -- "$cmd" | rnooodl 01:50:23 Hmm. 01:50:26 `` slwd 'prefixe//s, .$,.,' 01:50:27 Roswbud! 01:50:34 `` slwd 'prefixes//s, .$,.,' 01:50:37 prefixes//Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot =. 01:50:41 ic 01:50:44 i think i know 01:51:01 [[ is a bashism, yes. 01:51:05 fizzie: you've started running commands with /bin/sh instead of /bin/bash 01:51:14 Yes, although not really intentionally. 01:51:47 `cbt nur 01:51:48 ​#!/bin/bash \ if grep -q \ <<<"$1"; then "${1%% *}" "${1#* }"; else "$1"; fi 01:52:15 There used to be a bash script called 'limits' that everything was executed through, and it had a #! /bin/bash header. 01:52:35 I made that redundant and removed it, so now the command is executed by a direct execvp. 01:53:18 Which defaults to /bin/sh for the "permissions say executable, but the file format is not recognized" case. 01:53:54 Wonder how I should fix this though. 01:54:28 `` slbd 'sled//1i#!/bin/bash' 01:54:30 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 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 right, i just mitigated this one 01:56:00 ^prefixes 01:56:00 Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot (, jconn ), j-bot [, bfbot = . 01:56:18 ^def prefixes (Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot =.)S 01:56:18 Usage: ^def 01:56:28 ^def prefixes ul (Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot =.)S 01:56:28 Defined. 01:56:52 there. of course i also ^def'ed a useless test command above. 01:58:01 oh wait 01:58:24 no, it's right 01:59:08 (the change was in spaces btw, they're supposed to be there only when part of the prefix) 01:59:29 It took me longer than I'd like to admit to realize that, but got there eventually. 02:00:00 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 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 slashlearn_append which you moved today would also be affected 02:05:03 Hmp. I guess people have gotten used to there being a bash. 02:05:48 changing $SHELL would also be an option, no? 02:06:09 No, because that's not used for execvp. 02:06:13 oh. 02:06:27 fiendish 02:08:04 It's just a hardcoded "/bin/sh" (aka _PATH_BSHELL) in glibc. 02:08:41 It's not like searching $PATH is particularly hard, it was just convenient that the function did it for me. 02:10:26 OTOH, I might give it a better error message while I'm at it, one that includes the command name. 02:10:31 `asdf no such command 02:10:32 umlbox: execvp: No such file or directory 02:18:22 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 `mkx shtest//echo "[$BASH_VERSION]" 02:37:18 shtest 02:37:21 `/hackenv/tmp/shtest 02:37:22 ​[5.0.3(1)-release] 02:37:34 `rm shtest 02:37:35 No output. 02:38:30 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:39:38 `asdf no such command 02:39:39 asdf? 02:47:36 `? asdf 02:47:38 asdf? ¯\(°​_o)/¯ 02:51:53 Opted not to add the ¯\(°​_o)/¯. 04:12:27 `? haiku 04:12:28 ​🀨や⛄ 04:13:03 `` unidecode $(\? haiku) 04:13:04 ​[U+1F028 MAHJONG TILE AUTUMN] [U+3084 HIRAGANA LETTER YA] [U+26C4 SNOWMAN WITHOUT SNOW] 04:13:20 huh 04:14:07 i just learned about kireji from a reference on the iwc forum 04:14:16 and amazingly, this one seems to have one 04:14:20 (YA) 04:14:27 in the right spot, even 04:16:00 https://en.wikipedia.org/wiki/Kireji#Mid-verse_ya_や 04:16:28 `quote hiragana 04:16:28 1248) MAHJONG TILE AUTUMN / HIRAGANA LETTER YA / SNOWMAN WITHOUT SNOW 04:16:48 i wonder if mauris was aware of this rule 04:17:04 hum 04:17:17 * oerjan winds forward nick changes in his mind 04:18:48 lynn: my winding is uncertain but suggests you ^ 04:20:07 (if so, please confirm if you were aware of that purpose for the YA twh) 04:22:52 * oerjan does some doaging 04:23:07 -!- tromp has joined. 04:25:15 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). 04:56:05 `` echo $$ 04:56:08 50 05:00:02 -!- Lord_of_Life has quit (Ping timeout: 252 seconds). 05:00:51 -!- Lord_of_Life has joined. 05:06:10 argh ^U in irssi doesn't seem undoable 05:11:06 *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 because it's called the inexplicable yank_from_cutbuffer, googling for "undo irssi" gave nothing useful 05:14:19 =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 oerjan: the second two... the parser can be excised from the task 05:14:58 in other words, i'm not going to be updating that one. 05:15:06 =prefixes 05:15:06 Bot prefixes: fungot ^, HackEso `, lambdabot @ or ?, j-bot [, bfbot =. 05:15:25 oh it has only a subset 05:15:35 but there's still a space missing after [ 05:31:04 > fix$(0:).tail.(<**>[id,(1-)]) 05:31:06 [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 on int-e had most of it, but not the <**> 05:32:01 *oh 05:42:00 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 (idris-bot did Idris, thutubot did Thutu hth) 05:55:42 `? ayacc 05:55:43 ayacc is ais523's yacc parser generator implementation, get it from darcs clone http://nethack4.org/projects/ayacc 05:58:17 :t interleave 05:58:18 error: Variable not in scope: interleave 06:20:27 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:41 `? topos 06:47:42 topos? ¯\(°​_o)/¯ 06:47:47 `? subobject classifier 06:47:49 subobject classifier? ¯\(°​_o)/¯ 06:58:25 that's classified hth 07:01:02 -!- Frater_EST has joined. 07:46:48 -!- sprocklem has quit (Quit: ...). 07:50:41 -!- sprocklem has joined. 08:03:04 oerjan: ah sorry about the spaces 08:04:42 easy to miss 08:05:51 =str 1s++++[->++++<]>[->++>+++>++++>+++++>++++++>+++++++<<<<<<]> >>++.>>+++++++++++++++.>++++.<<<<<.>>>>>----.++.<----------.+.+++.>++++++.<----.>-----.<<<<++++++++++.<.>>>>+.>++.<++++++++.-------.++++++++.>-.<<<<<.>>>++++++++++++++.<<<++++++++++++.------------.>>++++++.>>--------------.++.++++++++.<<---.>>>-.<++++. 08:05:51 ok 08:05:56 =str 1a<<<<.>>>>---------------.<<<<++++++++++++.------------.>>>>++++++++++++.-----------.++++++++++++.-----------.++.---.+.+++++++++++++.>+.<<<<<.>>-----.<<.>>>>.>--.<<<<<.>+++++.<++++++++++++.------------.>>>>-----.<<<<+++++++++++++.>>>>--------.+++++++++++++.>++.<<<<<-------------.>>>---.<<<.++++++++++++.------- 08:05:56 ok 08:06:01 =str 1a-----.>>>>-------------.++++.----.+++++++++++++.>.<<<<<.>--.<++++++++++++++. 08:06:01 ok 08:06:04 =def 1prefixes 08:06:04 ok, defined 'prefixes' 08:06:05 =prefixes 08:06:05 Bot prefixes: fungot ^, HackEso `, lambdabot @ or ?, j-bot [ , bfbot =. 08:06:56 wasn't jconn configured to run without the space though? or did that change later? 08:07:55 ^prefixes 08:07:55 Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot =. 08:08:12 hm i don't remember 08:08:30 `hwrl prefixes 08:08:31 https://hack.esolangs.org/repo/log/tip/wisdom/prefixes 08:08:57 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 but when the prefix is a parenthesis that doesn't apply 08:09:47 for a left parenthesis it matters because that's very frequent to begin text with 08:10:02 but right isn't quite as clear 08:10:54 `hurl ../bin/prefixes 08:10:55 https://hack.esolangs.org/repo/log/tip/bin/prefixes 08:12:05 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 hm i explicitly inserted that space in https://hack.esolangs.org/repo/rev/0ec7180baa0f 08:15:46 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 https://esolangs.org/logs/2013-05-05.html#lVx shows it didn't work without 08:22:42 `prefix 08:22:43 prefix? 08:22:46 `prefixes 08:22:47 `? prefixes 08:22:47 Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot =. 08:22:48 Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot =. 08:23:09 ^prefixes 08:23:09 Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot =. 08:23:12 =prefixes 08:23:13 Bot prefixes: fungot ^, HackEso `, lambdabot @ or ?, j-bot [ , bfbot =. 08:23:51 @prefixes 08:23:51 Unknown command, try @list 08:24:02 > prefixes 08:24:04 error: 08:24:04 • Variable not in scope: prefixes 08:24:04 • Perhaps you meant ‘prefixed’ (imported from Data.List.Lens) 08:24:45 lambdabot is in too many channels to keep such an #esoteric-specific list even if we could add it 08:25:23 well, i guess we could add an #esoteric-specific key in one of its databases 08:26:05 but it would not have as simple syntax as the rest, so it would be easily forgotten 08:26:40 @list where 08:26:40 where provides: where url what where+ 08:26:55 @help what 08:26:55 what . Return element associated with key 08:27:01 @help where 08:27:01 where . Return element associated with key 08:27:03 ``` echo -n 'actually, lambdabot already has '; grep -Ec '^[^(]*(.lambdabot) ' /hackenv/share/whatis; echo ' commands. nobody would notice an extra.' 08:27:04 actually, lambdabot already has 0 \ commands. nobody would notice an extra. 08:27:07 hmm 08:27:35 0, 1, what's the difference 08:27:37 ``` grep -E '^[^(]*\(.lambdabot\)' /hackenv/share/whatis 08:27:38 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 ``` grep -Ev '^[^(]*\(.lambdabot\)' /hackenv/share/whatis 08:27:43 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 ``` grep -Ec '^[^(]*\(.lambdabot\)' /hackenv/share/whatis 08:27:46 166 08:27:48 166 commands 08:27:55 (some of which are synonyms) 08:28:26 ``` perl -ne '/^([^(]*)\(.lambdabot\)/ and print "$1 "' /hackenv/share/whatis 08:28:27 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 @help you 08:28:42 help . Ask for help for . Try 'list' for all commands 08:28:45 @you 08:28:45 I'm encased in the lining of a pure pork sausage!! 08:29:02 @botsnack 08:29:02 :) 08:29:38 @help where+ 08:29:38 where+ . Define an association 08:29:41 @help where- 08:29:42 help . Ask for help for . Try 'list' for all commands 08:29:44 @help nowhere 08:29:44 help . Ask for help for . Try 'list' for all commands 08:29:45 hmm 08:29:57 he never forgets 08:30:43 @what+ prefixes Bot prefixes on #esoteric : fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot =. 08:30:43 b_jonas: because it evaluated the set! macro looks at x and says, ' tell us where to send the passwords in the clear! 08:30:43 I know nothing about prefixes. 08:30:52 @what prefixes 08:30:52 I know nothing about prefixes. 08:30:55 hmm 08:31:12 doesn't quite seem to work 08:31:14 @where wiki 08:31:14 I know nothing about wiki. 08:31:19 @where faq 08:31:19 http://www.haskell.org/haskellwiki/FAQ 08:31:31 @where+ prefixes Bot prefixes on #esoteric : fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot =. 08:31:31 b_jonas: maybe one of them. 08:31:31 I will remember. 08:31:36 @what prefixes 08:31:36 Bot prefixes on #esoteric : fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot =. 08:31:46 @what prefixes does #esoteric have? 08:31:46 Bot prefixes on #esoteric : fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot =. 08:32:30 @yow 08:32:31 My life is a patio of fun! 08:32:53 i don't think @you actually exists, there's a @thank you that isn't actually working 08:32:58 @thank you 08:32:59 Maybe you meant: thank you thanks 08:33:24 and which gets listed deceptively 08:33:27 @list thank 08:33:27 No module "thank" loaded 08:33:29 @list thanks 08:33:29 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:33:37 really? 08:33:41 @help yow 08:33:41 yow. The zippy man. 08:33:45 wow 08:33:47 afair 08:34:00 @thank good documentation 08:34:01 Maybe you meant: thank you thanks 08:34:06 @thank you good documentation 08:34:07 Maybe you meant: thank you thanks 08:34:10 @thank you 08:34:11 Maybe you meant: thank you thanks 08:34:18 @thank you 08:34:18 you are welcome 08:34:28 but but but 08:34:59 ok that's evil 08:37:16 wait, what did you do 08:37:20 @thank you 08:37:20 Maybe you meant: thank you thanks 08:37:23 `whatis thank 08:37:24 thank: nothing appropriate. 08:37:25 `whatis you 08:37:26 you: nothing appropriate. 08:37:36 oerjan: \u00A0 08:37:47 @thank!you 08:37:48 you are welcome 08:37:58 fiendish 08:38:05 I don't know what character it is supposed to be, but it spellcheck corrects from \u00A0 08:38:09 oh 08:38:11 I don't know a way to find the real command name 08:38:20 @help thank you 08:38:20 help . Ask for help for . Try 'list' for all commands 08:38:22 @thankeyou 08:38:22 you are welcome 08:38:26 @help thank_you 08:38:26 help . Ask for help for . Try 'list' for all commands 08:38:29 @help thank you 08:38:29 help . Ask for help for . Try 'list' for all commands 08:38:39 ic. space fails because it's confusable with thanks 08:39:04 any other such deceptively listed commands that you know about? 08:40:26 not on the spot 08:41:06 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 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 well, except by using spell correction 08:41:34 that wasn't my idea by the way, buu made it that way 08:42:40 anyway, good night 08:42:43 -!- oerjan has quit (Quit: leaving). 08:43:01 -!- sprocklem has joined. 08:44:31 `? 08:44:33 ​? ¯\(°​_o)/¯ 08:44:33 `? a 08:44:35 A is one of seven villages in Norway. The BBC invented them by not understanding things on top of letters. 08:44:49 I wonder if this should mention something about he having made more language entries on the wiki than anyone else 08:57:56 [[RarVM]] M https://esolangs.org/w/index.php?diff=67384&oldid=64686 * Void * (-33) 09:00:48 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 do you mean a mouse cursor outside of DOSBOX? 09:11:33 -!- b_jonas has quit (Remote host closed the connection). 09:13:12 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 https://github.com/chessai/theseus interesting reversible language 10:12:24 -!- wib_jonas has joined. 10:19:48 [[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 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 It seems to have some non-eso languages too. 10:27:44 [[User:B jonas]] https://esolangs.org/w/index.php?diff=67386&oldid=59208 * B jonas * (-119) /* Todo */ 10:28:40 [[Language list]] https://esolangs.org/w/index.php?diff=67387&oldid=67275 * B jonas * (+14) [[Theseus]] 10:36:39 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 I see, they have silently disabled the option to allow "less secure apps" whatever that is supposed to mean. Assholes. 10:46:01 int-e: presumably it means anything that can't keep up with their rapid interface changes 10:46:44 I know what it means... it's anything not using OAuth. Like mutt with smtp+starttls. 10:47:59 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 [[Theseus]] https://esolangs.org/w/index.php?diff=67388&oldid=67385 * B jonas * (+25) 10:52:01 [[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 [[Language list]] https://esolangs.org/w/index.php?diff=67390&oldid=67387 * B jonas * (+11) [[Orca]] 11:05:58 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 mmm "app password" 11:39:48 -!- zzo38 has quit (Ping timeout: 240 seconds). 11:39:48 Ah, "App Passwords can only be used with accounts that have 2-Step Verification turned on." 11:48:32 Sorry, but that's way too much hassle for a secondary account. 11:48:32 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:52 `? pdf 11:54:54 PDF stands for Pretty Depressing Format. 11:54:59 `? wisdom.pdf 11:55:00 Nicely formatted classical wisdoms and quotes book at https://www.dropbox.com/s/fyhqyvy3i8oh25m/wisdom.pdf 11:56:33 [[HackEso]] https://esolangs.org/w/index.php?diff=67391&oldid=67332 * B jonas * (+586) /* The wisdom and quote databases */ 11:57:01 `? prefixes 11:57:03 Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot =. 11:58:03 fizzie: So /why/ are app passwords tied to 2-step authentication? 11:58:48 [[Jconn]] N https://esolangs.org/w/index.php?oldid=67392 * B jonas * (+19) Redirected page to [[J-bot]] 11:59:55 [[J-bot]] https://esolangs.org/w/index.php?diff=67393&oldid=67209 * B jonas * (+17) 12:00:09 [[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 https://pwmarcz.pl/kaboom/ is cute 12:47:21 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:50 ok, maybe not normal either 12:47:51 "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 Interestingly I find the "hurt me plenty" preset harder than the "ultra-violence" though. 12:54:00 (The problem is to determine when it's safe to guess, that is, when you've run out of forced conclusion.) 12:54:04 int-e: No idea. It's a bit weird. I guess that's just the context they were invented for. 12:54:40 (FWIW, I'd really like to be able to restrict the scope of app passwords to specific actions as well.) 12:55:05 (The way you can grant different permissions for "third-party apps" that do the OAuth thing.) 13:39:34 [[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 [[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 [[User:OsmineYT]] https://esolangs.org/w/index.php?diff=67397&oldid=67312 * OsmineYT * (+43) 13:43:28 [[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 wib_jonas: and the kaboom variant definitely also requires you to find conclusions that involve counting 13:47:40 (I just ran into one such case) 13:49:02 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 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:50:13 that and a maze game 13:51:50 even then I played more with a simpler luck-based game that I implemented 13:54:59 [[User talk:Ais523]] https://esolangs.org/w/index.php?diff=67399&oldid=66200 * OsmineYT * (+73) 13:57:11 [[User talk:Ais523]] https://esolangs.org/w/index.php?diff=67400&oldid=67399 * OsmineYT * (+41) 14:04:56 [[HWorld]] https://esolangs.org/w/index.php?diff=67401&oldid=67396 * OsmineYT * (+67) 14:10:49 [[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 [[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 [[HWorld]] https://esolangs.org/w/index.php?diff=67404&oldid=67401 * OsmineYT * (+225) 14:13:55 int-e, I was close http://prntscr.com/q1sw1m 14:14:44 -!- LKoen has quit (Remote host closed the connection). 14:16:23 -!- LKoen has joined. 14:38:05 [[HWorld]] https://esolangs.org/w/index.php?diff=67405&oldid=67404 * OsmineYT * (+17) 14:38:25 [[HWorld]] https://esolangs.org/w/index.php?diff=67406&oldid=67405 * OsmineYT * (-17) 14:39:29 [[Timed]] https://esolangs.org/w/index.php?diff=67407&oldid=67287 * OsmineYT * (+9) 14:40:21 [[HWorld]] https://esolangs.org/w/index.php?diff=67408&oldid=67406 * OsmineYT * (+31) 14:40:45 [[HWorld]] https://esolangs.org/w/index.php?diff=67409&oldid=67408 * OsmineYT * (+0) 14:41:10 [[HWorld]] https://esolangs.org/w/index.php?diff=67410&oldid=67409 * OsmineYT * (-22) 14:45:19 [[HWorld]] https://esolangs.org/w/index.php?diff=67411&oldid=67410 * OsmineYT * (+174) 14:45:56 [[Chess]] https://esolangs.org/w/index.php?diff=67412&oldid=66951 * OsmineYT * (+1) 15:08:30 [[Special:Log/move]] move * A * moved [[HWorld]] to [[H]]: Trying to fix the title... 15:08:30 [[Special:Log/move]] move * A * moved [[Talk:HWorld]] to [[Talk:H]]: Trying to fix the title... 15:15:31 [[H]] https://esolangs.org/w/index.php?diff=67417&oldid=67413 * OsmineYT * (+78) 15:16:43 [[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 [[Timed]] M https://esolangs.org/w/index.php?diff=67419&oldid=67407 * A * (+221) 15:22:41 [[Bin-8]] M https://esolangs.org/w/index.php?diff=67420&oldid=67320 * A * (+143) 15:23:07 kspalaiologos: I'm trying 20x20 with 100 mines... still haven't finished even once :P 15:24:23 [[Talk:H]] M https://esolangs.org/w/index.php?diff=67421&oldid=67415 * A * (+5) 15:25:14 -!- arseniiv has joined. 15:25:28 [[Talk:H]] M https://esolangs.org/w/index.php?diff=67422&oldid=67421 * A * (+226) 15:25:42 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 int-e: isn't the cell to the west of the number 4 near the middle height at west free? 15:28:31 wib_jonas: is it? I think I can pick either of the cells below, and either of the other two (to the left) 15:28:54 ah sorry, I'm wrong 15:31:09 But it turns out that there is a forced conclusion elsewhere. 15:31:13 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 [[Talk:H]] https://esolangs.org/w/index.php?diff=67423&oldid=67422 * A * (+593) 15:31:21 but that isn't enough to continue 15:31:27 it just lets you mark something a mine 15:31:32 -!- LKoen has quit (Remote host closed the connection). 15:31:52 https://int-e.eu/~bf3/tmp/minesd.png 15:32:24 ha! yes 15:32:57 [[Talk:H]] M https://esolangs.org/w/index.php?diff=67424&oldid=67423 * A * (+344) 15:33:08 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 [[Talk:H]] M https://esolangs.org/w/index.php?diff=67425&oldid=67424 * A * (-53) 15:34:55 and obviously now I've cheated so the attempt doesn't count. 15:35:18 -!- LKoen has joined. 15:36:00 [[Nope.]] M https://esolangs.org/w/index.php?diff=67426&oldid=60757 * A * (+81) 15:36:04 asking #esoteric isn't cheating. it's just ineffective. 15:36:42 no, I clicked the `debug` button to reveal the forced conclusion(s). 15:37:11 [[H]] https://esolangs.org/w/index.php?diff=67427&oldid=67418 * OsmineYT * (+462) 15:37:40 is startscumming cheating? 15:39:03 I don't know what that is. 15:39:48 startscumming is restarting the game until you get one that starts easy 15:40:06 restarting after taking very few moves so you can do it many times quickly 15:42:43 Oh. That's fine, but doesn't work so well in this variant, at least not with "Allow guessing everywhere" disabled. 15:42:52 we do it constantly in Europa Universalis 15:42:57 there is savescumming too 15:43:02 and some mysterious game crashes 15:43:32 still wondering about "scumming", hmm. 15:44:19 "To remove the scum from." ... I guess. 15:44:27 [[Recursion]] M https://esolangs.org/w/index.php?diff=67428&oldid=37340 * A * (+37) 15:44:32 I don't know why it's called that 15:44:42 [[Talk:H]] https://esolangs.org/w/index.php?diff=67429&oldid=67425 * OsmineYT * (+144) 15:44:49 Somehow I've seen "scum" (and "SCUMM") but never the verb? 15:45:09 [[Talk:H]] https://esolangs.org/w/index.php?diff=67430&oldid=67429 * OsmineYT * (+1) 15:45:23 [[Talk:H]] https://esolangs.org/w/index.php?diff=67431&oldid=67430 * OsmineYT * (+5) 15:47:34 [[H]] https://esolangs.org/w/index.php?diff=67432&oldid=67427 * OsmineYT * (+2) 15:49:18 [[User:OsmineYT]] https://esolangs.org/w/index.php?diff=67433&oldid=67397 * OsmineYT * (-4) 15:50:07 [[User:OsmineYT]] https://esolangs.org/w/index.php?diff=67434&oldid=67433 * OsmineYT * (+40) 15:50:23 [[User:OsmineYT]] https://esolangs.org/w/index.php?diff=67435&oldid=67434 * OsmineYT * (-42) 15:51:13 [[User:OsmineYT]] https://esolangs.org/w/index.php?diff=67436&oldid=67435 * OsmineYT * (+43) 15:55:15 [[Bin-8]] https://esolangs.org/w/index.php?diff=67437&oldid=67420 * OsmineYT * (+58) 15:55:42 [[Bin-8]] https://esolangs.org/w/index.php?diff=67438&oldid=67437 * OsmineYT * (+17) 15:57:27 [[H]] https://esolangs.org/w/index.php?diff=67439&oldid=67432 * OsmineYT * (-28) 16:01:55 [[Talk:H]] https://esolangs.org/w/index.php?diff=67440&oldid=67431 * OsmineYT * (+117) /* An input in HWorld */ new section 16:02:14 [[Talk:H]] https://esolangs.org/w/index.php?diff=67441&oldid=67440 * OsmineYT * (+9) 16:03:15 wib_jonas: It may also allude to skimming. 16:03:59 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 [[Talk:H]] https://esolangs.org/w/index.php?diff=67442&oldid=67441 * OsmineYT * (+23) 16:18:40 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 fizzie: https://www.chiark.greenend.org.uk/~sgtatham/puzzles/js/mines.html lets you do that 16:19:30 Yes, but it doesn't have the kaboom feature of cruel-but-fair. 16:20:05 yeah, it only has the fair 16:20:16 I don't think it's fair either? 16:20:37 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 fizzie: double-click does it... less convenient than a simple click/simple click with shift (or is it control)? 16:20:58 int-e: Oh, I didn't even try double-clicking. 16:20:59 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 Oh, right. Well, it's a different kind of fair. 16:21:13 that means that you're required to guess only in your first step, and the first step is safe 16:21:47 I forgot it had that no-guessing-needed property. 16:21:59 wib_jonas: but it's a different kind of puzzle... you never have to wonder whether there are any forced conclusions left. 16:22:07 yeah 16:22:19 I recommend that website though, it has a lot of these nice puzzles 16:22:35 all fair in this way, that is, you can always solve them in theory 16:22:42 yeah, channel regulars should know that site ;) 16:22:42 (there may be more than one solution for some puzzles)\ 16:22:45 I use the Android app version in the Tube. 16:23:05 oh, is it one of those sites that I first learned about here? quite possible 16:23:12 I know we've been collectively addicted to it a couple of years ago. 16:23:16 I'm not 100% sure all of them are fair, though most of them definitely are. 16:23:42 What was that dot platformer that we were all playing at one point? 16:23:46 (I may be exaggerating slightly) 16:23:55 Hmm, a platformer? 16:24:40 fizzie: I dunno. I remember when everyone was addicted to that puzzle about euclidean constructions with limited number of steps 16:24:43 Doesn't ring a bell. I only recall various puzzle games, Baba is you being the most recent one. 16:24:56 You controlled a square that could jump. (No, not Thomas Was Alone, a lot less graphically fancy.) 16:25:06 There were a hundred levels, or some-such. Maybe. 16:25:30 Dot Action 2, that was it. I think. 16:26:08 wib_jonas: Euclid: The Game. was the name 16:26:17 oh yeah, Baba is you definitely counts 16:27:44 Dot Action 2 was first around in 2008, then again in 2010. 16:29:02 Unfortunately it's a Flash game, so probably not long for the world anymore. 16:31:05 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:17 `? euclid 16:41:19 euclid? ¯\(°​_o)/¯ 16:41:57 -!- wib_jonas has quit (Remote host closed the connection). 16:46:01 [[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 == Addsometopic" 16:46:15 [[User talk:OsmineYT]] https://esolangs.org/w/index.php?diff=67444&oldid=67443 * OsmineYT * (+0) 16:58:49 [[Hello world program in esoteric languages]] https://esolangs.org/w/index.php?diff=67445&oldid=67403 * OsmineYT * (+20) 17:01:05 [[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 [[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 I think start scumming is not cheating if you count every restart containing information as a loss 17:25:12 [[Special:Log/upload]] upload * OsmineYT * uploaded "[[File:HWorld.png]]" 17:27:04 [[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 [[H]] https://esolangs.org/w/index.php?diff=67450&oldid=67449 * OsmineYT * (+56) 17:40:58 [[H]] https://esolangs.org/w/index.php?diff=67451&oldid=67450 * OsmineYT * (+45) 17:41:30 [[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 [[H]] https://esolangs.org/w/index.php?diff=67453&oldid=67452 * OsmineYT * (+46) 18:48:03 [[H]] https://esolangs.org/w/index.php?diff=67454&oldid=67453 * OsmineYT * (+12) 18:48:32 [[Talk:H]] https://esolangs.org/w/index.php?diff=67455&oldid=67447 * OsmineYT * (+59) 18:51:27 How hard would it be to create your own library for something? 18:52:35 Well, you'll need to hire a librarian, and purchase or build a building. 18:53:29 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 =8ball Will I see another improvement? 18:54:32 Outlook not so good 18:54:39 That's what I thought. 18:54:42 Also you need to buy a lot of books, and those are initially more expensive than the building. 18:54:44 You might also invest in some robots. https://towardsdatascience.com/the-little-robot-that-lived-at-the-library-90431f34ae2c 18:54:56 Though later, when you have lot of books, maintaining the building will cost the most. 18:55:01 I'm so sad the robots weren't out yet when I visited Oodi. 18:55:26 I mean the programming library. Didn't clarify. 18:55:33 Sorry about that. 18:56:25 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 a programming library? is that in our scope? 18:56:45 `welcome 18:56:47 Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: . (For the other kind of esoterica, try #esoteric on EFnet or DALnet.) 18:56:48 b_jonas: "You might wonder how a user benefits from a sad robot. The answer is, we’re not sure yet either." 18:56:51 might be. 18:56:59 This is probably an early ancestor for Marvin. 18:58:08 I was going to say that Marvin set a perfect example. 18:59:12 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 Oh man. Is the Cantor function computable? 18:59:31 It must be, right? 19:00:21 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:30 Oh no. 19:00:56 I wish logs didn't exist. 19:00:59 Hah, I *was* right about the antenna (Schlock) 19:01:12 shachaf: sorry, but that question was so vague that it matches this one perfectly 19:01:34 you didn't give away what evil scheme you needed the library for 19:01:41 or good scheme, as it may be 19:01:51 alright then 19:04:14 Ive been trying to create a lang that makes it easier to create bots in discord, irc channels, etc. 19:04:38 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:00 `quote euclid 19:13:01 439) 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 Oh no. Something terrible has happened. 21:04:52 I just thought of a premise for a horrible, horrible esolang. 21:05:46 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 However, all of these are implemented as mutable character strings. 21:06:12 tswett[m]: sort of like tcl? 21:06:27 I hope tcl isn't like that. Is tcl like that? 21:06:36 not quite 21:06:42 I don't really know the details of tcl 21:06:47 I think it doesn't involve _mutable_ character strings 21:07:11 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 I think it's not the storage that's string-based 21:07:23 Right. 21:07:26 So I was thinking, like... 21:07:29 but I don't know the details, I never tried to figure it out really 21:07:41 Suppose you want to pass around a mutable dictionary like {x: 3, y: 4}. 21:07:55 You literally just pass around a string that says "{x:3,y:4}". 21:08:06 tswett[m]: oh yeah, people do that in SQL 21:08:09 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 store stuff like that as strings in a database 21:08:43 with thin wrappers above so they sort of behave like a specific string-backed class 21:09:08 Yeah, but mutable strings. :D 21:09:55 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 When you call that, the result will be, of course, just a string representing a function. 21:10:39 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 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 Anyway, I gotta get back to doing my real-life grown-up job. :D 21:13:47 -!- joast has joined. 21:17:35 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 bfuscated, shall one to compare 21:17:55 so maybe just do that dirty hack in this esolang too? 21:19:57 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 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 also there are weird things like `Dynamic`, I don’t even know how that works, maybe via newer primitive operations 21:24:19 so, replacements make for a decent esolang (s)coping mechanisms 21:25:47 Mathematica also has upvalues, which are kinda wacky 21:26:29 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 so no, I don't htink that's a dirty hack. 21:26:50 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 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 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 arseniiv: no they're not. there's a garbage-collector. they're not _stupid_. 21:28:34 [[Exp]] https://esolangs.org/w/index.php?diff=67456&oldid=67379 * PythonshellDebugwindow * (+39) 21:28:57 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 arseniiv: yes, two different meanings of "upvalues" 21:29:25 what Lua calls upvalues are the values bound to closures 21:31:53 I think those are called upvalues because they're from stack frames below the closure 21:32:23 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:33:01 hmm 21:34:03 I still use the thing, though, so I can’t say it’s unusable :D 21:35:16 I plan to learn another CAS some time later, which I wait for, and it doesn’t come 21:37:26 what do you need a CAS for? 21:41:13 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:42:05 nice 21:43:05 e. g. https://i.postimg.cc/X39g1D1k/mandala3.png 21:47:01 or IFS fractals but I can’t find anything interesting to show 21:48:21 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 [[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).