←2019-10 2019-11 2019-12→ ↑2019 ↑all
2019-11-01
00:00:24 <oerjan> <kmc> is the concept of pregret related to the concept of type II fun? <-- huh. i feel like i've never learned to do that.
00:04:31 -!- FreeFull has quit.
00:17:35 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
00:36:50 -!- imode has quit (Ping timeout: 240 seconds).
00:47:46 -!- tromp has quit (Remote host closed the connection).
00:48:19 -!- tromp has joined.
00:53:29 -!- tromp has quit (Ping timeout: 276 seconds).
00:54:08 -!- tromp has joined.
00:58:38 -!- tromp has quit (Ping timeout: 245 seconds).
01:07:39 -!- imode has joined.
01:12:12 -!- oerjan has quit (Quit: Nite).
01:22:50 -!- zzo38 has quit (Ping timeout: 240 seconds).
01:35:55 -!- tromp has joined.
01:40:56 -!- tromp has quit (Ping timeout: 276 seconds).
01:52:36 -!- Soni has joined.
01:52:53 <Soni> 1. make esoteric language month 2. publish pure-sed doom port
01:53:19 <imode> I'd do it.
01:53:24 <Soni> (there is pure-sed tetris, after all)
01:54:46 <imode> what.
01:57:55 <Soni> https://github.com/uuner/sedtris/blob/master/sedtris.sed
02:44:23 <ArthurStrong> Wondering, if it's been generated using pack of scripts of written as is
02:50:42 <ArthurStrong> She's got a career at Google: https://careers.google.com/stories/julia-on-growing-her-career-at-google/
02:52:28 <imode> good.
03:24:08 -!- tromp has joined.
03:28:38 -!- tromp has quit (Ping timeout: 245 seconds).
04:42:27 -!- quintopia has joined.
05:10:59 -!- imode has quit (Quit: WeeChat 2.6).
05:11:16 -!- imode has joined.
05:12:27 -!- tromp has joined.
05:13:18 -!- imode has quit (Client Quit).
05:13:36 -!- imode has joined.
05:15:14 -!- imode has quit (Client Quit).
05:15:29 -!- imode has joined.
05:17:23 -!- tromp has quit (Ping timeout: 276 seconds).
05:35:46 -!- imode has quit (Quit: WeeChat 2.6).
05:36:04 -!- imode has joined.
05:38:11 -!- erdic has quit (Ping timeout: 276 seconds).
05:40:09 -!- erdic has joined.
06:02:28 -!- MDude has quit (Ping timeout: 268 seconds).
06:39:14 -!- tromp has joined.
06:43:38 -!- tromp has quit (Ping timeout: 245 seconds).
06:44:44 <aji> Soni: what are you doing here
07:02:36 -!- MDude has joined.
08:27:08 -!- tromp has joined.
08:31:25 -!- tromp has quit (Ping timeout: 252 seconds).
08:39:33 -!- tromp has joined.
09:22:26 -!- imode has quit (Ping timeout: 276 seconds).
09:46:16 -!- atslash has joined.
09:50:54 -!- arseniiv has joined.
09:53:26 -!- kspalaiologos has joined.
09:54:24 -!- kspalaiologos has quit (Client Quit).
09:54:36 -!- kspalaiologos has joined.
09:55:28 -!- kspalaiologos has quit (Client Quit).
09:55:42 -!- kspalaiologos has joined.
11:29:05 <Soni> aji: who are you
11:29:32 <Soni> (and, more importantly, why do you care)
11:49:08 <esowiki> [[User:CMinusMinus]] N https://esolangs.org/w/index.php?oldid=66902 * CMinusMinus * (+155) Created page with "Welcome to my Esolang-page! My name is Jonas, im 16 and from Germany (Yeah I know...). I already made some stuff, I am going to upload it here later... Bye"
11:49:27 <esowiki> [[User:CMinusMinus]] https://esolangs.org/w/index.php?diff=66903&oldid=66902 * CMinusMinus * (+24)
12:53:53 <b_jonas> oh I get it! they're called a ket-tle because when you start to boil the water, they hiss like a cat
12:54:10 <b_jonas> should have been spelled cat-tle but that's already used for a different word
13:06:53 <fizzie> `? kittegory
13:06:54 <HackEso> A kittegory is just a small category.
13:09:44 <fizzie> `mkx bin/just//grwp '\(is\|are\) just' | sed -e 's/:/ ::= /;s/$/\n/' > tmp/just && url tmp/just
13:09:46 <HackEso> bin/just
13:09:47 <fizzie> `just
13:09:48 <HackEso> https://hack.esolangs.org/tmp/just
13:32:56 <b_jonas> `? char
13:32:57 <HackEso> Char is a prominent component of charcoal.
13:39:43 <b_jonas> `? long
13:39:44 <HackEso> Long is the Chinese word for dragon.
13:40:10 <b_jonas> the other type words of C don't seem to have a wisdom: int, short, float, double, bool, _Bool, complex, _Complex, atomic, _Atomic
13:40:26 <b_jonas> we do have one for pointers though
13:40:31 <b_jonas> oh, and
13:40:32 <b_jonas> `? void
13:40:34 <HackEso> Nothing to see here
13:43:42 <kspalaiologos> `? void *
13:43:43 <HackEso> void *? ¯\(°​_o)/¯
13:43:59 <kspalaiologos> `? punpckhqdq
13:44:00 <HackEso> punpckhqdq? ¯\(°​_o)/¯
14:00:40 -!- aloril has quit (Ping timeout: 265 seconds).
14:57:23 <lf94> What language would you guys use to implement something new, that will be supported for the next 50 years?
14:57:31 <lf94> C?
14:57:56 <lf94> Basically I want to write a virtual machine for unreal script, and want it to live until at least I'm dead
14:58:40 <int-e> Fortran? Cobol?
14:58:53 <kspalaiologos> C
14:59:01 <kspalaiologos> c'mon, it's never going to die
14:59:23 <myname> it should, though
15:00:14 <int-e> I was not objecting to C, I merely wanted to offer some alternatives.
15:01:05 -!- aloril has joined.
15:05:32 <lf94> I don't want to use C because of bad type system, complex ecosystem, etc
15:05:38 <lf94> I was thinking lisp would probably be better
15:05:56 <kspalaiologos> you might end up like Reddit
15:06:18 <lf94> lol
15:06:34 <lf94> I want to use Rust, but Rust heavy as fuck.
15:06:44 <lf94> So I keep coming back, staring at Zig from a distance.
15:07:00 <lf94> I've actually used Rust for ~2 years now
15:07:03 <int-e> Honestly though... take any established language and chances are good that you can still run it 50 years from now. It may involve two layers of emulation.
15:08:00 <lf94> I should find a C with RAII and strong type system
15:08:04 <int-e> Oh, let's add vendor-neutral to the criteria.
15:08:15 <lf94> But in an adhoc fashion
15:08:26 <lf94> So that it can all be removed to compile with C compiler
15:08:38 <b_jonas> C
15:08:48 <int-e> Swift, golang... such things might still disappear very quickly if the corresponding company ever goes under.
15:09:42 <b_jonas> `? C
15:09:43 <HackEso> C is the language of��V�>WIד�.��Segmentation fault
15:11:28 <int-e> (I don't really expect either of those two to disappear.)
15:12:00 <lf94> int-e: thoughts on Zig?
15:12:09 <lf94> The developed it in a year basically
15:12:13 <lf94> The guy*
15:12:47 <lf94> int-e: what about JavaScript :^)))
15:14:31 <lf94> Lately I've been thinking more and more about interpreted languages
15:14:33 <int-e> lf94: I actually thought of that but hoped that nobody else would.
15:14:49 <int-e> lf94: Unfortunately I suspect it's here to stay as well.
15:15:04 <lf94> Basically an interpreted language trade-offs memory
15:15:09 <int-e> I don't know Zig.
15:15:22 <lf94> A compiled language typically needs more memory
15:15:32 <lf94> But you get way more control of the underlying system
15:15:40 <int-e> lf94: That's not really true anymore because of JITs.
15:15:53 <lf94> How complex is JIT
15:16:25 <int-e> (And Javascript would not be as dominant if people hadn't gone crazy in JIT compilation for JS a decade ago.)
15:16:26 <lf94> A compiled language, in the most basic case, is just turning language feature X into assembly Y
15:16:53 <lf94> Now with LLVM, I think there is no reason NOT to make it compiled
15:17:41 <int-e> Extrinsically JIT compilers use fairly crazy amounts of memory... they compile several versions of the same code, collect runtime profiling information to identify hot spots, require garbage collection... it adds up.
15:17:47 <lf94> int-e: check out Zig, for me. Your opinion matters a lot.
15:17:59 <b_jonas> I wouldn't trust javascript, because all the people who use javascript make programs that they throw away five or ten years ago, so you can't trust the language and its interpreters to be stable enough
15:18:26 <int-e> (Hmm, should've used a full stop rather than an ellipsis... those two sentences were not logically connected.)
15:18:34 <int-e> lf94: I really don't do requests.
15:18:47 <lf94> I guess with emulation, you can emulate compilers
15:18:58 <b_jonas> I recommend https://esolangs.org/wiki/UM-32 since it's based on like a thousand year old cult who made computers out of sand
15:19:19 <lf94> It would be cool to have some sort of crazy optimizing lambda calculus compiler
15:19:31 <lf94> int-e: Sorry, I didn't mean to offend
15:20:02 <int-e> Oh I'm not offended.
15:21:59 <b_jonas> that or MMIX, whose tagline is "a RISC computer for the third millennium", and people will be reading TAOCP fifty years from now so they'll also be interested to emulate MMIX
15:22:22 <lf94> I was going to target subleq vm
15:22:27 <lf94> as an alternative
15:22:32 <lf94> but it'd probably be very very slow.
15:22:34 <b_jonas> but C is pretty much the best option
15:23:04 <lf94> I should bundle tiny C compiler source with the project
15:23:09 <lf94> so someone can bootstrap
15:25:44 <b_jonas> lf94: the hard part is not the compiler or core language, but then environment and system access
15:25:52 <lf94> yeah...
15:25:58 <lf94> and C makes that the easiest
15:26:39 <b_jonas> C and unix together, yes
15:28:02 <lf94> https://en.wikipedia.org/wiki/History_of_programming_languages
15:28:06 <lf94> Man, this is pretty sad
15:28:17 <lf94> After the 70s everyone's been making garbage collected languages
15:28:38 <lf94> (Minus D, Swift and Rust)
15:29:38 <b_jonas> just look at how we unix people run unix programs on windows. sure, they don't integrate well into the environment, because they can like only access files if all characters in their names are in the locale-dependent default codepage, and you have to patch system() statements to add two double-quotes before the name of the program and one double-quote after the name of the program that you execute,
15:30:22 <b_jonas> and they can't printf floating-point numbers properly, but the end result is that with all that patching, you can usually run those programs, and windows libc supports them because there's a need for it
15:30:56 <b_jonas> every future system will support C and unix basics, so you can easily port programs from it, even if the system looks so different that you can't access its native resources to the fullest
15:30:58 <lf94> Is it difficult to re-implement C+
15:30:59 <lf94> ?
15:31:11 <b_jonas> even if it has to run the whole C program in an emulated virtual 32-bit address space etc
15:31:25 <b_jonas> it might be inefficient, but that doesn't matter when you're running old programs
15:31:53 -!- kritixilithos has joined.
15:35:18 <lf94> Thoughts on Ada?
15:36:54 <b_jonas> also document the parts of your program that may have to be ported in the future, like Knuth does in TeX/Metafont/SGB. these are the parts that access the system or do IO, the parts that make some assumption that need not be true in all C environments, and the parts that they may want to optimize in a nonportable way
15:37:23 <b_jonas> that's what makes TeX/Metafont/SGB portable enough: you don't have to touch most of the code to port, just those specific parts
15:39:40 <lf94> b_jonas: interesting
15:39:46 <lf94> TeX is written in what?
15:39:54 <lf94> I thought it was Knuth's own lang
15:43:03 <fizzie> I think it's written in WEB, yes.
15:45:43 <b_jonas> it's written in CWEB
15:46:07 <fizzie> Is it? I thought it was just WEB, and used Web2C.
15:46:08 <b_jonas> which lets you combine the core with local "patch files" that replace the system-dependent parts (or any parts you want really) of the C code
15:46:20 <b_jonas> and then you compile the resulting code with a C compiler
15:46:26 <b_jonas> fizzie: I dunno
15:46:35 <b_jonas> fizzie: SGB is written in CWEB then
15:46:40 <int-e> WEB is Pascal based.
15:46:48 <b_jonas> I haven't really tried to look at how TeX is implemented
15:46:56 <fizzie> int-e: Right, but I think TeX systems use web2c instead.
15:47:05 <fizzie> https://ctan.org/pkg/web2c?lang=en
15:47:16 <int-e> fizzie: I'm sure it has been ported to CWEB
15:47:44 <fizzie> Well, the principle is language agnostic, anyway.
15:49:44 <b_jonas> I guess for portability we should count 6502 too. everyone will know how to emulate it with all its undocumented instructions and quirks of the NES and commodore 64 graphics and sound hardware, even 50 years from now.
15:50:21 <b_jonas> https://www.linusakesson.net/games/stranded64/index.php argues for using the commodore 64 for future portability
15:50:58 -!- imode has joined.
15:53:59 <b_jonas> so write the program in the form of an NES cart. just remove its battery if it has battery-backed SRAM, because it's easier to put a new battery in 50 years from now than to clean up the spilled battery acid and repair the PCB
15:54:01 <int-e> Hmm, interesting. I was under the misconception that TeX had been ported to CWEB. Apparently not... (or maybe that happened and was abandoned).
15:56:17 <b_jonas> target the NTSC version though, people might not be able to get a PAL NES so easily anymore that far into the future
15:57:37 <b_jonas> oh yeah, writing the program _in_ TeX or Metafont (as opposed to _like_ TeX or Metafont) is an option too
15:57:53 <b_jonas> people will be able to find interpreters for those 50 years from now too, even if they don't use them for their original purpose anymore
15:59:03 <b_jonas> the problem is, writing a program in those languages is an exercise in masochism
15:59:27 <b_jonas> they're not as useful for general-purpose programming as the NES, commodore 64, C and unix, or MMIX
16:00:18 <b_jonas> lf94: Knuth's own languages are MIX with various extensions, MMIX, PL/MIX, and possibly PL/MMIX. TeX is written in none of those.
16:01:02 <esowiki> [[MIX (Knuth)]] https://esolangs.org/w/index.php?diff=66904&oldid=63414 * B jonas * (+4)
16:01:20 <esowiki> [[MMIX]] https://esolangs.org/w/index.php?diff=66905&oldid=52406 * B jonas * (+4)
16:01:34 <esowiki> [[Gb gates RISC]] https://esolangs.org/w/index.php?diff=66906&oldid=53641 * B jonas * (+4)
16:01:49 <esowiki> [[PL/MIX]] https://esolangs.org/w/index.php?diff=66907&oldid=66502 * B jonas * (+4)
16:02:38 <fizzie> I was almost expecting you were adding "TeX is not written in it." in each of those articles.
16:02:43 <fizzie> But maybe that's more of a `wisdom thing to do.
16:03:32 <esowiki> [[1.1]] https://esolangs.org/w/index.php?diff=66908&oldid=59206 * B jonas * (+4)
16:04:29 <b_jonas> ``` cat wisdom/pe*taneb* # like that entry?
16:04:30 <HackEso> Taneb is not elliott, a rabbi, Mark Zuckerberg, James Bond, Queen Elizabeth the first, or anyone older than Queen Elizabeth the Second. Pending approval: Shigeru Miyamoto.
16:04:58 <b_jonas> languages that TeX isn't implemented in?
16:05:43 <int-e> lf94: you should get shachaf's opinion on Zig since it doesn't have exceptions
16:05:57 <lf94> shachaf: opinion pls
16:06:05 <fizzie> That, and some other entries about inventions.
16:06:12 <int-e> but other than that... nothing really exciting to me. and this competition on hello world program size is getting boring
16:07:07 <fizzie> I've been writing Go lately, and Zig's `errdefer` would've come in handy a couple of times.
16:08:01 <int-e> I'm hoping for some serious consolidation in the near future.
16:08:33 <int-e> Having dozens of C-like languages that all have their own minor innovation is stupid.
16:09:58 <int-e> Maybe LLVM made writing compilers a bit too easy.
16:10:06 <esowiki> [[Gb gates RISC]] https://esolangs.org/w/index.php?diff=66909&oldid=66906 * B jonas * (-1)
16:10:34 <b_jonas> I still recommend C++ and rust
16:10:58 <b_jonas> not for the program that needs to be portable to 50 years from now
16:11:05 <b_jonas> for more ordinary programs
16:11:08 <imode> rust has tempted me recently. I resist its temptation.
16:11:58 <b_jonas> imode: C++ then
16:12:31 <imode> meh.
16:12:37 <imode> python, C, and Go for me.
16:13:53 <b_jonas> imode: python is fine too for many purposes
16:27:44 -!- kritixilithos has quit (Ping timeout: 260 seconds).
16:30:19 -!- grumboo has changed nick to grumble.
16:51:24 <Soni> forget C-likes
16:51:27 <Soni> use sed
16:52:01 <imode> I tried.
16:52:11 -!- kritixil1thos has joined.
16:52:58 <Soni> I tried rust but gave up on it after a while
16:53:59 <Soni> rust .so's crash on reload
16:56:04 <Soni> it does have good docs tho
17:09:42 -!- clog has quit (Ping timeout: 268 seconds).
17:22:58 <kspalaiologos> simple yet functional Forth dialect?
17:23:06 <kspalaiologos> with emphasis on ease of parsing
17:23:31 <kspalaiologos> anything will suffice as long as you can perform basic stuff and it's not so hard to parse/implement
17:26:05 <imode> kspalaiologos: forth has "dialects" by way of definitions, not inherent language features. I have a forth-like that compiles to C and also has an interpreter.
17:26:22 <kspalaiologos> how long is the interpreter?
17:26:46 <imode> 369 lines of python.
17:27:13 <imode> the compile-to-C stuff is even shorter, summing at around 100 lines.
17:27:21 <imode> iirc, anyway.
17:27:25 <kmc> Soni: how much of a compiler from a C-lke language can you implement in sed?
17:27:31 <kmc> that'd be fun
17:27:34 <kmc> compiling C with regexes
17:28:55 <imode> scratch that, the compile-to-C stuff is 230 lines, with the preprocessor being 88 lines of python.
17:29:21 <imode> I minimized it earlier.
17:32:23 <imode> kspalaiologos: the underlying language kind of looks and behaves like brainfuck. the interpreter implements 44 instructions, and that includes a semi-janky preprocessor.
17:32:38 <imode> 75% of these instructions aren't really required.
17:32:50 <kspalaiologos> the underlying language kind of looks and behaves like brainfuck - I blindly take it
17:32:59 <kspalaiologos> open source?
17:33:35 <imode> https://repl.it/repls/ImpressiveMagentaDestination
17:33:41 <imode> here's the interpreter.
17:34:50 <imode> https://hatebin.com/manaefqdti here's a prefix expression evaluator.
17:35:07 <imode> complete with variables.
17:35:25 <kspalaiologos> why did you bundle the macro preprocessor in
17:35:34 <imode> convenience.
17:35:42 <kspalaiologos> the language looks way more fun than stinky macros
17:36:16 <imode> mainly because I didn't want to type ,$1,$?]:$~$[. over and over.
17:36:22 <imode> for `else`.
17:36:53 <imode> feel free to remove the macro system.
17:37:00 <imode> it's just an instruction.
17:37:06 <imode> you don't have to use it.
17:39:43 <lf94> ok guys
17:39:50 <lf94> where the frig do I start with language design
17:39:52 <imode> I'm adding concurrency to the language as well kspalaiologos.
17:40:03 <lf94> Should I follow some online course?
17:40:07 <imode> lf94: think about the thing you want to write. figure out how to write it.
17:40:29 <kspalaiologos> lf94, dragon book
17:40:37 <kspalaiologos> look at some simple languages like B
17:40:48 <kspalaiologos> and try writing a lexer, parser and a -O0 codegen for it
17:41:10 <kspalaiologos> you may start out with lex + yacc
17:41:24 <imode> nothing needs to involve those tools.
17:41:29 <kspalaiologos> sure
17:41:33 <lf94> I want to learn proper language design
17:41:33 <kspalaiologos> but it's a good idea to use them
17:41:38 <lf94> Not just off-my-seat stuff
17:41:40 <kspalaiologos> ^ doesn't matter at all
17:41:40 <imode> "proper language design".
17:41:46 <imode> hahaha.
17:41:48 <kspalaiologos> when you write parser by hand
17:41:51 <imode> that's funny.
17:41:53 <kspalaiologos> you are going to do it wrong 100%
17:42:02 <kspalaiologos> just use the ready tools as you start off
17:42:04 <lf94> Why is that kspalaiologos
17:42:08 <kspalaiologos> cus you gonna die with painful death soon
17:42:17 <lf94> I will use lex + yacc if that's what's typically doen.
17:42:18 <kspalaiologos> I speak from my experience
17:42:19 <imode> no, please, write a parser. it's entertaining.
17:42:29 <kspalaiologos> ^ he probably doesnt know all the theory
17:42:33 <lf94> My goal is simple core + type system.
17:42:37 <imode> pardon me fuckboy?
17:42:48 <kspalaiologos> he has no idea how to describe syntax, what is EBNF, what type of parsers there are
17:42:49 <kspalaiologos> I
17:42:54 <kspalaiologos> 'm speaking about lf94, not you
17:43:03 <imode> lmao I'm just kidding.
17:43:19 <lf94> You describe syntax with EBNF dont you?
17:43:27 <kspalaiologos> sure
17:43:29 <imode> you can describe it, yeah.
17:43:35 <lf94> single pass, multi pass, etc parsers
17:43:43 <imode> there's a pretty wide gradient with how complex language syntax can actually be.
17:43:58 <imode> some just require bare tokenization, like forths.
17:44:12 <imode> others are based on involved grammars.
17:44:32 <imode> all parts of the gradient are valid, it just depends on what you value.
17:45:06 <imode> starting in language design usually has someone ask "what do you value in a programming language?"
17:45:35 <imode> so, what do you value, lf94.
17:46:11 <lf94> I value a language which can map to assembly nicely
17:46:30 <lf94> It must have lambdas / anonymous functions
17:46:40 <lf94> It must have first class for list operations
17:46:56 <kspalaiologos> lisp x lambda calculus?
17:47:01 <kspalaiologos> very easy one to lex and parse IMO
17:47:08 <lf94> It must not be garbage collected
17:47:16 <imode> that can be anything from a forth to a C dialect to picolisp.
17:47:34 <lf94> It will be more like APL
17:47:41 <imode> forth-like it is, then.
17:47:43 <kspalaiologos> ah yes
17:47:49 <kspalaiologos> the C dialect
17:48:00 <kspalaiologos> I remember myself writing C89 compiler targeting brainfuck lol
17:48:35 <imode> when designing a language it's important to keep the "semantic gap" in mind.
17:48:53 <imode> i.e how far away on the abstraction hierarchy are you away from the bottom or the top.
17:49:01 <imode> I optimize for a small gap.
17:49:34 <lf94> I want a systems level APL-like language.
17:49:44 <lf94> Also: https://meta.stackexchange.com/questions/25840/can-we-stop-recommending-the-dragon-book-please lol
17:50:06 <imode> so when you're talking about anonymous functions, etc. that's a reasonably high level language feature. but you also want it to map to assembly..
17:50:27 <lf94> I mean it all boils down to assembly anyway, no matter the language.
17:51:01 <imode> I have anonymous functions. but because I value a small semantic gap as well as making multiple language features pull double duty, they're implemented as something more general: concurrently executing processes.
17:51:48 <lf94> list comprehensions I think will be a prime piece of my language
17:51:48 <imode> and because of that small semantic gap, translating that to assembly is pretty trivial, involving minimal boilerplate.
17:51:59 <imode> why do you value list comprehensions.
17:52:13 <lf94> Because they allow you to generate lists in a very precise way.
17:52:21 <imode> wait until you see dictionary comprehensions. :P
17:52:23 <lf94> And all programming is just manipulating lists on some leel.
17:52:33 <lf94> well there are monad comprehensions too.
17:52:36 <lf94> It's all the same shit
17:52:54 <lf94> But imagine...a byte, 0x39, is also just a list.
17:53:07 <imode> any language can have list comprehensions because list comprehensions aren't that 1. complex or 2. valuable in some scenarios.
17:53:21 <lf94> [x & 0x1; x <- 0x39]
17:53:30 <lf94> AND bitwise op on all bits of 0x39
17:55:02 <lf94> It should be a language where everything is a list/string/sequence
17:55:05 <imode> wouldn't... that just be 0x39 & (~0)
17:55:17 <lf94> yes, but in your case, you are specifically working with 8-bit byte
17:55:21 <lf94> now how do you 9 bit? :)
17:55:28 <imode> it's an upcast.
17:55:32 <imode> you change nothing.
17:55:37 <lf94> [x & 0x1; x <- 0b111011101]
17:55:43 <imode> ~0 = 111111.....
17:55:45 <lf94> I just specify 9 bits
17:56:13 <lf94> next
17:56:18 <imode> like I said, try it in C with various types.
17:56:26 <lf94> imode: how do you split 101 out the middle?
17:56:30 <imode> you don't have to change anything. so I don't see your point.
17:56:38 <lf94> 1101 let's say (more unique)
17:56:40 <imode> what do you mean "split 101 out the middle".
17:56:47 <lf94> 111011101
17:56:55 <lf94> X1101XXXX
17:56:57 <lf94> that
17:57:04 <imode> what, you just want that section?
17:57:08 <lf94> yea
17:57:36 <lf94> > upcast
17:57:38 <lambdabot> error:
17:57:38 <lambdabot> • Variable not in scope: upcast
17:57:38 <lambdabot> • Perhaps you meant one of these:
17:57:39 <lf94> > and
17:57:40 <lambdabot> <[Bool] -> Bool>
17:58:02 <imode> (0bX1101XXXX >> 4) results in 0bXXXXX1101.
17:58:12 <lf94> But you cannot do that in C
17:58:19 <imode> uh, yeah. you can.
17:58:23 <lf94> You can specify 9 bits?
17:58:37 <imode> I can't specify 9 bits. but I can use a 16 bit value.
17:58:55 <lf94> Maybe that is better...
17:58:58 <lf94> X)
17:59:25 <imode> like I get it, it'd be interesting if you could work per-bit. but you can easily build this kind of stuff in any given language.
18:00:14 <imode> I can build custom control flow structures for it in mode, for example.
18:00:40 <imode> $1234 for each-bit to-string display repeat
18:01:22 <imode> each-bit extracts a bit. to-string converts that bit to a string. display displays the string.
18:01:30 <imode> the `for` is just aliased to `begin`.
18:02:20 <lf94> How would each-bit work
18:02:33 <lf94> gets an index or somethnig?
18:03:11 <lf94> Man maybe I should just start implementing a lisp
18:03:14 <imode> well, my language is a forth-like, and as such assumes some state that each word (function, if you like) takes as input, changes, and then returns as output.
18:03:37 <lf94> Compiled lisp that targets LLVM IR
18:04:07 <lf94> Then add ad hoc type system
18:04:08 <imode> so if we expect the source number to be on top of the stack/head of the queue, we can say at every iteration, we duplicate it and bitwise AND it with 1.
18:04:22 <imode> until the number is zero.
18:04:33 <lf94> to me type system is so important these days, for anything sane
18:04:42 <lf94> How would mode add a type system?
18:04:55 <imode> how would a forth add a type system?
18:05:11 <imode> there's a lot of ways you can do it. look at Factor for an example. it's statically typed iirc.
18:05:26 <imode> whoops, nope. it has strong dynamic typing.
18:05:34 <imode> https://en.wikipedia.org/wiki/Factor_(programming_language)
18:06:37 <kspalaiologos> ah yes
18:06:47 <kspalaiologos> clicking on stackexchange link showed me that my rep bumped by +200
18:07:23 <kspalaiologos> https://codegolf.stackexchange.com/a/191482/61379
18:07:31 <kspalaiologos> a lot of effort and processing power has been put here lol
18:09:23 <lf94> imode: I've looked at Factor too.
18:09:31 <lf94> Man plang theory is so fucky.
18:09:52 <lf94> "forth is good" "NO FORTH IS BAD" "forth is bad..." "wait, no, this person is convincing me otherwise again"
18:10:52 <b_jonas> oh also,
18:11:21 <b_jonas> UM-32 and GML have a lot of independent implementations, but don't use that as a heuristic for what's going to be useful 50 years from now,
18:11:38 <b_jonas> because most of them have already fallen off the web, and even the ones that haven't have probably bitrotten away
18:11:58 <b_jonas> oh right, postscript
18:12:00 <b_jonas> did we mention postscript?
18:12:09 <b_jonas> that's also a candidate, though not a very good one
18:12:10 <lf94> imode: can forth be compiled
18:12:18 <imode> lf94: sure. mine is.
18:12:24 <imode> directly to C.
18:15:42 <imode> lf94: wanna see the for each-bit thing in action.
18:16:22 <lf94> Not right now :)
18:16:23 <lf94> https://gitweb.factorcode.org/gitweb.cgi?p=factor.git;a=blob;f=extra/spheres/spheres.factor;hb=HEAD
18:16:35 <lf94> This is like some C mix
18:18:17 <imode> https://hatebin.com/agluuirids
18:19:10 <imode> https://repl.it/repls/UnfoldedBaggyPiracy here it is, compiled and run.
18:19:42 <b_jonas> lemon!
18:19:44 <b_jonas> darn it
18:19:49 <b_jonas> I knew I was forgetting to buy something
18:19:53 <b_jonas> I should have bought lemons
18:19:58 <b_jonas> for fresh lemon juice on the fish
18:22:38 <kspalaiologos> did I just get the joke?
18:24:39 <imode> for any iteration, the queue looks like <bit> <source-number>. you can do anything with the bit, including accumulate it, but at the next iteration, we expect the source-number to be at the head of the queue.
18:24:56 <imode> computing the sum of all the bits is pretty easy.
18:26:45 <kspalaiologos> I've got an algorithmic question
18:27:10 <kspalaiologos> i've got given a std::vector of two integers
18:27:22 <kspalaiologos> the integers are aranged in pairs
18:27:32 <imode> std::vector<std::pair<int, int>> ?
18:27:36 <kspalaiologos> yes.
18:27:39 <imode> neat.
18:28:06 <kspalaiologos> now, I have to assign number to these integers, so the ones in pair have unique numbers whether it's possible.
18:28:33 <kspalaiologos> what is the most efficient way of calculating how many ways are there to do that?
18:28:35 <imode> can't seem to parse that, can you rephrase.
18:28:49 <imode> calculating permutations of pairs?
18:28:58 <kspalaiologos> let's do it the other way
18:29:05 <kspalaiologos> let's assume the number is a person
18:29:11 <kspalaiologos> we have a vector of couples
18:29:32 -!- FaeFly has changed nick to FireFly.
18:29:38 <kspalaiologos> now, we have to assign some character trait to each of these
18:29:45 <kspalaiologos> so the ones in couples have different character traits
18:30:06 <kspalaiologos> let's assume all the people are polygamic so one person can have multiple partners
18:30:24 <kspalaiologos> how many ways are there
18:30:46 <kspalaiologos> to assign a different character trait for each person, so the people in couples have different character traits, when possible?
18:31:09 <imode> I don't know what "character traits" are but this is a permutation problem.
18:31:39 <kspalaiologos> it's just a feature of a person
18:32:25 <imode> you're handed a set of pairs. form a set of people from those set of pairs. then calculate all possible pairings of two people.
18:32:53 <imode> n choose k.
18:33:08 <imode> https://stackoverflow.com/questions/18859430/how-do-i-get-the-total-number-of-unique-pairs-of-a-set-in-the-database
18:33:23 <b_jonas> kspalaiologos: character traits? like that crazy template argument to std::string in the C++ standard library?
18:33:23 <kspalaiologos> huh, I don't think this is the case
18:33:33 <kspalaiologos> b_jonas, no lamo
18:33:35 <kspalaiologos> *lmao
18:33:53 <imode> no ordering, no repeats means n choose k.
18:33:56 <kspalaiologos> let's look at this example
18:34:03 <kspalaiologos> assume the following couples
18:34:16 <kspalaiologos> A B, B C, A C, C D
18:34:26 <kspalaiologos> now, if we had three possible character traits for these
18:34:33 <kspalaiologos> there are 12 ways to assign them to these people
18:34:50 <imode> so it's really a triple.
18:35:01 <kspalaiologos> we can also have ten character traits
18:35:04 <kspalaiologos> or twelve
18:35:11 <b_jonas> also I should have fried the fish on a higher temperature
18:35:12 <imode> but it's a triple. where the third element is a list.
18:35:51 <kspalaiologos> now I don't really understand
18:36:00 <imode> n!/k!(n - k)!
18:36:11 <imode> but segmented. kind of.
18:36:20 <kspalaiologos> in which way segmented?
18:36:32 <kspalaiologos> can you point me to a formula that can calculate the result of example I've given?
18:36:38 <imode> you want all possible triples of (X, Y, Z).
18:36:40 <kspalaiologos> I'll figure out reest myself
18:36:50 <imode> X and Y are a couple, Z is a character trait.
18:36:59 <kspalaiologos> each of these has a character trait
18:37:00 -!- kritixil1thos has quit (Ping timeout: 260 seconds).
18:37:09 <kspalaiologos> and if there is a couple, its best when they have different traits
18:37:12 <imode> you are underspecifying your problem.
18:37:19 <imode> explain it in clear language.
18:37:20 <kspalaiologos> I have specified it before
18:37:32 <kspalaiologos> alright, again
18:37:43 <kspalaiologos> I've got a set of pairs
18:38:00 <kspalaiologos> I have to assign a number to each element of every single pair
18:38:20 <kspalaiologos> i have to calculate, how many ways are there, to assign them
18:38:26 <kspalaiologos> with a few gotchas
18:38:49 <imode> do you want duplicates.
18:38:56 <kspalaiologos> a) in a pair, it would be the best, if every element has different number
18:39:01 <kspalaiologos> b) pairs don't repeat
18:39:31 <kspalaiologos> c) there is actually given upper limit for a number to assign
18:39:42 <kspalaiologos> (with a set of pairs, obviously)
18:39:55 <kspalaiologos> let's review these pairs
18:39:59 <kspalaiologos> A and B is the first pair
18:40:04 <kspalaiologos> B and C is the second pair
18:40:09 <kspalaiologos> A and C is the third pair
18:40:09 <imode> so the possible combinations of n items arranged into k sets is n!/(k! * (n - k)!)
18:40:40 <imode> 10 items arranged into pairs is 10!/(2! * (10 - 2)!)
18:40:43 <kspalaiologos> ^ are you following the rule that items in a pair should get different numbers assigned?
18:40:52 <kspalaiologos> also, you're given the number of pairs
18:40:54 <imode> I'm just presenting n choose k.
18:41:08 <kspalaiologos> you just need to calculate how many ways are there to assign number to each element of pair
18:41:33 <imode> here's a better question: where did this come from.
18:41:43 <imode> is this some kind of programming challenge.
18:41:59 <imode> it sounds almost like a math puzzle.
18:42:05 <kspalaiologos> not a programming challenge per se, I just need to get better algorithm on my hands
18:42:05 <imode> for undergrads.
18:42:12 <kspalaiologos> because the one I've got isn't quite right
18:42:19 <kspalaiologos> and takes way too long to execute
18:42:34 <imode> well whatever it is it's not so much an algorithm moreso an expression of the variables that make up your problem..
18:43:12 <imode> so each pair has two people in it, and each person gets assigned a number, but the numbers have to be different.
18:43:24 <imode> both within the pair and outside the pair.
18:43:47 <imode> so A = 1 and B = 2 holds regardless of who A and B pair up with, right.
18:44:29 <imode> in which case you still have n-choose-k because A and B can just be labeled with unique numbers. changing the names of the items of each pair doesn't change the problem.
18:44:53 <kspalaiologos> so how do I use this in my algorithm, because I'm pretty much lost now
18:45:42 <kspalaiologos> four given pairs, AB BC AD CD, and I may assign to every leter a number from 1 to 3
18:45:51 <Soni> kmc: as long as you limit yourself to ASCII x86 instructions, sure why not
18:46:05 <kspalaiologos> how do I calculate how many ways are there to do that, given that people in pairs need to have different numbers
18:46:09 <imode> count the number of unique people in your vector of pairs (add them to a set and compute the count of elements in the set), then feed that into count!/(2! * (count - 2)!)
18:46:21 <imode> where ! is factorial.
18:46:21 <Soni> ever heard of a certain "executable paper"?
18:46:28 <kspalaiologos> alright
18:46:30 <esowiki> [[THCA]] N https://esolangs.org/w/index.php?oldid=66910 * Moon * (+421) Begin page. Need to build a few templates
18:47:58 <imode> it may be different but that's at least a starting point.
18:48:16 <kspalaiologos> I'll think about it
18:48:32 <imode> because I'm still unsure as to the results you want.
18:48:39 -!- FreeFull has joined.
18:49:47 <imode> given AB,BC,AD,CD, assign a number to each letter such that, when each letter is substituted for its number, the pair is unique (i.e no pairs like (1, 1)).
18:49:53 <imode> is this closer to the thing you want.
18:50:00 <kspalaiologos> yeah
18:50:12 <kspalaiologos> and I need to calculate amount of ways a number can be assigned to them
18:50:17 <imode> alright, then what I gave you doesn't work.
18:50:38 <kspalaiologos> and the maximum number to assign is given
18:50:57 <imode> so you have your set of labels, the set 1 to N, where N is your given.
18:51:03 <imode> and you have your set of pairs.
18:51:18 <kspalaiologos> yes
18:51:39 <imode> can two letters have the same number but be in different pairs.
18:52:21 <kspalaiologos> e.g. pairs: AB CD, then yes, A=C=1 B=D=2 is a valid solution
18:52:40 <imode> that complicates things a bit.
18:53:02 <esowiki> [[Template:TernTrue]] N https://esolangs.org/w/index.php?oldid=66911 * Moon * (+162) Ternary True
18:54:34 <esowiki> [[Template:TernUnkwn]] N https://esolangs.org/w/index.php?oldid=66912 * Moon * (+165) Ternary Unknown
18:54:44 <imode> the stupidest thing that could possibly work is brute force search.
18:54:53 <imode> have you tried that.
18:54:57 <kspalaiologos> yes
18:55:04 <kspalaiologos> unsatisfying results
18:55:04 <imode> can I see some code.
18:55:17 <esowiki> [[Template:TernFalse]] N https://esolangs.org/w/index.php?oldid=66913 * Moon * (+162) Ternary False
18:55:24 <kspalaiologos> I'll send you over when I get to the PC I've been using
18:55:32 <imode> sure.
18:55:41 <shachaf> lf94: What sort of opinion do you want?
18:55:42 <imode> this problem has more than likely been solved somewhere before.
18:56:16 <lf94> shachaf: Do you think Zig is a viable long term lang?
18:56:28 <kspalaiologos> ^ heard about it
18:56:36 <imode> no.
18:56:39 <kspalaiologos> yet can't help, I don't know zig
18:57:05 <shachaf> I think Zig is going in a promising direction? I like a lot of the things they're doing.
18:57:10 <imode> universal long-standing concepts need to be simple enough and popular enough to withstand erosion by time.
18:57:23 <imode> zig has none of those characteristics. but it is nice.
18:57:58 <shachaf> I don't know what the question means. Certainly Zig is (rightly) pretty volatile right now.
18:59:54 <kspalaiologos> imode, any ideas?
19:00:05 <kspalaiologos> if none, I'll just settle on my bruteforce probably
19:00:09 -!- kritixil1thos has joined.
19:00:32 <imode> kspalaiologos: let me get back to you on that.
19:01:01 <kspalaiologos> yeah, sure
19:01:56 <imode> I'm sure this problem has a name somewhere.
19:02:12 <imode> wait.
19:02:17 <imode> isn't it just graph coloring.
19:02:40 <kspalaiologos> it could be
19:02:42 <imode> https://en.wikipedia.org/wiki/Graph_coloring
19:02:50 <kspalaiologos> yeah lol
19:02:52 <kspalaiologos> thats it
19:02:54 <imode> draw out the pairs as a graph, change the numbers to colors.
19:03:07 <imode> thank god for doodle paper.
19:03:49 <imode> well there you are. you're looking for the possible colorings of a graph.
19:03:56 <kspalaiologos> doodle paper?
19:04:00 <kspalaiologos> what's this
19:04:06 <imode> yeah I have a notepad that I just sketched your problem out on.
19:04:59 -!- clog has joined.
19:06:26 <esowiki> [[Template:Tern2InLogicTable]] N https://esolangs.org/w/index.php?oldid=66914 * Moon * (+376) 2 Input Logic Table
19:10:19 <esowiki> [[THCA]] https://esolangs.org/w/index.php?diff=66915&oldid=66910 * Moon * (+177) AND table.
19:13:42 <kspalaiologos> so I need to calculate chromatic polynomial.
19:13:51 <kspalaiologos> I shouldn't have slept at math lessons
19:16:48 <esowiki> [[THCA]] https://esolangs.org/w/index.php?diff=66916&oldid=66915 * Moon * (+9)
19:19:27 -!- oerjan has joined.
19:28:40 -!- MDude has quit (Quit: Going offline, see ya! (www.adiirc.com)).
19:30:08 <esowiki> [[THCA]] https://esolangs.org/w/index.php?diff=66917&oldid=66916 * Moon * (+21)
19:33:03 -!- imode has quit (Ping timeout: 264 seconds).
20:07:45 -!- kspalaiologos has quit (Quit: Leaving).
20:12:19 -!- kritixil1thos has quit (Quit: leaving).
20:18:00 <oerjan> <lf94> It must have lambdas / anonymous functions <lf94> It must not be garbage collected <-- i have the impression combining those two features is particularly hard
20:19:06 <oerjan> because once anonymous functions are first class, deciding life time becomes undecidable without GC
20:23:05 <b_jonas> oerjan: deciding the lifetime is undecidable period. garbage collector is just the generally accepted good approximation that we accept, in taht you have to write your program such that it doesn't take consume much memory if you keep everything that a mark-and-sweep garbage collector couldn't prove unused
20:24:10 <arseniiv> what strategy C++ uses to work with lambdas’ lifetimes?
20:24:16 <b_jonas> so now if you write programs in certain ways, you have to explicitly mark some references as weak or as weak-keyed for the gc to be able to free stuff up
20:25:18 -!- Phantom_Hoover has joined.
20:28:52 <int-e> oerjan: GC is totally optional, you can run out of memory instead.
20:29:27 <b_jonas> or require more help from the program than you need with a GC
20:29:29 <oerjan> thanks nitpickers
20:29:50 <oerjan> you're not wrong
20:31:15 <oerjan> but anyway, i think my point was that without GC it's going to need a far more technical solution to even get close, which lf94 probably doesn't want to implement
20:31:30 <lf94> maybe lambdas are a mistake
20:31:32 <lf94> :v
20:31:50 <arseniiv> lambdas are good
20:33:50 <lf94> named lambdas are just functions :v
20:35:48 <arseniiv> sure, scoped function definitions and first-class functions are not much worse
20:42:06 <oerjan> (and still need GC)
20:44:04 <arseniiv> how does C++ treat closures’ lifetime?
20:45:12 <arseniiv> as it doesn’t have a default GC, does it try something else to leak memory in these cases less?
20:45:26 <shachaf> Why would it leak memory?
20:46:06 <shachaf> C++ lambdas are just a function together with an autogenerated struct.
20:46:22 <shachaf> The struct can either have copies of things you capture or pointers to them.
20:48:18 <arseniiv> hm maybe I ask not what I mean to ask
20:49:03 <shachaf> ask not what you mean to ask, but what your ask means
20:49:09 <arseniiv> let’s say, are lambdas in general different?
20:49:27 <arseniiv> from the kind one has in C++
20:51:47 <arseniiv> s/lambdas/closures
20:52:26 <arseniiv> hm I should logread that tomorrow
20:55:44 <kmc> 13:28 < int-e> oerjan: GC is totally optional, you can run out of memory instead.
20:55:47 <kmc> https://groups.google.com/forum/message/raw?msg=comp.lang.ada/E9bNCvDQ12k/1tezW24ZxdAJ
20:56:37 <kmc> arseniiv: at a broad conceptual level C++ lambdas (and Rust lambdas, which are very similar) are like lambdas in other languages
20:56:42 <kmc> they can be called, they have captures
20:57:00 <kmc> since these are languages with explicit memory management, things can be captured by value or by mutable or immutable reference
20:57:14 <kmc> (by value meaning by move or copy, depending)
20:57:40 <kmc> in Rust the lifetime of reference captures is checked by the compiler. so you cannot return a closure which refers to something on the stack of the function which made it
20:57:57 <kmc> in C++ of course there is no such checking and that would be undefined behavior (perhaps the compiler can warn in some simple cases, but it's not guaranteed)
20:58:10 <kmc> the unusual thing about lambdas in these languages is that they use static dispatch by default
20:58:25 <kmc> a function that takes a closure will have a generic/templated type
20:58:44 <kmc> template <typename T> void use_closure(T closure) { ... closure(); ... }
20:59:05 <kmc> when you call use_closure([]() { ... })
20:59:46 <kmc> it makes a struct type for the lambda, containing its captures (nothing in this case), implements operator() for that type, and instantiates the templated use_closure() at that type T
21:00:21 <kmc> that struct type cannot be named, which is why 'auto' is not only a convenience in C++ but is essential
21:00:41 <kmc> there are no function pointers involved in calling a lambda this way, and the lambda body can be inlined into the function it's passed to, and all sorts of optimizations performed
21:01:05 <kmc> and that's why you can make a chain of higher order functions like map, filter, etc. and it compiles down to a flat loop (if the compiler is smart enough)
21:01:08 <kmc> very cool
21:01:20 <kmc> in Rust you'd do fn use_closure<T: Fn()>(closure: T)
21:01:33 <kmc> which is basically the same except that Rust has a trait system so you can say that the type T must be a function taking and returning nothing
21:01:39 <kmc> you could also have Fn(int) -> char
21:01:51 <kmc> now there is another tricky thing
21:02:07 <b_jonas> kmc: right. and the drawback is that, unless you write the both standard library and the compiler in tricky ways to optimize this, you'll end up with twenty copies of the red-black-tree rebalancing function compiled into your binary
21:02:15 <b_jonas> and ten copies of a mergesort
21:02:27 <kmc> when the closure is created, you can move non-copyable types into the closure
21:02:33 <kmc> but when it's called, can you move them *out*?
21:02:38 <kmc> this is why Rust has Fn, FnMut, and FnOnce
21:02:48 <kmc> when called they take &self, &mut self, and self, respectively
21:03:02 <kmc> so FnOnce can move out of its captures (and therefore such a closure can only be called once)
21:03:17 <kmc> FnMut can mutate its captures, Fn can only read them
21:03:30 <kmc> C++ has a similar thing but it's too arcane for me to remember
21:03:43 <kmc> now this is all well and good but sometimes you *want* dynamic dispatch
21:04:01 <kmc> fortunately this can be done using each language's respective dynamic dispatch features without anything particularly special to functions
21:04:43 <kmc> in C++ every lambda's type is a subclass of std::function so you can upcast &my_unnameable_lambda_type to &std::function<whatever> and pass that pointer around
21:04:50 <kmc> in that case operator() is a virtual call
21:05:03 <arseniiv> <kmc> C++ has a similar thing but it's too arcane for me to remember => yeah I heard something about lambdas which could only read their arguments in C++
21:05:03 <b_jonas> kmc: no, that's not how std::function works I think
21:05:04 <kmc> in Rust you use the "trait object" feature which, again, creates a vtable
21:05:11 <b_jonas> in C++
21:05:11 <kmc> b_jonas: isn't it?
21:05:20 <b_jonas> well, I'm not really sure
21:05:26 <b_jonas> because I don't use std::function in C++
21:05:33 <kmc> okay
21:05:37 <kmc> so why did you say that
21:05:49 <shachaf> Converting to std::function does a heap allocation, right?
21:06:00 <kmc> shachaf: I think so, yes
21:06:08 <kmc> but you can also use it by reference without that?
21:06:12 <kmc> i'm not totally sure
21:06:15 <kmc> I may be wrong with what I said above
21:06:20 <shachaf> Man, all this C++ nonsense is nonsense.
21:06:31 <kmc> in Rust you can make heap-allocated trait objects as well as by-reference ones
21:06:39 <shachaf> also what's the benefit of writing map and filter instead of for and if
21:06:44 <b_jonas> shachaf: no, not necessarily, in modern libstdc++ it has like one or two pointer of space reserved in the std::function itself, and if the function object fits there then it won't allocate
21:06:48 <kmc> Box<dyn MyTrait> vs &dyn MyTrait
21:06:50 <b_jonas> like how std::string is implemented these days
21:06:53 <kmc> b_jonas: yeah
21:07:08 <b_jonas> but without where std::string is now no longer trivially swappable
21:07:17 <kmc> Box is like C++'s std::unique_ptr so it has automatic, deterministic deallocation but can't be copies
21:07:29 <b_jonas> without the drawback where std::string is no longer trivially swappable or trivially move-assignable
21:07:43 <b_jonas> it has to check if it has to rewrite a pointer that points inside itself
21:07:47 <kmc> Rust also has refcounted types, the cool thing there is that there are both thread-local and multithreaded versions, the former is faster, and the compiler will error if you try to share them between threads
21:07:51 <kmc> so that's pretty neat
21:08:05 <kmc> whee
21:08:09 <kmc> infodump
21:08:18 -!- myndzi has joined.
21:08:23 <kmc> shachaf: if you want a real puzzle try making an exception-safe variants library in C++ without heap allocation
21:08:31 <b_jonas> kmc: and they both work with heap-allocated arrays, with the help of some cleverly hidden magic
21:08:31 <shachaf> exceptions are scow
21:08:41 <b_jonas> dynamic length arrays that is
21:08:46 <shachaf> -fno-exceptions
21:09:24 <b_jonas> oh, I had a weird dream by the way
21:10:08 <shachaf> What are variants, and what's a variants library?
21:10:20 <b_jonas> I dreamed that I found a case where using exception throwing and catching is actually useful, not because I have to interface with a preexisting library whose interface involves exceptions, but because that's intrinsically what the control flow was like
21:10:24 <kmc> shachaf: sum types
21:10:25 <b_jonas> shachaf: tagged unions
21:10:34 <b_jonas> yeah, sum types
21:10:39 <shachaf> Why would that need heap allocation?
21:10:55 <shachaf> It's just some data.
21:11:32 <b_jonas> kmc: can you take the C++ standard library route where if an exception is thrown then the variant can end up empty even if an empty branch isn't declared, or do you want a variant that does double-buffering?
21:11:42 <kmc> b_jonas: that's one issue yes
21:11:50 <b_jonas> kmc: and how exception safe do you want? can move assignment or swapping throw too?
21:11:59 <kmc> shachaf: for one thing there is trickery when you change the type and the constructor of the new type throws
21:12:02 <kmc> i don't know
21:12:10 <kmc> chris was explaining why it's so tricky and he convinced me at the time, but i forgot the details
21:12:13 <kmc> anyway, bbl
21:12:15 <kmc> <3
21:12:16 <shachaf> this is why i use c
21:12:23 <b_jonas> see you kmc
21:12:55 <shachaf> all the c++ trickery is a self-made problem
21:13:03 <shachaf> you gotta sfinae the recursive templates
21:13:48 <b_jonas> shachaf: can you do that in constexpr land yet?
21:17:26 <b_jonas> shachaf: anyway, C++ used to be hard, but it's almost solved now. we just need these few more language extensions into the standard and then it will be a very easy to program and versatile language where you can just write programs naturally
21:17:48 <olsner> :D
21:17:57 <shachaf> Whew!
21:18:05 <olsner> the essence of c++ is something like creating worse problems so you can pat yourself on the back for coming up with more complicated solutions
21:18:52 <b_jonas> olsner: oh, as in "I know, I'll just use C++! Now he has two problems."
21:19:13 <int-e> . o O ( plus 1 for every language revision )
21:34:17 <arseniiv> lol
21:42:55 -!- imode has joined.
21:45:15 * oerjan spots a myndzi
21:45:31 <oerjan> `? myndzi
21:45:32 <HackEso> myndzi used to keep us all on our feet.
21:45:37 <oerjan> ^celebrate
21:45:37 <fungot> \o| c.c \o/ ಠ_ಠ \m/ \m/ \o_ c.c _o/ \m/ \m/ ಠ_ಠ \o/ c.c |o/
21:45:47 <oerjan> looks a bit defunct, though
21:58:30 <int-e> hmm, which bot went with that
21:58:50 <int-e> oh
22:03:36 <b_jonas> \o/ _o_
22:06:50 -!- Phantom_Hoover has quit (Ping timeout: 276 seconds).
22:08:05 <imode> a thought just occurred to me.
22:09:28 <imode> to do iteration through something, all you have to do is 1. spawn a process and send your ID to it. 2. send your collection to the process. 3. drop the handle to the process. 4. `receive` in a loop.
22:09:52 <imode> the generating process can send you data, but you can't send data to it.
22:10:00 <imode> but you don't need to.
22:10:11 <imode> interesting.
22:47:50 <shachaf> `pbflist
22:47:51 <HackEso> pbflist: shachaf Sgeo quintopia ion b_jonas Cale kmc
22:48:34 <kmc> lol
23:11:35 <b_jonas> shachaf: please use an url with pbflist, because afterwards it's hard to tell which strip came out when and so hard to tell whether a strip has been listed yet
23:11:45 <b_jonas> right now you probably mean https://pbfcomics.com/comics/the-treat/
23:17:57 <imode> in fact... you could probably define a `bitvector` word that takes a number and, upon request, sends you back the next bit in the number...
23:18:50 <shachaf> I'd rather not, but I can refrain from pbflisting at all
23:46:07 <oerjan> eep, sub-zero forecast
23:46:28 <shachaf> @metar KOAK
23:46:28 <lambdabot> KOAK 012253Z 30008KT 10SM CLR 22/M01 A3010 RMK AO2 SLP194 T02171011
23:52:25 <int-e> . o O ( sub zero is a no-op )
23:54:44 -!- b_jonas has quit (Remote host closed the connection).
2019-11-02
00:23:07 <shachaf> Are pointers signed or unsigned?
00:23:42 <olsner> they could be
00:24:42 <shachaf> How should I think of them?
00:24:50 <olsner> what does it actually mean though? when do you have sign/zero-extension of pointers where you could tell the difference?
00:26:00 <olsner> I do like to think that x86-64 has signed pointers the way they're usually used (with kernel space in negative addresses)
00:29:43 <shachaf> Right, that's the sort of thing I was thinking.
00:29:49 <shachaf> Maybe it makes no difference.
00:30:27 -!- imode has quit (Ping timeout: 265 seconds).
00:32:20 <oerjan> . o O ( the difference is negative )
00:33:10 <int-e> shachaf: signs are pointers, so pointers should be signed, is that what you mean?
00:33:42 <shachaf> Exactly.
00:33:52 <shachaf> But then what are cosigns?
00:34:26 <int-e> They are orthogonal to signs.
00:34:56 <shachaf> 17:76 06 jbe 1f <foo+0x1f>
00:34:59 <shachaf> So confusil.
00:35:26 <shachaf> I just learned about gas "1f" label syntax a few days ago, and I kept thinking it was a 0x1f offset.
00:35:34 <shachaf> This time it actually is a 0x1f offset!
00:35:43 <int-e> :)
00:36:17 <shachaf> (To be fair, this is objdump output, so it wouldn't use the 1f syntax.)
00:37:18 <int-e> To this day I find it confusing that the offset of relative jumps is relative to the address following the current instruction.
00:37:37 <int-e> 0x19 + 0x06 = 0x1f
00:37:55 <shachaf> Yes.
00:38:20 <shachaf> In particular I was trying to figure out a jump target in gdb a few days and I computed it relative to $rip without thinking.
00:38:42 <shachaf> No, not a jump target, rip-relative addressing.
00:39:01 <int-e> It makes sense, of course (the instruction has been decoded, and correspondingly, the IP advanced, when the jump happens)
00:39:27 <int-e> (thinking in terms of *very* old processors like 8086)
00:40:29 <shachaf> Sure.
00:41:54 <shachaf> Is rip-relative addressing the same way? I guess it must be but I've already forgotten.
00:42:33 <int-e> yes it is.
00:43:02 <shachaf> Yep, I just checked.
00:43:23 <shachaf> I should know this since I implemented most of the addressing modes recently.
00:43:54 <shachaf> Though not some of the weird ones like 64-bit (%eax).
00:43:57 <shachaf> Does anyone use that?
00:44:20 <int-e> Actually I think so.
00:44:29 <shachaf> `asm addr32; mov (%rax),%rdi
00:44:30 <HackEso> 0: 67 48 8b 38 mov (%eax),%rdi
00:44:45 -!- imode has joined.
00:44:58 <int-e> Having 32bit pointers is still attractive to conserve memory.
00:45:23 <shachaf> But you can use them with 64-bit registers, can't you?
00:45:43 <int-e> Yes.
00:45:44 <olsner> since you get zero-extension for most operations, you can usually just use %rax with a 32-bit address and save a byte
00:45:51 <shachaf> At least if you write something like mov foo, %eax; mov (%rax), bar
00:46:24 <shachaf> I wonder, is %eax sign-extended when you use (%eax)?
00:46:27 <shachaf> I imagine not.
00:46:45 <int-e> But I can make up reasons... getting proper overflow behavior for (%eax + 4*%esi + 0xbase)....
00:47:17 <olsner> but what would use something like that in 64-bit code?
00:47:55 <shachaf> When do you want overflow behavior for addresses?
00:48:07 <int-e> olsner: I *would* hope that this is a purely theoretical reason :)
00:48:17 <olsner> but an interesting side-effect if the address size affects all of the address calculation or just the size of the input registers
00:49:15 <int-e> Clearly I expect that it affects the whole computation.
00:49:28 <shachaf> `asm mov (%eax,%edx), %edi
00:49:29 <HackEso> 0: 67 8b 3c 10 mov (%eax,%edx,1),%edi
00:49:36 <shachaf> `asm mov (%rax,%edx), %edi
00:49:37 <HackEso> ​/tmp/asm.s: Assembler messages: \ /tmp/asm.s:1: Error: `(%rax,%edx)' is not a valid base/index expression \ /tmp/asm.s: Assembler messages: \ /tmp/asm.s:1: Error: missing ')' \ /tmp/asm.s:1: Error: junk `)' after expression
00:49:50 <shachaf> `asm addr32; mov (%rax,%rdx), %edi
00:49:51 <HackEso> 0: 67 8b 3c 10 mov (%eax,%edx,1),%edi
00:50:23 <shachaf> `asm addr32; gs; mov (%rax,%rdx), %edi
00:50:24 <HackEso> 0: 67 65 8b 3c 10 mov %gs:(%eax,%edx,1),%edi
00:50:25 <shachaf> `asm gs; addr32; mov (%rax,%rdx), %edi
00:50:26 <HackEso> 0: 65 67 8b 3c 10 mov %gs:(%eax,%edx,1),%edi
00:50:35 <shachaf> Just write the prefixes in any order you like. So convenient.
00:50:50 <shachaf> `asm data16; mov (%rax,%rdx), %edi
00:50:51 <HackEso> 0: 66 8b 3c 10 mov (%rax,%rdx,1),%di
00:51:05 <shachaf> Golly.
00:51:30 <shachaf> `asm movq (%rax), %xmm0
00:51:31 <HackEso> 0: f3 0f 7e 00 movq (%rax),%xmm0
00:51:36 <shachaf> `asm movq (%eax), %xmm0
00:51:37 <HackEso> 0: 67 f3 0f 7e 00 movq (%eax),%xmm0
00:53:11 <int-e> oh right, that was the gas syntax for these funny addressing modes
00:53:38 <int-e> offset(%base,%index,multiplier)
00:54:36 <olsner> possible dumb reason: someone planned/built a 32-bit x86 emulator (before compatibility mode was invented?) and convinced AMD to provide support for extra-stupid JIT compilers that just add prefixes to specific instructions
00:55:35 <int-e> olsner: sorry, I lost track... reason for what?
00:55:42 <olsner> for having the 32-bit override
00:55:57 <int-e> ah.
00:56:11 <int-e> plausible enough
00:57:11 <int-e> I also bet this was rather cheap to support.
00:58:16 <int-e> In context... which is a CPU that supports real mode (which has 32 bit addressing mode via the address size prefix) and 32 bit mode support for legacy software.
01:01:07 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=66918&oldid=66897 * DmilkaSTD * (+179) /* Introductions */
01:02:08 <esowiki> [[Esomachine]] N https://esolangs.org/w/index.php?oldid=66919 * DmilkaSTD * (+3608) Created page with "Esomachine was made by [https://esolangs.org/wiki/User:DmilkaSTD DmilkaSTD]. Imagine we have an array with infinite length. When it starts every array index is locked (If an..."
01:09:19 <oerjan> congratulations, schlock. you might get to save the galaxy single-handed...
01:17:38 -!- arseniiv has quit (Ping timeout: 246 seconds).
01:24:17 -!- oerjan has quit (Quit: Nite).
01:25:33 -!- imode has quit (Ping timeout: 265 seconds).
01:27:05 -!- imode has joined.
01:29:53 <shachaf> What other bizarro addressing modes are there in amd64?
01:30:21 <shachaf> Also did I link this tcc SSE bug I found? https://lists.nongnu.org/archive/html/tinycc-devel/2019-10/msg00033.html
01:30:29 <shachaf> It was somewhat annoying to track down.
02:08:38 <kmc> what bizarro mode are you talking about
02:08:58 <kmc> the base + mult*index + offset mode is pretty reasonable, aside from the gas syntax for it
02:09:44 <kmc> with Intel syntax it'd be like MOV EDI, DWORD PTR [4*EAX + EDX + 7]
02:09:52 <kmc> or what have you
02:09:53 <shachaf> Sure, but you have addr32, fs/gs, rip-relative, all sorts of things.
02:10:50 <shachaf> Presumably there are some things I don't know about.
02:11:09 <shachaf> Also there are all the little details, which I think I got right?
02:11:36 <shachaf> `asm lea (%r11), %rax
02:11:37 <HackEso> 0: 49 8d 03 lea (%r11),%rax
02:11:38 <shachaf> `asm lea (%r12), %rax
02:11:39 <HackEso> 0: 49 8d 04 24 lea (%r12),%rax
02:11:57 -!- imode has quit (Ping timeout: 265 seconds).
02:12:03 <shachaf> gotta include that sib byte for r12
02:12:46 <shachaf> Of course I haven't done SSE/AVX/whatever at all, or the VEX prefix, or anything like that.
02:14:25 <kmc> so much nonsense
02:15:02 <shachaf> what instruction encoding are you into
02:15:55 <fizzie> It doesn't even have a bit-reversed addressing mode.
02:16:30 <shachaf> What's that?
02:16:40 <fizzie> It's a thing DSPs have, for speeding up FFTs.
02:16:59 <fizzie> The TI TMS320C54x at least has it.
02:17:00 <shachaf> `asm lea (%r13), %rax
02:17:01 <HackEso> 0: 49 8d 45 00 lea 0x0(%r13),%rax
02:17:10 <shachaf> Right, r13 has a special case too.
02:17:21 <kmc> oh?
02:17:35 <shachaf> But I think that one is modrm+offset rather than modrm+SIB.
02:17:44 <shachaf> fizzie: That sounds pretty fancy. I should learn about fancy DSP things.
02:17:59 <fizzie> They also have circular addressing modes.
02:18:06 <fizzie> For FIR filters and suchlike.
02:18:47 <shachaf> Speaking of circles, what's the nicest way to write a circular buffer?
02:18:56 <shachaf> I don't like having a boolean to distinguish empty from full.
02:19:30 <fizzie> You can go with head + length instead of head + tail.
02:19:43 <fizzie> Then you have 0 and N for empty and full.
02:20:14 <shachaf> Hmm, I guess.
02:20:23 <fizzie> There's also that one fancy thing that I think Chrome used somewhere, or someone used somewhere.
02:20:25 <shachaf> What about the case where you have a separate reader and writer?
02:20:33 <shachaf> I know of some other tricks:
02:20:48 <shachaf> Map two copies of the same buffer in adjacent address space, so you get a contiguous buffer.
02:20:52 <fizzie> The Bip-Buffer, that's what I was thinking of.
02:21:01 <fizzie> The Bip-Buffer doesn't need the mapping trick.
02:21:29 <fizzie> (On the other hand, it may waste some space.)
02:22:30 <shachaf> Another trick I heard about is, instead of keeping the read/written size mod the buffer size, keep the total size, and mask it at use time.
02:22:40 <kmc> bip booper
02:24:47 <fizzie> I can't find any reference to anyone actually using the bip-buffer, just a few random implementations, so maybe I imagined that.
02:25:06 <shachaf> I'm reading about it now.
02:25:08 <fizzie> spsc-bip-buffer is "#108 in Concurrency" on lib.rs, which sounds like a TripAdvisor ranking.
02:26:44 <shachaf> This explanation doesn't seem very clear.
02:28:28 <shachaf> What's the benefit of this?
02:28:49 <kmc> what is lib.rs
02:28:59 <shachaf> Is it that writes are always contiguous (but reads might not be)?
02:32:14 -!- imode has joined.
02:42:13 <fizzie> AIUI, the reads are contiguous too.
02:43:39 <shachaf> Maybe I don't understand the diagram in https://www.codeproject.com/Articles/3479/The-Bip-Buffer-The-Circular-Buffer-with-a-Twist
02:44:06 <shachaf> What happens in 5? From their description it looks like both A and B contain data.
02:44:35 <fizzie> Right, reads of multiple writes are not necessarily contiguous.
02:45:01 <fizzie> Maybe.
02:45:13 <shachaf> Hmm.
02:45:31 <shachaf> I guess the idea is that a library might want to write a fixed-size thing and you want to make sure to be able to fit it in the buffer?
02:45:44 <shachaf> And another library can also interpret that fixed-size thing since it's contiguous.
02:46:33 <shachaf> (Or, y'know, non-fixed-size.)
02:46:37 <fizzie> Or, no, maybe reads of any size can be contiguous too, it's just that in stage 5 if you wanted to read more than the orange bit some copying would be involved.
02:46:51 <fizzie> ...or maybe not.
02:47:31 <shachaf> As in copying all the data in the buffer?
02:47:37 <fizzie> Yeah, I was looking at the API, for reading you just ask the thing for the largest contiguous block.
02:47:38 <shachaf> Regular circular buffers have this property too.
02:47:44 <shachaf> Which API?
02:48:05 <fizzie> Well, the BipBuffer class described there.
02:48:20 <fizzie> But I guess it's still useful, if you (say) put length-delimited protos there.
02:48:29 <shachaf> Oh, the one on that page.
02:48:51 <shachaf> I guess that's true?
02:48:56 <fizzie> As long as you write the thing into one contiguous (reserved) block, the reading side can also read it as one contiguous block.
02:49:09 <shachaf> Right.
02:49:24 <shachaf> Maybe it would be better for APIs to support reading and writing in multiple chunks.
02:49:45 <fizzie> Maybe.
02:49:45 <shachaf> I guess there's some concern that the API will want to keep an internal buffer and do some copying in order to support that.
02:50:28 <shachaf> I think the mmap solution is better if you want things to be contiguous.
03:04:50 -!- imode has quit (Ping timeout: 240 seconds).
03:22:28 -!- imode has joined.
03:28:46 <int-e> @metar lowi
03:28:47 <lambdabot> LOWI 020320Z AUTO 27011KT 9000 FEW001 BKN002 08/07 Q1006
03:31:23 <shachaf> @metar koak
03:31:23 <lambdabot> KOAK 020253Z 00000KT 10SM CLR 13/01 A3011 RMK AO2 SLP194 T01330011 53004
04:17:47 <imode> @metar ksea
04:17:47 <lambdabot> KSEA 020353Z 01013KT 10SM SCT200 09/03 A3037 RMK AO2 SLP293 T00890033
04:27:11 -!- hppavilion[1] has joined.
04:32:45 <imode> using the thought I had earlier, you can build interesting data pipelines.
04:33:14 <imode> sum $1234 bitvector
04:33:45 <imode> or sum bitvector $1234 number
04:34:30 <imode> because you push a handle to the concurrent process to the queue, any further processes can be constructed, passed that handle, and form a linear dataflow graph.
04:35:45 <imode> a bidirectional one as well. `number` takes a number and a process to send that value to. `bitvector` takes a process, receives a number and sends the bits of that number to the taken process. `sum` takes a process, receives a number and keeps a running tally of that number which is available on request.
04:35:55 <imode> you can do lazy evaluation with that.
04:37:04 <imode> you can design a process that takes two handles, receives something and broadcasts it to the two processes it has handles to.
05:01:36 <imode> https://hatebin.com/shiyqdhisf not bad.
05:04:17 <imode> bitvector's logic is wrong, it should send zero on completion.
05:07:42 <imode> https://hatebin.com/lriwwfiijo that's better.
05:09:16 <imode> I feel like you can get pretty granular with this.
05:48:54 -!- ArthurStrong has quit (Quit: leaving).
05:59:23 -!- imode has quit (Ping timeout: 276 seconds).
06:00:46 -!- tromp_ has joined.
06:03:14 -!- tromp has quit (Ping timeout: 246 seconds).
06:09:26 -!- imode has joined.
06:14:13 <esowiki> [[Metatape]] https://esolangs.org/w/index.php?diff=66920&oldid=53872 * HactarCE * (+4400) Overhauled Metatape according to 2019 edition
07:12:11 -!- imode has quit (Ping timeout: 276 seconds).
08:26:05 -!- Phantom_Hoover has joined.
08:53:09 -!- kspalaiologos has joined.
09:01:17 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
10:45:32 <esowiki> [[Esomachine]] https://esolangs.org/w/index.php?diff=66921&oldid=66919 * DmilkaSTD * (+0)
10:46:46 <esowiki> [[Esomachine]] https://esolangs.org/w/index.php?diff=66922&oldid=66921 * DmilkaSTD * (+15)
10:47:25 <esowiki> [[Esomachine]] https://esolangs.org/w/index.php?diff=66923&oldid=66922 * DmilkaSTD * (+10)
10:47:52 <esowiki> [[Esomachine]] https://esolangs.org/w/index.php?diff=66924&oldid=66923 * DmilkaSTD * (-7)
10:48:21 <esowiki> [[Esomachine]] https://esolangs.org/w/index.php?diff=66925&oldid=66924 * DmilkaSTD * (+10)
10:56:03 -!- tromp has joined.
10:57:33 <esowiki> [[Esomachine]] https://esolangs.org/w/index.php?diff=66926&oldid=66925 * DmilkaSTD * (+156)
10:58:59 -!- tromp_ has quit (Ping timeout: 246 seconds).
11:17:39 -!- hppavilion[1] has quit (Remote host closed the connection).
11:24:09 <kspalaiologos> has someone taken up on esoshell project?
11:36:37 -!- arseniiv has joined.
13:10:39 -!- kspalaiologos has quit (Quit: Leaving).
13:19:01 -!- b_jonas has joined.
13:24:21 <b_jonas> kspalaiologos: I beg to differ, but I can write usable parsers from scratch. just don't look at my ancient psz interpreter. that was long ago, and I've matured since.
13:26:13 <b_jonas> "<kspalaiologos> I shouldn't have slept at math lessons" => meh, it's quite possible that many of your lessons were a waste of time. get some good books and learn from them instead.
13:27:34 <b_jonas> "<shachaf> Are pointers signed or unsigned?" => I don't think that distinction makes sense there. you don't high-multiply pointers, or compare pointers from two different arrays
13:29:13 <b_jonas> but if I have to choose, they're probably signed on x86_64 (because the top bits are usually the same unless you have a future cpu with a 2**64 bit long address space), unsigned on x86_16 (because they are mapped into x86_32's address space by zero filling),
13:32:01 <esowiki> [[Kill]] N https://esolangs.org/w/index.php?oldid=66927 * CMinusMinus * (+723) Created page with "'''Kill''' is a one-word, Python-interpreted, joke programming language created by [[User:CMinusMinus]]. The sole purpose of this language, is to delete the code. The only leg..."
13:35:27 <b_jonas> shikhin: for x86_32 though, signed vs unsigned does make a difference, and I don't know which one is used. either look it up in the ELF ABI docs, or allocate a 2.5 GB sized array (for which you need either an x86_64 kernel, or an x86_32 kernel configured to the slower 3GB+1GB address space split rather than the default 2GB+2GB split) and see how it's layed out and how pointers in it compare
13:35:33 <b_jonas> argh
13:35:39 <b_jonas> s/shikhin/shachaf/
13:35:49 <b_jonas> I suck at autocompletion
13:36:13 <esowiki> [[Kill]] https://esolangs.org/w/index.php?diff=66928&oldid=66927 * CMinusMinus * (+102)
13:36:32 <b_jonas> oerjan: ^
13:37:17 <b_jonas> "<int-e> To this day I find it confusing that the offset of relative jumps is relative to the address following the current instruction." => I find that one natural, and the other convention (which some cpu archs use) unnatural
13:37:42 <esowiki> [[Kill]] https://esolangs.org/w/index.php?diff=66929&oldid=66928 * CMinusMinus * (+22)
13:40:32 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=66930&oldid=66864 * CMinusMinus * (+11) Added "Kill" Language
13:40:57 <esowiki> [[Kill]] https://esolangs.org/w/index.php?diff=66931&oldid=66929 * CMinusMinus * (+2)
13:42:57 <esowiki> [[Kill]] https://esolangs.org/w/index.php?diff=66932&oldid=66931 * CMinusMinus * (+3)
13:43:18 <b_jonas> "<shachaf> Maybe it would be better for APIs to support reading and writing in multiple chunks." => they already do, if you mean multiple chunks in memory assembled to a single chunk in the file descriptor or back, with preadv/pwritev, plus the aio api eg. aio_write is parametrized like that by default (I wanted to say "works like that by default" but it's probably not correct to use "works" for the
13:43:24 <b_jonas> linux aio api at all)
13:43:55 <b_jonas> hmm no, I remembered wrong, aio_write doesn't use preadv-style scatter-gather addressing
13:44:10 <esowiki> [[User:CMinusMinus]] https://esolangs.org/w/index.php?diff=66933&oldid=66903 * CMinusMinus * (+27)
13:44:10 <shachaf> I'm not talking about OS APIs, which support this already, but other APIs.
13:44:12 <b_jonas> what api was it than otehr tahn preadv/pwritev, I wonder? I'm sure there was another
13:44:24 <shachaf> Presumably that's also what fizzie is talking about also.
13:44:38 <shachaf> Just some arbitrary function in your code like parse_thing() that takes a buffer and a length.
13:44:43 <b_jonas> what other APIs then?
13:44:47 <b_jonas> ah
13:45:25 <b_jonas> shachaf: I think https://laurikari.net/tre/ allows you match a regex to a string that is not continuous, and even from a string that's read lazily
13:45:56 <shachaf> OK, but regex matching is one special-case API which is already naturally written as a state machine anyway.
13:46:17 <b_jonas> but of course continuous buffers have a lot of advantage
13:46:20 <b_jonas> easier to optimize
13:46:42 <b_jonas> I worked with bitmap images at my previous job, and I wouldn't like a non-continuous bitmap image
13:49:01 <b_jonas> if I was given one, I'd just copy it into a proper continuous buffer (that is also aligned so that its rows are padded to a size that is 64 bytes long modulo 128 bytes; possibly padded a little at the beginning and end so I can read past the ends; and with the color channels either together and padded as if you had four channels if the input has three, or separately each one in a layer, depending on
13:49:07 <b_jonas> what I want to do with the image)
13:57:06 <shachaf> Of course APIs can do that, and keep their own buffers.
13:57:29 <shachaf> But then you have a bunch of different buffers all the over the system, which doesn't seem that nice.
14:10:23 <b_jonas> shachaf: no, in my experience once you have a continuous buffers, I could use them with multiple apis in place for image processing
14:10:50 <b_jonas> there are subtleties about pixel formats, but in practice most of the time I didn't have to do unnecessary copies
14:11:49 <shachaf> OK, but maybe you have one buffer for parsing an HTTP request, and then another buffer for parsing the image it contains, or whatever.
14:12:10 <shachaf> Presumably you want to avoid a bunch of copies if you can.
14:12:25 <b_jonas> shachaf: the HTTP buffer has compressed images
14:12:40 <shachaf> Sure, another buffer for decompression.
14:12:46 <b_jonas> I have to decode those to raw uncompressed anyway if I want to work with
14:12:58 <shachaf> I'm describing the kind of thing you might want to avoid.
14:13:06 <shachaf> Can your decompression algorithm operate directly on the circular buffer?
14:13:06 <b_jonas> but in practice when I get an image from HTTP, I save it for multiple uses rather than process directly
14:14:10 <b_jonas> shachaf: hmm, I don't know the details, I usually decompressed images with either ImageMagick or ffmpeg, and read them from a regular file
14:16:01 <b_jonas> shachaf: for decoding video, I did store the uncompressed frames sparsely, so each frame can be anywhere in memory and they can be reused as a circular buffer
14:20:00 <b_jonas> shachaf: when the video is read from network directly, rather than local file, then ffmpeg does the reading, so I don't know what kind of buffer it uses
14:20:50 <b_jonas> admittedly I used ffmpeg as a separate process, so there are two copies of the uncompressed raw data there
14:20:58 <b_jonas> so I guess I was wrong above
14:21:09 <b_jonas> three copies if I want a planewise format
14:45:18 <shachaf> Running a separate process for video decoding is obviously not reasonable for any kind of special-purpose application.
14:56:54 -!- Phantom_Hoover has joined.
15:36:24 -!- kspalaiologos has joined.
16:19:45 <int-e> . o O ( Prove or disprove: There is a POSIX extended regular expression of length shorter than 10000 that accepts the multiples of 7 in decimal, with leading zeros allowed. )
16:20:31 <int-e> *Main> length rex ==> 10791
16:21:52 <int-e> Which doesn't include the anchors ^( and )$, so 10795 is where I'm really at.
16:23:50 <int-e> Make that 10793 (the parentheses are not required). Oh and I'm excluding the empty string but as far as I can tell this doesn't affect the length anyway; it's a matter of using + or * in one place.
16:32:46 -!- Phantom_Hoover has quit (Ping timeout: 265 seconds).
16:45:46 -!- Phantom_Hoover has joined.
16:51:22 -!- xkapastel has joined.
16:59:32 -!- lldd_ has joined.
17:26:20 -!- imode has joined.
17:32:33 -!- imode has quit (Quit: WeeChat 2.6).
17:33:32 -!- imode has joined.
17:41:43 -!- lldd_ has quit (Quit: Leaving).
19:04:36 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
19:15:25 -!- imode has quit (Ping timeout: 268 seconds).
19:16:58 -!- Cale has quit (Ping timeout: 245 seconds).
19:29:06 -!- kspalaiologos has quit (Quit: Leaving).
19:29:12 -!- Cale has joined.
19:35:22 -!- imode has joined.
19:53:29 <b_jonas> int-e: eww.
19:54:03 <b_jonas> int-e: also isn't it ^[[:space:]][-+]( )$
19:54:09 <b_jonas> no wait
19:54:17 <b_jonas> ^[[:space:]][-+]?( )$
19:59:03 -!- Phantom_Hoover has joined.
19:59:49 -!- imode has quit (Ping timeout: 268 seconds).
20:00:54 -!- imode has joined.
20:08:05 <int-e> b_jonas: nah, no signs
20:14:36 <myname> int-e: if i want to be picky, i'd say .* doas accept the multiples of 7
20:16:43 <int-e> myname: yeah but you know what I meant anyway
20:17:34 <int-e> Also obviously the right way to write such a regular expression is to not do it. :P
20:17:49 <int-e> (But the second best way is to write a program to do it for you.)
20:38:53 <b_jonas> int-e: yeah, there are programs that can automatically convert a nondet finite automaton to a regex, even with the blowup
20:39:16 <b_jonas> I know of one
20:39:30 <b_jonas> but there are probably more because it's a known algorithm
20:40:08 -!- imode has quit (Ping timeout: 276 seconds).
20:40:26 <int-e> sure
20:41:08 -!- xkapastel has quit (Quit: Connection closed for inactivity).
20:41:31 <int-e> But do they also try to optimize the result size...
20:44:40 <b_jonas> int-e: obviously the regex would be shorter in perl regex syntax, where you can use the "recursion" feature, not to build recursive regex, but to reuse longer regex multiple times
20:44:59 <int-e> yeah that would definitely help
20:52:31 <olsner> hm, surprisingly large blowup from such a reasonably sized state machine
20:52:57 -!- dingwat has quit (Quit: Connection closed for inactivity).
20:55:19 <int-e> it's easily O(3^n) where n is the number of states
20:55:58 -!- oerjan has joined.
20:56:47 <int-e> So... let me try... 5 states (remainders 0..4 only): 689; 6 states: 2701; 7 states: 10793
20:57:31 <int-e> That really looks a bit worse than O(3^n). But of course the number of states is still small.
20:57:44 <int-e> But wait. O(4^n) actually makes more sense.
20:57:57 <int-e> And it looks pretty close to that.
20:58:04 <int-e> Hi oerjan.
20:59:11 <oerjan> hi int-e
20:59:56 -!- MDude has joined.
21:04:49 <int-e> But eh. My (fairly primitive) code is here: http://paste.debian.net/1113236/ ... it's optimizing, including a small peephole optimization (intelligently choosing between [07] and 0|7 depending on context), but fundamentally the question is whether there is a better way to convert a DFA (which happens to be a minimal NFA for the purpose) to a regexp than removing states one by one.
21:06:19 <int-e> And I just don't know the answer to that question.
21:06:38 <olsner> I tried a bit with https://github.com/qntm/greenery, it seems to always produce a regexp that converts back to the same DFA (which I suspect is not optimal for making a short regexp)
21:07:43 <int-e> Well this is inherently a DFA... you have 7 remainders to keep track of, so that's a minimum of 7 states, and if you use 7 states then you'll be dealing with a DFA.
21:08:08 <oerjan> <b_jonas> oerjan: ^ <-- i have no idea why you pinged me there
21:08:22 <oerjan> unless it was to joke about autocompletion
21:08:38 <oerjan> (in which case you need to work on your jokes)
21:09:17 <int-e> Maybe b_jonas wanted to highlight me. Which would've been appropriate. :)
21:09:23 <oerjan> heh
21:21:15 -!- imode has joined.
21:21:15 <arseniiv> what books on numeric recipes related to floating-point (or esp. IEEE 754) issues could you recommend? With recipes for inverse hyperbolic functions or e. g. if there is a sense to define `coshm1(x) := 0.5 * (expm1(x) + expm1(-x))` or one should just use plain `cosh(x) - 1`
21:27:23 <int-e> fun question....
21:28:02 -!- heroux has quit (Ping timeout: 240 seconds).
21:28:03 <b_jonas> oerjan: sorry, that should have highlighted olsner
21:28:39 <b_jonas> fizzie: the https://esolangs.org/logs/all.html website seems to be down
21:28:57 <int-e> I mean, cosh(x) - 1 suffers from terrible cancellation around 0, but 0.5 * (expm1(x) + expm1(-x)) still suffers from cancellation (expm1(x) = x + x^2/2 + O(x^3), expm1(-x) = -x + x^2/2 + O(x^3), cosm1(x) = x^2/2 + O(x^3)...)
21:30:35 <int-e> So exp1m(log1p(sinh(x)**2)/2) may be better.
21:31:06 <b_jonas> arseniiv: the fourth edition of Knuth volume 2, only it's not yet written
21:31:07 <int-e> Modulo function names.
21:31:49 <arseniiv> b_jonas: :(
21:32:31 <arseniiv> int-e: ah, I suspected my definition would have a flaw
21:32:51 <b_jonas> ah sorry, that will be third edition
21:32:54 <b_jonas> no wait
21:32:56 <b_jonas> fourth edition
21:33:06 <b_jonas> anyway, until that time, you can look at the existing third edition
21:33:31 <b_jonas> it doesn't talk about IEEE 754, but it does talk about floating point in general
21:34:03 -!- atslash has quit (Quit: This computer has gone to sleep).
21:34:07 <b_jonas> MIX uses a different floating point format that shifts by mix bytes, rather than bits, but the main text considers other bases too, including base 2
21:35:44 <b_jonas> what the current edition doesn't consider is features specific to IEEE 754, which are infinities and NaNs
21:36:23 <fizzie> b_jonas: I'm not sure what's up with it, my monitoring has been saying every now and then that it's down for a bit.
21:36:27 <fizzie> Working for me now.
21:36:35 <arseniiv> b_jonas: mix bytes => wait, there are its own bytes? How many bits?
21:36:49 <b_jonas> arseniiv: either six bits, or two decimal digits
21:37:28 <b_jonas> arseniiv: technically the book says the byte has a range from 0 to a maximum that is between 63 and 99 inclusive, so a binary MIX goes up to 63, a decimal up to 99, a ternary up to 81
21:37:42 <b_jonas> arseniiv: see our wiki article
21:37:51 <b_jonas> (and the book itself)
21:38:30 <arseniiv> I wonder if MIX-related issues don’t make the text obscurer
21:39:17 <arseniiv> yeah, I was to look for searching if I have it somewhere
21:39:22 <arseniiv> don’t remember
21:40:27 <b_jonas> have what?
21:40:30 <b_jonas> the books?
21:43:22 -!- OugiOshino has changed nick to BWBellairs.
21:44:08 <arseniiv> b_jonas: hm I don’t seem to find there much of the redundant recipes I was to look for
21:45:11 <b_jonas> fizzie: yes, it's up now
21:45:13 <arseniiv> b_jonas: yeah, it seems I have that volume here, but the contents page doesn’t look too promising
21:45:21 -!- heroux has joined.
21:46:08 <arseniiv> I mean, for basics I have that “What every computer scientist should know about FP arithmetic” article reprint-as-an-appendix-from-some-Sun-manual
21:46:40 <int-e> texlive's documentation packages are ridiculously big
21:47:45 <arseniiv> but the careful examination of numeric issues by myself seems unnecessary if… hm I wonder if I should look at Numpy code
21:49:00 <b_jonas> arseniiv: TAOCP vol 2 almost certainly isn't enough for what you asked,
21:49:08 <b_jonas> but I'm not familiar with other books to recommend
21:49:25 <b_jonas> I haven't read many such books really
21:49:45 -!- heroux has quit (Read error: Connection reset by peer).
21:49:46 <int-e> I'm aware that there *are* numerical recipe books...
21:50:11 -!- heroux has joined.
21:50:41 <arseniiv> b_jonas: ah, OK
21:51:05 <arseniiv> int-e: yeah, they just seem elusive
21:51:21 <b_jonas> there's Stoyan Gisbert's numerical analysis textbook, which is freely available online, but I think only exists in Hungarian. I don't know if there's any translation
21:51:57 <int-e> @where floating-point
21:51:57 <lambdabot> "What Every Programmer Should Know About Floating-Point Arithmetic" at <http://floating-point-gui.de/> and "What Every Computer Scientist Should Know About Floating-Point Arithmetic" by David
21:51:57 <lambdabot> Goldberg in 1991 at <http://docs.sun.com/source/806-3568/ncg_goldberg.html> and <http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.102.244>
21:52:01 <olsner> b_jonas: finally a good excuse to learn hungarian?
21:52:01 <b_jonas> it has three volumes, the first one is an introduction one that goes pretty far, and then the second and third are about solving partial differential equations numerically
21:52:21 <b_jonas> therea are certainly more good books, I'm just not familiar with them
21:52:57 <b_jonas> for the logs, IIRC Stoyan Gisbert's book is available somewhere from http://www.tankonyvtar.hu/hu/bongeszes , but that server is down right now
21:53:31 <b_jonas> it says that it's down until 2019-11-03 though, so unless you see the date autoincrement, it'll hopefully come up later
21:53:39 <arseniiv> <b_jonas> and then the second and third are about solving partial differential equations numerically => (aaaah!! you know, this is the night here, how would I go to sleep now)
21:54:19 <arseniiv> (I’m afraid of numeric PDEs after my naive Shrödinger model blown up)
21:54:44 <b_jonas> arseniiv: right, the whole thing is so tricky that it's no wonder you need two volumes on it
21:54:50 <int-e> pfft.
21:54:51 -!- heroux has quit (Read error: Connection reset by peer).
21:54:56 <int-e> @where ffi
21:54:56 <lambdabot> http://www.cse.unsw.edu.au/~chak/haskell/ffi/
21:55:00 <b_jonas> I think the first volume covers ODEs and numerical integration
21:55:10 <b_jonas> int-e: lol
21:55:22 -!- heroux has joined.
21:55:29 <int-e> dead link tjhough
21:56:32 <b_jonas> int-e: https://www.haskell.org/onlinereport/haskell2010/haskellch8.html#x15-1490008 is probably the current one
21:56:44 <b_jonas> it's integrated to the main standard from the separate tech report
21:56:57 <int-e> @where+ ffi http://www.haskell.org/onlinereport/haskell2010/haskellch8.html
21:56:57 <lambdabot> Nice!
21:57:29 <b_jonas> @hwere ffi
21:57:29 <lambdabot> http://www.haskell.org/onlinereport/haskell2010/haskellch8.html
21:57:47 <int-e> yeah that's what I copied
21:59:33 <b_jonas> that's not standalone though, you need most of chapters 24 to 37 inclusive
21:59:38 <arseniiv> @ʍere ffi -- just testing
21:59:38 <lambdabot> http://www.haskell.org/onlinereport/haskell2010/haskellch8.html
21:59:40 <arseniiv> :o
21:59:42 <b_jonas> which have the relevant Foreign modules
22:00:26 -!- unlimiter has joined.
22:00:32 <b_jonas> eg. https://www.haskell.org/onlinereport/haskell2010/haskellch28.html#x36-27400028 defines the Foreign.C.CLong type
22:03:18 <b_jonas> so perhaps https://www.haskell.org/onlinereport/haskell2010/haskell.html#QQ2-15-159 would be a better link
22:03:24 <b_jonas> int-e: ^
22:06:14 -!- arseniiv_ has joined.
22:06:30 <int-e> I don't like the anchor :P
22:06:50 -!- arseniiv has quit (Ping timeout: 240 seconds).
22:07:31 <b_jonas> int-e: same without anchor then?
22:07:37 -!- unlimiter has quit (Quit: WeeChat 2.6).
22:07:51 <int-e> well then it's no longer the FFI specifically
22:07:54 <int-e> @where report
22:07:54 <lambdabot> http://www.haskell.org/onlinereport/haskell2010/ (more: http://www.haskell.org/haskellwiki/Definition)
22:08:03 <b_jonas> int-e: sure, but it's where you look up the ffi
22:08:08 <b_jonas> which might not be obvious
22:08:27 <b_jonas> I think it even has additions to the original ffi report
22:08:27 <int-e> I'm happy with the link to chapter 8
22:08:31 <b_jonas> ok
22:15:48 <arseniiv_> how did something like [miau] in English end up spelling “meow”? Prior to hearing the pronunciation I thought it should be something like [mju] and secretly thought how strange it should be to hear that from cats
22:16:04 -!- arseniiv_ has changed nick to arseniiv.
22:17:32 <b_jonas> arseniiv_: no, that's "mew" which is a synonym
22:25:33 -!- heroux has quit (Read error: Connection reset by peer).
22:25:53 -!- heroux has joined.
22:26:07 <int-e> They're all terrible approximatiopns of the real sound.
22:26:37 <b_jonas> int-e: no surprise, because most animal calls don't follow the phonemics of any human language
22:26:47 <oerjan> shocking
22:26:50 <b_jonas> so they're transcribed a bit randomly
22:26:57 <b_jonas> *ribbit*
22:27:04 <int-e> quak!
22:27:47 -!- heroux has quit (Read error: Connection reset by peer).
22:28:05 <int-e> "ribbit" is pretty good, compared to that.
22:30:54 -!- heroux has joined.
22:31:53 -!- heroux has quit (Read error: Connection reset by peer).
22:35:45 -!- heroux has joined.
22:40:53 -!- heroux has quit (Read error: Connection reset by peer).
22:41:17 -!- heroux has joined.
22:43:35 <arseniiv> it seems frogs make at least two types of sounds, one closer to ribbit and the other to qua(k)?
22:44:03 <b_jonas> dunno, I live in a city, I rarely hear actual frogs
22:44:12 <arseniiv> or maybe it’s just different kinds of frogs, humble and noisy
22:44:54 <arseniiv> I heard some at various times but won’t say I had enough to decide
22:49:27 -!- heroux has quit (Read error: Connection reset by peer).
22:49:29 -!- arseniiv has quit (Ping timeout: 246 seconds).
22:49:47 -!- heroux has joined.
22:50:39 -!- heroux has quit (Read error: Connection reset by peer).
22:55:20 -!- heroux has joined.
2019-11-03
00:52:20 -!- Phantom_Hoover has quit (Ping timeout: 276 seconds).
00:56:47 <shachaf> a personal God quaquaquaqua with white beard quaquaquaqua outside time without extension
01:01:31 <oerjan> whatwhatwhatwhat
01:01:40 <int-e> shachaf: fungot has got you?
01:01:40 <fungot> int-e: come here, my snuggly green cutie-pie! a little you value those of your own.
01:01:49 <int-e> good one
01:01:51 <int-e> ^style
01:01:51 <fungot> Available: agora alice c64 ct darwin discworld enron europarl ff7 fisher fungot homestuck ic irc iwcs jargon lovecraft nethack oots* pa qwantz sms speeches ss wp ukparl youtube
01:02:01 <int-e> (despite the source ;-) )
01:02:37 <shachaf> int-e: The problem is I had to wake up early so I only got three hours of sleep last night.
01:19:37 <b_jonas> shachaf: is the white beard outside all four simultaneous sides of time?
01:21:10 <b_jonas> `? time cube
01:21:11 <HackEso> EARTH HAS 4 CORNER SIMULTANEOUS 4-DAY TIME CUBE IN ONLY 24 HOUR ROTATION. 4 CORNER DAYS, CUBES 4 QUAD EARTH. Bible A Lie & Word Is Lies. Navel Connects 4 Corner 4s. God Is Born Of A Mother - She Left Belly B. Signature. Your dirty lying teachers use only the midnight to midnight 1 day (ignoring 3 other days) Time to not foul (already wrong) bible time. Lie that corrupts earth you educated stupid fools.
01:27:46 -!- oerjan has quit (Quit: Nite).
01:31:26 -!- nyeto has joined.
01:36:59 -!- nyeto has left.
01:40:26 -!- imode has quit (Ping timeout: 276 seconds).
02:43:55 <esowiki> [[Metatape]] https://esolangs.org/w/index.php?diff=66934&oldid=66920 * HactarCE * (+583) Added BCT emulator
02:44:27 <esowiki> [[Metatape]] M https://esolangs.org/w/index.php?diff=66935&oldid=66934 * HactarCE * (+0) Capitalize "Bitwise Cyclic Tag" to fix link
02:45:57 <esowiki> [[Metatape]] M https://esolangs.org/w/index.php?diff=66936&oldid=66935 * HactarCE * (+0) Change line wrapping in BCT emulator to be more A E S T H E T I C
02:59:03 -!- imode has joined.
04:41:37 -!- ArthurStrong has joined.
07:27:17 -!- imode has quit (Ping timeout: 240 seconds).
07:58:22 -!- atslash has joined.
08:35:04 <esowiki> [[Flurry]] N https://esolangs.org/w/index.php?oldid=66937 * Challenger5 * (+1840) Created page with "Flurry is a strict functional programming language created by [[User:Challenger5]] and inspired by [[Brain-Flak]]. The main difference in execution model is that there is only..."
08:35:35 <esowiki> [[User:Challenger5]] https://esolangs.org/w/index.php?diff=66938&oldid=57258 * Challenger5 * (+54)
09:02:08 -!- heroux_ has joined.
09:02:26 -!- myname has quit (Ping timeout: 276 seconds).
09:02:38 -!- myname has joined.
09:02:59 -!- heroux has quit (Remote host closed the connection).
09:03:03 -!- heroux_ has changed nick to heroux.
09:44:57 -!- Sgeo has quit (Read error: Connection reset by peer).
09:45:24 -!- Sgeo has joined.
10:45:06 -!- arseniiv has joined.
11:19:19 -!- atslash has quit (Quit: This computer has gone to sleep).
11:44:36 <esowiki> [[Pac]] N https://esolangs.org/w/index.php?oldid=66939 * CMinusMinus * (+389) Created page with "'''PAC''' is an esoteric programming language, created by [[User:CMinusMinus]], consisting of "point and click adventure" commands. {| class="wikitable" |- ! Command !! Acti..."
12:00:26 -!- arseniiv has quit (Ping timeout: 240 seconds).
12:16:51 -!- Phantom_Hoover has joined.
12:28:55 <b_jonas> is there a tetris game for keyboard where there are ten buttons in a row that set the horizontal positions of the piece directly, and doubled four buttons to set its orientation? I wonder if you could play that faster than tetris games with traditional controls
12:58:04 -!- arseniiv has joined.
13:01:45 -!- kritixilithos has joined.
13:05:25 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
13:24:08 -!- kritixilithos has quit (Ping timeout: 260 seconds).
13:38:05 -!- xkapastel has joined.
13:39:51 -!- kritixilithos has joined.
13:53:29 -!- kritixil1thos has joined.
14:10:45 <esowiki> [[Turi]] https://esolangs.org/w/index.php?diff=66940&oldid=57328 * Osmarks * (-7)
14:12:22 <esowiki> [[Turi]] https://esolangs.org/w/index.php?diff=66941&oldid=66940 * Osmarks * (+23)
14:13:08 <esowiki> [[Turi]] https://esolangs.org/w/index.php?diff=66942&oldid=66941 * Osmarks * (+1)
15:22:26 -!- atslash has joined.
15:27:03 -!- atslash has quit (Ping timeout: 264 seconds).
15:42:03 -!- arseniiv has quit (Ping timeout: 264 seconds).
15:46:05 -!- kritixil1thos has quit (Quit: leaving).
15:57:27 -!- kritixilithos has quit (Quit: leaving).
16:00:18 -!- ArthurStrong has quit (Quit: leaving).
16:07:28 -!- arseniiv has joined.
16:22:47 -!- imode has joined.
16:54:32 -!- cabat has joined.
17:27:34 -!- xkapastel has quit (Quit: Connection closed for inactivity).
18:31:17 -!- kritixilithos has joined.
18:48:05 -!- kspalaiologos has joined.
18:52:53 -!- kritixilithos has quit (Remote host closed the connection).
18:54:46 -!- kritixilithos has joined.
18:54:59 -!- cabat has quit (Ping timeout: 268 seconds).
18:57:31 -!- cabat has joined.
18:59:30 <kritixilithos> is a 2-counter machine where all the commands are ordered, eg after the execution of ADD, the instruction right below it is executed next, [specifically ADD(r) instead of ADD(r,c) and JZSUB(r,c) instead of JZSUB(r,c1,c2)], still TC?
19:00:11 * lf94 head explodes
19:00:19 <lf94> what's r, what's c
19:00:30 <lf94> jzsub <- jump if sub is zero?
19:00:41 <lf94> (subtraction result)
19:01:45 <kritixilithos> whoops should be INC and JZDEC, jzdec is jump if zero else decrement, r is register and c is command
19:02:27 -!- cabat has quit (Ping timeout: 265 seconds).
19:03:18 -!- cabat has joined.
19:04:04 <kritixilithos> because the wikipedia article on counter machine gives the instruction set as "{ INC ( r, z ), JZDEC ( r, ztrue, zfalse) }", but the esolangs article (in words) seems to imply INC(r) and JZDEC(r,c) but I can't tell
19:06:44 <imode> I don't think so, no.
19:09:05 <imode> oh, nevermind, that's absolutely TC.
19:09:40 <imode> if by JZSUB(r, c) you mean "jump to c, otherwise jump to ip+1"
19:10:52 <esowiki> [[User:CMinusMinus]] https://esolangs.org/w/index.php?diff=66943&oldid=66933 * CMinusMinus * (+8)
19:10:59 <esowiki> [[User:CMinusMinus]] https://esolangs.org/w/index.php?diff=66944&oldid=66943 * CMinusMinus * (+1)
19:12:32 -!- cabat has quit (Read error: Connection reset by peer).
19:14:14 <imode> that's how most assembly languages work.
19:24:38 <esowiki> [[Pac]] https://esolangs.org/w/index.php?diff=66945&oldid=66939 * CMinusMinus * (+711)
19:26:04 <esowiki> [[Pac]] https://esolangs.org/w/index.php?diff=66946&oldid=66945 * CMinusMinus * (+7)
19:27:12 <esowiki> [[Pac]] https://esolangs.org/w/index.php?diff=66947&oldid=66946 * CMinusMinus * (+54)
19:33:20 <kritixilithos> imode: yes
19:34:14 <kritixilithos> okay thanks, I'll try to figure out the details myself
19:35:12 <lf94> imode what do you think of code vs spec
19:35:37 <lf94> some say they are one in the same. Typically, I think this way, but as I think about it, it seems very wrong way to think.
19:35:42 <lf94> code is based on a shit ton of assumptions
19:35:48 <lf94> because of the underlying impl
19:35:55 <lf94> spec is just english
19:42:30 <esowiki> [[Pac]] https://esolangs.org/w/index.php?diff=66948&oldid=66947 * CMinusMinus * (+59)
19:43:03 <esowiki> [[Pac]] https://esolangs.org/w/index.php?diff=66949&oldid=66948 * CMinusMinus * (+17)
19:44:14 <esowiki> [[Pac]] https://esolangs.org/w/index.php?diff=66950&oldid=66949 * CMinusMinus * (-12)
19:50:47 <imode> lf94: code vs. spec? in an ideal world, they'd be one and the same.
19:51:10 <lf94> how can you say that though, when code depends on an underlying implementation?
19:51:19 <lf94> 1 = 1 can mean anything in code.
19:51:25 <imode> define underlying implementation. you obviously have a case in mind.
19:51:35 <lf94> so like
19:51:42 <lf94> if we used C to define a spec
19:51:58 <lf94> it wouldn't be good, because C has undefined behavior, thus the spec has undefined behavior...
19:52:07 <lf94> plus the semantics can change based on the variant of C
19:52:12 -!- kritixilithos has quit (Quit: leaving).
19:52:24 <lf94> at least when you write in english, it is direct
19:52:37 <imode> that's not how that works. just because C's standard contains undefined behavior doesn't mean the specification (reference implementation, if you will) has undefined behavior.
19:52:56 <imode> just because english has the capability to be ambiguous does not mean a specification written in english is ambiguous.
19:53:10 <lf94> right, we can be very specific and unambigious
19:53:14 <lf94> but with C it really depends
19:53:18 <imode> it really doesn't.
19:53:31 <lf94> can you think of a way to prove yourself wrong?
19:53:38 <imode> can you provide proof of your statements?
19:53:55 <imode> or even what you mean by "spec" vs "code".
19:54:19 * lf94 thinks
19:54:22 <imode> because you have definitions that are loosely defind between people.
19:54:30 <lf94> (I am asking for you to try and break your argument against me, yourself btw XD)
19:54:50 <imode> what is my argument, exactly.
19:54:58 <lf94> spec and code are the same
19:55:00 <lf94> or can be
19:55:02 <lf94> er
19:55:10 <lf94> spec and code can be equally specific, or non-ambigious
19:55:31 <lf94> In the context of C I guess
19:55:32 <imode> it's interesting that you built that up from "in an ideal world, they'd be one and the same".
19:55:47 <lf94> If we use something like Coq - ok, then yes, I 100% agree
19:56:01 <lf94> But Coq is also like writing with your teeth
19:56:18 <imode> how about you define "spec" and "code" for me.
19:56:45 <lf94> A specification describes what should be done, how it should be done
19:56:57 <imode> congratulations, that's suddenly most codebases.
19:57:00 <lf94> Code that implements a specification is like building the machine
19:57:03 <imode> if not all of them. no, actually, all of them.
19:57:16 <lf94> I know what you are saying...
19:57:19 <imode> "what should be done" "how it should be done".
19:57:30 <imode> unless you give those things definition they mean nothing.
19:57:33 <lf94> "place the number 2 into the register a"
19:57:39 <lf94> how do you specify this in C?
19:58:06 <lf94> A spec is a blueprint
19:58:07 <imode> it depends. what is register A, what does "place the number 2" mean, what does "place X into Y" mean, etc.
19:58:16 <lf94> Code is the manifestation
19:58:39 <lf94> Maybe that's the power of a spec imode
19:58:42 <imode> your thoughts lack actual definitions to anything you're stating.
19:58:45 <lf94> It can leave some ambigiuity...
19:58:45 <esowiki> [[Chess]] https://esolangs.org/w/index.php?diff=66951&oldid=23198 * CMinusMinus * (+8)
19:58:47 <imode> so.
19:58:50 <imode> no.
19:59:06 <imode> specifications are intended to be as unambiguous as possible. otherwise they're just "rough guidelines".
19:59:10 -!- oerjan has joined.
19:59:24 <imode> if I hand you a specification I do not expect you to take liberties unless as directed.
19:59:30 <imode> this is a human process.
19:59:42 <lf94> A lot of specs do not paint a full picture though
19:59:55 <lf94> vs code, which is the whole picture as you build it
20:00:10 <imode> read the last part of the second to last message I sent.
20:00:25 <lf94> > lack of definitions < because I'm exploring the semantics of these lol, sorry...
20:00:26 <imode> it's the same case for "implementation defined" behavior within C.
20:00:27 <lambdabot> <hint>:1:6: error: parse error on input ‘of’
20:00:35 -!- kspalaiologos has quit (Quit: Leaving).
20:00:35 <imode> no, you're just babbling.
20:00:41 <lf94> yes
20:00:42 <imode> there's a difference.
20:00:44 <lf94> what's wrong with that
20:01:11 <imode> don't paint "babbling" as "exploration", because nothing of what you say has any substance. what is "code" vs. a "specification". if we don't have definitions we can't have a conversation.
20:01:29 <oerjan> hm now i'm hitting that logs not loading bug
20:01:56 <lf94> imode: sorry to upset you. I will stop talking now.
20:02:10 <imode> it's not upsetting, I've just asked for some definitions. :P
20:02:32 <lf94> I don't know what the definitions are - that's basically what I'm trying to figure out...
20:02:45 <imode> start with a working definition and then tear it to bits.
20:02:56 <lf94> if spec and code can accomplish the same things, they are essentially the same, except one can do work right away
20:03:13 <imode> for instance, a specification is a set of rules governing what a conforming example of an instance of that specification should follow.
20:03:28 <imode> or do.
20:03:52 <imode> code is commonly defined as encoded instructions intended to be consumed by a computer or a piece of software.
20:04:06 <imode> if you ask if these two can be the same, you have to say "what does it mean for them to be the same or different".
20:04:15 <imode> they're different definitions. how can you construe them to be the same.
20:04:44 <lf94> code is a collection of instructions to be carried out by a computer
20:04:48 <oerjan> paradoxically, the difference is that a specification can leave some details unspecified
20:04:53 <lf94> spec is a collection of instructions to be carried out by a human
20:05:09 <lf94> oerjan: I said this, but imode shot it down fast :)
20:05:16 <imode> oerjan: I can leave a lot of details unspecified in code, though. such as how something is actually done.
20:05:27 <imode> of course that's pretty shallow considering you can always find out what's done commonly.
20:05:43 <lf94> The main semantic difference I see is one is read by computers and the other a human
20:05:51 <imode> code is commonly read by humans.
20:06:05 <imode> in fact it's the foundation of a couple million careers. :P
20:07:11 <oerjan> sad, miserable careers, but careers nevertheless
20:07:35 <lf94> If I write a spec in C, I have to understand C and english
20:07:45 <imode> you just have to understand C, actually.
20:07:47 <lf94> and I write a spec in English, I just have to understand English
20:07:55 <lf94> Also English is going to be around for at least 100 years
20:08:17 * oerjan thinks of Z, although he doesn't know much about it
20:08:21 <imode> I don't get where "I have to understand C and English" comes from. you just have to understand C to read a spec written in C.
20:08:21 <lf94> imode: a lot of C code uses English in comments and variables
20:08:41 <imode> lf94: tell that to C programmers who don't use english comments and variable names.
20:08:53 <lf94> a lot of C...not all
20:08:55 <imode> of which there are many in my personal circles.
20:09:08 <lf94> I'm sure you've seen C written in an APL-like style
20:09:14 <lf94> I'm definitely not talking about that.
20:09:19 <imode> nor am I.
20:09:30 <lf94> Also, Plan 9 style C sucks too
20:10:09 <imode> if I specify a virtual machine in C, and I declare that this implementation of a virtual machine is "the specification of this machine", then you should be able to take it as the specification of that machine.
20:10:11 <oerjan> https://en.wikipedia.org/wiki/Z_notation
20:10:28 <imode> substitute C for your language of choice.
20:11:05 <imode> put it to you this way: if I was handed two text files, how could I tell which one is a specification.
20:11:28 <arseniiv> then you should be able to take it as the specification of that machine => reference implementation, yeah
20:11:28 <lf94> Right...by whoever tells you...
20:11:29 <imode> Z is good. TLA+ is good.
20:12:02 <lf94> The nice thing about an English spec though is that it's tech agnostic
20:12:04 <imode> arseniiv: pretty much what I'm getting to.
20:12:07 <imode> lf94: oh really?
20:12:21 <imode> what does that have to do with technical specifications written in it?
20:12:52 <lf94> Because you don't need to depend now on things with their own specs
20:13:02 <lf94> spec rabbit hole
20:13:13 <imode> you have to introduce new terms, some of which you may have imported from other piece of literature, which may depend on other pieces...
20:13:32 <imode> just because you have adopted a vocabulary does not mean there's not a chain of documents that defined that vocabulary.
20:13:43 <arseniiv> I like taking math examples when I think about interfaces or specs or something, though I don’t know a way to define loose spec following in general
20:13:48 <lf94> There is some research project in this discussion. :p
20:14:17 <arseniiv> for example, a field; field axioms are an interface, or a spec, and concrete fields are its implementations
20:14:18 <imode> lf94: here's a challenge. I hand you two text files, you build me a decider to determine which one's the specification.
20:14:29 <lf94> undecidable obviously
20:14:34 <lf94> it's whatever you tell me is
20:14:35 <arseniiv> (field axioms + the language)
20:14:39 <imode> correct. so why are you trying to approximate it.
20:14:54 <lf94> right
20:14:56 <imode> you are confusing a technical issue with a human one.
20:14:59 <lf94> so I guess now the conversation changes
20:15:04 <lf94> are english or code specs better?
20:15:18 <imode> define better.
20:15:24 <imode> and why do we have to have a "better".
20:15:32 <lf94> good point
20:15:48 <imode> an underspecified specification can exist regardless of language.
20:15:58 <imode> a nonconforming implementation can exist regardless of language.
20:16:11 <lf94> are english or code specs better for long term archival of instructions to build something?
20:16:47 <arseniiv> but if we have, say, a finite field? this is too not a concrete thing, it could be another spec, but it clearly “implements” a field spec
20:16:56 <imode> 1. why archival. 2. can you expect humans to be able to read either language in 10,000 years? 3. is the result even runnable in 10,000 years?
20:17:56 <imode> I can have some paper tape containing the baudot encoded specification of a piece of software. it does not mean that 1. someone will be around to read it. 2. a machine is available to decode it. 3. a human will be around to read it. 4. hardware will be present to run the result.
20:19:00 <imode> 1 and 3 are different. 1 pertains to anything that has consciousness and the ability to read symbols. 3 pertains to humans and human languages specifically.
20:19:01 <lf94> "why archival" is like "why exist"
20:19:15 <lf94> archival so it can exist again, if it a useful tool.
20:19:28 <lf94> 2. i definitely expect english to be read in 10,000 years.
20:19:37 <imode> what is so useful a tool that it cannot last through ages on its own.
20:19:54 <lf94> an obscure one :)
20:20:08 <imode> we have not stopped using hammers. they are useful tools. I am not aware of an "archival grade hammer".
20:20:09 <lf94> what do you mean by 3
20:20:30 <lf94> the spec of a hammer fits in your brain though
20:20:36 <lf94> literally one look at a hammer -> bam you have the spec
20:20:49 <imode> aha, you've come across a clue.
20:21:00 <lf94> all code is logically complex though.
20:21:07 <imode> that's an odd presumption.
20:21:08 <lf94> it's a big "problem"
20:21:17 <lf94> it's true
20:21:26 <imode> have you ever written a piece of code that you could in good conscience throw away.
20:21:45 <lf94> all code I've written is basically "thrown away".
20:21:52 <lf94> I think the only code that isn't worth throwing away is like, assembly
20:22:01 <kmc> a lot of code is written to be thrown away and then isn't
20:22:04 <kmc> and just grows like a katamari
20:22:11 <arseniiv> <lf94> are english or code specs better for long term archival of instructions to build something? => as the other time, I’d suggest the examples are the king. If we have a language and many various means to illustrate its structure and semantics even just internally, some one could understand it. But not without many examples. E. g. what’s the sense of this language?: { ε, ac, bc, abcc, aabccc, abbccc, aabbcccc, … } — probably
20:22:11 <arseniiv> you’ll recognize what is that “…”, but if I showed you only { ac, bc }, would you be that sure? (hopefully no)
20:22:35 <imode> concepts that last centuries are ones simple enough to be rediscovered at a glance by common humans.
20:23:06 <imode> either as self-evident consequences of the universe we live in or as incredibly popular ideas that never fell out of following.
20:23:40 <lf94> so concepts mean more than specs?
20:23:54 <lf94> mean more / are more valuable
20:24:07 <lf94> I would say that makes specs even more valuable
20:24:31 <imode> the concept of a turing machine has lasted a century in about 10 or more years.
20:24:49 <imode> 1936, iirc.
20:25:23 <lf94> but a turing machine has a spec
20:25:32 <imode> a turing machine is a concept. it has a definition.
20:25:45 <lf94> a spec is a just a giant definition isnt it
20:25:51 <imode> why giant?
20:26:01 <lf94> a definition is usually short, in the common sense
20:26:17 <imode> "to be called a square, a rectangle's sides have to be equal in length."
20:26:23 <arseniiv> so concepts mean more than specs? => personally I’d say it depends. A concept may be pretty vague and work, which means there are noncanonical choices to be made to make it a complete spec but any of that choices would make a useful thing exchangeable with things resulted from other choices
20:26:44 <imode> I'd say that's a specification for a square.
20:26:47 <lf94> ok so let me ask this then
20:26:59 <arseniiv> for example should the tape of TM be infinite in all directions or just in one?
20:27:03 <lf94> would you rather write a spec in code, or in english, knowing it has to last the next 150 years?
20:27:10 <imode> arseniiv: just one. as defined by turing.
20:27:46 <imode> I'd say code. because I have a runnable example of it. but why not _both_.
20:27:58 <lf94> You can do both of course
20:28:06 <imode> I have an english description of Mode, I have a Go description of Mode, I have a C description of Mode.
20:28:06 <lf94> More work :)
20:28:12 <arseniiv> imode: hm I should have picked another thing to illustrate my argument then
20:28:15 <lf94> Having many descriptions is probably the best
20:28:25 <imode> if you wanna last years the key is redundancy.
20:28:31 <imode> if you wanna last centuries the key is virality.
20:29:00 <arseniiv> pretty aphoristic
20:29:04 <lf94> lol
20:29:42 <arseniiv> . o O ( if you wanna last millenia then no luck )
20:29:52 <lf94> Thank you imode for the discussion :)
20:30:10 <arseniiv> (hm there should be something closer to million years)
20:30:13 <lf94> Based on this, I would build an English spec as a generalization of the thing I'm building
20:30:19 <imode> np. if I had to offer a piece of advice, don't focus on building the monolith from 2001. build things that are so small they're universal and portable, then evangelize the fuck out of them.
20:30:26 <imode> the things you write are transient. the good bits are in them somewhere.
20:30:34 <lf94> So it would be specified as I build, since you encounter problems as you build
20:31:05 <lf94> That's a good idea you know
20:31:08 <lf94> "micro specs"
20:31:19 <esowiki> [[Pac]] https://esolangs.org/w/index.php?diff=66952&oldid=66950 * JonoCode9374 * (+1520) /* Links */
20:31:28 <lf94> or specs so small they really are just definitions of many things
20:31:34 <arseniiv> OTOH gluing different standalone programs is the part I’m least comfortable with
20:31:48 <imode> if it's small enough you can throw it away and rewrite it from memory it's probably worth keeping.
20:35:43 <imode> one has to eventually realize they're going to die eventually. and short of inscribing the details of their thoughts/software/language/etc on a chemically stable medium orbiting a planetary body with a stable orbit, the things you do have to carry on to the next generation, and the one after that... etc.
20:43:16 <imode> lf94: question, what motivated your line of questioning?
20:45:02 <imode> https://github.com/narenratan/jonesforth_arm64_apl this is nuts.
20:49:51 <imode> lf94: didn't you say you wanted an APL-style language that maps neatly to assembly and has first-class functions and comprehension syntax?
20:54:16 <lf94> yeah
20:54:18 <lf94> is this it?
20:54:20 <lf94> :D
20:55:03 <lf94> imode: what motivated me is writing software right now is a big mental hurdle because of human reasons
20:55:14 <lf94> i want to write things that last
20:55:24 <imode> what human reasons?
20:55:25 <lf94> the only lang I see this is true of is anything in C
20:55:47 <lf94> I just cant get over that a lot of shit I write is just going to rot
20:56:17 <imode> what have you written?
20:59:39 <lf94> Most of the stuff of value I've written in JS
21:00:13 <imode> what're the things you value?
21:00:19 <lf94> base64 over irc; steganographic program to hide text in text; a level viewer
21:00:33 <lf94> things that have actual use as tools
21:00:52 <lf94> https://github.com/lf94
21:06:42 <imode> and why will they rot?
21:07:24 <imode> you seem to have written a good many useful things, I don't know why you think they'll "rot".
21:09:36 <lf94> I dunno, I expect none of this to work after 20 years.
21:09:44 <lf94> _Maybe_ some Rust stuff.
21:09:52 <imode> can you give me a justification as to why you think that.
21:10:21 <imode> the technology required to run the things you wrote isn't exactly uncommon.
21:10:29 <imode> complex. but not uncommon.
21:10:52 <imode> along with that, a lot of this is certainly transcribable to a new language.
21:23:16 <imode> have kids, teach them to maintain your code. easy way.
21:25:07 <imode> I should build a Mode-to-WASM transpiler.
21:25:21 <imode> cash in on the eventual hype.
21:40:41 -!- andrewtheircer has joined.
21:40:44 <andrewtheircer> hi
21:44:50 <imode> hi.
21:45:00 <andrewtheircer> i have an eso idea
21:45:40 <imode> is it on the wiki.
21:45:48 <andrewtheircer> no
21:46:01 <andrewtheircer> you have a 2d table with circles standing up -- wheels
21:46:06 <andrewtheircer> the wheels are divided into segments
21:46:21 <andrewtheircer> you can push a wheel and make it roll for a bit
21:46:34 <andrewtheircer> a wheel hitting a wheel perpendicular to itself will make it drop
21:46:49 <andrewtheircer> dropped wheels are useless
21:47:09 <andrewtheircer> two wheels must contact in specific ways to do stuff
21:48:49 -!- Taneb has quit (*.net *.split).
21:48:49 -!- zemhill_________ has quit (*.net *.split).
21:54:07 -!- Taneb has joined.
21:54:07 -!- zemhill_________ has joined.
22:09:32 <lf94> imode the hype has come and gone
22:09:37 <lf94> around wasm
22:12:59 <imode> I could probably just generate assembly using Mode at this point...
22:13:48 <imode> maybe I should toy with that over the week.
22:15:09 <imode> having multiple targets is going to be a little challenging. I guess, anyway. the same forms are gonna be generated regardless of the architecture.
22:15:20 <andrewtheircer> i like corewar
22:16:05 <imode> dup drop swap last new zero one add subtract while repeat equal less
22:16:11 -!- andrewtheircer has quit (Remote host closed the connection).
22:16:23 <imode> process run halt
22:16:26 <imode> 16 commands.
22:16:27 <arseniiv> sounds like a good mantra
22:17:01 <imode> :.;$,01+-[]=<{}#
22:17:04 <arseniiv> once I had an avatar which depicted all reserved words of a language
22:17:43 <arseniiv> BTW I really like your idea with {}
22:17:52 <arseniiv> what does # do and where is `self`?
22:18:06 <imode> # is 'self'.
22:18:24 <imode> but it can also be 'halt', if you start each process as having its identifier in the queue.
22:18:52 <arseniiv> polymorphism of specifications
22:18:55 <imode> so 16 commands either way. 'halt' is unneeded: you can always phrase things so that termination is at the end.
22:19:15 <imode> yeah, I'm trying to specify "core" vs. "extended" command sets.
22:19:22 <imode> I have a theory that ,1[] is all you need.
22:19:49 <arseniiv> seems too minimal
22:20:26 <lf94> imode target subleq
22:20:37 <lf94> one instruction set computer
22:20:55 <lf94> this is actually one of my goals
22:20:59 <lf94> when i make a lang
22:25:47 <arseniiv> I like that I liberated myself from μ-recursion when generalizing Minsky machine
22:30:46 <arseniiv> now maybe we need a good name for the operator
22:30:46 <arseniiv> x :: (as -> b) -> (as -> b -> b) -> (as -> c) -> (as -> b -> c) -> b
22:30:46 <arseniiv> x z s q f args = search (z args) where
22:30:46 <arseniiv> search i = if f args i == q args then i else search (s args i)
22:31:58 <arseniiv> something like <find-first-or> maybe
22:32:27 <lf94> existsOr
22:33:39 <lf94> Or do what the js community is doing, using ?
22:33:58 <lf94> object.prop?.inner?.innerinner?
22:34:04 <arseniiv> I meant -or as a suffix there :D
22:35:21 <arseniiv> there’s no or, if the value doesn’t occur in the range of `f args`, we loop forever
22:36:06 <lf94> findOrFail
22:36:08 <lf94> B)
22:36:19 <lf94> no, better: find-or-floop
22:36:23 <lf94> (floop -> forever loop
22:36:24 <lf94> )
22:36:44 <arseniiv> this is one of the ways to add TC to a set of operations on several inductive types
22:37:02 <arseniiv> μ operator doesn’t generalize nicely
22:37:03 <lf94> add looping: turing complete, right?
22:37:15 <arseniiv> yeah, something like that
22:37:47 <arseniiv> when I generalized MM, I saw there were many noncanonical choices made
22:37:54 <arseniiv> I unmade them
22:38:26 <arseniiv> this had an effect so that I want to evangelize generalized MM somewhere :P
22:38:36 <lf94> lol
22:38:48 <lf94> I'm not familiar with what MM is - is it that counting machine?
22:38:56 <arseniiv> yeah
22:38:59 <lf94> ah ok
22:39:13 <lf94> I've really had subleq machine stuck in my head for the past week.
22:39:30 <arseniiv> actually kritixilithos had mentioned it earlier today, I mean not a generalized one
22:39:44 <arseniiv> it has only INC and JZDEC
22:40:02 <arseniiv> lf94: oh sorry I’m conflating two frameworks now
22:40:33 <arseniiv> when talking about that `x` operator, I talked about generalized recursive functions
22:40:47 <lf94> > generalize recursive functions
22:40:49 <lambdabot> error:
22:40:49 <lambdabot> • Variable not in scope: generalize :: t0 -> t1 -> t
22:40:49 <lambdabot> • Perhaps you meant ‘generate’ (imported from Lambdabot.Plugin.Haskell.E...
22:40:55 <lf94> what is that exactly
22:40:55 <kmc> > butts
22:40:56 <lambdabot> error: Variable not in scope: butts
22:40:59 <lf94> or is this just fancy talk
22:41:05 <kmc> @quote
22:41:05 <lambdabot> Weyl says: In these days the angel of topology and the devil of abstract algebra fight for the soul of every individual discipline of mathematics.
22:41:06 <lf94> for a function that can iterate over any x
22:41:26 <lf94> map: [T] -> [Q]
22:41:31 <lf94> something like that
22:42:11 <b_jonas> arseniiv: isn't that basically a pointer machine though?
22:42:18 <arseniiv> lf94: like simple recursive functions, which is a definition of computability for functions on N, but the generalized ones take on any finite set of algebraic types
22:42:44 <lf94> sorry all that went over my head
22:42:48 <arseniiv> b_jonas: which one, { INC, JZDEC }?
22:42:55 <b_jonas> you know, one that has registers that point into algebraic structures allocated on the heap, can construct new algebraic structures with their fields filled from registers, test between variants, have arbitrary control
22:43:06 <lf94> > computability for functions on N <
22:43:09 <lambdabot> <hint>:1:36: error:
22:43:09 <lambdabot> parse error (possibly incorrect indentation or mismatched brackets)
22:43:10 <b_jonas> arseniiv: the generalized Minsky Machines
22:43:17 <lf94> what does this really mean
22:43:23 <arseniiv> lf94: I’m to blame to, I conflated two things I had thoughts about and hadn’t even noticed it quickly
22:43:49 <lf94> "N" <- natural numbers?
22:43:49 <arseniiv> lf94: I’ll better give a link, wait a sec
22:43:52 <arseniiv> yeah
22:44:00 <lf94> ok what I said then sounds right
22:44:03 <lf94> as an example
22:44:09 <lf94> map: [T] -> [Q]
22:44:27 <lf94> loop: [T] -> ???
22:44:33 <arseniiv> one of the formulations: https://en.wikipedia.org/wiki/%CE%9C-recursive_function
22:46:11 <arseniiv> though I like a variant I saw in Manin’s book on computability, it allows several results as well as arguments, adds function concatenation and makes some things more natural. Though I extended on it after all too :o
22:47:28 <arseniiv> b_jonas: yeah, if there is any exposition on those I’ll be glad if someone points me to it, I don’t want to claim anything already invented
22:47:44 <lf94> arseniiv: i'm still confused :v
22:47:56 <lf94> This stuff is written as if someone reading is reading it as a reference...
22:48:05 <arseniiv> lf94: sorry…
22:48:21 <lf94> right now I'm interpreting this as some peano number stuff
22:48:27 <arseniiv> I hope someone will find a better link. Hm
22:48:31 <lf94> so the numbers are defined via induction
22:48:34 <arseniiv> yeah it’s pretty close
22:48:44 <arseniiv> though here we already need them defined
22:48:45 <lf94> but I'm very confused about the goal here
22:48:54 <lf94> or the generalization
22:49:00 <lf94> is the generalization just saying, we can do more than numbers?
22:49:13 <arseniiv> the goal is to define all computable functions in that simple inductive manner
22:49:16 <lf94> (natural numbers)
22:49:20 <lf94> ahhhhh
22:49:28 <arseniiv> <lf94> is the generalization just saying, we can do more than numbers? => yeah
22:49:52 <lf94> so we are saying generalized u-recursion is turing complete?
22:49:54 <lf94> because it can make any program?
22:49:56 <arseniiv> for example we can formulate it for binary strings, or natural numbers + lists of them
22:50:00 <lf94> er
22:50:10 <lf94> you know what i mean
22:50:18 <lf94> yeah yeah
22:50:31 <lf94> we can define any computable function :D
22:50:34 <lf94> with this
22:50:38 <lf94> very very cool
22:50:40 <arseniiv> yeah, it can, as the regular one is its instance
22:50:45 <arseniiv> (almost)
22:51:03 <arseniiv> (as I’m breaking with μ for x)
22:51:29 <arseniiv> but machines are prettier
22:51:50 <arseniiv> they don’t need to have extra stuff, only constructors and destructors
22:52:43 <arseniiv> constructors like INC and CLR which should be explicit when we generalize, and destructors like JZDEC, again it would become more complex unfortunately
22:52:56 <lf94> "machines are prettier", like lambda calc vs turing machine?
22:53:15 <arseniiv> in this case I’m on the side of λ
22:53:26 <lf94> but you said 'machines are prettier'
22:53:28 <arseniiv> TM is too complex compared with MM, for me
22:53:39 <arseniiv> I meant GMM :D
22:53:44 <lf94> oh
22:53:53 <lf94> I like the simplicity of lambda
22:53:58 <imode> something tells me that 01[] is suitable for turing completeness.
22:53:58 <lf94> but it's not for free
22:54:15 <lf94> imode: there is a actual competition to determine the smallest turing machine
22:54:16 <arseniiv> even with de Bruijn indices?
22:54:20 <lf94> symbols:states
22:54:25 <lf94> I think the smallest is 2:3 or something
22:54:33 <lf94> arseniiv: those are the best :)
22:54:36 <imode> don't see how that's relevant.
22:54:49 <lf94> imode: because you can verify if having 4 symbols is enough.
22:54:57 <imode> not really, no.
22:55:05 <imode> not without actually, y'know, doing it.
22:55:10 <arseniiv> but imode’s machine is the other sort of machine
22:55:12 <lf94> I mean I guess 1 symbol is enough
22:55:14 <lf94> (See: iota)
22:55:44 <imode> 0 enqueues a 0, 1 enqueues a 1, [ dequeues a symbol, and if it's 1, advances 1 instruction, otherwise it skips past the matching ].
22:56:25 <lf94> (I'm incorrectly mixing shit - sorry again)
22:56:43 <imode> though I'm trying to figure out how to, for example, encode a 'not': something that detects a 1 and enqueues a 0, and detects a 0 and enqueues a 1.
22:56:58 <imode> [0] would be the former.
22:57:20 <lf94> 0[]1?
22:57:37 <lf94> mm
22:57:41 <lf94> "detects a 1"
22:57:44 <lf94> where does the input come from
22:57:47 <lf94> where does it go
22:57:54 <lf94> at the beginning?
22:58:04 <lf94> (input)(program) ?
22:58:05 <imode> it's a queue machine. read above.
22:58:23 <imode> if I do 0<not code> I expect a 1 in the queue.
22:58:30 <imode> if I do 1<not code> I expect a 0 in the queue.
22:59:01 <imode> you can say "if I dequeue a 1, then enqueue a 0." but you can't say "if I dequeue a 0, then enqueue a 1".
22:59:28 <imode> [0] would take a 1 and spit out a zero.
22:59:31 <arseniiv> hm suddenly I remember a question. Once I thought up an extension to DFAs to make a bunch of those I worked on smaller: an “ε” transition which was run only if all others couldn’t, without consuming an input symbol. Since then I realized it’d be better to call that an else-transition, and the DFA an else-DFA, as it’s not like NFA/ε-NFA at all, and it translates to a DFA quite trivially. Now, does it have maybe a better-known
22:59:31 <arseniiv> name?
22:59:42 <imode> actually it has to be [00]
23:00:04 <lf94> imode: but what about encoding anything past the closing ]
23:00:19 <imode> maybe [00][10]?
23:00:31 <lf94> yes
23:00:35 <imode> mm, no.
23:00:35 <lf94> nice
23:02:05 <imode> 0 [00]1[10] maybe?
23:02:19 <lf94> [0][1] ? but your "[ deques" comment is throwing me off
23:02:24 <imode> the first [00] consumes the enqueued value and does nothing. it then enqueues a 1.
23:02:25 <lf94> dequeue
23:02:33 <arseniiv> imode: are […] still the loopy brackets or something else?
23:02:37 <imode> arseniiv: loopy, yeah.
23:02:56 <imode> [ dequeues a value and, if it's a 1 symbol, enters the loop.
23:02:59 <imode> otherwise it skips it.
23:02:59 <arseniiv> though I’m not clever atm anyway
23:03:42 <lf94> given we put 1 on stack: [0][1] -> 0[1] -> 0
23:03:50 <imode> it's not a stack.
23:03:54 <lf94> whoops, queue
23:04:14 <lf94> this is too brain bending :D
23:04:15 <imode> given a 0, the first [00] consumes the enqueued value and does nothing. it then enqueues a 1, which fires the next loop, which enqueues a 1.
23:05:11 <imode> should actually be [00]1[01]
23:06:55 <imode> given a 1, it dequeues a 1, enqueues a 0, then enqueues a 1, which fires the loop, enqueues a 1, and then terminates..
23:07:04 <imode> yeah I don't think 01[] is a valid command set. hm.
23:07:34 <imode> I guess this would kind of fall under BF instruction minimization but for queue automata.
23:13:12 <imode> hm... what about concurrency primitives?
23:15:29 <imode> the pi calculus is interesting, but I never worked out how it does loops.
23:17:13 <kmc> lööps
23:17:30 <imode> brother
23:17:43 <kmc> imode: there's a 'replication' combinator written as !P
23:17:53 <imode> I'm unsure as to how it works.
23:18:32 <kmc> !P == !P | !P
23:18:46 <imode> infinite forks, I guess?
23:18:46 <kmc> or P | !P rather
23:19:04 <kmc> in other words if P is blocking on a read, and gets one, then another P is immediately spawned
23:19:14 <kmc> i had fun making this http://mainisusuallyafunction.blogspot.com/2011/09/lambda-to-pi.html
23:19:15 <imode> I see.
23:19:35 <kmc> and it discusses this
23:19:41 <imode> neat! I'm reading it now.
23:19:51 <kmc> though I'm not 100% sure I got it right
23:20:08 <kmc> i'm proud of thinking up the compilation from lambda calculus myself
23:20:20 <kmc> there is a lot of esoprogramming-ish stuff on that blog if you enjoy that
23:20:37 <kmc> man, it's been a while
23:20:38 <imode> I'll bookmark and add to my reading list, thanks.
23:20:41 <kmc> I wrote that article more than 8 years ago
23:20:46 <kmc> I was a very different person in many ways
23:20:55 <imode> I've been wanting to build a concatenative version of a process calculus.
23:22:04 <arseniiv> <kmc> i had fun making this http://mainisusuallyafunction.blogspot.com/2011/09/lambda-to-pi.html => oh, interesting. Will read tomorrow!
23:22:23 <arseniiv> technically today but after some sleep
23:23:10 <imode> "loop forever"
23:23:24 <imode> how is looping expressed in your formulation of it, kmc?
23:23:25 <arseniiv> hm is there a typed π-calculus?
23:23:58 -!- b_jonas has quit (Remote host closed the connection).
23:24:12 <kmc> imode: when a process blocks it forks an the parent returns
23:24:20 <kmc> if the parent is a replicate then it will respawn
23:24:23 <kmc> i think that's how i did it
23:24:26 <kmc> like i said it's been 8 years
23:24:38 <imode> ah, hehe.
23:26:12 <arseniiv> bye all :P
23:26:27 <imode> night arseniiv
23:26:35 <kmc> yeah from reading the code, that looks right
23:26:39 <kmc> run env (Rep p) = forever (run env p)
23:27:01 <kmc> arseniiv: there may be a typed version
23:27:06 <kmc> but in the most basic version there is only one type
23:27:08 <kmc> (channels)
23:27:12 <imode> so !x(y).0|`x<1>.0
23:27:29 <imode> the left half of the fork would block.
23:27:31 <kmc> the only thing you can send through a channel is another channel
23:27:39 <imode> ugh.
23:27:41 <imode> right.
23:28:05 <imode> so how do you construct channels, then...?
23:28:15 <imode> oh, right, that v syntax.
23:28:39 <imode> so !x(y).0|`(vy)x<y>.0
23:29:16 <imode> what does this mean? I intend it to mean "the first process will replicate itself for every request".
23:30:39 -!- arseniiv has quit (Ping timeout: 264 seconds).
23:40:01 <imode> so that repeatedly forks.
23:40:05 <imode> on the left.
23:42:44 <imode> seems grossly unspecified..
23:47:10 <imode> the pi calculus seems to be an imperative calculus anyway. each of the statements can be seen as an instruction.
23:47:30 <imode> so I doubt it'd be far off to use [] and {}.
23:54:59 <imode> how in the world do you form an if statement in the pi calculus. o_O
23:55:45 <kmc> imode: first you need to decide on an encoding for bools
23:56:20 <imode> what's a common one?
23:56:24 <kmc> it could for example be: recv x, recv y, recv z, send z to x if T or to y if F
23:56:26 <kmc> i don't know
23:56:31 <kmc> i haven't studied pi calculus much
23:56:37 <imode> mm.
23:56:39 <kmc> I pulled that out of my ass just now based on church numerals
23:56:42 <imode> heh.
23:56:51 <kmc> slash church booleans
23:56:55 <imode> I feel like you could eliminate [].
23:57:04 <kmc> and indeed if you take church bools and run them through my lambda-to-pi thing then i think they'll work like that
23:57:27 <kmc> since i implement functions as a process that recieves arguments and a continuation channel and sends the result to the continuation channel
23:57:40 <imode> mmm.
23:59:03 <imode> T could be x(a).y(b).z(c).`z<a>.P
23:59:17 <imode> err.
23:59:37 <imode> T could be x(a).y(b).z(c).`c<a>.P
23:59:54 <imode> and F could be x(a).y(b).z(c).`c<a>.P
2019-11-04
00:00:41 <imode> https://en.wikipedia.org/wiki/Ambient_calculus this is interesting.
00:01:39 <kmc> i don't like this syntax
00:01:49 <imode> which one, ambient or pi.
00:01:55 <imode> I like neither.
00:02:33 <kmc> pi
00:02:59 <imode> I feel like the unrestricted use of channels is a problem.
00:03:07 <imode> no one man needs all those channels.
00:03:32 <kmc> 800 channels and nothing on...
00:04:33 <imode> T in Mode would be { receive receive receive roll drop last send }, while F in mode would be { receive receive receive roll roll drop last last send }
00:06:22 <kmc> i don't know this language, how does it work
00:06:28 <kmc> is it a stack based concurrent calculus?
00:06:55 <imode> close. queue based.
00:07:07 <kmc> ok
00:08:06 <imode> each process (the stuff between { and }s) gets allocated a single channel. `receive` always references that channel.
00:08:47 <imode> `send`, though, references any channel at the head of the queue, and sends the value after that channel through it.
00:08:48 <HackEso> ​/srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: send`,: not found
00:08:54 <imode> sorry.
00:10:06 <imode> I have stuff like looping constructs, but I wonder if I can render them obsolete by treating { and } as looping processes with a halt operation.
00:12:15 <imode> one sec..
00:12:16 -!- imode has quit (Quit: WeeChat 2.6).
00:15:05 -!- imode has joined.
00:15:42 <imode> forking a process for every loop could be.. useful, I suppose.
00:22:19 <imode> an if construct would be @{VVV:..$^}{VVV:..$^}^^^ sans some shuffling ops.
00:22:31 <imode> it's just @ true true send send send
00:28:02 <pikhq> I feel like that'd be relatively easy to build on top of BEAM.
00:29:16 -!- imode has quit (Ping timeout: 240 seconds).
00:35:16 -!- xkapastel has joined.
00:41:14 -!- FreeFull has quit.
00:46:07 -!- tromp_ has joined.
00:48:24 -!- tromp has quit (Ping timeout: 246 seconds).
01:07:55 <lf94> my lang is built off of pi calculus
01:08:14 <lf94> http://leefallat.ca/notes/p-lang/rambling-2019-10-20.html
01:08:26 <lf94> the whole thing is just a vague blur
01:08:29 <lf94> :)
01:28:29 -!- imode has joined.
01:28:49 <imode> pikhq: it really would. I've been trying to build it in Go.
01:29:40 <pikhq> Fair enough. Could probably get it to work alright there. Dunno if it'd be efficient, but 🤷🏻‍♀️
01:31:14 <imode> it's some of the same concepts. every process gets a single channel and can accept channels owned by other processes. so very much like erlang/BEAM's model of processes and pids. but you can easily map them to goroutines and channels.
01:32:26 -!- oerjan has quit (Quit: Nite).
01:36:21 -!- imode has quit (Quit: WeeChat 2.6).
01:52:07 -!- imode has joined.
01:57:09 <imode> I had an epiphany: 01[] may still very well be turing complete. you just need to be creative in how you format things.
01:57:20 <imode> 010 can stand for false, and 0110 can stand for true
01:59:52 <imode> I had a formulation for NOT and AND.
02:00:13 <imode> along with dup. and swap.
02:26:54 <imode> [][] is drop in this.
02:27:10 <imode> 0110 010 [][] -> 010
02:36:21 <imode> duplicate is.. difficult. I'm having a hard time recognizing compound symbols.
02:38:53 <imode> ideally I'd have something like...
02:39:09 <imode> 0110 <accept 0110> 010 <end of accept 0110>
02:42:32 <imode> I could probably brute force search it (with an evaluation step limit), but...
02:45:03 -!- xkapastel has quit (Quit: Connection closed for inactivity).
02:47:40 <imode> oh well. concurrency primitives might yield something better. who knows.
03:38:10 -!- MDude has quit (Read error: No route to host).
03:40:55 -!- MDude has joined.
04:25:41 -!- ArthurStrong has joined.
04:32:00 <esowiki> [[Newbiefuck]] https://esolangs.org/w/index.php?diff=66953&oldid=53250 * Rdebath * (-209) Fix for bignum cells and add expected result
05:29:54 <imode> 01[]$ presents an easier gateway to being turing complete.
05:46:48 <imode> 0110 [][[010[]0$]0$] recognizes 0110.
06:17:44 -!- moony has quit (Ping timeout: 276 seconds).
06:18:52 -!- iovoid has quit (Ping timeout: 268 seconds).
06:19:02 -!- probability has quit (Ping timeout: 276 seconds).
06:19:29 -!- Bowserinator has quit (Ping timeout: 268 seconds).
06:24:43 -!- iovoid has joined.
06:25:39 -!- imode has quit (Ping timeout: 268 seconds).
06:27:51 -!- iczero has joined.
06:28:39 -!- moony has joined.
06:28:56 -!- Bowserinator has joined.
07:02:42 -!- tromp_ has quit (Read error: Connection reset by peer).
07:03:09 -!- tromp has joined.
07:08:08 -!- aloril has quit (Ping timeout: 246 seconds).
07:12:07 -!- aloril has joined.
07:24:48 -!- Bowserinator has quit (Quit: Blame iczero something happened).
07:25:12 -!- iovoid has quit (Quit: iovoid has quit!).
07:25:12 -!- iczero has quit (Quit: rip).
07:25:17 -!- moony has quit (Quit: Bye!).
07:33:31 -!- moony has joined.
07:34:25 -!- Bowserinator has joined.
07:39:13 -!- iczero has joined.
07:40:22 -!- iovoid has joined.
08:08:26 -!- hppavilion[1] has joined.
09:04:54 -!- atslash has joined.
09:10:13 -!- atslash has quit (Ping timeout: 265 seconds).
09:11:02 -!- atslash has joined.
09:39:30 <esowiki> [[User:TonyBrown148]] https://esolangs.org/w/index.php?diff=66954&oldid=62379 * TonyBrown148 * (+52)
09:43:51 -!- cpressey has joined.
10:22:04 <cpressey> `? password
10:22:08 <HackEso> The password of the month is not what it seems
10:22:34 <cpressey> Huh, spaces are allowed in the password of the month. Okay.
10:22:58 <cpressey> (Or ARE they...?)
10:54:59 -!- ais523_ has joined.
10:55:42 <ais523_> it's a different month now anyway
10:55:53 <ais523_> `le//rn password//The password of the month is mostly irrelvant.
10:55:56 <HackEso> Relearned 'password': The password of the month is mostly irrelvant.
10:56:05 <ais523_> `le//rn password//The password of the month is mostly irrelevant.
10:56:10 <HackEso> Relearned 'password': The password of the month is mostly irrelevant.
11:02:48 <cpressey> Ah, I assumed that /was/ the new password, seeing as it's the 4th already today.
11:02:55 <cpressey> Slow!
11:03:31 <ais523_> I'm not even sure why we have that thing anyway :-D
11:25:28 -!- wib_jonas has joined.
11:26:01 <wib_jonas> cpressey: spaces are technically allowed in a password, but not recommended, because on many keyboards, the space bar makes a very distinctive sound, making side channel attacks easier
11:28:50 <wib_jonas> and yes, it was the old password
11:29:28 <ais523_> I had the old one memorized, that's what you do with passwords, right?
11:34:33 <wib_jonas> ais523_: some people ask computers to memorize it.
11:34:36 <wib_jonas> or stick notes.
11:54:46 -!- arseniiv has joined.
11:55:07 <esowiki> [[The Program Is Mostly Ignored]] N https://esolangs.org/w/index.php?oldid=66955 * Ais523 non-admin * (+9322) new language
11:56:10 <esowiki> [[User:Ais523]] https://esolangs.org/w/index.php?diff=66956&oldid=66798 * Ais523 non-admin * (+35) +[[The Program Is Mostly Ignored]]
11:56:49 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=66957&oldid=66930 * Ais523 non-admin * (+36) /* T */ +[[The Program Is Mostly Ignored]]
11:56:59 -!- ais523_ has quit (Quit: quit).
11:57:26 <wib_jonas> "The Program Is Mostly Ignored" -- like in the pear tree?
11:59:20 <arseniiv> ehehe blockchain
12:03:08 <fizzie> `` hg log -T "{sub(r'-\d\d .*','',date|isodate)} {node}\n" wisdom/password | while read m r; do echo "$m: $(hg cat -r $r wisdom/password)"; done | paste
12:03:18 <fizzie> (It'll take a while.)
12:03:33 <HackEso> https://hack.esolangs.org/tmp/paste/paste.32417
12:05:05 <wib_jonas> fizzie: I tried such hg log -R {rev} -r 0: somefile | (while read m r; do hg cat -r "$r" | grep somestring; done) loops, to find the first revision . they seemed to not work too well for some reason, probably timeout or something
12:05:20 <wib_jonas> maybe I should look up in the docs of hg how to properly do that
12:06:52 <fizzie> Yes, it's pretty slow. Probably that password list also just barely made it.
12:14:49 <wib_jonas> fizzie: yeah, admittedly I tried it on quotes , which has among the longest history
12:15:16 <wib_jonas> what's the URL if I just want to clone the repository to do such dumb things locally?
12:15:26 <wib_jonas> `url wisdom
12:15:27 <HackEso> https://hack.esolangs.org/repo/file/tip/wisdom
12:15:28 <wib_jonas> `url quotes
12:15:29 <HackEso> https://hack.esolangs.org/repo/file/tip/quotes
12:16:47 <wib_jonas> yeah, that seems to work
12:16:49 <wib_jonas> `url
12:16:50 <HackEso> https://hack.esolangs.org/repo/
12:16:54 <wib_jonas> `whatis url
12:16:56 <HackEso> url(7) - uniform resource identifier (URI), including a URL or URN \ url(1hackeso) - print URL to view contents of a hackenv file \ url(8lambdabot) - no description
12:16:56 <wib_jonas> `? url
12:16:58 <HackEso> url? ¯\(°​_o)/¯
12:17:09 <wib_jonas> I should edit that
12:21:20 <wib_jonas> `whatis url
12:21:21 <HackEso> url(7) - uniform resource identifier (URI), including a URL or URN \ url(1hackeso) - print URL for a file in the hackenv hg repository and web access of the repository \ url(8lambdabot) - no description
12:25:06 -!- imode has joined.
12:32:56 -!- cpressey has quit (Quit: Imagine a pithy phrase in Latin here).
13:24:52 <imode> found 'roll'. 0[][1]0
13:25:43 <imode> 'dup' is gonna be harder.
13:29:50 <imode> recognize <number> = <number> [] ([ * <number>) [] <body> (0$] * <number>)
13:55:59 -!- hppavilion[1] has quit (Ping timeout: 276 seconds).
14:07:28 -!- imode has quit (Ping timeout: 265 seconds).
14:21:47 -!- xkapastel has joined.
15:21:31 -!- imode has joined.
15:35:56 -!- andrewtheircer has joined.
15:39:18 -!- andrewtheircer has quit (Remote host closed the connection).
15:44:53 -!- imode has quit (Ping timeout: 245 seconds).
15:46:53 -!- imode has joined.
16:10:46 -!- Bowserinator has quit (Quit: Blame iczero something happened).
16:11:16 -!- iovoid has quit (Quit: iovoid has quit!).
16:11:18 -!- moony has quit (Quit: Bye!).
16:11:19 -!- iczero has quit (Quit: rip).
16:23:47 -!- iczero has joined.
16:24:04 -!- Bowserinator has joined.
16:25:52 -!- iovoid has joined.
16:28:25 -!- moony has joined.
16:42:00 <arseniiv> wib_jonas: pointer machines seem to be unrelated to GMM
16:42:53 <wib_jonas> arseniiv: in that case what are GMM?
16:43:39 <arseniiv> before any better name arises, they are GMM ;)
16:44:05 <arseniiv> we could call them algebraic machines, for instance
16:44:41 <arseniiv> I think GMM is still a perfectly valid instance of register machine
16:44:42 <imode> remind me to ask you about your machines, arseniiv.
16:45:28 <arseniiv> it has registers, albeit typed ones which contain references to trees
16:45:36 <arseniiv> imode: how soon?
16:45:47 <imode> in the next day or so. ;)
16:46:23 <arseniiv> imode: do you use lambdabot messaging?
16:46:48 <imode> yeah.
16:47:37 <arseniiv> in this case ehehe
16:47:38 <arseniiv> @tell imode I remind you to ask me about my overgeneralized machines
16:47:38 <lambdabot> Consider it noted.
16:47:55 <wib_jonas> arseniiv: yes, that's how pointer machines work, if all the structures allocated on the heap are immutable. that's not the most common definition, usually people allow mutable structures, but I prefer the pure version.
16:48:13 <arseniiv> though maybe I’ll still remember it for myself tomorrow too
16:48:55 <imode> gratzi.
16:49:21 <arseniiv> wib_jonas: hm it seems I didn’t understand what a pointer machine is in general, then. I had read https://en.wikipedia.org/wiki/Pointer_machine
16:49:39 <arseniiv> there it seems they are different enough
16:50:52 <arseniiv> they write there: “Pointer machines cannot do arithmetic. Computation proceeds only by reading input symbols, modifying and doing various tests on its storage structure—the pattern of nodes and pointers, and outputting symbols based on the tests.” This is suspicious
16:51:49 <imode> TMs can't do arithmetic either.
16:52:08 <arseniiv> hm I probably misinterpret what that meant to mean, yeah
16:53:25 -!- imode has quit (Quit: WeeChat 2.6).
17:04:36 -!- wib_jonas has quit (Remote host closed the connection).
17:19:13 -!- xkapastel has quit (Quit: Connection closed for inactivity).
17:49:43 -!- LKoen has joined.
18:00:53 -!- Phantom_Hoover has joined.
18:08:46 -!- FreeFull has joined.
18:10:27 -!- LKoen has quit (Remote host closed the connection).
18:11:24 -!- kritixilithos has joined.
18:12:45 -!- LKoen has joined.
18:24:41 <esowiki> [[User:Arseniiv/Generalized Minsky machine]] N https://esolangs.org/w/index.php?oldid=66958 * Arseniiv * (+4231) initial commit
18:29:29 <esowiki> [[User:Arseniiv]] M https://esolangs.org/w/index.php?diff=66959&oldid=66638 * Arseniiv * (+44) own
18:31:04 <arseniiv> though I can go more technical
18:42:15 -!- ArthurStrong has quit (Quit: leaving).
18:51:12 -!- b_jonas has joined.
19:15:55 -!- kritixilithos has quit (Quit: leaving).
20:12:29 -!- hppavilion[1] has joined.
20:15:03 <b_jonas> [ _1^i.39
20:15:13 <b_jonas> j-bot?
20:28:47 -!- LKoen has quit (Remote host closed the connection).
20:55:14 -!- LKoen has joined.
20:56:14 -!- imode has joined.
21:20:26 -!- imode has quit (Ping timeout: 240 seconds).
21:49:32 -!- hppavilion[1] has quit (Ping timeout: 265 seconds).
22:02:22 -!- hppavilion[1] has joined.
22:21:50 <esowiki> [[User:Arseniiv/Generalized Minsky machine]] M https://esolangs.org/w/index.php?diff=66960&oldid=66958 * Arseniiv * (+820) forgot the interesting stuff
22:26:15 -!- oerjan has joined.
23:52:22 -!- hppavilion[1] has quit (Remote host closed the connection).
23:53:33 -!- hppavilion[2] has joined.
23:53:34 -!- hppavilion[1] has joined.
23:54:26 -!- arseniiv has quit (Ping timeout: 240 seconds).
2019-11-05
00:04:47 -!- 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.”).
00:06:19 -!- Melvar has quit (Ping timeout: 265 seconds).
00:07:38 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
00:08:59 -!- Sgeo has quit (Read error: Connection reset by peer).
00:09:26 -!- Sgeo has joined.
00:14:37 <oerjan> @tell imode assuming i understand what you mean by 01[], it is TC as you can encode cyclic tag in it: 100 = false, 1010 = true, 1010 [][bits] -> bits, 100 [][bits] -> nothing. [ [][...] ... [][...] ] loops through a list of productions.
00:14:37 <lambdabot> Consider it noted.
00:19:01 -!- Taneb has quit (*.net *.split).
00:19:01 -!- zemhill_________ has quit (*.net *.split).
00:19:41 -!- Melvar has joined.
00:21:54 <oerjan> ooh 3-echo tag
00:22:16 <oerjan> my brain occasionally tries to think about 2-echo tag without really getting anywhere
00:22:36 -!- FreeFull has quit.
00:22:41 -!- b_jonas has quit (Remote host closed the connection).
00:24:14 -!- Taneb has joined.
00:24:14 -!- zemhill_________ has joined.
00:40:44 <oerjan> i conclude that the haskell/esolangs overlap remains large https://www.reddit.com/r/esolangs/comments/dkxsqi/haskell_on_the_jvm_frege_vs_eta/
00:41:06 <oerjan> (that question was posted in the wrong subreddit - and still got sensible answers)
00:41:50 <oerjan> either that or reddit is putting things in the wrong place. i _did_ see some strange behavior in a thread i read yesterday.
00:42:01 <oerjan> but not quite out-of-subreddit strange
00:42:03 -!- aloril has quit (Ping timeout: 264 seconds).
00:48:53 -!- Taneb has quit (*.net *.split).
00:48:53 -!- zemhill_________ has quit (*.net *.split).
00:50:11 -!- tromp_ has joined.
00:50:12 -!- hppavilion[2] has quit (Quit: Leaving).
00:53:47 -!- tromp has quit (Ping timeout: 252 seconds).
00:54:18 -!- Taneb has joined.
00:54:18 -!- zemhill_________ has joined.
00:54:54 -!- aloril has joined.
01:19:38 -!- hppavilion[1] has quit (Ping timeout: 240 seconds).
01:26:16 <oerjan> bah, the us has switched off daylight savings time too. i was enjoying reading schlock mercenary an hour earlier!
01:26:50 <shachaf> What time zone is the author at?
01:26:59 <shachaf> Or rather what state and time zone.
01:27:27 <shachaf> Maybe there are multiple authors.
01:27:40 <shachaf> The point is, CA might switch to year-round DST.
01:31:15 -!- moony has quit (Ping timeout: 264 seconds).
01:32:21 -!- iczero has quit (Ping timeout: 265 seconds).
01:32:27 -!- iovoid has quit (Ping timeout: 264 seconds).
01:32:50 -!- Bowserinator has quit (Ping timeout: 265 seconds).
01:35:33 <fizzie> EU's planning to stop adjusting clocks from 2021 onwards, but each member state gets to decide whether they want to stick with the summer or the winter mode.
01:35:55 <shachaf> That seems fine.
01:36:00 <fizzie> (And with luck, Brexit's still unsolved at that point and UK will follow.)
01:39:36 -!- Bowserinator has joined.
01:40:03 -!- iczero has joined.
01:40:14 -!- iovoid has joined.
01:40:27 -!- moony has joined.
01:48:44 -!- Taneb has quit (*.net *.split).
01:48:44 -!- zemhill_________ has quit (*.net *.split).
01:54:26 -!- Taneb has joined.
01:54:26 -!- zemhill_________ has joined.
01:56:06 -!- imode has joined.
02:23:24 <esowiki> [[W (A)]] N https://esolangs.org/w/index.php?oldid=66961 * A * (+668) Created page with "{{lowercase}} [[w]] is a function-based [http://wren.io/ esoteric programming language] based on [http://wren.io/ wren]. It implicitly provides a lot of values that allows the..."
02:25:05 <esowiki> [[W (A)]] https://esolangs.org/w/index.php?diff=66962&oldid=66961 * A * (+178)
02:27:38 <esowiki> [[W (A)]] M https://esolangs.org/w/index.php?diff=66963&oldid=66962 * A * (+249) /* An example */
02:32:14 <esowiki> [[W (A)]] https://esolangs.org/w/index.php?diff=66964&oldid=66963 * A * (+283)
02:35:12 <esowiki> [[99 bottles of beer]] https://esolangs.org/w/index.php?diff=66965&oldid=66686 * A * (+100) /* External resources */
02:48:49 -!- Taneb has quit (*.net *.split).
02:48:49 -!- zemhill_________ has quit (*.net *.split).
02:53:53 -!- Taneb has joined.
02:53:53 -!- zemhill_________ has joined.
03:06:08 -!- Phantom_Hoover has joined.
03:13:42 -!- oerjan has quit (Quit: Nite).
03:28:02 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
03:36:34 -!- imode has quit (Ping timeout: 265 seconds).
04:04:51 -!- ArthurStrong has joined.
04:17:21 -!- hppavilion[1] has joined.
05:48:19 <myname> so, what are the requirements for a language to write a quine in it
05:48:44 -!- Taneb has quit (*.net *.split).
05:48:44 -!- zemhill_________ has quit (*.net *.split).
05:48:56 -!- zemhill_________ has joined.
05:49:28 -!- Taneb has joined.
06:18:10 -!- heroux has quit (Ping timeout: 268 seconds).
06:52:34 <ArthurStrong> myname: this is enough, IMHO: https://esolangs.org/wiki/HQ9+
06:53:17 <myname> well obviously, but you can write quines in languages that do not have a quine command
07:26:07 -!- ArthurStrong has quit (Quit: leaving).
07:38:36 -!- hppavilion[1] has quit (Ping timeout: 240 seconds).
08:18:48 <shachaf> OK, the "just don't mask the ring buffer indices" model seems pretty appealing now.
08:19:15 <shachaf> You need your buffer size to be a power of 2. Is there any other downside?
08:41:14 -!- hppavilion[1] has joined.
09:24:41 -!- Phantom_Hoover has joined.
09:46:48 -!- hppavilion[1] has quit (Ping timeout: 265 seconds).
10:04:21 -!- arseniiv has joined.
10:34:39 -!- aloril has quit (Ping timeout: 265 seconds).
10:48:24 -!- aloril has joined.
11:05:30 <arseniiv> I need to inject Nat into an infinite algebraic type possibly mutually recursive with several other types like this one (but not necessarily all of them infinite)
11:06:19 <arseniiv> it seems to be always possible but I don’t see how to formulate this thing in the manner it would have an obvious proof
11:11:43 <arseniiv> I think injecting Nat into t means precisely the following: there are tz :: t, ts :: t → t and tfoldNat :: u → (u → u) → t → u such that ∀z' s'. foldNat z' s' == tfoldNat z' s' . foldNat tz ts
11:12:34 <arseniiv> or maybe the consequence of the latter suffices: id == tfoldNat z s . foldNat tz ts
11:12:55 <arseniiv> now hopefully it’s clearer
11:15:58 <arseniiv> I think tz and ts x would always be compositions of several constructors, the latter also having one occurrence of x. Still, the picture isn’t clear to me at all
11:24:15 <arseniiv> hmm would we always be able to “contract” the definition of that type so that other types aren’t mentioned in it after that?.. The simple case { data E = Z | Se O; data O = So E } is for example easy: { data E = Z | SeSo E } or { data O = SoZ | SoSe O }
11:25:22 <arseniiv> I think I miss knowledge of a framework
11:27:59 <arseniiv> the tricky case: { data A = A N; data N = Z | S N } — now we can’t return to A and the naive approach would result in an infinite definition { data A = AZ | ASZ | ASSZ | … }
11:29:38 <arseniiv> so though we can’t always contract a definition naively, maybe we can always find a type with a definition which contracts?.. E. g. that’s N in this example
11:31:20 <arseniiv> nope: { data A M; data M = Z | S A M }, now they *both* don’t contract in a naive fashion
11:33:51 <arseniiv> you may see that’s indeed a tricky situation. Okay I don’t need to contract definitions, I need `z` and `s` and a glimpse of `fold` (relating to GMMs, I don’t really need the last one, just a partial destructor `t → 1 + (1 + t)`, the first `1 +` is for values of `t` which aren’t injected Nats)
11:36:50 <arseniiv> even simpler: `z` and `s` a compositions of constructors, as hypothesized above. I’m sure that’s always possible, and in this case they would have all the remaining needed properties
12:54:00 <esowiki> [[Basis]] N https://esolangs.org/w/index.php?oldid=66966 * A * (+2540) Created page with "== Example programs == <pre> "This is a language that I invented in early 2012 to be a simple golfing language. By this, I mean that there is very little to no operator over..."
12:55:18 -!- Phantom_Hoover has quit (Ping timeout: 268 seconds).
12:55:42 <esowiki> [[Basis]] https://esolangs.org/w/index.php?diff=66967&oldid=66966 * A * (+273)
13:01:24 <esowiki> [[Basis]] https://esolangs.org/w/index.php?diff=66968&oldid=66967 * A * (+742)
13:21:49 -!- aloril has quit (Ping timeout: 268 seconds).
13:35:24 -!- aloril has joined.
13:42:14 -!- imode has joined.
13:44:00 <esowiki> [[Basis]] https://esolangs.org/w/index.php?diff=66969&oldid=66968 * A * (+16)
13:51:34 <esowiki> [[Basis]] https://esolangs.org/w/index.php?diff=66970&oldid=66969 * A * (-57)
13:54:35 <imode> []01$ can be reduced to boolfuck.
13:55:35 <esowiki> [[Basis]] https://esolangs.org/w/index.php?diff=66971&oldid=66970 * A * (-14) /* Factorial */
13:57:24 <esowiki> [[Basis]] https://esolangs.org/w/index.php?diff=66972&oldid=66971 * A * (+191)
14:30:39 <esowiki> [[Basis]] https://esolangs.org/w/index.php?diff=66973&oldid=66972 * A * (-5) /* Truth-machine */
14:31:02 <esowiki> [[Basis]] https://esolangs.org/w/index.php?diff=66974&oldid=66973 * A * (+32) /* Documentation */
14:33:17 -!- imode has quit (Ping timeout: 240 seconds).
14:40:56 <esowiki> [[Basis]] https://esolangs.org/w/index.php?diff=66975&oldid=66974 * A * (+931) /* GCD of two numbers */
15:08:00 <esowiki> [[Basis]] https://esolangs.org/w/index.php?diff=66976&oldid=66975 * A * (+68)
15:25:06 <arseniiv> we can eliminate nonconstructivle types and constructors with arguments of those types and be left with at least one type having a nullary constructor
15:28:02 <arseniiv> though there are no guarantees this constructor is used in infinitely many values, and I seem to finally get what I should have done: there are infinitely many values, and only a finite amount of nullary constructors. At least one of them should occur in infinitely many values, pick that one
15:44:24 <arseniiv> hm no, we don’t need a single constructor, we need an inhabited type with a constructor “eventually taking” an argument of that type, yes
15:45:37 -!- sprocklem has quit (Ping timeout: 240 seconds).
15:47:19 <arseniiv> I don’t like proof by contradiction but suppose none of inhabiter types has one. I think that should imply there are only a finite set of values overall
15:50:02 <arseniiv> s/inhabiter/inhabited; every value of type t should not have values of type t inside so each value can only be a |type count| levels deep, yes, and there are only so many constructors so we get a finite set of values
15:50:21 <arseniiv> now how do I prove that without using contradiction
15:50:51 <arseniiv> I think I flooded the channel, sorry :/
15:51:46 <lf94> Has anyone tried typeclasses.com?
15:56:33 <arseniiv> lf94: me not; is there something which I could see without paying? (I’m lazy to register to get to know that by myself)
15:57:01 <lf94> There is
15:57:04 <lf94> uhhh
15:57:13 <lf94> https://typeclasses.com/profunctors
16:02:43 <arseniiv> lf94: that may be useful!
16:03:00 <arseniiv> though I don’t know profunctors yet too
16:03:23 <arseniiv> “Profunctors are bifunctors that are contravariant in their first type argument and covariant in their second one.” → ah okay now I know
16:06:56 <arseniiv> lf94: the canonical example would be (->), it’s covariant in the result type and contravatiant in argument type; the function type is very useful to visualize co/contravariant type arguments in general; at least for me: they can be “like function arguments” and “go somewhere”, or they can be “like function results” and “come from somewhere” (and also there can be these that come and go—these are “invariant” in the
16:06:56 <arseniiv> terminology of e. g. C#, these are somewhat bad as they don’t play nicely with subtyping in languages with subtyping like mentioned C#)
16:12:36 <lf94> The terms "covariant" and "contravariant" cannot be memorized for some reason.
16:12:44 <lf94> I can't memorize what these actually mean
16:13:04 <lf94> If you could explain what these mean in some plain english, I'd greatly appreciate it
16:13:55 <arseniiv> (e. g. if you are designing API for some collections, it could be wise to tear collection interfaces into halves with one half being covariant in element type and containing only get-like operations (perfect to implement by immutable collections) and the other half containing only set-like operations and being contravariant in the element type; a mutable collection would implement both parts. Now these two interfaces could be used separa
16:13:55 <arseniiv> tely and benefit from argument subtyping one way or the other)
16:14:11 <arseniiv> lf94: I can try, yeah
16:16:19 <arseniiv> covariant means it behaves like (co-) a plain value: function result is a normal value; contravariant means it behaves in the opposite way (contra-): function argument is in some way an “antivalue”, a hole waiting to be filled, before we could get the result; that’s not all
16:17:34 <arseniiv> I don’t know if there is any special sense in “-variant” here, maybe theory category guys made it up independently, but they could have borrowed it from linear algebra
16:18:55 <arseniiv> there, tensor arguments/indices can be covariant and contravariant, which means if the thing changes (“varies”?) like or unlike basis vectors when changing the basis
16:19:52 <arseniiv> that’s about “-variant” part, I’m almost sure it’s related that way though “-variant” part is plain latin
16:20:03 <arseniiv> or it pretends to be
16:20:16 <lf94> co- means plain?...
16:20:35 <arseniiv> now that should be accompanied by many examples but I don’t know which would be nice
16:20:47 <lf94> 1 and -1?
16:20:52 <arseniiv> <lf94> co- means plain?... => AFAIR it’s more like “with”
16:21:37 <arseniiv> also I’d say these are more like automorphism/antiautomorphism distinction than 1/−1, but the last pair may be illustrative too
16:23:28 <arseniiv> contra- changes arrow directions just like antiautomorphism. Though I don’t know why I picked auto-, any kind of morphisms suffices
16:23:52 <arseniiv> (anti(something)morphism changes operands, not arrows)
16:24:14 <arseniiv> let’s pretend I didn’t confuse you with morphisms
16:25:03 <arseniiv> hopefully someone more experienced in explaining in a clear way will come
16:25:09 <arseniiv> :D
16:27:48 <arseniiv> also you can try to label them `in` and `out` as C# syntax does
16:28:11 <arseniiv> in for contravariant, “argument-like”, and out for covariant, “result-like”
16:28:45 <arseniiv> just don’t confuse “in”-variant with invariant, there were cases :)
16:29:17 <arseniiv> anyway there are no invariant functor arguments in Haskell
16:29:38 <arseniiv> they are either co- or contra- or that’s not a functor in that argument
16:46:04 <lf94> when you talk about morphisms, it helps I think
16:52:28 <arseniiv> when we have a category whose objects are categories themselves, morphisms C → D are functors covariant in C and morphisms C^op → D are functors contravariant in C; where C^op is the opposite category to C: it has all its objects but every morphism reversed
16:57:45 -!- sprocklem has joined.
17:02:51 <esowiki> [[Full Stack]] N https://esolangs.org/w/index.php?oldid=66977 * Challenger5 * (+3264) Created page with "Full Stack is an esolang created by [[User:Challenger5]] and inspired by <code>///</code>. Its Turing completeness is not known. Before we define Full Stack, however, we must..."
17:03:34 <esowiki> [[User:Challenger5]] https://esolangs.org/w/index.php?diff=66978&oldid=66938 * Challenger5 * (+84)
17:39:42 -!- heroux has joined.
17:43:46 -!- FreeFull has joined.
17:50:41 -!- sprocklem has quit (Ping timeout: 268 seconds).
17:59:44 -!- sprocklem has joined.
18:01:11 -!- atslash has quit (Quit: This computer has gone to sleep).
18:02:01 -!- Phantom_Hoover has joined.
18:33:26 -!- ais523_ has joined.
18:34:50 -!- ais523_ has changed nick to ais523.
18:34:53 <ais523> @messages?
18:34:53 <lambdabot> Sorry, no messages today.
18:35:06 -!- ais523 has changed nick to ais523_.
19:18:08 <Lykaina> @messages?
19:18:08 <lambdabot> Sorry, no messages today.
19:18:14 <Lykaina> hi
19:18:19 <ais523_> hi
19:19:48 <ais523_> <oerjan> my brain occasionally tries to think about 2-echo tag without really getting anywhere ← I think that 2-Echo Tag is still more likely than 50:50 to be Turing-complete, but would no longer be surprised if it were Turing-incomplete; there are some qualitative differences to 3-Echo Tag
19:20:00 <Lykaina> brb
19:23:35 <Lykaina> back
19:26:25 <ais523_> <wib_jonas> "The Program Is Mostly Ignored" -- like in the pear tree? ← actually, in A Pear Tree, the entire program is always parsed; it's just commonplace to put much of it in a comment
19:26:58 <ais523_> the interesting factor in the language is that you can use cues to specify where in the program to start parsing, but the parser wraps around the end of the program and finishes where it started
19:28:03 -!- FreeFull has quit (Remote host closed the connection).
19:29:51 -!- FreeFull has joined.
19:34:02 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
19:40:27 -!- sprocklem has quit (Ping timeout: 268 seconds).
19:45:54 <esowiki> [[The Program Is Mostly Ignored]] M https://esolangs.org/w/index.php?diff=66979&oldid=66955 * Ais523 non-admin * (+18) /* When the blockchain has a blue block */ prettier table
19:51:00 -!- Phantom_Hoover has joined.
19:55:00 -!- impomatic has joined.
19:55:08 <impomatic> Hi :-)
19:55:29 <impomatic> Is there any Esoteric stuff on Yahoo groups which needs archiving before they remove groups?
19:57:52 <ais523_> none of the esoteric mailing lists or newsgroups that I know of were on Yahoo
20:00:27 <impomatic> Thanks. I've been downloading messages for the programming game groups (robowar, crobots, etc) and thought I'd check :-)
20:00:44 <ais523_> how are things going in the programming games community, btw?
20:02:38 <arseniiv> <lambdabot> Sorry, no messages today. => they say this often to me; I think there’s an inherent and indescribable sadness in the situation so I drew this: https://i.postimg.cc/BnBkw5Vt/mr-postman.png
20:02:38 <arseniiv> I planned to add dialogue but this ended up quite self-explanatory
20:03:18 <arseniiv> oh damn uncolorized region
20:05:07 <arseniiv> look here instead: https://i.postimg.cc/Wz9tnJcy/mr-postman.png
20:06:42 -!- LKoen has joined.
20:13:58 -!- b_jonas has joined.
20:16:00 -!- sprocklem has joined.
20:16:14 <b_jonas> impomatic: oh yeah, good thinking. I've got one of Yahoo's nice false assurance email about how Yahoo groups is totally not going away
20:16:22 <b_jonas> at least they did send an email
20:17:40 <b_jonas> I think this will have less impact than gmane, google plus, or geocities though.
20:18:12 <b_jonas> Hmm, that's an interesting pattern there. If I see an online service whose name starts with g, should I suspect that it won't last long even if it's not by google?
20:18:43 <b_jonas> oh no!
20:18:57 <b_jonas> I looked among my links for stuff starting with "g"
20:19:01 <b_jonas> Project Gutenbert
20:20:52 <b_jonas> https://directory.fsf.org/ is at least branded "FSF" now more prominently than "GNU"
20:21:39 <fizzie> I haven't yet read that "Evolution of Yahoo Groups" email, but I got one as well.
20:22:12 <b_jonas> fizzie: I only skimmed it too
20:22:38 <b_jonas> I didn't bother because all the mailing lists hosted there that I'm on are defunct
20:26:24 <impomatic> ais523_: a little slow at the moment. What tends to happen is the level in a game quickly escalates so that it's pretty difficult for anyone new to get involved :-(
20:45:35 -!- atslash has joined.
21:00:00 -!- sprocklem has quit (Ping timeout: 268 seconds).
21:01:41 -!- oerjan has joined.
21:05:29 -!- ais523_ has quit (Quit: quit).
21:06:39 <oerjan> <myname> so, what are the requirements for a language to write a quine in it <-- see https://esolangs.org/wiki/User_talk:Smjg for pervious discussion that i keep linking
21:06:54 * oerjan saw the typo and refused to correct
21:07:15 <b_jonas> ais523_: yeah, I was wrong about Pear Tree, I misremembered how it worked
21:09:20 <oerjan> @tell imode actually, what i said is more or less 10 = true, 0 = false and a slighly different halting condition on BCT than usual, which i'm pretty sure is still TC.
21:09:20 <lambdabot> Consider it noted.
21:13:15 <oerjan> `? monologue
21:13:16 <HackEso> monologue? ¯\(°​_o)/¯
21:30:35 -!- LKoen has quit (Remote host closed the connection).
21:34:28 <arseniiv> re: Haskell: BlockArguments: finally!
21:37:24 <oerjan> @hoogle finally
21:37:24 <lambdabot> Control.Exception finally :: IO a -> IO b -> IO a
21:37:24 <lambdabot> Control.Exception.Base finally :: IO a -> IO b -> IO a
21:37:24 <lambdabot> System.Directory.Internal.Prelude finally :: () => IO a -> IO b -> IO a
21:37:40 <oerjan> seems like a good use for it
21:38:01 -!- LKoen has joined.
21:38:05 -!- LKoen has quit (Read error: Connection reset by peer).
22:03:03 <arseniiv> hm BTW does hoogle search GHC language extensions?:
22:03:08 <arseniiv> @hoogle BlockArguments
22:03:08 <lambdabot> Language.Haskell.TH BlockArguments :: Extension
22:03:08 <lambdabot> Language.Haskell.TH.LanguageExtensions BlockArguments :: Extension
22:03:08 <lambdabot> Language.Haskell.Extension BlockArguments :: KnownExtension
22:03:27 <arseniiv> not what I expected but neat
22:04:09 <arseniiv> ouija: bye
22:06:01 -!- ais523_ has joined.
22:08:04 <ais523_> b_jonas: it was important that all the source code were retained, so that A Pear Tree could be used to write programs that detected edits to themselves and figured out what part was missing
22:08:26 -!- arseniiv has quit (Ping timeout: 240 seconds).
22:08:36 <ais523_> I'm not sure how useful that capability is, but a) this is #esoteric so it doesn't matter, b) it comes in handy on CGCC on occasion
22:17:14 <b_jonas> yeah
22:21:07 <b_jonas> and like you said, you can still make most of the code ignored as a comment when your program wants that
22:40:45 <b_jonas> `? hfs
22:40:47 <HackEso> You have discovered an eerie cavern. The air above the dark stone floor is alive with vortices of purple light and dark, boiling clouds. Seemingly bottomless pits mark the surface.
22:41:23 <ais523_> hmm, dramatic, it's a pity you can't use commands to continue the text adventure
22:41:36 -!- hppavilion[1] has joined.
22:46:22 <b_jonas> ``` ( hg log -T "{desc}\n" -r 7960; hg cat -r 7960 wisdom/hfs ) | sed s/o/о/ # and the command that created it is funny too
22:46:23 <HackEso> ​<zzо38> ` le/rn "hfs/`hfs`" # Maybe this way better? \ Yоu have discovered an eerie cavern. The air aboe the dark stone floor is alive ith vortices of purple light and dark, boiling clouds. Seemingly bottemless pits mark the surface.
22:46:34 <b_jonas> apparently it was in bin before it was moved to wisdom
22:46:57 <ais523_> there are quite a few typos in that version
22:47:04 <b_jonas> yes, they got fixed in later revisions
22:47:14 <ais523_> I was wondering if they were intentional
22:47:21 <ais523_> "aboe" looks like the sort of word that belongs in poetic English
22:47:41 <ais523_> (there are a few interesting words from poetic English, like "ere" which is just too good not to use; it means "before")
22:47:57 <ais523_> (strangely, it isn't used anywhere but poetry and literature despite being such a good word)
22:48:27 <b_jonas> ``` hg log -T "{desc}\n" -r 7961 | sed s/oa/оа/
22:48:28 <HackEso> ​<oerjan> rm bin/hfs
22:50:12 <b_jonas> and bin/hfs was apparently created by moon__
23:02:00 -!- ais523_ has quit (Quit: quit).
23:04:48 <esowiki> [[Special:Log/newusers]] create * Noogleburt * New user account
23:04:50 -!- hppavilion[1] has quit (Ping timeout: 240 seconds).
23:08:10 -!- Melvar has quit (Ping timeout: 265 seconds).
23:10:41 -!- hppavilion[1] has joined.
23:11:38 -!- Melvar has joined.
23:33:22 -!- hppavilion[1] has quit (Remote host closed the connection).
23:33:46 -!- hppavilion[1] has joined.
2019-11-06
00:10:45 -!- FreeFull has quit.
00:27:37 -!- sprocklem has joined.
00:39:25 -!- Phantom_Hoover has quit (Quit: Leaving).
00:50:57 -!- moony has quit (Ping timeout: 240 seconds).
00:51:12 <esowiki> [[Echo Tag]] https://esolangs.org/w/index.php?diff=66980&oldid=64998 * Oerjan * (-2) /* Computational class */ I think this should be the other way around to ensure the *first* symbol of a block of m is used
00:51:58 -!- iovoid has quit (Ping timeout: 245 seconds).
00:52:24 -!- iczero has quit (Read error: Connection reset by peer).
00:52:53 -!- Bowserinator has quit (Ping timeout: 276 seconds).
00:54:50 -!- Bowserinator has joined.
00:55:05 -!- moony has joined.
00:55:11 -!- iovoid has joined.
00:55:56 -!- iczero has joined.
00:57:50 <esowiki> [[Tag system]] https://esolangs.org/w/index.php?diff=66981&oldid=49076 * Oerjan * (+163) /* Definition */ Remark on variants
00:59:14 <oerjan> (I noted that the Echo Tag proof seems to implement Post's original version.)
01:04:57 <shachaf> posix_spawn is probably better than fork() in theory, but every time I try to use it it's miserable.
01:05:01 <shachaf> What's that about?
01:11:01 <kmc> shachaf: it starts with "posix"
01:14:24 <fizzie> "posix_spawn_file_actions_adddup2" that's quite a name
01:17:26 -!- hppavilion[2] has joined.
01:20:14 -!- hppavilion[1] has quit (Ping timeout: 268 seconds).
01:23:19 -!- hppavilion[2] has quit (Ping timeout: 268 seconds).
01:27:05 <shachaf> fizzie: Why can't I just pass in a data structure?
01:27:10 <shachaf> Now I gotta worry about allocation failures.
01:48:12 -!- Sgeo has quit (Read error: Connection reset by peer).
01:50:02 -!- Sgeo has joined.
02:13:24 -!- hppavilion[1] has joined.
03:01:28 <esowiki> [[The Program Is Mostly Ignored]] https://esolangs.org/w/index.php?diff=66982&oldid=66979 * Oerjan * (+0) /* When the blockchain has a green block */ I think this is off-by-one (or equivalently, counted in the wrong direction)
03:12:22 -!- oerjan has quit (Quit: Nite).
03:16:39 -!- nfd9001 has joined.
03:44:28 -!- xkapastel has joined.
03:50:58 -!- syncracer has joined.
03:55:12 -!- nfd has joined.
03:55:39 <syncracer> hi
03:57:03 -!- nfd9001 has quit (Ping timeout: 264 seconds).
03:58:44 -!- syncracer has quit (Remote host closed the connection).
03:58:51 -!- syncracer has joined.
03:59:24 -!- syncracer has quit (Client Quit).
04:02:06 -!- nfd9001 has joined.
04:04:51 -!- nfd has quit (Ping timeout: 264 seconds).
04:08:03 -!- nfd has joined.
04:08:27 -!- nfd9001 has quit (Ping timeout: 264 seconds).
04:11:53 -!- nfd9001 has joined.
04:14:03 -!- nfd has quit (Ping timeout: 245 seconds).
07:42:02 -!- atslash has quit (Read error: Connection reset by peer).
07:42:10 -!- atslash has joined.
08:14:06 -!- b_jonas has quit (Remote host closed the connection).
09:24:28 -!- arseniiv has joined.
09:41:35 -!- hppavilion[1] has quit (Ping timeout: 268 seconds).
09:44:56 -!- hppavilion[1] has joined.
09:56:05 -!- wib_jonas has joined.
09:59:17 -!- impomatic has quit (Remote host closed the connection).
10:16:32 -!- hppavilion[1] has quit (Quit: Leaving).
10:25:38 <esowiki> [[Talk:Queue]] N https://esolangs.org/w/index.php?oldid=66983 * YamTokTpaFa * (+157) Created page with "== What additional methods make queue-based languages TC? == --~~~~"
10:34:15 -!- xkapastel has quit (Quit: Connection closed for inactivity).
10:56:36 -!- hppavilion[1] has joined.
11:09:38 -!- nfd9001 has quit (Ping timeout: 240 seconds).
12:22:18 -!- sebbu has quit (Quit: reboot).
12:30:02 -!- hppavilion[1] has quit (Ping timeout: 240 seconds).
12:33:18 -!- sebbu has joined.
13:04:27 -!- xkapastel has joined.
13:59:02 -!- ais523_ has joined.
14:00:22 <ais523_> oerjan: you're right, it was off by 1, I realised that while offline earlier, and was going to fix it myself but you got there first
14:17:19 <esowiki> [[Talk:Queue]] https://esolangs.org/w/index.php?diff=66984&oldid=66983 * A * (+204)
14:19:02 <esowiki> [[Talk:Queue]] https://esolangs.org/w/index.php?diff=66985&oldid=66984 * A * (+62) /* They are sufficient enough to simulate a tape. */
14:29:38 -!- myname has quit (Ping timeout: 240 seconds).
14:31:49 -!- aloril has quit (Ping timeout: 265 seconds).
14:39:35 -!- myname has joined.
14:43:04 -!- ais523_ has quit (Quit: quit).
15:29:58 -!- ais523_ has joined.
15:32:31 * ais523_ has been trying to prove Full Stack TC
15:33:22 <ais523_> it's complex because Front End has only 26 bytes of storage + the instruction pointer; I'm pretty convinced at this point that if it supported Unicode variable names it'd be TC, but there's some definite doubt as to whether the 26 bytes are enough
15:38:15 <wib_jonas> that's a new language
15:38:54 <wib_jonas> ais523: wait, literally "26 bytes of storage + the instruction pointer"? doesn't that mean that it's definitely not TC?
15:39:14 <ais523_> wib_jonas: there are two languages involved
15:39:35 <wib_jonas> ah
15:39:36 <ais523_> Front End is an intentionally sub-TC language; Full Stack repeatedly runs Front End on its own source code
15:40:22 -!- myname has quit (Remote host closed the connection).
15:49:54 <wib_jonas> Note to self: whenever I hear of an esoteric language that has a core that sounds like it should be turing-complete, but a seemingly arbitrary restriction to too little addressable memory, and I think it's unrealistic (eg. https://esolangs.org/wiki/?curid=10192 ), I should think of the ATARI 2600 BASIC Programming cart, a high-level programming
15:49:55 <wib_jonas> language for a machine with 128 bytes of RAM.
15:50:49 <Taneb> Who really needs any more than that
15:52:12 <wib_jonas> I've written programs for the Sharp EL-5120, which has 2 kilobytes of RAM, of which 1141 bytes are for program source code. 128 bytes sounds crazy.
15:53:40 <wib_jonas> The annoying part of https://esolangs.org/wiki/?curid=10192 is that it's practically impossible to extend. The meaning of all instructions is completely defined, the addres space is completely occupied by RAM, and since it's only 256 nibbles, you can't even reserve a little of it and hope that programs won't use it, because prorgams want to use all
15:53:41 <wib_jonas> 256 of it.
15:54:48 <wib_jonas> There aren't many language that feel that impossible to extend.
16:01:23 -!- wib_jonas has quit (Quit: Ping timeout (120 seconds)).
16:55:32 -!- imode has joined.
17:00:12 <ais523_> now you're reminding me of my plan to add output to Echo Tag in a backwards-compatible way
17:00:45 <ais523_> in addition to 0 and 1, there's an O command which acts like 0 in most respects, but when an O in the queue causes a production to be skipped, that production's bit is output
17:02:34 -!- xkapastel has quit (Quit: Connection closed for inactivity).
17:02:37 -!- imode has quit (Ping timeout: 240 seconds).
17:08:26 -!- arseniiv has quit (Ping timeout: 240 seconds).
17:34:26 -!- aloril has joined.
17:35:29 <ais523_> hmm, is "hello, world!" <https://github.com/histocrat/hello_world> TC?
17:35:35 <ais523_> it's a great idea for a language, at least
17:40:53 <ais523_> actually it wouldn't surprise me if it were an LBA, the command set reminds me a bit of BuzzFizz, but it's less obviously TinC
17:54:36 -!- LKoen has joined.
17:57:32 -!- kritixilithos has joined.
18:05:00 -!- arseniiv has joined.
18:08:15 -!- kspalaiologos has joined.
18:13:22 -!- LKoen has quit (Remote host closed the connection).
18:14:21 -!- LKoen has joined.
18:45:31 -!- ais523_ has quit (Quit: quit).
18:51:25 -!- FreeFull has joined.
19:02:59 -!- kritixilithos has quit (Quit: leaving).
19:11:23 -!- MDude has quit (Quit: Going offline, see ya! (www.adiirc.com)).
19:30:13 <esowiki> [[List of ideas/Archive]] https://esolangs.org/w/index.php?diff=66986&oldid=38997 * CMinusMinus * (+36)
20:01:44 -!- LKoen has quit (Remote host closed the connection).
20:15:38 <kspalaiologos> which language has it's programs having highest entropy on average?
20:16:00 <kspalaiologos> I've been thinking about 05AB1E and all that golfing stuff
20:16:09 <kspalaiologos> but i'm not certainly sure is this the case
20:16:31 <kspalaiologos> possibly someone made a programming language with even more complex instruction set
20:16:35 <kspalaiologos> so programs are denser and denser
20:23:44 -!- kspalaiologos has quit (Quit: Leaving).
20:29:09 -!- oerjan has joined.
20:49:13 <esowiki> [[Talk:Queue]] https://esolangs.org/w/index.php?diff=66987&oldid=66985 * Oerjan * (+270) Not much needed
20:52:28 <esowiki> [[Queue]] https://esolangs.org/w/index.php?diff=66988&oldid=62461 * Oerjan * (+76) /* Use in esolangs */ Add BCT
20:53:19 <oerjan> wait what
20:55:58 <esowiki> [[Talk:Queue]] https://esolangs.org/w/index.php?diff=66989&oldid=66987 * Oerjan * (+259) Oops, managed to not notice I was editing old version
20:56:31 -!- b_jonas has joined.
21:43:07 <oerjan> comparing sleeve colors with previous strips, i think that may be martellus in the last girl genius strip. which would make sense given the reaction.
21:43:09 -!- Phantom_Hoover has joined.
21:43:37 -!- shikhin has changed nick to shikhout.
21:44:27 -!- shikhout has changed nick to shikhin.
22:35:54 -!- MDude has joined.
22:37:12 -!- upupbb-user3 has joined.
22:44:26 -!- upupbb-user3 has quit (Read error: Connection reset by peer).
23:24:04 <b_jonas> dear fungot, please prepare to upload the next o strip tomorrow
23:24:04 <fungot> b_jonas: so, i know that. now that my hands.
23:24:35 <b_jonas> yes, your thumb will never be the same after that accident, such is life
2019-11-07
00:06:46 -!- sprocklem has quit (Ping timeout: 268 seconds).
00:11:48 -!- Phantom_Hoover has quit (Quit: Leaving).
00:12:31 -!- sprocklem has joined.
00:15:35 -!- atslash has quit (Ping timeout: 250 seconds).
00:15:39 -!- arseniiv has quit (Ping timeout: 264 seconds).
00:27:26 -!- atslash has joined.
02:10:29 -!- oerjan has quit (Quit: Nite).
02:37:33 -!- xkapastel has joined.
02:46:18 -!- imode has joined.
03:42:15 <esowiki> [[Omam]] https://esolangs.org/w/index.php?diff=66990&oldid=53229 * Arcorann * (+96)
04:25:46 -!- hppavilion[1] has joined.
04:47:17 -!- xkapastel has quit (Quit: Connection closed for inactivity).
05:15:21 -!- imode has quit (Ping timeout: 265 seconds).
05:23:37 -!- hppavilion[1] has quit (Ping timeout: 240 seconds).
07:14:00 -!- Frater_EST has joined.
07:25:00 -!- hppavilion[1] has joined.
07:27:39 <int-e> https://bugzilla.mozilla.org/show_bug.cgi?id=1572800 ... who thought this was a good idea? With this change I was never sure whether an underlined blue a,b was a single link or two links... fortunately, there's a switch.
07:34:17 <int-e> (This hardly comes up... I'm just rationalizing my dislike for that particular change.)
07:37:55 <b_jonas> int-e: https://esolangs.org/logs/2019-10-28.html#llb
07:38:00 <b_jonas> I just don't like the way it looks
07:44:50 -!- hppavilion[1] has quit (Ping timeout: 240 seconds).
07:48:47 <int-e> Yeah.
07:49:36 <int-e> There is something to my complaint when you turn it around... to my brain, a break in the underline signifies the end of a link. (And links are the most common reason for underlined text in my browsing experience.)
07:52:08 <int-e> Oh and I particularly dislike the handling of underlined 'g's, where none of the glyph is underlined anymore.
07:52:38 <int-e> (the same is true for the aforementioned ',')
08:15:44 <b_jonas> Magic: the Gathering is so old that it predates Pokémon. That seems so weird. I find it hard to imagine a world that has Magic: the Gathering but not Pokemon. Pokemon just seems more fundamental.
08:18:55 <int-e> Heh. For all I know Pokemon is completely made up.
08:21:17 <b_jonas> Sure it is, but like having it as video games and story. Classical greek mythology is probably also completely made up, but it's hard to imagine our world (I'm saying this as a Europe-centric guy) without, because there's just so much heritage from it.
08:22:25 <int-e> I mean I've never seen the video games nor the animated series... all I really have are second-hand stories.
08:22:37 <int-e> And I'm seriously wondering how that happened.
08:23:01 <b_jonas> what?
08:23:06 <b_jonas> you've never seen the video games? any of them?
08:23:19 <int-e> I guess completely avoiding gaming consoles has a lot to do with it.
08:23:25 <b_jonas> I mean, you don't have to see any specific one, because they're all rather similar
08:23:35 <int-e> yes, I've never seen any of them
08:23:58 <b_jonas> int-e: how about the collectible card game? that of course is later than M:tG
08:24:41 <int-e> I've played M:tG but only with other peoples' decks.
08:27:05 <b_jonas> I guess many people have a huge genre that they have mostly avoided. DMM claims that it's video games in general, but I'm not entirely sure of it since he used to claim that he hasn't read Discworld. For me it's anime and manga.
08:28:25 <b_jonas> I haven't played too much on consoles either, except for the Game Boy, but have played a little, but I'm somewhat familiar with the more popular Nintendo games through videos on the internet now.
08:28:37 <b_jonas> I sort of wonder if I should get into them, in the nostalgic way that is, old games only.
08:29:54 <b_jonas> I'm quite sure I don't want to play new video games, but the old ones are old enough that there's enough information about them that's not just recent hype so I can tell which games are worth to play.
08:30:02 <int-e> "should" - no. ;-)
08:31:25 <b_jonas> int-e: well, it's not something that I have to decide right now
08:31:36 <b_jonas> and there are also old PC games that I should play more
08:32:43 <int-e> but maybe there are too many new games for that
08:33:06 -!- nfd9001 has joined.
08:35:30 -!- nfd has joined.
08:36:01 -!- b_jonas has quit (Remote host closed the connection).
08:37:59 -!- nfd9001 has quit (Ping timeout: 268 seconds).
09:16:26 -!- nfd has quit (Ping timeout: 240 seconds).
09:17:21 -!- nfd has joined.
09:22:54 -!- xkapastel has joined.
09:36:54 -!- wib_jonas has joined.
10:28:40 -!- Frater_EST has quit (Remote host closed the connection).
10:35:44 -!- myname has joined.
10:54:12 -!- arseniiv has joined.
11:09:31 -!- ais523_ has joined.
11:11:33 <wib_jonas> You know how you can indicate dismissal of modern music with the joking question "have they started already or are they just tuning their instruments?"
11:11:51 <wib_jonas> I found out that this can apply not only to modern music.
11:13:32 <wib_jonas> https://commons.wikimedia.org/wiki/?curid=18594726 is the digitization of a vintage music recording from 1889, supposedly of Brahms playing the 1st piece of Hungarian Dances on a piano.
11:14:05 <wib_jonas> Without the description, I couldn't tell that this is supposed to be a rendition of Hungarian Dances.
11:15:04 <wib_jonas> I'm not sure if I could even tell that it's on a piano, because it sounds like a clavicord through that recording.
11:16:21 <ais523_> there's at least one classical piece which wrote the sound of tuning the instruments into the score
11:16:43 <wib_jonas> how old classical?
11:17:02 <ais523_> I can't remember, IIRC fairly old though
11:17:17 <myname> isn't that quite common for string instruments?
11:17:34 <myname> like, adjusting the string-length in-sound
11:17:49 <wib_jonas> myname: I don't think so
11:19:16 <wib_jonas> Admittedly since I can tell that it's supposed to be a clavicord, as opposed to a band with stringed or wind instruments, the tuning question isn't quite accurate.
11:20:27 <wib_jonas> Pianos are tuned in advance, whereas most other stringed instruments are tuned on site before the concert.
11:21:02 <wib_jonas> Probably because the piano takes the longest to tune, and you can afford not to tune one instrument.
11:21:23 <wib_jonas> (That doesn't solve what you do with pieces for two pianos, which do exists, but are rare.)
11:21:34 <myname> i also am wondering how one would write out what exactly 2cellos are doing sometimes. like, just smashing the bow onto the strings
11:22:58 <wib_jonas> I can't complain of course, there are good quality recordings of performances of the Hungarian Dances available as well.
11:23:11 <wib_jonas> And that recording has the excuse that it's really old.
11:25:32 <wib_jonas> Oh, different topic.
11:26:17 <wib_jonas> This morning on the tram, I heard a man talk in Swedish but with a very strong Hungarian accent. That's the first time I heard such a thing.
11:26:49 <wib_jonas> I've heard sevearl people speak English in a strong Hungarian accent, but the same thing in Swedish was new.
11:28:14 <wib_jonas> I know it's Swedish rather than Norwegian or Danish mostly because he said "två" rather than "to"
11:31:43 -!- xkapastel has quit (Quit: Connection closed for inactivity).
11:40:46 <esowiki> [[The Program Is Mostly Ignored]] https://esolangs.org/w/index.php?diff=66991&oldid=66982 * Ais523 non-admin * (+4141) a modified version that 2-Echo Tag can implement
11:42:13 <esowiki> [[Echo Tag]] https://esolangs.org/w/index.php?diff=66992&oldid=66980 * Ais523 non-admin * (-2) /* Computational class */ link to TPIMI
11:42:32 <esowiki> [[Echo Tag]] https://esolangs.org/w/index.php?diff=66993&oldid=66992 * Ais523 non-admin * (+36) /* See also */ link to TPIMI
11:43:26 <ais523_> in case anyone isn't following esowiki, it turns out that 2-Echo Tag can also implement (a modified version of) The Program Is Mostly Ignored
11:44:22 <ais523_> although the resulting implementation is likely to be very slow, because in order to get an increase in the queue length (required for unbounded memory), you have to grow it by a factor of more than 48 by repeatedly multiplying by 1¼
11:44:41 <ais523_> and the code needed to mediate that probably has length proportional to 2 to the power of the number of steps
11:45:50 <ais523_> (the reason it's likely TC is that the mediating code has a length depending only on the number of multiplications, not on the size of the portion of the queue it's extending, so by creating a sufficiently long queue portion to extend you can make the mediating code small by comparison)
11:46:00 <wib_jonas> ais523: is it only double-exponential, or triple-exponential?
11:46:33 <ais523_> wib_jonas: in the parameter that people care about, i.e. how fast the resulting program runs relative to the program you're compiling, I think it's actually linear
11:46:52 <ais523_> the constant factor is exponential in the size of the program, though (I think only singly-exponential though)
11:47:44 <ais523_> so if you have a program of size s that runs in t steps, after you compile it, you end up with something of size O(s*2**s) that runs in O(t*s*2**s) steps
11:48:01 <ais523_> I think, I might be a bit off on the complexities, given that I'm trying to calculate them in my head and don't have a concrete TCness construction yet
11:48:29 <wib_jonas> oh
11:48:31 <ais523_> also, the constant factor hidden by the big-O notation is likely over a billion
11:48:53 <ais523_> but hey, this is still technically polynomial time :-P
11:48:56 <ais523_> (in fact, linear time)
11:49:31 <wib_jonas> fun
12:00:01 <esowiki> [[The Program Is Mostly Ignored]] M https://esolangs.org/w/index.php?diff=66994&oldid=66991 * Ais523 non-admin * (+14) /* Implementation of the modified version in 2-Echo Tag */ don't underscore k/q, they're defined as sets of four bits, rather than as a single bit that gets repeated
12:00:06 <esowiki> [[Pxem]] https://esolangs.org/w/index.php?diff=66995&oldid=66067 * YamTokTpaFa * (+118) /* pxemi.7z */
12:00:23 -!- ais523_ has quit (Quit: quit).
12:18:50 -!- nfd has quit (Ping timeout: 240 seconds).
12:21:21 -!- nfd has joined.
12:47:55 -!- ais523_ has joined.
13:00:05 <ais523_> <b_jonas> I'm quite sure I don't want to play new video games, but the old ones are old enough that there's enough information about them that's not just recent hype so I can tell which games are worth to play. ← I have a similar policy nowadays, I generally only buy games if I'm very familiar with them already and know they're good
13:00:53 <myname> how long do you wait to play rimworld?
13:00:58 <wib_jonas> ais523: makes sense
13:01:02 <ais523_> one problem with this policy is that the games are often hard to obtain as a consequence; typically the prices are very low but the supply is also very low, and I don't like going to online auction sites or the like
13:01:45 <ais523_> (I've tried to increase the probability by checking out the local second-hand computer game shops whenever I visit a new area; normally there's nothing there I want, but sometimes there's something worth buying, e.g. that's how I purchased my copy of Sonic Advance 3)
13:02:08 <wib_jonas> ais523: for classic nintendo carts, the supply is decent and the prices aren't too high. for old DOS games by Id, there's usually no supply, so the ones that aren't freeware you can't legally buy at all, but you can easily obtain a copy.
13:02:28 <ais523_> well, I don't pirate computer games
13:02:35 <ais523_> so I'm mostly keeping to console games and free PC games
13:02:42 <ais523_> (paid PC games tend to have issues with DRM anyway)
13:03:04 <ais523_> there are a few very good PC games that I purchased (most notably Neverwinter Nights), though
13:03:52 <wib_jonas> ais523: in this case I'm talking about Commander Keen 2 and 3. those are impossible to buy, and I intend to play them. I want to do a 100% completion for CK3 (I've never beaten the boss, but mind you, it's the hardest boss in the series), and CK2 I want to get more familiar with (I have completed it)
13:04:27 <ais523_> you'd think the company is missing an opportunity there, if they have things they can sell and people want to buy
13:04:37 <wib_jonas> as for free PC games, I really like OpenTTD, which started as a clone of the commertial game Transport Tycoon Deluxe, and became a decent clone, but then grew past it and became better
13:05:21 <wib_jonas> ais523: maybe, but I think they wouldn't earn much money from it, compared to what they get from their more recent games,
13:05:28 <ais523_> hmm, oddly, I think every PC game I've played in the past few years has permadeath/perma-consequence
13:05:50 <ais523_> mostly due to being roguelikes, but some of them are puzzle games or other genres for which permadeath makes sense
13:05:53 <wib_jonas> plus, I'm not sure, but they might be in a situation where no one company owns the rights to sell the game, and the multiple owners can't come to an agreement
13:06:06 <myname> ais523_: you can get a large portion of games without drm through the humblebundle store
13:06:08 <ais523_> hmm, unless you count Tetravex but I'm not convinced you should
13:06:20 <ais523_> myname: indeed, many of my purchased games were obtained like that
13:06:31 <wib_jonas> I might also try OpenRTC, which is a similar clone of another game by Chris Sawyer (the creator of OpenTTD), but I'm not yet sure it's for me
13:06:36 <ais523_> a few through GOG, who tend to patch the DRM out of old games they sell
13:06:56 <ais523_> (I have both the original disk copy of Neverwinter Nights with DRM intact, and a fully-updated version via GOG)
13:07:08 <ais523_> (sometimes when you're speedrunning playing the buggy version is more fun thoug)
13:07:11 <ais523_> *though
13:07:26 <wib_jonas> I have nostalgia for Railroad Tycoon, but the problem is, OpenRTC is a clone of Railroad Tycoon 2, which is a very different game
13:07:43 <wib_jonas> ais523: any tetris-likes?
13:08:22 <ais523_> if you consider the time limit on moves to be part of a tetris-like, no
13:08:54 <ais523_> I do like puzzle games but have mostly been playing ones with no time limits on the move
13:09:02 <wib_jonas> ais523: how about with no time limit, but you don't know of all future random pieces that you'll get when you have to commit the current one?
13:09:04 <ais523_> (that said, I used to play Enigma a lot, and some levels there have limits)
13:09:11 <ais523_> wib_jonas: yes, I play those quite a lot
13:09:17 <wib_jonas> good
13:09:24 <ais523_> mostly as a distraction while waiting for compiles or the like
13:09:48 <wib_jonas> I haven't been playing any video games recently,
13:09:56 <wib_jonas> but I should get back to them a little eventually
13:10:13 <wib_jonas> not too much, I don't intend to become a professional gamer or anything
13:10:14 <esowiki> [[Basis]] https://esolangs.org/w/index.php?diff=66996&oldid=66976 * A * (+562)
13:11:05 <ais523_> @tell imode assuming it's your language, you should give the 01[] language a name and add it to the wiki (OK, so it's probably technically a brainfuck derivative, but it's different enough that there's unlikely to be an issue)
13:11:06 <lambdabot> Consider it noted.
13:12:52 <wib_jonas> heh heh, naming them is the hardest part
13:13:00 <wib_jonas> which is why I ended up with (1) and 1.1
13:13:29 <ais523_> well, 01[] isn't terrible as a name (although I'm not convinced it's a valid page name for the wiki)
13:14:42 <wib_jonas> it's not, you can't have square brackets in the name
13:15:01 <ais523_> right, that's the rule I thought it violated
13:15:06 <wib_jonas> but C# isn't a valid page name either
13:15:22 <wib_jonas> so wikipedia has some problems with C, C++, C# languages
13:15:30 <esowiki> [[Basis]] https://esolangs.org/w/index.php?diff=66997&oldid=66996 * A * (+79)
13:15:40 <ais523_> C♯ is a valid page name, and the actual name of the language IIRC
13:15:52 <ais523_> (it's just considered legitimate to use # to represent ♯ when typing it)
13:16:20 <ais523_> <Wikipedia> However the ECMA 334 standard states: "The name C# is written as the LATIN CAPITAL LETTER C (U+0043) followed by the NUMBER SIGN # (U+0023)."
13:16:22 <ais523_> hmm
13:16:25 <esowiki> [[Basis]] https://esolangs.org/w/index.php?diff=66998&oldid=66997 * A * (-4) /* Print "Element" without using letters */
13:16:32 <ais523_> I guess we have a standard on how to write it
13:18:20 <esowiki> [[Basis]] https://esolangs.org/w/index.php?diff=66999&oldid=66998 * A * (-27) /* Interpret Deadfish */
13:29:38 <wib_jonas> is that ECMA standard about the programming language?
13:29:58 <wib_jonas> yeah, looks like it is
13:46:22 <wib_jonas> mind you, it's not even the worst name that Microsoft gave
13:54:20 -!- heroux has quit (Ping timeout: 268 seconds).
13:59:56 <ais523_> wow, C# has covariant arrays just like Java does? I thought that was widely considered a design mistake in Java, I wonder why C# copied it?
14:00:36 <ais523_> (the better approach, IMO, would be to have a specific "unmodifiable array" type that arrays can be cast to, but not cast back from; that type would be covariant even though the underlying array isn't)
14:01:10 <wib_jonas> I don't know how that works in Java, luckily
14:01:14 <wib_jonas> I didn't follow Java
14:02:13 <ais523_> in Java, if type X extends (i.e. is a subtype of) type Y, an array X[] can be cast to an array Y[] without error
14:02:28 <ais523_> you can read Y objects from your Y[] without issue (because all your X objects are Y objects)
14:02:38 <wib_jonas> right, but how can that work with mutable arrays?
14:02:46 <ais523_> but if you try to store a Y that isn't an X into your Y[], you get a runtime error (because the Y[] is actually an X[] so only Xes can be stored in it)
14:03:03 <ais523_> so the short answer is that it doesn't, which is why it's considered a design mistake
14:03:49 <wib_jonas> ok
14:05:25 <wib_jonas> of course, C++ has one of these stupid situations too, where you can get a runtime error for something that would usually give you a compile time error:
14:05:31 <myname> stackoverflow claims, this came at a time without generics
14:05:40 <ais523_> indeed
14:05:47 <ais523_> it took a while for Java to add generics
14:06:03 -!- heroux has joined.
14:06:06 <wib_jonas> if you call an abstract method on a class that is only partly constructed, so it's currently an absract class, you can get a runtime exception
14:06:09 <ais523_> (and when they did, the Java compiler became Turing-complete)
14:06:39 <wib_jonas> wasn't the java compiler Turing-complete even before that, for other reasons?
14:06:51 <ais523_> possibly? I'm not sure what language feature you'd use, though
14:07:10 <ais523_> note that in a compiled language, having a Turing-complete language and a Turing-complete compiler are quite different
14:07:17 <ais523_> most (all?) BF compilers are not TC
14:07:27 <ais523_> because the compilation always halts
14:07:31 <wib_jonas> sure
14:07:54 <wib_jonas> and the C compiler without the preprocessor is probably not turing-complete
14:08:12 <wib_jonas> with the preprocessor it probably still isn't turing-complete
14:08:34 <ais523_> right, I think all loops in the preprocessor are either provably infinite or provably finite
14:08:35 <wib_jonas> whereas the C++ compiler is probably turing-complete
14:08:40 <ais523_> which means that it can't be TC
14:09:05 <wib_jonas> almost certainly TC for recent enough versions of C++
14:09:12 <ais523_> C++ is definitely TC at compile time, C++-at-compile-time is sometimes seen as a language choice in programming competitions because of this
14:09:36 <ais523_> (allegedly, one year someone used this in order to get around runtime restrictions in the IOI, by doing the entire logic of their program at compile time; they added compile time restrictions too the year after)
14:10:29 <wib_jonas> ais523: oh yeah,
14:10:46 <myname> hahahahaha
14:11:10 <wib_jonas> I know at least two competition tasks where the result that your program can generate can fit in a few screenfuls, so the program runtime can be made trivial, even in C,
14:11:14 -!- sprocklem has quit (Ping timeout: 240 seconds).
14:11:18 <ais523_> Perl is trivially TC at compile time because it has a keyword to run code during the compile
14:11:21 <wib_jonas> though generating those results in first place can be hard
14:11:53 <ais523_> wib_jonas: that's a good point: if you have the time to actually run your program, why not just work out what the result is, and write a program that prints it as the constant string?
14:12:07 <ais523_> although the IOI probably marks you on what the code does in addition to getting the result right, so that trick wouldn't work there
14:12:44 <wib_jonas> ais523: yes, that works, but the competitions themselves have a submission deadline, so the limitation is that the human has to somehow compute the result by then
14:12:48 <ais523_> C-INTERCAL actually has a command-line option, -F, to do this optimisation (i.e. first statically analyse the program to see if it has constant output; if it does, run the program and just generate an executable that hardcodes the output)
14:12:52 <myname> IOI?
14:13:07 <ais523_> international olympiad in informatics, I think? I mostly only know it by the acronym
14:13:16 <myname> ah
14:13:17 <wib_jonas> ais523: I don't know how it's scored
14:13:22 <ais523_> https://en.wikipedia.org/wiki/International_Olympiad_in_Informatics
14:13:29 <wib_jonas> there's like two of them, and I know of them indirectly
14:13:43 <myname> i always thought, "informatics" is not a thing in english
14:14:02 <ais523_> it is, but it's a technical word that isn't in common use
14:14:16 <ais523_> IIRC many languages use similar words much more freely / in an everyday sense
14:14:59 <myname> in germany, the studying subject "computer science" is just called informatik
14:15:44 <myname> i once mentioned somewhere i am studying informatics and people where like "what?"
14:15:58 <myname> even though bioinformatics is called bioinformatics
14:16:03 -!- xkapastel has joined.
14:17:00 <wib_jonas> one of the competition tasks was to generate the truncatable primes http://oeis.org/A024770 , those ones whose number of digits equals to the program input. that's a finite sequence, so I solved this by precomputing and embedding each of the replies into the program.
14:17:29 <wib_jonas> myname: I think it's a europeanism that isn't used in english, but is used in the continent, so it works for the name of that contest
14:20:18 <wib_jonas> the other such task is trickier, it's the farming puzzle in http://ch24.org/static/archive/2008/2008_ec.pdf . that one has less than 15 essentially distinct inputs. however,
14:20:57 <wib_jonas> that's a competition round where you aren't judged by your code, and the input set is public as soon as the problem is, you only send the outputs as the solution,
14:21:15 <wib_jonas> so it's not a problem that there are so few inputs and that you can hard-code them, generating the outputs still isn't trivial,
14:21:51 <wib_jonas> and unlike the previous case, you probably couldn't even look up the results in the OEIS or elsewhere online before the contest
14:22:20 <ais523_> I think it would be worthwhile to have a language with every OEIS sequence as a builtin
14:22:28 <ais523_> (you'd probably need flow control, but nothing else, to make a usable language)
14:22:34 <ais523_> however, it would be a huge amount of effort
14:22:53 <wib_jonas> ais523: yes, but it's not trivial to download dumps from OEIS, so it's hard to make this run off-line
14:23:23 <wib_jonas> and of course *every* OEIS sequence is impossible if you take it too literally
14:23:25 <ais523_> you'd probably need to write the code yourself
14:23:30 <wib_jonas> but many OEIS sequences could work
14:24:37 <fizzie> Back when I was in university, they had a "Laboratory of Theoretical Computer Science" (TCS for short, for proper CS: computational complexity, logic, cryptography, distributed computation) and "Laboratory of Computer and Information Science" (CIS for short, for machine learning and such), which they merged to "Department of Information and Computer Science" (ICS, for all the sciencey computer science
14:24:43 <fizzie> stuff); which were all entirely parallel to the Department of (just) Computer Science (CS for short, for all the engineeringy software development stuff).
14:27:31 <wib_jonas> and of course it would have to be uncomputable, because there are a few uncomputable sequences in OEIS, like http://oeis.org/A028444
14:27:55 <wib_jonas> and a lot of sequences that are at least semi-computable but we don't have an efficient way to compute them
15:02:40 -!- ais523_ has quit (Quit: quit).
15:21:38 -!- sprocklem has joined.
15:26:17 -!- heroux has quit (Ping timeout: 240 seconds).
15:27:15 <wib_jonas> `olist 1185
15:27:16 <HackEso> olist 1185: shachaf oerjan Sgeo FireFly boily nortti b_jonas
15:27:17 <wib_jonas> `thanks fungot
15:27:17 <fungot> wib_jonas: it's so nice. now you'll think of her as the seventh member, then. meet. for example, the week after we finish, pally. it is not acceptable to cast, i should know
15:27:18 <HackEso> Thanks, fungot. Thungot.
15:27:43 <wib_jonas> fungot: hey, no spoilers! we'll read the strip, don't give it away
15:27:43 <fungot> wib_jonas: a lot. way more for all that, may i suggest that i would do such as that, yes of course"? you're, like, and you get if we go down a level!
15:30:03 -!- nfd has quit (Ping timeout: 264 seconds).
15:33:21 -!- heroux has joined.
15:39:39 <wib_jonas> so how will they take that photo in the council room that Elan wanted to take in #1178 ?
15:47:47 -!- ais523__ has joined.
15:53:21 -!- ais523__ has changed nick to ais523.
15:53:32 -!- ais523 has changed nick to ais523__.
16:10:42 <wib_jonas> I don't think of her as the seventh member anyway. I think of her as the sixth member, who will replace Belkar soon after he dies. Adventuring parties can't have more than six members, any more than you can carry more than six pokémon on you.
16:18:17 -!- sprocklem has quit (Ping timeout: 240 seconds).
16:28:53 -!- kritixilithos has joined.
16:35:39 -!- sprocklem has joined.
17:01:28 -!- wib_jonas has quit (Remote host closed the connection).
17:29:43 -!- ais523__ has quit (Quit: quit).
17:32:53 -!- LKoen has joined.
17:41:50 -!- kritixilithos has quit (Remote host closed the connection).
17:49:56 -!- kritixilithos has joined.
17:51:18 -!- arseniiv_ has joined.
17:52:11 -!- arseniiv has quit (Ping timeout: 246 seconds).
17:56:42 -!- kritixilithos has quit (Quit: WeeChat 2.6).
17:59:45 -!- kritixilithos has joined.
17:59:53 -!- sprocklem has quit (Ping timeout: 252 seconds).
18:11:46 -!- Phantom_Hoover has joined.
18:13:01 -!- b_jonas has joined.
18:59:07 -!- kritixilithos has quit (Quit: kritixilithos).
19:02:14 -!- xkapastel has quit (Quit: Connection closed for inactivity).
19:02:29 -!- LKoen has quit (Remote host closed the connection).
19:04:58 -!- LKoen has joined.
19:23:04 -!- sprocklem has joined.
19:27:27 -!- LKoen has quit (Remote host closed the connection).
19:38:11 -!- LKoen has joined.
19:55:04 -!- LKoen has quit (Remote host closed the connection).
20:22:25 <b_jonas> in a regular polygon with 6.776 sides, the sides have the same length as the radius of the incircle
20:26:15 -!- LKoen has joined.
20:30:16 <kmc> exactly?
20:30:23 <b_jonas> kmc: no
20:30:43 <esowiki> [[Keg]] https://esolangs.org/w/index.php?diff=67000&oldid=66799 * JonoCode9374 * (+37) /* Quine */
20:37:09 <kmc> welp
20:41:14 -!- sprocklem has quit (Ping timeout: 240 seconds).
20:52:33 <esowiki> [[Plugh]] N https://esolangs.org/w/index.php?oldid=67001 * Joshop * (+628) Created page with "Plugh is a stack based language which is missing one of the key features of stack based languages: a push operation. Working around this is somewhat annoying to do. ==Syntax==..."
21:57:10 -!- oerjan has joined.
22:22:23 <esowiki> [[The Program Is Mostly Ignored]] M https://esolangs.org/w/index.php?diff=67002&oldid=66994 * Oerjan * (-2) Tweak invisible formatting in attempt to make diff sane
22:22:41 <oerjan> hah it worked
22:24:20 <oerjan> it's an outrage that mediawiki's diff can get so easily confused by line breaks
22:27:29 <int-e> OIC
22:27:56 <int-e> that effect is amazing
22:28:02 -!- 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.”).
22:43:44 <oerjan> it seems like it is mainly finding lines that match exactly, and changed lines only get matched with their old version if they don't change position relative to the unchanged ones.
23:15:06 <shachaf> `5 w
23:15:09 <HackEso> 1/3:inverness//Inverness is a city in Scotland. The ring road isn't multiplicative. \ welcome.ru//Добро пожаловать в Международный центр по разработке и внедрению языков эзотерического программирования! Для получения дополнительной информации посетите wiki: <https://esolangs.org/>. (Для другого
23:15:13 <shachaf> `n
23:15:14 <HackEso> 2/3:ипа эзотеризма попробуйте #esoteric в EFnet или DALnet.) \ elendil//Elendil's dad, Amandil, decided to try to save Numenor from its awful end by sailing to the Undying Lands and appealing to the Valar, but got lost. His family founded a new empire in Middle-earth. Elendil himself later made the Last Alliance with the elf king Gil-Galad, against Sauron. \ sentience//sentience is the primary goal of wisdom. wi
23:15:18 <shachaf> `n
23:15:19 <HackEso> 3/3:sdom is the primary goal of sentience. \ keming//Keming is a text compression scheme popular in Word processors.
23:41:41 -!- Phantom_Hoover has quit (Quit: Leaving).
2019-11-08
00:11:26 -!- arseniiv_ has quit (Ping timeout: 276 seconds).
00:22:55 -!- GeekDude has quit (Ping timeout: 250 seconds).
00:26:37 -!- FreeFull has quit.
00:38:09 -!- GeekDude has joined.
00:40:21 -!- sprocklem has joined.
01:15:06 <esowiki> [[Seclusion]] N https://esolangs.org/w/index.php?oldid=67003 * Hakerh400 * (+26511) Add new language
01:16:09 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=67004&oldid=66957 * Hakerh400 * (+16) Add new language
01:22:13 <esowiki> [[User:Hakerh400]] M https://esolangs.org/w/index.php?diff=67005&oldid=66597 * Hakerh400 * (+16)
01:23:06 <esowiki> [[User:Hakerh400]] M https://esolangs.org/w/index.php?diff=67006&oldid=67005 * Hakerh400 * (+0)
01:23:52 <esowiki> [[User:Hakerh400]] M https://esolangs.org/w/index.php?diff=67007&oldid=67006 * Hakerh400 * (-1933) Removed an irrelevant paragraph
02:01:40 -!- imode has joined.
02:12:18 -!- hppavilion[1] has joined.
02:17:56 -!- hppavilion[2] has joined.
02:21:07 -!- hppavilion[1] has quit (Ping timeout: 268 seconds).
02:27:09 -!- oerjan has quit (Quit: Nite).
03:27:30 -!- xkapastel has joined.
04:21:24 -!- user24 has joined.
04:22:23 -!- user24 has quit (Client Quit).
05:19:56 -!- imode has quit (Ping timeout: 240 seconds).
06:07:59 -!- j-bot has joined.
07:22:24 <b_jonas> [ _1^i.19
07:22:25 <j-bot> b_jonas: 1 _1 1 _1 1 _1 1 _1 1 _1 1 _1 1 _1 1 _1 1 _1 1
07:22:28 <b_jonas> hi j-bot
07:35:41 -!- b_jonas has quit (Remote host closed the connection).
07:39:59 -!- nfd9001 has joined.
08:13:32 <esowiki> [[MetaGlow]] https://esolangs.org/w/index.php?diff=67008&oldid=65198 * SoYouWantMeToDoSomethingButIWont * (+67) wrote main thing
10:56:26 -!- arseniiv_ has joined.
12:10:26 -!- Panini has joined.
12:17:09 <esowiki> [[Plugh]] https://esolangs.org/w/index.php?diff=67009&oldid=67001 * Joshop * (+1045)
12:37:10 -!- Panini has quit (Ping timeout: 268 seconds).
12:58:02 -!- hppavilion[2] has quit (Ping timeout: 240 seconds).
13:20:33 -!- Panini has joined.
13:21:20 <Panini> Hi
13:27:31 <Panini> So quiet :D
13:44:02 -!- arseniiv_ has quit (Ping timeout: 240 seconds).
13:46:15 -!- Panini has quit (Quit: Leaving).
13:59:58 -!- arseniiv_ has joined.
15:34:39 -!- imode has joined.
15:46:18 -!- kritixilithos has joined.
15:46:23 -!- kritixilithos has left.
15:46:41 -!- kritixilithos has joined.
15:46:47 -!- kritixilithos has quit (Client Quit).
15:47:14 -!- kritixilithos has joined.
16:08:41 -!- imode has quit (Ping timeout: 268 seconds).
16:15:25 -!- imode has joined.
16:47:12 -!- kspalaiologos has joined.
17:00:03 -!- imode has quit (Ping timeout: 264 seconds).
17:08:18 -!- LKoen has joined.
17:37:04 -!- imode has joined.
17:47:58 -!- imode has quit (Ping timeout: 268 seconds).
18:09:19 -!- FreeFull has joined.
18:13:10 -!- ais523__ has joined.
18:13:31 -!- b_jonas has joined.
18:17:39 <ais523__> hmm, I'm concerned I may have miscounted in the 2-Tag TPIMI construction; I'm not sure whether k should be 1000 or 1100 (it's obviously one or the other, though, so there's a correct construction either way)
18:17:49 <ais523__> once I'm back to my regular computer, maybe I'll write an interpreter and find out that way
18:25:46 -!- LKoen has quit (Remote host closed the connection).
18:31:11 -!- LKoen has joined.
18:36:09 -!- Phantom_Hoover has joined.
18:59:58 -!- ais523__ has quit (Quit: quit).
19:09:09 -!- kritixilithos has quit (Quit: kritixilithos).
19:40:50 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
20:10:03 -!- 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.”).
20:27:50 -!- Vorpal has joined.
20:36:02 -!- subleq has quit (Ping timeout: 276 seconds).
20:36:29 -!- imode has joined.
20:48:43 -!- Phantom_Hoover has joined.
20:49:00 -!- imode has quit (Ping timeout: 265 seconds).
21:01:17 -!- kspalaiologos has quit (Quit: Leaving).
21:04:20 -!- oerjan has joined.
22:22:15 -!- subleq has joined.
23:56:57 -!- sprocklem has quit (Ping timeout: 240 seconds).
23:58:18 -!- sprocklem has joined.
2019-11-09
00:10:01 -!- FreeFull has quit.
00:44:23 -!- Phantom_Hoover has quit (Ping timeout: 265 seconds).
00:44:59 -!- arseniiv_ has quit (Ping timeout: 276 seconds).
00:55:43 -!- Melvar has quit (Quit: WeeChat 2.4).
01:06:37 -!- sprocklem has quit (Ping timeout: 265 seconds).
01:10:17 -!- atslash has quit (Ping timeout: 240 seconds).
01:10:46 -!- atslash has joined.
01:16:20 -!- atslash has quit (Quit: This computer has gone to sleep).
01:42:26 -!- sprocklem has joined.
02:13:00 -!- oerjan has quit (Quit: Nite).
02:27:17 -!- xkapastel has quit (Quit: Connection closed for inactivity).
02:40:15 <shachaf> kmc: do you like pleurotus eryngii twh
03:00:48 -!- imode has joined.
03:05:08 -!- Phantom_Hoover has joined.
03:10:50 -!- Phantom_Hoover has quit (Ping timeout: 265 seconds).
03:20:29 -!- Phantom_Hoover has joined.
03:25:36 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
03:33:52 <kmc> shachaf: yes
03:33:55 <kmc> good mushroom
03:34:00 <kmc> at least i think so
03:35:17 -!- imode has quit (Ping timeout: 276 seconds).
04:58:35 -!- imode has joined.
05:20:50 -!- imode has quit (Ping timeout: 240 seconds).
05:21:19 -!- imode has joined.
05:45:01 -!- imode has quit (Ping timeout: 265 seconds).
05:45:17 -!- tromp_ has quit (Ping timeout: 276 seconds).
06:02:41 -!- tromp has joined.
06:08:13 -!- kingoffrance has joined.
06:11:17 -!- tromp has quit (Ping timeout: 276 seconds).
06:50:40 -!- tromp has joined.
06:55:26 -!- b_jonas has quit (Remote host closed the connection).
07:07:37 -!- nfd9001 has quit (Quit: Leaving).
07:08:01 -!- nfd9001 has joined.
07:28:20 -!- Panini has joined.
08:04:30 -!- Panini has left ("Leaving").
08:25:05 -!- tromp has quit (Read error: Connection reset by peer).
08:25:14 -!- tromp has joined.
08:45:13 -!- xkapastel has joined.
08:55:53 -!- hppavilion[1] has joined.
08:58:59 -!- tromp has quit (Ping timeout: 276 seconds).
09:10:01 -!- tromp has joined.
09:17:37 -!- hppavilion[1] has quit (Quit: Leaving).
09:22:26 -!- sprocklem has quit (Ping timeout: 240 seconds).
09:45:01 -!- kritixilithos has joined.
09:47:06 -!- kspalaiologos has joined.
10:03:40 -!- sprocklem has joined.
10:03:43 -!- kspalaiologos has quit (Quit: Leaving).
10:04:08 -!- kspalaiologos has joined.
10:04:52 -!- kspalaiologos has quit (Client Quit).
10:05:08 -!- kspalaiologos has joined.
10:30:37 -!- sprocklem has quit (Ping timeout: 240 seconds).
10:31:54 -!- sprocklem has joined.
10:45:54 -!- b_jonas has joined.
10:50:39 -!- hppavilion[1] has joined.
11:17:31 -!- Melvar has joined.
12:29:26 -!- arseniiv_ has joined.
14:32:20 -!- hppavilion[1] has quit (Ping timeout: 265 seconds).
14:39:38 -!- Phantom_Hoover has joined.
14:44:02 -!- atslash has joined.
14:49:20 -!- imode has joined.
15:45:24 -!- kritixilithos has quit (Ping timeout: 260 seconds).
15:46:33 -!- kritixilithos has joined.
15:54:40 -!- imode has quit (Ping timeout: 252 seconds).
16:36:52 -!- arseniiv_ has changed nick to arseniiv.
16:55:14 -!- atslash has quit (Ping timeout: 240 seconds).
16:55:32 -!- atslash has joined.
17:07:00 -!- Phantom_Hoover has quit (Ping timeout: 265 seconds).
17:40:12 -!- kritixilithos has quit (Ping timeout: 260 seconds).
17:41:11 -!- Frater_EST has joined.
17:44:43 -!- kritixilithos has joined.
17:50:59 -!- FreeFull has joined.
17:53:04 -!- Frater_EST has quit (Read error: Connection reset by peer).
17:54:53 -!- Frater_EST has joined.
18:10:13 -!- Frater_EST has quit (Read error: Connection reset by peer).
18:12:28 -!- Frater_EST has joined.
18:38:47 -!- Cale has quit (Ping timeout: 250 seconds).
18:46:25 <b_jonas> do you like your chocolate corn flakes with or without cinnamon, fungot?
18:46:25 <fungot> b_jonas: for that, my family would like my mode of transit returned, do i not, lieutenant, do i not, lieutenant, do i not, lieutenant, do i not, lieutenant, do i not, lieutenant, do i not, lieutenant, do i not, lieutenant, do i not, lieutenant, do i not, lieutenant, do i not, lieutenant, do i not, lieutenant, do i not, lieutenant, do i not, lieutenant, do i not, lieutenant, do i not, lieutenant, do i not, lieutenant, do i not,
18:50:01 -!- kritixilithos has quit (Quit: :q).
18:52:03 -!- Cale has joined.
19:20:57 -!- Frater_EST has quit (Read error: Connection reset by peer).
19:39:24 <arseniiv> oh!
19:40:05 <arseniiv> fungot: would you loop if I ask you something too, too?
19:40:06 <fungot> arseniiv: the " hd" stands for " 2 gp's", and it'll be there until your trial and then, gods willing, for that kind of stuff, i figured that one out on my own, but
19:40:37 <arseniiv> fungot: my what now? What did I do?
19:40:38 <fungot> arseniiv: i know that, i'm a whole skeleton again, and we all know nothing of your wicked?
19:41:17 <arseniiv> I hadn’t done anything wicked ever, fear fungot, why would you presume that?..
19:41:17 <fungot> arseniiv: great, now i'm cursed. mom was so mad, i was.
19:41:35 <arseniiv> ^style
19:41:35 <fungot> Available: agora alice c64 ct darwin discworld enron europarl ff7 fisher fungot homestuck ic irc iwcs jargon lovecraft nethack oots* pa qwantz sms speeches ss wp ukparl youtube
19:41:40 <fizzie> fungot: Who cursed you?
19:41:40 <fungot> fizzie: i, uh, the king's room, and none and my need for the mission that was about, it wouldn't be really easy, and its taking forever, but
19:42:09 <arseniiv> remind me not to step in that room ever
19:42:17 <fizzie> FWIW, the smaller models are more loop-prone. Not as bad now as before the real loop bug got fixed.
19:43:27 <fizzie> https://github.com/fis/fungot/commit/1025e3b wasn't that such an obvious mistake?
19:43:28 <fungot> fizzie: master,, in enough detail as you. and i know that, i'm no better than my own, but one that requires that the subject. does he? didn't he?
19:43:41 <arseniiv> fungot: hopefully the curse would lift itself some day! Don’t feel bad, we all love you
19:43:41 <fungot> arseniiv: see, i need magic to find that i am, i am the leader and strategic plan in the morning" to you,. there are so many of the terrible tree invaders.
19:44:34 <arseniiv> fizzie: presuming it indeed was, it was
19:44:47 <arseniiv> sorry I’m reading a formal semantics article about NPIs
19:45:12 <arseniiv> it affects my pragmatic and syntactic choices
19:45:53 -!- kspalaiologos has quit (Quit: Leaving).
19:47:27 <arseniiv> oh! someone familiar with free logic variants and their problems? I chewed on that for a while, and now, that being half-forgotten, I think if type theories are an unquestionably better choice for what free logics were designed
19:50:27 <b_jonas> `quote hey, hey
19:50:28 <HackEso> 728) <fungot> itidus21: hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, h
19:50:39 <arseniiv> https://plato.stanford.edu/entries/logic-free is a pretty good summary, it cleared many things for me, though it confused my feelings about free logics in the first place. Before, I was hopeful, and now I’m anxious when I accidentally remember of the topic
19:51:05 <arseniiv> b_jonas: yeah, that one came to my mind too!
19:51:34 <arseniiv> was that in a loop bug times or after fixing it?
19:51:54 <b_jonas> fizzie: well OOTS has lots of new strips now, so you could retrain the model with them. then it would talk about dwarves and gods and honor and Tarquin and dinosaurs. it would be a win.
19:53:00 <fizzie> I'm guessing it was still bugtime. The sword alone definitely was.
19:53:15 <b_jonas> sword alone?
19:53:20 <fizzie> The sword alone can't stop.
19:53:24 <fizzie> ^style ct
19:53:24 <fungot> Selected style: ct (Chrono Trigger game script)
19:53:30 <fizzie> fungot: So tell me about this sword.
19:53:30 <fungot> fizzie: the real queen's safe, right! right. wrong!
19:56:43 <arseniiv> fungot: is she alone?
19:56:44 <fungot> arseniiv: is the gate key okay!! get' em! 200g per night. care, and stay...healthy! my husband...he's...he's...gone... but he left me precious gifts! the seeds...and our child, it's ancient history now...
19:58:35 <arseniiv> seem to remember something about ct having quite long unbroken passages, is it a couple of them?
19:59:07 -!- maitake has joined.
19:59:45 <fizzie> The loop's from when the Crono sticks the Masamune into the Mammon Machine, and Lavos wakes up.
20:00:12 <fizzie> Schala says "N, no stop! That sword alone can't stop it!"
20:01:50 <fizzie> So: http://esolangs.org/logs/2010-06-02.html#l0F
20:01:55 -!- maitake has quit (Remote host closed the connection).
20:04:01 -!- xkapastel has quit (Quit: Connection closed for inactivity).
20:07:12 <arseniiv> the pretty smiles of Darwin :)
21:12:26 -!- ornxka has quit (Ping timeout: 240 seconds).
21:15:55 <b_jonas> I know I asked this already, but I didn't get a satisfying answer. fungot, which love song is better, "I will love again" or "White flag"?
21:15:55 <fungot> b_jonas: but, we are far outnumbered! your friends, i presume? at this rate, leave to kino! ayla quit chief. kino now chief. bright place can get us down as long as you keep crono in your heart, the day of lavos"... go to " leene square" 1000 a.d.? yes, i'd have done something very brave! he's probably up north, to guardia!!! let's toast our land! now we'll have some peace! magus is a tad on the spooky side. our only hope.
21:21:35 <fizzie> A tad on the spooky side, but still our only hope.
21:22:26 -!- oerjan has joined.
21:25:39 <fizzie> Aw, a Chrome app using the TCP socket API can't set the MSS. :/
21:26:05 <b_jonas> fizzie: incidentally, I downloaded most of DMM's comics webpages recently, so if you want to retrain our hon. and learned friend on Irregular or perhaps on (Irregular annotations plus 100 Proofs), I can extract the right parts of the text and put it somehwere
21:26:52 <fizzie> I kind of want to, but at the same time it feels like a hassle.
21:27:00 <b_jonas> fizzie: that goes over TCP, so doesn't the operating system's TCP stack normally sets the MSS the right way by default?
21:28:05 <b_jonas> fizzie: use that new IOCCC winner that lets you train stochastic models using these new-fangled AI terminology that goes so well with marketing
21:29:20 <b_jonas> `faq
21:29:21 <HackEso> ​/srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: faq: not found
21:29:24 <b_jonas> hmm
21:29:32 <b_jonas> we'll have to rely on lambdabot
21:29:34 <b_jonas> @faq
21:29:34 <lambdabot> https://wiki.haskell.org/FAQ
21:30:00 <b_jonas> ^faq
21:30:11 <b_jonas> j-bot, faq:
21:31:17 <fizzie> b_jonas: Yes, there's a lot of context for the observation. The short version is, I've got a nftables setup that does SSH port knocking using knocks that have an odd MSS value set, because it's something you can easily detect with a firewall rule without running a server, yet also one of the few bits in the TCP header you can quite well control from the client side.
21:31:47 <fizzie> (I used to have a more conventional port knock thing where the knocks were "packets to port X, Y and Z", but that seemed too mainstream.)
21:32:51 <fizzie> Now I've picked up a Chrome OS device, which is a little awkward to run arbitrary code on without losing the "fully verified" status, so I was wondering if I could make Chrome do the knocking.
21:34:15 <b_jonas> fizzie: ok, I don't claim to understand that part
21:35:01 <b_jonas> the part I understand is just: let the OS do its thing by default, even though it has all sorts of setsockopt and sysctl knobs to do more magic
21:35:19 <fizzie> But that's fundamentally incompatible with this idea.
21:35:54 <fizzie> I'm using the MSS field as an arbitrary "key" in a connection that won't actually be used for any data, it's just a signal.
21:37:09 <fizzie> (To add a temporary exemption that allows the *actual* connection to the SSH port.)
21:41:45 <b_jonas> fizzie: but won't that confuse further connections to the same host?
21:41:55 <b_jonas> since the OS might try to use the same MSS value later
21:42:07 <b_jonas> why MSS in particular? aren't there other places where you can shove the data?
21:42:40 <fizzie> From what I recall, there wasn't really anything else easily/portably controllable (in a non-raw-sockets manner) in the IP or TCP headers.
21:42:57 <fizzie> And I don't think any TCP stack will pick up MSS values used by applications.
21:43:02 <fizzie> It's not like MTU discovery.
21:43:32 <b_jonas> ok
21:45:51 <fizzie> It's all quite pointless, I've just gotten used to having this thing.
22:06:55 -!- ornx has joined.
22:08:59 -!- ornx has changed nick to ornxka.
22:51:14 -!- arseniiv has quit (Ping timeout: 240 seconds).
23:09:02 -!- imode has joined.
2019-11-10
00:27:21 -!- xkapastel has joined.
00:58:16 -!- tromp has quit (Ping timeout: 240 seconds).
00:58:24 -!- tromp has joined.
02:02:03 -!- HackEso has quit (Ping timeout: 265 seconds).
02:02:24 -!- HackEso has joined.
02:22:17 -!- hppavilion[1] has joined.
02:30:09 -!- nfd has joined.
02:31:02 -!- Sgeo_ has joined.
02:32:40 -!- nfd9001 has quit (Ping timeout: 268 seconds).
02:33:57 -!- Sgeo has quit (Ping timeout: 240 seconds).
03:02:07 -!- Phantom_Hoover has joined.
03:03:38 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
03:39:38 -!- nfd has quit (Ping timeout: 240 seconds).
04:16:30 <esowiki> [[The Program Is Mostly Ignored]] https://esolangs.org/w/index.php?diff=67010&oldid=67002 * Oerjan * (-240) /* Implementation of the modified version in 2-Echo Tag */ I may be mistaken due to being tired, but I *think* the miscounting you were suspecting is that the bolding step shouldn't be there at all.
04:22:19 -!- oerjan has quit (Quit: Nite).
06:34:33 -!- nfd9001 has joined.
06:43:36 -!- nfd9001 has quit (Ping timeout: 240 seconds).
07:18:38 -!- imode has quit (Ping timeout: 276 seconds).
07:20:09 -!- nfd9001 has joined.
07:27:27 -!- arseniiv has joined.
07:33:37 -!- nfd9001 has quit (Ping timeout: 265 seconds).
08:03:48 <Sgeo_> I am vaguely trying to relearn MUSHcode. Protip: Do not learn MUSHcode
08:29:54 -!- nfd9001 has joined.
09:05:36 -!- kspalaiologos has joined.
10:29:39 -!- ArthurStrong has joined.
10:29:49 -!- tromp_ has joined.
10:30:50 -!- hppavilion[1] has quit (Ping timeout: 240 seconds).
10:32:38 -!- tromp has quit (Ping timeout: 246 seconds).
10:55:52 -!- hppavilion[1] has joined.
12:07:08 -!- xkapastel has quit (Quit: Connection closed for inactivity).
12:11:47 -!- hppavilion[1] has quit (Ping timeout: 276 seconds).
13:44:27 -!- Phantom_Hoover has joined.
14:17:50 -!- hppavilion[1] has joined.
14:40:21 <b_jonas> `? words
14:40:22 <HackEso> The `words dictionary framework was designed by Klens Hålgar Oslekk, Upert T. Noffrey, Guiston Degraîme, Myyntti Raatalla, Gölrika Rosenskild, Zwübert von Pfölliger, Waslomir Stronderowich, Győrvan Sárbik, Gareen Shergyle, Fnörður Hljófsson, and Pastronella Gattrovezzi.
14:44:09 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
15:21:59 -!- imode has joined.
15:37:05 -!- Sgeo__ has joined.
15:40:46 -!- Sgeo_ has quit (Ping timeout: 268 seconds).
16:56:50 -!- atslash has quit (Ping timeout: 240 seconds).
16:57:33 -!- atslash has joined.
17:42:40 -!- ais523_ has joined.
18:18:23 -!- nfd9001 has quit (Ping timeout: 265 seconds).
18:44:15 -!- kspalaiologos has quit (Quit: Leaving).
19:20:19 -!- ais523_ has quit (Quit: quit).
19:55:47 -!- tromp has joined.
19:59:08 -!- tromp_ has quit (Ping timeout: 276 seconds).
20:39:20 -!- oerjan has joined.
21:25:24 <b_jonas> helloerjan. I was just looking at wisdom/\`words , set in 2017-01. I wonder if it's time to revise it
21:26:51 <arseniiv> `words don’t come easy to me; what does it ever mean?
21:26:53 <HackEso> Argument "donâM-\0M-^Yt" isn't numeric in int at /hackenv/bin/words line 148.
21:28:58 <b_jonas> hmm, what is Gölrika Rosenskild supposed to represent? I should check that in the logs because it's not obvious
21:36:33 <Sgeo__> u(my_custom_function, arg1)
21:40:32 <b_jonas> oerjan: it turns out that Kazal László has a song that has a lot of believable but fake Hungarian family names. my favourite is "Görkovács", which sounds quite real, yet when I did an internet search, the only results I found were that one song.
21:41:32 <b_jonas> a lot of the names sound like they're of jewish or german origin, but you need at least some of those to make the spread realistic, and apparently they're easier to invent
21:42:16 <b_jonas> it also has a few easy ones like "G. Nagy" where "Nagy" is the single most common family name, and double names with an initial aren't too rare, but there are so many combinations that it's not hard to find ones that haven't been used yet
21:43:25 <b_jonas> the story of the song is that the first person narrator wants to change his family name because he doesn't like the name Görény, and an officer suggests a list of possibilities to him from a phonebook
21:44:31 <b_jonas> so there's a list of close to 50 family names, a few of which are real by accident
21:44:55 <b_jonas> of course, all this doesn't help the much harder problem of coming up with a fake but plausible Hungarian given name
21:52:46 <b_jonas> both Gölrika Rosenskild and Zwübert von Pfölliger look like german names to me
21:53:19 -!- arseniiv has quit (Ping timeout: 250 seconds).
21:58:44 -!- booper has joined.
21:59:26 <fizzie> While it's clearly Germanic more generally, Gölrika Rosenskild looks fake-Swedish to me. (Ulrika is a reasonably common Swedish first name.)
21:59:33 -!- booper has left.
22:01:00 -!- zeroFlow has joined.
22:01:10 <oerjan> swedish it is.
22:02:02 <b_jonas> oh, I have one. Pügmalión
22:02:03 <b_jonas> Checked
22:02:06 <b_jonas> argh
22:02:13 * oerjan vaguely wonders if b_jonas is biased to consider the hungarian fake names less plausible than the others simply because he knows the language better
22:02:13 <fizzie> My Swedish teacher in I-forget-what-grade had the surname Rosenberg.
22:02:54 <b_jonas> Pügmalión is a male name from classical mythology, so it could be used as a Hungarian given name easily, but isn't yet used
22:02:58 <oerjan> Rosensköld is genuine btw
22:03:02 <fizzie> FWIW, I definitely consider "Myyntti Raatalla" less plausible than the others for precisely that reason.
22:03:41 <b_jonas> oerjan: certainly, although I did say that I find Zwübert von Pfölliger over the top. but I also can't really help you find plausible names in other languages,
22:04:01 <shachaf> `? `words
22:04:05 <HackEso> The `words dictionary framework was designed by Klens Hålgar Oslekk, Upert T. Noffrey, Guiston Degraîme, Myyntti Raatalla, Gölrika Rosenskild, Zwübert von Pfölliger, Waslomir Stronderowich, Győrvan Sárbik, Gareen Shergyle, Fnörður Hljófsson, and Pastronella Gattrovezzi.
22:04:16 <oerjan> well what i mean is that they're not _meant_ to look that plausible.
22:05:01 <b_jonas> except that Pedrillo is a nice italian male name that everyone knows from the Mozart opera and yet is barely used in the real world
22:06:04 <b_jonas> oerjan: and yes, I said that I recognize fake Hungarian given names because almost everyone wears either common given names or ones that don't look Hungarian
22:06:46 <b_jonas> sure, they have to look somewhat over the top to be recognizably from a certain language
22:07:08 <b_jonas> otherwise we could just have ten Annas
22:07:19 <b_jonas> oh wait, you want a male one
22:07:44 <b_jonas> ten Davids
22:08:05 -!- zeroFlow_ has joined.
22:08:09 <oerjan> the conspiracy of Daves is clearly involved
22:08:13 -!- zeroFlow_ has quit (Client Quit).
22:08:17 -!- zeroFlow has quit (Remote host closed the connection).
22:08:36 -!- zeroFlow has joined.
22:09:09 <b_jonas> no, not Daves. Dave sounds like an american name
22:09:18 <b_jonas> David
22:09:43 <oerjan> Davida Loca
22:10:17 <fizzie> "Taavetti" is a Finnish form of David, though I think it's no longer really in use.
22:10:18 <b_jonas> I wonder if "Göndör" would work as a given name
22:10:41 <oerjan> Gömböc should get things rolling
22:11:19 <fizzie> Denethör, Steward of Göndör.
22:11:37 <b_jonas> I was also thinking of flower names, because that's an easy way to invent new names
22:11:46 <fizzie> Now you're just taking Frodo's advice.
22:12:09 <b_jonas> "Szulák" was suggested, but the problem is that it's already a family name
22:13:29 <fizzie> Welp, still 661 Taavettis born since 2000. But at least it's down from the 1525 born in the years 1900-1919.
22:13:55 <fizzie> (I think the statistics count all first names, I strongly suspect many of these are middle names.)
22:14:21 <b_jonas> the statistics for hungary gives counts for first and second given names separately
22:14:25 <oerjan> Arnør could work in norwegian
22:14:29 <b_jonas> but their order is mostly the same
22:15:10 <b_jonas> which I approve of
22:15:36 -!- zeroFlow has quit (Quit: My MacBook has gone to sleep. ZZZzzz…).
22:16:23 <b_jonas> there are a few outliers: Magdolna is apparently common as a second given name, perhaps because of a famous Mária Magdolna
22:17:27 <b_jonas> I wonder how many people have the same given name twice
22:17:34 <b_jonas> are there Maria Marias?
22:17:50 <fizzie> For Finnish, I think there's a general bias of second names being more traditional than first names, maybe because people often give names already existing in the family tree as second (or third) names.
22:18:09 <b_jonas> fizzie: yeah, that does happen, giving a second given name from family
22:22:20 <b_jonas> wow, on the list of most common male given names given to newborns in 2018 in Hungary, the 6th is Noel. That's weird. Must be some new fashion.
22:23:15 <fizzie> They used to have a per-year thing, but it's "removed for privacy reasons", so now I can only see decades.
22:24:00 <b_jonas> (Bence is still holding strong in first place, despite that all the other top ones keep changing quickly.)
22:24:26 <fizzie> There's an "Oliver" as #6 for male names in 2010-2019, I'm pretty sure that's some sort of a fashion too.
22:24:59 <b_jonas> you can tell by comparing to the statistics of given names among living people
22:25:33 <fizzie> Surprisingly enough, top three are Juhani, Johannes and Mikael, which is a pretty old-fashioned triplet.
22:25:51 <b_jonas> top three for which one?
22:26:30 <fizzie> Top three for male names given to people 2010-2019, I assume mostly babies born then.
22:26:42 <fizzie> It's not super-clear what the table means, though.
22:27:23 <b_jonas> I guess if you average out over ten years, the fresh fashion ones fall lower and the always popular traditional names climb to top
22:27:33 <fizzie> Could be that.
22:48:34 -!- imode has quit (Ping timeout: 265 seconds).
22:52:41 -!- xkapastel has joined.
23:26:19 -!- moonheart08 has joined.
23:29:07 <moonheart08> Took a look at the esoteric programming language on wikipedia..
23:29:13 <moonheart08> Kinda had to snip it down
23:29:19 <moonheart08> Aeemed really fancrufty
23:44:06 <oerjan> @metar ENVA
23:44:06 <lambdabot> ENVA 102250Z 08004KT 9999 FEW025 SCT035 BKN045 M04/M09 Q1014 RMK WIND 670FT 09007KT
23:55:06 -!- ArthurStrong has quit (Quit: leaving).
23:56:24 -!- moony_ has joined.
2019-11-11
00:00:48 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
00:00:53 -!- moonheart08 has quit (Ping timeout: 268 seconds).
00:02:51 -!- moony_ has quit (Read error: Connection reset by peer).
00:05:49 -!- FreeFull has quit.
00:22:39 -!- moony_ has joined.
00:27:16 -!- moony_ has quit (Ping timeout: 240 seconds).
00:35:34 -!- moony_ has joined.
00:39:57 -!- moony_ has quit (Ping timeout: 240 seconds).
01:08:15 -!- moony_ has joined.
01:31:33 <shachaf> `5
01:31:35 <HackEso> 1/2:1168) * Sgeo remembers when he believed VRML could never have gravity. Now VRML is dead. <Sgeo> (And has gravity) \ 271) <zzo38> I think I managed to make Stack Overflow work on gopher, now. \ 1038) <+kmc> we are amused <+kmc> the royal +v \ 123) <cpressey> Never ever use a quote which contains both the words "aloofness" and "gel" (verb). \ 208) <Phantom_Hoover> This is good if you are a wheat plant but bad if you like eating wheat seeds
01:31:36 <shachaf> `n
01:31:37 <HackEso> 2/2:.
01:31:45 <shachaf> oh no
01:31:54 <moony_> I took a peek at Seclusion.
01:32:02 <moony_> Now one of my favorite esolangs
01:33:56 <moony_> Suprisingly compact for a turing tarpit
01:37:16 -!- imode has joined.
01:37:27 <int-e> How does aloofness gel with quotes...
01:37:41 <moony_> hi int-e
01:37:52 <int-e> moornyng
01:38:15 <shachaf> `? int-e
01:38:15 <HackEso> int-e är inte svensk. Hen kommer att spränga solen. Hen står för sig själv. Hen gillar inte färger, men han gillar dissonans. Er hat ein Hipster-Spiel gekauft.
01:39:04 <int-e> let's nuke all the nickname wisdom entries and start from scratch.
01:39:29 <esowiki> [[Esolang:General disclaimer]] https://esolangs.org/w/index.php?diff=67011&oldid=64350 * Moon * (+41) Was there ever a time where this contained useful content?
01:40:14 <moony_> Answer: no
01:40:43 <shachaf> How does two watched literals work with backtracking?
01:41:38 <shachaf> The thing I imagine doing for 2WL is: You have a queue of literals that are forced to true. When you do unit propagation, you find new literals that are in unit clauses, and push them onto your queue.
01:42:04 <shachaf> But when you backtrack, do you just discard part of your queue depending on the backtrack level? I don't think that's what people do.
01:42:15 <int-e> queue?!
01:42:20 <shachaf> Not a queue?
01:42:31 <int-e> I don't see a queue.
01:42:55 <shachaf> You think you just set the literals to true directly?
01:43:14 <shachaf> I feel like you must have a queue or a stack or something.
01:43:26 <moony_> Also, i've been considering setting up my own mediawiki wiki for general CS
01:43:33 <moony_> things
01:43:44 <moony_> (Damn you enter key I wasn't done)
01:44:04 <int-e> shachaf: The trail is a stack to me. But it's not immediately connected to the watched literals.
01:44:15 <shachaf> The trail is just the regular stack, that's not what I mean.
01:44:32 <int-e> I see no queues in 2WL at all.
01:45:13 <shachaf> Say you're in some state where you have the clauses (x | y) & (x | z)
01:45:45 <shachaf> You end up with ¬x. Now you have to infer y and z. Right?
01:45:57 <int-e> Oh, that's where the queue is.
01:46:04 <shachaf> Then you need to find all the clauses that have ¬y and ¬z as their watched literals.
01:46:09 <int-e> Yeah, fair enough.
01:47:11 <int-e> And yes, I expect you discard the queue when you find a conflict. You don't touch the 2WL lists either; you have to ensure that every (non-unit) clause is on two lists as you process the literals.
01:47:28 <Sgeo__> I was wrong, VRML is not dead: http://create3000.de/x_ite/getting-started/
01:47:40 <shachaf> I know you don't need to undo 2WL when you backtrack, which is a neat trick.
01:47:47 <shachaf> But do you just discard the entire queue?
01:47:55 <int-e> sure
01:48:08 <int-e> you've found a conflict... you don't need more
01:49:54 <shachaf> Let me see. Say you have the clause (¬y | x)...
01:49:55 <shachaf> Oh, I see.
01:50:06 <int-e> (I expect you could keep going in hope of finding a nicer conflict clause? But the moment you find a conflict you violate the 2WL invariant that watched literals are not on the trail...)
01:50:24 <shachaf> You can just scrap the whole queue because this was all the propagation step, and the conflict was implied by the initial choice of ¬x.
01:50:48 <shachaf> There are no decisions made while the queue is nonempty, of course.
01:51:42 <int-e> (Which probably doesn't matter, but you probably need to be careful not to put a literal and its complement on the trail, at which point conflicts become very much meaningless. It seems messy.)
01:52:17 <int-e> You'll still want to keep the processed literals for conflict analysis.
01:52:36 <shachaf> I started implementing this queue as some kind of circular buffer thing but then I saw what minisat does:
01:52:47 <shachaf> They just store the queue on the trail itself, right after all the literals in the trail.
01:53:07 <shachaf> Then they just adjust the trail end index forward as they pop things off the queue onto the trail.
01:53:12 <shachaf> So much better.
01:53:37 <int-e> Sgeo__: I'm afraid that things don't die anymore... they go out of fashion but linger on. People will just build compatibility layers like the one you linked to.
01:54:28 <int-e> shachaf: Of course that is where you put the queue... which is why I didn't see it at first.
01:54:46 <shachaf> Right, it's really just the unprocessed part of the trail.
01:54:53 <Sgeo__> Technically it's not implementing the VRML spec faithfully. There's also an X3D spec that's a next version VRML, that's still being worked on.
01:55:01 <shachaf> But I didn't think of it that way at first!
01:55:08 <Sgeo__> https://github.com/create3000/x_ite/issues/50
01:56:17 <int-e> Sgeo__: you seem to care a lot about VRML
01:56:46 <Sgeo__> I spent some of my childhood in Cybertown, which used VRML, and before then I read a book about VRML
01:59:35 <shachaf> `? chu space
01:59:36 <HackEso> A Chu space is just a matrix. Taneb invented them, then Chu stole his invention.
01:59:43 <shachaf> `? matrix
01:59:44 <HackEso> A matrix is just a matrix. People use them to communicate. Taneb invented them.
02:02:58 <shachaf> So the better way to think of this is that some suffix of the trail is "unpropagated" and still needs to be processed.
02:05:17 <oerjan> `? solidity
02:05:18 <HackEso> Solidity is an esolang for writing contracts. It has good support for secure linear algebra.
02:06:07 <shachaf> Man, one time I was trying to come up with a clever pun about finance and linear algebra relating to how liquidity behaves nonlinearly.
02:06:11 <shachaf> But I never made it work.
02:09:01 <oerjan> today on schlock mercenary: heavy punning
02:09:45 <shachaf> `5 w
02:09:48 <HackEso> 1/1:bf//See: brainfuck \ portugoose//Peça ganso assado com natas. \ europe//Europe is the national anthem of the Republic of Kosovo. \ dereduntantation//Dereduntantation is the process of making things less redundant. It is typically done with either regexes or regular expressions. \ theory//To be theory is to be like a theorem, but inferior.
02:11:58 <oerjan> `cwlprits portugoose
02:12:00 <HackEso> boil̈y
02:12:12 <oerjan> that checks out
02:12:25 -!- xkapastel has quit (Quit: Connection closed for inactivity).
02:59:07 -!- oerjan has quit (Quit: Nite).
03:32:02 <int-e> poultry
03:37:00 <int-e> Is the solidity entry in any way connected to the matrix of solidity?
03:37:48 <shachaf> obviously hth
03:37:50 <int-e> @tell oerjan <oerjan> today on schlock mercenary: heavy punning <-- I feel that "Hurtz" would make an excellent unit for punnery.
03:37:50 <lambdabot> Consider it noted.
03:38:50 <int-e> shachaf: Is it? I mean I'll admit that it is highly suggestive. But that doesn't prove a thing.
03:39:01 <shachaf> `quote solidity
03:39:03 <HackEso> 239) <treederwright> enjoy being locked in your matrix of solidity
03:39:14 <shachaf> "secure linear algebra"?
03:40:37 <int-e> Using multiplication by zero and other forms of cancellation for information hiding.
03:42:22 <shachaf> Information deletion is a really good method of information hiding.
03:43:14 -!- imode has quit (Ping timeout: 276 seconds).
03:43:48 <int-e> lattice-based crypto is the other angle I thought of but it doesn't readily connect to finance
03:44:52 <shachaf> crypto stands for cryptocurrency so obviously it's always connected to finance hth
03:45:30 <int-e> shachaf: you should take that message to ##crypto ... it's a good test for whether the ops are around.
03:45:56 <int-e> I found this ridiculous article earlier... https://cointelegraph.com/news/bobby-lee-500k-bitcoin-price-flippening-of-gold-will-come-by-2028
03:46:19 <shachaf> speaking of crypto, got any hot ICO tips for me
03:47:32 <int-e> Not really. I'm a casual observer at best.
03:47:33 <shachaf> i sure want to, uh, hodl
03:47:44 <int-e> you *will* yolo
03:47:47 <shachaf> p. sure my coins are going to the moon
03:47:57 <shachaf> `coins
03:47:59 <HackEso> thisheacoin cacecoin millecoin olythcoin bloopcoin isabcoin concoin paviacoin ctnrmcoin vassiblecoin yatmoscoin arrorcoin tlwnncoin pogocoin cutakaelikencompcoin caivcoin explatcoin ezacoin osmetacoin purehcoin
03:48:06 <int-e> YOLO is the only ground truth in all of crypto.
03:48:23 <shachaf> I'm investing in bloopcoin!
03:48:28 <int-e> HODL is how you become a mule in the ongoing money laundering scheme.
03:48:59 <int-e> https://www.kalzumeus.com/2019/10/28/tether-and-bitfinex/ was fascinating to read
03:49:20 <shachaf> money laundering? now you're talking cryptography
03:49:31 <shachaf> ("cryptography" also stands for cryptocurrency hth)
03:49:48 <int-e> Yeah, troll.
03:50:02 <int-e> You already know how to troll me, and that wasn't it.
03:50:53 <int-e> `grwp fnord
03:50:54 <HackEso> fizzie:fizzie is not fnord with a monad but the king of #esoteric, see https://zem.fi/static/img/square_fizzie_320px_white.jpg \ indonesia:Indonesia is a large island country in Asia and the world's most populous muslim country. Its major export is rayon textile from the Indonesian fnord.
03:51:23 <shachaf> Oh no.
03:51:31 <int-e> That's a twolerable number.
03:51:37 <shachaf> I think it's clear enough this is intended in good fun and not to cause any actual irritation?
03:51:41 <shachaf> If it did then I should stop.
03:52:56 <int-e> Hmm. I don't know. Maybe I've seen a few too many "crypto" discussions on ##crypto to find it genuinely funny.
03:53:18 <shachaf> That makes sense.
03:56:25 <shachaf> My impression is that you also think most regular finance is sort of a scam, though.
03:57:26 <int-e> Sorta. But it's regulated... and intertwined with basically everything. So it's far more predictable.
04:00:01 -!- Taneb has quit (Quit: I seem to have stopped.).
04:01:44 -!- Taneb has joined.
04:03:23 <int-e> BTC is cute and small in comparison. Oh and I can lightly treat it as a joke because I'm not invested in it. You can identify the role and interests of individuals. Bobby Lee, for example, is co-founder and CEO of BTCC, a chinese bitcoin exchange. So predicting a bright future for BTC is in his interest.
04:09:19 <int-e> Say, are the YAFGC "related comics" just a randomly generated list of previous episodes...
04:09:39 <int-e> ...I noticed, for the first time, that the list changes when you reload the same page.
04:10:18 <int-e> (I did notice before that they are usually not very related to the current strip.)
04:33:36 -!- Sgeo_ has joined.
04:36:26 -!- Sgeo__ has quit (Ping timeout: 240 seconds).
04:52:09 -!- imode has joined.
05:09:41 -!- moony_ has quit (Read error: Connection reset by peer).
05:09:57 -!- moony_ has joined.
05:14:26 -!- moony_ has quit (Ping timeout: 240 seconds).
05:16:34 -!- moony_ has joined.
05:38:12 -!- moony_ has quit (Ping timeout: 268 seconds).
05:39:10 -!- moony_ has joined.
05:46:10 <kmc> `coins
05:46:13 <HackEso> doublecoin colacoin quecoin neccoin optealphilcoin goto++coin longsertcoin pofecoin l00tcoin puesspaghcoin galliiecoin ycoin athcoin sitioncoin concoin subjeccoin cutercoin dzicoin hactropolymoncoin whis=thacoin
05:47:29 <int-e> Oh right. That's the ICO list shachaf wanted.
05:48:28 <int-e> @thanks kmc
05:48:28 <lambdabot> you are welcome
05:48:33 <int-e> `thanks kmc
05:48:33 <HackEso> Thanks, kmc. Tmc.
05:49:02 <int-e> fungot:
05:49:02 <fungot> int-e: these unique items make us invincible! dance!! for ayla eat? oh...i feel faint. just as you touch, so throw away. thankful for that? for my, daughter! just like crono!
05:49:11 <int-e> ^style
05:49:11 <fungot> Available: agora alice c64 ct* darwin discworld enron europarl ff7 fisher fungot homestuck ic irc iwcs jargon lovecraft nethack oots pa qwantz sms speeches ss wp ukparl youtube
05:49:22 <int-e> ^style irc
05:49:22 <fungot> Selected style: irc (IRC logs of freenode/#esoteric, freenode/#scheme and ircnet/#douglasadams)
05:49:33 <int-e> fungot:
05:49:33 <fungot> int-e: so some kind of byte code, i might even prefer it fast, you know
05:50:38 <kingoffrance> im curious about the enron dialect, from the released audio :)
05:50:58 <kingoffrance> "grandmas not gonna have any power this week"
05:59:32 -!- tromp_ has joined.
06:02:02 -!- tromp has quit (Ping timeout: 240 seconds).
06:09:51 -!- imode has quit (Ping timeout: 265 seconds).
06:12:48 <esowiki> [[Baba Is You]] https://esolangs.org/w/index.php?diff=67012&oldid=66147 * YamTokTpaFa * (+9) /* External Resources */ fixed categorization
06:15:38 <esowiki> [[ASCII]] https://esolangs.org/w/index.php?diff=67013&oldid=65107 * YamTokTpaFa * (+35) Added link to WP article
06:18:10 <esowiki> [[Nuts]] https://esolangs.org/w/index.php?diff=67014&oldid=65948 * YamTokTpaFa * (-15) name fixed
06:48:03 <esowiki> [[L33t]] https://esolangs.org/w/index.php?diff=67015&oldid=63848 * YamTokTpaFa * (+31)
07:14:33 -!- tromp has joined.
07:16:26 -!- tromp_ has quit (Ping timeout: 276 seconds).
07:42:24 -!- tromp_ has joined.
07:42:24 -!- tromp has quit (Read error: Connection reset by peer).
07:46:32 -!- nfd9001 has joined.
08:42:13 <b_jonas> oerjan: anyway, I didn't mean that you should update Sárvik, that was just a sidetrack. I mean https://esolangs.org/logs/2017-01-29.html#l7j and the channel has acquired new active regulars
08:48:23 -!- sftp has quit (Ping timeout: 265 seconds).
08:56:52 -!- hppavilion[1] has joined.
09:03:01 -!- sftp has joined.
09:08:27 -!- hppavilion[1] has quit (Ping timeout: 250 seconds).
09:14:29 -!- b_jonas has quit (Quit: leaving).
10:04:15 -!- hppavilion[1] has joined.
10:18:04 -!- ArthurStrong has joined.
11:53:25 -!- hppavilion[2] has joined.
11:53:31 -!- hppavilion[2] has quit (Client Quit).
12:01:41 -!- arseniiv has joined.
12:11:21 -!- hppavilion[1] has quit (Remote host closed the connection).
12:20:13 <myname> oh nice, i didn't know fungot has an oots style
12:20:13 <fungot> myname: pattern match on it with someone else for a second
12:20:24 <myname> okay.
12:23:11 <fizzie> fungot: Come on, don't be so rude.
12:23:11 <fungot> fizzie: in perl you'd write "" instead of " ( display...
12:45:35 <int-e> fungot: ...
12:45:35 <fungot> int-e: i forgot to get rid of some cells exhibit. glad to be of any significance is in maine.
12:57:39 <fizzie> fungot: Try to come up with one of those weirdly relevant replies every once in a while, will you?
12:57:39 <fungot> fizzie: you can store and retrieve the strings in the array :) you mean to brainfuck or befunge rot13? you would need to be made
12:57:50 <fizzie> I don't think that counts.
13:07:50 <int-e> fungot doesn't do requests
13:07:50 <fungot> int-e: that may have been a giveaway... busy. all that is involved with yasos is individual objects there's no concept of hygiene
13:08:51 <int-e> Not relevant but pretty coherent.
13:14:41 -!- wib_jonas has joined.
13:16:18 <wib_jonas> "<fizzie> Try to come up with one of those weirdly relevant replies" => he did: https://esolangs.org/logs/2019-11-07.html#l1d
13:24:57 -!- moony_ has quit (Ping timeout: 240 seconds).
13:48:41 -!- imode has joined.
14:17:01 -!- kspalaiologos has joined.
14:28:17 -!- nfd9001 has quit (Ping timeout: 240 seconds).
15:05:11 -!- imode has quit (Ping timeout: 246 seconds).
15:44:41 -!- imode has joined.
15:58:51 <arseniiv> ^style
15:58:51 <fungot> Available: agora alice c64 ct darwin discworld enron europarl ff7 fisher fungot homestuck ic irc* iwcs jargon lovecraft nethack oots pa qwantz sms speeches ss wp ukparl youtube
15:59:03 <arseniiv> I suspected it
16:01:13 <arseniiv> for me, “to brainfuck or befunge rot13” is a find
16:01:37 <arseniiv> fungot, how old your irc base again?
16:01:37 <fungot> arseniiv: did i just read
16:02:06 <arseniiv> fungot: yeah, you did, but you wrote too little
16:02:06 <fungot> arseniiv: why ehird in particular? there must be. how do you have a bottle of liquid plumber
16:02:21 <arseniiv> you got me
16:03:08 <arseniiv> fungot: please inspire me at least
16:03:08 <fungot> arseniiv: i never hold grudges against people whom i refer to them later. this is a test").
16:03:27 <arseniiv> this doesn’t help at all, though it consoles a bit
16:04:52 <kingoffrance> liquid plumber i guess is a specific flavor of soylent green
16:05:57 <fizzie> I think the years are included in the style description.
16:05:59 <fizzie> ^style irc
16:05:59 <fungot> Selected style: irc (IRC logs of freenode/#esoteric, freenode/#scheme and ircnet/#douglasadams)
16:06:04 <fizzie> Well, apparently not.
16:06:12 <fizzie> It's pretty old, though.
16:06:42 <arseniiv> fungot: what do you know about the Restaurant?
16:06:42 <fungot> arseniiv: stop it, i suppose that would work with scheme48 on windows? fnord, when audio driver problems will probably be
16:07:20 <arseniiv> fungot: but I don’t want to stop, I’ve only just begun!
16:07:34 <arseniiv> (oh?)
16:07:58 <arseniiv> fungot: sorry, did I break you accidentally?
16:08:08 <arseniiv> oh!!!
16:08:35 <arseniiv> I’m sorry my dear
16:09:21 <imode> oh no, did fungot break?
16:09:21 <fungot> imode: tracing it by hand for safety?" yes... yes they can.... at last
16:09:24 <imode> nope.
16:09:42 <arseniiv> strange. Dear fungot, did you accidentally ban me?
16:09:42 <fungot> arseniiv: i was writing replace for a fnord bus on empty roads, even fnord plays in the eu
16:09:49 <imode> rate limiting, maybe.
16:10:42 <arseniiv> imode: are they that sophisticated? I’ll never stop wondering
16:10:53 * imode shrugs.
16:10:55 <imode> probably!
16:11:25 <arseniiv> fungot: that being dealt with, would you at last give me a piece of advice?
16:11:26 <fungot> arseniiv: i think i like pbrain and brainfork, there should be exactly be impressing me all the screen for an hour.
16:11:55 <int-e> arseniiv: "vice"?
16:12:19 <arseniiv> don’t think that’s a good advice at all
16:12:24 <arseniiv> int-e: ?
16:12:47 <arseniiv> you mean, that was simply an ad?
16:12:54 <arseniiv> maybe
16:13:12 <int-e> arseniiv: it was a piece of advice
16:13:45 <int-e> or more accurately a piece of "advice".
16:14:00 <arseniiv> ah
16:14:50 <arseniiv> fungot: what’s your opinion o quoting styles?
16:14:50 <fungot> arseniiv: http://en.wikipedia.org/ wiki/ steerpike' reminds me of the illusion
16:15:12 <arseniiv> so you don’t have an opinion yourselves
16:16:54 -!- wib_jonas has quit (Remote host closed the connection).
16:21:05 -!- zeroFlow has joined.
16:21:30 -!- zeroFlow has quit (Client Quit).
16:27:28 -!- zeroFlow has joined.
16:27:49 <fizzie> Yes, there's a "at most N consecutive replies to the same nickname in a row" limit, with N somewhere around 3 to 4.
16:28:14 <imode> makes sense.
16:34:28 -!- imode has quit (Quit: WeeChat 2.6).
16:36:02 -!- heroux has quit (Ping timeout: 240 seconds).
16:39:36 -!- Melvar has quit (Quit: WeeChat 2.4).
16:40:03 -!- kritixilithos has joined.
16:50:36 -!- Melvar has joined.
16:51:41 <arseniiv> fizzie: ah
16:56:23 <esowiki> [[Special:Log/newusers]] create * Ashtons * New user account
16:56:29 <int-e> Fun. _mm_sll_epi16, _mm_sll_epi32 and _mm_sll_epi64 shift in bit units. _mm_slli_si128 shifts in byte units (there's an alias _mm_bslli_si128). _mm_slli_epi8 does not exist.
16:56:50 <int-e> who comes up with these instruction sets...
16:58:00 <esowiki> [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=67016&oldid=66918 * Ashtons * (+225) added my intro
17:05:10 -!- Melvar has quit (Ping timeout: 268 seconds).
17:05:35 -!- Melvar has joined.
17:11:37 <int-e> (These came up while optimizing http://paste.debian.net/1115796/ ... which I have no use for at all.)
17:25:00 -!- Frater_EST has joined.
17:51:37 -!- Frater_EST has left.
17:52:35 -!- heroux has joined.
18:35:34 -!- kspalaiologos has quit (Quit: Leaving).
18:44:30 -!- zeroFlow has quit (Quit: zeroFlow).
18:55:01 -!- FreeFull has joined.
18:55:08 -!- b_jonas has joined.
18:56:35 -!- kspalaiologos has joined.
18:57:46 <b_jonas> int-e: yes, the ones that shift in bit units shift only within words (that are 16, 32, or 64 bit wide); the ones that shift in byte units shift the entire 128-bit register; the latter is mostly obsolete because we just use full permute instructions now, either way is just as slow; the former are also partly obsolete as we now have variable shift instructions that shift each word by a different amount as
18:57:52 <b_jonas> given by the words of another register
18:58:17 <b_jonas> there certainly are some overlap in the usage of these, but they are different enough instructions
18:58:24 <b_jonas> that they're all called "shift" is a pity
19:06:25 -!- zseri has joined.
19:20:59 <esowiki> [[Nine]] N https://esolangs.org/w/index.php?oldid=67017 * CMinusMinus * (+1155) Created page with "'''Nine''' ('''N'''ext L'''ine''') is an esoteric programming language, created by [[User:CMinusMinus]]. ==Instructions== {| class="wikitable sortable" |- ! Instruction !! Act..."
19:24:11 <esowiki> [[Nine]] https://esolangs.org/w/index.php?diff=67018&oldid=67017 * CMinusMinus * (+141)
19:24:27 -!- zeroFlow has joined.
19:25:08 -!- kritixilithos has quit (Quit:  ).
19:25:56 <esowiki> [[Nine]] https://esolangs.org/w/index.php?diff=67019&oldid=67018 * CMinusMinus * (+17)
19:28:36 -!- zeroFlow has quit (Ping timeout: 240 seconds).
19:30:49 <arseniiv> hey hey suppose we have a finite digraph (possibly with self-loops) and we start with I[0] the set of all sink vertices, then each time we set I[n+1] := I[n] ∪ (all vertices with outcoming edges only to vertices of I[n]). When I[n] settles (the graph is finite), what do we get? I suspect this set has a nice name
19:33:04 <arseniiv> (though as I[n] ⊂ I[n+1], we can take even an infinite graph and just take a limit of I afterwards, maybe of an ordinal-valued sequence)
19:33:43 <arseniiv> hm it reminds me induction
19:34:09 <arseniiv> (I swear I didn’t name I after “induction”)
19:38:14 <b_jonas> arseniiv: I don't think you get anything particularly interesting or nice
19:39:40 <arseniiv> this occurs when I try to decide if an algebraic type is inhabited; the vertices are types and t → u when a value of u is absolutely needed to construct a value of t
19:39:43 <b_jonas> arseniiv: there's a decomposition theorem for digraphs, where the digraph is made of strongly connected components aka strong components, any two node in the same strong component are reachable from each other both ways, and no two strong component is reachable from each other both ways,
19:39:55 <b_jonas> so if you contract the strong component, you get a digraph without a loop
19:40:37 <b_jonas> in your case, you start from sink vertices, which are exactly the sink strong components that have only one node, and then take all nodes (or all strong components) reachable from those backwards
19:40:48 <b_jonas> hmm wait, that's not what you said
19:40:59 <b_jonas> sorry, wait a moment
19:41:06 <arseniiv> yeah, that’s more peculiar :)
19:41:11 <b_jonas> "I[n+1] := I[n] ∪ (all vertices with outcoming edges only to vertices of I[n])"
19:41:34 <arseniiv> for a vertex v to be added, we need that for all v → w, w be in I[n]
19:41:41 <b_jonas> yes, that's fewer nodes
19:42:35 <b_jonas> the set of nodes you get in the end won't even have directed loops among them
19:43:20 <arseniiv> (my hypothesis that lim I consists precisely of all inhabited types, for the semantics given above)
19:44:13 <b_jonas> arseniiv: no way
19:45:15 <arseniiv> at least it should be a necessary condition?
19:45:24 <b_jonas> arseniiv: consider data R where { {- uninhabited -} }; data S where { {- uninhabited -} }; data A = P R | Q S;
19:45:38 <b_jonas> neither R nor S is absolutely needed to construct A, and yet A is uninhabited
19:45:53 <arseniiv> b_jonas: ah, now I remember, thanks!
19:46:01 <arseniiv> I considered that but forgot
19:46:13 <arseniiv> now I think maybe I need to work constructor-wise
19:48:06 <arseniiv> I’ll write if I succeed on this way
19:55:22 <b_jonas> arseniiv: how many type system extensions do you have? is this still plain algebraic types, or do you have type parameters or even more?
19:55:55 <arseniiv> b_jonas: plain ones, no parameters
19:56:09 <b_jonas> I believe if you have just plain algebraic types, then you can find out precisely which types are inhabited
19:56:33 <b_jonas> if you add enough type system extensions, eventually your compile time becomes Turing-complete, and then or before, you can only prove some of your uninhabited types uninhabited
19:56:49 <b_jonas> that's still useful for optimizations, and it's not usually a problem that you can't prove an uninhabited type uninhabited, mind you
19:57:00 <b_jonas> so it's still worth to have basic checks for that in a compiler
19:57:16 <arseniiv> you may even remember when I talked to myself here about proving generalized Minsky machines TC for exactly those type definitions which give us infinitely many values
19:58:15 <arseniiv> b_jonas: yeah, I agree with what you said too
19:58:30 <b_jonas> arseniiv: that sounds plausible, because those types can simulate natural numbers, and counter machines with enough registers are turing-complete,
19:58:46 <b_jonas> whereas if you only have types that have finitely many values, then your state space is finite
19:59:18 <arseniiv> now I have sat and written a proof that indeed infinitude of values is equivalent to TCness, but now I want an icing on a cake showing how to decide if there are infinite values syntactically
19:59:42 <b_jonas> high chance of rain tomorrow, says the weather prediction. ok.
19:59:48 <arseniiv> yeah, precisely what I written out
19:59:55 <arseniiv> (not about the rain)
20:00:12 <b_jonas> decide if there are infinitely many values? yes, that's probably also possible
20:00:27 <arseniiv> b_jonas: have your climate snow or rain usual at this time of the year?
20:01:12 <b_jonas> it's sort of like deciding if a regular language is finite given an NFA
20:01:23 <b_jonas> yes, it should rain
20:01:24 <arseniiv> b_jonas: I think that limiting I set is the answer, even, but I haven’t yet continued with proving it in peace so I don’t yet know for sure
20:01:31 <b_jonas> but two weeks ago was too dry
20:01:46 <b_jonas> last week was better, I glad we got the rain finally
20:02:08 <b_jonas> and in the evening too, when I'm on the street, which is always funnier
20:02:50 <b_jonas> I used to say that I take pleasure in the uncomfortableness that other people experience in the heavy rain, but I decided I shouldn't phrase it like that,
20:03:02 <b_jonas> and instead say that I'm happy that I'm lucky enough that the rain doesn't hurt me
20:03:26 <arseniiv> and here is a rain-snow threshold, zeroes by night or by day depending on fortune
20:03:40 <b_jonas> nah, it's too warm for that yet
20:03:43 <arseniiv> I do quite like being a bit under a warm rain, that is in the summer maybe
20:04:06 <arseniiv> though I don’t like drying things afterwards so I’m almost not doing that
20:04:33 <b_jonas> sure, warm rain is even better, because the air here in Europe is dry enough that everything dries quickly
20:11:33 -!- ArthurStrong has quit (Quit: leaving).
20:49:17 -!- kingoffrance has quit (Ping timeout: 240 seconds).
20:49:35 -!- kingoffrance has joined.
20:52:59 -!- ddmm_ has joined.
20:55:08 <kspalaiologos> Are people who worked on eso-os still alive?
20:58:53 -!- kingoffrance has quit (Ping timeout: 268 seconds).
21:11:25 -!- zseri has quit (Quit: zseri).
21:11:25 <esowiki> [[Nuts]] https://esolangs.org/w/index.php?diff=67020&oldid=67014 * YamTokTpaFa * (+12)
21:11:57 -!- b_jonas has quit (Quit: leaving).
21:18:22 <esowiki> [[RETURN]] https://esolangs.org/w/index.php?diff=67021&oldid=65571 * YamTokTpaFa * (+49)
21:19:49 <esowiki> [[DeathScript]] https://esolangs.org/w/index.php?diff=67022&oldid=44912 * YamTokTpaFa * (+49)
21:25:03 <esowiki> [[User:YamTokTpaFa/sandbox3]] https://esolangs.org/w/index.php?diff=67023&oldid=65154 * YamTokTpaFa * (+243)
21:49:59 -!- kingoffrance has joined.
21:55:53 -!- moony_ has joined.
22:06:43 -!- aloril has quit (Ping timeout: 268 seconds).
22:13:32 <arseniiv> that approach worked in the end, though without a graph due to alternative requirements of constructors
22:20:25 -!- aloril has joined.
22:31:16 -!- moony_ has quit (Ping timeout: 240 seconds).
22:51:25 -!- hppavilion[1] has joined.
23:06:31 -!- Melvar has quit (Ping timeout: 250 seconds).
23:06:55 -!- Melvar has joined.
23:17:26 -!- Frater_EST has joined.
23:22:40 -!- xkapastel has joined.
23:22:59 -!- oerjan has joined.
23:35:21 <oerjan> @messages-foul
23:35:21 <lambdabot> int-e said 19h 57m 31s ago: <oerjan> today on schlock mercenary: heavy punning <-- I feel that "Hurtz" would make an excellent unit for punnery.
23:36:31 <oerjan> `? solidity
23:36:32 <HackEso> Solidity is an esolang for writing contracts. It has good support for secure linear algebra.
23:46:50 -!- hppavilion[1] has quit (Ping timeout: 240 seconds).
2019-11-12
00:02:32 -!- FreeFull has quit.
00:16:44 <int-e> moerjaning
00:17:17 <oerjan> Sic transit Lucrezia
00:17:41 <oerjan> mornint-e
00:18:07 <int-e> Oh I forgot about GG yesterday.
00:18:52 -!- Frater_EST has left.
00:20:06 <int-e> Looks great.
00:21:26 <int-e> And I guess the haircut settles who is who.
00:27:22 <oerjan> unless the clank lucrezia managed to make more copies, this leaves only the Zola copy on the run. which is not in control. hopefully.
00:27:56 <oerjan> (if it _does_ gain control there would be a danger of it becoming a queen too)
00:28:49 <int-e> 3 months from discovery (http://www.girlgeniusonline.com/comic.php?date=20190809) to... well, maybe defeat.
00:29:35 <int-e> We could also have two roaming souls as a result.
00:29:44 <int-e> Just to keep things messy.
00:38:54 -!- ashtons has joined.
00:39:03 <ashtons> hello
00:41:43 <oerjan> hi
00:42:07 <oerjan> `relcome ashtons
00:42:09 <HackEso> ashtons: 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.)
00:42:42 <ashtons> :) i just came from the wiki
00:43:51 <shachaf> `5 5 w
00:44:08 <HackEso> 1/2:indonesia//Indonesia is a large island country in Asia and the world's most populous muslim country. Its major export is rayon textile from the Indonesian fnord. \ hodl//Hodl ym bere, I'ev gto thsi! \ wiki//The wiki is at <https://esolangs.org/>. \ hash 2346ad27d7568ba9896f1b7da6b5991251debdf2//hash 2346ad27d7568ba9896f1b7da6b5991251debdf2 \ canary//A canary is a small bright yellow chicken that dwells in deep caves. Unlike bats,
00:44:25 <ashtons> I've actually been working on my own esolang, but I don't really know what to call it yet.
00:45:21 <int-e> `n
00:45:21 <HackEso> 2/2: canaries are oriented right way up, unless they're pining for the fjords. \ ..............................................................................................................................................................................................................................................................................................................................................................................
00:45:38 <ashtons> anybody got tips for naming esolangs? cause i suck at naming stuff
00:45:53 <shachaf> int-e: what did you do..............................................................................................................................................................................................................................................................................................................................................................................
00:46:01 <int-e> shachaf: I don't know.
00:46:03 <int-e> `n
00:46:04 <HackEso> 1/2:indonesia//Indonesia is a large island country in Asia and the world's most populous muslim country. Its major export is rayon textile from the Indonesian fnord. \ hodl//Hodl ym bere, I'ev gto thsi! \ wiki//The wiki is at <https://esolangs.org/>. \ hash 2346ad27d7568ba9896f1b7da6b5991251debdf2//hash 2346ad27d7568ba9896f1b7da6b5991251debdf2 \ canary//A canary is a small bright yellow chicken that dwells in deep caves. Unlike bats,
00:46:09 <ashtons> i have no idea what is going on
00:46:17 <int-e> Why does it cycle.
00:46:35 <int-e> ashtons: HackEso is a bot. ` is its command prefix.
00:46:44 <ashtons> ah
00:46:50 <ashtons> `h
00:46:55 <ashtons> `help
00:46:55 <HackEso> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch [<output-file>] <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
00:47:10 <ashtons> `echo hello
00:47:11 <HackEso> hello
00:47:17 <int-e> ashtons: And well... it has a bunch of less and more obscure commands.
00:47:32 <ashtons> `man 2 waitpid
00:47:33 <HackEso> Nice try.
00:47:33 <shachaf> int-e: What should it do instead?
00:47:40 <int-e> shachaf: stop
00:47:53 <shachaf> `cat bin/n
00:47:54 <HackEso> line="${1-$(cat /hackenv/tmp/spline)}"; len="$(awk 'END{print NR}' /hackenv/tmp/spout)"; echo -n "$line/$len:"; sed -n "${line}{p;q}" /hackenv/tmp/spout; echo "$((line<len?line+1:1))" > /hackenv/tmp/spline
00:47:57 <ashtons> i was not expecting that response
00:48:07 <HackEso> No output.
00:48:20 <shachaf> You could make it stop, I guess?
00:48:22 <ashtons> `$PATH
00:48:23 <HackEso> ​/srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: $PATH: not found
00:48:28 <shachaf> It has to print something.
00:48:29 <int-e> `cat bin/man
00:48:30 <HackEso> ​#!/bin/sh \ echo Nice try.
00:48:35 <ashtons> `echo $PATH
00:48:36 <HackEso> ​$PATH
00:48:46 <int-e> `` echo $PATH
00:48:46 <ashtons> :\
00:48:47 <HackEso> ​/hackenv/bin:/usr/bin:/bin
00:48:55 <int-e> `cat bin/`
00:48:56 <HackEso> ​#!/bin/bash \ cmd="${1-quote}" \ TIMEFORMAT="real: %lR, user: %lU, sys: %lS" \ shopt -s extglob globstar \ eval -- "$cmd" | rnooodl
00:49:10 <int-e> it's all perrrfectly logical.
00:49:14 <ashtons> `echo banana
00:49:14 <HackEso> banana
00:49:36 <shachaf> ``
00:49:37 <HackEso> 652) <shachaf> fizzie: What kind of speech recognition do you do? <shachaf> If you only need to recognize famous speeches, like Churchill or something, it should be pretty easy.
00:49:47 <int-e> shachaf: I take it back.
00:49:47 <shachaf> Golly.
00:50:08 -!- kspalaiologos has quit (Ping timeout: 268 seconds).
00:50:10 <ashtons> `touch banana.txt
00:50:17 <int-e> `? prefixes
00:50:17 <HackEso> No output.
00:50:19 <HackEso> Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ .
00:50:40 <ashtons> `ls
00:50:41 <HackEso> a.out \ banana.txt \ bin \ canary \ emoticons \ esobible \ etc \ evil \ f \ factor \ good \ hw \ ibin \ interps \ izash.c \ karma \ le \ lib \ misle \ paste \ ply-3.8 \ quines \ quinor \ quotes \ share \ src \ test2 \ testfile \ tmflry \ tmp \ wisdom
00:50:46 <int-e> `url /
00:50:47 <HackEso> File is outside web-viewable filesystem repository.
00:50:49 <int-e> `url .
00:50:50 <HackEso> File is outside web-viewable filesystem repository.
00:50:50 -!- arseniiv has quit (Ping timeout: 240 seconds).
00:50:53 <int-e> aww
00:51:06 <ashtons> so how do i put stuff in banana.txt now
00:51:34 <int-e> I wanted this output: https://hack.esolangs.org/repo/file/tip/
00:51:35 <kmc> what's a banana.txt
00:51:35 <ashtons> if i remember correctly you can pipe output from echo into a file
00:51:44 <ashtons> i made it make a file called banana.txt
00:52:48 <oerjan> `url
00:52:49 <HackEso> https://hack.esolangs.org/repo/
00:53:29 <ashtons> `echo "bananas are awesome" >> banana.txt
00:53:29 <HackEso> ​"bananas are awesome" >> banana.txt
00:53:37 <ashtons> `cat banana.txt
00:53:37 <HackEso> No output.
00:53:43 <ashtons> :(
00:53:52 <int-e> `` rm a.out izhash.c test2 testfile
00:53:54 <HackEso> rm: cannot remove 'izhash.c': No such file or directory
00:54:06 <int-e> `` rm izash.c
00:54:11 <HackEso> No output.
00:54:14 <kmc> F
00:54:21 <ashtons> `echo "bananas are awesome" > banana.txt
00:54:22 <HackEso> ​"bananas are awesome" > banana.txt
00:54:31 <int-e> kmc: yes?
00:54:47 <kmc> `` ls wisdom | paste
00:54:48 <HackEso> https://hack.esolangs.org/tmp/paste/paste.6286
00:54:59 <kmc> `` /bin/ls wisdom | paste
00:55:00 <HackEso> https://hack.esolangs.org/tmp/paste/paste.9161
00:55:15 <oerjan> ashtons: ` alone only takes a single command argument and no shell syntax
00:55:28 <int-e> ashtons: the trick is to use `` [note the space]. And you can experiment in the tmp/ subdirectory... then it won't end up under version control.
00:55:43 <ashtons> okay
00:55:57 <shachaf> `? shaventions
00:55:58 <HackEso> Shaventions include: before/now/lastfiles, culprits, hog/{h,d}oag, le//rn, tmp/, mk/mkx, {s,p}led/sedlast, spore/spam/speek/sport/1/4/5, edit. Taneb did not invent them yet.
00:56:02 <kmc> `` echo 'Big beats are the best, get high all the time.' > wisdom/'big beat manifesto'
00:56:06 <kmc> `? big beat manifesto
00:56:07 <HackEso> No output.
00:56:08 <HackEso> Big beats are the best, get high all the time.
00:56:19 <shachaf> `? le/rn
00:56:20 <HackEso> le/rn makes creating wisdom entries manually a thing of the past. Usage: `le/[/]rn <key>//<wisdom>
00:56:29 <fizzie> As for the naming, that's easy.
00:56:30 <fizzie> `langs
00:56:32 <HackEso> lambrelang doverlang befactionlang crablang pathlang wadelang wherlang 2dblang adepoullang sumlang fmandlang lxxxlang netwlang bajolang minlang bfreetonlang ttilang qwedlang pointlang frualang
00:56:33 <ashtons> ` ` echo "Bananas" > banana.txt
00:56:34 <HackEso> ​/srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: : not found
00:56:38 <kmc> `coins
00:56:40 <HackEso> hifhcoin trincoin vcoin catcoin concoin julicoin liberacoin vhccoin symeshauvecoin rectpcoin netwofifcoin forthcoin thisesocoin peterbcoin liacoin aeonstrolcoin lopocoin duricoin paxcoin auresecoin
00:56:43 <shachaf> `cbt langs
00:56:44 <HackEso> words ${1---eng-1M --esolangs 20} | sed -re 's/( |$)/lang\1/g'
00:56:50 <kmc> catcoin
00:56:54 <ashtons> :/
00:57:18 <fizzie> Presumably that exists already.
00:57:20 <int-e> `mk tmp/banana.txt//Bananas are tasty but not very juicy.
00:57:20 <HackEso> tmp/banana.txt
00:57:27 <int-e> `cat tmp/banana.txt
00:57:28 <HackEso> Bananas are tasty but not very juicy.
00:57:33 -!- atslash has quit (Quit: This computer has gone to sleep).
00:57:39 <ashtons> :/
00:58:21 <int-e> `` echo -n "Bananas cause far fewer accidents than cartoons may lead you to believe." > tmp/banana.txt
00:58:22 <HackEso> No output.
00:58:29 <int-e> `cat tmp/banana.txt
00:58:30 <HackEso> Bananas cause far fewer accidents than cartoons may lead you to believe.
00:58:49 <oerjan> `? banana
00:58:50 <HackEso> Bananananananana BATMAN!
00:59:36 <ashtons> ` ` echo -n "Bananas taste good and have potassium, but they bruise kinda easily. I still like to eat them though :)" > tmp/banana.txt
00:59:36 <HackEso> ​/srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: : not found
00:59:41 <ashtons> seriously
00:59:57 <int-e> ashtons: there's no space *between* the two backticks.
01:00:10 <ashtons> `` echo -n "Bananas taste good and have potassium, but they bruise kinda easily. I still like to eat them though :)" > tmp/banana.txt
01:00:13 <HackEso> No output.
01:00:20 <ashtons> cat tmp/banana.txt
01:00:44 <ashtons> wait
01:00:50 <int-e> The backtick is followed by a command name to be executed, then a space, and then the command's argument.
01:00:54 <ashtons> `` cat tmp/banana.txt
01:00:55 <HackEso> Bananas taste good and have potassium, but they bruise kinda easily. I still like to eat them though :)
01:01:15 <ashtons> right
01:01:15 <int-e> So `` foo executes the ` command with parameter "foo". Which is why this is relevant:
01:01:18 <int-e> `cat bin/`
01:01:19 <HackEso> ​#!/bin/bash \ cmd="${1-quote}" \ TIMEFORMAT="real: %lR, user: %lU, sys: %lS" \ shopt -s extglob globstar \ eval -- "$cmd" | rnooodl
01:02:30 <ashtons> nice
01:02:52 <int-e> (Of course that's a simplification. Some commands are built into the bot, like `help)
01:02:59 -!- Frater_EST has joined.
01:03:12 <ashtons> will it recognize, say...
01:03:14 <ashtons> `halp
01:03:15 <HackEso> No halp 4 u
01:03:34 <ashtons> hahaha i was not expecting that
01:04:06 <shachaf> `dobg halp
01:04:09 <HackEso> 6613:2016-01-29 <mromän> echo "echo No halp 4 u \\$1" >> bin/halp \ 6612:2016-01-29 <mromän> echo "#!/bin/sh" > bin/halp \ 6611:2016-01-29 <mromän> echo "echo $1" >> bin/halp \ 6610:2016-01-29 <mromän> echo "echo No halp 4 u" >> bin/halp \ 6609:2016-01-29 <mromän> echo "#!/bin/sh" > bin/halp \ 6608:2016-01-29 <mromän> chmod +x bin/halp \ 6607:2016-01-29 <mromän> echo "help" >> bin/halp \ 6606:2016-01-29 <mromän> echo "#!/bin/sh
01:05:49 <ashtons> i just remembered why I came to this chatroom :\
01:06:31 <int-e> naming is hard
01:06:47 <ashtons> very hard
01:07:03 <int-e> and also really easy :P
01:07:32 <int-e> (as fizzie pointed out above... just generate something random)
01:08:01 <shachaf> Why random? Just generate increasing names.
01:08:11 <ashtons> had to scroll up to find that
01:08:38 <shachaf> You only get ~sqrt(n) names before a collision if you do it randomly.
01:08:48 <ashtons> okay then
01:08:55 <int-e> Right. The first 26 variable names are easy. Then it becomes a bit harder.
01:09:27 <shachaf> 1112111 variables should be enough for anyone.
01:09:51 <int-e> Those aren't all assigned, are they.
01:10:08 <shachaf> Wait, I meant 1114112.
01:10:22 <int-e> > length ['\0'..]
01:10:24 <lambdabot> 1114112
01:10:30 <shachaf> > 2^16*17
01:10:32 <lambdabot> 1114112
01:10:55 <shachaf> Some of those aren't even assignable (like the surrogate code points for UTF-16).
01:12:16 <ashtons> right now i'm wondering if there's a program online somewhere that can randomly generate a plausable-sounding word
01:12:18 <ashtons> probably not
01:12:35 <int-e> `german
01:12:36 <HackEso> ​/srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: german: not found
01:12:40 <int-e> hrm
01:13:18 <fizzie> `words --german 10
01:13:20 <HackEso> ausly hörderensgeschönhein rungsvorschen paraktion gottag vorschaftsynopen condres bezieren prodendustierben indi
01:13:27 <shachaf> `words --english 10
01:13:28 <HackEso> Unknown option: english
01:13:32 <int-e> fizzie knows, of course.
01:13:33 <shachaf> oh no
01:13:35 <fizzie> `words --list
01:13:35 <HackEso> valid datasets: --brazilian --bulgarian --canadian-english-insane --catalan --eng-1M --eng-all --eng-fiction --eng-gb --eng-us --esolangs --finnish --french --gaelic --german --german-medical --hebrew --irish --italian --manx --norwegian --ogerman --opcode --pokemon --polish --portuguese --russian --spanish --swedish \ default: --eng-1M
01:13:38 <shachaf> too obscure, probably?
01:13:40 <shachaf> `words --hebrew 10
01:13:41 <HackEso> ​האור וסברתי העתקו וטיות דפרק בתפול בנלו חקרו שיש מאים
01:13:42 <ashtons> `words --help
01:13:42 <HackEso> Usage: words [-dhNo] [DATASETS...] [NUMBER_OF_WORDS] \ \ options: \ -l, --list list valid datasets \ -d, --debug debugging output \ -N, --dont-normalize don't normalize frequencies when combining \ multiple Markov models; this has the effect \ of making larger datasets more influential \ -o, --target-offset change the target length offset used in the \
01:13:54 <shachaf> `words --eng-us 10
01:13:54 <HackEso> kanaticule chrin yourg xacted skeypl rati usmarkiequa lando preni gliardrivi
01:14:12 <shachaf> I gotta say those aren't very plausible.
01:14:12 <int-e> Hmm, german... the trailing "ly" is odd.
01:14:20 <ashtons> is there a way to specify word length?
01:14:27 <shachaf> Some of the Hebrew ones are more plausible (several are actual words).
01:14:36 <int-e> and "condres" doesn't look german at all.
01:14:40 <fizzie> Not directly, but you can affect the standard distribution with -o.
01:14:43 <ashtons> cause at this point i don't care much if it's pausible, more so if it's pronouncible
01:14:48 <fizzie> `words --eng-all -o 10
01:14:50 <HackEso> fathfieldobferlogly
01:14:54 <int-e> (But of course we have loan words, so maybe it learned from those.)
01:14:56 <fizzie> `words --eng-all -o 12 10
01:14:57 <HackEso> avrailobeddleded gbowingenetitatexicochoodfron whlcandjhancequane expuriaprotyletablemean praethylludient dirconcianeogeora extrisatingbilissej matripublecescraticator towhyneckalnarawn humindltloniantioning
01:15:03 <shachaf> All words are pronouncible, some only once.
01:15:13 <ashtons> `words --eng-us -o 16
01:15:13 <fizzie> The English isn't doing so well.
01:15:14 <HackEso> affcloshnavdaupraetterban
01:15:27 <ashtons> `words --eng-us -o 16 16
01:15:28 <HackEso> grsedaledwardingerencing microsyarnyamaiary govardisawendeisation supjtherianticouncestrkakenrodi splarrowetkeotegenspielin focessolundrendorfempte asgimizedeemajorissed kuedaugauctivinctivossen allowtiendocumenoloxalre nenrinderinitroducenzelet feraytternianotersomatione iithaltlleroundedpoiloselege theritoidendefmeditegoritanci incurallctivingedivitrepat armicrouhlerowitat dubalatriumqueftremene
01:15:32 <fizzie> The Finnish words are sometimes pretty plausible, sometimes completely not (it doesn't understand vowel harmony).
01:15:39 <fizzie> `words --finnish 10
01:15:40 <HackEso> kukimästävilta venyvinä loittavaltta latasointävä pisemme aamuvanani barrosoluovi himpääsi aforittelevikseen kuvilläsi
01:15:43 <int-e> fizzie: 16 may be too long
01:15:58 <int-e> hmm
01:16:06 <fizzie> "venyvinä" is a real word, as is arguably "aamuvanani".
01:16:27 <int-e> Oh that's the number of words. Why are the words so long though...
01:16:37 <ashtons> `words --eng-us -o 16 4
01:16:39 <HackEso> pirabildualinendently cretophiquakneyagammisperp nonpsyconvespectathebutstonch mpcarockentdrumminerievraneandu
01:17:11 <int-e> `words --eng-us -o 4 16
01:17:12 <HackEso> ianaximurrexcluaen unettionaliniallin thanincrgonogeeder nambryadeon uuoitewoodli iyingtonelightef homicrossarthe narethylphotoph ofcentakethemke immunabild earumcumburythnol vaidhainia lenallyflyridge shonicataque threding trisiticantum
01:17:23 <int-e> hmm. no clue what -o does.
01:17:30 <fizzie> For the record, -o isn't the target length, it's an offset.
01:17:35 <fizzie> `words --eng-us -o 0 10
01:17:36 <HackEso> fiverlike grphildt sutulari musenseguilimizi crossamg ringersonemee waainesindele duatiored maring deckley
01:17:37 <int-e> `` words --help | paste
01:17:38 <HackEso> https://hack.esolangs.org/tmp/paste/paste.2803
01:17:43 <fizzie> `words --eng-us -o -4 10
01:17:44 <HackEso> barrie bouf confraga disibiliary libar mine scipisar kid potedeconoxim univar
01:17:54 <int-e> `words --eng-us -o -4 16
01:17:55 <fizzie> That looks pretty reasonable.
01:17:55 <HackEso> liedisal kard peeck ramia besermo fatio orkmannarsoninewmant need edit nung hujici lusiedrintr gliaccal stru pertrever onemijde
01:17:59 <fizzie> Lengthwise.
01:18:07 <int-e> oh sorry
01:18:27 <int-e> (You just did that while I went to read the paste)
01:18:31 <fizzie> FWIW, the length modeling isn't particularly great, it's a restriction of character n-grams.
01:19:01 <fizzie> I think `words had some very ad-hoc hack for lengths.
01:19:21 <ashtons> is there a way to specify length in letters?
01:19:36 <fizzie> No, but you can just generate and filter.
01:20:00 <ashtons> gotcha
01:20:19 <fizzie> It's not really possible to have an exact target length for the kind of model it uses, unless you just do a hard truncate, and that way the word doesn't end the way words normally end.
01:23:45 <ashtons> `` words --eng-us 8 | grep -e /([a-z]{16})/
01:23:46 <HackEso> ​/hackenv/bin/`: eval: line 5: syntax error near unexpected token `(' \ /hackenv/bin/`: eval: line 5: `words --eng-us 8 | grep -e /([a-z]{16})/'
01:24:26 <int-e> just drop the /( and )/
01:24:34 <ashtons> `` words --eng-us 8 | grep -e [a-z]{16}
01:24:35 <HackEso> No output.
01:24:38 <ashtons> `` words --eng-us 8 | grep -e [a-z]{16}
01:24:39 <HackEso> No output.
01:24:43 <int-e> actually, hmm
01:24:46 <ashtons> `` words --eng-us 256 | grep -e [a-z]{16}
01:24:47 <HackEso> No output.
01:24:53 <ashtons> >:(
01:25:19 <int-e> Ah, of course... it puts everything on one line.
01:26:17 <ashtons> Okay, so how do we deal with that?
01:27:31 <int-e> `` echo $(words --eng-us 256 | tr \ \\n | grep -e ^[a-z]{16}\$)
01:27:32 <HackEso> No output.
01:27:49 <ashtons> `` words --eng-us 256 | grep -e [a-z]{16} > wordlist.txt
01:27:51 <HackEso> No output.
01:27:58 <ashtons> cat wordlist.txt
01:28:08 <ashtons> `cat wordlist.txt
01:28:09 <HackEso> No output.
01:28:15 <ashtons> >:(
01:28:18 -!- Frater_EST has quit (Read error: Connection reset by peer).
01:28:51 <kmc> ask your doctor if potedeconoxim is right for you
01:28:56 <shachaf> `rm wordlist.txt
01:28:57 <HackEso> No output.
01:29:06 <kmc> actually, is there a words dict for drug names? that would be fun
01:29:24 <shachaf> I recommend doing experiments like that in tmp/ (and probably also in /msg).
01:29:35 <ashtons> ask your doctor if pseudobanadeconoxim is right for you
01:29:47 <kmc> ask your doctor if bananadine is right for you
01:29:52 <kmc> can one create new dicts easily?
01:29:54 <ashtons> side effects may include turning into a banana
01:29:56 <kmc> `paste bin/words
01:29:57 <HackEso> https://hack.esolangs.org/repo/file/tip/bin/words
01:31:06 <int-e> `` echo $(words --eng-us -o 6 256 | tr \ \\n | grep -E '^[a-z]{16}$')
01:31:07 <HackEso> wenkephriskolock medebederabbaseq hypotaryleterney enticadoralfhoea ininograntanther
01:31:14 <kmc> `paste share/WordData/eng-us
01:31:15 <HackEso> https://hack.esolangs.org/repo/file/tip/share/WordData/eng-us
01:31:22 <shachaf> `url share/WordData/Eng1M
01:31:23 <HackEso> https://hack.esolangs.org/repo/file/tip/share/WordData/Eng1M
01:31:29 <kmc> grump
01:31:39 -!- Frater_EST has joined.
01:31:41 <kmc> how do i create a data file
01:31:54 <int-e> `help fetch
01:31:56 <HackEso> ​`fetch [<output-file>] <URL> downloads files, and is the only web access currently available in HackEgo. It is a special builtin that cannot be called from other commands. See also `edit.
01:32:01 -!- Frater_EST has quit (Read error: Connection reset by peer).
01:32:04 <shachaf> `doag share/WordData/EngUs
01:32:09 <HackEso> 0:2012-02-16 Initïal import.
01:32:25 <ashtons> `` echo $(words --eng-us -o 6 256 | tr \ \\n | grep -E '^[a-z]{16}$')
01:32:25 <kmc> i mean how do i generate the file
01:32:26 <HackEso> vededesigtnisult letoriumfreynyne ctorthouaruntero semimalkylamotun
01:32:43 <shachaf> Looks like it's just some n-gram thing.
01:32:51 <int-e> ashtons: you can do this in private chat with HackEso btw
01:33:01 <ashtons> oh ok
01:33:13 <shachaf> EngUs: perl Storable (v0.7) data (major 2) (minor 8)
01:33:14 <int-e> (but please do not modify the file system in private chat, as a courtesy to the rest of us)
01:33:19 -!- Frater_EST has joined.
01:33:22 <ashtons> ok
01:33:22 <shachaf> so you create it with perl hth
01:33:30 -!- Frater_EST has left.
01:33:49 <int-e> fizzie is the ngram master
01:34:44 <int-e> (but nitia is ancient, so it's possible that he doesn't remember)
01:35:07 <int-e> `? nitia
01:35:09 <HackEso> nitia is the inventor of all things. The BBC invented her.
01:36:24 <ashtons> i have found my esolang's name. psychairefatback!
01:36:35 <oerjan> rolls off the tongue
01:36:55 <fizzie> shachaf: kmc: Yes, you create the file with Perl.
01:37:08 <fizzie> I did add a dataset to `words semi-recently.
01:37:57 <fizzie> I don't have the original tools, but it wasn't too hard to reverse-engineer. I think I did it with a Perl oneliner?
01:38:05 <int-e> oerjan: What are nitia's initials?
01:38:30 <fizzie> I think I probably saved the command somewhere.
01:38:32 <shachaf> Nitia never does anything, and yet through it all things are done.
01:38:50 <fizzie> `words --opcode 10
01:38:51 <HackEso> HINT_NOP54 PUSHFD INVEPT VCMPNGT_UQPD UD0 VFMSUBP VANDD BLEND FDIVP PMULLD
01:39:51 <fizzie> Ah, here we go.
01:40:04 <fizzie> cat ../x86.txt | tr a-z A-Z | perl -ne 'use Data::Dumper; use Storable; chomp; $len{length($_)}++; @w = split //, " $_ "; for ($i = 0; $i+3 < @w; $i++) { $c = $w[$i].$w[$i+1].$w[$i+2]; $freq{$c}->{$w[$i+3]}++; } END { store([\%freq,\%len], "Opcode"); }'
01:41:45 <fizzie> That should create a file compatible with `words; then you just include "file" it the script's @options list; it will automatically titlecase-ish it and look it up from "share/WordData/File"
01:41:47 <shachaf> fizzie: I spent a few minutes trying to figure out enough Perl to do it and then decided not to.
01:42:44 <int-e> How Markovian.
01:43:15 -!- Frater_EST has joined.
01:43:47 -!- Frater_EST has left.
01:45:20 <esowiki> [[User:Ashtons]] N https://esolangs.org/w/index.php?oldid=67024 * Ashtons * (+28) Created page with "hi. i'm ashton. how ya doing"
01:47:52 -!- Frater_EST has joined.
01:48:10 -!- Frater_EST has left.
02:01:54 <fizzie> Also you don't actually need Data::Dumper, I think I used that just while debugging.
02:02:27 -!- xkapastel has quit (Quit: Connection closed for inactivity).
02:13:21 <oerjan> today's schlock mercenary should be ignored and talked about. anything else Hurtz.
02:13:28 <oerjan> *not talked
02:14:51 <shachaf> `5 w
02:14:53 <HackEso> 1/2:taneb consistency//Taneb consistency is a consistency that is weaker than all other consistencies. Taneb invented it. \ graham's number//Graham's number isn't as delicious as his crackers. \ cello//The high level structure of Cello projects is inspired by /Haskell/, while the syntax and semantics are inspired by /Python/ and /Obj-C/. \ kanada//Your bankers' vain plazas never nurtured
02:14:59 <shachaf> `n
02:15:00 <HackEso> 2/2:no one / And your concrete expanses lay fallow in the sun / And your cities all collapsing while your corrupt mayors shrug \ ichtymology//Ichtymology is like itymology, but even more fishy.
02:15:11 <shachaf> `cwlprits graham's number
02:15:13 <HackEso> oerjän \oren̈\
02:15:30 <shachaf> `? itymology
02:15:31 <HackEso> Itymology is the science of understanding the true meaning of a statement.
02:20:10 -!- tswett[m] has quit (Changing host).
02:20:10 -!- tswett[m] has joined.
02:20:10 -!- tswett[m] has quit (Changing host).
02:20:10 -!- tswett[m] has joined.
02:22:39 <oerjan> also, petey should totally fab some dronuri moles and reflect some trust on the pa'anuri.
02:23:02 <esowiki> [[Psychairefatback]] N https://esolangs.org/w/index.php?oldid=67025 * Ashtons * (+3399) made the page for my esolang!
02:23:16 -!- FraterEST has joined.
02:24:11 <esowiki> [[Language list]] M https://esolangs.org/w/index.php?diff=67026&oldid=67004 * Ashtons * (+23) /* P */
02:24:31 <esowiki> [[User:Ashtons]] https://esolangs.org/w/index.php?diff=67027&oldid=67024 * Ashtons * (+29)
02:25:02 <esowiki> [[User:Ashtons]] https://esolangs.org/w/index.php?diff=67028&oldid=67027 * Ashtons * (+4)
02:25:27 <ashtons> i see yall see the page i made :p
02:33:46 <int-e> oerjan: I'm waiting for Schlock's display of his innate diplomatic and cross-species communication skills (as displayed in the very first strip. https://www.schlockmercenary.com/2000-06-12)
02:40:09 <oerjan> that too.
02:43:36 <int-e> oerjan: Actually, rather than dronuri (nice one), isn't it more likely that we'll get an antenna instead.
02:44:15 <int-e> Have I complained already that modern x86 CPUs are insane?
02:47:32 <int-e> Ah no, I'm barking up the wrong tree. GCC's vectorizing the code I'm looking at, so doing it manually has little effect.
02:48:19 <int-e> The sentiment is still there though... you can squeeze so many instructions into the time of one RAM access.
02:53:28 <oerjan> int-e: dronuri is the term the pa'anuri used for them
02:55:54 <oerjan> although you're right the fabber might have had the plans for the antennas too
03:11:15 -!- FraterEST has quit (Read error: Connection reset by peer).
03:13:01 -!- Frater_EST has joined.
03:15:44 -!- ashtons has quit (Remote host closed the connection).
03:19:23 <fizzie> The other day I learned that a "dronie" is a selfie taken with a drone.
03:28:56 <int-e> meh. of course it is
03:31:15 <int-e> So a speedie is a selfie taken by speeding into a speed camera.
03:38:19 -!- Frater_EST has quit (Read error: Connection reset by peer).
03:40:49 -!- Frater_EST has joined.
03:41:26 <shachaf> whoa, my solver is 5x faster than minisat on these instances.
03:41:28 <shachaf> Despite just being a worse version of minisat.
03:43:06 <shachaf> Oh, if I disable restarts minisat solves it 30x faster than my solver (which doesn't do restarts). So probably restarts are just not well-suited or something.
03:43:45 <shachaf> Wait, no, only 2x faster.
03:48:00 -!- oerjan has quit (Quit: Nite).
03:55:38 -!- imode has joined.
04:23:03 -!- Frater_EST has left.
04:23:23 -!- ais523 has joined.
04:24:00 <ais523> @messages?
04:24:00 <lambdabot> Sorry, no messages today.
04:24:11 -!- ais523 has quit (Client Quit).
04:44:54 -!- TellsTogo has joined.
05:18:35 -!- Sgeo__ has joined.
05:21:37 -!- Sgeo_ has quit (Ping timeout: 240 seconds).
06:04:41 -!- imode has quit (Ping timeout: 276 seconds).
06:30:44 <int-e> @metar lowi
06:30:45 <lambdabot> LOWI 120620Z VRB01KT 5000 -RASN BR FEW005 SCT007 BKN013 01/00 Q1010 TEMPO 3000 SNRA BKN008
06:31:05 <int-e> (eww)
07:21:40 -!- nfd9001 has joined.
07:22:57 -!- aloril has quit (Ping timeout: 268 seconds).
07:27:24 -!- aloril has joined.
07:31:40 -!- nfd9001 has quit (Quit: Leaving).
07:35:22 -!- kritixilithos has joined.
07:43:16 -!- Deewiant has quit (Ping timeout: 264 seconds).
07:54:05 -!- Sgeo_ has joined.
07:56:57 -!- Sgeo__ has quit (Ping timeout: 240 seconds).
07:58:29 -!- kritixilithos has quit (Quit:  ).
08:07:19 -!- b_jonas has joined.
08:07:24 <b_jonas> `whatis waitpid
08:07:25 <HackEso> waitpid(2) - wait for process to change state \ waitpid(3p) - wait for a child process to stop or terminate \ waitpid(3glibc) - Process Completion
08:07:26 <b_jonas> ashtons: ^
08:08:10 <b_jonas> `url
08:08:11 <HackEso> https://hack.esolangs.org/repo/
08:08:14 <b_jonas> int-e: ^
08:12:24 <b_jonas> int-e: not only that, but it won't generate more than a few dozen words with one command. you need a loop like ( for x in {1..10}; do words 16; done ) to generate 256 word.
08:12:33 <b_jonas> um... yeah, that's obviously not 16
08:12:35 <b_jonas> but you get the idea
08:35:59 <b_jonas> ``` (for x in {1..16}; do words --eng-US -o 6 16; done) | perl -we 'local$/; $s=<STDIN>; while($s=~/(\S+)/g){ push@{$l{length$1}},$1; }; $m=-1; for (sort keys%l) { if ($m<@{$l{$_}}) { $m=@{$l{$_}};$n=$_; } } print "@{$l{$n}}\n";' # if you want words of equal length
08:36:15 <HackEso> tegourneckstor heilcaiyarwink sphotosomoveri descarnallotel dutierundeutio anullockunsman larywaynelland herieclamasten achelsbotswerk piangewahander rotrontoonment renerthrinimre tumpanhomating restermalizing cepeiirginaido formeudongoetl grubbellizedcn denturandberen semirellafisin disatiralevsky hightsforciner tworticeptinum decommereofled pilaintrianden gentermathebra ocebaneysanath fielettedleryn methylsumnecke newchuligelief alzweihuumva
08:36:16 <b_jonas> ``` (for x in {1..16}; do words --eng-US -o 0 16; done) | perl -we 'local$/; $s=<STDIN>; while($s=~/(\S+)/g){ push@{$l{length$1}},$1; }; $m=-1; for (sort keys%l) { if ($m<@{$l{$_}}) { $m=@{$l{$_}};$n=$_; } } print "@{$l{$n}}\n";' # if you want words of equal length
08:36:23 <HackEso> codenovax changlyte atrimeter mazzoleve springrap boronlria sspressit ethylarve ashpeesal truchuval wageprile anadebled icizatite brombrina wennellin hemointer supennill folically kairendel ficaluene nooddered ihvrikaia upcrtamer reptackep deedjacke butyranth devavrana uaregunde cliovozdz ptureatte protoucbi camplaind
08:36:24 <b_jonas> ``` (for x in {1..16}; do words --eng-US -o -6 16; done) | perl -we 'local$/; $s=<STDIN>; while($s=~/(\S+)/g){ push@{$l{length$1}},$1; }; $m=-1; for (sort keys%l) { if ($m<@{$l{$_}}) { $m=@{$l{$_}};$n=$_; } } print "@{$l{$n}}\n";' # if you want words of equal length
08:36:32 <HackEso> smod rock atin tulu itne pton elkl boum fide tock biic obfc unlr wrai eige cond pyra pale kaun aveh fful amba goag ehun savi ysti nanl wref phag chan ning utlc thin ford trae fibe zuge unie pdog ting groe unit rooz dahi eron yuan ment coln huko agfa ditz midc chri rect enrl will port paug meth gada ling dore grod vert fted inte jina nnab bean ambo bibu tena anie firn
08:39:06 -!- b_jonas has quit (Quit: leaving).
09:34:12 -!- TellsTogo has quit (Remote host closed the connection).
09:51:24 <shachaf> `asm pext %rax, %rcx, %rdx
09:51:25 <HackEso> 0: c4 e2 f2 f5 d0 pext %rax,%rcx,%rdx
09:51:28 <shachaf> What an encoding.
09:56:20 <shachaf> It would be nice if `asm supported 32-bit x86.
09:56:29 -!- nico_nico_ has joined.
09:56:31 <shachaf> I guess c4 and c5 were les and lds?
10:00:03 -!- atslash has joined.
10:01:04 <shachaf> Oh, but VEX works even in 32-bit mode, which is why it inverts the initial bits, so they make an invalid modrm byte. I remember now.
10:08:24 -!- Deewiant has joined.
10:14:52 -!- nico_nico_ has quit (Quit: Leaving).
10:21:16 <shachaf> "VEX.LZ.F3.0F38.W1 F5 /r PEXT r64a, r64b, r/m64"
10:29:01 -!- arseniiv has joined.
11:12:35 -!- Sgeo__ has joined.
11:15:49 -!- Sgeo_ has quit (Ping timeout: 250 seconds).
11:58:40 -!- Sgeo_ has joined.
12:01:45 -!- Sgeo__ has quit (Ping timeout: 250 seconds).
12:02:16 -!- Melvar has quit (Quit: WeeChat 2.4).
12:13:03 -!- Melvar has joined.
12:38:57 -!- ddmm_ has quit (Remote host closed the connection).
12:39:07 -!- tswett[m] has quit (Read error: Connection reset by peer).
12:39:18 -!- wmww has quit (Read error: Connection reset by peer).
12:43:10 -!- Sgeo_ has quit (Read error: Connection reset by peer).
12:43:36 -!- Sgeo_ has joined.
12:46:05 -!- ArthurStrong has joined.
12:48:20 -!- mniip has quit (Ping timeout: 612 seconds).
12:51:29 -!- arseniiv has quit (Read error: Connection reset by peer).
12:51:46 -!- arseniiv has joined.
13:30:24 -!- mniip has joined.
13:34:44 -!- wmww has joined.
13:34:44 -!- tswett[m] has joined.
13:34:51 -!- ddmm_ has joined.
13:36:39 -!- arseniiv has quit (Ping timeout: 250 seconds).
13:46:02 -!- Melvar has quit (Ping timeout: 240 seconds).
13:46:29 -!- Melvar has joined.
13:49:12 -!- arseniiv has joined.
13:56:52 -!- tswett[m] has quit (Changing host).
13:56:52 -!- tswett[m] has joined.
13:56:52 -!- tswett[m] has quit (Changing host).
13:56:52 -!- tswett[m] has joined.
14:07:08 -!- Sgeo__ has joined.
14:09:16 -!- xkapastel has joined.
14:10:37 -!- Sgeo_ has quit (Ping timeout: 265 seconds).
14:11:38 -!- imode has joined.
14:21:15 -!- unlimiter has joined.
14:26:37 <Cale> Saw this digital painting on Reddit https://i.redd.it/ux27c13n73y31.jpg and decided to turn it into a magic card https://i.imgur.com/cf994At.png
14:31:43 <int-e> that must be one hell of a headache :P
14:32:09 -!- imode has quit (Ping timeout: 268 seconds).
14:34:47 -!- Frater_EST has joined.
14:46:14 -!- unlimiter has quit (Quit: WeeChat 2.6).
14:52:50 -!- kritixilithos has joined.
14:56:17 -!- arseniiv_ has joined.
14:59:25 -!- arseniiv has quit (Ping timeout: 250 seconds).
15:02:25 -!- imode has joined.
15:22:06 -!- imode has quit (Ping timeout: 268 seconds).
15:26:28 -!- imode has joined.
15:26:54 -!- hppavilion[1] has joined.
15:49:35 -!- Frater_EST has quit (Read error: Connection reset by peer).
15:50:12 -!- Frater_EST has joined.
15:59:10 -!- Frater_EST has quit (Read error: Connection reset by peer).
16:02:09 -!- Frater_EST has joined.
16:11:36 -!- imode has quit (Ping timeout: 240 seconds).
16:15:20 <esowiki> [[Thue]] M https://esolangs.org/w/index.php?diff=67029&oldid=63578 * PaniniTheDeveloper * (+11)
16:19:52 -!- Frater_EST has quit (Read error: Connection reset by peer).
16:22:15 -!- Frater_EST has joined.
16:23:19 -!- nico_nico has joined.
16:23:41 -!- nico_nico has quit (Client Quit).
16:39:14 -!- kritixilithos has quit (Remote host closed the connection).
16:39:37 -!- kritixilithos has joined.
16:41:21 -!- imode has joined.
16:55:34 -!- Sgeo_ has joined.
16:56:53 -!- kspalaiologos has joined.
16:58:49 -!- Sgeo__ has quit (Ping timeout: 265 seconds).
17:04:37 -!- hppavilion[1] has quit (Ping timeout: 265 seconds).
17:29:19 -!- hppavilion[1] has joined.
17:37:00 -!- imode has quit (Ping timeout: 265 seconds).
17:49:35 -!- hppavilion[2] has joined.
17:52:57 -!- hppavilion[1] has quit (Ping timeout: 265 seconds).
17:54:33 -!- nico_nico has joined.
17:59:35 -!- b_jonas has joined.
17:59:50 <b_jonas> shachaf: is that how the instruction encoding works? I didn't know that
18:02:15 -!- nico_nico has quit (Quit: Leaving).
18:13:40 -!- FreeFull has joined.
18:16:20 <kspalaiologos> `` asmbf <<<"mov r1,0/div r1,0"
18:16:21 <HackEso> ​+>+[<[>>+>+<<<-]>>[<<+>>-]>[[-]>>[-]>>>><<<<[<<<+>>>-]<<<[>>>>>>>[<<<<<<+>+>>>>>-]<<<<<[>>>>>+<<<<<-]<[>+<<-[>>[-]>>>>>>+<<<<<<<<-]>>>>>>>>[<<<<<<<<+>>>>>>>>-]<<<<<<[<-[>>-<<[-]]+>-]<-]>>+<<<]>>>>>>>[-]<<<<<<]<<<[>>+>+<<<-]>>[<<+>>-]>[[-]<<<[-]>[-]>>]<<]
18:16:30 <kspalaiologos> `` asmbf <<<"mov r1,0/div r1,0" > stuff.b
18:16:32 <HackEso> No output.
18:16:35 <kspalaiologos> `` bfi stuff.b
18:16:36 <HackEso> ​/hackenv/bin/`: line 5: bfi: command not found
18:18:30 <kspalaiologos> `` brainfuck
18:18:31 <HackEso> ​/hackenv/bin/`: line 5: brainfuck: command not found
18:18:34 <kspalaiologos> `? brainfuck
18:18:36 <HackEso> brainfuck is the integral of the family of terrible esolangs. The name is a euphemism for "beef". bf -c -t "+>+++++>+++" | mklang --array
18:18:42 <kspalaiologos> bf
18:18:47 <kspalaiologos> `` bf
18:18:47 <HackEso> Run what?
18:18:57 <kspalaiologos> `` bf -h
18:18:58 <HackEso> No output.
18:19:21 <kspalaiologos> `` bf -h 2>&1
18:19:22 <HackEso> No output.
18:19:34 <kspalaiologos> `` bf stuff.b
18:19:35 <HackEso> ​.
18:22:38 <kspalaiologos> `` asmbf <<<"out .0" > stuff.b
18:22:40 <HackEso> No output.
18:22:40 <kspalaiologos> `` bf stuff.b
18:22:41 <HackEso> ​.
18:22:49 <kspalaiologos> `` bf -c `cat stuff.b`
18:22:49 <HackEso> No output.
18:22:54 <kspalaiologos> `` bf -c "`cat stuff.b`"
18:22:55 <HackEso> No output.
18:23:12 <kritixilithos> `` cat stuff.b
18:23:13 <HackEso> ​+>+[<[>>+>+<<<-]>>[<<+>>-]>[[-]>>>>>>++++++++++++++++++++++++++++++++++++++++++++++++.[-]<<<<<<]<<<[>>+>+<<<-]>>[<<+>>-]>[[-]<<<[-]>[-]>>]<<]
18:23:19 <kspalaiologos> c'mon man
18:23:26 <kspalaiologos> what's up with this biased interpreter
18:23:31 <kspalaiologos> `` whereis bf
18:23:32 <HackEso> bf: /hackenv/bin/bf
18:23:41 <kspalaiologos> `` cat /hackenv/bin/bf
18:23:42 <HackEso> ​#! /bin/bash \ [[ $# > 0 ]] || { echo "Run what?"; exit 1; } \ ci="$1" \ echo -n "${ci#*!}" | { /hackenv/interps/egobf/src/egobfi8 <(echo -n "${ci%%!*}") ; }
18:23:47 <kspalaiologos> a ha
18:23:50 <kritixilithos> bf -c -t "`cat stuff.b`"
18:24:00 <kritixilithos> `` bf -c -t "`cat stuff.b`"
18:24:03 <HackEso> No output.
18:24:12 <kspalaiologos> `` /hackenv/interps/egobf/src/egobfi8 -h
18:24:13 <HackEso> Use: egobfi{width} [options] [file] \ Options: \ -eof {0|-|n} \ set EOF mode: 0, -1 or no-change (respectively) \ [default: 0] \ -debug \ activate the # command [default off] \ -unicode {on|off} \ set unicode mode on or off [default off] \ -wrap {on|off} \ set wrappong on or off [default on]
18:24:30 <kspalaiologos> `` /hackenv/interps/egobf/src/egobfi16 stuff.b
18:24:31 <HackEso> 0
18:24:33 <kspalaiologos> purrfect
18:24:44 <kspalaiologos> `` asmbf <<<"mov r1,0/div r1,0" > stuff.b
18:24:46 <HackEso> No output.
18:24:47 <kspalaiologos> `` /hackenv/interps/egobf/src/egobfi16 stuff.b
18:24:48 <HackEso> No output.
18:25:30 <kritixilithos> `` bf -c -t "+>+++++>+++"
18:25:31 <HackEso> No output.
18:25:49 <kritixilithos> `` bf -c -t "+>+++++>+++" | mklang --array
18:25:50 <HackEso> ​/hackenv/bin/`: line 5: mklang: command not found
18:26:20 <kspalaiologos> `? egobfi
18:26:21 <HackEso> egobfi? ¯\(°​_o)/¯
18:26:26 <kspalaiologos> `? egobfi8
18:26:27 <HackEso> egobfi8? ¯\(°​_o)/¯
18:26:31 <kritixilithos> our names are exactly the same length, kspalaiologos
18:26:45 <kspalaiologos> what a coincidence ;)
18:27:05 <kspalaiologos> `` egobfi8
18:27:06 <HackEso> ​/hackenv/bin/`: line 5: egobfi8: command not found
18:27:18 <kspalaiologos> `` cat /hackenv/interps/egobf/src/egobfi8
18:27:18 <HackEso> ​ELF............>.....<@.....@.......[..........@.8..@.&.#.......@.......@.@.....@.@........................................@......@............................................@.......@.....T!......T!........ ............X!......X!`.....X!`...........@........ ...........p!......p!`.....p!`......................................@.....@.....D.......D..............Ptd.........@.....@.....D.......D...
18:27:22 <kspalaiologos> crap, its binary
18:27:34 <kspalaiologos> `` ls /hackenv/interps/egobf/
18:27:35 <HackEso> aclocal.m4 \ AUTHORS \ ChangeLog \ config.h \ config.h.in \ config.log \ config.status \ configure \ configure.ac \ COPYING \ INSTALL \ Makefile \ Makefile.am \ Makefile.in \ NEWS \ PORTING \ README \ scripts \ src \ stamp-h1
18:27:43 <kspalaiologos> `` cat /hackenv/interps/egobf/README
18:27:44 <HackEso> ​== egobfi == \ A powerful and fast-ish Brainfuck interpreter. \ \ Use: egobfi{width} [options] [file] \ Options: \ -eof {0|-|n} \ set EOF mode: 0, -1 or no-change (respectively) \ [default: 0] \ -debug \ activate the # command [default off] \ -unicode {on|off} \ set unicode mode on or off [default off] \ -wrap {on|off} \ set wrappong on or off [default on] \ \ \ == egobfc == \ An almost-as-powerful Brainfuck compiler
18:27:46 <kritixilithos> are you the same person as the malbolger in ppcg?
18:27:53 <kspalaiologos> yes
18:27:56 <kspalaiologos> that's true
18:28:06 <kspalaiologos> I'm a Seed evangelist too
18:28:39 -!- xkapastel has quit (Quit: Connection closed for inactivity).
18:28:58 <kspalaiologos> `` cat /hackenv/interps/egobf/LICENSE
18:28:59 <HackEso> cat: /hackenv/interps/egobf/LICENSE: No such file or directory
18:29:07 <kspalaiologos> `` cat /hackenv/interps/egobf/COPYING
18:29:08 <HackEso> ​ GNU GENERAL PUBLIC LICENSE \ Version 2, June 1991 \ \ Copyright (C) 1989, 1991 Free Software Foundation, Inc. \ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA \ Everyone is permitted to copy and distribute verbatim copies \ of this license document, but changing it is not allowed. \ \ Preamble \ \ The licenses for most software are designed to take away your \ freedom to share and change it. By c
18:29:11 <kspalaiologos> no author names
18:29:13 <kspalaiologos> erghhh
18:29:20 <kspalaiologos> `` ls /hackenv/interps/egobf/src/
18:29:21 <HackEso> bfc.c \ bfc.h \ bfi.c \ bfi.h \ c2m \ c2m.c \ c2m.h \ egobfc \ egobfc2m \ egobfc2m-c2m.o \ egobfc2m-egobfi.o \ egobfc-bfc.o \ egobfc-egobfi.o \ egobfc-optimize.o \ egobfi16 \ egobfi16-bfi.o \ egobfi16-egobfi.o \ egobfi16-optimize.o \ egobfi32 \ egobfi32-bfi.o \ egobfi32-egobfi.o \ egobfi32-optimize.o \ egobfi64 \ egobfi64-bfi.o \ egobfi64-egobfi.o \ egobfi64-optimize.o \ egobfi8 \ egobfi8-bfi.o \ egobfi8-egobfi.o \ egobfi8-optimize.o \ egobfi.
18:29:31 <kspalaiologos> `` cat /hackenv/interps/egobf/src/bfi.h
18:29:32 <HackEso> ​/* \ * Copyright (c) 2005 Gregor Richards \ * \ * This file is part of egobfi. \ * \ * egobfi is free software; you can redistribute it and/or modify \ * it under the terms of the GNU General Public License as published by \ * the Free Software Foundation; either version 2 of the License, or \ * (at your option) any later version. \ * \ * egobfi is distributed in the hope that it will be useful, \ * but WITHOUT ANY WARRANTY; w
18:30:24 <b_jonas> ashtons: I recommend using a name made of multiple words
18:30:56 <kspalaiologos> egobfi, HRM
18:31:23 <kspalaiologos> it seems biased tho
18:32:55 <b_jonas> ashtons: it's easier to invent names that way, because you can use a dictionary. eg. I call my future esolang "consumer society", or ais has an esolang called "waterfall model" etc
18:33:36 <b_jonas> actually it's "the Waterfall Model"
18:34:01 <b_jonas> he also has ones called "But Is It Art?" and "Along and Across" and "High Rise" etc, all made of nice dictionary words
18:34:09 <kspalaiologos> do the old esolangers ever join this channel again?
18:34:21 <b_jonas> kspalaiologos: at least one did
18:34:23 <kspalaiologos> like, pikhq, Gregor?
18:35:31 * pikhq never left
18:35:55 <pikhq> Ive just been quiet lately
18:36:03 <kspalaiologos> ah, fine
18:36:38 <b_jonas> well, it might depend on what you mean by "old" of course
18:37:20 <kspalaiologos> that used to hang out here 2002=2010
18:37:24 <kspalaiologos> *-
18:37:45 <b_jonas> and Gregor left not that long ago really, because he used to run HackEgo, didn't he?
18:38:53 <b_jonas> there are regulars who never left for long of course
18:39:30 <kmc> i rejoined after a long hiatus
18:39:41 <kspalaiologos> we had mr. calimari
18:39:49 <kspalaiologos> or however he was called
18:40:16 <b_jonas> kmc: did you use the same nick before that hiatus?
18:41:06 <kmc> yes
18:42:01 <b_jonas> ``` du -sc .hg # how large is the hackeso hg repository? I wonder if I should clone it for backup
18:42:15 <b_jonas> hmm... that times out
18:42:18 <kspalaiologos> `` du -sc .hg
18:42:20 <b_jonas> suspicious
18:42:25 <kspalaiologos> umm
18:42:32 <HackEso> No output.
18:42:49 <HackEso> No output.
18:42:59 <b_jonas> it actually needs only one of -s or -c , but I keep forgetting which is which
18:43:07 <kspalaiologos> let's check it
18:43:09 <kspalaiologos> `` du -c .hg
18:43:11 <kspalaiologos> `` du -s .hg
18:43:12 <HackEso> 116.hg/cache \ 12.hg/store/dh/interps/clc-inte/clc-inte/blib/lib/language/intercal/backend \ 16.hg/store/dh/interps/clc-inte/clc-inte/blib/lib/language/intercal/charset \ 28.hg/store/dh/interps/clc-inte/clc-inte/blib/lib/language/intercal/interfac \ 108.hg/store/dh/interps/clc-inte/clc-inte/blib/lib/language/intercal/include \ 44.hg/store/dh/interps/clc-inte/clc-inte/blib/lib/language/intercal/generici \ 24.hg/store/dh/interps/clc-inte/
18:43:18 <b_jonas> it's -s
18:43:25 <b_jonas> that's what means it writes only the final result
18:43:33 <b_jonas> not the size of every recursive subdirectory
18:43:39 <b_jonas> hmm
18:43:42 <HackEso> No output.
18:43:47 <kspalaiologos> what
18:43:55 <kspalaiologos> `` du --help
18:43:56 <HackEso> Usage: du [OPTION]... [FILE]... \ or: du [OPTION]... --files0-from=F \ Summarize disk usage of the set of FILEs, recursively for directories. \ \ Mandatory arguments to long options are mandatory for short options too. \ -0, --null end each output line with NUL, not newline \ -a, --all write counts for all files, not just directories \ --apparent-size print apparent sizes, rather than disk usage; although
18:43:59 <b_jonas> "No output." means that it's timed out
18:44:01 -!- atslash has quit (Read error: Connection reset by peer).
18:44:02 <b_jonas> in this case
18:44:04 <kspalaiologos> ah yes
18:44:05 <kspalaiologos> alright
18:44:08 <b_jonas> took too long to execute
18:44:08 <kspalaiologos> misleading text
18:44:24 <b_jonas> ``` du -s wisdom; echo done
18:44:25 <HackEso> 6336wisdom \ done
18:44:37 <b_jonas> ``` du -s .hg; echo done # if you don't see done, then it's timed out (or the output is too long)
18:45:07 <HackEso> No output.
18:45:13 -!- atslash has joined.
18:46:58 <kritixilithos> gnu parallel?
18:54:26 <fizzie> I don't think it's a CPU-bound operation.
18:54:48 <fizzie> Anyway, the repo is in the order of 779M.
18:55:32 <fizzie> Of which 271M is the current working copy, the rest is history.
18:55:55 <b_jonas> fizzie: thanks
18:56:09 <b_jonas> wow, what's so large in the workong copy?
18:56:16 <b_jonas> ``` du -s share/mtg
18:56:17 <HackEso> 24876share/mtg
18:56:33 <b_jonas> ``` du -s interps
18:56:36 <HackEso> 30684interps
18:56:38 <fizzie> 83M paste/ is the biggest chunk after .hg.
18:57:04 <fizzie> After that, share/, src/, interps/, bin/, lib/, factor/ in that order.
18:57:10 <b_jonas> thanks
18:57:49 <fizzie> There are five 10485760-byte files in paste/, that takes up the most space.
18:57:58 <b_jonas> fizzie: is tmp accessible through `paste or `url ?
18:58:06 <fizzie> Through `url, yes.
18:58:25 -!- LKoen has joined.
18:58:29 <b_jonas> then we could have a paste command that stores its data there?
18:58:51 <fizzie> That's what paste does nowadays, actually.
18:59:26 <b_jonas> I see
18:59:26 -!- kritixilithos has quit (Quit: kritixilithos).
18:59:44 <fizzie> Huh, looks like I changed it myself, 2017-02-16.
18:59:48 <fizzie> I have no recollection of that.
19:00:17 <b_jonas> well that makes sense, since you'd have to fix stuff if paste filled up the file system
19:02:53 <fizzie> tmp/ itself is only 9.4M, but I think it's been cleaned up every now and then.
19:05:21 <fizzie> `` rm paste/paste.{30459,23201,25872,16755,30692,311,27157,25139,2340,12841} # doesn't really help with the history, but I guess making the working copy smaller has some benefits.
19:05:24 <HackEso> No output.
19:07:26 <b_jonas> ``` chmod -c u+x tmp/EGY*
19:07:27 <HackEso> mode of 'tmp/EGYj6LpQgFKM' changed from 0655 (rw-r-xr-x) to 0755 (rwxr-xr-x)
19:07:35 <b_jonas> ``` rm -rv tmp/EGY*
19:07:36 <HackEso> removed directory 'tmp/EGYj6LpQgFKM/s' \ removed directory 'tmp/EGYj6LpQgFKM'
19:11:17 <b_jonas> ``` du -ac * | grep -E "^[0-9]{4}" | tr \\t \ | sort -nr
19:11:22 <HackEso> 216432 total \ 78076 share \ 39192 share/WordData \ 37444 src \ 33152 src/factor-linux-x86-64-0.95.tar.gz \ 30684 interps \ 24876 share/mtg \ 16724 bin \ 14200 paste \ 10896 interps/c-intercal \ 10736 lib \ 10244 factor \ 10240 factor/factor.image \ 9608 tmp \ 7444 tmp/out \ 6432 share/WordData/EngAll \ 6336 wisdom \ 6208 interps/clc-intercal \ 4892 lib/frink \ 4280 share/WordData/Eng1M \ 4040 lib/p7zip-16.02 \ 3740 share/WordData/EngFiction \
19:18:06 -!- Frater_EST has quit (Read error: Connection reset by peer).
19:19:28 -!- ais523 has joined.
19:22:40 <fizzie> I'm guessing src/factor-linux-x86-64-0.95.tar.gz is also not really needed to be kept permanently.
19:24:05 <b_jonas> I don't know what that is
19:24:57 -!- Frater_EST has joined.
19:27:29 -!- ais523 has quit (Remote host closed the connection).
19:28:42 -!- ais523 has joined.
19:29:37 <ais523> it looks like a source tarball to me
19:30:00 -!- b_jonas has quit (Quit: Lost terminal).
19:30:28 -!- b_jonas has joined.
19:35:34 <b_jonas> anyway, I should probably clone them later then
19:36:04 <b_jonas> fizzie: I have a question about the channel logs. they are present in three formats. do you have the raw (IRC) format even when you fill the logs back from other logs?
19:36:23 <b_jonas> I wonder if I should download the logs too, but want to figure out if the raw logs would be the best
19:47:14 <fizzie> All three formats are rendered on the fly, actually. The actual storage format I use isn't (currently) downloadable; it's a brotli-compressed stream of length-delimited protos.
19:48:13 <fizzie> That said, I don't think there's any loss of fidelity between it and the "raw" format. Except *maybe* in timestamp accuracy, don't remember.
19:49:34 <fizzie> For backfilling, I have a set of programs that convert from the other log formats (clog, my own personal logs, maybe some others) to that proto-based format, as closely as they can manage.
19:52:50 <fizzie> https://github.com/fis/esolangs/blob/master/esologs/log.proto is the storage proto, as you can see it's pretty close to being 1:1 with the "raw" format.
19:56:37 <fizzie> (There are done arguable problems, in that it can't distinguish "FOO x y" from "FOO x :y", or represent lines that are not valid in terms of the IRC protocol. But it is what it is.)
19:57:01 <fizzie> s/done/some/
20:00:42 <b_jonas> fizzie: I don't need the actual storage format, the IRC raw format is good enough
20:01:45 <fizzie> Yeah, I think it doesn't even lose in timestamp accuracy, looks like it's microseconds for both.
20:02:36 <b_jonas> fizzie: and the logs are still not accessible on HackEso's file system, right?
20:03:23 <fizzie> Right.
20:03:32 <b_jonas> I was thinking of making a `why command that looks up the context from the timestamp of a hg commit, for which I either need the logs on HackEso, or download them here and make a compressed database that represents just some of the timestamps to be able to find the right anchor
20:03:35 <fizzie> I was planning to make them accessible over HTTP from HackEso.
20:03:49 <fizzie> Probably with some sort of a search/query API.
20:04:01 <b_jonas> that could work too
20:04:25 <b_jonas> this command would need to look up one or sometimes two days per revision
20:06:48 <b_jonas> I'd have to download the HTML formatted logs for this though, to make sure that the lines match
20:07:17 <b_jonas> and even then hope that the daily logs has the same number of logical lines as the day's section in the monthly HTML
20:07:31 <b_jonas> and that the anchors are always numbered sequentially
20:08:21 <b_jonas> but those are probably true
20:08:45 <fizzie> Yes, all the HTML is generated on the fly so it should always match.
20:11:25 <b_jonas> fizzie: you can probably add a link to https://esolangs.org/logs/ refing the new log website https://github.com/KrzysztofSzewczyk/esologs/ by the way
20:11:41 <b_jonas> well, unless you think that one won't last for long
20:23:42 <kspalaiologos> it's been up and running for around 3 months now
20:24:08 -!- hppavilion[6] has joined.
20:24:36 -!- kspalaiologos has quit (Quit: Leaving).
20:27:37 -!- hppavilion[2] has quit (Ping timeout: 265 seconds).
20:30:03 -!- kspalaiologos has joined.
20:31:23 -!- Frater_EST has left.
20:57:24 <esowiki> [[NFuck]] N https://esolangs.org/w/index.php?oldid=67030 * SoYouWantMeToDoSomethingButIWont * (+524) Created page with "== NFuck == Basically this is BrainFuck with N Dimensions. === Commands === {| class="wikitable" |- ! Command !! Description |- | + || Add one to current cell. |- | - || Remov..."
21:01:12 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=67031&oldid=67026 * SoYouWantMeToDoSomethingButIWont * (+13) Added NFuck
21:14:02 -!- hppavilion[6] has quit (Ping timeout: 276 seconds).
21:36:52 -!- atslash has quit (Quit: This computer has gone to sleep).
21:42:22 -!- atslash has joined.
21:45:14 -!- hppavilion[6] has joined.
21:45:42 <shachaf> 1186 hth
21:46:57 <b_jonas> oh, that was fast
21:47:12 <b_jonas> `olist 1186
21:47:12 <HackEso> olist 1186: shachaf oerjan Sgeo FireFly boily nortti b_jonas
21:47:16 <b_jonas> `thanks fungot
21:47:16 <fungot> b_jonas: that might be the case
21:47:17 <HackEso> Thanks, fungot. Thungot.
21:49:55 <ais523> b_jonas: why do you persistently act like you can't distinguish fungot from Rich Burlew?
21:49:55 <fungot> ais523: but valgrind is slow because it involves psyntax
21:50:57 <ais523> it seems like an unlikely confusion to have, I rarely have trouble telling them apart
21:51:52 <b_jonas> ais523: no no, Rich draws the comics, fungot only publishes them
21:51:52 <fungot> b_jonas: i can only see my own messages.
21:52:15 <b_jonas> and I can't thank Rich here, he's not on this channel
22:36:27 <shachaf> ais523: I rarely have trouble telling "thanking fungot for olist" apart from "being unable to distinguish fungot from Rich Burlew".
22:36:27 <fungot> shachaf: it doesnt matter which direction you hold the ' increase red' key for evilwm
22:39:59 <shachaf> I wrote a program to color the output of a program red or green depending on whether it's stdout or stderr.
22:40:16 <shachaf> I wish it was possible to do the interleaving correctly.
22:43:31 <ais523> NetBeans does that (well, black for stdout, red for stderr)
22:43:35 <ais523> it also gets the interleaving wrong
22:43:55 <ais523> I think getting it correct would involve somehow hooking the OS scheduler?
22:44:07 <esowiki> [[///]] https://esolangs.org/w/index.php?diff=67032&oldid=66076 * Odog8 * (+156) yEEe I made something good for once
22:44:13 <ais523> (e.g. by ptracing the program and halting it whenever a write call occurred, until your own program could get scheduled and read the output)
22:44:19 <shachaf> Maybe I should settle for getting it right for a single-threaded single-process program.
22:44:28 <shachaf> Where you could just ptrace, right.
22:46:33 <esowiki> [[///]] https://esolangs.org/w/index.php?diff=67033&oldid=67032 * Odog8 * (+12)
22:46:38 <ais523> oh, I'm being stupid: you ptrace the program and when it does a write() call, you don't even bother reading the resulting filehandle, you just read the data right out of the argument it gives to write :-P
22:47:03 <esowiki> [[///]] https://esolangs.org/w/index.php?diff=67034&oldid=67033 * Odog8 * (+11) /* Thue-Morse sequence */
22:47:03 <ais523> (you still have to read stderr/stdout if it's a pipe to prevent it clogging up, but maybe you could just use /dev/null)
22:47:37 <shachaf> Well, no reason not to read it.
22:47:47 <ais523> alternatively, less general but less efficient: LD_PRELOAD alternative read()/write() routines
22:48:21 <shachaf> LD_PRELOAD isn't so good because the official API in Linux is system calls, not libc calls.
22:49:16 <ais523> indeed
22:49:56 <ais523> hmm, perhaps the dynamic linker should have an option to replace "syscall" (and "int $0x80") with calls to some particular hook code, that'd avoid the context switch in this case
22:50:13 <ais523> (the obvious downside is how do you fit that into two bytes?)
22:50:40 <shachaf> How would it do that?
22:51:13 <shachaf> I think Linux should probably let people override system calls in userspace in a better way than ptrace.
22:51:37 <b_jonas> ais523: that gets tricky though, because you have to interpret like ten other syscalls besides write, just in case the program uses them
22:53:47 <b_jonas> plus you may have to handle different syscall types that coexist on x86_64
22:54:05 <ais523> b_jonas: yes, at least the number of syscalls is finite and small enough to go through all of them
22:54:30 <ais523> also, in the case of stderr/stdout, the program writing to them probably doesn't expect them to be seekable, that cuts down the number of possibilities somewhat
22:55:02 <ais523> actually, in retrospect, I think it's a design flaw for streams and seekable files to be given the same API, the set of operations that can be performed on them is so different
22:55:23 <shachaf> I think the Windows thing where there's no syscall API, just a dynamically linked OS library, has some benefits.
22:55:25 <b_jonas> ais523: for fixing interleaving, couldn't you just use pipes for stdout and stderr, and set their capcity to as low as possible, so that they always block on a second write?
22:55:42 <b_jonas> using fcntl F_SETPIPE_SZ on linux (and there's a call on windows too)
22:56:05 <b_jonas> that's still not perfect, because you still can't tell the order between one stdout and one stderr write
22:56:11 <b_jonas> hmm
22:56:53 <b_jonas> shachaf: the x86_64 abi started by saying that libc is the recommended syscall interface
22:57:00 <shachaf> libc is scow
22:57:05 <b_jonas> but of course everyone wants to call the syscall directly, because it's faster or something
22:57:08 <b_jonas> so we can't have that
22:57:11 <b_jonas> and I for one agree
22:57:19 <b_jonas> libc has like ten layers of wrapper around even simple syscalls
22:57:27 <shachaf> b_jonas: Someone pointed out that in Linux, epoll will tell you the order that fds became readable.
22:57:58 <ais523> shachaf: if Windows actually were like that, it wouldn't be too bad, but the OS library that's dynamically linked doesn't have a documented/defined API, so you need to use a libc as a wrapper anyway
22:58:07 <b_jonas> moving the arguments from where a function expects them to where a syscall expects them, errno check, possible restart on signals (or is it the kernel that's doing that now?),
22:58:16 <shachaf> ais523: Hmm? You don't have to use libc for Windows.
22:58:35 <ais523> shachaf: what dynamically linked OS library are you thinking of?
22:58:37 <shachaf> ReadFile is maybe not a system call, but it's an OS interface that isn't libc.
22:58:49 <shachaf> I'm thinking of kernel32.dll, I think.
22:59:05 <ais523> msvcrt is a libc (and one you're not officially meant to use, at that!); user32/kernel32 have an incredibly large, and mostly undocumented, API surface
22:59:07 <shachaf> Maybe you're thinking of ntdll.dll.
22:59:33 <shachaf> Well, don't use the undocumented parts, I guess?
23:00:39 <b_jonas> anyway, modifying the program that outputs to stdout and stderr is probably the easiest if the order of its outputs matter
23:01:29 <shachaf> Windows has something called OutputDebugString. I'm not really sure what it is.
23:03:17 <ais523> hmm, so it does seem like the API surface is documented in some cases, but only incidentally, e.g. https://docs.microsoft.com/en-gb/windows/win32/api/winuser/nf-winuser-messageboxexw
23:03:48 <ais523> this is documented as being part of winuser.h, a C header file, and it's only mentioned at the bottom of the page that the function exists in user32.dll
23:03:55 <shachaf> What's incidental about that?
23:03:59 <b_jonas> ais523: but there's a documented library too, so why does it matter if there's an undocumented library behind it?
23:04:12 <ais523> b_jonas: which documented library are you thinking of?
23:04:24 <ais523> shachaf: well, it means that the use via user32.dll isn't part of the API contract
23:04:25 <b_jonas> the one that has the windows api calls
23:04:37 <shachaf> ais523: It's certainly part of the ABI.
23:04:44 <ais523> in particular, Microsoft could change the calling convention without violating anything written there
23:04:53 <b_jonas> I don't know what that library is called, the compiler just links it into windows programs automatically, so I never tried to find out
23:04:59 <ais523> I agree that it can't be changed in practice because the .exe files will be linked against a particular calling convention
23:05:05 <shachaf> If you write a program and it calles MessageBoxExW, you'll need to link it with the import library user32.lib.
23:05:13 <ais523> b_jonas: OK, the reason I asked is that this is more complex than you're expecting
23:05:21 -!- 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.”).
23:05:23 <ais523> the library in question normally has a name of the form msvcrt*
23:05:32 <ais523> Microsoft considers this to be part of the compiler, not part of the operating system
23:06:06 <ais523> in particular, there are a number of different msvcrt* files, which you are supposed to ship along with your application, and they have non-open-source licensing that limits what you can do with them
23:06:53 <shachaf> There are multiple parts of msvcrt, as I understand it.
23:07:04 -!- unlimiter has joined.
23:07:04 <b_jonas> ais523: right, they ship with the compiler, as well as with operating systems starting from Win10 via patches, and if you install programs compiled by a new compiler onto an older OS, you have to install the runtime library
23:07:10 <ais523> there is also an msvcrt.dll with no version number that does ship with Windows, this is officially undocumented (and does some weird things like implementing functions with the same name as C standard library functions, but different behaviour), and you aren't meant to use it, but at least it will exist on a user's computer and thus you can link against it fairly safely if you know what it does (and with no licensing issues)
23:07:11 <shachaf> Part of it is things like fopen, which implements the C standard library and you can use if you want to, or not.
23:07:53 <shachaf> And another part is things like memcpy (maybe?) that the compiler just generates calls to automatically, that you have to reimplement yourself if you don't link the official msvcrt.
23:07:57 <ais523> in practice, if you're compiling on Windows using an open-source compiler, you're probably using msvcrt.dll as it's the least problematic of the various "you can't use these" APIs
23:08:08 <shachaf> Neither of these has to do with the OS ABI, which applies to everyone, not just people programming in C.
23:08:29 <ais523> shachaf: the second part isn't a huge problem, the compiler normally has a fix for that (e.g. gcc has libgcc)
23:08:38 <shachaf> If you write a program in assembly that opens a MessageBox, you still link to user32.lib/user32.dll, because that's just the API the OS presents.
23:09:06 <ais523> I agree that the question is "how do you use the OS ABI", and the answer is "either directly or via a glue library, and neither appears to be officially supported unless you use a Microsoft compiler"
23:09:14 <shachaf> In what sense is this undocumented?
23:09:23 <shachaf> It says user32.dll and user32.lib right on the page you linked to.
23:09:48 <b_jonas> ais523: sure, but that's because the non-microsoft compilers for windows are sort of in a sad state
23:09:52 <b_jonas> for multiple reasons
23:09:59 <ais523> in the literal sense that, AFAIK, there are a large number of APIs in those libraries which are not documented
23:10:23 <b_jonas> for one, gcc on windows implements a C ABI that is so incompatible with the MS compiler that even sizeof(long) differs
23:10:41 <ais523> what Microsoft does is documents APIs that are used by some other mechanism, e.g. in the case of MessageBoxEx, via the windows.h header file, and incidentally mentions that you can find the implementation in user32.dll
23:10:43 <shachaf> But the ones that you're supposed to use *are* documented. What do the undocumented ones have to do with it?
23:10:56 <ais523> you have no way to know which ones you're supposed to use or not!
23:10:58 <b_jonas> it's not just that each MS complier used to have a different C ABI for a while, because those only differed in libc stuff like how FILE works, and in libstdc++ and other C++ stuff
23:11:11 <b_jonas> you can still at least link pure C functions between them
23:11:16 <ais523> there is nothing preventing msvcrt implementing a documented function in its C API via an undocumented function in user32.dll
23:11:21 <shachaf> You just linked to the documentation for MessageBoxEx. So clearly that's one that you're allowed to use?
23:11:22 <b_jonas> but if you use gcc, you can only link pure C functions if they don't mention long
23:11:28 <ais523> shachaf: yes
23:11:30 <b_jonas> this is documented, but it's sad
23:11:34 <ais523> I'm not sure if this is a complete set, it might be
23:11:58 <shachaf> I feel like if you're writing a program for Windows you just don't care about msvcrt that much.
23:11:59 <ais523> a long time ago, on a different computer, I downloaded Microsoft's full set of low-level API documentation, but never really got into it that much
23:12:31 <shachaf> You have the documented OS ABI, which is some subset of kernel32.dll etc., and you just use that.
23:12:42 <b_jonas> I used to look at the API documentation at https://docs.microsoft.com/en-us/previous-versions//hh447209(v=vs.85)?redirectedfrom=MSDN , but now it says that "We're no longer updating this content regularly" and doesn't say what supersedes it
23:12:49 <b_jonas> so now I'm not sure where the windows API docs are
23:15:00 <shachaf> ais523: I'm not sure what distinguishes ExitProcess() being exposed in kernel32.dll -- documented in https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-exitprocess -- and SYS_exit being exposed in the Linux ABI.
23:15:10 <shachaf> Except that one is a function call and one is a syscall, obviously.
23:15:13 <ais523> shachaf: I'm saying I don't know where I'd go to find a list of "this is all the functions in kernel32.dll you are allowed to use"
23:15:28 <ais523> because that's not how Microsoft organises their API documentation
23:15:37 <shachaf> Oh, sure, that's an organization thing.
23:15:47 <shachaf> But if you need to exit the process, you can call ExitProcess().
23:16:40 <b_jonas> https://docs.microsoft.com/en-us/windows/win32/apiindex/windows-api-list is probably the new documentation
23:17:08 <ais523> here's an example: https://docs.microsoft.com/en-gb/windows/win32/api/processthreadsapi/nf-processthreadsapi-createprocessasuserw
23:17:31 <ais523> I found this by clicking the link to process and thread functions from your exit process link
23:17:41 <b_jonas> ais523: isn't that because the same dll has functions for multiple different APIs mixed in it, sort of like libc has all sorts of junk in it too?
23:17:43 <shachaf> Hmm, does /en-gb use British spellings?
23:17:44 <ais523> then clicking on a function I thought might be part of the standard library than the ABI
23:17:46 <ais523> then editing the URL
23:18:22 <ais523> a) the fact that I had to edit the URL means that the index listing isn't complete (and I just happened to know that most functions with a name ending in A have an equivalent with a name ending in W)
23:18:39 <b_jonas> so instead there's a doc that documents all the functions of the Win32 API, which are supposedly enough to write anything in windows, and has functions like CreateFile, plus there's one that documents the libc api that comes with the compiler and has functions like fopen
23:18:40 <ais523> b) the DLL is listed as advapi32.dll, and I have no idea whether that is part of the ABI surgace or not
23:18:43 <ais523> *surface
23:19:30 <shachaf> I'm confused about what you're saying. That there's no comprehensive list of all the functions you're allowed to use?
23:19:57 <shachaf> That doesn't seem particularly necessary. Clearly this specific function is documented, because that's a documentation page for it.
23:20:42 <ais523> shachaf: is it part of the ABI?
23:20:47 <ais523> I can't get a clear yes or no answer from that page
23:21:04 <shachaf> I see CreateProcessAsUserW on the ExitProcess documentation page, by the way.
23:21:36 <shachaf> ais523: It's part of the advapi32.dll API, and the minimum supported client is Windows XP.
23:22:00 <ais523> I don't see it; do you have an URL? maybe we're looking at different pages
23:22:09 <b_jonas> https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-createprocessasuserw
23:22:12 <ais523> shachaf: is advapi32 part of the ABI? I agree that it's part of the API
23:22:36 <shachaf> Part of which ABI?
23:22:39 <ais523> b_jonas: that's the CreateProcessAsUserW page
23:22:43 <ais523> shachaf: the Windows ABI
23:22:48 <ais523> the equivalent to Linux system calls
23:23:19 <b_jonas> ais523: right, so what function are you looking for instead?
23:23:31 <ais523> b_jonas: I'm looking for the list that contains a link to that page
23:23:38 <ais523> I didn't find the page via a link, I found it via URL editing
23:23:48 <shachaf> ais523: There's a sidebar on the ExitProcess page that links to that page.
23:23:52 <ais523> (from a link to the -A version)
23:24:03 <ais523> shachaf: oh, it must be because you have JavaScript turned on and I don't
23:24:05 <b_jonas> I don't think there's a flat list, but it's probably in the tree of https://docs.microsoft.com/en-us/windows/apps/desktop/
23:24:09 <ais523> the sidebar doesn't show for me
23:24:15 -!- arseniiv_ has quit (Ping timeout: 252 seconds).
23:24:19 <b_jonas> no wait
23:24:24 <b_jonas> how about https://docs.microsoft.com/en-us/windows/win32/index
23:24:29 <b_jonas> you need javascript for the sidebar, yes
23:24:52 <shachaf> ais523: I also see it on https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/
23:25:00 <shachaf> Anyway, I don't know what advapi32.dll is, so I can't say. It seems to be part of the interface exposed by the OS, so probably?
23:25:05 -!- unlimiter has quit (Quit: WeeChat 2.6).
23:25:22 <shachaf> As a person targeting Windows, you should probably figure out what each of the DLLs you might be linking against is.
23:25:23 <ais523> incidentally, after actually reading the docs on the function, i got alarmed at the actual semantics of cross-user process creation on Windows
23:26:08 <ais523> "Typically, the process that calls the CreateProcessAsUser function must have the SE_INCREASE_QUOTA_NAME privilege and may require the SE_ASSIGNPRIMARYTOKEN_NAME privilege if the token is not assignable. If this function fails with ERROR_PRIVILEGE_NOT_HELD (1314), use the CreateProcessWithLogonW function instead. CreateProcessWithLogonW requires no special privileges, but the specified user account must be allowed to log on interactively. Generally,
23:26:08 <ais523> it is best to use CreateProcessWithLogonW to create a process with alternate credentials."
23:26:31 <ais523> and CreateProcessWithLoginW requires the plaintext password of the user you want to create the process as
23:27:00 <ais523> that isn't an API that I would recommend for any situation other than a sudo-equivalent, and yet it's the recommended way to do things on Windows?
23:27:32 <b_jonas> so "https://docs.microsoft.com/en-us/windows/apps/desktop/", find link "Win32", goes to "https://docs.microsoft.com/en-us/windows/win32/index", find link "Win32 API reference by feature", goes to "https://docs.microsoft.com/en-us/windows/win32/apiindex/windows-api-list", section "System Services", link "Processes", goes to
23:27:37 <b_jonas> "https://docs.microsoft.com/en-us/windows/win32/procthread/process-and-thread-reference?redirectedfrom=MSDN", link "Process and Thread Functions", goes to "https://docs.microsoft.com/en-us/windows/win32/procthread/process-and-thread-functions", section "Process Functions", link "CreateProcessAsUser"
23:28:43 <ais523> b_jonas: which shows CreateProcessAsUserA for me, the version that's sensitive to which language version of the OS is installed
23:29:16 -!- oerjan has joined.
23:29:19 <b_jonas> ais523: ok, but then I don't know which function you want instead
23:29:24 <ais523> even Microsoft eventually realised that having the ABI differ from one country to another was a problem, that's one of the reasons why the -W variants of the functions were invented
23:29:28 <b_jonas> and I'm not familiar with the windows api enough to tell what's best to use here
23:29:30 <ais523> so CreateProcessAsUserW is the more sane version
23:29:48 <ais523> there's a fairly simple rule: do not use functions whose name ends in a capital A ever
23:30:04 <ais523> people just do it because it's convenient (and usually works if both you and your customers speak English)
23:30:04 <shachaf> Except when you can?
23:30:06 <b_jonas> ais523: ok, but aren't they usually documented together?
23:30:20 <ais523> the documentation of the two is almost identical
23:30:33 <shachaf> OutputDebugStringA("some text"); seems fine to me.
23:31:03 <b_jonas> ais523: hmm, you're right, that page doesn't document the W version
23:31:08 <b_jonas> let me see if I can find one that ends in a W
23:31:13 <ais523> only difference appears to be in the title and "syntax" section
23:31:15 <b_jonas> although there might not be one if this is an obsolete api
23:31:21 <ais523> shachaf: the encoding of "some text" differs by which version of Windows you have
23:31:53 <shachaf> Is it not always compatible with ASCII?
23:31:59 <ais523> there's almost certainly an API to discover what it is, then you could do an iconv to convert to the correct format at runtime
23:32:18 <shachaf> I guess if your program uses UTF-8 internally, it has to encode to UTF-16 whenever it calls a W function. Which isn't so bad.
23:32:18 <ais523> I don't know whether it's always ASCII-compatible, my guess would be no though
23:32:35 <ais523> in particular, I have a strong suspicion that the ASCII codepoint of \ is used for ¥ on Japanese versions of Windows
23:32:43 <b_jonas> interesting, there is a CreateProcessAsUserW function too
23:33:01 <ais523> the thing about the A/W split is that this is mostly hidden from the user via header files
23:33:03 <shachaf> I linked to https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/ already.
23:33:05 <ais523> sometimes it's documented, sometimes it isn't
23:33:12 <b_jonas> ais523: you're right, the doc is weird
23:33:33 <ais523> there are tools to make it easy to write programs as a polyglot between the A and W APIs; this doesn't seem useful except for examples in manuals and for writing libraries, though
23:33:46 <b_jonas> ais523: yeah, I know, and the libc functions have such a split too for some functions, also partly hidden by macros and typedefs
23:34:22 <b_jonas> but I don't understand why the documentation doesn't link to the W version of this function from the path that I followed
23:35:20 <ais523> I believe Microsoft's API/ABI policy is to intentionally blur the boundaries between userspace and kernelspace, from the user's point of view
23:35:21 <b_jonas> there is another path, but it's probably not the main path:
23:36:07 <ais523> (incidentally, there actually is a kernel ABI that user32.dll and kernel32.dll use to actually do things, but that's considered to entirely be internals; presumably a reverse engineer could use it directly but that would risk their program breaking on newer versions of Windows)
23:36:18 <b_jonas> ais523: yes, that makes sense, because this way they can take an old system call and turn it to a libc wrapper in future versions of windows, so they don't have to have as many obsolete system call entries _in the kernel_ as linux has
23:36:35 <shachaf> Yes, I think this is reasonable for that reason.
23:36:46 <shachaf> Linux also does a small amount of this with the vdso.
23:36:59 <b_jonas> and the actual syscall abi was supposed to have been internals on linux too, with a few specific exceptions
23:37:06 <b_jonas> you're supposed to call the libc functions to call system calls
23:37:12 <b_jonas> on x86_64 that is, not on x86_32
23:37:35 <b_jonas> it's just that that won't work, people want to call the system calls directly, so they'll do, and some old documentation won't stop them
23:37:46 <shachaf> No, the kernel explicitly keeps the system call ABI stable.
23:37:46 <ais523> b_jonas: I agree that it's a defensible policy, although it does have a major downside to the Linux way of doing things: it makes it impossible to statically/dynamically analyse what a program can/is ask/asking the kernel to do, because you don't know where all the kernel entry points are
23:38:08 <b_jonas> shachaf: which kernel?
23:38:12 <shachaf> Linux.
23:38:15 <b_jonas> exactly
23:38:16 <ais523> I believe Linux's policy for system calls is "use the libc wrapper unless you're doing something weird, in which case use the syscall directly"
23:38:41 <ais523> also, "the libc wrapper is meant to approximately obey POSIX, the syscalls aren't and may act differently"
23:38:57 <shachaf> For the most part the Linux system calls are more reasonable than the libc wrappers.
23:39:06 <ais523> although in practice the syscalls normally have more useful semantics than POSIX (I guess being less useful wouldn't work)
23:39:23 <b_jonas> shachaf: except for _exit. fucking _exit.
23:39:33 <b_jonas> it used to exit the process, but then they changed it.
23:39:49 <b_jonas> so now there's a group_exit system call to exit the process, and libc's _exit and _Exit function calls that
23:39:55 <oerjan> <kspalaiologos> `` asmbf <<<"mov r1,0/div r1,0" <-- i've fixed that so you can just do `asmbf yourcodehere
23:39:57 <b_jonas> and if you try to call the actual _exit syscall, you're screwed
23:40:53 <b_jonas> oerjan: I thought we'd use bin/! to do that part of the wrapping
23:42:42 <b_jonas> ais523: anyway, "https://docs.microsoft.com/en-us/windows/win32/index" as above, then link "Win32 API reference by header", goes to "https://docs.microsoft.com/en-us/windows/win32/api/", then in sidebar, link "System Services", goes to "https://docs.microsoft.com/en-us/windows/win32/api/_base/", then link "processthreadsapi.h", goes to
23:42:47 <b_jonas> "https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/index", then link "CreateProcessAsUserW", goes to "https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-createprocessasuserw"
23:43:00 <b_jonas> but I don't know why the other path doesn't lead to this function too
23:43:01 <ais523> b_jonas: yes, that was mentioned earlier
23:43:08 <ais523> although it seems weird to organize an ABI by C header file?
23:43:12 <b_jonas> ais523: yes
23:43:18 <b_jonas> it should be linked from both places
23:43:25 <b_jonas> I don't know why it isn't
23:43:39 <b_jonas> maybe because it's an obsolete function, maybe it's just another doc bug
23:43:56 <b_jonas> it's not the first apparently accidental omission from MS docs that I've seen
23:43:58 <b_jonas> `? lfloor
23:43:59 <oerjan> b_jonas: we're not consistent, also asmbf isn't an interpreter, it's a converter.
23:43:59 <HackEso> lfloor? ¯\(°​_o)/¯
23:44:16 <b_jonas> oerjan: hmm yes, that's a good point
23:44:46 <b_jonas> `? lrint
23:44:47 <HackEso> The lrint and lrintf functions (of C99 and C++11) are actually supported by the MS compiler (starting from the 2013), only strangely undocumented.
23:44:48 <b_jonas> yes, that one
23:45:12 <b_jonas> although I think they fixed that a few compiler versions later
23:47:15 <ais523> b_jonas: anyway, I suspect that there are more obsolete kernel APIs in Windows than there are in Linux, even though Windows should theoretically be able to remove them without breaking backwards compatibility:
23:47:30 <ais523> s/APIs/ABIs/
23:47:39 <ais523> a) Linux only has a few syscalls total, most of which aren't obsolete
23:47:41 <b_jonas> ais523: linux can also remove some of them without breaking backwards compatibility
23:47:43 <ais523> *few hundred
23:48:03 <shachaf> Hmm, quite a few Linux system calls are obsolete.
23:48:22 <ais523> b) Microsoft's main value to their customers is backwards compatibility, and Windows devs are infamous for doing really weird things that require kernel-side workarounds to avoid breakage
23:48:28 <b_jonas> in particular, they are planning to eventually remove x86_32 userspace compatibility from x86_64, which would save a lot of syscall stuff that actually requires glue code in the kernel to handle
23:48:44 <shachaf> ais523: Linux also works very hard on backward compatibility.
23:49:00 <shachaf> Linux the kernel, that is. Userspace breaks all the time for no good reason.
23:49:06 <ais523> shachaf: I agree, but I don't think that's the main selling point of Linux
23:49:13 <ais523> (precisely because userspace breaks all the time)
23:49:16 <shachaf> It's one of the main selling points of any platform.
23:49:26 <shachaf> Linux-the-userspace is just not a good platform.
23:49:54 <shachaf> Fortunately you can statically link executables, unless you're doing graphics or something.
23:51:02 <ais523> shachaf: Mac OS X is planning to require executables to be notarised to run, this has the side effect of breaking backwards compatibility for all old un-notarised executables
23:51:44 <ais523> (notarising consists of sending your executable to Apple, who do static analysis on it to make sure it isn't malicious or does other things they don't want programs to do, and they then produce a signature saying it's been notarised; I think that's part of the program, it conceptually is at least)
23:51:58 <ais523> that's pretty much the opposite of having backwards compatibility as a selling point
23:52:39 <ais523> in general I don't think backwards compatibility is a major selling point for Mac OS X, or even a design goal
23:53:47 <shachaf> Probably not nowadays?
23:54:00 <shachaf> When they switched from Mac OS 9, they did a lot of work on backward compatibility.
23:54:30 <shachaf> This notarization thing is obviously very hostile to developers and users.
23:54:33 <ais523> I've been trying to discover when notarisation first became possible (as opposed to required)
23:54:40 <ais523> but I'm not very good at searcihng
23:54:46 <ais523> my leading theory is that it was 2019, though
23:57:31 <ais523> anyway, I don't think it's obvious that backwards compatibility, especially of executables, will automatically be a concern to an operating system or comparable platform
23:57:46 <ais523> there are clear reasons why it would help, but some companies may decide that the tradeoff isn't worth it
23:58:36 -!- Frater_EST has joined.
23:59:21 <ais523> I guess a lot depends on what your model for deploying software is
2019-11-13
00:01:36 -!- ArthurStrong has quit (Quit: leaving).
00:04:02 <shachaf> I wonder how many system calls Linux would have if you got rid of all the obsolete ones.
00:06:56 <ais523> my asm/unistd_64.h lists 332 total, the vast majority of them seem to be neither removed nor superseded, so I'm guessing about 300?
00:07:22 <shachaf> Mine has 436.
00:07:41 <shachaf> I suspect quite a few are superseded.
00:07:41 <ais523> I think there might be debates about what counts as obsolete
00:07:54 <ais523> sorting them alphabetically, I came across dup/dup2/dup3
00:07:56 <b_jonas> yeah, eg. is read obsolete because we have preadv?
00:08:00 <ais523> which of those would you consider obsolete?
00:08:10 <b_jonas> ais523: dup, dup2 are definitely obsolete, just use the fcntl functions
00:08:19 <shachaf> dup3 clearly supersedes dup2.
00:08:25 <shachaf> dup isn't superseded as far as I know.
00:08:42 <b_jonas> dup3 too has an fcntl equivalent
00:08:45 <ais523> dup is entirely duplicated by fcntl
00:08:48 <shachaf> Of course the Linux ABI is much bigger than system calls. It include /proc and /sys, and ioctls, and so on.
00:08:53 <ais523> and dup3 can be written in terms of dup2 + fcntl
00:09:16 <b_jonas> hmm wait
00:09:18 <ais523> /proc and /sys and friends can only be accessed via system calls
00:09:26 <ais523> they're more like special cases of system calls, than ABIs in their own right
00:09:28 <b_jonas> fcntl doesn't do the dup2/dup3 explicit destination file descriptor number thing?
00:09:32 <b_jonas> sorry
00:09:42 <ais523> b_jonas: no
00:10:00 <ais523> although you can do a dup+cloexec mix using a single fcntl instruction
00:10:04 -!- FreeFull has quit.
00:10:11 <ais523> which doesn't have a dedicated system call of its own otherwise (dup3 can't do it)
00:10:36 <ais523> this ABI is actually something of a mess, but I guess backwards compatibility (and to some extent usabliity from asm without wrappers) is important
00:13:29 <shachaf> If foo() is replaced with foo2() which has a flags argument, clearly foo is obsolete.
00:13:41 <shachaf> Similarly foo with fooat.
00:14:19 <ais523> what if the flags are rarely used, and technically unnecessary?
00:15:14 <shachaf> It should've had the flags argument in the first place.
00:15:16 <ais523> dup3 is probably not entirely redundant to dup2 + fcntl (there are likely some race conditions relating to exec in one thread against dup in another), but it's only weird situations where you'd need it
00:15:39 <ais523> and in practice it's more likely to be used as an optimisation to reduce system call overhead
00:16:01 <shachaf> You mean CLOEXEC?
00:16:22 <shachaf> All the system calls that make fds are getting flags arguments to support CLOEXEC.
00:16:24 <ais523> dup3 only supports one flag ;-)
00:16:46 <shachaf> That seems like a good reason to call the nonflag version obsolete.
00:17:37 <ais523> I would expect dup2(x,y) to be preferred over dup3(x,y,z) if you didn't want to set cloexec
00:18:38 <ais523> fwiw, this is probably a good argument for all system calls to have a flags argument, even if it's initially just always-0?
00:18:47 -!- Frater_EST has quit (Read error: Connection reset by peer).
00:19:18 <ais523> hmm, is the Linux system call ABI guaranteed to preserve registers, other than eax? I vaguely remember that it is
00:19:32 <ais523> in which case dup2 has less register pressure, in addition to not needing to zero an additional register
00:19:48 <shachaf> It clobbers rcx and r11.
00:19:59 <ais523> oh right, everything clobbers r11
00:20:11 <shachaf> Why?
00:20:43 <ais523> in practice, r11 very rarely /actually/ changes as the result of a call, but it's been considered useful to have a register that dynamic linkers and other similar things can use as a temporary if they need to inject glue code for some sort of call or another
00:21:01 <ais523> like, at any change of control, you have a register that's safe to clobber no matter what
00:21:14 <ais523> and r11 is the generally agreed-on choice for that
00:21:22 <ais523> (it helps if everyone uses the same register, for obvious reasons!)
00:21:46 <shachaf> I guess this is a SysV thing.
00:22:07 -!- Frater_EST has joined.
00:22:20 <ais523> it probably started from there, at least
00:22:43 <shachaf> I think calling files in /proc a special case of the ABI of open()/read() is a big stretch.
00:23:13 <ais523> $ readlink /proc/self/exe
00:23:14 <ais523> /bin/readlink
00:23:19 <ais523> if that isn't a special case, I don't know what is
00:23:28 <ais523> err, wrong one
00:23:58 <ais523> I meant /proc/self/fd/0 and friends
00:24:18 <shachaf> Oh man, I forgot Linux had name_to_handle_at and open_by_handle_at.
00:25:00 <ais523> (the point being that if a process has a deleted file open, readlink on that file returns the name it had before that name was deleted, but you can nonetheless read the file directly by fd)
00:25:20 <shachaf> I mean, /proc is obviously part of the ABI, but in a really bad way, and I don't think putting the blame on read is reasonable.
00:25:24 <ais523> actually that probably works on /proc/self/exe too if a deleted executable is running
00:25:44 <ais523> my point is that this is a special case relating to the combination of readlink and proc, you won't find anything like it elsewhere
00:25:58 <ais523> and this is because proc is basically just a set of special case for system calls
00:28:16 <shachaf> I'm confused by the name_to_handle_at API.
00:28:48 <shachaf> Oh, never mind, I didn't read far enough.
00:30:58 <shachaf> whoa, Linux has process_vm_{read,write}v
00:32:06 <shachaf> It's also finally getting pidfd, apparently.
00:32:58 <ais523> process_vm_{read,write}v look like a huge efficiency gain for debuggers, and probably have other uses as well
00:33:23 <ais523> reading a target process' memory in tiny chunks via ptrace would have huge system call overhead
00:33:54 <shachaf> Was it previously possible to read /proc/pid/mem?
00:34:11 <ais523> hmm, I didn't think of that
00:37:10 <fizzie> Ooh, pidfd.
00:37:52 <fizzie> There are so many foofd's in Linux; signalfd, eventfd, timerfd.
00:38:05 <ais523> what's the intended use case of a pidfd?
00:38:19 <ais523> at a guess, some sort of protection against PID reuse?
00:38:25 <shachaf> Avoiding race conditions, I imagine.
00:38:52 <fizzie> Yes, sending a signal to a known process without worrying about it dying and being replaced by some other process is the one I know of.
00:39:03 <fizzie> Also waiting for a process to exit without being its parent, maybe?
00:39:21 <ais523> (or its ptracer)
00:39:47 <ais523> actually, you can also wait for a process to exit without being its parent /or/ its ptracer by ptracing its parent, but that's probably a bit silly
00:42:03 <ais523> hmm, the man page for ptrace has been updated since I last read it
00:42:26 -!- hppavilion[6] has quit (Ping timeout: 240 seconds).
00:42:59 <ais523> there's a discussion of permissions, including the mention that ptrace permission checks are based on the ptracer's real UID/GID, not its effective UID/GID (which seems like a minor security risk in the case where the ptracer is trying to suspend its own permissions)
00:43:08 <shachaf> Here are some obsolete system calls: accept chown creat create_module dup2 epoll_create epoll_ctl_old epoll_wait_old eventfd fchown fork fstat getdents lchown link lstat mkdir mknod open pipe preadv pwritev readlink signalfd stat symlink vfork
00:43:44 <fizzie> This article says there's also a proposal for a clone flag that can make a process that can only be waited on through its pidfd, the intention being that a library can create a helper process without confusing its host application's wait calls.
00:44:45 -!- Sgeo_ has quit (Read error: Connection reset by peer).
00:44:54 -!- ais523 has quit (Remote host closed the connection).
00:45:07 -!- ais523 has joined.
00:45:19 <fizzie> For a Go application I wrote recently (for personal use), I did a really ugly-looking snippet to use ambient capabilities, before learning that actually the standard Go library's syscall.SysProcAttr struct has an AmbientCaps field for using ambient capabilities.
00:46:36 <shachaf> The man page for wait4 says that waitpid and waitid are preferred.
00:46:53 <shachaf> But neither one of them gives you rusage, like wait4 does!
00:47:24 <shachaf> Except that's not true.
00:47:36 <shachaf> The system call gives you rusage, but the glibc wrapper just ignores it.
00:47:50 -!- Sgeo has joined.
00:51:14 <shachaf> inotify_init is another one.
00:53:10 <ais523> I think it would be helpful if there were some sort of model of OS-level capabilities, plus any similar constructs at below the OS level, in terms that users could easily understand
00:54:06 <shachaf> When will Linux support mmap into a ptracee?
00:54:14 <ais523> in particular, there seems to be some sort of hierarachy of cans that override can'ts that override cans that override can'ts…
00:54:26 <shachaf> Windows has supported this forever.
00:54:38 <ais523> like, file-permitted is the strongest sort of capability, it says that the file can do this, overriding everything else
00:54:47 <shachaf> Without mmap you can't even guarantee finding a syscall instruction to do anything else.
00:57:57 -!- budonyc has joined.
00:57:59 <ais523> actually, no, there are two levels above that
00:58:22 <ais523> being run as root or suid-root and not capability-aware lets you do anything and sort-of bypasses the whole capability thing
00:59:06 <ais523> or, ugh
00:59:12 <ais523> capability bounding set is really confusing in this model
01:00:01 <ais523> removing a capability from the bounding set absolutely prevents that capability from ever again being regained by file-inheritable; however, it does not prevent it being regained from file-permitted
01:02:04 <fizzie> Yeah, it's not super-obvious.
01:02:09 <ais523> AFAICT, capabilities is currently a mix between several different permissions models, with system calls to choose which ones you want, and/or to prevent your descendant processes using their own system calls to change back to a different one
01:02:24 <ais523> except that the kernel doesn't force you to pick a specific model but sort of lets you blend your way between them if you like
01:02:41 <fizzie> There's that table in capabilities(7) on how the ambient, permitted, effective, inheritable and bounding sets are derived on execve.
01:03:30 <fizzie> But even that wasn't the full story.
01:04:45 <ais523> I think a sane model would look something like "processes: permitted is always a subset of inheritable; files: only inheritable permissions exist"
01:06:22 <ais523> actually, I think you need a new category entirely
01:07:05 <ais523> I think files should have two permission sets: one is equivalent to "inheritable" in the current model, the other causes the process executed from that file to gain a permission as permitted if it is both inheritable and effective in the calling process
01:07:18 <fizzie> Anyway, all I wanted was to have one capability-aware program execute a capability-dump helper process with CAP_DAC_READ_SEARCH, and I think I got that setup right: for the capability-aware executable file, set that bit in the file's effective and permitted sets; in the capability-aware program, first add the bit to the process's inheritable set, then raise it in the process's ambient set.
01:08:16 <ais523> files don't hav effective sets
01:08:28 <ais523> just the effective bit, which could be called the "capability-unaware" bit
01:09:24 <ais523> hmm, how does the no-new-privs bit interact with all this?
01:10:48 <fizzie> Right, that's what I meant.
01:11:15 <fizzie> Arguably, it's no surprise capabilities haven't really conquered the world yet.
01:12:21 <ais523> if a capability-aware program A is trying to execute a capability-unaware program B with a particular capability set, AFAICT all it needs to do is to put the capability set into its own ambient set, with no changes to B needed
01:12:48 <fizzie> Well, it also needs to put the capability into its own inheritable set, but you might consider that a part of putting it into its own ambient set.
01:13:09 <fizzie> (If it wasn't there already, that is.)
01:13:17 <fizzie> (It won't be there already if it's coming from a file.)
01:13:18 <ais523> yes, that's part of ambient
01:13:50 <ais523> actually, what confuses me is that inheritable seems to be at all-0s for unprivileged processes
01:14:47 <ais523> this gives it a /really/ niche use; its only purpose is for a privileged program to call unprivileged helper programs in such a way that they can call file-inheritable programs in a privileged way
01:16:19 <ais523> I can't think of circumstances where that would be useful, and thus suspect that inheritable capabilites aren't currently used much
01:17:29 <fizzie> That's what I think too. https://lwn.net/Articles/636533/ calls them "broken". (The proposal for ambient capabilities.)
01:20:34 <ais523> I think a bounding set on fP (in that article's notation) is useful, but oddly neither pI nor X actually bound it
01:20:38 <ais523> I don't think anything can bound that
01:21:04 <ais523> other than NNP, obviously, which has to outrank /everything/ to be usable securely
01:34:53 -!- imode has joined.
01:41:24 <oerjan> ais523: did you see my last edit to TPIMI?
01:41:56 <ais523> oerjan: yes, I'm not sure you're right though
01:42:24 <ais523> when I have the time and mental energy, I'll write an interpreter and figure it out that way
01:44:20 -!- zzo38 has joined.
01:44:42 <imode> oerjan: tempted to take your advice and add Mode to the wiki.
01:44:47 <zzo38> How to run PHP5 on Raspberry Pi?
01:45:00 <imode> zzo38: is there a package in the raspbian repos?
01:45:30 <imode> sudo apt-get install apache2 php5 ?
01:45:45 <ais523> you shouldn't need apache to run PHP?
01:45:58 <ais523> only if you want to use it for CGI scripts
01:46:16 <ais523> I guess that's a common use, but my first thought was PHP as a standalone programming language rather than as part of a web server
01:46:18 <oerjan> ais523: well it seems obvious to me that the length 1 block representation needs to be the same length as the basic production sequence
01:46:32 <zzo38> I only want to run PHIRC, which is the IRC client I have. (My internet doesn't work, so I use this other computer instead, which has wireless internet.)
01:46:37 <imode> you shouldn't need apache, you can use anything else, however I'm under the assumption that-
01:46:39 <imode> nevermind.
01:46:46 <imode> you should just be able to install php5 then.
01:47:28 <zzo38> It says "package php5 has no installation candidate"
01:47:36 <imode> what distro are you running on the pi.
01:48:06 <ais523> zzo38: does it have to be PHP 5 specifically, or is a newer version OK?
01:48:36 <zzo38> I think many things will break with PHP 7, which is what it currently has
01:49:29 <zzo38> I suppose I can try to see if the program works, but it might not work
01:50:20 <ais523> the easiest way is probably to get a package for an old version of PHP from the Debian archives, see http://snapshot.debian.org/ for details
01:50:54 <imode> php5 should be a package in raspbian...
01:50:54 <ais523> although, it might not work with modern dependencies
01:51:06 <ais523> php5 is really old though
01:51:22 <ais523> it's probably dropped out of the archives by now
01:51:28 <imode> sure, but it's still a required package.
01:51:55 <ais523> it's possible that it has a minor version number in the archives
01:52:01 <oerjan> ais523: anyway, i cut and pasted into vim and rotated lines, and it seemed to fit that way.
01:52:24 <imode> zzo38: sudo apt-cache search php I guess.
01:52:29 <imode> you don't need the sudo iirc.
01:52:33 <ais523> nor the "-cache"
01:52:47 <imode> been a long time since I used debian. arch main.
01:53:09 <ais523> I think «apt show "php5*"» will be more useful
01:53:53 <zzo38> I tried that; it says virtual
01:53:56 <imode> huh, raspbian doesn't have a web-searchable package mirror.
01:53:58 <imode> that's lame.
01:54:09 <ais523> if they're all virtual it means that the package doesn't exist in the repositories any more
01:54:20 <ais523> so you'll need to find an old version of the package, perhaps from an old version of the repositories
01:54:26 <ais523> I think the assumption is that nobody would use php5 any more
01:54:42 <ais523> python 1 isn't in the repositories either
01:54:57 <imode> https://www.raspberryconnect.com/raspbian-packages/54-raspbian-php
01:55:07 <imode> how old _is_ php5.
01:55:34 <imode> oof, sec support in debian ended on new year's.
01:55:35 <zzo38> Is there a program for Raspberry Pi to download Usenet messages to be read later on another computer?
01:55:48 <ais523> 7.0 appears to be the oldest version available from there
01:55:49 <imode> still in jesse, though..
01:57:41 <ais523> 7.0 was released in 2015; 5.6 was the most current version before that (6 was abandoned)
01:58:22 <imode> why was 6 abandoned?
01:58:30 <ais523> 5.6 became unsupported at the end of 2018
01:58:31 <imode> (feels like there's a joke there...)
01:59:25 <ais523> apparently they started writing PHP 6 in 2008, and abandoned it in 2014 because it still wasn't finished by then
01:59:39 <imode> perl6 and php6.
01:59:40 <ais523> the main intended feature that they failed to implement for 6 was Unicode support
02:00:11 <ais523> perl 6 was finished though, it's just that it's sufficiently different from perl 5 that many people prefer the original (including me)
02:00:49 <ais523> and perl 6 eventually got renamed to reduce confusion, I think
02:01:03 <oerjan> it's raku now
02:01:27 * oerjan discovered the name change when he saw people editing that in his wikipedia watchlist
02:02:07 <fizzie> The original's still being actively developed, as well.
02:02:45 <zzo38> Yes, that can be a good idea, to call it something else, since it is something else. I think Inform7 should also be renamed because it is a different programming language from Inform
02:12:56 -!- imode has quit (Ping timeout: 240 seconds).
02:19:05 <zzo38> I am trying to compile SQLite and now there is a temperature icon in the corner of the screen
02:22:09 -!- zzo38 has quit (Read error: Connection reset by peer).
02:26:44 -!- kspalaiologos has quit (Ping timeout: 265 seconds).
02:27:45 -!- zzo38 has joined.
02:28:02 <zzo38> Well, it works even with PHP7, so I don't need PHP5. (I was told it wouldn't work with PHP5; they were wrong.)
02:31:46 -!- Frater_EST has quit (Read error: Connection reset by peer).
02:31:50 -!- ESol5 has joined.
02:33:46 <zzo38> Typing "nice gcc" and omitting "-O2" prevented it from crashing.
02:42:57 <zzo38> I also invented a new esolang.
02:45:32 <zzo38> It is like a subset of PostScript, although having a different syntax,
02:45:56 -!- Frater_EST has joined.
02:46:20 <zzo38> Perhaps later I will post on esolang wiki, but right now I won't, so that I do not have to occupy the TV set right now
02:46:22 -!- zzo38 has quit (Quit: zzo38).
02:47:10 -!- budonyc has quit (Quit: Leaving).
02:56:21 -!- imode has joined.
03:00:41 <pikhq> I take it zzo38 is trying to use a Pi as a daily driver?
03:02:25 <imode> more power to him, tbh. always wanted to try a pi as a driver, if only to find a laptop case to put it in.
03:02:57 <imode> with the raspi zero w or whatever, it's attractive. surprised a phone hasn't been made from it yet.
03:03:18 <imode> the gpi case is a step in the right direction, though: http://retroflag.com/GPi-CASE.html
03:13:16 <pikhq> It is a bit limited in some ways, but I'm pretty sure none of those limitations are a surprise to anyone
03:13:32 <pikhq> Especially with the cost
03:15:00 -!- Frater_EST has quit (Read error: Connection reset by peer).
03:15:16 -!- Frater_EST has joined.
03:16:30 <imode> tbh using it as a thin client to access your actual workstation would be a great idea.
03:16:37 <kmc> that's cute
03:17:01 <kmc> imode: what would be the point of making a phone out of a DIY board based on a years-old phone SoC?
03:17:07 <kmc> it's not even a particularly 'open' SoC
03:17:16 <kmc> it's just another broadcom whatever
03:18:30 <imode> kmc: it's cheap, I can buy it in bulk, and there's less I have to do to fix it. this is of course assuming there is a supply chain ready to hand you a "phone case" for a pi zero w.
03:19:05 <imode> if there's an alternative SBC out there that has the same kind of adoption I'm down, I just haven't encountered it.
03:21:15 <kmc> it's going to be less powerful than a 5 year old android phone and chunkier too
03:22:19 * imode shrugs.
03:22:37 <imode> power and chunkiness don't really concern me that much. I use a T430 thinkpad as my daily driver.
03:22:52 <imode> would like a phone that's built like a toughbook.
03:24:32 -!- Frater_EST has quit (Read error: Connection reset by peer).
03:34:05 -!- imode has quit (Ping timeout: 268 seconds).
03:35:10 -!- Frater_EST has joined.
03:53:49 -!- ESol5 has quit (Ping timeout: 268 seconds).
03:58:17 -!- oerjan has quit (Quit: Nite).
04:10:59 -!- imode has joined.
04:51:44 -!- Frater_EST has quit (Read error: Connection reset by peer).
05:12:06 -!- ais523 has quit (Quit: quit).
06:16:48 -!- imode has quit (Ping timeout: 265 seconds).
07:04:18 -!- Frater_EST has joined.
07:32:56 -!- Frater_EST has quit (Read error: Connection reset by peer).
07:34:37 -!- Frater_EST has joined.
07:52:27 -!- Frater_EST has quit (Read error: Connection reset by peer).
07:54:29 -!- Frater_EST has joined.
08:36:47 -!- b_jonas has quit (Remote host closed the connection).
08:45:16 -!- Frater_EST has left.
09:11:30 -!- xkapastel has joined.
09:11:48 -!- grumble has quit (Quit: God, you're more annoying than a creative voice mail message.).
09:16:59 -!- grumble has joined.
11:40:53 -!- arseniiv has joined.
11:51:17 -!- xkapastel has quit (Quit: Connection closed for inactivity).
12:40:29 -!- xkapastel has joined.
13:21:35 -!- kspalaiologos has joined.
13:30:07 -!- ArthurStrong has joined.
14:18:12 -!- Sgeo has quit (Ping timeout: 265 seconds).
14:19:02 -!- Sgeo has joined.
14:45:13 -!- ais523 has joined.
15:06:37 -!- Frater_EST has joined.
15:06:53 -!- ais523 has quit (Quit: sorry for my connection).
15:07:08 -!- ais523 has joined.
15:20:16 -!- Xatenev has joined.
15:21:17 -!- xkapastel has quit (Quit: Connection closed for inactivity).
15:22:34 -!- Frater_EST has quit (Read error: Connection reset by peer).
15:23:28 -!- Xatenev has left ("Leaving").
15:25:24 -!- Frater_EST has joined.
15:29:12 -!- Frater_EST has quit (Read error: Connection reset by peer).
15:29:48 -!- Frater_EST has joined.
15:33:38 -!- imode has joined.
16:09:36 -!- imode has quit (Ping timeout: 240 seconds).
16:23:40 -!- Frater_EST has quit (Read error: Connection reset by peer).
16:40:50 -!- imode has joined.
17:05:55 -!- imode has quit (Ping timeout: 265 seconds).
17:07:54 -!- xkapastel has joined.
17:39:42 -!- LKoen has joined.
17:40:19 -!- FreeFull has joined.
17:45:05 -!- Frater_EST has joined.
17:47:01 -!- Frater_EST has quit (Read error: Connection reset by peer).
17:56:11 -!- subleq has quit (Ping timeout: 268 seconds).
17:59:47 -!- kritixilithos has joined.
18:02:53 -!- subleq has joined.
18:03:46 -!- ais523 has quit (Quit: quit).
18:28:42 <esowiki> [[User:CMinusMinus]] https://esolangs.org/w/index.php?diff=67035&oldid=66944 * CMinusMinus * (+10)
18:29:10 <esowiki> [[Nine]] https://esolangs.org/w/index.php?diff=67036&oldid=67019 * CMinusMinus * (+9)
18:29:25 <esowiki> [[Nine]] https://esolangs.org/w/index.php?diff=67037&oldid=67036 * CMinusMinus * (+0) /* Fizz Buzz */
18:54:12 -!- laerling has joined.
19:04:24 -!- kritixilithos has quit (Quit: kritixilithos).
19:08:41 -!- imode has joined.
19:21:18 -!- xkapastel has quit (Quit: Connection closed for inactivity).
19:23:06 -!- arseniiv has quit (Quit: gone completely :o).
19:31:44 -!- imode has quit (Ping timeout: 276 seconds).
19:57:22 -!- LKoen has quit (Remote host closed the connection).
20:06:23 -!- LKoen has joined.
20:06:25 -!- imode has joined.
20:07:37 -!- kspalaiologos has quit (Quit: Leaving).
20:10:41 -!- LKoen has quit (Client Quit).
20:29:21 -!- nico_nico has joined.
20:53:30 -!- b_jonas has joined.
20:54:53 -!- arseniiv has joined.
20:57:30 -!- hppavilion[1] has joined.
20:57:37 <arseniiv> if I set UTF-8 encoding in a windows console, my C# program treats some inputs as if it was end of stream :o I blamed it on ConEmu first, but then I sorted it out and even fixed this behavior setting the encoding to “standard Windows unicode” UTF16-LE. Oooof, it was a nightmare. And it’s nonsense
21:00:28 <arseniiv> and if I don’t set it, it would be some ununicode encoding which can’t output my lovely ‘ and ’ quotes and which does mangle my lovely unicode filenames so the program thinks I gave it unexistent ones. Nightmare, and all for a program to replace a file retaining old file’s date attributes
21:01:02 <arseniiv> though thank gods it worked in the end
21:25:29 -!- imode has quit (Ping timeout: 276 seconds).
21:25:48 -!- Frater_EST has joined.
21:35:19 <arseniiv> Wolfram announced a prize on results regarding rule 30 :D the problems seem sensible? Here they are:
21:36:24 <arseniiv> Problem 1: Does the center column always remain non-periodic?
21:36:24 <arseniiv> Problem 2: Does each color of cell occur on average equally often in the center column?
21:36:24 <arseniiv> Problem 3: Does computing the n-th cell of the center column require at least O(n) computational effort?
21:36:25 <arseniiv> they all ask about the evolution of …000010000… where 1 is at the mentioned center column
21:36:55 <arseniiv> what do you think this will lead to?
21:37:34 <arseniiv> and how hard do you estimate these three?
21:38:06 <b_jonas> arseniiv: they're probably easier than Wolfram has money. did he pose a high enough prize?
21:39:30 <arseniiv> $30k (USD, I presume?), but I don’t see yet if it’s for each of them or for all of them combined
21:39:42 <arseniiv> b_jonas: ^
21:39:57 <arseniiv> the post is too long
21:40:56 -!- nico_nico has quit (Quit: Leaving).
21:43:16 <arseniiv> hm I don’t see it even on its official website
21:44:27 <arseniiv> it just says “$30,000 in prizes for 3 problems” and no more? I think that means it would be divided between them, evenly or not
21:44:37 -!- ArthurStrong has quit (Quit: leaving).
21:50:38 -!- hppavilion[1] has quit (Ping timeout: 246 seconds).
21:53:39 -!- arseniiv has quit (Ping timeout: 250 seconds).
22:28:50 <esowiki> [[Nine]] https://esolangs.org/w/index.php?diff=67038&oldid=67037 * JonoCode9374 * (+178) /* Examples */
22:29:04 <esowiki> [[Nine]] https://esolangs.org/w/index.php?diff=67039&oldid=67038 * JonoCode9374 * (-14) /* Swapping the Words "Good" and "Bad" */
22:34:19 -!- jguy has joined.
22:48:34 -!- jguy has quit (Remote host closed the connection).
22:59:23 -!- djhoulihan has joined.
2019-11-14
00:08:33 -!- oerjan has joined.
00:10:40 -!- Frater_EST has left.
00:12:30 -!- FreeFull has quit.
01:30:30 -!- ais523 has joined.
01:31:15 -!- ais523 has quit (Client Quit).
01:31:28 -!- ais523 has joined.
01:33:38 -!- ais523 has quit (Client Quit).
01:33:52 -!- ais523 has joined.
02:01:55 -!- ais523 has quit (Read error: Connection reset by peer).
02:02:29 -!- ais523 has joined.
02:07:50 -!- imode has joined.
02:49:11 -!- imode has quit (Ping timeout: 276 seconds).
03:19:07 -!- ais523 has quit (Quit: quit).
03:20:35 -!- Sgeo_ has joined.
03:22:59 -!- Sgeo has quit (Ping timeout: 276 seconds).
03:58:21 -!- imode has joined.
04:24:15 -!- oerjan has quit (Quit: Nite).
05:09:38 -!- Sgeo__ has joined.
05:12:51 -!- Sgeo_ has quit (Ping timeout: 252 seconds).
05:43:03 -!- xkapastel has joined.
05:49:14 -!- imode has quit (Ping timeout: 276 seconds).
06:52:53 -!- kritixilithos has joined.
06:53:36 -!- Sgeo_ has joined.
06:54:46 <kritixilithos> arseniiv: (re rule 30) it mentions that it is 10k per problem, so their total is 30k
06:56:33 -!- Sgeo__ has quit (Ping timeout: 245 seconds).
07:18:42 -!- kritixilithos has quit (Quit: kritixilithos).
07:30:19 -!- Frater_EST has joined.
08:39:16 -!- b_jonas has quit (Remote host closed the connection).
10:16:22 -!- arseniiv has joined.
10:21:38 -!- arseniiv has quit (Quit: gone completely :o).
10:21:50 -!- arseniiv has joined.
10:21:52 -!- arseniiv has quit (Client Quit).
10:29:11 -!- arseniiv has joined.
10:47:50 -!- atslash has quit (Read error: Connection reset by peer).
10:48:33 -!- atslash has joined.
11:35:57 -!- Frater_EST has quit (Read error: Connection reset by peer).
11:36:50 -!- sebbu has quit (Read error: Connection reset by peer).
11:37:11 -!- sebbu has joined.
11:56:19 -!- sebbu has quit (Quit: reboot).
12:45:03 <esowiki> [[User:YamTokTpaFa/sandbox3]] https://esolangs.org/w/index.php?diff=67040&oldid=67023 * YamTokTpaFa * (+760)
12:51:10 -!- atslash has quit (*.net *.split).
12:51:11 -!- sftp has quit (*.net *.split).
12:51:11 -!- tromp_ has quit (*.net *.split).
12:51:11 -!- GeekDude has quit (*.net *.split).
12:51:12 -!- iovoid has quit (*.net *.split).
12:51:12 -!- Bowserinator has quit (*.net *.split).
12:51:12 -!- shikhin has quit (*.net *.split).
12:51:13 -!- Lymia has quit (*.net *.split).
12:51:13 -!- ineiros has quit (*.net *.split).
12:51:13 -!- lf94 has quit (*.net *.split).
12:53:49 -!- atslash has joined.
12:53:49 -!- sftp has joined.
12:53:49 -!- tromp_ has joined.
12:53:49 -!- GeekDude has joined.
12:53:49 -!- iovoid has joined.
12:53:49 -!- Bowserinator has joined.
12:53:49 -!- shikhin has joined.
12:53:49 -!- Lymia has joined.
12:53:49 -!- ineiros has joined.
12:53:49 -!- lf94 has joined.
13:44:52 -!- xkapastel has quit (Quit: Connection closed for inactivity).
13:49:23 -!- kspalaiologos has joined.
13:50:42 <kspalaiologos> Hello
13:51:19 -!- kspalaiologos has quit (Quit: leaving).
14:16:25 -!- imode has joined.
14:19:21 <tswett[m]> Neural net quote of the day:
14:19:23 <tswett[m]> "The message wasn't exactly unexpected to Stanton because he reads my blog, Spicy Lady: Trapped in Wifeworld."
14:20:09 <myname> i like it
14:31:01 <fizzie> Sounds like an esolang title, but probably just because of Real Fast Nora's Hair Salon.
14:32:49 <fizzie> I realized pretty late that the original inspiration was probably "Real Fast (Nora's Hair Salon 3: Shear Disaster) Download", not "((Real Fast Nora)'s Hair Salon 3: Shear Disaster) Download".
14:34:29 <myname> yeah, but this disambiguity is missing in "Spicy Lady: Trapped in Wifeworld"
14:34:39 <myname> so i would consider it a worse name
14:35:08 <FireFly> fizzie: huh, I.. didn't realise til now
14:35:18 <FireFly> I prefer the former interpretation still
14:35:19 <fizzie> I'm glad I wasn't the only one.
14:35:26 <fizzie> Yes, it's always going to be Real Fast Nora to me.
14:35:27 <FireFly> er
14:35:32 <FireFly> the latter*
14:35:37 <kingoffrance> i guess its the feminist version of leisure suit larry
14:36:38 <kingoffrance> the non-laugter is because you know that is totally possible
14:40:03 <myname> did anybody ever watch nora's hair salon 3?
14:40:09 <myname> i am always intrigued
14:41:10 <imode> just did a quick search on it. I don't think _anybody_ watched these movies.
14:44:06 <myname> if there is ever a "bigger" esolang meeting, I demand watching that
14:44:10 <fizzie> Well, 44 IMDb users have given it a rating.
14:44:29 <fizzie> No reviews, though.
14:44:50 <myname> also, I initially read it as (Real Fast Nora)'s Hair Salon 3: (Shear Disaster Download)
14:45:13 <myname> which i find funnier than your second reading
14:45:19 <myname> and more obvious tbh
14:51:06 -!- wib_jonas has joined.
14:51:35 <wib_jonas> fizzie: the esolangs.org logs don't load again, with 504 Gateway timeout. just in case you want to debug this.
14:54:42 -!- arseniiv_ has joined.
14:56:50 -!- arseniiv has quit (Ping timeout: 246 seconds).
15:00:11 <fizzie> Hmm.
15:00:59 <fizzie> I wonder what's up with that.
15:02:21 <fizzie> The listening socket has 40 connections pending, if I'm parsing netstat -nlp right, and it got incremented by 1 when I did a reload.
15:03:00 <fizzie> So I guess it most likely means the process is stuck blocking on something, and not running the main event loop / accepting connections.
15:03:43 <wib_jonas> ooh! attach a debugger to it!
15:04:10 <fizzie> I will, I just think it might not be a debug-enabled build.
15:04:35 <fizzie> I guess it'll show if it's currently in the middle of a system call, at least.
15:04:36 <wib_jonas> also, try blowing into the network cable to clean the packets stuck in it
15:04:52 <fizzie> I think there was some way of asking the kernel what the process is doing as well?
15:04:58 <fizzie> (It's state: sleeping.)
15:05:11 <wib_jonas> yes, ps can tell taht
15:05:21 <wib_jonas> reads it from /proc
15:05:37 <wib_jonas> https://www.xkcd.com/1395/
15:06:18 <fizzie> Well, it's in poll.
15:06:22 <fizzie> Not super helpful.
15:06:29 <fizzie> Let's poke it with a debugger.
15:06:57 <fizzie> Well, it's got symbols, which is good.
15:07:00 <wib_jonas> maybe it already has too many connections that it's trying to handle, which is why it doesn't accept new ones
15:07:06 <esowiki> [[Special:Log/newusers]] create * SergeJohanns * New user account
15:07:42 <fizzie> Stack trace is main > event::Loop::Poll() > poll. But maybe some of the variables in the upper frame can help.
15:08:11 <wib_jonas> what server is this? does it serve only the logs?
15:08:21 <fizzie> Oh, just function names.
15:08:27 <wib_jonas> is it a custom server that you wrote?
15:08:28 <fizzie> "No symbol table info available."
15:08:39 <fizzie> Yes, it's a custom server, and it serves only the logs/ endpoint.
15:08:56 <wib_jonas> oh, that's even better. now you have to reproduce the exact build to get debug info separately
15:09:28 <fizzie> I think I'll just restart it for now, and later upload a proper debuggable binary and wait for it to get wedged again.
15:09:51 <wib_jonas> ok
15:10:00 <wib_jonas> that sounds like a less esoteric but better plan
15:10:03 <fizzie> Well, it's back up.
15:10:18 <wib_jonas> you could also add some logging statements into it
15:10:29 <fizzie> ...one thing I could've done, but didn't, was to check what file descriptors it had open.
15:10:40 <fizzie> Too late now, though.
15:11:22 <esowiki> [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=67041&oldid=67016 * SergeJohanns * (+263) /* Introductions */
15:12:07 <wib_jonas> still doesn't load. I think it has some problem with the latest html page https://esolangs.org/logs/2019-11-14.html
15:12:23 <fizzie> Ooh, well, that's good.
15:12:30 <fizzie> Because it means the breakage will be reproducilbe.
15:12:34 <fizzie> Cilbe.
15:12:35 <fizzie> Cible.
15:12:43 <wib_jonas> hopefully
15:12:44 <fizzie> Well, s/will/may/
15:12:53 <wib_jonas> but yes
15:13:45 <fizzie> Hm, well, it rendered that link for me now (that I restarted it again).
15:14:06 <fizzie> Maybe I should look at the nginx request log too.
15:14:17 <wib_jonas> yes, it does render it now
15:15:05 -!- imode has quit (Ping timeout: 265 seconds).
15:16:12 <fizzie> Something called "The Knowledge AI" (by User-Agent) appears to be crawling the logs at the moment.
15:16:40 <fizzie> I hope it'll learn many useful things from them.
15:17:37 <wib_jonas> fizzie: do the other parts of its request tell anything useful?
15:17:59 <wib_jonas> when I crawl a site, I put my email address into part of the user-agent
15:18:10 <wib_jonas> well, usually. not always.
15:20:58 <fizzie> Not really. The IP was from a Hurricane Electric block, no contact details or links in User-Agent.
15:22:42 <fizzie> As for the /logs endpoint, it's been up and down sporadically, but not with an obvious pattern: https://zem.fi/tmp/down.png
15:28:46 -!- wib_jonas has quit (Remote host closed the connection).
15:38:34 -!- atslash has quit (Read error: Connection reset by peer).
15:38:46 -!- atslash has joined.
16:11:54 -!- kspalaiologos has joined.
16:12:04 <kspalaiologos> `` labels
16:12:06 <HackEso> ​/hackenv/bin/`: line 5: labels: command not found
16:12:14 <kspalaiologos> `` labels.pl
16:12:16 <HackEso> ​/hackenv/bin/`: line 5: labels.pl: command not found
16:12:21 <kspalaiologos> o'rly?
16:12:28 <kspalaiologos> `` ls
16:12:29 <HackEso> banana.txt \ bin \ canary \ emoticons \ esobible \ etc \ evil \ f \ factor \ good \ hw \ ibin \ interps \ karma \ le \ lib \ misle \ paste \ ply-3.8 \ quines \ quinor \ quotes \ share \ src \ stuff.b \ tmflry \ tmp \ wisdom
16:12:34 <kspalaiologos> `` ls tmp
16:12:35 <HackEso> a.c \ a.out \ as-encoding \ asmbf-1.1.1 \ banana.txt \ compiled_brachylog.pl \ hexdump.hex \ input.brachylog \ jeval.whatis \ just \ out \ OUT \ out.a \ out.a.hd \ out.a.xxd \ paste \ single-word-character-names \ spline \ spout \ spout.raw \ test.b \ test.sh \ tmp.txt \ v1.1.1.tar.gz
16:12:51 <kspalaiologos> `` ls tmp/asmbf-1.1.1
16:12:52 <HackEso> AUTHORS \ bconv.c \ bfasm.asm \ bfasm.b \ bfasm.c \ bfasm.rs \ bfi.c \ bfintd.c \ bfmake \ bfpp \ bin \ doc \ examples \ INSTALL \ labels.pl \ LICENSE \ Makefile \ NEWS \ README \ strip.pl \ test \ test.pl \ TODO \ VERSIONING
16:13:07 <kspalaiologos> `` cp /hackenv/bin/ tmp/asmbf-1.1.1/labels.pl
16:13:07 <HackEso> cp: -r not specified; omitting directory '/hackenv/bin/'
16:13:18 <kspalaiologos> `` cp tmp/asmbf-1.1.1/labels.pl /hackenv/bin
16:13:20 <HackEso> No output.
16:13:25 <kspalaiologos> `` labels.pl
16:13:26 <HackEso> ​/hackenv/bin/`: line 5: /hackenv/bin/labels.pl: Permission denied
16:13:37 <kspalaiologos> `` chmod a+x /hackenv/bin/labels.pl
16:13:39 <HackEso> No output.
16:13:41 <kspalaiologos> `` labels.pl
16:13:52 <kspalaiologos> `?
16:13:52 <HackEso> ​? ¯\(°​_o)/¯
16:13:54 <kspalaiologos> `? wisdom
16:13:55 <HackEso> wisdom is always factually accurate, except for this entry, and, uh, that other one? It started with, like, an ø?
16:14:11 <HackEso> No output.
16:14:29 <kspalaiologos> wait a second
16:14:45 <kspalaiologos> how it goes to add a wisdom entry
16:14:47 <kspalaiologos> `` ls wisdom
16:14:48 <HackEso> As the wisdom directory contains many files named after nicks, listing it in public annoys people. Try listing it in private instead.
16:16:28 <kspalaiologos> nvm did it manually
16:18:07 <fizzie> Lo, there are many planets in the archipelago of worlds, as there are of ways to add wisdoms.
16:19:02 <fizzie> Also I really should've archived that webcomic while it still existed, I think it's gone now. *sad*
16:22:25 <fizzie> The standard tools are learn and le//rn, I believe.
16:22:27 <fizzie> `? learn
16:22:29 <HackEso> ​`learn creates a wisdom entry and tries to guess which word is the key. Syntax (case insensitive): `learn [a|an|the] <keyword>[s][punctuation] [...]
16:22:30 <fizzie> `? le//rn
16:22:31 <HackEso> le/rn makes creating wisdom entries manually a thing of the past. Usage: `le/[/]rn <key>//<wisdom>
16:24:38 <fizzie> Hm, if we were building HackEso from scratch, I would probably make the current directory a non-version-controlled one. It's far too easy to end up with permanent history of ephemeral stuff.
16:24:51 <fizzie> `` rm banana.txt stuff.b
16:24:52 <HackEso> No output.
16:25:29 <fizzie> (I suspect switching the default working directory from /hackenv to /hackenv/tmp would break too many things.)
16:40:58 <kspalaiologos> there should be a HackEso FAQ
16:40:59 <kspalaiologos> or manual
16:41:08 <kspalaiologos> with the basic stuff enlisted
16:55:36 -!- kritixilithos has joined.
16:55:51 -!- nico_nico has joined.
17:01:25 -!- sebbu has joined.
17:07:10 <esowiki> [[BrainCurry]] N https://esolangs.org/w/index.php?oldid=67042 * SergeJohanns * (+6955) Initial BrainCurry page
17:07:32 -!- nico_nico has quit (Quit: Leaving).
17:15:36 <esowiki> [[Language list]] M https://esolangs.org/w/index.php?diff=67043&oldid=67031 * SergeJohanns * (+17) Added BrainCurry
17:23:31 <kspalaiologos> oh god damn it man
17:23:33 <kspalaiologos> functional brainfuck
17:27:40 <fizzie> Yes, there should probably be a manual.
17:42:15 <esowiki> [[BrainCurry]] https://esolangs.org/w/index.php?diff=67044&oldid=67042 * SergeJohanns * (+2) /* Computational class */
17:53:33 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=67045&oldid=67043 * CMinusMinus * (+10) /* P */
17:53:56 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=67046&oldid=67045 * CMinusMinus * (+0) /* P */
17:54:41 -!- ArthurStrong has joined.
17:55:32 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=67047&oldid=67046 * CMinusMinus * (+11) /* N */
17:55:56 -!- atslash has quit (Ping timeout: 240 seconds).
18:06:25 -!- Frater_EST has joined.
18:15:29 -!- atslash has joined.
18:21:07 -!- tswett[m] has quit (Remote host closed the connection).
18:21:21 -!- wmww has quit (Read error: Connection reset by peer).
18:21:21 -!- ddmm_ has quit (Remote host closed the connection).
18:45:19 -!- FreeFull has joined.
18:52:56 -!- kritixilithos has quit (Quit: kritixilithos).
19:12:37 -!- Frater_EST has quit (Read error: Connection reset by peer).
19:14:45 -!- Frater_EST has joined.
19:40:17 -!- hppavilion[1] has joined.
19:47:17 -!- Frater_EST has quit (Read error: Connection reset by peer).
19:49:26 -!- Frater_EST has joined.
20:39:41 -!- b_jonas has joined.
20:42:01 <b_jonas> kspalaiologos: re HackEso manual, try the whatis database, which lists HackEso commands together with a short summary about what they do
20:42:18 <kspalaiologos> ``whatis
20:42:18 <HackEso> ​/srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: `whatis: not found
20:42:22 <kspalaiologos> `? whatis
20:42:23 <HackEso> whatis? ¯\(°​_o)/¯
20:42:28 <kspalaiologos> nope
20:42:33 <kspalaiologos> ``` whatis
20:42:34 <HackEso> whatis what?
20:46:13 <b_jonas> `whatis w
20:46:14 <HackEso> w(1) - Show who is logged on and what they are doing. \ w(1hackeso) - print random wisdom matching a string
20:46:20 <b_jonas> `whatis !
20:46:21 <HackEso> ​!: nothing appropriate.
20:46:27 <b_jonas> huh
20:46:36 <b_jonas> `whatis doag
20:46:37 <HackEso> doag(1hackeso) - query hackenv version control log, with dates
20:46:42 <b_jonas> why isn't there a ! entry?
20:47:07 <b_jonas> `whatis recipe
20:47:08 <HackEso> recipe(1hackeso) - print snippet from cookbook
20:47:08 <b_jonas> `recipe
20:47:09 <HackEso> ​ 2 tb Freshly ground black pepper \ -(10 oz) orange juice \ 1 ts Cornstarch \ 1/2 ts Cayenne pepper \ 1/2 ts Pepper \ 3 tb Granulated sugar \ 2 c Canned peaches, drained \ - minced \ 2 ts Baking soda \ 8 oz Green onions \ \ Combine flour and butter or cooking spray. Topped: Cook beef and peppers. \ Cool completely. \ \ Preheat oven to 375F. To cool completely onto prepared cheesecloth. Cover and simmer for 30 minutes, until
20:47:12 <b_jonas> `whatis sport
20:47:13 <HackEso> sport(1hackeso) - wrap text to irc lines
20:49:42 <b_jonas> kspalaiologos: the wisdome has more detailed help about some commands
20:50:10 <b_jonas> `? hoag
20:50:15 <HackEso> ​`[hd]o[aw][gt] [<filename>] is a set of commands for querying HackEgo hg logs. `hoag is the basic version. d adds revision numbers and dates, w looks only in wisdom, and t lists oldest first.
20:50:16 <kspalaiologos> well
20:50:17 <kspalaiologos> its fine
20:50:39 <b_jonas> ``` perl -ne '/^([^(]+)\([18]hackeso\) - (?!no description)/ and print "$1 "' share/whatis | sport
20:50:40 <HackEso> 1/2:fetch run revert help " ' 1 2 4 5 5w ? ReLcOmE WELCOME WeLcOmE ` `` aglist allquotes bardsworthlist benvenuto bienvenido bienvenue bobadventureslist calesyta2016list card-by-name coins ctof culprits cwlprits datei dateu doag doat don'taskdon'ttelllist dontaskdonttelllist dowg dowt edit ehlist elcome emoclew forget fromroman grwp hello hi hoag hoat howg howt hurl hwrl ioccclist keenlist
20:50:43 <b_jonas> `n
20:50:43 <HackEso> 2/2: learn learn_append list makelist makelistlist mkx n nooodl: olist paste pbflist ping pom prefixes q quine quote quotes random-card recipe relcome rot13 slashlearn slbd sled slwd smlist source spam spore sport starwars tervetuloa thanks toroman undo url velcome velkomin velkommen välkommen w wElCoMe wdit welcome welkom whoami wiki willkommen wisdom words xkcdwhatiflist beat
20:50:46 <b_jonas> `n
20:50:47 <HackEso> 1/2:fetch run revert help " ' 1 2 4 5 5w ? ReLcOmE WELCOME WeLcOmE ` `` aglist allquotes bardsworthlist benvenuto bienvenido bienvenue bobadventureslist calesyta2016list card-by-name coins ctof culprits cwlprits datei dateu doag doat don'taskdon'ttelllist dontaskdonttelllist dowg dowt edit ehlist elcome emoclew forget fromroman grwp hello hi hoag hoat howg howt hurl hwrl ioccclist keenlist
20:50:56 <b_jonas> ^ those are some of the more important commands
20:51:11 <b_jonas> I have to add an entry for \! though, I don't know why there isn't one
20:52:19 -!- kspalaiologos has quit (Quit: Leaving).
20:53:22 <b_jonas> fizzie: switching the working directory to tmp => yes, in particular bin/? looks for the wisdom database at a relative path in wisdom
20:53:28 <b_jonas> ``` ? fizzie
20:53:28 <HackEso> try: `f command filename
20:53:31 <b_jonas> ``` \? fizzie
20:53:32 <HackEso> fizzie is not fnord with a monad but the king of #esoteric, see https://zem.fi/static/img/square_fizzie_320px_white.jpg
20:53:35 <b_jonas> ``` cd tmp; \? fizzie
20:53:36 <HackEso> ​/hackenv/bin/?: line 5: cd: wisdom: No such file or directory \ fizzie? ¯\(°​_o)/¯
20:55:36 <b_jonas> that is probably a bug, it should look relative to $HOME, which the shell helps you to do with the tilde shortcut
20:59:44 <b_jonas> I wonder if learn does that too
21:20:37 <fizzie> Well, actually.
21:20:38 <fizzie> `` echo $HOME
21:20:39 <HackEso> ​/tmp
21:21:04 <fizzie> `` echo $HACKENV
21:21:05 <HackEso> ​/hackenv
21:21:22 <fizzie> Everything *could* be relative to $HACKENV, but...
21:31:21 <b_jonas> oh
21:31:30 <b_jonas> right, I forgot that
21:35:09 <b_jonas> fizzie: so would it be ok if I changed bin/\? and some other commands where it makes sense to not use relative path?
21:36:25 <b_jonas> oh right, I should change the commands that I created first
21:36:26 <b_jonas> ``` cat bin/recipe
21:36:27 <HackEso> ​#!/bin/sh \ exec perl -e 'local$/=\999;seek STDIN,rand((-s STDIN)-299),0 or die;print<STDIN>=~y/ \t/ /sr;' < share/recipe/recipes.txt
21:36:29 <b_jonas> like that one
21:37:02 <b_jonas> the good thing is, we probably don't have to change le//rn
21:38:05 <b_jonas> I probably don't dare to change bin/list , even though I know it looks at the logs of a different file, not of the executable itself
21:38:31 <b_jonas> but bin/\? and bin/learn can change
21:38:41 <b_jonas> anyway, changing the commands that I created first
21:40:46 <b_jonas> ``` set -e; cd tmp; recipe
21:40:47 <HackEso> he bay the potatoes, and bran in bowl. Cook, then \ stiring well. Add beans in a weight keeps to set aside. Cover fryer \ and serve on beef and serve with an electric tarting delicate such as possible \ and pecans agone all the salads are soft. varinated by the cold \ and refrigerate until the boiling and boils a patty are lightly browned. \ \ TO: TOPPING: 26 minutes or until the cooking with oil. Using a 275\F8F oven about 1 \ hour.)
21:40:50 <b_jonas> fixed that one
21:43:24 <b_jonas> ``` set -e; cd tmp; random-card
21:43:25 <HackEso> No such file or directory at -e line 1.
21:43:38 <b_jonas> ``` set -e; cd tmp; random-card
21:43:39 <HackEso> Unknown regexp modifier "/h" at -e line 1, within string \ Unknown regexp modifier "/r" at -e line 1, within string \ Unknown regexp modifier "/e" at -e line 1, within string \ Missing right curly or square bracket at -e line 1, within string \ syntax error at -e line 1, at EOF \ Execution of -e aborted due to compilation errors.
21:43:42 <b_jonas> uh
21:44:22 <b_jonas> oh right
21:45:39 <fizzie> I have no objections about robustifying any of the commands.
21:45:58 <fizzie> Also, I would hope that nobody's relying on HackEso for mission-critical services. It has no SLO or SLA.
21:45:59 <b_jonas> ``` set -e; cd tmp; random-card
21:46:00 <HackEso> Huntmaster of the Fells \ 2RG \ Creature -- Human Werewolf \ 2/2 \ Whenever this creature enters the battlefield or transforms into Huntmaster of the Fells, create a 2/2 green Wolf creature token and you gain 2 life. \ At the beginning of each upkeep, if no spells were cast last turn, transform Huntmaster of the Fells. \ [Front face. Transforms into Ravager of the Fells.] \ DKA-M, V17-M
21:46:16 <b_jonas> `? warranty
21:46:17 <HackEso> HACKE[GS]O COMES WITHOUT WARRANTY, EXPRESS OR IMPLIED, AND IS UNFIT FOR ANY PURPOSE, INCLUDING THE PURPOSE OF BEING UNFIT FOR ANYTHING. Its warranty has expired.
21:48:35 <b_jonas> I knew that bin/\? uses relative path because that actually caused me problems when I wrote some command to search for certain wisdoms
21:49:22 <b_jonas> ``` set -e; cd tmp; scheme # I have to fix this too
21:49:23 <HackEso> Can't open share/mtg/allsets.txt: No such file or directory.
21:52:29 <b_jonas> ``` set -e; cd tmp; scheme
21:52:29 <HackEso> All in Good Time
22:36:22 -!- kspalaiologos has joined.
22:36:52 <b_jonas> hi kspalaiologos
23:00:29 <b_jonas> `random-card bola
23:00:30 <HackEso> In Bolas's Clutches \ 4UU \ Legendary Enchantment -- Aura \ Enchant permanent \ You control enchanted permanent. \ Enchanted permanent is legendary. \ DOM-U
23:00:35 <b_jonas> `random-card bola
23:00:36 <HackEso> Slave of Bolas \ 3(u/r)B \ Sorcery \ Gain control of target creature. Untap that creature. It gains haste until end of turn. Sacrifice it at the beginning of the next end step. \ ARB-U, E01-U, DDH-U
23:05:22 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
23:09:53 -!- hppavilion[1] has joined.
23:12:23 -!- arseniiv_ has quit (Read error: Connection reset by peer).
23:12:41 -!- arseniiv_ has joined.
23:33:38 -!- hppavilion[1] has quit (Ping timeout: 245 seconds).
2019-11-15
00:08:51 -!- tswett has joined.
00:09:11 <tswett> Yo.
00:09:22 <tswett> So riot.im is being weird.
00:10:37 -!- arseniiv_ has quit (Ping timeout: 252 seconds).
00:12:19 <tswett> So, I'm playing with Attempto Controlled English, which is (mostly) a syntax for first-order logic.
00:12:58 <tswett> There's an ACE theorem prover here: http://attempto.ifi.uzh.ch/race/
00:13:28 <tswett> I've found that it's able to prove a certain rather interesting theorem.
00:13:48 <tswett> Axioms: David is a person. If there is a person A then exactly one person is a mother of the person A.
00:14:02 <tswett> Theorem (apparently): Every person is a mother of David.
00:15:25 <tswett> Corollary: David is a mother of David.
00:16:45 <tswett> I'm trying to figure out how it managed to conclude that...
00:18:52 <b_jonas> tswett: can it also prove that every person is David?
00:19:51 <tswett> b_jonas: Hmmm, yes, it can.
00:20:08 -!- FreeFull has quit.
00:20:56 <b_jonas> tswett: can it still prove that if you only take the first axiom?
00:21:28 <tswett> b_jonas: No.
00:21:46 <b_jonas> tswett: how about if you take the first axiom, and the second axiom but replace "A" with "X" case sensitively
00:22:14 <b_jonas> (as in, maybe it confuses "a" with "A" which is why it misunderstands something)
00:22:30 <tswett> It still proves that every person is David.
00:22:55 <tswett> So now I have—
00:23:05 <b_jonas> Do you have the source code for the prover?
00:23:21 <tswett> Axioms: David is a person. If there is a person X then exactly one person is a mother of the person X. Theorem: Every person is David.
00:23:21 <b_jonas> Can it prove a contradiction from those axioms?
00:23:50 <tswett> It says the axioms are consistent.
00:24:37 <b_jonas> Can you formalize the theorem prover into that lanuage, and if so, can it prove the formal version of "the ACE theorem prover cannot prove this statement"?
00:24:50 <tswett> Oof.
00:25:00 <b_jonas> Sorry.
00:25:05 <b_jonas> That wasn't a serious question.
00:25:05 <tswett> :D
00:25:19 <b_jonas> Anyway, does this theorem prover output proofs?
00:25:40 <tswett> No, only minimal subsets of axioms required to prove the theorem.
00:26:44 <b_jonas> tswett: are you sure that that second axiom has a quantifier over X?
00:27:38 <shachaf> Am I David?
00:29:25 <tswett> b_jonas: It definitely interprets X as a bound variable.
00:29:38 <tswett> In both positions.
00:29:40 -!- oerjan has joined.
00:30:17 <tswett> Ahøyrjan.
00:30:55 <tswett> The axioms don't prove "Everything is David." but they do prove "Everyone is David."
00:32:16 <tswett> They also prove "Every house is a person," and, of course, "Every house is David."
00:32:17 <oerjan> tswellot. sounds like sound axioms.
00:35:41 <tswett> Also, "Someone is everything."
00:36:02 <oerjan> pantheism built in
00:36:24 <tswett> (Meaning, "There exists someone A such that for all B, A = B.")
00:47:31 <tswett> Hmmmm. I think it's doing something weird with proper names.
00:47:42 <tswett> Axioms: David is a person. Brian is a cat.
00:47:47 <tswett> Theorem: David is a cat.
00:57:25 <tswett> Sole axiom: David is a person and a person is David.
00:57:31 <tswett> Theorem: Every house is a person.
00:59:54 * kmc waves to tswett
01:00:08 <tswett> Yo. \o
01:02:48 <tswett> Sole axiom: David is a person and Brian is a person. Theorem: Every house is David.
01:06:56 <tswett> Hmmmm. Apparently that follows by "transitivity of comparative adjectives."
01:08:00 <tswett> That's what it says when I tell it to show its reasoning.
01:10:10 -!- ArthurStrong has quit (Quit: leaving).
01:11:08 -!- ^[ has quit (Ping timeout: 252 seconds).
01:11:59 <oerjan> `? labels.pl
01:12:01 <HackEso> Preprocessor for asm2bf to support labels. Use % to refer to a label, use @ to declare one.
01:12:14 -!- dog_star has quit (Ping timeout: 252 seconds).
01:12:14 -!- lynn has quit (Ping timeout: 252 seconds).
01:12:14 -!- j4cbo has quit (Ping timeout: 252 seconds).
01:12:24 -!- dog_star has joined.
01:12:39 <oerjan> `slwd labels.pl//s,P,labels.pl is a p,
01:12:41 <HackEso> labels.pl//labels.pl is a preprocessor for asm2bf to support labels. Use % to refer to a label, use @ to declare one.
01:13:07 <oerjan> `? rules of wisdom
01:13:08 <HackEso> unless essential for the entry‘s humor, they should: be understandable without the lookup key, be single spaced and end in a newline with no space before that, and use proper capitalization and punctuation
01:13:17 -!- lynn has joined.
01:13:18 -!- j4cbo has joined.
01:13:27 -!- ^[ has joined.
01:13:36 <shachaf> `slwd rules of wisdom//s/:/ be:/
01:14:56 <oerjan> if you do that you have to add proper grammar to the list hth
01:15:54 <shachaf> or consistency
01:17:52 <oerjan> `` echo $IRC_CHANNEL
01:17:53 <HackEso> No output.
01:18:29 <oerjan> `` echo $IRC_TARGET
01:18:29 <HackEso> ​#esoteric
01:20:48 -!- tswett has quit (Remote host closed the connection).
01:25:54 <oerjan> `sled bin/ls//s,;, && "$IRC_TARGET" == #*;/
01:25:55 <HackEso> ​/bin/sed: -e expression #1, char 29: unterminated `s' command
01:26:05 <oerjan> `sled bin/ls//s,;, && "$IRC_TARGET" == #*;,
01:26:09 <HackEso> bin/ls//#!/bin/bash \ if /bin/ls -id "$@" 2>/dev/null | grep -q ^"$(/bin/ls -id /hackenv/wisdom | cut -d\ -f 1)" ;; "$IRC_TARGET" == #*; then echo 'As the wisdom directory contains many files named after nicks, listing it in public annoys people. Try listing it in private instead.'; else exec -a ls /bin/ls "$@"; fi
01:26:15 <oerjan> oops
01:26:20 <oerjan> `revert
01:26:21 <HackEso> Done.
01:26:55 <oerjan> `sled bin/ls//s,;,\&\& "$IRC_TARGET" == #*;,
01:26:56 <HackEso> bin/ls//#!/bin/bash \ if /bin/ls -id "$@" 2>/dev/null | grep -q ^"$(/bin/ls -id /hackenv/wisdom | cut -d\ -f 1)" && "$IRC_TARGET" == #*; then echo 'As the wisdom directory contains many files named after nicks, listing it in public annoys people. Try listing it in private instead.'; else exec -a ls /bin/ls "$@"; fi
01:27:08 <oerjan> `ls wisdom
01:27:09 <HackEso> ​/hackenv/bin/ls: line 3: syntax error: unexpected end of file
01:27:27 <oerjan> argh
01:27:31 <oerjan> `revert
01:27:32 <HackEso> Done.
01:27:38 <oerjan> `sled bin/ls//s,;,\&\& "$IRC_TARGET" == #* ;,
01:27:39 <HackEso> bin/ls//#!/bin/bash \ if /bin/ls -id "$@" 2>/dev/null | grep -q ^"$(/bin/ls -id /hackenv/wisdom | cut -d\ -f 1)" && "$IRC_TARGET" == #* ; then echo 'As the wisdom directory contains many files named after nicks, listing it in public annoys people. Try listing it in private instead.'; else exec -a ls /bin/ls "$@"; fi
01:27:44 <oerjan> `ls wisdom
01:27:45 <HackEso> ​/hackenv/bin/ls: line 3: syntax error: unexpected end of file
01:28:01 <oerjan> ok i'm not doing something right. oh.
01:28:17 <oerjan> `revert
01:28:18 <HackEso> Done.
01:28:36 <oerjan> `sled bin/ls//s,;,\&\& "$IRC_TARGET" == \\#* ;,
01:28:38 <HackEso> bin/ls//#!/bin/bash \ if /bin/ls -id "$@" 2>/dev/null | grep -q ^"$(/bin/ls -id /hackenv/wisdom | cut -d\ -f 1)" && "$IRC_TARGET" == \#* ; then echo 'As the wisdom directory contains many files named after nicks, listing it in public annoys people. Try listing it in private instead.'; else exec -a ls /bin/ls "$@"; fi
01:28:42 <oerjan> `ls wisdom
01:28:43 <HackEso> ​/hackenv/bin/ls: line 2: #esoteric: command not found \ ` \ `! \ `? \ `? `? \ `# \ ^ \ \ _̰̆̓_̦̻̖͍̟̖̅ͭͭͬ͡_͉̭ͧ͒̐_̯͙̬̬̦̯͂͋͒ͧ͋̋_̴̝̔̉̅ͨ͞ \ ¯\_(ツ)_ \ ! \ ? \ ?? \ ¿ \ @ \ * \ \ \ ꙮ \ ☆ \ ☃ \ ⌨ \   \ ⊥ \ ☾_ \ 🐚 \ 𝕈 \ 🐐 \ ᛁᚿ \ ̸̸̼͚͇̮͕̳̞̤̜̯̪̪̱̣̠̺̹͍̩̝͚͕͓͚̙͓̪̮̟̜̣͙̪̂ͭ̎̏̔ͦ͒ͪ͌̾ͦͨ̚̚͢͢͠ͅ҉̴̢_͙̣͎̿̊ͣ̉ͣͪ͒̓̐͊̏ͫ̓̚̚
01:28:49 <oerjan> darn
01:28:59 <oerjan> oops
01:29:28 <oerjan> `revert
01:29:29 <HackEso> Done.
01:29:57 <oerjan> `sled bin/ls//s,;,\&\& [[ "$IRC_TARGET" == \\#* ]];,
01:29:58 <HackEso> bin/ls//#!/bin/bash \ if /bin/ls -id "$@" 2>/dev/null | grep -q ^"$(/bin/ls -id /hackenv/wisdom | cut -d\ -f 1)" && [[ "$IRC_TARGET" == \#* ]]; then echo 'As the wisdom directory contains many files named after nicks, listing it in public annoys people. Try listing it in private instead.'; else exec -a ls /bin/ls "$@"; fi
01:30:08 <oerjan> `ls wisdom
01:30:11 <HackEso> As the wisdom directory contains many files named after nicks, listing it in public annoys people. Try listing it in private instead.
01:30:14 <oerjan> whee
01:31:19 <oerjan> no visible nicks, of course.
01:32:00 <oerjan> although much unicode to annoy people. maybe the explanation needs changing.
02:13:10 -!- atslash has quit (Quit: This computer has gone to sleep).
03:13:32 -!- Melvar has quit (Quit: WeeChat 2.4).
03:23:25 -!- Melvar has joined.
03:23:38 -!- Frater_EST has quit (Remote host closed the connection).
03:37:44 -!- imode has joined.
04:04:44 -!- imode has quit (Quit: WeeChat 2.6).
04:05:28 -!- imode has joined.
04:23:37 -!- kspalaiologos has quit (Ping timeout: 250 seconds).
04:38:34 -!- oerjan has quit (Quit: Nite).
04:41:06 -!- Sgeo__ has joined.
04:44:40 -!- Sgeo_ has quit (Ping timeout: 265 seconds).
05:58:13 -!- imode has quit (Ping timeout: 268 seconds).
06:27:44 -!- sebbu2 has joined.
06:29:32 -!- atriq has joined.
06:37:30 -!- Melvar has quit (*.net *.split).
06:37:30 -!- sebbu has quit (*.net *.split).
06:37:30 -!- grumble has quit (*.net *.split).
06:37:31 -!- Taneb has quit (*.net *.split).
06:37:31 -!- Vorpal has quit (*.net *.split).
06:37:31 -!- clog has quit (*.net *.split).
06:37:31 -!- erdic has quit (*.net *.split).
06:37:31 -!- jix has quit (*.net *.split).
06:37:32 -!- kmc has quit (*.net *.split).
06:37:32 -!- gitlogger has quit (*.net *.split).
06:37:32 -!- LBPHacker has quit (*.net *.split).
06:37:32 -!- APic has quit (*.net *.split).
06:37:38 -!- lifthrasiir has quit (*.net *.split).
06:37:39 -!- paul2520 has quit (*.net *.split).
06:42:45 -!- lifthrasiir has joined.
06:42:45 -!- paul2520 has joined.
06:44:39 -!- Melvar has joined.
06:48:50 -!- grumble has joined.
06:48:50 -!- Vorpal has joined.
06:48:50 -!- erdic has joined.
06:48:50 -!- jix has joined.
06:48:50 -!- kmc has joined.
06:48:50 -!- gitlogger has joined.
06:48:50 -!- LBPHacker has joined.
06:48:50 -!- APic has joined.
06:50:09 -!- kspalaiologos has joined.
06:50:38 <kspalaiologos> Hi, b_jonas
06:50:59 <kspalaiologos> My client automagically conmected to IRC and I didn't notice it
06:51:43 <kspalaiologos> `asmbf mov r1, 2\mov r2, 3
06:51:43 <HackEso> ​+>+[#
06:51:52 <kspalaiologos> ??
06:52:11 <kspalaiologos> `asmbf mov r1,2/mov r2,3
06:52:12 <HackEso> ​+>+[<[>>+>+<<<-]>>[<<+>>-]>[[-]>>[-]++>[-]+++<<<]<<<[>>+>+<<<-]>>[<<+>>-]>[[-]<<<[-]>[-]>>]<<]
06:52:18 <kspalaiologos> Yeah perfect
06:52:32 <kspalaiologos> Thanks for the command
07:15:18 -!- grumble has quit (*.net *.split).
07:15:18 -!- Vorpal has quit (*.net *.split).
07:15:19 -!- erdic has quit (*.net *.split).
07:15:19 -!- jix has quit (*.net *.split).
07:15:19 -!- kmc has quit (*.net *.split).
07:15:19 -!- gitlogger has quit (*.net *.split).
07:15:19 -!- LBPHacker has quit (*.net *.split).
07:15:19 -!- APic has quit (*.net *.split).
07:16:57 -!- grumble has joined.
07:16:57 -!- Vorpal has joined.
07:16:57 -!- erdic has joined.
07:16:57 -!- jix has joined.
07:16:57 -!- kmc has joined.
07:16:57 -!- gitlogger has joined.
07:16:57 -!- LBPHacker has joined.
07:16:57 -!- APic has joined.
07:17:01 -!- APic has quit (Max SendQ exceeded).
07:22:04 -!- APic has joined.
07:53:11 <kspalaiologos> What happened
07:53:19 <kspalaiologos> My bot has crashed?
07:53:32 <kspalaiologos> How did it rejoin I didn't implement it
08:08:00 <b_jonas> oerjan: technically on freenode, channel names can also start with @ or *
08:08:17 <b_jonas> but that probably doesn't come up with HackEso
08:08:37 <b_jonas> I think it would be better to check for a nick rather than for a channel
08:08:53 <b_jonas> but it doesn't matter in the case of ls
08:14:15 <FireFly> hm, I don't think they can start with those?
08:15:03 <FireFly> I'm getting CHANTYPES=# from /version at least
08:30:06 <b_jonas> FireFly: yes, but you can send a message to *#esoteric or @#esoteric , which is like sending to #esoteric but only users who are voiced or op on that channel get it, and the target shows up as *#esoteric or @#esoteric on the receiver side. of course HackEso isn't voiced or op on any channel, so he won't get those.
08:30:25 <b_jonas> (I don't know if *#esoteric also sends the message to nicks who are op but not voiced.)
08:32:37 <b_jonas> It's easier to test for nick characters [-0-9A-}] because those are the same on all networks
08:32:47 <b_jonas> no messing with channel types and prefixes
08:36:27 -!- clog has joined.
08:41:25 <b_jonas> this prefixed channel thing causes bugs in many clients by the way
09:00:42 -!- b_jonas has quit (Quit: leaving).
09:09:57 <FireFly> oh that, it'd be +#foo in the voiced case
09:35:45 <fizzie> Will it actually look to the recipient as if it was sent to @#foo or +#foo though?
09:36:03 <fizzie> I would imagine that would confuse a lot of clients.
09:37:37 <FireFly> it does
09:37:46 <fizzie> Funky.
09:38:09 <FireFly> It's kind of just a rarely used feature AIUI
09:39:15 <FireFly> There were some changes last summer to have messages sent through to ops when channel mode +z is set, use @# instead of just #
09:39:36 <FireFly> which does make it possible to distinguish them at least on the client side
09:51:40 -!- lldd_ has joined.
10:08:43 -!- atslash has joined.
10:18:14 -!- wib_jonas has joined.
10:19:13 <wib_jonas> Hey look. OEIS doesn't keep its own documented rules. https://oeis.org/eishelp1.html says that listing at least four terms are required for every sequence, but https://oeis.org/A235383 only has two terms.
10:23:10 -!- lldd_ has quit (Quit: Leaving).
10:25:56 <wib_jonas> fungot, do you keep your own rules?
10:25:56 <fungot> wib_jonas: when i first had cleared cell handling, but because it points to a
10:27:22 <fizzie> The first rule of the tautology club is the first of tautology club's rules.
10:29:08 <kingoffrance> the zeroeth rule of address+offset club is indices start at 0
10:31:46 -!- nico_nico has joined.
10:32:03 -!- nico_nico has quit (Read error: Connection reset by peer).
11:06:09 -!- arseniiv_ has joined.
11:45:45 <esowiki> [[Special:Log/newusers]] create * Quadril-Is * New user account
12:01:54 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=67048&oldid=67041 * Quadril-Is * (+371) /* Introductions */
12:11:05 <esowiki> [[Turing machine]] https://esolangs.org/w/index.php?diff=67049&oldid=63905 * A * (+66) /* External resources */
13:38:49 <esowiki> [[Wordfuck]] https://esolangs.org/w/index.php?diff=67050&oldid=43166 * Quadril-Is * (+70) /* Sample Hello World program */
13:54:35 <kspalaiologos> Whoever made the asmbf available using only one grave character
13:54:50 <kspalaiologos> Please make it pipe stuff thru labels.pl before
13:55:49 <int-e> `url bin/bfasm
13:55:50 <HackEso> https://hack.esolangs.org/repo/file/tip/bin/bfasm
13:56:24 <kspalaiologos> ?
13:56:36 <kspalaiologos> bfasm is a program
13:56:44 <kspalaiologos> asmbf is the wrapper and command
13:56:48 <int-e> `url bin/asmbf
13:56:49 <HackEso> https://hack.esolangs.org/repo/file/tip/bin/asmbf
13:57:18 <kspalaiologos> Could you edit it for me? I'm on mobile
13:57:32 <kspalaiologos> And it's quite laggy one
13:57:58 <kspalaiologos> Just add labels.pl in pipe chain before tr
13:58:35 <int-e> `sled bin/asmbf//s/bfasm/lables.pl | bfasm/
13:58:36 <HackEso> bin/asmbf//print_args_or_input "$@" |tr / \\n | lables.pl | bfasm
13:59:29 <int-e> uhm
13:59:35 <wib_jonas> lables?
13:59:38 <kspalaiologos> Mistake
13:59:42 <kspalaiologos> Labels
13:59:46 <kspalaiologos> And before tr
13:59:48 <int-e> yeah... on it
14:00:08 <int-e> `sled bin/asmbf//s/lables/labels/
14:00:16 <HackEso> bin/asmbf//print_args_or_input "$@" |tr / \\n | labels.pl | bfasm
14:00:24 <kspalaiologos> Perfect
14:00:26 <kspalaiologos> Thanks
14:00:49 <kspalaiologos> `asmbf @hello/jmp %hello
14:00:50 <HackEso> ​+>+[>>>+<<+<<[>>->+<<<-]>>>[<<<+>>>-]<[->+<<[>>>-<<+<-]>[<+>-]>>[<->[-]]<[<<<+>>>-]<]>>[-]<<<<[>>+>+<<<-]>>[<<+>>-]>[[-]>>>>>>+<<<<<<<<<[-]>[-]>>>>>>>>[<<<<<<<<+>+>>>>>>>-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[-]<<<<<<]<<<[>>+>+<<<-]>>[<<+>>-]>[[-]<<<[-]>[-]>>]<<]
14:01:08 <kspalaiologos> Fancy infinite loop, seems like it works
14:01:12 <wib_jonas> by the way
14:01:18 <int-e> at least "lables" was a genuine typo... identifying asmbf and bfasm was a real brain fart
14:01:22 <wib_jonas> `hello m
14:01:23 <HackEso> Hello, World.
14:01:24 <wib_jonas> `hello
14:01:25 <HackEso> hello, world
14:01:29 <wib_jonas> `@ fungot hello m
14:01:30 <fungot> wib_jonas: what is t? i recognize the word :p that means i will have 128 general purpose registers
14:01:30 <HackEso> fungot: Hello, World.
14:01:33 <wib_jonas> `@ fungot hello
14:01:33 <fungot> wib_jonas: instead of hte redirectee each prime but they both seem fast enough that no one has
14:01:34 <HackEso> No output.
14:01:39 <kspalaiologos> int-e, lol
14:01:40 <wib_jonas> bin/@ is weird
14:01:55 <kspalaiologos> Is this a bot?
14:02:05 <kspalaiologos> I mean, fungot
14:02:06 <fungot> kspalaiologos: ( when was the last you saw? henderson's functional fnord, or more then likely, use both hands for it...
14:02:18 <int-e> fungot is a bot
14:02:19 <wib_jonas> `? fungot
14:02:20 <fungot> wib_jonas: oh yes for no caps lock, no arrow keys... instead of binary
14:02:21 <HackEso> fungot is our beloved channel mascot and voice of reason.
14:02:26 <kspalaiologos> Well
14:02:28 <kspalaiologos> Fine
14:02:38 <wib_jonas> see also https://esolangs.org/wiki/Fungot
14:02:43 <int-e> `? zzo38
14:02:44 <HackEso> zzo38 is not actually the next version of fungot, much as it may seem.
14:03:02 <kspalaiologos> Wait a second
14:03:07 <kspalaiologos> A bot in befunge?
14:03:17 <wib_jonas> on a t-shirt
14:03:20 <kspalaiologos> Is there source available?
14:03:31 <int-e> ^source
14:03:31 <fungot> https://github.com/fis/fungot/blob/master/fungot.b98
14:03:40 <wib_jonas> kspalaiologos: yes, the source is sold on a t-shirt
14:03:44 <kspalaiologos> It's awesome
14:03:51 <int-e> oh, wow, my brain remembered something correctly *marks day on calendar*
14:04:08 <wib_jonas> `datei
14:04:09 <HackEso> 2019-11-15 14:04:09.093 +0000 UTC November 15 Friday 2019-W46-5
14:04:14 <int-e> wib_jonas: thanks
14:04:17 <kspalaiologos> Pff
14:04:30 <wib_jonas> where's the link to the webshop with the t-shirt?
14:04:32 <wib_jonas> `? shirt
14:04:33 <HackEso> shirt? ¯\(°​_o)/¯
14:04:34 <wib_jonas> `? t-shirt
14:04:35 <HackEso> t-shirt? ¯\(°​_o)/¯
14:04:35 <wib_jonas> `? tee
14:04:37 <HackEso> tee? ¯\(°​_o)/¯
14:04:39 <wib_jonas> hmm
14:04:44 <int-e> I don't remember any t-shirts
14:04:58 <int-e> But of course that doesn't mean anything.
14:05:23 <wib_jonas> I think at least one exists, but possibly not sold from a webshop, but made as a one-time item
14:05:49 <wib_jonas> there's no tattoo version yet, but there are several other tattoos related to golf or esolang or IOCCC
14:06:08 <fizzie> Yeah, I printed one for myself through a print-your-own-design shop I had a coupon for.
14:06:22 <kspalaiologos> ``asmbf <<<"in_ r1/in_ r2/add r1, r2/out r1" > stuff && bfi stuff <<<"00"
14:06:23 <HackEso> ​/srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: `asmbf: not found
14:06:25 <fizzie> Turned out pretty nice, even if I say so myself.
14:06:37 <wib_jonas> fizzie: have you already merged the recent bugfix onto the shirt?
14:06:51 <kspalaiologos> `` asmbf <<<"in_ r1/in_ r2/add r1, r2/out r1" > stuff && bfi stuff <<<"00"
14:06:53 <HackEso> ​/hackenv/bin/`: line 5: bfi: command not found
14:07:07 <kspalaiologos> Really? I installed it
14:07:09 <kspalaiologos> Yesterday
14:07:16 <kspalaiologos> Where's it gone
14:07:26 <wib_jonas> fizzie: and do you wash it inside-out so that the print lasts longer? I never do that with t-shirts
14:07:57 <kspalaiologos> `` whereis egobfi
14:07:58 <HackEso> egobfi:
14:08:17 <kspalaiologos> `` whereis egobfi8
14:08:18 <HackEso> egobfi8:
14:08:26 <fizzie> wib_jonas: I've not been doing that either. It seems to be pretty durable. Also, I only use it on special occasions.
14:08:45 <kspalaiologos> `` ls /asmbf-v1.1.1/
14:08:46 <HackEso> ls: cannot access '/asmbf-v1.1.1/': No such file or directory
14:08:59 <kspalaiologos> `` ls asmbf-v1.1.1/
14:09:00 <HackEso> ls: cannot access 'asmbf-v1.1.1/': No such file or directory
14:09:57 <int-e> `` ls tmp
14:09:58 <HackEso> a.c \ a.out \ as-encoding \ asmbf-1.1.1 \ banana.txt \ compiled_brachylog.pl \ hexdump.hex \ input.brachylog \ jeval.whatis \ just \ out \ OUT \ out.a \ out.a.hd \ out.a.xxd \ paste \ single-word-character-names \ spline \ spout \ spout.raw \ test.b \ test.sh \ tmp.txt \ v1.1.1.tar.gz
14:10:05 <fizzie> Also, please put temporary files (like "stuff") in either /tmp/ or tmp/ (aka /hackenv/tmp/).
14:10:29 <int-e> maybe `` should change its working directory to tmp?
14:10:38 <int-e> though that will cause all sorts of confusion ;)
14:11:11 <fizzie> The former is truly ephemeral (only for the execution of the current command), while the latter is persistent but unversioned.
14:11:13 <wib_jonas> int-e: that will cause all sorts of bugs
14:11:16 <wib_jonas> int-e: see the chat log
14:11:45 <int-e> wait, actual bugs?
14:11:47 <wib_jonas> int-e: bin/\? and bin/learn still use relative paths. I'll fix those, but I can't fix everything. too many programs assume that the pwd is /hackenv
14:12:09 <int-e> yeah
14:12:13 <int-e> and users :)
14:12:24 <kspalaiologos> Can we make a loop device
14:12:37 <wib_jonas> we could perhaps change .hgignore to ignore files directly in /hackenv , or remove write permission from /hackenv so you can't create files there, but those would probably cause other problems
14:12:39 <kspalaiologos> So some people don't even have to use temp files
14:12:49 <int-e> (And obviously I wouldn't touch the default for a plain `. But then moving from ` to `` would cause friction...)
14:13:50 <wib_jonas> int-e: new best practice: if you're making executables for HackE?o that look up files under /hackenv , make it look them up relative to ${HACKENV-/hackenv}/ rather than relative to the working directory
14:14:10 <fizzie> Most of the time you can use pipes instead of temporary files. I don't see how loop devices would improve matters.
14:14:19 <esowiki> [[BrainCurry]] M https://esolangs.org/w/index.php?diff=67051&oldid=67044 * SergeJohanns * (+1) Fixed link
14:14:35 <int-e> `` echo $PATH
14:14:36 <HackEso> ​/hackenv/bin:/usr/bin:/bin
14:14:56 <fizzie> In particular, bash <(...) syntax can help.
14:15:37 <fizzie> `` echo <(echo foo); cat <(echo bar)
14:15:38 <HackEso> ​/dev/fd/63 \ bar
14:16:11 <int-e> Which shell pioneered that one? I thought bash got it from zsh...
14:16:42 <fizzie> Maybe? I'm not too familiar with other shells.
14:17:04 <wib_jonas> I know some people want to avoid temp files, but I think it's a bad habit that remains from old operating systems that couldn't cache files properly
14:17:09 <wib_jonas> I think it's a bad practice
14:17:13 <fizzie> I did used to use tcsh for some years, and university machines defaulted to zsh.
14:17:14 <wib_jonas> just create temp files
14:17:39 <wib_jonas> although since /tmp and /dev/shm
14:17:49 <int-e> wib_jonas: temp files have the shared namespace issue wrt to other processes and users
14:17:59 <wib_jonas> and /var/tmp aren't writable in HackEso, it might make sense to set some environment variables to point to the absolute path of a temp directory
14:18:14 * int-e likes pipes.
14:18:18 <fizzie> /tmp is writable.
14:18:43 <fizzie> It's what you should be using for temporary files within a single command.
14:19:02 <wib_jonas> int-e: use mkdir then to create a temp directory that nobody else uses
14:20:11 <wib_jonas> int-e: I recommend mkdir specifically because it's always atomic, two processes can't create the same directory twice successfully, as opposed to open with O_EXCL which is supposed to be atomic like that but there are bugs involving nfs
14:20:19 <wib_jonas> fizzie: I see
14:20:29 <wib_jonas> so /tmp is writable but doesn't persist after a command?
14:20:30 <wib_jonas> that's useful
14:20:37 <fizzie> /tmp is a tmpfs inside the UML.
14:20:47 <esowiki> [[BrainCurry]] M https://esolangs.org/w/index.php?diff=67052&oldid=67051 * SergeJohanns * (+25) Added Category
14:20:57 <wib_jonas> that could work then
14:21:02 <int-e> `ls /tmp
14:21:03 <HackEso> No output.
14:21:08 <int-e> `` ls -a /tmp
14:21:09 <HackEso> ​. \ ..
14:21:42 <wib_jonas> ``` set -e; hello > /tmp/Z-k3EuobYg4s; echo next:; cat /tmp/Z-k3EuobYg4s
14:21:43 <HackEso> next: \ hello, world
14:21:51 <wib_jonas> yeah, it's writable. sorry.
14:22:06 <wib_jonas> why is /dev/shm not writable by the way?
14:22:21 <wib_jonas> ``` set -e; hello > /dev/shm/Z-k3EuobYg4s; echo next:; cat /dev/shm/Z-k3EuobYg4s
14:22:22 <HackEso> bash: /dev/shm/Z-k3EuobYg4s: Read-only file system
14:23:12 <fizzie> It's just not mounted.
14:23:21 <fizzie> So it falls into the ro /.
14:24:05 <fizzie> `` echo $HOME $HACKENV # There are also these.
14:24:07 <HackEso> ​/tmp /hackenv
14:24:16 <fizzie> But I should probably also set... is it TMPDIR or TEMPDIR? I can never remember.
14:24:35 <kingoffrance> theres various "mktemp" commands to attempt to avoid "how to safely create a temp file/dir"; i think openbsd started it, then someone made a "portable" version; i think it really it just calls mktemp() instead of whatever c89 is
14:24:54 <kingoffrance> s/attempt to avoid/& historical problems with/
14:25:08 <kingoffrance> but for all i know, some "mkdir" might have such features "built-in"
14:25:38 <kingoffrance> (or, that might be backwards, c89 has a not-really-secure mktemp() , and mktemp command calls some better one)
14:26:06 <kingoffrance> s/calls/& and/or has one bundled with it/
14:26:08 <wib_jonas> fizzie: yes, I already edited some of my programs to use $HACKENV, and I want to edit the programs related to wisdom and quote and learning in the future
14:26:29 <wib_jonas> fizzie: there are a ton of different env-vars about temporary directories. TMP, TEMP, etc
14:26:35 <wib_jonas> every program uses them in a different way
14:28:45 <kingoffrance> openbsd/netbsd/freebsd i think also optionally (maybe stock now) do per-user "private /tmp" nowadays, dunno about linux; and thats like the classic dir you set "sticky" bit on
14:31:18 <wib_jonas> ``` set -e; cd tmp; \' "hey, hey"
14:31:19 <HackEso> nl: quotes: No such file or directory
14:33:12 <wib_jonas> `python3 -cn="bin/allquotes"; a=open(n,"rb").read(); a=a.replace(b'quotes',b'"${HACKENV-/hackenv}/quotes"'); open(n,"wb").write(a)
14:33:14 <HackEso> No output.
14:33:16 <wib_jonas> ``` set -e; cd tmp; \' "hey, hey"
14:33:17 <HackEso> 728) <fungot> itidus21: hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, h
14:33:28 <wib_jonas> ``` set -e; cd tmp; allquotes | tail -n1
14:33:29 <HackEso> 1335) <shachaf> The domain is public, but what's the codomain?
14:33:34 <wib_jonas> ``` set -e; cd tmp; \"
14:33:35 <HackEso> 1003) <kmc> LIST OF ACRONYMS: List Integrating Some Terminology Of Fine Authentic Credibility Relating to Our New Year Media System \ 1226) <Taneb> I need to get out of my habit of eating business cards...
14:33:44 <wib_jonas> ``` set -e; cd tmp; quote Taneb
14:33:45 <HackEso> 383) <Taneb> Turned out he got recursion, he just didn't get the return statement \ 388) <Taneb> Cut to February <Taneb> War were declared <Taneb> A galaxy in turmoil <Taneb> Anyway, Febuary '10 \ 389) <Taneb> I can't afford one of those! <Taneb> A grandchild, not a laser printer \ 395) <fizzie> There's that saying that the definition of insanity is doing the same thing over and over again and expecting different results. [...] <Taneb> You
14:34:06 <fizzie> For the record, the way filesystems work on HackEso is: it uses the umlbox --base-mounts flag (which mounts /usr, /bin, /sbin, /lib, /lib32, /lib64, /etc/alternatives and /dev as read-only 'hostfs' mounts from the host system), then adds three custom mounts (read-write /hackenv, read-only /hackenv/.hg on top of that, and the hackbot lib directory for the 'limits' script), and finally umlbox itself
14:34:09 <wib_jonas> ``` set -e; cd tmp; q st
14:34:11 <HackEso> 1) <Slereah> EgoBot just opened a chat session with me to say "bork bork bork" \ 3) <AnMaster> that's where I got it <AnMaster> rocket launch facility gift shop \ 8) <Madelon> Lil`Cube: you had cavity searches? <Lil`Cube> not yet <Lil`Cube> trying to thou, just so I can check it off on my list of things to expirence \ 9) <reddit user "othermatt"> So what you're saying is that I shouldn't lick my iPhone but instead I should rub it on my eyes
14:34:12 <fizzie> unconditionally mounts a tmpfs on /tmp, proc on /proc and sysfs on /sys.
14:34:20 <fizzie> (This would all be in the hypothetical HackEso manual, presumably.)
14:34:35 <wib_jonas> fizzie: I can guess most of that, because I can list mounts
14:35:06 <fizzie> The lib thing explains the otherwise slightly odd /srv/hackeso-code/multibot_cmds/lib which also leaks a path out of the host. :/
14:35:20 <fizzie> (Well, all of the hostfs mounts do that.)
14:37:15 <wib_jonas> does anyone happen to know what bin/\?h is supposed to do?
14:38:41 <wib_jonas> I know that bin/\?\? accesses the parallel universe wisdom database in tmflry
14:39:02 <wib_jonas> `?? cat
14:39:03 <HackEso> A cat is an animal with four legs. It's nice to pet, especially when it's a baby cat, called a kitten. Or it's the unix "cat" command. It takes a filename (or many) and prints the contents of that (those) file(s).
14:39:04 <wib_jonas> `? cat
14:39:05 <HackEso> Cats are cool, but should be illegal.
14:40:04 <fizzie> It's supposed to invoke \? with a special logic to add extra 'h's in words in a manner I can't quite remember the source of.
14:40:29 <wib_jonas> ok...
14:40:37 <wib_jonas> it doesn't seem to do that, but maybe it was supposed to
14:40:53 <wib_jonas> `wehlcohme
14:40:55 <fizzie> It's missing a \, so the '?' in it presumably expands to all one-character commands.
14:40:55 <HackEso> Wehlcohme to the ihntehrnahtiohnahl huhb fohr ehsohtehrihc prohgrahmmihng lahnguahge dehsihgn ahnd dehployhmehnt! Fohr mohre ihnfohrmahtiohn, chehck ouht ouhr wihki: <https://ehsohlahngs.ohrg/>. (Fohr the ohthehr kihnd ohf ehsohtehrihca, try #ehsohtehrihc ohn EhFneht ohr DAhLneht.)
14:41:17 <fizzie> It's a little bit less h-heavy than that. But yeah, maybe same roots.
14:41:47 <fizzie> It might be just barely possible ?h was added when ? was the only single-character command, though that seems unlikely. I don't know if it's ever worked.
14:42:37 <fizzie> Oh, there's also bin/?hh and that's actually been fixed.
14:42:46 <fizzie> `?hh welcome
14:42:48 <HackEso> Wehlcohme to the ihntehrnahtiohnahl huhb fohr ehsohtehrihc prohgrahmmihng lahnguahge dehsihgn ahnd dehployhmehnt! Fohr mohre ihnfohrmahtiohn, chehck ouht ouhr wihki: <https://ehsohlahngs.ohrg/>. (Fohr the ohthehr kihnd ohf ehsohtehrihca, try #ehsohtehrihc ohn EhFneht ohr DAhLneht.)
14:43:00 <int-e> Hmm https://esolangs.org/logs/2013-01-25.html#lzn ff.
14:43:00 <wib_jonas> fizzie: or when it was the alphabetically first single-character command in New Zealand locale order
14:43:26 <int-e> prototyped by fizzie, implemented by shachaf
14:46:11 <fizzie> `sled bin/?h//s|^|\\|
14:46:14 <HackEso> bin/?h//\? "$@" | perl -pe 's/([aeiouy])([bcdfghjklmnpqrstvxz])\b/$1h$2/ig'
14:46:22 <fizzie> `?h welcome
14:46:23 <HackEso> Welcome to the internationahl huhb fohr esoterihc programming language design and deployment! Fohr more informatiohn, check ouht ouhr wiki: <https://esolangs.org/>. (Fohr the othehr kind ohf esoterica, try #esoterihc ohn EFneht ohr DALneht.)
14:46:27 <fizzie> Anyway.
14:46:36 <wib_jonas> nice
14:46:41 <wib_jonas> `??h Tanebventions
14:46:42 <HackEso> ​/srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: ??h: not found
14:46:46 <wib_jonas> `?h tanebventions
14:46:47 <HackEso> Tanebventions include necessity, Go, submarine jousting, Fueue, the universe, metahr, sand, dragons, persistence, the BBC, _46biht, progress, sanity, the huhg, Italiahn, the grace periohd, the limerick, ruihn, and thihs sentence. See also tanebventions: maths ohr tanebventions: foods. He nevehr invents anything involving sehx.
14:47:31 <fizzie> With the \b it's a little picky, you have to have a vowel-consonant pair at the end of the word.
14:50:53 <wib_jonas> ``` grep -lw quotes bin/* # I'll have to check these
14:50:54 <HackEso> bin/addquote \ bin/allquotes \ bin/delquote \ bin/pastequotes \ bin/qc \ bin/quotenums \ bin/tclkit \ bin/units \ bin/whoq
14:50:59 <wib_jonas> and then the ones that refer to wisdom
14:52:55 <wib_jonas> hmm, fixing addquote and delquote are trickier because to test them, I have to add a quote and delete one
14:53:21 <fizzie> "Just run the test suite."
14:55:27 <wib_jonas> is there a test quote for the test suite?
14:55:49 -!- tswett[m] has joined.
14:55:50 -!- wmww has joined.
14:55:55 -!- ddmm_ has joined.
14:56:06 <fizzie> I don't think there is.
14:56:30 <fizzie> I have a local "DevHackEso" instance I use when doing changes to the actual code (not the "userland"), but it's a bit of a pain to set up locally.
14:56:58 <wib_jonas> I'll just add a quote and delete the same quote
14:57:06 <wib_jonas> twice
15:02:18 <fizzie> Another HackEso oddity: /dev is actually the host system's real /dev. It works out pretty well in practice, because it's inside a container with a really sparse /dev. But now that they've brought back the ghost of devfs as devtmpfs, maybe that'd be an option. Before, you'd either have had to manually populate a static /dev or run udev.
15:18:18 <wib_jonas> ``` grep -lw wisdom bin/*
15:18:19 <HackEso> bin/? \ bin/cwlprits \ bin/disce \ bin/dowg \ bin/footnote \ bin/forget \ bin/grwp \ bin/gwn \ bin/gwni \ bin/howg \ bin/hwrl \ bin/lastwisdoms \ bin/leann \ bin/learn \ bin/ls \ bin/pastewisdom \ bin/plwd \ bin/slashlearn \ bin/slwd \ bin/w \ bin/wdit \ bin/whoops \ bin/widsom \ bin/wisdom \ bin/wisdöm \ bin/wiseguys \ bin/wrl
15:18:32 <wib_jonas> ``` grep -lw tmflry bin/*
15:18:33 <HackEso> bin/?? \ bin/mislearn \ bin/tomfoolery
15:18:41 <wib_jonas> of course some of those are false positives
15:22:57 -!- imode has joined.
15:35:49 -!- xkapastel has joined.
16:16:57 -!- imode has quit (Ping timeout: 240 seconds).
16:21:46 -!- wib_jonas has quit (Remote host closed the connection).
16:37:30 -!- unlimiter has joined.
16:40:10 -!- unlimiter has quit (Client Quit).
16:40:30 -!- unlimiter has joined.
17:01:43 -!- unlimiter has quit (Quit: WeeChat 2.6).
17:06:47 -!- atslash has quit (Quit: This computer has gone to sleep).
17:09:27 -!- kspalaiologos2 has joined.
17:13:58 <arseniiv_> hey, hey, hey, hey, hey,
17:14:14 <arseniiv_> (I actually have nothing to say but I want to say hey)
17:14:18 -!- arseniiv_ has changed nick to arseniiv.
17:15:18 <APic>
17:15:33 <arseniiv> also I was writing a bunch of lame Haskell code yesterday and maybe I will continue today too and then show you to have much criticism!
17:15:55 <arseniiv> naming things is often a mess
17:18:01 <arseniiv> they say if you can’t figure out a name for a code thingy, better do without. but I think there are a big case of false negative here for people who just have a bad day for language or maybe they are non-natives even worse than me
17:39:23 -!- FreeFull has joined.
18:12:56 -!- kspalaiologos2 has quit (Quit: Leaving).
18:12:56 -!- kspalaiologos has quit (Read error: Connection reset by peer).
18:13:17 -!- kspalaiologos has joined.
18:15:34 -!- xkapastel has quit (Quit: Connection closed for inactivity).
18:25:01 -!- b_jonas has joined.
18:33:40 <b_jonas> hey, hey arseniiv
18:33:56 <arseniiv> b_jonas: hey,
18:34:11 <b_jonas> yes, naming is hard, but I think you should still name partial results
18:34:16 <fizzie> Hey, listen. (Stay awhile and listen?)
18:36:37 <b_jonas> yes, that's what the fairy of the boy without a fairy says
18:38:54 <fizzie> And the parenthetical part is what Deckard Cain says.
18:53:13 -!- kspalaiologos has quit (Quit: Leaving).
18:55:56 -!- ArthurStrong has joined.
20:31:11 <esowiki> [[StuLa]] N https://esolangs.org/w/index.php?oldid=67053 * CMinusMinus * (+1033) Created page with "'''StuLa''' ('''Stu'''pid '''La'''nguage) is a programming language, made by [[User:CMinusMinus]] in 2019. It has variables, import options, input and output, 3 main variable..."
20:31:22 -!- unlimiter has joined.
20:33:35 <arseniiv> is there a common factoring of this functions into a couple of well-known ones?:
20:33:35 <arseniiv> h :: (a, Maybe b) -> Maybe (a, b)
20:33:35 <arseniiv> h (a, Just b) = Just (a, b)
20:33:35 <arseniiv> h (a, Nothing) = Nothing
20:33:36 <arseniiv> I think there should be but I’m yet to find out
20:34:54 <esowiki> [[StuLa]] https://esolangs.org/w/index.php?diff=67054&oldid=67053 * CMinusMinus * (+147)
20:35:26 <arseniiv> hm let me try `sequence` again. Yesterday I found out it’s quite a magic one
20:36:20 <arseniiv> bingo! `sequence` saves the day again!
20:36:34 <arseniiv> h = sequence!
20:36:49 <arseniiv> thank you for reading this anyway
20:40:06 <esowiki> [[StuLa]] https://esolangs.org/w/index.php?diff=67055&oldid=67054 * CMinusMinus * (+384)
20:42:58 -!- unlimiter has quit (Quit: WeeChat 2.6).
20:48:50 <esowiki> [[StuLa]] https://esolangs.org/w/index.php?diff=67056&oldid=67055 * CMinusMinus * (+659)
20:52:24 <esowiki> [[StuLa]] https://esolangs.org/w/index.php?diff=67057&oldid=67056 * CMinusMinus * (+69)
20:55:55 <b_jonas> arseniiv: I would have recommended that you ask in #haskell .
20:55:56 <esowiki> [[StuLa]] https://esolangs.org/w/index.php?diff=67058&oldid=67057 * CMinusMinus * (+354)
20:56:19 <esowiki> [[User:CMinusMinus]] https://esolangs.org/w/index.php?diff=67059&oldid=67035 * CMinusMinus * (+11) /* My Languages */
20:57:02 <arseniiv> b_jonas: reasonable
20:57:22 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=67060&oldid=67047 * CMinusMinus * (+12) /* S */
20:58:04 <esowiki> [[User:CMinusMinus]] https://esolangs.org/w/index.php?diff=67061&oldid=67059 * CMinusMinus * (-71)
20:59:32 <esowiki> [[StuLa]] https://esolangs.org/w/index.php?diff=67062&oldid=67058 * CMinusMinus * (+62)
21:07:12 <esowiki> [[StuLa]] https://esolangs.org/w/index.php?diff=67063&oldid=67062 * CMinusMinus * (+220)
21:07:47 <esowiki> [[StuLa]] https://esolangs.org/w/index.php?diff=67064&oldid=67063 * CMinusMinus * (-51)
21:10:46 <esowiki> [[StuLa]] https://esolangs.org/w/index.php?diff=67065&oldid=67064 * CMinusMinus * (+48)
21:11:05 <esowiki> [[StuLa]] https://esolangs.org/w/index.php?diff=67066&oldid=67065 * CMinusMinus * (+26)
21:14:09 <esowiki> [[StuLa]] https://esolangs.org/w/index.php?diff=67067&oldid=67066 * CMinusMinus * (+137)
21:24:33 -!- zzo38 has joined.
21:26:52 -!- zzo38 has quit (Read error: Connection reset by peer).
21:28:41 <esowiki> [[Special:Log/upload]] upload * CMinusMinus * uploaded "[[File:StuLa Logo.png]]"
21:32:58 <esowiki> [[Special:Log/upload]] upload * CMinusMinus * uploaded "[[File:Official StuLa Logo.png]]"
21:33:52 <esowiki> [[StuLa]] https://esolangs.org/w/index.php?diff=67070&oldid=67067 * CMinusMinus * (+40)
21:35:08 -!- zzo38 has joined.
21:35:48 <zzo38> The reason I use a Raspberry Pi computer is because my wired internet doesn't work, but Raspberry Pi has wireless internet
21:36:38 <zzo38> Also, I tried to insntall the more complete vim system but it says 404 error
21:37:07 <zzo38> I have a Compact Flash card to transfer files between these two computers
21:41:08 <zzo38> This computer doesn't have xclip either
21:41:20 <shachaf> Do you need xclip?
21:42:00 <kmc> zzo38: you can also get a USB wireless adapter
21:42:05 <zzo38> Well, I tried to install xclip and don't get a 404 error for that at least
21:42:19 <kmc> there are some very tiny ones that stick out only a few mm from the port and can be left in 24/7
21:42:36 <zzo38> kmc: I have one, and have tried that but it doesn't work. My computer recognizes it, and it lists the access point, and it says connected but then it doesn't work.
21:42:51 <kmc> oh, that is too bad
21:43:14 <shachaf> Hmm, CDCL is probably the single biggest improvement I can make to a solver, I guess?
21:44:07 <shachaf> I implemented 2WL but -- surprise? -- it doesn't do much good for the 3SAT instances I've been testing on.
21:44:30 <shachaf> I assume it'll be more useful with CDCL since the learnt claws will be bigger.
21:44:55 <zzo38> This computer also has a not very good keyboard from Microsoft. Many keys are missing, including home, end, insert, scroll lock, and the entire number pad
21:46:02 <esowiki> [[EsoPost]] N https://esolangs.org/w/index.php?oldid=67071 * Zzo38 * (+4605) Created page with "[[Category:Languages]][[Category:2019]] An EsoPost program consists of a sequence of operators. At the beginning of the program, all operators in the program are pushed to th..."
21:49:48 <fizzie> I used to have a non-flexible USB wifi dongle that, in the university lecture hall, only worked if I kept the laptop at a 90 degree angle, so that the stick was vertical.
21:50:02 <fizzie> In retrospect, maybe I could've just used a short USB extension cable.
21:51:57 <zzo38> What are you thinking of now I posted the new esolang "EsoPost"? (That is why I wanted xclip, it is convenient when I want to copy a file to the wiki, and I wrote the file on other computer)
22:10:21 -!- ArthurStrong has quit (Quit: leaving).
22:12:42 <zzo38> Do you like ZZ Zero?
22:14:31 <zzo38> Deduplication {X} Instant ;; X target nonbasic permanents are legendary until end of turn. ;; Cycling {2} ;; Flashback {XX}
22:15:37 <zzo38> Historical Library {4} Legendary Artifact ;; {2}, {T}: Put the bottom card of your graveyard into your hand. Use only as a sorcery.
22:15:42 <zzo38> Do you have a comment of this?
22:21:49 <zzo38> Also, do you know if it is possible to use Usenet (and possibly also Unusenet) with amateur radio?
22:26:11 <arseniiv> my fancy write-only code about constructor inhabitedness: https://repl.it/repls/OpaqueCrazyStructures
22:27:01 <b_jonas> `?h time cube
22:27:02 <HackEso> EARTH HAhS 4 CORNEhR SIMULTANEOUhS 4-DAY TIME CUBE IhN ONLY 24 HOUhR ROTATIOhN. 4 CORNEhR DAYhS, CUBEhS 4 QUAhD EARTH. Bible A Lie & Word Ihs Liehs. Navehl Connects 4 Cornehr 4s. Gohd Ihs Born Ohf A Mothehr - She Left Belly B. Signature. Youhr dirty lying teachers use only the midnight to midnight 1 day (ignoring 3 othehr dayhs) Time to noht fouhl (already wrong) bible time. Lie thaht corrupts earth you educatehd stupihd fools.
22:27:03 <b_jonas> `?h gene ray
22:27:04 <HackEso> Dr Gene Ray ihs the Greatest Philosophehr, and ihs the Greatest Mathematiciahn. Cubihc Harmonics. Only Cubihc Harmonics cahn save humanity. Cubihc Harmonics will pacify all religions. 96-houhr Cubihc Day debunks 1-day unnaturahl gohd. 96-houhr day willdisprove disunity gohd. Academians are teaching - pseudocience. Worshipping a Word Gohd will destroy the USA.
22:27:32 <b_jonas> "you educatehd stupihd fools"
22:28:04 <zzo38> arseniiv: Do you have a direct download link?
22:28:41 <arseniiv> zzo38: I’ll make a minute addition and then I’ll post it somewhere
22:29:03 <shachaf> `doag quotes
22:29:05 <HackEso> 11995:2019-10-31 <arseniïv> addquote <shachaf> The domain is public, but what\'s the codomain? \ 11992:2019-10-24 <ais52̈3> delquote 232 \ 11991:2019-10-24 <ais52̈3> delquote 1056 \ 11990:2019-10-24 <ais52̈3> delquote 1271 \ 11986:2019-10-24 <kspalaiologös> addquote <lf94> kspalaiologos: yes, it\'s much more enjoyable sitting in #esoteric than chiselling 99 bottles of beer into a rock. \ 11967:2019-10-13 <oerjän> addquote <kspalaiolog
22:29:11 <shachaf> Was that in /msg or something?
22:31:27 <arseniiv> zzo38: would hatebin link be okay or you’d prefer something more direct? (but I’m not done yet anyway)
22:31:44 <zzo38> I would prefer a more direct link that I can get plain text
22:32:44 <zzo38> That ought to be the working, rather than with HTML and CSS and JavaScripts and Flash and whatever else, just the plain text if the file you want to post is a plain text file.
22:44:07 <zzo38> New version of ZZ Zero: https://www.digitalmzx.net/forums/index.php?s=a278ed117b9a2090a6f1ef0c16655cb1&app=core&module=attach&section=attach&attach_id=3801
22:47:21 <esowiki> [[EsoPost]] https://esolangs.org/w/index.php?diff=67072&oldid=67071 * Zzo38 * (+0)
22:54:05 <arseniiv> zzo38: something like that?: https://gist.githubusercontent.com/arseniiv/af1835660331456b4d8e2df7337ebe0f/raw/7e88029b33d3e685dda7cc04a0ad497d30320755/InhabitedConstructors.hs
22:55:10 <zzo38> Yes, that is good
23:02:19 -!- zzo38 has quit (Quit: zzo38).
23:24:15 <arseniiv> uh, I can’t get what I did wrong using ShowS… it should be trivial but I get strange results
23:33:19 <arseniiv> I overestimated mconcat
23:59:34 <arseniiv> ah, it was meant for Endo to be used there
2019-11-16
00:25:25 -!- ArthurStrong has joined.
00:27:25 -!- arseniiv has quit (Ping timeout: 250 seconds).
00:44:58 -!- xkapastel has joined.
00:47:49 -!- hppavilion[1] has joined.
01:17:38 -!- hppavilion[1] has quit (Ping timeout: 240 seconds).
02:44:26 -!- Melvar has quit (Ping timeout: 246 seconds).
02:52:49 -!- oerjan has joined.
02:58:15 -!- Melvar has joined.
03:03:26 <oerjan> @tell kspalaiologos <kspalaiologos> How did it rejoin I didn't implement it <-- that was a netsplit. it looks like a mass quit and rejoin but in reality it's just an in-between irc server doing that. (except for those unfortunate enough to be logged in directly to that server.)
03:03:26 <lambdabot> Consider it noted.
03:06:22 -!- imode has joined.
03:10:06 <oerjan> <b_jonas> It's easier to test for nick characters [-0-9A-}] because those are the same on all networks <-- except then we need to worry about the LC_COLLATE setting or whatever it was.
03:12:39 <oerjan> hm there's a globasciiranges shell option.
03:12:50 <oerjan> *bash
03:51:21 <oerjan> `cat bin/@
03:51:22 <HackEso> ​#!/usr/bin/perl -w \ $_ = join " ", @ARGV; if (s/^([^ ]*) +([^ ]*) +//) { print "$1: "; exec $2, $_; }
03:53:33 <oerjan> `cat bin/nur
03:53:34 <HackEso> if grep -q \ <<<"$1"; then "${1%% *}" "${1#* }"; else "$1"; fi
03:54:15 <oerjan> `echo test
03:54:15 <HackEso> ​ test
03:54:35 -!- ArthurStrong has quit (Quit: leaving).
03:55:25 <oerjan> it looks like @ implements its own nur
03:56:03 <oerjan> which is slightly incompatible
03:56:21 <oerjan> `@ oerjan test
03:56:22 <HackEso> No output.
03:56:26 <oerjan> `test
03:56:26 <HackEso> Killed
03:56:46 <oerjan> `@ oerjan quote
03:56:46 <HackEso> No output.
03:56:50 <oerjan> `quote
03:56:51 <HackEso> 818) <olsner> we have PR? <oerjan> the good news is we have PR. the bad news is we borrowed haskell's motto for it. [...] <oerjan> [...] "avoid success at all costs"
03:58:31 <oerjan> so `@ doesn't work with a command with no argument
04:03:01 <oerjan> it's also a bit complicated by wanting to work both in shell commands and with `
04:05:49 <oerjan> `sled bin/@//2s!+.*!+//) { print "$1: "; exec "nur", $_; }!
04:05:51 <HackEso> bin/@//#!/usr/bin/perl -w \ $_ = join " ", @ARGV; if (s/^([^ ]*) +//) { print "$1: "; exec "nur", $_; }
04:06:11 <oerjan> `@ oerjan quote
04:06:12 <HackEso> oerjan: /hackenv/bin/nur: 1: /hackenv/bin/nur: Syntax error: redirection unexpected
04:06:16 <oerjan> darn
04:06:38 <oerjan> `nur quote
04:06:39 <HackEso> 636) <zzo38> Astrological ages don't work. Instead, say what you mean.
04:08:40 <oerjan> `/bin/echo hi
04:08:41 <HackEso> hi
04:08:54 <oerjan> `sled bin/@//s,nur,echo,
04:08:56 <HackEso> bin/@//#!/usr/bin/perl -w \ $_ = join " ", @ARGV; if (s/^([^ ]*) +//) { print "$1: "; exec "echo", $_; }
04:09:03 <oerjan> `@ oerjan quote
04:09:04 <HackEso> oerjan: quote
04:09:20 <oerjan> `@ oerjan quote hi
04:09:20 <HackEso> oerjan: quote hi
04:09:30 <oerjan> hm echo has no problem.
04:10:19 <oerjan> `revert
04:10:20 <HackEso> Done.
04:10:26 <oerjan> `@ oerjan quote hi
04:10:27 <HackEso> oerjan: /hackenv/bin/nur: 1: /hackenv/bin/nur: Syntax error: redirection unexpected
04:10:39 <oerjan> oh duh
04:10:55 <oerjan> `sled bin/nur//1i#!/bin/bash
04:10:57 <HackEso> bin/nur//#!/bin/bash \ if grep -q \ <<<"$1"; then "${1%% *}" "${1#* }"; else "$1"; fi
04:11:03 <oerjan> `@ oerjan quote hi
04:11:04 <HackEso> oerjan: 5) <Quas_NaArt> His body should be given to science. <GKennethR> He's alive :P <GreenReaper> Even so. \ 8) <Madelon> Lil`Cube: you had cavity searches? <Lil`Cube> not yet <Lil`Cube> trying to thou, just so I can check it off on my list of things to expirence \ 13) <fizzie after embedding some of his department research into fungot> Finally I have found some actually useful purpose for it. \ 14) <fungot> oerjan: are you a man, if th
04:11:11 <oerjan> `@ oerjan quote
04:11:12 <HackEso> oerjan: 4) <Warrigal> GKennethR: he should be told that you should always ask someone before killing them.
04:11:18 <oerjan> there you go.
04:11:53 <oerjan> `? nur
04:11:54 <HackEso> nur? ¯\(°​_o)/¯
04:19:45 <oerjan> `learn nur "command argument" is a convenience wrapper for invoking user-given commands with the same argument splitting as HackEso's top level. (Mnemonic: opposite of `run)
04:19:47 <HackEso> Learned 'nur': nur "command argument" is a convenience wrapper for invoking user-given commands with the same argument splitting as HackEso's top level. (Mnemonic: opposite of `run)
04:20:11 <oerjan> `whatis nur
04:20:14 <HackEso> nur(1hackeso) - no description
04:20:46 <oerjan> `? `@
04:20:47 <HackEso> ​@ is an OS made out of only the finest vapour.
04:21:36 <imode> seems like there's a story behind that.
04:23:55 <oerjan> `? scapegoat
04:23:56 <HackEso> scapegoat? ¯\(°​_o)/¯
04:24:11 <oerjan> `grWp scapegoat
04:24:13 <HackEso> No output.
04:25:08 <oerjan> i suppose we don't have that in wisdom. @ was the perfect imaginary OS and scapegoat was the perfect imaginary revision control system, iirc
04:25:24 <oerjan> `grWp goat
04:25:25 <HackEso> ​🐐:🐐 <(Unicode goat laments your inability to render Unicode goat.) \ goat:Goats will eat and drink anything, except tea. Solain is unavailable for details. \ stume:A stume cowears and goatears you. That is the main reason why the often look so ackward.
04:26:06 <oerjan> hm i thought that unicode had something relevant but apparently not.
04:26:34 <oerjan> i think possibly ais523 has still something ongoing inspired by scapegoat.
04:27:38 <oerjan> `learn `@ <nick> <command> [<argument>] is a wrapper for running a HackEso command with a "nick:" prepended.
04:27:40 <HackEso> Learned '`@': `@ <nick> <command> [<argument>] is a wrapper for running a HackEso command with a "nick:" prepended.
04:28:17 <shachaf> How do you combine `1 and `@ ?
04:28:32 <oerjan> `slwd `@//s,:,: ,
04:28:34 <HackEso> ​`@//`@ <nick> <command> [<argument>] is a wrapper for running a HackEso command with a "nick: " prepended.
04:29:28 <oerjan> `@ `1 quote shachaf
04:29:29 <HackEso> ​`1: 838) <sgeo> GreyKnight, shachaf is like a high-level Forth \ 1057) <@elliott> well, I think if you don't think figuring out who the opposite of shachaf is requires thought, then you don't know shachaf very well
04:29:35 <oerjan> oops
04:29:46 <oerjan> `@ shachaf `1 quote shachaf
04:29:47 <HackEso> shachaf: /hackenv/bin/nur: line 2: `1: command not found
04:29:53 <oerjan> oh
04:30:00 <oerjan> `@ shachaf 1 quote shachaf
04:30:02 <HackEso> shachaf: 1/15:594) <shachaf> VMS Mosaic? <shachaf> I hope that's not Mosaic ported to VMS. <shachaf> Hmm. It's Mosaic ported to VMS. \ 604) * Sgeo|web wants to see elliott be wrong about something <elliott> Sgeo|web: That literally never happens. <shachaf> Sgeo|web: There you go. A great example. \ 608) <shachaf> You should get kmc in this channel. kmc has good quotes. <shachaf> `quote kmc <HackEgo> 686) <kmc> COCKS [...] <kmc> truly coc
04:30:28 <oerjan> of course it only prepends the first line shown
04:30:37 <oerjan> oh and won't split correctly
04:31:51 <kmc> what does `@ do
04:32:06 <oerjan> `? `@
04:32:09 <HackEso> ​`@ <nick> <command> [<argument>] is a wrapper for running a HackEso command with a "nick: " prepended.
04:32:12 <oerjan> hth
04:32:43 * oerjan failed to apply the obvious demonstration
04:33:03 <int-e> `@ int-e `welcome oerjan
04:33:04 <HackEso> int-e: /hackenv/bin/nur: line 2: `welcome: command not found
04:33:11 <int-e> `@ int-e welcome oerjan
04:33:12 <HackEso> int-e: oerjan: 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.)
04:33:32 <int-e> yay for abuse
04:34:02 <int-e> `url bin/@
04:34:05 <HackEso> https://hack.esolangs.org/repo/file/tip/bin/%40
04:34:28 <oerjan> i think `welcome uses it internally, anyway
04:34:37 <oerjan> (and i may have written that.)
04:34:46 <oerjan> (or rewritten.)
04:35:01 <int-e> oh it's a nitia thing
04:35:37 <int-e> exec "bin/@", $_ . " ? welcome"
04:35:46 <int-e> yeah it uses it all right
04:35:58 <int-e> not in the most obvious way... because perl
04:37:05 <int-e> `welcome int-e oerjan
04:37:06 <HackEso> int-e: oerjan: 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.)
04:37:16 * int-e shrugs
04:37:28 <int-e> I didn't know it did that though.
04:39:10 <oerjan> hm maybe it wasn't me.
04:39:44 <int-e> `culprits bin/welcome
04:39:46 <HackEso> oerjän oerjän ellioẗt nitïa
04:40:10 <int-e> huh
04:40:22 <oerjan> i wonder why the `hurl link doesn't show more than the initial
04:40:39 <int-e> exactly
04:41:00 <oerjan> although the rest were cleanups i think
04:41:27 <int-e> `hoag bin/welcome
04:41:28 <HackEso> ​<oerjän> chmod +x bin/*elcom* \ <oerjän> mv *elcom* bin \ <ellioẗt> rm bin/*elcom* \ Initïal import.
04:42:31 <int-e> Maybe hoag should replace that last one by <nitia> import.
04:44:54 <kmc> 22222222222222222222222
04:45:07 <int-e> boring cat
04:45:17 <shachaf> oerjan: I meant the correct splitting, yep.
04:45:52 <shachaf> int-e: hoag?
04:46:08 <oerjan> `1 @ shachaf quote shachaf
04:46:10 <HackEso> 1/15:shachaf: 594) <shachaf> VMS Mosaic? <shachaf> I hope that's not Mosaic ported to VMS. <shachaf> Hmm. It's Mosaic ported to VMS. \ 604) * Sgeo|web wants to see elliott be wrong about something <elliott> Sgeo|web: That literally never happens. <shachaf> Sgeo|web: There you go. A great example. \ 608) <shachaf> You should get kmc in this channel. kmc has good quotes. <shachaf> `quote kmc <HackEgo> 686) <kmc> COCKS [...] <kmc> truly coc
04:46:11 <shachaf> I assume hoag, hog, hoat, etc. should just be deleted.
04:46:15 <oerjan> that should work
04:46:25 <shachaf> oerjan: But some IRC clients only hilight a line if your nick is at the beginning.
04:46:32 <oerjan> ah
04:46:45 <oerjan> EWONTFIX
04:47:02 <int-e> shachaf: that would just sow confusion
04:47:11 <shachaf> Don't you hate it when a function sets errno to EWONTFIX?
04:48:03 <int-e> `rot13 sow hoag
04:48:06 <HackEso> fbj ubnt
04:48:32 <shachaf> So my SAT solver does 2-watched literals.
04:48:41 <shachaf> Shockingly, it doesn't help that much for 3SAT.
04:48:42 <int-e> not very pronouncible, sadly
04:48:53 <shachaf> (Without CDCL, anyway.)
04:48:55 <int-e> ...
04:49:36 <shachaf> It's almost like int-e isn't that shocked.
04:49:44 <int-e> it may be cheaper to just statically by literal for 3SAT
04:49:54 <int-e> +index
04:50:06 <shachaf> What do you mean?
04:50:11 <shachaf> Just watch all three, or something else?
04:50:20 <int-e> because the difference between walking 2 lists or 3 lists is small and you save the maintenance overhead
04:50:37 <int-e> But I'd expect indexing to still be important.
04:50:43 <shachaf> Sure.
04:50:54 <shachaf> But if you learn clauses by resolution they can get much longer presumably.
04:51:06 <int-e> Of course they can
04:51:14 <int-e> look at the reduction from SAT to 3SAT
04:51:29 <shachaf> Yep.
04:51:38 <int-e> Sorry
04:51:52 <int-e> I read a negation into that and there wasn't any.
04:51:56 <shachaf> I mean, in practice, I imagine that 2WL could plausibly help quite a bit for 3SAT once I learn clauses.
04:52:05 <shachaf> Ah.
04:54:03 <int-e> Do RL SAT solvers bother with maintaining extra data structures for clauses of size 2?
04:54:36 -!- xkapastel has quit (Quit: Connection closed for inactivity).
04:54:39 <int-e> (I'm sure Minisat doesn't. But others may...)
05:00:19 <int-e> shachaf: Btw, actually the ... was me being confused. Mainly I was wondering whether you just walk all clauses instead, which I imagine would be quite inefficient.
05:01:37 <shachaf> Oh, I meant 2-watch being a small optimization over 3-watch.
05:01:57 <shachaf> It's certainly a big optimization over entire-instance-watch.
05:02:11 <shachaf> I assume no solver does that.
05:02:27 <int-e> yeah
05:02:59 <int-e> Though I'd add "practical" or "competetive" to the mix :)
05:03:27 <shachaf> Oh, sure.
05:03:36 <shachaf> In fact I wrote a solver that did that before upgrading it to 2WL.
05:03:51 <shachaf> What should I implement next?
05:03:55 <int-e> . o O ( generate all assignments and check... could be a viable approach for golfing )
05:04:06 <shachaf> * CDCL * Restarts * Variable-choosing heuristics like VSIDS
05:04:19 <shachaf> * backjumping? Probably that makes more sense after CDCL
05:04:30 <int-e> restarts make no sense without heuristics
05:04:36 <shachaf> Yes they do.
05:04:41 <int-e> or clause learning
05:04:57 <int-e> oh you mean because you actually learn polarities
05:04:58 <int-e> hmm
05:05:01 <shachaf> No, not even that.
05:05:12 <int-e> hmm?
05:05:16 <shachaf> Even if you restart fresh each time.
05:05:28 <int-e> do you select variables at random?
05:05:41 <shachaf> That's what I had in mind.
05:05:45 <int-e> oh.
05:05:48 <shachaf> Of course if it's deterministic you don't get too much.
05:06:00 <int-e> right
05:06:01 <shachaf> But your choices (variable order, initial assignment) have a huge impact. I was surprised at how much.
05:06:26 <int-e> but I think there's still a grain of truth
05:06:26 <shachaf> The original Luby paper was about Las Vegas algorithms, of course, which don't share any state.
05:06:46 <int-e> restarts need a heuristic whether your current run is a lucky or an unlucky one?
05:07:03 <shachaf> Or you just do Luby.
05:07:16 <shachaf> I bet Luby would speed up an extremely naive solver that made random choices quite a bit on a lot of problems.
05:10:46 <int-e> Hmm. Sounds reasonable.
05:15:42 <shachaf> http://www.cs.toronto.edu/~fbacchus/csc2512/Lectures/2013Readings/Skallah_Empirical_Study_SAT_Solvers.pdf answers this question, I guess.
05:15:53 <shachaf> CDCL has the biggest impact.
05:37:41 -!- oerjan has quit (Quit: Nite).
05:58:21 -!- atslash has joined.
06:51:29 <b_jonas> oerjan: nice
07:00:47 <b_jonas> oerjan: also, the welcome scripts using bin/@ is nicely esoteric and overcomplicated. I assumed they'd just echo -n "$1${1+: }" until I read the code.
07:00:53 -!- b_jonas has quit (Quit: leaving).
07:43:44 <esowiki> [[User:Quadril-Is]] N https://esolangs.org/w/index.php?oldid=67073 * Quadril-Is * (+259) Created page with "Hello. I actually use many usernames, one for every site. Mostly, just one exception. No, it's not here. I would put some brainffffffffffffffff.....you know...anyways, i would..."
07:51:36 -!- imode has quit (Ping timeout: 240 seconds).
07:53:15 <int-e> Hmm, that November Ponder This challenge... I'm finding that getting to 900,000,000 fairly easy, but reaching the actual target 923,062,279 is not.
07:58:27 <int-e> But I guess that's fine... the October challenge was pretty easy.
08:09:05 <jix> in my sat solver, I handle binary clauses completely separately, i.e. for each literal I have a binary clause watchlist and a binary clause is only stored by being present in both its literals binary clause watchlists
08:10:07 <jix> IIRC some other solvers do a similar thing but use their normal watch lists, having a special clause reference value for binary clauses to indicate that the clause isn't actually stored anywhere else
08:11:16 <jix> (there already is a place to store the other literal in the watchlist when blocking literals are used)
08:28:56 <esowiki> [[Whitespace]] https://esolangs.org/w/index.php?diff=67074&oldid=50543 * Quadril-Is * (+1504) Actually adding information.
08:34:29 -!- xkapastel has joined.
08:44:47 <esowiki> [[Whitespace]] https://esolangs.org/w/index.php?diff=67075&oldid=67074 * Quadril-Is * (+134) /* I/O */ Completed the section
08:47:56 <esowiki> [[Whitespace]] https://esolangs.org/w/index.php?diff=67076&oldid=67075 * Quadril-Is * (+231) /* Stack manipulation */ Started working on the section
08:48:12 <esowiki> [[Whitespace]] https://esolangs.org/w/index.php?diff=67077&oldid=67076 * Quadril-Is * (-85) /* Ending the program */ Deleted section, it was part of flow control
08:51:12 <esowiki> [[Whitespace]] https://esolangs.org/w/index.php?diff=67078&oldid=67077 * Quadril-Is * (+71) /* Stack manipulation */ Resumed and completed after deleting end of program section
08:53:22 <esowiki> [[Whitespace]] https://esolangs.org/w/index.php?diff=67079&oldid=67078 * Quadril-Is * (+170) /* Arithmetic */ Started on this section. Gonna take a break for now.
09:16:24 -!- LKoen has joined.
09:36:41 <int-e> `? device
09:36:42 <HackEso> device? ¯\(°​_o)/¯
09:38:00 <int-e> `learn A device is a browser session. Please verify your device.
09:38:05 <HackEso> Learned 'device': A device is a browser session. Please verify your device.
10:03:26 <int-e> `complain
10:05:25 <HackEso> No output.
10:14:36 -!- LKoen has quit (Remote host closed the connection).
10:15:55 <int-e> `5 '
10:15:56 <HackEso> ​/hackenv/bin/`: eval: line 5: unexpected EOF while looking for matching `'' \ /hackenv/bin/`: eval: line 6: syntax error: unexpected end of file \ /hackenv/bin/`: eval: line 5: unexpected EOF while looking for matching `'' \ /hackenv/bin/`: eval: line 6: syntax error: unexpected end of file \ /hackenv/bin/`: eval: line 5: unexpected EOF while looking for matching `'' \ /hackenv/bin/`: eval: line 6: syntax error: unexpected end of file \ /ha
10:16:09 <int-e> `5 \'
10:16:11 <HackEso> 1/2:1085) <zzo38> No, you are mix up. Universe is the, made of spacetime, and of mathematics; not "kind of a dick" and so on. \ 904) <kmc> the pokémon theme is very similar to eye of the tiger and not as good \ 353) <Sgeo_> Something about faiing a asanity check <Sgeo_> sanity <Sgeo_> faliling <Sgeo_> failing \ 625) <oklopol> i don't lie, i tell stories <oklopol> there's no difference <oklopol> *a \ 58) <oklopol> Warrigal: what do you me
10:16:27 <int-e> `n
10:16:28 <HackEso> 2/2:an by 21?
10:17:27 -!- LKoen has joined.
10:24:08 -!- LKoen has quit (Remote host closed the connection).
10:25:51 -!- arseniiv has joined.
10:27:21 -!- LKoen has joined.
10:29:43 <fizzie> `le//rn source//Sources for HackEso can be found at https://github.com/fis/hackbot + https://github.com/fis/multibot + https://github.com/fis/umlbox .
10:29:45 <HackEso> Relearned 'source': Sources for HackEso can be found at https://github.com/fis/hackbot + https://github.com/fis/multibot + https://github.com/fis/umlbox .
10:32:22 <fizzie> (Context: Gregor had moved the official homes of all three projects to github, so I forked them there and rebased my local modifications on top. Bitbucket is sunsetting Mercurial support next year anyway.)
10:34:47 <esowiki> [[Whitespace]] https://esolangs.org/w/index.php?diff=67080&oldid=67079 * Quadril-Is * (+258) /* Arithmetic */ Sorry, I was busy trying to make a quine.
10:38:45 <esowiki> [[Whitespace]] M https://esolangs.org/w/index.php?diff=67081&oldid=67080 * Quadril-Is * (+1) /* Flow Control */ Oh no this is going to be a lot
10:40:44 <esowiki> [[Whitespace]] https://esolangs.org/w/index.php?diff=67082&oldid=67081 * Quadril-Is * (+155) /* Heap Access */
10:46:13 -!- LKoen has quit (Remote host closed the connection).
10:46:32 <esowiki> [[Whitespace]] https://esolangs.org/w/index.php?diff=67083&oldid=67082 * Quadril-Is * (+308) /* Flow Control */
10:47:16 -!- LKoen has joined.
10:47:20 <esowiki> [[Whitespace]] https://esolangs.org/w/index.php?diff=67084&oldid=67083 * Quadril-Is * (+18) /* Flow Control */
10:50:27 <esowiki> [[Whitespace]] https://esolangs.org/w/index.php?diff=67085&oldid=67084 * Quadril-Is * (+15) /* Flow Control */
10:52:54 -!- b_jonas has joined.
11:01:42 <esowiki> [[Whitespace]] https://esolangs.org/w/index.php?diff=67086&oldid=67085 * Quadril-Is * (+171) /* Flow Control */ Done.
11:18:39 -!- kspalaiologos has joined.
11:25:18 <esowiki> [[Whitespace]] M https://esolangs.org/w/index.php?diff=67087&oldid=67086 * Quadril-Is * (-11) Removed the stub.
11:25:47 -!- kspalaiologos has quit (Read error: Connection reset by peer).
11:29:37 -!- sebbu2 has changed nick to sebbu.
11:47:40 <esowiki> [[Earfuck]] N https://esolangs.org/w/index.php?oldid=67088 * Quadril-Is * (+434) My esolang.
11:48:31 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=67089&oldid=67060 * Quadril-Is * (+14) /* E */
11:58:40 -!- kspalaiologos has joined.
12:07:36 -!- kspalaiologos has quit (Ping timeout: 240 seconds).
12:11:04 -!- xkapastel has quit (Quit: Connection closed for inactivity).
12:47:28 -!- kspalaiologos has joined.
13:12:32 <int-e> . o O ( Is there a longer word for "prolific"? )
13:14:51 -!- arseniiv has quit (Ping timeout: 250 seconds).
13:18:32 -!- arseniiv has joined.
13:19:14 -!- Melvar has quit (Ping timeout: 240 seconds).
13:19:37 -!- Melvar has joined.
13:21:01 <esowiki> [[Whitespace]] https://esolangs.org/w/index.php?diff=67090&oldid=67087 * Quadril-Is * (+1371) Added examples.
13:23:31 <esowiki> [[D]] https://esolangs.org/w/index.php?diff=67091&oldid=63929 * Quadril-Is * (+29) /* Introduction */
13:26:44 <esowiki> [[B sharp]] N https://esolangs.org/w/index.php?oldid=67092 * Quadril-Is * (+304) Created page with "== Introduction == In music, there are a couple marks known as "sharp" or "flat". They raise or lower the pitch half a tone, respectively. Since B is half a tone below C, B sh..."
13:27:54 <esowiki> [[Joke language list]] https://esolangs.org/w/index.php?diff=67093&oldid=66669 * Quadril-Is * (+9) /* General languages */
13:28:07 <esowiki> [[Joke language list]] https://esolangs.org/w/index.php?diff=67094&oldid=67093 * Quadril-Is * (+5) /* General languages */
13:39:42 -!- LKoen has quit (Remote host closed the connection).
14:01:16 -!- xkapastel has joined.
14:23:58 -!- LKoen has joined.
14:26:20 <esowiki> [[Special:Log/newusers]] create * PythonshellDebugwindow * New user account
14:35:47 <esowiki> [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=67095&oldid=67048 * PythonshellDebugwindow * (+232)
14:38:22 <esowiki> [[Talk:Whitespace]] N https://esolangs.org/w/index.php?oldid=67096 * Quadril-Is * (+209) Created page with "Well, I think I've completed the page. Actually, maybe I can add a truth machine, but don't tell me to add a quine.--~~~~"
14:39:35 <esowiki> [[Whitespace]] https://esolangs.org/w/index.php?diff=67097&oldid=67090 * Quadril-Is * (+23) /* Examples */
14:44:19 -!- LKoen has quit (Remote host closed the connection).
14:44:47 -!- LKoen has joined.
14:50:31 <esowiki> [[Whitespace]] https://esolangs.org/w/index.php?diff=67098&oldid=67097 * Quadril-Is * (-23) /* Truth machine */
14:53:17 <esowiki> [[Whitespace]] https://esolangs.org/w/index.php?diff=67099&oldid=67098 * Quadril-Is * (+15) /* Hello, world! */
14:57:20 -!- arseniiv has quit (Ping timeout: 276 seconds).
15:12:19 -!- 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.”).
15:20:43 <esowiki> [[Whitespace]] https://esolangs.org/w/index.php?diff=67100&oldid=67099 * Quadril-Is * (+289) /* Examples */ Truth machine.
15:20:52 <esowiki> [[Whitespace]] https://esolangs.org/w/index.php?diff=67101&oldid=67100 * Quadril-Is * (-23) /* Truth machine */
15:21:02 <esowiki> [[Whitespace]] https://esolangs.org/w/index.php?diff=67102&oldid=67101 * Quadril-Is * (+2) /* Hello, world! */
15:30:56 -!- imode has joined.
15:43:27 <esowiki> [[IBC]] N https://esolangs.org/w/index.php?oldid=67103 * Quadril-Is * (+384) Created page with "'''IBC''', which stands for '''Impose Bill City'''. It was meant to never be coded in. ==Instructions== The file will always delete itself after it is run. {| class="wikitable..."
16:18:34 <esowiki> [[Talk:IBC]] N https://esolangs.org/w/index.php?oldid=67104 * Palaiologos * (+195) Created page with "If we could set randomize seed for the random generator, the language would be trivial to program --~~~~"
16:21:40 -!- arseniiv has joined.
16:46:06 <imode> it seems like concurrency primitives are the
16:46:14 -!- laerling_ has joined.
16:46:25 <imode> "missing link" for concatenative languages.
16:46:38 <imode> or at the very least languages like PostScript, Forth, etc.
16:47:25 <imode> to the point of treating small processes as the values you want to work with rather than smaller inconsequential pieces of data (raw numbers, etc.)
16:47:32 -!- laerling has quit (Quit: ZNC - https://znc.in).
16:48:24 -!- laerling_ has changed nick to laerling.
16:48:59 -!- laerling has quit (Client Quit).
16:52:58 -!- laerling has joined.
17:01:24 -!- ArthurStrong has joined.
17:15:03 <kspalaiologos> If anyone is interested
17:15:22 <kspalaiologos> new asm2bf release, featuring RLE de/compression built into the assembler
17:25:45 <imode> https://www.youtube.com/watch?v=iuC_DDgQmsM
17:30:17 -!- LKoen has joined.
17:44:51 <esowiki> [[Special:Log/newusers]] create * Js-on * New user account
17:52:41 <esowiki> [[Truth-machine]] https://esolangs.org/w/index.php?diff=67105&oldid=66233 * Palaiologos * (+609)
17:55:20 <esowiki> [[Brainfuck code generation]] https://esolangs.org/w/index.php?diff=67106&oldid=35781 * Palaiologos * (+60)
18:00:13 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=67107&oldid=67095 * Js-on * (+220) /* Introductions */
18:00:25 -!- Cale has quit (Ping timeout: 250 seconds).
18:01:29 -!- LKoen has quit (Remote host closed the connection).
18:05:34 -!- LKoen has joined.
18:11:48 <esowiki> [[User:Js-on]] N https://esolangs.org/w/index.php?oldid=67108 * Js-on * (+612) About the user js-on
18:13:45 -!- Cale has joined.
18:32:47 -!- grumble has quit (Read error: Connection reset by peer).
18:34:17 -!- grumble has joined.
18:38:45 <kspalaiologos> new brainfuck programs to waste time on?
18:38:46 <kspalaiologos> any ideas?
18:53:09 -!- ArthurStrong has quit (Quit: leaving).
19:06:44 -!- ArthurStrong has joined.
19:51:02 -!- unlimiter has joined.
19:58:54 -!- unlimiter has quit (Quit: Thanks all!).
20:08:22 -!- kspalaiologos has quit (Quit: Leaving).
20:15:09 -!- ArthurStrong has quit (Quit: leaving).
20:16:18 -!- LKoen has quit (Remote host closed the connection).
20:18:39 -!- LKoen has joined.
20:57:28 <arseniiv> someone knows how the art/sculpture genre is called where combinatorial objects of a particular kind are explored?
20:58:18 <arseniiv> for a primitive example, a hypothetical exhibition of Set cards
21:00:23 <arseniiv> I think I saw an en.wikipedia article about that with many pictures but I can’t find anything! Combinator(y|ic|ial) art, serial art, systems art, permutation art all seem to be near but not exactly what I look for
21:00:44 <arseniiv> it was called something, maybe someone heard
21:12:38 <imode> was it a physical sculpture?
21:17:55 <arseniiv> imode: let me check!
21:19:32 <arseniiv> imode: seems like it’s not; kinetic sculpture also isn’t that :(
21:25:10 <imode> I've been searching and found nothing of the sort, sorry. :(
21:26:41 <arseniiv> imode: thank you anyway!
21:27:46 <arseniiv> that’s a mystery
21:29:14 <fizzie> `` pwd # <- I've changed this at least temporarily, let's see what all breaks.
21:29:15 <HackEso> ​/hackenv/tmp
21:31:59 <fizzie> Well, found one thing that broke already.
21:32:08 <fizzie> `sled /hackenv/bin/paste//s|url tmp|url $HACKENV/tmp|
21:32:12 <HackEso> ​/hackenv/bin/paste//#!/bin/bash \ if [ "$1" ] && url "$1" 2>/dev/null # Save making a file when it already exists. \ then \ true \ else \ PASTENUM="$RANDOM" \ \ mkdir -p $HACKENV/tmp/paste \ \ url $HACKENV/tmp/paste/paste."$PASTENUM" \ cat -- "${1--}" > $HACKENV/tmp/paste/paste."$PASTENUM" \ fi
21:35:15 <fizzie> `sled /hackenv/bin/sport//s|tmp/|$HACKENV/tmp/|g
21:35:17 <HackEso> ​/hackenv/bin/sport//cat "${2:-/dev/stdin}" >$HACKENV/tmp/spout.raw; distort $HACKENV/tmp/spout.raw | spore "${1-1}"
21:35:55 <fizzie> `sled /hackenv/bin/spore//s|/hackenv/tmp/|$HACKENV/tmp/|g
21:35:57 <HackEso> ​/hackenv/bin/spore//cat "${2:-/dev/stdin}" > $HACKENV/tmp/spout; spam "${1-1}"
21:36:41 <fizzie> (That one was correct already, just made it a little more abstract. Maybe I'll do a LSC to do the ${HACKENV:-/hackenv} as suggested at some point.)
21:37:12 <fizzie> `sled /hackenv/bin/spam//s|/hackenv/tmp/|$HACKENV/tmp/|g
21:37:14 <HackEso> ​/hackenv/bin/spam//line="${1-$(cat $HACKENV/tmp/spline)}"; len="$(awk 'END{print NR}' $HACKENV/tmp/spout)"; echo -n "$line/$len:"; sed -n "${line}{p;q}" $HACKENV/tmp/spout; echo "$((line<len?line+1:1))" > $HACKENV/tmp/spline
21:38:29 <fizzie> `sled /hackenv/bin/just//s| tmp/| $HACKENV/tmp/|g
21:38:31 <HackEso> ​/hackenv/bin/just//grwp '\(is\|are\) just' | sed -e 's/:/ ::= /;s/$/\n/' > $HACKENV/tmp/just && url $HACKENV/tmp/just
21:42:40 <fizzie> `` rm /hackenv/bin/8$'\x0f'ball # I've no idea what this one was about
21:42:42 <HackEso> No output.
21:43:32 <fizzie> `sled /hackenv/bin/cbt//s|cat bin|cat $HACKENV/bin|
21:43:34 <HackEso> ​/hackenv/bin/cbt//cat $HACKENV/bin/"$1"
21:44:22 <fizzie> `sled /hackenv/bin/gs2c//s|python bin|python $HACKENV/bin|
21:44:24 <HackEso> ​/hackenv/bin/gs2c//echo "$@" | python $HACKENV/bin/gs2c.py
21:44:37 <fizzie> `sled /hackenv/bin/gs2x//s|python bin|python $HACKENV/bin|
21:44:38 <HackEso> ​/hackenv/bin/gs2x//python $HACKENV/bin/gs2.py "$@"
21:45:27 <fizzie> `sled /hackenv/bin/makelist//s|bin/|$HACKENV/bin/|
21:45:28 <HackEso> ​/hackenv/bin/makelist//if [[ "$1" == *" "* ]]; then exec makelist $@; fi; name="$1"; file="$HACKENV/bin/$name"; makelistlist "$name"; shift; cp bin/emptylist "$file"; for n in "$@"; do echo "$n" >> "$file"; done
21:45:33 <fizzie> `sled /hackenv/bin/makelist//s|bin/|$HACKENV/bin/|g
21:45:35 <HackEso> ​/hackenv/bin/makelist//if [[ "$1" == *" "* ]]; then exec makelist $@; fi; name="$1"; file="$HACKENV/$HACKENV/bin/$name"; makelistlist "$name"; shift; cp $HACKENV/bin/emptylist "$file"; for n in "$@"; do echo "$n" >> "$file"; done
21:45:40 <fizzie> ...whoops.
21:46:02 <fizzie> `sled /hackenv/bin/makelist//s|$HACKENV/$HACKENV/|$HACKENV/|
21:46:09 <HackEso> ​/hackenv/bin/makelist//if [[ "$1" == *" "* ]]; then exec makelist $@; fi; name="$1"; file="$HACKENV/bin/$name"; makelistlist "$name"; shift; cp $HACKENV/bin/emptylist "$file"; for n in "$@"; do echo "$n" >> "$file"; done
21:46:15 <fizzie> Computers are hard.
21:46:43 <fizzie> `` rm /hackenv/bin/script /hackenv/bin/scriptadd # executive override
21:46:45 <HackEso> No output.
21:47:53 <fizzie> `sled /hackenv/bin/?//s|cd wisdom|cd $HACKENV/wisdom|
21:47:55 <HackEso> ​/hackenv/bin/?//#!/bin/bash \ topic=$(echo "$@" | lowercase | sed "s/noo\+dl/nooodl/;s/ *$//") \ topic1=$(echo '`'"$topic" | sed 's/^`\(`\|$\)//') \ topic2=$(echo "$topic" | sed "s/s$//") \ cd $HACKENV/wisdom \ if [ \( "_$topic2"_ = "_ngevd"_ \) -a \( -e ngevd \) ]; \ then cat /dev/urandom; \ elif [ -e "$topic" ]; \ then cat "$topic"; \ elif [ -e "$topic1" ]; \ then cat "$topic1"; \ elif [ -e "$topic2" ]; \ then
21:48:28 <fizzie> `sled /hackenv/bin/grwp//s|cd wisdom|cd $HACKENV/wisdom|
21:48:30 <HackEso> ​/hackenv/bin/grwp//#! /bin/bash \ cd $HACKENV/wisdom; shopt -s dotglob; grep -R "$@" -- *
21:48:50 <fizzie> `sled /hackenv/bin/gwn//s|cd wisdom|cd $HACKENV/wisdom|
21:48:52 <HackEso> ​/hackenv/bin/gwn//cd $HACKENV/wisdom; shopt -s dotglob; grep -ERls "$@" -- *
21:48:59 <fizzie> `sled /hackenv/bin/gwni//s|cd wisdom|cd $HACKENV/wisdom|
21:49:01 <HackEso> ​/hackenv/bin/gwni//cd $HACKENV/wisdom; shopt -s dotglob; grep -ERlis "$@" -- *
21:49:24 <fizzie> `sled /hackenv/bin/pastewisdom//s|url wisdom|url $HACKENV/wisdom|
21:49:26 <HackEso> ​/hackenv/bin/pastewisdom//#!/bin/sh \ url $HACKENV/wisdom
21:49:48 <fizzie> `sled /hackenv/bin/plwd//s|cd wisdom|cd $HACKENV/wisdom|
21:49:49 <HackEso> ​/hackenv/bin/plwd//cd $HACKENV/wisdom; pled "$1" | sed '1s/^Rosebud!$/Roswbud!/'
21:50:07 <fizzie> `sled /hackenv/bin/slwd//s|cd wisdom|cd $HACKENV/wisdom|
21:50:14 <HackEso> ​/hackenv/bin/slwd//cd $HACKENV/wisdom; sled "$1" | sed '1s/^Rosebud!$/Roswbud!/'
21:51:27 <fizzie> `sled /hackenv/bin/wisdom//s|wisdom|$HACKENV/wisdom|g
21:51:28 <HackEso> ​/hackenv/bin/wisdom//#!/bin/sh \ f=$(find $HACKENV/wisdom -ipath "$HACKENV/wisdom/*$1*" -type f -print0 | shuf --random-source=/dev/urandom -z -n1); if [ -n "$f" ]; then echo -n "${f#$HACKENV/wisdom/}//"; cat "$f"; else echo "That's not wise."; fi | rnooodl
21:52:43 <fizzie> `sled /hackenv/bin/wiseguys//s|wisdom|$HACKENV/wisdom|
21:52:45 <HackEso> ​/hackenv/bin/wiseguys//hlnp -T '{desc}\n' $HACKENV/wisdom | cut -d' ' -f1 | sort | uniq -c | sed -e 's/^ *//' | sort -nr | head -n ${1:-10}
21:52:53 <fizzie> `wiseguys
21:52:55 <HackEso> 1713 <oerjän> \ 689 <shachäf> \ 309 <b_jonäs> \ 300 <boil̈y> \ 241 <int-̈e> \ 158 <rdocöc> \ 142 <hppavilion[1̈]> \ 139 <wob_jonäs> \ 98 <tsweẗt> \ 72 <mromän>
21:53:00 <fizzie> Still maintaining a healthy lead, I see.
21:54:14 <fizzie> `sled /hackenv/bin/slashlearn//s|wisdom/|$HACKENV/wisdom/|g
21:54:16 <HackEso> ​/hackenv/bin/slashlearn//sep="//" \ [[ "$1" == ?*"$sep"* ]] || { echo 'Usage: `le/[/]rn <key>//<wisdom>' >&2 ; exit 1; } \ key="$(echo "${1%%$sep*}" | lowercase)" \ value="${1#*$sep}" \ [ -e "$HACKENV/wisdom/$key" ] && verb="Relearned" || verb="Learned" \ echo "$value" > "$(echo-p "$HACKENV/wisdom/$key")" && echo -n "$verb '$key': $(echo "$value" | sed 's.^[ ].&.')"
21:54:48 <fizzie> `sled /hackenv/bin/wrl//s|wisdom/|$HACKENV/wisdom/|
21:54:50 <HackEso> ​/hackenv/bin/wrl//url "$HACKENV/wisdom/$1"
21:55:08 <fizzie> `sled /hackenv/bin/wdit//s|wisdom/|$HACKENV/wisdom/|
21:55:10 <HackEso> ​/hackenv/bin/wdit//edit "$HACKENV/wisdom/$1"
21:56:14 <fizzie> `sled /hackenv/bin/whoops//s|wisdom/|$HACKENV/wisdom/|
21:56:16 <HackEso> ​/hackenv/bin/whoops//OLD="$HACKENV/wisdom/$1"; [ -z "$1" ] && OLD="$(lastfiles)"; NEW="${OLD}s"; if [ -f "$NEW" ]; then echo "«${NEW}» already exists"; exit 1; fi; mv "$OLD" "$NEW" && echo "«${OLD}» -> «${NEW}»"
21:57:15 <fizzie> In retrospect, it might have been smart to add one layer of indirection, to make the wisdom location independent of $HACKENV. Oh well.
21:57:30 <fizzie> `sled /hackenv/bin/cwlprits//s|wisdom/|$HACKENV/wisdom/|
21:57:32 <HackEso> ​/hackenv/bin/cwlprits//culprits "$HACKENV/wisdom/$1"
21:58:13 <fizzie> `sled /hackenv/bin/dowg//s|wisdom/|$HACKENV/wisdom/|
21:58:15 <HackEso> ​/hackenv/bin/dowg//doag "$HACKENV/wisdom/$1"
21:58:33 <fizzie> `sled /hackenv/bin/footnote//s|wisdom/|$HACKENV/wisdom/|
21:58:35 <HackEso> ​/hackenv/bin/footnote//cat "$HACKENV/wisdom/footnote $1"
21:59:36 <fizzie> `sled /hackenv/bin/forget//s|wisdom/|$HACKENV/wisdom/|g
21:59:37 <HackEso> ​/hackenv/bin/forget//#!/bin/sh \ for n; do if [ lethe = "$n" ]; then rm -f "$HACKENV/wisdom/$n"; else rm-p "$HACKENV/wisdom/$n"; fi && echo "Forget what?"; done
22:00:06 <fizzie> `sled /hackenv/bin/howg//s|wisdom/|$HACKENV/wisdom/|
22:00:14 <HackEso> ​/hackenv/bin/howg//hoag "$HACKENV/wisdom/$1"
22:00:34 <fizzie> `sled /hackenv/bin/hwrl//s|wisdom/|$HACKENV/wisdom/|
22:00:35 <HackEso> ​/hackenv/bin/hwrl//hurl "$HACKENV/wisdom/$1"
22:07:33 <fizzie> `sled /hackenv/bin/lastwisdoms//s|find .hg|find $HACKENV/.hg|;s|s=\^\.hg|s=^.*?.hg|
22:07:35 <HackEso> ​/hackenv/bin/lastwisdoms//find $HACKENV/.hg/store/data/wisdom -type f -print0 | xargs -0 /bin/ls -t | perl -pe 'use POSIX;chop;$d=strftime("%F",localtime((stat($_))[9]));s=^.*?.hg/store/data/wisdom/(.*).i$=\1 // =;s=^=/$d/ = if$d ne$p;$p=$d;s=_(.)=uc($1)=eg;s=~([0-9a-f][0-9a-f])=chr hex$1=eg'
22:08:33 <fizzie> `sled /hackenv/bin/leann//s|wisdom/|$HACKENV/wisdom/|
22:08:34 <HackEso> ​/hackenv/bin/leann//(($#==1)) && set -- "${1% *}" "${1#* }"; key=${1,,}; shift; cat <<< "${*,,}" > "$HACKENV/wisdom/$key" && echo "Learned «$key»"
22:09:31 <fizzie> `sled /hackenv/bin/learn//s|wisdom/|$HACKENV/wisdom/|
22:09:33 <HackEso> ​/hackenv/bin/learn//#!/bin/bash \ topic=$(echo "$1" | lowercase | sed 's/^\(an\?\|the\) //;s/s\?[:;,.!?]\? .*//') \ [ -e "$HACKENV/wisdom/$topic" ] && verb="Relearned" || verb="Learned" \ echo "$1" >"$(echo-p "$HACKENV/wisdom/$topic")" \ echo "$verb '$topic': $1"
22:13:31 <fizzie> `` for w in benvenuto bienvenido bienvenue bonvenon tervetuloa välkommen velkomin velkommen welcome welkom wercome willkommen добро-пожаловать; do sed -i -e 's|bin/[@?]|$HACKENV/&|g' /hackenv/bin/$w; done
22:13:34 <HackEso> No output.
22:14:11 -!- arseniiv has quit (Ping timeout: 252 seconds).
22:19:52 <fizzie> (That one wasn't actually correct; fixed it in post.)
22:20:54 <fizzie> `sled /hackenv/bin/!//s|exec ibin|exec $HACKENV/ibin|
22:20:56 <HackEso> ​/hackenv/bin/!//#!/bin/bash \ CMD=`echo -n "$1" | cut -d' ' -f1` \ ARG="$(echo -n "$1" | cut -d' ' -f2-)" \ exec $HACKENV/ibin/$CMD "$ARG$2"
22:21:56 <fizzie> `` rm '/hackenv/bin/*' # this one is just too dangerous
22:21:58 <HackEso> No output.
22:22:46 <fizzie> `sled /hackenv/bin/cmds//s|url bin|url $HACKENV/bin|
22:22:48 <HackEso> ​/hackenv/bin/cmds//url $HACKENV/bin
22:23:11 <fizzie> `sled /hackenv/bin/dobg//s|bin/|$HACKENV/bin/|
22:23:13 <HackEso> ​/hackenv/bin/dobg//doag "$HACKENV/bin/$1"
22:25:05 <fizzie> `sled /hackenv/bin/gs2c.py//s|bin/gs2.py|/hackenv/bin/gs2.py|
22:25:07 <HackEso> ​/hackenv/bin/gs2c.py//# gs2 compiler (version 0.2) \ # (c) nooodl 2014 \ \ import re \ import struct \ import sys \ \ if sys.platform == "win32": \ import os, msvcrt \ msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY) \ \ mnemonics = {} \ with open('/hackenv/bin/gs2.py') as f: \ for line in f: \ if '#=' in line: \ a, b = line.split('#=') \ a = re.findall(r'\\x(..)', a.strip()) \ b =
22:25:46 <fizzie> `sled /hackenv/bin/interp//s|exec ibin/|exec $HACKENV/ibin/|
22:25:48 <HackEso> ​/hackenv/bin/interp//#!/bin/bash \ CMD=`echo -n "$1" | cut -d' ' -f1` \ ARG="$(echo -n "$1" | cut -d' ' -f2-)" \ exec $HACKENV/ibin/$CMD "$ARG$2"
22:26:42 <fizzie> `sled /hackenv/bin/newcmd//s|bin/|$HACKENV/bin/|g
22:26:43 <HackEso> ​/hackenv/bin/newcmd//if [ -a "$HACKENV/bin/${1%% = *}" ];then exec echo "${1%% = *}: Already exists.";fi;echo "${1#* = }" > "$HACKENV/bin/${1%% = *}";chmod +x "$HACKENV/bin/${1%% = *}"
22:27:22 <fizzie> `` rm /hackenv/bin/randbin # for consistency with *
22:27:24 <HackEso> No output.
22:29:38 <fizzie> `` rm /hackenv/bin/show /hackenv/lib/dcc # this one just won't work
22:29:40 <HackEso> No output.
22:31:26 <fizzie> `sled /hackenv/bin/words//s|share/WordData|$ENV{'HACKENV'}/&|
22:31:27 <HackEso> ​/hackenv/bin/words//#!/usr/bin/perl \ use strict; use warnings; \ use v5.10; \ use open qw( :encoding(UTF-8) :std); \ use File::Basename 'dirname'; \ use Storable 'retrieve'; \ use List::Util qw(sum min); \ use Getopt::Long qw(:config gnu_getopt); \ BEGIN { \ eval { \ require Math::Random::MT::Perl; Math::Random::MT::Perl->import('rand'); \ }; \ #warn "Optional module Math::Random::MT::Perl not found.\n" if $@; \ } \ \ #con
22:32:03 <fizzie> `sled /hackenv/bin/8ball//s|share/|$HACKENV/share/|
22:32:09 <HackEso> ​/hackenv/bin/8ball//#!/bin/sh \ shuf -n 1 $HACKENV/share/8ballreplies
22:32:28 <fizzie> `sled /hackenv/bin/acronym//s|share/|$HACKENV/share/|
22:32:30 <HackEso> ​/hackenv/bin/acronym//w="${1:-tla}"; (for (( i=0;i<${#w};i++ )); do grep -i "^${w:$i:1}[a-z]*\$" $HACKENV/share/dict-words | shuf -n 1; done) | xargs
22:32:53 <shachaf> fizzie: whoa, what's all this?
22:33:10 <fizzie> `sled /hackenv/bin/addscowrevs//s|share/|$HACKENV/share/|g
22:33:12 <HackEso> ​/hackenv/bin/addscowrevs//echo $@ | xargs -n 1 | sort -n - $HACKENV/share/scowrevs -o $HACKENV/share/scowrevs
22:33:16 <shachaf> Is it for when people experiment with making files in the cwd?
22:33:24 <fizzie> shachaf: Yes, I'm trying out /hackenv/tmp as the work directory.
22:34:54 <fizzie> For the most part making things relative to $HACKENV, though for Python I can't've been bothered; anyway, there's definitely a lot of stuff already hardcoding /hackenv, so good enough.
22:34:58 <fizzie> `sled /hackenv/bin/airport-lookup//s|share/airports.dat|/hackenv/share/airports.dat|
22:35:00 <HackEso> ​/hackenv/bin/airport-lookup//#! /usr/bin/env python \ \ import csv \ import sys \ \ if len(sys.argv) < 3: sys.stderr.write('usage: airport-lookup any|name|iata|icao key\n'); sys.exit(1) \ kind, q = sys.argv[1], ' '.join(sys.argv[2:]) \ \ fieldnames = dict(name=1, iata=4, icao=5) \ if kind == 'any': fields = [1, 4, 5] \ elif kind in fieldnames: fields = [fieldnames[kind]] \ else: sys.stderr.write('unknown search type: %s\n' % kind); sys.e
22:36:42 <fizzie> `sled /hackenv/bin/autowelcome//s|share/|$HACKENV/share/|g
22:36:44 <HackEso> ​/hackenv/bin/autowelcome//[ "$1" == "on" ] && echo enabled > $HACKENV/share/autowelcome_status; [ "$1" == "off" ] && echo disabled > $HACKENV/share/autowelcome_status; echo "Autowelcome $(cat $HACKENV/share/autowelcome_status)."
22:37:14 <fizzie> `sled /hackenv/bin/complain//s|share/|$HACKENV/share/|
22:37:16 <HackEso> ​/hackenv/bin/complain//print_args_or_input "$@" >> $HACKENV/share/Complaints.mp3; echo Complaint filed. Thank you.
22:37:35 <fizzie> `sled /hackenv/bin/complaints//s|share/|$HACKENV/share/|
22:37:36 <HackEso> ​/hackenv/bin/complaints//wc -l $HACKENV/share/Complaints.mp3
22:38:04 <fizzie> `sled /hackenv/bin/list//s|share/|$HACKENV/share/|g
22:38:09 <HackEso> ​/hackenv/bin/list//date > $HACKENV/share/conscripts; culprits $HACKENV/share/conscripts | xargs -n 1 | awk '!x[$0]++' | xargs
22:38:49 <fizzie> `sled /hackenv/bin/maim//s|share/|$HACKENV/share/|
22:38:51 <HackEso> ​/hackenv/bin/maim//shuf -n 1 $HACKENV/share/maimery | sed "s/\$target/$1/"
22:42:51 <fizzie> `` rm -r /hackenv/good /hackenv/evil /hackenv/bin/good /hackenv/bin/evil # sorry
22:42:53 <HackEso> No output.
22:45:56 <fizzie> `sled /hackenv/bin/bookofeso//s|esobible|$HACKENV/esobible|g
22:45:58 <HackEso> ​/hackenv/bin/bookofeso//F="$(find $HACKENV/esobible -name "*$(echo "$1" | lowercase)*" -type f | shuf -n1)"; echo -n "${F#$HACKENV/esobible/}/" | rnooodl; cat "$F" | rnooodl
22:46:14 <fizzie> (Almost removed that, don't think it really gets used.)
22:48:33 <fizzie> `sled /hackenv/bin/mislearn//s|tmflry/|$HACKENV/tmflry/|
22:48:35 <HackEso> ​/hackenv/bin/mislearn//#!/bin/bash \ topic=$(echo "$1" | lowercase | sed 's/^\(an\?\|the\) //;s/s\?[:;,.!?]\? .*//') \ echo "$1" >"$HACKENV/tmflry/$topic" \ echo "Was lied to about '$topic': $1"
22:53:51 <fizzie> `fetch /hackenv/bin/tomfoolery https://hack.esolangs.org/get/bin/tomfoolery
22:53:52 <HackEso> 2019-11-16 22:53:52 URL:https://hack.esolangs.org/get/bin/tomfoolery [327/327] -> "bin/tomfoolery" [1]
22:54:07 <b_jonas> hi fizzie.
22:54:23 <fizzie> If we want to keep this, I will also need to fix edit at some point, otherwise it generates broken `fetch examples.
22:54:32 <b_jonas> fizzie: addquote and delquote would definitely break
22:54:48 <b_jonas> oh nice
22:54:55 <b_jonas> I see you're fixing some of the scripts
22:55:08 <b_jonas> fizzie: I meant to fix more scripts, but haven't got there yet
22:55:10 <b_jonas> was too slow
22:55:12 <b_jonas> thanks for helping
22:55:38 <fizzie> Yes, I've used some heuristics to pick up things that would likely break for bin, share, wisdom, ibin references.
22:56:01 <fizzie> (Didn't do quotes yet.)
22:56:07 <b_jonas> fizzie: I generally use "${HACKENV-/hackenv}/" to make them more robust in case future HackE?o incarnations don't set the variable or have whitespace in the value
22:57:04 <fizzie> Yeah, I saw that suggestion, just remembered it a little late. I might make a single out-of-band mega-patch for that.
22:57:18 <fizzie> (You mean "${HACKENV:-/hackenv}", right?)
22:58:09 <b_jonas> fizzie: shouldn't matter. if $HACKENV is set then it should be an absolute path, that's the point, so it can't be empty
22:58:26 <b_jonas> the colon makes a difference only if the var is set but empty
23:00:01 <fizzie> `` A=""; echo "[${A-foo}] [${A:-foo}] [${B-foo}] [${B:-foo}]"
23:00:08 <HackEso> ​[] [foo] [foo] [foo]
23:00:32 <b_jonas> oh darn it, now I keep typing commands in private message that don't owrk
23:00:46 <b_jonas> because I reference wisdom or quotes or bin with relative path
23:01:00 <b_jonas> `cat /hackenv/bin/card-by-name
23:01:01 <HackEso> ​#!/bin/sh \ exec perl -e 'open$I,"<",($ENV{HACKENV}//"/hackenv")."/share/mtg/allsets.txt"or die;$/=""; while(<$I>){/\A(?i)\Q$ARGV[0]/ and print}' "$1"
23:01:05 <b_jonas> `cat /hackenv/bin/whatis
23:01:06 <HackEso> ​#!/usr/bin/python3 \ import sys, os, re \ if len(sys.argv) <= 1: \ print("whatis what?") \ sys.exit(1) \ else: \ argorg = [] \ argfoldv = [] \ foundv = [] \ for arg in sys.argv[1:]: \ argorg.append(arg) \ argfoldv.append(arg.casefold()) \ foundv.append(False) \ with open(os.environ.get("HACKENV","/hackenv") + "/share/whatis", errors="surrogateescape") as whatisdb: \ for line in wha
23:01:09 <fizzie> Yes, it's kind of annoying.
23:01:24 <b_jonas> ^ template for when the directory is referenced in perl scripts or python scripts
23:01:34 <fizzie> I mean, one kind of fix would be to symlink /hackenv/tmp/bin -> /hackenv/bin and so on.
23:01:59 <b_jonas> fizzie: eww no
23:02:01 <b_jonas> too easy to break
23:02:15 <b_jonas> fizzie: have you consider what it would break if you made /hackenv not writable?
23:02:44 <b_jonas> I mean, make it not writable with chmod only, at the start of every command, but allow commands to chmod it writable explicitly
23:04:16 <b_jonas> any change would probably break _something_
23:05:31 <fizzie> Yes. Well, at least making the scripts $HACKENV-relative is not going to hurt even if we go back to cwd /hackenv. I don't know about the explicit writability. It might be a little weird.
23:05:38 <fizzie> `sled /hackenv/bin/addquote//s|quotes|${HACKENV-/hackenv}/quotes|
23:05:39 <HackEso> ​/hackenv/bin/addquote//#!/bin/sh \ [ "$1" ] || exit 1 \ printf "%s\n" "$1" >>${HACKENV-/hackenv}/quotes \ printf "%d) %s" $(qc | cut -d' ' -f1) "$1"
23:05:49 <b_jonas> sure, fixing the scripts is good
23:08:23 <fizzie> `fetch /hackenv/bin/delquote https://hack.esolangs.org/get/bin/delquote
23:08:24 <HackEso> 2019-11-16 23:08:24 URL:https://hack.esolangs.org/get/bin/delquote [271/271] -> "bin/delquote" [1]
23:09:41 <fizzie> `sled /hackenv/bin/pastequotes//s|url quotes|url ${HACKENV-/hackenv}/quotes|
23:09:43 <HackEso> ​/hackenv/bin/pastequotes//#!/bin/sh \ if [ "$1" ]; then quote "$1" | paste; else url ${HACKENV-/hackenv}/quotes; fi
23:10:22 <fizzie> `sled /hackenv/bin/qc//s|quotes|${HACKENV-/hackenv}/quotes|
23:10:23 <HackEso> ​/hackenv/bin/qc//#!/bin/sh \ wc -l ${HACKENV-/hackenv}/quotes
23:11:58 <fizzie> `sled /hackenv/bin/quotenums//s|quotes|${HACKENV-/hackenv}/quotes|
23:13:07 <HackEso> ​/hackenv/bin/quotenums//#!/bin/sh \ grep -P -i -n "$1" ${HACKENV-/hackenv}/quotes | cut -d : -f 1 | xargs
23:13:47 <fizzie> `sled /hackenv/bin/whoq//s|quotes|${HACKENV-/hackenv}/quotes|
23:13:49 <HackEso> ​/hackenv/bin/whoq//if [[ "$1" =~ ^[0-9]+$ ]]; then \ rev="$(hg blame ${HACKENV-/hackenv}/quotes | sed "$1{s/^ *//;s/:.*//;q};d")" \ if [[ -n "$rev" ]]; then \ hg log -r "$rev" -T "{desc}" \ else \ echo "$1: no such quote" \ fi \ else \ echo "usage: \`whoq N" \ fi
23:14:16 <fizzie> Incidentally, whoq should probably be using the scowrevs system.
23:15:17 <fizzie> `help
23:15:18 <HackEso> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch [<output-file>] <URL>" downloads files. Files saved to $HACKENV are persistent, and $HACKENV/bin is in $PATH. $HACKENV is a mercurial repository, "`revert <rev>" can be used to revert, https://hack.esolangs.org/repo/ to browse. $PWD ($HACKENV/tmp) is persistent but unversioned, /tmp is ephemeral.
23:15:46 <fizzie> Heh, I never really remember `run is actually a thing, because everyone always uses ``.
23:26:08 <b_jonas> fizzie: sure, but `run can be useful if you're somehow locked out because people delete the entire bin directory or something
23:26:15 <b_jonas> mind you, you can still `/bin/bash -csome command here
23:27:14 <fizzie> As far as I can tell, you can't, because it wants the command in a different argument. If an argument starts with -, it must be all options.
23:27:20 <fizzie> `/bin/bash -c"echo foo"
23:27:21 <HackEso> ​/bin/bash: -": invalid option \ Usage:/bin/bash [GNU long option] [option] ... \ /bin/bash [GNU long option] [option] script-file ... \ GNU long options: \ --debug \ --debugger \ --dump-po-strings \ --dump-strings \ --help \ --init-file \ --login \ --noediting \ --noprofile \ --norc \ --posix \ --rcfile \ --restricted \ --verbose \ --version \ Shell options: \ -ilrsD or -c command or -O shopt_option(invocation only) \ -
23:27:28 <fizzie> `/bin/bash -cecho foo
23:27:29 <HackEso> ​/bin/bash: - : invalid option \ allexport off \ braceexpand on \ emacs on \ errexit on \ errtrace off \ functrace off \ hashall on \ histexpand on \ history off \ ignoreeof off \ interactive-commentson \ keyword off \ monitor off \ noclobber off \ noexec off \ noglob off \ nolog off \ notify off \ nounset o
23:28:11 <fizzie> (I'm sure it's *possible* to unbork with sufficient effort, though.)
23:31:59 <b_jonas> ah ok
23:32:30 <b_jonas> in that case, perl -esystem'some command'
23:35:49 <b_jonas> or like `/usr/bin/perl -esystemq(some command)
23:35:51 <b_jonas> no
23:35:55 <b_jonas> like `/usr/bin/perl -esystem q(some command)
23:40:22 -!- sleepnap has joined.
2019-11-17
00:17:14 -!- zzo38 has joined.
00:17:30 <zzo38> Now I internet is fixed (although the DNS is not yet updated).
00:29:27 -!- oerjan has joined.
00:34:27 <b_jonas> `@ fizzie cat /hackenv/bin/slbd
00:34:28 <HackEso> fizzie: cd bin; sled "$1" | sed '1s/^Rosebud!$/Rosbbud!/'
00:35:12 <b_jonas> fizzie: ^ you've been sediting scripts in bin all day and you haven't ran into that, it's sort of funny
00:35:19 <b_jonas> looks like maybe we just don't need that command
00:37:19 <b_jonas> `cat /hackenv/ibin/1l
00:37:20 <HackEso> ​#!/bin/sh \ . lib/interp \ interp_file ./interps/1l/1l_a.bin
00:37:21 <b_jonas> `cat /hackenv/ibin/2l
00:37:21 <HackEso> ​#!/bin/sh \ . lib/interp \ interp_file ./interps/2l/2li.bin
00:37:28 <b_jonas> ^ thesse may need editing
00:38:50 <b_jonas> ``` set -e; cd "$HACKENV/ibin"; grep -Fl ". lib/interp" * # or maybe all of these
00:38:50 <HackEso> 1l \ 2l \ adjust \ asm \ axo \ bch \ befunge \ befunge98 \ bf \ bf16 \ bf32 \ bf8 \ bf_txtgen \ boolfuck \ c \ cintercal \ clcintercal \ cxx \ dimensifuck \ forth \ glass \ glypho \ haskell \ java \ kipple \ lambda \ lazyk \ linguine \ lua \ malbolge \ pbrain \ perl \ qbf \ rail \ rhotor \ sadol \ sceql \ sh \ slashes \ trigger \ udage01 \ underload \ unlambda \ whirl
00:38:54 <b_jonas> hmm
00:39:40 <b_jonas> `cat /hackenv/bin/karma
00:39:40 <HackEso> ​#!/bin/sh \ echo "$1 has $(lib/karma "$1") karma."
00:39:41 <b_jonas> `cat /hackenv/bin/karma+
00:39:41 <HackEso> ​#!/bin/sh \ echo "$1 now has $(($(lib/karma "$1")+1)) karma." | tee karma
00:39:42 <b_jonas> `cat /hackenv/bin/karma-
00:39:43 <HackEso> ​#!/bin/sh \ touch karma \ echo "$1 now has $(($(lib/karma "$1")-1)) karma."
00:40:10 <b_jonas> ^ these too probably
00:40:19 <b_jonas> yes, I know, I can edit those
00:40:50 <fizzie> `sled /hackenv/bin/slbd//s|cd bin|cd ${HACKENV-/hackenv}/bin|
00:40:51 <HackEso> ​/hackenv/bin/slbd//cd ${HACKENV-/hackenv}/bin; sled "$1" | sed '1s/^Rosebud!$/Rosbbud!/'
00:41:12 <fizzie> It is sort of funny. I even fixed a number of similar "cd bin; ..." things.
00:42:34 <fizzie> The karma thing is pretty clever, though I don't think scalling the full repository log really scales forever.
00:44:02 <fizzie> `slbd karma//s|lib/|${HACKENV-/hackenv}/lib/|
00:44:08 <HackEso> karma//#!/bin/sh \ echo "$1 has $(${HACKENV-/hackenv}/lib/karma "$1") karma."
00:45:55 <fizzie> `slbd karma+//s|lib/|${HACKENV-/hackenv}/lib/|
00:45:57 <HackEso> karma+//#!/bin/sh \ echo "$1 now has $(($(${HACKENV-/hackenv}/lib/karma "$1")+1)) karma." | tee karma
00:46:04 <fizzie> `slbd karma-//s|lib/|${HACKENV-/hackenv}/lib/|
00:46:05 <b_jonas> `karma+ fizzie
00:46:16 <HackEso> fizzie now has 1 karma.
00:46:17 <HackEso> karma-//#!/bin/sh \ touch karma \ echo "$1 now has $(($(${HACKENV-/hackenv}/lib/karma "$1")-1)) karma."
00:46:30 <b_jonas> `karma fungot
00:46:30 <fungot> b_jonas: and leave any other messages before that one arrives... fnord??
00:46:33 <HackEso> fungot has 0 karma.
00:47:16 <fizzie> Looks like the karma system saw most use around 2011.
00:47:48 <fizzie> Hmm, there's a number of increments for fungot. That's odd.
00:47:48 <fungot> fizzie: ( fnord of some sort, but it has the proper makefiles and such, arcus??!
00:51:37 <fizzie> Oh, right, because the repository history starst from 2012.
00:51:55 <kmc> that's some p. fancy bash-work
00:53:03 <b_jonas> yeah, the $[$(${ is nice
00:54:11 <b_jonas> HackEso: doesn't the tee target have to be changed as well?
00:54:13 <b_jonas> um
00:54:23 <b_jonas> fizzie: doesn't the tee output file have to be changed as well?
00:54:29 <b_jonas> it's a relative path
00:55:17 <fizzie> Oh, right. That's there so that the command writes something. Yes.
00:56:09 <fizzie> `` for d in + -; do sed -i -e 's|tee karma|tee ${HACKENV-/hackenv}/karma|' /hackenv/bin/karma$d; done
00:56:12 <HackEso> No output.
00:56:45 <fizzie> `` cd /hackenv/bin; rm '!'; ln -s interp '!' # just merging these two identical files
00:56:47 <HackEso> No output.
00:58:03 <b_jonas> `karma+ fizzie
00:58:16 <HackEso> fizzie now has 1 karma.
00:58:35 <b_jonas> yep, still 1, previous one didn't count
01:03:30 <oerjan> `dowg bin/!
01:03:32 <HackEso> No output.
01:03:42 <oerjan> `doag bin/!
01:03:44 <HackEso> No output.
01:03:49 <oerjan> argh
01:03:59 <fizzie> `dobg !
01:04:01 <HackEso> 12127:2019-11-17 <fizzïe> ` cd /hackenv/bin; rm \'!\'; ln -s interp \'!\' # just merging these two identical files \ 12093:2019-11-16 <fizzïe> sled /hackenv/bin/!//s|exec ibin|exec $HACKENV/ibin| \ 11880:2019-07-19 <oerjän> ` ln -s interp bin/\\! \ 11879:2019-07-19 <oerjän> ` mv bin/{\\!,interp} \ 11876:2019-07-17 <ais52̈3> ` sed -i -e \'s/echo/echo -n/\' \'bin/!\' \ 11875:2019-07-17 <ais52̈3> ` sed -i -e \'s/ARG"$/ARG$2"/\' \'bin/!
01:04:04 <fizzie> Yeah, it's pretty terribul.
01:04:36 <oerjan> i'm not entirely convinced this is an improvement.
01:04:53 <oerjan> `pwd
01:04:54 <HackEso> ​/hackenv/tmp
01:05:36 <oerjan> `ls
01:05:37 <HackEso> a.c \ a.out \ as-encoding \ asmbf-1.1.1 \ banana.txt \ compiled_brachylog.pl \ hexdump.hex \ input.brachylog \ jeval.whatis \ just \ karma \ le \ out \ OUT \ out.a \ out.a.hd \ out.a.xxd \ paste \ single-word-character-names \ spline \ spout \ spout.raw \ test.b \ test.sh \ tmp.txt \ v1.1.1.tar.gz
01:06:38 <oerjan> `ls ..
01:06:39 <HackEso> bin \ canary \ emoticons \ esobible \ etc \ f \ factor \ hw \ ibin \ interps \ karma \ le \ lib \ misle \ paste \ ply-3.8 \ quines \ quinor \ quotes \ share \ src \ stuff \ tmflry \ tmp \ wisdom
01:07:18 <oerjan> `` echo $PATH
01:07:19 <HackEso> ​/hackenv/bin:/usr/bin:/bin
01:07:44 <oerjan> oh you made le a symbolic link
01:07:56 <oerjan> i guess that works, although what if it's removed...
01:08:02 <oerjan> `` ls -dl le
01:08:05 <HackEso> lrwxrwxrwx 1 1000 1000 11 Nov 16 21:29 le -> /hackenv/le
01:08:15 <fizzie> I wasn't sure whether to make it a link or a directory.
01:08:45 <fizzie> Anyway, with the pwd-in-/hackenv/tmp/ setup there really isn't a way to make `foo/bar commands fully revert-able.
01:08:46 <oerjan> `` chmod a-w le
01:08:47 <HackEso> No output.
01:09:03 <oerjan> this should prevent some accidents
01:09:36 <oerjan> what do you mean, fulle revert-able?
01:09:44 <oerjan> *y
01:09:56 <oerjan> `` ls -dl le
01:09:57 <HackEso> lrwxrwxrwx 1 1000 1000 11 Nov 16 21:29 le -> /hackenv/le
01:09:57 <fizzie> Well, in the sense that if someone breaks it, you can't fix it with `revert.
01:10:01 <oerjan> argh
01:10:09 <oerjan> `` ls -dl ../le
01:10:13 <HackEso> dr-xr-xr-x 2 1000 1000 4096 Apr 7 2018 ../le
01:10:18 <oerjan> darn
01:10:32 <oerjan> `` chmod a+w le
01:10:33 <HackEso> No output.
01:11:48 <oerjan> argh, apparently symbolic links cannot be write-protected
01:15:52 <zzo38> Yes, you cannot change the permission of a symbolic link, I don't know why it is like that
01:16:56 <esowiki> [[Joke language list]] https://esolangs.org/w/index.php?diff=67109&oldid=67094 * Quadril-Is * (+42) /* General languages */
01:17:30 <esowiki> [[IBC]] https://esolangs.org/w/index.php?diff=67110&oldid=67103 * Quadril-Is * (+5)
01:17:43 <fizzie> Yeah, I'm not certain the benefit of having a bit less cruft in the repo is worth the hassle / breaking change. But I'm not sure it's not, either.
01:19:09 <esowiki> [[User talk:Quadril-Is]] N https://esolangs.org/w/index.php?oldid=67111 * Quadril-Is * (+189) Created page with "--~~~~ --~~~~"
01:19:51 <esowiki> [[IBC]] https://esolangs.org/w/index.php?diff=67112&oldid=67110 * Quadril-Is * (+40)
01:19:59 <fizzie> For ibin, I'll address those as an offline commit if we keep this configuration.
01:20:59 <fizzie> (I was thinking of making `interp to just cd /hackenv first, but it seems inconsistent to have those have a separate default cwd. Though you'd only notice when accessing files, which is maybe not that common.)
01:23:41 <esowiki> [[User:Quadril-Is]] https://esolangs.org/w/index.php?diff=67113&oldid=67073 * Quadril-Is * (+437)
01:26:50 <fizzie> Even if we do revert back to /hackenv as the default directory, I'd probably make `fetch (with no output file specified) write to tmp/ by default.
01:26:56 <fizzie> `slbd hello-world-in-any-language//s|hw/|${HACKENV-/hackenv}/hw/|g
01:26:58 <HackEso> hello-world-in-any-language//if [ -z $(tr [A-Z] [a-z] <<< "$1") ]; then echo "Hello, world!"; else if [ -f ${HACKENV-/hackenv}/hw/$(tr [A-Z] [a-z] <<< "$1") ]; then cat ${HACKENV-/hackenv}/hw/$(tr [A-Z] [a-z] <<< "$1"); else echo "Your language does not exist"; fi; fi
01:31:21 <esowiki> [[Stack]] https://esolangs.org/w/index.php?diff=67114&oldid=63100 * Quadril-Is * (+42) /* Usage in esolangs */
01:34:51 <oerjan> <fizzie> `` rm /hackenv/bin/8$'\x0f'ball # I've no idea what this one was about <-- it was to do a prank 8ball that gives the answer you want hth
01:36:53 <oerjan> <fizzie> Still maintaining a healthy lead, I see. <-- whee
01:40:15 -!- 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.”).
02:10:20 <b_jonas> healthy lead? I haven't met healthy lead since my childhood. mercury, lead, and even tin counts as poisonous now. zinc, copper and iron will follow them in a few years, and the electronics industry will have to make wires from silver.
02:18:47 <kingoffrance> the thing about magic 8 ball is if you get an answer you dont like, you just ask "but that last answer was wrong/no-ways permanent, right?"
02:19:04 <kingoffrance> repeat until magic 8 ball blesses you
02:20:32 <oerjan> b_jonas: iron seems unlikely given that it's an essential nutrient
02:22:31 <oerjan> kingoffrance: sorry, but the first answer takes precedence hth
02:22:55 <fizzie> "Four times he had declared that that accursed Lensman, whoever he might be, must be destroyed, and had mustered his every available force to that end, only to have his intended prey slip from his grasp as effortlessly as a droplet of mercury eludes the clutching fingers of a child."
02:23:15 <fizzie> These days, I don't think children play that much with droplets of mercury.
02:23:26 <oerjan> you think
02:23:52 <fizzie> (The quote was from Galactic Patrol, Edward E. Smith, published 1937.)
02:24:30 <oerjan> all i know about lensman is from the tvtropes page on lensman race
02:24:40 <fizzie> It's got that for sure.
02:24:46 <oerjan> *arms race
02:24:54 <kingoffrance> oerjan, do i have to purchase magic 8 ball, or can i just shake one inside packaging in a store ~20 years ago and have my future foretold?
02:25:04 <kingoffrance> how does "tithing" work
02:25:06 <fizzie> But the books have some other slightly old-fashioned bits too.
02:25:22 <fizzie> "For eight hours two hundred Rigellians stood at whining calculators, each solving course-and-distance problems at the rate of ten per minute."
02:25:51 <fizzie> "Then for hours bale after bale of cards went through the machine; thousands of records per minute. Occasionally one card would flip out into a rack, rejected."
02:26:40 <oerjan> kingoffrance: there are many free alternatives hth
02:27:41 <oerjan> fizzie: i think i've seen that quoted before
02:29:00 <fizzie> They've got faster-than-light travel, but haven't really invented computers.
02:34:50 <kingoffrance> well, "each solving..." they were the computers, they had initiated the process of outsourcing at that point
02:38:03 -!- Frater_EST has joined.
02:49:26 <b_jonas> oerjan: is it a nutrient in ion form, or in metalic form?
02:49:37 <b_jonas> or does that not matter?
02:51:05 <b_jonas> fizzie: not play as such, but I broke at least one mercury thermometer as a child by accident, and I think many children have done that
02:51:47 <b_jonas> I only have one last mercury thermometer now, if that one breaks then either I'll have to use one of these modern alcohol or electronic thermometers, or buy one from Ukraine or something
02:51:50 <oerjan> i think metallic does not occur naturally
02:53:35 <zzo38> I think EsoPost is a bit similar to 7
02:54:02 <oerjan> "Iron is both necessary to the body and potentially toxic." says wikipedia
02:54:20 <b_jonas> ornxka: right, but metalic iron is used in electronic radiation shields and cooking vessels and the like, and it's the metalic mercury, metalic tin, and metalic lead that is toxic and mostly banned
02:54:24 <b_jonas> argh
02:54:25 <b_jonas> oerjan: ^
02:54:50 <ornxka> pff i dont believe that for a second
02:55:06 <zzo38> I think many things that are necessary are toxic.
02:55:16 <oerjan> like oxygen
02:55:56 <ornxka> they say the poison makes the dose which is why i only eat very small amounts of lead at any given time
02:58:24 <oerjan> 's ok if it's small enough
02:59:18 <kmc> oxygen is very toxic
02:59:23 <oerjan> mercury accumulates in the body iirc so it has to be small enough in _total_ dose over a lifetime
02:59:36 <oerjan> not sure about lead, it's also a heavy metal
02:59:43 <kmc> when plants took over earth and filled the atmosphere with oxygen, it killed 90% of species in existence
03:00:14 <oerjan> kmc: [accurate count verification needed]
03:00:54 <oerjan> or a citation to actual science
03:01:03 -!- xkapastel has quit (Quit: Connection closed for inactivity).
03:01:06 <kmc> dunno
03:01:14 <kmc> my wife told me that and she usually knows what she's talking about
03:02:12 <oerjan> those people are the worst
03:03:02 <oerjan> let me just check wikipedia, that's infallible
03:04:22 <oerjan> "causing almost all life on Earth to go extinct.[dubious – discuss][5]" checks out
03:05:35 <kmc> lol
03:05:37 -!- Frater_EST has quit (Read error: Connection reset by peer).
03:06:51 -!- Frater_EST has joined.
03:07:45 <oerjan> from the talk page "The abstract of the paywalled source does not say rise in O2 caused extinctions. Rather, it notes that an extinction is observed in the fossil record, and suggests that hiccups in phosphorous availability was to blame."
03:14:02 <kmc> okay
03:14:10 <kmc> well maybe i'm wrong
03:16:32 -!- FreeFull has quit.
03:18:04 <esowiki> [[Whitespace]] https://esolangs.org/w/index.php?diff=67115&oldid=67102 * Quadril-Is * (+68) /* Hello, world! */
03:18:21 <esowiki> [[Whitespace]] https://esolangs.org/w/index.php?diff=67116&oldid=67115 * Quadril-Is * (-205) /* Cat program */
03:18:34 <esowiki> [[Whitespace]] https://esolangs.org/w/index.php?diff=67117&oldid=67116 * Quadril-Is * (-225) /* Truth-machine */
03:22:00 <oerjan> kmc: https://en.wikipedia.org/wiki/Talk:Great_Oxidation_Event#What_exactly_was_the_"catastrophe"_?
03:22:56 <oerjan> with a bit of crank near the end
03:23:21 <kmc> interesting
03:23:24 <kmc> thank you for informing
03:25:33 <oerjan> and later they changed the article title not to contain "catastrophe"
03:25:44 <esowiki> [[Talk:Whitespace]] https://esolangs.org/w/index.php?diff=67118&oldid=67096 * Quadril-Is * (+22)
03:26:00 <esowiki> [[Talk:Whitespace]] https://esolangs.org/w/index.php?diff=67119&oldid=67118 * Quadril-Is * (+95)
03:40:18 <esowiki> [[Whitespace]] https://esolangs.org/w/index.php?diff=67120&oldid=67117 * Quadril-Is * (+269) /* Cat program */
03:54:12 <esowiki> [[Ecstatic]] https://esolangs.org/w/index.php?diff=67121&oldid=39853 * Quadril-Is * (+81) /* truth machien */
04:01:34 <esowiki> [[User:Quadril-Is]] https://esolangs.org/w/index.php?diff=67122&oldid=67113 * Quadril-Is * (+131)
04:01:53 <esowiki> [[User:Quadril-Is]] https://esolangs.org/w/index.php?diff=67123&oldid=67122 * Quadril-Is * (+14) /* My esolangs */
04:06:52 <zzo38> How to improve the keyboard speed in DOSBOX? Also, how to capture the printer output in DOSBOX? Also, the BASIC code "IF VAL("1") = 1" is false when running in DOSBOX (but true on an actual DOS computer); why is that? (If I change it to "IF CINT(VAL("1")) = 1" then it works, though.)
04:16:34 <zzo38> (I only want to capture the data written to LPT1, and not try to interpret it at all.)
04:18:22 <zzo38> I wonder if there is some way of using TSR to do that
04:28:47 <esowiki> [[Quine]] https://esolangs.org/w/index.php?diff=67124&oldid=66690 * Quadril-Is * (+118) /* How to write quines */ corrected what quinify actually does
04:42:01 <esowiki> [[Whitespace]] https://esolangs.org/w/index.php?diff=67125&oldid=67120 * Quadril-Is * (+4) /* Truth-machine */
05:07:42 <zzo38> Do you know why VAL does that in DOSBOX?
05:13:38 <zzo38> I found out that for key codes, what I could do is in the program that reads them, use INP(96) instead of INKEY$ to read the keyboard during the main game loop (but use still using INKEY$ in menus, and when requesting text entry). It seems that INP(96) sometimes returns 224 instead of the scancode, but that isn't a problem since we can just save the previous scan code and use it if 224 is returned.
05:14:22 <esowiki> [[Quine]] https://esolangs.org/w/index.php?diff=67126&oldid=67124 * Quadril-Is * (-43) /* How to write quines */
05:17:03 <kmc> zzo38: I don't know
05:17:06 <kmc> is that in QBASIC?
05:17:41 <esowiki> [[User:Quadril-Is/secretpagebyquadrilspipp]] N https://esolangs.org/w/index.php?oldid=67127 * Quadril-Is * (+2) Created page with "hi"
05:19:40 <zzo38> kmc: Yes
05:20:19 <kmc> zzo38: how did you discover that?
05:21:00 <zzo38> I found that port 96 is the keyboard input, and then I tried and saw what happens
05:22:23 <zzo38> I now found that there are a few other programs using "POKE &H41A, PEEK(&H41C)" to clear the keyboard buffer, although I figured it out just by examining memory dumps
05:23:33 <zzo38> (To clear the keyboard buffer in this way, you will need "DEF SEG = 0" at first, unless segment 0 is already selected, which it might be if you want to read the shift states with PEEK(&H417).)
05:25:00 <kmc> how did you discover the thing about VAL, i mean
05:25:37 <zzo38> By trying it in DOSBOX. Entering a subtraction command shows that there is a difference of approx. 2e-16, which is why it does not compare as equal.
05:25:58 <zzo38> But on a real DOS computer my program worked; I had to change it to work on the emulator.
05:28:10 <zzo38> Do you know why it does that? I don't know why, but at least I know how to fix it
05:29:26 <zzo38> I don't know if that is also what causes some other programs to fail?
05:30:05 <kmc> so it's a floating point thing?
05:30:38 <kmc> i think there is a way to attach gdb to dosbox
05:30:43 <kmc> so you could step through the relevant code
05:30:54 <kmc> i have also used a freeware version of IDA to reverse engineer DOS programs
05:31:03 <zzo38> Yes, it seems like something to do with floating point
05:32:28 <kmc> maybe DOSBox does not properly emulate the weird 80-bit x87 floats
05:32:44 <kmc> i'd be surprised though. dosbox is pretty mature software
05:32:56 <kmc> and is used to run all kinds of dos programs
05:43:17 <zzo38> I also found that in DOSBOX the functions to adjust the date/time do not work; it is just ignored, and then retrieving the date/time returns the actual date/time instead.
05:43:52 <zzo38> I once tried some program I found to try to capture printer output, but it just caused DOSBOX to crash.
05:44:35 -!- atslash has quit (Ping timeout: 276 seconds).
05:45:51 <zzo38> But I think there would probably be some way to make it work, if the programs use the DOS function calls to make printer output rather than direct I/O.
05:48:19 <kmc> yaeh
05:48:20 <kmc> yeah
05:48:26 <kmc> a TSR should work in that case
05:53:34 -!- Frater_EST has quit (Read error: Connection reset by peer).
06:02:00 <int-e> `5 \'
06:02:07 <HackEso> 1/2:31) <oklopol> i'm my dad's unborn sister \ 492) <CakeProphet> monqy: help how do I use lambdabot to send messages to people. [...around half an hour later...] <CakeProphet> @messages <lambdabot> quicksilver said 1y 2m 18d 19h 54m 29s ago: you use @tell \ 453) <itidus20> software patents strike again <ais523_> that's got to be at least three times, now <ais523_> are they out yet? \ 881) <kmc> i fell in love with the first gimmick twitter
06:02:11 <int-e> `n
06:02:12 <HackEso> 2/2: account that i met who could appreciate georges bataille \ 266) <lament> elliott: well what i would do if i were omniscient and omnipotent would be to create an immortal woman with perfect tits and bang her for the rest of eternity
06:04:10 <oerjan> int-e: `5 and the like actually default to quote
06:04:14 <oerjan> `5
06:04:16 <HackEso> 1/2:481) <Phantom_Hoover> I keep asking random people for "friendship <thing>" and it's crippling \ 202) <j-invariant> I need a new desktop background <Gregor> j-invariant: Try http://codu.org/spinners.png (tiled) <j-invariant> uhrghoaudp \ 1217) <elliott> listen. listen. jesus has saved me from talking about undefined behaviour in C with you any more, and He could save you too. \ 121) <nooga> i think of languages as tools, there is no holy
06:06:09 <shachaf> `n
06:06:10 <HackEso> 2/2:grail of languages <olsner> even if there's no holy grail, that doesn't mean cups of crap is ok \ 847) <zzo38> Yes I am native English speaker, but it is Canadian English, not British English.
06:16:48 <esowiki> [[Unsquare]] N https://esolangs.org/w/index.php?oldid=67128 * Quadril-Is * (+1171) Created page with "'''Unsquare''' was named after Dave Brubeck's [https://www.youtube.com/watch?v=_yExwkQYcp0 Unsquare Dance]. Unsquare Dance is unusual in rhythm, and so is the esolang. ==Instr..."
06:24:40 <esowiki> [[Unsquare]] https://esolangs.org/w/index.php?diff=67129&oldid=67128 * Quadril-Is * (+41) /* Instructions */
06:25:03 <esowiki> [[Unsquare]] https://esolangs.org/w/index.php?diff=67130&oldid=67129 * Quadril-Is * (+44) /* Hello, world! */
06:25:25 <esowiki> [[Unsquare]] https://esolangs.org/w/index.php?diff=67131&oldid=67130 * Quadril-Is * (-1) /* Hello, world! */
06:28:05 <esowiki> [[Unsquare]] https://esolangs.org/w/index.php?diff=67132&oldid=67131 * Quadril-Is * (+52) /* Instructions */
06:32:15 <esowiki> [[Unsquare]] https://esolangs.org/w/index.php?diff=67133&oldid=67132 * Quadril-Is * (+35) /* Cat program */
06:34:17 <esowiki> [[User:Quadril-Is]] https://esolangs.org/w/index.php?diff=67134&oldid=67123 * Quadril-Is * (+38)
06:50:31 -!- imode has quit (Ping timeout: 265 seconds).
06:52:37 -!- oerjan has quit (Quit: Nite).
07:01:36 -!- xkapastel has joined.
07:11:24 <zzo38> Have you figured the computational class of EsoPost and how to convert programs to/from it?
07:12:56 <zzo38> I think there are some similarities to 7, but also differences. There is a data stack, a bit like frame in 7, although unlike in 7 you can also hold lists of commands.
07:14:35 <zzo38> A difference is that unlike 7 where the passive commands push the corresponding active commands, in EsoPost the passive commands push themself instead, and a separate command makes them active.
07:35:19 <esowiki> [[EsoPost]] https://esolangs.org/w/index.php?diff=67135&oldid=67072 * Zzo38 * (+1141) EsoPost II variant, and some more explanations and category
07:37:39 <b_jonas> zzo38: have you tried running qbasic in bochs instead of dosbox? I used bochs to run DOS programs, and found that it works quite well for all old programs. (not so well for some newer games.)
07:38:05 -!- kritixilithos has joined.
07:38:23 <zzo38> b_jonas: No, I don't have bochs in my computer
07:38:35 <b_jonas> I don't think I tried VAL("1") = 1 in particular
07:39:19 <zzo38> You can try typing that (with a question mark at first) in the immediate window to see what happens.
07:40:08 <b_jonas> I don't have that set up now either
07:40:10 <b_jonas> sorry
07:40:14 <zzo38> OK
07:40:15 <b_jonas> bochs that is
07:40:33 <b_jonas> that was back when I had the termbot experiment, that one ran DOS in bochs
07:46:16 <esowiki> [[EsoPost]] https://esolangs.org/w/index.php?diff=67136&oldid=67135 * Zzo38 * (+275)
07:49:20 <esowiki> [[EsoPost]] https://esolangs.org/w/index.php?diff=67137&oldid=67136 * Zzo38 * (+4)
07:54:37 <esowiki> [[EsoPost]] https://esolangs.org/w/index.php?diff=67138&oldid=67137 * Zzo38 * (+18)
08:47:31 <zzo38> Do you like ZZ Zero?
08:49:22 <zzo38> Now I implemented dark rooms, and also some other stuff, too
08:50:15 <zzo38> There is the option to use Chebyshev or Manhattan for torch light radius.
08:58:34 <esowiki> [[Unsquare]] https://esolangs.org/w/index.php?diff=67139&oldid=67133 * Quadril-Is * (+24)
09:00:55 <esowiki> [[Unsquare]] https://esolangs.org/w/index.php?diff=67140&oldid=67139 * Quadril-Is * (+24) /* Truth-machine */
09:01:51 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=67141&oldid=67089 * Quadril-Is * (+15) /* U */
09:25:51 -!- rodgort has quit (Quit: Leaving).
09:37:04 -!- rodgort has joined.
09:52:47 -!- kspalaiologos has joined.
09:53:38 <kspalaiologos> ``asmbf lbl 1/in_ r1/jz_ r1, 0/out r1/jmp 1
09:53:38 <HackEso> ​/srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: `asmbf: not found
09:53:53 <kspalaiologos> `asmbf lbl 1/in_ r1/jz_ r1, 0/out r1/jmp 1
09:53:53 <HackEso> ​+>+[>>>+<<+<<[>>->+<<<-]>>>[<<<+>>>-]<[->+<<[>>>-<<+<-]>[<+>-]>>[<->[-]]<[<<<+>>>-]<]>>[-]<<<<[>>+>+<<<-]>>[<<+>>-]>[[-]>>,>>>><<<<<<+>>[<<[-]<+>>>-]<<<[>>>+<<<-]>[<<<[-]>[-]>>>>>>>>[<<<<<<<<+>+>>>>>>>-]<<<<<<<[>>>>>>>+<<<<<<<-]>[-]]>>>>>>[-]<<<<<<]<<<[>>+>+<<<-]>>[<<+>>-]>[[-]>>.>>>>+<<<<<<<<<[-]>[-]>>>>>>>>[<<<<<<<<+>+>>>>>>>-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[-]<<<<<<]<<<[>>+>+<<<-]>>[<<+>>-]>[[-]<<<[-]>[-]>>]<<]
10:31:12 -!- kspalaiologos has quit (Quit: Quit).
10:31:37 -!- kspalaiologos has joined.
10:31:53 <kspalaiologos> I wonder
10:32:09 <kspalaiologos> should I create an article about my brainfuck toolchain on the wiki?
10:40:38 -!- LKoen has joined.
10:43:34 <Lykaina> hi
10:48:03 <kspalaiologos> Hi
10:55:52 -!- arseniiv has joined.
11:11:36 -!- LKoen has quit (Remote host closed the connection).
11:13:19 -!- LKoen has joined.
11:39:16 <b_jonas> kspalaiologos: that might help. the asmbf language you input probably counts as an esolang as well, unless you use it for something more practical than writing bf programs
11:39:58 <kspalaiologos> well, unironically I saw a casino using brainfuck just to "secure their stuff"
11:40:04 <kspalaiologos> so it might be practical to use it :p
11:40:16 <kspalaiologos> it's something like Gregor's C2BF
11:40:23 <kspalaiologos> but... kinda better
11:41:02 <myname> wait, what
11:42:35 <kspalaiologos> a small digital jewel safe :p
11:44:10 <myname> i don't get how you secure anything by using bf. i mean, even if you couldn't reverse engineer what it does, you could just use it?
11:49:13 -!- xkapastel has quit (Quit: Connection closed for inactivity).
12:00:34 <b_jonas> what?
12:00:52 <b_jonas> do you have a link about that?
12:01:10 <b_jonas> or is this a top secret thing that you saw when you broke into their system to get a jackpot so you can't tell us about it
12:11:49 <b_jonas> DMM reports that the Irregular Webcomic forums are down and he can't easily bring them up. We'll have to make some replacement somehow, because those forums are too useful. Luckily I downloaded much of the forum content recently, but hosting and moderating a forum is the hard part.
12:12:16 -!- kritixilithos has quit (Ping timeout: 260 seconds).
12:13:45 <kspalaiologos> just google it
12:13:54 <kspalaiologos> i remember the thread popping up on mazonkas' brainfuck computer
12:14:08 <kspalaiologos> on HackerNews obviously
12:17:57 -!- FreeFull has joined.
12:20:30 <b_jonas> kspalaiologos: so they're the ones paying you to write the brainfuck disassembler, because they don't have the source code?
12:20:40 <kspalaiologos> haha
12:21:12 <kspalaiologos> I wish someone paid me for that
12:21:36 <kspalaiologos> writing unit tests in brainfuck
12:21:39 <kspalaiologos> going to love that
12:21:54 <kspalaiologos> I need a memory manager tho
12:22:03 <kspalaiologos> I've been scratching my head for good three days
12:22:15 <kspalaiologos> thought about singly linked list, doubly linked list
12:22:32 <kspalaiologos> but the general problem is, I expect big amount of allocations and small block size
12:22:54 <kspalaiologos> so linked list is going to kill the performance a tiny bit
12:23:24 <kspalaiologos> and the global storage won't work
12:23:26 <kspalaiologos> obviously
12:23:45 <kspalaiologos> because small chunk size = a lot of allocation = many entries = need to reserve a lot of space = shitty performance
12:34:30 <kingoffrance> i believe xored lists you save some space, and easily relocatable, at expense of more complexity. i only say that because might be something space-saving is apropos
12:34:48 <kingoffrance> (apologies if you are well aware, i dont see them really "taught" but they are simple)
12:35:24 <kspalaiologos> xored lists?
12:35:46 <kingoffrance> see google/wikipedia/whatever xored linked list. there is probably surely better, im just saying might be a good fit
12:35:47 <kspalaiologos> if this involves xor operation, it's quite hard to implement
12:36:02 <kingoffrance> well, ive been looking for long time somewhere they would be apropos
12:36:05 <kspalaiologos> because my assembler doesn't quite support XOR
12:36:07 <kingoffrance> so i am biased towards "want to use"
12:36:47 <kspalaiologos> it's a cool idea,
12:37:03 <kspalaiologos> but #1: it involves bitwise xor - hard to implement in arithmetic-only assembly
12:37:27 <kspalaiologos> but #2: it doesn't solve entirity of problems with doubly linked list
13:04:48 <b_jonas> kspalaiologos: you can do xor lists with subtraction (modulo word size) just fine. you just have to get the signs right. not that I specifically endorse xor lists, or working in brainfuck, etc.
13:04:53 -!- kritixilithos has joined.
13:05:05 <kspalaiologos> lol
13:05:11 <kspalaiologos> well it
13:05:14 <kspalaiologos> 's tough stuff
13:05:36 <kspalaiologos> to use a subtraction/xor list
13:05:46 <kspalaiologos> I need to improve my algorithm so it keeps track of multiple nodes a time
13:05:56 -!- arseniiv has quit (Ping timeout: 276 seconds).
13:06:03 <kspalaiologos> it's going to take AGES of execution
13:09:32 <kspalaiologos> and by the way, segment adressing is live https://github.com/KrzysztofSzewczyk/asmbf/releases/tag/v1.1.3
13:11:09 -!- LKoen has quit (Remote host closed the connection).
13:12:59 -!- arseniiv has joined.
13:14:01 <b_jonas> xor lists are introduced in TAOCP 2.2.5 exercise 18 (this is odd, because that's before doubly linked lists are introduced), and its solution explicitly says that addition and subtraction modulo field size works too
13:14:09 -!- LKoen has joined.
13:32:44 -!- atslash has joined.
13:36:22 -!- LKoen has quit (Remote host closed the connection).
13:37:58 -!- atslash has quit (Ping timeout: 265 seconds).
13:38:20 -!- atslash has joined.
13:39:04 -!- LKoen has joined.
13:50:54 -!- LKoen has quit (Remote host closed the connection).
13:51:54 -!- LKoen has joined.
13:55:20 -!- LKoen has quit (Remote host closed the connection).
13:57:56 -!- LKoen has joined.
13:59:28 -!- atslash has quit (Read error: Connection reset by peer).
13:59:41 -!- atslash has joined.
14:15:23 -!- YamTok has joined.
14:15:29 <YamTok> Quick help!
14:16:06 <YamTok> I have ever wondered editing articles about esolangs with archived webpage's descriptions, such as L33t, and so on.
14:16:36 <YamTok> But first of all anyone knows policy of the wiki?
14:17:49 <YamTok> For example am I allowed to copy and paste (in pretty format) what official page of L33t says to <<https://esolangs.org/wiki/L33t>>?
14:18:12 <YamTok> I mean, bringing its specifications, e.g. commands, back.
14:18:49 <YamTok> Umm, I have to leave now becaus eI gotta go to bed.
14:19:19 <YamTok> Anyone replying to me, I'd like you to reply on my talk page so I can also see your replies.
14:19:30 <YamTok> <<https://esolangs.org/wiki/User_talk:YamTokTpaFa>>
14:19:34 <YamTok> Goodnight.
14:19:38 -!- YamTok has left.
14:27:24 <esowiki> [[User talk:YamTokTpaFa]] N https://esolangs.org/w/index.php?oldid=67142 * Fizzie * (+750) /* Policies */ new section
14:49:04 -!- kritixilithos has quit (Ping timeout: 260 seconds).
14:51:49 -!- kritixilithos has joined.
15:02:48 <kspalaiologos> oh gosh
15:02:49 <kspalaiologos> I
15:03:01 <kspalaiologos> 've been working on the Malbolge interpreter in Brainfuck
15:03:06 <kspalaiologos> using my asm2bf with a few addons
15:03:19 <kspalaiologos> It'
15:03:23 <kspalaiologos> s worse than a painful suicide
15:13:19 <int-e> maybe it's time to move on
15:14:18 <kspalaiologos> yeah
15:14:21 <kspalaiologos> I'll let it be
15:14:33 <kspalaiologos> somebody eventually will get interested in it and fix it
15:14:35 <esowiki> [[Special:Log/newusers]] create * DiamondKoopa * New user account
15:51:20 <esowiki> [[Special:Log/newusers]] create * Planet * New user account
15:52:47 <fizzie> Just so you know, I'm eyeing upgrading MediaWiki to a post-1.31 version, it might have some user-visible changes. In particular, the (non-default) CologneBlue and Modern skins are no longer shipped with MediaWiki; if I did the database right, 4 and 10 users have those explicitly enabled, respectively.
15:55:29 <kspalaiologos> to be honest
15:55:32 <kspalaiologos> it looks really cool
15:56:39 <b_jonas> upgrades? nice!
15:57:56 <fizzie> Well, first I'll need to finally upgrade from stretch to buster. (I mean, that's not literally a dependency, I just want to do them in that order.)
15:59:03 <kspalaiologos> my government's websites run ten years old apache
15:59:17 <kspalaiologos> c'mon even esoteric language wiki's better
15:59:50 <kspalaiologos> the problem could be, people maintaining government-related websites earn ~500$ a month
16:00:53 <b_jonas> fizzie: upgrading from stretch to buster is even better
16:01:01 <b_jonas> fizzie: does that upgrade HackEso too?
16:01:12 <b_jonas> the inside of HackEso that is, the virtual environment in which commands run
16:01:25 <fizzie> Not automatically, but I'll upgrade the container too.
16:01:35 <fizzie> It's probably a lot more straight-forward, because there isn't really much running in it.
16:01:46 <b_jonas> sure
16:04:15 <b_jonas> fizzie: also, can you install the package libdate-manip-perl inside fungot so I can do date subtractions conveniently?
16:04:15 <fungot> b_jonas: probably what i'm thinking today about token based languages rather than english from time to time.
16:04:19 <b_jonas> um
16:04:23 <b_jonas> inside HackEso I mean
16:04:27 <b_jonas> sorry, fungot
16:04:27 <fungot> b_jonas: so everything's a bit hazy on the details of the underlying language for now, if i wanted
16:04:36 <fizzie> Yes, for HackEso. For fungot, I think that'd be a little challenging.
16:04:36 <fungot> fizzie: i thought it sounded familiar. together they don't ring a bell?! i just wrote
16:04:47 <b_jonas> thanks
16:05:14 <kspalaiologos> this bot in befunge
16:05:17 <kspalaiologos> it's amazing
16:06:31 <kspalaiologos> ^show
16:06:31 <fungot> echo reverb rev rot13 rev2 fib wc ul cho choo pow2 source help hw srmlebac uenlsbcmra scramble unscramble asc ord prefixes tmp test celebrate wiki chr ha rainbow rainbow2 welcome me tell eval elikoski list ping def a thanks tmp2 8ball rreree rerere botsnack bf
16:06:47 <kspalaiologos> how can one invoke the command
16:06:49 <kspalaiologos> fungot, fib
16:06:49 <fungot> kspalaiologos: rosemary's baby is by far the most badass character in the field, the " current", and then
16:06:55 <kspalaiologos> ^fib
16:06:55 <fungot> 0.1.1.2.3.5.8.13.21.34.55.89.144.233.377.610.987.1597.2584.4181.6765.10946.17711.28657.46368.75025.121393.196418.317811.514229.832040.1346269.2178309.3524578.5702887.9227465.14930352.24157817.39088169.632459 ...
16:06:59 <kspalaiologos> a ha!
16:07:06 <fizzie> ^show fib
16:07:06 <fungot> >+10>+>+[[+5[>+8<-]>.<+6[>-8<-]+<3]>.>>[[-]<[>+<-]>>[<2+>+>-]<[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>[-]>+>+<3-[>+<-]]]]]]]]]]]+>>>]<3][]
16:07:19 <kspalaiologos> postfix RLE brainfuck?
16:07:31 <fizzie> Yes, with a bug that runs of >s were not RLE'd.
16:07:54 <kspalaiologos> why not prefix tho
16:07:58 <kspalaiologos> postfix notation is confusing
16:08:11 <fizzie> I guess. FWIW, it doesn't actually support that format as input.
16:08:18 <fizzie> It's just that ^show prints the internal representation.
16:08:19 <b_jonas> fungot, I'm quite sure Rosemary didn't have a baby
16:08:19 <fungot> b_jonas: ( dump " fred" " plugh" " xyzzy" " fnord" " 42") " b"
16:08:44 <b_jonas> kspalaiologos: because bfjoust has standardized postfix, so using postfix now would be confusing
16:08:53 <b_jonas> in fact I think people were using postfix even before bfjoust
16:08:55 <kspalaiologos> bfjoust?
16:08:58 <kspalaiologos> what is this
16:09:00 <b_jonas> see the wiki
16:09:30 <fizzie> Well, bfjoust also uses operators for the encoding.
16:09:33 <b_jonas> https://esolangs.org/wiki/BF_Joust
16:10:14 <kspalaiologos> this is
16:10:19 <kspalaiologos> actually dank
16:10:22 <kspalaiologos> I like it
16:12:01 <kspalaiologos> `show
16:12:05 <HackEso> ​/srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: show: not found
16:12:05 <kspalaiologos> ^show
16:12:06 <fungot> echo reverb rev rot13 rev2 fib wc ul cho choo pow2 source help hw srmlebac uenlsbcmra scramble unscramble asc ord prefixes tmp test celebrate wiki chr ha rainbow rainbow2 welcome me tell eval elikoski list ping def a thanks tmp2 8ball rreree rerere botsnack bf
16:12:15 <kspalaiologos> ^ wc blah blah blah
16:12:20 <kspalaiologos> ^wc blah blah blah
16:12:28 <kspalaiologos> ^show wc
16:12:28 <fungot> []
16:12:32 <kspalaiologos> umm
16:12:40 <fizzie> Uh.
16:12:44 <kspalaiologos> Time to fix it!
16:12:47 <b_jonas> oh right, fungot's user-defined commands
16:12:48 <fungot> b_jonas: you _are_ using scheme, not to program!
16:12:56 <b_jonas> I should add those to the whatisdb as well
16:13:33 <kspalaiologos> gimme a second
16:13:35 <kspalaiologos> I'll fix this command
16:13:50 -!- HackEso has quit (Remote host closed the connection).
16:14:03 <fizzie> Hmm, I don't think that was entirely intentional.
16:14:23 <b_jonas> oops
16:14:54 <fizzie> It should be fine. I just wasn't thinking of it.
16:22:00 <kspalaiologos> ^show
16:22:00 <kspalaiologos> fungot, are you alive?
16:22:00 <kspalaiologos> fizzie, he died
16:22:00 <fungot> echo reverb rev rot13 rev2 fib wc ul cho choo pow2 source help hw srmlebac uenlsbcmra scramble unscramble asc ord prefixes tmp test celebrate wiki chr ha rainbow rainbow2 welcome me tell eval elikoski list ping def a thanks tmp2 8ball rreree rerere botsnack bf
16:22:00 <fungot> kspalaiologos: second variable has 1 in its value, pack those to the registered event handlers. the clients only ever see names, never references, to objects.
16:22:03 <kspalaiologos> oh well
16:22:07 <kspalaiologos> it just took 20 seconds
16:22:27 <kspalaiologos> `show welcome
16:25:40 -!- HackEso has joined.
16:25:49 <arseniiv> ^unscramble 10
16:25:49 <fungot> 10
16:26:10 <arseniiv> ^unscramble noemy
16:26:10 <fungot> nyome
16:26:14 <arseniiv> hm?
16:26:25 <fizzie> ^scramble something
16:26:25 <fungot> smtignheo
16:26:30 <fizzie> ^unscramble smtignheo
16:26:30 <fungot> something
16:26:35 <arseniiv> ^unscramble opittnei
16:26:35 <fungot> oipeintt
16:26:45 <fizzie> It's a letter rearrangement scheme.
16:26:50 <fizzie> ^scramble 12345678
16:26:50 <fungot> 13578642
16:26:57 <arseniiv> ah, it’s a fixed one!
16:27:16 <fizzie> ^unscramble 12345678
16:27:16 <fungot> 18273645
16:27:17 <arseniiv> I thought it tries to find a word in a dictionary
16:27:26 <kspalaiologos> does fungot have RLE compressor builtin?
16:27:26 <fungot> kspalaiologos: this little excursion is going to work
16:27:45 <fizzie> In a sense.
16:27:50 <fizzie> ^def tmp bf +++++
16:27:50 <fungot> Defined.
16:27:52 <fizzie> ^show tmp
16:27:52 <fungot> +5
16:27:56 <kspalaiologos> fine
16:28:07 <fizzie> (But it doesn't accept the RLE form as input.)
16:28:40 <arseniiv> RLE is a great thing, at least in comparison with mass media
16:28:40 <kspalaiologos> so how do I program it
16:28:43 <kspalaiologos> when program is large
16:29:46 <kspalaiologos> we use str right?
16:29:58 <arseniiv> I’m currently steaming because of walking too near a working TV :(
16:30:26 <kspalaiologos> ^str 0 set >+<+[>[>[-]+<-]>[<+>>>>>>>>>>>[-]<[-]<<<<<<<<<-]>>>>>>>>>>>>>[<<<<<<<<<<<<<<+>>>>>>>>>>>>>>-]<<<<<<<<<<<<<<[>[-]+<-]>[<+>>>>>>>>>>>>>,<<<<[-]>>>>[<<<<+<<<<<<<+>>>>>>>>>>>-]<<<<<<<<<<<[>>>>>>>>>>>+<<<<<<<<<<<-]>>>>>>>>>>[-]++++++++++++++++++++++++++++++++<<<[<<<<<<+>>>>>>-]->>>[<<<<<<<<<-<+>>>>>>>>>>-]<<<<<<<<<<[>>>>>>>>>>+<<<<<<<<<<-]>[>>>>>>+<<<<<<[-]]<->>>>>>>[<<<<<<<->>>>>>>-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[>>>>>>+<<<<<<<<<<<<<<<
16:30:26 <fungot> Set: >+<+[>[>[-]+<-]>[<+>>>>>>>>>>>[-]<[-]<<<<<<<<<-]>>>>>>>>>>>>>[<<<<<<<<<<<<<<+>>>>>>>>>>>>>>-]<<<<<<<<<<<<<<[>[-]+<-]>[<+>>>>>>>>>>>>>,<<<<[-]>>>>[<<<<+<<<<<<<+>>>>>>>>>>>-]<<<<<<<<<<<[>>>>>>>>>>>+<<<<<<<<<<<-]>>>>>>>>>>[-]++++++++++++++++++++++++++++++++<<<[<<<<<<+>>>>>>-]->>>[<<<<<<<<<-<+>>>>>>>>>>-]<<<<<<<<<<[>>>>>>>>>>+<<<<<<<<<<-]>[>>>>>>+<<<<<<[-]]<->>>>>>>[<<<<<<<->>>>>>>-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[>>>>>>+<<<<
16:30:27 <kspalaiologos> ->>>>>>>>>[-]]<<<<<<<<-]<[>[-]+<-]>[<+>>>>>>>>>[-]>>[<<+<<<<<<
16:30:33 <kspalaiologos> oops its a bit too long
16:30:49 <arseniiv> hehehe
16:31:00 <fizzie> Yeah. There's a way to put in long programs, it's just very convoluted.
16:31:05 <fizzie> ^help
16:31:05 <fungot> ^<lang> <code>; ^def <command> <lang> <code>; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool
16:31:32 <kspalaiologos> ^ str 0 set >+<+[>[>[-]+<-]>[<+>>>>>>>>>>>[-]<[-]<<<<<<<<<-]>>>>>>>>>>>>>[<<<<<<<<<<<<<<+>>>>>>>>>>>>>>-]<<<<<<<<<<<<<<[>[-]+<-]>[<+>>>>>>>>>>>>>,<<<<[-]>>>>[<<<<+<<<<<<<+>>>>>>>>>>>-]<<<<<<<<<<<[>>>>>>>>>>>+<<<<<<<<<<<-]>>>>>>>>>>[-]++++++++++++++++++++++++++++++++<<<[<<<<<<+>>>>>>-]->>>[<<<<<<<<<-<+>>>>>>>>>>-]<<<<<<<<<<[>>>>>>>>>>+<<<<<<<<<<-]>[>>>>>>+<<<<<<[-]]<
16:31:40 <kspalaiologos> I'll move to esoteric blag
16:31:47 <kspalaiologos> because it's going to cause tons of spam
16:31:54 <fizzie> Basically, you'll want to: ^str 9 set abc ^str 9 add def ^str 9 add ghi ^def cmd bf str:9
16:32:13 <fizzie> And you'll have to move to /query fungot, it's not on other channels.
16:32:13 <fungot> fizzie: stupid " hello, little girly man." :)
16:32:21 <fizzie> fungot: Don't be rude.
16:32:21 <fungot> fizzie: none of them have published their codes. maybe a more graphical way to program is broken by design, in case anyone cares, gambit 4 threading is implemented on top of x-p
16:32:34 <kspalaiologos> pff
16:34:01 <kspalaiologos> works
16:34:05 <kspalaiologos> ^wc Hello, world.
16:34:05 <fungot> 13 1.
16:34:06 <arseniiv> I like fungot more than mass media idiots and jerks
16:34:06 <fungot> arseniiv: i just started the thing and hey presto, thanks heaps with " malloc"
16:34:22 <kspalaiologos> ^show wc
16:34:22 <fungot> >+<+[>[>[-]+<-]>[<+>11[-]<[-]<9-]>13[<14+>14-]<14[>[-]+<-]>[<+>13,<4[-]>4[<4+<7+>11-]<11[>11+<11-]>10[-]+32<3[<6+>6-]->3[<9-<+>10-]<10[>10+<10-]>[>6+<6[-]]<->7[<7->7-]<7[>7+<7-]>7[>6+<15->9[-]]<8-]<[>[-]+<-]>[<+>9[-]>2[<2+<7+>9-]<9[>9+<9-]>7+>2[-]<2[>2+<2-]>7+<16->-]>14[<15+>15-]<15[>[-]+<-]>[<+>9[-]>[<+<7+>8-]<8[>8+<8-]>7+>[-]<[>+<-]<8-]>15[<16+>16-]<16[>[-]+<-]>[<+>9[-]>4[<4+<7+>11-]<11[>11+<11-]>10[-]<3[<6+>6-]>3[<9-<+>10-]<
16:34:29 <kspalaiologos> it's fine
16:34:36 <kspalaiologos> looks like chinese to me
16:36:10 <b_jonas> oh, so that's what ^str is for?
16:36:17 <b_jonas> good to know
16:36:51 <b_jonas> kspalaiologos: you could also run bf on HackEso when it comes back of course
16:37:06 <kspalaiologos> sure
16:37:09 <kspalaiologos> I can run my asmbf here too
16:39:09 <b_jonas> `? kspalaiologos
16:39:10 <HackEso> kspalaiologos? ¯\(°​_o)/¯
16:39:29 <kspalaiologos> ha! he doesn't know me
16:42:40 <int-e> `learn kspalaiologos is addicted to brainfuck, but otherwise completely unknown.
16:42:43 <HackEso> Learned 'kspalaiologo': kspalaiologos is addicted to brainfuck, but otherwise completely unknown.
16:43:01 <kspalaiologos> my nick is too long
16:43:01 <kspalaiologos> lol
16:43:07 <fizzie> No, it's just the plural.
16:43:09 <fizzie> `whoops
16:43:10 <int-e> `` mv wisdom/kspalaiologo{,s}
16:43:10 <b_jonas> I think it should say something about secretly reverse engineering legacy brainfuck and malbolge code for a casino
16:43:11 <HackEso> mv: cannot stat 'wisdom/kspalaiologo': No such file or directory
16:43:12 <HackEso> mv: cannot stat 'wisdom/kspalaiologo': No such file or directory
16:43:26 <b_jonas> ha! it got you too
16:43:36 <b_jonas> it's $HACKESO/wisdom/ now
16:43:40 <fizzie> I'm pretty sure I fixed 'whoops' for that.
16:43:44 <int-e> `` mv ../wisdom/kspalaiologo{,s}
16:43:46 <HackEso> No output.
16:43:55 -!- imode has joined.
16:44:01 <int-e> kspalaiologos: it thinks it's a plural
16:44:06 <kspalaiologos> ah, fine
16:45:19 <int-e> Hmm, maybe we could have shortcuts $WISDOM and $BIN
16:45:37 <int-e> (those are the two most common directories we manipulate, I think)
16:45:58 <b_jonas> fizzie: whoops gets the filename from lastfiles, and lastfiles prints gets it from hg, so it's relative to repository root
16:46:01 <b_jonas> `lastfiles
16:46:04 <int-e> or... we could make symbolic links
16:46:06 <HackEso> wisdom/kspalaiologo \ wisdom/kspalaiologos
16:46:20 <fizzie> Ah, of course.
16:46:27 <int-e> `` ln -s ../wisdom ../bin ../quotes .
16:46:27 <HackEso> No output.
16:46:47 <b_jonas> NO!
16:46:58 <b_jonas> don't do that, that will result in some silent problems
16:47:07 <b_jonas> silent bugs
16:47:17 <fizzie> (The repository browser seems to have broken, for the file view portion.)
16:47:19 <b_jonas> things that appear to work but don't
16:47:26 <b_jonas> especially not for quotes
16:47:35 <b_jonas> `url
16:47:36 <HackEso> https://hack.esolangs.org/repo/
16:47:43 <b_jonas> `paste
16:47:50 <b_jonas> hmm
16:47:52 <b_jonas> `paste quotes
16:47:53 <HackEso> https://hack.esolangs.org/tmp/quotes
16:48:14 <HackEso> https://hack.esolangs.org/tmp/paste/paste.17325
16:48:40 <int-e> mm
16:48:46 <fizzie> File listing works, but the contents view doesn't.
16:49:13 <int-e> `` rm wisdom bin quotes # fine. maybe later.
16:49:14 <HackEso> No output.
16:49:36 <esowiki> [[User:Fizzie]] M https://esolangs.org/w/index.php?diff=67187&oldid=53471 * Fizzie * (+0) Post-upgrade edit test for 1.33.1.
16:49:58 <fizzie> Well, that side seems to be working.
16:50:12 <fizzie> There were a lot of new bundled extensions, which I didn't enable but could think of.
16:50:36 <fizzie> Right now the list is: CategoryTree CiteThisPage CodeEditor Gadgets ImageMap InputBox Interwiki LocalisationUpdate MultimediaViewer OATHAuth PdfHandler Poem ReplaceText SpamBlacklist SyntaxHighlight_GeSHi TitleBlacklist
16:50:39 <int-e> `pwd
16:50:40 <HackEso> ​/hackenv/tmp
16:50:47 <fizzie> All extensions bundled in the MediaWiki distribution that we don't enable.
16:52:00 <kspalaiologos> I've got it sorted out kinda
16:52:01 <kspalaiologos> ,[-------------------------------->[-]+>[-]<<[>>>>+<<<-]>[>>+<<->]<<,]>>>>[[>>+>+<<<-]>>>[<<<+>>>-]<<+>[<->[>++++++++++<[->-[>+>>]>[+[-<+>]>+>>]<<<<<]>[-]++++++++[<++++++>-]>[<<+>>-]>[<<+>>-]<<]>]<[->>++++++++[<++++++>-]]<[.[-]<]<[-]++++[>++++++++<-]>.[-]<<]
16:52:04 <kspalaiologos> this should work
16:52:07 <kspalaiologos> as a smaller version of wc
16:52:23 <kspalaiologos> ^def wc bf ,[-------------------------------->[-]+>[-]<<[>>>>+<<<-]>[>>+<<->]<<,]>>>>[[>>+>+<<<-]>>>[<<<+>>>-]<<+>[<->[>++++++++++<[->-[>+>>]>[+[-<+>]>+>>]<<<<<]>[-]++++++++[<++++++>-]>[<<+>>-]>[<<+>>-]<<]>]<[->>++++++++[<++++++>-]]<[.[-]<]<[-]++++[>++++++++<-]>.[-]<<]
16:52:23 <fungot> Defined.
16:52:35 <kspalaiologos> ^wc being addicted to brainfuck is cool
16:52:35 <fungot> 30 5
16:53:03 <kspalaiologos> wait a second
16:53:59 <kspalaiologos> ^def wc bf ,[-------------------------------->[-]+>[-]<<[>>>>+<<<-]>[>>+>+<<<->]<<,]>>>>[[>>+>+<<<-]>>>[<<<+>>>-]<<+>[<->[>++++++++++<[->-[>+>>]>[+[-<+>]>+>>]<<<<<]>[-]++++++++[<++++++>-]>[<<+>>-]>[<<+>>-]<<]>]<[->>++++++++[<++++++>-]]<[.[-]<]<[-]++++[>++++++++<-]>.[-]<<]
16:53:59 <fungot> Defined.
16:54:10 <kspalaiologos> ^wc it should count spaces as characters now
16:54:10 <fungot> 40 6
16:54:48 <fizzie> I wonder where the repo browser's error output ends up in.
16:54:53 <b_jonas> kspalaiologos: or you could use the http://www.ioccc.org/years.html#2019_burton entry for word counting. it's shorter.
16:55:20 <kspalaiologos> I have to write it in brainfuck
16:55:30 <kspalaiologos> obviously I could compile it to brainfuck
16:55:38 <kspalaiologos> using my glorious ANSI C89->brainfuck
16:55:44 <kspalaiologos> but it would take ages to enter into fungot
16:55:44 <fungot> kspalaiologos: they're getting disgusting". quite distinctive. please take it to orkut? sounds kinky.
16:57:06 <fizzie> Oh, there. "AttributeError: 'module' object has no attribute 'importmod'"
16:57:20 <kspalaiologos> ^wc it should count spaces as characters now
16:57:20 <fungot> 40 6
16:57:50 <kspalaiologos> ^wc it should count spaces as characters now
16:57:50 <fungot> 41 6
16:57:54 <kspalaiologos> oh c;mon
16:58:06 <kspalaiologos> ^wc it should count spaces as characters now
16:58:06 <fungot> 40 7
16:58:09 <kspalaiologos> perfect
16:59:27 <kspalaiologos> ^show
16:59:27 <fungot> echo reverb rev rot13 rev2 fib wc ul cho choo pow2 source help hw srmlebac uenlsbcmra scramble unscramble asc ord prefixes tmp test celebrate wiki chr ha rainbow rainbow2 welcome me tell eval elikoski list ping def a thanks tmp2 8ball rreree rerere botsnack bf
16:59:35 <kspalaiologos> ^wiki
16:59:35 <fungot> http://esolangs.org/wiki/
16:59:39 <kspalaiologos> ^show wiki
16:59:39 <fungot> +15[>+4>+7>+7>+8<4-]>3-.>-4..<2+7.<-2.-11..>2-3.<+3.>2-5.-3.<-4.>+2.<+6.<.<-.>3+.+3.<.<2+.>+4.>+2.+2.-2.<2.,[.,]
16:59:50 <fizzie> ^wiki Something
16:59:50 <fungot> http://esolangs.org/wiki/Something
17:00:09 <fizzie> Hmm, it should probably use https://, that's the canonical scheme now.
17:01:05 <b_jonas> oh
17:01:15 <kspalaiologos> I'll get that sorted out
17:01:17 <kspalaiologos> wait a second
17:01:45 <fizzie> FWIW, I strongly suspect that string output is from bf_txtgen.
17:02:08 <kspalaiologos> ^show wiki
17:02:08 <fungot> +15[>+4>+7>+7>+8<4-]>3-.>-4..<2+7.<-2.-11..>2-3.<+3.>2-5.-3.<-4.>+2.<+6.<.<-.>3+.+3.<.<2+.>+4.>+2.+2.-2.<2.,[.,]
17:02:12 <kspalaiologos> wait a second though
17:02:17 <b_jonas> `?? brainfuck
17:02:17 <kspalaiologos> why would we use these fancy loop
17:02:17 <HackEso> brainfuck is an esoteric programming language created to make the smallest possible compiler for a Turing-complete language. It is what introduces many people to esolangs, spawning a vast number of derivatives that we pretty much all despise. http://esolangs.org/wiki/Brainfuck
17:02:21 <b_jonas> apparently I didn't fix that one
17:03:20 <kspalaiologos> ^def wiki bf +[----->+++<]>+.++++++++++++..----.[-->+<]>++.-----------..[--->+<]>.[--->+<]>----.----.---.-----------.+++++++++++++.-------.++++++++++++.+[++>---<]>.---[----->+<]>.+++.-----------.--[->+++<]>.++[--->++<]>+.+[->+++<]>+.++.--.----[->+++<]>.,[.,]
17:03:20 <fungot> Defined.
17:03:30 <kspalaiologos> I could use my brainfuck cruncher
17:03:39 <kspalaiologos> but it's way more straightforward :p
17:03:55 <kspalaiologos> btw fizzie, would you like to help me a bit
17:04:08 <kspalaiologos> what I need is basically a brainfuck intepreter in befunge
17:04:14 <b_jonas> kspalaiologos: you could define it in unlambda. it's good for printing constant strings in which parenthesis are balanced.
17:04:14 <kspalaiologos> and fungot possibly has it
17:04:15 <fungot> kspalaiologos: why does that make the program do?" " fubar is an acronym.
17:04:36 <kspalaiologos> fungot doesnt support unlambda I guess
17:04:36 <fungot> kspalaiologos: scary. a girl with a mac and on bsd
17:04:58 <b_jonas> `?? brainfuck
17:04:58 <HackEso> brainfuck is an esoteric programming language created to make the smallest possible compiler for a Turing-complete language. It is what introduces many people to esolangs, spawning a vast number of derivatives that we pretty much all despise. https://esolangs.org/wiki/Brainfuck
17:05:02 <b_jonas> better
17:05:22 <b_jonas> ^ul (fungot doesnt support unlambda?)S
17:05:22 <fungot> fungot doesnt support unlambda?
17:05:27 <fizzie> Well, that's Underload.
17:05:32 <b_jonas> ^ul (it sure does. ):SS
17:05:32 <fungot> it sure does. it sure does.
17:05:34 <b_jonas> oh yeah
17:05:37 <b_jonas> I mean underload
17:05:38 <b_jonas> that one
17:05:50 <b_jonas> that's the one that's good at printing constant strings
17:06:00 <b_jonas> sorry
17:06:26 <fizzie> kspalaiologos: I think I made a standalone copy of the brainfuck interp in fungot for testing, but I can't find it.
17:06:26 <fungot> fizzie: come now, i settled with the knowledge that foo corresponds to the c library
17:07:39 <kspalaiologos> ^show
17:07:39 <fungot> echo reverb rev rot13 rev2 fib wc ul cho choo pow2 source help hw srmlebac uenlsbcmra scramble unscramble asc ord prefixes tmp test celebrate wiki chr ha rainbow rainbow2 welcome me tell eval elikoski list ping def a thanks tmp2 8ball rreree rerere botsnack bf
17:07:44 <kspalaiologos> ^rerere
17:07:46 <kspalaiologos> what is this
17:07:49 <kspalaiologos> ^show rerere
17:07:49 <fungot> ,.>,.<.>2,[.<.<.>3,]<.<.>.
17:08:01 <kspalaiologos> ^rerere abcdefgh
17:08:01 <fungot> abacbadcbedcfedgfehgfhgh
17:08:10 <kspalaiologos> ^rerere 123
17:08:10 <fungot> 121321323
17:08:27 <kspalaiologos> what is this
17:08:39 <kspalaiologos> ^pow2
17:08:39 <fungot> 1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 65536 131072 262144 524288 1048576 2097152 4194304 8388608 16777216 33554432 67108864 134217728 268435456 536870912 1073741824 2147483648 42949672 ...
17:08:49 <kspalaiologos> `show pow2
17:08:49 <HackEso> ​/srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: show: not found
17:08:53 <kspalaiologos> ^show pow2
17:08:53 <fungot> +2[[<+7[-<+7>]>[-<+<+>>]<[->+<]<-2.[-]<]+4[->+8<]>.[-]>>[-[>+2<-[>+2<-[>+2<-[>+2<-[>-8>+>[->+>+<2]+>>[<2->>[-]]<2[>+<-]>[-<+>]<4-[>+2<-[>+2<-[>+2<-[>+2<[-]]]]]]]]]]<[->+<]>+>[-<+>]>>]<3]
17:09:10 <kspalaiologos> ^ me
17:09:11 <kspalaiologos> ^me
17:09:11 * fungot
17:09:20 <kspalaiologos> ^me test
17:09:20 * fungot test
17:09:26 <fizzie> Oh, that's still unfixed. :/
17:09:33 <kspalaiologos> pff
17:09:36 <fizzie> It's not supposed to allow CTCP.
17:09:48 <fizzie> Just never gotten around to fixing it.
17:10:00 <kspalaiologos> ^eval
17:10:03 <kspalaiologos> ^eval 2 + 2
17:10:06 <kspalaiologos> ^eval + 2 2
17:10:10 <kspalaiologos> ^eval 2 + 2
17:10:15 <kspalaiologos> ^eval 2 2 +
17:10:19 <kspalaiologos> how do you use eval?
17:10:24 <kspalaiologos> it's brainfuck right?
17:10:29 <kspalaiologos> ^show eval
17:10:29 <fungot> ()!
17:10:47 <kspalaiologos> ^rainbow
17:10:51 <kspalaiologos> ^rainbow test
17:10:51 <fungot> test
17:11:23 <fizzie> I'm guessing ^eval is nonsense. It's defined in Underload, but it doesn't look useful.
17:11:36 <fizzie> Also I don't understand how the repo browser is configured, the setup is referring to a path that doesn't exist.
17:14:18 * arseniiv thinks the second law of thermodynamics is foreboding and is maybe the root of all evil
17:14:36 <b_jonas> kspalaiologos: no, the brainfuck eval command is ^bf
17:15:04 <fizzie> And the code's just from the standard "mercurial-common" package, so it should be compatible with the version of Python installed.
17:15:09 <fizzie> Maybe it needs something to be restarted.
17:16:21 <b_jonas> fizzie: have you started upgrading debian yet?
17:16:32 <fizzie> I've upgraded the outer shell, and MediaWiki, but not the container.
17:16:54 <b_jonas> fizzie: where does the repo browser run?
17:17:03 <b_jonas> it may need some restarts or something after an upgrade
17:17:10 <fizzie> Yes, that's what I said.
17:17:32 -!- kspalaiologos has quit (Read error: Connection reset by peer).
17:17:54 <fizzie> But the weird thing is, it's configured to start /etc/uwsgi/apps-available/hackeso-hgweb.yml and there's no /etc/uwsgi directory at all.
17:18:06 -!- kspalaiologos has joined.
17:18:30 <b_jonas> isn't that an optional config file?
17:18:53 <fizzie> Not as far as I know.
17:19:07 <fizzie> I mean, it's the only thing that tells uwsgi what to actually run.
17:19:19 <fizzie> ExecStart=/usr/bin/uwsgi --yml /etc/uwsgi/apps-available/hackeso-hgweb.yml --socket /var/run/uwsgi/hackeso-hgweb.socket
17:19:33 <b_jonas> huh
17:20:06 <fizzie> I did upgrade the uwsgi package, but I don't think it would have removed user-written config files.
17:20:11 <kspalaiologos> what just happened
17:20:16 <kspalaiologos> why did I get disconnected
17:20:28 <fizzie> "Read error: Connection reset by peer" is what it looked to us.
17:20:49 <b_jonas> kspalaiologos: sometimes the freenode irc servers just throw away connections when they feel like
17:20:50 <kspalaiologos> alright
17:21:12 <fizzie> Oh, the file is there.
17:21:19 <fizzie> I must've been looking for it on a wrong machine or something.
17:21:34 <kspalaiologos> a server might have died
17:21:48 <kspalaiologos> " Cycling to next server in freenode..."
17:21:48 <b_jonas> no, they don't often die
17:21:50 <b_jonas> oh
17:21:52 <b_jonas> then maybe it did
17:21:57 <b_jonas> no wait
17:22:00 <b_jonas> that's just a client message
17:22:06 <kspalaiologos> yes
17:22:11 <b_jonas> that it uses the heuristic to connect to a different server after a disconnect
17:22:20 <kspalaiologos> ah, it's fine then
17:22:21 <fizzie> b_jonas: Yeah, killing the running uwsgi instance made it start working again.
17:22:23 <kspalaiologos> no idea what happened
17:26:31 -!- LKoen has quit (Remote host closed the connection).
17:29:51 <fizzie> I should probably also restart the whole server one of these days.
17:29:53 <fizzie> 17:29:14 up 679 days, 18:51, 5 users, load average: 0.99, 0.41, 0.21
17:30:23 <b_jonas> fizzie: yes, you should have upgraded debian while it was in single user mode
17:31:33 <fizzie> That seems a little much. They don't recommend that in the upgrade instructions.
17:31:49 <b_jonas> they don't? ok
17:32:07 <fizzie> Well, they don't not recommend it either.
17:33:01 <kspalaiologos> nooo don't ruin the uptime
17:33:11 <b_jonas> ``` uptime
17:33:12 <HackEso> ​ 17:33:11 up 0 min, 0 users, load average: 0.00, 0.00, 0.00
17:34:13 <fizzie> Looks like there's no "uptime namespace", the container has the same uptime as the system itself. (The UML is obviously a different matter.)
17:35:46 -!- LKoen has joined.
17:36:20 <b_jonas> I could make a fake uptime command though that claims that HackEso is up since lots of years ago
17:37:04 <b_jonas> though it's tricky because I'd have to modify
17:37:06 <b_jonas> `top b
17:37:06 <b_jonas> too
17:37:13 <HackEso> top - 17:37:06 up 0 min, 0 users, load average: 0.00, 0.00, 0.00 \ Tasks: 25 total, 1 running, 24 sleeping, 0 stopped, 0 zombie \ %Cpu(s): 0.0 us, 21.1 sy, 0.0 ni, 78.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st \ MiB Mem : 246.7 total, 240.7 free, 3.3 used, 2.7 buff/cache \ MiB Swap: 0.0 total, 0.0 free, 0.0 used. 239.1 avail Mem \ \ PID USER PR NI VIRT RES SHR S %CPU %MEM
17:37:24 <b_jonas> and top has lot more command options than uptime
17:38:11 <b_jonas> if we fake uptime, we should fake it to show that HackEgo is a reincarnation of HackEso and inherited its uptime
17:38:23 <b_jonas> ``` datei; uptime -s
17:38:24 <HackEso> uptime: uptime \ 2019-11-17 17:38:23.519 +0000 UTC November 17 Sunday 2019-W46-7
17:38:30 <b_jonas> what?
17:38:50 <b_jonas> ``` datei
17:38:50 <HackEso> 2019-11-17 17:38:50.590 +0000 UTC November 17 Sunday 2019-W46-7
17:38:52 <b_jonas> ``` uptime -s
17:38:53 <HackEso> uptime: uptime
17:38:55 <b_jonas> that
17:38:56 <b_jonas> makes no sense
17:39:12 <b_jonas> ``` type uptime
17:39:13 <HackEso> uptime is /usr/bin/uptime
17:39:20 <b_jonas> ``` /usr/bin/uptime -s
17:39:21 <HackEso> uptime: uptime
17:39:26 <fizzie> That's pretty weird.
17:39:50 <fizzie> Incidentally:
17:39:51 <fizzie> `lsb_release -d
17:39:52 <HackEso> Description:Debian GNU/Linux 10 (buster)
17:40:09 <b_jonas> ``` cat /etc/debian_version
17:40:14 <HackEso> cat: /etc/debian_version: No such file or directory
17:40:48 <fizzie> Actually, I wonder where lsb_release pulls that from. Clearly not from /etc, which isn't mounted.
17:40:51 <b_jonas> yeah, we don't have a proper et
17:42:46 <fizzie> Apparently it reads /usr/lib/os-release
17:43:09 -!- LKoen has quit (Remote host closed the connection).
17:43:10 <b_jonas> ``` cat /etc/issue
17:43:11 <HackEso> cat: /etc/issue: No such file or directory
17:43:27 <kspalaiologos> `` cat /proc/uptime
17:43:28 <HackEso> 0.26 0.04
17:43:31 <kspalaiologos> `` uptime
17:43:32 <HackEso> ​ 17:43:31 up 0 min, 0 users, load average: 0.00, 0.00, 0.00
17:43:59 <kspalaiologos> `` cat > /proc/uptime <<<"350735.47 234388.90"
17:44:00 <HackEso> ​/hackenv/bin/`: line 5: /proc/uptime: Permission denied
17:44:03 <kspalaiologos> pf :p
17:44:19 <kspalaiologos> fizzie, if you want to change uptime this is probably the way to go
17:44:22 <kspalaiologos> but you need root privs :p
17:44:34 <b_jonas> kspalaiologos: I don't think it works even as root
17:44:41 <kspalaiologos> let's check it
17:44:42 <kspalaiologos> together
17:44:47 <b_jonas> nope
17:44:51 <kspalaiologos> :p
17:44:58 <kspalaiologos> I have a VM to spare
17:45:01 <kspalaiologos> let's find out
17:45:21 <fizzie> Doesn't look very promising: https://github.com/torvalds/linux/blob/master/fs/proc/uptime.c
17:46:06 <b_jonas> the time when the computer booted up is in the sysconf header of every ELF process on linux
17:46:15 <b_jonas> if you changed uptime, it would be really hard to change that everywhere
17:46:21 <b_jonas> as processes may have read it already
17:46:33 <b_jonas> if you want to really fake uptime, you'd have to fake it from boot
17:46:40 <b_jonas> but I don't recommend really faking uptime
17:46:52 <b_jonas> just changing the output of uptime and top and a few such high-level commands cosmetically
17:47:26 <b_jonas> `uptime -p
17:47:27 <HackEso> up 0 minutes
17:47:47 <b_jonas> could even fix uptime -s as a side effect
17:48:10 <fizzie> I do wonder what's up with that. It works outside the UML.
17:48:34 <b_jonas> fizzie: but the outside is running a different version of debian
17:48:42 <b_jonas> any program could be working there and broken inside
17:48:43 <b_jonas> or back
17:49:01 <fizzie> Well, not really, because the userland of the UML is the userland of the container.
17:49:04 <kspalaiologos> UPTIME="18738072.28 74817307.16"; mkfifo uptime_fifo; while true; do cat <<<$UPTIME > uptime_fifo; done & mount -obind uptime_fifo /proc/uptim
17:49:09 <kspalaiologos> this may do the terick
17:49:15 <kspalaiologos> but needs root privs too
17:49:24 <fizzie> (It's a different *kernel* version, of course.)
17:49:27 <kspalaiologos> and e was cut at the end
17:49:42 <b_jonas> kspalaiologos: but that may confuse programs. that's not the only place where linux tells about the uptime
17:49:58 <kspalaiologos> obviously not
17:50:06 <kspalaiologos> but this one probably is only one available from userland
17:50:33 <kspalaiologos> ok, there is sysinfo()
17:51:29 <fizzie> b_jonas: FWIW, strace shows "uptime -s" reads /etc/localtime (probably to decide how to format the "since" date), that bit at least would fail.
17:51:48 <b_jonas> hmm
17:51:58 <kspalaiologos> it works
17:52:01 <fizzie> (Other than that, it looks into /proc/sys/kernel/osrelease, /sys/devices/system/cpu/online, /proc/self/auxv and /proc/uptime.
17:52:01 <kspalaiologos> the bash snippet works
17:52:07 <kspalaiologos> it fakes output of uptime
17:52:09 -!- LKoen has joined.
17:52:16 <kspalaiologos> and of top too
17:52:22 <kspalaiologos> I've just tested it
17:52:26 <kspalaiologos> it sets uptime to around 210 dayas
18:06:00 <fizzie> b_jonas: Heh, it's very amusing. This is why uptime -s fails: https://github.com/mmalecki/procps/blob/master/proc/sysinfo.c#L90
18:07:04 <fizzie> (I couldn't find a line-linkable better source quickly.)
18:07:52 <fizzie> Oh, here's a better link.
18:07:55 <fizzie> https://gitlab.com/procps-ng/procps/blob/master/proc/sysinfo.c#L123
18:08:14 <fizzie> So it's that combined with this:
18:08:16 <fizzie> https://gitlab.com/procps-ng/procps/blob/master/uptime.c#L47
18:08:52 <int-e> pff
18:09:32 <kspalaiologos> ha!
18:09:38 <kspalaiologos> told you my bash snippet will work
18:09:39 <fizzie> Or tl;dr the sysinfo uptime() function returns the uptime cast to int /* assume never be zero seconds in practice */ and the uptime -s command fails if uptime(...) == 0.
18:09:46 <kspalaiologos> kernel is actually reading a device
18:09:54 <kspalaiologos> to supplement the data to sysinfo()
18:10:24 <int-e> who makes 0 the error return value for functions like this
18:10:46 <kspalaiologos> I think it should set errno or return -1
18:10:55 <int-e> *and*
18:11:00 <b_jonas> oh that's fun
18:11:23 <kspalaiologos> ergo
18:11:23 <int-e> Hmm, or maybe I don't care about errno being set all that much.
18:11:26 <b_jonas> ``` sleep 2; uptime -s
18:11:27 <kspalaiologos> my bash snippet is perfect for this
18:11:29 <HackEso> 2019-11-17 18:11:27
18:11:31 <kspalaiologos> it will fake the uptime
18:11:34 <b_jonas> ``` sleep 2; uptime -s; sleep 2; uptime -s
18:11:39 <HackEso> 2019-11-17 18:11:34 \ 2019-11-17 18:11:34
18:11:46 <int-e> But returning -1 for errors seems to be far more appropriate than 0 here.
18:11:52 <fizzie> Yes.
18:12:07 <kspalaiologos> yeah
18:12:11 <kspalaiologos> it even returns int
18:12:16 <kspalaiologos> not unsigned int when not using signed ones
18:12:24 <kspalaiologos> quint of foolishness
18:12:30 <b_jonas> int-e: even -1 should be a normal output. it should return an error code separately from the time.
18:12:48 <fizzie> I don't know if any calls actually use the return value for time.
18:12:55 <int-e> But of course it's nearly impossible to change.
18:13:06 <fizzie> It returns the time with better resolution through the uptime_secs, idle_secs parameters.
18:13:23 <b_jonas> kspalaiologos: does that mean that it will fail if the machine has been up for more than 69 years too? that will
18:13:31 <b_jonas> fizzie: time does
18:13:33 <int-e> b_jonas: Maybe, but at least uptime >= 0 is a far more reasonable assumption than uptime > 0.
18:13:44 <int-e> b_jonas: we don't time travel much
18:14:04 <b_jonas> int-e: of course not. we just use incorrect or jumpy time sources
18:14:12 <b_jonas> heck, -1 could be just a rounding error
18:15:53 <fizzie> Looks like there's one use of the return value as a time in the procps sources (`seconds_since_boot = uptime(0,0);`).
18:19:56 <int-e> oh 0 is "good" for code that doesn't care about errors
18:22:26 <b_jonas> `? HackBot
18:22:27 <HackEso> HackBot? ¯\(°​_o)/¯
18:23:41 <kspalaiologos> `? HackEso
18:23:42 <HackEso> HackEso is almost but not quite unlike HackEgo.
18:24:08 <kspalaiologos> ^show
18:24:08 <fungot> echo reverb rev rot13 rev2 fib wc ul cho choo pow2 source help hw srmlebac uenlsbcmra scramble unscramble asc ord prefixes tmp test celebrate wiki chr ha rainbow rainbow2 welcome me tell eval elikoski list ping def a thanks tmp2 8ball rreree rerere botsnack bf
18:24:15 <kspalaiologos> I feel like adding a few commands to fungot
18:24:15 <fungot> kspalaiologos: hard rock fnord :d
18:24:17 <esowiki> [[Esolang:Sandbox]] M https://esolangs.org/w/index.php?diff=67188&oldid=66579 * PaniniTheDeveloper * (-145)
18:24:23 <kspalaiologos> anything needed?
18:24:45 <b_jonas> kspalaiologos: I wanted to install a 7z decompressor at one point. I failed.
18:24:58 <kspalaiologos> 7z decompressor?
18:24:59 <b_jonas> but we can decompress zip, tar.gz, tar.xz
18:25:00 <kspalaiologos> into fungot?
18:25:00 <fungot> kspalaiologos: it is usually better to ask such questions are the way to define the recursions better, too,
18:25:08 <b_jonas> so it's not a big problem
18:25:16 <kspalaiologos> wait a second
18:25:17 <b_jonas> no
18:25:20 <kspalaiologos> how do you want to use it
18:25:20 <b_jonas> into HackEso
18:25:22 <kspalaiologos> ah, well
18:25:25 <kspalaiologos> it's easy then
18:25:27 <b_jonas> I don't add commands to fungot
18:25:27 <fungot> b_jonas: it could mean that without an intermediate sql translation phase, since that's what all fnord/ 1 f(a) b if b then greet else undefined
18:25:32 <kspalaiologos> but I'm aiming at fungot
18:25:32 <fungot> kspalaiologos: just write a chef implementation in bf? if so, then yes. ( define ( p x))? :p ( heh, guess not.
18:25:45 <kspalaiologos> that
18:25:47 <kspalaiologos> 's a nice idea
18:25:54 <kspalaiologos> a chef implementation in bf
18:26:02 <kspalaiologos> thanks, fungot!
18:26:02 <fungot> kspalaiologos: maybe a combination of 2 and 5
18:26:11 <b_jonas> ^8-ball
18:26:13 <b_jonas> ^8ball
18:26:13 <fungot> No.
18:26:27 <b_jonas> a magic 8-ball command might be useful
18:26:34 <kspalaiologos> 8-ball command?
18:26:35 <kspalaiologos> what would it do
18:26:37 <fizzie> `slwd HackEso//s/almost/&,/;s/quite/&,/;s/unlike/entirely &/
18:26:37 <HackEso> Roswbud!
18:26:40 <b_jonas> `8-ball
18:26:41 <HackEso> As I see it, yes.
18:26:54 <b_jonas> print one of the 20 standard replies of the magic 8-ball at random
18:27:03 <b_jonas> and accept a question as an argument
18:27:04 <b_jonas> like
18:27:12 <b_jonas> `8-ball should fungot have an 8-ball command?
18:27:12 <fungot> b_jonas: a module system in mit scheme, but not esoteric. malbolge is included too. :p
18:27:13 <HackEso> You may rely on it.
18:27:26 <b_jonas> see Wikipedia for the 20 responses
18:27:31 <kspalaiologos> I dont get what is magic 8-ball
18:27:37 <b_jonas> it's a toy
18:27:37 <kspalaiologos> it just shows the billard game
18:27:43 <fizzie> Oh, right, lowercase.
18:27:47 <b_jonas> it helps you make decisions
18:27:49 <fizzie> `slwd hackeso//s/almost/&,/;s/quite/&,/;s/unlike/entirely &/
18:27:51 <kspalaiologos> ah yeah
18:27:51 <HackEso> hackeso//HackEso is almost, but not quite, entirely unlike HackEgo.
18:27:58 <kspalaiologos> ok I get it
18:27:59 <b_jonas> you shake it, it has a dice that tells you yes or no or maybe
18:28:03 <b_jonas> but more often yes than no
18:28:21 <fizzie> There's a coin-flip command already, by the way.
18:28:26 <fizzie> ^bool Is it any good?
18:28:32 <b_jonas> fizzie: what was HackBot?
18:28:36 <kspalaiologos> ^show bool
18:28:39 <int-e> @dice 1d2
18:28:39 <lambdabot> int-e: 2
18:28:41 <kspalaiologos> ???
18:28:48 <kspalaiologos> ^show bool
18:28:50 <kspalaiologos> what happened
18:28:55 <kspalaiologos> ^fib
18:28:55 <fungot> 0.1.1.2.3.5.8.13.21.34.55.89.144.233.377.610.987.1597.2584.4181.6765.10946.17711.28657.46368.75025.121393.196418.317811.514229.832040.1346269.2178309.3524578.5702887.9227465.14930352.24157817.39088169.632459 ...
18:28:57 <kspalaiologos> fungot is working
18:28:57 <fungot> kspalaiologos: do you work? :)
18:29:00 <kspalaiologos> but bool isempty
18:29:02 <kspalaiologos> yes I do
18:29:06 <int-e> b_jonas: HackBot was HackEso
18:29:10 <int-e> 's predecessor
18:29:17 <b_jonas> no, that's HackEgo
18:29:19 <b_jonas> `? `!
18:29:20 <HackEso> ​`! emulates the ! command of our former bot EgoBot. You write `! then the name of the language then a program, and it runs the program you give and returns the result. We used to use it to test out esoprograms in-channel all the time, but the set of included esolangs is fairly old now and so it's rarely used.
18:29:32 <b_jonas> and HackEgo's predecessor is EgoBot according to that
18:29:37 <int-e> Hrm.
18:29:40 <fizzie> Well, spiritual predecessor in that case.
18:29:55 <fizzie> "HackBot" is the name of the code, however.
18:30:00 <b_jonas> oh
18:30:02 <int-e> Isn't EgoBot is the IRC bot framework that HackEgo used.
18:30:05 <fizzie> So both HackEgo and HackEso were instances of HackBot.
18:30:13 <int-e> Hrm
18:30:14 <b_jonas> so that's like how jevalbot is the name of the code for j-bot ?
18:30:17 <b_jonas> `source j-bot
18:30:20 <HackEso> Sources for HackEso can be found at https://github.com/fis/hackbot + https://github.com/fis/multibot + https://github.com/fis/umlbox .
18:30:24 <b_jonas> j-bot, source:
18:30:25 <j-bot> b_jonas, jevalbot source is https://github.com/FireyFly/jevalbot (originally http://www.math.bme.hu/~ambrus/pu/jevalbot.tgz)
18:30:29 <int-e> Okay, I'm obviously confused about this.
18:30:55 <b_jonas> int-e: I am too
18:31:09 <fizzie> int-e: HackEso and HackEgo are both instances of HackBot, which is the glue tying together multibot and UMLBox.
18:31:09 <int-e> Ah "multibot" is another ingredient of the confusion.
18:31:39 <fizzie> EgoBot, on the other hand, was a different bot, I think also running on top of multibot but not involving umlbox or custom Linux commands at all.
18:31:43 <int-e> Is multibot the generic IRC thing, and hackbot the specific variant that wraps umlbox?
18:31:51 <fizzie> Yes, multibot is a generic IRC thing.
18:32:06 <fizzie> I can't be 100% sure if EgoBot also used it as a base, but I think it did.
18:32:28 -!- kritixilithos has quit (Quit: 1).
18:32:51 <int-e> Ugh, I really know how to ask questions that have just been answered.
18:33:26 <fizzie> EgoBot and HackEgo were both GregorR's, HackEso is my replacement when the HackEgo machine finally went away.
18:33:43 <b_jonas> fizzie: is GregorR the same as Gregor ?
18:34:07 <b_jonas> hmm
18:34:10 <b_jonas> maybe there's no Gregor
18:34:15 <int-e> Hah, I have not checked whether CaC is still around in quite some time.
18:34:18 <b_jonas> `? Gregor
18:34:19 <HackEso> Gregor took forty cakes. He took 40 cakes. That's as many as four tens. And that's terrible.
18:34:20 <b_jonas> `? GregorR
18:34:21 <HackEso> GregorR? ¯\(°​_o)/¯
18:34:26 <b_jonas> there is
18:34:31 <fizzie> Yes, they're the same.
18:35:21 <fizzie> "GregorR" is the bitbucket/github username, I don't remember which of the IRC nicks was first.
18:35:47 <int-e> And they still run the scam where they advertise a one-time payment without mentioning the annual service fee.
18:35:56 <fizzie> Yeah.
18:36:01 <fizzie> "Pay One Time! Never again."
18:36:57 <int-e> Of course the real scam is that they just reduce the QoS over time until everybody leaves.
18:37:15 <b_jonas> did you get your money back?
18:37:26 <int-e> I didn't ask for any money back.
18:38:16 <zzo38> Why did you remove the skins again?
18:38:31 <int-e> (But maybe the question was for fizzie? Personally, I got a CaC server to see how bad it would be. I wasn't disappointed.)
18:38:36 <b_jonas> zzo38: MediaWiki stopped supporting them in the newer version
18:38:59 <int-e> (So I felt, in the end, that I got my money's worth of entertainment out of the whole (or)deal.)
18:40:05 <zzo38> b_jonas: But Wikipedia still has the Cologne Blue skin
18:41:22 <int-e> fizzie: Actually I'm disappointed... where's the permanent 80% off deal?
18:43:01 <int-e> Without that they are not even cheap anymore.
18:44:47 <kspalaiologos> I'm in the process of literally raping fungot
18:44:47 <fungot> kspalaiologos: is there a complement function :) that parses an expresion like this ' otstatd' of mine than anything visual.
18:44:49 <kspalaiologos> sent over around 15 kilobytes of brainfuck
18:44:53 <kspalaiologos> for the 8ball
18:44:55 <kspalaiologos> it works quite nicely tho
18:44:57 <kspalaiologos> 50% transferred
18:44:59 <kspalaiologos> just a couple lines more
18:45:01 <kspalaiologos> it's taking 4 minutes to transfer it
18:45:19 <b_jonas> wait... how do you get random numbers in brainfuck?
18:45:26 <kspalaiologos> magic
18:45:32 <kspalaiologos> my very sophisticated algorithm
18:45:34 <b_jonas> ok
18:45:38 <kspalaiologos> ^8ball crap
18:45:39 <fungot> ...out of time!
18:45:43 <kspalaiologos> pffffffffffffffffffff
18:45:55 <kspalaiologos> you must be kidding me fungot
18:45:55 <fungot> kspalaiologos: number42, jivera? iterative macros?' token is also used before the corresponding structures are defined in sets from within a function,
18:46:14 <kspalaiologos> fizzie, what is the execution time limit?
18:46:42 <kspalaiologos> feel free to check the source tho: https://pastebin.com/raw/1jf09niH
18:46:48 <kspalaiologos> it has an easter egg too :p
18:47:16 <b_jonas> kspalaiologos: I hope you didn't add extra answers besides the 20 standard ones. someone did that to HackEso at one point. I reverted it at least once.
18:47:23 <kspalaiologos> nope
18:47:28 <kspalaiologos> only 20 standard ones
18:47:33 <kspalaiologos> from wikipedia
18:47:33 <b_jonas> there's also an 8-ball macro in perlbot
18:47:41 <kspalaiologos> but I added my own easter egg
18:47:43 <fizzie> zzo38: They stopped bundling them in the distribution, so I need to install it separately if you still want it back.
18:47:51 <kspalaiologos> that fires only when a certain condition is met
18:47:58 <kspalaiologos> fizzie, what is the execution time limit for fungot?
18:47:58 <fungot> kspalaiologos: cannot remove ' /proc/ irq/ 9': operation not permitted, although the arguments may be arbitrary.
18:48:16 <b_jonas> rather trivial, since it can evaluate perl, which has a built-in pseudo-random source
18:48:32 <kspalaiologos> well my algorithm is amazing
18:48:42 <zzo38> fizzie: Well, I do want back any skins that anyone has configured. (I don't know if anyone other than myself does, but you should check.)
18:48:42 <kspalaiologos> :p
18:49:15 <fizzie> kspalaiologos: It's not really in terms of time, it's something like 1M cycles, where one cycle is one operation.
18:49:21 <kspalaiologos> t
18:49:27 <kspalaiologos> that's too small amount :p
18:49:30 <b_jonas> zzo38: fizzie gave numbers about how many users set up each removed theme earlier in the channel
18:49:33 <kspalaiologos> can you increase it a tiny bit?
18:49:47 <esowiki> [[EsoPost]] https://esolangs.org/w/index.php?diff=67189&oldid=67138 * Zzo38 * (+2)
18:50:45 <fizzie> Only if a tiny bit would be helpful.
18:50:55 <kspalaiologos> well it runs instantly on my pc
18:51:00 <zzo38> b_jonas: OK, I found that. I think you should reinstall Cologne Blue and Modern
18:51:02 <kspalaiologos> I'll measure the cycle count in a second
18:52:50 <kspalaiologos> fizzie, well
18:52:57 <kspalaiologos> it takes 40M cycles
18:53:03 <kspalaiologos> i'll need to work on it :p
18:53:45 <b_jonas> kspalaiologos: is that with multiple adjacent + or - commands counting as one cycle? because I think that's how the interpreter counts
18:53:53 <kspalaiologos> ^ good point
18:54:02 <kspalaiologos> give me a second
18:54:08 <int-e> 1
18:55:37 <arseniiv> 1 ⟵the second one
18:55:51 <kspalaiologos> 12M cycles
18:55:56 <b_jonas> [ ^0
18:55:57 <j-bot> b_jonas: 1
18:56:25 <kspalaiologos> fizzie, it's not that much tho :p
18:57:00 <kspalaiologos> in 1M of cycles, you can clear a cell just 1300 times
18:57:24 <kspalaiologos> and add two cells only 1000 times
19:02:34 <int-e> I'd say brainfuck-in-befunge is more of a toy than a "serious" brainfuck implementation.
19:03:47 <kspalaiologos> it's not in befunge tho
19:03:50 <kspalaiologos> it's externalk
19:06:12 <fizzie> What?
19:06:35 <fizzie> fungot's brainfuck interpreter is certainly in Befunge.
19:06:35 <fungot> fizzie: think about the data
19:06:40 <kspalaiologos> is it?
19:06:44 <kspalaiologos> well
19:06:46 <fizzie> zzo38: CologneBlue should be back, if you want to check.
19:07:04 <kspalaiologos> but extending the limit to 20M isn't that much isn't it
19:07:39 <fizzie> It's approximately lines 298-310 and 355-376 of https://github.com/fis/fungot/blob/master/fungot.b98
19:07:39 <fungot> fizzie: oh it's posix 2001 and the channel) to beat him to welcoming me. we've battled over it since forever
19:08:37 <fizzie> And it'd be a 20x increase. I'd need to check how slow that is.
19:08:44 <fizzie> Right now fiddling with MediaWiki instead.
19:09:07 <kspalaiologos> well it's instant for me
19:09:21 <kspalaiologos> I'll compare that to dbfi\
19:14:08 <fizzie> Aaand Modern is back as well. Hopefully.
19:15:50 -!- ArthurStrong has joined.
19:16:09 <b_jonas> `fetch bin/uptime https://hack.esolangs.org/get/bin/uptime
19:16:10 <HackEso> ​/hackenv/tmp/bin/uptime: No such file or directory
19:16:17 <zzo38> fizzie: Yes, thank you it is fixed
19:16:19 <b_jonas> `fetch /hackenv/bin/uptime https://hack.esolangs.org/get/bin/uptime
19:16:20 <HackEso> 2019-11-17 19:16:20 URL:https://hack.esolangs.org/get/bin/uptime [1551/1551] -> "/hackenv/bin/uptime" [1]
19:16:31 <b_jonas> fizzie: I think the `edit webpage prints the wrong fetch command now
19:16:34 <b_jonas> `uptime
19:16:35 <HackEso> ​ 19:16:34 up 0 min, 0 users, load average: 0.00, 0.00, 0.00
19:16:36 <b_jonas> `uptime -s
19:16:36 <fizzie> Yes, I noticed.
19:16:36 <HackEso> uptime: uptime
19:16:37 <b_jonas> `uptime -p
19:16:37 <HackEso> up 0 minutes
19:16:41 <b_jonas> hmm
19:16:47 <b_jonas> ``` chmod a+x /hackenv/bin/uptime
19:16:48 <HackEso> No output.
19:16:49 <b_jonas> `uptime
19:16:50 <HackEso> ​/srv/hackeso-code/multibot_cmds/lib/limits: /hackenv/bin/uptime: python3: bad interpreter: No such file or directory \ /srv/hackeso-code/multibot_cmds/lib/limits: line 5: /hackenv/bin/uptime: Success
19:17:11 <zzo38> I found now they have some "mystery" cards with some similar ideas than what I had, including that non-card objects on the stack that enter the battlefield become tokens.
19:17:14 <b_jonas> `fetch /hackenv/bin/uptime https://hack.esolangs.org/get/bin/uptime
19:17:14 <HackEso> 2019-11-17 19:17:14 URL:https://hack.esolangs.org/get/bin/uptime [1560/1560] -> "/hackenv/bin/uptime" [1]
19:17:15 <b_jonas> ``` chmod a+x /hackenv/bin/uptime
19:17:16 <HackEso> No output.
19:17:18 <b_jonas> `uptime
19:17:19 <HackEso> ​ 19:17:18 up 3802 day, 3:46, 0 users, load average: 0.00, 0.00, 0.00
19:17:21 <b_jonas> `uptime -s
19:17:22 <HackEso> 2009-06-20 15:30:22
19:17:22 <b_jonas> `uptime -p
19:17:23 <HackEso> up 3802 day, 3 hours, 47 minutes
19:17:25 <b_jonas> there
19:17:35 <b_jonas> but top b gives it away
19:18:12 <fizzie> `` date --date=@1245511822
19:18:13 <HackEso> Sat Jun 20 15:30:22 UTC 2009
19:18:25 <b_jonas> `datei @1245511822
19:18:25 <HackEso> 2009-06-20 15:30:22.000 +0000 UTC June 20 Saturday 2009-W25-6
19:18:26 <fizzie> Oh, I guess you already printed -s.
19:18:38 -!- xunil has joined.
19:18:46 <b_jonas> fizzie: there could be a bug in the code, so it's reasonable to check
19:19:05 <xunil> do you use gut feeling when coding?
19:19:10 <b_jonas> fizzie: that's the earliest I figured HackEgo existed
19:19:17 <b_jonas> it's probably not its birthday, but a reasonable bound
19:19:17 <xunil> like intuitive code
19:20:31 <esowiki> [[Bitwise Cyclic Tag]] https://esolangs.org/w/index.php?diff=67190&oldid=55514 * Ais523 * (-7) add see also to [[cyclic tag]]; change the Wikipedia link to our usual (non-potholed) notation for Wikipedia interwikis
19:21:00 <fizzie> The initial import to the hackbot repo is 19 Jun 2009, though of course the code might have existed before that.
19:21:25 <fizzie> Oh, I guess that's where it's from.
19:21:48 <fizzie> Yeah, I think that's a reasonable value.
19:21:56 <b_jonas> ok
19:24:00 <xunil> the code is a collection of mental rays
19:24:12 <xunil> sent to compiler :)
19:24:54 <xunil> mental rays that force computer mind to produce code
19:25:37 <kingoffrance> whenever i have a problem i just rub magic 8 ball and wait for genius
19:25:49 <kspalaiologos> you can't rub magic 8 ball
19:25:58 <kspalaiologos> because fungot is constraining me
19:25:58 <fungot> kspalaiologos: isn't that somehow the idea of starting with fnord, but that has its lifeblood still in it
19:27:22 <fizzie> `8ball Or can you?
19:27:23 <HackEso> Signs point to yes.
19:30:08 <fizzie> Incidentally, there *was* an '8ball' command in fungot already, though one that answers just "Yes." or "No.".
19:30:08 <fungot> fizzie: i'll keep that in mind.
19:30:15 <xunil> we can program mind to produce raw binary code
19:30:21 <fizzie> (Deterministically, based on the parity of the question.)
19:32:40 <xunil> https://reverseengineering.stackexchange.com/questions/4642/automatically-convert-x86-assembly-to-c
19:35:53 <esowiki> [[Special:Log/newusers]] create * PGZSmarki * New user account
19:37:06 <kspalaiologos> fizzie, so, what about extending cycles limit?
19:37:17 <b_jonas> be patient
19:37:24 <kspalaiologos> well
19:37:28 <kspalaiologos> my stuff is installed already
19:38:18 <xunil> i once waited a billion years
19:38:24 <xunil> and then said
19:41:40 <zzo38> Spellmorph is also same idea I had. The rules they have about it are same as mine, too.
19:42:35 <kspalaiologos> spellmorph?
19:42:38 <kspalaiologos> what's this?
19:42:42 <kspalaiologos> I may implement it for fungot
19:42:42 <fungot> kspalaiologos: i plan ircot to be a
19:42:59 <b_jonas> kspalaiologos: it's a keyword from the new pseudo-silver-bordered cards that M:tG is about to release
19:43:27 <b_jonas> not an Un-set this time, a different set of 121 cards that aren't legal in vintage or any other serious format
19:43:35 <zzo38> You can cast it face down, and while in the battlefield you can cast it from there face-up for its spellmorph cost.
19:43:53 <xunil> the cards
19:44:20 <xunil> you are painted on a card
19:50:09 <zzo38> They don't describe what happens when a card is both a instant and a creature, but I have thought of what it will do before: it is a creature card, but is cast and resolves as an instant, and cannot enter the battlefield.
19:50:37 <b_jonas> zzo38: there's a release notes that describes it I think
19:52:59 <zzo38> I read the release notes. It doesn't seems to say.
19:53:50 <kspalaiologos> fungot's interpreter is 8bit, right?
19:53:50 <fungot> kspalaiologos: right, but there was no replacement to the dictionary, say ' fnord'.
19:54:14 <kspalaiologos> ^show
19:54:14 <fungot> echo reverb rev rot13 rev2 fib wc ul cho choo pow2 source help hw srmlebac uenlsbcmra scramble unscramble asc ord prefixes tmp test celebrate wiki chr ha rainbow rainbow2 welcome me tell eval elikoski list ping def a thanks tmp2 8ball rreree rerere botsnack bf
19:55:09 -!- Sgeo__ has quit (Read error: Connection reset by peer).
19:55:15 <kspalaiologos> ^bf ++++++++[>++++++++<-]>[<++++>-]+<[>-<[>++++<-]>[<++++++++>-]<[>++++++++<-]+>[>++++++++++[>+++++<-]>+.-.[-]<<[-]<->]<[>>+++++++[>+++++++<-]>.+++++.[-]<<<-]] >[>++++++++[>+++++++<-]>.[-]<<-]<+++++++++++[>+++>+++++++++>+++++++++>+<<<<-]>-.>-.+++++++.+++++++++++.<.>>.++.+++++++..<-.>>-[[-]<]
19:55:15 <fungot> 8 bit cells
19:55:20 <kspalaiologos> duh
19:55:22 <kspalaiologos> I'm screwed
19:55:29 <b_jonas> why?
19:55:35 -!- Sgeo__ has joined.
19:55:41 <kspalaiologos> so well
19:55:42 <kspalaiologos> put simply
19:55:50 <kspalaiologos> if I wanted to use my asmbf for it instead of the other compiler
19:55:59 <kspalaiologos> I'd need to take on the account the fact that I need to store all the strings
19:56:09 <kspalaiologos> and their length eventualy exceeds 255 bytes total
19:56:13 <kspalaiologos> so I can't adress them anymore
19:56:31 <kspalaiologos> but
19:56:39 <kspalaiologos> I may use bconv from the toolchain to overcome that
19:56:49 <kspalaiologos> but, I may run to the problem as above with the program timing out
19:57:09 <kspalaiologos> so essentially I'm screwed
19:58:28 <kspalaiologos> yeah, 447 bytes total
19:59:11 <b_jonas> do you need to store the strings?
19:59:21 <kspalaiologos> in a lookup table
19:59:26 <kspalaiologos> otherwise I run into exact same problem as before
19:59:38 <b_jonas> as opposed to just have a function that prints a particular string, for each string
19:59:52 <kspalaiologos> branches are very expensive
20:00:00 <b_jonas> inside a bracket conditional
20:00:16 <b_jonas> what? brainfuck isn't bad at branching
20:00:23 <kspalaiologos> I'm talking about asmbf
20:00:28 <kspalaiologos> not brainfuck
20:00:32 <kspalaiologos> look:
20:00:40 <kspalaiologos> `asmbf lbl 1/jmp 1
20:00:41 <HackEso> ​+>+[>>>+<<+<<[>>->+<<<-]>>>[<<<+>>>-]<[->+<<[>>>-<<+<-]>[<+>-]>>[<->[-]]<[<<<+>>>-]<]>>[-]<<<<[>>+>+<<<-]>>[<<+>>-]>[[-]>>>>>>+<<<<<<<<<[-]>[-]>>>>>>>>[<<<<<<<<+>+>>>>>>>-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[-]<<<<<<]<<<[>>+>+<<<-]>>[<<+>>-]>[[-]<<<[-]>[-]>>]<<]
20:01:29 <kspalaiologos> so yeah I think the 8ball will stay as is until fizzie makes up his mind
20:01:35 <kspalaiologos> or i could use underload
20:02:01 <b_jonas> underload is deterministic too, no random source
20:03:09 <kspalaiologos> doesn't matter
20:03:12 <kspalaiologos> think out of the box
20:03:52 <kspalaiologos> `show 8ball
20:03:52 <HackEso> ​/srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: show: not found
20:03:56 <kspalaiologos> ^show 8ball
20:03:56 <fungot> >+<+[>[>[-]+<-]>[<+>9[-]>2[-]<2[>2+<2-]<8-]>14[<15+>15-]<15[>[-]+<-]>[<+>9,>3[-]<3[>3+<3-][-]>2[<2+<7+>9-]<9[>9+<9-]>8[-]>2[<2+<8+>10-]<10[>10+<10-]>8[<+<7+>8-]<8[>8+<8-]>9[-]<2[>2+<2-][-]>3[<3+<7+>10-]<10[>10+<10-]>8[-]+10<[<6+>6-]->[<7-<+>8-]<8[>8+<8-]>[>6+<6[-]]<->7[<7->7-]<7[>7+<7-]>7[>6+<15->9[-]]<8-]<[>[-]+<-]>[<+>9[-]>2[<2+<7+>9-]<9[>9+<9-]>8[-]-8<[<6+>6-]->[<7-<+>8-]<8[>8+<8-]>[>6+<6[-]]<->7[<7->7-]<7[>7+<7-]>7[>7+<16->
20:04:01 <kspalaiologos> yeaaah
20:04:05 <kspalaiologos> It's quite large
20:04:19 -!- LKoen_ has joined.
20:05:23 <kspalaiologos> I can get it down to 10M though
20:05:28 <kspalaiologos> and that's it
20:06:22 <b_jonas> fizzie: tell me when you upgraded debian inside HackEso. I'll have to update the version number of procps that uptime lies itself to be
20:06:26 -!- LKoen has quit (Ping timeout: 240 seconds).
20:06:30 <xunil> i have downloaded tens of thousands of pdfs :D
20:06:33 <b_jonas> I guess I could make it run uptime for that
20:07:16 <b_jonas> the super uptime that is
20:08:24 <kspalaiologos> so
20:08:37 <kspalaiologos> any doable ideas of programs to implement into fungot?
20:08:37 <fungot> kspalaiologos: quoted lists are a crappy data structure if you intend to join the altparty cruise thing. i think
20:08:47 -!- LKoen has joined.
20:11:17 -!- LKoen_ has quit (Ping timeout: 240 seconds).
20:11:31 <xunil> ;';'p[';;'';;'''';;;;;;;;;;;';';';;';'';''''''''''''''''''''';'''';''';'';';';';''';';'';';';';';';'''''''''''''''';'''''''''''';;'''''''''';'';''''';''''';''''';';';';';;;';';'''';';';'';'''
20:11:39 <b_jonas> `fetch /hackenv/bin/uptime https://hack.esolangs.org/get/bin/uptime
20:11:40 <HackEso> 2019-11-17 20:11:40 URL:https://hack.esolangs.org/get/bin/uptime [1560/1560] -> "/hackenv/bin/uptime" [1]
20:17:50 <b_jonas> `fetch /hackenv/bin/uptime https://hack.esolangs.org/get/bin/uptime
20:17:51 <HackEso> 2019-11-17 20:17:51 URL:https://hack.esolangs.org/get/bin/uptime [1624/1624] -> "/hackenv/bin/uptime" [1]
20:17:53 <b_jonas> never mind, I fixed it
20:18:14 <b_jonas> ``` chmod -c a+x /hackenv/bin/uptime
20:18:15 <HackEso> No output.
20:18:18 <b_jonas> ``` uptime
20:18:19 <HackEso> bash: /hackenv/bin/uptime: python3: bad interpreter: No such file or directory
20:18:21 <b_jonas> hmm
20:18:22 <b_jonas> oh
20:18:32 <b_jonas> `fetch /hackenv/bin/uptime https://hack.esolangs.org/get/bin/uptime
20:18:32 <kspalaiologos> `` 8ball
20:18:33 <HackEso> 2019-11-17 20:18:32 URL:https://hack.esolangs.org/get/bin/uptime [1633/1633] -> "/hackenv/bin/uptime" [1]
20:18:34 <HackEso> It is certain.
20:18:35 <b_jonas> sorry
20:18:36 <b_jonas> `uptime
20:18:37 <HackEso> ​ 20:18:36 up 3802 day, 4:48, 0 users, load average: 0.00, 0.00, 0.00
20:18:38 <b_jonas> `uptime -V
20:18:39 <HackEso> uptime from procps-ng 3.3.15
20:18:46 <b_jonas> should work even after upgrade
20:19:15 <kingoffrance> https://archive.org/details/encyclopaediaofo1920spen i didnt see any immediate explanation of magic 8 ball, but close enough for me Salagrama, The
20:19:15 <kingoffrance> : An Indian stone, credited with possessing
20:19:15 <kingoffrance> magical properties, and worn as an amulet.
20:19:15 <kingoffrance> This stone is
20:19:15 <kingoffrance> black in colour, about the size of a billiard ball, and pierced
20:19:17 <kingoffrance> with holes.
20:23:35 <b_jonas> fungot, are potatoes your favourite vegetable?
20:23:35 <fungot> b_jonas: the point is that you trust yourself to play by the old program probably doesn't need any changes. it does
20:29:13 <imode> `` 8ball should I continue with mode.
20:29:14 <HackEso> My sources say no.
20:29:30 <imode> probably a wise idea.
20:30:41 <b_jonas> `fetch /hackenv/bin/uptime https://hack.esolangs.org/get/bin/uptime
20:30:42 <HackEso> 2019-11-17 20:30:42 URL:https://hack.esolangs.org/get/bin/uptime [1696/1696] -> "/hackenv/bin/uptime" [1]
20:30:44 <b_jonas> `uptime
20:30:45 <HackEso> ​ 20:30:44 up 3802 day, 5:00, 0 users, load average: 0.00, 0.00, 0.00
20:30:58 <b_jonas> I added a head comment just to confuse people if they run into this in the future
20:36:23 <kspalaiologos> `? uptime
20:36:24 <HackEso> uptime? ¯\(°​_o)/¯
20:36:29 <kspalaiologos> you can add it here
20:36:50 <b_jonas> nope, it's a development command, you need to know about it only if you read the implementation and wonder why I did it that way
20:37:05 <b_jonas> s/development command/developer comment/
20:37:44 <b_jonas> though I should add a command to edit the whatis database, to make that easy
20:44:57 <esowiki> [[BIX Queue Subset]] N https://esolangs.org/w/index.php?oldid=67191 * Ais523 * (+13224) new languages
20:45:11 -!- kspalaiologos has quit (Quit: Leaving).
20:45:36 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=67192&oldid=67141 * Ais523 * (+23) /* B */ +[[BIX Queue Subset]]
20:45:50 -!- laerling has quit (Quit: ZNC 1.7.3 - https://znc.in).
20:45:59 <esowiki> [[User:Ais523]] https://esolangs.org/w/index.php?diff=67193&oldid=66956 * Ais523 * (+22) + [[BIX Queue Subset]]
20:49:37 -!- laerling has joined.
20:51:26 -!- ArthurStrong has quit (Quit: leaving).
20:51:42 <esowiki> [[I/D machine]] M https://esolangs.org/w/index.php?diff=67194&oldid=55703 * Ais523 * (+8) /* Two-command view */ typo fix
20:56:45 <esowiki> [[Flow of Holes]] M https://esolangs.org/w/index.php?diff=67195&oldid=57552 * Ais523 * (+0) /* Data storage */ grammar
20:57:07 -!- ais523 has joined.
21:00:07 <b_jonas> hello ais523. fizzie went on a rampange with HackEso, changed the default working directory to /hackenv/tmp , edited many programs to not assume that the wd is /hackenv
21:00:36 <b_jonas> although now there are also some symlinks in tmp that may make some programs appear to work at first but then silently fail
21:01:00 <b_jonas> I'm still confused many times when I type a command
21:02:13 <shachaf> fizzie: I'd be tempted to set $HACKENV to a path with a space in it, just to break all the new scripts.
21:02:27 <b_jonas> shachaf: I put double quotes in many of them
21:02:47 <b_jonas> shachaf: mind you, if you manage to make a version of HackEso that runs on native windows, that might confuse everyone
21:02:49 -!- kspalaiologos has joined.
21:03:02 <b_jonas> I'd probably be able to mostly deal with it, because I use windows at work
21:03:05 <b_jonas> but still
21:03:10 <ais523> HackEso isn't really the focus of my #esoteric experience, I'm more interested in the esolangs (with HackEso mostly being interesting for the implementation of them)
21:03:18 <ais523> `! brachylog 2+₂w
21:03:19 <HackEso> ​/hackenv/ibin/brachylog: 2: /hackenv/ibin/brachylog: cannot create tmp/input.brachylog: Directory nonexistent \ /hackenv/ibin/brachylog: 3: cd: can't cd to interps/brachylog/brachylog/Brachylog-master/src \ ERROR: Prolog initialisation failed: \ ERROR: source_sink `'brachylog.pl'' does not exist
21:03:28 <b_jonas> yeah, ibin is not fixed yet
21:03:36 <ais523> ibin is the only important part :-(
21:03:42 <b_jonas> fizzie: ^
21:03:59 <b_jonas> we'll fix it, this is just a temporary hickup
21:06:00 <ais523> anyway, I recently discovered a set of languages that contains multiple different languages that have unclear Turing-completeness for different reasons, so I added it to the wiki
21:06:02 <b_jonas> fizzie changed hackeso recently, we didn't have time to fix everything yet
21:06:57 <b_jonas> ais523: I had discovered one of those as well. Amycus (my buggy version) with some of the builtins removed
21:07:10 <ais523> oh, interesting
21:07:30 <b_jonas> but I didn't write everything that I found about it down
21:07:47 <b_jonas> I also haven't written down a proper proof for Blindfolded Arithmetic with 3 variables
21:07:55 <b_jonas> which is clearly turing-complete
21:08:11 <b_jonas> yes, I know you have a proof for 2 variables
21:08:18 -!- ais523 has quit (Quit: sorry for my connection).
21:08:31 -!- ais523 has joined.
21:08:33 <b_jonas> fizzie: have you figured what we should do with the ibin interpreters?
21:08:42 <ais523> anyway, now I have an additional 120 esolangs with procedurally generated names; "a c fd td" is probably the most interesting, being closer to the TC line than most of them (none are proven TC yet but there are many better candidates for TC than that one)
21:11:29 -!- imode has quit (Ping timeout: 276 seconds).
21:11:30 <arseniiv> ais523: how do you call a language only powerful enough to represent functions from finite sets to finite sets? Seems like a weakest class I met, but that’s the case when a generalized Minsky Machine is not TC
21:11:58 <arseniiv> machine*
21:12:05 <b_jonas> arseniiv: a finite function?
21:12:18 <ais523> that's basically just a lookup table, right?
21:12:30 <int-e> arseniiv: well it's isomorphic to total functions from natural numbers to natural numbers?
21:12:32 <arseniiv> b_jonas: it doesn’t look like a good name for a class
21:12:35 <arseniiv> ais523: yeah
21:12:35 <ais523> for batch processes, lookup table vs. finite-state machine vs. bounded-storage machine is all a matter of opinion, really
21:12:41 -!- LKoen has quit (Remote host closed the connection).
21:13:01 <ais523> the differences only arise when you add I/O
21:13:21 <arseniiv> int-e: hm I don’t see
21:13:33 <ais523> (even then, a bounded-storage machine is just "a finite-state machine with an obvious generalisation to larger finite numbers of states, which is TC in the limit")
21:13:38 <int-e> arseniiv: oh, finite sets of what...
21:14:49 -!- LKoen has joined.
21:14:52 <arseniiv> int-e: I meant a function has elements of a finite set as arguments and (from another one) as values, not sets themselves, that would be too good!
21:15:32 <int-e> arseniiv: Oh. Not a type of finite sets, but finite sets as types.
21:15:57 -!- xunil has quit (Ping timeout: 240 seconds).
21:17:09 <int-e> arseniiv: So basically the same as boolean circuits.
21:17:53 <arseniiv> int-e: yes
21:18:38 <int-e> So I guess that's the name I'd use, with a footnote that we also consider circuits which disallow certain inputs and outputs.
21:19:27 <b_jonas> int-e: what's wrong with finite functions, or functions with a finite domain if you prefer
21:19:54 <int-e> b_jonas: boolean circuits come with established theory
21:20:02 <int-e> b_jonas: other than that, no reason
21:20:07 <b_jonas> finite sets come with establish theory too
21:20:13 <arseniiv> maybe I was too strit
21:20:18 <arseniiv> strict*
21:20:34 <int-e> b_jonas: and by theory I mean complexity theory.
21:23:59 <b_jonas> ``` cat /hackenv/ibin/brachylog # this one doesn't use that lib/interp framework, so we can fix it in a custom way without worrying about how we fix the old stuff
21:24:00 <HackEso> ​#!/bin/sh \ echo "$1" > tmp/input.brachylog \ (cd interps/brachylog/brachylog/Brachylog-master/src; swipl -g 'run_from_file("../../../../../tmp/input.brachylog", _, _), write(" \ true."), !, halt; write(" \ false."), !, halt' brachylog.pl)
21:24:24 <fizzie> b_jonas: You don't need to; I've included it in my out-of-band fix commit, which I'm building.
21:24:32 <b_jonas> ok
21:25:06 <b_jonas> ais523: ! brachylog will be fixed
21:25:24 <ais523> `! brachylog 2+₂w
21:25:25 <HackEso> ​/hackenv/ibin/brachylog: 2: /hackenv/ibin/brachylog: cannot create tmp/input.brachylog: Directory nonexistent \ /hackenv/ibin/brachylog: 3: cd: can't cd to interps/brachylog/brachylog/Brachylog-master/src \ ERROR: Prolog initialisation failed: \ ERROR: source_sink `'brachylog.pl'' does not exist
21:25:35 <fizzie> "Will be", not "is".
21:25:38 <ais523> ah right, not fixed yet
21:25:47 <b_jonas> and there'll be little lemon-soaked napkins too
21:26:01 <ais523> please don't delay the fix until the napkins are available ;-)
21:27:24 <b_jonas> `? cake
21:27:26 <HackEso> The Enrichment Center is required to remind you that you will be baked, and then there will be cake.
21:28:12 <int-e> I replayed Portal recently. Still good :)
21:28:59 <b_jonas> int-e: how about Portal 2 single-player?
21:31:44 <arseniiv> oh, is there a big story behind lemons on the wiki logo?
21:31:49 <int-e> b_jonas: Good story, missed the puzzles.
21:32:03 <b_jonas> int-e: what story or puzzles?
21:32:27 <b_jonas> arseniiv: there was some story I think, probably not very relevant, but I don't remember what it was
21:32:30 <int-e> Portal 2 tells a story of the history of Aperture Science.
21:32:39 <b_jonas> oh right, Portal 2
21:33:04 <esowiki> [[User:PythonshellDebugwindow]] N https://esolangs.org/w/index.php?oldid=67196 * PythonshellDebugwindow * (+99) Created page with "I am currently working on BrainStack, a stack-based esolang with some influence from [[Brainfuck]]."
21:33:05 <b_jonas> sorry, I forgot the context even though it was just a few lines before
21:33:10 <int-e> Portal 1 has less of a story, but more satisfying puzzles.
21:33:31 <arseniiv> b_jonas: lemon-soaked napkins unhibernated me
21:33:38 <int-e> (Portal 2 has multiplayer puzzles but since I don't do multiplayer I'm missing out on those.)
21:35:54 <ais523> arseniiv: they're limes, not lemons; IIRC it was originally just a stock image but we kept it for the mystery, there probably isn't a deeper meaning behind it but who knows?
21:35:57 <b_jonas> `? napkin
21:35:58 <HackEso> A complement of small lemon-soaked paper napkins is essential for the comfort, refreshment, and hygiene of the passengers during the journey.
21:36:30 <ais523> int-e: IIRC there are some people who play Portal 2 multiplayer by controlling both players themselves
21:36:43 <ais523> but you're not missing out on much story content by missing out the multiplayer, only puzzles really
21:36:45 <b_jonas> ais523: yes, but those are crazy speedrunners
21:36:56 <b_jonas> and int-e complained about puzzles
21:36:58 <int-e> ais523: Yeah but I like puzzles.
21:37:08 <ais523> right
21:37:12 <b_jonas> if you wanted the story, you could just watch someone else's multiplayer playthrough
21:37:23 <ais523> but that would spoil the puzzles
21:39:47 <b_jonas> sure, but if you won't play it anyway, then does the spoiler matter?
21:40:29 <shachaf> Why don't you do multiplayer?
21:40:35 <fizzie> `! brachylog 2+₂w
21:40:36 <HackEso> 4 \ true.
21:40:47 <arseniiv> ais523: ah! Thanks
21:41:03 <int-e> b_jonas: It's funny though... even though the first Portal game has less of a story, it seems to be richer on memorable quotes.
21:41:09 <shachaf> It's so odd that you can't `doag f where f is directly in hackenv anymore.
21:41:20 <shachaf> I guess dowg and dobg and so on are finally useful?
21:41:25 <arseniiv> and I did know they are limes but for some reason I wrote about lemons, maybe because of those napkins mentioned…
21:41:28 <b_jonas> int-e: I don't think so. I think Portal 2 has memorable quotes too
21:41:48 <b_jonas> or maybe not, I dunno
21:41:48 <fizzie> shachaf: Yes, and maybe "dorg" could be relative to /hackenv (r for root).
21:42:23 <shachaf> And crlprits? And crt?
21:42:41 <b_jonas> why "root"? root is /
21:43:03 <arseniiv> hopefully HackEso gets well soon! :D
21:43:06 <fizzie> Well, logical root. Alternatively, "h", but that's probably just as confusing.
21:43:37 <shachaf> e for env
21:43:53 <b_jonas> well, I don't really care, because I don't use cbt or slbd or [dh]oag
21:44:21 <b_jonas> I just use cat, /bin/sed or perl, hg directly
21:45:19 <fizzie> `! befunge 0"gnitset tsuj">:#,_@
21:45:20 <HackEso> just testing
21:45:34 <fizzie> (It's likely some things are still broken.)
21:46:36 <b_jonas> `! c int main(void) { printf("oFQOtCD75OCP"); return 0; }
21:46:38 <HackEso> oFQOtCD75OCP
21:47:06 <fizzie> OTOH, I think it's highly likely some of the ibin commands were already broken, due to missing bits and pieces.
21:47:09 <fizzie> `! bf_txtgen testing
21:47:12 <HackEso> 72 +++++++++++++[>+++++++++>++++++++>><<<<-]>-.>---.<-.+.>++++.<------.>--. [356]
21:47:14 <b_jonas> `! perl for ("a".."dz") { print "$_ "; }
21:47:15 <HackEso> a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi bj bk bl bm bn bo bp bq br bs bt bu bv bw bx by bz ca cb cc cd ce cf cg ch ci cj ck cl cm cn co cp cq cr cs ct cu cv cw cx cy cz da db dc dd de df dg dh di dj dk dl dm dn do dp dq dr ds dt du dv dw dx dy dz
21:50:37 <b_jonas> ``` swipl -g 'T is 7**8 + 1, display(T), halt.'
21:50:38 <HackEso> 5764802
21:50:39 <b_jonas> this still works
21:51:58 <b_jonas> `! cxx #include<iostream> \ int main() { std::cout << "cwnRPfoBPzhY"; return 0; }
21:52:09 <HackEso> No output.
21:52:16 <b_jonas> `! cxx int main() { std::cout << "cwnRPfoBPzhY"; return 0; }
21:52:18 <HackEso> Does not compile.
21:52:26 <b_jonas> `! cxx #include<iostream> \n int main() { std::cout << "cwnRPfoBPzhY"; return 0; }
21:52:29 <HackEso> No output.
21:52:40 <b_jonas> how do I use `! cxx ?
21:54:25 <fizzie> Hmm, the middle one should have worked, there's one of those implicit wrappers with a try-both-ways logic.
21:54:59 <fizzie> Well, actually -- the wrapper includes the main as well.
21:55:01 <b_jonas> fizzie: how do I explicitly add an include?
21:55:09 <fizzie> `! cxx std::cout << "cwnRPfoBPzhY"; return 0;
21:55:12 <HackEso> cwnRPfoBPzhY
21:55:53 <fizzie> Not sure. Can't quite figure out how to express a newline.
21:56:31 <b_jonas> hmm
21:56:40 <b_jonas> would be useful for defines and includes
21:57:13 <fizzie> Yes, it would. It auto-includes <iostream> <cstdio> <cstring> and 'using namespace std;'.
21:58:11 <arseniiv> I heard a suspicious claim every endo bijection is a composition of two endo involutions. I think I almost got why this should be wrong
22:00:30 <kingoffrance> is there digraph/trigraph thingy for newline?
22:00:37 * kingoffrance ducks and covers and rolls
22:03:05 <b_jonas> kingoffrance: no, but geordi, which used to be a bot that evaluated C++, used backslash to represent newlines in code you give in irc
22:03:06 <arseniiv> ah, I was wrong myself, it works even for infinite orbits
22:03:11 <b_jonas> so we can follow that convention
22:03:23 <b_jonas> of course they only represent a newline when it's outside of a string/character literal
22:15:50 -!- arseniiv has quit (Ping timeout: 276 seconds).
22:33:56 <ais523> backslash-space makes a good way to represent newlines without worrying about parsing
22:34:02 <ais523> as it won't appear in a string or character literal
22:34:10 <ais523> (or even space-backslash-space, which is what I normally use to represent them on IRC)
22:34:29 <ais523> kingoffrance: Java supports the hexagraph \u000A for a newline
22:34:34 <ais523> but C doesn't have one
22:35:10 <ais523> it should, really, it'd be more useful than most of the trigraphs (and not all character encodings have a newline)
22:37:55 <b_jonas> ais523: yes, but you have to be able to tokenize for that
22:38:29 <b_jonas> ais523: and mind that you have to know about C++ numeric literals with new style digit separators to do enough of the tokenization to recognize character literals correctly
22:38:53 <b_jonas> oh wait
22:38:57 <b_jonas> you said backslash-space
22:38:57 <b_jonas> hmm
22:39:14 <kingoffrance> well, the easiest solution IMO is #include <stdio.h>; /* <----- magical semicolon */ int main(void) { ... }
22:39:32 <b_jonas> kingoffrance: how does that work if you want to allow macros?
22:39:38 <ais523> null declarations aren't legal anyway
22:39:40 <b_jonas> macro defines too I mean
22:39:49 <b_jonas> ais523: they are legal in C++ now
22:40:10 <zzo38> I think null declaration should be legal, since sometimes a macro might expand to make such thing
22:40:42 <kingoffrance> well, i wasnt concerned about macros or anything practical, except chatting to HackEso via one-lined IRC
22:41:46 <kingoffrance> i guess my someday esoteric lang the 8 pictograph will, in reverence, return a random integer
22:44:24 <b_jonas> let me see that thing then
22:44:37 <b_jonas> `? !
22:44:38 <HackEso> ​! is a syntax used in Haskell and Prolog for solving evaluation order problems.
22:44:38 <b_jonas> `? ibin
22:44:39 <HackEso> ibin? ¯\(°​_o)/¯
22:44:42 <b_jonas> `? `!
22:44:43 <HackEso> ​`! emulates the ! command of our former bot EgoBot. You write `! then the name of the language then a program, and it runs the program you give and returns the result. We used to use it to test out esoprograms in-channel all the time, but the set of included esolangs is fairly old now and so it's rarely used.
22:44:46 <b_jonas> `? interps
22:44:47 <HackEso> interps? ¯\(°​_o)/¯
22:45:04 <b_jonas> is the interface for ibin documented anywhere? that is, what does a new script in ibin have to do to work with ! ?
22:46:22 <b_jonas> I mean I could make a script that calls gcc or g++ with the appropriate options to compile a program and then run, interpreting backslash escapes and even command line options starting with hyphe at the start
22:46:28 <b_jonas> but I don't know how to put it in ibin
22:58:38 <fizzie> You might look into improving the existing system.
22:58:56 <fizzie> https://hack.esolangs.org/repo/file/tip/interps/gcccomp/gcccomp is what `! c and `! cxx feed into.
23:00:16 <fizzie> The whole thing isn't documented, though. But the tl;dr is you put a wrapper in ibin like https://hack.esolangs.org/repo/file/tip/ibin/c which typically uses one of interp_stdin / interp_file from https://hack.esolangs.org/repo/file/tip/lib/interp depending on what the called program expects.
23:01:37 <fizzie> (interp_stdin passes the contents of the `! x ... command line to the program as stdin, interp_file as a path to temporary file.)
23:02:03 <shachaf> Do you like vpternlog?
23:02:14 <fizzie> All in all, it may be overly complicated. It did have a nice benefit that it made all `! programs capable of reading source from the web, but that part's now commented out because there's no networking.
23:03:00 <fizzie> Ooh, funky.
23:04:19 <esowiki> [[Daft]] https://esolangs.org/w/index.php?diff=67197&oldid=39053 * B jonas * (+118) link "da f t"
23:05:13 <b_jonas> fizzie: ok
23:06:59 <esowiki> [[Da f t]] N https://esolangs.org/w/index.php?oldid=67198 * B jonas * (+30) Redirected page to [[BIX Queue Subset]]
23:08:24 -!- ais523 has quit (Quit: quit).
23:08:29 <fizzie> I don't think ibin scripts necessarily need to use the lib/interp functions; as we saw, branchylog doesn't, and 7 doesn't either. Or k, but that doesn't actually do anything.
23:09:58 <fizzie> OTOH, if you're not using lib/interp, maybe it should be just a regular `command instead of a `!-wrapped command. On the third hand, it makes some sense for all (especially eso)language things be in the same thing. On the fourth hand, there's a number of non-! language tools, like `forth, `js.
23:10:23 <fizzie> And `perl-e. These tend to be smaller-scale wrappers.
23:12:31 <b_jonas> ok, so I just make a script in interps that reads code from stdin, and put a wrapper in ibin that uses interp_stdin
23:14:18 <b_jonas> https://esolangs.org/logs/2012-03-19.html talks about the lime slices a bit
23:14:35 <b_jonas> https://esolangs.org/logs/2012-03-19.html#lId
23:16:01 <fizzie> It's called the trilime.
23:20:51 -!- 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.”).
23:52:02 -!- kspalaiologos has quit (Ping timeout: 240 seconds).
23:54:13 -!- heroux has quit (Ping timeout: 265 seconds).
23:54:54 -!- heroux has joined.
23:57:14 -!- hppavilion[1] has joined.
2019-11-18
00:19:46 -!- imode has joined.
00:25:06 <esowiki> [[HackEso]] N https://esolangs.org/w/index.php?oldid=67199 * B jonas * (+7073) Created page with "'''HackEso''' is an IRC bot used by the esoteric languages community [[Esolang: Community portal #.23Esoteric| in the #esoteric IRC channel on the freenode network]]. It runs..."
00:25:30 <esowiki> [[HackEgo]] N https://esolangs.org/w/index.php?oldid=67200 * B jonas * (+21) Redirected page to [[HackEso]]
00:25:38 <esowiki> [[HackBot]] N https://esolangs.org/w/index.php?oldid=67201 * B jonas * (+21) Redirected page to [[HackEso]]
00:27:00 <esowiki> [[EgoBot]] https://esolangs.org/w/index.php?diff=67202&oldid=35038 * B jonas * (+166)
00:31:41 <esowiki> [[Fungot]] https://esolangs.org/w/index.php?diff=67203&oldid=66102 * B jonas * (+645)
00:32:52 -!- FreeFull has quit.
00:34:58 <esowiki> [[HackEso]] https://esolangs.org/w/index.php?diff=67204&oldid=67199 * B jonas * (+18)
00:36:39 <zzo38> Now the mass in xyzabcde2 game is measured in grams, and the player characte is 100 pounds and can carry 100 pounds of stuff while walking or 20 if flying.
00:46:57 <zzo38> Some television shows have good captions and some the caption writers are not doing a good job, sometimes writing words which I am sure is not the word they meant, or sometimes they just wrote "unintelligible" (but that is why I turned on the caption!!!)
00:49:26 <esowiki> [[Lambdabot]] N https://esolangs.org/w/index.php?oldid=67205 * B jonas * (+3335) Created page with "'''HackEso''' is an IRC bot used [[Esolang: Community portal #.23Esoteric| in the #esoteric IRC channel and several other channels on the freenode network]]. Its most notable..."
00:51:52 <kingoffrance> if they are good sometimes they have cut dialog, or tell you name of a song, etc. i am pro-caption
00:52:41 <zzo38> Yes, sometimes there is the name of a song in the captions; I like that, since then I will know what that song is called.
00:53:51 <zzo38> I always watch television with the captions turned on when I have a choice. Also, I always make the captions translucent if I have that choice.
00:58:08 <esowiki> [[Myndzi]] N https://esolangs.org/w/index.php?oldid=67206 * B jonas * (+1063) Created page with "'''Myndzi''' is an utility IRC bot whose main feature is drawing the lower two lines of ascii stick figures if someone else draws the upper line. Myndzi is used by the esoter..."
00:58:18 <esowiki> [[Myndzi]] https://esolangs.org/w/index.php?diff=67207&oldid=67206 * B jonas * (+4)
01:02:47 <b_jonas> j-bot: source
01:02:47 <j-bot> b_jonas: |value error: source
01:03:12 <b_jonas> j-bot, source:
01:03:13 <j-bot> b_jonas, jevalbot source is https://github.com/FireyFly/jevalbot (originally http://www.math.bme.hu/~ambrus/pu/jevalbot.tgz)
01:03:51 <esowiki> [[Esolang:Community portal]] https://esolangs.org/w/index.php?diff=67208&oldid=66636 * B jonas * (+139) /* #Esoteric */
01:06:40 <b_jonas> j-bot source:
01:06:41 <j-bot> b_jonas, jevalbot source is https://github.com/FireyFly/jevalbot (originally http://www.math.bme.hu/~ambrus/pu/jevalbot.tgz)
01:06:55 <b_jonas> j-bot echo: foo
01:06:56 <j-bot> b_jonas, pong: foo
01:14:40 <esowiki> [[J-bot]] N https://esolangs.org/w/index.php?oldid=67209 * B jonas * (+1477) Created page with "'''j-bot''' is an IRC bot that evaluates the APL-like [https://www.jsoftware.com/ J programming language]. j-bot can be found in the #jsoftware and Esolang: Community porta..."
01:15:05 <esowiki> [[Jevalbot]] N https://esolangs.org/w/index.php?oldid=67210 * B jonas * (+19) Redirected page to [[J-bot]]
01:16:06 <esowiki> [[HackEso]] https://esolangs.org/w/index.php?diff=67211&oldid=67204 * B jonas * (+18)
01:17:34 <b_jonas> kspalaiologos: I started a manual, but there's still much more to write there. hopefully I'll continue writing it later, but anyone should feel free to help.
01:19:13 <b_jonas> I also created stub entries for some of the other bots.
01:44:09 <esowiki> [[GolfScript]] https://esolangs.org/w/index.php?diff=67212&oldid=56192 * Hppavilion1 * (+149) /* List of built-ins */ Put in rowspans so that the table looks a little nicer.
01:53:54 <esowiki> [[BIX Queue Subset]] https://esolangs.org/w/index.php?diff=67213&oldid=67191 * Ais523 * (-290) simplify the Core rules; due to symmetry, half the languages were trivially equivalent to the other half, these changes remove one of these halves without losing any actual content
01:54:37 -!- ais523 has joined.
02:03:09 -!- oerjan has joined.
02:07:59 <esowiki> [[BIX Queue Subset]] https://esolangs.org/w/index.php?diff=67214&oldid=67213 * Ais523 * (+836) /* a vd vt */ this is TC
02:09:05 <esowiki> [[BIX Queue Subset]] https://esolangs.org/w/index.php?diff=67215&oldid=67214 * Ais523 * (-31) /* Computational class */ core is also TC
02:10:41 <ais523> b_jonas: https://esolangs.org/wiki/Lambdabot appears to be a mix of a description of Lambdabot and of HackEso
02:11:06 <ais523> I'm assuming something went wrong while writing it (maybe a copy-paste mistake)?
02:11:25 <esowiki> [[HackEso]] M https://esolangs.org/w/index.php?diff=67216&oldid=67211 * Fizzie * (+848) Minor copyedits.
02:16:40 <b_jonas> ais523: which part is a description of HackEso? it mentions `dontaskdonttelllist , but that's because it's the list of users who don't want to get messages through lambdabot's message service
02:16:49 <ais523> b_jonas: intro paragraph
02:17:01 <b_jonas> oh, the title
02:17:02 <ais523> in at least two places, unless fizzie actually maintains lambdabot
02:17:12 <esowiki> [[Lambdabot]] https://esolangs.org/w/index.php?diff=67217&oldid=67205 * B jonas * (+2)
02:17:28 <b_jonas> I think fizzie hosts lambdabot
02:17:38 <b_jonas> he might not be maintaining its code, I don't know
02:17:41 <b_jonas> but he's hosting the instance
02:17:44 <b_jonas> isn't he?
02:18:08 <ais523> I thought int-e ran lambdabot, I'm not sure though
02:18:38 <b_jonas> `? kspalaiologos
02:18:39 <HackEso> kspalaiologos is addicted to brainfuck, but otherwise completely unknown.
02:19:24 <b_jonas> `learn kspalaiologos is addicted to brainfuck. His current work is disassembling brainfuck code for a casino that lost the source code.
02:19:27 <HackEso> Learned 'kspalaiologo': kspalaiologos is addicted to brainfuck. His current work is disassembling brainfuck code for a casino that lost the source code.
02:19:57 <b_jonas> `? Hooloovo0
02:19:58 <HackEso> Hooloovo0? ¯\(°​_o)/¯
02:20:01 <b_jonas> `? kmc
02:20:03 <b_jonas> `? Lykaina
02:20:09 <HackEso> kmc did not run the International Devious Code Contest of 2013. She is her own grandpa.
02:20:11 <HackEso> Lykaina? ¯\(°​_o)/¯
02:20:50 <b_jonas> `learn Hooloovo0 is a calculator brain surgeon.
02:20:52 <HackEso> Learned 'hooloovo0': Hooloovo0 is a calculator brain surgeon.
02:20:58 <b_jonas> `? kspalaiologos
02:20:59 <HackEso> kspalaiologos is addicted to brainfuck, but otherwise completely unknown.
02:21:03 <b_jonas> `? Hooloovo0
02:21:04 <HackEso> Hooloovo0 is a calculator brain surgeon.
02:21:07 <b_jonas> hmm
02:21:15 <b_jonas> argh
02:21:28 <b_jonas> ``` mv -v /hackeso/kspalaiologo{,s}
02:21:28 <HackEso> mv: cannot stat '/hackeso/kspalaiologo': No such file or directory
02:21:34 <b_jonas> ``` mv -v /hackeso/wisdom/kspalaiologo{,s}
02:21:35 <HackEso> mv: cannot stat '/hackeso/wisdom/kspalaiologo': No such file or directory
02:22:23 <b_jonas> ``` mv -v /hackenv/wisdom/kspalaiologo{,s}
02:22:24 <HackEso> renamed '/hackenv/wisdom/kspalaiologo' -> '/hackenv/wisdom/kspalaiologos'
02:22:29 <b_jonas> `? kspalaiologos
02:22:30 <HackEso> kspalaiologos is addicted to brainfuck. His current work is disassembling brainfuck code for a casino that lost the source code.
02:23:07 <b_jonas> it would be nice to have some better wisdoms for users, but I'm not good at making them
02:25:40 <esowiki> [[Lambdabot]] https://esolangs.org/w/index.php?diff=67218&oldid=67217 * B jonas * (-9)
02:25:51 <b_jonas> ok, let's make it not misleading then
02:26:37 <oerjan> i see the pwd move is working well /s
02:29:09 <esowiki> [[HackEso]] https://esolangs.org/w/index.php?diff=67219&oldid=67216 * B jonas * (+269) /* Core IRC usage */ environment
02:31:43 <oerjan> `cat bin/whoops
02:31:44 <HackEso> cat: bin/whoops: No such file or directory
02:31:56 <oerjan> `cbt whoops
02:31:56 <HackEso> OLD="$HACKENV/wisdom/$1"; [ -z "$1" ] && OLD="$(lastfiles)"; NEW="${OLD}s"; if [ -f "$NEW" ]; then echo "«${NEW}» already exists"; exit 1; fi; mv "$OLD" "$NEW" && echo "«${OLD}» -> «${NEW}»"
02:32:25 <oerjan> `lastfiles
02:32:26 <HackEso> wisdom/kspalaiologo \ wisdom/kspalaiologos
02:33:51 <oerjan> `slbd whoops//s,[(],HACKENV$(,
02:33:53 <HackEso> whoops//OLD="$HACKENV/wisdom/$1"; [ -z "$1" ] && OLD="$HACKENV$(lastfiles)"; NEW="${OLD}s"; if [ -f "$NEW" ]; then echo "«${NEW}» already exists"; exit 1; fi; mv "$OLD" "$NEW" && echo "«${OLD}» -> «${NEW}»"
02:34:03 <oerjan> oops
02:34:08 <oerjan> `revert
02:34:10 <HackEso> Done.
02:34:11 <b_jonas> oerjan: sedlast may also have to be fixed for the same reason
02:34:17 <oerjan> `slbd whoops//s,[(],HACKENV/$(,
02:34:19 <HackEso> whoops//OLD="$HACKENV/wisdom/$1"; [ -z "$1" ] && OLD="$HACKENV/$(lastfiles)"; NEW="${OLD}s"; if [ -f "$NEW" ]; then echo "«${NEW}» already exists"; exit 1; fi; mv "$OLD" "$NEW" && echo "«${OLD}» -> «${NEW}»"
02:34:42 <b_jonas> and possibly before and now
02:34:56 <oerjan> hum
02:35:02 <oerjan> `revert
02:35:04 <HackEso> Done.
02:35:09 <b_jonas> ``` head "${HACKENV}/bin/"{sedlast,before,now}
02:35:10 <HackEso> ​==> /hackenv/bin/sedlast <== \ files="$(lastfiles)"; sed -i "$1" "$files" \ \ ==> /hackenv/bin/before <== \ lastfiles "$@" | while read f; do echo -n "$f//"; hg cat -r "$(hg log --removed --template '{rev}\n' "$f" | tail -n+2 | head -n1)" "$f"; done \ \ ==> /hackenv/bin/now <== \ lastfiles "$@" | while read f; do echo -n "$f//"; cat "$f"; done
02:37:17 <oerjan> `cbt lastfiles
02:37:17 <HackEso> hg log --removed -l 1 --template "{join(files,'\n')}\n" -- "$@"
02:38:06 <oerjan> `` lastfiles | cat -v
02:38:09 <HackEso> bin/whoops
02:38:47 <oerjan> `` lastfiles | cat -E
02:38:48 <HackEso> bin/whoops$
02:38:52 <oerjan> ic
02:38:59 <oerjan> oh wait
02:39:17 <oerjan> i think i hate this move already
02:40:11 <oerjan> `before
02:40:17 <HackEso> bin/whoops//bin/whoops: no such file in rev 627b52c6b2cb
02:40:56 <oerjan> `edit ../bin/lastfiles
02:40:56 <HackEso> https://hack.esolangs.org/edit/bin/lastfiles
02:42:32 <oerjan> `fetch ../bin/lastfiles https://hack.esolangs.org/get/bin/lastfiles
02:42:33 <HackEso> 2019-11-18 02:42:32 URL:https://hack.esolangs.org/get/bin/lastfiles [82/82] -> "/hackenv/bin/lastfiles" [1]
02:42:39 <oerjan> `lastfiles
02:42:40 <HackEso> ​/hackenv/bin/lastfiles
02:42:44 <oerjan> `before
02:42:46 <HackEso> ​/hackenv/bin/lastfiles//hg log --removed -l 1 --template "{join(files,'\n')}\n" -- "$@"
02:43:32 <oerjan> `after
02:43:32 <HackEso> ​/srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: after: not found
02:43:40 <oerjan> `now
02:43:41 <HackEso> ​/hackenv/bin/lastfiles//hg log --removed -l 1 --template "$HACKENV/{join(files,'\n$HACKENV/')}\n" -- "$@"
02:44:23 <oerjan> `cbt sedlast
02:44:24 <HackEso> files="$(lastfiles)"; sed -i "$1" "$files"
02:44:41 <oerjan> should work
02:45:07 <oerjan> `whoops test
02:45:09 <HackEso> ​«/hackenv/wisdom/test» -> «/hackenv/wisdom/tests»
02:45:13 <oerjan> `? test
02:45:14 <HackEso> test? ¯\(°​_o)/¯
02:45:21 <oerjan> `? tests
02:45:22 <HackEso> test failed. HackEgo-JUnit is not available.
02:45:29 <oerjan> curious
02:45:32 <oerjan> hum
02:45:44 <oerjan> oh
02:45:48 <oerjan> `revert
02:45:49 <HackEso> Done.
02:46:10 <oerjan> `lastfiles
02:46:12 <HackEso> ​/hackenv/wisdom/test \ /hackenv/wisdom/tests
02:46:38 <oerjan> `sedlast s,Ego,Eso,
02:46:40 <HackEso> ​/bin/sed: can't read /hackenv/wisdom/test \ /hackenv/wisdom/tests: No such file or directory
02:46:48 <oerjan> wat
02:46:50 <oerjan> oh
02:47:06 * oerjan was hoping it would sed both
02:47:24 <oerjan> `cat bin/sedlast
02:47:24 <HackEso> cat: bin/sedlast: No such file or directory
02:47:30 <oerjan> `cat ../bin/sedlast
02:47:31 <HackEso> files="$(lastfiles)"; sed -i "$1" "$files"
02:47:39 <oerjan> HATE I SAID
02:48:02 -!- user24 has joined.
02:49:02 <oerjan> oh well that never worked with multiple files anyway
02:50:12 <oerjan> fizzie: what's with all the "draft" notes suddenly showing in the repo browser
02:50:24 <oerjan> not that they seem to do anything
02:50:47 <shachaf> oerjan: cbt hth
02:50:53 <oerjan> shachaf: HATE
02:51:45 * oerjan gets a truly ridiculous idea
02:51:54 <oerjan> unfortunately it won't work for plain `cat
02:52:01 <kingoffrance> my guess is "$file" remove quotes, but then you have to worry about spaces, difference between $* and $@ i believe
02:52:12 <kingoffrance> its basically shell quoting issue i believe
02:52:34 <kingoffrance> (i mean, the $* $@ difference is similar issue)
02:52:49 <kingoffrance> (one does things as one giant arg, the other separate args)
02:53:18 <kingoffrance> "$files" i mean of course
02:54:12 <oerjan> kingoffrance: it's not entirely clear what sedlast _should_ do with more than one file anyway. it's a very corner case.
02:54:53 <user24> Does anyone like recursion? :) http://34.77.241.183/
02:58:38 <imode> user24: what is this?
02:58:55 <user24> imode: confusing, apparently :)
02:59:00 <user24> hint: wasd is not all that is possible
03:00:12 <imode> Q is "nuke" apparently.
03:00:25 <user24> in some way, yes, but not exactly :)
03:00:50 <user24> haha, I'm so happy to have a first user, thank you :)
03:01:17 -!- ais523 has quit (Quit: quit).
03:01:35 <user24> your orange will stay there for quite some time
03:04:18 <imode> nice, I've made my mark.
03:04:39 <user24> :)
03:05:49 <user24> maybe I should a key hint (wasd qe) below the canvas, but i like to keep it mysterious
03:06:31 <imode> inspecting the source kinda destroys the mystery.
03:07:33 <user24> gotta obfuscate it
03:11:39 <user24> ok, I'm gonna restart it in a few minutes, got a domain
03:14:24 <oerjan> ^wiki Test
03:14:25 <fungot> http://esolangs.org/wiki/Test
03:14:30 <oerjan> huh
03:14:35 <oerjan> ^wc test ho
03:14:35 <fungot> 027.
03:14:43 <oerjan> argh tabs
03:15:14 <zzo38> I wrote a PostScript code to calculate the left and right edges on each scanline of a monotone polygon. This way the data can be used by an external program to typeset text into the specified area (it is not useful to typeset text into a non-monotone area).
03:15:47 <oerjan> ^show wiki
03:15:47 <fungot> +[-5>+3<]>+.+12..-4.[-2>+<]>+2.-11..[-3>+<]>.[-3>+<]>-4.-4.-3.-11.+13.-7.+12.+[+2>-3<]>.-3[-5>+<]>.+3.-11.-2[->+3<]>.+2[-3>+2<]>+.+[->+3<]>+.+2.-2.-4[->+3<]>.,[.,]
03:16:05 <oerjan> why replace it with a _longer_ program?
03:16:08 -!- hppavilion[1] has quit (Ping timeout: 276 seconds).
03:16:34 <zzo38> However, how can you then vertically center the text into a non-rectangular area?
03:19:51 <Lykaina> did someone ping me?
03:20:33 <oerjan> ^bf ++++++++++++++++[>+++++>++++++++>++++++++>+++++++++<<<<<-]>>>>-.>-----..<<<++++++++.<---.------------..>>>----.<++++.>>>------.----.<-----.>+++.<+++++++.<.<-.>>>>+.++++.<.<<<+.>+++++.>+++.+++.---.<<<.,[.,]
03:20:33 <fungot>
03:20:44 <oerjan> oh duh
03:21:35 <oerjan> ^bf +++++++++++++++[>++++>+++++++>+++++++>++++++++<<<<-]>>>-.>----..<<+++++++.<--.-----------..>>---.<+++.>>-----.---.<----.>++.<++++++.<.<-.>>>+.+++.<.<<+.>++++.>++.++.--.<<.,[.,]
03:21:35 <fungot> http://esolangs.org/wiki/
03:22:42 <oerjan> ^bf +++++++++++++++[>++++>+++++++>+++++++>++++++++<<<<-]>>>-.>----..<<+++++++.+++.<--.-----------..>>---.<+++.>>-----.---.<----.>++.<++++++.<.<-.>>>+.+++.<.<<+.>++++.>++.++.--.<<.,[.,]
03:22:43 <fungot> https://evolangv.org/ziki/
03:23:38 <oerjan> ^bf +++++++++++++++[>++++>+++++++>+++++++>++++++++<<<<-]>>>-.>----..<<+++++++.+++.<--.-----------..>>---.<.>>-----.---.<----.>++.<++++++.<.<-.>>>+.+++.<.<<+.>++++.>++.++.--.<<.,[.,]
03:23:38 <fungot> https://esolangs.org/wiki/
03:23:56 <oerjan> ^def wiki bf +++++++++++++++[>++++>+++++++>+++++++>++++++++<<<<-]>>>-.>----..<<+++++++.+++.<--.-----------..>>---.<.>>-----.---.<----.>++.<++++++.<.<-.>>>+.+++.<.<<+.>++++.>++.++.--.<<.,[.,]
03:23:56 <fungot> Defined.
03:24:00 <oerjan> ^wiki Test
03:24:00 <fungot> https://esolangs.org/wiki/Test
03:24:40 <oerjan> fizzie: fixed the http
03:25:45 <imode> what language is the `wiki` command written in?
03:27:01 <zzo38> Does it have the latest version of SQLite, GCC, LLVM, Ghostscript, Node.js, and C-INTERCAL?
03:33:04 <oerjan> imode: brainfuck
03:33:54 <imode> ^show wiki
03:33:54 <fungot> +15[>+4>+7>+7>+8<4-]>3-.>-4..<2+7.+3.<-2.-11..>2-3.<.>2-5.-3.<-4.>+2.<+6.<.<-.>3+.+3.<.<2+.>+4.>+2.+2.-2.<2.,[.,]
03:33:59 <oerjan> most of the program itself, other than the couple places i changed, was produced with the bf_txtgen text converter.
03:34:31 <oerjan> ^show happens to show to internal RLE encoding fungot uses for compression.
03:34:36 <oerjan> *the
03:34:42 <imode> ah!
03:34:46 <imode> that explains it.
03:34:56 <Lykaina> b_jonas: did you want my attention?
03:42:26 <oerjan> ^bf ,+++++++++++++++++++++++++++++++++.,+++++++++++++++++++++++++++++++++.
03:42:26 <fungot> !!
03:44:09 <user24> imode: https://qewasd.com/ :)
03:47:41 <imode> q and e swap to different rooms, huh.
03:54:50 <oerjan> <b_jonas> a magic 8-ball command might be useful <-- ... you said that right after fungot confirming it had one.
03:54:50 <fungot> oerjan: i don't know much more
03:55:49 <imode> 'hello world' in readable mode bytecode: ,$48:.,$65:.,$6c:.,$6f:.,$2c:.,$20:.,$77:.,$6f:.,$72:.,$6c:.,$64:.,$21:.,:$[':$]
03:56:31 <oerjan> i suppose it's not quite a full implementation, but fungot cannot do true randomness in ^def'ed commands anyway.
03:56:31 <fungot> oerjan: s/ first/ top/ computers/ callcc.html that one too.
03:56:49 <imode> is it possible to add new interpreters to fungot?
03:56:49 <fungot> imode: so. what causes an ioexception in a bufferedreader?
03:56:54 <user24> imode: indeed!
04:01:26 <oerjan> imode: not on the same level as ^ul or ^bf, unless fizzie writes one in befunge
04:01:49 <imode> heh.
04:02:30 <oerjan> but you could make a ^bf-based command that was an interpreter for something. i recall ^ul started that way, although it was terribly slow/timing out
04:03:16 <oerjan> ^show ul
04:03:16 <fungot> (^ul -- evaluates Underload)S
04:03:27 <imode> hm. I have an interpreter for Mode in C... wonder if I could transpile that to bf and define it.
04:03:31 <oerjan> oh, it was updated like that.
04:03:52 <imode> that'd be an absurdly large file, though.
04:03:55 <oerjan> imode: ^bf has a number-of-cycles limit. it's unlikely you'd get anything that complicated to run.
04:04:10 <imode> yeah..
04:04:22 <oerjan> (which was why the original ^ul tended to time out on anythng non-trivial.)
04:05:06 <oerjan> HackEso is the bot intended for that kind of stuff, anyway.
04:05:29 <imode> ah.
04:05:31 <oerjan> even though it's rarely used for that purpose, it was the original one.
04:13:00 <oerjan> ^8ball so they broke this?
04:13:01 <fungot> ...out of time!
04:13:04 <oerjan> it seems.
04:13:23 <oerjan> fizzie: at this rate fungot commands need revision control too
04:13:23 <fungot> oerjan: and there's the fact that it's in the ides now even.
04:13:45 <oerjan> i suppose you may not have ^saved yet.
04:21:01 <zzo38> Make the questions what your character might do in the situation (according to the player). I think the answer will likely to be "it depends on details which have not been given", because there is often the circumstances which can affect things variously.
04:21:37 <zzo38> Therefore, further elaboration may be needed, or the conditions
04:22:07 <imode> webassembly is just fancy brainfuck.
04:22:15 <imode> I wish I was kidding.
04:22:34 <oerjan> `uptime -p
04:22:35 <HackEso> up 3802 day, 12 hours, 52 minutes
04:22:40 <oerjan> sheesh
04:22:53 <oerjan> `url ../bin/uptime
04:22:53 <HackEso> https://hack.esolangs.org/repo/file/tip/bin/uptime
04:22:57 <imode> 10 years?!
04:23:27 <imode> jesus!
04:23:56 <imode> oh.
04:23:59 <oerjan> imode: uptime is fake, b_jonas made it today
04:24:01 <imode> boottime is hardcoded.
04:24:03 <imode> ah.
04:24:08 <imode> why 10 years?
04:24:17 <zzo38> Is there a macro assembler for WebAssembly?
04:24:24 <oerjan> and as usual for hungarians, he messed up the plurals after numbers :P
04:24:50 <zzo38> Also, is there a C library to execute WebAssembly programs without requiring a JavaScript interpreter or web browser?
04:25:01 <imode> zzo38: iirc yes there is a standalone WASM interpreter.
04:25:02 <oerjan> and the real uptime splits into weeks as well, looking at another long-time server
04:25:07 <oerjan> (don't know about years)
04:25:13 <imode> zzo38: and I believe there is a macro assembler for it...
04:25:17 <shachaf> Is WebAssembly actually good for non-web things?
04:26:03 <zzo38> shachaf: It seems that it should be, as good as other VMs would be
04:26:11 <imode> who knows. honestly I'm intending on building Mode as a competitor or companion to it.
04:26:26 <shachaf> zzo38: Well, a lot of web things are scow.
04:26:30 <shachaf> And a lot of VMs are scow.
04:26:47 <shachaf> I don't think WebAssembly gets great performance compared to a native compiler.
04:27:29 <zzo38> I think that for text adventure games, Z-machine and Glulx and TAVERN are good.
04:27:31 <imode> that right there is why I have a mode-to-C transpiler.
04:28:17 <zzo38> (I have partially made a text adventure game in Glulx. But, it is difficult to think of what rooms to put and such stuff like that. Programming it is the easier part.)
04:28:26 <shachaf> zzo38: I want something for real software, though.
04:28:58 <shachaf> I think text-based adventure games use so little computation resources that it doesn't matter.
04:29:02 <imode> WASM's concurrency primitives aren't strong enough IMO. isolation of subprocesses is something you should get for free.
04:32:57 <user24> imode: Have a look at this and click on "Hierarchical Accounts Example"
04:32:59 <imode> I wanna be able to manage process trees and treat processes as first-class values that can be persisted.
04:33:04 <user24> YASSSS
04:33:21 <imode> which is why Mode now has concurrency primitives that do just that.
04:33:25 <user24> And if you are interested in this, here some keywords: GNOSIS, KeyKOS, Joule, E, Stackless Python (https://stackless.readthedocs.io/en/latest/library/stackless/pickling.html)
04:33:32 <user24> also my projects: https://esolangs.org/wiki/RarVM
04:33:37 <user24> https://esolangs.org/wiki/KeyVM
04:33:44 <zzo38> Some text adventure games do use more resources than others, I think. (Such as, those written using Inform7)
04:34:09 <user24> Here's Joule: http://www.erights.org/history/joule/index.html
04:34:24 <zzo38> (I don't really like such read-only programm language as Inform7 so much, so I use assembly language, is better.)
04:35:39 <imode> user24: you might be interested in my Mode spec. it's a specification for a language that's brainfuck-like and involves only a few core commands, with a set of derived commands providing additional functionality.
04:36:22 <imode> there's also a binary format that's based on typed segments, but it's not ready yet.
04:36:51 <imode> concurrency got added recently but hasn't been implemented (mainly because I just started a new position at Amazon).
04:37:18 <user24> imode: Definitely! Do you have a wiki page?
04:38:09 <imode> not yet. it's all on my harddrive but I plan on posting it to the wiki once I 1. implement a first pass of concurrency features in the Python interpreter or 2. get fed up, submit the spec + existing python interpreter and C transpiler.
04:38:55 <imode> let's see if I have any useful examples kicking around..
04:39:14 <user24> Aye! I'm still a bit scared by concurrency, and I like determinism, so my VMs are all single-threaded
04:40:29 <imode> all of my concurrency operations are actually pretty simple. anything between { and } is treated as a subprocess. when encountering a {, you create a new process, push the handle to that process to the parent process, jump to the matching }, and then you can send data to and get data from the child process by send and receive operators.
04:40:56 <imode> sends and receives are blocking, so the VM just checks to see if the target process is in a blocking receive state on send.
04:41:01 <imode> otherwise it just goes dormant.
04:41:24 <esowiki> [[Special:Log/newusers]] create * Darthalex314 * New user account
04:42:09 <user24> yeah, that sounds cool
04:42:50 <imode> https://repl.it/repls/DefinitiveColossalEngineer
04:43:14 <imode> program.h is the output of the C transpiler, which is just a glorified preprocessor.
04:43:15 <user24> with my VMs, I want replicable computation, so if i run a subprocess for n steps, copy it's image, and then run these two images for the same number of steps, they arrive at the exactly same state
04:43:43 <user24> this is also possible with concurrency
04:43:49 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=67220&oldid=67107 * Darthalex314 * (+227)
04:43:49 <user24> but very difficult to implement
04:44:13 <user24> so I'm specifying a VM and build a language on top of it
04:44:15 <imode> why difficult? do these subprocesses have I/O access?
04:44:25 <user24> this way i can have single-instruction resource accounting and control granularity
04:44:36 <user24> not directly, they can only access their own memory
04:44:50 <imode> aye.
04:45:07 <esowiki> [[User:Darthalex314]] N https://esolangs.org/w/index.php?oldid=67221 * Darthalex314 * (+29) Created page with "Hi. Learning about Brainf***."
04:45:20 <esowiki> [[User talk:Darthalex314]] N https://esolangs.org/w/index.php?oldid=67222 * Darthalex314 * (+5) Created page with "What."
04:45:23 <user24> with your type of concurrency, deterministic process suspension would only be possible at the {} boundaries
04:45:46 <user24> (without a deterministic scheduler at least)
04:45:58 <imode> not really, actually. within Mode, the world can be stopped and persisted at any time.
04:46:09 <imode> in fact that's the basis of a database engine that I'm working on within it.
04:46:29 <imode> your data values are just long-running processes that can be wrapped up and thrown to disk or over a network with a really slim execution state.
04:46:31 <esowiki> [[Brainfuck implementations]] https://esolangs.org/w/index.php?diff=67223&oldid=65848 * Darthalex314 * (+77) /* Normal implementations */
04:46:52 <imode> literally just an instruction pointer and a queue.
04:47:59 <user24> ah, so there is no parallelism, just some form of message passing concurrency like in Javascript?
04:48:17 <zzo38> Should you add a category for IRC bots into the wiki?
04:48:21 <user24> my VM process formats trying to be slim was inspired by this Smalltalk project: http://netjam.org/spoon/viz/movie/
04:48:42 <user24> also by Stackless Python as linked above
04:49:18 <user24> with Stackless, I wrote a network node once that executed a process for a few thousand steps and then sent it to another random node it was connected to :)
04:49:39 <imode> there is parallelism. just not explicitly defined. I don't care how you accomplish the concurrency.
04:49:42 <user24> if stuff like this is built into the language, things like these become very easy to implement
04:50:13 <imode> for instance, in the Golang interpreter for this, I'm spawning goroutines-per-process and using channels to communicate with the larger "core".
04:51:56 <user24> Are you familiar with capabilities/keys?
04:52:04 <imode> if you choose to be single-threaded, you'd just do a round-robin scheduler, where you run through all of the spawned processes and step them one instruction at a time.
04:52:07 <imode> yeah.
04:52:13 <user24> amazing
04:52:51 <user24> a few months ago it felt like nobody knew, or was even interested in all of this
04:53:14 <user24> Yeah
04:54:04 <user24> Somehow my brain prevents me from considering making my systems (optionally) multi-threaded, because instruction level execution control and process persistence allow all of this to be built "on top"
04:54:19 <imode> tbh it's not even needed.
04:54:24 <user24> so the scheduler can be implemented in the system itself
04:54:55 <imode> if you can present a concurrent environment you shouldn't care how that concurrency is handled, just that "these two processes are doing something and can only know about what the other is doing via synchronous message passing and protocols".
04:55:27 <user24> yeah
04:56:01 <user24> But do you think it's advantageous to have a concurrent system at the lowest level everything else is built on top on?
04:56:16 <user24> this is the argument the E language creators made
04:56:19 <imode> well, let me show you mode's working spec.
04:56:25 <user24> but I'm still not convinced
04:56:32 <user24> ok :)
04:56:38 <imode> https://hatebin.com/mlaoebywpa
04:56:43 <imode> ignore syntax highlighting.
04:57:05 <imode> 'Core' is the minimum theorized that you need to be turing complete.
04:57:21 <imode> everything on top of that is convenience.
04:58:55 <user24> reminds me of Zot a bit :) http://www.nyu.edu/projects/barker/Iota/zot.html
04:59:10 <imode> that was definitely an inspiration. instruction minimization is nice.
04:59:13 <imode> but doing useful work is also nice.
04:59:28 <imode> all of these single-character codes have forth-like mnemonics as well.
04:59:47 <oerjan> myndzi: congratulations, you've now got a wiki page https://esolangs.org/wiki/Myndzi
04:59:57 <imode> I'm not unconvinced that basing everything off of something like the pi calculus wouldn't be a good way to go.
05:00:11 <imode> but there's so much implicit state that it's hard to wrap your head around. bound names, etc.
05:00:27 <imode> I can at least reason about Mode from an imperative standpoint and work up to concurrent processes.
05:00:46 <imode> forming a loop in the pi calculus is a painful endeavor unless you just plan on translating lambda calculus to it.
05:01:17 <user24> there's also Urbits' Nock if you like trees https://urbit.org/docs/tutorials/nock/definition/
05:01:34 <imode> so, w.r.t concurrency as a basis... not unconvinced, but don't buy it unless there's a "concurrent automaton".
05:01:45 <imode> that looks nice and feels nice to work with. which is kind of what I'm trying to make..
05:02:15 <imode> yeah I looked at Nock... don't like the author or the writings. way too obscure.
05:02:41 <user24> aye, agreed
05:02:43 <imode> if I can't explain to you what I'm working on in simple enough terms I don't think it's worth working on.
05:02:44 <user24> i kind of just want to have an "execute this subprocess/instruction block for n instructions with these memory constraints" instruction
05:03:58 <imode> I could do that by saying the `{` command consumes two values, the step limit and queue size.
05:04:04 <user24> yeah :)
05:04:36 <imode> "run this block for 64 cycles with 8 queue elements" could be ,$40,$8;{...}
05:04:40 <user24> :D
05:05:15 <oerjan> `celebrate
05:05:15 <HackEso> ​/srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: celebrate: not found
05:05:31 <user24> Have you heard of the Agoric papers: https://e-drexler.com/d/09/00/AgoricsPapers/agoricpapers.html ?
05:05:40 <imode> have not, will look now.
05:05:54 <user24> also, this: https://esolangs.org/wiki/File:Screenshot_from_2019-04-09_04-20-58.png :)
05:06:49 <imode> you'd like my python interpreter. planning on having it estimate max/average memory usage along with runtime.
05:07:11 <user24> yass :D
05:07:35 <user24> i'll dm you my email and stuff, please notify me, show me everything, i love this stuff
05:08:00 <user24> someone created this which is also along the lines we are talking about: https://www.youtube.com/watch?v=7vn6aGgLKfQ
05:08:26 <user24> it just emits a geiger counter click when the attached program allocates memory
05:08:33 <oerjan> ^celebrate
05:08:33 <fungot> \o| c.c \o/ ಠ_ಠ \m/ \m/ \o_ c.c _o/ \m/ \m/ ಠ_ಠ \o/ c.c |o/
05:08:46 <imode> hah!
05:08:57 <imode> that's actually really interesting. a bit like an HDD light for memory.
05:10:37 <esowiki> [[Myndzi]] https://esolangs.org/w/index.php?diff=67224&oldid=67207 * Oerjan * (+13) Fix some conceptual errors
05:33:18 <zzo38> Are you able to access my computer using the domain name "zzo38computer.org" now?
05:34:03 <imode> am I supposed to see "please use the gopher service"?
05:34:16 <zzo38> Also, how to purge the DNS cache? (I suspect there may be a problem with it)
05:34:35 <zzo38> imode: If you try to access the root page of the HTTP service, then that message will be displayed, so it works.
05:34:41 <imode> kool.
05:36:45 -!- kspalaiologos has joined.
05:38:20 <kspalaiologos> I'll try setting up my own bot
05:44:20 <kspalaiologos> I'll need to pay for my vps soon tho
05:55:46 <zzo38> (HTTP is not the only service I run. I also have Gopher, NNTP, SMTP, and QOTD.)
06:08:44 -!- user24 has quit (Quit: Leaving).
06:18:48 <zzo38> Do you know how to do vertical centering text in a non-rectangular area? Perhaps I will just not allow vertical stretching/shrinking in non-rectangular areas, or else have some rsetrictions on it (such as, if vertical glue is present in a non-rectangular area, any paragraphs must come before the vertical glue).
06:42:23 -!- tromp_ has quit (Read error: Connection reset by peer).
06:44:05 -!- tromp has joined.
06:45:03 -!- kspalaiologos has quit (Ping timeout: 265 seconds).
06:52:41 <oerjan> martellus likes to live dangerously
06:58:22 <zzo38> gsave [ matrix setmatrix clip pathbbox cvi exch pop exch cvi 3 -1 roll pop dup 1 3 index { clipsave 0 exch 65535 1 rectclip clippath pathbbox pop exch pop cvi exch cvi cliprestore } for ] grestore % That is the code to make a monotone path into the list of the boundary per scanline.
06:59:53 -!- kritixilithos has joined.
07:00:04 -!- tromp has quit (Read error: Connection timed out).
07:02:53 -!- user24 has joined.
07:04:06 -!- user24 has quit (Client Quit).
07:04:58 -!- tromp has joined.
07:12:19 <zzo38> The typesetting algorithm can then split it into text lines based on the current font, and then subtract the largest left boundary in each group from the smallest right boundary in each group in order to find the width of that line. I think this will not work in the presence of vertical glue above the paragraph (unless the area is rectangular), though.
07:14:51 <zzo38> This is to make an alternative program to Magic Set Editor for typesetting cards. Although the code is PostScript (actually, my program uses a combination of PostScript and SQL), it uses TeX fonts rather than PostScript fonts, and the TeX method of typesetting (although a simple mode might also be available). Do any card games use vertically centered multi-line text in a non-rectangular area?
07:15:31 <zzo38> Also, do any use a non-monotone area for text?
07:20:58 -!- oerjan has quit (Quit: Nite).
07:34:56 -!- tromp has quit (Ping timeout: 240 seconds).
07:36:21 -!- tromp_ has joined.
07:41:58 -!- tromp has joined.
07:44:35 -!- tromp_ has quit (Ping timeout: 276 seconds).
07:49:08 -!- Frater_EST has joined.
07:58:02 -!- imode has quit (Ping timeout: 265 seconds).
08:03:34 <esowiki> [[HackEso]] https://esolangs.org/w/index.php?diff=67225&oldid=67219 * B jonas * (+56) pedantic about newlines
08:24:33 <b_jonas> `? rules of wisdom
08:24:34 <HackEso> unless essential for the entry‘s humor, \ they should: be understandable without the lookup key, be single spaced and end in a newline with no space before that, and use proper capitalization and punctuation
08:24:45 <b_jonas> do you suppose this change is ok?
08:27:06 <zzo38> It violates its own rule, but maybe it is supposed to be, so then that is OK. Also, I think there is a improper open mark in "entry's"
08:29:51 <b_jonas> ``` hg cat -r 11268 "/hackenv/wisdom/rules of wisdom"
08:29:52 <HackEso> unless essential for the entry‘s humor, they should: be understandable without the lookup key, be single spaced and end in a newline with no space before that, and use proper capitalization and punctuation
08:30:02 <b_jonas> I'm mostly asking about just the latest chanfe
08:30:50 <b_jonas> althoguh I can also be blamed for the part about trailing whitespace
08:32:41 <zzo38> O, you added a break (in the wrong place)
08:33:37 <esowiki> [[Cyclic tag system]] https://esolangs.org/w/index.php?diff=67226&oldid=51402 * B jonas * (+43) /* Related articles */ link BIX Queue Subset
08:34:44 <b_jonas> zzo38: almost
08:35:19 <b_jonas> I actually added just a space backslash space, because that doesn't break the rules, and breaking the rules with an actual newline is not essential for the humor of the entry
08:35:40 <zzo38> OK, but it is still in the wrong place
08:36:06 <b_jonas> yes, although I don't think there's a right place, except at the end
08:36:37 <b_jonas> I wonder if I should make the entry mention that the entries really shouldn't contiain \r or \0
08:38:27 <zzo38> I don't know; maybe
08:49:12 <b_jonas> nah, probably no, that's not a rule that I've seen anyone break
08:51:11 <esowiki> [[HackEso]] https://esolangs.org/w/index.php?diff=67227&oldid=67225 * B jonas * (+183) /* Core IRC usage */ invisible prefix to output
08:52:22 <esowiki> [[HackEso]] https://esolangs.org/w/index.php?diff=67228&oldid=67227 * B jonas * (+88) /* Core IRC usage */ headings
08:54:17 <zzo38> OK
08:56:11 <esowiki> [[Esolang:Sandbox]] M https://esolangs.org/w/index.php?diff=67229&oldid=67188 * PaniniTheDeveloper * (+32)
09:02:57 -!- b_jonas has quit (Remote host closed the connection).
09:15:24 -!- Frater_EST has quit (Remote host closed the connection).
09:37:39 -!- kspalaiologos has joined.
09:38:16 <kspalaiologos> `asmbf @hello/out 48/ret/@main/psh %hello1/jmp %hello/@hello1
09:38:17 <HackEso> ​+>+[>>>+<<+<<[>>->+<<<-]>>>[<<<+>>>-]<[->+<<[>>>-<<+<-]>[<+>-]>>[<->[-]]<[<<<+>>>-]<]>>[-]<<<<[>>+>+<<<-]>>[<<+>>-]>[[-]>>>>>>++++++++++++++++++++++++++++++++++++++++++++++++.[-]<<<<<<<<<[-]>[-]>>>>>>>>>>>>>>>[-]>[>>]<<->[<<<[<<]>+>[>>]>-]<<<[<<]>[<<<<<<<<<<<<<<<+>>>>>>>>>>>>>>>-]<<<<<<<[-]<<<<<<]>++<<+<<[>>->+<<<-]>>>[<<<+>>>-]<[->+<<[>>>-<<+<-]>[<+>-]>>[<->[-]]<[<<<+>>>-]<]>>[-]<<<<[>>+>+<<<-]>>[<<+>>-]>[[-]>>>>>>+++++++++++++++++++
09:38:21 <kspalaiologos> Dang
09:38:38 <kspalaiologos> ``` asmbf @hello/out 48/ret/@main/psh %hello1/jmp %hello/@hello1 > temp.b
09:38:39 <HackEso> No output.
09:38:49 <kspalaiologos> ``` cat temp.b
09:38:50 <HackEso> ​+>+[>>>+<<+<<[>>->+<<<-]>>>[<<<+>>>-]<[->+<<[>>>-<<+<-]>[<+>-]>>[<->[-]]<[<<<+>>>-]<]>>[-]<<<<[>>+>+<<<-]>>[<<+>>-]>[[-]>>>>>>++++++++++++++++++++++++++++++++++++++++++++++++.[-]<<<<<<<<<[-]>[-]>>>>>>>>>>>>>>>[-]>[>>]<<->[<<<[<<]>+>[>>]>-]<<<[<<]>[<<<<<<<<<<<<<<<+>>>>>>>>>>>>>>>-]<<<<<<<[-]<<<<<<]>++<<+<<[>>->+<<<-]>>>[<<<+>>>-]<[->+<<[>>>-<<+<-]>[<+>-]>>[<->[-]]<[<<<+>>>-]<]>>[-]<<<<[>>+>+<<<-]>>[<<+>>-]>[[-]>>>>>>+++++++++++++++++++
09:39:00 <kspalaiologos> ``` egobfi8
09:39:01 <HackEso> bash: egobfi8: command not found
09:39:11 <kspalaiologos> ``` ls
09:39:12 <HackEso> OUT \ a.c \ a.out \ as-encoding \ asmbf-1.1.1 \ banana.txt \ compiled_brachylog.pl \ hexdump.hex \ input.brachylog \ jeval.whatis \ just \ karma \ le \ out \ out.a \ out.a.hd \ out.a.xxd \ paste \ single-word-character-names \ spline \ spout \ spout.raw \ temp.b \ test.b \ test.sh \ tmp-interp \ tmp.txt \ uptime.out \ v1.1.1.tar.gz
09:39:28 <kspalaiologos> ``` ls asmbf-1.1.1
09:39:29 <HackEso> AUTHORS \ INSTALL \ LICENSE \ Makefile \ NEWS \ README \ TODO \ VERSIONING \ bconv.c \ bfasm.asm \ bfasm.b \ bfasm.c \ bfasm.rs \ bfi.c \ bfintd.c \ bfmake \ bfpp \ bin \ doc \ examples \ labels.pl \ strip.pl \ test \ test.pl
09:39:52 <kspalaiologos> ``` gcc asmbf-1.1.1/bfi.c -o bfi
09:39:54 <HackEso> No output.
09:40:18 <kspalaiologos> ``` ./bfi temp.b
09:40:19 <HackEso> 0Access Violation, ip=304
09:40:23 <kspalaiologos> Dang
09:44:41 <kspalaiologos> ``` asmbf psh 2/mov r2, r1/mod r2,r1/ne_ r2,0/pop r1/out r1
09:44:41 <HackEso> ​+>+[<[>>+>+<<<-]>>[<<+>>-]>[[-]>>>>>>++[<<<<<+>>>>>>>>>>>>+<<<<<<<-]<<<<<[>>>>>+<<<<<-]>>>>>>>>>>>>>[>>]+<<[<<]>[>[>>]<+<[<<]>-]<<<<<<<[-]<<<[-]<[>+<<+>-]<[>+<-]>>[->>>>>>>+<<<<<<<]<[->>>>>>>>>+<<<<<<<<<]>>>>>>>>[>->+<[>]>[<+>-]<<[<]>-]>>[-<<<<<<<<<+>>>>>>>>>]<[-]>[-]<<<<<<<<<[<<<+>>>-]>>>[<<<<<<->+>>>>>-]<<<<<[>>>>>+<<<<<-]<[>>>+<<<[-]]>>>>>>[-]<<<<[-]>>>>>>>>>>>[-]>[>>]<<->[<<<[<<]>+>[>>]>-]<<<[<<]>[<<<<<<<<<<<+>>>>>>>>>>>-]<<<<<<<<
09:59:39 -!- arseniiv has joined.
10:02:04 <fizzie> @tell oerjan Updated things, maybe it's a newer version of Mercurial/hgweb. There's a notion of changeset "phases", from secret -> draft -> public. It's maybe showing those, and counting everything as draft (the default for new changesets) as they're technically never been pushed to a remote repo (the browser shows the real thing).
10:02:04 <lambdabot> Consider it noted.
10:03:29 <fizzie> @tell b_jonas int-e does run lambdabot, as far as I know. It's definitely not me.
10:03:29 <lambdabot> Consider it noted.
10:07:25 <int-e> @tell b_jonas I do run and host lambdabot.
10:07:25 <lambdabot> Consider it noted.
10:07:41 -!- wib_jonas has joined.
10:07:59 <int-e> @tell wib_jonas b_jonas has messages ;)
10:07:59 <lambdabot> Consider it noted.
10:08:57 <esowiki> [[Lambdabot]] https://esolangs.org/w/index.php?diff=67230&oldid=67218 * B jonas * (-7) int-e hosts
10:09:07 <wib_jonas> `? kspalaiologos
10:09:08 <HackEso> kspalaiologos is addicted to brainfuck. His current work is disassembling brainfuck code for a casino that lost the source code.
10:09:25 <wib_jonas> kspalaiologos: ^ please complain if you don't like that
10:09:29 <wib_jonas> or change it
10:09:50 <int-e> `complain Nobody likes this.
10:09:51 <HackEso> Complaint filed. Thank you.
10:10:16 <wib_jonas> `? revert
10:10:19 <HackEso> ​`revert <rev>" can be used to revert to a revision. See <https://hack.esolangs.org/repo/>. It is a builtin command so cannot be called from other commands.
10:12:57 <wib_jonas> `url
10:12:58 <HackEso> https://hack.esolangs.org/repo/
10:13:04 <wib_jonas> `paste
10:13:34 <HackEso> https://hack.esolangs.org/tmp/paste/paste.12292
10:14:31 <fizzie> I wonder if I should make the stdin just /dev/null instead of the "blocking but never reads anything" weirdness it now is.
10:15:38 <fizzie> Candide (the former ##c bot) used to write a random 'fortune' to stdin.
10:16:03 <wib_jonas> fizzie: in https://hack.esolangs.org/repo/file/tip with a web browser, why is "etc/ luarocks" in one line?
10:16:55 <fizzie> It's a hgweb feature, it collapses directories that only have one file.
10:16:57 <int-e> wib_jonas: because etc/ is otherwise empty
10:17:33 <fizzie> Same with "brachylog/ brachylog" in https://hack.esolangs.org/repo/file/tip/interps
10:17:43 <wib_jonas> I see
10:17:49 <fizzie> (You can click either the directory or the file.)
10:18:30 <fizzie> Arguably, it should be "etc/ luarocks/" because the 'file' is actually a subdirectory.
10:18:46 <Lykaina> hi
10:18:54 <fizzie> Or even "etc/ luarocks/ config.lua". But anyway.
10:19:06 <int-e> fizzie: it doesn't do it for files though
10:19:22 <int-e> (as can be observed in https://hack.esolangs.org/repo/file/tip/wisdom)
10:19:29 <wib_jonas> fizzie: you may have to edit these commands: before now sedlast
10:19:37 <wib_jonas> because of the wd change
10:20:08 <wib_jonas> oh, the le directory has three files
10:20:09 <int-e> fizzie: but I agree that a trailing / would be desirable
10:20:15 <wib_jonas> `? le/rm
10:20:17 <wib_jonas> `? le//rm
10:20:18 <HackEso> le/rm? ¯\(°​_o)/¯
10:20:21 <HackEso> le//rm? ¯\(°​_o)/¯
10:21:17 <wib_jonas> ah, le/rm deletes wisdoms
10:21:21 <int-e> le/rm seems a bit silly
10:21:30 <int-e> so perfectly normal for HackEso.
10:21:54 <wib_jonas> ``` ls -dl /hackenv/le/rm # it's actually a symlink
10:21:55 <HackEso> lrwxrwxrwx 1 1000 1000 13 Jul 8 2017 /hackenv/le/rm -> ../bin/forget
10:22:34 <wib_jonas> by the way, did you know that you can't (easily) clone the repository to windows, the clone command actually dies because of a case-insensitive filename clash
10:23:01 <kspalaiologos> wib_jonas, it's perfect lol
10:23:09 <wib_jonas> I've seen source tarballs that you can't quite decompress that way, but the decompressors that I've tried only give a warning and don't unpack that one file. hg seems to actually die.
10:23:18 <wib_jonas> as in, abort the rest of the checkout.
10:23:36 <wib_jonas> there are almost certainly workarounds, but it's strange behavior from hg
10:29:38 <kspalaiologos> ``` asmbf-1.1.1/bfi temp.b
10:29:38 <HackEso> bash: asmbf-1.1.1/bfi: No such file or directory
10:29:41 <kspalaiologos> ?
10:29:45 <kspalaiologos> ``` ls
10:29:46 <HackEso> OUT \ a.c \ a.out \ as-encoding \ asmbf-1.1.1 \ banana.txt \ bfi \ compiled_brachylog.pl \ hexdump.hex \ input.brachylog \ jeval.whatis \ just \ karma \ le \ out \ out.a \ out.a.hd \ out.a.xxd \ paste \ single-word-character-names \ spline \ spout \ spout.raw \ temp.b \ test.b \ test.sh \ tmp-interp \ tmp.txt \ uptime.out \ v1.1.1.tar.gz
10:30:02 <kspalaiologos> ``` ls asmbf-1.1.1
10:30:07 <HackEso> AUTHORS \ INSTALL \ LICENSE \ Makefile \ NEWS \ README \ TODO \ VERSIONING \ bconv.c \ bfasm.asm \ bfasm.b \ bfasm.c \ bfasm.rs \ bfi.c \ bfintd.c \ bfmake \ bfpp \ bin \ doc \ examples \ labels.pl \ strip.pl \ test \ test.pl
10:30:38 <kspalaiologos> ``` ./bfi test.b
10:30:39 <HackEso> 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F 90 A0 A1
10:30:43 <kspalaiologos> Whoa what
10:30:59 <kspalaiologos> ``` ./bfi temp.b
10:30:59 <HackEso> 0Access Violation, ip=304
10:32:11 <kspalaiologos> ``` asmbf <<<"psh r3/
10:32:11 <kspalaiologos> mov r2, r1/
10:32:11 <kspalaiologos> mod r2, 64/
10:32:11 <kspalaiologos> ne_ r2, 0/
10:32:11 <kspalaiologos> pop r3" > temp.b
10:32:13 <HackEso> bash: -c: line 0: unexpected EOF while looking for matching `"' \ bash: -c: line 1: syntax error: unexpected end of file
10:32:24 <kspalaiologos> Noo
10:32:26 <kspalaiologos> Sorry
10:35:26 <wib_jonas> fizzie: stupid question. together with the wd change, why not break things further by moving the quotes database from /hackenv/quotes to /hackenv/share/quotes ?
10:36:50 -!- kspalaiologos has quit (Ping timeout: 240 seconds).
10:36:58 -!- kspalaiologos has joined.
10:38:01 <kspalaiologos> ``` asmbf <<<"psh 48/mod r1, 64/ne_ r1, 0/pop r2/out r2" > test.b
10:38:05 <HackEso> No output.
10:38:14 <esowiki> [[HackEso]] https://esolangs.org/w/index.php?diff=67231&oldid=67228 * B jonas * (+1804) web interface
10:38:20 <kspalaiologos> ``` ./bfi test.b
10:38:20 <HackEso> 0
10:38:24 <kspalaiologos> Dang
10:38:26 <kspalaiologos> It works
10:38:31 <kspalaiologos> Issue's invalid
10:38:40 <fizzie> wib_jonas: I don't have a particularly strong opinion on that.
10:39:30 <wib_jonas> I guess wisdom is directly in /hackenv too, and we use it often as well
10:40:19 <wib_jonas> I'll add symlinks under share though
10:40:46 <wib_jonas> ``` ln -sv ../wisdom ../quotes /hackenv/share/
10:40:48 <HackEso> ​'/hackenv/share/wisdom' -> '../wisdom' \ '/hackenv/share/quotes' -> '../quotes'
10:41:16 <wib_jonas> ``` grep -RF wob_jonas /hackenv/share/{wisdom,quotes}
10:41:17 <HackEso> ​/hackenv/share/wisdom/wob_jonas:wob_jonas is b_jonas in disguise, so that he can do magic tricks. \ /hackenv/share/quotes:<wob_jonas> and at least don't put Hofstadter next to the time cube guy without at least a semicolon, that's insulting Hofstadter \ /hackenv/share/quotes:<wob_jonas> that real-world complexity doesn't fit my simple model of English <wob_jonas> must be that darned Higgs-boson or some other symmetry-breaking mechani
10:41:36 <wib_jonas> that will help forwards compatibility in case we decided to make that move in the future
10:41:43 <fizzie> wib_jonas: Looks like oerjan changed lastfiles to output absolute paths, which I think has made before / now / sedlast work.
10:41:53 <wib_jonas> ok
10:41:53 <fizzie> `lastfiles
10:41:54 <HackEso> ​/hackenv/share/quotes \ /hackenv/share/wisdom
10:41:55 <kspalaiologos> ^8ball stuff
10:41:56 <fungot> ...out of time!
10:42:44 <wib_jonas> of course we have to be careful with the quotes link, it's too easy to accidentally overwrite it with a regular file when you edit it
10:47:04 <esowiki> [[Truth-machine]] https://esolangs.org/w/index.php?diff=67232&oldid=67105 * Keymaker * (+107) Acyclic Tag...
10:51:01 <zzo38> Do you have some ideas relating to typesetting text for card games such as Magic: the Gathering? I have some ideas about it, but there may be others, including some things which is not applicable to Magic: the Gathering but might be applicable in other card games.
10:51:47 <zzo38> And, I don't know what to do about holographic cards. Maybe a later version of my software (other than the first version) might support separations, which might be usable for such thing.
11:16:33 <wib_jonas> TODO: rewrite bin/rnooodl to pass its input through as soon as possible, rather than waiting for an eol or eof
11:17:59 <wib_jonas> fizzie: does HackEso tell the command somehow when the time limit for that command expires? this could be useful if a command wants to do cleanup shortly before that, to print or save partial results.
11:24:20 <esowiki> [[HackEso]] https://esolangs.org/w/index.php?diff=67233&oldid=67231 * B jonas * (+2) typoes
11:24:26 <esowiki> [[Esolang:Sandbox]] https://esolangs.org/w/index.php?diff=67234&oldid=67229 * Quadril-Is * (+387)
11:28:12 <esowiki> [[Truth-machine]] https://esolangs.org/w/index.php?diff=67235&oldid=67232 * Quadril-Is * (+30) /* Unsquare */
11:29:58 <esowiki> [[Lambdabot]] https://esolangs.org/w/index.php?diff=67236&oldid=67230 * B jonas * (+0) typo
11:30:23 <esowiki> [[Fungot]] https://esolangs.org/w/index.php?diff=67237&oldid=67203 * B jonas * (+0) typo
12:03:46 <esowiki> [[BIX Queue Subset]] https://esolangs.org/w/index.php?diff=67238&oldid=67215 * Ais523 * (-805) rv 2 revisions: the TC proof is wrong, because avd doesn't invert if the queue starts with a 0, thus throwing off the parity argument
12:15:18 <fizzie> wib_jonas: No, it's a straight SIGKILL at the timeout time. But I could make it, say, SIGTERM at timeout, SIGKILL five seconds later.
12:17:31 <int-e> wib_jonas: I guess lambadbot is lambdabot's evil twin.
12:19:33 <wib_jonas> fizzie: if you want a signal, consider SIGALARM, but I was thinking more of an env-var that gives the time when the program will be terminated relative to some linux timer
12:35:20 <fizzie> I guess. It's just that TERM + KILL is the standard systemd process termination method. Could have both, of course.
12:36:01 <fizzie> ("Processes will first be terminated via SIGTERM. If then, after a delay (configured via the TimeoutStopSec= option), processes still remain, the termination request is repeated with the SIGKILL signal.")
12:38:01 <wib_jonas> yeah, TERM may be better
12:38:44 <wib_jonas> note that you can get linux to generate SIGALARM with setitimer, then the processes can read the timer easily with getitimer
12:43:07 <fizzie> Termination is the standard action for SIGALRM as well, so that would probably work in practice.
12:45:45 <wib_jonas> oh yeah, you're right, it's spelled SIGALRM, perhaps because it's an old unix thing and they were stingy with identifier length
12:48:37 <fizzie> Right now the way it works is, after running the command, if a timeout has been set, umlbox init will start a second program that does `sleep(timeout); exit(0);`, and if that process terminates first, the actual command process is sent SIGKILL.
12:49:16 <wib_jonas> mind you, I realize that this isn't actually necessary for the rnooodl reimplementation at all
12:49:41 <fizzie> (I think that means the timeout might fire early if the sleep(3) call gets interrupted, but I guess in practice it isn't.)
12:49:58 <wib_jonas> but other programs could care
12:50:49 <fizzie> I could enable the GitHub issue tracker for the 'hackbot' repo to keep track of ideas like this, otherwise I'll never remember them.
12:52:13 <wib_jonas> fizzie: or we could collect ideas on https://esolangs.org/wiki/Talk:HackEso or somewhere in /hackenv
12:52:49 <fizzie> The HackEso talk page is maybe most logical, yes.
12:53:23 <fizzie> Incidentally, I was wondering whether that stuff should be outside the main namespace. But I guess it doesn't matter so much.
12:53:46 <fizzie> "Articles should be on the subject of esoteric programming languages, or about subjects relevant to these, for example computation theory." With a wide enough of definition of "relevant", it's fine.
12:54:12 <wib_jonas> other random idea to myself: modify the paste command so that when it creates a new paste file, log the filename, the $IRC_NICK and $IRC_TARGET to somewhere under tmp, to make it easier to clean up large pastes that I created and that are no longer needed
12:54:45 <wib_jonas> as for namespacing or categories, I don't know, feel free to figure out whatever about them
13:09:02 <wib_jonas> `apt-get moo
13:09:03 <HackEso> ​ (__) \ (oo) \ /------\/ \ / | || \ * /\---/\ \ ~~ ~~ \ ..."Have you mooed today?"... \ W: Unable to read /etc/apt/apt.conf.d/ - DirectoryExists (2: No such file or directory)
13:09:23 <wib_jonas> ^ why does it have to read /etc after it's already completed the command?
13:12:59 -!- kspalaiologos2 has joined.
13:14:42 <int-e> wib_jonas: https://hack.esolangs.org/tmp/paste/paste.22976 suggests that the actual read attempt comes before the cow
13:14:47 -!- kspalaiologos has quit (Ping timeout: 276 seconds).
13:17:10 <wib_jonas> oh right. stdout and stderr
13:17:16 <wib_jonas> ``` apt-get moo >/dev/null
13:17:17 <HackEso> W: Unable to read /etc/apt/apt.conf.d/ - DirectoryExists (2: No such file or directory)
13:18:33 <int-e> `` strace -eopenat,write,stat apt-get moo 2>&1 | paste
13:18:34 <HackEso> https://hack.esolangs.org/tmp/paste/paste.30284
13:19:00 <int-e> Sorry, this one is better... the code uses `stat` before opening files.
13:19:21 -!- kspalaiologos2 has quit (Read error: Connection reset by peer).
13:25:35 <int-e> So, apparently, apt-get collects errors in some buffer and prints them later.
13:26:06 <int-e> (or at least warnings)
13:26:15 -!- kspalaiologos has joined.
14:21:40 -!- kritixilithos has quit (Ping timeout: 260 seconds).
14:26:02 -!- kritixilithos has joined.
14:54:16 -!- arseniiv_ has joined.
14:57:29 -!- arseniiv has quit (Ping timeout: 276 seconds).
15:50:29 <kspalaiologos> I finished the memory manager for asm2bf I suppose
15:50:29 <kspalaiologos> https://pastebin.com/9VEvgUbn
15:50:35 <kspalaiologos> It's quite simple one
15:50:39 <kspalaiologos> but it's doing the job
15:50:54 <kspalaiologos> I'll try porting it now to my malbolge assembler to get it all covered
15:51:05 <kspalaiologos> I was expecting a lot more
15:51:16 <kspalaiologos> but I guess this is everything I can do in this amount of space
15:56:06 <kspalaiologos> the brainfuck code is very short
15:56:07 <kspalaiologos> https://pastebin.com/jVjBMAdZ
15:56:20 <kspalaiologos> RLE doesn't help much because the code isn't about constants
16:03:57 <kspalaiologos> I wonder will it run on bfasm in hackeso
16:04:09 <kspalaiologos> it's v1.1.1 iirc
16:04:27 <kspalaiologos> ``` asmbf <<<"seg 0\org 0\lbl 1\psh r2\clr r2\lbl 2\rcl r1,r2\add r2,16\jnz r1,2\sub r2,16\sto r2,1\mov r1,r2\pop r2\ret\lbl 3\sto r1,0\ret\lbl 4\psh r2\clr r2\lbl 5\rcl r1,r2\add r2,16\jnz r1,5\mov r1,r2\add r1,0\pop r2\asl r1\ret">temp.b
16:04:28 <HackEso> No output.
16:04:36 <kspalaiologos> ``` cat temp.b
16:04:37 <HackEso> ​+>+[#
16:04:39 <kspalaiologos> doesn't :/
16:04:43 <kspalaiologos> ``` rm -f temp.b
16:04:44 <HackEso> No output.
16:04:49 <kspalaiologos> ``` ls
16:04:49 <HackEso> OUT \ a.c \ a.out \ as-encoding \ asmbf-1.1.1 \ banana.txt \ bfi \ compiled_brachylog.pl \ hexdump.hex \ input.brachylog \ jeval.whatis \ just \ karma \ le \ out \ out.a \ out.a.hd \ out.a.xxd \ paste \ single-word-character-names \ spline \ spout \ spout.raw \ test.b \ test.sh \ tmp-interp \ tmp.txt \ uptime.out \ v1.1.1.tar.gz
16:04:57 <kspalaiologos> ``` rm bfi
16:04:57 <HackEso> No output.
16:05:06 <kspalaiologos> ``` rm test.b
16:05:08 <HackEso> No output.
16:05:16 <kspalaiologos> ``` rm v1.1.1.tar.gz
16:05:17 <HackEso> No output.
16:05:23 <kspalaiologos> it's my stuff I'm cleaning it up as it's no longer needed
16:05:56 <esowiki> [[Esolang:Sandbox]] M https://esolangs.org/w/index.php?diff=67239&oldid=67234 * PaniniTheDeveloper * (+314)
16:13:02 -!- atslash has quit (Quit: Leaving).
16:17:59 -!- imode has joined.
16:20:03 <kspalaiologos> `asmbf mov r1,0/sto r1,3/db_ 1/rcl r1,0/out r1
16:20:08 <HackEso> ​+>+[<[>>+>+<<<-]>>[<<+>>-]>[[-]>>[-]>>>>+++<<<<[<+>>>>>>>>>>>>>>>+<<<<<<<<<<<<<<-]<[>+<-]>>>>>[<<<<<+>>>>>>>>>>>>>>+<<<<<<<<<-]<<<<<[>>>>>+<<<<<-]>>>>>>>>>>>>>>>[[>>]+[<<]>>-]+[>>]<[-]<[<<]>[>[>>]<+<[<<]>-]>[>>]<<[-<<]><<<<<<<<<[-]>>>>>>>>>>>+<<<<<<<<<<<<<<<[-]>>>>[<<<<<+>>>>>>>>>>+>>>>>+<<<<<<<<<<-]<<<<<[>>>>>+<<<<<-]>>>>>>>>>>>>>>>[[>>]+[<<]>>-]+[>>]<[<[<<]>+<<<<<<<<<<<<<+>>>>>>>>>>>>>>[>>]<-]<[<<]>[>[>>]<+<[<<]>-]>[>>]<<[-<<]><<<<<
16:20:21 <kspalaiologos> ``` asmbf <<<"mov r1,0/sto r1,3/db_ 1/rcl r1,0/out r1"
16:20:22 <HackEso> ​+>+[<[>>+>+<<<-]>>[<<+>>-]>[[-]>>[-]>>>>+++<<<<[<+>>>>>>>>>>>>>>>+<<<<<<<<<<<<<<-]<[>+<-]>>>>>[<<<<<+>>>>>>>>>>>>>>+<<<<<<<<<-]<<<<<[>>>>>+<<<<<-]>>>>>>>>>>>>>>>[[>>]+[<<]>>-]+[>>]<[-]<[<<]>[>[>>]<+<[<<]>-]>[>>]<<[-<<]><<<<<<<<<[-]>>>>>>>>>>>+<<<<<<<<<<<<<<<[-]>>>>[<<<<<+>>>>>>>>>>+>>>>>+<<<<<<<<<<-]<<<<<[>>>>>+<<<<<-]>>>>>>>>>>>>>>>[[>>]+[<<]>>-]+[>>]<[<[<<]>+<<<<<<<<<<<<<+>>>>>>>>>>>>>>[>>]<-]<[<<]>[>[>>]<+<[<<]>-]>[>>]<<[-<<]><<<<<
16:20:26 <kspalaiologos> ``` asmbf <<<"mov r1,0/sto r1,3/db_ 1/rcl r1,0/out r1" > temp.b
16:20:27 <HackEso> No output.
16:20:41 <kspalaiologos> ``` gcc asmbf-1.1.1/bfi.c -o bfi
16:20:43 <HackEso> No output.
16:20:48 <kspalaiologos> ``` ./bfi temp.b
16:20:48 <HackEso>
16:52:29 <esowiki> [[Post-preprocessor]] M https://esolangs.org/w/index.php?diff=67240&oldid=57213 * PaniniTheDeveloper * (+0)
16:57:48 -!- wib_jonas has quit (Remote host closed the connection).
17:16:35 -!- imode has quit (Ping timeout: 250 seconds).
17:48:23 -!- bfbot has joined.
17:48:50 <kspalaiologos> a ha!
17:49:00 <kspalaiologos> probably I should move to esoteric-blah with my bot
17:49:05 -!- bfbot has quit (Remote host closed the connection).
17:49:33 <kspalaiologos> it takes forever for it to join tho
17:50:54 -!- kritixilithos has quit (Quit: quit).
17:56:35 -!- LKoen has joined.
18:27:49 -!- b_jonas has joined.
18:51:10 -!- FreeFull has joined.
18:54:27 <b_jonas> `whatis !
18:54:28 <HackEso> ​!(1hackeso) - run snippet in esoteric languages emulating the ! command of EsoBot
18:54:37 <b_jonas> there was a typo in that line, which is why it wasn't found previously. I fixed it now
20:12:24 <esowiki> [[Acyclic Tag]] https://esolangs.org/w/index.php?diff=67241&oldid=66807 * Keymaker * (+6678) Added a quine.
20:18:27 -!- ais523 has joined.
20:18:56 <ais523> Keymaker: neat, it's obvious how it works once you see it but I'm not sure I'd have thought of that design
20:19:08 -!- dnm has joined.
20:21:10 <ais523> hmm, now I'm disappointed that there doesn't seem to be a simple TC construction for a Core BIX Queue subset
20:21:26 <ais523> I still think many of them are likely to be TC but I worry that the construction will have to be quite complex or inefficient
20:27:25 <dnm> Every now and then I randomly come across something -- usually not specifically about esolangs -- that re-triggers the itch in my brain to sit down and actually hack one together, which although I've thought about from time to time, I have yet to do. This weekend it was stumbling across this: http://www.bhk.com/make/closures.html
20:28:39 <dnm> (The source code [and accompanying tools/assets] to that article are even better...)
20:35:25 -!- ais523 has quit (Remote host closed the connection).
20:36:37 -!- ais523 has joined.
20:41:10 -!- kspalaiologos has quit (Quit: Leaving).
20:57:23 -!- kspalaiologos has joined.
20:59:55 <kspalaiologos> Hello, can someone who knows how to do it add a command using one ` that will run asmbf and then it's output?
21:00:07 <kspalaiologos> I needed it today to quickly check some snippets
21:00:33 <kspalaiologos> But I had to build my interpreter beforehand
21:00:42 <kspalaiologos> And deal with my crappy phone keyboard
21:03:56 <ais523> how does the command look with two `?
21:04:06 <ais523> or do you not have that working yet either?
21:05:42 -!- hppavilion[1] has joined.
21:37:28 <arseniiv_> . o O ( are “golden ratio in art and nature” issues sufficiently esoteric to discuss? )
21:37:39 -!- arseniiv_ has changed nick to arseniiv.
21:38:26 <arseniiv> (as a quick summary, I think these things are hugely overrated and at least half of them are selection bias and wishful thinking)
21:40:53 <kmc> agreed
21:48:17 -!- hppavilion[1] has quit (Ping timeout: 240 seconds).
22:00:35 <lf94> +1
22:04:27 <arseniiv> glad to see I’m not mad :D
22:23:33 <fizzie> `asmbfx @hello/out 48/ret/@main/psh %hello1/jmp %hello/@hello1
22:23:34 <HackEso> 0
22:23:58 <fizzie> kspalaiologos: I don't know how `asmbf works, but I just plumbed the output into a egobfi8.
23:06:26 -!- arseniiv has quit (Ping timeout: 240 seconds).
23:42:21 -!- hppavilion[1] has joined.
2019-11-19
00:01:50 <esowiki> [[Talk:ESON]] N https://esolangs.org/w/index.php?oldid=67242 * IFcoltransG * (+185) Created page with "The hex regex looks ambiguous with the quaternary. Are you sure it isn't meant to be 'x'? ~~~~"
00:04:10 -!- LKoen has quit (Remote host closed the connection).
00:06:43 -!- LKoen has joined.
00:08:33 <esowiki> [[XS]] M https://esolangs.org/w/index.php?diff=67243&oldid=46834 * IFcoltransG * (+24) Added 'see also' to XSM
00:08:46 -!- FreeFull has quit.
00:48:26 -!- oerjan has joined.
00:53:14 -!- ArthurStrong has joined.
00:53:20 <oerjan> @messages-gold
00:53:20 <lambdabot> fizzie said 14h 51m 15s ago: Updated things, maybe it's a newer version of Mercurial/hgweb. There's a notion of changeset "phases", from secret -> draft -> public. It's maybe showing those, and
00:53:20 <lambdabot> counting everything as draft (the default for new changesets) as they're technically never been pushed to a remote repo (the browser shows the real thing).
00:53:48 <oerjan> mhm
00:58:15 <oerjan> `` ls -ld .hg
00:58:16 <HackEso> ls: cannot access '.hg': No such file or directory
00:58:19 <oerjan> hm
00:58:31 <oerjan> `` cat bin/hlnp
00:58:32 <HackEso> cat: bin/hlnp: No such file or directory
00:58:39 <oerjan> `` cat ../bin/hlnp
00:58:40 <HackEso> scowrevs="$(/usr/bin/paste -sd'|' /hackenv/share/scowrevs)"; hg log -r "tip:0 & ! ($scowrevs)" "$@" | sed 's/\(\(^\| \)[<Itb][^ ]*\)\([^ ][^ ]\)/\1̈\3/'
00:59:17 <oerjan> curious. does hg recurse into parent directories to find .hg by default?
00:59:28 <ais523> I'd assume most VCSes do
00:59:33 <oerjan> i suppose
00:59:41 <ais523> as it's common to want to VCS from a subdirectory
00:59:46 <ais523> git won't recurse across filesystems, though
01:00:00 <oerjan> well that explains why that didn't break
01:00:26 <oerjan> heh so git might have broken, since tmp is mounted separately
01:00:33 <oerjan> (or wait, is it)
01:00:44 <oerjan> i suppose it isn't
01:00:59 <oerjan> it was introduced with the .hgignore hack, after all
01:01:16 <oerjan> `` ls -ld .hg*
01:01:17 <HackEso> ls: cannot access '.hg*': No such file or directory
01:01:39 <oerjan> `` ls -ld ../.hg*
01:01:39 <HackEso> drwxr-xr-x 5 1000 1000 4096 Nov 19 01:01 ../.hg \ -rw-r--r-- 1 1000 1000 150 Jul 8 2017 ../.hg_archival.txt \ -rw-r--r-- 1 1000 1000 6 Jul 8 2017 ../.hgignore
01:02:26 <ais523> hah, I didn't even realise that we created /tmp from inside HackEso, I assumed it was hardcoded
01:03:27 <oerjan> it wasn't, although now there's a hardcoded restore of .hgignore to ensure it doesn't break
01:03:54 <ais523> hmm, is HackEso technically a codenomic?
01:04:17 <ais523> I guess not, because of the hardcoded `rever
01:04:19 <ais523> * `revert
01:04:38 <ais523> meaning that nothing can ever become permanently disallowed
01:05:06 -!- mniip has quit (Ping timeout: 615 seconds).
01:05:07 <oerjan> that's not really possible anyway since you can run global commands.
01:05:31 <oerjan> except for that evil canary bug that someone once found, but that's been fixed
01:05:44 <fizzie> I'm sure there are permissions bugs left.
01:06:22 <ais523> it was probably me, I liked doing weird things with the canary just to see what would happen
01:07:01 <ais523> that said, if we're gradually moving more and more important things to /tmp, the canary probably won't help much
01:07:04 <oerjan> i think maybe it was actually chmod 000 . , but that broke everything because of side effects with the canary
01:07:06 <ais523> as it won't stop a deletion from there
01:07:32 <oerjan> we're not supposed to move important things to tmp/
01:07:33 <fizzie> /tmp is a bad name; it's either tmp or /hackenv/tmp.
01:07:55 <oerjan> everything there is in principle ephemeral
01:08:04 <ais523> `touch /tmp/test
01:08:06 <HackEso> No output.
01:08:13 <fizzie> That's writable too, it's just not persistent.
01:08:13 <ais523> `ls -l /tmp/test
01:08:14 <HackEso> ls: invalid option -- ' ' \ Try 'ls --help' for more information.
01:08:20 <oerjan> which creates some trouble for le/ which now can be broken
01:08:21 <ais523> `` ls -l /tmp/test
01:08:21 <HackEso> ls: cannot access '/tmp/test': No such file or directory
01:08:31 <ais523> ah, I see, it disappears every command
01:08:35 <fizzie> It's a tmpfs inside the per-command kernel, yes.
01:08:49 <ais523> that means it's probably the best place for files that are genuinely temporary
01:08:55 <ais523> like ibin/brachylog uses
01:09:29 <fizzie> I switched it to /tmp when fixing the $HACKENV thing.
01:10:16 <fizzie> oerjan: Incidentally, I didn't include misle in tmp yet.
01:10:42 <fizzie> (There's misle/rn and misle/rn_append, the counterparts of the same commands in le/ but for tmflry instead of wisdom.)
01:10:57 <shachaf> whoa
01:11:12 <fizzie> It's really only `foo/bar commands that, in the /hackenv/tmp cwd setup, unfortunately have to have some part inside tmp.
01:11:16 <shachaf> `` doag /hackenv/misle
01:11:17 <HackEso> 6804:2016-02-10 <oerjän> undo c58a6174e051 \ 6800:2016-02-10 <oerjän> ` sed -i \'s/| lowercase//\' misle/* \ 6786:2016-02-10 <oerjän> ` sed -i \'s/Learned/Was lied to about/\' misle/* \ 6783:2016-02-10 <oerjän> ` mkdir misle; cp le/* misle; sed -i \'s/wisdom/tmflry/g\' misle/*
01:11:41 <shachaf> i've been misled
01:12:37 <fizzie> I've never really understood the concept of tmflry, TBH.
01:12:49 <ais523> why doesn't `foo/bar look in /hackenv/bin/foo/bar?
01:13:13 <fizzie> Because it uses a shell to execute the command.
01:13:21 <fizzie> And "foo/bar" is not looked up in $PATH.
01:13:37 <fizzie> I mean, it doesn't need to do that, but that's the immediate reason.
01:13:42 <ais523> fizzie: well, an actual learndb full of useful information is something many channels benefit from, probably this one would as well; however, nobody seemed inclined to make it and the naming was silly
01:13:49 <ais523> `? INTERCAL
01:13:50 <HackEso> INTERCAL has excellent features for modular program for the enterprise market.
01:13:55 <ais523> `? Brachylog
01:13:56 <HackEso> Brachylog? ¯\(°​_o)/¯
01:13:59 <ais523> `? Jelly
01:14:00 <HackEso> Jelly? ¯\(°​_o)/¯
01:14:08 <ais523> imagine if that give actual summaries of the esolangs
01:14:13 <ais523> it'd be better for conversation
01:14:24 <ais523> as it is, though, people just give esowiki links
01:14:28 <ais523> https://esolangs.org/wiki/INTERCAL etc.
01:14:33 <fizzie> I think the problem is, not all the wisdom entries are foolishness either.
01:14:34 <kingoffrance> `? COME FROM
01:14:35 <HackEso> COME FROM? ¯\(°​_o)/¯
01:15:02 <kingoffrance> `? ¯\(°​_o)/¯
01:15:04 <HackEso> ​¯\(°​_o)/¯ is a misspelling of ¯\(°_o)/¯
01:15:14 <kingoffrance> well that was interesting
01:15:38 <fizzie> I was vaguely considering I might have `!wiki INTERCAL` or some-such make esowiki print out the link plus the first paragraph.
01:16:41 <fizzie> (The convention of using `backtick quoting` for code text doesn't really work for talking about HackEso commands.)
01:16:54 <ais523> do we at least have a command for linking to the wiki?
01:16:56 <ais523> `wiki INTERCAL
01:16:57 <HackEso> https://esolangs.org/wiki/tmp/INTERCAL
01:17:08 <fizzie> Whoops, that looks like a bug.
01:17:10 <ais523> beautiful :-D
01:17:19 <ais523> `cat bin/wiki
01:17:20 <HackEso> cat: bin/wiki: No such file or directory
01:17:24 <ais523> `cat /hackenv/bin/wiki
01:17:24 <HackEso> ​#!/usr/bin/env python \ import sys, os.path, urllib \ if len(sys.argv) <= 1: \ print "https://esolangs.org/" \ else: \ f = os.path.abspath(sys.argv[1]) \ if f.startswith('/hackenv/'): f = f[9:] \ print ("https://esolangs.org/wiki/" + \ urllib.quote(f))
01:17:46 <fizzie> I'm not sure why exactly it treats the argument as a path.
01:18:09 <ais523> nor am I
01:18:25 <fizzie> ^wiki INTERCAL
01:18:25 <fungot> https://esolangs.org/wiki/INTERCAL
01:18:33 <fizzie> We also have the befunge equivalent.
01:18:58 <fizzie> Er, brainfuck equivalent. Kind of.
01:19:01 <ais523> ^wiki ///
01:19:01 <fungot> https://esolangs.org/wiki////
01:19:13 <ais523> ^wiki ;#
01:19:13 <fungot> https://esolangs.org/wiki/;#
01:19:21 <ais523> hmm, I don't think it's doing any sort of escaping
01:19:27 <fizzie> No, it's just a ,[.,]
01:20:06 <ais523> (;# is an esolang, technically, but a really terrible one; it's basically a sub-TC minimalisation of BF to just the + and . commands)
01:20:25 <ais523> (so in a way I'm glad we dont't have an article on it)
01:21:11 <oerjan> `dobg wiki
01:21:12 <HackEso> 11334:2018-01-20 <fizzïe> fetch bin/wiki https://hackego.esolangs.org/get/bin/wiki \ 10393:2017-03-11 <oerjän> ` chmod +x bin/wiki \ 10392:2017-03-11 <oerjän> fetch bin/wiki https://hackego.esolangs.org/get/bin/wiki \ 7080:2016-03-05 <hppavilion[1̈]> rm bin/wiki \ 7079:2016-03-05 <hppavilion[1̈]> ` echo "echo \\"http://esolangs.org/wiki/Main_Page\\"" > bin/wiki
01:21:33 <oerjan> `hurl ../bin/wiki
01:21:34 <HackEso> https://hack.esolangs.org/repo/log/tip/bin/wiki
01:22:22 <fizzie> `slbd wiki//6,7d;s/quote(f)/quote(sys.argv[1])/
01:22:24 <HackEso> wiki//#!/usr/bin/env python \ import sys, os.path, urllib \ if len(sys.argv) <= 1: \ print "https://esolangs.org/" \ else: \ print ("https://esolangs.org/wiki/" + \ urllib.quote(sys.argv[1]))
01:22:26 <ais523> there is something very weird about a 1 with an umlaut on it :-D
01:22:27 <fizzie> Let's give that a try.
01:22:35 <fizzie> `wiki INTERCAL
01:22:35 <HackEso> https://esolangs.org/wiki/INTERCAL
01:22:36 <ais523> accented digits isn't something I'd even considered
01:22:54 <ais523> `wiki ;#
01:22:55 <HackEso> https://esolangs.org/wiki/%3B%23
01:24:43 <oerjan> `hurl ../bin/url
01:24:44 <HackEso> https://hack.esolangs.org/repo/log/tip/bin/url
01:25:33 <fizzie> Right, maybe it was adapted from url and/or suchlike.
01:26:14 <shachaf> Wasn't clearing tmp/ supposed to be supported?
01:26:17 <ais523> `unicode COMBINING CEDILLA
01:26:18 <HackEso> ​̧
01:26:30 <ais523> 5
01:26:51 <oerjan> fizzie: i must have done it by i don't remember
01:26:54 <ais523> I meant ​5̧
01:27:04 <shachaf> Is the state in tmp/ now required for le/rn operation?
01:27:12 <fizzie> Yes. It is a shame.
01:27:27 <ais523> hmm my client renders that 5-cedilla pretty well
01:27:36 <ais523> s/hmm/hmm,/
01:29:25 <oerjan> <shachaf> Wasn't clearing tmp/ supposed to be supported? <-- yes, but now we have a choice between that and keeping le/rn working.
01:30:57 <oerjan> or fizzie could add a hack to catch /-containing commands
01:32:20 <fizzie> I could make ` in general just do a custom lookup, it's already kind of a non-standard parsing.
01:32:45 <fizzie> In that it splits on first space to form the command and its full argument.
01:38:21 <ais523> hmm, I assume you can't just hardcode it to run /hackenv/bin/command because you need to be able to run commands like ls too
01:38:23 -!- kspalaiologos has quit (Ping timeout: 250 seconds).
01:46:01 <oerjan> was HackEgo on CaC from the start? i vaguely think otherwise.
01:46:45 <oerjan> hm no it wasn't, there was at least one move that changed stuff
01:46:54 <oerjan> when it colocated with the wiki
01:47:23 <fizzie> The very first join is from codu.xen.prgmr.com.
01:47:54 <esowiki> [[HackEso]] https://esolangs.org/w/index.php?diff=67244&oldid=67233 * Oerjan * (+71) Fix a few errors and mention hurl
01:50:55 <fizzie> The hosts my logs have seen are HackEgo!~HackEgo@162.248.166.242 (CaC, 57k lines), HackEgo!codu@codu.org (who knows where, 12k lines), HackEgo!dlopen@libdl.so (ditto, 5.8k lines) and a few less common ones, including HackEgo!n=HackEgo@codu.xen.prgmr.com, HackEgo!dlopen@64.62.173.65.
01:51:13 <fizzie> Also, the way the command and arguments flow through all the levels is pretty awkward.
01:53:04 * oerjan remembers libdl.so
01:55:04 <oerjan> <b_jonas> do you suppose this change is ok? <-- i don't see a rule that it is violating, which is sort of not in the spirit
01:59:05 <fizzie> First, in PRIVMSG/tr_60.cmd (called by multibot for trigger character `) it's split into the command and an optional argument on the first space. Then it calls lib/sandbox with Python subprocess.Popen. That next uses Python subprocess.call to form the umlbox command line: 'nice', '-n10', '/usr/bin/umlbox', ..., '.../limits', 'cmd', 'argument stuff'. Then umlbox shell-escapes all the arguments and
01:59:11 <fizzie> concatenates the results into a 'run' command in the umlbox config file. The umlbox init reads that, and invokes the result using system() -- so passing through a shell at that point. Finally, that triggers the lib/limits script, which sets a few ulimit values and uses bash exec to run the actual command.
02:00:16 <fizzie> `` cat /proc/$PPID/cmdline
02:00:19 <HackEso> sh.-c.'/srv/hackeso-code/multibot_cmds/lib/limits' '`' 'cat /proc/$PPID/cmdline' | cat.
02:00:40 <fizzie> Such a house of cards.
02:01:47 <shachaf> oerjan: Well, maybe subdirectories of tmp/ can be version-controlled.
02:02:05 <shachaf> Or maybe there can be some thing that detects when tmp/ is cleared and puts the things back.
02:05:50 -!- LKoen has quit (Remote host closed the connection).
02:10:33 * oerjan thinks today's schlock mercenary looks a bit inconsistent with the previous claim that most AIs aren't easily copyable
02:50:43 -!- imode has joined.
02:52:49 <shachaf> I think maybe I'm still missing something about non-chronological backjumping.
03:10:27 -!- ais523 has quit (Quit: quit).
03:13:56 <oerjan> `url ../bin/addquote
03:13:57 <HackEso> https://hack.esolangs.org/repo/file/tip/bin/addquote
03:14:29 <oerjan> `url ../bin/delquote
03:14:29 <shachaf> ../hello/oerjan
03:14:30 <HackEso> https://hack.esolangs.org/repo/file/tip/bin/delquote
03:14:53 <oerjan> hi/chaf
03:15:09 <oerjan> thought so
03:15:24 <oerjan> `` ls -l ../share/quotes
03:15:25 <HackEso> lrwxrwxrwx 1 1000 1000 9 Nov 18 10:40 ../share/quotes -> ../quotes
03:15:35 <oerjan> `` rm ../share/quotes
03:15:37 <HackEso> No output.
03:15:59 <oerjan> delquote works in a way that will break if it's a symbolic link
03:17:07 <shachaf> oerjan: ENOENT
03:17:18 <shachaf> did you mean /hackenv/hi/chaf
03:18:37 <oerjan> ENO
03:19:02 <shachaf> You know how it's megaconfusing when executing a file yields ENOENT even though it exists?
03:20:20 <oerjan> b_jonas: ^
03:20:31 <oerjan> EYESENT
03:20:46 <oerjan> (not really)
03:21:24 <shachaf> `` ls -l program
03:21:25 <HackEso> ​-rwxr-xr-x 1 1000 1000 1576 Nov 19 03:20 program
03:21:28 <shachaf> `` ./program
03:21:28 <HackEso> ​/hackenv/bin/`: line 5: ./program: No such file or directory
03:21:50 <shachaf> `` strace ./program
03:21:51 <HackEso> execve("./program", ["./program"], 0x7fbf90dce0 /* 15 vars */) = -1 ENOENT (No such file or directory) \ strace: exec: No such file or directory \ +++ exited with 1 +++
03:21:53 * oerjan instantly wanted to `doag that
03:21:57 <oerjan> then remembered
03:22:06 <shachaf> sorry
03:22:11 <shachaf> `` ../tmp/program # hth
03:22:12 <HackEso> ​/hackenv/bin/`: line 5: ../tmp/program: No such file or directory
03:23:40 <shachaf> kmc: puzzle hth
03:23:49 <oerjan> this is a conceptual problem: since files in tmp/ have no repo history, it can be hard to know why they were put there, and therefore whether they're worth saving
03:24:10 <shachaf> I guess it's not a very good puzzle because we've already talked about it.
03:24:22 <shachaf> oerjan: Wasn't the hg repository supposed to solve this problem in the first place?
03:24:26 <oerjan> and the change of pwd encourages people to put things there by accident
03:24:36 <shachaf> The idea was just that no one would care about hg history and it would describe everything.
03:24:36 <oerjan> shachaf: EFULLCIRCLE
03:24:48 <shachaf> So the solution is obvious: Add a second hg repository for tmp/.
03:25:05 <oerjan> EBRILLIANT
03:26:06 <shachaf> As an alternative, I propose something like automatic deletion of tmp/ every day.
03:26:09 <shachaf> Or every hour.
03:26:13 <shachaf> Or maybe just deleting old files automatically.
03:26:28 <shachaf> `` ls
03:26:29 <HackEso> a.c \ a.out \ as-encoding \ asmbf-1.1.1 \ banana.txt \ bfi \ compiled_brachylog.pl \ hexdump.hex \ input.brachylog \ jeval.whatis \ just \ karma \ le \ out \ OUT \ out.a \ out.a.hd \ out.a.xxd \ paste \ program \ single-word-character-names \ spline \ spout \ spout.raw \ temp.b \ test.sh \ tmp-interp \ tmp.txt \ uptime.out
03:28:45 <oerjan> maybe we should warn kspalaiologos before doing it. i think his asmbf workflow isn't quite compatible at the moment.
03:30:02 <shachaf> Also, you can apparently hg add things inside hgignored directories.
03:30:05 <shachaf> fizzie: ☝
03:30:14 <oerjan> oh that's true
03:30:25 <shachaf> Though that requires superpowers which isn't in the spirit of le/rn
03:30:58 <oerjan> hm
03:31:35 <fizzie> I'm a little worried about the complexity of tmp handling to add version-controlled stuff inside it. I think I'll rather adjust `foo/bar to look for /hackenv/bin/foo/bar (in some shape or form, we'll see), which'll also mean you no longer need even the /hackenv/le, all the binaries can be in bin.
03:32:36 <shachaf> Or maybe we can just get rid of le/rn etc. which are silly commands anyway?
03:32:46 <shachaf> It could be called slashlearn, for instance.
03:32:58 <shachaf> Or lern or lrn or lesrn or le\rn
03:34:00 <oerjan> `` sort -t | tac
03:34:00 <HackEso> sort: option requires an argument -- 't' \ Try 'sort --help' for more information.
03:34:26 <oerjan> `` ls -t | tac
03:34:27 <HackEso> jeval.whatis \ tmp.txt \ out \ out.a \ OUT \ out.a.xxd \ out.a.hd \ a.c \ as-encoding \ single-word-character-names \ a.out \ hexdump.hex \ test.sh \ asmbf-1.1.1 \ just \ banana.txt \ le \ karma \ tmp-interp \ uptime.out \ spout.raw \ spout \ spline \ input.brachylog \ compiled_brachylog.pl \ paste \ temp.b \ bfi \ program
03:34:42 <fizzie> In related news, I would like a config option that can disable .hgignore. Then I could set up .hg/hgrc to point at a read-only ignore file.
03:35:20 <shachaf> Why shouldn't .hgignore belong to the people?
03:35:32 <fizzie> Because it's too hard to make things work sanely.
03:35:42 <fizzie> It doesn't belong to the people any more anyway.
03:35:43 <oerjan> `` ls -t | tac | head -n 12 | xargs rm -v
03:35:44 <HackEso> removed 'jeval.whatis' \ removed 'tmp.txt' \ removed 'out' \ removed 'out.a' \ removed 'OUT' \ removed 'out.a.xxd' \ removed 'out.a.hd' \ removed 'a.c' \ removed 'as-encoding' \ removed 'single-word-character-names' \ removed 'a.out' \ removed 'hexdump.hex'
03:35:46 <shachaf> Is that a goal?
03:35:59 <shachaf> I know it doesn't, but maybe it oughtta.
03:36:02 <oerjan> (compromise)
03:36:03 <fizzie> It's my goal, since I have to pretend to administer that thing.
03:36:17 <shachaf> Hey, you deleted out.a!
03:36:26 <oerjan> what was that for?
03:36:30 <fizzie> get.out.a.here
03:36:43 <shachaf> It was a variant of ./program
03:36:46 <shachaf> `` ./program
03:36:47 <HackEso> ​/hackenv/bin/`: line 5: ./program: No such file or directory
03:36:51 <shachaf> Oh no, ./program is gone too?!
03:36:52 <oerjan> shachaf: well it was OLD
03:37:30 <fizzie> (Incidentally, one way to "disable" .hgignore would be to only mount a subdirectory of the repository as /hackenv.)
03:37:34 <oerjan> (maybe not _that_ old, but i deleted the 12 oldest files)
03:37:48 <fizzie> (But moving every file into a subdirectory would be the mother of all scowrevs.)
03:37:52 <fizzie> (Anyway, sleep mode.)
03:38:20 <fizzie> (Well, I could always rewrite history so that it looked like it always had been like that.)
03:40:44 <oerjan> `` ls -t | tac
03:40:45 <HackEso> test.sh \ asmbf-1.1.1 \ just \ banana.txt \ le \ karma \ tmp-interp \ uptime.out \ spout.raw \ spout \ spline \ input.brachylog \ compiled_brachylog.pl \ paste \ temp.b \ bfi \ program
03:40:57 <oerjan> shachaf: program is still there
03:42:46 <oerjan> (wait that's the joke isn't it)
03:43:16 <oerjan> `cbt sport
03:43:17 <HackEso> cat "${2:-/dev/stdin}" >$HACKENV/tmp/spout.raw; distort $HACKENV/tmp/spout.raw | spore "${1-1}"
03:43:20 <oerjan> `cbt spore
03:43:21 <HackEso> cat "${2:-/dev/stdin}" > $HACKENV/tmp/spout; spam "${1-1}"
03:43:50 <oerjan> hm
03:43:59 -!- hppavilion[1] has quit (Ping timeout: 246 seconds).
03:44:22 <oerjan> `slbd sport s,$HACKENV,,g
03:44:22 <HackEso> usage: sled file//script
03:44:30 <oerjan> `slbd sport//s,$HACKENV,,g
03:44:32 <HackEso> sport//cat "${2:-/dev/stdin}" >/tmp/spout.raw; distort /tmp/spout.raw | spore "${1-1}"
03:44:51 <oerjan> i don't think there's any reason to have that file persistent
03:45:13 <oerjan> `rm spout.raw
03:45:14 <HackEso> No output.
03:45:40 <oerjan> `` rm -v *brachylog*
03:45:40 <HackEso> removed 'compiled_brachylog.pl' \ removed 'input.brachylog'
03:45:55 <oerjan> and fizzie moved those to /tmp as well afaiu
03:46:37 <oerjan> `url ../bin/uptime
03:46:38 <HackEso> https://hack.esolangs.org/repo/file/tip/bin/uptime
03:47:33 <oerjan> `url uptime.out
03:47:34 <HackEso> https://hack.esolangs.org/tmp/uptime.out
03:48:17 <oerjan> seems like debugging output
03:52:17 -!- MDude has quit (Ping timeout: 240 seconds).
03:52:18 <oerjan> ^show
03:52:18 <fungot> echo reverb rev rot13 rev2 fib wc ul cho choo pow2 source help hw srmlebac uenlsbcmra scramble unscramble asc ord prefixes tmp test celebrate wiki chr ha rainbow rainbow2 welcome me tell eval elikoski list ping def a thanks tmp2 8ball rreree rerere botsnack bf
03:52:39 <oerjan> ^show bf
03:52:39 <fungot> (^bf -- evaluates brainfuck)S
03:53:27 <oerjan> ^show def
03:53:27 <fungot> (hai)S
03:53:42 <oerjan> ^def
03:53:42 <fungot> hai
03:54:45 <oerjan> ^str
04:20:06 <shachaf> oerjan: That was a sort of joke, yep.
04:26:16 <oerjan> OKAY
04:50:56 -!- imode has quit (Ping timeout: 240 seconds).
05:07:59 <kmc> helo
05:08:02 <kmc> what's puzzle
05:08:07 <kmc> shachaf^
05:08:32 <kmc> I had some EtOH
05:08:39 <kmc> I'm sauzzled
05:54:32 <esowiki> [[User:Zemeckis]] https://esolangs.org/w/index.php?diff=67245&oldid=50152 * Zemeckis * (-98)
05:59:19 <shachaf> `` ls -l program
05:59:20 <HackEso> ​-rwxr-xr-x 1 1000 1000 1576 Nov 19 03:20 program
05:59:23 <shachaf> `` ./program
05:59:24 <HackEso> ​/hackenv/bin/`: line 5: ./program: No such file or directory
05:59:27 <shachaf> `` strace ./program
05:59:28 <HackEso> execve("./program", ["./program"], 0x7fbfc5dce0 /* 15 vars */) = -1 ENOENT (No such file or directory) \ strace: exec: No such file or directory \ +++ exited with 1 +++
05:59:58 <shachaf> kmc: that hth
06:17:13 <esowiki> [[Zemeckis]] N https://esolangs.org/w/index.php?oldid=67246 * Zemeckis * (+28) Redirected page to [[User:Zemeckis]]
06:25:10 <esowiki> [[JUSTIF]] https://esolangs.org/w/index.php?diff=67247&oldid=62061 * Voltage2007 * (+5)
06:46:43 <esowiki> [[Zemeckis]] https://esolangs.org/w/index.php?diff=67248&oldid=67246 * Zemeckis * (-28) Blanked the page
06:58:02 -!- arseniiv has joined.
07:00:53 -!- ineiros has quit (Remote host closed the connection).
07:03:27 <esowiki> [[4DChess]] N https://esolangs.org/w/index.php?oldid=67249 * Zemeckis * (+3027) Page created.
07:03:55 <esowiki> [[4DChess]] M https://esolangs.org/w/index.php?diff=67250&oldid=67249 * Zemeckis * (-1)
07:06:02 <esowiki> [[Talk:4DChess]] N https://esolangs.org/w/index.php?oldid=67251 * Zemeckis * (+140) Created page with "Feel free to improve anything in any way you see fit. ~~~~"
07:06:52 <esowiki> [[User:Zemeckis]] M https://esolangs.org/w/index.php?diff=67252&oldid=67245 * Zemeckis * (+14) /* Projects */
07:07:48 <esowiki> [[BurgerFlipper]] https://esolangs.org/w/index.php?diff=67253&oldid=50159 * Zemeckis * (+23)
07:09:02 <esowiki> [[BurgerFlipper]] https://esolangs.org/w/index.php?diff=67254&oldid=67253 * Zemeckis * (-23) Undo revision 67253 by [[Special:Contributions/Zemeckis|Zemeckis]] ([[User talk:Zemeckis|talk]])
07:18:08 <esowiki> [[4DChess]] M https://esolangs.org/w/index.php?diff=67255&oldid=67250 * Zemeckis * (+60)
07:22:45 <int-e> It seems Schlock got himself a kind of shoulder angel.
07:22:47 <kmc> EtOH
07:25:27 <esowiki> [[Special:Log/delete]] delete * Oerjan * deleted "[[Zemeckis]]": Author request: content before blanking was: "#REDIRECT [[User: Zemeckis]]"
07:27:08 <esowiki> [[BurgerFlipper]] M https://esolangs.org/w/index.php?diff=67256&oldid=67254 * Zemeckis * (+0)
07:27:09 <oerjan> int-e: just watch out for the shoulder devil
07:27:27 <esowiki> [[BurgerFlipper]] https://esolangs.org/w/index.php?diff=67257&oldid=67256 * Zemeckis * (+0) Undo revision 67256 by [[Special:Contributions/Zemeckis|Zemeckis]] ([[User talk:Zemeckis|talk]])
07:27:42 <esowiki> [[BurgerFlipper]] https://esolangs.org/w/index.php?diff=67258&oldid=67257 * Zemeckis * (+0)
07:29:15 <int-e> oerjan: I'm sure she has the capacity to be both./
07:31:51 <oerjan> given the neighborhood, i was imagining something more tentacly
07:32:51 <int-e> we'll see
07:33:18 <esowiki> [[4DChess]] M https://esolangs.org/w/index.php?diff=67259&oldid=67255 * Zemeckis * (+6)
07:35:01 -!- mniip has joined.
07:39:58 <kmc> 9
07:43:50 -!- kspalaiologos has joined.
07:44:03 <kspalaiologos> Greetings
07:44:21 <kspalaiologos> `asmbfx out n.A
07:44:21 <HackEso> No output.
07:44:29 <kspalaiologos> `asmbfx out .A
07:44:30 <HackEso> A
07:44:37 <kspalaiologos> Yeah it works
07:46:22 <int-e> . o O ( Что EtOH? )
07:46:59 <int-e> (Not a real question; I duckduckwent.)
07:48:00 <kspalaiologos> ??
07:51:37 <kspalaiologos> `asmbfx lbl 1/out .A/jmp 1
07:51:52 <kspalaiologos> I'm curious what happens
07:51:58 <kspalaiologos> It seems like it hanged
07:52:07 <kspalaiologos> Yeah
07:52:13 <kspalaiologos> It's dead
07:52:27 <kspalaiologos> `asmbf
07:52:35 <kspalaiologos> ``` ls
07:52:36 <HackEso> asmbf-1.1.1 \ banana.txt \ bfi \ just \ karma \ le \ paste \ program \ spline \ spout \ temp.b \ test.sh \ tmp-interp \ uptime.out
07:52:57 <HackEso> No output.
07:54:07 <int-e> `` du -s paste
07:54:09 <HackEso> 816paste
08:04:42 <oerjan> kspalaiologos: i cleaned up the tmp directory a bit (mostly older stuff)
08:05:19 <int-e> `stat le
08:05:20 <HackEso> ​ File: le -> /hackenv/le \ Size: 11 Blocks: 0 IO Block: 1024 symbolic link \ Device: 12h/18dInode: 1206924 Links: 1 \ Access: (0777/lrwxrwxrwx) Uid: ( 1000/ UNKNOWN) Gid: ( 1000/ UNKNOWN) \ Access: 2019-11-16 21:29:43.000000000 +0000 \ Modify: 2019-11-16 21:29:43.000000000 +0000 \ Change: 2019-11-16 21:29:43.000000000 +0000 \ Birth: -
08:05:42 <int-e> (hmm, perhaps the most spammy way to figure out that's a symlink)
08:06:26 <oerjan> tried to stop before your recent additions, though
08:06:55 <oerjan> (although everything in tmp _is_ in principle temporary)
08:07:50 <oerjan> `1 stat le
08:07:51 <HackEso> 1/1: File: le -> /hackenv/le \ Size: 11 Blocks: 0 IO Block: 1024 symbolic link \ Device: 12h/18dInode: 1206924 Links: 1 \ Access: (0777/lrwxrwxrwx) Uid: ( 1000/ UNKNOWN) Gid: ( 1000/ UNKNOWN) \ Access: 2019-11-16 21:29:43.000000000 +0000 \ Modify: 2019-11-16 21:29:43.000000000 +0000 \ Change: 2019-11-16 21:29:43.000000000 +0000 \ Birth: -
08:08:10 <oerjan> hm it wasn't cut off, so you _could_ get longer
08:08:35 <int-e> yeah, it wasn't really meant as a challenge
08:08:42 <oerjan> (come to think of it, i should have used `2)
08:09:06 <oerjan> anyway
08:09:15 -!- oerjan has quit (Quit: Nite).
08:40:21 <b_jonas> "<ais523> hah, I didn't even realise that we created /tmp from inside HackEso, I assumed it was hardcoded" => it is also hardcoded, since you can access tmp through the web interface directly like https://hack.esolangs.org/tmp/banana.txt
08:43:33 <kspalaiologos> ``` asmbf mov r1, 3
08:43:34 <HackEso> ​+>+[<[>>+>+<<<-]>>[<<+>>-]>[[-]>>[-]+++<<]<<<[>>+>+<<<-]>>[<<+>>-]>[[-]<<<[-]>[-]>>]<<]
08:43:37 <kspalaiologos> ?
08:43:50 <kspalaiologos> `asmbf mov r1,2
08:43:51 <HackEso> ​+>+[<[>>+>+<<<-]>>[<<+>>-]>[[-]>>[-]++<<]<<<[>>+>+<<<-]>>[<<+>>-]>[[-]<<<[-]>[-]>>]<<]
08:44:13 <kspalaiologos> `asmbfx lbl 1/out 48/jmp 1
08:44:14 <HackEso> 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
08:44:18 <kspalaiologos> Works
08:47:32 <kspalaiologos> ``` ./labels.pl <<<"@x1y1/%x1y1"
08:47:33 <HackEso> bash: ./labels.pl: No such file or directory
08:47:50 <kspalaiologos> ``` labels.pl <<<"@x1y1/%x1y1
08:47:51 <HackEso> bash: -c: line 0: unexpected EOF while looking for matching `"' \ bash: -c: line 1: syntax error: unexpected end of file
08:48:01 -!- kspalaiologos has quit (Remote host closed the connection).
08:48:09 -!- kspalaiologos has joined.
08:48:16 <kspalaiologos> My client crashed
08:48:42 <kspalaiologos> ``` labels.pl <<<"@x1y1/%x1y1"
08:48:43 <HackEso> lbl 1
08:48:51 <kspalaiologos> It's bricked
08:49:00 <kspalaiologos> For some bizzare reason
08:49:20 <kspalaiologos> ``` labels.pl <<<"@x1y1/%x1y1" > tmp.s
08:49:21 <HackEso> No output.
08:49:29 <kspalaiologos> ``` cat tmp.b
08:49:30 <HackEso> cat: tmp.b: No such file or directory
08:49:41 <kspalaiologos> ``` cat tmp.s
08:49:42 <HackEso> lbl 1
08:49:53 <kspalaiologos> ``` rm tmp.s
08:49:54 <HackEso> No output.
08:52:54 <b_jonas> oerjan: re share/quotes , yeah, I even mentioned that a symlink to the writable file is a bit tricky because something could overwrite it with a regular file. I should have realized that that implies the whole symlink thing is a bad idea and shouldn't exist, because you can't safely change commands over without desyncing it.
08:53:08 <b_jonas> so we're better with no symlink, and changing over in an incompatible way if we want
08:53:41 <b_jonas> (or change over in a more complex way, but still without a symlink)
08:56:10 <b_jonas> oerjan: re tmp history, I just suggested that we could solve that for paste only going forward, by making paste log the filename and the IRC_* environment variables somewhere under tmp
08:58:31 <b_jonas> that would let people like me search and clean up their own pastes
09:07:36 -!- b_jonas has quit (Quit: leaving).
09:10:25 -!- tromp_ has joined.
09:12:17 -!- tromp has quit (Ping timeout: 246 seconds).
09:50:01 -!- sprocklem has quit (Ping timeout: 265 seconds).
09:55:32 -!- sprocklem has joined.
10:01:08 -!- wib_jonas has joined.
10:05:58 -!- sprocklem has quit (Ping timeout: 265 seconds).
10:21:33 -!- sprocklem has joined.
10:23:40 -!- Sgeo__ has quit (Read error: Connection reset by peer).
10:24:07 -!- Sgeo__ has joined.
10:27:08 -!- ArthurStrong has quit (Quit: leaving).
10:36:19 <wib_jonas> ``` echo $$
10:36:21 <HackEso> 55
10:36:22 <wib_jonas> ``` echo $$
10:36:23 <HackEso> 55
10:36:24 <wib_jonas> ``` echo $$
10:36:25 <HackEso> 55
10:38:13 <wib_jonas> I recall when people saved a few bytes in some golf programs on anagol by repeatedly submtiting until the pid became just what they want
10:38:27 <wib_jonas> that doesn't work easily in HackEso because you always get the same pid
10:39:59 <wib_jonas> apparently the first process of the command always gets the pid 53, but the triple backtick spawns a few more
10:44:47 <wib_jonas> the anagol server even has a tool for that
11:03:01 <fizzie> Realized I could make /hackenv/tmp more easily un-mess-uppable and stop playing around with .hgignore by just moving it outside the repository completely, and mounting it separately into the umlbox. Not sure if hg would cross a filesystem boundary when looking up the .hg directory. (Git has that special GIT_DISCOVERY_ACROSS_FILESYSTEM option.)
11:04:19 <wib_jonas> fizzie: you could make it a symlink to a directory outside /hackenv, then hg surely won't follow it
11:07:00 <fizzie> I meant more that it would be desirable for 'hg' commands inside umlbox to ascend from /hackenv/tmp to /hackenv to find /hackenv/.hg, so that the read-only version control commands work without changing the working directory.
11:07:36 <fizzie> (When executing the actions outside the sandbox, there would be no tmp, so nothing to follow.)
11:09:29 <wib_jonas> ah
11:09:35 <wib_jonas> yes, that would make sense
11:10:33 <wib_jonas> ``` cat /hackenv/bin/lastfiles
11:10:34 <HackEso> hg log --removed -l 1 --template "$HACKENV/{join(files,'\n$HACKENV/')}\n" -- "$@"
11:10:39 <wib_jonas> ``` lastfiles
11:10:40 <HackEso> ​/hackenv/bin/sport
11:10:44 <wib_jonas> ``` set -e; cd /; lastfiles
11:10:45 <HackEso> abort: no repository found in '/' (.hg not found)!
11:10:57 <wib_jonas> we'd have to change those scripts too for robustness
11:11:45 <kspalaiologos> `;`
11:11:45 <HackEso> ​/srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: ;`: not found
11:11:49 <int-e> @metar lowi
11:11:50 <kspalaiologos> Oops
11:11:51 <lambdabot> LOWI 191050Z 27003KT 230V320 9999 SCT012 BKN080 03/01 Q1015 NOSIG
11:11:52 <fizzie> Well, it might work across a mount point. I couldn't (quickly) find anything saying it doesn't.
11:11:57 <kspalaiologos> @help
11:11:57 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
11:12:04 <kspalaiologos> @list
11:12:04 <lambdabot> What module? Try @listmodules for some ideas.
11:12:09 <kspalaiologos> ...?
11:12:14 <kspalaiologos> @listmodules
11:12:15 <lambdabot> activity base bf check compose dice dict djinn dummy elite eval filter free fresh haddock help hoogle instances irc karma localtime metar more oeis offlineRC pl pointful poll pretty quote search
11:12:15 <lambdabot> slap source spell system tell ticker todo topic type undo unlambda unmtl version where
11:12:30 <wib_jonas> which commands do something like lastfiles, as in, accessing the whole repository rather than just the working dir?
11:12:45 <kspalaiologos> @bf ,[.,]!stuff
11:12:45 <lambdabot> Done.
11:12:59 <kspalaiologos> @dice
11:12:59 <lambdabot> unexpected end of input: expecting number, "d" or "("
11:13:03 <kspalaiologos> ?
11:13:07 <kspalaiologos> @karma
11:13:07 <lambdabot> You have a karma of 0
11:13:10 <wib_jonas> @dice d6
11:13:11 <lambdabot> wib_jonas: 5
11:13:26 <kspalaiologos> @pl print "perl?";
11:13:26 <lambdabot> (line 1, column 14):
11:13:26 <lambdabot> unexpected ';'
11:13:26 <lambdabot> expecting variable, "(", operator or end of input
11:13:30 <fizzie> I would imagine everything to do with history would have issues with it, if it's a problem in the first place.
11:13:39 <kspalaiologos> ^8ball
11:13:40 <fungot> ...out of time!
11:14:01 <fizzie> Even if they pass a path to a specific file, I imagine the working directory needs to be inside the repository?
11:14:05 <kspalaiologos> Fungot is still broken
11:14:11 <wib_jonas> ``` set -e; cd /; hg log -T "{date|shortdate}\n" hackenv/wisdom/b_jonas
11:14:14 <HackEso> 2019-06-09 \ 2016-01-18 \ 2016-01-17
11:14:18 <kspalaiologos> I'll get my bot sorted out today
11:14:32 <wib_jonas> fizzie: no, that's how git works. hg and svn work the sane way, searching for the repo starting from the file that you target
11:14:41 <fizzie> Hmm, interesting.
11:15:39 <wib_jonas> fizzie: for git you need a stupid workaround like specifying the git repository in an env-var directly. mind you, it's a good thing that that's _permitted_, since sometimes you want the repo to be in a place other than the working copy without creating even the workspace .git file that gives just the name of the repo
11:25:57 -!- kspalaiologos has quit (Read error: Connection reset by peer).
11:39:04 <fizzie> Hm, I guess one problem with a /hackenv/tmp without .hgignore is that 'hg' commands inside the box would still think they're new files, so something like "hg status" would contain misleading entries. Don't think that would necessarily break any scripts, but it's still unfortunate.
11:39:48 <fizzie> OTOH moving it out of the tree even inside to something like /hacktmp *would* break `lastfiles and similar, as well as the "../bin" paths people seem to use interactively.
12:04:00 <wib_jonas> fizzie: um what? why would you have it without .hgignore if it's inside /hackenv/tmp ?
12:04:56 <wib_jonas> 'the "../bin" paths people seem to use interactively' => I use /hackenv interactively, but sure
12:10:06 <fizzie> If the real path is outside /hackenv and I just mount it into /hackenv/tmp in umlbox, I don't need a .hgignore for the commits to ignore it, because it won't even be there.
12:11:01 <wib_jonas> fizzie: but the .hgignore is used inside the sandbox too, and in there, /hackenv/tmp is there, so I think the .hgignore should mention it
12:11:21 <wib_jonas> I don't see why you wouldn't put it there. even outside the sandbox, where the directory is not present, it's not a problem to have it in .hgignore
12:12:03 <wib_jonas> it is a feature that the files listed in .hgignore need not exist, because they're often used for things like compiler output files, which you can clean
12:12:36 <fizzie> Well, the whole reason I was contemplating moving it to a separate mount was to avoid having to rely on .hgignore.
12:13:36 <wib_jonas> fizzie: would hg even notice that it's on a separate mount if it's bind-mounted? it's quite nontrivial to ask from linux which directories are mount points, so programs use the quick heuristics of just checking the st_dev field of stat, which may fail for a bind mount
12:14:07 <fizzie> It wouldn't be actually bind-mounted.
12:14:28 <fizzie> It would be a separate hostfs mount.
12:14:33 <wib_jonas> there are better ways, apparently the best is to try to rename the directory to inside itself and checking what error it fails with or some such crazy shit that I don't recall
12:14:54 <wib_jonas> ok
12:15:03 <wib_jonas> then maybe the st_dev will differ, let me check
12:16:49 <fizzie> Aaanyway, I might not bother doing it, doesn't seem like it's really all that beneficial. I guess it would stop people from removing the directory completely.
12:17:40 <wib_jonas> ``` stat -c "%d %n" /lib /usr /hackenv /hackenv/tmp /hackenv/wisdom
12:17:41 <HackEso> 15 /lib \ 13 /usr \ 18 /hackenv \ 18 /hackenv/tmp \ 18 /hackenv/wisdom
12:17:59 <wib_jonas> you're right, the st_dev seems to differ
14:10:56 -!- imode has joined.
15:09:17 -!- imode has quit (Ping timeout: 252 seconds).
15:19:57 -!- kspalaiologos has joined.
15:21:06 <kspalaiologos> Just a couple of minutes and my bot will be hopefully finished
15:21:21 <kspalaiologos> I need someone to help me out testing it
15:37:03 <wib_jonas> kspalaiologos: I think you should know better than to say things like "just a few minutes ... finished"
15:38:07 <kspalaiologos> I don't seem to understand
15:38:25 <kspalaiologos> can you simplify, what do you mean?
15:38:43 <wib_jonas> kspalaiologos: when you think it's just a few minutes to finish, it always takes longer than taht
15:38:51 <wib_jonas> so you shouldn't announce that it's just a few minutes
15:39:02 <kspalaiologos> It's pretty much done now
15:39:17 <kspalaiologos> 36-19=17 minutes
15:39:55 <wib_jonas> bfbot echo gCI_oyKp2bE-
15:40:52 <kspalaiologos> it's not there
15:40:55 <kspalaiologos> it's in the other channel
15:40:57 <kspalaiologos> but I'm testing it now
15:41:01 <kspalaiologos> and I have undefined the echo command
16:10:11 -!- moony has quit (Ping timeout: 246 seconds).
16:13:12 -!- moony has joined.
16:22:26 -!- moony has quit (Ping timeout: 240 seconds).
16:24:03 -!- iczero has quit (Ping timeout: 264 seconds).
16:25:48 -!- lldd_ has joined.
16:27:48 -!- moony has joined.
16:27:55 -!- iczero has joined.
16:54:18 -!- wib_jonas has quit (Remote host closed the connection).
17:01:20 -!- bfbot has joined.
17:01:26 <kspalaiologos> so
17:01:28 <kspalaiologos> bfbot is now live
17:01:35 <kspalaiologos> =help
17:01:36 <bfbot> bfbot is a bot executing brainfuck natively. You may add your very own commands to the bot.
17:01:36 <bfbot> Commands: =str =def =undef =list =plist =doc
17:04:11 <esowiki> [[User talk:Palaiologos]] https://esolangs.org/w/index.php?diff=67260&oldid=66649 * Palaiologos * (+199)
17:18:05 <kspalaiologos> =str 0s Hello
17:18:06 <bfbot> ok
17:28:27 <kspalaiologos> =str 0s ,[.,]
17:28:28 <bfbot> ok
17:28:31 <kspalaiologos> =def 0echo
17:28:31 <bfbot> ok, defined 'echo'
17:28:36 <kspalaiologos> =echo greetings
17:28:37 <bfbot> greetings
17:46:37 -!- sprocklem has quit (Ping timeout: 240 seconds).
17:51:38 -!- b_jonas has joined.
17:53:58 -!- lldd_ has quit (Quit: Leaving).
17:54:51 <b_jonas> =msg1
17:54:52 <bfbot> ABCDEFGH
17:55:38 <kspalaiologos> note it's temporarily served from my PC
17:55:47 <kspalaiologos> I'll move it to my VPS soon
17:56:20 <b_jonas> =echo foo
17:57:24 <kspalaiologos> =echo foo
17:58:13 <kspalaiologos> what is happening
17:58:14 <kspalaiologos> =help
17:58:23 <kspalaiologos> lol?
17:58:45 <b_jonas> `olist 1187
17:58:46 <HackEso> olist 1187: shachaf oerjan Sgeo FireFly boily nortti b_jonas
17:58:53 <kspalaiologos> what is olist
17:58:59 <b_jonas> `? olist
17:59:00 <HackEso> olist is update notification for the webcomic Order of the Stick. http://www.giantitp.com/comics/ootslatest.html
17:59:04 <b_jonas> `? o
17:59:06 <HackEso> o is a popular comedy fantasy webcomic. It's about a group called the Order of the Stick, as they go about their adventures with minimal competence, and eventually stumble into a plan by an undead sorcerer to conquer the world, and they're out to stop him and conquer their personal problems at the same time. Hopefully not in that order.
17:59:07 <kspalaiologos> fine
17:59:32 <b_jonas> I sent the bot some commands in private message, since it's not on the -blah channel, and now it doesn't react
17:59:35 <b_jonas> =help
17:59:46 <kspalaiologos> hm
17:59:49 <kspalaiologos> something is screwed
18:00:07 -!- bfbot has quit (Ping timeout: 265 seconds).
18:00:40 -!- bfbot has joined.
18:00:42 <kspalaiologos> =help
18:00:43 <bfbot> bfbot is a bot executing brainfuck natively. You may add your very own commands to the bot.
18:00:43 <bfbot> Commands: =str =def =undef =list =plist =doc. More help at https://esolangs.org/wiki/bfbot
18:00:46 <kspalaiologos> can you reproduce it here?
18:01:15 <kspalaiologos> =list
18:01:16 <bfbot> echo msg1
18:01:20 <kspalaiologos> =msg1
18:01:23 <kspalaiologos> =help
18:01:29 <kspalaiologos> nvm figured it out
18:02:18 -!- Panini has joined.
18:02:19 <kspalaiologos> no idea what's up
18:03:32 -!- bfbot has quit (Remote host closed the connection).
18:03:36 <kspalaiologos> very weird
18:03:48 -!- bfbot has joined.
18:03:52 <kspalaiologos> =msg1
18:03:53 <bfbot> ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
18:04:04 <kspalaiologos> the unprintable characters clogged it up
18:04:43 <kspalaiologos> now it kinda works
18:05:47 <kspalaiologos> .
18:05:51 <b_jonas> that doesn't look right. why does the loop end early?
18:05:54 <b_jonas> =str 1s++++++++++++++++[->++++<]>[+.]
18:05:55 <bfbot> ok
18:05:56 <b_jonas> =def 1msg1
18:05:57 <bfbot> ok, defined 'msg1'
18:05:58 <b_jonas> =msg1
18:05:59 <bfbot> ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
18:06:12 <kspalaiologos> non-printables are filtered
18:06:14 <kspalaiologos> from the output
18:06:17 <kspalaiologos> because they clog the bot
18:06:42 <b_jonas> what do you mean by "non-printables"?
18:06:51 <kspalaiologos> everything that is non-printable
18:07:09 <b_jonas> there are only non-printable bytes on irc, they're \0 \r \n
18:07:15 <b_jonas> =str 1s++++++++++++++++[->++++<]>[.+]
18:07:15 <bfbot> ok
18:07:17 <b_jonas> =def 1msg1
18:07:18 <bfbot> ok, defined 'msg1'
18:07:19 <b_jonas> =msg1
18:07:20 <bfbot> @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
18:07:20 <lambdabot> Unknown command, try @list
18:07:29 <b_jonas> now it's not trying to print any of those
18:07:32 <kspalaiologos> you could have started a chain lol
18:07:37 <kspalaiologos> I filtered it out
18:07:40 <kspalaiologos> this solved the issue
18:07:46 <kspalaiologos> no idea why but it did
18:07:55 <kspalaiologos> I'll look into that later
18:08:07 <b_jonas> but how now how to ask the bot to print more characters?
18:08:21 <kspalaiologos> you're doing incorrect brainfuck
18:08:30 <kspalaiologos> the variable is overflowing
18:08:31 <kspalaiologos> so its set to 0
18:08:34 <kspalaiologos> so the loop is ending
18:08:49 <b_jonas> yes, it should end, but only after printing more bytes
18:09:06 <kspalaiologos> how many of them do you expect?
18:09:16 <kspalaiologos> those non-printable are filtered so it doesnt show them
18:09:29 <b_jonas> I expect 192 bytes
18:09:32 <kspalaiologos> tr -dc '[[:print:]]'
18:09:35 <b_jonas> after which it would overflow and the loop stops
18:09:40 <kspalaiologos> is removing other garbage
18:10:02 <kspalaiologos> or
18:10:08 <kspalaiologos> I could replace a nonprintable char with a dot
18:10:11 <kspalaiologos> this seems more like it
18:10:25 <kspalaiologos> =msg1
18:10:26 <bfbot> @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~.............................................................................................................................................................................................................................................
18:10:26 <lambdabot> Unknown command, try @list
18:10:29 <kspalaiologos> yeah
18:10:30 <kspalaiologos> here you go
18:13:33 <kspalaiologos> =list
18:13:33 <bfbot> echo msg1
18:13:37 -!- FreeFull has joined.
18:13:40 <b_jonas> =str 1s++++++++++++++++[->++++>++++++>++++++++++++++<<<]>+.>+.>+.
18:13:41 <bfbot> ok
18:13:48 <b_jonas> =def 1msg1
18:13:49 <bfbot> ok, defined 'msg1'
18:13:50 <b_jonas> =msg1
18:13:51 <bfbot> Aa..
18:14:33 <kspalaiologos> =list ????
18:14:34 <bfbot> echo msg1
18:14:41 <kspalaiologos> you can use wildcard
18:14:45 <b_jonas> =str 1s++++++++++++++++[->++++>++++++>++++++++++>++++++++++<<<<]>+.>+.>>+++.<+.
18:14:45 <bfbot> ok
18:14:48 <b_jonas> =def 1msg1
18:14:48 <bfbot> ok, defined 'msg1'
18:14:49 <b_jonas> =msg1
18:14:49 <bfbot> Aa....
18:15:16 <b_jonas> is this thing only willing to output ascii characters now?
18:15:21 <b_jonas> nothing else\
18:15:27 <kspalaiologos> I may change it
18:15:31 <kspalaiologos> but now it seems like yes
18:16:40 <b_jonas> that's sad
18:16:52 <kspalaiologos> what else would you like to print
18:18:15 <b_jonas> ideally any byte other than the three that can't occur in a message \0\r\n
18:18:26 <b_jonas> you can restrict it more, but just ascii printable is quite sever
18:18:33 <kspalaiologos> printing bell may annoy other users
18:18:38 <b_jonas> plus I think it should join the -blah channel so that I don't spam this channel
18:18:48 <b_jonas> only one of them
18:19:05 <kspalaiologos> well you can experiment with it on p,
18:19:08 <kspalaiologos> *pm
18:19:24 <b_jonas> yes, but then you ask "can you reproduce it here" and such
18:19:30 <kspalaiologos> well
18:19:34 <kspalaiologos> I'll get that sorted out
18:19:53 -!- bfbot has quit (Remote host closed the connection).
18:19:59 <kspalaiologos> reload
18:20:08 -!- bfbot has joined.
18:20:12 <kspalaiologos> fine
18:21:18 -!- LKoen has joined.
18:26:39 <Panini> hello
18:26:40 <esowiki> [[Bfbot]] N https://esolangs.org/w/index.php?oldid=67261 * Palaiologos * (+3375) Created page with "'''bfbot''' is an IRC bot written by [[User:Palaiologos]]. bfbot is capable of executing brainfuck (asm2bf, gisa and tiny-c support will be added later on). It's possible to..."
18:26:55 <esowiki> [[Bfbot]] M https://esolangs.org/w/index.php?diff=67262&oldid=67261 * Palaiologos * (-6) Formatting bricked
18:28:11 -!- Panini has quit (Quit: Leaving).
18:28:40 -!- Panini has joined.
18:28:40 -!- Panini has quit (Client Quit).
18:29:05 -!- Panini has joined.
18:29:18 -!- bfbot has quit (Remote host closed the connection).
18:41:59 -!- FreeFull has quit.
18:43:50 <esowiki> [[Bfbot]] M https://esolangs.org/w/index.php?diff=67263&oldid=67262 * Palaiologos * (-18) Code blocks
18:44:43 -!- bfbot has joined.
18:46:50 -!- FreeFull has joined.
18:52:22 -!- Panini has quit (Quit: Leaving).
19:10:24 -!- bfbot has quit (Remote host closed the connection).
19:27:11 -!- bfbot has joined.
19:27:15 <kspalaiologos> It's alive!
19:27:19 <kspalaiologos> it's running from my vps
19:27:23 <kspalaiologos> =help
19:27:28 <kspalaiologos> crap
19:28:31 -!- bfbot has quit (Remote host closed the connection).
19:28:42 -!- bfbot has joined.
19:28:45 <kspalaiologos> =help
19:28:51 <kspalaiologos> ...
19:28:53 -!- bfbot has quit (Remote host closed the connection).
19:29:53 -!- bfbot has joined.
19:29:54 <kspalaiologos> =help
19:29:55 <bfbot> bfbot is a bot executing brainfuck natively. You may add your very own commands to the bot.
19:29:55 <bfbot> Commands: =str =def =undef =list =plist =doc. More help at https://esolangs.org/wiki/bfbot
19:29:58 <kspalaiologos> =list
19:29:58 <bfbot> echo msg1
19:29:59 <kspalaiologos> =doc
19:29:59 <bfbot> Incorrect usage! Refer to =help doc
19:30:01 <kspalaiologos> it
19:30:04 <kspalaiologos> 's instant
19:30:08 <kspalaiologos> perfect
19:30:14 -!- bfbot has quit (Remote host closed the connection).
19:30:23 -!- bfbot has joined.
19:30:25 <kspalaiologos> =help
19:30:26 <bfbot> bfbot is a bot executing brainfuck natively. You may add your very own commands to the bot.
19:30:26 <bfbot> Commands: =str =def =undef =list =plist =doc. More help at https://esolangs.org/wiki/bfbot
19:30:28 <kspalaiologos> yeah it's up and running
19:49:17 <esowiki> [[User:Dtuser1337/Sandbox]] https://esolangs.org/w/index.php?diff=67264&oldid=66594 * Dtuser1337 * (-4369) cleaning up because no longer maintained
19:53:31 -!- bfbot has quit (Remote host closed the connection).
19:53:46 -!- bfbot has joined.
19:53:53 -!- bfbot has quit (Remote host closed the connection).
19:54:21 -!- bfbot has joined.
19:59:45 -!- bfbot has quit (Remote host closed the connection).
20:00:14 -!- bfbot has joined.
20:02:05 -!- bfbot has quit (Remote host closed the connection).
20:02:17 -!- bfbot has joined.
20:02:49 <kspalaiologos> a lot of time later
20:02:54 <kspalaiologos> =8ball will you finally work?
20:02:54 <bfbot> It is certain.
20:03:17 -!- bfbot has quit (Remote host closed the connection).
20:03:41 -!- bfbot has joined.
20:04:35 <kspalaiologos> =set 0d
20:04:36 <bfbot> No such command. Try =help.
20:04:44 <kspalaiologos> =set 0d
20:04:44 <bfbot> No such command. Try =help.
20:05:48 <kspalaiologos> =set 0d
20:05:48 <bfbot> No such command. Try =help.
20:05:55 <kspalaiologos> =str 0d
20:05:55 <bfbot> ok
20:07:07 <esowiki> [[Bfbot]] https://esolangs.org/w/index.php?diff=67265&oldid=67263 * Palaiologos * (+106) Repository link
20:29:07 -!- kspalaiologos has quit (Quit: Leaving).
20:30:14 -!- kspalaiologos has joined.
20:35:37 <kspalaiologos> =8ball works
20:35:37 <bfbot> My reply is no.
20:35:41 <kspalaiologos> Pff
21:00:04 -!- sftp has quit (Excess Flood).
21:00:27 -!- sftp has joined.
21:12:40 -!- LKoen has quit (Remote host closed the connection).
21:14:01 -!- LKoen has joined.
21:16:01 <arseniiv> kspalaiologos: oh a new bot!
21:16:10 <kspalaiologos> Yup
21:16:16 <kspalaiologos> =help
21:16:16 <bfbot> bfbot is a bot executing brainfuck natively. You may add your very own commands to the bot.
21:16:16 <bfbot> Commands: =str =def =undef =list =plist =doc. More help at https://esolangs.org/wiki/bfbot
21:18:24 <kspalaiologos> It's very generic
21:18:37 <kspalaiologos> But I hacked it together in ~3h
21:18:42 <arseniiv> maybe there is a need for yet another bot? and I could write mine? (but I’m lazy and I don’t know what for)
21:18:57 <kspalaiologos> Depends
21:19:08 <kspalaiologos> You may extend existing bots
21:19:11 <arseniiv> leave your suggestions :D
21:19:14 <kspalaiologos> And it's simpler task
21:19:26 <arseniiv> yeah I don’t want to read code, I want to write code
21:19:40 <kspalaiologos> You dont need to
21:19:46 <arseniiv> I know
21:19:52 <arseniiv> better code is no code at all
21:20:10 <kspalaiologos> =str 0s ,[.,]
21:20:10 <bfbot> ok
21:20:18 <kspalaiologos> =def simple
21:20:18 <bfbot> Error: Expected a number.
21:20:26 <kspalaiologos> =def 0simple
21:20:27 <bfbot> ok, defined 'simple'
21:20:38 <kspalaiologos> =simple hello arseniiv
21:20:38 <bfbot> hello arseniiv
21:20:40 <arseniiv> though I better finish my constructor analysing thing
21:20:45 <arseniiv> haha :D
21:20:51 <kspalaiologos> =undef simple
21:20:51 <bfbot> ok
21:21:26 <kspalaiologos> I'll be preparing wiki page for one of my languages
21:21:39 <kspalaiologos> And I'm seeking for someone willing to help a bit out
21:21:48 <arseniiv> kspalaiologos: oh, have you tested the bot so it wouldn’t accidentally call a command of itself?
21:21:58 <kspalaiologos> ^thats the fun part
21:22:03 <kspalaiologos> So you can chain commands
21:22:21 <kspalaiologos> And possibly induce a disaster
21:22:34 <arseniiv> <kspalaiologos> And I'm seeking for someone willing to help a bit out => with which tasks?
21:22:47 -!- ArthurStrong has joined.
21:22:47 <kspalaiologos> Proofreading
21:22:49 <arseniiv> =simple =simple =help
21:22:50 <bfbot> No such command. Try =help.
21:22:57 <kspalaiologos> I undefined simple
21:22:59 <kspalaiologos> Lol
21:23:04 <arseniiv> oops
21:23:06 <kspalaiologos> =def 0simple
21:23:06 <bfbot> ok, defined 'simple'
21:23:08 <kspalaiologos> Try again
21:23:13 <arseniiv> as I said I don’t read :P
21:23:19 <arseniiv> =simple =simple =help
21:23:19 <bfbot> =simple =help
21:23:29 <arseniiv> nno
21:23:40 <kspalaiologos> Well so you can write some sketches now
21:23:47 <kspalaiologos> And I'll glue it tomorrow
21:23:56 <kspalaiologos> There is official documentation about the language
21:24:27 <kspalaiologos> We may try chaining it with fungot
21:24:27 <fungot> kspalaiologos: when i " compile/ load time anyway, eg.
21:24:37 <arseniiv> wait wait I’m confused, sketches?
21:24:44 <kspalaiologos> You know
21:24:46 <kspalaiologos> Umm
21:24:48 <arseniiv> I better go sleeping as I don’t parse
21:24:52 <arseniiv> :D
21:24:57 <kspalaiologos> The
21:25:10 <kspalaiologos> First version bits?
21:25:10 <arseniiv> anyway I could proofread maybe!
21:25:17 <kspalaiologos> That's nice
21:25:30 <kspalaiologos> I'll get it written and ping you when it's done tomorrow
21:25:46 <arseniiv> in a basic manner, can’t say I’ll find serious errors if they would occur
21:26:14 <kspalaiologos> Nah I mean comprehensibility of article
21:26:21 <kspalaiologos> Proposed wording changes
21:26:24 <arseniiv> kspalaiologos: okay. Also you could @tell me too if you wouldn’t be here
21:26:31 <kspalaiologos> Alright
21:26:38 <arseniiv> ah hm comprehensibility
21:26:49 <arseniiv> int-e fixed it in my article once
21:27:07 <arseniiv> though why not anyway
21:27:21 <kspalaiologos> Hm
21:27:47 <arseniiv> I swear I won’t make your article less comprehensible though. I think
21:28:30 <kspalaiologos> =str 0s+[--->++<]>++++++++.+++++++.--.+++++.+++++++.[--->+<]>-----.---[->++++<]>-.-----------.-------.+++++++++++..[++>---<]>--.--[->++++<]>-.[->+++<]>.--[--->+<]>-.++[--->++<]>.+++.------------.++++++++.-[++>---<]>+.+++++++.-[--->+<]>+++.++++++++.---[->+++<]>+.+[-->+<]>.
21:28:30 <bfbot> ok
21:28:52 <kspalaiologos> =def 0f
21:28:52 <bfbot> ok, defined 'f'
21:28:54 <kspalaiologos> =f
21:29:01 <kspalaiologos> Hmm?
21:29:06 <kspalaiologos> What just happened
21:30:39 -!- arseniiv has quit (Quit: gone completely :o).
21:31:58 <b_jonas> arseniiv: yes, another bot is always welcome if they behave well
21:33:08 <kspalaiologos> b_jonas: would you like to check the article
21:33:21 <kspalaiologos> I did it a few times but I might have lost a few typos
21:33:26 <kspalaiologos> =help
21:33:27 <bfbot> bfbot is a bot executing brainfuck natively. You may add your very own commands to the bot.
21:33:27 <bfbot> Commands: =str =def =undef =list =plist =doc. More help at https://esolangs.org/wiki/bfbot
21:48:19 <shachaf> b_jonas: Maybe this should also be `smlist?
21:50:20 <b_jonas> shachaf: dunno. you decide.
21:51:37 -!- ArthurStrong has left.
21:51:45 <shachaf> I decide not.
22:04:02 -!- kspalaiologos has quit (Ping timeout: 240 seconds).
22:06:31 <esowiki> [[Treesolang]] N https://esolangs.org/w/index.php?oldid=67266 * Baidicoot * (+2793) created
22:07:00 <esowiki> [[Treesolang]] https://esolangs.org/w/index.php?diff=67267&oldid=67266 * Baidicoot * (-15)
22:11:05 <esowiki> [[Treesolang]] M https://esolangs.org/w/index.php?diff=67268&oldid=67267 * Baidicoot * (+207)
22:11:55 <esowiki> [[Treesolang]] M https://esolangs.org/w/index.php?diff=67269&oldid=67268 * Baidicoot * (+10)
22:12:08 <esowiki> [[Treesolang]] M https://esolangs.org/w/index.php?diff=67270&oldid=67269 * Baidicoot * (+2)
22:14:16 <esowiki> [[Language list]] M https://esolangs.org/w/index.php?diff=67271&oldid=67192 * Baidicoot * (+17) Added treesolang
22:22:46 <esowiki> [[Treesolang]] M https://esolangs.org/w/index.php?diff=67272&oldid=67270 * Baidicoot * (-42) /* Program Structure */
22:28:11 -!- 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.”).
22:43:45 <esowiki> [[Treesolang]] M https://esolangs.org/w/index.php?diff=67273&oldid=67272 * Baidicoot * (+219)
22:51:52 -!- hkgit03 has joined.
22:52:28 -!- laerling has quit (Quit: ZNC 1.7.3 - https://znc.in).
22:54:25 -!- laerling has joined.
22:55:31 <esowiki> [[Treesolang]] M https://esolangs.org/w/index.php?diff=67274&oldid=67273 * Baidicoot * (+106) /* Program Execution */
22:55:31 -!- laerling has quit (Client Quit).
22:56:09 -!- laerling has joined.
23:04:50 <fizzie> Weird, I switched umlbox interpreter from Python 2 to 3 (since 2's eventually going to EOL), and even though the part where it does subprocess.call of the UML kernel is reached with exactly the same arguments and config file content, and while the kernel runs exactly the same steps, for some reason the stdout of the executed command is not visible.
23:05:30 <fizzie> Maybe some subtle change in subprocess library's fd handling or something.
23:05:43 -!- laerling has quit (Quit: ZNC 1.7.3 - https://znc.in).
23:06:14 <b_jonas> or maybe the Briticolan anthem
23:06:34 <b_jonas> sorry, wrong channel
23:06:35 <fizzie> The code's pretty low-level for Python, doing os.open / os.dup, because some of the UML kernel arguments are file descriptor numbers like "fd:4".
23:07:04 -!- laerling has joined.
23:08:14 <b_jonas> `python3 -copen(2,"w").write("hello") # explicit file descriptor numbers? yes, surely you need low level calls for that
23:08:15 <HackEso> hello
23:08:23 <b_jonas> open does fdopen if you pass a number to it
23:08:48 <b_jonas> there's even a parameter to tell whether to close the underlying file description when you close the file handle
23:09:46 <fizzie> Well, that's not really relevant for what this does, since it doesn't write into any of the file descriptors it opens.
23:10:04 <b_jonas> fizzie: the same works for reading or other file descriptor operations
23:10:15 <b_jonas> open just gives you a file handle
23:10:26 <fizzie> I don't doubt there's a way to use open() and get the file descriptor out of it, but it's not what it does.
23:10:34 <fizzie> And I don't see how it would be any better to, really.
23:10:44 <b_jonas> sure, maybe it does something for which that's useful
23:11:02 <fizzie> It's more that it doesn't do anything for which that's not useful.
23:12:27 <fizzie> Oh, I see what the issue is.
23:12:36 <fizzie> "Since Python 3.4, file descriptors created by Python are non-inheritable by default."
23:13:41 <b_jonas> ah
23:14:34 <fizzie> (It uses the close_fds=False option to subprocess to pass a file descriptor into UML, but it's apparently a close-on-exec by default, and I need to os.set_inheritable(fd, True) it. Or maybe use the new pass_fds attribute to subprocess, which is probably a better idea.
23:17:29 -!- hkgit03 has left ("Leaving").
23:20:30 <fizzie> Yep, that did the trick.
23:21:07 <fizzie> Should probably check that mudem works as well.
23:23:57 <fizzie> umlbox has this weird thing where if you want networking, you specify particular Unix domain sockets and TCP ports to forward, and it runs a separate "umlbox-mudem" program that multiplexes it all over a single stream, where that single stream is just pipes that are hooked up to /dev/tty2 inside the UML. It runs one copy of mudem outside, and another inside.
23:25:04 <b_jonas> fizzie: can't you use the ethernet tunnel devices instead?
23:25:11 <b_jonas> the ones built into linux
23:25:24 <fizzie> I could, though the umlbox wrapper script doesn't support those out of the box.
23:25:34 <b_jonas> the ones that you use to connect network namespaces on linux
23:25:36 <b_jonas> ok
23:26:14 <fizzie> UML itself has a pretty similar networking scheme (for when you're running it without any special privileges on the host), except it uses Slirp.
23:26:33 <fizzie> I think I actually used to use Slirp for real at one point for internetworking.
23:27:50 <b_jonas> what is Slirp?
23:27:53 <fizzie> Definitely had a SLIP connection for my first real ISP, and a PPP one for all the dialup ones after that, but there was also Slirp on some system somewhere.
23:28:53 <fizzie> It's a thing where, if you don't have a real Internet connection, but you do have a shell account you can dial into, you can turn that into an internet connection by running a (regular user) program on the machine you have a shell account on, which talks the SLIP protocol (with extensions, I think) to your computer so that you can use regular Internet programs on it.
23:29:37 <fizzie> You basically just set up the dialer settings for your SLIP connection (which normally provide a username/password login) to log in and execute the slirp command.
23:29:58 <b_jonas> a kind of tunnel then. ok.
23:31:17 -!- sprocklem has joined.
23:31:55 <fizzie> Fun fact: EUnet (a Finnish ISP) had two kinds of Internet connections, you either paid 22p/min for the full global Internet, but you could also pay 17p/min if you just needed a connection that allowed connecting to Finnish systems.
23:32:13 <b_jonas> ... what
23:32:20 <fizzie> Kind of like the local call / long-distance call distinction, except for the Internet.
23:32:55 <fizzie> Don't think that'd be very convenient these days.
23:33:37 <fizzie> I may be misremembering the prices, it's been a while.
23:35:06 <b_jonas> sure
2019-11-20
00:07:30 -!- FreeFull has quit.
00:12:17 -!- sprocklem has quit (Ping timeout: 265 seconds).
00:17:48 -!- sprocklem has joined.
00:29:51 <Lykaina> i'm a galagaholic
00:32:35 <Lykaina> you know what galaga is, right?
00:39:00 <kingoffrance> something like space invaders / centipede era arcade game; alternately, sounds like somebody knocks on your door "have you met our lord and savior cthulhu? galaga fghghfhfhgghg"
00:39:18 <kingoffrance> those are my 2 theories
00:39:39 <kingoffrance> they are not mutually exclusive
00:39:57 <Lykaina> you dare compare galaga to space invaders?
00:40:33 <kingoffrance> im too young, i probably played it on some "classic" respawn
00:42:07 <kingoffrance> i liked qix
00:42:41 -!- MDude has joined.
00:47:43 <kingoffrance> i liked tempest 2000 on atari jaguar too, but never got the proper controller
00:48:59 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=67275&oldid=67271 * Zemeckis * (+14) added 4DChess
01:02:17 -!- sprocklem has quit (Ping timeout: 240 seconds).
01:03:27 -!- sprocklem has joined.
01:24:42 -!- xkapastel has joined.
01:26:14 -!- sprocklem has quit (Ping timeout: 265 seconds).
01:36:40 -!- sprocklem has joined.
02:08:34 <pikhq> b_jonas: A tunnel + a built-in user-space NAT implementation.
02:14:18 <shachaf> Where can I find good C libraries for things?
02:14:44 <shachaf> With properties like no malloc, no callbacks, no blocking system calls, etc.
02:14:56 <shachaf> I mean, no system calls at all, really.
02:15:45 <shachaf> For example how about a DNS library. I guess there's probably a good one somewhere.
02:54:12 <fizzie> c-ares is what I've seen used, and it's async, and C. But I don't know if it's any good, and I'm sure it doesn't fill the "no system calls" requirement.
03:04:02 -!- imode has joined.
03:12:50 <shachaf> I mean, as long as the core functionality is there, a layer above it that uses system calls is fine?
03:13:07 <shachaf> But at least you'd want it to be portable.
03:15:03 <shachaf> Oh, and of course no GPL and no LGPL.
03:59:22 -!- oerjan has joined.
04:08:30 <oerjan> `cbt undo
04:08:31 <HackEso> ​#!/bin/sh \ hg diff -c "$@" | patch -p1 -R
04:10:58 <oerjan> `undo 12162
04:10:59 <HackEso> can't find file to patch at input line 4 \ Perhaps you used the wrong -p or --strip option? \ The text leading up to this was: \ -------------------------- \ |diff -r b776d8e310e6 -r 8bb3e1600f3c bin/sport \ |--- a/bin/sportTue Nov 19 03:15:37 2019 +0000 \ |+++ b/bin/sportTue Nov 19 03:44:32 2019 +0000 \ -------------------------- \ File to patch: \ Skip this patch? [y] \ Skipping patch. \ 1 out of 1 hunk ignored
04:11:15 <oerjan> `` cd ..; undo 12162
04:11:18 <HackEso> patching file bin/sport
04:11:22 <oerjan> `revert
04:11:23 <HackEso> Done.
04:12:46 <oerjan> `slbd undo//1acd ${HACKENV-/hackenv}
04:12:48 <HackEso> undo//#!/bin/sh \ cd ${HACKENV-/hackenv} \ hg diff -c "$@" | patch -p1 -R
04:13:09 <oerjan> `undo 12162
04:13:12 <HackEso> patching file bin/sport
04:13:15 <oerjan> `revert
04:13:16 <HackEso> Done.
04:14:25 -!- xkapastel has quit (Quit: Connection closed for inactivity).
04:19:13 -!- Yeah23 has joined.
04:20:58 <Yeah23> !quote
04:21:37 <oerjan> `quote
04:21:38 <HackEso> 1033) <Bike> I'm glad I quit programming to take up listening to numbers stations
04:22:11 <Yeah23> `quote HackEso
04:22:12 <HackEso> 1330) <shachaf> `unidecode ⧸🙼 <HackEso> ​[U+29F8 BIG SOLIDUS] [U+1F67C VERY HEAVY SOLIDUS] <shachaf> it is with a very heavy solidus that i write to inform you that unicode has too many code points
04:23:03 <oerjan> `relcome Yeah23
04:23:04 <HackEso> Yeah23: 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.)
04:23:15 <Yeah23> `relcome oerjan
04:23:16 <HackEso> oerjan: 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.)
04:24:25 <oerjan> `cat bin/hlnp
04:24:25 <Yeah23> `run HackEso
04:24:25 <HackEso> cat: bin/hlnp: No such file or directory
04:24:26 <HackEso> bash: HackEso: command not found
04:24:30 <oerjan> oops
04:24:35 <oerjan> `cbt bin/hlnp
04:24:36 <HackEso> cat: /hackenv/bin/bin/hlnp: No such file or directory
04:24:40 <oerjan> `cbt hlnp
04:24:41 <HackEso> scowrevs="$(/usr/bin/paste -sd'|' /hackenv/share/scowrevs)"; hg log -r "tip:0 & ! ($scowrevs)" "$@" | sed 's/\(\(^\| \)[<Itb][^ ]*\)\([^ ][^ ]\)/\1̈\3/'
04:25:03 <Yeah23> `run /usr/
04:25:03 <HackEso> bash: /usr/: Is a directory
04:25:10 <Yeah23> `run /usr vi
04:25:10 <HackEso> bash: /usr: Is a directory
04:25:15 <Yeah23> `run /usr/vi
04:25:16 <HackEso> bash: /usr/vi: No such file or directory
04:25:23 <Yeah23> `ls /usr
04:25:24 <HackEso> bin \ games \ include \ lib \ local \ sbin \ share \ src
04:25:34 <Yeah23> `ls /usr/bin
04:25:35 <HackEso> ​[ \ 2to3-2.7 \ aclocal \ aclocal-1.16 \ addpart \ addr2line \ aot-compile \ apropos \ apt \ apt-cache \ apt-cdrom \ apt-config \ apt-get \ apt-key \ apt-mark \ ar \ arch \ as \ autoconf \ autoheader \ autom4te \ automake \ automake-1.16 \ autopoint \ autoreconf \ autoscan \ autoupdate \ awk \ b2sum \ base32 \ base64 \ basename \ bashbug \ bc \ bison \ bison.yacc \ bootctl \ bsd-from \ bsd-write \ busctl \ c++ \ c89 \ c89-gcc \ c99 \ c
04:25:57 <Yeah23> ls /usr/bin/v*
04:26:07 <Yeah23> `ls /usr/bin/v*
04:26:09 <HackEso> ls: cannot access '/usr/bin/v*': No such file or directory
04:26:21 <Yeah23> `ls /usr/bin/vi | more
04:26:22 <HackEso> ls: cannot access '/usr/bin/vi | more': No such file or directory
04:26:36 <oerjan> you need `` ls
04:26:46 <Yeah23> ``ls
04:26:47 <HackEso> ​/srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: `ls: not found
04:26:48 <oerjan> (or `run ls)
04:26:55 <Yeah23> `run ed
04:26:56 <HackEso> bash: ed: command not found
04:27:11 <Yeah23> `run ls /usr/bin/v*
04:27:11 <HackEso> ​/usr/bin/vi \ /usr/bin/vidir \ /usr/bin/view \ /usr/bin/vipe \ /usr/bin/vmgen \ /usr/bin/vmgen-0.7.3 \ /usr/bin/vmstat
04:27:21 <oerjan> ed and vi are unlikely to work anyway, there's no real terminal
04:27:24 <Yeah23> `run /usr/bin/vi
04:27:25 <HackEso> ​[24;1H[7mError: stderr: Success
04:27:38 <Yeah23> `run /usr/bin/ed
04:27:39 <HackEso> bash: /usr/bin/ed: No such file or directory
04:27:48 <Yeah23> There is no ed?
04:27:55 <oerjan> apparently so.
04:28:11 <oerjan> there is sed though.
04:28:25 -!- Yeah23 has quit (Remote host closed the connection).
04:29:05 * oerjan wonders if they got here from the wiki/HackEso
04:29:20 <oerjan> *-the
04:32:07 <oerjan> @tell kspalaiologos I'm pretty sure ^8ball _should_ be possible to write within fungot's cycle limit, if you write the bf by hand and avoid using much looping for the printing.
04:32:07 <lambdabot> Consider it noted.
04:32:07 <fungot> oerjan: fnord fnord hey do have any questions, just shoot :)
04:33:04 <oerjan> @tell kspalaiologos (the printing could use `! bf_txtgen output)
04:33:04 <lambdabot> Consider it noted.
04:33:15 <oerjan> `! bf_txtgen Test
04:33:18 <HackEso> 60 ++++++++++++++[>++++++>+++++++>++++++++><<<<-]>.>+++.>+++.+. [112]
05:57:40 -!- kspalaiologos has joined.
05:58:37 <kspalaiologos> =8ball are you alive?
05:58:37 <bfbot> Outlook good.
05:59:10 <kspalaiologos> oerjan: yeah
05:59:23 <kspalaiologos> But I'd have to write Brainfuck by hand
05:59:35 <kspalaiologos> Amd I'm not really willing to do so
05:59:42 <oerjan> shocking
05:59:49 <kspalaiologos> Btw, Brainfuck text generator we currently have
05:59:56 <kspalaiologos> Is crappy
06:00:04 <kspalaiologos> Don't use, don't count on it
06:00:30 <kspalaiologos> The messages are overall longer than 256 bytes
06:00:39 <kspalaiologos> So I cannot create lookup table in memory
06:00:42 <oerjan> well it seemed to be shorter than what you replaced it with for ^wiki
06:01:06 <oerjan> you don't need a lookup table for that method
06:01:06 <kspalaiologos> Did it?
06:01:18 <kspalaiologos> Jumps are szpenaice6
06:01:23 <kspalaiologos> Expensive
06:01:43 <kspalaiologos> `asmbf lbl 1/jmp 1
06:01:44 <HackEso> ​+>+[>>>+<<+<<[>>->+<<<-]>>>[<<<+>>>-]<[->+<<[>>>-<<+<-]>[<+>-]>>[<->[-]]<[<<<+>>>-]<]>>[-]<<<<[>>+>+<<<-]>>[<<+>>-]>[[-]>>>>>>+<<<<<<<<<[-]>[-]>>>>>>>>[<<<<<<<<+>+>>>>>>>-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[-]<<<<<<]<<<[>>+>+<<<-]>>[<<+>>-]>[[-]<<<[-]>[-]>>]<<]
06:02:05 <kspalaiologos> Also let's check
06:02:29 <kspalaiologos> `bf_textgen https://esolangs.org
06:02:30 <HackEso> ​/srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: bf_textgen: not found
06:02:58 <oerjan> `! bf_txtgen https://esolangs.org/wiki/
06:03:00 <HackEso> 165 +++++++++++++[>+++++++++>++++++++>+++++++++>++++<<<<-]>>.<-..----.>>--.>++++++.-----------..<<---.>.<<-.---.>----.<++.>++++++.>.>-.<<<+.+++.>.>>+.<++++.<++.++.--.>>. [955]
06:03:23 <oerjan> ^show wiki
06:03:23 <fungot> +15[>+4>+7>+7>+8<4-]>3-.>-4..<2+7.+3.<-2.-11..>2-3.<.>2-5.-3.<-4.>+2.<+6.<.<-.>3+.+3.<.<2+.>+4.>+2.+2.-2.<2.,[.,]
06:03:59 <oerjan> i changed ^wiki back because you forgot the https
06:04:16 <kspalaiologos> ^def crappywiki bf +++++++++++++[>+++++++++>++++++++>+++++++++>++++<<<<-]>>.<-..----.>>--.>++++++.-----------..<<---.>.<<-.---.>----.<++.>++++++.>.>-.<<<+.+++.>.>>+.<++++.<++.++.--.>>.,[.,]
06:04:16 <fungot> Defined.
06:04:27 <kspalaiologos> ^show crappywiki
06:04:27 <fungot> +13[>+9>+8>+9>+4<4-]>2.<-..-4.>2-2.>+6.-11..<2-3.>.<2-.-3.>-4.<+2.>+6.>.>-.<3+.+3.>.>2+.<+4.<+2.+2.-2.>2.,[.,]
06:04:36 <imode> doesn't seem crappy to me.
06:05:22 <oerjan> the internal compression makes comparison awkward (also editing)
06:05:33 <kspalaiologos> Yes.
06:05:35 <oerjan> anyway those are both created with bf_txtgen
06:05:47 <kspalaiologos> Nope
06:06:01 <kspalaiologos> I didn't use tool called such
06:06:14 <kspalaiologos> But I
06:06:18 <oerjan> i said i changed ^wiki back
06:06:26 <kspalaiologos> 'll try firing BFCruncher
06:06:26 <oerjan> and then modified it to do https
06:06:48 <kspalaiologos> I added https:// with my change
06:07:08 <oerjan> no you didn't
06:07:21 <kspalaiologos> How will we find out?
06:07:25 <oerjan> see logs
06:07:27 <oerjan> hum
06:07:34 <kspalaiologos> Fine
06:07:56 <kspalaiologos> Can you tell me the date?
06:08:06 <kspalaiologos> You changed it obviously
06:09:00 <oerjan> +[-5>+3<]>+.+12..-4.[-2>+<]>+2.-11..[-3>+<]>.[-3>+<]>-4.-4.-3.-11.+13.-7.+12.+[+2>-3<]>.-3[-5>+<]>.+3.-11.-2[->+3<]>.+2[-3>+2<]>+.+[->+3<]>+.+2.-2.-4[->+3<]>.,[.,]
06:09:09 <oerjan> was yours
06:09:33 <kspalaiologos> It's shorter when uncompressed though
06:09:43 <imode> how is that possible.
06:10:01 <kspalaiologos> ^shorter than his obviously
06:10:28 <imode> it doesn't look like it's shorter, no.
06:10:38 <oerjan> https://esolangs.org/logs/2019-11-18.html#l2c
06:11:11 <oerjan> that's where i tested it and saw it was still http://
06:11:36 <kspalaiologos> Maybe somebody reverted it
06:11:38 <kspalaiologos> No idea
06:11:55 <kspalaiologos> I remember using https but K might be wrong
06:15:02 <oerjan> `edit ../bin/rlexp
06:15:04 <HackEso> https://hack.esolangs.org/edit/bin/rlexp
06:17:12 <oerjan> `` grep -l hashbang ../bin/*
06:17:13 <HackEso> No output.
06:17:35 <oerjan> `` grep -l args_or ../bin/*
06:17:36 <HackEso> ​../bin/aaaaaaaaa \ ../bin/asmbf \ ../bin/complain \ ../bin/dedot \ ../bin/döts \ ../bin/h \ ../bin/insanetemp \ ../bin/lowercase \ ../bin/morse-decode \ ../bin/noping \ ../bin/ord \ ../bin/ordu \ ../bin/orenbow \ ../bin/poulet \ ../bin/rainbow \ ../bin/rainbow.old \ ../bin/rainwords \ ../bin/rot13 \ ../bin/sanetemp \ ../bin/shmify \ ../bin/ümläüt \ ../bin/unhex \ ../bin/zalgo
06:18:33 <oerjan> `` grep -l 'args_or.*perl' ../bin/*
06:18:34 <HackEso> ​../bin/h \ ../bin/ord \ ../bin/ordu
06:18:41 <oerjan> `cbt h
06:18:42 <HackEso> ​#!/hackenv/bin/shebang_args_or_input perl -p \ s/([aeiouy])([bcdfghjklmnpqrstvxz])/$1h$2/ig
06:20:24 <oerjan> `fetch ../bin/rlexp https://hack.esolangs.org/get/bin/rlexp
06:20:25 <HackEso> 2019-11-20 06:20:25 URL:https://hack.esolangs.org/get/bin/rlexp [73/73] -> "/hackenv/bin/rlexp" [1]
06:20:40 <oerjan> `rlexp +[-5>+3<]>+.+12..-4.[-2>+<]>+2.-11..[-3>+<]>.[-3>+<]>-4.-4.-3.-11.+13.-7.+12.+[+2>-3<]>.-3[-5>+<]>.+3.-11.-2[->+3<]>.+2[-3>+2<]>+.+[->+3<]>+.+2.-
06:20:41 <HackEso> ​/srv/hackeso-code/multibot_cmds/lib/limits: line 5: /hackenv/bin/rlexp: Permission denied \ /srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: /hackenv/bin/rlexp: cannot execute: Permission denied
06:20:43 <oerjan> 2.-4[->+3<]>.,[.,]
06:20:45 <oerjan> oops
06:20:54 <oerjan> `` chmod +x ../bin/rlexp
06:20:56 <HackEso> No output.
06:20:59 <oerjan> 2.-4[->+3<]>.,[.,]
06:21:20 <oerjan> `rlexp +[-5>+3<]>+.+12..-4.[-2>+<]>+2.-11..[-3>+<]>.[-3>+<]>-4.-4.-3.-11.+13.-7.+12.+[+2>-3<]>.-3[-5>+<]>.+3.-11.-2[->+3<]>.+2[-3>+2<]>+.+[->+3<]>+.+2.-2.-4[->+3<]>.,[.,]
06:21:20 <HackEso> Out of memory! \ panic: fold_constants JMPENV_PUSH returned 2 at /hackenv/bin/rlexp line 2.
06:21:27 <oerjan> wat
06:21:37 <oerjan> `rlexp t2e3s5t6
06:21:38 <HackEso> Out of memory! \ panic: fold_constants JMPENV_PUSH returned 2 at /hackenv/bin/rlexp line 2.
06:21:42 <oerjan> ok something wrong
06:22:06 <imode> woah.
06:22:07 <oerjan> `fetch ../bin/rlexp https://hack.esolangs.org/get/bin/rlexp
06:22:09 <HackEso> 2019-11-20 06:22:08 URL:https://hack.esolangs.org/get/bin/rlexp [73/73] -> "/hackenv/bin/rlexp" [1]
06:22:15 <oerjan> `rlexp +[-5>+3<]>+.+12..-4.[-2>+<]>+2.-11..[-3>+<]>.[-3>+<]>-4.-4.-3.-11.+13.-7.+12.+[+2>-3<]>.-3[-5>+<]>.+3.-11.-2[->+3<]>.+2[-3>+2<]>+.+[->+3<]>+.+2.-2.-4[->+3<]>.,[.,]
06:22:15 <HackEso> ​+[----->+3<]>+.+12..-4.[-2>+<]>+2.-11..[-3>+<]>.[-3>+<]>-4.-4.-3.-11.+13.-7.+12.+[+2>-3<]>.-3[-5>+<]>.+3.-11.-2[->+3<]>.+2[-3>+2<]>+.+[->+3<]>+.+2.-2.-4[->+3<]>.,[.,]
06:22:49 <oerjan> `rlexp +++++++++++++[>+++++++++>++++++++>+++++++++>++++<<<<-]>>.<-..----.>>--.>++++++.-
06:22:49 <HackEso> ​+++++++++++++[>+++++++++>++++++++>+++++++++>++++<<<<-]>>.<-..----.>>--.>++++++.-
06:23:12 <oerjan> wat
06:23:17 <oerjan> oh wait
06:23:47 <oerjan> `rlexp +15[>+4>+7>+7>+8<4-]>3-.>-4..<2+7.+3.<-2.-11..>2-3.<.>2-5.-3.<-4.>+2.<+6.<.<-.>3+.+3.<.<2+.>+4.>+2.+2.-2.<2.,[.,]
06:23:48 <HackEso> ​+++++[>+4>+7>+7>+8<4-]>3-.>-4..<2+7.+3.<-2.-11..>2-3.<.>2-5.-3.<-4.>+2.<+6.<.<-.>3+.+3.<.<2+.>+4.>+2.+2.-2.<2.,[.,]
06:24:05 <oerjan> `rlexp +[-5>+3<]>+.+12..-4.[-2>+<]>+2.-11..[-3>+<]>.[-3>+<]>-4.-4.-3.-11.+13.-7.+12.+[+2>-3<]>.-3[-5>+<]>.+3.-11.-2[->+3<]>.+2[-3>+2<]>+.+[->+3<]>+.+2.-2.-4[->+3<]>.,[.,]
06:24:08 <HackEso> ​+[----->+3<]>+.+12..-4.[-2>+<]>+2.-11..[-3>+<]>.[-3>+<]>-4.-4.-3.-11.+13.-7.+12.+[+2>-3<]>.-3[-5>+<]>.+3.-11.-2[->+3<]>.+2[-3>+2<]>+.+[->+3<]>+.+2.-2.-4[->+3<]>.,[.,]
06:24:27 <oerjan> wait what
06:24:28 -!- kspalaiologos has quit (Ping timeout: 245 seconds).
06:24:51 <oerjan> oh there's a bug
06:25:20 <oerjan> i wasn't looking properly
06:26:01 <imode> ksa seemed a little miffed you removed his command.
06:26:15 <oerjan> `fetch ../bin/rlexp https://hack.esolangs.org/get/bin/rlexp
06:26:16 <HackEso> 2019-11-20 06:26:16 URL:https://hack.esolangs.org/get/bin/rlexp [74/74] -> "/hackenv/bin/rlexp" [1]
06:26:26 <oerjan> `rlexp +[-5>+3<]>+.+12..-4.[-2>+<]>+2.-11..[-3>+<]>.[-3>+<]>-4.-4.-3.-11.+13.-7.+12.+[+2>-3<]>.-3[-5>+<]>.+3.-11.-2[->+3<]>.+2[-3>+2<]>+.+[->+3<]>+.+2.-2.-4[->+3<]>.,[.,]
06:26:27 <HackEso> ​+[----->+++<]>+.++..----.[-->+<]>++.-..[--->+<]>.[--->+<]>----.----.---.-.+++.-------.++.+[++>---<]>.---[----->+<]>.+++.-.--[->+++<]>.++[--->++<]>+.+[->+++<]>+.++.--.----[->+++<]>.,[.,]
06:27:02 <oerjan> ...there's definitely still something wrong with multidigit numbers
06:27:17 <oerjan> `rlexp t12
06:27:18 <HackEso> tt
06:29:14 <imode> wat.
06:29:29 <imode> `rlexp t11
06:29:30 <HackEso> t
06:29:32 <oerjan> i was thinking this command could be useful for expanding fungot's compressed brainfuck in general
06:29:32 <fungot> oerjan: i tend not to heed the flamewar part of the closure as a pair
06:29:43 <imode> `rlexp t13
06:29:44 <HackEso> ttt
06:29:47 <oerjan> fungot: good policy
06:29:47 <fungot> oerjan: how did you do it with
06:29:53 <imode> `rlexp t11113
06:29:53 <HackEso> ttt
06:29:56 <imode> wat.
06:30:01 <oerjan> `rlexp t33
06:30:04 <HackEso> ttt
06:30:09 <oerjan> hm i see
06:30:23 <imode> does it just run until it hits the last digit in a span of digits or something.
06:30:29 <imode> `rlexp t00005
06:30:30 <HackEso> ttttt
06:30:40 <oerjan> d'oh
06:30:47 <oerjan> `fetch ../bin/rlexp https://hack.esolangs.org/get/bin/rlexp
06:30:48 <HackEso> 2019-11-20 06:30:47 URL:https://hack.esolangs.org/get/bin/rlexp [74/74] -> "/hackenv/bin/rlexp" [1]
06:30:56 <oerjan> `rlexp t33
06:30:56 <HackEso> ttttttttttttttttttttttttttttttttt
06:31:07 <oerjan> `rlexp +[-5>+3<]>+.+12..-4.[-2>+<]>+2.-11..[-3>+<]>.[-3>+<]>-4.-4.-3.-11.+13.-7.+12.+[+2>-3<]>.-3[-5>+<]>.+3.-11.-2[->+3<]>.+2[-3>+2<]>+.+[->+3<]>+.+2.-2.-4[->+3<]>.,[.,]
06:31:08 <HackEso> ​+[----->+++<]>+.++++++++++++..----.[-->+<]>++.-----------..[--->+<]>.[--->+<]>----.----.---.-----------.+++++++++++++.-------.++++++++++++.+[++>---<]>.---[----->+<]>.+++.-----------.--[->+++<]>.++[--->++<]>+.+[->+++<]>+.++.--.----[->+++<]>.,[.,]
06:31:27 <oerjan> `rlexp +15[>+4>+7>+7>+8<4-]>3-.>-4..<2+7.+3.<-2.-11..>2-3.<.>2-5.-3.<-4.>+2.<+6.<.<-.>3+.+3.<.<2+.>+4.>+2.+2.-2.<2.,[.,]
06:31:28 <HackEso> ​+++++++++++++++[>++++>+++++++>+++++++>++++++++<<<<-]>>>-.>----..<<+++++++.+++.<--.-----------..>>---.<.>>-----.---.<----.>++.<++++++.<.<-.>>>+.+++.<.<<+.>++++.>++.++.--.<<.,[.,]
06:31:39 <oerjan> there we go.
06:32:33 <oerjan> @tell kspalaiologos sorry if i jumped on you
06:32:33 <lambdabot> Consider it noted.
06:33:18 <oerjan> imode: i put the + outside the matching group of the regexp so it only got the first character
06:33:34 <imode> ahh.
06:37:44 <oerjan> `learn `rlexp <compressed code> is a command for expanding the rle format fungot ^show's for brainfuck code but doesn't accept as input.
06:37:44 <fungot> oerjan: you should make () a proper list" here means whatever list is n levels up from the negative list
06:37:46 <HackEso> Learned '`rlexp': `rlexp <compressed code> is a command for expanding the rle format fungot ^show's for brainfuck code but doesn't accept as input.
06:38:31 <oerjan> `` ls bin/*rl*
06:38:32 <HackEso> ls: cannot access 'bin/*rl*': No such file or directory
06:38:39 <oerjan> `` ls ../bin/*rl*
06:38:40 <HackEso> ​../bin/curl \ ../bin/hello-world-in-any-language \ ../bin/hurl \ ../bin/hwrl \ ../bin/jousturl \ ../bin/logurl \ ../bin/perl-e \ ../bin/raw-url \ ../bin/rlexp \ ../bin/url \ ../bin/wrl \ ../bin/zalgoverload
06:39:10 <oerjan> `cbt wrl
06:39:10 <HackEso> url "$HACKENV/wisdom/$1"
06:40:48 <oerjan> i am _this_ close to adding a `` variant that cd's to $HACKENV first.
06:42:54 <oerjan> or maybe a `nur variant.
06:43:38 <oerjan> `h
06:44:09 <HackEso> No output.
06:53:00 <oerjan> The Castle might be distantly related to Elan
07:17:17 -!- imode has quit (Ping timeout: 240 seconds).
07:42:53 -!- oerjan has quit (Quit: Nite).
08:19:51 -!- ArthurStrong has joined.
09:01:59 -!- b_jonas has quit (Quit: leaving).
09:16:16 -!- arseniiv has joined.
09:46:56 -!- kspalaiologos has joined.
09:48:02 <kspalaiologos> ^def 8ball bf ----[---->+<]>--.-----.-------[->++<]>.-.+++++++++++..[++>---<]>--.[,.]
09:48:02 <fungot> Defined.
09:48:23 <kspalaiologos> ^8ball w0t
09:48:23 <fungot> =8ball w0t
09:48:24 <bfbot> Cannot predict now.
09:48:29 <kspalaiologos> XD
09:48:33 <kspalaiologos> Works
10:06:14 <esowiki> [[Esolang:Sandbox]] M https://esolangs.org/w/index.php?diff=67276&oldid=67239 * A * (+323)
10:12:37 -!- Lymee has joined.
10:14:14 -!- Lymia has quit (Ping timeout: 276 seconds).
10:14:14 -!- Lymee has changed nick to Lymia.
10:37:21 <kspalaiologos> =doc 8ball 8-ball pseudorandom emulator for bfbot. Feel free to view it's code.
10:37:22 <bfbot> ok.
10:37:27 <kspalaiologos> =doc 8ball
10:37:27 <bfbot> 8ball: 8-ball pseudorandom emulator for bfbot. Feel free to view it's code.
10:37:29 <kspalaiologos> Fine
10:38:49 <kspalaiologos> =doc 8ball pseudorandom emulator for bfbot. Feel free to view it's code.
10:38:49 <bfbot> ok.
10:38:58 <kspalaiologos> =doc 8ball
10:38:58 <bfbot> 8ball: pseudorandom emulator for bfbot. Feel free to view it's code.
10:39:05 <kspalaiologos> Well
10:39:21 <kspalaiologos> =doc 8ball pseudorandom 8-ball emulator for bfbot. Feel free to view it's code
10:39:21 <bfbot> ok.
10:39:24 <kspalaiologos> Perfect
10:43:12 -!- diverger has quit (Ping timeout: 246 seconds).
10:44:42 -!- diverger has joined.
11:10:00 <kspalaiologos> =help
11:10:00 <bfbot> bfbot is a bot executing brainfuck natively. You may add your very own commands to the bot.
11:10:00 <bfbot> Commands: =str =def =undef =list =plist =doc. More help at https://esolangs.org/wiki/bfbot
12:06:21 -!- wib_jonas has joined.
12:28:11 -!- arseniiv has quit (Ping timeout: 246 seconds).
12:35:38 -!- nico_nico has joined.
12:35:59 -!- arseniiv has joined.
12:42:35 -!- nico_nico has quit (Quit: Leaving).
13:18:59 <fizzie> ^8ball Did I restore the existing program?
13:18:59 <fungot> Yes.
13:19:16 <fizzie> (I mean, it had a perfectly working one already, no need to make it just a redirect.)
13:21:46 <esowiki> [[Special:Log/newusers]] create * OsmineYT * New user account
13:26:43 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=67277&oldid=67220 * OsmineYT * (+151)
13:29:52 <esowiki> [[User:OsmineYT]] N https://esolangs.org/w/index.php?oldid=67278 * OsmineYT * (+153) Created page with "Hi! I'm 12 and I want to write esoteric programming language. (Yep, that's my dream.) And that's all (because I don't write in English '''very well''')."
13:36:45 <wib_jonas> shachaf: I second the recommendation for c-ares as a DNS resolver library.
13:37:13 <wib_jonas> other than that, you should ask about more specific functionality, rather than "C libraries for things"
13:39:36 <wib_jonas> "<oerjan> ed and vi are unlikely to work anyway, there's no real terminal" => I have used ed non-interactively without a terminal. I admit the usage was rather esoteric, but people used it seriously too, to apply patches before patch.
13:40:03 <wib_jonas> Yeah23: ed is not installed on debian by default, but it's a good candidate to ask fizzie
13:40:12 <wib_jonas> fizzie: can you install ed to HackEso?
13:40:27 <wib_jonas> it's small and esoteric, so I think it's worth to have
13:40:34 <wib_jonas> I mean, it has esoteric uses
13:46:20 <esowiki> [[Incident]] M https://esolangs.org/w/index.php?diff=67279&oldid=64994 * Ais523 non-admin * (+17) /* External resources */ nowiki the URL that doesn't work in a web browser, to stop people trying to click on it and thus open it in a web browser
13:48:58 <esowiki> [[User:OsmineYT]] https://esolangs.org/w/index.php?diff=67280&oldid=67278 * OsmineYT * (+76)
13:49:30 <esowiki> [[User:OsmineYT]] https://esolangs.org/w/index.php?diff=67281&oldid=67280 * OsmineYT * (-27) /* Ideas to programming languages: */
13:49:36 <esowiki> [[User:OsmineYT]] https://esolangs.org/w/index.php?diff=67282&oldid=67281 * OsmineYT * (-1) /* Ideas to programming languages: */
13:53:12 <esowiki> [[Timed]] N https://esolangs.org/w/index.php?oldid=67283 * OsmineYT * (+206) Created page with "Timed is an idea of esolang by [[User:OsmineYT|OsmineYT]]. If there is '''any''' command in source code, the code execution will slow down 2 times. == Commands == There are n..."
13:55:37 <esowiki> [[User:OsmineYT]] https://esolangs.org/w/index.php?diff=67284&oldid=67282 * OsmineYT * (+1) /* Ideas to programming languages: */
13:57:52 <fizzie> wib_jonas: Given that it's the standard text editor, maybe we should have it.
13:58:37 <wib_jonas> fizzie: yeah, and I should have mentioned it when you installed dc
13:58:49 <wib_jonas> or bc, or both, whichever it is that isn't on debian by default
13:58:59 <fizzie> `ed -V
13:58:59 <wib_jonas> ``` dc -e16o100p
13:59:00 <HackEso> GNU ed 1.15 \ Copyright (C) 1994 Andrew L. Moore. \ Copyright (C) 2019 Antonio Diaz Diaz. \ License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> \ This is free software: you are free to change and redistribute it. \ There is NO WARRANTY, to the extent permitted by law.
13:59:01 <esowiki> [[Timed]] https://esolangs.org/w/index.php?diff=67285&oldid=67283 * OsmineYT * (+118) /* Commands */
13:59:01 <HackEso> 64
13:59:09 <wib_jonas> ``` dc -e16i64p
13:59:10 <HackEso> 100
13:59:29 <fizzie> I think dc is the one that's not installed by default, I remember installing it.
13:59:33 <wib_jonas> ``` bc -e 'obase = G; print(100)'
13:59:34 <HackEso> bc: invalid option -- 'e' \ usage: bc [options] [file ...] \ -h --help print this usage and exit \ -i --interactive force interactive mode \ -l --mathlib use the predefined math routines \ -q --quiet don't print initial banner \ -s --standard non-standard bc constructs are errors \ -w --warn warn about non-standard bc constructs \ -v --version print version information and exit
13:59:35 <fizzie> It's also the more esoteric of the two, I feel.
13:59:41 <wib_jonas> ``` bc << 'obase = G; print(100)'
13:59:42 <HackEso> bash: warning: here-document at line 0 delimited by end-of-file (wanted `obase = G; print(100)')
13:59:45 <wib_jonas> ``` bc <<< 'obase = G; print(100)'
13:59:46 <esowiki> [[Timed]] https://esolangs.org/w/index.php?diff=67286&oldid=67285 * OsmineYT * (-40)
13:59:46 <HackEso> 64
13:59:55 <wib_jonas> ``` bc <<< 'ibase = G; print(64)'
13:59:56 <HackEso> 100
14:00:23 <esowiki> [[Timed]] https://esolangs.org/w/index.php?diff=67287&oldid=67286 * OsmineYT * (+64)
14:00:47 <fizzie> My favourite bit about dc is the part of the man page which says "the sequence KSK0k1/_1Ss [ls*]Sxd0>x [256~Ssd0<x]dsxxsx[q]Sq[Lsd0>qaPlxx] dsxxsx0sqLqsxLxLK+k could also accomplish this function" with a straight face.
14:01:02 <wib_jonas> ``` set -e; ed <<<$'i\none\nthree\nfour\n.\n1a\ntwo\n.\nwtmp/ah-ah-ah\nq'; cat tmp/ah-ah-ah
14:01:03 <HackEso> ​?
14:01:20 <wib_jonas> ``` set -e; ed <<<$'etmp/ah-ah-ah\ni\none\nthree\nfour\n.\n1a\ntwo\n.\nw\nq'; cat tmp/ah-ah-ah
14:01:21 <HackEso> ​?
14:01:26 <wib_jonas> ``` set -e; ed <<<$'e tmp/ah-ah-ah\ni\none\nthree\nfour\n.\n1a\ntwo\n.\nw\nq'; cat tmp/ah-ah-ah
14:01:26 <HackEso> tmp/ah-ah-ah: No such file or directory \ ?
14:01:38 <fizzie> Ah, ed's good old '?'.
14:01:46 <wib_jonas> ``` set -e; ed <<<$'i\none\nthree\nfour\n.\n1a\ntwo\n.\nw/hackenv/tmp/ah-ah-ah\nq'; cat tmp/ah-ah-ah
14:01:47 <HackEso> ​?
14:01:52 <wib_jonas> ``` set -e; ed <<<$'i\none\nthree\nfour\n.\n1a\ntwo\n.\nw /hackenv/tmp/ah-ah-ah\nq'; cat tmp/ah-ah-ah
14:01:52 <HackEso> cat: tmp/ah-ah-ah: No such file or directory \ 19
14:02:01 <wib_jonas> ``` set -e; ed <<<$'i\none\nthree\nfour\n.\n1a\ntwo\n.\nw /hackenv/tmp/ah-ah-ah\nq'; cat /hackenv/tmp/ah-ah-ah
14:02:03 <HackEso> 19 \ one \ two \ three \ four
14:02:18 <wib_jonas> ``` set -e; ed <<<$'i\none\nthree\nfour\n.\n1a\ntwo\n.\nw /hackenv/tmp/ah-ah-ah\nq'; echo ---; cat /hackenv/tmp/ah-ah-ah
14:02:19 <HackEso> 19 \ --- \ one \ two \ three \ four
14:03:33 -!- kspalaiologos2 has joined.
14:04:33 -!- kspalaiologos has quit (Quit: Quit).
14:04:45 <kspalaiologos2> fizzie, I genuinely didn't know
14:04:50 -!- kspalaiologos2 has changed nick to kspalaiologos.
14:04:52 <kspalaiologos> perfect
14:06:03 <kspalaiologos> =show 8bball
14:06:03 <bfbot> No such command. Try =help.
14:06:07 <kspalaiologos> ^show 8ball
14:06:07 <fungot> ,[[->+<],]>2+2<[->-[>+>2]>[+[-<+>]>+>2]<5]>4+<2[>2-+11[>+8>+4<2-]>+.+12.+14.>+2.<4-]>2[+10[>+7>+4<2-]>+.+33.>+2.<2]
14:06:16 <kspalaiologos> is this it?
14:06:19 <kspalaiologos> ^ball blah
14:06:22 <kspalaiologos> ^8ball blah
14:06:22 <fungot> Yes.
14:06:27 <kspalaiologos> ^8ball ?
14:06:27 <fungot> Yes.
14:06:35 <kspalaiologos> It's a very crappy 8ball you know it
14:06:47 <kspalaiologos> look
14:06:52 <kspalaiologos> =8ball hi
14:06:52 <bfbot> Very doubtful.
14:06:55 <kspalaiologos> =8ball hello
14:06:55 <bfbot> Without a doubt.
14:07:05 <kspalaiologos> =8ball is this 8ball nicer?
14:07:05 <bfbot> As I see it, yes.
14:07:16 <kspalaiologos> it even has an easteregg
14:07:18 <kspalaiologos> =8ball KPS
14:07:19 <bfbot> Congratulations! You found the easter egg! ~~kspalaiologos, 2019
14:17:06 <kspalaiologos> =help
14:17:06 <bfbot> bfbot is a bot executing brainfuck natively. You may add your very own commands to the bot.
14:17:06 <bfbot> Commands: =str =def =undef =list =plist =doc. More help at https://esolangs.org/wiki/bfbot
14:24:18 <fizzie> ^8ball Is it really crappy?
14:24:18 <fungot> No.
14:24:21 <fizzie> See, there you go.
14:32:10 <kspalaiologos> it's just yes/no
14:32:16 <kspalaiologos> c'mon, you could do it better :p
14:33:14 -!- lldd_ has joined.
14:39:52 -!- kspalaiologos has quit (Quit: Leaving).
14:41:58 -!- wib_jonas has quit (Remote host closed the connection).
14:46:34 -!- kspalaiologos has joined.
14:47:25 -!- imode has joined.
15:20:37 <arseniiv> kspalaiologos: didn’t read the logs; am I needed yet? :)
15:23:03 <kspalaiologos> I'm not home
15:23:27 <kspalaiologos> When I'll be back I'll take on it
15:26:26 -!- imode has quit (Ping timeout: 240 seconds).
15:45:12 -!- kspalaiologos has quit (Quit: Quit).
15:49:32 -!- kspalaiologos has joined.
15:52:07 <kspalaiologos> =8ball is my 8ball better?
15:52:07 <bfbot> Better not tell you now.
15:52:25 <kspalaiologos> =8ball my 8ball is certainly better
15:52:25 <bfbot> Better not tell you now.
15:52:31 <kspalaiologos> sugh
15:52:38 <kspalaiologos> =8ball my 8ball is better
15:52:39 <bfbot> Signs point to yes.
15:52:42 <kspalaiologos> a ha!
16:00:41 -!- wib_jonas has joined.
16:16:16 -!- bfbot-e has joined.
16:16:21 <kspalaiologos> no way it works lol
16:17:16 -!- bfbot-e has quit (Remote host closed the connection).
16:17:30 -!- bfbot-e has joined.
16:17:42 -!- bfbot-e has quit (Remote host closed the connection).
16:18:58 -!- dingwat has joined.
16:43:27 -!- lldd_ has quit (Quit: Leaving).
16:51:21 -!- wib_jonas has quit (Remote host closed the connection).
17:16:22 -!- xkapastel has joined.
17:40:47 -!- tromp_ has quit (Ping timeout: 276 seconds).
17:42:41 <kspalaiologos> `asmbf @l/out .A/jmp 5l
17:42:42 <HackEso> ​+>+[>>>+<<+<<[>>->+<<<-]>>>[<<<+>>>-]<[->+<<[>>>-<<+<-]>[<+>-]>>[<->[-]]<[<<<+>>>-]<]>>[-]<<<<[>>+>+<<<-]>>[<<+>>-]>[[-]>>>>>>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.[-]#
17:42:50 <kspalaiologos> `asmbf @l/out .A/jmp %l
17:42:50 <HackEso> ​+>+[>>>+<<+<<[>>->+<<<-]>>>[<<<+>>>-]<[->+<<[>>>-<<+<-]>[<+>-]>>[<->[-]]<[<<<+>>>-]<]>>[-]<<<<[>>+>+<<<-]>>[<<+>>-]>[[-]>>>>>>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.[-]+<<<<<<<<<[-]>[-]>>>>>>>>[<<<<<<<<+>+>>>>>>>-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[-]<<<<<<]<<<[>>+>+<<<-]>>[<<+>>-]>[[-]<<<[-]>[-]>>]<<]
17:44:16 <shachaf> b_jonas: Are you sure? I'm interested in API design and things as well as specific functionality.
17:47:03 <esowiki> [[Asm2bf]] N https://esolangs.org/w/index.php?oldid=67288 * Palaiologos * (+24324) Finally.
17:47:29 <esowiki> [[Asm2bf]] https://esolangs.org/w/index.php?diff=67289&oldid=67288 * Palaiologos * (-3) Formatting brainfart
17:47:34 <kspalaiologos> Done
17:47:34 <kspalaiologos> https://esolangs.org/wiki/Asm2bf
17:47:39 <kspalaiologos> there is need to add some code blocks
17:47:41 <kspalaiologos> and bold some text
17:47:50 <kspalaiologos> but it's just some detail work, initial draft is done
17:48:36 <kspalaiologos> arseniiv, you can read it :)
17:49:50 <arseniiv> kspalaiologos: ok let’s see
17:49:50 -!- tromp has joined.
17:55:42 <arseniiv> kspalaiologos: should I change “32-bit code” to “32-bit-celled code” maybe? Someone may accidentally think it means code for a 32-bit architecture (or may they?)
17:56:41 <arseniiv> ah no it seems genuine 32-bit architecture code, hm
17:56:57 <arseniiv> I leave that as it is
17:59:32 <arseniiv> kspalaiologos: I’ll continue with suggestions/questions in PM
17:59:42 <kspalaiologos> fin
17:59:43 <kspalaiologos> e
18:00:04 <kspalaiologos> it's 16bit architecture
18:02:33 -!- tromp has quit (Read error: Connection reset by peer).
18:02:53 -!- tromp has joined.
18:59:14 -!- FreeFull has joined.
19:18:57 <kspalaiologos> anyone else willing to proofread the article?
19:18:57 <kspalaiologos> https://esolangs.org/wiki/Asm2bf
19:19:37 <esowiki> [[Asm2bf]] M https://esolangs.org/w/index.php?diff=67290&oldid=67289 * Arseniiv * (+418) some suggestions Im more or less sure about, also maybe see a couple of html comments in the code
19:19:59 <arseniiv> I think I’ve done what I could :)
19:20:16 <kspalaiologos> ah, fine
19:20:17 <kspalaiologos> thanks
19:20:43 <esowiki> [[Asm2bf]] M https://esolangs.org/w/index.php?diff=67291&oldid=67290 * Palaiologos * (+0) typo?
19:21:08 <arseniiv> also I encountered a weird bug when ` in the input field and even in the text renders as a real grave accent diacritic, this is probably due to my weird font settings in firefox
19:21:42 <arseniiv> kspalaiologos: yw
19:21:47 <arseniiv> oops I typoed it, yes
19:22:21 <kspalaiologos> << To build the program, simply execute it and the brainfuck file will appear nearby. >>
19:22:23 <kspalaiologos> Is this correct?
19:22:25 <kspalaiologos> I'm not even sure
19:22:32 <kspalaiologos> by sounds better to me
19:22:36 <kspalaiologos> but I may be wrong
19:22:49 <kspalaiologos> nearby in case of files sounds weird
19:23:11 <arseniiv> I’m not that good with deployment and with Linux tools too :D
19:23:16 <kspalaiologos> but overall
19:23:18 <kspalaiologos> nice changes
19:23:18 <kspalaiologos> thanks
19:23:38 <kspalaiologos> I'll edit out the nearby though because it sounds weird to me
19:23:47 <esowiki> [[Asm2bf]] M https://esolangs.org/w/index.php?diff=67292&oldid=67291 * Palaiologos * (-4) nearby -> by
19:23:57 <arseniiv> ah I saw in the dictionary that “by” is sometimes used but honestly I haven’t seen it yet
19:24:09 <arseniiv> used in that sense*
19:24:25 <arseniiv> <kspalaiologos> I'll edit out the nearby though because it sounds weird to me => okay :D
19:24:50 <kspalaiologos> I'll add gisa paragraph
19:24:53 <kspalaiologos> and it's done
19:25:10 <kspalaiologos> quite large article imo, haven't seen many so big articles on esolangs
19:25:22 <arseniiv> yeah, a long read
19:25:36 <kspalaiologos> I've been poking the program for around 3 years
19:25:41 <kspalaiologos> sometimes more, sometimes less
19:25:48 <kspalaiologos> so it's quite complicated how everything works
19:25:57 <kspalaiologos> I could explain stuff in even more detail but it would be just plain boring
19:37:17 <kspalaiologos> `q
19:37:18 <HackEso> 971) <oerjan> `quote 1000
19:37:24 <kspalaiologos> `quote 1000
19:37:24 <HackEso> 1000) <shachaf> "would be a good name for a band when preceded by its quotation" would be a good name for a band when preceded by its quotation
19:37:36 <kspalaiologos> `quote 1337
19:37:37 <HackEso> No output.
19:37:41 <kspalaiologos> It's yet not there
19:37:44 <kspalaiologos> `quote 1336
19:37:45 <HackEso> No output.
19:37:47 <kspalaiologos> `quote 1335
19:37:47 <HackEso> 1335) <shachaf> The domain is public, but what's the codomain?
19:37:50 <kspalaiologos> `quote 1334
19:37:51 <HackEso> 1334) <lf94> kspalaiologos: yes, it's much more enjoyable sitting in #esoteric than chiselling 99 bottles of beer into a rock.
19:37:55 <kspalaiologos> `quote 1333
19:37:56 <HackEso> 1333) <kspalaiologos> I have made a chess engine in Malbolge <kspalaiologos> in theory it's decent <kspalaiologos> but it has two drawbacks <kspalaiologos> a) It requires 31 and a half gigabytes of memory <kspalaiologos> b) it's quicker to count atoms in universe than to run it
19:38:02 <kspalaiologos> no changes that presumes
19:39:40 <esowiki> [[Brainfuck]] https://esolangs.org/w/index.php?diff=67293&oldid=66486 * Palaiologos * (-30)
20:05:55 -!- kspalaiologos has quit (Quit: Leaving).
20:10:01 -!- b_jonas has joined.
20:11:02 <fizzie> `delquote 753
20:11:04 <HackEso> ​*poof* <itidus21> i have a simple view of reality that goes something like this.. once your sufficiently well tied up.. it doesn't make a difference if your enemy has a knife or a gun.. you're equally screwed
20:12:00 <fizzie> `delquote 1016
20:12:06 <HackEso> ​*poof* <Sgeo> So. In general. Fuck ... actually, I'm not really annoyed at anything right now
20:13:33 <fizzie> `delquote 213
20:13:35 <HackEso> ​*poof* <olsner> actually, I think vorpal is the "retarded team member" to the left
21:16:05 -!- xkapastel has quit (Quit: Connection closed for inactivity).
21:25:09 -!- kspalaiologos has joined.
21:55:16 <tswett[m]> So I've been thinking about the way that the stock market moves.
21:55:53 <tswett[m]> The simplest reasonable model is geometric Brownian motion. The (logarithmic) percentage change from one day to the next is a normally distributed random variable.
21:57:08 <tswett[m]> It's a nice model, but it's wrong. :D The changes are known to have significant excess kurtosis (though I don't remember if it's positive or negative).
21:57:25 <tswett[m]> So here's the particular thing I'm wondering.
21:58:43 <tswett[m]> Independently normally distributed random variables add together really nicely. If X has mean m_1 and variance s^2_1, and Y has mean m_2 and variance s^2_2, then X + Y has mean m_1 + m_2 and variance s^2_1 + s^2_2.
21:58:49 <tswett[m]> Does something similar happen with higher moments, like skewness and kurtosis?
22:00:27 <kmc> good question!
22:03:53 <fizzie> The sum of two independent normally distributed variables is itself normally distributed, with the mean and variance you mention.
22:04:02 -!- divergence has joined.
22:05:20 -!- diverger has quit (Ping timeout: 276 seconds).
22:05:46 <tswett[m]> Aha, here's the answer. The mean is the first cumulant and the variance is the second cumulant; the property I mentioned holds for these and all higher cumulants. https://en.wikipedia.org/wiki/Cumulant
22:05:46 <fizzie> So its skewness and kurtosis are 0, as are the ones for X and Y as well.
22:20:37 <tswett[m]> Right, but now this holds for X and Y having any distribution, not just a normal distribution.
22:44:45 -!- ArthurStrong has quit (Quit: leaving).
22:46:04 -!- Eleuthera has joined.
23:40:53 -!- arseniiv has quit (Ping timeout: 246 seconds).
23:51:50 -!- Sgeo__ has quit (Ping timeout: 265 seconds).
23:54:22 <b_jonas> `q
23:54:23 <HackEso> 502) <fizzie> Isn't "strip nomic" just another word for all dating, though?
23:58:30 -!- Eleuthera has quit (Remote host closed the connection).
2019-11-21
00:02:26 <fizzie> Weird. I've been refactoring umlbox code a little (in preparation for some tweaks), and one thing I changed was to start using "con1=fd:N,fd:M", where N is /dev/null (opened RDWR) and M is the inherited stdout (for capturing the command output).
00:02:53 <fizzie> Previously it was "con1=null,fd:M", which uses UML's 'null' console type instead, which makes reads block forever.
00:03:08 <fizzie> Locally this seemed to make commands like "cat" reliably return quickly, instead of waiting for the timeout. But on the bot machine, it's... flaky. Now it's again returning quickly, but earlier I wasn't, even though I changed nothing.
00:03:12 <fizzie> `cat
00:03:14 <HackEso> No output.
00:03:21 <fizzie> Odd.
00:10:35 -!- Sgeo has joined.
00:16:50 <shachaf> I'm at a bookstore and I picked a book semi-randomly and opened it at a page semi-randomly and it talks about ais523.
00:17:04 <kmc> *blink*
00:17:06 <kmc> wow
00:17:21 <shachaf> I mean, it's a book about computability or something, so not that random.
00:18:13 -!- FreeFull has quit.
01:32:25 -!- oerjan has joined.
01:40:49 <oerjan> ^wiki
01:40:49 <fungot> https://esolangs.org/wiki/
01:46:15 <oerjan> b_jonas: oh right, ed doesn't strictly need a terminal.
01:46:49 <fizzie> oerjan: That one I restored from the logs.
01:46:49 <oerjan> in fact probably doesn't care
01:46:59 <oerjan> fizzie: ah
01:47:22 <oerjan> i saw your message about restoring and wondered how much you'd wiped out
01:47:23 <oerjan> ^show
01:47:24 <fungot> echo reverb rev rot13 rev2 fib wc ul cho choo pow2 source help hw srmlebac uenlsbcmra scramble unscramble asc ord prefixes tmp test celebrate wiki chr ha rainbow rainbow2 welcome me tell eval elikoski list ping def a thanks tmp2 8ball rreree rerere botsnack bf
01:50:23 <oerjan> ^a
01:50:23 <fungot> ............................................................................................................................................................................................................... ...
01:50:28 <oerjan> ^show a
01:50:28 <fungot> +13[.]
01:50:31 <fizzie> There's a wonky thing umlbox does which is to append a ' | cat' to the command line if the stdout of the call isn't a terminal. I assume that's because from the UML command's perspective /dev/tty1 is always a TTY, even when UML has connected it to a pipe/file.
01:51:09 <oerjan> mhm
01:53:44 <fizzie> Hm, I've broken something. :/
01:55:21 <oerjan> NOOOOOOOOOOOOO
01:55:45 <fizzie> `` echo foo; echo bar; echo baz
01:55:46 <HackEso> foo \ bar \ baz
01:55:47 <fizzie> `` echo foo >&2; echo bar >&2; echo baz >&2
01:55:48 <HackEso> foo
01:55:52 <fizzie> That's not right.
01:58:52 <kmc> o_O
01:59:05 <fizzie> Oh, that's right, that's one reason why stdout and stderr ordering was pretty wonky even before: the '| cat' thing only deals with stdout, stderr goes directly to /dev/tty1.
01:59:33 <fizzie> That said, I'm not sure what I managed to break there.
02:02:49 -!- joast has quit (Quit: Leaving.).
02:03:35 <oerjan> `` (echo foo; echo bar; echo baz) >&2
02:03:36 <HackEso> foo
02:03:44 <oerjan> something EOL handling?
02:04:00 <oerjan> `` (echo foo; echo bar; echo baz) >&2; echo fizz
02:04:01 <HackEso> No output.
02:04:09 <fizzie> Mmmaybe. I don't see how though.
02:04:14 <oerjan> huh
02:04:24 <fizzie> I also got two different outputs for the same command before, so there's a race condition somewhere as well.
02:04:26 <oerjan> `` echo buzz; (echo foo; echo bar; echo baz) >&2; echo fizz
02:04:27 <HackEso> foo
02:05:13 <fizzie> I assume it could be the newline translation, it's just odd how that could be affected.
02:07:41 <fizzie> What the hackbot side does is, `p = subprocess.Popen(args, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, close_fds=True); p.stdin.close(); ret = p.stdout.read(1024)`. No matter how the UML process outputs things, they should all still end up in the same pipe.
02:09:33 <shachaf> int-e: Hmm, is something like "non-chronological backjumping" actually mandatory when doing clause learning?
02:09:53 <shachaf> I thought it would be optional but you want to have a reason for every assignment, and if you do regular backtracking, do you even have a reason?
02:09:56 <fizzie> b
02:10:24 <shachaf> Also maybe you're tired of random SAT questions, hmm.
02:11:57 <oerjan> . o O ( do you like random SAT questions? )
02:12:53 -!- joast has joined.
02:15:06 <fizzie> Yeah, IDGI. Running the umlbox command line for 'echo foo; echo bar; echo baz' and 'echo foo >&2; echo bar >&2; echo baz >&2' manually on the same system, with 1>/tmp/out.1 2>/tmp/out.2, there's no difference: both write exactly the same content into.... ohhh, I get it.
02:16:03 <fizzie> The bot does a .read() on the stdout pipe. When you're writing to stderr, it probably gets split to multiple writes, which means it only receives the first line.
02:16:32 <fizzie> But when you write to stdout, it's a fully buffered stream (through the | cat), so it gets the full chunk in one .read().
02:17:12 <oerjan> fiendish
02:20:11 <fizzie> I think I can just wrap it in a io.BufferedReader to fix it. Although I still don't know how it actually broke.
02:23:49 <shachaf> int-e: Wait, maybe I'm just wrong and you can use the conflicting clause.
02:28:59 <fizzie> Hmm, well, it wasn't that simple. It's true that the .read() call only returns the first line, but then a subsequent .read() actually says it's at EOF. How does that make sense? It doesn't make sense.
02:30:02 <fizzie> Maybe it could be non-blocking somehow... although I don't think so.
02:35:02 <fizzie> No, it's not that. If I make umlbox write a line to the file descriptor used before closing it, the bot does read that.
02:35:25 <fizzie> So it's just that somehow the uml terminates before it has written all the output.
02:40:35 <fizzie> Super weird. It also happens outside the bot, if I direct the output to a pipe. Immediately after the first line has been written, it terminates. With no messages.
02:52:44 <oerjan> did this change happen when you upgraded debian, or is there something you actually edited involved?
02:53:25 <oerjan> fizzie: ^
02:53:45 <oerjan> because the latter should at least be bisectable...
02:54:05 <fizzie> Hard to say. People don't usually write to stderr that much. But I can always roll back to an old version and test again.
02:54:24 <fizzie> Right now I'm getting really bizarre behavior out.
02:55:12 <oerjan> just change that | cat to |& cat and call it a day :)
02:56:02 <shachaf> int-e: Wait, now I'm on the train and it doesn't make sense again.
02:56:03 <fizzie> It runs using /bin/sh, it doesn't work there. But I did give that a think.
02:56:16 <fizzie> 2>&1 | cat might work.
02:57:21 <oerjan> shachaf: that reminds me of something. oh right, the "i'm on a horse" meme.
02:57:37 <fizzie> Anyway, the output behaviour is really bizarre. I'm adding printfs here in umlbox init, and only some of them get out, even when I'm not really doing anything special. As soon as it starts to read from the /ubda device, everything goes weird.
02:58:18 <fizzie> I seem to consistently get all the output from the printfs before the first read, whatever that means.
02:59:17 <fizzie> Well, except sometimes I don't get even that.
02:59:26 <shachaf> oerjan: Is that like "I've been through the desert on a horse with no name"?
03:01:19 <fizzie> I think there might just be some sort of a thing where UML has no way to say "flush everything that has been written to the console/serial channels before terminating" when init calls `sync(); reboot(LINUX_REBOOT_CMD_POWER_OFF);` on it.
03:02:54 <oerjan> shachaf: probably{, not}
03:03:10 -!- imode has joined.
03:07:52 <fizzie> FWIW, doing '2>&1 | cat' didn't actually fix it. And anyway it's not strictly related to stderr. Here's the behavior I'm consistently getting when doing something close to what the bot is doing: http://ix.io/22oJ
03:07:56 <fizzie> Does that make any sense?
03:08:55 <fizzie> (No.)
03:10:38 <fizzie> Bah. Maybe I'll try the Debian standard 4.19 UML kernel, instead of my home-built 4.9 one. Although I think there must've been some reason why I built my own.
03:12:01 <shachaf> fizzie: I haven't been reading the whole log. What's with only the first line being printed? Is that the nonsensical thing?
03:12:27 <fizzie> Well, occasionally it's weirder than that, but yes.
03:12:40 <shachaf> When is it weirder?
03:13:05 <fizzie> I don't think I can describe this.
03:13:10 <shachaf> Is this echo the builtin or /bin/echo? Can you strace it?
03:13:20 <shachaf> I'm typing on my phone so everything is scow.
03:13:43 <fizzie> I can't strace UML. I could probably strace inside it, but I'm not sure how much that would help.
03:13:53 <fizzie> Anyway, I switched to the new UML kernel and now it outputs nothing at all.
03:13:57 <fizzie> `echo ping
03:14:00 <HackEso> No output.
03:14:02 <fizzie> Not great.
03:14:31 <shachaf> What if you strace inside it? Is it one write call or three?
03:14:52 <fizzie> Well, I can't, now.
03:15:29 <fizzie> It just crashes with: Trying to reregister IRQ 2 FD 4 TYPE 0 ID (____ptrval____) \ open(rfile, O_RDONLY): Device or resource busy
03:18:00 <fizzie> (This is when it's trying to open the tty1 device.)
03:19:20 <fizzie> Bah, I'll revert back to my own 4.9 version and give up for now. At least it works to some degree. It's not even impossible it's been broken a little like that for long now.
03:21:06 <fizzie> By the way, it was with the echo builtin; with /bin/echo both the plain and | cat version print all lines.
03:22:31 <fizzie> Doing strace inside suggests the plain version is three separate writes, with | cat... well, I don't get the strace output, so it's kind of hard to say.
03:23:05 <shachaf> You can't strace into a file?
03:23:16 <fizzie> And with /bin/echo I get more of the strace output, but not all of it.
03:23:28 <shachaf> Is that bash -c /bin/echo or/bin/echo directly?
03:23:29 <fizzie> I guess I could, I would just need to hostfs mount something in writable form.
03:24:02 <fizzie> bash -c /bin/echo.
03:24:31 <shachaf> Maybe your computer's haunted?
03:26:09 <fizzie> Okay: with bash -c 'echo -e ...', no cat, I get the full output and it got written as three separate writes.
03:27:12 * oerjan suddenly thinks of the non-inheritable fds mentioned yesterday
03:27:25 <fizzie> With bash -c 'echo -e ...' and the cat -- and note that this cat is outside the UML kernel, it's just changing the UML's stdout from a (pseudo)terminal to a pipe -- I only get the first line of output, and it was attempted to be written as three separate writes, but the third failed with EPIPE.
03:27:27 <oerjan> could that be involved?
03:28:45 <shachaf> What is cat seeing? I guess read 5 and then read 0?
03:28:55 <shachaf> EPIPE is odd.
03:29:13 <fizzie> With bash -c /bin/echo, I sometimes get no output at all, and a single write of the whole 15 bytes which fails with EIO.
03:29:38 <fizzie> And occasionally I get the full output, and three separate writes of 5 bytes each.
03:29:49 <shachaf> OK, I'm spooked.
03:30:06 <fizzie> And the last combination, /bin/echo with cat, seems to consistently produce all three lines of output.
03:30:17 <fizzie> Written in a single 15-byte write.
03:30:49 <fizzie> I don't think I've even seen EIO before.
03:30:54 <shachaf> What's closing the pipe?
03:31:16 <oerjan> (gremlins)
03:32:34 <fizzie> The umlbox wrapper script does close the file descriptor, but that's supposedly the write end of the pipe, and anyway should only happen after the UML kernel process has terminated and been wait'd for.
03:32:41 <fizzie> Let me strace that cat on the outside too.
03:32:42 <kmc> EIEIO
03:33:27 <oerjan> <kspalaiologos> `quote 1000 <-- enough quotes have been deleted that numbers aren't remotely stable
03:34:02 <oerjan> . o O ( kmcdonald had a farm )
03:34:54 <kmc> lol
03:34:58 <fizzie> Okay, built-in echo with cat. Saw one line of output. Inside, bash did three write calls of 5 bytes each; first two returned 5, the last returned -1 EPIPE. Outside, the cat did one read(0, "foo1\n", 131072) and got 5 bytes, then the next read returned 0/EOF.
03:36:04 <fizzie> I've no idea what could be closing the pipe. The only people who should even have access to the read end of the pipe would be cat (which doesn't seem to be closing it) and bash (which I assume wouldn't do it without a good reason).
03:36:30 <fizzie> The umlbox wrapper script, and the UML kernel, should only have a file descriptor for the write end.
03:36:35 <oerjan> `doag ../quotes | grep 1000
03:36:38 <HackEso> No output.
03:37:11 <fizzie> Really going to give up for now though. It's late. There's ghosts about.
03:37:16 <oerjan> `` doag ../quotes | paste
03:37:19 <HackEso> https://hack.esolangs.org/tmp/paste/paste.20469
03:38:11 <fizzie> I strongly suspect it's some UML weirdness, after all, init will tell the kernel to power off right after the command finishes. I might need some sort of synchronization mechanism here.
03:38:32 <oerjan> `quote steal.code
03:38:33 <HackEso> No output.
03:38:44 <oerjan> `quote steal..code
03:38:45 <HackEso> 687) <olsner> what a world it would be if you could actually *steal* code so that the other project has to rewrite it or infiltrate your project to steal it back
03:38:59 <oerjan> hm that's older, so it _should_ be in the paste
03:39:08 <fizzie> (Incidentally, sleep is also behaving super-weirdly inside the UML. If I stick a 'sleep 1;' in front, there's never any output. And the sleep durations never seem to actually match the designated amount of seconds.)
03:42:02 <oerjan> i vaguely think someone used sleep in HackEso not that long ago
03:45:53 <oerjan> kspalaiologos: https://esolangs.org/logs/2013-03-30.html#luq
03:46:13 <oerjan> it was actually quote 1000 itself when added
03:46:19 <oerjan> and still not cheating
03:46:53 <shachaf> Maybe you'll understand this better if you draw a UML diagram.
03:47:56 <oerjan> so: we had 1000 quotes back in early 2013, and currently have fewer than 337 more.
03:48:07 <oerjan> `` allquotes | tail -n 1
03:48:10 <HackEso> No output.
03:48:18 <oerjan> what
03:48:47 <oerjan> `` allquote | head -n 1
03:48:48 <HackEso> ​/hackenv/bin/`: line 5: allquote: command not found
03:48:53 <oerjan> `` allquotes | head -n 1
03:48:54 <HackEso> 1) <Slereah> EgoBot just opened a chat session with me to say "bork bork bork"
03:48:57 <fizzie> Maybe that's just more ghosts?
03:49:03 <oerjan> `` allquotes | tail -n 1
03:49:04 <HackEso> 1332) <shachaf> The domain is public, but what's the codomain?
03:49:09 <oerjan> apparently so.
03:49:41 <oerjan> so it's definitely not been that broken for long.
03:50:34 <fizzie> I'll try older versions later.
03:51:31 <fizzie> An alternative solution also occurs to me: instead of trying to use the UML console channels, I could use the block devices. That way there's a chance the sync will make it robust. It's not like I need the interactivety. Although umlbox itself is designed for potential interactive use.
03:52:09 <oerjan> `` allquotes | tail -n 1
03:52:11 <HackEso> 1332) <shachaf> The domain is public, but what's the codomain?
03:52:29 <shachaf> That quote is terrible.
03:52:46 <shachaf> Maybe delete it or pick some other quote to keep quoting?
03:53:10 <oerjan> well i was really just checking how many quotes there were, and then a bug turned up.
03:54:32 <oerjan> ok i did 3 repeats in pm, and the last one failed.
03:54:48 <oerjan> (the second was a little slow.)
03:55:14 -!- imode has quit (Ping timeout: 240 seconds).
03:55:44 <oerjan> maybe it's timing out and it's related to the sleep thing
03:56:16 <oerjan> `cat
03:57:03 <fizzie> That always seems to take more time than the stipulated 30 seconds.
03:57:40 <HackEso> No output.
03:57:47 <oerjan> i was sort of hoping it might time out early and be a clue
03:57:49 <oerjan> `` echo hi; cat
03:57:50 <HackEso> No output.
03:57:54 <oerjan> ooh
03:57:58 <oerjan> so it was
03:58:11 <oerjan> but i had to print something first
03:58:56 <oerjan> fizzie: in case you weren't watching, that last command responded almost instantly
03:59:25 <fizzie> And didn't print the thing.
04:00:03 <fizzie> Shouldn't have anything to do with the timeout though.
04:00:46 <oerjan> no, more the reverse: it shows that it's aborted first.
04:01:52 <oerjan> `` echo hi; echo ho; cat
04:02:10 <oerjan> and now it's going to take the full time i guess
04:02:56 <HackEso> No output.
04:03:04 <oerjan> ...but still didn't print
04:03:16 <oerjan> very random.
04:03:57 <oerjan> `1 quote random
04:03:58 <HackEso> 1/5:
04:04:07 <oerjan> `n 1
04:04:09 <HackEso> 1/5:
04:04:17 <oerjan> `n 1
04:04:18 <HackEso> 1/5:
04:04:21 <oerjan> `n
04:04:22 <HackEso> 2/5:
04:04:24 <oerjan> huh
04:04:41 <shachaf> Probably closing after the first write?
04:05:04 <oerjan> apparently. but it hasn't been doing that since fizzie upgraded debian, has it?
04:05:21 <shachaf> I don't know what's going on at all.
04:05:27 <shachaf> I'm at the airport.
04:09:24 <oerjan> hm i find only one <HackEso> 1/...: response after i asked fizzie about "draft", which i assume was after the upgrade. although that one worked.
04:09:49 <oerjan> `1 stat le
04:09:50 <HackEso> No output.
04:09:54 <oerjan> `1 stat le
04:09:55 <HackEso> 1/1:
04:09:58 <oerjan> `1 stat le
04:10:00 <HackEso> 1/1:
04:10:12 <oerjan> so something changed after that, probably
04:13:43 <oerjan> lately people don't seem to be following the old "show 5 quotes, delete at most 1" tradition, but just deleting things outright, so the quotes db might even continue shrinking.
04:20:55 <fizzie> I don't understand why it would only work for the one write.
04:24:43 <fizzie> `` /bin/echo a; /bin/echo b; /bin/echo c; /bin/echo d; /bin/echo e
04:24:44 <HackEso> a \ b \ c \ d \ e
04:24:48 <fizzie> `` /bin/echo a; /bin/echo b; /bin/echo c >&2; /bin/echo d; /bin/echo e
04:24:49 <HackEso> c
04:25:12 <oerjan> <shachaf> I'm at a bookstore and I picked a book semi-randomly and opened it at a page semi-randomly and it talks about ais523. <-- synchronicity hth
04:25:17 <fizzie> And there's that, which seems to behave very consistently.
04:26:01 <oerjan> `cat spout
04:26:04 <HackEso> No output.
04:26:06 <oerjan> huh
04:26:14 <oerjan> `cat spout
04:26:15 <HackEso> ​ File: le -> /hackenv/le \ Size: 11 Blocks: 0 IO Block: 1024 symbolic link \ Device: 12h/18dInode: 1206924 Links: 1 \ Access: (0777/lrwxrwxrwx) Uid: ( 1000/ UNKNOWN) Gid: ( 1000/ UNKNOWN) \ Access: 2019-11-16 21:29:43.000000000 +0000 \ Modify: 2019-11-16 21:29:43.000000000 +0000 \ Change: 2019-11-16 21:29:43.000000000 +0000 \ Birth: -
04:27:59 <oerjan> `n
04:27:59 <HackEso> 1/1:
04:28:04 <oerjan> `` n
04:28:08 <HackEso> No output.
04:28:10 <fizzie> It would make some sense if it was the "bot framework does only one read, then closes the pipe" issue, but it was clearly receiving EOF right after.
04:28:29 <oerjan> `` n | cat
04:28:30 <HackEso> No output.
04:28:40 <oerjan> `` n | cat
04:28:41 <HackEso> 1/1: File: le -> /hackenv/le \ Size: 11 Blocks: 0 IO Block: 1024 symbolic link \ Device: 12h/18dInode: 1206924 Links: 1 \ Access: (0777/lrwxrwxrwx) Uid: ( 1000/ UNKNOWN) Gid: ( 1000/ UNKNOWN) \ Access: 2019-11-16 21:29:43.000000000 +0000 \ Modify: 2019-11-16 21:29:43.000000000 +0000 \ Change: 2019-11-16 21:29:43.000000000 +0000 \ Birth: -
04:29:20 <fizzie> Is it possible that it gets an eof whenever any executable closes the output pipe, and that's where it decides to stop reading?
04:29:59 <shachaf> fizzie: I was going to ask earlier what happens if cat keeps issuing read calls after the 0.
04:30:08 <shachaf> But I thought that'd be too niche a guess and too annoying to test.
04:30:09 <oerjan> `` 1 echo a; 1 echo b; 1 echo c; 1 echo d; 1 echo e
04:30:21 <HackEso> No output.
04:30:31 <oerjan> `cat spout
04:30:32 <HackEso> No output.
04:30:34 <oerjan> `cat spout
04:30:35 <HackEso> No output.
04:30:37 <oerjan> `cat spout
04:30:37 <HackEso> No output.
04:30:42 <oerjan> `` ls -l spout
04:30:44 <HackEso> No output.
04:30:47 <oerjan> `` ls -l spout
04:30:48 <HackEso> No output.
04:30:51 <oerjan> OH COME ON
04:31:04 <oerjan> `` ls -l spout | cat
04:31:05 <HackEso> ​-rw-r--r-- 1 1000 1000 0 Nov 21 04:30 spout
04:31:18 <oerjan> `` cat spout | cat
04:31:19 <HackEso> No output.
04:31:24 <oerjan> `` cat spout | cat
04:31:25 <HackEso> No output.
04:31:32 <oerjan> `` wc spout
04:31:33 <HackEso> 0 0 0 spout
04:31:35 <oerjan> oh
04:31:54 <oerjan> ok interesting, it failed at writing the spout file
04:34:02 <oerjan> `` (1 echo a; 1 echo b; 1 echo c; 1 echo d; 1 echo e) >/dev/null
04:34:10 <HackEso> No output.
04:34:20 <oerjan> `cat spout
04:34:21 <HackEso> No output.
04:34:27 <oerjan> `` wc spout
04:34:27 <HackEso> 0 0 0 spout
04:34:37 <oerjan> hum
04:35:01 <oerjan> that means that command failed somewhere, despite never printing to stdout
04:35:58 <oerjan> `` { 1 echo a; 1 echo b; 1 echo c; 1 echo d; 1 echo e } >/dev/null
04:35:59 <HackEso> ​/hackenv/bin/`: eval: line 6: syntax error: unexpected end of file
04:36:19 <oerjan> hum
04:36:34 <oerjan> `` (1 echo a) >/dev/null
04:36:35 <HackEso> No output.
04:36:36 -!- kspalaiologos has quit (Ping timeout: 240 seconds).
04:36:39 <oerjan> `cat spout
04:36:40 <HackEso> No output.
04:36:52 <oerjan> oh wait duh
04:37:45 <oerjan> `` 1 'echo a'; 1 'echo b'; 1 'echo c'; 1 'echo d'; 1 'echo e'
04:37:47 <HackEso> 1/1:a \ 1/1:b \ 1/1:c \ 1/1:d \ 1/1:e
04:38:01 <oerjan> darn
04:38:09 <oerjan> `cbt 1
04:38:10 <HackEso> ​\` "$@" |& sport
04:38:31 <oerjan> hum that should pass on everything
04:38:35 <oerjan> `cbt `
04:38:35 <HackEso> ​#!/bin/bash \ cmd="${1-quote}" \ TIMEFORMAT="real: %lR, user: %lU, sys: %lS" \ shopt -s extglob globstar \ eval -- "$cmd" | rnooodl
04:39:28 <oerjan> `slbd `//s,1,@,
04:39:30 <HackEso> ​`//#!/bin/bash \ cmd="${@-quote}" \ TIMEFORMAT="real: %lR, user: %lU, sys: %lS" \ shopt -s extglob globstar \ eval -- "$cmd" | rnooodl
04:39:37 <oerjan> `` echo hi
04:39:37 <HackEso> hi
04:40:07 <oerjan> `` 1 echo a; 1 echo b; 1 echo c; 1 echo d; 1 echo e
04:40:15 <HackEso> No output.
04:40:23 <fizzie> I'll try to roll back the live version to the post-Debian-upgrade-before-refactoring one.
04:40:25 <oerjan> or not.
04:40:48 <oerjan> `` 1 echo a; 1 echo b; 1 echo c; 1 echo d; 1 echo e
04:40:51 <HackEso> No output.
04:41:06 <oerjan> `` \` echo hi
04:41:06 <HackEso> hi
04:41:14 <oerjan> ok seems to work
04:41:41 <oerjan> `` 1 echo hi
04:41:42 <HackEso> 1/1:hi
04:42:03 <oerjan> `` 1 echo a; 1 echo b; 1 echo c; 1 echo d; 1 echo e
04:42:10 <HackEso> 1/1:a \ 1/1:b \ 1/1:c \ 1/1:d \ 1/1:e
04:42:27 <oerjan> `cat spout
04:42:27 <HackEso> e
04:43:18 <fizzie> `` /bin/echo a; /bin/echo b; /bin/echo c >&2; /bin/echo d; /bin/echo e
04:43:19 <HackEso> c \ a \ b \ d \ e
04:43:25 <oerjan> ok that was just me being stupid but now 1 and ` are a bit more resilient in shell
04:43:26 <fizzie> Well, there's clearly some difference there.
04:43:45 <fizzie> Oh well, at least I can bisect for it then. But not today.
04:43:53 <fizzie> Need to wake up in four hours.
04:44:06 <oerjan> sweet dreams
04:49:16 <kmc> `` url $(which 1)
04:49:17 <HackEso> https://hack.esolangs.org/repo/file/tip/bin/1
04:52:52 -!- TellsTogo has joined.
04:56:34 <kingoffrance> for a second it almost looked like the "tip" command was in operation, in all its glory :/
04:56:46 <kingoffrance> alas, just a directory name
04:59:20 <esowiki> [[User:Quadril-Is]] https://esolangs.org/w/index.php?diff=67294&oldid=67134 * Quadril-Is * (+14)
05:07:31 <oerjan> fungot: do you have any tips?
05:07:31 <fungot> oerjan: it's always hard for me to go function by function?
05:29:41 <oerjan> `? tip
05:29:42 <HackEso> A tip is [ $ ] if you're American, [ £ ] if you're British, and if you're Japanese.
06:14:50 -!- TellsTogo has quit (Remote host closed the connection).
06:25:56 <int-e> shachaf: AFAIUI the connection is that the backjump clause used for backjumping is a promising clause to learn (a nontrivial consequence of the existing clauses). But you don't have to use it for backjumping.
06:27:10 <int-e> shachaf: Actually, nontrivial and at least marginally useful... it would have detected the conflict at hand one or more decisions earlier.
06:45:30 -!- tromp has quit.
07:32:14 -!- oerjan has quit (Quit: Nite).
08:00:57 <int-e> shachaf: Hmm, actually there is a far simpler way to get /some/ learnable clause: Collect the negation of all decision literals on the trail. Presumably it's not very effective (for that clause to be applicable, you need to have all but one of those literals on the trail again, though possibly in a different order. With pure backtracking (no backumping, no restarts) that will never happen!)
08:03:03 <int-e> So one way of viewing the backjump clause is as a way of identifying relevant literals for the current conflict.
08:09:14 <int-e> . o O ( Hmm. Fun though incorrect attempt of framing this: CDCL solvers are SAT modulo unit propagation solvers, and backjump are unsatisfiable cores. )
08:09:37 <int-e> s/backjump/backjump clauses/
08:10:04 <int-e> (complements of unsatisfiable cores, of course)
08:20:43 -!- zzo38 has quit (Ping timeout: 245 seconds).
08:29:42 <esowiki> [[Treesolang]] https://esolangs.org/w/index.php?diff=67295&oldid=67274 * Baidicoot * (+651) added IO
08:30:17 <b_jonas> so HackEso has grown mysterious bugs?
08:33:30 <shachaf> int-e: So the first time my friend I were trying to figure out CDCL, we just started writing code, starting with a really simple DPLL solver and demorganizing the trail to learn clauses.
08:34:10 <shachaf> It was only when we saw that it changed literally nothing about the behavior of the solver that we thought about it for a few seconds and realized it was ridiculous.
08:36:04 <int-e> heh it probably made it slower ;)
08:36:48 <shachaf> I mean, it was written in Python.
08:36:50 <int-e> Maybe I should implement a SAT solver. But to what end...
08:36:53 <shachaf> So it was already maximally slow.
08:37:18 <shachaf> int-e: Anyway, when you do something like FirstUIP, you need a "reason" for each assignment (other than decisions).
08:37:57 <shachaf> If you do the typical backtracking thing (invert the last decision and mark it as a forced literal), you don't have a clause to point to as the reason for the new assignment. Do you?
08:39:39 <int-e> True, you'd have to derive the corresponding backjump clause (LastUIP)
08:40:23 <shachaf> Oh, you can keep resolving on units from this level until your clause includes the decision literal, you mean.
08:40:47 <int-e> yeah, since that's how backjumping simulates backtracking
08:41:26 <shachaf> Right. I guess I can do that.
08:41:54 <shachaf> I implemented CDCL and FirstUIP on the flight (no clause deletion, just allocating enough memory for all the learned clauses).
08:42:27 <shachaf> It made the number of decisions and units go way down, but the solver also takes much much longer.
08:42:52 <shachaf> Which seems like a great tradeoff, since I hate making decisions.
08:44:03 <int-e> Yeah deleting clauses is very important for performance. Which is awful because it's another open-ended playing field for heuristics.
08:44:44 -!- kspalaiologos has joined.
08:45:45 <kspalaiologos> =str 0s +[----->+++<]>+.++++++++++++..----.+++.+[-->+<]>.-----------..[--->+<]>.[--->+<]>----.----.---.-----------.+++++++++++++.-------.++++++++++++.+[++>---<]>.---[----->+<]>.+++.-----------.--[->+++<]>.++[--->++<]>+.+[->+++<]>+.++.--.----[->+++<]>.
08:45:45 <bfbot> ok
08:46:05 <kspalaiologos> =str 0a [,.]
08:46:05 <bfbot> ok
08:46:11 <kspalaiologos> =def 0wiki
08:46:12 <bfbot> ok, defined 'wiki'
08:46:17 <kspalaiologos> =wiki bfbot
08:46:18 <bfbot> ..............................................................................bfbot
08:46:26 <kspalaiologos> Oh gosh damn it man
08:46:30 <kspalaiologos> What happened
08:46:36 <shachaf> int-e: Why is it important?
08:46:40 <kspalaiologos> 8bit cells?
08:46:44 <shachaf> I thought it was just for keeping memory use fixed.
08:46:55 <shachaf> But even with 2WL you spend way too much time checking clauses, or something?
08:46:55 <kspalaiologos> `bf_textgen x
08:46:56 <HackEso> ​/srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: bf_textgen: not found
08:47:04 <kspalaiologos> ``` bf_textgen
08:47:05 <HackEso> bash: bf_textgen: command not found
08:47:14 <kspalaiologos> Where is it located
08:47:36 <kspalaiologos> I need to add bitness to the wiki page because I forgot it
08:49:00 <int-e> shachaf: Hmm, many reasons, from growing 2WL lists to worse locality of memory access. And a lot of clauses turn out to be useless (for example, because they are subsumed by other clauses, or because while they do contribute to conflicts, those are exceedingly rare).
08:50:24 <shachaf> Right, one thing I ws thinking was that before doing CDCL I almost don't have to wory about cache locality, but once I have an unbnded number of clauses I have to worry a lot.
08:50:31 <int-e> The average 2WL list grows linearly with the number of clauses.
08:51:56 <int-e> (Very naive estimate: 2 times number of clauses divided by number of literals. It's probably better in practice because clauses can end up on watch lists of literals that are never considered.)
08:52:18 -!- b_jonas has quit (Quit: leaving).
08:52:20 * int-e shrugs
08:52:42 <int-e> That "probably" is a fairly wild guess. I have no data.
08:52:50 <shachaf> Ideally watches move to and stay on literals you don't assign as much.
08:53:11 <shachaf> Or whose negation you don't assign as much, anyway.
08:53:43 <int-e> The way I think of it, I'd put A v B on the watch lists for ~A and ~B.
08:54:24 <shachaf> I mean, where you put the negation doesn't matter.
08:54:30 <int-e> But I don't know what's standard here...
08:54:32 <int-e> Yeah.
08:54:50 <int-e> I understood what you said.
08:55:02 <int-e> Or wrote. Whatever.
08:55:40 <shachaf> Clause collection seems hard.
08:55:51 <shachaf> By which I mean you have to make a lot of decisions.
08:58:07 <int-e> Yeah I'm afraid this is where you read another half dozen papers.
09:00:02 <int-e> There are some obvious statistics like length of clause, how often clauses are used in unit propagation (possibly per level though that'd be a serious amount of memory, so hard to justify. maybe if you assign weights to the levels?)...
09:00:13 <shachaf> OK, some of these learned clauses are pretty bad, now that I look at them.
09:00:58 <shachaf> One of the is a unit!
09:01:22 <shachaf> Man, when you learn a unit, I bet you can just delete all the relevant clauses etc. out of your database when you restart.
09:01:32 <int-e> Okay, if you learn a unit clause you have a clear way of pruning the clauses :)
09:01:50 <shachaf> It's kind of an odd property of CDCL that you can't do that in general.
09:01:57 <shachaf> (When normally you think of DPLL as solving subproblems.)
09:02:30 <int-e> You can check for clause subsumption... just not efficiently ;)
09:02:41 <int-e> (Maybe I'm not imaginative enough.)
09:03:27 <int-e> Even if you learn a unit clause it's not entirely clear how to deal with that efficiently.
09:03:57 <shachaf> Why?
09:04:00 <int-e> (If you want to avoid scanning *all* clauses. Maybe just go through that literal's watch lists?)
09:04:14 <int-e> (But then you have to do that periodically.)
09:04:15 <shachaf> Oh, I was thinking to just go through the watch list.
09:04:32 <shachaf> But also scanning all clauses up to num_vars times doesn't seem that bad.
09:04:48 <shachaf> Maybe the clause database gets really big, or real-world SAT problems have a large number of variables.
09:05:14 <int-e> I'm sure both of these happen.
09:06:01 <shachaf> But you can probably do it opportunistically reasonably well.
09:06:15 <shachaf> I mean, if you're learning a lot of units, you're doing pretty well, I'd hope.
09:07:03 <int-e> Anyway, all these decisions is why I don't really want to write a SAT solver. (I have no expectation of improving the state of the art, and I wouldn't expect to learn all that much either...)
09:30:58 <shachaf> Does it make sense to resolve on the same variable twice while doing LastUIP?
09:31:10 <shachaf> I should get some paper and figure out what's going on with my life.
09:32:11 <int-e> shachaf: not really? I mean the resolved variable is on the trail, which should not have any duplicates?
09:33:04 <shachaf> Oh, that's not what's going on.
09:33:23 <shachaf> What's going on is that I want to add a variable to the trail from one that was previously resolved on from another clause?
09:33:29 <shachaf> Hmm.
09:34:06 <int-e> Oh. That may happen.
09:34:34 <shachaf> But then I don't want to resolve on it again. So the second time I should add it to the non-resolvable pool?
09:34:46 <int-e> Are you sure you don't want to do that?
09:34:51 <shachaf> I feel like I'm making this too complicated.
09:35:02 <shachaf> You just said it doesn't make sense to resolve on it again.
09:35:38 <int-e> I mean, resolution proofs /must/ typically resolve on the same variable several times for completeness.
09:36:07 <int-e> shachaf: No, *I* said that it doesn't happen when finding a backjump clause.
09:36:18 <int-e> But that's ignoring the history of the clauses involved in that.
09:38:57 <int-e> So we talked past each other for a bit, because apprently you care about that history. I'm inclined to say that you shouldn't care.
09:41:26 <shachaf> I'm not sure what you mean.
09:45:41 <int-e> shachaf: When deriving a backjump clause by going back through the trail and resolving the conflict clause with the reason given for each literal, you will not resolve on the same variable twice because the variable you resolve on corresponds to the literal on the trail, and the trail is supposed to be free of duplicates and conflicting literals.
09:46:45 <int-e> shachaf: it's only when you look into the derivation of the referred clauses (if they're learned clauses) that you may be resolving on the same variable more than once.
09:47:11 <shachaf> Wait, how do you resolve through the trail?
09:48:10 <shachaf> What I do for FirstUIP is: Take the all-false clause; take a unit-propagated literal from it, and find the clause it was propagated from; resolve it with that clause to get a bigger clause.
09:48:39 <shachaf> And keep doing that with the new clause until there's only one literal from this level in it.
09:49:30 <int-e> Yes. The unit-propagated literal is from the trail. The variable you resolve on corresponds to that literal.
09:50:19 <int-e> Maybe I'm begin stupid but I see no reason why you'd involve the same literal twice in the conflict analysis.
09:50:37 <shachaf> Sure, it's from the trail, but you don't find it by just looking back through the trail, do you?
09:50:43 <shachaf> Hmm.
09:51:22 <shachaf> Maybe you just do?
09:51:26 <int-e> Note: When a literal is derived by unit propagation using a clause C, *all* variables of C are on the trail at that point. You can't re-introduce variables that come later on the trail by resolving with C.
09:51:37 <shachaf> Maybe the code I wrote was way too complicated.
09:52:37 <int-e> So as long as you pick the /last/ literal of the conflict clause from the trail (that is, the one that comes last on the trail) and its corresponding clause to resolve with, you will not resolve on the same variable twice.
09:53:05 <shachaf> Ah, but I'm just picking an arbitrary one.
09:53:27 <shachaf> Now what you said makes more sense.
09:53:36 <int-e> Then I'm not sure. But don't you risk missing the last UIP then?
09:53:55 <shachaf> Do you still find the first UIP?
09:54:27 <int-e> Oh right we're looking from the end of the trail. So I mean first.
09:54:49 <int-e> The last UIP can't be missed, it's the backtracking case.
09:56:55 <int-e> Take what I'm saying with a grain of salt... I'm missing technical details of how conflict analysis is really done. I have a pen&paper view on how backjump clauses are supposed to work.
09:58:01 <int-e> But that view definitely involves going through the trail in a backwards fashion. But maybe that's for convenience and not out of necessity.
09:58:48 <shachaf> I think what you say makes more sense than what I was thinking.
09:59:22 <shachaf> I was just picking an arbitrary unit each time.
09:59:34 <shachaf> I mean arbitrary unit-propagated literal from this level.
09:59:52 <shachaf> Now I need to think about how to implement the thing you said and some other things.
09:59:59 <shachaf> Probably not today.
10:04:03 <int-e> shachaf: out of curiosity, which imperfect programming language are you using for this?
10:04:22 <shachaf> C.
10:05:45 <int-e> Hmm. Fun. I expected C++ or Rust (well, no, but those are the ones I'd consider if I'd embark on this journey.)
10:06:47 -!- wib_jonas has joined.
10:06:48 <int-e> (C++ mostly for sane namespaces... and probably vectors out of laziness)
10:07:12 <shachaf> I did give in and use https://github.com/nothings/stb/blob/master/stb_ds.h at one point.
10:07:14 <myname> int-e: out of curiosity, which programming language is not imperfect?
10:07:18 <int-e> Not for inheritance, virtual methods, exceptions, or templates.
10:07:22 <int-e> myname: Brainfuck.
10:07:28 <myname> how so
10:07:43 <shachaf> int-e: Vectors are great for SAT solvers because there's a lot of linear algebra involved.
10:07:53 <int-e> myname: There's this quote. "There are two kind of programming languages. Those that everybody complains about and those that nobody uses."
10:08:05 <int-e> myname: Brainfuck is pretty much perfect for what it does.
10:08:18 <myname> int-e: in this case, malbolge would be a lot better
10:08:32 <int-e> No, Malbolge is overcomplicated. :P
10:08:46 <shachaf> I'm using these dynamic arrays for watch lists. But I suspect I'll replace them with some other data structure anyway eventually.
10:08:58 <myname> but a lot of people are "using" brainfuck
10:09:21 <int-e> myname: The original purpose of Brainfuck was not to make programming hard. The purpose was to allow writing small compiler.
10:09:33 <int-e> +a
10:10:33 <int-e> shachaf: I'm not sure to what extend you're kidding about the linear algebra.
10:10:50 <int-e> *extent
10:11:18 <shachaf> I think std::vector is useful because I often want to apply scalar multiplication to my arrays.
10:11:45 <int-e> myname: The "imperfect" was an oblique reference to earlier discussions with shachaf about whether there are any good programming languages out there.
10:12:06 <int-e> myname: We have yet to find one.
10:12:25 <myname> what about lambda calculus=
10:12:27 <myname> ?
10:13:09 <int-e> We can't even agree on whether Haskell is a good programming language.
10:13:44 <shachaf> Good for what?
10:13:50 <int-e> (I think yes. shachaf complains about the huge performance overheads. I can't say that he's wrong, it's just not the primary thing I'm looking for in a programming language most of the time.)
10:14:38 <shachaf> I don't think that's the only thing I complain about.
10:15:35 <int-e> myname: Lambda calculus is a nice Turing tarpit, and somewhat surprisingly scales up to real programming (according to some people) if you add types, data types, and a few other things.
10:15:50 <shachaf> Can you give me a nice definition of PTIME and PSPACE for lambda calculus?
10:16:53 <int-e> Sure, just use a graph model and measure term size and count reduction steps.
10:16:59 <int-e> Maybe that's not nice enough for you.
10:18:01 <shachaf> Turing machines are obviously scow to program on.
10:18:02 <int-e> (Hmm, I may have to go the explicit substituition route.)
10:18:04 * int-e shrugs.
10:18:08 <myname> int-e: well, typed lambda calculus is not that far away from haskell, isn't it?
10:18:25 <shachaf> But at least Turing machines are in spirit similar to actual machines.
10:18:25 <int-e> myname: what did you think I meant by "real programming"? :P
10:19:21 <myname> okay
10:19:54 <wib_jonas> int-e: "term size" how? count the nodes with reusable reference-counted nodes, or serialize the expression so you can blow up space usage exponentially in time?
10:20:23 <wib_jonas> oh, you said graph model
10:20:39 <wib_jonas> so the former
10:21:22 <shachaf> Do you like stb_ds.h?
10:21:22 <int-e> tbh, graph models are not very nice from a theoretical perspective.
10:21:59 <int-e> If you really want to go *that* route maybe drop the lamdba calculus and do interaction nets instead.
10:22:00 <myname> petri nets!
10:22:22 <int-e> no, not petri nets
10:22:44 <myname> :(
10:27:04 <int-e> . o O ( I prefer multiset rewriting ;-) )
10:28:21 <shachaf> ⟅1,1,2⟆
10:28:44 <int-e> unordered string rewrting = multiset rewriting = Petri nets if you interpret the symbols as places and the rules as transitions.
10:29:44 <wib_jonas> ⦃1,1,2⦄
11:00:13 -!- kritixilithos has joined.
11:51:31 <kspalaiologos> =list
11:51:31 <bfbot> 8ball echo f msg1 simple wiki
11:51:39 <kspalaiologos> =wiki xd
11:51:39 <bfbot> ..............................................................................xd
11:51:48 <kspalaiologos> I need to set bitness
11:52:02 <kspalaiologos> But I forgot how to do it
11:52:08 <kspalaiologos> =f
11:52:13 <kspalaiologos> =f aaa
11:52:19 <kspalaiologos> =simple
11:52:19 <bfbot> simple
11:54:21 <kspalaiologos> I need to update bfbot docs though on the wiki
12:12:20 -!- kritixilithos has quit (Ping timeout: 260 seconds).
12:12:26 -!- xkapastel has joined.
12:18:53 -!- arseniiv has joined.
12:53:50 <fizzie> @tell oerjan Well, I fixed it, but I don't know why. Something to do with using a host-side opened /dev/null fd instead of the UML 'null' channel for some inputs/outputs. I don't want to think about it any more.
12:53:50 <lambdabot> Consider it noted.
12:59:07 <wib_jonas> fizzie: nice
13:01:35 -!- wib_jonas has quit (Remote host closed the connection).
13:09:58 -!- kritixilithos has joined.
13:46:13 <esowiki> [[Bfbot]] M https://esolangs.org/w/index.php?diff=67296&oldid=67265 * Palaiologos * (+265)
13:46:35 <esowiki> [[Bfbot]] M https://esolangs.org/w/index.php?diff=67297&oldid=67296 * Palaiologos * (+24)
13:47:38 -!- kspalaiologos has quit (Quit: Quit).
13:50:06 -!- kspalaiologos has joined.
13:50:47 <kspalaiologos> Greetings
13:50:59 <kspalaiologos> =help
13:50:59 <bfbot> bfbot is a bot executing brainfuck natively. You may add your very own commands to the bot.
13:50:59 <bfbot> Commands: =str =def =undef =list =plist =doc. More help at https://esolangs.org/wiki/bfbot
13:58:10 <kritixilithos> =list
13:58:10 <bfbot> 8ball echo f msg1 simple wiki
13:58:17 <kritixilithos> =plist
13:58:17 <bfbot> 8ball echo f msg1 simple wiki
13:58:49 <kritixilithos> =doc msg1
13:58:49 <bfbot> Error: no documentation for msg1.
13:59:01 <kritixilithos> =msg1 test
13:59:01 <bfbot> @APQ`apq....
13:59:01 <lambdabot> Unknown command, try @list
14:00:02 <kspalaiologos> =help
14:00:02 <bfbot> bfbot is a bot executing brainfuck natively. You may add your very own commands to the bot.
14:00:02 <bfbot> Commands: =str =def =undef =list =plist =doc. More help at https://esolangs.org/wiki/bfbot
14:00:35 <kspalaiologos> =str 0s >++++++++++>+>+[[+++++[>++++++++<-]>.<++++++[>--------<-]+<<<]>.>>[[-]<[>+<-]>>[<<+>+>-]<[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>[-]>+>+<<<-[>+<-]]]]]]]]]]]+>>>]<<<]
14:00:35 <bfbot> ok
14:00:49 <kspalaiologos> =def 0fib
14:00:49 <bfbot> ok, defined 'fib'
14:00:51 <kspalaiologos> =fib
14:00:51 <bfbot> 011235813213455891442333776109871597258441816765109461771128657463687502512139319641831781151422983204013462692178309352457857028879227465149303522415781739088169632459861023341551655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025203650110743295128009953
14:01:05 <kspalaiologos> =list
14:01:05 <bfbot> 8ball echo f fib msg1 simple wiki
14:01:15 <kspalaiologos> =8ball test 123
14:01:15 <bfbot> It is certain.
14:01:55 <kspalaiologos> =8ball anything
14:01:56 <bfbot> My reply is no.
14:02:12 <kspalaiologos> =8ball A0
14:02:12 <bfbot> Yes - definitely.
14:03:17 <kspalaiologos> =list
14:03:17 <bfbot> 8ball echo f fib msg1 simple wiki
14:03:22 <kspalaiologos> =echo test
14:03:23 <bfbot> test
14:03:25 <kritixilithos> what does msg1 do?
14:03:32 <kspalaiologos> let's check
14:03:33 <kspalaiologos> =msg1
14:03:33 <bfbot> @APQ`apq....
14:03:33 <lambdabot> Unknown command, try @list
14:03:37 <kspalaiologos> oerjan possibly defined it
14:04:08 <kritixilithos> =msg1 oerjan
14:04:08 <bfbot> @APQ`apq....
14:04:09 <lambdabot> Unknown command, try @list
14:04:26 -!- sprocklem has quit (Ping timeout: 240 seconds).
14:04:53 <kspalaiologos> fungot, tell me something
14:04:53 <fungot> kspalaiologos: yep :) by the time i get is a single print statement... i've got quite the system in the next version of gambit is out real soon now
14:11:02 -!- kritixil1 has joined.
14:11:26 <kritixil1> oops why are there two of me
14:12:02 -!- arseniiv has quit (Ping timeout: 240 seconds).
14:12:39 <esowiki> [[Asm2bf]] https://esolangs.org/w/index.php?diff=67298&oldid=67292 * Palaiologos * (+2181) Gisa part
14:12:44 -!- kritixilithos has quit (Ping timeout: 260 seconds).
14:12:47 -!- kritixil1 has quit (Client Quit).
14:13:09 -!- kritixilithos has joined.
14:13:29 -!- wib_jonas has joined.
14:13:54 <wib_jonas> kspalaiologos: no, I defined msg1 to experiment with the bot, since defining a command seems to be the easiest way to do that
14:14:12 <wib_jonas> I just defined various different temporary bf snippets to that command, and didn't bother deleting it
14:14:26 <wib_jonas> I wanted to check if the bot still isn't willing to print any non-ascii bytes
14:14:35 <wib_jonas> and apparently it still isn't
14:18:41 <kspalaiologos> I will patch it
14:18:54 <kspalaiologos> but I have added a new feature today
14:19:00 <kspalaiologos> check the bot wiki page
14:19:45 <kspalaiologos> =str 0s 3+[----->+++<]>+.++++++++++++..----.+++.+[-->+<]>.-----------..[--->+<]>.[--->+<]>----.----.---.-----------.+++++++++++++.-------.++++++++++++.+[++>---<]>.---[----->+<]>.+++.-----------.--[->+++<]>.++[--->++<]>+.+[->+++<]>+.++.--.----[->+++<]>.[,.]
14:19:45 <bfbot> ok
14:19:50 <kspalaiologos> =def 0wiki
14:19:51 <bfbot> ok, defined 'wiki'
14:19:53 <kspalaiologos> =wiki bfbot
14:19:53 <bfbot> ..............................................................................bfbot
14:19:59 <kspalaiologos> gosh damn it man
14:20:02 <kspalaiologos> why does it happen
14:20:12 -!- arseniiv has joined.
14:20:59 <kspalaiologos> =str 0s
14:20:59 <kspalaiologos> ++++++++[>+>++>+++>++++>+++++>++++++>+++++++>++++++++>+++++++++>++++++++++>+++++++++++>++++++++++++>+++++++++++++>++++++++++++++>+++++++++++++++>++++++++++++++++<<<<<<<<<<<<<<<<-]>>>>>>>>>>>>>.<<<<<<<<<<<<<>>>>>>>>>>>>>>>----.++++<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>----.++++<<<<<<<<<<<<<<<>>>>>>>>>>>>>>.<<<<<<<<<<<<<<>>>>>>>>>>>>>>+++.---<<<<<<<<<<<<<<>>>>>>>++.--<<<<<<<>>>>>>-.+<<<<<<>>>>>>-.+<<<<<<>>>>
14:20:59 <bfbot> ok
14:21:06 <kspalaiologos> >>>>>>>>>---.+++<<<<<<<<<<<<<>>>>>>>>>>>>>>+++.---<<<<<<<<<<<<<<>>>>>>>>>>>>>>-.+<<<<<<<<<<<<<<>>>>>>>>>>>>>>----.++++<<<<<<<<<<<<<<>>>>>>>>>>>>+.
14:21:09 <kspalaiologos> damn tooo long
14:21:41 <kspalaiologos> =str 0s ++++++++[>+>++>+++>++++>+++++>++++++>+++++++>++++++++>+++++++++>++++++++++>+++++++++++>++++++++++++>+++++++++++++>++++++++++++++>+++++++++++++++>++++++++++++++++<<<<<<<<<<<<<<<<-]>>>>>>>>>>>>>.>>----.++++----.++++<.+++.---<<<<<<<++.--<-.+-.+>>>>>>>---.+++>+++.----.+----.++++<<+.->>--.++<-.+>+++.---<<<<<<<<--.++>>>>>>>>-.+++.--<-.+<<<<<<<-.+>>>>>>>>>-.+<<+.-+++.---+.-<<<<<<<-.+<<<<<<.
14:21:42 <bfbot> ok
14:21:47 <kspalaiologos> =def 0wiki
14:21:48 <bfbot> ok, defined 'wiki'
14:21:50 <kspalaiologos> =wiki please work
14:21:50 <bfbot> https://esolangs.org/wiki/
14:21:53 <kspalaiologos> kinda
14:21:57 <kspalaiologos> =str 0a [,.]
14:21:57 <bfbot> ok
14:22:00 <kspalaiologos> =def 0wiki
14:22:00 <bfbot> ok, defined 'wiki'
14:22:02 <kspalaiologos> =wiki bfbot
14:22:02 <bfbot> https://esolangs.org/wiki/
14:22:09 <kspalaiologos> that's kinda pants
14:22:20 <kspalaiologos> =str 0a ,[.,]
14:22:20 <bfbot> ok
14:22:23 <kspalaiologos> =def 0wiki
14:22:23 <bfbot> ok, defined 'wiki'
14:22:26 <kspalaiologos> =wiki bfbot
14:22:26 <bfbot> https://esolangs.org/wiki/bfbot
14:22:28 <kspalaiologos> yay
14:22:40 <kspalaiologos> so you can check this page as it contains new features
14:22:42 -!- kspalaiologos has quit (Quit: Lost terminal).
15:01:37 -!- sprocklem has joined.
15:12:04 -!- kspalaiologos has joined.
15:16:15 <esowiki> [[User talk:Palaiologos]] https://esolangs.org/w/index.php?diff=67299&oldid=67260 * Palaiologos * (+156)
15:39:51 <esowiki> [[Brainfuck]] M https://esolangs.org/w/index.php?diff=67300&oldid=67293 * Palaiologos * (+1) Dead link?
15:56:47 <kspalaiologos> `asmbf db_ 2/db_ 3/rcl r1,1
15:56:48 <HackEso> ​+>+[<[>>+>+<<<-]>>[<<+>>-]>[[-]>>>>>>>>>>>>>>>>>++>>+++<<<<<<<<<<<<<+<<<<[-]>>>>[<<<<<+>>>>>>>>>>+>>>>>+<<<<<<<<<<-]<<<<<[>>>>>+<<<<<-]>>>>>>>>>>>>>>>[[>>]+[<<]>>-]+[>>]<[<[<<]>+<<<<<<<<<<<<<+>>>>>>>>>>>>>>[>>]<-]<[<<]>[>[>>]<+<[<<]>-]>[>>]<<[-<<]><<<<<<<<<[-]<<<<<<]<<<[>>+>+<<<-]>>[<<+>>-]>[[-]<<<[-]>[-]>>]<<]
15:57:37 <kspalaiologos> `asmbf db_ 2/db_ 3/raw .*/rcl r1,1/raw .*
15:57:37 <HackEso> ​+>+[<[>>+>+<<<-]>>[<<+>>-]>[[-]>>>>>>>>>>>>>>>>>++>>+++*<<<<<<<<<<<<<+<<<<[-]>>>>[<<<<<+>>>>>>>>>>+>>>>>+<<<<<<<<<<-]<<<<<[>>>>>+<<<<<-]>>>>>>>>>>>>>>>[[>>]+[<<]>>-]+[>>]<[<[<<]>+<<<<<<<<<<<<<+>>>>>>>>>>>>>>[>>]<-]<[<<]>[>[>>]<+<[<<]>-]>[>>]<<[-<<]><<<<<<<<<[-]*<<<<<<]<<<[>>+>+<<<-]>>[<<+>>-]>[[-]<<<[-]>[-]>>]<<]
16:02:12 -!- xkapastel has quit (Quit: Connection closed for inactivity).
16:23:01 <kspalaiologos> I came into realisation
16:23:07 <kspalaiologos> that I spent this much time on codegolf
16:23:07 <kspalaiologos> https://github.com/KrzysztofSzewczyk/codegolf-submissions
16:23:15 <kspalaiologos> 0x40 submissions
16:31:32 <kspalaiologos> `asmbf sto r1, 2
16:31:33 <HackEso> ​+>+[<[>>+>+<<<-]>>[<<+>>-]>[[-]>>>>>>++<<<<[<+>>>>>>>>>>>>>>>+<<<<<<<<<<<<<<-]<[>+<-]>>>>>[<<<<<+>>>>>>>>>>>>>>+<<<<<<<<<-]<<<<<[>>>>>+<<<<<-]>>>>>>>>>>>>>>>[[>>]+[<<]>>-]+[>>]<[-]<[<<]>[>[>>]<+<[<<]>-]>[>>]<<[-<<]><<<<<<<<<[-]<<<<<<]<<<[>>+>+<<<-]>>[<<+>>-]>[[-]<<<[-]>[-]>>]<<]
16:31:45 <kspalaiologos> `asmbf db_ 5/sto r1, 2
16:31:46 <HackEso> ​+>+[<[>>+>+<<<-]>>[<<+>>-]>[[-]>>>>>>>>>>>>>>>>>+++++<<<<<<<<<<<++<<<<[<+>>>>>>>>>>>>>>>+<<<<<<<<<<<<<<-]<[>+<-]>>>>>[<<<<<+>>>>>>>>>>>>>>+<<<<<<<<<-]<<<<<[>>>>>+<<<<<-]>>>>>>>>>>>>>>>[[>>]+[<<]>>-]+[>>]<[-]<[<<]>[>[>>]<+<[<<]>-]>[>>]<<[-<<]><<<<<<<<<[-]<<<<<<]<<<[>>+>+<<<-]>>[<<+>>-]>[[-]<<<[-]>[-]>>]<<]
16:38:51 -!- mint_ has joined.
16:40:01 <kspalaiologos> I'm working on https://github.com/KrzysztofSzewczyk/asmbf/pull/28 now
16:40:17 <kspalaiologos> so the memory I/O and stack operations will be a whole lot faster.
16:40:21 <kspalaiologos> and smaller by a half
16:42:10 -!- mint_ has left.
16:51:04 -!- wib_jonas has quit (Remote host closed the connection).
17:07:45 -!- lf94 has left ("WeeChat 2.4").
17:10:20 -!- kspalaiologos has quit (Quit: Leaving).
17:13:26 -!- Preacher883 has joined.
17:14:38 -!- kspalaiologos has joined.
17:16:42 -!- Preacher883 has left.
17:36:59 <esowiki> [[Graverage]] N https://esolangs.org/w/index.php?oldid=67301 * Challenger5 * (+1549) Created page with "Graverage is an automaton/esolang designed by [[User:Challenger5]]. === Program Structure === A Graverage program consists of: * A set of one or more objects, called points..."
17:46:08 -!- sprocklem has quit (Ping timeout: 245 seconds).
17:59:22 <kspalaiologos> @tell oerjan greets! Are you the person who made Malbolge Unshackled?
17:59:22 <lambdabot> Consider it noted.
17:59:27 <kspalaiologos> I
17:59:31 <kspalaiologos> 'm genuinely curious
17:59:43 <kspalaiologos> because I made a lot of malbolge unshackled programs
17:59:57 <kspalaiologos> and an assembler that ultimately created my chess game in Malbolge
18:02:43 <int-e> `? Ørjan
18:02:44 <HackEso> Your pal Ørjan is oerjan's good twin. He's banned in the IRC RFC for being an invalid character. Sometimes he publishes papers without noticing it.
18:14:25 -!- FreeFull has joined.
18:29:48 <esowiki> [[User:Palaiologos]] M https://esolangs.org/w/index.php?diff=67302&oldid=66264 * Palaiologos * (+354) Slight update
18:32:10 <esowiki> [[EsoInterpreters]] https://esolangs.org/w/index.php?diff=67303&oldid=63677 * Palaiologos * (+191) Deadfish interpreter in Malbolge Unshackled
18:32:35 <kspalaiologos> So I wrote deadfish interpreter in Malbolge
18:32:36 <kspalaiologos> Requires 3,5 gigabytes of RAM to operate.
18:33:06 <kspalaiologos> after it hogs up 20% of your memory, it slowly starts responding to commands at a rate of one per 10 seconds
18:40:23 -!- kritixilithos has quit (Quit: tixe\).
18:43:38 -!- bfbot has quit (Ping timeout: 240 seconds).
18:47:24 -!- b_jonas has joined.
18:59:20 <kspalaiologos> what happened
18:59:24 <kspalaiologos> to my bfbot
18:59:33 <kspalaiologos> may it be outage?
19:00:02 -!- bfbot has joined.
19:23:45 -!- lambdabot has quit (Remote host closed the connection).
19:30:17 -!- lambdabot has joined.
19:30:34 <b_jonas> =echo hello bfbot
19:30:34 <bfbot> hello bfbot
19:31:07 <b_jonas> =echo @botsnack
19:31:07 <bfbot> @botsnack
19:31:15 <lambdabot> :)
19:31:37 <b_jonas> =echo @echo =echo hello
19:31:38 <bfbot> @echo =echo hello
19:31:45 <lambdabot> echo; msg:IrcMessage {ircMsgServer = "freenode", ircMsgLBName = "lambdabot", ircMsgPrefix = "bfbot!~bfbot@206.ip-51-91-102.eu", ircMsgCommand = "PRIVMSG", ircMsgParams = ["#esoteric",":@echo =echo
19:31:51 <lambdabot> hello"]} target:#esoteric rest:"=echo hello"
19:32:07 <b_jonas> =echo @run var"=echo hello"
19:32:08 <bfbot> @run var"=echo hello"
19:32:17 <lambdabot> =echo hello
19:32:32 <b_jonas> uh oh
19:32:45 <b_jonas> these two could be looped
19:35:45 <b_jonas> =set 1s.
19:35:45 <bfbot> No such command. Try =help.
19:35:50 <b_jonas> =str 1s.
19:35:50 <bfbot> ok
19:35:58 <b_jonas> =def 1msg1
19:35:58 <bfbot> ok, defined 'msg1'
19:35:59 <b_jonas> =msg1
19:36:48 <b_jonas> =set 1s++++[->++++<]>[->++++<]>+....
19:36:48 <bfbot> No such command. Try =help.
19:36:52 <b_jonas> =str 1s++++[->++++<]>[->++++<]>+....
19:36:52 <bfbot> ok
19:36:54 <b_jonas> =def 1msg1
19:36:54 <bfbot> ok, defined 'msg1'
19:36:56 <b_jonas> =msg1
19:36:56 <bfbot> AAAA
19:36:59 <b_jonas> =def 1msg0
19:36:59 <bfbot> ok, defined 'msg0'
19:37:00 <b_jonas> =msg0
19:37:01 <bfbot> AAAA
19:37:19 <b_jonas> =echo @run (\s -> var (s ++ show s))"=echo @run (\\s -> var (s ++ show s))"
19:37:19 <bfbot> @run (s -> var (s ++ show s))"=echo @run (\s -> var (s ++ show s))"
19:37:21 <lambdabot> <hint>:1:39: error:
19:37:21 <lambdabot> lexical error in string/character literal at character 's'
19:38:05 <b_jonas> =echo @run (\ s -> var (s ++ show s))"=echo @run (\\s -> var (s ++ show s))"
19:38:05 <bfbot> @run ( s -> var (s ++ show s))"=echo @run (\s -> var (s ++ show s))"
19:38:07 <lambdabot> <hint>:1:40: error:
19:38:07 <lambdabot> lexical error in string/character literal at character 's'
19:38:21 <b_jonas> it mangles the backslashes?
19:38:32 <b_jonas> whoa
19:41:13 <b_jonas> @run (\s -> (var . tail . init . show) (s ++ show s))"=echo @run (\\s -> (var . tail . init . show) (s ++ show s))"
19:41:14 <lambdabot> =echo @run (\\s -> (var . tail . init . show) (s ++ show s))\"=echo @run (\\...
19:41:20 <b_jonas> ah, too long
19:43:14 <b_jonas> @run (var.ap(++)show)"=echo @run (var.ap(++)show)"
19:43:17 <lambdabot> =echo @run (var.ap(++)show)"=echo @run (var.ap(++)show)"
19:43:24 -!- sprocklem has joined.
19:44:04 <b_jonas> =echo @run (var.ap(++)show)"=echo @run (var.ap(++)show)"
19:44:04 <bfbot> @run (var.ap(++)show)"=echo @run (var.ap(++)show)"
19:44:06 <lambdabot> =echo @run (var.ap(++)show)"=echo @run (var.ap(++)show)"
19:49:33 -!- atriq has changed nick to Taneb.
19:50:51 -!- subleq has quit (Ping timeout: 246 seconds).
19:52:36 -!- subleq has joined.
19:59:39 <b_jonas> =str 1s+++++++++++[->+++++++++<]>-----.+++++++++++++++++++.++++.------------.+++++.---------.
19:59:39 <bfbot> ok
19:59:48 <b_jonas> =str 0s.
19:59:48 <bfbot> ok
20:00:06 <b_jonas> =str 0s++++[->++++<]>[->++++<]>+....
20:00:07 <bfbot> ok
20:00:11 <b_jonas> =def 0msg1
20:00:11 <bfbot> ok, defined 'msg1'
20:00:13 <b_jonas> =msg1
20:00:13 <bfbot> AAAA
20:00:40 <b_jonas> ^def quine ul (=quine)S
20:00:40 <fungot> Defined.
20:00:47 <b_jonas> =def 1quine
20:00:48 <bfbot> ok, defined 'quine'
20:00:49 <b_jonas> =quine
20:00:49 <bfbot> ^quine
20:00:58 <b_jonas> ^quine
20:00:58 <fungot> =quine
20:00:58 <bfbot> ^quine
20:04:27 <b_jonas> =echo `thanks bfbot
20:04:27 <bfbot> `thanks bfbot
20:04:28 <HackEso> Thanks, bfbot. Thot.
20:05:04 <b_jonas> =echo `echo =echo `thanks bfbot
20:05:04 <bfbot> `echo =echo `thanks bfbot
20:05:06 <HackEso> ​=echo `thanks bfbot
20:06:12 <b_jonas> ^echo =echo hello
20:06:12 <fungot> =echo hello =echo hello
20:06:13 <bfbot> hello =echo hello
20:25:53 -!- kspalaiologos has quit (Quit: Leaving).
20:26:24 -!- wmww has quit (*.net *.split).
20:28:16 -!- kspalaiologos has joined.
20:28:45 <kspalaiologos> b_jonas: check the wiki page, I added a few modes for Brainfuck interpreter
21:02:45 -!- hppavilion[1] has joined.
21:03:31 <b_jonas> hello hppavilion
21:05:32 -!- arseniiv_ has joined.
21:09:53 -!- Lykaina_ has joined.
21:11:04 -!- Hooloo42 has joined.
21:12:17 -!- arseniiv has quit (Read error: Connection reset by peer).
21:12:17 -!- Hooloovo0 has quit (Remote host closed the connection).
21:12:17 -!- relrod has quit (Ping timeout: 240 seconds).
21:12:17 -!- Lykaina has quit (Ping timeout: 240 seconds).
21:12:55 -!- relrod has joined.
21:12:57 -!- relrod has quit (Changing host).
21:12:57 -!- relrod has joined.
21:18:47 -!- xkapastel has joined.
21:28:16 -!- kiwi-doorframe has joined.
21:29:42 -!- kiwi-doorframe has quit (Client Quit).
21:36:29 -!- hppavilion[1] has quit (Ping timeout: 276 seconds).
21:43:28 -!- hppavilion[1] has joined.
21:55:20 -!- hppavilion[1] has quit (Ping timeout: 276 seconds).
22:08:15 -!- kspalaiologos has quit (Ping timeout: 265 seconds).
22:12:04 -!- arseniiv_ has quit (Quit: gone completely :o).
22:16:30 -!- hppavilion[1] has joined.
22:26:43 -!- hppavilion[1] has changed nick to \.
22:26:52 <\> Weird that this is allowed.
22:26:58 -!- \ has changed nick to hppavilion[1].
22:28:10 <b_jonas> hppavilion[1]: it technically is, but I think you won't be able to hold that nick for long, because NickServ will nick you out from it
22:30:58 <hppavilion[1]> >ː(
22:32:24 -!- sprocklem has quit (Ping timeout: 252 seconds).
22:36:07 <fizzie> `` echo $HOME # Hm, I didn't realize this was set.
22:36:09 <HackEso> ​/tmp
22:36:43 <fizzie> Guess it's usual for HackEso-golfing, since ~ is shorter than /tmp.
22:36:46 <fizzie> s/usual/useful/
22:42:57 <b_jonas> ok this is wierd: ~ is not actually a valid character in an IRC nickname, and if you try to nick to a nickname containing it, you get an error. but if you whois ~[ the server knows that it's case-insensitively the same as the valid nick ^[ and gives you answer about him.
22:43:49 <b_jonas> I wonder if this is because it is a valid nickname character on other servers so freenode tries to be compatible or something
22:48:04 <fizzie> I guess arguably if you say "CASEMAPPING=rfc1459" you should use that case-mapping, even if ~ isn't supported.
22:48:19 <fizzie> (Wasn't this network ascii at some point?)
22:48:39 <b_jonas> fizzie: the casemapping matters for channel names
22:48:50 <b_jonas> fizzie: and yes, the casemapping on freenode changed when they changed services
22:49:04 <b_jonas> and I still don't know what they did with nickserv registrations that suddenly started to clash
22:49:11 <b_jonas> or channel registrations
22:49:19 <b_jonas> but all that is old history, they changed very long ago
22:53:49 <fizzie> Hm, I wonder why umlbox has code to cfmakeraw() on the input/output terminals, and why it enables that if the output (outside UML) is *not* going to a terminal.
22:54:45 <esowiki> [[Turing Machine But Way Worse]] https://esolangs.org/w/index.php?diff=67304&oldid=63107 * Ais523 * (+824) /* Computational class */ TC
22:55:11 <kingoffrance> i thought that was the use of "raw" mode: specifically for <things that are not terminals, so dont do any "cooked" "processed" i/o magic>
22:55:17 <kingoffrance> that sounds like a good thing to me
22:59:18 <fizzie> Maybe that makes sense. I'm just not sure what effect it has here.
23:01:11 <fizzie> The commit message just says "Make sure everything is uncooked."
23:03:10 <kingoffrance> my understanding is unixy things assumes serial devices have a terminal, so you generally want to set the device to "raw" if you arent running getty or whatever on it
23:03:20 <kingoffrance> s/have a terminal/& attached/
23:03:57 <kingoffrance> in other words, unixy things might "translate" i/o back and forth on that serial port unless you set "raw" mode to tell it "dont mess with the data flowing"
23:04:39 <kingoffrance> "translate" meaning alter/otherwise mangle/etc.
23:06:57 -!- hppavilion[1] has quit (Ping timeout: 240 seconds).
23:08:31 <kingoffrance> as to how is this relevant to non-serial ports, e.g. pseudo-terminal devices, my guess is that is what they are "modelling" or "impersonating"
23:13:56 <fizzie> Well, I'm just wondering what the UML kernel does, and how that will change if you connect the thing to a tty vs. a non-tty.
23:14:09 <fizzie> I've definitely noticed that, in verbose mode when redirecting output, it leaves the actual outside-UML terminal in a raw mode (or at least disables echo), which I think happens because it sees the stdout isn't a tty, so it sets raw mode even for the verbose output, which is in fact connected to a tty.
23:14:14 <fizzie> So it does some amount of "forwarding" of these attributes.
23:18:16 -!- FreeFull has quit.
23:36:16 <b_jonas> fungot, what are the two most famous operas written by Rossini?
23:36:16 <fungot> b_jonas: except in really well chilled glass bottle of fnord, because i haven't personally inspected the c it generated myself. ( stalin's c was just right, but the last verse is missing.
23:36:33 <b_jonas> um
23:36:35 <b_jonas> ok
23:37:12 <fizzie> For the record, it's probably talking about Stalin, the optimizing Scheme compiler.
23:37:14 -!- subleq has quit (Ping timeout: 240 seconds).
23:38:11 <b_jonas> he does make some sense, for a chilled glass bottle may be just as classy as an opera
23:38:20 <kingoffrance> stalin singing a C note
23:39:15 -!- subleq has joined.
23:44:00 <b_jonas> yes, that too
23:44:53 <b_jonas> so how about Guillaume Tell, fungot?
23:44:53 <fungot> b_jonas: here was my take on this is that someone has had the fnord thing strikes me as special compared to what? most literal regular fnord literal...
23:45:28 <b_jonas> by the way, I checked, it seems that all the lines that I added to the quotes file still survive, except for the one that I quikcly deleted myself
23:46:38 <b_jonas> some of the lines quoting me seem somewhat pointless on the other hand, and may be worth to delete if other people don't see their point either
23:46:44 -!- sprocklem has joined.
23:46:56 <b_jonas> `quote 1215
23:46:56 <HackEso> 1215) <b_jonas> fungot, do you like running double exponential time algorithms? <fungot> b_jonas: im not sure
23:48:25 <b_jonas> `quote 1323
23:48:26 <HackEso> 1323) <b_jonas> I don't care for the bf backend as long as it doesn't make the rest of ayacc harder to sue
23:48:33 <b_jonas> on the other hand there are these two related entries:
23:48:36 <b_jonas> `wisdom ^
23:48:37 <HackEso> hppavilion^k//hppavilion^k is a k-tuple of elements of hppavilion.
23:48:46 <b_jonas> `? ^
23:48:47 <HackEso> ​^ (also notated by ⊕ or ⊻) is the exclusive-or operator; ∧ (also notated by /\ or &) is the and (conjunction) operator; ^ (also notated by ↑ or ** or ⋆) is the power operator.
23:49:02 <b_jonas> `quote 1260
23:49:03 <HackEso> 1260) <b_jonas> shachaf: different notation. -o is logical or in find, but it's linear implication in linear logic
2019-11-22
00:04:00 -!- Lykaina_ has changed nick to Lykaina.
00:06:09 <esowiki> [[(0)]] https://esolangs.org/w/index.php?diff=67305&oldid=63328 * B jonas * (+243) /* Properties of (0) */
00:07:17 -!- kingoffrance has left ("x").
00:28:29 -!- xkapastel has quit (Quit: Connection closed for inactivity).
00:29:53 -!- oerjan has joined.
00:53:07 <oerjan> @messages-loud
00:53:07 <lambdabot> fizzie said 11h 59m 17s ago: Well, I fixed it, but I don't know why. Something to do with using a host-side opened /dev/null fd instead of the UML 'null' channel for some inputs/outputs. I don't
00:53:07 <lambdabot> want to think about it any more.
00:53:07 <lambdabot> kspalaiologos said 6h 53m 45s ago: greets! Are you the person who made Malbolge Unshackled?
00:53:41 <oerjan> . o O ( fizzie found a Feathery bug )
00:54:10 <oerjan> @tell kspalaiologos Yes. I thought the Wiki page said so...
00:54:11 <lambdabot> Consider it noted.
00:54:20 <oerjan> ^wiki Malbolge Unshackled
00:54:20 <fungot> https://esolangs.org/wiki/Malbolge Unshackled
00:56:09 <oerjan> @tell kspalaiologos I suppose you need to click through to my name to find the nick.
00:56:09 <lambdabot> Consider it noted.
01:01:37 -!- sftp has quit (Ping timeout: 252 seconds).
01:11:15 <oerjan> ^echo hi
01:11:15 <fungot> hi hi
01:11:22 -!- oerjan has changed nick to oerbot.
01:11:25 <oerbot> ^echo hi
01:11:25 <fungot> hi hi
01:11:30 -!- oerbot has changed nick to oerjan.
01:12:16 * oerjan was wondering if fizzie had ignored bfbot by hand or had a .*bot rule
01:12:31 <oerjan> =quine
01:12:31 <bfbot> ^quine
01:12:46 <oerjan> definitely looks ignored
01:12:52 <oerjan> =echo fungot
01:12:52 <fungot> oerjan: 1. ps is missing a " from"
01:12:52 <bfbot> fungot
01:18:18 <oerjan> <fizzie> `` echo $HOME # Hm, I didn't realize this was set. <-- i always thought that was to prevent junk from programs that like to create .config files there
01:18:43 -!- sftp has joined.
01:19:56 <esowiki> [[Brainfuck Contest 1]] https://esolangs.org/w/index.php?diff=67306&oldid=56282 * Odog8 * (+53)
01:20:23 <oerjan> oh and i guess it also prevents people from _creating_ .config files to mess up programs.
01:26:39 <fizzie> By hand.
01:29:04 <shachaf> `` echo $HOME
01:29:04 <HackEso> ​/tmp
01:31:12 <oerjan> `? delquote
01:31:13 <HackEso> delquote? ¯\(°​_o)/¯
01:34:02 <oerjan> `5
01:34:08 <HackEso> 1/2:414) <itidus20> It's ok guys. I am doing what I can to keep my psyche and ego surviving. All the while the threat of ww3 looms, the mortality of family and friends(loved ones?) and sooner or llater my own mortality. \ 915) <oerjan> maybe i was violated by a pole once \ 160) Thanks to nooga for constructive criticism, his ideas and being a constant annoyance. --http://theendisnear.no-ip.info/ \ 864) <kmc> what is the linux equivalent
01:34:22 <oerjan> `n
01:34:23 <HackEso> 2/2:e magical purple light which makes things glow if they have been involved in a crime <elliott> kmc: nmap?? \ 135) <Vorpal> alise, it works fine for irc but interactive stuff? no.
01:35:11 <oerjan> wat
01:35:51 <oerjan> `quote 864
01:35:52 <HackEso> 864) <kmc> what is the linux equivalent of the magical purple light which makes things glow if they have been involved in a crime <elliott> kmc: nmap??
01:36:02 <fizzie> Hmm.
01:36:13 <oerjan> `delquote 135
01:36:15 <HackEso> ​*poof* <Vorpal> alise, it works fine for irc but interactive stuff? no.
01:36:35 <oerjan> i don't see the point of that one, without context.
01:36:45 <fizzie> Oh, I see, the username changed.
01:37:07 <oerjan> OUcH
01:37:07 <fizzie> It's HackEso!~HackEso@cloak now, it used to be HackEso!~h@cloak a while ago.
01:37:45 <fizzie> I must've wiped out the ~h patch when I moved from Mecurial to git for the code, I think it was just hand-patched in.
01:38:01 <fizzie> Well, that should hopefully be easy enough to fix.
01:39:01 <fizzie> Yeah, the multibot default is always the same as the nick, I think I had just locally edited it.
01:39:30 <oerjan> (incidentally, i was applying the traditional 1/5 quote purging method hth)
01:40:07 -!- HackEso has quit (Remote host closed the connection).
01:40:36 <fizzie> Hm.
01:40:40 <fizzie> It doesn't start.
01:40:59 <oerjan> . o O ( It was inevitable. )
01:41:14 <fizzie> Oh, some sort of library versioning issue.
01:41:20 <fizzie> ./multibot: error while loading shared libraries: libevent_core-2.1.so.6: cannot open shared object file: No such file or directory
01:42:38 <fizzie> Odd.
01:43:25 <oerjan> in all that debugging yesterday, you never restarted the outer bot code?
01:43:46 <fizzie> Well, no, multibot's pretty dynamic like that.
01:44:04 <fizzie> Hm. Both systems have Debian 10 installed, but the machine where I build things has libevent-core-2.1-6:amd64 version 2.1.8-stable-4 while the container where it runs has libevent-core-2.0-5:amd64 version 2.0.21-stable-3.
01:44:20 <fizzie> I guess they're both installable in stable, and I just have the wrong one.
01:45:30 -!- HackEso has joined.
01:45:37 <fizzie> That's-a better.
01:46:01 <fizzie> `5
01:46:09 <HackEso> 1/2:66) <Slereah> I can do everything a Turing machine can do, except love \ 900) <Sgeo> Actually, just as a guess, J might be worse than APL because it's restricted to normal (ascii?) characters, I guess \ 1262) <b_jonas> (make is an esoteric language) <prooftechnique> b_jonas: Most esolangs I've seen have more comprehensive docs than make \ 251) <catseye> wow, thinkgeek really makes me hate being alive \ 1151) <fungot> kmc: any chance one c
01:46:15 <fizzie> `n
01:46:16 <HackEso> 2/2:an have a box full of tnt to throw around
01:46:38 <ProofTechnique> Nice
01:47:31 <fizzie> `delquote 251
01:47:33 <HackEso> ​*poof* <catseye> wow, thinkgeek really makes me hate being alive
02:11:26 -!- sprocklem has quit (Ping timeout: 276 seconds).
02:12:11 -!- sprocklem has joined.
02:12:53 -!- xkapastel has joined.
02:16:48 <oerjan> `slwd kspalaiologos//s,$,.,
02:16:50 <HackEso> kspalaiologos//kspalaiologos is a brainfuck addict. He's secretly disassembling brainfuck code for a casino that lost the source code. Apparently knows the secret of Malbolge.
02:35:32 <oerjan> is Cindy about to go full von Neumann probe
02:42:27 <fizzie> A green goo scenario.
03:02:50 -!- sprocklem has quit (Ping timeout: 240 seconds).
03:13:48 -!- sprocklem has joined.
03:40:29 -!- sprocklem has quit (Ping timeout: 276 seconds).
03:56:54 -!- imode has joined.
04:00:50 -!- sprocklem has joined.
04:48:29 -!- xkapastel has quit (Quit: Connection closed for inactivity).
05:38:28 -!- sprocklem has quit (Ping timeout: 252 seconds).
06:04:40 -!- hppavilion[1] has joined.
06:49:13 -!- sprocklem has joined.
06:52:07 -!- kspalaiologos has joined.
06:52:17 <kspalaiologos> Greets
06:52:30 <kspalaiologos> oerjan: I've been asking
06:52:56 <kspalaiologos> Because I wasn't sure about do you realize that I made a chess game and a minesweeper in your language
06:59:57 -!- imode has quit (Ping timeout: 240 seconds).
07:03:13 -!- sprocklem has quit (Ping timeout: 245 seconds).
07:19:21 -!- sprocklem has joined.
07:33:17 -!- sprocklem has quit (Ping timeout: 240 seconds).
07:34:59 <oerjan> kspalaiologos: i'd be a bit more impressed if you didn't also go on about how large and slow the programs are ;) btw you're the second person i've noticed who has found out how to program it. i'm not one of them.
07:39:29 -!- sprocklem has joined.
07:48:38 <kspalaiologos> oerjan: c'mon, I needed to use lookup tables to add
07:48:51 <kspalaiologos> It's impossible to do this in some more performant way
07:49:42 <kspalaiologos> I've also wasted time on Seed
07:49:57 <kspalaiologos> And I'm possibly third person in existence to break it
07:52:18 -!- mniip has quit (Ping timeout: 608 seconds).
07:57:35 <oerjan> i know, i upvoted some of your Seed submissions
07:57:47 -!- mniip has joined.
07:58:42 <oerjan> also i shouldn't _really_ be talking about speed, it's not something i'm good at optimizing (see: the actual Malbolge Unshackled reference interpreter)
08:00:56 <oerjan> kspalaiologos: btw interpreters that have reliable rotation width growth are cheating imo
08:01:39 <oerjan> i spent way to much time thinking about how make it as uselessly non-dependable as possible :P
08:01:43 <oerjan> *too
08:18:46 <oerjan> "lunevka" getting away could be very bad, because she's just learned that all she needs to become a queen is to transfer herself to an organic body...
08:19:45 <oerjan> well, possibly it needs to be a spark body.
08:21:48 <esowiki> [[Pass]] N https://esolangs.org/w/index.php?oldid=67307 * A * (+784) Created page with "[[Pass]] is a *practical* language. I am putting this documentation here because I am unsure whether this language is esoteric enough. == Language quick-reference == * <code>(..."
08:29:13 <int-e> I'm still waiting for P?dre's lantern to drop.
08:31:15 <esowiki> [[Pass]] M https://esolangs.org/w/index.php?diff=67308&oldid=67307 * A * (+1251)
08:34:36 <int-e> Hmm, "a small fabber", are you *sure* this isn't the Force Multiplication chapter?
08:42:52 <oerjan> no, it's the Force Exponentiation chapter, obviously
08:44:00 <b_jonas> `perl -euse Date::Manip::Date; $d = Date::Manip::Date->new("now"); $s = $d->new("2019-06-03"); $f = $s->calc($d, 0, "semi"); print $f->("%dys days");
08:44:02 <HackEso> Not a CODE reference at -e line 1.
08:44:09 <b_jonas> `perl -euse Date::Manip::Date; $d = Date::Manip::Date->new("now"); $s = $d->new("2019-06-03"); $f = $s->calc($d, 0, "semi"); print $f->printf("%dys days");
08:44:12 <HackEso> 172.364016203704 days
08:44:16 <b_jonas> fizzie: thanks
08:44:44 <b_jonas> `perl -euse Date::Manip::Date; $d = Date::Manip::Date->new("today"); $s = $d->new("2019-06-03"); $f = $s->calc($d, 0, "semi"); print $f->printf("%.2dys days");
08:44:45 <HackEso> 172.00 days
08:45:44 <oerjan> *yes
08:46:42 <b_jonas> are those new force powers?
08:47:14 <oerjan> only if you're in the same force as schlock
08:55:24 -!- xkapastel has joined.
08:57:19 -!- oerjan has quit (Quit: Nite).
09:02:19 <esowiki> [[Treesolang]] M https://esolangs.org/w/index.php?diff=67309&oldid=67295 * Baidicoot * (+12) link to implementation
09:19:16 -!- b_jonas has quit (Remote host closed the connection).
09:48:23 -!- hppavilion[1] has quit (Ping timeout: 276 seconds).
10:20:33 <esowiki> [[User:OsmineYT]] https://esolangs.org/w/index.php?diff=67310&oldid=67284 * OsmineYT * (+10)
10:20:41 <esowiki> [[User:OsmineYT]] https://esolangs.org/w/index.php?diff=67311&oldid=67310 * OsmineYT * (+1)
10:20:53 <esowiki> [[User:OsmineYT]] https://esolangs.org/w/index.php?diff=67312&oldid=67311 * OsmineYT * (+1)
10:22:17 <esowiki> [[Pass]] M https://esolangs.org/w/index.php?diff=67313&oldid=67308 * A * (+115) /* Some basic functionalities */ That's almost the whole language. Wait 'til I define the complex operator system.
10:22:19 <esowiki> [[Bin-8]] N https://esolangs.org/w/index.php?oldid=67314 * OsmineYT * (+105) Created page with "bin-8 is an idea (WIP) for programming language. It's founded in 2019 by [[User:OsmineYT|User:OsmineYT]]."
10:23:24 <esowiki> [[Bin-8]] https://esolangs.org/w/index.php?diff=67315&oldid=67314 * OsmineYT * (+68)
10:23:31 <esowiki> [[Bin-8]] https://esolangs.org/w/index.php?diff=67316&oldid=67315 * OsmineYT * (-2)
10:23:38 <esowiki> [[Bin-8]] https://esolangs.org/w/index.php?diff=67317&oldid=67316 * OsmineYT * (-2)
10:24:22 -!- aloril has quit (Ping timeout: 265 seconds).
10:25:28 <esowiki> [[Pass]] M https://esolangs.org/w/index.php?diff=67318&oldid=67313 * A * (+379) Just saw Bin-8 and it is really amazing!
10:30:41 <esowiki> [[Bin-8]] https://esolangs.org/w/index.php?diff=67319&oldid=67317 * OsmineYT * (+188)
10:33:21 <esowiki> [[Bin-8]] https://esolangs.org/w/index.php?diff=67320&oldid=67319 * OsmineYT * (+0)
10:35:15 -!- aloril has joined.
10:44:03 -!- aloril has quit (Ping timeout: 245 seconds).
10:50:34 -!- aloril has joined.
10:59:17 -!- aloril has quit (Ping timeout: 240 seconds).
11:08:24 -!- aloril has joined.
11:12:10 <kspalaiologos> @tell oerjan well, that's nice :p. I'm using really an Malbolge20 interpreter that is actually a subset of MU.
11:12:10 <lambdabot> Consider it noted.
11:14:28 -!- aloril has quit (Ping timeout: 245 seconds).
11:17:46 -!- aloril has joined.
11:19:03 -!- arseniiv has joined.
11:21:02 -!- wib_jonas has joined.
11:41:06 <wib_jonas> fungot, what is a coloom? is it a tool to unravel fabric into threads? a cotool to unravel fabric into threads?
11:41:07 <fungot> wib_jonas: mmm... mayonnaise... fnord looks like it could be read by read...
11:43:12 <wib_jonas> you know how we have several quotes where fungоt gives an amusingly appropriate reply? we should try to brute force more of those, by finding something that he says often, then repeatedly asking a question to which that answer is relevant and finding the matching answers. we could make a brute-forcing bot for that.
11:44:46 <myname> feeding an ai with quoting its nonsense as reward
11:46:08 <wib_jonas> `quote 1213
11:46:10 <HackEso> 1213) <b_jonas> fungot, do you like running double exponential time algorithms? <fungot> b_jonas: im not sure
11:46:15 <wib_jonas> `delquote 1213
11:46:19 <HackEso> ​*poof* <b_jonas> fungot, do you like running double exponential time algorithms? <fungot> b_jonas: im not sure
11:46:29 <wib_jonas> that one is not an amusingly relevant answer
11:46:41 <wib_jonas> `quote 1323
11:46:42 <HackEso> 1323) <shachaf> #define __NR_oldolduname 59 <olsner> fungot: what's your old old name? <fungot> olsner: they decided not to waste any brain cells storing obscure unix silliness).
11:46:43 <wib_jonas> that one is
11:48:53 <wib_jonas> there are a lot of boring fungоt quotes though
11:52:19 <int-e> . o O ( The main problem of Tic-Tac-Toe is that there are too many draws at the highest level of play. )
11:55:33 <wib_jonas> int-e: that never stopped the fans of football
11:57:41 -!- aloril_ has joined.
11:58:37 -!- aloril has quit (Ping timeout: 265 seconds).
12:08:06 <arseniiv> fungot: miau
12:08:06 <fungot> arseniiv: why do you not like optional arguments or bounds checking, so it is
12:08:35 <arseniiv> fungot: why, I do love both of them, though bounds checking is better be a static one
12:08:35 <fungot> arseniiv: i think you can translate a bf program
12:09:48 <arseniiv> and suddenly that’s too much belief
12:09:52 <kspalaiologos> Fungot is just bfbot with worse interpreter and Markov chains cmon
12:10:21 <arseniiv> kspalaiologos: and written in a language of magic!
12:10:47 <arseniiv> though don’t you have plans to incorporate a Markov chains into bfbot?
12:11:27 <arseniiv> then we could have bot battles!^W^W^W^W^W^W
12:11:59 <arseniiv> I mean, where two bots talk to each other until the sequential request limit
12:12:12 <myname> int-e: depending on what you consider hightest level of play, I wouldn't say that has to be a bad thing
12:12:13 <kspalaiologos> ^lok
12:12:17 <kspalaiologos> *lol
12:12:21 <kspalaiologos> I could add them
12:12:32 <kspalaiologos> Bfbot is written in Seed :)
12:12:46 <kspalaiologos> It depends on telnet, tritium and some other garbage
12:12:53 <myname> i do prefer a game where perfect play on my part does not lead me to a loss if i wasn't the starting player
12:13:03 <wib_jonas> =echo a\b
12:13:04 <bfbot> ab
12:13:13 <wib_jonas> =echo a\x41b
12:13:14 <bfbot> ax41b
12:13:17 <wib_jonas> =echo a\\b
12:13:17 <bfbot> a\b
12:13:25 <wib_jonas> =echo a\081b
12:13:25 <bfbot> a081b
12:13:32 <wib_jonas> =echo a\101b
12:13:32 <bfbot> a101b
12:13:39 <wib_jonas> how is this supposed to work?
12:15:08 <wib_jonas> =src echo
12:15:08 <bfbot> No such command. Try =help.
12:15:20 <wib_jonas> =echo a\b\c
12:15:21 <bfbot> abc
12:15:34 <wib_jonas> kspalaiologos: why does the echo command swallow some backslashes?
12:15:50 <kspalaiologos> Hmm
12:16:01 -!- aloril_ has quit (Ping timeout: 265 seconds).
12:16:06 <kspalaiologos> Wait a second
12:16:26 <kspalaiologos> =echo xyz\"
12:16:26 <bfbot> xyz"
12:16:35 <kspalaiologos> Genuinely no idea
12:16:38 <arseniiv> fungot: give me some backlashes
12:16:38 <fungot> arseniiv: who is lytha ayth? xd a 2d fnord
12:16:48 <kspalaiologos> =echo $1
12:16:48 <bfbot> $1
12:16:53 <wib_jonas> =echo \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
12:16:54 <bfbot> abcdefghijklmnopqrstuvwxyz
12:17:02 <kspalaiologos> Crap
12:17:07 <arseniiv> fungot: if I was a bot too, would we be friends?
12:17:07 <fungot> arseniiv: fnord, the public has power over!
12:17:07 <kspalaiologos> What a weird bug
12:17:18 <wib_jonas> =echo \\A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
12:17:18 <bfbot> \ABCDEFGHIJKLMNOPQRSTUVWXYZ
12:17:22 <wib_jonas> =echo \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
12:17:22 <bfbot> ABCDEFGHIJKLMNOPQRSTUVWXYZ
12:17:38 <wib_jonas> kspalaiologos: it may be just that =echo is defined in a strange way
12:17:39 <arseniiv> fungot: do you like ASCII, at last?
12:17:48 <arseniiv> ah, sky is the limit or something
12:17:55 <wib_jonas> =str 1s ,[.,]
12:17:55 <bfbot> ok
12:17:55 <kspalaiologos> Let's check the repo
12:17:58 <wib_jonas> =def 1echo1
12:17:58 <bfbot> ok, defined 'echo1'
12:18:08 <wib_jonas> =echo1 hello, \world. \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
12:18:08 <bfbot> hello, world. abcdefghijklmnopqrstuvwxyz
12:18:12 <wib_jonas> nope
12:18:19 <kspalaiologos> Wait
12:18:21 <kspalaiologos> Hmm
12:18:57 <wib_jonas> =echo1 one \' two ' three \' four
12:18:57 <bfbot> one ' two ' three ' four
12:19:01 <int-e> myname: this is a complaint that people have about high-level chess ;-)
12:19:35 <kspalaiologos> Umm
12:19:36 <myname> int-e: people are stupid
12:19:44 <kspalaiologos> These are escape sequences
12:19:52 <kspalaiologos> Not a bug its a feature
12:19:59 <kspalaiologos> Possibly related to bash being retarded
12:20:47 <kspalaiologos> I need to rewrite it in some real language
12:23:11 <wib_jonas> =echo !"# $%&' ()*+ ,-./ 0123 4567 89:; <=>? @ABC DEFG HIJK LMNO PQRS TUVW XYZ[ \]^_ `abc defg hijk lmno pqrs tuvw xyz{ |}~
12:23:11 <bfbot> !"# $%&' ()*+ ,-./ 0123 4567 89:; <=>? @ABC DEFG HIJK LMNO PQRS TUVW XYZ[ ]^_ `abc defg hijk lmno pqrs tuvw xyz{ |}~.
12:23:58 <wib_jonas> =echo and ¡¢£ ¤¥¦§ ¨©ª« ¬­®¯ °±²³ ´µ¶· ¸¹º» ¼½¾¿ ÀÁÂà ÄÅÆÇ ÈÉÊË ÌÍÎÏ ÐÑÒÓ ÔÕÖ× ØÙÚÛ ÜÝÞß àáâã äåæç èéêë ìíîï ðñòó ôõö÷ øùúû üýþÿ
12:23:58 <bfbot> and ...... ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........
12:28:21 -!- aloril_ has joined.
12:35:13 -!- imode has joined.
12:42:23 -!- aloril_ has quit (Ping timeout: 245 seconds).
13:02:42 -!- aloril has joined.
13:13:32 -!- aloril has quit (Ping timeout: 265 seconds).
13:21:20 <esowiki> [[Pass]] M https://esolangs.org/w/index.php?diff=67321&oldid=67318 * A * (+1044) /* The complex behavior for all of the operators */
13:27:07 <esowiki> [[Pass]] M https://esolangs.org/w/index.php?diff=67322&oldid=67321 * A * (+314) /* The complex behavior for all of the operators */
13:32:46 -!- aloril has joined.
13:41:26 <esowiki> [[Pass]] M https://esolangs.org/w/index.php?diff=67323&oldid=67322 * A * (+959) /* The complex behavior for all of the operators */ Now done with multiplication
13:48:24 <esowiki> [[Pass]] M https://esolangs.org/w/index.php?diff=67324&oldid=67323 * A * (+1269) /* Behavior of * */ I should make a ~1000-byte edit each time...
13:53:27 -!- imode has quit (Ping timeout: 252 seconds).
13:54:11 <esowiki> [[Pass]] M https://esolangs.org/w/index.php?diff=67325&oldid=67324 * A * (+136) Add precedence
14:03:13 <esowiki> [[Pass]] https://esolangs.org/w/index.php?diff=67326&oldid=67325 * A * (+177) /* The try function */
14:06:42 <int-e> Meh, Firefox. First "Recommend extensions as you browse"... now "Recommend features as you browse"... they really are trying hard to be annoying.
14:07:31 -!- kspalaiologos has quit (Ping timeout: 250 seconds).
14:09:14 <int-e> Hmm actually maybe the second one has been there for a bit and managed not to annoy me.
14:18:29 <esowiki> [[Pass]] M https://esolangs.org/w/index.php?diff=67327&oldid=67326 * A * (+70) /* Some basic functionalities */
14:22:12 <esowiki> [[Pass]] M https://esolangs.org/w/index.php?diff=67328&oldid=67327 * A * (+112)
14:22:40 <esowiki> [[Pass]] M https://esolangs.org/w/index.php?diff=67329&oldid=67328 * A * (+62) /* Some basic functionalities */
14:25:08 -!- xkapastel has quit (Quit: Connection closed for inactivity).
14:26:03 <esowiki> [[Pass]] M https://esolangs.org/w/index.php?diff=67330&oldid=67329 * A * (-5) Huge try function proofread
14:30:07 -!- kspalaiologos has joined.
14:55:57 -!- kspalaiologos has quit (Read error: Connection reset by peer).
15:20:12 -!- kspalaiologos has joined.
15:20:42 -!- imode has joined.
16:00:17 -!- imode has quit (Ping timeout: 265 seconds).
16:25:22 -!- wib_jonas has quit (Remote host closed the connection).
16:33:27 -!- xkapastel has joined.
16:54:59 -!- Lord_of_Life has joined.
16:57:28 -!- Lord_of_Life has quit (Client Quit).
17:27:42 <kspalaiologos> Is there any interesting esoteric language that isn't hell on earth to implement?
17:39:36 <tswett[m]> kspalaiologos: Well, /// is definitely interesting and it's pretty simple. :D
17:42:25 -!- tahw has joined.
18:09:07 -!- FreeFull has joined.
18:30:04 -!- b_jonas has joined.
18:48:35 <esowiki> [[User:Palaiologos]] https://esolangs.org/w/index.php?diff=67331&oldid=67302 * Palaiologos * (+235) A few links
18:53:12 -!- xkapastel has quit (Quit: Connection closed for inactivity).
18:53:25 <b_jonas> =echo foo $HOME bar `uname` qux
18:53:25 <bfbot> foo $HOME bar `uname` qux
18:53:32 <b_jonas> =echo foo \$HOME bar \`uname\` qux
18:53:32 <bfbot> foo $HOME bar `uname` qux
18:54:59 <kspalaiologos> hackable, but not this way :)
18:56:10 <b_jonas> kspalaiologos: I just wonder how that backslash thing works
18:56:20 <kspalaiologos> ^ I have no idea too
18:56:33 <kspalaiologos> it's far beyond my will of investigating obfuscated bash code
18:57:24 <b_jonas> =str 1s++++++++[->++++++<].+.+.+.+.+.+.+.+.+.+[]
18:57:24 <bfbot> ok
18:57:26 <b_jonas> =def 1msg1
18:57:26 <bfbot> ok, defined 'msg1'
18:57:27 <b_jonas> =msg1
18:57:27 <bfbot> .........
18:57:41 <b_jonas> =str 1s++++++++[->++++++<]>.+.+.+.+.+.+.+.+.+.+[]
18:57:41 <bfbot> ok
18:57:43 <b_jonas> =def 1msg1
18:57:43 <bfbot> ok, defined 'msg1'
18:57:44 <b_jonas> =msg1
18:57:44 <bfbot> 0123456789
19:02:24 <b_jonas> ``` cat /hackenv/bin/lowercase
19:02:25 <HackEso> ​#!/bin/bash \ print_args_or_input "$@" | tr A-Z a-z | LANG=en_NZ.UTF-8 sed 'y/ØÅÆŒÞÐÄÖÜÁÉÍÓÚÝŁ/øåæœþðäöüáéíóúýł/'
19:02:26 <b_jonas> ``` cat /hackenv/bin/\?
19:02:27 <HackEso> ​#!/bin/bash \ topic=$(echo "$@" | lowercase | sed "s/noo\+dl/noooodl/;s/ *$//") \ topic1=$(echo '`'"$topic" | sed 's/^`\(`\|$\)//') \ topic2=$(echo "$topic" | sed "s/s$//") \ cd $HACKENV/wisdom \ if [ \( "_$topic2"_ = "_ngevd"_ \) -a \( -e ngevd \) ]; \ then cat /dev/urandom; \ elif [ -e "$topic" ]; \ then cat "$topic"; \ elif [ -e "$topic1" ]; \ then cat "$topic1"; \ elif [ -e "$topic2" ]; \ then cat "$topic2";
19:02:30 <b_jonas> wow, this is overcomplicated
19:14:17 <b_jonas> `python3 -cprint(open("/hackenv/bin/??").read()[300:])
19:14:17 <HackEso> usage: umlbox [-h] [--verbose] [--base-mounts] [--mount DIR] \ [--mount-write DIR] [--translate GUEST HOST] \ [--translate-write GUEST HOST] [--cwd DIR] [--env VAR=VALUE] \ [--no-stdin] [--root] [--local H:G] [--remote G:A:P] [--x11] \ [--timeout T] [--memory M] [--linux KERNEL] [--mudem MUDEM] \ [--initrd INITRD] \ X [X ...] \ umlbox: error: unrecognized argum
19:14:21 <b_jonas> fizzie: ^
19:15:11 <b_jonas> fizzie: something is wrong with the bot
19:16:46 <b_jonas> `run echo hi
19:16:47 <HackEso> usage: umlbox [-h] [--verbose] [--base-mounts] [--mount DIR] \ [--mount-write DIR] [--translate GUEST HOST] \ [--translate-write GUEST HOST] [--cwd DIR] [--env VAR=VALUE] \ [--no-stdin] [--root] [--local H:G] [--remote G:A:P] [--x11] \ [--timeout T] [--memory M] [--linux KERNEL] [--mudem MUDEM] \ [--initrd INITRD] \ X [X ...] \ umlbox: error: unrecognized argum
19:16:50 <b_jonas> `run /bin/echo hi
19:16:51 <HackEso> usage: umlbox [-h] [--verbose] [--base-mounts] [--mount DIR] \ [--mount-write DIR] [--translate GUEST HOST] \ [--translate-write GUEST HOST] [--cwd DIR] [--env VAR=VALUE] \ [--no-stdin] [--root] [--local H:G] [--remote G:A:P] [--x11] \ [--timeout T] [--memory M] [--linux KERNEL] [--mudem MUDEM] \ [--initrd INITRD] \ X [X ...] \ umlbox: error: unrecognized argum
19:23:41 <esowiki> [[HackEso]] https://esolangs.org/w/index.php?diff=67332&oldid=67244 * B jonas * (+2288) wisdom database
19:24:45 <kspalaiologos> I'm genuinely curious
19:25:04 <kspalaiologos> `asmbf jnz r4,3/jnz r3,2
19:25:05 <HackEso> ​+>+[<[>>+>+<<<-]>>[<<+>>-]>[[-]>>>>>>+++<[<<<<<<+>+>>>>>-]<<<<<<[>>>>>>+<<<<<<-]>[<<<[-]>[-]>>>>>>>>[<<<<<<<<+>+>>>>>>>-]<<<<<<<[>>>>>>>+<<<<<<<-]>[-]]>>>>>>[-]<<<<<<]<<<[>>+>+<<<-]>>[<<+>>-]>[[-]>>>>>>++<<[<<<<<+>+>>>>-]<<<<<[>>>>>+<<<<<-]>[<<<[-]>[-]>>>>>>>>[<<<<<<<<+>+>>>>>>>-]<<<<<<<[>>>>>>>+<<<<<<<-]>[-]]>>>>>>[-]<<<<<<]<<<[>>+>+<<<-]>>[<<+>>-]>[[-]<<<[-]>[-]>>]<<]
19:25:19 <kspalaiologos> `asmbf not r4/and r4, r3/jnz r4, 2
19:25:20 <HackEso> ​+>+[<[>>+>+<<<-]>>[<<+>>-]>[[-]>>>>>-[<<<<->>>>-]<<<<[>>>>+<<<<-]>>>>[<<<<+>>>>-]<<<<[[-]>>>[<<<+<+>>>>-]<<<<[>>>>+<<<<-]>[>>>>-<<<<[-]]]>>>>>++<[<<<<<<+>+>>>>>-]<<<<<<[>>>>>>+<<<<<<-]>[<<<[-]>[-]>>>>>>>>[<<<<<<<<+>+>>>>>>>-]<<<<<<<[>>>>>>>+<<<<<<<-]>[-]]>>>>>>[-]<<<<<<]<<<[>>+>+<<<-]>>[<<+>>-]>[[-]<<<[-]>[-]>>]<<]
19:25:31 <kspalaiologos> 2nd one is shorter apparently
19:25:37 <kspalaiologos> surprising
19:30:08 <arseniiv> <kspalaiologos> Is there any interesting esoteric language that isn't hell on earth to implement? => Fractran? ;D
19:31:51 <kspalaiologos> in_ r1/in_ r2/mov r3,256/lbl 1/dec r3/mov r4,r2/pow r4,r3/le_ r4,r1/jnz r4,2/jnz r3,1/lbl 2/out r3
19:31:54 <kspalaiologos> I wonder why doesn't it work
19:32:01 <fizzie> `run /bin/echo hi
19:32:04 <HackEso> hi
19:32:04 <fizzie> b_jonas: Fixed.
19:33:14 <fizzie> As part of general refactoring, I switched the umlbox command line handling around a little, and the new version required a '--' to separate the command from arguments. The previous version implicitly treated everything from the first non-flag argument as positional.
19:33:24 <fizzie> Thanks for letting me know, it was a pretty glaring security hole. :)
19:34:20 <fizzie> (Well, only up to the second layer of sandboxing. But you could've used the network, and made arbitrary changes to the repository.)
19:35:30 <b_jonas> `python3 -cprint(open("/hackenv/bin/??").read()[300:])
19:35:31 <HackEso> of what you are speaking."
19:35:34 <b_jonas> `perl -V
19:35:35 <HackEso> Summary of my perl5 (revision 5 version 28 subversion 1) configuration: \ \ Platform: \ osname=linux \ osvers=4.9.0 \ archname=x86_64-linux-gnu-thread-multi \ uname='linux localhost 4.9.0 #1 smp debian 4.9.0 x86_64 gnulinux ' \ config_args='-Dusethreads -Duselargefiles -Dcc=x86_64-linux-gnu-gcc -Dcpp=x86_64-linux-gnu-cpp -Dld=x86_64-linux-gnu-gcc -Dccflags=-DDEBIAN -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -fdebug-prefix
19:35:38 <b_jonas> `run /usr/bin/perl -V
19:35:39 <HackEso> Summary of my perl5 (revision 5 version 28 subversion 1) configuration: \ \ Platform: \ osname=linux \ osvers=4.9.0 \ archname=x86_64-linux-gnu-thread-multi \ uname='linux localhost 4.9.0 #1 smp debian 4.9.0 x86_64 gnulinux ' \ config_args='-Dusethreads -Duselargefiles -Dcc=x86_64-linux-gnu-gcc -Dcpp=x86_64-linux-gnu-cpp -Dld=x86_64-linux-gnu-gcc -Dccflags=-DDEBIAN -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -fdebug-prefix
19:35:57 <b_jonas> `python3 -cprint(open("/hackenv/bin/??").read()[200:])
19:35:57 <HackEso> ​"$f" ];then exec bash "$f";fi;if [ -r "$f" ];then exec cat "$f";fi;echo "I must confess, I know not of what you are speaking."
19:36:01 <b_jonas> looks better, thanks
19:59:05 -!- stux|away has quit (Remote host closed the connection).
20:01:10 -!- Sgeo has quit (Read error: Connection reset by peer).
20:01:36 -!- Sgeo has joined.
20:11:00 -!- stux|away has joined.
20:11:14 <kspalaiologos> I'm so proud of myself
20:11:19 <kspalaiologos> I wrote a 2 megabyte malbolge
20:11:22 <kspalaiologos> program
20:11:24 <kspalaiologos> that is actually quite fast
20:11:30 <kspalaiologos> and requires just 0.5GB of RAM
20:19:11 <kspalaiologos> https://codegolf.stackexchange.com/a/196292/61379
20:30:40 -!- kspalaiologos has quit (Quit: Leaving).
20:36:33 <b_jonas> is there fictional private detective who is lawful in the D&D alignment sense?
20:56:28 -!- zzo38 has joined.
21:14:53 -!- MDude has quit (Ping timeout: 245 seconds).
21:56:05 -!- Frater_EST has joined.
22:13:07 <b_jonas> fungot, what car would you want to drive if you were rich?
22:13:08 <fungot> b_jonas: i don't fully understand what you're trying to make is wrong!
22:15:23 -!- Frater_EST has left.
22:18:48 <fizzie> b_jonas: Adrian Monk, maybe? I don't know the character that well, so maybe not.
22:19:31 <fizzie> I'm guessing they usually end up employed by some sort of an official police force or equivalent if they're lawful.
22:23:06 <b_jonas> TODO self for HackEso: rewrite rnoodl to a C program that writes output asap rather than waiting for a full line, with some arbitrary short timeout before printing "d" for the exceptional case when it reads "nood" but not the byte after it yet;
22:23:33 <b_jonas> add a command to add to the whatis database; complete the wiki description of the bot
22:24:31 <int-e> What about the Agathy Christie ones, hmm. I guess Miss Marple isn't exactly a PI, she usually investigates people as a favor. Hercule Poirot though... I think is pretty lawful.
22:24:46 <int-e> Meh. Agatha.
22:27:09 <b_jonas> it's hard to tell how to describe Poirot. sometimes he lets criminals get away with what they did, but that isn't enough to make him not lawful.
22:28:09 <b_jonas> He certainly wants order and patterns in his life, and works to force that, but does that matter for the D&D alignment?
22:28:31 <int-e> Right I was getting there... I was focusing on his methods, not on his attitude wrt. delivering criminals to the law where his moral standards differ from those of the law. Tricky!
22:28:32 <b_jonas> He probably died as a lawful.
22:28:53 <b_jonas> fungot, what is the set of Mario games that feature paragoombas?
22:28:53 <fungot> b_jonas: http://luuk.kapsi.fi/ stuff/ fnord/ fnord/ fnord/ index.htm for a better place
22:29:10 <int-e> Most fictional PIs employ unlawful methods.
22:29:29 -!- sprocklem has quit (Remote host closed the connection).
22:29:29 <fizzie> My thinking was along those lines. Marple's not really professionally a private detective, and as for Poirot, I think all those scenes he stages where he tricks the criminal to reveal themselves are kind of maybe non-lawful.
22:30:03 <b_jonas> fizzie: like arranging a scéance with a live actor playing a ghost? sure
22:30:06 <int-e> Ah, funny. Entrapment is illegal for the police... but is it illegal for private entities? :)
22:31:28 <int-e> *Actually* even if we include fictional police detectives, we may be in trouble finding a wholly lawful one.
22:31:28 <fizzie> I don't know if it's illegal, that particular thing just didn't feel like lawful-aligned behavior to me.
22:31:46 <b_jonas> then there's a case when Poirot commits perjury, lying at the inquest about the recently deceased person
22:31:57 <fizzie> int-e: I think Carrot Ironfoundersson would qualify, I just ruled him out becase he's working for the Watch.
22:32:22 <arseniiv> fizzie: b_jonas: whoa, suddenly I want to read Poirot stories (I hadn’t read many classic detective stories in my life, don’t know how had it ended like this)
22:32:32 <int-e> fizzie: Oh yeah he might... I didn't think of fictional societies at all.
22:32:54 <b_jonas> arseniiv: they're worth to read, yes. and then they're kind of hard to discuss at risk of spoilers,
22:33:06 <b_jonas> because there are so many Poirot books that I think most people haven't read all of them
22:33:14 <b_jonas> I've read quite a lot by now, but not all of them by far
22:33:15 <int-e> let's mention triangles and leave it at that.
22:33:33 <b_jonas> my favourite Poirot book is Five Little Pigs
22:33:56 <int-e> I have definitely not read them all.
22:33:57 <fizzie> I'm not sure I've read all of them, but I'd guesstimate at least somewhere close to 90%.
22:34:13 <arseniiv> spoilers => I am not hppavillion[1]
22:34:22 <b_jonas> I just borrowed another Agatha Christie book, it's on my shelf next to me. They're a bit hard to read, but it's usually worth.
22:34:32 <int-e> I have read all Sherlock Holmes stories... but that's a far less daunting endeavor.
22:34:33 <arseniiv> hm how many did she wrote them?
22:35:02 <b_jonas> int-e: I have read I think more than half of the original Sherlock Holmes stories
22:35:02 <arseniiv> how many of Poirot stories/books, I mean
22:35:20 <fizzie> 47 are listed in Wikipedia's "Hercule Poirot in literature" page.
22:35:27 <fizzie> Many are short story collections, though.
22:36:18 <int-e> Yeah, I was just looking at https://en.wikipedia.org/wiki/Agatha_Christie_bibliography ... "daunting" is the right term, I think.
22:36:44 <b_jonas> fizzie: yes, "Labors of Hercules" is a nice short story collection about Poirot
22:37:04 <int-e> Sherlock Holmes is one thick book, maybe comparable to the Lord of the Rings.
22:37:48 <b_jonas> int-e: have you read Andy Weir's Sherlock Holmes stories? there are three of them, see http://www.galactanet.com/writing.html
22:39:30 <fizzie> Of the Marple books, I think I like Nemesis.
22:39:49 <b_jonas> in "Labors of Hercules", Poirot lies that he has a brother who is even more brilliant than him, as an obvious shoutout to Sherlock Holmes. What's the name of that brother?
22:40:01 -!- sprocklem has joined.
22:40:20 <fizzie> Achilles?
22:40:28 <fizzie> ...apparently it's just "Achille".
22:40:44 <b_jonas> ah yes, that's it
22:41:04 <b_jonas> that makes sense, since Achilles is the second greatest hero in the classic greek mythology
22:41:37 <b_jonas> the greatest hero of recent times, where Herakles himself has lived in the distant past
22:46:36 <arseniiv> which number is Theseus?
22:47:40 <fizzie> Other Marple books I like include Sleeping Murder, and The Mirror Crack'd from Side to Side.
22:47:51 <b_jonas> arseniiv: I don't know, I don't think I heard any ranking that goes past Achilles
22:47:55 <b_jonas> s/past/beyond/
22:48:37 <b_jonas> I'll have to re-read The Mirror Crack'd Side to Side. I've read it once, but don't remember it much, and I think I only read it in translation
22:49:13 -!- Sgeo has quit (Read error: Connection reset by peer).
22:49:37 -!- Sgeo has joined.
22:49:42 -!- Deraj has joined.
22:49:50 <b_jonas> among Marple books, I recently read The Murder at the Vicarage, which is a decent story even though the viewpoint person is an annoying character
22:50:15 <b_jonas> and I've read A Murder is Announced recently
22:50:26 <b_jonas> I don't think I've read any Marple books other than those three
22:51:45 <b_jonas> but then there aren't many
22:51:52 <b_jonas> unlike how there are a lot of Poirot books
22:53:12 <b_jonas> there are short stories about Marple too, I should read those if I can find the book
22:55:59 <b_jonas> totally unrelated, I wish to advertise http://www.giantitp.com/forums/showthread.php?601011 which is a play by post game of Magic: the Gathering with three-card decks (no hidden information so everyone is assumed to play optimal strategy if we can figure it out, you don't lose from decking, no mulligans, all cards printed by Wizards are allowed except those that were in the winning deck of any previous
22:56:05 <b_jonas> round)
22:56:44 <b_jonas> it is an esoteric enough game so I think it's relevant here
23:05:44 <esowiki> [[Special:Log/newusers]] create * Deraj * New user account
23:06:02 <Deraj> Uh oh -- I've been caught
23:06:44 <b_jonas> `welcome Deraj
23:06:45 <HackEso> Deraj: 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.)
23:06:46 <Deraj> Side note: that was the toughest captcha ever
23:06:57 <b_jonas> ooh, you like our Befunge captcha?
23:07:08 <b_jonas> or unefunge or whatever it is
23:07:39 <Deraj> Not sure "like" is how I'd describe it, but it is certainly appropriate
23:08:33 <b_jonas> ais523" ^
23:09:48 <Deraj> Am I lame for searching for an online Befunge interpreter instead of actually learning the language just to please the captcha?
23:10:04 <b_jonas> no
23:10:15 <b_jonas> finding a befunge interpreter is a good way to solve the captcha
23:11:00 <Deraj> I guess if you can't do that, you're probably not really THAT into esoteric programming languages
23:13:02 <fizzie> We had a brainfuck one before, yet got spam past it, which was pretty bizarre.
23:14:22 <b_jonas> fizzie: I learned from kspalaiologos that casinos use brainfuck. casinos also send spam. so it's no wonder they can get past the captcha.
23:14:56 <Deraj> Wow. I know on the PICO-8 BBS, zep's impression was that a unique (game) captcha was probably sufficient, because who would waste their time trying to spam a tiny community? Apparently casinos!
23:15:12 <b_jonas> I think if we set an APL captcha, we'd get spam from the finance sector advertising investment opportunities.
23:15:13 <fizzie> I just find it hard to believe anyone would pay individual attention to our wiki, which gets very little traffic.
23:15:38 <fizzie> And if we set a Coq captcha, we get spam from all the computer science departments advertising postdoc positions?
23:16:12 <b_jonas> Yes. And if we set a PHP captcha, we'd get spam from people advertising web hosting and mass mailers.
23:16:37 <Deraj> Or maybe... defeating the Brainfuck captcha was an inside job...
23:17:04 <b_jonas> wait
23:17:08 <b_jonas> wasn't it brainfuck that the casinos use?
23:17:17 <b_jonas> `? kspalaiologos
23:17:18 <HackEso> kspalaiologos is a brainfuck addict. He's secretly disassembling brainfuck code for a casino that lost the source code. Apparently knows the secret of Malbolge.
23:17:20 <b_jonas> yes, brainfuck
23:17:29 <b_jonas> who uses befunge then?
23:17:31 <fizzie> alexa.com's site analysis on esolangs.org says that our top search keywords are "brainfuck", "aaaaaaaaaaaaaa", "malbolge" and "aaaaaaaaaaaaaaa".
23:17:46 <fizzie> Two of them are unsurprising, but I'm not sure what all the a's are about.
23:18:12 <b_jonas> https://esolangs.org/wiki/AAAAAAAAAAAAAA!!!!
23:18:33 <fizzie> I guess. Not sure if people are actually looking for that though.
23:18:55 <fizzie> Apparently our wiki captures 6.25% of all "brainfuck" searches. Well, that's not too shabby.
23:19:00 <b_jonas> fizzie: sure, but even google can't always guess what they're looking for when they type aaaaaaaaaaaa
23:19:19 <Deraj> Are you sure you got the correct number of a's?
23:19:26 <b_jonas> no
23:19:40 <fizzie> Also apparently our primary competitors are inform7.com, copy.sh, progopedia.com and muppetlabs.com.
23:20:12 <b_jonas> fizzie: competitors for brainfuck specifically, or in general?
23:20:22 <int-e> muppetlabs!
23:20:45 <int-e> b_jonas: I'd guess in general
23:22:33 <fizzie> In general, yes.
23:22:52 <fizzie> I don't quite understand these metrics.
23:23:09 <fizzie> We get 72.2% of "search traffic", compared to our competitors average of 6.5%.
23:23:27 <fizzie> "The percentage of organic search referrals to this site"
23:23:54 <b_jonas> hmm, then we should feature organic esolangs to cater to our audience
23:24:10 <fizzie> They recommend we should add keywords for "sql", "is sql a programming language" and "windows 98", these are "keywords driving traffic to competitors but not this site".
23:24:45 <fizzie> And we should improve our existing content on "mmmm", "collatz" and "chicken tendies", which are already driving some traffic but could do more.
23:24:47 <b_jonas> is Homespring organic? how about The Waterfall Model?
23:24:56 <fizzie> I don't think this is a super-useful analysis for us.
23:25:11 <fizzie> But the key point I came here to look for is, our global rank is #400,358.
23:25:59 <arseniiv> b_jonas: my ones are 100,00000001048% organic
23:26:37 <b_jonas> arseniiv: because they're tree-based and trees are organic?
23:26:41 <arseniiv> (don’t ask about that 0,00000001048% overshoot, I don’t know what causes it)
23:26:51 <arseniiv> b_jonas: that too!
23:27:25 <b_jonas> MIX is polyunsaturated, I think it's too old to have bought into the organic fad
23:27:31 <arseniiv> but not all of them are tree-based. Though terms are trees, naturally, and one of them uses a kind of terms
23:27:55 <b_jonas> does Real Fast Nora's Hair Salon use organic shampoo?
23:28:13 <b_jonas> is A Pear Tree organic?
23:28:36 <arseniiv> Nora is the best
23:30:15 <arseniiv> it’s quite a joke that much of organic chemistry technology products are not organic in this sense
23:30:50 <arseniiv> like, even something as simple as acetone
23:31:30 <arseniiv> or, as I like to call it in private, propan-2-one
23:31:50 -!- arseniiv has quit (Quit: gone completely :o).
23:35:16 -!- Deraj has quit (Remote host closed the connection).
23:57:35 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=67333&oldid=67277 * Deraj * (+157) /* Introductions */
23:57:43 -!- tahw has quit (Remote host closed the connection).
23:58:01 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=67334&oldid=67333 * Deraj * (+78) /* Introductions */
23:58:15 <esowiki> [[SIC-1 Assembly Language]] N https://esolangs.org/w/index.php?oldid=67335 * Deraj * (+2466) Created page with "'''SIC-1 Assembly Language''' is the primary (and, currently, only) language used for programming SIC Systems's '''Single-Instruction Computer, Mark 1 (SIC-1)'''. The SIC-1 is..."
23:59:33 -!- Deraj has joined.
2019-11-23
00:04:17 <Deraj> Apologies if this type of message is frowned upon, but I've been working on a programming game that uses an esoteric computer architecture (single instruction), and thought that #esoteric might be the best (only?) place to find people who might be interested in such things
00:05:11 <Deraj> I just put up a page on the language (trying to follow all applicable policies!) and there is a link to the game at the end (under External Resources): https://esolangs.org/wiki/SIC-1_Assembly_Language
00:07:04 <Deraj> Additionally, if anyone knows of any other esoteric programming games, please point me to them! For what it's worth, I've enjoyed Zachtronics's games (esp. TIS-100 -- which I'm surprised isn't represented on esolang!)
00:10:04 -!- Deraj1 has joined.
00:11:17 <fizzie> We've definitely discussed TIS-100.
00:11:42 <fizzie> (I finally bought SHENZHEN I/O the other day, now that it was 50% off.)
00:15:22 <fizzie> As for other games, there's https://esolangs.org/wiki/Category:Programming_games
00:15:48 <fizzie> BF Joust is played in sporadic bursts of activity, though it's been a long time since the last one.
00:15:52 <esowiki> [[Whitespace]] https://esolangs.org/w/index.php?diff=67336&oldid=67125 * SergeJohanns * (+284) /* Truth-machine */
00:16:34 <fizzie> The others are probably not played. Well, except maybe Core War, that might still be going, it's the most well-known of them of course.
00:16:56 <esowiki> [[Whitespace]] M https://esolangs.org/w/index.php?diff=67337&oldid=67336 * SergeJohanns * (+13) Formatted as code
00:22:25 <Deraj1> Heh, not sure how I missed the Programming Games category -- thanks!
00:23:06 <Deraj1> And yeah, I ran across Core War a little while back, but never really gave it a try
00:26:50 <Deraj1> @fizzie have you tried Shenzhen I/O yet? I'm wondering how it compares to TIS-100 (haven't gotten I/O yet)
00:26:50 <lambdabot> Unknown command, try @list
00:26:50 -!- oerjan has joined.
00:28:50 <fizzie> Not yet. But I know at least int-e and shachaf did.
00:29:11 <shachaf> I only played a small amount of it.
00:32:10 <Deraj1> shachaf, is that "only played a small amount because that's all I had time for" or "only played a small amount because it wasn't really what I was looking for"? :)
00:32:15 <oerjan> * A * (+379) Just saw Bin-8 and it is really amazing! <-- is e being sarcastic, or admitting to being the same person?
00:34:24 <shachaf> Probably more the latter?
00:36:21 * oerjan briefly misinterpreted shachaf as responding to him
00:37:14 <oerjan> i suppose you might going for a schrödingmsg
00:37:18 <oerjan> *might be
00:40:27 <oerjan> <wib_jonas> you know how we have several quotes where fungоt gives an amusingly appropriate reply? we should try to brute force more of those [...] <-- that's cheating tdnh
00:41:17 <oerjan> if you're not surprised when it happens, it's not a good quote.
00:42:09 <shachaf> Most of those quotes are borderline anyway.
00:42:51 <oerjan> true enough. fungot gets a lot of slack due to his charisma and cute looks.
00:42:51 <fungot> oerjan: i guess it is harder than being a vegetarian. :p i'm not sure what
00:43:33 <oerjan> `5
00:43:35 <HackEso> 1/2:383) <oklopol> you know that thing in the movies where they put a pillow on someone's face and try to suffocate them <oklopol> that doesn't work. <oklopol> we tried that with my ex once, but we just couldn't kill each other that way \ 580) <zzo38> I am just saying something that I think I once saw some idea somewhere, I forget, was it on television? \ 151) <cpressey> fizzie: I can never tell with OpenBSD! <cpressey> everything looks lik
00:43:38 <oerjan> `n
00:43:39 <HackEso> 2/2:e an error anyway \ 1244) <hppavilion[1]> izabera: It's sort of like the principal, as far as I know. <hppavilion[1]> Except It only prints "<N> BOTTLES OF BEER ON THE WALL!" Counting down from 99 to 0. With no line breaks. \ 461) <oklopol> i started running and smoking <oklopol> i love my lungs the way they are so trying to balance them out
00:44:02 <shachaf> Remember the good old pre-n times?
00:44:28 <oerjan> paradoxically, we deleted more quotes then.
00:49:09 -!- tahw has joined.
00:51:19 <oerjan> `emoclew tahw
00:51:21 <HackEso> ​(.tenLAD ro tenFE no ciretose# yrt ,aciretose fo dnik rehto eht roF) .</gro.sgnalose//:sptth> :ikiw ruo tuo kcehc ,noitamrofni erom roF !tnemyolped dna ngised egaugnal gnimmargorp ciretose rof buh lanoitanretni eht ot emocleW :what
00:51:57 <tahw> hi.
00:52:34 <oerjan> `? ciretose
00:52:35 <HackEso> ciretose? ¯\(°​_o)/¯
00:55:13 <oerjan> `learn ciretose# is #esoteric's evil twin. It's all full of sickly sweet messages.
00:55:15 <HackEso> Learned 'ciretose#': ciretose# is #esoteric's evil twin. It's all full of sickly sweet messages.
00:56:05 -!- Deraj has quit (Remote host closed the connection).
00:56:37 <oerjan> hm Deraj also seems a little reversed. maybe they're invading.
00:57:03 <tahw> no affiliation.
00:57:54 <shachaf> Deraj seems to be devading if anything.
01:00:48 <oerjan> that may be just a ruse.
01:01:09 <oerjan> especially since e's still here.
01:02:34 -!- tahw has quit (Remote host closed the connection).
01:03:33 <oerjan> i hope e didn't take us seriously.
01:03:44 <oerjan> well, me.
01:06:22 <esowiki> [[SIC-1 Assembly Language]] https://esolangs.org/w/index.php?diff=67338&oldid=67335 * Deraj * (+98)
01:08:20 <esowiki> [[Subleq]] https://esolangs.org/w/index.php?diff=67339&oldid=63180 * Deraj * (+144)
01:09:10 <Deraj1> Still here -- my IRC client kept disconnecting, so I joined with a different one
01:15:24 <Deraj1> On the wiki, it looks like the "Programming games" category page doesn't have anything linking to it (per the "What links here" link) -- any reason it shouldn't be on the Categories page (e.g. having a game isn't a property of the language)?
01:26:19 <oerjan> Deraj1: technically that category was created against policy, but we've long ago slipped on actually enforcing it.
01:26:44 <zzo38> I read the Wikipedia article about ReDoS; can some implementations of regular expressions optimize the specified regular expressions? It look like to me that optimization is possible
01:26:45 <oerjan> (it _should_ have been discussed on the Esolang talk:Categories page first.)
01:27:35 <zzo38> Such as optimizing /(a+)+/ as /a+/ and /(a|aa)+/ as /a+/ also
01:28:11 <zzo38> And /(a|a?)+/ as /a*/
01:29:01 <oerjan> the very existence of the policy is probably discouraging us from cleaning up such stuff, since we'd be supposed to do the discussion part first.
01:30:10 * oerjan considers doing the sensible thing
01:30:31 * oerjan gets a bad feeling about it, as usual.
01:30:42 <zzo38> If a policy is no good, don't use it.
01:31:11 <oerjan> well what i was considering was proposing to abolish it.
01:31:14 <Deraj1> oerjan, thanks. From my outsider's perspective, I think the policy for discussing before creating makes sense... not sure discussing before undoing/deleting seems necessary
01:31:48 <oerjan> Deraj1: well i think this particular category would be good to have.
01:32:11 <Deraj1> Gotcha
01:32:15 <zzo38> I think discussing should be needed before deleting (unless it is clear is not helpful to do), but not necessary for undoing unless it is subsequently redone and undone
01:34:26 <Deraj1> Just to clarify, I meant that if some random person (e.g. me) came in and (probably inadvertently) made a change that went against policy, undoing that change without discussion seems sensible. Sort of a "nip it in the bud" approach so mistakes don't spread
01:35:31 <zzo38> Yes, I did say discussion should not normally be necessary for undoing, due to that
01:35:50 <Deraj1> Anyway, oerjan, I specifically searched esolang for programming games, so at least one person would have found that surfacing that category better useful. But I also think having a game isn't a property of a programming language, and so I could see a reasonable argument for eliminating the "Programming game" category if you want to keep esolang focused on just the languages themselves
01:36:23 <Deraj1> In other words, I'm not helpful :)
01:36:47 <zzo38> I think there are uses to add such categories especially if there is a significant number of articles that would belong.
01:37:05 <zzo38> (In some cases categories are not needed because you have namespaces.)
01:37:51 <oerjan> Deraj1: we have some languages that are _clearly_ games, like BFJoust.
01:38:04 <oerjan> the mention in Agony is borderline though.
01:38:26 <oerjan> also, we have many articles that are not languages
01:39:09 <zzo38> Yes, that is why you will have a category for the articles that are languages, so that you can omit the articles that are not languages.
01:41:44 <Deraj1> Makes sense. Seems like a useful/appropriate category to me then
01:44:46 -!- \oren\ has quit (Ping timeout: 246 seconds).
02:15:56 -!- Deraj1 has quit (Ping timeout: 240 seconds).
02:25:24 <oerjan> <fizzie> They recommend we should add keywords for "sql", "is sql a programming language" and "windows 98", these are "keywords driving traffic to competitors but not this site". <-- i think zzo38 has done enough esoteric stuff in sql that the first suggestion nearly makes sense
02:27:32 <shachaf> is windows 98 a programming language
02:33:42 <esowiki> [[Deadfish]] https://esolangs.org/w/index.php?diff=67340&oldid=66586 * Oerjan * (-4) /* GNU bc */ This must be wrong
02:36:22 <esowiki> [[Deadfish]] https://esolangs.org/w/index.php?diff=67341&oldid=67340 * Oerjan * (+1) /* C++ Codegolfed */ I've been away from this page too long...
02:39:47 <esowiki> [[Deadfish]] https://esolangs.org/w/index.php?diff=67342&oldid=67341 * Oerjan * (-112) /* Deadfish "self-interpreter" */ Remove this nonsense
02:41:01 <oerjan> as usual, our ability to check entries for bugs decreases steeply with esotericness
02:42:37 <shachaf> Wait, why is turning > into == golfing?
02:43:52 <shachaf> Oh, the name of the section is "C++ Codegolfed". I just saw the diff.
02:45:39 <fizzie> To be fair, it's not particularly golfed in the first place.
02:45:57 <shachaf> Yes.
02:46:06 <shachaf> Oh, it's by the person who may or may not be A.
02:46:10 <shachaf> I guess that person isn't A?
02:47:01 -!- Deraj1 has joined.
02:47:06 <shachaf> I certainly wouldn't give that program an A.
02:49:13 <esowiki> [[Deadfish]] https://esolangs.org/w/index.php?diff=67343&oldid=67342 * Oerjan * (-8741) /* Powder */ I'm removing this on the principle that a Deadfish interpreter must at *least* support up to 17*17 == 289
02:59:00 <esowiki> [[Deadfish]] https://esolangs.org/w/index.php?diff=67344&oldid=67343 * Fizzie * (+63) /* Go */ Support multiple commands per line, avoid panic at EOF
02:59:23 <esowiki> [[Deadfish]] https://esolangs.org/w/index.php?diff=67345&oldid=67344 * Oerjan * (+307) /* Example programs */ I'm editing this in as policy
03:06:30 <esowiki> [[Deadfish]] M https://esolangs.org/w/index.php?diff=67346&oldid=67345 * Oerjan * (-961) /* Seabass */ mv
03:08:39 <esowiki> [[Deadfish]] M https://esolangs.org/w/index.php?diff=67347&oldid=67346 * Oerjan * (+961) /* Seed7 */ -> mv
03:10:06 <oerjan> argh
03:15:21 <oerjan> the sed one is wrong but how does it work...
03:17:47 <fizzie> Looks unary to me. With a decimal conversion based on matching multiples of ten.
03:19:31 <fizzie> Didn't see anything like the 256 rule, but that should be quite possible to add, just s/^;\{256\}$// in the right place.
03:21:12 <esowiki> [[Deadfish]] https://esolangs.org/w/index.php?diff=67348&oldid=67347 * Oerjan * (-214) /* (GNU) sed */ correct and mv
03:21:42 <esowiki> [[Deadfish]] M https://esolangs.org/w/index.php?diff=67349&oldid=67348 * Oerjan * (+239) /* Seabass */ -> mv
03:23:17 <oerjan> fizzie: yeah i just needed to look up the hold space commands
03:24:15 <oerjan> hmph Thue as well
03:26:06 <oerjan> argh
03:38:33 <oerjan> hm *| seems to signal readiness for another command, should be possible to insert the check there
03:40:22 -!- imode has joined.
03:42:05 <esowiki> [[Deadfish]] M https://esolangs.org/w/index.php?diff=67350&oldid=67349 * Oerjan * (-768) /* Thue */ mv ->
03:42:13 <esowiki> [[Deadfish]] M https://esolangs.org/w/index.php?diff=67351&oldid=67350 * Oerjan * (+768) /* This=That */ -> mv
03:45:28 <esowiki> [[Deadfish]] https://esolangs.org/w/index.php?diff=67352&oldid=67351 * Oerjan * (+116) Undo revision 67342 by [[Special:Contributions/Oerjan|Oerjan]] ([[User talk:Oerjan|talk]]) (apparently this is actually a language, which the lack of link did nothing to clarify)
03:48:15 <oerjan> ok that "fixes" everything other than the Thue problem since my last edit back in January
03:48:45 <oerjan> (everything i can judge, anyway)
03:52:31 <oerjan> the Thue may be fixable but i'd need to understand the program first
03:55:44 <imode> quick poll: harvard architecture or von neumann?
04:05:22 -!- MDude has joined.
04:08:29 -!- Deraj1 has quit (Quit: Leaving).
04:42:34 -!- Znon369 has joined.
04:42:54 -!- Znon369 has left ("Quit").
04:51:07 -!- xkapastel has joined.
05:24:33 -!- divergence has quit (Ping timeout: 265 seconds).
05:26:38 -!- diverger has joined.
05:44:23 -!- imode has quit (Ping timeout: 276 seconds).
06:49:28 <esowiki> [[Deadfish]] https://esolangs.org/w/index.php?diff=67353&oldid=67352 * Kritixilithos * (-5) /* (GNU) sed */ removed superfluous /^/ check
06:51:17 -!- kritixilithos has joined.
06:52:35 <kritixilithos> oerjan: yes, the sed solution stores the number as unary and converts to decimal to output
06:53:07 <kritixilithos> and I removed the /^/ check
06:53:55 <kritixilithos> does the wiki not have something to automatically sort entries?
06:59:00 -!- b_jonas has quit (Remote host closed the connection).
07:01:38 <zzo38> Windows 98 is not a programming language, I think, but SQL is a programming language.
07:10:49 -!- xkapastel has quit (Quit: Connection closed for inactivity).
07:13:07 <oerjan> kritixilithos: thanks
07:13:22 -!- xkapastel has joined.
07:14:34 <oerjan> i don't know about sorting sections (and some of them are not sorted by the literal section name)
07:19:35 <oerjan> hm it may not be possible other than for tables
07:22:21 <kritixilithos> argh realised my decimal-to-unary converter borks for 99
07:23:37 <kritixilithos> can be fixed with one ugly byte
07:42:17 <esowiki> [[Deadfish]] https://esolangs.org/w/index.php?diff=67354&oldid=67353 * Kritixilithos * (-20) /* (GNU) sed */ fixed decunary bug with 9s and golfed
07:43:02 <kritixilithos> esowiki can't print non-ascii chars? I had a '→' in there
07:43:21 <oerjan> shouldn't be a problem...
07:43:43 <oerjan> oh the bot? right, it can't
07:43:53 <int-e> or doesn't :)
07:44:17 <oerjan> something about the mediawiki irc interface
07:44:21 <int-e> . o O ( Interesting problem of word choice when it comes to a program :) )
07:44:42 <oerjan> i mean, the problem is in a mediawiki component iirc
07:44:49 <kritixilithos> ah
07:44:49 <int-e> . o O ( When you say that a program cannot do something, do you allow for the possibility of somebody patching it so it can? )
07:44:51 <oerjan> fizzie: ^
08:00:00 -!- kritixilithos has quit (Quit: quit).
08:19:08 <esowiki> [[Realm]] M https://esolangs.org/w/index.php?diff=67355&oldid=65708 * Hakerh400 * (-30) Updated paradigm
08:21:49 -!- oerjan has quit (Quit: Nite).
08:59:57 <zzo38> Why is there sometimes problems having to do with television captions containing apostrophes?
09:01:08 <int-e> . o O ( What's television? )
09:01:24 -!- iczero has quit (Remote host closed the connection).
09:01:34 <int-e> But it's probably a Unicode problem ;-)
09:01:42 -!- iczero has joined.
09:02:14 <int-e> (Actually that's redundant, should write "But it's probably Unicode")
09:02:56 -!- kspalaiologos has joined.
09:04:05 <kspalaiologos> @tell imode von neumann for sure, it's way more fun
09:04:05 <lambdabot> Consider it noted.
09:05:39 <int-e> Hmm, why does the Harvard architecture not have a person's name attached to it.
09:06:04 <int-e> `? unicode
09:06:07 <HackEso> Unicode is a mess invented in 1988 by Xerox, Microsoft, the Spanish Inquisition, and the evil Human Supremacy Corporation, in order to make it easier for the government to spy on Chinese people.
09:07:30 <int-e> `? ascii
09:07:31 <HackEso> Ascii is the plural of ascius, "of or pertaining to southern countries, near the equator".
09:10:22 <int-e> `unidecode ↈ
09:10:22 <HackEso> ​[U+2188 ROMAN NUMERAL ONE HUNDRED THOUSAND]
09:12:46 <zzo38> Television captions do not use Unicode.
09:13:19 <zzo38> I have seen in one show all apostrophes were replaced by "4". In another show, all lines got cut off after the first apostrophe on that line. In another show, each apostrophe was doubled after some amount of space, which varied.
09:23:16 <zzo38> Can it be detected by C preprocessor to check for BSD or GNU system?
09:23:56 <int-e> zzo38: It doesn't really matter whether the captions themselves use Unicode though.
09:24:23 <int-e> It just has to be somewhere in the processing pipeline.
09:24:43 <zzo38> int-e: OK, yes, I suppose you are correct; that might be.
09:25:30 <int-e> And (obviously, I hope) I know nothing about this.
09:25:31 <zzo38> This problem seems to be mainly with apostrophes whenever it occurs (although most captions with apostrophes do not have these problems)
09:27:39 <int-e> . o O ( Which is your favorite "apostrophe"? '`’‘′ )
09:28:03 <int-e> (I probably missed a couple.)
09:28:29 <zzo38> The ASCII apostrophe '
09:31:03 <zzo38> (If they used ASCII to write the captions rather than Unicode, then it shouldn't be the problem because the ASCII code for the apostrophe is the same as the EIA-608 code for the apostrophe. There are some characters difference, but apostrophe isn't one of them.)
11:07:29 <esowiki> [[Special:Log/newusers]] create * OND * New user account
11:14:14 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=67356&oldid=67334 * OND * (+219) /* Introductions */
11:15:22 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=67357&oldid=67356 * OND * (+17)
11:25:07 <esowiki> [[Talk:Chef]] https://esolangs.org/w/index.php?diff=67358&oldid=11223 * OND * (+714) /* Chef / Portal ? */
11:28:01 -!- nico_nico has joined.
11:29:34 <esowiki> [[Talk:Chef]] https://esolangs.org/w/index.php?diff=67359&oldid=67358 * Palaiologos * (+326)
11:31:19 -!- arseniiv has joined.
11:35:31 -!- nico_nico has quit (Quit: WeeChat 2.6).
11:35:40 -!- nico_nico has joined.
11:39:13 -!- nico_nico has quit (Client Quit).
11:39:23 -!- nico_nico has joined.
11:42:43 -!- nico_nico has quit (Client Quit).
12:06:15 -!- b_jonas has joined.
12:28:18 <b_jonas> maybe it's one of those stupid filters that remove apostrophes supposedly with the goal of stopping SQL injectinos
12:33:39 <fizzie> @tell oerjan Actually, it might have been in the bot, not in the MediaWiki component. I wanted to filter out control characters (0-2, 4-31, 127) but due to signedness of char I may have intentionally also filtered all bytes >127 as well.
12:33:39 <lambdabot> Consider it noted.
12:53:27 <b_jonas> oh that was the problem. damn you ebay for not giving a specific enough error message
12:55:16 <b_jonas> in the checkout, ebay gave me an error message at the step when I tried to change the currency for paypal payment. this reoccured on all retries so I couldn't pay.
12:56:07 <b_jonas> solution is to pay the two sellers in my checkout separately.
13:12:00 <b_jonas> oh the other hand, look, they fixed the interface that displays the Paypal currency conversion rate on ebay's checkout page!
13:12:22 <b_jonas> it no longer says "1 HUF = 0.00 AUD", it says "1 HUF = 0.0046 AUD" now
13:21:12 -!- nico_nico has joined.
13:39:36 <esowiki> [[User:PythonshellDebugwindow]] https://esolangs.org/w/index.php?diff=67360&oldid=67196 * PythonshellDebugwindow * (+51)
13:40:15 <esowiki> [[User:PythonshellDebugwindow]] https://esolangs.org/w/index.php?diff=67361&oldid=67360 * PythonshellDebugwindow * (+4)
13:50:49 -!- xkapastel has quit (Quit: Connection closed for inactivity).
15:09:03 -!- Soni has quit (Ping timeout: 264 seconds).
15:11:12 <kspalaiologos> I'm building brainfuck-to-anything transpiler in Brainfuck
15:11:28 <kspalaiologos> something like awib but kinda better
15:12:23 <esowiki> [[User:Palaiologos]] https://esolangs.org/w/index.php?diff=67362&oldid=67331 * Palaiologos * (+157) Current work
15:20:25 -!- unlimiter has joined.
15:32:18 -!- Soni has joined.
15:55:11 -!- imode has joined.
16:20:12 -!- lifthrasiir has quit (Read error: Connection reset by peer).
16:21:26 -!- lifthrasiir has joined.
16:35:26 -!- Soni has quit (Ping timeout: 252 seconds).
16:35:49 -!- Soni has joined.
16:39:06 -!- xkapastel has joined.
17:18:04 -!- nico_nico has quit (Quit: WeeChat 2.6).
17:21:58 -!- Cale has quit (Ping timeout: 245 seconds).
17:34:19 -!- Cale has joined.
17:48:38 -!- Lord_of_Life has joined.
17:59:20 <esowiki> [[Arch]] M https://esolangs.org/w/index.php?diff=67363&oldid=66073 * SergeJohanns * (-1) /* Cells & SPLIT */
18:00:18 <esowiki> [[Arch]] M https://esolangs.org/w/index.php?diff=67364&oldid=67363 * SergeJohanns * (+0) /* POINT */
18:07:18 <imode> this is totally not esolang related, but it is a puzzle. I have an image that I know is rendered using a heightmap as reference, but I don't know the rules used to render and construct the heightmap: https://cdn.discordapp.com/attachments/374727754551132162/647843802220068874/XikClZ6.png
18:07:51 <kspalaiologos> if someone asked me for an opinion
18:08:03 <imode> from what I can see, it's a tile-based heightmap.
18:08:03 <kspalaiologos> of a person that remembers it thru the fog
18:08:22 <kspalaiologos> red represents points high above sea level
18:08:25 <kspalaiologos> and blue represent ones below
18:08:32 <kspalaiologos> the lines are used to mark changes of terrain
18:08:58 <kspalaiologos> everything enclosed by this fancy circle is located above everything outside
18:09:32 <imode> my working theory is: given a tile at (x, y), all of distance 1 away from that tile all have to have a heightmap difference of 1 from the source tile.
18:09:48 <imode> meaning from any tile to any other tile, there has to be a height distance of 1.
18:10:14 <imode> you can't have one tile 2 tiles higher than another tile.
18:10:30 <imode> this is interesting.
18:13:47 <imode> http://i.imgur.com/3qGMZtS.png a similar situation. perplexing.
18:15:50 <zzo38> b_jonas: One of them cut off everything after the apostrophe, not the apostrophe itself. I didn't see the one that just stripped out the apostrophe.
18:27:13 -!- Lord_of_Life has quit (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine).
18:36:24 -!- Lord_of_Life has joined.
18:44:56 <esowiki> [[User:SergeJohanns]] N https://esolangs.org/w/index.php?oldid=67365 * SergeJohanns * (+537) Created page with "Hello there, I'm Serge. I'm a CS and Applied Maths major with an interest in esolangs. I first got into Brainfuck, but I'm also interested in stack-based languages like befung..."
18:51:16 -!- Lord_of_Life has quit (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine).
18:53:42 -!- Lord_of_Life has joined.
19:05:17 <esowiki> [[User talk:Palaiologos]] https://esolangs.org/w/index.php?diff=67366&oldid=67299 * Palaiologos * (+787) b2all
19:05:57 <esowiki> [[User talk:Palaiologos]] https://esolangs.org/w/index.php?diff=67367&oldid=67366 * Palaiologos * (+41) My nick on #esoteric
19:06:15 <kspalaiologos> ^-- someone willing to help with b2all by donating a backend?
19:06:21 <kspalaiologos> while keeping the copyright obviously
19:09:23 <imode> https://cdn.discordapp.com/attachments/374727754551132162/647876286936645695/2019-11-23-110839_1600x900_scrot.png figured it out.
19:10:47 <kspalaiologos> that's some dope ass workspace setup
19:10:52 <kspalaiologos> is it some kind of customized tmux?
19:10:58 <kspalaiologos> I recognize irssi
19:11:04 <kspalaiologos> and nano
19:11:07 <imode> weechat and i3.
19:11:34 <kspalaiologos> the font is lovely tho
19:12:13 <kspalaiologos> it's great
19:12:14 <kspalaiologos> I love it
19:12:46 <imode> font is proggyclean.
19:13:10 <imode> https://hatebin.com/oaimonphqn here's my i3 config.
19:13:20 <kspalaiologos> I'm actually a cmd peasant
19:13:33 <kspalaiologos> and I use heavily customized csh
19:13:37 <kspalaiologos> on source level
19:14:01 <kspalaiologos> http://prntscr.com/q13g8u
19:14:23 <kspalaiologos> cmd's font can't render powerline characters
19:14:26 <kspalaiologos> so I'm screwed on that one
19:15:20 <imode> that does suck.
19:16:06 <kspalaiologos> so yeah
19:16:10 <kspalaiologos> my working conditions are terrible
19:16:15 <kspalaiologos> and I'm inproductive as heck
19:16:40 <imode> migrate to a tiling wm.
19:17:10 <kspalaiologos> I wish I could use vi well enough for it to be more convinient to use than notepad++
19:17:24 <kspalaiologos> but vi would bump my productivity a couple of times if I mastered it
19:17:33 <kspalaiologos> and I don't really fancy learning next thing in my free time
19:17:56 <kspalaiologos> I'm stuck with dwm that presumes
19:18:12 <kspalaiologos> albeit I can write really fast on a keyboard, I can't get used to shortcuts really
19:18:46 <zzo38> I like to use the "Fixed" font. What terminal emulator are you using though?
19:18:59 <imode> me?
19:19:20 <imode> xterm.
19:19:23 <b_jonas> `font
19:19:24 <HackEso> ​/srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: font: not found
19:19:28 <b_jonas> `? font
19:19:29 <HackEso> ​#esoteric bitmap fonts include: \oren\'s font http://www.orenwatson.be/fontdemo.htm , lifthrasiir's font https://github.com/lifthrasiir/unison/ , b_jonas's font http://www.math.bme.hu/~ambrus/pu/fecupboard20-c.pcf.gz , fizzie's font https://github.com/fis/rfk86/tree/master/web/font , FireFly's fonts http://xen.firefly.nu/up/fonts/
19:19:30 <zzo38> I am using xterm also
19:19:36 <b_jonas> kspalaiologos: ^ we have some official #esoteric fonts
19:20:11 <kspalaiologos> oren's font looks dank
19:20:19 <kspalaiologos> I may use it on some occasion
19:20:37 <kspalaiologos> unison
19:20:50 <kspalaiologos> 's feeling is quite nice but letter shapes are quite bad
19:20:54 <imode> https://media.discordapp.net/attachments/374727754551132162/647879240074788884/2019-11-23-112033_1600x900_scrot.png?width=877&height=494
19:21:00 <imode> another shot of a small clearing.
19:21:13 <imode> should probably color the backdrop green or something.
19:21:19 <kspalaiologos> b_jonas, I can't view your font
19:21:22 <kspalaiologos> no idea what format is it
19:21:53 <zzo38> It seems to be pcf format? X window system should be able to load it
19:22:15 <esowiki> [[Special:Log/newusers]] create * AethanCervisiolus * New user account
19:22:37 <kspalaiologos> I'm on Windows
19:23:00 <zzo38> I think FreeType can read it even on Windows
19:23:35 <kspalaiologos> FireFly's font is amazing too
19:23:49 <FireFly> which one of them?
19:24:02 <FireFly> I just like doing tiny bitmap things
19:24:08 <kspalaiologos> 9x5 and 7x5
19:24:14 <kspalaiologos> other look a tiny bit gibberish
19:24:19 <kspalaiologos> but these are perfect
19:24:26 <zzo38> I would want a version of Fixed using my "terminal emulation character set" as the character coding, rather than ISO-8859-1 or Unicode.
19:25:14 <kspalaiologos> FireFly, could you send me a ttf?
19:25:22 <kspalaiologos> because I'd like to use it
19:25:27 <FireFly> no, I don't have one
19:25:44 <kspalaiologos> ah, that's a shame
19:26:05 <FireFly> you can copy out a bdf from the textbox to the right I believe
19:26:22 <FireFly> which you could use as is or convert to other formats perhaps.. I know I've gotten it to work in xterm with the bdf
19:26:36 <FireFly> but I don't remember exactly how; fonts are a bit of a dark art
19:27:31 <FireFly> http://xen.firefly.nu/up/fonts/7x5px-font.png is the "source" format for my bitmap fonts, then I have some janky JS parse the glyphs out of that
19:27:34 <zzo38> Convert to pcf and then put it in the X fonts directory, and then you can use it with xterm and other programs that support the X font system
19:27:45 <FireFly> ah, well there you go
19:27:46 <FireFly> do that :p
19:29:10 <zzo38> Type "xset q" to list the font path, and "xset fp rehash" forces the server to reread the font databases if necessary
19:33:26 <esowiki> [[Special:Log/newusers]] create * Enenbee * New user account
19:35:36 -!- sftp_ has joined.
19:36:15 <esowiki> [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=67368&oldid=67357 * Enenbee * (+124)
19:37:38 -!- sftp has quit (Ping timeout: 265 seconds).
19:37:38 -!- sftp_ has changed nick to sftp.
19:38:28 <esowiki> [[User:Enenbee]] N https://esolangs.org/w/index.php?oldid=67369 * Enenbee * (+71) Created page with "I have not made any programming languages yet, but I am working on one!"
19:39:09 -!- Frater_EST has joined.
19:39:14 <b_jonas> zzo38: fecupboard20 has some fancy graphical stuff at the control character places
19:40:32 <zzo38> b_jonas: What fancy stuff? (I have not downloaded the font, so I haven't looked)
19:44:35 <b_jonas> zzo38: there are some line drawing characters, at the place where xterm would expect it in a non-unicode font; some cp437 graphical characters like the smiley face; and thin versions of the cp437 letters at the C1 control positions of iso-8859-1
19:44:58 <b_jonas> you get copies of the line drawing and low control 437 graphical characters up high in unicode positions
19:45:13 <b_jonas> the cp437 letters are mostly for debugging in case they're shown for some reason
19:45:24 <b_jonas> but you almost never see these because terminal emulators just won't print control characters
19:46:35 <zzo38> OK
19:49:07 <kspalaiologos> I've taken on a very ambitious goal of learning modern Latin
19:49:31 <kspalaiologos> it's some kind of an esoteric spoken language for todays standards lol
19:50:31 <zzo38> The Catholic Church still uses Latin though, and sometimes has to make up new words for stuff that didn't exist before, such as television
19:50:50 -!- xkapastel has quit (Quit: Connection closed for inactivity).
19:52:25 <b_jonas> making up a latin word for television must be hard
19:52:40 <b_jonas> :)
19:56:20 <zzo38> I think it is "instrumentum televisificum"
20:07:14 -!- imode has quit (Ping timeout: 240 seconds).
20:12:44 -!- unlimiter has quit (Quit: WeeChat 2.6).
20:16:06 -!- imode has joined.
20:29:28 <kspalaiologos> tantumvideri
20:29:29 <kspalaiologos> is my bet
20:29:31 <kspalaiologos> for television
20:37:05 -!- kspalaiologos has quit (Quit: Leaving).
20:49:16 -!- imode has quit (Ping timeout: 240 seconds).
21:08:37 -!- kspalaiologos has joined.
21:39:59 <esowiki> [[Special:Log/newusers]] create * Alex-franczyk * New user account
22:39:38 -!- arseniiv has quit (Ping timeout: 240 seconds).
23:00:03 -!- kspalaiologos has quit (Ping timeout: 250 seconds).
23:06:07 <fizzie> Aw. Tried to link something containing protobufs with -static, and now it segfaults before main. (Via: _start -> static initializers -> proto stuff -> google::protobuf::internal::InitSCC -> google::protobuf::internal::InitSCCImpl -> call to address 0.)
23:12:54 <fizzie> Fair enough: there's a "callq 0x0" instruction in the code.
23:17:14 -!- Hooloo42 has quit (Quit: Temporarily refracted into a free-standing prism.).
23:20:02 <fizzie> From looking at libprotobuf.a, there's supposed to be a relocation there to make it a call to pthread_self.
23:20:02 -!- Hooloovo0 has joined.
23:23:06 -!- imode has joined.
23:33:37 -!- Frater_EST has left.
23:34:41 <zzo38> I read that Librem phone has the radio processor doesn't talk directly to the microphone. Does that make it possible to send and receive faxes?
2019-11-24
00:09:14 <imode> https://cdn.discordapp.com/attachments/374727754551132162/647939740573630464/2019-11-23-151910_1600x900_scrot.png finished shot.
00:15:02 <zzo38> What is it a picture of?
00:15:50 <imode> a mountain pass with a terrain painter I wrote this afternoon to figure out how someone generated a particular image.
00:57:48 <zzo38> If I add up all of the numbers in the RSS column from "ps aux" output, it adds up to 397288 which is less than the amount obtained by subtracting the buffer and cache amounts from the used amount by the "free" command. Why is it?
00:58:40 <zzo38> (Adding "sudo" doesn't help)
01:05:58 <zzo38> I know that some memory is shared, but I don't know how to make a proper division of the memory usage.
01:13:55 <esowiki> [[Talk:Chef]] https://esolangs.org/w/index.php?diff=67370&oldid=67359 * OND * (+363)
02:22:46 -!- oerjan has joined.
02:34:19 <oerjan> @messages-sold
02:34:19 <lambdabot> fizzie said 14h 39s ago: Actually, it might have been in the bot, not in the MediaWiki component. I wanted to filter out control characters (0-2, 4-31, 127) but due to signedness of char I may have
02:34:19 <lambdabot> intentionally also filtered all bytes >127 as well.
02:34:37 <oerjan> fiendish
02:50:22 <moony> mooo
02:59:15 <zzo38> I fixed ZZ Zero so now the main game loop uses INP(96) to read the keyboard instead of INKEY$ so the problem of repeat rate is solved, but there is another problem is if you push two keys at once and release one, sometimes it isn't recognized, because the released code will be received and then the pushed code won't be received until it starts to repeat
02:59:21 <zzo38> And this results in a delay.
03:01:23 <moony> zzo38: what you making, and for what hardwarE?
03:01:50 <zzo38> It is a game creation system similar to ZZT, and the hardware is PC
03:03:07 <zzo38> You can download the latest version (currently 0.4) from http://zzo38computer.org/prog/zzzero.zip
03:04:24 <zzo38> I also set up a NNTP for discussion of it
03:04:37 <moony> zzo38: DOS?
03:04:52 <zzo38> Yes
03:04:53 <moony> should I run it under FreeDOS?
03:05:17 <zzo38> You can try; it probably would work. It also works under DOSBOX.
03:05:59 <zzo38> There are also a few other problems currently, such as the editor isn't very good, and the rotation map editor is slow
03:06:25 <zzo38> Have you used ZZT?
03:07:51 <moony> Nope
03:08:11 <moony> In fact I rarely use DOS. I usually write my nonsense for console hardware
03:08:28 <moony> i.e. the Gameboy, and I plan to do something for the Sega Saturn
03:12:34 <zzo38> Have you written any program for NES/Famicom?
03:16:22 <moony> zzo38: Considered it multiple times, and know what goes into it
03:31:52 -!- FreeFull has quit.
03:34:19 <zzo38> Does ZZ Zero working for you?
03:35:09 <moony> waiting for FreeDOS to download, zzo38
03:35:48 <moony> oh just finished, lemme install it, and then i'll try it
03:37:10 <zzo38> It also works in DOSBOX though
03:37:24 <moony> don't have DOSBOX installed either :p
03:37:59 <zzo38> O, OK
03:48:24 <moony> zzo38: what's this unusenet you speak of
03:48:57 -!- sprocklem has quit (Ping timeout: 240 seconds).
03:48:58 <zzo38> Unusenet is a form of NNTP newsgroup hierarchies which are not part of Usenet.
03:49:18 <moony> mm. how do I access it? :P
03:49:39 <zzo38> They do not conflict with Usenet (and you can serve both from the same server if you wish), because all Unusenet newsgroup names must start with "un" followed by one or more digits and then a dot.
03:49:49 <zzo38> moony: Access it with any NNTP client.
03:50:08 <zzo38> (Or just telnet to the NNTP server, although using specialized NNTP software is better.)
03:50:50 <moony> I haven't used usenet in a long while and completely forgot how to set up a NNTP client
03:50:52 <moony> aaaa
03:52:05 <zzo38> There are actually many different Unusenet hierarchies, but as far as I know the only one actually in use is where the digits after "un" are the number of components in the reverse domain name (all other Unusenet hierarchies start "un0.").
03:52:36 <zzo38> I also wrote my own NNTP client software, called bystand, and supports connecting to multiple servers (I have it connect to my own server and to nntp.aioe.org)
03:54:37 <zzo38> Or just use netcat or telnet or whatever and write raw messages. I implemented a POSTQUIT command for the convenience of users who do not have specialized NNTP software, even.
04:06:54 <zzo38> (Also, you do not need to access the NNTP in order to use ZZ Zero; it is there for purpose of discussion.)
04:08:50 <moony> zzo38 i'm honestly not sure how to use ZZ Zero at all :p
04:09:16 <zzo38> Did you read the documentation?
04:09:26 <moony> READ.ME?
04:09:31 <moony> or some other file
04:10:00 <moony> I may or may not be distracted by RETROFORTH right now
04:10:06 -!- sprocklem has joined.
04:10:27 <zzo38> That isn't the only documentation, but READ.ME does say that you should read the other *.DOC files too (at least GAME.DOC if you only wish to play the game, but there isn't any complete game really made yet, just the game engine)
04:10:34 <moony> hello, sprocklem
04:11:38 <zzo38> For example, if you type "GAME EXAMPLE" then the example file will be started (which isn't a complete game, just for testing for now)
04:15:53 <zzo38> Did you try that?
04:16:15 <moony> one moment
04:17:17 <zzo38> (If you just type "GAME" by itself, you may get a blank screen; the only things that work are ESC or F1.)
04:18:01 <moony> :O
04:18:33 <moony> zzo38: is example's SRC anywhere?
04:20:12 <zzo38> Yes; it is actually inside the world file. It is a Hamster archive. A Hamster archive consists of a sequence of "lumps". Each lump consists of the null-terminated filename, and then the 32-bit PDP-endian data size, and then the data.
04:20:42 <moony> mm.
04:20:44 <zzo38> I have added a hidden feature that you may find useful: Start the game, and then push F1 and then ^C and now PERSIST.DIR contains the unpacked files.
04:20:53 <moony> oo thanks
04:21:21 <zzo38> Move the files into PROJECT.DIR if you want to edit them.
04:22:07 <moony> just looking
04:25:46 <zzo38> You will also need to move the files into PROJECT.DIR in order to view them with BEDIT and WEDIT. However, MAIN.ASM is a plain text file, so it doesn't matter what directory it is in, if you want to just view it.
04:32:04 -!- shinh has joined.
04:32:50 <esowiki> [[Pass]] M https://esolangs.org/w/index.php?diff=67371&oldid=67330 * A * (+358) /* A sample program (Reverse a given string) */
04:33:52 <zzo38> Did you look at MAIN.ASM?
04:42:17 -!- sprocklem has quit (Ping timeout: 240 seconds).
04:50:03 -!- economicsbat has quit (Ping timeout: 245 seconds).
04:57:32 -!- economicsbat has joined.
05:02:39 -!- economicsbat has quit (Ping timeout: 265 seconds).
05:13:06 -!- Frater_EST has joined.
05:24:48 -!- sprocklem has joined.
05:39:03 -!- sprocklem has quit (Ping timeout: 245 seconds).
05:44:52 -!- sprocklem has joined.
06:06:27 -!- sprocklem has quit (Ping timeout: 265 seconds).
06:06:59 -!- xkapastel has joined.
06:27:07 -!- sprocklem has joined.
06:50:31 -!- sunwen has joined.
06:53:08 -!- sunwen has quit (Remote host closed the connection).
06:53:31 -!- sunwen has joined.
07:05:54 -!- sprocklem has quit (Ping timeout: 265 seconds).
07:07:59 -!- sunwen has quit (Quit: Leaving).
07:11:00 <esowiki> [[User:Challenger5]] https://esolangs.org/w/index.php?diff=67372&oldid=66978 * Challenger5 * (+76)
07:12:36 <esowiki> [[Deadfish]] https://esolangs.org/w/index.php?diff=67373&oldid=67354 * Oerjan * (+433) /* Thue */ Fixed 256 issue
07:13:37 <oerjan> that's an annoyingly ugly check in binary, because you have to catch every option that _isn't_ 256 as well
07:14:05 <oerjan> i suppose it wouldn't really better in another base
07:14:08 <oerjan> *+be
07:14:51 <zzo38> Do you like the ZZ Zero assembly language?
07:15:29 <oerjan> assembly isn't really my thing.
07:16:44 <oerjan> also i had to split up the logic for the two $'s (turning one into >) in order to ensure the check for 256 doesn't trigger during the squaring-by-repeated-adding-and-decrement part
07:25:18 -!- Frater_EST has left.
07:26:36 -!- sprocklem has joined.
07:45:38 -!- sprocklem has quit (Ping timeout: 240 seconds).
07:54:52 -!- shikhin has quit (Quit: Quittin'.).
07:55:11 -!- shikhin has joined.
07:55:17 -!- imode has quit (Ping timeout: 240 seconds).
08:01:51 -!- sprocklem has joined.
08:17:14 -!- sprocklem has quit (Ping timeout: 240 seconds).
08:18:14 -!- sprocklem has joined.
08:44:47 -!- oerjan has quit (Quit: Nite).
09:04:27 -!- kritixilithos has joined.
09:46:35 -!- sprocklem has quit (Remote host closed the connection).
09:56:53 -!- sprocklem has joined.
09:57:06 -!- FreeFull has joined.
10:13:26 -!- sprocklem has quit (Ping timeout: 265 seconds).
10:18:52 -!- sprocklem has joined.
10:23:43 <esowiki> [[Pass]] M https://esolangs.org/w/index.php?diff=67374&oldid=67371 * A * (+41) /* A full list of all of Pass's operators */
10:24:54 <esowiki> [[Pass]] M https://esolangs.org/w/index.php?diff=67375&oldid=67374 * A * (+153) /* Some basic functionalities */
10:40:35 <esowiki> [[Pass]] https://esolangs.org/w/index.php?diff=67376&oldid=67375 * A * (-153) Undo revision 67375 by [[Special:Contributions/A|A]] ([[User talk:A|talk]]) This is too much...
10:43:22 <esowiki> [[Pass]] M https://esolangs.org/w/index.php?diff=67377&oldid=67376 * A * (-151) In my opinion strings are enough.
10:44:22 -!- sprocklem has quit (Ping timeout: 265 seconds).
11:08:44 -!- arseniiv has joined.
11:21:27 -!- kspalaiologos has joined.
11:30:26 -!- kspalaiologos has quit (Ping timeout: 240 seconds).
11:30:50 -!- kspalaiologos has joined.
11:31:56 <kspalaiologos> b_jonas: huh
11:38:37 -!- kspalaiologos has quit (Ping timeout: 240 seconds).
11:39:09 -!- kspalaiologos has joined.
11:39:24 <kspalaiologos> I'll get extended ascii sorted out
11:39:39 <kspalaiologos> Whenever I'll find some time
11:39:44 <kspalaiologos> =list
11:39:44 <bfbot> 8ball echo echo1 f fib msg0 msg1 quine simple wiki
11:40:05 <kspalaiologos> =8ball hello
11:40:05 <bfbot> Without a doubt.
11:40:12 <kspalaiologos> =echo test
11:40:13 <bfbot> test
11:40:18 <kspalaiologos> =echo1 test
11:40:18 <bfbot> test
11:40:25 <kspalaiologos> =undef echo1
11:40:25 <bfbot> ok
11:40:32 <kspalaiologos> =f x
11:40:40 <kspalaiologos> =fib
11:40:40 <bfbot> 011235813213455891442333776109871597258441816765109461771128657463687502512139319641831781151422983204013462692178309352457857028879227465149303522415781739088169632459861023341551655801412679142964334944377014087331134903170183631190329712150734807526976777874204912586269025203650110743295128009953
11:40:50 <kspalaiologos> =msg0
11:40:50 <bfbot> AAAA
11:40:58 <kspalaiologos> =quine
11:40:58 <bfbot> ^quine
11:41:02 <kspalaiologos> Hah
11:41:10 <kspalaiologos> ^show
11:41:10 <fungot> echo reverb rev rot13 rev2 fib wc ul cho choo pow2 source help hw srmlebac uenlsbcmra scramble unscramble asc ord prefixes tmp test celebrate wiki chr ha rainbow rainbow2 welcome me tell eval elikoski list ping def a thanks tmp2 8ball rreree rerere botsnack bf quine
11:41:24 <kspalaiologos> ^quine
11:41:24 <fungot> =quine
11:41:25 <bfbot> ^quine
11:41:31 <kspalaiologos> Oh shit
11:41:38 <kspalaiologos> I nearly started a disaster
11:42:17 <kspalaiologos> =doc
11:42:17 <bfbot> Incorrect usage! Refer to =help doc
11:46:36 -!- kspalaiologos has quit (Ping timeout: 240 seconds).
12:09:51 -!- sprocklem has joined.
12:15:04 -!- kritixilithos has quit (Ping timeout: 260 seconds).
12:24:50 -!- sprocklem has quit (Ping timeout: 240 seconds).
12:45:08 -!- kritixilithos has joined.
12:59:41 -!- Sgeo has quit (Read error: Connection reset by peer).
13:00:07 -!- Sgeo has joined.
13:20:17 -!- sprocklem has joined.
13:35:27 -!- kspalaiologos has joined.
14:29:11 -!- tromp has joined.
14:49:20 -!- gitlogger has quit (Excess Flood).
15:06:42 -!- xkapastel has quit (Quit: Connection closed for inactivity).
15:09:59 <arseniiv> =quine
15:09:59 <bfbot> ^quine
15:10:10 <arseniiv> ^quine
15:10:10 <fungot> =quine
15:10:10 <bfbot> ^quine
15:10:16 <arseniiv> hm
15:10:19 <fizzie> ^ignore
15:10:19 <fungot> ^(EgoBot|HackEgo|HackEso|toBogE|Sparkbot|optbot|lambdabot|oonbotti|metasepia|ruddy|preflex|evalj|idris-bot|passwordBOT|jconn|applybot|blsqbot|fnordbot|termbot|otherbot|j-bot|esowiki|bfbot)!
15:10:32 <arseniiv> aaah
15:10:40 <fizzie> Botloops are a longstanding tradition on the channel, as is mitigating them.
15:10:49 <arseniiv> :D
15:11:11 <arseniiv> I can totally understand why both
15:11:43 <fizzie> Although fungot's manual ignore list isn't the greatest. HackEso, for example, adds an invisible space in front of all lines of output that start with a non-alphanumeric character. (Or something along those lines.)
15:11:43 <fungot> fizzie: it is you
15:12:48 <int-e> =echo @bot
15:12:49 <bfbot> @bot
15:12:53 <int-e> @bot
15:12:54 <lambdabot> :)
15:12:56 <int-e> :)
15:14:21 <int-e> so many bots
15:15:09 <int-e> `? metasepia
15:15:11 <HackEso> metasepia knew the weather at your nearest airport, and also something about ducks.
15:53:55 -!- imode has joined.
15:59:54 <olsner> "knew" ... metasepia is no more?
16:01:47 <arseniiv> I have a mysterious and esoteric string of characters that no one will comprehend:
16:02:00 <arseniiv> a + a² (a² (v + a) − 2(v + a)² a) / a² (v + a)⁴ (a² + 4 v² + 4 av)
16:02:20 <int-e> olsner: I don't know what happened. boily mentioned reviving it a few times, but never followed through.
16:02:39 <fizzie> A lot of the bots in that list are no more.
16:02:40 <int-e> olsner: I may also have put a damper to it when I implemented @metar, which was metsepia's main use.
16:03:03 <int-e> `? prefixes
16:03:05 <HackEso> Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ .
16:03:26 <int-e> hrm, idioms
16:03:48 <int-e> s/to/on/
16:03:58 <kspalaiologos> a ha
16:04:00 <kspalaiologos> I'm not here
16:04:02 <kspalaiologos> with my bot
16:04:04 -!- wastl has joined.
16:04:33 <arseniiv> I’m not here with me too :′(
16:04:37 <kspalaiologos> is there actually an knowledge index or something along these lines?
16:04:40 <int-e> `slwd prefixes//s/.$/, bfbot = .
16:04:41 <HackEso> ​/bin/sed: -e expression #1, char 16: unterminated `s' command
16:04:41 <arseniiv> myself*
16:04:45 <int-e> `slwd prefixes//s/.$/, bfbot = ./
16:04:47 <HackEso> prefixes//Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot = .
16:04:57 <kspalaiologos> arseniiv, I'm actually in the wisdom database lol
16:05:02 <kspalaiologos> `? kspalaiologos
16:05:05 <HackEso> kspalaiologos is a brainfuck addict. He's secretly disassembling brainfuck code for a casino that lost the source code. Apparently knows the secret of Malbolge.
16:05:10 <arseniiv> hehehe
16:05:19 <arseniiv> why do you think I’m not
16:05:27 <kspalaiologos> `? arseniiv
16:05:28 <HackEso> arseniiv is a blank slate who is afraid of alchemy, especially the kind involving chalk.
16:05:59 <arseniiv> everytime like the first time *rofl*
16:06:02 <int-e> `clwprits arseniv
16:06:05 <HackEso> Traceback (most recent call last): \ File "/srv/hackeso-code/umlbox", line 24, in <module> \ import config_pb2 \ ModuleNotFoundError: No module named 'config_pb2'
16:06:19 <fizzie> (That was me.)
16:06:20 <int-e> ... what
16:06:20 <kspalaiologos> `? clwprits
16:06:21 <HackEso> clwprits? ¯\(°​_o)/¯
16:06:25 <arseniiv> int-e: wasn’t that you
16:06:26 <int-e> `clwprits arseniv
16:06:27 <HackEso> ​/srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: clwprits: not found
16:06:32 <arseniiv> oh, or not
16:06:34 <kspalaiologos> what is this
16:06:35 <fizzie> Well, that's a typo as well.
16:06:35 <int-e> `cwlprits arseniv
16:06:37 <HackEso> No output.
16:06:44 <int-e> `cwlprits arseniiv
16:06:46 <HackEso> int-̈e
16:06:47 <kspalaiologos> `? cwlprits
16:06:48 <HackEso> cwlprits? ¯\(°​_o)/¯
16:06:49 <int-e> so many typos
16:06:54 <arseniiv> hahaha
16:07:03 <arseniiv> I even misread that three times
16:07:04 <kspalaiologos> what is this program
16:07:05 <int-e> arseniiv: I had a hunch that it was me... I remembered explaining it.
16:07:08 <kspalaiologos> what does it do
16:07:19 <kspalaiologos> `? cwlprits int-e
16:07:20 <HackEso> cwlprits int-e? ¯\(°​_o)/¯
16:07:26 <kspalaiologos> `cwlprits int-e
16:07:28 <HackEso> shachäf oerjän oerjän oerjän boil̈y boil̈y oerjän oerjän
16:07:35 <olsner> `? olsner
16:07:35 <arseniiv> it tells who made edits. Hm it should have been… ah, now it shows
16:07:36 <HackEso> olsner seems to exist at least. He builds all his esolangs in diesel engines. His poetry's alphanumeric.
16:07:50 <kspalaiologos> ^ xD
16:07:57 <arseniiv> alphanumeric poetry is tg
16:08:05 <fizzie> 'cwlprits' is 'culprits' for wisdom, and 'culprits' is hg log + bells and whistles.
16:08:06 <int-e> `cat bin/cwlprits
16:08:08 <HackEso> cat: bin/cwlprits: No such file or directory
16:08:13 <int-e> `cat ../bin/cwlprits
16:08:14 <HackEso> culprits "$HACKENV/wisdom/$1"
16:08:18 <kspalaiologos> `whereis culprits
16:08:19 <HackEso> culprits: /hackenv/bin/culprits
16:08:34 -!- wastl has quit (Quit: Leaving.).
16:08:34 <olsner> `quote alphanumeric
16:08:35 <HackEso> 1125) <shachaf> A Swede who was in #esoteric / Thought his rhymes were a little generic. / "I might use, in my prose, / ꙮs, / But my poetry's alphanumeric."
16:08:44 <int-e> `` culprits ../bin/cwlprits # was that me as well?
16:08:46 <HackEso> fizzïe shachäf
16:09:03 <int-e> phew.
16:09:10 <kspalaiologos> lol
16:09:14 <int-e> `culprits ../bin/hwrl
16:09:15 <HackEso> fizzïe int-̈e shachäf
16:09:18 <fizzie> The -̈ is still funky though.
16:09:44 <int-e> it does its job... I'm not being highlighted :)
16:10:11 <arseniiv> ah, so *that’s* why it’s used
16:10:27 <arseniiv> I thought it’s just to look eso
16:10:38 <olsner> it could use ZWSPs instead
16:10:47 <arseniiv> `cwlprits password
16:10:49 <HackEso> ais523̈_ ais523̈_ arseniïv oerjän int-̈e shachäf int-̈e fizzïe int-̈e fizzïe int-̈e int-̈e b_jonäs int-̈e int-̈e oerjän oerjän int-̈e int-̈e oerjän int-̈e oerjän oerjän oerjän int-̈e int-̈e oerjän oerjän shachäf oerjän oerjän oerjän oerjän int-̈e shachäf shachäf oerjän boil̈y oerjän int-̈e int-̈e oerjän shachäf shachäf oerjän oerjän oerjän oerjän oerjän oerjän oe
16:11:03 <arseniiv> two months already
16:11:12 <arseniiv> `? password
16:11:13 <HackEso> The password of the month is mostly irrelevant.
16:11:30 <fizzie> It uses "hlnp" under the hood, which I take it is short for "hg log no ping".
16:12:45 <int-e> `grwp mostly
16:12:47 <HackEso> password:The password of the month is mostly irrelevant. \ study:A study is mostly useless until backed up by further studies. See studies.
16:13:00 <fizzie> Phew, it seems to be working.
16:13:04 <int-e> `? mostly
16:13:05 <HackEso> mostly? ¯\(°​_o)/¯
16:13:06 <fizzie> You may or may not notice any differences.
16:13:09 <int-e> oops
16:13:10 <int-e> `? studies
16:13:12 <HackEso> Studies show lots of things. Nobody reads them, though. Also: this study contradicts this other study. These two studies agree, but were secretly paid for by the same company.
16:13:25 <int-e> `uptime
16:13:26 <HackEso> ​ 16:13:25 up 3809 day, 0:43, 0 users, load average: 0.00, 0.00, 0.00
16:14:02 <fizzie> One user-observable difference is that `cat will no longer get stuck.
16:14:03 <fizzie> `cat
16:14:07 <HackEso> No output.
16:15:46 <int-e> `readlink /proc/self/fd/0
16:15:46 <HackEso> ​/null
16:15:58 <fizzie> Heh, that's actually a little misleading.
16:16:04 <fizzie> `` ls -l /null
16:16:07 <HackEso> ls: cannot access '/null': No such file or directory
16:16:16 <fizzie> It's showing the pre-chroot path.
16:17:02 <fizzie> I think that's what it always would have done, but it would've showed /tty1 before, which was connected to the UML 'null' channel.
16:17:43 <fizzie> I've just changed it to open /null inside the UML, so it gets the arguably more reasonable "immediate EOF" semantics, instead of the "read blocks forever" one.
16:18:33 <fizzie> (I did think about putting something either useful or funny into the stdin as well, but couldn't come up with anything particularly useful or particularly funny.)
16:19:01 <fizzie> http://ix.io/22Kl is another technically user-observable difference.
16:19:48 <int-e> `` echo $$
16:19:49 <HackEso> 50
16:20:55 <fizzie> The biggest difference of them all is probably that I now understand how it actually works.
16:21:19 <int-e> `? fizzie
16:21:20 <HackEso> fizzie is not fnord with a monad but the king of #esoteric, see https://zem.fi/static/img/square_fizzie_320px_white.jpg
16:22:58 <int-e> `le/rn_append fizzie//. He understands how it actually works.
16:22:59 <HackEso> Can't open wisdom/fizzie: No such file or directory. \ /hackenv/tmp/le/rn_append: line 6: wisdom/fizzie: No such file or directory \ Learned 'fizzie': cat: wisdom/fizzie: No such file or directory
16:23:49 <fizzie> Hmm, is that still unfixed.
16:24:21 <fizzie> Oh, I guess it is, because it was outside bin so it wasn't caught by all the heuristics.
16:24:54 <fizzie> `sled /hackenv/le/rn_append//s|wisdom|${HACKENV-/hackenv}/wisdom|
16:24:55 <int-e> hmm, does this look plausible: `` sed -i s=wisdom=\$HACKENV/wisdom= ../le/rn_append
16:24:56 <HackEso> ​/hackenv/le/rn_append//sep="//" \ [[ "$1" == ?*"$sep"* ]] || exit 1 \ topic="$(echo "${1%%$sep*}" | lowercase)" \ stuff="${1#*$sep}" \ perl -i -p -e 's/\n/ /' "${HACKENV-/hackenv}/wisdom/$topic" \ echo "$stuff" >>"${HACKENV-/hackenv}/wisdom/$topic" \ echo -n "Learned '$topic': " \ cat "${HACKENV-/hackenv}/wisdom/$topic"
16:25:12 <int-e> ah
16:25:40 <int-e> `le/rn_append fizzie//. He understands how it actually works.
16:25:43 <HackEso> Learned 'fizzie': fizzie is not fnord with a monad but the king of #esoteric, see https://zem.fi/static/img/square_fizzie_320px_white.jpg . He understands how it actually works.
16:26:58 <int-e> `? sled
16:27:00 <HackEso> ​`sled <filename>//<sed script>
16:27:15 <int-e> oh, right. slash+sed
16:27:29 <int-e> `? hackeso
16:27:30 <HackEso> HackEso is almost, but not quite, entirely unlike HackEgo.
16:28:04 <int-e> . o O ( It's a text-based game in the hack&slash genre. )
16:29:14 <int-e> Ah, the other two entries in le/ are symlinks.
16:29:37 <int-e> rather $HACKENV/le
16:31:14 <fizzie> `` mv /hackenv/le/rn_append /hackenv/bin/slashlearn_append && ln -sf /hackenv/bin/slashlearn_append /hackenv/le/rn_append # let's make that consistent
16:31:16 <HackEso> No output.
16:31:42 <fizzie> Although now that one's an absolute link while the other two are relative. Oh well.
16:58:53 -!- Lord_of_Life_ has joined.
17:00:26 -!- Lord_of_Life has quit (Ping timeout: 240 seconds).
17:00:27 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
17:02:01 -!- kritixilithos has quit (Quit: quit).
17:58:08 -!- Lord_of_Life has quit (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine).
18:00:52 -!- Lord_of_Life has joined.
18:16:34 <b_jonas> ^prefixes
18:16:34 <fungot> Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ .
18:16:42 <b_jonas> ^help
18:16:42 <fungot> ^<lang> <code>; ^def <command> <lang> <code>; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool
18:17:42 <b_jonas> ^def prefixes ul (Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot (, jconn ), j-bot [, bfbot = .)S
18:17:42 <fungot> Defined.
18:17:46 <b_jonas> ^prefixes
18:17:46 <fungot> Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot (, jconn ), j-bot [, bfbot = .
18:17:49 <b_jonas> `prefixes
18:17:50 <HackEso> Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot = .
18:21:13 <b_jonas> =prefixes
18:21:13 <bfbot> No such command. Try =help.
18:21:49 <arseniiv> `? cat
18:21:50 <HackEso> Cats are cool, but should be illegal.
18:22:02 <arseniiv> `? concat
18:22:07 <HackEso> concat? ¯\(°​_o)/¯
18:22:21 <arseniiv> `? catcon
18:22:22 <HackEso> catcon? ¯\(°​_o)/¯
18:22:46 <arseniiv> @prefixes
18:22:47 <lambdabot> Unknown command, try @list
18:22:51 <arseniiv> thank gods
18:31:34 <zzo38> Which gods? Germanic, Roman, Abrahamic, all of them, none of them, or it doesn't matter?
18:33:37 <int-e> arseniiv: you're welcome ;-)
18:35:56 <b_jonas> =str 1s++++[->++++<]>[->++>+++>++++>+++++>++++++>+++++++<<<<<<<]> >>--------------------------------------------------------------.>>---------------------------------------------------------------------------------.>-----------------------------------------------------------------------------------------------------
18:35:56 <bfbot> ok
18:36:01 <b_jonas> =str 1a-------.<<<<<--------------------------------.>>>>>----.++.<----------.+.+++.>++++++.<----.>-----.<<<<--------------------------------------.<.>>>>+.>++.<++++++++.-------.++++++++.>-.<<<<<.>>>------------------------------------------------------------------.<<<++++++++++++.------------.>>++++++.>>-----------
18:36:01 <bfbot> ok
18:36:06 <b_jonas> =str 1a---.++.++++++++.<<---.>>>-.<++++.<<<<.>>>>---------------.<<<<++++++++++++.------------.>>>>++++++++++++.-----------.++++++++++++.-----------.++.---.+.+++++++++++++.>+.<<<<<.>>-----.<<.>>>>.>--.<<<<<.>+++++.<++++++++++++.------------.>>>>-----.<<<<+++++++++++++.>>>>--------.+++++++++++++.>++.<<<<<------------
18:36:06 <bfbot> ok
18:36:11 <b_jonas> =str 1a-.>>>---.<<<++++++++++++.------------.>>>>-------------.++++.----.+++++++++++++.>.<<<<<.>--.<++++++++++++++.
18:36:11 <bfbot> ok
18:36:14 <b_jonas> =def 1prefixes
18:36:14 <bfbot> ok, defined 'prefixes'
18:36:15 <b_jonas> =prefixes
18:36:16 <bfbot> ..................................................................................................................................................................................................................
18:36:18 <b_jonas> nope
18:36:47 <b_jonas> =str 1s++++[->++++<]>[->++>+++>++++>+++++>++++++>+++++++<<<<<<]> >>--------------------------------------------------------------.>>---------------------------------------------------------------------------------.>------------------------------------------------------------------------------------------------------
18:36:47 <bfbot> ok
18:36:52 <b_jonas> =str 1a------.<<<<<--------------------------------.>>>>>----.++.<----------.+.+++.>++++++.<----.>-----.<<<<--------------------------------------.<.>>>>+.>++.<++++++++.-------.++++++++.>-.<<<<<.>>>------------------------------------------------------------------.<<<++++++++++++.------------.>>++++++.>>------------
18:36:52 <bfbot> ok
18:36:57 <b_jonas> =str 1a--.++.++++++++.<<---.>>>-.<++++.<<<<.>>>>---------------.<<<<++++++++++++.------------.>>>>++++++++++++.-----------.++++++++++++.-----------.++.---.+.+++++++++++++.>+.<<<<<.>>-----.<<.>>>>.>--.<<<<<.>+++++.<++++++++++++.------------.>>>>-----.<<<<+++++++++++++.>>>>--------.+++++++++++++.>++.<<<<<-------------
18:36:57 <bfbot> ok
18:37:02 <b_jonas> =str 1a.>>>---.<<<++++++++++++.------------.>>>>-------------.++++.----.+++++++++++++.>.<<<<<.>--.<++++++++++++++.
18:37:02 <bfbot> ok
18:37:05 <b_jonas> =def 1prefixes
18:37:05 <bfbot> ok, defined 'prefixes'
18:37:08 <b_jonas> =prefixes
18:37:08 <bfbot> .................................................
18:37:11 <b_jonas> still no
18:37:25 <b_jonas> oh wait
18:37:52 <kspalaiologos> ^ I can remove the check
18:37:57 <b_jonas> =str 1s++++[->++++<]>[->++>+++>++++>+++++>++++++>+++++++<<<<<<]> >>++.>>+++++++++++++++.>++++.<<<<<.>>>>>----.++.<----------.+.+++.>++++++.<----.>-----.<<<<++++++++++.<.>>>>+.>++.<++++++++.-------.++++++++.>-.<<<<<.>>>++++++++++++++.<<<++++++++++++.------------.>>++++++.>>--------------.++.++++++++.<<---.>>>-.<++++.
18:37:57 <bfbot> ok
18:38:02 <b_jonas> =str 1a<<<<.>>>>---------------.<<<<++++++++++++.------------.>>>>++++++++++++.-----------.++++++++++++.-----------.++.---.+.+++++++++++++.>+.<<<<<.>>-----.<<.>>>>.>--.<<<<<.>+++++.<++++++++++++.------------.>>>>-----.<<<<+++++++++++++.>>>>--------.+++++++++++++.>++.<<<<<-------------.>>>---.<<<++++++++++++.--------
18:38:02 <bfbot> ok
18:38:07 <b_jonas> =str 1a----.>>>>-------------.++++.----.+++++++++++++.>.<<<<<.>--.<++++++++++++++.
18:38:07 <bfbot> ok
18:38:10 <kspalaiologos> but it kinda bricks the bot output a tiny bit
18:38:10 <b_jonas> =def 1prefixes
18:38:10 <bfbot> ok, defined 'prefixes'
18:38:11 <b_jonas> =prefixes
18:38:11 <bfbot> Bot prefixes: fungot ^, HackEso `, lambdabot @ or ?, j-bot [, bfbot =.
18:38:13 <b_jonas> better
18:38:41 <kspalaiologos> btw you may want to set the bitness
18:38:43 <b_jonas> sorry, the generated bf code was completely wrong, and I should have noticed that from the too many minuses
18:38:49 <kspalaiologos> you can use it
18:38:55 <kspalaiologos> but you need to set the bfbot correctly
18:39:13 <kspalaiologos> https://esolangs.org/wiki/Bfbot#program_types
18:39:21 <kspalaiologos> =wiki Bfbot#program_types
18:39:21 <bfbot> https://esolangs.org/wiki/Bfbot#program_types
18:39:27 <kspalaiologos> yeah wiki works too
18:39:37 <b_jonas> yes, but it doesn't matter for this simple program that prints a constant string, because it never overflows any cell
18:39:37 <kspalaiologos> if you look at the repo, wiki is using this feature
18:39:51 <kspalaiologos> b_jonas, some of them do
18:40:00 <kspalaiologos> instead of doing + 254 times, you can do - twice
18:47:18 <b_jonas> `perl -e$C=Date::Manip::Date::;require$C; $d=$C->new("12AM EST"); print $d->tzconv("UTC")->printf("%O %Z %z");
18:47:19 <HackEso> Can't locate Date::Manip::Date in @INC (@INC contains: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.28.1 /usr/local/share/perl/5.28.1 /usr/lib/x86_64-linux-gnu/perl5/5.28 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.28 /usr/share/perl/5.28 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base) at -e line 1.
18:47:36 <b_jonas> fizzie: can you install libdate-manip-perl into inside HackEso?
18:47:44 <b_jonas> the debian package called libdate-manip-perl that is
18:48:50 <b_jonas> ah no, it is installed, sorry
18:48:59 <b_jonas> `perl -euse Date::Manip::Date; $d=Date::Manip::Date->new("12AM EST"); print $d->tzconv("UTC")->printf("%O %Z %z");
18:49:00 <HackEso> Can't locate object method "tzconv" via package "Date::Manip::Date" at -e line 1.
18:49:34 <b_jonas> `perl -euse Date::Manip::Date; $d=Date::Manip::Date->new("12AM EST"); print $d->convert("UTC")->printf("%O %Z %z");
18:49:35 <HackEso> Can't locate object method "printf" via package "0" (perhaps you forgot to load "0"?) at -e line 1.
18:49:50 <b_jonas> `perl -euse Date::Manip::Date; $d=Date::Manip::Date->new("12AM EST"); $d->convert("UTC"); $d->printf("%O %Z %z");
18:49:52 <HackEso> No output.
18:49:56 <b_jonas> `perl -euse Date::Manip::Date; $d=Date::Manip::Date->new("12AM EST"); $d->convert("UTC"); print $d->printf("%O %Z %z");
18:49:57 <HackEso> 2019-11-24T05:00:00 UTC +0000
18:50:03 <b_jonas> `datei
18:50:07 <HackEso> 2019-11-24 18:50:05.653 +0000 UTC November 24 Sunday 2019-W47-7
18:50:15 <b_jonas> `perl -euse Date::Manip::Date; $d=Date::Manip::Date->new("12AM EST"); $d->convert("Europe/Paris"); print $d->printf("%O %Z %z");
18:50:20 <HackEso> 2019-11-24T06:00:00 CET +0100
18:51:40 <kspalaiologos> I made a programming language
18:51:53 <kspalaiologos> or rather, a markup language
18:52:00 <kspalaiologos> just to produce brainfuck-to-anything compilers in anything
18:54:15 <zzo38> Does any TV set have a caption debugger?
18:57:57 <arseniiv> <zzo38> Which gods? Germanic, Roman, Abrahamic, all of them, none of them, or it doesn't matter? => I pick them at random each time from the WHATWG-endorsed god pool
18:58:06 <arseniiv> int-e: :D
19:00:02 <int-e> arseniiv: I felt entitled because I'm running that particular bot :)
19:01:26 <arseniiv> int-e: I guessed so
19:02:26 <int-e> =help
19:02:26 <bfbot> bfbot is a bot executing brainfuck natively. You may add your very own commands to the bot.
19:02:26 <bfbot> Commands: =str =def =undef =list =plist =doc. More help at https://esolangs.org/wiki/bfbot
19:02:37 <kspalaiologos> =list
19:02:38 <bfbot> 8ball echo f fib msg0 msg1 prefixes quine simple wiki
19:02:40 <kspalaiologos> =8ball KPS
19:02:40 <bfbot> Congratulations! You found the easter egg! ~~kspalaiologos, 2019
19:02:58 <int-e> is there a command to just run a piece of bf code without defining a string first?
19:02:58 <kspalaiologos> I put it here for no real reason
19:03:07 <kspalaiologos> int-e, no, but I may consider adding it
19:03:17 <kspalaiologos> but you can define it
19:03:19 <kspalaiologos> on your own
19:03:34 <b_jonas> ^help
19:03:34 <fungot> ^<lang> <code>; ^def <command> <lang> <code>; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool
19:03:43 <b_jonas> int-e: try ^bf
19:03:51 <int-e> `bf8 [-]
19:03:51 <HackEso> ​/srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: bf8: not found
19:04:00 <b_jonas> `whatis bf8
19:04:02 <HackEso> bf8(1egobot) - no description
19:04:09 <b_jonas> needs a bang
19:04:21 <b_jonas> `! bf8 +[+.]
19:04:22 <HackEso> \
19:04:34 <b_jonas> `! bf8 ++++[->++++<]>[+.]
19:04:35 <HackEso> !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~.
19:04:38 <kspalaiologos> =str 0s ----[---->+<]>--.---[->++<]>-.+.--.[-->+++++<]>+++.---[->++<]>-.[->++<]>+.>,[.,][-]++++++++++.[->++++++<]>+.[----->++++<]>.+.+.[--->+<]>--.---[->++<]>-.+[->++<]>.+++[->+++<]>.++++++++.+++.>++++++++++.[->++++++<]>+.---[->++<]>.+++[->+++<]>.++++++++.+++.>++++++++++.[->++++++<]>+.--[->++<]>-.-------.----------.+.+.[--->+<]>--.---[->++++<]>.+++[->+++<]>.++++++++.+++.
19:04:38 <bfbot> ok
19:04:44 <b_jonas> `! bf8 ++++++++[->++++<]>[+.]
19:04:45 <kspalaiologos> ^^^ this is why I turned this crap off
19:04:45 <HackEso> ​!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~.
19:04:45 <int-e> `! bf8 +[>+<+++++]>.
19:04:46 <HackEso> 3
19:04:55 <kspalaiologos> =def 0bf
19:04:55 <bfbot> ok, defined 'bf'
19:05:03 <kspalaiologos> =bf +[>+<+++++]>.
19:05:03 <bfbot> .....................+[>+<+++++]>.=...........................=t......=undef t......
19:05:06 <kspalaiologos> crap
19:05:16 <kspalaiologos> =str 0s =str 0s ----[---->+<]>--.---[->++<]>-.+.--.[-->+++++<]>+++.---[->++<]>-.[->++<]>+.>,[.,][-]++++++++++.[->++++++<]>+.[----->++++<]>.+.+.[--->+<]>--.---[->++<]>-.+[->++<]>.+++[->+++<]>.++++++++.+++.>++++++++++.[->++++++<]>+.---[->++<]>.+++[->+++<]>.++++++++.+++.>++++++++++.[->++++++<]>+.--[->++<]>-.-------.----------.+.+.[--->+<]>--.---[->++++<]>.+++[->+++<]>.++++++++.+++.
19:05:16 <bfbot> ok
19:05:19 <kspalaiologos> =def 0bf
19:05:19 <bfbot> ok, defined 'bf'
19:05:21 <kspalaiologos> =bf +[>+<+++++]>.
19:05:22 <bfbot> .....................+[>+<+++++]>.=...........................=t......=undef t......
19:05:30 <kspalaiologos> why doesn't it work though
19:05:33 <kspalaiologos> I set the correct mode
19:05:39 <int-e> `! bf8 +[>+>++<<+++++]>.>.
19:05:39 <HackEso> 3f
19:06:02 <arseniiv> I want to fix some errors again
19:06:05 <arseniiv> > fix error
19:06:07 <lambdabot> "*Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *Ex...
19:06:15 <b_jonas> =prefixes
19:06:15 <bfbot> Bot prefixes: fungot ^, HackEso `, lambdabot @ or ?, j-bot [, bfbot =.
19:06:19 <arseniiv> @botsnack
19:06:19 <lambdabot> :)
19:06:23 <int-e> arseniiv: a classic, and one of my favorites
19:06:31 <b_jonas> @let prefixes = var "Bot prefixes: fungot ^, HackEso `, lambdabot @ or ?, j-bot [, bfbot =."
19:06:31 <fungot> b_jonas: correct my ignorance, though.) you should get ( fnord) print prog; else... without parentheses. so this is like
19:06:32 <lambdabot> Defined.
19:06:36 <b_jonas> > prefixes
19:06:37 <arseniiv> int-e: mine too!
19:06:38 <lambdabot> Bot prefixes: fungot ^, HackEso `, lambdabot @ or ?, j-bot [, bfbot =.
19:06:39 <int-e> almost as good as the fibonacci numbers
19:07:05 <b_jonas> that (fix error) thing is still so weird
19:07:08 <int-e> > fix$(0:).scanl(+)1
19:07:10 <lambdabot> [0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,...
19:07:14 <b_jonas> I do understand why it works, but it's weird
19:07:46 <arseniiv> > fix $ const undefined
19:07:48 <lambdabot> *Exception: Prelude.undefined
19:07:59 <kspalaiologos> what language is it
19:08:02 <int-e> > error (error "bar")
19:08:04 <kspalaiologos> =str 0s 3++++++++++[>+>+++>+++++++>++++++++++<<<<-]>>>---------.>+++++++++++++++.+.--.<<++.>----.>+>+[,.]<<<<++++++++++.>>++++.>---------------.+.+.<<.>----.>++++++++++++++.---------------.++++++++.+++.<<<++++++++++.>>++++.>++++.---------------.++++++++.+++.<<<++++++++++.>>.>+++++.-------.----------.+.+.<<.>>++++++++++++++.---------------.++++++++.+++.
19:08:04 <bfbot> ok
19:08:04 <lambdabot> *Exception: *Exception: bar
19:08:04 <arseniiv> Haskell
19:08:07 <kspalaiologos> damn
19:08:12 <b_jonas> @run 2+2
19:08:14 <lambdabot> 4
19:08:14 <b_jonas> `whatis run
19:08:15 <HackEso> run(8hackeso) - run a shell command \ run(1hackeso) - no description \ run(8lambdabot) - evaluate Haskell expression
19:08:20 <kspalaiologos> =def 0bf
19:08:20 <bfbot> ok, defined 'bf'
19:08:31 <kspalaiologos> =bf +[>+<+++++]>.
19:08:32 <bfbot> =str 9+[>+<+++++]>..=def 9temp.=temp(=undef temp
19:08:34 <kspalaiologos> haha
19:08:36 <kspalaiologos> that was close
19:08:46 <kspalaiologos> but wait, it can't execute own commands
19:08:52 <kspalaiologos> and I can't use fungot to chain myself
19:08:52 <fungot> kspalaiologos: neither tiny nor simple use and)
19:09:05 <kspalaiologos> is there a bot without protection though?
19:09:27 <kspalaiologos> it would make a ridiculous one command
19:09:36 <arseniiv> int-e: have you seen a short code for Thue—Morse sequence 01101001100101101001011001101001…?
19:09:44 <kspalaiologos> j-bot
19:09:47 <kspalaiologos> tell me something
19:09:48 <kspalaiologos> what is this
19:09:51 <kspalaiologos> =prefixes
19:09:51 <bfbot> Bot prefixes: fungot ^, HackEso `, lambdabot @ or ?, j-bot [, bfbot =.
19:09:56 <kspalaiologos> @help
19:09:56 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
19:09:58 <kspalaiologos> @list
19:09:58 <lambdabot> What module? Try @listmodules for some ideas.
19:10:04 <kspalaiologos> @echo test
19:10:04 <lambdabot> echo; msg:IrcMessage {ircMsgServer = "freenode", ircMsgLBName = "lambdabot", ircMsgPrefix = "kspalaiologos!~kspalaiol@176.221.122.71", ircMsgCommand = "PRIVMSG", ircMsgParams = ["#esoteric",":@echo
19:10:04 <lambdabot> test"]} target:#esoteric rest:"test"
19:10:07 <kspalaiologos> ?
19:10:08 <b_jonas> oh yeah
19:10:13 <arseniiv> kspalaiologos: j-bot runs J :D
19:10:14 <kspalaiologos> what just happened
19:10:24 <kspalaiologos> @listmodules
19:10:25 <lambdabot> activity base bf check compose dice dict djinn dummy elite eval filter free fresh haddock help hoogle instances irc karma localtime metar more oeis offlineRC pl pointful poll pretty quote search
19:10:25 <lambdabot> slap source spell system tell ticker todo topic type undo unlambda unmtl version where
19:10:32 <kspalaiologos> @spell abc
19:10:33 <lambdabot> ABC ABCs AB AC Ac
19:10:40 <kspalaiologos> @spell =echo hei
19:10:41 <lambdabot> =echo hei
19:10:41 <bfbot> hei
19:10:41 <b_jonas> kspalaiologos: lambdabot's echo command is weird. I don't know if it has a plain echo command, but you can do something like
19:10:46 <kspalaiologos> Aha!
19:10:49 <b_jonas> @run var "hello, world"
19:10:50 <kspalaiologos> wait
19:10:51 <lambdabot> hello, world
19:10:51 <b_jonas> to output something
19:10:53 <kspalaiologos> =echo @spell hello
19:10:54 <bfbot> @spell hello
19:10:58 <kspalaiologos> dammit man
19:11:01 <kspalaiologos> =prefixes
19:11:01 <bfbot> Bot prefixes: fungot ^, HackEso `, lambdabot @ or ?, j-bot [, bfbot =.
19:11:19 <kspalaiologos> [echo stuff
19:11:36 <kspalaiologos> eh it seems like I have to modify my own bot
19:11:50 <b_jonas> j-bot echo: it does have an echo command, but you can't invoke that command with a shortcut
19:11:50 <j-bot> b_jonas, pong: it does have an echo command, but you can't invoke that command with a shortcut
19:11:54 <int-e> > fix$(0:).tail.(>>= \x->[x,1-x]) -- the `tail` always makes me a little sad
19:11:56 <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...
19:12:07 <b_jonas> only two commands work with the shortcut, and you can't use a command name, the shortcut prefix implies the command
19:12:14 <int-e> @pl \x->[x,1-x]
19:12:14 <lambdabot> ap (:) (return . (-) 1)
19:13:08 <b_jonas> j-bot cd: ,
19:13:08 <j-bot> b_jonas, changed to ,#esoteric
19:13:21 <b_jonas> [ prefixes =: 'Bot prefixes: fungot ^, HackEso `, lambdabot @ or ?, j-bot [, bfbot =.'
19:13:21 <fungot> b_jonas: mine would be about as fast as ff, but without the parenthesis'" eh!
19:13:22 <j-bot> b_jonas: |ok
19:13:24 <b_jonas> [prefixes
19:13:29 <b_jonas> [ prefixes
19:13:29 <j-bot> b_jonas: Bot prefixes: fungot ^, HackEso `, lambdabot @ or ?, j-bot [, bfbot =.
19:14:01 <b_jonas> kspalaiologos: there's a brainfuck interpreter written in brainfuck somewhere on the internet, I think you could use that to make a command in bfbot that runs brainfuck
19:14:11 <kspalaiologos> haha
19:14:18 <kspalaiologos> but my idea was way more fun
19:14:19 <b_jonas> of course it would be very inefficient, but that's what you get for making a bot that you can only program in brainfuck
19:14:32 <kspalaiologos> ^ I planned on adding gisa/asm2bf support
19:14:37 <kspalaiologos> but I kinda don't fancy doing it now
19:14:51 <b_jonas> I think there was a short period when jevalbot had a built-in to invoke a buubot command and wait for its reply
19:14:56 <kspalaiologos> why so serious man :p
19:14:59 <b_jonas> and return the reply to the J expression so it can continue
19:15:40 <int-e> arseniiv: ^^ not sure whether you saw the Thue-Morse code there
19:15:57 <arseniiv> int-e: yeah, this is neat!
19:16:21 <b_jonas> `prefixes
19:16:22 <HackEso> Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot = .
19:16:23 <arseniiv> I’m trying to write something but it doesn’t work
19:16:25 <b_jonas> `? prefixes
19:16:26 <HackEso> Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot = .
19:16:40 <arseniiv> Ithink maybe I’ll write a version using `iterate`
19:16:59 <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.
19:17:15 <b_jonas> I mean as a temporary measure, until we actually add more bots.
19:18:39 <kmc> List of fictional bots
19:19:14 <b_jonas> I'd like to use the ten prefixes 0=- 0-= -0= -=0 =0- =-0 E-0 E0- 0E- -0E
19:19:47 <kmc> 8==D
19:20:08 <kspalaiologos> +help
19:20:11 <int-e> > map((`mod`2).popCount)[0..]
19:20:12 <kspalaiologos> scam
19:20:13 <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...
19:20:20 <arseniiv> hi kmc
19:20:39 <kmc> hi
19:22:05 <arseniiv> int-e: I feel helpless. I started writing “concat $ iterate (\xs -> …) [0]” and froze, I think I shouldn’t write code in a linear text box
19:22:21 <int-e> > [iterate(>>= \x->[x,1-x])[0]!!i!!i|i<-[0..]]
19:22:23 <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...
19:22:50 <esowiki> [[User talk:Palaiologos]] https://esolangs.org/w/index.php?diff=67378&oldid=67367 * Palaiologos * (+277) Actual example
19:23:16 <int-e> > map head.transpose$iterate(>>= \x->[x,1-x])[0]
19:23:18 <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...
19:23:20 <b_jonas> [ (,-.)^:9]0
19:23:30 <j-bot> b_jonas: 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 1 0 0 1 1 0 1 0 0 1 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 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 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 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 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 ...
19:23:42 <arseniiv> @type iterate(>>= \x->[x,1-x])[0]
19:23:44 <lambdabot> Num a => [[a]]
19:23:50 <arseniiv> > iterate(>>= \x->[x,1-x])[0]
19:23:53 <lambdabot> [[0],[0,1],[0,1,1,0],[0,1,1,0,1,0,0,1],[0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0],[0,...
19:24:08 <arseniiv> haha
19:24:08 <int-e> arseniiv: I /was/ going to say that I don't know a nice way of merging the resulting sequences... but map head.transpose does that pretty nicely.
19:24:55 <b_jonas> > concat$iterate(>>= \x->[x,1-x])[0]
19:24:57 <lambdabot> [0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0...
19:25:02 <arseniiv> @type transpose
19:25:04 <lambdabot> [[a]] -> [[a]]
19:25:07 <b_jonas> > iterate(>>= \x->[x,1-x])[0]!!9
19:25:10 <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...
19:25:20 <arseniiv> > traspose [[1], [2, 3], [4, 5, 6]]
19:25:23 <lambdabot> error:
19:25:23 <lambdabot> • Variable not in scope: traspose :: [[Integer]] -> t
19:25:23 <lambdabot> • Perhaps you meant one of these:
19:25:26 <int-e> b_jonas: cheater!
19:25:55 <arseniiv> > transpose [[1], [2, 3], [4, 5, 6]]
19:25:57 <lambdabot> [[1,2,4],[3,5],[6]]
19:26:02 <arseniiv> oh
19:26:24 <int-e> @src transpose
19:26:24 <lambdabot> transpose [] = []
19:26:24 <lambdabot> transpose ([] : xss) = transpose xss
19:26:24 <lambdabot> transpose ((x:xs) : xss) = (x : [h | (h:t) <- xss]) : transpose (xs : [ t | (h:t) <- xss])
19:26:55 <arseniiv> int-e: now I understand why head.transpose works
19:27:09 <int-e> oh.
19:27:20 <int-e> > head.transpose$iterate(>>= \x->[x,1-x])[0]
19:27:22 <lambdabot> [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0...
19:27:35 <int-e> > head.transpose.transpose$iterate(>>= \x->[x,1-x])[0]
19:27:38 <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...
19:27:41 <int-e> ;)
19:27:52 <int-e> (I had `map head`)
19:28:18 <b_jonas> > iterate(ap(++)(fmap(1-)))[0]
19:28:20 <lambdabot> [[0],[0,1],[0,1,1,0],[0,1,1,0,1,0,0,1],[0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0],[0,...
19:28:24 <b_jonas> > iterate(ap(++)(fmap(1-)))[0]!!9
19:28:27 <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...
19:28:31 <arseniiv> ah, yes, . is less binding than application
19:29:03 <int-e> b_jonas: ah, cute.
19:29:26 <arseniiv> how about abacaba? I think I already have seen how to do it but I’m afraid I won’t write it myself quick enough this time too
19:29:33 <int-e> b_jonas: you can drop the `f` and then it'll actually be one character less than (>>= \x->[x,1-x])
19:30:08 <b_jonas> > iterate(ap(++)(map(1-)))[0]!!9
19:30:11 <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...
19:30:22 <int-e> but I still think the !!9 is cheating.
19:31:12 <b_jonas> > fix(s->0:map(1-)s)
19:31:15 <lambdabot> error:
19:31:15 <lambdabot> Pattern syntax in expression context: s -> 0 : map (1 -) s
19:31:21 <b_jonas> > fix(\s->0:map(1-)s)
19:31:23 <lambdabot> [0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1...
19:31:30 <b_jonas> no
19:33:22 <kspalaiologos> perl is an amazing language
19:33:53 <kspalaiologos> I managed to fit ini parser and brainfuck code generator making up a brainfuck-to-anything compiler compiler
19:33:57 <kspalaiologos> in 3700 bytes
19:34:16 <kspalaiologos> https://esolangs.org/wiki/User_talk:Palaiologos
19:34:18 <kspalaiologos> this INI
19:34:20 <kspalaiologos> turns into this:
19:34:35 <kspalaiologos> https://github.com/KrzysztofSzewczyk/b2all/blob/master/b2cs.bf
19:34:42 <arseniiv> > map (ceiling . (/log 2) . log) [1..]
19:34:44 <lambdabot> [0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6...
19:35:00 <b_jonas> kspalaiologos: you'll have to talk to ais523, he's the perl guy here :-)
19:35:13 <kspalaiologos> possibly
19:35:23 <kspalaiologos> I honestly think this language is amazing
19:35:26 <kspalaiologos> for data processing
19:35:41 <kspalaiologos> on such an edge case of brainfuck compiler compiler
19:36:19 <b_jonas> `? ayacc
19:36:20 <HackEso> ayacc is ais523's yacc parser generator implementation, get it from darcs clone http://nethack4.org/projects/ayacc
19:36:22 <int-e> > fix((0:).("..">>).map(1+))
19:36:24 <lambdabot> [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,2...
19:36:33 <int-e> oh.
19:36:58 <arseniiv> > let h=ceiling.(/log 2).log in concat.iterate(\s->h s:s)[0]
19:37:01 <lambdabot> error:
19:37:01 <lambdabot> • Couldn't match expected type ‘a -> [[a1]]’
19:37:01 <lambdabot> with actual type ‘[[Integer]]’
19:37:06 <int-e> > fix((0:).(<*"..").map(1+))
19:37:08 <lambdabot> [0,1,1,2,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5...
19:37:21 <kspalaiologos> b_jonas, 403 forbidden
19:37:33 <int-e> > 0:fix((1:).(<*"..").map(1+)) -- sigh.
19:37:35 <lambdabot> [0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6...
19:37:41 <kspalaiologos> it's gone
19:38:11 <arseniiv> > let h=ceiling.(/log 2).log in concat.iterate(\s->h$length s:s)[0]
19:38:13 <lambdabot> error:
19:38:13 <lambdabot> • Couldn't match expected type ‘a -> [[a1]]’
19:38:13 <lambdabot> with actual type ‘[[Int]]’
19:39:08 <arseniiv> @type floor
19:39:10 <lambdabot> (RealFrac a, Integral b) => a -> b
19:39:16 <arseniiv> hm
19:39:48 <arseniiv> > let h=ceiling.(/log 2).log in concat$iterate(\s->h$length s:s)[0]
19:39:50 <lambdabot> error:
19:39:51 <lambdabot> • No instance for (RealFrac [Int]) arising from a use of ‘h’
19:39:51 <lambdabot> • In the expression: h $ length s : s
19:40:31 <arseniiv> > let h=ceiling.(/log 2).log in concat$iterate(\s->h(length s):s)[0]
19:40:33 <lambdabot> error:
19:40:34 <lambdabot> • Could not deduce (RealFrac Int) arising from a use of ‘h’
19:40:34 <lambdabot> from the context: Integral a
19:40:49 <int-e> :t ceiling.(/log 2).log
19:40:51 <lambdabot> (RealFrac a, Integral c, Floating a) => a -> c
19:41:05 <int-e> :t ceiling.(/log 2).log.fromIntegral
19:41:07 <lambdabot> (Integral c, Integral a) => a -> c
19:41:16 <kspalaiologos> what kind of arcane magic is it
19:41:22 <int-e> :t genericLength
19:41:23 <lambdabot> Num i => [a] -> i
19:41:25 <arseniiv> > let h=ceiling.(/log 2).log.fromIntegral in concat$iterate(\s->h(length s):s)[0]
19:41:28 <lambdabot> [0,0,0,1,0,0,2,1,0,0,2,2,1,0,0,3,2,2,1,0,0,3,3,2,2,1,0,0,3,3,3,2,2,1,0,0,3,3...
19:41:35 <arseniiv> eh…
19:41:45 <int-e> arseniiv: what are you trying to do?
19:41:53 <arseniiv> abacaba
19:42:01 <int-e> oh, the ruler function
19:42:28 <arseniiv> kspalaiologos: Haskell indeed is magic, a dark one sometimes!
19:42:47 <arseniiv> though not yet
19:43:10 <arseniiv> > let h=ceiling.(/log 2).log.fromIntegral in concat$iterate(\s->h(length s):s)[]
19:43:12 <lambdabot> [-17976931348623159077293051907890247336179769789423065727343008115773267580...
19:43:22 <arseniiv> interesting
19:43:35 <b_jonas> ``` openssl rand -base64 12 # fizzie: why does this hang? is there something wrong with random numbers?
19:43:53 <arseniiv> > let h=ceiling.(/log 2).log.fromIntegral in concat$iterate(\s->h(length s):s)[0,0]
19:43:56 <lambdabot> [0,0,1,0,0,2,1,0,0,2,2,1,0,0,3,2,2,1,0,0,3,3,2,2,1,0,0,3,3,3,2,2,1,0,0,3,3,3...
19:44:07 <HackEso> No output.
19:44:23 <b_jonas> `python3 -cimport secrets; print(secrets.token_urlsafe(16)) # fizzie: python also can't generate crypto-secure random numbers either
19:44:24 <int-e> > fix((0:).(>>=(:[0]).succ))
19:44:26 <lambdabot> [0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1...
19:44:54 <HackEso> No output.
19:45:57 <b_jonas> `python3 -cprint([(x&-x).bit_length()-1 for x in range(1,333)]) # you want a ruler function?
19:45:57 <HackEso> ​[0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 7, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2,
19:46:13 <int-e> > let xs = concat $ transpose [repeat 0, map succ xs] in xs
19:46:15 <lambdabot> [0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1...
19:46:27 <int-e> <3 transpose
19:46:32 <b_jonas> ``` openssl rand -base64 16
19:46:48 <b_jonas> fizzie: ^ this should work, and I think it used to work in HackEso before
19:47:03 <HackEso> No output.
19:47:07 -!- imode has quit (Quit: WeeChat 2.6).
19:49:20 <arseniiv> neat
19:49:58 <arseniiv> ah, I see why mine isn’t working
19:50:17 -!- imode has joined.
19:51:43 <int-e> Hmpf. At some point I knew that abs(x) >= 0 is not universally true in C.
19:53:02 <b_jonas> int-e: yeah. but -abs(x) <= 0 is always true, which is why Hacker's Delight says that it can be worth to use the negative absolute value function
19:57:43 <arseniiv> another candidate:
19:57:43 <arseniiv> > concat$iterate(\xt@(x:xs)->(x+1:xs)++xt)[0]
19:57:45 <lambdabot> [0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1...
19:58:09 -!- imode1 has joined.
19:58:22 <arseniiv> don’t like (++) of course
19:58:36 -!- imode has quit (Ping timeout: 246 seconds).
19:59:11 <arseniiv> @hoogle mapHead
19:59:12 <lambdabot> Data.NonEmpty mapHead :: (a -> a) -> T f a -> T f a
19:59:12 <lambdabot> Data.Text.Lazy.Manipulate mapHead :: (Char -> Char) -> Text -> Text
19:59:12 <lambdabot> Data.Text.Manipulate mapHead :: (Char -> Char) -> Text -> Text
20:00:20 <int-e> b_jonas: hmm, I guess that would've helped
20:00:43 <int-e> b_jonas: but I learned about std::make_unsigned instead.
20:08:11 <int-e> And now that the code no longer gets stuck in an infinite loop I actually have an eligible solution for this months' IBM's Ponder This :)
20:12:05 <int-e> (Probably got a bit lucky there, but who am I to complain about luck...)
20:13:27 <b_jonas> ``` openssl rand -base64 16
20:13:58 <HackEso> No output.
20:16:17 <int-e> `` od -tx1 /dev/urandom | head
20:16:18 <HackEso> 0000000 6a 0e 63 83 21 cd 57 8d 35 5f eb d9 fd 18 4c c2 \ 0000020 d5 77 1b 90 00 f8 14 9c c7 55 16 13 e8 f6 7e 2c \ 0000040 9e e0 ee 73 e8 74 73 46 d5 65 b1 63 47 d9 64 2e \ 0000060 73 b6 ca d1 73 31 f3 d5 0b b0 d5 03 60 d6 15 4d \ 0000100 ea 20 e8 81 37 a0 20 45 65 10 c4 d7 12 a1 a8 14 \ 0000120 62 84 de d4 08 89 1d 8f a7 e5 e8 74 77 a8 98 ca \ 0000140 9c a3 35 fd 16 28 73 a9 35 8a 3e 4d 80 f2 b6 15 \ 0000160 d4 0d 6f b7 31 68 19 ee c7 ca 91
20:20:35 <int-e> Ah, it calls getrandom() and that never terminates.
20:20:52 -!- Vorpal has quit (Quit: ZNC - http://znc.sourceforge.net).
20:23:23 <int-e> `` timeout 4 strace openssl rand -base64 16 2>&1 | paste
20:23:28 <HackEso> https://hack.esolangs.org/tmp/paste/paste.9297
20:24:04 <b_jonas> fizzie: ^
20:26:41 -!- kspalaiologos has quit (Quit: Leaving).
20:31:23 <esowiki> [[Exp]] N https://esolangs.org/w/index.php?oldid=67379 * PythonshellDebugwindow * (+1899) Created page with "'''Exp''' (short for "Expression") is an esoteric coding language based on expressions, created by [[User:PythonshellDebugwindow]]. ==Instructions== {| class="wikitable sortab..."
20:33:00 <esowiki> [[User:PythonshellDebugwindow]] https://esolangs.org/w/index.php?diff=67380&oldid=67361 * PythonshellDebugwindow * (+111)
20:38:53 <zzo38> I wonder is there a command in vim to expand tabs?
20:40:02 <zzo38> Nevermind I found out; type :%!expand to expand tabs
20:46:04 <fizzie> Hm, not sure what I could have changed that would affect that. Per the documentation, getrandom will block until the urandom source is initialized, unlike the /dev/urandom device which will return low-quality randomness.
20:46:41 <fizzie> It's possible it's not actually my changes but a side effect of the Debian upgrade instead, I guess.
20:47:00 <b_jonas> fizzie: ok, but in a UML box, can't it initialize very quickly by getting a random seed from the containing linux?
20:47:21 <moony> i'm suprised UML is still even maintained
20:48:36 <fizzie> Sure, in theory. Whether it actually does that is another question. I've seen some messages about random and fast initialization in the debug output though.
20:49:03 <fizzie> Anyway, the UML kernel on HackEso is pretty old too.
20:50:14 <b_jonas> ``` uname -a
20:50:17 <HackEso> Linux (none) 4.9.82 #6 Sat Apr 7 13:45:01 BST 2018 x86_64 GNU/Linux
20:50:35 <b_jonas> yes, that looks old
20:53:17 <fizzie> I tried upgrading it to the Debian 10 stock user-mode-linux package (kernel 4.19), but it failed to work.
20:54:20 <b_jonas> sad
20:56:05 <moony> maybe it's time that the hackeso setup be transitioned away from UML and towards a different virtualization technique
20:56:41 <b_jonas> moony: basically whoever runs it decides how it's ran
20:56:51 <moony> and that's fizzie
20:57:01 <moony> so whatever fizzie does
20:57:08 <b_jonas> and the hg repo is public, so you can download it and make a new generation
20:57:15 <moony> good point
20:57:15 <b_jonas> and I think even the source code of the bot itself is public
20:57:20 <moony> will look later
20:57:21 <b_jonas> so if you want to fork it, you are allowed
20:57:45 <fizzie> "Trying to reregister IRQ 2 FD 4 TYPE 0 ID (____ptrval____) \ open(rfile, O_RDONLY): Device or resource busy" is what it does on the standard kernel. But it works fine on the 5.3 in sid.
20:58:12 <fizzie> I would strongly prefer if we had just one hackbot instance on the channel, TBH.
20:58:17 <esowiki> [[Deadfish]] https://esolangs.org/w/index.php?diff=67381&oldid=67373 * Zzo38 * (+750) +ZZ Zero
20:58:28 <moony> yea I wouldn't try and bring in yet another hackbot here
20:59:41 <b_jonas> and the second HackBot can synchronize by pulling the updates from Eso's repository using hg, and pushing diffs with `fetch and applying them
20:59:43 <esowiki> [[Deadfish]] M https://esolangs.org/w/index.php?diff=67382&oldid=67381 * Zzo38 * (+1)
21:00:30 <zzo38> Now you can see the example ZZ Zero code which implements Deadfish.
21:00:30 <b_jonas> but more likely just keep it on standby for when fizzie gives up
21:07:17 <fizzie> `uname -a
21:07:20 <HackEso> Linux (none) 4.19.37 #2 Fri May 24 13:58:48 UTC 2019 x86_64 GNU/Linux
21:07:21 <fizzie> Weird, now it worked.
21:10:46 <fizzie> `` uname -a # rolled it back anyway
21:10:47 <HackEso> Linux (none) 4.9.82 #6 Sat Apr 7 13:45:01 BST 2018 x86_64 GNU/Linux
21:11:35 <b_jonas> `run openssl rand -base64 16 # hmm
21:11:52 <fizzie> I tried that while it was briefly 4.19, and it didn't work any better.
21:12:06 <HackEso> No output.
21:14:07 -!- Vorpal has joined.
21:14:48 <fizzie> `` cat /proc/sys/kernel/random/entropy_avail; sleep 10; cat /proc/sys/kernel/random/entropy_avail # I assume this is the root cause
21:14:58 <HackEso> 1 \ 1
21:16:08 <b_jonas> does it, like, not trust that the randomness of the containing box gives enough entropy?
21:16:26 <b_jonas> and so it tries to gather entropy on its own like in a full linux box?
21:17:42 <fizzie> It may be a configuration issue.
21:18:05 <fizzie> There's a CONFIG_UML_RANDOM flag: "This option enables UML's "hardware" random number generator. It attaches itself to the host's /dev/random, supplying as much entropy as the host has, rather than the small amount the UML gets from its own drivers. It registers itself as a standard hardware random number generator, major 10, minor 183, and the canonical device name is /dev/hwrng."
21:18:24 <fizzie> But that only helps if the userland runs rngd to feed randomness from /dev/hwrng to /dev/random.
21:18:40 <fizzie> I'm not sure whether I have it enabled or not, either.
21:19:33 -!- moony has changed nick to sust.
21:19:48 <fizzie> Anyway, I could make the umlbox init inject "enough" initial entropy from the host for reasonable HackEso commands.
21:20:15 <b_jonas> maybe UML does that on its own if you enable that config option?
21:20:40 <fizzie> No, the documentation of that config option continues: "The way to make use of this is to install the rng-tools package."
21:20:47 <b_jonas> hmm
21:20:54 <b_jonas> is there a different config option then?
21:21:18 <fizzie> Not as far as I can tell.
21:21:34 <b_jonas> :-(
21:22:14 <fizzie> Arguably, it's good that UML doesn't just pass through the random devices / calls to the host. Otherwise, a single UML instance could DoS everyone else by consuming all the entropy.
21:23:23 <fizzie> (I don't know if they've had that as a concern or not. There isn't very much recent documentation on UML and randomness.)
21:24:02 <b_jonas> maybe they just haven't fixed UML since the getrandom syscall was added?
21:25:15 <fizzie> It's not really "broken", it's working as intended.
21:25:27 <b_jonas> ``` od -N16 -tx4 /dev/random
21:25:37 <b_jonas> hmm
21:25:54 <fizzie> It's just that /dev/urandom is "broken", unlike the getrandom syscall.
21:26:10 <fizzie> "When read during early boot time, /dev/urandom may return data prior to the entropy pool being initialized. If this is of concern in your application, use getrandom(2) or /dev/random instead."
21:26:11 <b_jonas> yeah, it's not specific to getrandom , because /dev/random d
21:26:14 <b_jonas> oes the same
21:27:02 <b_jonas> I guess you could make the wrapper write an initial random seed into /dev/random
21:27:09 <b_jonas> the /dev/random of the inner box I mean
21:27:17 <HackEso> No output.
21:27:39 <fizzie> (Also, that wasn't 30 seconds.)
21:33:26 <b_jonas> `python3 -cfor k in range(20):import sys,time;n=time.time()*100%1000;print("%02d.%02d"%divmod(n,100),file=sys.stderr);time.sleep(0.2)
21:33:31 <HackEso> 07.33 \ 07.54 \ 07.74 \ 07.94 \ 08.14 \ 08.34 \ 08.54 \ 08.74 \ 08.94 \ 09.14 \ 09.34 \ 09.54 \ 09.74 \ 09.94 \ 00.14 \ 00.34 \ 00.54 \ 00.74 \ 00.94 \ 01.14
21:33:33 <b_jonas> `python3 -cwhile 1:import sys,time;n=time.time()*100%1000;print("%02d.%02d"%divmod(n,100),file=sys.stderr);time.sleep(0.2)
21:34:05 <HackEso> No output.
21:34:08 <b_jonas> `run for k in {1..9999}; do echo $k; sleep 1; done
21:34:22 <fizzie> When I run things locally in verbose mode, after a little while there is a "random: fast init done" kernel message, which from the code looks like is when some threshold of entropy has been reached, and it wakes up the parts of the kernel that have been blocked on crng_init_wait. But that's probably the small trickle of randomness it gets from its own drivers.
21:34:26 <b_jonas> fizzie: it looks as if HackEso no longer prints partial output after a timeout, or something. why is this?
21:34:39 <HackEso> 1 \ 2 \ 3 \ 4 \ 5 \ 6 \ 7 \ 8 \ 9 \ 10 \ 11 \ 12 \ 13 \ 14 \ 15 \ 16 \ 17 \ 18 \ 19 \ 20 \ 21 \ 22 \ 23 \ 24 \ 25 \ 26 \ 27 \ 28 \ 29 \ 30
21:34:42 <b_jonas> hmm
21:34:48 <b_jonas> weird, it does now
21:34:52 <b_jonas> but not with the python command
21:34:54 <b_jonas> what did I do wrong?
21:35:33 <fizzie> I don't know. Maybe the Python command is fully buffered, since the output is to a pipe, not a terminal?
21:35:41 <b_jonas> but I print to sys.stderr
21:35:48 <b_jonas> I'll experiment a bit more
21:36:19 <fizzie> sys.stderr is a pipe too, FWIW.
21:36:28 <fizzie> (In fact, it's the same pipe.)
21:36:55 <fizzie> That's a change from before, by the way, earlier the 'cat' (to fake that the output is not to a tty) was inserted only in the stdout path.
21:38:17 <b_jonas> `python3 -cwhile 1:import sys,time;n=time.time()*100%1000;print("%02d.%02d"%divmod(n,100),file=sys.stderr);sys.stderr.flush();time.sleep(0.2)
21:38:27 <b_jonas> `python3 -cwhile 1:import sys,time;n=time.time()*100%1000;print("%02d.%02dnf"%divmod(n,100),file=sys.stderr);time.sleep(0.2)
21:38:47 <HackEso> 07.63 \ 07.83 \ 08.03 \ 08.23 \ 08.43 \ 08.63 \ 08.83 \ 09.03 \ 09.23 \ 09.44 \ 09.64 \ 09.84 \ 00.04 \ 00.24 \ 00.44 \ 00.64 \ 00.84 \ 01.04 \ 01.24 \ 01.44 \ 01.64 \ 01.84 \ 02.05 \ 02.25 \ 02.45 \ 02.65 \ 02.85 \ 03.05 \ 03.25 \ 03.45 \ 03.65 \ 03.85 \ 04.05 \ 04.25 \ 04.45 \ 04.66 \ 04.86 \ 05.06 \ 05.26 \ 05.46 \ 05.66 \ 05.86 \ 06.06 \ 06.26 \ 06.46 \ 06.66 \ 06.86 \ 07.06 \ 07.26 \ 07.46 \ 07.67 \ 07.87 \ 08.07 \ 08.27 \ 08.47 \ 08.67 \
21:38:57 <HackEso> No output.
21:39:02 <b_jonas> you were right, sys.stderr is buffered for some reason. darn you, python3.
21:39:07 <b_jonas> fizzie: sorry for the false alarm
21:39:59 <fizzie> It also looks to be keeping correct time pretty well.
21:40:20 <b_jonas> `python3 -cwhile 1:import sys,time;n=time.time()*100%1000;print("%02d.%02dnf"%divmod(n,100),file=sys.stderr);time.sleep(0.5)
21:40:40 <b_jonas> `python3 -cwhile 1:import sys,time;n=time.time()*100%1000;print("%02d.%02d"%divmod(n,100));sys.stdout.flush();time.sleep(0.5)
21:40:43 <fizzie> The 30-second timeout is measured on CLOCK_MONOTONIC with a POSIX timer now.
21:40:51 <HackEso> No output.
21:41:11 <HackEso> 00.93 \ 01.43 \ 01.93 \ 02.43 \ 02.93 \ 03.43 \ 03.93 \ 04.43 \ 04.93 \ 05.44 \ 05.94 \ 06.44 \ 06.94 \ 07.44 \ 07.94 \ 08.44 \ 08.94 \ 09.44 \ 09.95 \ 00.45 \ 00.95 \ 01.45 \ 01.95 \ 02.45 \ 02.95 \ 03.45 \ 03.95 \ 04.45 \ 04.96 \ 05.46 \ 05.96 \ 06.46 \ 06.96 \ 07.46 \ 07.96 \ 08.46 \ 08.97 \ 09.47 \ 09.97 \ 00.47 \ 00.97 \ 01.47 \ 01.97 \ 02.47 \ 02.97 \ 03.47 \ 03.97 \ 04.48 \ 04.98 \ 05.48 \ 05.98 \ 06.48 \ 06.98 \ 07.48 \ 07.98 \ 08.48 \
21:41:24 <b_jonas> `python3 -cwhile 1:import sys,time;n=time.time()*100%1000;print("%02d.%02d"%divmod(n,100));sys.stdout.flush();time.sleep(1.0)
21:41:49 <b_jonas> `python3 -cwhile 1:import sys,time;n=time.time()*100%10000;print("%02d.%02d"%divmod(n,100));sys.stdout.flush();time.sleep(1.0)
21:41:55 <HackEso> 04.81 \ 05.82 \ 06.82 \ 07.82 \ 08.82 \ 09.82 \ 00.82 \ 01.83 \ 02.83 \ 03.83 \ 04.83 \ 05.83 \ 06.83 \ 07.83 \ 08.84 \ 09.84 \ 00.84 \ 01.84 \ 02.84 \ 03.85 \ 04.85 \ 05.85 \ 06.85 \ 07.85 \ 08.85 \ 09.86 \ 00.86 \ 01.86 \ 02.86 \ 03.86
21:42:20 <HackEso> 10.01 \ 11.02 \ 12.02 \ 13.02 \ 14.02 \ 15.02 \ 16.03 \ 17.03 \ 18.03 \ 19.03 \ 20.03 \ 21.04 \ 22.04 \ 23.04 \ 24.04 \ 25.04 \ 26.04 \ 27.05 \ 28.05 \ 29.05 \ 30.05 \ 31.05 \ 32.06 \ 33.06 \ 34.06 \ 35.06 \ 36.06 \ 37.06 \ 38.06 \ 39.07
21:42:31 <b_jonas> looks about right
21:53:28 -!- tromp has quit (Remote host closed the connection).
21:56:12 -!- tromp has joined.
22:18:11 <fizzie> The thing is, that's measuring it from the inside. If there's some sort of timing skew, it would only show up if there was some external source to measure it against. But there isn't.
22:33:23 <fizzie> Weird. I've got a command that prints one line of output if I copy the umlbox command line it ends up executing and run it outside of the multibot/hackbot context (but as the same user); but as a HackEso command it just says the usual "No output."
22:35:45 <fizzie> Ohh, right: it's probably because under HackEso it runs with the cat, and the timeout kills both processes at the same time. Yep, with | cat it also does the same outside.
22:36:10 <fizzie> I guess maybe the timeout should only kill the command process, and rely on the cat stopping since the only process holding the write end of its pipe was just killed.
22:38:20 <b_jonas> fizzie: you should probably still kill the cat after some time
22:38:24 <b_jonas> just in case]
22:40:07 <b_jonas> ``` kill -STOP 49; echo hello 1-gmRmaFJxJn
22:40:45 <HackEso> No output.
22:40:56 <b_jonas> ``` echo hkirO7mrtS3z; sleep 1; echo iP-fR9XfSssi; kill -STOP 49; echo H_FneqCCqFeY
22:42:31 <HackEso> No output.
22:42:54 <b_jonas> hmm
22:43:19 <b_jonas> ``` echo -l7gBFfQyxIJ; sleep 999
22:43:50 <HackEso> No output.
22:44:18 <b_jonas> that's strange
22:44:24 <fizzie> `perl -euse Time::HiRes; $| = 1; $t = time; $SIG{'TERM'} = sub { printf "TERM at %.3f seconds\n", time-$t; exit 0; }; sleep;
22:44:31 <b_jonas> ``` echo rc-V4VVF2nvu
22:44:32 <HackEso> rc-V4VVF2nvu
22:44:46 <b_jonas> ``` echo 24AsPMQN_AlS; sleep 999
22:44:55 <HackEso> TERM at 30.000 seconds
22:45:10 <b_jonas> `run echo lZ_R_lCr2p1T; sleep 999
22:45:22 <HackEso> No output.
22:45:36 <b_jonas> fizzie: ^ what's happening?
22:45:45 <HackEso> lZ_R_lCr2p1T
22:45:50 <b_jonas> hmm
22:45:53 <b_jonas> now it works
22:46:06 <fizzie> That's the one from `run. But I don't see why that would be any different.
22:46:16 <fizzie> Yeah, weird.
22:46:25 <b_jonas> ``` echo -6d0phMQiXb5_
22:46:26 <HackEso> ​-6d0phMQiXb5_
22:46:52 <b_jonas> `run echo cDxDMxZU9YJ3
22:46:53 <HackEso> cDxDMxZU9YJ3
22:47:13 <b_jonas> `run echo 4e073w8PupF-; sleep 9999
22:47:24 <fizzie> I mean, I could imagine the cat could also be buffering its writes? But that part hasn't changed. And nothing would get incomplete output in that case.
22:47:35 <fizzie> Anyway, gotta go.
22:47:39 <b_jonas> I don't think cat does
22:47:49 <HackEso> 4e073w8PupF-
22:48:23 <sust> fizzie: my cat doesn't know how to buffer writes.
22:48:26 <sust> it can meow tho
22:54:33 <fizzie> b_jonas: Oh, maybe it's rnooodl that's buffering writes?
22:54:41 <fizzie> That's be one difference between ``` and `run.
22:57:13 <b_jonas> fizzie: yes, but (1) it didn't work with run either, (2) rnooooodl flushes after each line
22:57:17 <b_jonas> or doesn't it? wait
22:57:30 <b_jonas> ``` cat bin/rn*(o)dl
22:57:31 <HackEso> cat: 'bin/rn*(o)dl': No such file or directory
22:57:34 <b_jonas> ``` cat /hackenv/bin/rn*(o)dl
22:57:35 <HackEso> perl -pe 's/([Nn])ooodl/"$1@{[o x(3+rand 7)]}dl"/ge'
22:57:37 <fizzie> It did work with run, every time you tried it.
22:57:40 <b_jonas> darn it
22:57:43 <b_jonas> it doesn't flush
22:57:57 <fizzie> 4e073w8PupF- and lZ_R_lCr2p1T both.
22:58:11 <b_jonas> `run echo uy0np_TFMTLV; sleep 9999
22:58:47 <HackEso> uy0np_TFMTLV
22:58:48 <b_jonas> `run echo GyDzrHYDRozQ; sleep 10; echo s0WsZweXT8GlA; kill -STOP 49; echo wCLwrX8fLtPX
22:58:54 <b_jonas> yes, it's working with run apparently
22:59:24 <HackEso> GyDzrHYDRozQ \ s0WsZweXT8GlA
22:59:36 <b_jonas> sorry, I'm just tired and confused then
23:09:27 -!- tromp has quit (Remote host closed the connection).
23:14:14 -!- arseniiv has quit (Ping timeout: 246 seconds).
23:30:18 -!- imode1 has quit (Quit: WeeChat 2.6).
23:52:07 -!- tromp has joined.
23:54:13 <fizzie> http://ix.io/22MC what
23:55:47 -!- imode has joined.
23:56:35 -!- tromp has quit (Ping timeout: 246 seconds).
2019-11-25
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:08 <lambdabot> Consider it noted.
01:12:11 <oerjan> oops
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:25 <lambdabot> Consider it noted.
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:42 <b_jonas> ^undef quine
01:14:46 <b_jonas> =undef quine
01:14:46 <bfbot> ok
01:14:54 <b_jonas> ^def quine (?)S
01:14:54 <fungot> Usage: ^def <command> <lang> <code>
01:14:57 <b_jonas> ^def quine ul (?)S
01:14:57 <fungot> Defined.
01:15:00 <b_jonas> ^quine
01:15:00 <fungot> ?
01:15:01 <b_jonas> =quine
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:39 <fungot> Defined.
01:20:42 <oerjan> ^quine
01:20:42 <fungot> ^quine
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:11 <oerjan> b_jonas: yeah
01:21:58 <oerjan> hm it wouldn't be too hard to make that a quine with payload in bf
01:22:16 <oerjan> `! bf_txtgen ^quine
01:22:20 <HackEso> 91 ++++++++++++++[>++++++++>+++++++>++><<<<-]>>----.<+.++++.>+++++++++++.<-------.>----.>++++. [61]
01:23:08 <oerjan> or wait, then it would technically be wrong if given no argument
01:23:15 <oerjan> which is ugly
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:24:22 <oerjan> *any way
01:25:18 <oerjan> ^bf ,[+.,]!
01:25:31 <oerjan> curious
01:25:43 <oerjan> ^bf ,[+.,]!a
01:25:43 <fungot> b
01:26:08 <oerjan> apparently fungot writes nothing then
01:26:08 <fungot> oerjan: explicit at what level this kind of things.
01:26:44 <oerjan> ^def fdip bf ,[+.,]
01:26:44 <fungot> Defined.
01:26:48 <oerjan> ^fdip
01:26:51 <oerjan> ^fdip
01:26:54 <oerjan> ^fdip a
01:26:54 <fungot> b
01:26:59 <oerjan> no difference
01:27:06 <oerjan> ^hm
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:29:01 <oerjan> (it's happened)
01:35:37 <oerjan> `? prefixes
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:36:35 <oerjan> wat
01:38:12 <oerjan> `cbt slwd
01:38:14 <HackEso> cd $HACKENV/wisdom; sled "$1" | sed '1s/^Rosebud!$/Roswbud!/'
01:38:27 <oerjan> `? prefixes
01:38:29 <HackEso> Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot = .
01:39:03 <oerjan> `cbt sled
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:39:58 <oerjan> curious
01:40:00 <esowiki> [[Special:Log/newusers]] create * Orvira * New user account
01:40:02 <oerjan> `` echo $SHELL
01:40:09 <HackEso> ​/bin/sh
01:40:33 <oerjan> `/bin/sh -v
01:40:34 <HackEso> No output.
01:40:37 <oerjan> `/bin/sh -V
01:40:38 <HackEso> No output.
01:40:46 <oerjan> `` ls -l /bin/sh
01:40:47 <HackEso> lrwxrwxrwx 1 0 0 4 Jan 17 2019 /bin/sh -> dash
01:40:51 <oerjan> still dash
01:41:20 <oerjan> `cat test
01:41:21 <HackEso> cat: test: No such file or directory
01:41:29 <oerjan> `pwd
01:41:30 <HackEso> ​/hackenv/tmp
01:41:38 <oerjan> `` echo a >test
01:41:40 <HackEso> No output.
01:41:51 <oerjan> oh hm
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:42:25 <oerjan> ok it's not that
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:45:51 <oerjan> `which [[
01:45:52 <HackEso> No output.
01:49:31 <oerjan> `ps
01:49:32 <HackEso> ​ PID TTY TIME CMD \ 49 ? 00:00:00 cat \ 50 ? 00:00:00 ps
01:49:48 <oerjan> `cbt `
01:49:48 <HackEso> ​#!/bin/bash \ cmd="${@-quote}" \ TIMEFORMAT="real: %lR, user: %lU, sys: %lS" \ shopt -s extglob globstar \ eval -- "$cmd" | rnooodl
01:50:23 <fizzie> Hmm.
01:50:26 <oerjan> `` slwd 'prefixe//s, .$,.,'
01:50:27 <HackEso> Roswbud!
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:50:41 <oerjan> ic
01:50:44 <oerjan> i think i know
01:51:01 <fizzie> [[ is a bashism, yes.
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:47 <oerjan> `cbt nur
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 <oerjan> ^prefixes
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:28 <fungot> Defined.
01:56:52 <oerjan> there. of course i also ^def'ed a useless test command above.
01:58:01 <oerjan> oh wait
01:58:24 <oerjan> no, it's right
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:06:13 <oerjan> oh.
02:06:27 <oerjan> fiendish
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:31 <fizzie> `asdf no such command
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:37:18 <HackEso> shtest
02:37:21 <fizzie> `/hackenv/tmp/shtest
02:37:22 <HackEso> ​[5.0.3(1)-release]
02:37:34 <fizzie> `rm shtest
02:37:35 <HackEso> No output.
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:39:38 <fizzie> `asdf no such command
02:39:39 <HackEso> asdf?
02:47:36 <oerjan> `? asdf
02:47:38 <HackEso> asdf? ¯\(°​_o)/¯
02:51:53 <fizzie> Opted not to add the ¯\(°​_o)/¯.
04:12:27 <oerjan> `? haiku
04:12:28 <HackEso> ​🀨や⛄
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:13:20 <oerjan> huh
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:20 <oerjan> (YA)
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 <oerjan> `quote hiragana
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:04 <oerjan> hum
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:22:52 * oerjan does some doaging
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).
04:56:05 <oerjan> `` echo $$
04:56:08 <HackEso> 50
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 <oerjan> =prefixes
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:32:01 <oerjan> *oh
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:42 <oerjan> `? ayacc
05:55:43 <HackEso> ayacc is ais523's yacc parser generator implementation, get it from darcs clone http://nethack4.org/projects/ayacc
05:58:17 <oerjan> :t interleave
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:41 <shachaf> `? topos
06:47:42 <HackEso> topos? ¯\(°​_o)/¯
06:47:47 <shachaf> `? subobject classifier
06:47:49 <HackEso> subobject classifier? ¯\(°​_o)/¯
06:58:25 <oerjan> 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 <b_jonas> oerjan: ah sorry about the spaces
08:04:42 <oerjan> easy to miss
08:05:51 <b_jonas> =str 1s++++[->++++<]>[->++>+++>++++>+++++>++++++>+++++++<<<<<<]> >>++.>>+++++++++++++++.>++++.<<<<<.>>>>>----.++.<----------.+.+++.>++++++.<----.>-----.<<<<++++++++++.<.>>>>+.>++.<++++++++.-------.++++++++.>-.<<<<<.>>>++++++++++++++.<<<++++++++++++.------------.>>++++++.>>--------------.++.++++++++.<<---.>>>-.<++++.
08:05:51 <bfbot> ok
08:05:56 <b_jonas> =str 1a<<<<.>>>>---------------.<<<<++++++++++++.------------.>>>>++++++++++++.-----------.++++++++++++.-----------.++.---.+.+++++++++++++.>+.<<<<<.>>-----.<<.>>>>.>--.<<<<<.>+++++.<++++++++++++.------------.>>>>-----.<<<<+++++++++++++.>>>>--------.+++++++++++++.>++.<<<<<-------------.>>>---.<<<.++++++++++++.-------
08:05:56 <bfbot> ok
08:06:01 <b_jonas> =str 1a-----.>>>>-------------.++++.----.+++++++++++++.>.<<<<<.>--.<++++++++++++++.
08:06:01 <bfbot> ok
08:06:04 <b_jonas> =def 1prefixes
08:06:04 <bfbot> ok, defined 'prefixes'
08:06:05 <b_jonas> =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 <oerjan> ^prefixes
08:07:55 <fungot> Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot =.
08:08:12 <oerjan> hm i don't remember
08:08:30 <oerjan> `hwrl prefixes
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:54 <oerjan> `hurl ../bin/prefixes
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:42 <b_jonas> `prefix
08:22:43 <HackEso> prefix?
08:22:46 <b_jonas> `prefixes
08:22:47 <b_jonas> `? prefixes
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 <b_jonas> ^prefixes
08:23:09 <fungot> Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot =.
08:23:12 <b_jonas> =prefixes
08:23:13 <bfbot> Bot prefixes: fungot ^, HackEso `, lambdabot @ or ?, j-bot [ , bfbot =.
08:23:51 <b_jonas> @prefixes
08:23:51 <lambdabot> Unknown command, try @list
08:24:02 <b_jonas> > prefixes
08:24:04 <lambdabot> error:
08:24:04 <lambdabot> • Variable not in scope: prefixes
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 <oerjan> @list where
08:26:40 <lambdabot> where provides: where url what where+
08:26:55 <oerjan> @help what
08:26:55 <lambdabot> what <key>. Return element associated with key
08:27:01 <oerjan> @help where
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:07 <b_jonas> hmm
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:46 <HackEso> 166
08:27:48 <b_jonas> 166 commands
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 <b_jonas> @help you
08:28:42 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
08:28:45 <b_jonas> @you
08:28:45 <lambdabot> I'm encased in the lining of a pure pork sausage!!
08:29:02 <b_jonas> @botsnack
08:29:02 <lambdabot> :)
08:29:38 <b_jonas> @help where+
08:29:38 <lambdabot> where+ <key> <elem>. Define an association
08:29:41 <b_jonas> @help where-
08:29:42 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
08:29:44 <b_jonas> @help nowhere
08:29:44 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
08:29:45 <b_jonas> hmm
08:29:57 <b_jonas> he never forgets
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:30:43 <lambdabot> I know nothing about prefixes.
08:30:52 <b_jonas> @what prefixes
08:30:52 <lambdabot> I know nothing about prefixes.
08:30:55 <b_jonas> hmm
08:31:12 <b_jonas> doesn't quite seem to work
08:31:14 <b_jonas> @where wiki
08:31:14 <lambdabot> I know nothing about wiki.
08:31:19 <b_jonas> @where faq
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:31 <lambdabot> I will remember.
08:31:36 <b_jonas> @what prefixes
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:30 <oerjan> @yow
08:32:31 <lambdabot> My life is a patio of fun!
08:32:53 <oerjan> i don't think @you actually exists, there's a @thank you that isn't actually working
08:32:58 <oerjan> @thank you
08:32:59 <lambdabot> Maybe you meant: thank you thanks
08:33:24 <oerjan> and which gets listed deceptively
08:33:27 <b_jonas> @list thank
08:33:27 <lambdabot> No module "thank" loaded
08:33:29 <b_jonas> @list thanks
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:33:37 <b_jonas> really?
08:33:41 <b_jonas> @help yow
08:33:41 <lambdabot> yow. The zippy man.
08:33:45 <b_jonas> wow
08:33:47 <oerjan> afair
08:34:00 <b_jonas> @thank good documentation
08:34:01 <lambdabot> Maybe you meant: thank you thanks
08:34:06 <b_jonas> @thank you good documentation
08:34:07 <lambdabot> Maybe you meant: thank you thanks
08:34:10 <b_jonas> @thank you
08:34:11 <lambdabot> Maybe you meant: thank you thanks
08:34:18 <b_jonas> @thank you
08:34:18 <lambdabot> you are welcome
08:34:28 <b_jonas> but but but
08:34:59 <b_jonas> ok that's evil
08:37:16 <oerjan> wait, what did you do
08:37:20 <oerjan> @thank you
08:37:20 <lambdabot> Maybe you meant: thank you thanks
08:37:23 <b_jonas> `whatis thank
08:37:24 <HackEso> thank: nothing appropriate.
08:37:25 <b_jonas> `whatis you
08:37:26 <HackEso> you: nothing appropriate.
08:37:36 <b_jonas> oerjan: \u00A0
08:37:47 <b_jonas> @thank!you
08:37:48 <lambdabot> you are welcome
08:37:58 <oerjan> fiendish
08:38:05 <b_jonas> I don't know what character it is supposed to be, but it spellcheck corrects from \u00A0
08:38:09 <oerjan> oh
08:38:11 <b_jonas> I don't know a way to find the real command name
08:38:20 <b_jonas> @help thank you
08:38:20 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
08:38:22 <oerjan> @thankeyou
08:38:22 <lambdabot> you are welcome
08:38:26 <b_jonas> @help thank_you
08:38:26 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
08:38:29 <b_jonas> @help thank you
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:40:26 <oerjan> not on the spot
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:40 <oerjan> anyway, good night
08:42:43 -!- oerjan has quit (Quit: leaving).
08:43:01 -!- sprocklem has joined.
08:44:31 <b_jonas> `?
08:44:33 <HackEso> ​? ¯\(°​_o)/¯
08:44:33 <b_jonas> `? a
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:52 <wib_jonas> `? pdf
11:54:54 <HackEso> PDF stands for Pretty Depressing Format.
11:54:59 <wib_jonas> `? wisdom.pdf
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:01 <wib_jonas> `? prefixes
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:50 <wib_jonas> ok, maybe not normal either
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:50:13 <wib_jonas> that and a maze game
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:13:55 <kspalaiologos> 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 <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:28:54 <wib_jonas> ah sorry, I'm wrong
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:21 <wib_jonas> but that isn't enough to continue
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:24 <wib_jonas> ha! yes
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:37:40 <wib_jonas> is startscumming cheating?
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:42:52 <kspalaiologos> we do it constantly in Europa Universalis
15:42:57 <kspalaiologos> there is savescumming too
15:43:02 <kspalaiologos> and some mysterious game crashes
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:32 <wib_jonas> I don't know why it's called that
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:05 <wib_jonas> yeah, it only has the 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:07 <wib_jonas> yeah
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:17 <wib_jonas> `? euclid
16:41:19 <HackEso> euclid? ¯\(°​_o)/¯
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:55:33 <Lokee> Sorry about that.
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:45 <b_jonas> `welcome
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:51 <b_jonas> might be.
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?
18:59:31 <shachaf> It must be, right?
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:30 <shachaf> Oh no.
19:00:56 <shachaf> I wish logs didn't exist.
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:01:51 <Lokee> alright then
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:00 <b_jonas> `quote euclid
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:36 <b_jonas> not quite
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:23 <tswett[m]> Right.
21:07:26 <tswett[m]> So I was thinking, like...
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:08 <tswett[m]> Yeah, but mutable strings. :D
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:33:01 <b_jonas> hmm
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:42:05 <b_jonas> nice
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).
2019-11-26
00:00:00 -!- hppavilion[2] has joined.
00:01:04 -!- FreeFull has quit.
00:03:39 -!- hppavilion[1] has quit (Ping timeout: 265 seconds).
00:04:59 -!- arseniiv has quit (Ping timeout: 276 seconds).
01:35:56 -!- atslash has joined.
01:49:57 -!- oerjan has joined.
01:58:55 -!- hppavilion[2] has quit (Remote host closed the connection).
02:09:02 <esowiki> [[HackEso]] M https://esolangs.org/w/index.php?diff=67458&oldid=67391 * Oerjan * (-7) /* The wisdom and quote databases */ Wrong directory
02:27:43 <esowiki> [[Hello world program in esoteric languages]] https://esolangs.org/w/index.php?diff=67459&oldid=67446 * Oerjan * (-1) Remind myself that you've inexplicably failed to mess up the order since my last check. Also fix language name.
02:28:17 <oerjan> (which was back in January)
02:29:32 <oerjan> first time i've checked out Recent Changes in ages
03:00:45 -!- oerjan has set topic: IOCCC source code escaped | Welcome to the international center for esoteric programming library design, development, and deployment! | https://esolangs.org | logs: https://esolangs.org/logs/ http://codu.org/logs/_esoteric/ http://tunes.org/~nef/logs/esoteric/?C=M;O=D https://github.com/KrzysztofSzewczyk/esologs/.
03:05:09 <esowiki> [[HackEso]] M https://esolangs.org/w/index.php?diff=67460&oldid=67458 * Fizzie * (+0) /* The wisdom and quote databases */ I think this was probably intended as formatting.
03:06:58 <fizzie> I think I'll add an "Implementation details" section just for the curious, though not now.
03:09:57 -!- tromp has joined.
03:14:19 -!- tromp has quit (Ping timeout: 252 seconds).
03:30:03 -!- imode has joined.
04:01:34 <esowiki> [[H]] M https://esolangs.org/w/index.php?diff=67461&oldid=67454 * A * (-2) /* Implementations */ Add the new instruction
04:03:50 <esowiki> [[Talk:H]] M https://esolangs.org/w/index.php?diff=67462&oldid=67455 * A * (+316) /* HWorld is a powerful language */
04:05:25 <esowiki> [[Bin-8]] M https://esolangs.org/w/index.php?diff=67463&oldid=67438 * A * (+41) XD means eXtremely Destructible.
04:06:32 <esowiki> [[Talk:H]] M https://esolangs.org/w/index.php?diff=67464&oldid=67462 * A * (-226) /* Q & A */ Not on-topic for this talk page
05:01:00 -!- Lord_of_Life_ has joined.
05:01:21 -!- Lord_of_Life has quit (Ping timeout: 246 seconds).
05:02:22 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
05:50:24 -!- moony has changed nick to noomy.
06:43:48 -!- hakatashi1 has quit (Remote host closed the connection).
06:47:00 -!- hppavilion[1] has joined.
06:57:14 -!- hakatashi has joined.
06:58:09 -!- hakatashi has quit (Remote host closed the connection).
07:13:20 -!- imode has quit (Ping timeout: 276 seconds).
07:19:16 -!- hakatashi has joined.
07:19:17 -!- hakatashi has quit (Read error: Connection reset by peer).
07:45:59 -!- tromp has joined.
07:48:01 -!- hakatashi has joined.
08:34:28 -!- oerjan has quit (Quit: Nite).
08:46:08 -!- hppavilion[1] has quit (Ping timeout: 245 seconds).
08:57:57 -!- b_jonas has quit (Quit: Lost terminal).
10:41:35 -!- wib_jonas has joined.
10:44:27 <wib_jonas> question about string literals. you know how there are languages like postscript where the open and close delimiter for a string literal is different, and you can put those delimiters inside the string unescaped if they are balanced. perl also allows this.
10:46:34 <wib_jonas> And you know how there are languages like Pascal and SQL where if you double the string delimiter inside a string, it escapes to a single delimiter.
10:48:30 <wib_jonas> What I'd like to know is if there's a language where the open and close delimiters for string literals are different, but they don't nest, instead the open delimiter is not special inside the string, and you can start a string literal with the close delimiter instead of the open delimiter, in which case that starting close delimiter is part of the
10:48:31 <wib_jonas> string contents, which effectively means that you can escape a close delimiter inside a literal by doubling it.
10:49:10 <wib_jonas> I'm planning to make string literals work this way in Consumer Society, but this part of the tokenization is basically independent of the rest of the language.
10:50:11 <wib_jonas> The drawback of this syntax that I propose is that you can't really parse source files read backwards.
11:12:34 <esowiki> [[HackEso]] https://esolangs.org/w/index.php?diff=67465&oldid=67460 * Fizzie * (+266) /* Command */ Split the difference: equal time for `` and ```.
11:16:19 <wib_jonas> oh yeah, I put ** instead of ''' for bold. I should just use <i>...</i> and <b>...</b>, those work alike on MediaWiki and SE.
11:18:05 <fizzie> Also, nuls are replaced by a '.' instead of truncating the message. But I'm going to fix the \r bug before updating that bit. (Sometime later, should get to work now.)
11:18:41 <fizzie> `` echo -e 'foo\0bar\x01baz'
11:18:42 <HackEso> foo.bar.baz
11:22:53 <wib_jonas> ``` echo $'foo\x00bar\rqux'
11:22:54 <HackEso> foo
11:23:08 <fizzie> Well, that's just weird.
11:23:36 <wib_jonas> `` echo -e 'foo\0bar\x01baz' | od -tx1
11:23:37 <HackEso> 0000000 66 6f 6f 00 62 61 72 01 62 61 7a 0a \ 0000014
11:23:44 <wib_jonas> um
11:23:53 <wib_jonas> ``` echo $'foo\x00bar'
11:23:54 <HackEso> foo
11:23:59 <wib_jonas> `` echo $'foo\x00bar'
11:24:00 <HackEso> foo
11:24:09 <wib_jonas> `` echo $'foo\x00bar\x01qux'
11:24:12 <HackEso> foo
11:24:15 <fizzie> What.
11:24:24 <wib_jonas> `` echo -e 'foo\0bar\x01baz'
11:24:25 <HackEso> foo.bar.baz
11:24:40 <wib_jonas> `` echo -e 'foo\0bar\x01baz' | od -tx1
11:24:41 <HackEso> 0000000 66 6f 6f 00 62 61 72 01 62 61 7a 0a \ 0000014
11:24:43 <fizzie> Oh, right, obviously echo won't work with a raw \0 in the argument.
11:24:45 <wib_jonas> `` echo $'foo\x00bar\x01baz' | od -tx1
11:24:46 <HackEso> 0000000 66 6f 6f 0a \ 0000004
11:24:49 <wib_jonas> oh
11:24:50 <wib_jonas> duh
11:24:52 <wib_jonas> you're right
11:25:08 <wib_jonas> `python3 -cprint("foo\x00bar\rqux")
11:25:09 <HackEso> foo.bar
11:25:19 <wib_jonas> `python3 -cprint("foo\x00bar\x02qux")
11:25:20 <HackEso> foo.barqux
11:25:27 <fizzie> Well, that makes more sense. I was getting a little confused.
11:25:29 <wib_jonas> `python3 -cprint("foo\x00bar\x07qux")
11:25:30 <HackEso> foo.barqux
11:26:01 <fizzie> \0, \1 and \n are (or at least should be right now) the only specially treated characters.
11:26:17 <wib_jonas> why is \x01 treated specially? oh right, CTCP
11:26:32 <wib_jonas> but \r is treated specially by the IRC server, so you should probably treat it specially too
11:26:36 <fizzie> Yes.
11:26:48 <wib_jonas> `python3 -cprint("foo\rPRIVMSG #esoteric :hello")
11:26:49 <HackEso> foo
11:26:58 <wib_jonas> yes, it's not _that_ stupid
11:27:29 <wib_jonas> `python3 -cprint("\rPRIVMSG #esoteric :hello")
11:27:30 <HackEso>
11:27:54 <fizzie> Yes, although I think it's only by luck, I'm still not 100% sure why it's not that stupid in general.
11:28:35 <fizzie> Not sure yet whether I'll replace '\r' with '.' too (under the assumption that you'll want to know when you have them), treat any one of "\n", "\r", "\r\n" and possibly "\n\r" as a single newline, or collapse any sequence of '\n' and '\r' to a single " \ " (which would make the output more compact, but you couldn't see empty lines).
11:29:10 <wib_jonas> fizzie: I'm not sure how the server actually interprets \r and \n . maybe it truncates the line between \r and \n like I think some versions of TeX do
11:29:41 <fizzie> `` echo -e 'foo\0bar\x01baz\rzuul'
11:29:42 <HackEso> foo.bar.baz.zuul
11:29:51 <fizzie> Hot-patched it into . for now.
11:30:00 <wib_jonas> the irc standard says that the line delimiter is \r\n and you can't have \r or \n elsewhere, and the server keeps this when sending lines to you, but when you send, it's easier to use \n as the line delimiter because all servers accept it.
11:31:09 <wib_jonas> ``` openssl rand -base64 16
11:31:16 <fizzie> That one's still broken.
11:31:17 <wib_jonas> (just checking)
11:31:45 <HackEso> No output.
11:32:05 <fizzie> There were some leftovers in the repo of some DCC magic, I think from EgoBot times when you could still do \x01 and had network connectivity.
11:33:13 <fizzie> Wonder how much DCC is used in these days of CGNAT and whatnot.
11:35:08 <fizzie> Linux's nf_conntrack_irc module has code to help DCC through, but I assume that's not very commonplace.
11:51:25 -!- arseniiv has joined.
13:03:11 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=67466&oldid=67390 * PythonshellDebugwindow * (+10) /* E */
13:04:14 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=67467&oldid=67466 * PythonshellDebugwindow * (+26) /* T */
13:06:03 -!- tromp has quit (Remote host closed the connection).
13:19:43 -!- tromp has joined.
13:40:32 <esowiki> [[The Temporary Stack]] https://esolangs.org/w/index.php?diff=67468&oldid=67457 * PythonshellDebugwindow * (+6) /* Examples */
13:56:53 <wib_jonas> In some of these languages that try to have english-like syntax, it sometimes bothers me when they put terms in inconsistent orders because of that. I know three examples: (1) in python, the `for` stmt has the variable that you assign in front of the expression, but the `with` and `except` stmt has them after the expression.
13:57:30 <wib_jonas> (2) also in python, when you get or delete a key from a dictionary, the dictionary expression comes first and the key expression after, but if you test for existence of a key, then the key expression comes first.
14:00:06 <myname> what do you mean by the variable that you assign in front of the expression? like [x for y in z]?
14:01:19 <myname> i would call y the assigned variable here which in fact is after for and not before
14:01:22 <wib_jonas> myname: I'm talking about statements or statement clauses. `for variable in expression:`, `except expression as variable:`, `with expression as variable:`
14:01:53 <myname> ah
14:01:59 <wib_jonas> but in a display too, it's `[... for variable in expression]` just like in a for stmt
14:02:11 <wib_jonas> (3) SQL, and this one is the worst because the delimiter is always ` AS `: in a `SELECT` stmt where you list expressions to extract as result columns, the expression comes first and the name of the new column next, similarly in the `FROM` clause the table expression come first and the name of that table next, BUT
14:03:03 <myname> BUT?
14:04:20 <wib_jonas> in a common table expression introduced by `WITH`, the new table name comes first and the table definition expression after it, and in a `CREATE TABLE` statement for generated columns, the column name comes first and the expression generating it after.
14:05:03 <wib_jonas> At least python uses `in` when the assigned variable comes first and `as` when the assigned variable goes after; in SQL all four of these use the `AS` separator
14:05:51 <wib_jonas> Luckily I'm writing python now, not SQL, so I'm only partly confused.
14:06:05 <myname> i agree to a degree on python. it doesn't bother me because the english-like syntax makes it easy to write it wothout thinking about it. I couldn't come up with a keyword that would make "for expression $keyword variable" work
14:06:41 <wib_jonas> `for` is the one you should keep, because assignment expressions have the newly assigned name on the left too
14:06:42 <HackEso> for`?
14:07:01 <wib_jonas> even in Python, you write `variable = expression` to assign to a variable
14:07:04 <wib_jonas> so `for` is fine
14:07:05 <myname> what do you propose for with and except then?
14:07:43 <wib_jonas> I guess they could use `with variable in expression` or `with variable = expression` too
14:08:58 <wib_jonas> yes, I know it's not a plain assignment, because the variable can get whatever the __enter__ method returns
14:09:27 <myname> and it would be confusing in except
14:09:30 <wib_jonas> so make it `with variable in expression:` then
14:09:50 <myname> because in that case you would have mathematical equality instead of definition
14:10:19 <myname> i would find "with variable in expression" confusing
14:10:55 <myname> and it would be ambiguous
14:11:00 <wib_jonas> well, it's probably best to leave it alone now
14:11:02 <wib_jonas> oh...
14:11:08 <wib_jonas> right, beacuse there's an `in` operator
14:11:15 <wib_jonas> you're right. not that syntax then
14:13:07 <wib_jonas> perhaps `with variable is expression:` and `except variable is expression:` if it were a new language,
14:13:26 <wib_jonas> but it's probably not worth to modify python syntax for this now that everyone knows the existing syntax
14:14:15 <wib_jonas> yes, `is` is not a keyword right now, it would be a keyword instead of `as` in this hypothetical alternate universe
14:14:52 -!- imode has joined.
14:16:14 <wib_jonas> I don't like Haskell syntax, but Haskell do notation uses `<-` for this, which would be a bad idea in python
14:16:57 <myname> "expect variable is expression" sounds more like assert(variable == expression) to me
14:17:43 <wib_jonas> myname: it's `except`, not `expect`.
14:18:01 <myname> my fault
14:18:05 <wib_jonas> myname: I'm confusing myself with those too words too, but https://docs.python.org/3/reference/compound_stmts.html#the-try-statement says it's `except`, as in the start of `exception`
14:18:20 <wib_jonas> but `expect` would make sense for that keyword too, beacuse you use it when you expect an exception
14:18:43 <wib_jonas> you use it when the exception is not exceptional, but an expected normal condition from the side where you're viewing the code
14:19:25 <wib_jonas> `throw` and `catch` is less confusing :-)
14:19:26 <HackEso> throw`?
14:19:44 <wib_jonas> yes, HackEso, I see fizzie modified your "command not found" message
14:20:10 -!- kingoffrance has quit (Read error: Connection reset by peer).
14:20:14 -!- x_ has joined.
14:20:34 <wib_jonas> fizzie: could you change the error message to two IRC lines, "'$command' is not recognized as an internal or external command," then "operable program or batch file." :-)
14:21:12 <wib_jonas> `=echo hello
14:21:13 <HackEso> ​=echo?
14:21:19 <wib_jonas> hmm
14:21:44 <wib_jonas> `str 1s++++++++[->++++++++<]>+.+.+.
14:21:44 <HackEso> str?
14:21:48 <wib_jonas> =str 1s++++++++[->++++++++<]>+.+.+.
14:21:48 <bfbot> ok
14:21:57 <wib_jonas> =def 1msg1
14:21:57 <bfbot> ok, defined 'msg1'
14:21:59 <wib_jonas> =msg1
14:21:59 <bfbot> ABC
14:22:03 <wib_jonas> =def 1msg?
14:22:03 <bfbot> Error: Name can contain only lowercase letters and digits.
14:22:41 <wib_jonas> `=msg11
14:22:42 <HackEso> ​=msg11?
14:22:57 <wib_jonas> `@messages
14:22:57 <HackEso> ​@messages?
14:23:28 <wib_jonas> @messages?
14:23:28 <lambdabot> Sorry, no messages today.
14:23:38 <wib_jonas> had to check
14:24:01 <wib_jonas> =msg11
14:24:01 <bfbot> No such command. Try =help.
14:24:13 <esowiki> [[123]] M https://esolangs.org/w/index.php?diff=67469&oldid=32365 * 3snoW * (+1514) /* Examples */
14:25:20 <wib_jonas> `j-bot,echo:'hello'
14:25:21 <HackEso> j-bot,echo:'hello'?
14:25:21 <j-bot> HackEso, pong: 'hello'?
14:25:38 <wib_jonas> yeah, but you can do that without this change too I think
14:25:41 <wib_jonas> `echo j-bot,echo:'hello'
14:25:42 <HackEso> j-bot,echo:'hello'
14:25:42 <j-bot> HackEso, pong: 'hello'
14:26:40 <wib_jonas> because HackEso doesn't put a space before the message if it starts with a letter -- I find that weird, a starting letter is how you address people without a shortcut
14:26:45 <wib_jonas> `@cwnocnida
14:26:46 <HackEso> ​@cwnocnida?
14:26:52 <wib_jonas> @phcvoqisda?
14:26:52 <lambdabot> Unknown command, try @list
14:27:02 <wib_jonas> lambdabot seems to ignore it
14:27:20 <wib_jonas> `^ocviqwnzuigh
14:27:21 <HackEso> ​^ocviqwnzuigh?
14:32:21 <fizzie> Yes, the rule that output matching ^[A-Za-z0-9_] doesn't get the space is a little arbitrary, especially with bots that accept "botname: " or "botname, " style commands around.
14:35:55 <wib_jonas> so fungоt and lambdabot seem to ignore HackEso completely, and it looks like I can't trigger bfbot for anything but an "Unknown command" error message because it seems to want a space after the command name
14:36:22 <wib_jonas> so I probably can't use this new error message to make botloops, but that's partly by accident
14:36:25 <wib_jonas> `prefixes
14:36:26 <HackEso> Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot =.
14:36:36 <myname> doesn't it just put a zero-width space at the beginning of its output?
14:36:43 <wib_jonas> yeah, EgoBot and metasepia and thutubot aren't here
14:37:12 <wib_jonas> `echo =it puts a zero-width space before the input for cases like this
14:37:13 <HackEso> ​=it puts a zero-width space before the input for cases like this
14:37:32 <wib_jonas> `=but_not_for_the_new_error_message
14:37:33 <HackEso> ​=but_not_for_the_new_error_message?
14:37:42 <wib_jonas> or maybe it does?
14:39:31 <wib_jonas> no, I was wrong
14:39:44 <wib_jonas> HackEso puts something before the error message too
14:41:48 <esowiki> [[User:OsmineYT]] https://esolangs.org/w/index.php?diff=67470&oldid=67436 * OsmineYT * (+30)
14:43:46 <esowiki> [[USERA]] N https://esolangs.org/w/index.php?oldid=67471 * OsmineYT * (+129) Created page with "{{wrongtitle|title=User:A}} USERA, or User-A is simple language maded by [[User:OsmineYT|OsmineYT]] and dedicated to [[User:A]]."
14:44:02 <esowiki> [[USERA]] https://esolangs.org/w/index.php?diff=67472&oldid=67471 * OsmineYT * (+0)
14:45:01 <esowiki> [[USERA]] https://esolangs.org/w/index.php?diff=67473&oldid=67472 * OsmineYT * (+69)
14:45:25 <esowiki> [[USERA]] https://esolangs.org/w/index.php?diff=67474&oldid=67473 * OsmineYT * (+0)
14:56:51 -!- imode has quit (Ping timeout: 265 seconds).
14:57:36 <fizzie> Yes, it should be any output whatsoever.
14:58:45 -!- kspalaiologos has joined.
14:59:46 -!- kspalaiologos has quit (Read error: Connection reset by peer).
15:00:13 -!- Frater_EST has joined.
15:03:11 <esowiki> [[USERA]] https://esolangs.org/w/index.php?diff=67475&oldid=67474 * OsmineYT * (+243)
15:03:42 -!- kspalaiologos has joined.
15:10:52 -!- imode has joined.
15:12:28 <esowiki> [[Talk:USERA]] N https://esolangs.org/w/index.php?oldid=67476 * OsmineYT * (+10) Created page with "Discussion"
15:14:11 <esowiki> [[Talk:Bin-8]] N https://esolangs.org/w/index.php?oldid=67477 * OsmineYT * (+44) Created page with "Only not maded discussion for [[Timed]] yet."
15:16:40 <esowiki> [[Talk:H]] https://esolangs.org/w/index.php?diff=67478&oldid=67464 * OsmineYT * (+155)
15:19:54 <kspalaiologos> how did one format colors on irc
15:19:58 <kspalaiologos> \u poop
15:20:33 <wib_jonas> kspalaiologos: search the internet for "mirc color codes"
15:20:38 <kspalaiologos> test
15:20:46 <kspalaiologos> alt codes don't seem to work
15:20:49 <kspalaiologos> tried to enter 1F
15:20:57 <kspalaiologos> that is, 29
15:20:58 <wib_jonas> ``` echo $'thing \x0204,06colored'
15:20:59 <HackEso> thing 04,06colored
15:21:03 <wib_jonas> hmm no
15:21:06 <wib_jonas> ``` echo $'thing \x0304,06colored'
15:21:07 <HackEso> thing colored
15:21:15 <kspalaiologos> test
15:21:17 <kspalaiologos> still
15:21:19 <wib_jonas> ^ that, a control-C followed by foregroun and background color
15:21:21 <kspalaiologos> my client is broken
15:21:45 <wib_jonas> some clients deliberately ignore colors, mind you, because they're mostly used by spammers
15:21:48 <wib_jonas> and by relcome
15:21:49 <wib_jonas> `relcome
15:21:51 <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.)
15:22:01 <fizzie> `rainwords 10
15:22:04 <HackEso> 10
15:22:14 <kspalaiologos> no
15:22:18 <kspalaiologos> I've seen your color
15:22:20 <fizzie> Oh, it wasn't actually the combination of `rainbow and `words.
15:22:28 <kspalaiologos> `rainbow stuff
15:22:29 <HackEso> stuff
15:22:39 <myname> i didn't know it was a control-c
15:22:42 <myname> good to know
15:22:44 <kspalaiologos> `rainbow even more stuff to see how will the program behave when the text is longer than a single rainbow
15:22:45 <HackEso> even more stuff to see how will the program behave when the text is longer than a single rainbow
15:22:49 <kspalaiologos> it wraps over
15:22:52 <kspalaiologos> meeh
15:23:04 <fizzie> There's only that many colors available.
15:23:06 <fizzie> `` words 16 | rainwords # then
15:23:08 <HackEso> conaritt bca posite cutocyste occavel tograt scani gräbe dation majococh screta watry furp man oblike chiocken
15:23:14 <kspalaiologos> btw, I wrote a graphics library for brainfuck yesterday
15:23:25 <kspalaiologos> I've sent a video somewhere here yesterday probably
15:23:28 <kspalaiologos> it's 100% pure brainfuck
15:23:34 <myname> wat
15:23:35 <kspalaiologos> and it's using ASCII box drawing
15:23:38 <wib_jonas> and it takes at most two digits, optionally followed by a comma and then at most two digits again, and you may need all the digits and commas depending on the following text, though you can cheat by adding a double control-B as a separator
15:23:39 <kspalaiologos> to plot single pixels
15:23:55 <imode> post the video.
15:23:56 <fizzie> I think the actual keyboard shortcut is ^k in mIRC, actually? But it's the byte 0x03 it uses to introduce a color code.
15:24:00 <kspalaiologos> it has a 80x40 framebuffer
15:24:04 <wib_jonas> fizzie: yes
15:24:15 <fizzie> ^k for kolor, obviously.
15:24:46 <wib_jonas> `perl -eprintf"\x03%02d%02d ",$_,$_ for 0..99; print "."
15:24:46 <HackEso> 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
15:25:04 <wib_jonas> `perl -eprintf"\x03,%02d%02d ",$_,$_ for 0..99; print "."
15:25:05 <HackEso> ​,0000 ,0101 ,0202 ,0303 ,0404 ,0505 ,0606 ,0707 ,0808 ,0909 ,1010 ,1111 ,1212 ,1313 ,1414 ,1515 ,1616 ,1717 ,1818 ,1919 ,2020 ,2121 ,2222 ,2323 ,2424 ,2525 ,2626 ,2727 ,2828 ,2929 ,3030 ,3131 ,3232 ,3333 ,3434 ,3535 ,3636 ,3737 ,3838 ,3939 ,4040 ,4141 ,4242 ,4343 ,4444 ,4545 ,4646 ,4747 ,4848 ,4949 ,5050 ,5151 ,5252 ,5353 ,5454 ,5555 ,5656 ,5757 ,5858 ,5959 ,6060 ,6161 ,6262 ,6
15:25:12 <kspalaiologos> kspalaiologos.baselinux.net/videos/v000.mp4
15:25:12 <kspalaiologos> iirc
15:25:24 <wib_jonas> `perl -eprintf"\x030,%02d%02d ",$_,$_ for 0..99; print "."
15:25:25 <HackEso> 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
15:25:31 <kspalaiologos> i used the video to demonstrate something was bricked with the WSL output
15:25:35 <kspalaiologos> and it worked fine on cmd
15:25:36 <arseniiv> my client shows all the formatting and colors but I’m lazy to investigate how does one input them in it
15:25:52 <kspalaiologos> the program I made was just printing out "1986" (can you guess what date is it?)
15:26:05 <imode> kspalaiologos: couldn't I just do that with a bf -> text generator?
15:26:13 <kspalaiologos> ^possibly
15:26:17 <kspalaiologos> but I'm working on a 3d cube
15:26:23 <kspalaiologos> and I got really near to finishing it
15:26:34 <kspalaiologos> to make a 3d spinning cube it would take you obscene amount of time and code
15:26:38 <kspalaiologos> using a generator
15:26:46 <imode> why not dump it directly to the output.
15:26:50 <imode> every frame.
15:27:12 <kspalaiologos> a couple megabytes brainfuck file
15:27:14 <myname> are there color codes for "default"?
15:27:26 <kspalaiologos> framebuffer is beneficial
15:27:27 <wib_jonas> myname: I think 0 and 1 are the default
15:27:54 <myname> weird, 00,01text is slightly brighter than my default
15:28:23 <myname> i usually have a grey font color on black ground, 00,01 will print white on black ground here
15:29:12 -!- FraterEST has joined.
15:29:27 <kspalaiologos> I
15:29:30 <kspalaiologos> 'll work on font rendering
15:29:35 <kspalaiologos> because it may be a cool task
15:29:38 <fizzie> 99 is "default" in some clients, 0/1 I think are white and black.
15:29:48 <fizzie> Although it's really up to how your client decides to interpret it.
15:30:06 <myname> good old standards
15:30:12 <kspalaiologos> yeah
15:30:25 <kspalaiologos> my client shows all of these above
15:30:30 <kspalaiologos> I dont think colors are irritating though
15:30:31 <fizzie> Colors 0 through 15 are the "old standard" ones, so they're what ^rainbow and friends use. Colors 16 .. 99 are "new standard" ones, with a little less support.
15:30:42 <kspalaiologos> everything looking uniformly is hard to comprehend
15:30:54 <wib_jonas> https://modern.ircdocs.horse/formatting.html lists more format codes than I've ever heard of
15:30:58 <myname> from what i can tell about mirc, i wouldn't be surprised if they never had the idea to make something like a default code because everybody has to use the software like they do
15:31:11 <wib_jonas> apparently someone invented codes for "Monospace" and "Strikethrough"
15:31:34 <wib_jonas> also that page says "99 - Default Foreground/Background - Not universally supported."
15:31:38 <imode> my client doesn't show all of that.
15:31:44 <imode> only 00 through 15.
15:31:56 -!- Frater_EST has quit (Ping timeout: 240 seconds).
15:32:43 <fizzie> irssi does all 99, but (at least in this terminal) only actually uses the standard 16 terminal colors, so e.g. 27, 28 and 29 are all the same dark red.
15:33:17 <fizzie> And of course there's no real orange, so 7 is brown.
15:36:04 <wib_jonas> ``` echo $'normal \x02bold\x02 normal \x1Ditalic\x1D normal \x1Funderlined\x1F normal \x1Estrikethrough\x1E normal \x11monospace\x11 normal \x16reverse\x16 normal'
15:36:07 <HackEso> normal bold normal italic normal underlined normal strikethrough normal monospace normal reverse normal
15:36:29 -!- imode has quit (Ping timeout: 265 seconds).
15:55:55 <fizzie> I can see bold, underlined and reversed here.
15:56:30 <fizzie> And esolangs.org/logs supports bold, italic, underlined and strikethrough.
15:57:09 <fizzie> Well, maybe you an always-monospace client "supports" monospace by default, kind of.
15:59:11 -!- GeekDude has quit (Ping timeout: 276 seconds).
16:02:30 <FireFly> somehow one of those control codes managed to mess up weechat's UI's colour a bit; impressive
16:02:41 <FireFly> and somewhat worrisome
16:07:15 <kspalaiologos> is mr. Cristofani still lurking the channel?
16:07:42 <kspalaiologos> `? dbc
16:07:43 <HackEso> dbc? ¯\(°​_o)/¯
16:08:25 <fizzie> Some clients also support [1mregular[0m ANSI codes [33mand colors[0m.
16:13:17 -!- GeekDude has joined.
16:33:27 <kspalaiologos> they dont support ansi escapes
16:33:31 <kspalaiologos> they just don't filter it
16:34:43 <fizzie> No, there are graphical clients that specifically do support them, IIRC.
16:35:07 <fizzie> And from what I recall, irssi supports them pretty explicitly as well, parsing them to some internal format and then reconstructing for display.
16:35:22 <fizzie> They definitely don't just leave \e unfiltered.
16:54:19 -!- imode has joined.
17:00:50 -!- imode has quit (Ping timeout: 268 seconds).
17:03:02 -!- Lord_of_Life_ has joined.
17:03:55 -!- Lord_of_Life has quit (Ping timeout: 268 seconds).
17:04:24 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
17:28:44 <esowiki> [[HackEso]] https://esolangs.org/w/index.php?diff=67479&oldid=67465 * Fizzie * (+3104) Document implementation details.
17:44:45 -!- wib_jonas has quit (Quit: Connection closed).
17:54:05 -!- laerlingsap has joined.
18:10:14 -!- FraterEST has quit (Remote host closed the connection).
18:30:37 -!- FreeFull has joined.
18:47:24 -!- laerlingsap has quit (Read error: Connection reset by peer).
18:51:14 -!- laerling_ has joined.
19:08:41 -!- b_jonas has joined.
19:11:25 -!- LKoen has joined.
19:12:17 -!- x_ has changed nick to kingoffrance.
19:32:51 -!- laerling_ has quit (Read error: Connection reset by peer).
20:00:51 <shachaf> `olist 1188
20:00:52 <HackEso> olist 1188: shachaf oerjan Sgeo FireFly boily nortti b_jonas
20:38:51 <shachaf> What an anticlimax.
20:39:20 <b_jonas> shachaf: the kicker is in the next strip, which is the last one in the book
20:39:24 <b_jonas> and may take more than one page
20:40:34 <shachaf> Is that true?
20:40:42 <b_jonas> I don't know for sure,
20:40:59 <b_jonas> but there's been a kicker at the last strip of all five main OotS books so far
20:41:11 <b_jonas> and the Giant says that the next strip is the last strip of this book
20:42:19 <shachaf> I meant that part.
20:43:11 <b_jonas> http://www.giantitp.com/forums/showsinglepost.php?p=24280225
20:44:43 <shachaf> I believe you but I guess I'll click the link anyway.
20:45:01 <shachaf> whoa, 1189 will be posted on Monday.
20:45:29 <b_jonas> it also says "the final strip will be posted Monday", which I thought at first was against the forum rules, but apparently it's not, the rule is worded that "Inappropriate topics. Missed/Late Comics: Threads speculating on when a comic will be posted or why it may be late will be locked; this does not apply to official threads started by site staff providing notification of a late comic."
20:46:07 <int-e> "Monday" is not all that specific anyway ;-)
20:46:37 <b_jonas> yeah. no week or timezone specified.
20:46:43 <shachaf> An official announcement isn't very speculative, anyway.
20:47:10 <int-e> it might be (sorry, weak pun)
20:47:10 <b_jonas> yeah, I thought the rule just said that you aren't allowed to discuss the schedule of online comic strips on that forum
20:48:28 <int-e> rules are made to be broken
20:49:01 <int-e> the trick is not to get punished ;)
20:50:17 <int-e> and ethics dictate that you only break rules when it doesn't hurt other people
20:55:09 -!- kspalaiologos has quit (Quit: Leaving).
21:06:06 <shachaf> Is the "only" thing that SMT does over SAT is additional propagation rules?
21:06:13 <shachaf> s/is //
21:10:52 <int-e> Isn't propagation optional? I mean, the minimum functionality is just detecting conflicts...
21:11:35 <int-e> ...typically, when you have a conflict you also produce an unsatisfiable core for it because that's a propositional clause that can be learned.
21:14:01 <shachaf> Hmm, I guess thoe aren't the same.
21:14:25 <shachaf> I think of "propagation" as deducing the consequences of the current assignment, in SAT, which might lead to an empty clause. But maybe the SMT situation is more nuanced.
21:15:44 <int-e> Well, in the picture I have, the propagation is unit propagation from DPLL, handling the propositional part of a formula.
21:15:51 <int-e> so SMT doesn't add anything there.
21:16:24 <int-e> (Well, not necessarily. I'm sure that it /could/ add things there.)
21:17:30 <shachaf> The thing I was thinking based on some vague verbal descriptions was that SMT effectively gives you implications between statements in your theory.
21:17:48 <shachaf> So it can tell you that x > 5 implies x > 7, and I guess also falsifies x < 5.
21:18:16 <int-e> But I really know fairly little. Basically I've read the DPLL(T) paper, and learned some basics (linear algebra, equality reasoning, some ideas of theory combination)
21:18:33 <shachaf> Whereas with unit propagation P only truthifies P and falsifies ¬P and nothing else?
21:18:49 <shachaf> I should probably read that paper rather than blabbering on IRC.
21:20:30 <int-e> AFAIUI, if the solver ever asserts x > 5 and !x > 7 at the same time, that will be detected, and you'll get x > 5 /\ !x > 7 as an unsatisfiable core, so you can then learn the negation, which is that x > 5 implies x > 7.
21:21:12 <int-e> But! That paper is just the start of SMT research. I'm sure there's a lot more happening in modern solvers.
21:21:17 <shachaf> Hmm, maybe that's how it works.
21:21:38 <shachaf> Should I read all these papers or make a reasonable CDCL solver first?
21:21:48 <shachaf> Probably there's no actual point in writing a SAT solver.
21:22:05 <shachaf> i,i because qbf solvers are where it's at
21:22:42 <int-e> AFAIK, QBF solvers also have a CDCL core though.
21:26:06 <shachaf> Quantifier boolean formula? I just met 'er!
21:26:14 <shachaf> I guess it's "quantified".
22:04:21 -!- sftp has quit (Excess Flood).
22:04:37 -!- sftp has joined.
23:06:20 -!- b_jonas has quit (Ping timeout: 246 seconds).
23:13:12 -!- b_jonas has joined.
23:25:05 -!- arseniiv has quit (Ping timeout: 276 seconds).
23:40:56 -!- tromp has quit (Remote host closed the connection).
23:53:00 -!- b_jonas has quit (Read error: Connection reset by peer).
23:53:35 -!- b_jonas has joined.
2019-11-27
00:02:02 -!- 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.”).
00:12:39 -!- FreeFull has quit.
00:18:59 -!- tromp has joined.
00:23:02 <b_jonas> fizzie: thanks for documenting more about HackEso on the wiki
00:23:18 <b_jonas> I'll still have to write about the commands some time, especially rnoodl
00:23:26 <b_jonas> `? rnooodl
00:23:27 <HackEso> rnooodl? ¯\(°​_o)/¯
00:23:30 <b_jonas> `? rnoodl
00:23:31 <HackEso> rnoodl? ¯\(°​_o)/¯
00:23:34 <b_jonas> `? nooodl
00:23:35 -!- tromp has quit (Ping timeout: 250 seconds).
00:23:35 <HackEso> noooodl is the correct spelling
00:23:39 <b_jonas> `? noodl
00:23:40 <HackEso> noooooooodl is the correct spelling
00:23:41 <b_jonas> `? nooodl
00:23:43 <HackEso> nooooodl is the correct spelling
00:23:48 <b_jonas> `? nooooooooooooooooooooooooooooooooooooooooodl
00:23:49 <HackEso> noooooodl is the correct spelling
00:24:00 <b_jonas> (that's actually a built-in pattern in the ? command)
00:24:11 <b_jonas> (recognizing that argument that is)
00:38:22 -!- xkapastel has joined.
01:01:33 <j4cbo> fa
01:01:36 <j4cbo> adsfasdfasdf
01:02:27 <j4cbo> pro tip: address bar autocomplete does not work when your cursor is in the irccloud text box
01:18:34 -!- oerjan has joined.
01:29:06 <oerjan> wait what, the wiki diff has improved
01:29:42 <oerjan> it actually matches words in a paragraph to two different ones in the post-edit
01:31:45 <oerjan> well maybe that's not a case that was broken previously.
01:32:06 <oerjan> `../bin/help
01:32:10 <HackEso> ​? ¯\(°​_o)/¯
01:33:24 <fizzie> It's also possible the MediaWiki upgrade did improve it.
01:41:51 <esowiki> [[HackEso]] M https://esolangs.org/w/index.php?diff=67480&oldid=67479 * Oerjan * (-1) /* Implementation details */ an -> a
01:42:33 <oerjan> i'm assuming it's pronounced like u-m-l-box
02:03:50 <oerjan> `` url ../bin/rainwords
02:03:51 <HackEso> https://hack.esolangs.org/repo/file/tip/bin/rainwords
02:05:55 <oerjan> hm pikhqbow is a binary
02:06:04 <oerjan> `dobg pikhqbow
02:06:11 <HackEso> 8746:2016-07-05 <pikḧq> ` gcc -Os -s src/pikhqbow.c -o bin/pikhqbow \ 8744:2016-07-05 <pikḧq> ` gcc -Os -s src/pikhqbow.c -o bin/pikhqbow \ 8742:2016-07-05 <pikḧq> ` gcc src/pikhqbow.c -o bin/pikhqbow
02:06:48 <oerjan> `url ../src/pikhqbow.c
02:06:48 <HackEso> https://hack.esolangs.org/repo/file/tip/src/pikhqbow.c
02:07:43 <shachaf> `wrl
02:07:44 <HackEso> https://hack.esolangs.org/repo/file/tip/wisdom
02:07:46 <shachaf> `brl
02:07:46 -!- tromp has joined.
02:07:47 <HackEso> brl?
02:08:00 <shachaf> `sakdfnla
02:08:03 <HackEso> sakdfnla?
02:08:18 <oerjan> ah. it no longer seems to try to use only as many colors as will fit in a line
02:08:35 <oerjan> which means i don't have to fix it for changed line length :P
02:09:20 <fizzie> Oh, right, there was something like that at some point.
02:09:28 <shachaf> `cbt wrl
02:09:29 <HackEso> url "$HACKENV/wisdom/$1"
02:10:03 <shachaf> `mkx ../bin/brl//url "$HACKENV/bin/$1"
02:10:10 <oerjan> `u
02:10:13 <shachaf> `brl brl
02:10:14 <HackEso> ​../bin/brl
02:10:17 <HackEso> u?
02:10:17 -!- jix has quit (Ping timeout: 268 seconds).
02:10:18 <HackEso> https://hack.esolangs.org/repo/file/tip/bin/brl
02:11:26 <oerjan> `mkx ../bin/u//cd ${HACKENV-/hackenv}; nur "$1"
02:11:28 <HackEso> ​../bin/u
02:11:37 <oerjan> `u ls
02:11:38 <HackEso> bin \ canary \ emoticons \ esobible \ etc \ f \ factor \ hw \ ibin \ interps \ karma \ le \ lib \ misle \ paste \ ply-3.8 \ quines \ quotes \ share \ src \ stuff \ tmflry \ tmp \ wisdom
02:12:01 <shachaf> but what if HACKENV has a space in it htdnh
02:12:15 -!- tromp has quit (Ping timeout: 252 seconds).
02:12:26 <oerjan> `u mkx bin/u//cd "${HACKENV-/hackenv}"; nur "$1"
02:12:28 <HackEso> bin/u \ /hackenv/bin/u: line 2: unexpected EOF while looking for matching `"' \ /hackenv/bin/u: line 3: syntax error: unexpected end of file
02:12:46 <oerjan> hum
02:13:02 <oerjan> `cbt mkx
02:13:03 <HackEso> key=$(mk "$@") && echo "$key" && chmod +x "$key"
02:13:15 <oerjan> `cbt mk
02:13:16 <HackEso> ​[[ "$1" == ?*//* ]] || { echo usage: "mk[x]" file//contents >&2; exit 1; }; key="${1%%//*}"; value="${1#*//}"; echo "$value" > "$(echo-p "$key")" && echo "$key"
02:14:56 <fizzie> What's the u in `u short for?
02:15:07 <oerjan> "up"
02:15:12 <oerjan> h was taken
02:15:33 <oerjan> and r might suggest / instead
02:15:50 <shachaf> `u mkx bin/uh//u "$@" | h
02:16:01 <fizzie> `uh huh
02:16:04 <HackEso> uh?
02:16:07 -!- jix has joined.
02:16:19 <oerjan> `cbt u
02:16:20 <HackEso> cd "${HACKENV-/hackenv}"; nur "$1"
02:16:43 <fizzie> What happened to shachaf's command?
02:16:54 <oerjan> `nur mkx ../bin/u//cd "${HACKENV-/hackenv}"; nur "$1"
02:16:55 <HackEso> ​../bin/u
02:17:03 <oerjan> huh
02:17:15 <oerjan> `cbt u
02:17:16 <HackEso> cd "${HACKENV-/hackenv}"; nur "$1"
02:17:36 <fizzie> It sure looks like it ought to just work.
02:17:47 <oerjan> fizzie: shamagic
02:17:47 <shachaf> fizzie: HackEso rightly decided it was a terrible idea and ignored it.
02:19:18 <fizzie> Oh, that kind of magic.
02:19:47 <fizzie> I took it seriously, probably because it seemed to be not that far off the mean goodness of HackEso command ideas.
02:20:15 <oerjan> `u ls share
02:20:19 <shachaf> If u and h each have goodness ε, uh has goodness ε².
02:20:21 <HackEso> 8ballreplies \ airports.dat \ autowelcome_status \ awesome \ ballreplies \ candide \ cat \ Complaints.mp3 \ conscripts \ construct_grams.pl \ delvs-master \ dict \ dict-words \ esolangs.txt \ esolangs.txt.sorted \ headers \ headers.gch \ hello \ lua \ maimer \ maimery \ maze \ mtg \ nothp \ recipe \ scapegoats \ scowrevs \ sedtest \ UnicodeData.txt \ unic.txt \ units.dat \ usercmds \ whatis \ wisdom \ WordData
02:20:39 <oerjan> ok u seems to work there
02:20:50 <shachaf> ``u or `u` might actually make sense, though.
02:20:55 <fizzie> `` u huh |& h # just testing
02:20:56 <HackEso> ​/hahckehnv/bihn/nuhr: lihne 2: huhh: cohmmahnd noht fouhnd
02:20:58 <oerjan> `u echo "testing" "more testing"
02:20:58 <HackEso> ​"testing" "more testing"
02:21:46 <oerjan> perhaps there was a race condition between u modifying itself and editing itself
02:21:55 <oerjan> er, *reading
02:24:46 <oerjan> `u ` ls | h
02:24:47 <HackEso> bihn \ cahnahry \ ehmohtihcohns \ ehsohbihble \ ehtc \ f \ fahctohr \ hw \ ihbihn \ ihntehrps \ kahrma \ le \ lihb \ mihsle \ pahste \ ply-3.8 \ quihnehs \ quohtehs \ shahre \ src \ stuhff \ tmflry \ tmp \ wihsdohm
02:25:44 <oerjan> shachaf: `u ` works, anyway
02:26:02 <shachaf> `cbt ~
02:26:06 <HackEso> cat: /hackenv/bin/~: No such file or directory
02:26:10 <shachaf> whoa
02:26:18 <shachaf> prime rbal estate
02:26:56 <oerjan> `` echo $HOME
02:26:57 <HackEso> ​/tmp
02:27:05 -!- jix has quit (Ping timeout: 276 seconds).
02:27:42 <shachaf> Maybe it's actually awkward to type.
02:33:31 -!- jix has joined.
02:57:01 -!- xkapastel has quit (Quit: Connection closed for inactivity).
03:16:39 <esowiki> [[LogOS]] N https://esolangs.org/w/index.php?oldid=67481 * IFcoltransG * (+654) Created page with "{{lowercase}} '''logOS''' is an imperative and partially object-oriented language based around the 'Desktop metaphor' that modern operating systems use. It was brainstormed wi..."
03:16:52 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=67482&oldid=67467 * IFcoltransG * (+12) /* L */ added logOS
03:30:34 -!- hppavilion[1] has joined.
03:47:54 <esowiki> [[LogOS]] https://esolangs.org/w/index.php?diff=67483&oldid=67481 * IFcoltransG * (+1082) Added code samples, tidied up headings
03:52:41 -!- imode has joined.
03:53:33 <esowiki> [[Hunter]] https://esolangs.org/w/index.php?diff=67484&oldid=53690 * YamTokTpaFa * (+12) +deadlink
03:56:02 -!- tromp has joined.
04:00:41 -!- tromp has quit (Ping timeout: 276 seconds).
04:15:41 <esowiki> [[LogOS]] https://esolangs.org/w/index.php?diff=67485&oldid=67483 * IFcoltransG * (+479) Added info on 'programs' i.e. objects within the OS
04:16:37 <esowiki> [[LogOS]] M https://esolangs.org/w/index.php?diff=67486&oldid=67485 * IFcoltransG * (+2) Word choice - resolved ambiguity
04:21:01 <esowiki> [[User:IFcoltransG]] https://esolangs.org/w/index.php?diff=67487&oldid=66651 * IFcoltransG * (+6) Added link to logOS
04:22:31 <esowiki> [[User:IFcoltransG]] https://esolangs.org/w/index.php?diff=67488&oldid=67487 * IFcoltransG * (+75) Formatted new link
04:53:57 -!- hppavilion[1] has quit (Ping timeout: 240 seconds).
05:03:38 -!- Lord_of_Life has quit (Ping timeout: 245 seconds).
05:04:12 -!- Lord_of_Life has joined.
05:24:12 -!- hppavilion[1] has joined.
05:29:03 -!- hppavilion[1] has quit (Ping timeout: 245 seconds).
05:40:50 -!- hppavilion[1] has joined.
05:44:17 -!- tromp has joined.
05:49:03 -!- imode has quit (Ping timeout: 245 seconds).
05:49:14 -!- tromp has quit (Ping timeout: 276 seconds).
06:44:11 -!- hppavilion[1] has quit (Ping timeout: 265 seconds).
06:44:42 -!- hppavilion[1] has joined.
07:08:45 -!- hppavilion[1] has quit (Ping timeout: 268 seconds).
07:32:42 -!- tromp has joined.
07:37:07 -!- tromp has quit (Ping timeout: 252 seconds).
07:47:02 -!- tromp has joined.
08:45:36 <esowiki> [[Bin-8]] https://esolangs.org/w/index.php?diff=67489&oldid=67463 * OsmineYT * (+2)
08:53:19 <oerjan> the clank today looks very much like the leftmost one here http://www.girlgeniusonline.com/comic.php?date=20060605
09:00:02 -!- b_jonas has quit (Remote host closed the connection).
09:05:44 -!- arseniiv has joined.
09:12:58 <oerjan> in fact it's the only one to survive the following scenes
09:16:19 -!- oerjan has quit (Quit: Nite).
09:27:11 -!- tswett[m] has quit (Read error: Connection reset by peer).
09:27:34 -!- ddmm_ has quit (Read error: Connection reset by peer).
10:12:14 -!- Lord_of_Life has quit (Read error: Connection reset by peer).
10:15:42 -!- Lord_of_Life has joined.
10:18:04 -!- kingoffrance has quit (Ping timeout: 268 seconds).
10:24:31 -!- xkapastel has joined.
10:47:51 -!- tswett[m] has joined.
10:47:51 -!- wmww has joined.
10:47:51 -!- ddmm_ has joined.
11:02:22 -!- laerling_ has joined.
11:03:03 -!- laerling_ has quit (Client Quit).
11:03:08 -!- laerlingSAP has joined.
11:03:37 -!- laerlingSAP has quit (Client Quit).
11:17:09 -!- laerlingSAP has joined.
11:18:56 -!- laerlingSAP has quit (Client Quit).
11:19:28 -!- laerlingSAP has joined.
12:32:01 -!- laerlingSAP_ has joined.
12:32:08 <esowiki> [[User:OsmineYT]] https://esolangs.org/w/index.php?diff=67490&oldid=67470 * OsmineYT * (+10)
12:32:42 -!- haavard has quit (Remote host closed the connection).
12:33:46 -!- haavard has joined.
12:34:32 -!- laerlingSAP_ has quit (Client Quit).
12:34:50 -!- laerlingSAP_ has joined.
12:34:52 -!- laerlingSAP_ has quit (Client Quit).
12:35:05 -!- laerlingSAP has quit (Ping timeout: 265 seconds).
12:35:14 -!- laerlingSAP has joined.
12:43:43 <esowiki> [[Cell]] N https://esolangs.org/w/index.php?oldid=67491 * OsmineYT * (+625) Created page with "Cell is Turing-complete language founded by [[User:OsmineYT|OsmineYT]] in 2019. The sense of making this language is simple: '''make an Turing-complete language first instead..."
12:43:54 <esowiki> [[Cell]] https://esolangs.org/w/index.php?diff=67492&oldid=67491 * OsmineYT * (-3)
12:44:04 <esowiki> [[Cell]] https://esolangs.org/w/index.php?diff=67493&oldid=67492 * OsmineYT * (-1)
13:02:30 -!- wib_jonas has joined.
13:03:44 <wib_jonas> so, I created an entry for HackEso on the wiki and now fizzie filled it with a lot of useful information. am I allowed to point to
13:03:45 <wib_jonas> `quote boring wisdom
13:03:46 <HackEso> 1263) <b_jonas> boily: sorry for the boring wisdom entries I added. I mostly did it hoping that someone will stumble on them and replace them with something better.
13:03:59 <wib_jonas> ^ this now and say "they're not laughing now"?
13:04:44 <wib_jonas> I need to learn the stereotypical mad scientist laugh.
13:06:48 <esowiki> [[Cell]] https://esolangs.org/w/index.php?diff=67494&oldid=67493 * OsmineYT * (+232)
13:07:24 <esowiki> [[Cell]] https://esolangs.org/w/index.php?diff=67495&oldid=67494 * OsmineYT * (+1)
13:08:24 <esowiki> [[Cell]] https://esolangs.org/w/index.php?diff=67496&oldid=67495 * OsmineYT * (+43)
13:09:20 <esowiki> [[Talk:Cell]] N https://esolangs.org/w/index.php?oldid=67497 * OsmineYT * (+49) Created page with "Anyone here? If you want, try making interpreter."
13:11:15 <esowiki> [[Talk:Cell]] https://esolangs.org/w/index.php?diff=67498&oldid=67497 * OsmineYT * (+181) /* Most commands are same as in brainfuck */ new section
13:12:00 <esowiki> [[Talk:Cell]] https://esolangs.org/w/index.php?diff=67499&oldid=67498 * OsmineYT * (+4)
13:13:21 <esowiki> [[WALP]] https://esolangs.org/w/index.php?diff=67500&oldid=12858 * PythonshellDebugwindow * (+841) Explaining your loop example
13:33:25 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=67501&oldid=67482 * OsmineYT * (+13)
13:34:18 -!- laerlingSAP has quit (Quit: Leaving).
13:38:17 -!- sprocklem has quit (Ping timeout: 240 seconds).
14:02:12 <esowiki> [[W (A)]] M https://esolangs.org/w/index.php?diff=67502&oldid=66964 * A * (+211) /* 99 bottles of beer */
14:09:04 <fizzie> I'm not sure what I added to the HackEso entry is particularly useful, it's just answering a question that's come up every now and then.
14:40:04 -!- imode has joined.
14:45:20 <imode> continuing with the mantra "code == data && data == code", I think I'm not going to have traditional segmented executables for Mode bytecode.
14:47:39 <imode> instead, an executable is just a giant switch statement. if you wanna extract a couple bytes from segment 1, you need to actually _run_ the file, send the interpreter the segment you want to evaluate, then send it an index into the byte array (provided that segment is a byte array...)
14:53:16 <wib_jonas> imode: are you saying that you're trying to make an interpreter that is fully lazy in the way that Haskell is, as in, any value can be a thunk that you have to evaluate later?
14:54:21 <imode> yessir.
14:55:13 <imode> if you want an array, generate a switch statement. if you want an array who's contents are the fibonacci sequence, the protocol is the same.
14:57:46 <wib_jonas> @oeis A45
14:57:49 <lambdabot> https://oeis.org/A000045 Fibonacci numbers: F(n) = F(n-1) + F(n-2) with F(0)...
14:57:49 <lambdabot> [0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,...
14:57:56 <wib_jonas> ^oeis A45
14:57:57 <wib_jonas> =oeis A45
14:57:57 <bfbot> No such command. Try =help.
14:57:58 <wib_jonas> `oeis A45
14:57:59 <HackEso> oeis?
14:58:27 <wib_jonas> HackEso now has error messages better than ed
14:58:46 <wib_jonas> `/dev/null
14:58:47 <HackEso> ​/dev/null?
14:58:55 <wib_jonas> `/dev
14:58:56 <HackEso> ​/dev?
15:01:00 <imode> you can also provide metadata about the entire program within this segmented system. for instance, if I have a segment that I want to use precompiled jump targets, I can generate some Mode bytecode to simulate a simple map between an instruction pointer and a jump target.
15:02:55 <imode> "evaluate segment 1. if I'm executing a [ or a ] instruction, evaluate segment 0 with parameter $ip. examine the queue after evaluation, fetch the returned result, and set $ip to that result."
15:04:02 <imode> it won't be as fast because you still need to evaluate segment 0 without jump targets.. but imo if you want speed, this kind of information should be in a separate file that you can set up to read.
15:08:14 -!- diverger has quit (Ping timeout: 276 seconds).
15:10:42 -!- diverger has joined.
15:43:06 -!- imode-ruby has joined.
15:44:15 -!- xkapastel has quit (Quit: Connection closed for inactivity).
15:46:02 <fizzie> I did think of adding a perror in that error message when the error is execve failing, though thing is it does the path search, so if execve fails due to /hackenv/bin/foo not having +x set, and then later due to /bin/foo and /usr/bin/foo not existing, the last errno would be the misleading ENOENT rather than the more relevant EACCESS.
15:46:56 <fizzie> The glibc execp family actually special-cases this, if one of the attempted executions fails with EACCESS, the search does continue but the final error is still EACCESS unless something that works is found.
15:47:15 -!- imode-ruby has quit (Client Quit).
15:47:33 -!- imode-ruby has joined.
15:48:34 <imode-ruby> weechat doesn't work that well under tmux && ssh.
15:48:52 <imode-ruby> color bars get weird.
15:55:36 -!- kspalaiologos has joined.
15:59:42 -!- imode has quit (Ping timeout: 268 seconds).
16:00:35 -!- imode has joined.
16:02:47 -!- atslash has quit (Ping timeout: 268 seconds).
16:04:55 -!- imode-ruby has quit (Quit: WeeChat 1.6).
16:05:10 -!- imode-ruby has joined.
16:05:41 <imode-ruby> there we go, much better.
16:07:18 -!- imode has quit (Quit: WeeChat 2.6).
16:07:36 -!- imode has joined.
16:10:29 -!- imode-ruby has quit (Quit: WeeChat 1.6).
16:10:39 -!- imode-ruby has joined.
16:11:10 -!- stux|away has quit (Read error: Connection reset by peer).
16:16:37 -!- imode has quit (Ping timeout: 240 seconds).
16:27:55 <kspalaiologos> I've been writing a brainfuck generator today
16:28:07 <kspalaiologos> crunched around 1MB data file
16:28:18 <kspalaiologos> too bad I can't eaisly rewrite it to brainfuck though
16:28:27 <kspalaiologos> RLE'd it would be, I guess, around 2 megabytes
16:28:59 <kspalaiologos> but yeah currently it's going like
16:29:00 <kspalaiologos> http://prntscr.com/q2wtuq
16:29:21 -!- stux|away has joined.
16:31:10 <wib_jonas> kspalaiologos: is that a compiler to bfasm?
16:31:31 <wib_jonas> um, I mean to asm2bf
16:34:25 <kspalaiologos> nope, not the case
16:34:30 <kspalaiologos> a brainfuck text generator in asm2bf
16:34:41 <kspalaiologos> also, bfasm and asm2bf are two separate things
16:34:53 <kspalaiologos> asm2bf is the entire toolkit and bfasm is just the compiler
16:40:16 <wib_jonas> ok, now I'm confused
16:40:30 <wib_jonas> there's a bfasm compiler, and an asmbf and an asm2bf? how do those differ?
16:40:45 <kspalaiologos> it's even more complicated
16:40:47 <wib_jonas> and what does "text generator" mean?
16:40:58 <kspalaiologos> like bf_textgen or something like this on hack eso
16:41:04 <kspalaiologos> so actually, bfasm is older than asm2bf
16:41:19 <wib_jonas> I don't know what bf_textgen is either
16:41:22 <wib_jonas> `? bf_textgen
16:41:23 <HackEso> bf_textgen? ¯\(°​_o)/¯
16:41:30 <kspalaiologos> that makes a brainfuck program
16:41:32 <kspalaiologos> displaying given text
16:41:35 <wib_jonas> ok
16:41:37 <kspalaiologos> and bfasm had v1/v2/v3/v4/v5 versions each one with a-d letters (some skipped some version)
16:41:45 <kspalaiologos> that I used for my Izmit compiler series
16:42:00 <kspalaiologos> but then I abadoned it for a while and went back to the ye oldie bfasm v1
16:42:06 <kspalaiologos> I had to come up with the versioning schema
16:42:25 <kspalaiologos> so the v* versions are for izmit, and [0-9]\.* versions are the new ones
16:42:33 <kspalaiologos> going back to your question
16:42:45 <kspalaiologos> bfasm is a compiler from assembly subset to brainfuck
16:42:46 <kspalaiologos> for instance
16:42:54 <kspalaiologos> ``` bfasm <<<"lbl 1/jmp 1"
16:42:55 <HackEso> ​+>+[#
16:43:15 <kspalaiologos> ``` tr '/' '\n' <<<"lbl 1/jmp 1" | bfasm
16:43:16 <HackEso> ​+>+[>>>+<<+<<[>>->+<<<-]>>>[<<<+>>>-]<[->+<<[>>>-<<+<-]>[<+>-]>>[<->[-]]<[<<<+>>>-]<]>>[-]<<<<[>>+>+<<<-]>>[<<+>>-]>[[-]>>>>>>+<<<<<<<<<[-]>[-]>>>>>>>>[<<<<<<<<+>+>>>>>>>-]<<<<<<<[>>>>>>>+<<<<<<<-]>>>>>>>[-]<<<<<<]<<<[>>+>+<<<-]>>[<<+>>-]>[[-]<<<[-]>[-]>>]<<]
16:43:18 <kspalaiologos> there we go
16:43:29 <kspalaiologos> asm2bf is a toolchain
16:43:33 <kspalaiologos> that has bfasm as a tool
16:43:41 <kspalaiologos> like MinGW and GCC
16:43:49 <kspalaiologos> the toolchain has many goodies linked in
16:44:06 <kspalaiologos> like the standard library, labels preprocessor, the generic macro preprocessor
16:44:46 <kspalaiologos> $asm2bf eq $asmbf basically
16:45:17 <kspalaiologos> oh and by the way
16:45:19 <wib_jonas> ok, so asm2bf has the compiler and some extras
16:45:21 <kspalaiologos> the above is an infinite loop
16:45:24 <kspalaiologos> Yes.
16:45:32 <kspalaiologos> https://esolangs.org/wiki/Asm2bf
16:45:38 <kspalaiologos> this page lists all the tools in the toolchain
16:45:42 <wib_jonas> naming them that way is a bit strange, but sure
16:45:57 <kspalaiologos> and has a bfasm section describing the pure assembler
16:46:02 <kspalaiologos> without the toolchain programs
16:46:07 <kspalaiologos> e.g. it doesn't use named labels, macros
16:46:12 <kspalaiologos> but you obviously can do it
16:46:39 <kspalaiologos> I first named it asm2bf
16:46:43 <kspalaiologos> but the source file was called bfasm
16:46:49 <kspalaiologos> then somebody lurked my repos and found the program
16:46:52 <kspalaiologos> it had no docs by then
16:46:58 <kspalaiologos> he asked me how can he use it
16:47:06 <kspalaiologos> and we talked a bit more, so the fragmentation happened
16:47:15 <kspalaiologos> because he reffered to it by a source file name (bfasm.c)
16:47:23 <kspalaiologos> and I reffered to it by the name I've given (asm2bf)
16:47:36 <kspalaiologos> as he's been assisting me with the docs, he called the tool bfasm
16:47:42 <kspalaiologos> and I kinda settled on it
16:47:53 <kspalaiologos> after making a few more tools I set up a separate repo
16:47:54 <wib_jonas> so now you're making a text generator that you embed to the toolchain so that you can make a shorter 8-ball program for example?
16:48:02 <kspalaiologos> nope
16:48:06 <kspalaiologos> I'm making a text generator
16:48:08 <kspalaiologos> using asm2bf
16:48:17 <kspalaiologos> but, I can embed it to the toolchain
16:48:32 <kspalaiologos> it has no sense to me though, but a more performant txt would be lovely
16:48:39 <kspalaiologos> and I'll work on it later
16:48:42 <kspalaiologos> look:
16:48:47 <kspalaiologos> `asmbf txt "Hello"
16:48:48 <HackEso> ​+>+[<[>>+>+<<<-]>>[<<+>>-]>[[-]>>>>>>>>>>>>>>>>>++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>>++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>>++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>
16:48:54 <kspalaiologos> It's using + to embed the string
16:49:04 <kspalaiologos> it's terrible, because we have to conserve runtime memory
16:49:13 <kspalaiologos> I could set a multiplication loop though
16:49:21 <kspalaiologos> I'll work more on it when time permits
16:49:50 <kspalaiologos> the naming is pretty scary
16:49:54 <kspalaiologos> but the assembler itself is really easy
16:50:06 <kspalaiologos> and getting started is as simple as adding a shebang and executing a file to get a brainfuck program generated
16:54:11 <kspalaiologos> wib_jonas, got bored to death lol?
16:54:25 <wib_jonas> no, I just find it weird that the whole thing involves brainfuck
16:54:44 <kspalaiologos> It has a Malbolge target too
16:54:49 <kspalaiologos> but I keep it private for obvious reasons
16:55:24 <wib_jonas> I mean, I'm at work right now, and I'm doing weird things to work around the deficiencies of a legacy system, but it's not an esoteric one like brainfuck, it's just weird for all sorts of historical reasons,
16:55:56 <kspalaiologos> right
16:55:59 <wib_jonas> like they made the system some way ten to twenty years ago, and they can't change things because they value compatibility,
16:55:59 <kspalaiologos> how old is the system though?
16:56:03 <kspalaiologos> ah, finme
16:56:09 <wib_jonas> depends on which parts
16:56:12 <kspalaiologos> which technology?
16:56:25 <kspalaiologos> is it using
16:56:38 <kspalaiologos> and more importantly, what exactly is it? Webapp, desktop app?
16:56:42 <wib_jonas> Siemens WinCC was originally designed for the 16-bit windows era, so it has the oldest weird stuff
16:56:54 <wib_jonas> it runs on windows desktop
16:57:18 <kspalaiologos> fine
16:57:20 <kspalaiologos> I hear wincc
16:57:24 <kspalaiologos> and I know what is it by now
16:57:25 <wib_jonas> and it's a recent version, and this one runs on windows 10 and some windows server version, I'm not sure which one
16:57:38 <wib_jonas> but there are all sorts of newer stuff here too
16:57:57 <kspalaiologos> I had a friend that used to work in CodeGear
16:57:59 <wib_jonas> like parts of the system designed within the company and copied from one system to another and ideally gradually patched and improved
16:58:03 <kspalaiologos> a part of Inprise / Borland
16:58:11 <kspalaiologos> and maintain the C++ Builder
16:58:38 <kspalaiologos> he said that it contained tons of old shitcode dating back to MS-DOS since C++ Builder 6
16:59:04 <kspalaiologos> honestly I'd like to work somewhere where I could program&improve compilers/IDE's
16:59:13 <kspalaiologos> because it seems like a suitable task for me
16:59:32 <wib_jonas> and there are like cases when there's an old project A, then two different projects B and C indirectly derived from it, then at some point a certain breaking change of the internals was made between A and C, but now I'm working on B which is under development, and
16:59:37 <kspalaiologos> but I'm stuck where I am lol
17:00:03 <kspalaiologos> I need to get my COBOL backend for asm2bf finally sorted out
17:00:10 <kspalaiologos> it would be the first official backend other than brainfuck itself
17:00:14 <wib_jonas> I have to find out if B will have the old or the new behavior with respect to that internal interface, and that's a question that doesn't even have an answer yet because the code on the other side of the interface isn't written yet, and will be written by a busy co-worker,
17:00:28 <kspalaiologos> is there someone in the team
17:00:30 <kspalaiologos> who knows A?
17:00:37 <kspalaiologos> or took part in creating it?
17:00:40 <wib_jonas> so we have to ask him to decide how it will work and make our match that interface.
17:00:47 <kspalaiologos> or you have to figure out the entire code yourself
17:00:57 <wib_jonas> I know how this particular interface works in A
17:01:22 <kspalaiologos> I think
17:01:27 <kspalaiologos> is there a way using C preprocessor
17:01:31 <kspalaiologos> to do something like
17:01:33 <wib_jonas> basically it's a word in which bit 15 is set to mean something in A, but 14 is set to mean the same thing in C, and I read that bit
17:02:04 <kspalaiologos> perform a single operation for every character in any form?
17:02:06 <wib_jonas> so in the tables that I'm making, I have to write 14 or 15 depending on what a co-worker's program will do in the future
17:02:17 <kspalaiologos> ^ just macro it
17:02:25 <wib_jonas> and there's even a reason why it was changed from bit 14 to 15, though not a very good reason
17:02:59 <wib_jonas> I don't have to figure out everything myself, I found out a lot already from my project leader who knows a lot of these projects
17:03:15 <wib_jonas> and I am somewhat in debt to document some of what I've found for future maintainers
17:03:44 <wib_jonas> C preprocessor to perform a single operation for every character => I believe no, but you can
17:03:57 <kspalaiologos> like
17:04:10 <kspalaiologos> raw .H/raw .E/raw .L/raw .L
17:04:11 <kspalaiologos> etc...
17:04:15 <kspalaiologos> where / is a newline
17:04:18 -!- Lord_of_Life_ has joined.
17:04:48 <wib_jonas> use the C preprocessor to do something on every element on a comma-separated list, or every element on a list where each element is parenthisized, https://p99.gforge.inria.fr/ and https://www.boost.org/doc/libs/1_71_0/libs/preprocessor/doc/index.html help in these
17:04:53 -!- Lord_of_Life has quit (Ping timeout: 245 seconds).
17:05:20 <wib_jonas> also in very recent C++ there's a way to do something on every character of a string literal, or of a user-defined string literal, in compile time
17:05:37 <kspalaiologos> yeah I know
17:05:39 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
17:05:43 <kspalaiologos> but I want the substitution to be done in compile time
17:05:53 <wib_jonas> does it have to be during preprocessing?
17:05:58 <kspalaiologos> yes
17:06:11 <kspalaiologos> because I'm using C preprocessor with asm2bf and it has been the worst decision I made so far
17:06:17 <wib_jonas> ouch
17:06:38 <kspalaiologos> I regret it
17:06:42 <kspalaiologos> but I think its not too late
17:06:44 <kspalaiologos> to change it
17:06:49 <wib_jonas> mind you, I wrote a somewhat esoteric custom preprocessor for C code at one point, and it was also a bad decision, but I used it for only one C program
17:07:26 <kspalaiologos> it has to support define
17:07:28 <kspalaiologos> and include
17:07:33 <kspalaiologos> ifdef ifndef else endif
17:07:43 <kspalaiologos> possibly the same as C preprocessor without paste operation
17:07:45 <kspalaiologos> and concat
17:07:48 <kspalaiologos> stringify
17:07:56 <kspalaiologos> with some compile time stuff
17:08:02 <kspalaiologos> I think about bundling lua here
17:08:08 <kspalaiologos> to allow user to do everything they wish
17:09:09 <wib_jonas> that one allows you to embed ed commands (with some prefix, let's say #.) into the code, so I can copy a block of code like this: #.ka to mark the beginning of the block, then the block, then #.kb to mark the end, then some other code, then #.kc #.'a,'bt. #.kd to copy the block, then #.'c,'ds/foo/bar/g to do some substitutions on the copy of the
17:09:09 <wib_jonas> block
17:09:37 <wib_jonas> and I implemened this with a shell script that uses a short sed script that transforms the input to an ed script and runs it with ed
17:09:51 <wib_jonas> it's a really stupid design and I'm glad it hasn't survived, but it still haunts me
17:10:16 <kspalaiologos> little you have seen
17:10:37 <wib_jonas> I heard rumors of other people who have written sed scripts with other sed scripts
17:10:44 <kspalaiologos> I'm doing worse stuff on a daily basis
17:11:17 <wib_jonas> and there's an IOCCC entry that writes C++ preprocessor input with the C++ preprocessor (so you run multiple iterations of the C++ preprocessor)
17:11:23 <kspalaiologos> asm2bf is a somehow 90% coverage program
17:11:24 <wib_jonas> possibly two IOCCC entries, I don't remember
17:11:33 <kspalaiologos> albeit being so hacky I can't believe it works
17:12:16 <wib_jonas> kspalaiologos: I'm trying to *clean up* worse stuff on a daily basis for my job, replacing them with saner solutions. I don't always succeed, but when I do, it's at least a good feeling to know that the projects will now be more maintainable.
17:12:40 <kspalaiologos> ^ at least I am writing Malbolge and Brainfuck
17:12:49 <wib_jonas> at least they will be if I write enough internal documentation so that future maintainers can figure out how to use what I made
17:12:50 <kspalaiologos> so it's resonable that the programs have terrible maintainability
17:13:04 <kspalaiologos> but you're doing some real stuff
17:13:21 <kspalaiologos> when I'm doing real stuff I'm trying to do it as good as I can
17:13:33 <kspalaiologos> so I'm not very performant but the job gets done
17:13:46 <kspalaiologos> possibly you have shorter deadlines than me
17:13:54 <kspalaiologos> I can understand it then
17:14:31 <wib_jonas> real stuff during the day, yes
17:15:33 <wib_jonas> I'd like to say that I'm cleaning up badly done stuff that other people made for these projects and their ancestors, but it's not entirely true. I have now worked here for long enough that I'm totally also cleaning up bad stuff that I've done to these projects.
17:15:57 <kspalaiologos> I'd throw an obligatory joke
17:16:02 <kspalaiologos> about Indian programmers
17:16:26 <kspalaiologos> but I'm kinda more careful on foreign IRC networks lol
17:16:31 <wib_jonas> But some of the bad design results from how this company used to have mostly employees who understand electronics well but don't understand enough of programming, so the desktop software side, which is what I'm working on, is in a sad state.
17:16:50 <kspalaiologos> ^ that actually sucks
17:17:53 <wib_jonas> But now they've lost several people who knew the electronics and embedded control software well, so now the desktop software will be good and the rest will be rushed by overworked employees.
17:20:11 <wib_jonas> By the way, unrelated puzzle. In windows 10, how do you move a window such that its top is above the top of your desktop? The window manager normally adjust the location after you as a user move a window, so that they can't be above the top edge. Programs can still put their windows above it, but this is when you're a user moving the window of an
17:20:12 <wib_jonas> existing program.
17:21:55 <wib_jonas> Solution: open Control Panel / Ease of Access / Ease of Access Center / Make the mouse easier to use, and in there, check "prevent windows from being automatically arranged when moved to the edge of the screen". That checkbox has other, more important effects, but as a side effect it lets you move windows above the top edge of the desktop.
17:37:51 -!- wib_jonas has quit (Quit: Connection closed).
18:15:14 <kmc> prevent windows from becoming automatically enraged
18:36:14 <int-e> addition chains are so much fun. http://paste.debian.net/1118289/
18:37:59 <int-e> hmm, actually, can't I stop earlier...
18:39:18 <esowiki> [[Special:Log/newusers]] create * Dart * New user account
18:39:22 <int-e> (Yes, I can. x^(2^30) = 1 (mod 2^32) is true for all odd x.)
18:50:25 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=67503&oldid=67383 * Dart * (+219) /* Introductions */
19:05:28 -!- b_jonas has joined.
19:19:11 -!- atslash has joined.
19:23:54 -!- FreeFull has joined.
19:24:28 -!- atslash has quit (Ping timeout: 265 seconds).
19:25:19 -!- atslash has joined.
20:07:02 -!- nico_nico has joined.
20:07:40 -!- nico_nico has quit (Client Quit).
20:09:34 -!- Hooloovo0 has quit (*.net *.split).
20:11:40 -!- Hooloovo0 has joined.
20:24:10 -!- kingoffrance has joined.
20:25:59 -!- enoua5 has joined.
20:26:28 -!- enoua5 has left.
21:45:45 <arseniiv> and in there, check "prevent windows from being automatically arranged when moved to the edge of the screen". => oh, thanks from me too! Though when applying, that also resets the mouse cursor scheme :( thankfully I have mine saved
21:47:25 <arseniiv> (b_jonas ^)
21:53:21 <esowiki> [[Keg]] https://esolangs.org/w/index.php?diff=67504&oldid=67000 * JonoCode9374 * (+880) /* Program Flow */
21:53:47 -!- sprocklem has joined.
21:54:15 <b_jonas> what video games have you played lately, fungot
21:54:16 <fungot> b_jonas: what is tco again? ( c-c something) to reduce clutter of name generation. i don't particularily find it very interesting. y is the identity function) ( list 3 4))
21:55:15 <esowiki> [[The Temporary Stack]] https://esolangs.org/w/index.php?diff=67505&oldid=67468 * PythonshellDebugwindow * (+251) /* Hello, World! */
21:56:00 <kspalaiologos> =8ball bfbot, will I ever implement markov chains for you?
21:56:00 <bfbot> Outlook not so good
21:56:08 <kspalaiologos> yeah he knows
21:57:44 -!- gitlogger has joined.
21:57:49 <kspalaiologos> ^ my bot died
21:57:53 <kspalaiologos> but I'm not sure when and why
21:57:58 <kspalaiologos> or I don't seem to remember
21:58:08 <kspalaiologos> anyways, it's back in business
22:00:55 <kingoffrance> s/in business/& for december/ to keep the rhyming
22:01:15 <kspalaiologos> ^ lol
22:01:22 <kspalaiologos> but the stability pun is in place here too
22:03:21 <b_jonas> kspalaiologos: if you teach bfbot bfasm, will you interpret it directly, or will you have it go through a compiler to bf then a bf interpreter that recognizes the structures of the bfasm output and executes them optimized?
22:03:23 <esowiki> [[Cell]] https://esolangs.org/w/index.php?diff=67506&oldid=67496 * JonoCode9374 * (+519)
22:03:35 <kspalaiologos> honestly I'm not sure
22:03:42 <kspalaiologos> I think about making some kind of bfasm interpreter
22:03:47 <kspalaiologos> because it would make more sense
22:03:58 <kspalaiologos> but, there is raw too
22:04:01 <kspalaiologos> to embed raw brainfuck
22:04:13 <kspalaiologos> so I guess I'll have to switch the modes whether I grep somewhere this text
22:04:30 <kspalaiologos> ^~~ i should parse the code, so normal grep wont suffice
22:05:39 -!- sebbu2 has joined.
22:07:30 -!- kspalaiologos has quit (Quit: Leaving).
22:08:38 -!- sebbu has quit (Ping timeout: 245 seconds).
22:19:22 -!- arseniiv has quit (Quit: gone completely :o).
2019-11-28
00:04:46 -!- FreeFull has quit.
00:25:34 -!- xkapastel has joined.
00:30:11 <int-e> shachaf: what do you think of https://en.wikipedia.org/wiki/Faddeev%E2%80%93LeVerrier_algorithm
00:33:22 <shachaf> I don't think much of it right now. Should I?
00:38:49 <int-e> It can compute adjoint matrices and determinants, which is nice. Seems to be competetive for that purpose on 9x9 matrices.
00:40:08 <int-e> (I'm still tinkering with http://www.research.ibm.com/haifa/ponderthis/challenges/November2019.html )
00:50:01 <int-e> https://arxiv.org/abs/1206.7067 was more illuminating really.
00:52:34 <esowiki> [[Talk:Cell]] https://esolangs.org/w/index.php?diff=67507&oldid=67499 * JonoCode9374 * (+602) /* Addition of Looping Commands */ new section
01:02:48 <shachaf> Aha.
01:23:38 -!- oerjan has joined.
01:27:59 <oerjan> `wisdom waha
01:28:01 <HackEso> That's not wise.
01:32:19 <oerjan> `../canary
01:32:19 <HackEso> ​../canary?
01:33:30 <oerjan> fizzie: having it give the same cryptic error message on non-executable files as non-existing ones may be confusing given how often we forget to do chmod +x
01:33:58 <int-e> I guess it's appropriate that a canary is executable... since its main purpose is to warn others by dying off?
01:34:13 <oerjan> `` ls -l ../canary
01:34:14 <HackEso> ​-rw-r--r-- 1 1000 1000 101 Jul 19 21:53 ../canary
01:34:15 <int-e> ;)
01:34:18 <oerjan> it's not
01:34:28 <int-e> `` ../canary
01:34:28 <HackEso> ​/hackenv/bin/`: line 5: ../canary: Permission denied
01:34:28 <oerjan> i was testing the error message
01:34:40 <int-e> right.
01:35:12 <int-e> `../absent
01:35:13 <HackEso> ​../absent?
01:35:25 <oerjan> hm...
01:35:34 <oerjan> `which cp
01:35:35 <HackEso> ​/bin/cp
01:36:13 <oerjan> `u mk bin/cp//Testing...
01:36:16 <HackEso> bin/cp
01:36:22 <oerjan> `` cp a b
01:36:23 <HackEso> cp: cannot stat 'a': No such file or directory
01:36:28 <oerjan> ic
01:36:38 <oerjan> `u rm bin/cp
01:36:42 <int-e> `cat ../bin/u
01:36:43 <HackEso> No output.
01:36:45 <HackEso> cd "${HACKENV-/hackenv}"; nur "$1"
01:36:58 <int-e> `cat ../bin/nur
01:36:58 <HackEso> ​#!/bin/bash \ if grep -q \ <<<"$1"; then "${1%% *}" "${1#* }"; else "$1"; fi
01:37:18 <oerjan> int-e: i got tired of doing ../ all the time. wait, `u is the same length :(
01:37:43 <int-e> short for `up?
01:37:47 <oerjan> yeah
01:38:33 <oerjan> oh i forgot an important part
01:38:35 <oerjan> `revert
01:38:36 <HackEso> Done.
01:38:40 <oerjan> `cp testing
01:38:40 <HackEso> cp: missing destination file operand after 'testing' \ Try 'cp --help' for more information.
01:38:44 <oerjan> `revert
01:38:45 <HackEso> Done.
01:39:11 <oerjan> ok so fizzie's command search also skips non-executable files
01:39:32 <fizzie> I'm just following the standard.
01:39:40 <oerjan> but unlike the normal shell, it ignores them even if it finds no executable match
01:39:57 <oerjan> `` fnord
01:39:58 <HackEso> ​/hackenv/bin/`: line 5: fnord: command not found
01:40:38 <fizzie> `fnord
01:40:38 <HackEso> fnord? No such file or directory
01:41:14 <fizzie> `../canary
01:41:14 <HackEso> ​../canary? Permission denied
01:41:27 <oerjan> yay
01:41:56 <fizzie> It should follow the standard practice now, assuming I didn't include any bugs.
01:42:11 <fizzie> "If permission is denied for a file (the attempted execve(2) failed with the error EACCES), these functions will continue searching the rest of the search path. If no other file is found, however, they will return with errno set to EACCES."
01:43:56 <oerjan> no wait, `u is shorter because i don't need another `
01:44:16 <oerjan> it's all good
01:45:37 <oerjan> oh hm
01:45:42 <oerjan> maybe i should rename it
01:45:58 <oerjan> `u is three keypresses but `r is just two, because ù exists
01:45:59 <HackEso> ​/hackenv/bin/nur: line 2: is: command not found
01:46:13 <fizzie> I was thinking `^ because it's the up arrow, but that's just silly.
01:46:33 <oerjan> hm that actually works, both use the same shift key for me
01:46:51 <oerjan> although i'm not sure for a different keyboard
01:47:02 <fizzie> They don't for UK or US, but who's counting?
01:47:20 <fizzie> (The ` is unshifted, ^ is on shift-6.)
01:50:06 <oerjan> `^
01:50:10 <HackEso> ​^? No such file or directory
01:51:29 <int-e> `~
01:51:30 <HackEso> ​~? No such file or directory
01:51:45 <oerjan> int-e: ~ means $HOME which is /tmp
01:52:05 <int-e> `ls ~
01:52:07 <int-e> ;)
01:52:08 <HackEso> ls: cannot access '~': No such file or directory
01:52:16 <int-e> `` ls ~
01:52:17 <HackEso> No output.
01:52:31 <oerjan> also ~ uses a different modifier key than ` for me
01:52:33 <int-e> oerjan: It only means that in shells.
01:52:46 <int-e> here ~ is shift-`
01:52:49 <oerjan> _and_ i need a space after ~.
01:52:50 <int-e> and it's not a dead key.
01:53:08 <fizzie> `¬ hth
01:53:09 <HackEso> ​¬? No such file or directory
01:53:16 <fizzie> That's shift-` here.
01:53:21 <oerjan> so 3 presses, 5 keys total
01:53:33 * oerjan swats fizzie -----###
01:55:51 <fizzie> Another little oddity of the UK layout is that there is exactly one third-level symbol printed on a keycap, and that's the broken bar, which is altgr-`... except that it's anyone's guess whether it'll actually produce a broken bar or just the regular |. On this system it's just a |.
01:56:20 <fizzie> So there's the \| key (plain, shifted) next to z, but also the `¬| key next to 1.
01:57:01 <fizzie> I think someone operating systems will actually produce a ¦ out of it though.
01:57:27 <oerjan> oh what about `<
01:57:40 <int-e> oerjan: that's even worse than `u
01:57:56 <oerjan> not for me ;)
01:58:03 <int-e> (further away and needs a shift)
01:58:26 <oerjan> < is unshifted left of z here
01:59:39 <int-e> Ah I guess I don't actually care. It's easy to complain though.
01:59:54 <oerjan> `complain int-e complains too much
01:59:56 <HackEso> Complaint filed. Thank you.
02:00:03 <fizzie> Wonder which one's more useless, the UK's ¬ or the Finnish/Swedish ½, for the "shifted left of 1" position.
02:00:32 <oerjan> i have § there hth
02:00:59 <fizzie> Finnish keyboard layout has § there as the unshifted.
02:01:10 <imode-ruby> and now begins my quest to convince my employer that working on an esolang is a useful way of spending company time.
02:01:24 <fizzie> UK's missing § completely, they don't go for legalese over here.
02:02:01 <oerjan> `t
02:02:04 <HackEso> t? No such file or directory
02:02:09 <int-e> oerjan: shachaf's still leading in the complaint department, followed by you ;)
02:02:50 <oerjan> shocking
02:03:00 <int-e> (Well, it's hard to count, actually; two of your changes were `sled invokations)
02:03:05 <oerjan> `u `mv bin/{u,t}
02:03:06 <HackEso> ​/hackenv/bin/nur: line 2: `mv: command not found
02:03:11 <oerjan> hum
02:03:16 <oerjan> `u ` mv bin/{u,t}
02:03:18 <HackEso> No output.
02:03:29 <oerjan> t for top is just as logical
02:03:40 <oerjan> and not confusible with /
02:03:46 <int-e> and I guess https://hack.esolangs.org/repo/rev/875339492c29 was a random complaint (which was reverted)
02:05:13 <oerjan> int-e: given it was izabera, it's probably italian hth
02:05:24 * oerjan ignores phonotactics LA LA LA LA
02:06:28 <int-e> oerjan: look at the command though
02:07:03 * oerjan ignores logic LA LA LA LA
02:08:40 <int-e> of course you do, except when you don't
02:08:49 <int-e> `grwp tautolog
02:08:50 <HackEso> tautology:A tautology is a tautology. Oren invented them.
02:09:17 <int-e> I should probably sleep.
02:09:48 <noomy> `? moony
02:09:49 <HackEso> moony? ¯\(°​_o)/¯
02:11:24 <oerjan> `wisdom moon
02:11:25 <HackEso> moon//moon is often named the following: moonythedwarf moonythehuman moonheart08 moony moon__ computing and luxon, making porthellos and @tells a real pain
02:11:46 <oerjan> `` grwp -l moon
02:11:47 <HackEso> ​☾_ \ bimonthly \ ciol \ #esoteric \ moon \ pluto
02:12:10 <oerjan> `? ☾_
02:12:13 <HackEso> ​☾_ is moon_'s lawful twin. He's banned in the IRC RFC for being an invalid character. He sometimes eats papers.
02:13:17 <oerjan> porthellos seem to have decreased somewhat
02:14:43 <oerjan> `slwd moon//s,__,__ noomy,
02:14:45 <HackEso> moon//moon is often named the following: moonythedwarf moonythehuman moonheart08 moony moon__ noomy computing and luxon, making porthellos and @tells a real pain
02:15:30 <noomy> heh
02:15:31 <oerjan> `slwd moon//s,$,.,
02:15:33 <HackEso> moon//moon is often named the following: moonythedwarf moonythehuman moonheart08 moony moon__ noomy computing and luxon, making porthellos and @tells a real pain.
02:16:05 <noomy> should've seen me earlier when i was "sust" for a bit (as a joke, you won't see that nick again)
02:16:48 <oerjan> you just cannot make the nick sust ainable
02:17:37 <noomy> that is actually close to the joke. I nicknamed myself the shortening of "sustenence" to make dumb jokes in ##werewolf when we were playing boreal
02:17:55 <noomy> (Boreal happens to be a gamemode where you can starve to death)
02:18:27 <imode-ruby> eneccccjljlhknhtfdditlhnjrdcercdldcdukkngdfk
02:18:32 <imode-ruby> fucking.
02:18:35 <oerjan> @wn sustenence
02:18:37 <lambdabot> No match for "sustenence".
02:18:48 * imode-ruby tableflips.
02:18:54 <oerjan> . o O ( imode-ruby appears to be speaking italian LA LA LA LA )
02:18:58 <int-e> . o O ( Who put the "pun" in "penguin"?)
02:19:13 <imode-ruby> oerjan: were there any curses in that?
02:19:25 <imode-ruby> if not I'm disappointed at my unconscious knowledge of italian.
02:19:46 <oerjan> i don't know much italian cursing
02:32:09 -!- sebbu2 has changed nick to sebbu.
03:06:38 -!- MDead has joined.
03:07:47 -!- MDude has quit (Ping timeout: 276 seconds).
03:07:53 -!- MDead has changed nick to MDude.
03:20:34 -!- imode has joined.
03:38:05 -!- noomy has changed nick to moony.
03:45:09 -!- xkapastel has quit (Quit: Connection closed for inactivity).
04:09:52 <esowiki> [[Hunter]] https://esolangs.org/w/index.php?diff=67508&oldid=67484 * Oerjan * (-39) /* Description */ fix dead link
04:23:54 -!- MDude has quit (Remote host closed the connection).
05:04:30 -!- Lord_of_Life_ has joined.
05:05:00 -!- Lord_of_Life has quit (Ping timeout: 246 seconds).
05:05:53 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
05:21:59 -!- imode has quit (Ping timeout: 268 seconds).
05:48:59 -!- paul2520 has quit (*.net *.split).
05:54:52 -!- paul2520 has joined.
06:45:25 -!- tromp has quit (Remote host closed the connection).
06:53:49 -!- kingoffrance has quit (Read error: Connection reset by peer).
07:13:08 -!- kingoffrance has joined.
07:46:00 -!- kingoffrance has quit (Quit: x).
08:09:45 -!- tromp has joined.
08:17:41 <b_jonas> oerjan: how about `㋌ then, since it's a version-controlled directory?
08:41:32 <oerjan> b_jonas: i don't know how to type that but i suspect it would be a lot more key presses than `t
08:42:26 -!- tromp has quit (Remote host closed the connection).
08:52:13 <b_jonas> also I dreamt about a version control system that doesn't exist in real life. in my dream, it was quite popular, not as popular as git but probably at second or third place in popularity, and almost as old as git. I was sad when I finally realized that it doesn't exist upon waking up.
08:52:42 <b_jonas> I'm not sure what it is named, because dreams are vague like that, my best guess is "tek"
08:55:05 <b_jonas> the other one among the top three most popular ones was either mercury or another one that doesn't exist in real life
08:56:16 <b_jonas> and no, none of these is ais's scapegoat
09:02:08 -!- ArthurStrong has joined.
09:16:06 -!- tromp has joined.
09:17:54 -!- b_jonas has quit (Remote host closed the connection).
09:34:37 -!- oerjan has quit (Quit: Nite).
10:35:10 -!- xkapastel has joined.
11:00:22 <int-e> `unidecode ㋌
11:00:25 <HackEso> ​[U+32CC SQUARE HG]
11:00:32 <int-e> pfft
11:06:30 -!- wib_jonas has joined.
11:12:40 <wib_jonas> [ _ 60#: 2256
11:12:41 <j-bot> wib_jonas: 37 36
11:16:22 <int-e> =8ball Should I try simulated annealing?
11:16:23 <bfbot> My sources say no.
11:34:59 -!- arseniiv has joined.
11:47:08 <esowiki> [[Aya]] https://esolangs.org/w/index.php?diff=67509&oldid=51832 * A * (+30)
12:05:39 <fizzie> `` 8ball 'Should int-e try simulated annealing?' # just for confirmation
12:05:39 <HackEso> Most likely.
12:05:46 <fizzie> Well, conflicting advice there.
12:18:06 <int-e> So random.
12:20:46 <wib_jonas> int-e: try /msg perlbot 8-ball Should int-e try simulated annealing?
12:20:56 <wib_jonas> perlbot's implementation is more reliable
12:21:19 <wib_jonas> and don't trust HackEso's 8-ball
12:21:52 <esowiki> [[Special:Log/newusers]] create * Joru * New user account
12:21:58 <int-e> But I already got the answer I wanted!
12:26:20 <esowiki> [[User talk:Zzo38]] https://esolangs.org/w/index.php?diff=67510&oldid=66901 * YamTokTpaFa * (+490) /* I'd like to learn about AAAAAAAAAAAAAA!!!! more. */
12:28:44 -!- kspalaiologos has joined.
12:28:54 <kspalaiologos> Greetings
12:59:17 <kspalaiologos> 1. e4 e5 2. f3 Nf6 3. c3 Nxe4 4. fxe4 Qh4+ 5. g3 Qxe4+ 6. Be2 Qxh1 7. Bf1 Qxg1 8. Qe2 Qc5 9. Qg2 d5 10. b4 Qb6 11. Na3 d4 12. Nc4 Qe6 13. a4 dxc3 14. dxc3 c6 15. Qe2 Nd7 16. Nxe5 Nxe5 17. Bb2 f6 18. c4 Bxb4+ 19. Kd1 Qd6+ 20. Kc1 Bd2+ 21. Kc2 Bf5+ 22. Kb3 Qb4+ 23. Ka2 Be6 24. Rd1 Qxa4+ 25. Kb1 Bf5+ 26. Qe4 Bxe4+ 27. Bd3 Bxd3# 0-1
12:59:27 <kspalaiologos> A couple of minutes game I played today
12:59:30 <kspalaiologos> I think it's neat
12:59:43 <kspalaiologos> But my opponent was kinda trolling
13:15:09 -!- tswett[m] has quit (Read error: Connection reset by peer).
13:15:26 -!- ddmm_ has quit (Remote host closed the connection).
13:15:28 -!- wmww has quit (Write error: Connection reset by peer).
13:36:24 -!- kspalaiologos has quit (Quit: Quit).
13:36:44 -!- kspalaiologos has joined.
13:37:47 -!- kspalaiologos has quit (Client Quit).
13:38:29 -!- kspalaiologos has joined.
13:40:09 <kspalaiologos> Greetings
13:45:24 <int-e> deja vu
13:55:25 <fizzie> DejaVu Sans Mono.
13:56:11 <APic>
13:57:04 <esowiki> [[W (A)]] https://esolangs.org/w/index.php?diff=67511&oldid=67502 * A * (+415)
13:57:56 <int-e> without single?
13:58:10 <esowiki> [[W (A)]] M https://esolangs.org/w/index.php?diff=67512&oldid=67511 * A * (+2) /* Project Euler 1 */
14:03:59 -!- MDude has joined.
14:04:15 -!- kritixilithos has joined.
14:08:42 -!- mniip has quit (Ping timeout: 619 seconds).
14:21:25 <arseniiv> <fizzie> DejaVu Sans Mono. => oh! I set that in firefox as a default for many languages
14:22:10 -!- mniip has joined.
14:22:36 -!- kspalaiologos has quit (Quit: leaving).
14:24:10 <arseniiv> someone played Submachine series?
14:27:39 <arseniiv> when it doesn’t go too point-and-clicky, I think it’s pretty cool
14:28:45 <arseniiv> there’s even an overarching story, though I think it wasn’t conceived in all its completeness in the times of older episodes
14:31:19 <arseniiv> but even then there was a bit or two of a story; not your average escape from X game; and there is a spoon (and later, a fork, and later still, both, but you won’t use them for eating)
14:32:52 <arseniiv> it all uses Flash, though, as all older yet unported things do
14:33:13 <arseniiv> or maybe it was ported while I wasn’t looking
15:12:12 -!- ddmm_ has joined.
15:12:12 -!- tswett[m] has joined.
15:12:12 -!- wmww has joined.
15:14:54 -!- xkapastel has quit (Quit: Connection closed for inactivity).
15:41:14 -!- imode has joined.
15:46:31 <imode> ls
16:01:36 -!- kspalaiologos has joined.
16:23:59 -!- wib_jonas has quit (Quit: Connection closed).
16:48:41 <esowiki> [[`]] https://esolangs.org/w/index.php?diff=67513&oldid=55716 * Dart * (+541) Cleaned up, added examples, deleted wrong tags.
17:00:53 <moony> `cat bin/?
17:00:54 <HackEso> cat: 'bin/?': No such file or directory
17:01:04 <moony> `which ?
17:01:05 <HackEso> ​/hackenv/bin/?
17:01:12 <moony> `cat /hackenv/bin/?
17:01:13 <HackEso> ​#!/bin/bash \ topic=$(echo "$@" | lowercase | sed "s/noo\+dl/nooodl/;s/ *$//") \ topic1=$(echo '`'"$topic" | sed 's/^`\(`\|$\)//') \ topic2=$(echo "$topic" | sed "s/s$//") \ cd $HACKENV/wisdom \ if [ \( "_$topic2"_ = "_ngevd"_ \) -a \( -e ngevd \) ]; \ then cat /dev/urandom; \ elif [ -e "$topic" ]; \ then cat "$topic"; \ elif [ -e "$topic1" ]; \ then cat "$topic1"; \ elif [ -e "$topic2" ]; \ then cat "$topic2"; \
17:01:45 <moony> ` mv /hackenv/wisdom/moon /hackenv/wisdom/moony
17:01:46 <HackEso> ​? Permission denied
17:01:53 <moony> `mv /hackenv/wisdom/moon /hackenv/wisdom/moony
17:01:54 <HackEso> mv: missing destination file operand after '/hackenv/wisdom/moon /hackenv/wisdom/moony' \ Try 'mv --help' for more information.
17:02:06 <moony> ``mv /hackenv/wisdom/moon /hackenv/wisdom/moony
17:02:09 <HackEso> ​`mv? No such file or directory
17:02:19 <moony> `` mv /hackenv/wisdom/moon /hackenv/wisdom/moony
17:02:22 <HackEso> No output.
17:02:26 <moony> `? moony
17:02:28 <HackEso> moon is often named the following: moonythedwarf moonythehuman moonheart08 moony moon__ noomy computing and luxon, making porthellos and @tells a real pain.
17:03:13 <moony> TODO: request rename on esolangs
17:04:57 -!- Lord_of_Life_ has joined.
17:06:17 -!- Lord_of_Life has quit (Ping timeout: 240 seconds).
17:07:48 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
17:15:28 -!- diverger has quit (Ping timeout: 268 seconds).
17:18:58 -!- ArthurStrong has quit (Quit: leaving).
17:19:49 -!- diverger has joined.
17:37:08 -!- kritixilithos has quit (Ping timeout: 260 seconds).
17:42:15 -!- kritixilithos has joined.
17:55:31 -!- LKoen has joined.
17:59:49 -!- LKoen has quit (Remote host closed the connection).
18:01:59 -!- LKoen has joined.
18:07:02 <imode> thunk-like segmented executables actually look really nice. wrote a little python to generate a sample executable.
18:14:32 -!- FreeFull has joined.
18:23:04 -!- b_jonas has joined.
18:44:58 -!- kritixilithos has quit (Quit: quit).
18:53:16 <esowiki> [[La We]] M https://esolangs.org/w/index.php?diff=67514&oldid=66628 * Pelirodri * (-12)
19:04:27 -!- LKoen has quit (Remote host closed the connection).
19:15:55 -!- LKoen has joined.
19:16:38 <arseniiv> imode: what does thunk-like segmented mean?
19:18:35 <int-e> ah my previous question about simulated annealing was stupid... there are no small steps in discrete problems.
19:19:07 <int-e> =8ball Do you like this?
19:19:08 <bfbot> Outlook not so good
19:19:20 <int-e> I seem to have a new friend.
19:23:16 -!- tromp has quit (Remote host closed the connection).
19:23:25 <kmc> "oh 8ball, what is the best email client?" "outlook not so good"
19:24:25 <b_jonas> `8ball what is the best email client?
19:24:26 <HackEso> Reply hazy try again.
19:24:38 <b_jonas> fungot, what is the best email client?
19:24:38 <fungot> b_jonas: drink a tea fnord i just have to add
19:25:50 <arseniiv> I agree yes you don’t need an email client
19:29:27 <int-e> So I'll stick to stupid hillclimbing from random starting points.
19:43:28 <kspalaiologos> =8ball bfbot show up
19:43:29 <bfbot> My sources say no.
19:43:35 <kspalaiologos> you little
19:48:55 <kspalaiologos> what is the worst mail client?
19:49:06 <kspalaiologos> =8ball what is the worst mail client?
19:49:06 <bfbot> Yes - definitely.
19:49:11 <kspalaiologos> =8ball what is the worst mail client?
19:49:12 <bfbot> Outlook not so good
19:49:20 <kspalaiologos> a ha!
19:49:27 <kspalaiologos> kmc, here you go
19:50:58 <imode> arseniiv: instead of having a binary executable with segments acting as a container for code, the container _itself_ is mode code, and each of the segments is code that generates values upon request.
19:52:13 <int-e> . o O ( Old hardware: use integer arithmetic for speed. Modern hardware: use floating point arithmetic for speed. )
19:52:35 <int-e> (tbf, the latter is probably only really true for vectorizable code.)
19:52:42 <arseniiv> imode: hmmm
19:53:32 <arseniiv> (maybe after seeing an example or two I’ll understand, but currently I don’t think I am)
19:53:59 -!- olsner has quit (Ping timeout: 250 seconds).
19:59:23 <int-e> . o O ( too von Neumann )
20:00:59 -!- tromp has joined.
20:06:20 -!- tromp has quit (Ping timeout: 276 seconds).
20:07:20 <int-e> imode: I /guess/ it can do things like generate good code for the actual platform the code is running on?
20:07:28 -!- olsner has joined.
20:10:16 <int-e> (trying to figure out why people would want to go down that route... generally things become messier when you replace well-defined data structures by something TC)
20:10:26 <kmc> `addquote <kspalaiologos> =8ball what is the worst mail client? <bfbot> Outlook not so good
20:10:28 <HackEso> 1330) <kspalaiologos> =8ball what is the worst mail client? <bfbot> Outlook not so good
20:38:03 -!- LKoen has quit (Remote host closed the connection).
20:44:00 -!- LKoen has joined.
20:51:51 -!- kspalaiologos has quit (Quit: Leaving).
20:52:22 <b_jonas> `dateu
20:52:22 <HackEso> 2019-11-28 20:52:22.564 +0000 UTC November 28 Thursday 2019-W48-4
21:00:26 <b_jonas> `dateu
21:00:28 <HackEso> 2019-11-28 21:00:27.573 +0000 UTC November 28 Thursday 2019-W48-4
21:03:22 <int-e> . o O ( `mkx ../bin/dateu//echo 'No way!' )
21:17:50 -!- arseniiv has quit (Ping timeout: 276 seconds).
21:20:37 <esowiki> [[Psychairefatback]] https://esolangs.org/w/index.php?diff=67515&oldid=67025 * Ashtons * (-2097)
21:28:35 <esowiki> [[Psychairefatback]] M https://esolangs.org/w/index.php?diff=67516&oldid=67515 * Ashtons * (+200)
21:58:32 <esowiki> [[Psychairefatback]] https://esolangs.org/w/index.php?diff=67517&oldid=67516 * Ashtons * (+160)
22:10:49 -!- tromp has joined.
2019-11-29
00:11:49 -!- tromp has quit (Remote host closed the connection).
00:16:52 -!- FreeFull has quit.
00:51:53 -!- tromp has joined.
00:53:00 -!- 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.”).
00:56:02 -!- tromp has quit (Ping timeout: 246 seconds).
02:01:01 -!- oerjan has joined.
02:23:59 <oerjan> i am not sure Dart interpreted ` correctly, but then i'm not sure there is a correct interpretation - the author is A under a previous alias.
02:24:58 <oerjan> it made no sense before, no it sort of makes sense
02:25:00 <oerjan> *now
02:47:35 <oerjan> `slwd moony//s,moony,moon,;s,moon,moony,
02:47:37 <HackEso> moony//moony is often named the following: moonthedwarf moonythehuman moonheart08 moony moon__ noomy computing and luxon, making porthellos and @tells a real pain.
02:47:46 <oerjan> oops
02:47:48 <oerjan> `revert
02:47:49 <HackEso> Done.
02:48:23 <oerjan> `slwd moony//s,moony ,moon ,;s,moon,moony,
02:48:25 <HackEso> moony//moony is often named the following: moonythedwarf moonythehuman moonheart08 moon moon__ noomy computing and luxon, making porthellos and @tells a real pain.
02:51:36 <oerjan> <moony> TODO: request rename on esolangs <-- not sure that's supported
02:51:55 <moony> awww
02:52:07 <moony> could just dump my account and make another
02:53:10 <fizzie> I think it might be.
02:53:54 <fizzie> Or at least I think I thought about it. There's a Renameuser extension, which we probably don't have installed at the moment, but I remember it came up.
02:54:36 <fizzie> Well, there's a Renameuser extension, and there's a UserMerge extension, I don't think we have either.
02:55:34 <fizzie> UserMerge is probably slightly more general, because you can decompose "rename A to B" into "create B, merge A into B", but not the other way around.
02:56:31 <oerjan> moony: your backlink from wikipedia should use https twh
02:58:34 <moony> it'a not?
02:58:38 <moony> whoops
02:58:41 <moony> will fix
02:59:35 <oerjan> also, you remain the only member of "Wikipedians who like empty categories".
02:59:44 <moony> I know
03:04:44 <oerjan> =8ball test
03:04:44 <bfbot> Outlook not so good
03:04:46 <oerjan> =8ball test
03:04:47 <bfbot> Outlook not so good
03:04:50 <oerjan> =8ball test
03:04:51 <bfbot> Outlook not so good
03:04:57 <oerjan> looks deterministic.
03:05:16 <oerjan> i conclude that kspalaiologos cheated even more than i thought to get the last quote
03:05:43 <oerjan> also, i am now capable of typing his name without rechecking *MWAHAHAHA*
03:14:29 -!- kingoffrance has joined.
03:48:02 <oerjan> erm, nick.
03:48:33 <oerjan> his wretched polish name is still beyond me. maybe the first part.
04:09:00 -!- xkapastel has joined.
04:45:52 <esowiki> [[LogOS]] https://esolangs.org/w/index.php?diff=67518&oldid=67486 * IFcoltransG * (+342) Added truth machine example program
04:45:57 <imode> =8ball test
04:45:58 <bfbot> Outlook not so good
04:50:38 <imode> =8ball tset
04:50:39 <bfbot> Outlook not so good
04:53:17 <esowiki> [[Truth-machine]] https://esolangs.org/w/index.php?diff=67519&oldid=67235 * IFcoltransG * (+339) /* Implementations */ Added logOS
04:55:04 <esowiki> [[LogOS]] M https://esolangs.org/w/index.php?diff=67520&oldid=67518 * IFcoltransG * (+12) Linked to the pages for each implemented program
04:57:00 <esowiki> [[LogOS]] M https://esolangs.org/w/index.php?diff=67521&oldid=67520 * IFcoltransG * (+25) Restructured page and headings
05:02:35 <esowiki> [[Hello world program in esoteric languages]] https://esolangs.org/w/index.php?diff=67522&oldid=67459 * IFcoltransG * (+82) Added logOS
05:04:49 -!- elliemae has joined.
05:05:38 -!- Lord_of_Life_ has joined.
05:05:43 -!- Lord_of_Life has quit (Ping timeout: 245 seconds).
05:06:59 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
05:17:18 <moony> =8ball foo
05:17:19 <bfbot> Concentrate and ask again.
05:19:41 <imode> =8ball foo
05:19:46 <imode> =8ball foo
05:19:47 <bfbot> Concentrate and ask again.
05:19:55 <imode> yeah determinism at its finest.
05:23:54 <oerjan> ^8ball is deterministic 8ball bad?
05:23:54 <fungot> Yes.
05:24:18 <oerjan> there you go.
05:47:57 <oerjan> they better hope trogulus doesn't have more nefarious intentions involving those people (alternative 1: to kill off the remaining dome survivors, alternative 2: they're secretly sea creatures like him)
06:10:41 <oerjan> hm are _both_ petey and the pa'anuri trying to trick the other into thinking they are stupid?
06:11:01 <oerjan> and is anyone succeeding?
06:11:39 <oerjan> and is this a proper way to use "both"?
06:36:16 -!- tromp has joined.
06:45:47 <esowiki> [[LogOS]] https://esolangs.org/w/index.php?diff=67523&oldid=67521 * IFcoltransG * (+285) Added etymology
06:48:14 -!- imode has quit (Ping timeout: 268 seconds).
07:03:02 -!- tromp has quit (Remote host closed the connection).
07:10:50 -!- ellie_ has joined.
07:13:27 -!- elliemae has quit (Ping timeout: 250 seconds).
07:17:13 -!- tromp has joined.
07:20:17 <esowiki> [[Special:Log/newusers]] create * Scoopta * New user account
07:26:17 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=67524&oldid=67503 * Scoopta * (+237) Introducing myself
07:26:34 <esowiki> [[Text]] https://esolangs.org/w/index.php?diff=67525&oldid=60949 * Scoopta * (+139) Added information about computers that use text as their native language
07:30:35 -!- ellie_ has quit (Quit: Leaving).
08:18:09 -!- b_jonas has quit (Remote host closed the connection).
08:46:58 <esowiki> [[List of ideas]] https://esolangs.org/w/index.php?diff=67526&oldid=65778 * IFcoltransG * (+46) /* Implementation */
09:00:29 -!- heroux has quit (Ping timeout: 276 seconds).
09:21:45 -!- heroux has joined.
09:33:11 <esowiki> [[Special:Log/newusers]] create * Arial * New user account
09:33:49 <esowiki> [[List of ideas]] https://esolangs.org/w/index.php?diff=67527&oldid=67526 * IFcoltransG * (+108) /* General Ideas */
09:37:42 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=67528&oldid=67524 * Arial * (+252) /* Introductions */
09:40:10 <esowiki> [[MagiStack]] https://esolangs.org/w/index.php?diff=67529&oldid=44698 * Arial * (+1) /* 99 bottles of beer */
09:42:16 <esowiki> [[User:Arial]] N https://esolangs.org/w/index.php?oldid=67530 * Arial * (+43) Created page with "Just a computer science student passing by~"
10:13:16 -!- oerjan has quit (Quit: Nite).
11:42:32 -!- ais523_ has joined.
11:42:52 <ais523_> int-e: modern CPUs have integer vector units in addition to floating-point vector units
11:43:06 <ais523_> I'd expect them to either be the same speed, or else the integer operations to be faster
11:45:05 <ais523_> moony: renaming accounts on MediaWiki installations requires extensions that Esolang doesn't have, so it's normally easier to just create a new account (although persuading fizzie to install an account-renaming extension is an interesting alternative)
11:51:07 <esowiki> [[`]] https://esolangs.org/w/index.php?diff=67531&oldid=67513 * Ais523 non-admin * (-33) this is a finite state automaton, because it has a bounded number of accessible cells and a bounded value for each cell
11:56:41 <esowiki> [[Talk:The Temporary Stack]] N https://esolangs.org/w/index.php?oldid=67532 * Ais523 non-admin * (+194) I don't think that's a real quine
11:56:50 <esowiki> [[Talk:The Temporary Stack]] M https://esolangs.org/w/index.php?diff=67533&oldid=67532 * Ais523 non-admin * (+30) timestamp
11:58:29 -!- ais523_ has quit (Remote host closed the connection).
12:10:28 <myname> what is a non-real quine?
12:29:27 -!- arseniiv has joined.
12:55:05 <int-e> myname: in this case, it's a non-quine.
12:59:52 <int-e> It may be an attempt at a cat program but it falls short even for that.
13:02:01 <myname> i agree
13:02:10 <myname> what is the v100 at the end even supposed to do
13:03:26 <myname> it just pushes a number of 100s onto the stack depending on the length of the user input?
13:06:02 <int-e> I don't know, maybe the idea was to squeeze everything currently on the stack?
13:06:24 -!- ArthurStrong has joined.
13:06:43 <int-e> But I don't really care either... the squeezing mechanic is cute, but there isn't much to actually work with in that language.
13:08:38 <int-e> fungot: are you squishy?
13:08:39 <fungot> int-e: why do laptops suck for webdev? they run vim as graphical, although it hints at the areas elsewhere, but cmcs might well offer the motivation to do it
13:13:45 -!- ArthurStrong has quit (Quit: leaving).
13:15:41 <myname> what do you mean by squeezing?
13:16:54 <int-e> squishing
13:43:52 <int-e> =8ball Is this my lucky day?
13:43:53 <bfbot> Signs point to yes.
14:20:52 -!- kritixilithos has joined.
14:51:46 <int-e> oerjan wins again
14:55:33 -!- ArthurStrong has joined.
15:01:53 <int-e> fungot: can you say "predicament"?
15:01:54 <fungot> int-e: ummm......what were we talking about on an irc channel because a) it's the first program to access the value 864000
15:05:59 -!- kspalaiologos has joined.
15:14:17 -!- Cale has quit (Remote host closed the connection).
15:15:46 -!- Cale has joined.
15:52:46 -!- imode has joined.
16:36:24 <int-e> `grwp accident
16:36:26 <HackEso> locale:Locales are just frames, which are just complete Heyting algebras. Taneb accidentally invented them by asking about lattices. The only locale available in #esoteric is en_NZ.UTF-8. \ poutine:Poutine was Pouti and boily's sister until the tragic cheese accident.
16:36:55 -!- int-e has left ("SURVIVING CHICKEN").
16:36:55 -!- int-e has joined.
16:37:40 -!- ArthurStrong has left.
17:05:15 -!- Lord_of_Life_ has joined.
17:07:52 -!- Lord_of_Life has quit (Ping timeout: 265 seconds).
17:08:06 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
17:26:11 -!- imode has quit (Ping timeout: 250 seconds).
17:28:11 -!- imode has joined.
17:31:36 -!- tromp has quit (Remote host closed the connection).
17:35:57 -!- b_jonas has joined.
17:37:07 <fizzie> `just
17:37:08 <HackEso> https://hack.esolangs.org/tmp/just
17:37:31 <fizzie> Just checking. (No pun intended.)
17:37:34 <arseniiv> . o O ( `learn Baba is you )
17:37:42 <arseniiv> I’ve seen just the other day
17:38:08 -!- tromp has joined.
17:38:13 <fizzie> Baba is just you.
17:38:56 <kspalaiologos> `just xor
17:38:57 <HackEso> https://hack.esolangs.org/tmp/just
17:39:05 <kspalaiologos> whats this
17:39:21 <fizzie> It just greps all the 'is just' / 'are just' factoids and give you the link.
17:39:22 -!- tromp has quit (Remote host closed the connection).
17:39:23 <fizzie> `cbt just
17:39:24 <HackEso> grwp '\(is\|are\) just' | sed -e 's/:/ ::= /;s/$/\n/' > $HACKENV/tmp/just && url $HACKENV/tmp/just
17:39:24 <bfbot> grwp '(is|are) just' | sed -e 's/:/ :No such command. Try =help.
17:40:22 <fizzie> `? locale
17:40:24 <HackEso> Locales are just frames, which are just complete Heyting algebras. Taneb accidentally invented them by asking about lattices. The only locale available in #esoteric is en_NZ.UTF-8.
17:40:25 <kspalaiologos> wait
17:40:26 <kspalaiologos> what
17:40:28 <kspalaiologos> bfbot
17:40:30 <fizzie> The part about en_NZ.UTF-8 is not strictly speaking true any more.
17:40:31 <kspalaiologos> what the heck
17:40:39 <kspalaiologos> `cbt jusrt
17:40:40 <HackEso> cat: /hackenv/bin/jusrt: No such file or directory
17:40:41 <kspalaiologos> `cbt just
17:40:41 <HackEso> grwp '\(is\|are\) just' | sed -e 's/:/ ::= /;s/$/\n/' > $HACKENV/tmp/just && url $HACKENV/tmp/just
17:40:41 <bfbot> grwp '(is|are) just' | sed -e 's/:/ :No such command. Try =help.
17:40:49 <kspalaiologos> how did that happen
17:40:51 <kspalaiologos> `echo xyz
17:40:52 <HackEso> xyz
17:41:01 <kspalaiologos> a = b
17:41:05 <fizzie> `locale -a
17:41:05 <kspalaiologos> ::=
17:41:05 <bfbot> No such command. Try =help.
17:41:06 <HackEso> C \ C.UTF-8 \ en_GB.utf8 \ en_NZ.utf8 \ en_US.utf8 \ POSIX
17:41:09 <kspalaiologos> umm what?
17:41:17 <kspalaiologos> =list ::=echo xd
17:41:18 <bfbot> :=list xd
17:41:28 <kspalaiologos> =echo dx ::=echo xd
17:41:29 <bfbot> :=echo dx xd
17:41:41 <kspalaiologos> what the heck
17:44:38 <int-e> arseniiv: hmm, more like Baba was you.
17:52:09 -!- tromp has joined.
18:03:46 -!- FreeFull has joined.
18:07:17 -!- LKoen has joined.
18:12:19 <moony> `which revert
18:12:20 <HackEso> No output.
18:13:09 -!- tromp has quit (Remote host closed the connection).
18:14:50 <int-e> `help revert
18:14:51 <HackEso> ​`revert <rev>" can be used to revert to a revision. See <https://hack.esolangs.org/repo/>. It is a builtin command so cannot be called from other commands.
18:21:32 <int-e> <3 "the physical world, whose significance pales in comparison to the Platonic world of mathematical objects"
18:23:44 -!- kritixilithos has quit (Quit: quit).
18:24:59 <arseniiv> int-e: I’m not done with that game yet :P
18:25:23 <int-e> But the hype is over. :P
18:25:28 <arseniiv> today I figured out the level with ghosts and skulls
18:25:48 <int-e> Also, I've already forgotten everything.
18:26:36 <arseniiv> int-e: the hype is transient, why should we take it into account?..
18:26:37 <int-e> I certainly don't recall individual levels :)
18:26:52 <int-e> arseniiv: because Time is Move.
18:26:56 <arseniiv> int-e: good, then you can play it once again!
18:27:17 <int-e> Nah, too many other things to play.
18:27:33 <arseniiv> like Noita? ;)
18:27:58 <int-e> Currently, Broken Sword 2.
18:28:16 <arseniiv> okay I’ll play BiY one level a week and will tease you each time about inconsequential things :P
18:28:20 <int-e> I'm not into roguelikes at all.
18:28:36 <int-e> arseniiv: You can do the latter without doing the former.
18:28:45 <int-e> fungot: Are you of any consequence?
18:28:45 <fungot> int-e: with my computer, brb later
18:28:57 <arseniiv> I think I’m too, I tried Nethack and, well, I tried it and not much more afterwards
18:30:38 <b_jonas> arseniiv: ghosts and skulls? you have to kill Phantoon and they disappear.
18:30:42 <int-e> Uhm, did I just mix up Broken Sword and Gabriel Knight... they're not even remotely the same beyond being click&point adventures in a modern time fantasy setting.
18:31:46 <arseniiv> b_jonas: which one this is from? :)
18:31:52 <int-e> Anyway... it's just what I'm currently playing (GK2), not a recommendation (there are better click&point adventures around).
18:32:34 <b_jonas> arseniiv: SNES Super Metroid
18:35:19 <arseniiv> ah
18:35:22 <esowiki> [[Special:Log/newusers]] create * Lorlouis * New user account
18:35:34 <arseniiv> arseniiv: heard about that but not played ever
18:36:18 <arseniiv> more accurately, heard “Metroid” somewhere and that’s all
18:37:25 <b_jonas> arseniiv: it's a very good game
18:37:30 <b_jonas> best of the Metroid series
18:39:07 <arseniiv> b_jonas: mm maybe I’ll give it a look in an emulator!
18:39:36 <esowiki> [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=67534&oldid=67528 * Lorlouis * (+177) /* Introductions */
18:40:04 <esowiki> [[B sharp]] M https://esolangs.org/w/index.php?diff=67535&oldid=67092 * Lorlouis * (+1) /* Introduction */
18:42:21 <imode> metroid prime is also a great member of the series.
18:42:30 <imode> still my favorite.
18:45:34 -!- tromp has joined.
18:57:50 -!- MDude has quit (Quit: Going offline, see ya! (www.adiirc.com)).
19:18:51 <imode> constructing an infix or a postfix parser using processes might be an interesting task.
19:23:11 -!- arseniiv has quit (Ping timeout: 276 seconds).
19:33:54 -!- MDude has joined.
20:00:26 <b_jonas> =echo a\déx.
20:00:27 <bfbot> ad..x.
20:00:40 <b_jonas> :(
20:15:31 <imode> I'm looking for a turing complete two-instruction-set computer that isn't a turning tarpit and doesn't operate on RAM.
20:24:10 <esowiki> [[Special:Log/newusers]] create * RGSW * New user account
20:31:45 <b_jonas> imode: I think that's impossible. Non-tarpit implies that it offers you a nice variety of useful instructions, so you need at least six different instructions.
20:33:20 <imode> turning tarpit, not turing tarpit.
20:33:29 <imode> totally okay with a turing tarpit, that's kind of the point.
20:33:42 <b_jonas> I don't know what a turning tarpit is then
20:34:03 <imode> https://esolangs.org/wiki/Turning_tarpit
20:34:36 <imode> you have a wheel of instructions, and your commands are "move to next instruction on the wheel" or "execute the currently selected instruction on the wheel".
20:34:42 <imode> or some variant thereof.
20:36:28 <b_jonas> imode: in that case, combinator calculus with SK base, aka unlambda with only the s and k builtins
20:36:43 <b_jonas> or lambda calculus, where the two instructions are lambda and function call
20:39:16 <b_jonas> imode: or a Turing-machine with one tape and two tape symbols, where the two instructions are (0) move left, (1) flip the symbol under the head then move right
20:39:51 <imode> how is that TC?
20:39:56 <b_jonas> there's a brainfuck variant like that, iirc invented by the bbc norvegian village, but a turing machine works better
20:40:10 <imode> I wanna see that BF variant.
20:40:27 <b_jonas> imode: if you want to keep the symbol unchanged and move right, you can move right then left then right again
20:40:43 <b_jonas> imode: and if you want to flip the symbol and move left, you can move right, then move left twice
20:40:58 <b_jonas> so you can translate to this from an ordinary one tape two symbol turing machine
20:41:07 <b_jonas> by replacing some of the instructions by a sequence of two or three instructions
20:41:30 <imode> yeah, I get that. I was thinking you had a minimal TM that you could chain together to form something that could simulate another TM or something.
20:41:39 <imode> what's that BF variant you mentioned, out of curiosity?
20:43:30 <b_jonas> dunno, look at https://esolangs.org/wiki/BF_instruction_minimalization or something. or maybe P'' already does this
20:43:39 <b_jonas> I think this combination was discovered independently by multiple people
20:43:45 <imode> two instructions?
20:44:01 <b_jonas> no, for brainfuck it's more instructions because you count the control flow instructions [ and ] too
20:44:04 <b_jonas> so that would be four
20:44:11 <b_jonas> but for a TM, you could the control flow as not instructions
20:44:19 <imode> mm, true.
20:44:35 <b_jonas> yeah, P'' already has such a combined move and write
20:44:41 <b_jonas> https://esolangs.org/wiki/P%27%27
20:44:45 -!- zzo38 has joined.
20:44:48 <b_jonas> then it was not invented by the bbc
20:44:56 <imode> the reason I
20:45:09 <imode> I'm asking is because my language is TC with only 4 instructions.
20:45:19 <imode> but I'm wondering if I can reduce that into two somehow.. don't see a possible way.
20:46:40 <esowiki> [[User talk:Zzo38]] https://esolangs.org/w/index.php?diff=67536&oldid=67510 * Zzo38 * (+217)
20:48:39 <kmc> what are the instructions?
20:49:21 <imode> []01
20:49:40 <imode> [ is "dequeue a symbol. if it's a 0, jump to matching ]. otherwise, go to next instruction."
20:49:40 <j-bot> imode: |open quote
20:49:40 <j-bot> imode: | is "dequeue a symbol. if it's a 0, jump to matching ]. otherwise, go to next instruction."
20:49:40 <j-bot> imode: | ^
20:49:45 <imode> oof.
20:49:48 <imode> sorry.
20:50:14 <imode> ] is "jump to matching [". 0 and 1 enqueue a 0 and a 1 respectively. so there's no movement instructions.
20:51:50 <kmc> lol j-bot
20:53:16 -!- kspalaiologos has quit (Quit: Leaving).
21:01:05 <esowiki> [[User:PythonshellDebugwindow]] https://esolangs.org/w/index.php?diff=67537&oldid=67380 * PythonshellDebugwindow * (+12)
21:07:29 -!- Frater_EST has joined.
21:07:45 -!- Frater_EST has left.
21:12:32 -!- ais523 has joined.
21:12:48 <ais523> <imode> I'm looking for a turing complete two-instruction-set computer that isn't a turning tarpit and doesn't operate on RAM. ← minimized https://esolangs.org/wiki/Brainpocalypse
21:13:28 <imode> ooo.
21:13:32 <imode> thanks!
21:13:50 <ais523> it uses a finite circular tape of bignums, and two commands: - decrements the current tape element or restarts the program if it's 0; } moves to the next tape element then increments it
21:17:35 <b_jonas> imode: you can also have a pointer machine with just two instructions. take a fixed number of registers, say 32 of them, one of them is initialized to the empty list at the start of the program. one instruction takes three register operands creates a new cons cell from two of them and puts it into the third. another instruction unconses a register, has three register operands and a jump target, if the
21:17:41 <b_jonas> input operand is an empty list it jumps to the target, otherwise it puts the car and crd of that input to the two output registers.
21:18:43 -!- xkapastel has quit (Quit: Connection closed for inactivity).
21:19:18 <ais523> (by "restarts the program" I mean "goto the first instruction", you don't reset memory or the tape pointer)
21:20:04 <b_jonas> Karn disagrees with that
21:21:28 <ais523> b_jonas: I assumed the instructions couldn't take arguments
21:21:37 <ais523> otherwise it's trivial, e.g. https://esolangs.org/wiki/Tip does it with only one instruction
21:24:12 <ais523> b_jonas: this reminds me: I will be unemployed for 1 day on Sunday; do you have any specific requests for changes to ayacc while I have the chance to work on it?
21:24:35 <b_jonas> ais523: release it with the license to distribute it clarified
21:24:59 <b_jonas> I'd prefer a license that allows anyone to distribute modified versions
21:25:54 <zzo38> Move left or flip and move right is P'', I think.
21:26:03 <b_jonas> zzo38: yes
21:26:17 <b_jonas> I eventually figured it out
21:26:21 <b_jonas> took me too much time
21:26:32 <ais523> b_jonas: it's GPLv3, and has been for ages
21:26:41 <ais523> are you confusing it with something else?
21:26:44 <b_jonas> ais523: in that case I don't have any request about ayacc
21:27:36 <zzo38> What are differences ayacc with yacc?
21:28:05 <b_jonas> indeed, it has a header command saying GPLv3 now
21:28:30 -!- Frater_EST has joined.
21:29:00 <b_jonas> zzo38: the output it writes is a more readable C program than the one that traditional table-based programs provide; it has a somewhat saner alternate api for how it integrates to a C program;
21:29:28 <b_jonas> it allows for multiple backends so it can output programs in a language other than C or with a different api (eg. stackless), you can add your own;
21:29:51 <b_jonas> it provides better error messages in case of a shift-reduce or reduce-reduce conflict in the language
21:30:02 <b_jonas> (sometimes at least, it depends on the language)
21:30:10 <b_jonas> and... there was something more but I forgot
21:31:10 -!- Frater_EST has left.
21:32:09 <b_jonas> zzo38: see its documentation for details
21:32:16 <b_jonas> `? ayacc
21:32:17 <HackEso> ayacc is ais523's yacc parser generator implementation, get it from darcs clone http://nethack4.org/projects/ayacc
21:37:13 <b_jonas> ais523: so do you want to tell us what new job you're going to get?
21:37:21 <zzo38> OK I will look
21:38:03 <zzo38> I don't have darcs, is there another way?
21:38:53 <b_jonas> I don't know
21:39:23 <b_jonas> (other than installing darcs, obviously)
21:46:24 <b_jonas> I have the common free software version control clients installed on my machine because people sometimes distribute files through version control repositories. So I have cvs, svn, git, bzr, hg, darcs, fossil.
21:57:11 -!- LKoen has quit (Remote host closed the connection).
22:04:17 -!- LKoen has joined.
22:12:43 -!- 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.”).
22:16:14 -!- ais523 has quit (Ping timeout: 265 seconds).
22:16:45 -!- ais523 has joined.
22:17:12 <b_jonas> fizzie, ais523: do you mind when I add to the wiki articles about programming languages that are unusual and interesting and definitely not notable for Wikipedia, but technically not esoteric because the author used them for something constructive? https://esolangs.org/wiki/SIMPLE_(preprocessor) is such an article for example.
22:18:15 <b_jonas> https://esolangs.org/wiki/MIX is even worse of course, for it's definitely not esoteric and it's notable enough for Wikipedia
22:18:25 <b_jonas> argh, wrong link
22:18:29 <b_jonas> https://esolangs.org/wiki/MIX_(Knuth)
22:18:30 <moony> ^^^ Same question from me
22:18:31 <ais523> a language intentionally named after a lesser-known programming language almost certainly counts
22:18:43 <ais523> that's some sort of "intention" to make a language esoteric
22:18:54 <ais523> in general, though, this is an apparently major debate that I've always been wary of wading into
22:19:18 <b_jonas> yeah, I wouldn't be surprised if you didn't want to give an answer to this, because other people may consider it an official position
22:19:46 <b_jonas> and just keep the policy that such articles shouldn't be there but fail to enforce it when the language and article is interesting enough
22:20:30 <b_jonas> I was also considering http://www.vttoth.com/CMS/index.php/projects/49 but I decided it wasn't esoteric enough
22:20:49 <APic> What is the Definition of „esoteric“?
22:20:55 <b_jonas> `? esoteric
22:20:57 <HackEso> This channel is about programming -- for the other kind of esoterica, try #esoteric on EFnet or DALnet.
22:20:58 <b_jonas> `?? esoteric
22:20:59 <HackEso> I must confess, I know not of what you are speaking.
22:21:00 <b_jonas> `?? esolang
22:21:01 <HackEso> Esoteric languages. Usually refers to programming languages designed to be unique, difficult to program in, or just plain weird. See https://esolangs.org for more.
22:21:07 <b_jonas> no, not that either
22:21:09 <APic> lol
22:21:14 <b_jonas> https://esolangs.org/wiki/Esoteric_programming_language
22:21:24 <APic> It would rock if the Definition of „esoteric“ was esoteric.
22:21:26 <b_jonas> that isn't a good description either
22:21:44 <b_jonas> anyway, it's esoteric if it's designed without the intention that anyone will use it for any productive purpose
22:22:17 <b_jonas> which would make MIX and Olvasható and SIMPLE non-esoteric
22:22:23 <zzo38> Yes, although MIX (Knuth) may still be notable enough for esolang wiki as well as Wikipedia, so is MMIX. I think if it is unusual and interesting in some ways and is not the stuff which is the commonly using programming language, it might be put in, either an article by itself or a short note on a user page. (Actually even VAX can have many mentions on a user page; see [[User:Ian/Computer_architectures]]; there is interest to have some details of it
22:22:26 <APic> Ok
22:22:32 <ais523> fwiw, one of the reasons I haven't taken a strong stand on which languages are esoteric is that I have trouble defining it myself
22:22:45 <APic> Good
22:22:47 <ais523> it's quite easy to intentionally create languages close to the boundary line, and then do so again if people move it
22:22:57 <APic> *nod*
22:23:10 <fizzie> My position can't be construed as official because I have pretty little to do with the wiki content, but I don't mind a relatively relaxed definition of esolang.
22:23:18 <kmc> i know it when i see it
22:23:33 <b_jonas> oh, that reminds me, this one is definitely esoteric so I'll add a TODO
22:23:36 <kmc> there are accidental esoteric languages of course
22:23:39 <zzo38> Yes, intentionally creating languages close to the boundary line can be done.
22:23:43 <esowiki> [[User:B jonas]] https://esolangs.org/w/index.php?diff=67538&oldid=67386 * B jonas * (+11) /* Todo */
22:23:49 <kmc> like C++ templates or ROP gadget sets or other weird machines
22:23:50 <ais523> I think there are some esolangs with intent for people to use them like normal languages (e.g. Funge-98), and some languages that are probably esoteric but are useful in practice (e.g. Retina)
22:23:59 <kmc> exploit programming is pretty similar to esoprogramming
22:24:09 <zzo38> I think "I know it when I see it" is not a good policy for administrations.
22:24:16 <kmc> true
22:24:18 <ais523> there have been cases where I've wanted to write programs and an esolang (or wimpmode version of it) has been the best choice to write them in
22:24:24 <b_jonas> ais523: yeah, Mouse was also definitely intended to be useful
22:24:35 <kmc> but is removing things from the wiki particularly important?
22:24:42 <zzo38> Byt, yes, there is stuff like ROP, exploit programming, C++ templates, and other stuff like that.
22:24:44 <fizzie> fungot: Are you proving Funge-98 a non-esoteric language by being useful?
22:24:44 <fungot> fizzie: did i have emacs which is basically... l(x) 1 x*l(x) fnord x)
22:24:48 <b_jonas> ais523: can you give an example for that?
22:24:53 <ais523> kmc: I think exploit programming is an example of a "found language", those tend to be similar to esolangs but with the difference that they aren't being actively designed by a human
22:24:54 <fizzie> I don't think that's Emacs.
22:24:59 <kmc> ais523: yeah
22:25:05 <kmc> what I called 'accidental esoteric languages' above
22:25:09 <kmc> C++ templates are somewhere in the middle
22:25:12 <b_jonas> fizzie: no no
22:25:21 <kmc> TMP was first discovered and then augmented
22:25:27 <b_jonas> fizzie: just because it's useful doesn't make it non-esoteric, as long as it was originally not intended as useful
22:25:31 <ais523> b_jonas: the test driver for the CGCC polyglot is partially written in A Pear Tree (which was more convenient than Perl because I needed the repr builtin)
22:25:41 <kmc> I put Qoppa on the wiki. I designed it to demonstrate an interesting concept, and as a sort of tarpit version of scheme, and because it tickles my happy place
22:25:47 <zzo38> I think stuff should not be removed from the wiki unless it is a waste of disk space or if it is clearly just "lakjselk jaslg" and not any proper writing that is meaningful in any possible kind of way.
22:25:47 <kmc> it wasn't particularly designed to be difficult to program in
22:26:03 <ais523> and I wrote the original Forte interpreter in a wimpmode version of Thutu, because it seemed like the easiest language to use
22:26:05 <kmc> but it has an evaluation model very different from almost all extant languages
22:26:05 <fizzie> Funge-98 has the smell of being designed to be basically "Befunge, but useful".
22:26:11 <kmc> lol
22:26:20 <zzo38> (well, maybe there are a few other possibilities, too)
22:26:25 <kmc> zzo38: the spam pages should be made into real languages
22:26:33 <ais523> likewise, there's at least one language that I implemented in Jelly, although competition languages are a little different from esolangs
22:26:34 <moony> my opinion is this: Languages everyone uses, like Rust, C++, Java, etc, and are explictly designed for everyone to use, do not belong on esolangs
22:26:43 <kmc> like RFNHS3SDD
22:26:56 <zzo38> kmc: Yes, if you are able to do so.
22:27:04 <b_jonas> ais523: yeah, and I suspect that blsq was used usefully as well
22:27:17 <ais523> (in that they're designed for accomplashing a specific purpose, but are optimized for very different goals than normal languages are)
22:27:33 <ais523> *accomplishing
22:27:34 <zzo38> moony: I think that is (mostly) reasonable.
22:28:06 <moony> zzo38: note i make an exception for languages intended for everyone to use, but not ment to be used in this universe
22:28:12 <moony> because why not
22:28:14 <b_jonas> ais523: competition languages like the ones for ICFP?
22:28:26 <ais523> b_jonas: no, languages designed for winning competitions
22:28:39 <moony> like Jelly is ment for winning codegolf competitions
22:28:42 <ais523> mostly golfing languages, although in theory they aren't the only examples of the genre
22:28:45 <zzo38> moony: OK, although I do not quite understand how that is.
22:28:47 <b_jonas> I see
22:28:51 <APic> „Every Input is a Program“
22:29:32 <ais523> the ideal competition language has a huge number of builtins and a lot of ability to cope with incompletely specified programs
22:29:57 <kmc> the ICFP langs are very interesting too
22:30:00 <kmc> I think they would count as eso-
22:30:05 <ais523> if you're trying to come up with a working program as quickly as possible, for example, you want to be able to just translate the problem you're given into a working version of it
22:30:07 <moony> zzo38: i.e. languages ment to be used in fictional universes, like a programming language that was made for use in a sci-fi book
22:30:20 <zzo38> moony: O, OK.
22:30:24 <APic> Ook!
22:30:32 <b_jonas> ais523: how about when someone asks a homework programming question on a forum, and I write an obfuscated program as a solution with the hope that they'll submit it for the homework, and that program involves an interpreter of a new domain-specific language? is that language esoteric then?
22:31:10 <moony> b_jonas: is anyone else going to use the DSL? No? Then I think it counts for esolangs.
22:31:12 <ais523> b_jonas: I'm not sure whether domain-specific languages are automatically esoteric
22:31:27 <b_jonas> ais523: it's not the domain-specific part that's relevant here
22:31:38 <b_jonas> it could be a general purpose but small language
22:31:39 <zzo38> I think sometimes you will not know for now if anyone else is going to use the DSL
22:31:44 <ais523> I think being a DSL is relevant here
22:31:53 <b_jonas> possibly a write-only one that requires an assembler to use
22:31:53 <ais523> because those are a language category of their own
22:31:59 <moony> DSLs are icky territory
22:32:02 <ais523> is C-INTERCAL's internal DSL OIL an esolang, for example?
22:32:04 <b_jonas> and I don't publish the assembler
22:32:06 <moony> because they can easily fall under my rules
22:32:29 <ais523> something like https://esolangs.org/wiki/Help,_WarDoq! is definitely both a DSL and an esolang, just because the domain in question is so ridiculous
22:32:59 <b_jonas> oh, you can certainly have a domain-specific esolang in general
22:33:30 <b_jonas> the ICFP ant brain is one such language,
22:33:58 <ais523> the issue is, I can imagine a language that's very similar to Help, WarDoq but invented for a much more practical purpose
22:34:04 <kmc> I thought of making a esolang that's a DSP DSL
22:34:28 <ais523> for example, there's a very simple programming language used as an on-the-wire format for telling electronic traffic signs what sign they should be showing
22:34:30 <kmc> some strange eso way of defining signal processing pipelines
22:34:33 <kmc> for audio and RF applications
22:34:33 <ais523> which is basically the same thing
22:34:45 <kmc> i thought of it being sort of concatenative
22:34:47 <ais523> but I'm not sure that's even definable as a language, let alone an esolang
22:34:56 <kmc> so you'd have a stack of things which are signals or matrices or filters or whatever
22:34:57 <zzo38> kmc: Yes lets see please
22:35:00 <kmc> and you can apply them
22:35:03 <ais523> idea: something that is definitely esoteric but only questionably a programming language
22:35:10 <ais523> (esoteric in the programming sense, that is)
22:35:28 <kmc> but instead of a normal step by step execution model it compiles into a streaming, possibly real-time process
22:35:39 <zzo38> I think once I did make a stack-based programming language for defining .XI instruments
22:35:41 <b_jonas> ais523: there are a lot of esoteric/obfuscated programs that are clearly not languages
22:35:45 <ais523> the only DSP I've ever used was entirely imperative
22:35:53 <ais523> b_jonas: oh right, one-off programs
22:36:09 <ais523> like the 99 bottles of beer program in Malbolge
22:36:13 <kmc> primitive types would be complex numbers, matrices, and timeseries data
22:36:27 <ais523> how do you make something like that /ambiguously/ a language, though?
22:36:28 <zzo38> (The data types are numbers, strings, audio samples (with an optional loop point), and functions (which can be built from other functions, too).)
22:36:30 <kmc> an example program would be something like a FM broadcast radio decoder
22:36:49 <kmc> it's easy to get I/Q samples from a RTL-SDR
22:37:11 <kmc> and dump PCM data to a sound card
22:37:17 <kmc> so the hardware aspect would be relatively accessible
22:37:18 <ais523> fwiw, it would be nice to document more found languages on the wiki
22:37:32 <b_jonas> ais523: how about a one-off program that has an interpreter in it for compression, but the interpreter is very specialized (DSL) that it's unclear if it's even an interpreter or just a nice table or compression format?
22:37:33 <zzo38> Yes, I would like to see how to do with that radio decoding and that stuff
22:37:45 <ais523> things like the x86 (or was it x86_64) MMU, which is a bounded-storage machine
22:38:10 <ais523> b_jonas: hmm, now you're reminding me of quines
22:38:20 <zzo38> b_jonas: If it is Turing-complete (even if not intended to be) then it might be notable.
22:38:31 <b_jonas> oh yeah
22:38:41 <b_jonas> ais523: how about OTTD signals?
22:38:42 <ais523> a quine is a description of itself, but because it can't be a literal quote of itself (assuming it isn't a literal-only quine) it needs to define some shorthand for describing itself
22:38:50 <ais523> b_jonas: OTTD?
22:39:02 <b_jonas> open transport tycoon deluxe, the game with railway tracks
22:39:24 <b_jonas> the signals (traffic signals to direct trains on railways) became quite capable and can evaluate boolean expressions
22:39:35 <kingoffrance> quine sounds like munchausen number
22:39:44 <b_jonas> http://wiki.openttd.org/Main_Page
22:39:56 <ais523> oh, that normally gets abbreviated to OpenTTD
22:40:02 <b_jonas> yeah
22:40:03 <ais523> I just didn't recognise the abbreviation you were using
22:40:45 <b_jonas> then there's the unpack template language in perl, which happens to be way more powerful thank it should be https://www.perlmonks.com/?node_id=1008395
22:41:00 <b_jonas> not turing-complete alone, but quite powerful
22:41:19 <ais523> let me guess, you overwrite the format string while it's being decoded using some sort of pointer unpack?
22:42:03 <b_jonas> no
22:42:21 <ais523> aww
22:42:23 <b_jonas> I don't think unpack can do that easily, it can only read from pointers, not write to it
22:42:24 <ais523> although that might /actually/ be TC
22:42:33 <ais523> (printf is TC for this reason)
22:42:38 <b_jonas> yeah, C printf
22:42:48 <ais523> although the arguments you have to give it are insanely undefined behaviour
22:43:50 <fizzie> Something I learned the other day: the 'l' and 'll' length modifiers are also applicable to %n, to convert the required argument from `int *` to `long *` or `long long *` respectively.
22:44:17 <fizzie> Someone over on ##c was complaining because their implementation's printf was unable to write more than INT_MAX characters of output.
22:44:49 <ais523> that could in theory be a problem that comes up in a sane program
22:44:56 <kmc> did you know that the XC8 compiler for PIC supports a "short long int" type?
22:45:17 <fizzie> glibc stops processing the format string and returns -1 with errno set to EOVERFLOW when the output exceeds INT_MAX.
22:45:23 <imode> kmc: wtf is short long?
22:45:23 <b_jonas> fun, https://codegolf.stackexchange.com/a/112163 is still the only perl answer to the game of life interpreter question, even though it wouldn't be hard to write a more straightforward golfier implementation
22:45:34 <kmc> imode: it's shorter than a long but longer than a short.
22:45:36 <ais523> files bigger than 2GB aren't ridiculous, and using a printf("…%s…") to output them wrapped in a header and footer is mildly ridiculous but not indefensible
22:45:39 <kmc> 24 bits
22:45:39 <imode> kmc: that is awesome.
22:45:43 <kmc> yeah
22:45:43 <fizzie> I think I remember a "short long" from somewhere.
22:45:49 <kmc> and actually useful on embedded
22:45:55 <fizzie> ais523: Yeah, the program in question was unreasonable, though.
22:46:07 <kmc> I wonder if avr-gcc has anything comparable
22:46:14 <ais523> I'd expect long short to be shorter than int, and short long to be longer
22:46:22 <b_jonas> ais523: yes, but these days, every C compiller has a long long type that's at least 64 bit long, and intmax_t must be at least that long
22:46:35 <ais523> fwiw, Algol 68 lets you write arbitrarily many long or short, but not to mix them
22:46:45 <kmc> seems it does have it, as __uint24
22:46:51 <ais523> (there's the equivalent of a preprocessor definition you can consult to discover how many repeats will actually do something useful)
22:47:20 <ais523> but any algol 68 impl should support long long long long long, even if it's just equivalent to long long
22:47:21 <b_jonas> ais523: the old borland C compiler that targets 16-bit x86_32 lets you write any number of long, and interprets it as just long. it's a nice way to get programs silently break if they try to use long long.
22:47:41 <kmc> `` echo 'long long long x;' | gcc -c -x c /dev/stdin
22:47:42 <HackEso> ​/dev/stdin:1:11: error: ‘long long long’ is too long for GCC
22:47:45 <b_jonas> and it implies that choosing "long long" as the name of that type was a bad idea, but it's too late to undo that now
22:48:08 <ais523> `` echo 'long short x;' | gcc -c -x c /dev/stdin
22:48:10 <HackEso> ​/dev/stdin:1:6: error: both ‘long’ and ‘short’ in declaration specifiers
22:48:21 <ais523> `` echo 'short short x;' | gcc -c -x c /dev/stdin
22:48:22 <HackEso> ​/dev/stdin:1:7: error: duplicate ‘short’
22:48:44 <ais523> hmm, IMO the error messages should have had consistent levels of humour
22:48:59 <kmc> `` gcc -c -x c <(echo 'long long long x;') # seems like a nicer way actually
22:49:00 <HackEso> ​/dev/fd/63:1:11: error: ‘long long long’ is too long for GCC
22:49:11 <ais523> `! c long long long x;
22:49:12 <HackEso> Does not compile.
22:49:16 <kmc> I keep forgetting about <(...). it's pretty great
22:49:36 <fizzie> `cc long long long x;
22:49:37 <HackEso> ​<stdin>:1:11: error: ‘long long long’ is too long for GCC \ compilation terminated due to -Wfatal-errors.
22:49:41 <fizzie> `cbt cc
22:49:42 <HackEso> ​#!/bin/sh \ echo "$@" | sed 's/\\/\n/g' | gcc -w -Wfatal-errors -std=c11 -O2 -x c - -o /tmp/a.out && /tmp/a.out
22:49:43 <b_jonas> ``` gcc -Wall -O -o /hackenv/tmp/a.out -x c <<<$'int main(void) { signed unsigned x = {0}; return 0; }'
22:49:44 <HackEso> gcc: warning: '-x c' after last input file has no effect \ gcc: fatal error: no input files \ compilation terminated.
22:49:51 <b_jonas> ``` gcc -Wall -O -o /hackenv/tmp/a.out -x c - <<<$'int main(void) { signed unsigned x = {0}; return 0; }'
22:49:52 <HackEso> ​<stdin>: In function 'main': \ <stdin>:1:25: error: both 'signed' and 'unsigned' in declaration specifiers \ <stdin>:1:34: warning: unused variable 'x' [-Wunused-variable]
22:49:58 <ais523> `` gcc -c -x c <<<'long long long x;'
22:49:58 <HackEso> gcc: warning: ‘-x c’ after last input file has no effect \ gcc: fatal error: no input files \ compilation terminated.
22:50:02 <kmc> what's <<<$
22:50:12 <b_jonas> how did gcc's color output disappear by the way?
22:50:13 <ais523> `` gcc -c -x c /dev/stdin <<<'long long long x;'
22:50:16 <b_jonas> ``` type -a gcc
22:50:17 <HackEso> ​/dev/stdin:1:11: error: ‘long long long’ is too long for GCC \ long long long x; \ ^~~~
22:50:19 <HackEso> gcc is /usr/bin/gcc
22:50:28 <b_jonas> hmm
22:50:32 <ais523> kmc: <<< pipes a literal into standard input
22:50:40 <b_jonas> ``` gcc -Wall -O -o /hackenv/tmp/a.out -x c - <<<$'int main(void) { short char x = {0}; long char y = {0}; return 0; }'
22:50:41 <HackEso> ​<stdin>: In function 'main': \ <stdin>:1:24: error: both 'short' and 'char' in declaration specifiers \ <stdin>:1:43: error: both 'long' and 'char' in declaration specifiers \ <stdin>:1:48: warning: unused variable 'y' [-Wunused-variable] \ <stdin>:1:29: warning: unused variable 'x' [-Wunused-variable]
22:51:01 <b_jonas> ``` gcc -Wall -O -o /hackenv/tmp/a.out -x c - <<<$'int main(void) { short float [[unused]] x = {0}; return 0; }'
22:51:03 <HackEso> ​<stdin>: In function 'main': \ <stdin>:1:24: error: both 'short' and 'float' in declaration specifiers \ <stdin>:1:30: error: expected identifier or '(' before '[' token
22:51:15 <b_jonas> ``` gcc -Wall -std=c11 -O -o /hackenv/tmp/a.out -x c - <<<$'int main(void) { short float [[unused]] x = {0}; return 0; }'
22:51:16 <HackEso> ​<stdin>: In function 'main': \ <stdin>:1:24: error: both 'short' and 'float' in declaration specifiers \ <stdin>:1:30: error: expected identifier or '(' before '[' token
22:51:19 <ais523> I think $'' is some sort of escaped string
22:51:27 <kmc> `` gcc -c -x c <(echo 'short void x;;')
22:51:27 <b_jonas> what? why doesn't it allow an attribute there?
22:51:28 <HackEso> ​/dev/fd/63:1:7: error: both ‘short’ and ‘void’ in declaration specifiers
22:51:42 <b_jonas> ais523: yes, allows backslash escapes. useful because C needs newlines sometimes.
22:51:42 <kmc> b_jonas: does C11 support that attribute syntax?
22:51:49 <b_jonas> kmc: I think so
22:52:02 <ais523> I think it's a C++ism
22:52:05 <b_jonas> let me check
22:52:05 <fizzie> No, [[unused]] is C18.
22:52:18 <ais523> there's a C18?
22:52:29 <fizzie> Yes, there's a C18.
22:52:35 <b_jonas> ``` gcc -Wall -std=c18 -O -o /hackenv/tmp/a.out -x c - <<<$'int main(void) { short float [[unused]] x = {0}; return 0; }'
22:52:35 <HackEso> ​<stdin>: In function 'main': \ <stdin>:1:24: error: both 'short' and 'float' in declaration specifiers \ <stdin>:1:30: error: expected identifier or '(' before '[' token
22:52:47 <fizzie> Was it even C18, or was it just in the latest C2x draft?
22:52:49 <ais523> is this a major release like C11 was? or is it more of a C92 (or was it C94?) type of thing?
22:52:50 <b_jonas> ``` gcc -Wall -std=c18 -O -o /hackenv/tmp/a.out -x c - <<<$'int main(void) { [[unused]] short float x = {0}; return 0; }'
22:52:51 <HackEso> ​<stdin>: In function 'main': \ <stdin>:1:18: error: expected expression before '[' token \ <stdin>:1:20: error: 'unused' undeclared (first use in this function) \ <stdin>:1:20: note: each undeclared identifier is reported only once for each function it appears in
22:53:05 <b_jonas> ``` gcc -Wall -std=c18 -O -o /hackenv/tmp/a.out -x c - <<<$'int main(void) { short float x [[unused]] = {0}; return 0; }'
22:53:05 <HackEso> ​<stdin>: In function 'main': \ <stdin>:1:24: error: both 'short' and 'float' in declaration specifiers \ <stdin>:1:33: error: expected expression before '[' token \ <stdin>:1:34: error: 'unused' undeclared (first use in this function) \ <stdin>:1:34: note: each undeclared identifier is reported only once for each function it appears in \ <stdin>:1:30: warning: unused variable 'x' [-Wunused-variable]
22:53:13 <b_jonas> ``` gcc -Wall -std=c18 -O -o /hackenv/tmp/a.out -x c - <<<$'int main(void) { volatile short float x = {0}; return 0; }'
22:53:14 <HackEso> ​<stdin>: In function 'main': \ <stdin>:1:33: error: both 'short' and 'float' in declaration specifiers \ <stdin>:1:39: warning: unused variable 'x' [-Wunused-variable]
22:53:36 <b_jonas> fizzie: seriously, how did the colors of gcc output disappear?
22:53:39 <fizzie> ais523: It's more of a bugfix-only release with no new features.
22:53:45 <fizzie> `` gcc -fdiagnostics-color=always -x c <<<'int eger = x;'
22:53:46 <HackEso> ​[01m[Kgcc:[m[K [01;35m[Kwarning: [m[K‘[01m[K-x c[m[K’ after last input file has no effect \ [01m[Kgcc:[m[K [01;31m[Kfatal error: [m[Kno input files \ compilation terminated.
22:53:47 <ais523> <Wikipedia> C18 addressed defects in C11 without introducing new language features.
22:53:56 <ais523> OK, that would explain why there's no big fanfare about it
22:54:01 <ais523> bugfix releases are good too, though
22:54:03 <b_jonas> fizzie: yes, but how come it doesn't do that by default now?
22:54:13 <fizzie> b_jonas: It's probably because I made stderr piped into the same cat as stdout.
22:54:17 <b_jonas> ah!
22:54:19 <b_jonas> that's great
22:54:20 <b_jonas> thanks
22:54:21 <fizzie> I assume previously it used isatty on 2.
22:54:48 <fizzie> Or, well, still does, but with a different result.
22:56:44 <fizzie> `` strace -e trace=ioctl gcc -x c <<<'int eger = x;'
22:56:45 <HackEso> ioctl(2, TCGETS, 0x7fbff589e0) = -1 ENOTTY (Inappropriate ioctl for device) \ ioctl(2, TCGETS, 0x7fbff58a00) = -1 ENOTTY (Inappropriate ioctl for device) \ gcc: warning: ‘-x c’ after last input file has no effect \ gcc: fatal error: no input files \ compilation terminated. \ +++ exited with 1 +++
22:57:27 <ais523> I was idly wondering how isatty worked, then noticed fstat in the see also on the man page, so I was guessing it statted the file descriptor and looked at the device numbers
22:57:46 <fizzie> It does a tcgetattr() != -1.
22:57:55 <ais523> `` strace -e trace=fstat gcc -x c
22:57:56 <HackEso> fstat(3, {st_mode=S_IFREG|0644, st_size=1579448, ...}) = 0 \ fstat(3, {st_mode=S_IFREG|0755, st_size=1824496, ...}) = 0 \ fstat(3, {st_mode=S_IFREG|0644, st_size=3040656, ...}) = 0 \ gcc: warning: ‘-x c’ after last input file has no effect \ gcc: fatal error: no input files \ compilation terminated. \ +++ exited with 1 +++
22:58:27 <fizzie> (And tcgetattr devolves to ioctl.)
22:58:51 <ais523> that seems broken, mightn't some other device use the same ioctl number?
22:59:06 <b_jonas> ais523: there are several ioctls that work only on terminals, and yes, the one that implements tcgetattr is among them
22:59:20 <b_jonas> ais523: that won't happen on Linux
22:59:25 <fizzie> I only know how it works because I was trying to figure out if there was a way to fake it that wouldn't involve running a cat process.
22:59:28 <ais523> <man ioctl> The second argument is a device-dependent request code.
22:59:29 <b_jonas> and glibc can rely on linux-internal stuff like that
22:59:48 <b_jonas> ais523: glibc. this doesn't need to be portable to all systems.
22:59:55 <b_jonas> if it works on linux and hurd it's enough
23:00:11 <b_jonas> glibc depends on a lot of linux-specific stuff
23:00:13 <b_jonas> has to really
23:00:18 <ais523> does Linux have an actual rule of "no sharing ioctl numbers between different types of devices"?
23:00:22 <b_jonas> no
23:00:30 <b_jonas> and I think some of the small numbers are shared
23:00:34 <ais523> I guess patches would probably be rejected if you tried to use a widely used ioctl number like that for something else
23:00:40 <b_jonas> but it doesn't share numbers in any newly introduced ioctls
23:00:46 <b_jonas> all the sharing are for historical reasons
23:00:50 <ais523> IIRC ioctl numbers are namespaced to some extent
23:00:56 <b_jonas> yes
23:01:19 <b_jonas> the namespace tells the size of the struct that its argument points to, and whether it's used for input or output
23:01:33 <b_jonas> but this too is true only for new ioctl numbers, old ones remain for historical reasons
23:02:12 <fizzie> Documentation/ioctl/ioctl-number.txt has a the range assignments.
23:02:14 <b_jonas> http://man7.org/linux/man-pages/man2/ioctl_list.2.html has some docs
23:02:16 <fizzie> A lot of "conflict!"s.
23:02:55 <ais523> right, TCGETS is 0x5401, and 0x54 == 'T'
23:05:02 <fizzie> Anyway, might as well ask y'all -- let's suppose I have a tty device, and I want the things a program writes get written there, but if the program does isatty(1) I want it to return 0. Is there a more elegant way than redirecting the program's output to a fifo, and having another process copy all the data from the fifo to the device?
23:06:37 <b_jonas> fizzie: that sounds esoteric. why would you want that? if you just want programs not to write color codes, try TERM=dumb
23:06:49 <b_jonas> (some programs will still write carriage returns then)
23:06:55 <ais523> there's seccomp_filter but that's likely less elegant rather than more elegant
23:06:57 <b_jonas> (and some programs will write color codes anyway)
23:07:14 <fizzie> It's not for me, it's for HackEso.
23:07:45 <ais523> HackEso having TERM=dumb would make sense though
23:07:46 <shachaf> Did you figure out what was going on with the bizarreness a while ago?
23:08:01 <ais523> alternatively, HackEso translating ASCII color codes to IRC color codes would also make sense
23:08:04 <fizzie> The idea is, what /dev/tty1 is *actually* connected is a pipe outside the UML kernel, and shouldn't be treated as a TTY. Cf. that gcc color output, for example.
23:08:08 <b_jonas> ais523: using a custom terminfo that has IRC color and format codes would be even better for esoteric value
23:08:14 <ais523> shachaf: the ::=echo weirdness?
23:08:15 <bfbot> :shachaf: the weirdness?
23:08:34 <shachaf> The HackEso output being truncated thing.
23:08:38 <fizzie> ais523: Having TERM=dumb would make sense, though I think most programs do the TTY check.
23:08:49 <fizzie> shachaf: Yes, I think I did, but I can't remember. At least it got fixed.
23:08:51 <b_jonas> TODO self: make such a terminfo; make a better ! c and ! c++ wrapper; make an addwhatis command
23:08:53 <zzo38> Some programs support a NO_COLOR environment variable to disable colours.
23:09:04 <ais523> fizzie: right, but many programs also use terminfo and friends to work out how to display colors
23:09:17 <ais523> so if they conclude that stdout is a terminal but doesn't support color, they'll do the right thing
23:09:23 <b_jonas> fizzie: programs do those two checks for different reasons
23:09:34 <fizzie> ais523: Well, for the color part.
23:09:46 <fizzie> But I think there's more behavioral changes they can do when it's not a terminal.
23:09:55 <ais523> it's unclear whether we want the terminal or non-terminal output, though
23:10:03 <ais523> HackEso is effectively a terminal wrt the way it's used
23:10:16 <b_jonas> um :=echo hi
23:10:17 <bfbot> :um hi
23:10:18 <ais523> we want the output programs produce when used interactively, not the batch-process output
23:10:21 <b_jonas> what the
23:10:27 <fizzie> ais523: Well... not if it's a progress bar or a spinner.
23:10:31 <b_jonas> is bfbot parsing IRC messages wrong?
23:10:41 <b_jonas> foo :=echo bar :qux
23:10:41 <bfbot> :foo :=echo bar bar :qux
23:10:45 <b_jonas> weird
23:10:53 <b_jonas> I suspect it's parsing IRC messages wrong
23:11:07 <b_jonas> like searches for " :=" in it
23:11:07 <bfbot> like searches for " :No such command. Try =help.
23:11:14 <b_jonas> foo:=echo bar
23:11:14 <bfbot> bar
23:11:14 <ais523> fizzie: well, the only reason that's bad is that the cursor movement (even \r or \b) doesn't work correctly
23:11:16 <b_jonas> hmm
23:11:19 <b_jonas> that's even worse
23:11:45 <ais523> there's probably half a command in bfbot's output that got eaten by the ircd
23:11:54 <ais523> =echo
23:11:54 <bfbot> echo
23:12:05 <ais523> =echo
23:12:06 <bfbot> echo
23:12:20 <b_jonas> what?
23:12:24 <ais523> hmm, I bet the ircd added the colon anyway
23:12:35 <ais523> (the second =echo was sent without the colon)
23:12:49 <b_jonas> sure, ircd fixes the messages so that clients are easy to write
23:12:52 <b_jonas> there's always a colon
23:13:02 <ais523> it's technically only needed to escape multi-character arguments, though
23:13:14 <ais523> but always adding it is probably easier for consistency
23:13:16 <ais523> *multi-word
23:13:26 <b_jonas> technically yes, but the ircd wants to accept more and produce less to make clients easy to write
23:13:27 <fizzie> ais523: I just think it's not trivial to make it look enough "like a terminal", esp. when programs start to use more than one line of output, or ask about terminal width/height to draw a dialog in the middle of the screen.
23:13:52 <ais523> well, take a program like apt
23:13:56 <b_jonas> it also changes MODE and KICK commands so that MODE commands set at most four modes and KICK kick at most one nick when it outputs them, even though it accepts more on input
23:14:02 <b_jonas> and more things like that
23:14:04 <ais523> it complains whenever its output isn't a terminal
23:14:17 <b_jonas> I think it canonicalizes the capitalization of channel anmes
23:14:20 <ais523> because it's not intended to have stable output
23:14:35 <b_jonas> so that clients don't have to casefold channel names to find which channel they're receiving something in
23:14:36 <fizzie> Yes, I don't really like that complaint.
23:14:36 <ais523> but the use via HackEso is interactive
23:14:56 <fizzie> (I use "apt search ... | grep ..." semi-often.)
23:15:14 <b_jonas> fizzie: in that case we'll pass the right command-line argument to programs so that they don't do those things
23:15:40 <b_jonas> fizzie: eg. we'll use git status -bs because the output of git status would be unreadable
23:16:06 <fizzie> Anyway, sure, there might some benefits to getting the terminal-style output. But I remain unconvinced it would be an overall improvement.
23:16:29 <b_jonas> fizzie: I suspect that no terminal is probably better,
23:16:37 <b_jonas> but terminal might be more suitable for HackEso's esotericness
23:17:22 <b_jonas> programs can output human-readable things even when the output isn't a terminal, eg. you're running them in a cronjob
23:17:58 <b_jonas> when it's a terminal, they may expect interactive use of the program, though they usually check isatty(0) for that, not isatty(1) or isatty(2)
23:18:24 <b_jonas> but sometimes they expect interactivity even if only isatty(2)
23:18:49 <b_jonas> I think no terminal is probably better since you terminate the program after each command
23:19:01 <b_jonas> we can't just continue to give it more input like we can in termbot
23:19:36 <b_jonas> obviously we can override either way in individual commands, with |cat or with script resp
23:19:57 <fizzie> shachaf: As far as I can tell, I didn't quite figure out all the details in the truncation thing, but sufficiently to determine that it was linked with using a 'fd:N' where N is a /dev/null file descriptor instead of the special 'null' channel in the UML console specification.
23:20:44 <fizzie> b_jonas: Incidentally, I toyed around using a 512-byte block device as the stdout file descriptor, too.
23:20:48 <b_jonas> hmm wait
23:21:26 <b_jonas> @run "hello =echo world"
23:21:28 <fizzie> It'd have the benefit (of sorts) that writes that the user would never see anyway (because of IRC length limits) would fail with ENOSPC, naturally terminating the program. Well, some programs, anyway.
23:21:29 <lambdabot> "hello =echo world"
23:21:34 <b_jonas> @run "hello :"++"=echo world"
23:21:37 <lambdabot> "hello :=echo world"
23:21:37 <bfbot> : "hello world"
23:22:57 <fizzie> One reason why I didn't explore that more was because it'd be super hackbot-specific, and umlbox is to some degree a general tool.
23:23:01 <b_jonas> ^ul (=echo world)(hello :)SS
23:23:01 <fungot> hello :=echo world
23:23:01 <bfbot> :hello world
23:23:22 <b_jonas> =echo ^help
23:23:22 <bfbot> ^help
23:23:24 <b_jonas> =echo @help
23:23:24 <bfbot> @help
23:23:35 <b_jonas> =echo `help
23:23:36 <bfbot> `help
23:23:36 <HackEso> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch [<output-file>] <URL>" downloads files. Files saved to $HACKENV are persistent, and $HACKENV/bin is in $PATH. $HACKENV is a mercurial repository, "`revert <rev>" can be used to revert, https://hack.esolangs.org/repo/ to browse. $PWD ($HACKENV/tmp) is persistent but unversioned, /tmp is ephemeral.
23:23:45 <fizzie> Ut-oh.
23:23:49 <b_jonas> yeah
23:24:15 <b_jonas> =echo `echo :=echo hi
23:24:15 <bfbot> :=echo `echo hi
23:24:18 <ais523> hmm, it just crossed my mind that with umlbox and WSL, Linux is now cross-platform software: it runs on both Linux and Windows
23:24:38 <fizzie> That's almost certainly loopable, and I don't have a natural way to make it not.
23:24:43 <b_jonas> ais523: Linux runs on several processor types
23:24:55 <fizzie> `echo :=echo check
23:24:55 <bfbot> :`echo check
23:24:55 <HackEso> ​:=echo check
23:24:55 <bfbot> check
23:25:22 <fizzie> Hm, maybe the : that seems to end up in all the "middle commands" saves it.
23:25:32 <ais523> bfbot: yes, but I mean it runs on multiple operating systems
23:25:36 <b_jonas> =str 1s++++[->++++<]>[->++>+++>++++>+++++>++++++>+++++++<<<<<<]> >>>>.++.++++.----.+++++++++++++.>++++.<---.+++..>----.
23:25:36 <bfbot> ok
23:25:43 <b_jonas> =def 1prefixes
23:25:43 <bfbot> ok, defined 'prefixes'
23:26:00 <b_jonas> no
23:26:02 <b_jonas> darn it
23:26:14 <b_jonas> I shouldn't have overwritten the prefixes macro
23:26:16 <b_jonas> `prefixes
23:26:17 <HackEso> Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot =.
23:26:41 <b_jonas> =str 1s++++[->++++<]>[->++>+++>++++>+++++>++++++>+++++++<<<<<<]> >>++.>>+++++++++++++++.>++++.<<<<<.>>>>>----.++.<----------.+.+++.>++++++.<----.>-----.<<<<++++++++++.<.>>>>+.>++.<++++++++.-------.++++++++.>-.<<<<<.>>>++++++++++++++.<<<++++++++++++.------------.>>++++++.>>--------------.++.++++++++.<<---.>>>-.<++++.
23:26:41 <bfbot> ok
23:26:46 <b_jonas> =str 1a<<<<.>>>>---------------.<<<<++++++++++++.------------.>>.>>+++++++.++++++++.<<---.>>.>+.<<<<<.+.+++++++++++.------------.>>>>---.-----------.++++++++++++.-----------.++.---.+.+++++++++++++.>.<<<<<.>>--.<<.>>>>.>--.<<<<<.>+++++.<++++++++++++.------------.>>>>>++.<-------.>+.-.+.<------.+++++++++++++.>-.<<<<<.
23:26:46 <bfbot> ok
23:26:51 <b_jonas> =str 1a+++++++++++.+.------------.>>>>--.--------.>.<----.>-.<++++.>---.<++++.--------.<<<<.>>>>>++++++++++++++.<<<<<++++++++++++.------------.>>>>++++++++.-----.>------------.<+++++.>+.<<<<<+++++++++++++.>>>>-------.+++++++++++++.>+.<<<<<-------------.++++++++.--------.++++++++++++.------------.>>>>-----.-------.++
23:26:51 <bfbot> ok
23:26:56 <b_jonas> =str 1a++++++++++.-..<<<<.+++++++++.---------.++++++++++++.------------.>>>>----.<<<<+++++++++++++.>>>>--------.+++++++++++++.>.<<<<<-------------.>>>---.<<<.++++++++++++.------------.>>>>-------------.++++.----.+++++++++++++.>.<<<<<.>--.<++++++++++++++.
23:26:56 <bfbot> ok
23:27:00 <b_jonas> =def 1prefixes
23:27:00 <bfbot> ok, defined 'prefixes'
23:27:00 <b_jonas> =prefixes
23:27:00 <bfbot> Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot =.
23:27:53 <b_jonas> =str 1s++++[->++++<]>[->++>+++>++++>+++++>++++++>+++++++<<<<<<]> >>>>.++.++++.----.+++++++++++++.>++++.---.++++.<------.+++++.---------.
23:27:53 <bfbot> ok
23:27:56 <fizzie> What does :=prefixes do then?
23:27:56 <bfbot> Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ , bfbot =.
23:28:07 <b_jonas> =def 1hackesoquine
23:28:07 <bfbot> ok, defined 'hackesoquine'
23:28:13 <b_jonas> =hackesoquine
23:28:13 <bfbot> `bfbotquine
23:28:14 <HackEso> bfbotquine? No such file or directory
23:28:18 -!- ChanServ has set channel mode: +o fizzie.
23:28:25 <fizzie> (Just getting prepared.)
23:28:36 <b_jonas> =str 1s +
23:28:36 <bfbot> ok
23:28:45 <b_jonas> =def 1hackesoquin
23:28:45 <bfbot> ok, defined 'hackesoquin'
23:28:47 <b_jonas> =hackesoquin
23:29:15 <imode> did it work.
23:29:17 <b_jonas> =str 1s ++++++++[->++++++++<]+.
23:29:17 <bfbot> ok
23:29:22 <b_jonas> =def 1hackesoquin
23:29:22 <bfbot> ok, defined 'hackesoquin'
23:29:24 <b_jonas> =hackesoquin
23:29:24 <bfbot> .
23:29:35 <b_jonas> =str 1s ++++++++[->++++++++<]>+.
23:29:35 <bfbot> ok
23:29:37 <b_jonas> =def 1hackesoquin
23:29:37 <bfbot> ok, defined 'hackesoquin'
23:29:38 <b_jonas> =hackesoquin
23:29:38 <bfbot> A
23:29:43 <b_jonas> =hackesoquine
23:29:43 <bfbot> `bfbotquine
23:29:44 <HackEso> bfbotquine? No such file or directory
23:29:49 -!- ChanServ has set channel mode: +o ais523.
23:30:17 <ais523> ^ul ((=echo ^ul )SaS(:^)S):^
23:30:17 <b_jonas> ``` set -e; f=/hackenv/bin/bfbotquine; rm -f "$f"
23:30:17 <fungot> =echo ^ul ((=echo ^ul )SaS(:^)S):^
23:30:17 <bfbot> ^ul ((=echo ^ul )SaS(:^)S):^
23:30:19 <HackEso> No output.
23:30:23 <b_jonas> ``` set -e; f=/hackenv/bin/bfbotquine; rm -vf "$f"
23:30:24 <HackEso> No output.
23:30:34 <ais523> hmm, fungot is ignoring bfbot
23:30:34 <fungot> ais523: i just happens that matthew needs to bump the version when he's changing the core. but i guess it's kind of " industry standard"
23:30:40 <b_jonas> =def 1hackesoquin
23:30:40 <bfbot> ok, defined 'hackesoquin'
23:30:41 <fizzie> ais523: Yeah, manually.
23:31:02 <ais523> `! underload (test)S
23:31:02 <HackEso> test
23:31:18 <ais523> `! underload ((=echo `! underload )SaS(:^)S):^
23:31:19 <HackEso> ​=echo `! underload ((=echo `! underload )SaS(:^)S):^
23:31:32 <ais523> `! underload ((t:=echo `! underload )SaS(:^)S):^
23:31:32 <bfbot> `! underload )SaS(:^)S):^
23:31:33 <HackEso> t:=echo `! underload ((t:=echo `! underload )SaS(:^)S):^
23:31:33 <bfbot> `! underload )SaS(:^)S):^
23:31:34 <HackEso> Error: Unmatched )
23:31:34 <HackEso> Error: Unmatched )
23:31:42 <fizzie> But I assume a bfbot/HackEso loop just needs HackEso to output "whatever :=foo" on `bar, and bfbot output "`bar" on =foo.
23:31:42 <bfbot> But I assume a bfbot/HackEso loop just needs HackEso to output "whatever :No such command. Try =help.
23:32:07 <b_jonas> ``` set -e; f=/hackenv/bin/STOP; >$f echo $'#!/bin/sh\nrm -vf /hackenv/bin/bfbotquine'; chmod -c a+x "$f"
23:32:11 <HackEso> mode of '/hackenv/bin/STOP' changed from 0644 (rw-r--r--) to 0755 (rwxr-xr-x)
23:32:30 <ais523> a:=echo 1 :=echo 2
23:32:30 <bfbot> :a:=echo 1 2
23:32:37 <b_jonas> ``` set -e; f=/hackenv/bin/bfbotquine; >$f echo $'#!/bin/sh\necho hello, world'; chmod -c a+x "$f"
23:32:39 <HackEso> mode of '/hackenv/bin/bfbotquine' changed from 0644 (rw-r--r--) to 0755 (rwxr-xr-x)
23:32:40 <b_jonas> `bfbotquine
23:32:41 <HackEso> hello, world
23:32:43 <b_jonas> `STOP
23:32:44 <ais523> huh, if there are multiple :=s in a line, bfbot runs the /last/
23:32:45 <HackEso> removed '/hackenv/bin/bfbotquine'
23:32:46 <b_jonas> `bfbotquine
23:32:47 <HackEso> bfbotquine? No such file or directory
23:33:03 <ais523> `! underload ((t:)S(=echo `! underload )SaS(:^)S):^
23:33:04 <HackEso> t:=echo `! underload ((t:)S(=echo `! underload )SaS(:^)S):^
23:33:04 <bfbot> `! underload ((t:)S(=echo `! underload )SaS(:^)S):^
23:33:05 <HackEso> t:=echo `! underload ((t:)S(=echo `! underload )SaS(:^)S):^
23:33:05 <bfbot> `! underload ((t:)S(=echo `! underload )SaS(:^)S):^
23:33:06 <HackEso> t:=echo `! underload ((t:)S(=echo `! underload )SaS(:^)S):^
23:33:06 <bfbot> `! underload ((t:)S(=echo `! underload )SaS(:^)S):^
23:33:07 <HackEso> t:=echo `! underload ((t:)S(=echo `! underload )SaS(:^)S):^
23:33:07 -!- ais523 has set channel mode: +q bfbot!*@*.
23:33:13 -!- ais523 has set channel mode: -q bfbot!*@*.
23:33:13 <b_jonas> guys, if this becomes a loop and I am not disconnected, please run this: =def 1hackesoquine
23:33:16 <moony> :o
23:33:17 <b_jonas> guys, if this becomes a loop and I am not disconnected, please run this: `STOP
23:33:34 <ais523> +q best mode for breaking loops
23:33:37 <b_jonas> ``` set -e; f=/hackenv/bin/bfbotquine; >$f echo $'#!/bin/sh\necho ":=hackesoquine"'; chmod -c a+x "$f"
23:33:37 <bfbot> No such command. Try =help.
23:33:39 <HackEso> mode of '/hackenv/bin/bfbotquine' changed from 0644 (rw-r--r--) to 0755 (rwxr-xr-x)
23:33:40 <ais523> (I guess +m would also work)
23:33:48 <b_jonas> =hackesoquine
23:33:49 <bfbot> `bfbotquine
23:33:49 <HackEso> ​:=hackesoquine
23:33:49 <bfbot> `bfbotquine
23:33:50 <HackEso> ​:=hackesoquine
23:33:50 <bfbot> `bfbotquine
23:33:51 <fizzie> ais523: I think you beat me by some milliseconds.
23:33:51 <HackEso> ​:=hackesoquine
23:33:51 <bfbot> `bfbotquine
23:33:51 <b_jonas> `STOP
23:33:52 <HackEso> ​:=hackesoquine
23:33:52 <bfbot> `bfbotquine
23:33:52 -!- ais523 has set channel mode: +q bfbot!*@*.
23:33:54 <HackEso> ​:=hackesoquine
23:33:55 <HackEso> removed '/hackenv/bin/bfbotquine'
23:33:56 -!- ais523 has set channel mode: -q bfbot!*@*.
23:34:02 <b_jonas> =def 1hackesoquine
23:34:02 <bfbot> ok, defined 'hackesoquine'
23:34:10 <b_jonas> =hackesoquine
23:34:10 <bfbot> A
23:34:13 <b_jonas> `bfbotquine
23:34:14 <HackEso> bfbotquine? No such file or directory
23:34:16 <ais523> fizzie: out of interest, what was your preferred loop-breaking method?
23:34:17 <b_jonas> ok good
23:34:31 <fizzie> ais523: I had /mode #esoteric +q bfbot!*@* waiting on the input line as well.
23:34:33 <int-e> Oh, HackEso does not ignore bfbot?
23:34:54 <fizzie> int-e: HackEso doesn't generally ignore known bots.
23:34:56 <b_jonas> kspalaiologos: can you please modify your bot?
23:35:11 <b_jonas> kspalaiologos: triggering on := anywhere in the irc line seems like a bad idea
23:35:11 <bfbot> kspalaiologos: triggering on :No such command. Try =help.
23:35:11 <ais523> right, I could have broken the loop earlier, but wanted to make sure it was a true loop first
23:35:19 <ais523> (isn't there some code in lambdabot that tends to stop loops after four iterations?)
23:35:23 <int-e> fizzie: Hmm.
23:35:33 -!- ais523 has set channel mode: -o ais523.
23:35:43 <int-e> ais523: Not that I know of. But it should be ignoring bfbot.
23:35:51 <b_jonas> ais523: fungto has such a code
23:36:00 <fizzie> int-e: The "add a zero-width space in front of non-alphanumeric messages" feature stops most loops, it's just that bfbot's "parse a command in the middle of the output" defeats that.
23:36:13 <int-e> ah.
23:36:38 <ais523> admittedly, the most surprising thing about that loop was that `! underload actually works
23:36:59 <fizzie> That said, there is an ignore list, currently ['Lymia', 'Lymee', 'Madoka-Kaname'] which is... just a little out of date.
23:37:26 <int-e> I don't even recall any Madoka-Kaname
23:37:48 <b_jonas> ais523: I know that a loop that involves some quining technique is cooler, but I deliberately used a user-defined command in both bots to make it easier to break the loop on either end
23:37:52 <fizzie> =echo `foo
23:37:53 <bfbot> `foo
23:37:53 <HackEso> Mmmmm... no.
23:38:01 <ais523> it's probably best to put bfbot on HackEgo's ignore list, BF isn't the most robust language to write loop-proof bots in
23:38:19 <ais523> bfbot: well, quines are pretty much trivial to write in Underload so it's my usual choice for botloops
23:38:19 <b_jonas> ais523: I don't think it's written in bf
23:38:27 <ais523> b_jonas: bfbot?
23:38:28 <ais523> I do
23:38:30 <b_jonas> yes
23:38:33 <b_jonas> really?
23:38:41 <ais523> just look at who wrote it
23:38:43 <b_jonas> I thought it's called bfbot because it interprets bf
23:38:54 <fizzie> I think they mentioned it being written in bash? Not sure I paid enough attention.
23:39:10 <ais523> oh, boring
23:39:22 <ais523> based on what it does, it definitely could be written in bf
23:39:44 <ais523> =def 1$(hostname)
23:39:44 <bfbot> Error: Name can contain only lowercase letters and digits.
23:39:45 <b_jonas> ais523: kspalaiologos wrote it because fungot's bf interpreter timed out too quickly. if he wrote it in bf, then he would have to use a bf interpreter in bf, which is rather slow, so that would mostly defeat the purpose
23:39:45 <fungot> b_jonas: the problem with object-orientation is that it's standard, you have
23:40:05 <ais523> b_jonas: oh, because BF doesn't self-compose well due to only having one tape
23:40:13 <fizzie> <kspalaiologos> Bfbot is written in Seed :)
23:40:20 <imode> seed?
23:40:37 <fizzie> If that's our Seed, it's probably a joke.
23:40:39 <ais523> imode: it's a language which interprets the output of a random number generator as Befunge
23:40:53 <ais523> the program is just the random number generator seed
23:40:58 <imode> oh.
23:41:14 <ais523> but the RNG it's using is the Mersenne Twister which is not cryptosecure, so you basically just need a preimage algorithm
23:41:16 <b_jonas> kspalaiologos mentioned something about some program written by someone other than him in bash to blame for for why it swallows backslashes in the output
23:41:32 <fizzie> http://esolangs.org/logs/2019-11-22.html#lbe is where I got the bash from.
23:41:33 <b_jonas> maybe "Seed" is the name of more than one thing?
23:41:37 <ais523> thutubot used a bash wrapper to actually do the connection of the bot to IRC
23:41:58 <fizzie> Yes, more than one language might be involved.
23:42:01 <ais523> anyway, kspalaiologos almost certainly has a befunge → seed compiler
23:42:25 -!- fizzie has set channel mode: -o fizzie.
23:42:27 <fizzie> Whoops, forgot.
23:42:49 <fizzie> shachaf: Incidentally, I switched umlbox to use a protobuf for the configuration, because, you know, protos.
23:42:50 <ais523> and befunge-98 is a fairly efficient language to write a bf interpreter in (but befunge-93 would have issues producing an unbounded tape)
23:43:10 <b_jonas> ais523: I know of at least two bots that interpret the same language as the bot is written in: NotJack's ijx was a bot written in J that interprets J, and the buubot3 instance called perlbot is written in perl and interprets perl (plus a bit more)
23:43:41 <fizzie> Yes, in retrospect I probably should've just bumped up the cycle limit of the fungot ^bf interpreter. It's just I don't tend to edit fungot much.
23:43:41 <fungot> fizzie: i normally use define-macro...) value) ( ' red t) ( h h))
23:43:45 <ais523> b_jonas: the problem with that is mostly sandboxing, isn't it?
23:43:54 <b_jonas> ais523: with which one?
23:44:02 <ais523> self-hosting languagebots
23:44:09 <b_jonas> yeah
23:44:40 <fizzie> There's an entirely unsandboxed Funge-98 interpretation command in fungot. I've tried to use it for hot-patching once or twice.
23:44:40 <fungot> fizzie: no it is
23:44:52 <b_jonas> buubot3 uses just a couple of old unix tricks, like running under a different user and setrlimit to not allow to open any file and such things to make a sandbox that works decently but is very limiting
23:44:55 <fizzie> It's just much easier to hot-break than hot-fix things.
23:45:45 <ais523> fizzie: I'm not sure it's a /bot/ interpreter, though; presumably the Funge-98 output commands output to the hosting server's stdout rather than to the IRC channel
23:46:05 <b_jonas> I don't know what ijx used, but it probably involved the J interpreter's secure mode, which disables all the builtins that do IO or system access or foreign calls, except for 11!: which calls a custom callback of the program in which the interpreter is embedded to
23:46:46 <b_jonas> that's not a perfect sandbox because the J interpreter had a few bugs at that time that let you do memory corruption, but it was good enough
23:46:48 <fizzie> ais523: Yes, although of course you can write to the IRC socket as well. But it's true that it's not what you would expect if it was intended as an interpreter.
23:48:00 <b_jonas> ais523: anyway, buubot3 originally interpreted like seven different languages, and the part that interprets perl wasn't special at all, it was implemented almost the same as invoking the other interpreters
23:48:05 <b_jonas> the interpreter is always a separate process
23:48:17 <b_jonas> it's just that perlbot threw out all the other interpreters for some reason
23:48:20 <b_jonas> so it only runs perl
23:48:39 <fizzie> http://ix.io/239r is the total list of times I've used it on channel.
23:48:41 <ais523> hmm, a wasmbot would probably be pretty good at self-hosting
23:48:46 <fizzie> No idea if those actually did the right thing.
23:48:58 <b_jonas> the original buubot3 could actually interprete J, and the command to interpret J was "jeval", which is why I renamed my jevalbot instance from jeval to evalj
23:49:05 <b_jonas> "jeval:" used to trigger two bots
23:49:06 <ais523> idea: a self-modifying esolang with version control
23:49:15 <b_jonas> ais523: see Wikiplia
23:49:26 <b_jonas> it isn't truly self-modifying
23:49:44 <b_jonas> but it has a version control, and there's a self-modifying compiler implemented over it
23:49:53 <ais523> I meant self-modifying in the sense of programs modifying themselves, not in the Snowflake sense
23:49:56 <b_jonas> a compiler that compiles a slightly higher level to Wikiplia
23:50:08 <b_jonas> hmm
23:51:41 <fizzie> Apparently 0ad00f-gU0": ciretose# GSMVIRP"AAN51p08P0851g21gW$ prints out the current reply counter (thing it uses to stop replying consecutively), and 0ad10f-G0": ciretose# GSMVIRP"AAN51p08P0851g21gW$ the nickname of whoever spoke to it last.
23:51:46 <ais523> actually, some of the uncomputable time-travel esolangs are in effect like this, so maybe you could start with one of those as a base and add a causality restriction to bring them down to TCness
23:52:03 <ais523> but it's more interesting if the ability to undo, rewind, etc. is somehow needed for TCness
23:52:54 -!- imode has quit (Ping timeout: 265 seconds).
23:53:07 <b_jonas> there is https://esolangs.org/wiki/Legit whose source format is a git repository
23:54:39 <ais523> right, but the content of the repository is irrelevant, the program is stored in the metadata (which isn't itself versioned)
23:55:22 -!- ais523 has quit (Quit: quit).
23:55:45 <b_jonas> ais523: prolog then, since you can undo unifications?
23:55:56 <b_jonas> though it's still TC without failing
23:56:25 <fizzie> To call back to an earlier fork in the conversation, the attributes proposal (N2335) had been merged into the June 2019 working draft of C2x (N2385), together with a few standard attributes: deprecated (N2334), maybe_unused (N2770) and nodiscard (N2267).
23:56:36 <b_jonas> "maybe_unused" ah
23:56:39 <b_jonas> thanks
23:57:24 <fizzie> I don't think there's any level of -std=c2x support on the GCC version on HackEso though.
23:57:38 <fizzie> `gcc --version
23:57:39 <HackEso> gcc (Debian 8.3.0-6) 8.3.0 \ Copyright (C) 2018 Free Software Foundation, Inc. \ This is free software; see the source for copying conditions. There is NO \ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
23:57:45 <fizzie> Yeah, I think it's 9 only.
2019-11-30
00:03:32 <fizzie> Completely unrelated, but there's also strdup/strndup support.
00:11:00 <Sgeo> I'm watching a video about surreal numbers, and it said every real number is surrounded by an island of infinitesimals called a "monad". Any relation to the other meaning of monad that Haskell stole from category theory?
00:12:07 <kingoffrance> i prefer the devils dictionary definitions of "monad" "molecule" "corpsucle" etc.
00:12:34 <kingoffrance> "the smallest individual unit of matter; see also: x, also the smallest individual unit of matter; distinguished from y, also the smallest individual unit of matter" etc.
00:12:52 <kingoffrance> the ion differs from the corpsucle in that it is an ion, etc.
00:14:47 <kingoffrance> "leibniz has founded a theory of the universe based on the monad, but the creature bears no resentment, for the monad is a gentleman"
00:14:51 <fizzie> "It is of course well known that all ships of space are propelled by the inert projection, by means of high-potential static fields, of nascent fourth-order particles or “corpuscles,” which are formed, inert, inside the inertialess projector, by the conversion of some form of energy into matter."
00:34:04 <Lykaina> fizzie: you know you are descriping a zero-point engine, right?
00:34:38 <Lykaina> corpuscles == electrons
00:34:59 <kingoffrance> i forgot the atom, also the smallest indivisible unit of matter :/
00:36:53 <Lykaina> kingoffrance: atoms ain't indivisible
00:37:34 <zzo38> Yes, but nevertheless they call it "atoms" because it is indivisible, even though it isn't.
00:37:48 <Lykaina> they thought they were
00:38:06 <Lykaina> then the manhattan project happened
00:41:58 <Lykaina> is there anything observable smaller than gluons?
00:42:24 <Lykaina> i'm pretty sure strings aren't observable yet
00:44:33 <kingoffrance> well, that book was circa 1880s-1910s -ish IIRC
00:44:57 <kingoffrance> i have yet to see a worthy competitor, although people write field-specific variants
00:45:00 <Lykaina> which?
00:45:14 <Lykaina> devil's dictionary?
00:45:20 <kingoffrance> yes
00:45:40 <Lykaina> what was fizzie quoting from?
00:45:50 <kingoffrance> theres a devils dp (data processing) but noone calls it that anymore; i dunno fizzie
00:46:55 <Lykaina> cause that's a zero-point reactor
00:48:02 <Lykaina> just using old terms
00:49:06 <Lykaina> oh...galactic patrol
00:49:10 <kingoffrance> fizzies thing sounded like something i heard on futurama cartoon
00:49:19 * kingoffrance <-- not a scientist
00:49:27 <Lykaina> e e "doc" smith
00:49:35 <Lykaina> lensman series
00:50:59 <fizzie> Yes. It's not always just old terms, though, it's also curious mishmash of concepts.
00:51:15 <fizzie> I mean, it's all about the ether (and sub-ether) waves too.
00:55:04 <fizzie> And that whole negasphere business, which is most of the time pretty close to antimatter, but with a some degree of black-holeness thrown in too.
00:57:06 <fizzie> You make it by feeding a whole bunch of regular matter into a singularity, and it's "not essentially three-dimensional in nature. Light sank into the thing, whatever it was, and vanished."
00:57:14 <fizzie> But then later: "For, as has been said, the negasphere was composed of negative matter. Instead of electrons its building-blocks were positrons—the “Dirac holes” in an infinity of negative energy." And it's seen to annihilate regular matter "with nothing save a burst of invisible cosmics to mark its passing."
00:57:47 <fizzie> Anyway, I like best the parts where it's completely failing to anticipate these things called computers. I think I've quoted the parts already here.
00:58:07 <fizzie> "For eight hours two hundred Rigellians stood at whining calculators, each solving course-and-distance problems at the rate of ten per minute."
00:58:49 <fizzie> "Then for hours bale after bale of cards went through the machine; thousands of records per minute. Occasionally one card would flip out into a rack, rejected." (They're trying to filter out a top N list of scientists out of a library's stack of index cards.)
01:00:17 <fizzie> On space ship navigation: "-- her graduated circles and vernier scales were of a size and a fineness usually seen only in the great vessels of the Galactic Survey."
01:01:46 <fizzie> And smaller calculations are always being performed on slip-sticks (AIUI, colloquialism for a slide rule).
01:11:01 <Lykaina> transistors were not yet invented
01:12:54 <Lykaina> in the story i am writing, much of computer tech was based on the roswell crash
01:14:17 <kingoffrance> thats another futurama
01:14:25 <kingoffrance> more or less
01:14:54 <Lykaina> no it's not
01:15:54 <Lykaina> it's similar to something in an episode of star trek: voyager, though
01:16:55 <Lykaina> but i consider my version to be significantly different
01:20:44 -!- imode has joined.
01:22:23 -!- oerjan has joined.
01:23:22 <kingoffrance> it is, its just told in reverse, travel back in time, they are a UFO (thus, future tech was based on aliens)
01:23:29 <kingoffrance> its implied
01:24:00 <kingoffrance> unless we say they left that multiverse and arent connected or something, but that ruins the "fry is his own grandfather" :/
01:28:23 <oerjan> <int-e> oerjan wins again <-- wins what
01:29:10 * oerjan swats interruptinuse for tabexpansioninuse -----###
01:34:27 <fizzie> Hm. "Writing to /dev/random or /dev/urandom will update the entropy pool with the data written, but this will not result in a higher entropy count. This means that it will impact the contents read from both files, but it will not make reads from /dev/random faster."
01:34:54 <fizzie> I was hoping I could've fixed the HackEso lack of entropy by making init write a bunch of random bytes from the host into /dev/random.
01:36:24 <int-e> oerjan: you predicted a Sturmhalten reference
01:37:01 <fizzie> Hm, apparently you can, it just needs to be done using ioctl RNDADDENTROPY instead of just writing.
01:38:03 <oerjan> int-e: oh right
01:38:41 <oerjan> i made a new prediction, with some hedging. we'll see...
01:38:48 <oerjan> and less evidence
01:39:38 -!- Sgeo_ has joined.
01:40:48 <oerjan> a third, even more nefarious option would be if trogulus didn't mean the submarine to get away at all
01:41:20 * oerjan deteriorating grammar
01:41:34 <oerjan> *intend works, i guess
01:41:46 <oerjan> and perhaps mean still does
01:42:23 <oerjan> `? baba
01:42:25 <HackEso> BABA IS ¯\(°​_o)/¯
01:42:36 <oerjan> i knew we had one for that
01:42:37 -!- Sgeo has quit (Ping timeout: 240 seconds).
01:46:39 <oerjan> `cbt paste
01:46:39 <HackEso> ​#!/bin/bash \ if [ "$1" ] && url "$1" 2>/dev/null # Save making a file when it already exists. \ then \ true \ else \ PASTENUM="$RANDOM" \ \ mkdir -p $HACKENV/tmp/paste \ \ url $HACKENV/tmp/paste/paste."$PASTENUM" \ cat -- "${1--}" > $HACKENV/tmp/paste/paste."$PASTENUM" \ fi
01:50:11 <oerjan> `brl paste
01:50:15 <HackEso> https://hack.esolangs.org/repo/file/tip/bin/paste
01:51:53 <int-e> brl, what's next? blog?
01:53:05 <oerjan> `whatis log
01:53:07 <HackEso> log(3) - natural logarithmic function \ log(3p) - natural logarithm function \ log(1hackeso) - no description \ log(3glibc) - Exponents and Logarithms
01:53:16 <oerjan> `cbt log
01:53:17 <HackEso> ​#!/bin/sh \ cd /var/irclogs/_esoteric \ if [ "$1" ]; then \ grep -P -i -- "$1" ????-??-??.txt | shuf -n 1 \ else \ file=$(shuf -en 1 ????-??-??.txt) \ echo "$file:$(shuf -n 1 $file)" \ fi
01:53:30 <oerjan> a bit expired
01:56:50 <fizzie> `` grbp -l var/irclogs
01:56:51 <HackEso> anonlog \ bseen \ gaseen \ log \ pastelog \ pastelogs \ pastlog \ randomanonlog \ seen
01:57:02 <oerjan> i realized a bit duplication between `just and `paste but with only those two it's probably a bit much to generalize
01:58:15 <oerjan> `` grbp -l url # just what i needed
01:58:16 <HackEso> brl \ cmds \ edit \ emmental \ hurl \ hwrl \ just \ multicode \ paste \ pastequotes \ pastewisdom \ raw-url \ sprunge \ tclkit \ translatefromto \ url \ wiki \ wl \ wrl
01:58:49 <oerjan> `` grbp -l '\<url\>' # just what i needed
01:58:50 <HackEso> brl \ cmds \ just \ paste \ pastequotes \ pastewisdom \ wl \ wrl
01:59:12 <int-e> `cbt wl
01:59:13 <HackEso> ​#!/usr/bin/env python \ \ import os \ import sys \ import json \ import urllib2 \ \ proxy_handler = urllib2.ProxyHandler({'http': os.environ['http_proxy']}) \ opener = urllib2.build_opener(proxy_handler) \ urllib2.install_opener(opener) \ \ def lose(): \ print 'You get NOTHING! You LOSE! Good DAY sir!' \ sys.exit() \ \ def eels(): \ print 'My hovercraft is full of eels.' \ sys.exit() \ \ if len(sys.argv) > 2: \ args
02:01:03 <int-e> nitia is responsible for so many weird things
02:02:20 <zzo38> Now I added a UNPACK program and PROJECT batch file into ZZ Zero, for more easily project management (and so that you do not have to use the undocumented F1 ^C feature in GAME to do this).
02:02:49 <oerjan> fizzie: ah you copied grwp. i'm not sure grbp needs all the features to recursive without noise, but it probably doesn't harm.
02:02:56 <oerjan> *recurse
02:04:51 <oerjan> actually dotglob might be good. do we have any such?
02:05:21 <oerjan> `u ` cd bin; ls -a -d .*
02:05:22 <HackEso> u? No such file or directory
02:05:27 <oerjan> `t ` cd bin; ls -a -d .*
02:05:28 <HackEso> ​. \ ..
02:05:31 <oerjan> nope
02:06:12 <zzo38> (Also, DEFAULT.ASM is now available without having to unpack EXAMPLE.ZZ0.)
02:06:23 <fizzie> Yes. Although in retrospect I guess all these grwp/grbp cwt/cbt hurl/hwrl/hbrl should all be generalized into gr?p c?t h?rl respectively, which would all take as first argument the directory they're relative to, and the rest implemented on top of those.
02:07:16 <oerjan> `? mad
02:07:17 <HackEso> This wisdom entry was censored for being too accurate.
02:12:14 <oerjan> `slwd locale//s,on.*le,one true locale,
02:12:16 <HackEso> locale//Locales are just frames, which are just complete Heyting algebras. Taneb accidentally invented them by asking about lattices. The one true locale in #esoteric is en_NZ.UTF-8.
02:12:42 <oerjan> maybe it needs capitalization
02:27:10 <oerjan> lieutenant lefevre, you might reconsider how you give compliments...
02:36:51 <fizzie> http://ix.io/239O not sure why adding 128 bytes increases the entropy count by 384 bits, but at least it's doing something.
02:37:48 <fizzie> Adding 512 bytes bumps the estimate up to 2176. The first was exactly 3 bits/byte, this is exactly 4.25 bits/byte.
02:38:01 <fizzie> Presumably there's some sort of a computation. But that should be good enough.
02:38:14 -!- LKoen has joined.
02:38:57 -!- LKoen has quit (Read error: Connection reset by peer).
02:40:30 <fizzie> `` openssl rand -base64 16
02:40:31 <HackEso> u3vRYIQBLB9ozQMrw8v/qQ==
02:40:48 <fizzie> b_jonas: ^
02:41:21 <esowiki> [[Imperial]] N https://esolangs.org/w/index.php?oldid=67539 * IFcoltransG * (+400) Placeholder page for WIP lang
02:44:51 <zzo38> How common is it in a C code to include the same file multiple times?
02:45:48 <esowiki> [[Imperial]] https://esolangs.org/w/index.php?diff=67540&oldid=67539 * IFcoltransG * (+197) Add Eternal Resources section
02:47:42 <esowiki> [[Imperial]] M https://esolangs.org/w/index.php?diff=67541&oldid=67540 * IFcoltransG * (+76) Added date for posterity.
02:47:56 <esowiki> [[Imperial]] https://esolangs.org/w/index.php?diff=67542&oldid=67541 * IFcoltransG * (+0) fix typo
03:02:17 <shachaf> zzo38: .h or .c file?
03:05:22 <esowiki> [[LogOS]] M https://esolangs.org/w/index.php?diff=67543&oldid=67523 * IFcoltransG * (+0) /* External Resources */ Formatted as list
03:10:17 -!- atslash has quit (Quit: This computer has gone to sleep).
03:27:12 <zzo38> shachaf: In a .c file, including any file
03:42:54 <oerjan> eep something's wrong with yafgc
03:44:32 <imode> it seems like it's been wiped from the face of the internet...
03:45:25 <kingoffrance> zzo38, common enough people write "header guards" to prevent errors that might occur from multiple definitions of something
03:46:14 <imode> zzo38: it may be useful to include a header multiple times based on a conditional definition and subsequent inclusion.
03:46:51 <kingoffrance> or gcc IIRC has #include_next i guess, inspired from next/apple gcc objective-c feature IIRC; yeah, basically it can be done on purpose, or headers are typically guarded to protect against it
03:47:18 <imode> i.e "I define flag A, include header A, which includes code snippet A because flag A is defined, then I undefine flag A, then I define flag B, then include header A again, which has snippet B.." etc.
03:47:35 <kingoffrance> people doing more-than-basic macro stuff it might be more common
03:48:20 <kingoffrance> someone like me, you might split all functions into separate .c, and then just have a single "all.c" or similar that pulls in the others
03:48:37 <kingoffrance> but i dont really see that done, command lines typically have wildcards: gcc *.c -o foo
03:48:59 <imode> yeah including .c files I don't see very often.
03:49:09 <kingoffrance> sometimes people do one giant "all.h" that pulls in all the other, so that is somewhat common i think if people get fed up of order to include things in
03:49:37 <kingoffrance> i think plan9 kind of did that too, don't recall
03:49:41 <kingoffrance> (never used it)
03:50:15 <imode> I do that with a lot of projects.
03:50:19 <kingoffrance> or "windows.h" from what i have heard is somewhat of that nature, so much so that there is a WIN32_LEAN_AND_MEAN something or other to only include portions
03:50:27 <imode> not named "all.h" but usually "<project>.h"
03:50:32 <kmc> xmacros!
03:51:02 <fizzie> SQLite does that 'amalgamation' build, though not through the preprocessor.
03:52:36 <fizzie> I tend to use xmacros without multi-file setups. It's just #define DATA X(a) X(b) ... X(z) #define X(x) ... DATA #undef X #define X(x) ... DATA #undef X.
03:52:54 <kingoffrance> well, i strayed a bit, but generally i guess includes are annoying enough on their own sometimes, i dont see much "include multiple times magic"
03:53:15 <kingoffrance> esoteric or obfuscated stuff however, might be a whole nother story
03:54:21 <kingoffrance> the only time i suppose that has ever came up with me, is circular definitions e.g. structs that refer to eachother; i believe with header guards that is not a problem, they can "include" eachother; "forward declaration" i believe is the term
03:54:37 <imode> if you want horrific preprocessor abuse, the Mode-to-C translator is just translating Mode instructions to C preprocessor tokens, which get expanded inline.
03:55:04 <imode> very much like generating C from brainfuck.
03:55:15 <fizzie> The sort of things that a C++ author would use templates for sometimes do get done using a "template" included with different macros in place. But since the original question was "how common", it's probably fair enough to say "not common at all".
03:56:45 <kmc> fizzie: wait, how does the single-file solution work?
03:57:25 <kingoffrance> there are lots of (especially pre-posix probably) code with #defines that basically include things in a specific order, for some OS, so sometimes they have a comment /* ok to include twice, needed for X */ or /* ancient OS does not like this being included twice */ but that again, is more working around vendor headers, than deliberately including something some number of times
03:59:18 <kingoffrance> and the opposite case is probably more likely: os A foo.h includes bar.h so programmer knows this and only includes foo.h, then this breaks when they compile somewhere that isnt true; so they wanted something included once and got zero times instead
04:11:15 <zzo38> Something I have is that a macro is defined in a different way when the file is included, such as the Opt macro used in bystand_options.inc
04:12:48 <zzo38> Once it is included in a enum block and is defined as Opt_##x, and once it is included in an array and Opt is defined as #x,
04:14:45 <fizzie> kmc: Maybe better with newlines: #define DATA X(a) X(b) ... X(z) \ #define X(x) ... \ DATA \ #undef X \ #define X(x) ... \ DATA \ #undef X
04:14:53 <fizzie> It's just the same as the usual thing, except instead of #include "data.x" you expand the macro DATA.
04:16:43 <fizzie> Maybe better for a moderate amount of items. For very many, the separate file is probably more readable.
04:27:06 <shachaf> Header guards might be scow.
04:28:15 <shachaf> Anyway, putting all your code in one translation unit is where it's at.
04:31:40 <zzo38> Often I do use a single file for a program, although sometimes separate files are helpful for various purposes, whether they are all included into one file or compiled separately, both ways are useful for different purposes.
04:43:28 <kingoffrance> actually univ. of utah "cmi" cross-module inliner basically did that "put all code in one translation unit" theory was it could inline and eliminate <things not actually used> so youd get a smaller, more efficient binary; it was compiler-independent, but written in haskell IIRC ghc old version so might be a pain to get running nowadays (and now gcc and clang and intel c at least, all have some type of "Link-Time Optimization" a
04:43:28 <kingoffrance> nd profiler-based optimizations too, etc.)
04:44:35 <kingoffrance> it was part of a larger oskit project IIRC, that is basically not maintained to my knowledge, that added various things to C like "module" system of some sort
04:46:40 <kingoffrance> (but not preprocessor independent; iirc youd preprocess your files, then it would "merge" them into one giant thing, with things appearing in the order it thought best, and youd compile that)
04:47:29 <kingoffrance> (IIRC it had to deal with whatever junk various preprocessors would insert for some compiler, that were perhaps non-standard)
04:47:45 <kingoffrance> (or system headers that are non-standard for some specific compiler, etc.)
04:48:44 <kingoffrance> (so itself IIRC was compiler-independent, but headers and preprocessors are not necessarily so)
04:49:57 <kingoffrance> (it might still be useful if you use old gcc versions perhaps)
04:54:24 <kmc> fizzie: ah, i see
05:09:16 -!- FreeFull has quit.
06:34:34 <kmc> the most sponsored Unicode characters are UNICORN FACE (11 sponsors), followed by THINKING FACE and SUSHI (7 sponsors each), followed by ROCKET, UPSIDE-DOWN FACE, and EXTRATERRESTRIAL ALIEN (5 each)
06:35:09 <kmc> should i sponsor another character, and which one
06:36:15 <kmc> looks like you can't sponsor non-printable characters :(
06:37:20 <zzo38> Why isn't it allowed to sponsor non-printable characters?
06:39:24 <kmc> "REPLACEMENT CHARACTER" was sponsored by "I ♥ UTF-8"
06:39:44 <kmc> zzo38: I don't know, perhaps because it's not clear what they would show on the website or print on the certificate they mail to you
06:40:33 <oerjan> `grWp invisible
06:40:34 <HackEso> No output.
06:41:14 <zzo38> They could display the hex code and name (which they should do for printable characters too, since some have a similar appearance)
06:41:14 <oerjan> `grWp times
06:41:15 <HackEso> ​☾_:☾_ is moon_'s lawful twin. He's banned in the IRC RFC for being an invalid character. He sometimes eats papers. \ `4:`4 <cmd> is equivalent to `5 <cmd>, except that it only repeats 4 times. Useful when you've already run a command forgetting to use `5. \ `5:`5 <cmd> is equivalent to repeating `` <cmd> 5 times, then splitting the output into irc-sized pieces. <cmd> defaults to "quote". See `1, `4 and `spam. Confusingly _not_ the obvio
06:42:04 <oerjan> `2 grWp times
06:42:09 <HackEso> 2/6:ous generalization of `2. \ advertisement:Advertisement starts: have you heard about this hip and froopy 'net place called #esoteric? It is on freenode. Brought to you by The Board of Timeskewed Advertiesements. \ arabic:.scihpylgoreiH sa drah sa ton hguoht ,troppus stnof ekam ot drah yrev si taht egaugnal citimes lartnec a si cibarA \ costume:Costumes are used for cosplay. Taneb sometimes invents them. \ daystar:The Daystar is an unscient
06:42:36 <oerjan> ETOOMANYHITS
06:42:43 -!- atslash has joined.
06:43:00 <zzo38> And then, what about, unassigned codepoints?
06:43:17 <kmc> I don't think you can sponsor those
06:43:32 <kmc> but it looks like you can sponsor the emoji characters that are composed of more than one codepoint
06:44:09 <kmc> like the rainbow flag
06:45:19 <zzo38> What about non-emoji characters that are composed of more than one codepoint (e.g. characters using variation selectors)?
06:46:17 <kmc> perhaps when Emoji 13.0 comes out I will sponsor [WAVING WHITE FLAG] [ZERO WIDTH JOINER] [MALE WITH STROKE AND MALE AND FEMALE SIGN]
06:46:41 <kmc> zzo38: I don't know about those either
06:46:47 <b_jonas> fizzie: nice!
06:47:05 <b_jonas> `openssl rand -base64 16
06:47:06 <HackEso> Invalid command 'rand -base64 16'; type "help" for a list.
06:47:10 <b_jonas> ``` openssl rand -base64 16
06:47:10 <HackEso> oXBq2MWPBhDZqcMd832hbg==
06:48:32 <b_jonas> `python3 -cimport secrets; print(secrets.token_urlsafe(16))
06:48:33 <HackEso> WcXz-HY_Pax2-ZcPnzXtYw
06:57:23 <imode> capability models in mode can make use of subprocesses and system operations. for example, you can set restrictions on what processes can use the # operator, which is responsible for calling out to a system operation (equivalent to a syscall), which may modify the world.
06:58:06 <imode> if you say "only PID0 may use syscalls", then the top-level process becomes your subprocess spawning and routing logic.
06:58:25 -!- iivii has joined.
06:59:19 <imode> you could have an authorization system, whereby you send your subprocess handle to PID0, it says "yup, looks good to me" and gives you syscall privs for that one subprocess.
07:03:15 -!- iivii has quit (Read error: Connection reset by peer).
07:03:37 -!- b_jonas has quit (Quit: leaving).
07:07:58 <imode> {,$1[V{ ... }^,$1]} infinite replication ala the pi calculus. in an infinite loop, receive the requester's ID, spawn another copy of the process you've wrapped, then send the handle of that process to the requester.
07:10:01 <imode> you can combine a requester with a syscall to check to see if a given process is blocking on receive/send to create a tiny load balancer.
07:10:46 <imode> combine that with some form of time functionality and you have a health check protocol.
07:42:38 -!- arseniiv has joined.
07:49:34 -!- atslash has quit (Quit: This computer has gone to sleep).
07:52:26 <zzo38> Is "IF EXIST XYZ\*.*" true on FreeDOS if XYZ is an empty directory?
08:02:12 -!- ArthurStrong has joined.
08:25:25 <zzo38> I don't know if maybe some ZZT users would be interested in ZZ Zero.
08:25:57 -!- imode has quit (Ping timeout: 240 seconds).
08:26:16 -!- ArthurStrong has left.
08:30:17 <zzo38> Do you like ZZT and ZZ Zero?
08:32:14 <arseniiv> zzo38: where could one find the docs how to play? I think I tried once and didn’t understand anything
08:34:35 <zzo38> Which, ZZT or ZZ Zero (or both)?
08:36:22 <zzo38> The latest version (0.5) now has a proper example (although incomplete), but it is just a demonstration and not an actual game.
08:37:09 <zzo38> For ZZT, which keys you need are mentioned in the status area on the right; if you have further questions you can ask (especially if it is about one of my own ZZT worlds).
08:38:44 <zzo38> For ZZ Zero, controls may vary by world, but some "system controls" are always available: ESC to quit, F1 for options, F2 for sound toggle, F3 for save game, F4 for restore game, ` for screen refresh, CTRL to disable the delay before key repeating, and ALT to speed up the game. For the example world, F5 displays a help file.
08:39:36 <zzo38> arseniiv: Does that explain it?
08:40:16 <zzo38> (O, also, for ZZ Zero, you must invoke GAME with a command-line argument being the world filename without the .ZZ0 extension. For example, "GAME EXAMPLE" to load EXAMPLE.ZZ0.)
08:41:13 <arseniiv> zzo38: hm hm
08:41:27 <arseniiv> I don’t even know what ZZT is all about
08:41:50 <arseniiv> though I remember you said ZZ Zero is sort of continuation of ZZT
08:41:54 <arseniiv> IIRC
08:43:05 <zzo38> It is not really a "continuation" of ZZT, but rather more like a variant. Like some games might be called "roguelikes", so some game creation systems (including ZZT, MegaZeux, ZZ Zero, and possibly some others) could be called "ZZT-likes", I suppose.
08:44:15 <zzo38> There are many ZZT worlds available (including the ones that it was originally distributed with, such as Town of ZZT), but ZZ Zero is too new for that.
08:45:54 <zzo38> Town of ZZT doesn't really have a story as far as I can tell, although some worlds do include a story (including my own XYZABCDE.ZZT, where your wing suddenly broke while going to Mornington Crescent and now you are badly injured, with nothing except a broken wing, an unloaded gun, and no tea)
08:48:30 <zzo38> (Maybe it is a bit strange story, but that is how I did it.)
08:49:18 <kingoffrance> the no tea makes sense; its like duke nukem and "they live" all out of bubble gum
09:03:25 <zzo38> In XYZABCDE.ZZT eventually they will fix your wing. But before that there is many other stuff, such as the library that doesn't have many books left, the subway that sells tickets costing one pound per inch, a telephone call that you can push 0 to try the call the operator but calls the operetta instead, etc.
09:04:51 <zzo38> And two broken computers that you have to fix.
09:10:31 <zzo38> (And in ZZT, the tigers have guns, and I don't know why, but that is how it is in ZZT.)
09:14:32 -!- kingoffrance has quit (Ping timeout: 265 seconds).
09:15:16 -!- kingoffrance has joined.
09:38:06 <arseniiv> tigers with guns // whose appearance me stuns // and they use that as much as they can
09:43:21 -!- arseniiv has quit (Ping timeout: 250 seconds).
10:12:08 -!- Lord_of_Life has quit (Read error: Connection reset by peer).
10:14:15 -!- Lord_of_Life has joined.
10:17:54 -!- paul2520 has quit (*.net *.split).
10:23:18 -!- paul2520 has joined.
10:29:56 -!- oerjan has quit (Quit: Nite).
11:11:13 -!- b_jonas has joined.
11:23:37 <esowiki> [[Stream]] M https://esolangs.org/w/index.php?diff=67544&oldid=44358 * IFcoltransG * (+23) Added category:concepts
11:26:03 <b_jonas> ``` rm -v /hackenv/bin/STOP
11:26:09 <HackEso> removed '/hackenv/bin/STOP'
11:51:09 -!- LKoen has joined.
11:56:25 <b_jonas> `python3 -cimport secrets; s = secrets.token_urlsafe(64).translate(str.maketrans("23456789"," ")); p = 6+secrets.randbelow(64); print(s[:p]+":\x3D"+s[p:])
11:56:26 <HackEso> JT jdVitiyo La:=pG1EhwhETltFc Jj z0Sc hi yfkNIe DzWPQLCjKpJIZzCI Nm fupfKdnyt oKJDpPA
11:56:26 <bfbot> No such command. Try =help.
12:13:19 -!- LKoen has quit (Remote host closed the connection).
12:14:21 -!- LKoen has joined.
12:14:50 <fizzie> `` python3 -c 'print(repr(str.maketrans("abc", "def")))' # always wondered what those look like
12:14:51 <HackEso> ​{97: 100, 98: 101, 99: 102}
12:18:09 -!- LKoen has quit (Remote host closed the connection).
12:19:34 <b_jonas> fizzie: sadly the standard library doesn't seem to have an easy way to count the number of occurrances of a set of bytes. translate doesn't give a count unlike in perl.
12:21:44 -!- LKoen has joined.
12:37:32 <esowiki> [[User talk:Zzo38]] https://esolangs.org/w/index.php?diff=67545&oldid=67536 * YamTokTpaFa * (+164) /* I'd like to learn about AAAAAAAAAAAAAA!!!! more. */
12:44:15 -!- LKoen has quit (Remote host closed the connection).
12:47:38 -!- LKoen has joined.
12:52:32 -!- LKoen has quit (Remote host closed the connection).
12:56:35 -!- LKoen has joined.
13:01:01 -!- LKoen has quit (Remote host closed the connection).
13:06:19 -!- LKoen has joined.
13:11:10 -!- atslash has joined.
13:14:23 -!- xkapastel has joined.
13:28:37 <int-e> So Ponder This... I finally realized that I should've gathered statistics of my determined (pun!) effort... http://paste.debian.net/1118651/ is my best approach. It backs up the idea that reaching 910M is easy, and it quickly gets harder from there.
13:31:55 -!- atslash has quit (Quit: Leaving).
13:52:48 -!- LKoen has quit (Remote host closed the connection).
13:57:32 -!- LKoen has joined.
14:33:07 -!- kritixilithos has joined.
14:41:54 -!- LKoen has quit (Remote host closed the connection).
15:12:13 <b_jonas> [ %64
15:12:14 <j-bot> b_jonas: 0.015625
15:26:54 -!- FreeFull has joined.
15:27:10 <b_jonas> `python3 -cprint(2**-6)
15:27:12 <HackEso> 0.015625
15:33:15 -!- LKoen has joined.
16:27:15 -!- kspalaiologos has joined.
17:03:52 <b_jonas> kspalaiologos: oerjan found a bug in your bot
17:06:21 -!- Lord_of_Life_ has joined.
17:06:37 <kspalaiologos> it doesn't surprise me
17:06:43 <kspalaiologos> what has happened?
17:07:02 <kspalaiologos> I've got some time on my hands so I'll fix it tomorrow
17:08:37 -!- Lord_of_Life has quit (Ping timeout: 240 seconds).
17:09:14 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
17:12:07 <kspalaiologos> <oerjan> i conclude that kspalaiologos cheated even more than i thought to get the last quote
17:12:07 <kspalaiologos> <oerjan> also, i am now capable of typing his name without rechecking
17:12:07 <kspalaiologos> <oerjan> his wretched polish name is still beyond me. maybe the first part.
17:12:10 <b_jonas> look in the channel logs
17:12:19 -!- imode has joined.
17:12:23 <kspalaiologos> 1) try writing an 8ball without entropy source
17:12:41 <kspalaiologos> 3) it's not exactly Polish :p
17:12:52 <kritixilithos> you could have the negative tape cells store the time
17:12:54 <kspalaiologos> as my real name is way more complicated as my nick
17:13:00 <kspalaiologos> ^^ unportable
17:13:12 <kspalaiologos> and kinda crappy
17:13:14 <kspalaiologos> `q
17:13:15 <HackEso> 310) <zzo38> I figured out something about C program. If you use ? : a lot then you don't need as much parentheses but it makes it more difficult to understand.
17:13:18 <kspalaiologos> `q 130
17:13:19 <HackEso> 130) <alise> Phantom_Hoover: Don't be nasty; he's a lunatic, not a murderer.
17:13:19 <kspalaiologos> `q 1300
17:13:20 <HackEso> 1300) <Jafet> an #esoteric-dwelling swede / was mistaken for edible feed / “with you,” said a sicko / “our lanttulaatikko / would be very tasty indeed!”
17:13:22 <kritixilithos> fair
17:13:23 <kspalaiologos> `q 1400
17:13:24 <HackEso> No output.
17:13:26 <kspalaiologos> `q 1350
17:13:27 <HackEso> No output.
17:13:39 <kspalaiologos> please add a command to print out the last quote
17:13:43 <kspalaiologos> `q 1320
17:13:44 <HackEso> 1320) <b_jonas> I don't care for the bf backend as long as it doesn't make the rest of ayacc harder to sue
17:13:50 <kspalaiologos> `q 1321
17:13:51 <HackEso> 1321) <Taneb> ...this is the first prime number finder I've ever written which ran out of memory before finding 3
17:13:54 <kspalaiologos> `q 1326
17:13:55 <HackEso> 1326) <LKoen> kmc: it's 3am and instead of going to bed I just spent a looot of time reading a long article about circadian rythms and melatonin
17:14:02 <kspalaiologos> I'll continue the search on PM
17:14:20 <kspalaiologos> `q 1330
17:14:21 <HackEso> 1330) <kspalaiologos> =8ball what is the worst mail client? <bfbot> Outlook not so good
17:14:26 <kspalaiologos> a ha, found it straightaway
17:17:42 -!- atslash has joined.
17:22:14 -!- atslash has quit (Ping timeout: 246 seconds).
17:23:00 <b_jonas> ``` allquotes | tail -n1 # print the last quote
17:23:01 <HackEso> 1330) <kspalaiologos> =8ball what is the worst mail client? <bfbot> Outlook not so good
17:23:13 <kspalaiologos> ah yes
17:23:17 <kspalaiologos> ``` allquotes
17:23:18 <HackEso> 1) <Slereah> EgoBot just opened a chat session with me to say "bork bork bork" \ 2) <Quas_NaArt> Hmmm... My fingers and tongue seem to be as quick as ever, but my lips have definitely weakened... <Quas_NaArt> More practice is in order. \ 3) <AnMaster> that's where I got it <AnMaster> rocket launch facility gift shop \ 4) <Warrigal> GKennethR: he should be told that you should always ask someone before killing them. \ 5) <Quas_NaArt> His body
17:23:21 <kspalaiologos> I wish I knew you before
17:23:26 <b_jonas> kspalaiologos: anyway, the deterministic 8-ball is not the bug
17:23:35 <kspalaiologos> how is it
17:23:38 <kspalaiologos> eh
17:23:43 <kspalaiologos> wait a second
17:24:34 <kspalaiologos> I can't find it
17:27:19 -!- atslash has joined.
17:43:31 <b_jonas> oh, apparently you already saw that bug at https://esolangs.org/logs/2019-11-29.html#lWc before
17:44:01 <b_jonas> And it was apparently fizzie who found it, at https://esolangs.org/logs/2019-11-29.html#lxc
17:45:20 <kspalaiologos> "wait, what, bfbot, what the heck"
17:45:27 <kspalaiologos> he may have found it but I have noticed it lol
18:06:25 <esowiki> [[User talk:Zzo38]] https://esolangs.org/w/index.php?diff=67546&oldid=67545 * Zzo38 * (+156)
18:15:44 -!- xkapastel has quit (Quit: Connection closed for inactivity).
19:21:12 -!- kritixilithos has quit (Quit: quit).
20:08:02 -!- arseniiv has joined.
21:05:06 -!- kspalaiologos has quit (Quit: Leaving).
21:13:19 -!- Scrooge has quit (Quit: ZNC 1.7.3 - https://znc.in).
21:23:56 <b_jonas> `python3 -cUSD=304.13; AUD=206.11; print(USD/AUD)
21:23:57 <HackEso> 1.4755712968803065
22:01:11 <b_jonas> fungot, how do you spell Pierce Brosnan's name? you know, he's the actor who plays the best James Bond.
22:01:11 <fungot> b_jonas: and hopefully you can in opera)?
22:27:42 <b_jonas> =str 1s++++++++[->++++++++<]>+.
22:27:42 <bfbot> ok
22:27:49 <b_jonas> =def 1msg1
22:27:49 <bfbot> ok, defined 'msg1'
22:27:50 <b_jonas> =msg1
22:27:50 <bfbot> A
22:28:21 <b_jonas> =str 2s++++[->++++<]>[->++>+++>++++>+++++>++++++>+++++++<<<<<<]> >>>>.++.++++.----.+++++++++++++.>++++.---.++++.<------.+++++.---------.
22:28:21 <bfbot> ok
22:28:26 <b_jonas> =def 2hackesoquine
22:28:26 <bfbot> ok, defined 'hackesoquine'
22:28:31 <b_jonas> =str 2s++++++++[->++++++++<]>+.
22:28:31 <bfbot> ok
22:30:21 <b_jonas> ``` set -e; f=/hackenv/bin/bfbotquine; d=/hackenv/bin/STOP; >$d echo $'#!/bin/sh\nrm -fv '"$f"; >$f echo $'#!/bin/sh\nsleep 50; echo ":"="hackesoquine"; sleep 20'; chmod -c a+x $d $f
22:30:23 <HackEso> mode of '/hackenv/bin/STOP' changed from 0644 (rw-r--r--) to 0755 (rwxr-xr-x) \ mode of '/hackenv/bin/bfbotquine' changed from 0644 (rw-r--r--) to 0755 (rwxr-xr-x)
22:30:39 <b_jonas> if this loop gets out of hand, type `STOP
22:30:49 <b_jonas> if this loop gets out of hand type =def 1hackesoquine
22:30:54 <b_jonas> =hackesoquine
22:30:54 <bfbot> `bfbotquine
22:30:54 <HackEso> Mmmmm... no.
22:31:02 <b_jonas> `bfbotquine
22:31:38 <HackEso> No output.
22:33:15 <b_jonas> ``` rm -fv /hackenv/bin/bfbotquine
22:33:17 <HackEso> removed '/hackenv/bin/bfbotquine'
22:33:24 <b_jonas> =def 1hackesoquine
22:33:25 <bfbot> ok, defined 'hackesoquine'
22:33:29 <b_jonas> =hackesoquine
22:33:29 <bfbot> A
22:33:35 <b_jonas> ``` rm -fv /hackenv/bin/STOP
22:33:37 <HackEso> removed '/hackenv/bin/STOP'
22:38:22 <zzo38> If you play Scrabble with 2 players then I think that both players should expose all letters in their hand once there are no more letters to pick up from the bag
22:47:54 <int-e> I see where this comes from... but maybe you should just remove 4 random letters from the bag initially and hide them away instead.
22:48:38 <zzo38> Yes, that is another variant, but then there will not be enough letters, I think
22:52:39 <b_jonas> `python3 -cimport secrets; s = secrets.token_urlsafe(64).translate(str.maketrans("23456789"," "*8)); p = 6+secrets.randbelow(64); print(s[:p]+":\x3D"+s[p:])
22:52:40 <HackEso> xXVHLix:=JAvUrfeZtG-ERB-OiGATTYgCY CMvm0Sy0DeZw ocw D RxdrZKaMIqaFdkt vvdTbTubzonuGlDTqw
22:52:40 <bfbot> No such command. Try =help.
23:44:53 -!- arseniiv has quit (Ping timeout: 276 seconds).
23:50:10 <fizzie> https://www.coursicle.com/cmu/courses/STU/98242/ hadn't realized this was such an official thing.
←2019-10 2019-11 2019-12→ ↑2019 ↑all