←2019-10 2019-11 2019-12→ ↑2019 ↑all
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).
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=>
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.
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
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).
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.
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
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).
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.
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.
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.
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).
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: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