←2019-09-16 2019-09-17 2019-09-18→ ↑2019 ↑all
00:10:35 <moony> Anyone here messed with WebAssembly much?
00:11:18 <moony> I'm trying to figure out a clean way for WASM to generate and load WASM, and then load references to the generated functions/tables/data so that it can be used.
00:12:24 <moony> This is for a embedded impl of WASM, not the kind you'd see in a browser
00:12:40 <moony> so spec changes are possible
00:13:14 -!- arseniiv has quit (Ping timeout: 240 seconds).
00:18:37 <shachaf> Why does amd64 have both "Move imm32 to r32." and "Move imm32 to r/m32."?
00:18:56 <shachaf> I should probably look up the 32-bit encodings.
00:19:23 <shachaf> https://c9x.me/x86/html/file_module_x86_id_176.html has it too.
00:19:54 -!- FreeFull has quit.
00:20:20 <shachaf> I guess it's one byte shorter for the imm32-to-r32 case?
00:27:38 <fizzie> I've been assuming they've dedicated 8 one-byte opcodes for "MOV r32, imm32" because it's so common.
00:27:56 <fizzie> (And 8 more for "MOV r8, imm8".)
00:28:17 <shachaf> Right.
00:31:14 <shachaf> `asm .byte 0x64; lea (%rax), %rax
00:31:17 <HackEso> 0: 64 48 8d 00 lea %fs:(%rax),%rax
00:32:29 <moony> =rasm2 mov eax, 0x7f7f7f7f
00:32:34 <moony> =ping
00:32:39 -!- asdfbot has joined.
00:32:42 <moony> =rasm2 mov eax, 0x7f7f7f7f
00:32:44 <asdfbot> b87f7f7f7f
00:32:52 <moony> =rasm2 mov [ecx], 0x7f7f7f7f
00:32:52 <asdfbot> c7017f7f7f7f
00:33:00 <moony> shachaf: ^ 1 byte shorter, so yes
00:33:16 <moony> =rasm2 mov [eax], 0x7f7f7f7f
00:33:16 <asdfbot> c7007f7f7f7f
00:34:03 <shachaf> Yes, I know.
00:34:47 <moony> sorry, assumed you were unsure due to saying `i guess`
00:35:06 <shachaf> Fair enough.
00:36:27 <shachaf> I like the way VEX flips some of the REX bits so that the 32-bit encoding happens to turn into an invalid register r/m operand.
00:40:50 <shachaf> `asm .byte 0xa1
00:40:52 <HackEso> 0: a1 .byte 0xa1
00:40:54 <shachaf> How is this used?
00:41:07 <moony> oo. uh let's see
00:41:14 <moony> `cat bin/asm
00:41:16 <HackEso> ​#!/bin/sh \ echo "$1" > /tmp/asm.s; for o in ',' '-msyntax=intel -mnaked-reg,-M intel'; do if as ${o%,*} /tmp/asm.s -o /tmp/asm.o 2>>/tmp/asm.err; then objdump ${o#*,} -d --insn-width=20 /tmp/asm.o | sed -e "1,/0000000000000000/d" | perl -pe 'if (/^\s*(\w+:)\s*((?:\w\w )+)\s*(\S.*)$/) { ($a,$b,$c) = ($1,$2,$3); $_ = "$a $b ".($c =~ s/\s+/ /rg)."\n"; }'; exit; fi; done; cat /tmp/asm.err
00:41:29 <shachaf> Reference: https://www.felixcloutier.com/x86/mov
00:41:36 <shachaf> MOV EAX,moffs32
00:42:39 <moony> ..what assembler is being used? I can't tell
00:42:50 <shachaf> It's using GNU as.
00:42:58 <moony> ah
00:42:59 <shachaf> It tries both Intel and AT&T syntax.
01:15:55 <shachaf> `` echo '__thread long x; long foo(void) { return x; }' > /tmp/test.c && gcc -shared -fPIC -O2 -shared /tmp/test.c -o /tmp/test.so && objdump -d /tmp/test.so | grep -A5 'foo'
01:15:58 <HackEso> 0000000000000740 <foo>: \ 740:48 83 ec 08 sub $0x8,%rsp \ 744:66 48 8d 3d 84 08 20 data16 lea 0x200884(%rip),%rdi # 200fd0 <x@@Base+0x200fd0> \ 74b:00 \ 74c:66 66 48 e8 cc fe ff data16 data16 callq 620 <__tls_get_addr@plt> \ 753:ff
01:16:14 <shachaf> What's all this? What are those data16s doing?
01:16:52 <shachaf> Oh, wait, I just needed -fPIC to get this behavior, not -shared.
01:17:57 <shachaf> Is this just some kind of padding?
01:24:30 <fizzie> Or space for patching something? (Don't know, just a guess.)
01:25:06 <shachaf> I also don't quite get bwhy it needs a call.
01:26:14 <fizzie> There was a time when GCC defaulted to using "rep ret" when it needed to emit a return instruction that was also the target of a branch, because of a branch predictor bug on AMD processors.
01:26:54 <fizzie> Presumably faster than "nop; ret".
01:26:57 <shachaf> `1 echo '__thread long x; long foo(void) { return x; }' > /tmp/test.c && gcc -shared -fPIC -O2 /tmp/test.c -S -o /dev/stdout
01:27:00 <HackEso> 1/2:.file"test.c" \ .text \ .p2align 4,,15 \ .globlfoo \ .typefoo, @function \ foo: \ .LFB0: \ .cfi_startproc \ subq$8, %rsp \ .cfi_def_cfa_offset 16 \ .byte0x66 \ leaqx@tlsgd(%rip), %rdi \ .value0x6666 \ rex64 \ call__tls_get_addr@PLT \ movq(%rax), %rax \ addq$8, %rsp \ .cfi_def_cfa_offset 8 \ ret \ .cfi_endproc \ .LFE0: \ .sizefoo, .-foo \ .globlx \ .section.tbss,"awT",@nobits \ .align 8 \ .typex, @object \ .sizex,
01:27:19 <shachaf> Even -S explicitly generates ".value 0x6666".
01:29:08 <fizzie> For the call, I think a bunch of the @PLT stuff involves calls that get patched out on first call, so maybe it's space for that. Don't remember any of the details though.
01:29:46 <esowiki> [[SIG]] https://esolangs.org/w/index.php?diff=66206&oldid=19939 * YamTokTpaFa * (+42)
01:30:06 <shachaf> It's the same deal with -fno-plt
01:30:19 <shachaf> (Good gcc flags I found out about recently. I think I'll compile all my program with -fno-plt now.)
01:30:38 <kmc> what's it do
01:31:36 <shachaf> Compiles dynamic linker calls to "callq *offset(%rip)"
01:31:45 <shachaf> Where offset is an offset into the GOT.
01:31:58 <shachaf> It means you can't do lazy loading, but lazy loading doesn't seem great to me anyway.
01:32:02 <kmc> yeah
01:32:15 <kmc> and it means you always have an indirect call
01:32:17 <shachaf> (Actually you probably could do lazy loading if you really wanted to.)
01:32:19 <fizzie> shachaf: Well, maybe TLS involves some of the same kind of shenanigans, it's a TLA as well.
01:32:20 <kmc> rather than a direct call and a direct jump?
01:32:23 <shachaf> But the PLT has an indirect call anyway!
01:32:27 <kmc> does it?
01:32:33 <shachaf> Yes. It has the same call.
01:32:36 <kmc> doesn't it self-modify to remove it
01:32:38 <shachaf> So you get a direct call *and* an indirect call.
01:32:46 <shachaf> Nope, it's scow.
01:33:01 <shachaf> Or... Hmm, does it?
01:33:12 <fizzie> I'm sure it involved self-modification *somewhere*.
01:33:19 <shachaf> OK, I should double-check.
01:33:35 <shachaf> I'm pretty sure the PLT doesn't turn +w at runtime, though.
01:34:14 <fizzie> Maybe it used to self-modify, but then security happened.
01:34:23 <fizzie> Stacks used to be executable too.
01:34:27 <shachaf> But this is the amd64 ABI. It's all different for 86 anyway.
01:34:29 <shachaf> x
01:34:31 <kmc> if you use ld -z now, or whatever
01:34:37 <kmc> then it should do the self modification before main()
01:34:38 <kmc> maybe?
01:34:48 * kmc execute fizzie's stack
01:35:19 <fizzie> fungot: You're all about stacks and stack stacks, right? Are they executable?
01:35:20 <fungot> fizzie: the problematic part is that no annotations are produced/ maintained for expanded syntax form of f, and y
01:36:03 <shachaf> kmc: It doesn't look that way.
01:36:07 <kmc> ok
01:36:14 <shachaf> Even on the second call, even with -z now.
01:36:18 <kmc> fat stacks of cache
01:36:21 <kmc> ok
01:36:23 <kmc> welp
01:36:23 <shachaf> At least based on gdbing it up.
01:36:48 <shachaf> I think it's probably fine and no one should expect dynamically linked calls to be extremely efficient.
01:37:00 <shachaf> Instead, they should stop dynamic linking, and only use it where necessary.
01:37:20 <kmc> God Damn these Bampires
01:38:21 <shachaf> I think this is reasonable, because no one expects Programming Language Theory types to generate efficient code.
01:43:46 -!- Sgeo_ has joined.
01:44:41 <fizzie> If that's definitely never writable, then I don't know what those extra prefix bytes could be for. Something something alignment performance?
01:45:27 <fizzie> Honestly I'd expect that explanation only between functions and branches, not in bytes that are actually executed.
01:45:34 <shachaf> It could be that the linker could want that extra space at link time, in some cases?
01:46:19 <shachaf> But I don't know how that would work.
01:46:26 -!- Sgeo has quit (Ping timeout: 240 seconds).
01:47:56 -!- tromp_ has quit (Remote host closed the connection).
01:48:20 <shachaf> Why is __tls_get_addr a function call, anyway?
01:50:51 <shachaf> `1 echo '__thread long x; long foo(void) { return x; }' > /tmp/test.c && gcc -shared -fPIC -Os /tmp/test.c -S -o /dev/stdout
01:50:53 <HackEso> 1/2:.file"test.c" \ .text \ .globlfoo \ .typefoo, @function \ foo: \ .LFB0: \ .cfi_startproc \ subq$8, %rsp \ .cfi_def_cfa_offset 16 \ .byte0x66 \ leaqx@tlsgd(%rip), %rdi \ .value0x6666 \ rex64 \ call__tls_get_addr@PLT \ movq(%rax), %rax \ popq%rdx \ .cfi_def_cfa_offset 8 \ ret \ .cfi_endproc \ .LFE0: \ .sizefoo, .-foo \ .globlx \ .section.tbss,"awT",@nobits \ .align 8 \ .typex, @object \ .sizex, 8 \ x: \ .zero8 \
01:51:12 <shachaf> It generates that even with -Os so I doubt it's an instruction alignment thing.
02:01:49 <fizzie> https://www.fsfla.org/~lxoliva/writeups/TLS/RFC-TLSDESC-x86.txt might explain it. AFAICT it describes a proposal that looks different, but it also talks about the "existing ABI" which looks like that.
02:03:10 <shachaf> Aha, https://akkadia.org/drepper/tls.pdf
02:03:17 <shachaf> Page 22.
02:04:35 -!- Sgeo_ has quit (Read error: Connection reset by peer).
02:06:00 -!- Sgeo has joined.
02:09:26 <fizzie> Yes, was just reading that.
02:09:52 <shachaf> "The call instruction has to be preceeded by two data16 prefixes and one rex64 prefix to increase the total size of the whole sequence to 16 bytes."
02:10:39 <fizzie> IIRC, Intel specifically says that sort of thing is not allowed.
02:10:50 <shachaf> What sort of thing?
02:11:53 <fizzie> Well, prefix abuse. Or it definitely says that about some classes of that sort of thing, not necessarily all of it.
02:12:03 <moony> fizzie: pretty sure the reason is because old nephelem CPUs would fall to a decoding stall if you mucked with prefixes like that. (Source: using a nephelem CPU right now)
02:13:02 <fizzie> "Other use of the 66H prefix is reserved; such use may cause unpredictable behavior."
02:13:36 <shachaf> Something about the REX prefix specifies that 0x66 is ignored when used with REX, though.
02:16:22 <moony> hmm
02:16:25 <moony> ok
02:16:37 <moony> the code they show may actually play nice on nephalem
02:16:40 <moony> which suprises me
02:17:03 <moony> it's under 6 instrs in 16 bytes, perfect size for the nephalem decoder
02:17:14 <shachaf> Man, this "large code model" where your text segment is bigger than 2GB sounds like a nightmare.
02:17:25 <moony> of course..
02:17:27 <moony> yea
02:17:33 <moony> that code also does trigger the length changing prefix penalty
02:17:33 <shachaf> Presumably you should be banned from using computers if that ever happens.
02:18:05 <moony> presumably twice
02:18:14 <moony> wasting 12 cycles because of the two 66h prefixes
02:18:44 -!- tswett[m] has quit (Read error: Connection reset by peer).
02:19:03 -!- ivzem[m] has quit (Remote host closed the connection).
02:19:12 -!- xylochoron[m] has quit (Read error: Connection reset by peer).
02:19:12 -!- wmww has quit (Read error: Connection reset by peer).
02:19:14 -!- Camto[m] has quit (Remote host closed the connection).
02:19:17 <shachaf> What's the reason for making that sequence 16 bytes?
02:19:17 <fizzie> Yes, there's a bit that says "if a 66H prefix is used with prefix (REX.W = 1), 66H is ignored". Although I think you could reasonably argue that's not meant to say you could put 66H in wherever.
02:19:50 <fizzie> The document was too hard to read, I was thinking it has something to do with those special relocation types under specific circumstances needing that space.
02:19:58 <fizzie> Think I'll sleep instead, though.
02:21:18 <moony> shachaf: seems to be the decoder width for a lot of modern CPUs
02:21:50 <moony> so it helps with some decoding stalls to make it fit
02:24:08 <shachaf> I'm not quite sure why this is a function call at all.
02:24:45 <shachaf> Looking at the implementation in musl, it seems to claim this function uses things that are part of the public ABI?
02:26:26 -!- Camto[m] has joined.
02:47:28 -!- xylochoron[m] has joined.
02:47:28 -!- wmww has joined.
02:47:28 -!- tswett[m] has joined.
02:47:35 -!- ivzem[m] has joined.
02:50:54 -!- tswett[m] has quit (*.net *.split).
02:50:54 -!- Camto[m] has quit (*.net *.split).
02:50:54 -!- Taneb has quit (*.net *.split).
02:50:54 -!- zemhill_________ has quit (*.net *.split).
02:51:12 -!- Camto[m] has joined.
02:56:18 -!- tswett[m] has joined.
02:56:18 -!- Taneb has joined.
02:56:18 -!- zemhill_________ has joined.
02:56:24 -!- tswett[m] has quit (Changing host).
02:56:24 -!- tswett[m] has joined.
03:16:21 -!- tromp has joined.
03:17:36 -!- tromp_ has joined.
03:18:58 -!- tswett[m] has quit (*.net *.split).
03:18:58 -!- Taneb has quit (*.net *.split).
03:18:58 -!- zemhill_________ has quit (*.net *.split).
03:19:16 -!- tswett[m] has joined.
03:21:14 -!- tromp has quit (Ping timeout: 276 seconds).
03:22:32 -!- tromp_ has quit (Ping timeout: 276 seconds).
03:24:19 -!- Taneb has joined.
03:24:19 -!- zemhill_________ has joined.
03:34:48 -!- j-bot has quit (Ping timeout: 244 seconds).
03:38:14 -!- hppavilion[1] has quit (Remote host closed the connection).
03:38:43 -!- hppavilion[1] has joined.
04:05:05 -!- Frater_EST has joined.
04:35:06 -!- Lord_of_Life has quit (Ping timeout: 246 seconds).
04:37:30 -!- Lord_of_Life has joined.
05:28:11 -!- Sgeo_ has joined.
05:30:50 -!- Sgeo has quit (Ping timeout: 240 seconds).
05:31:42 * ski . o O ( Upper and lower case <https://pbs.twimg.com/media/Dbo0pbiWkAErHPD?format=jpg&name=4096x4096> )
05:40:54 <int-e> ski: oh wow
05:43:47 <int-e> (I don't think I've ever questioned the etymology of those phrases.)
05:45:28 <int-e> ski: Now does that mean that shift-o (for example) can produce any of A, B, H or I?
06:32:07 -!- hppavilion[1] has quit (Ping timeout: 268 seconds).
06:36:30 <FireFly> but the etymology of shifting is separate.. :p
06:36:58 <FireFly> well, AFAIK at least
06:45:51 <int-e> FireFly: Yeah different (and more advanced) technology :)
06:46:40 <int-e> But that was easy for me because I did play with a mechanical type writer as a kid.
07:01:14 * FireFly nods
07:10:13 <olsner> since I accidentally read about that a couple of months ago I can smugly pretend I always knew about upper and lower case
07:13:51 <int-e> olsner: please do
07:14:24 <shachaf> hi olsner
07:14:30 <shachaf> long time nolsner
07:14:41 <shachaf> `? olsner
07:14:44 <HackEso> olsner seems to exist at least. He builds all his esolangs in diesel engines. His poetry's alphanumeric.
07:16:19 <int-e> hmm, amend to "alphanumeric, both lower and upper case"
07:16:26 <int-e> or not?
07:18:22 -!- olsner has quit (Ping timeout: 246 seconds).
07:18:39 -!- tromp has joined.
07:28:30 -!- olsner has joined.
08:13:44 -!- imode has quit (Ping timeout: 276 seconds).
08:22:47 -!- imode has joined.
08:28:40 -!- imode has quit (Ping timeout: 268 seconds).
08:41:49 -!- wib_jonas has joined.
08:43:11 <wib_jonas> int-e: I'm getting old. apparently there are now people who haven't played with mechanical typewriters while they were young.
08:43:39 <Taneb> wib_jonas: I didn't get to play with a mechanical typewriter until I was 18
08:45:58 <int-e> wib_jonas: I bet some of them have never even properly dialed a phone number
08:46:16 <wib_jonas> fizzie: it's more complicated than that. the intel docs hides some quite complicated rules for what prefix you can use for what instructions, when it doesn't change the meaning, when it means what the prefix normally means, when it changes to a different instruction, and when the combination is reserved in which case the cpu can either raise an
08:46:16 <wib_jonas> undefined instr exception or ignore the prefix,
08:46:24 <int-e> (and by "some" I mean "most")
08:46:43 <int-e> Or tuned a radio.
08:47:17 <wib_jonas> and they sometimes use reserved ignored combos to add new meanings to the prefixes, like how the rep prefixes can now mean a probably or improbably branch or a transactional memory prefix,
08:47:46 <wib_jonas> and the optimization manuals also say some things about what's slow and fast to decode, and this specifically differs between intel and amd a lot.
08:47:53 <Taneb> Oh wow, this conversation is making me feel young
08:48:33 <wib_jonas> int-e: what? you can still tune radios, you just usually issue the commands digitally via buttons or fake dials that work all digital
08:49:31 <int-e> wib_jonas: it's just not the same without fading, and temperature/moisture sensitive capacitors.
08:49:36 <wib_jonas> dialing a phone number is sort of a better example, but that's also a discriminator for younglings. I have made a phone call from a phone where the only option was to ask the number from an operator, because there was no dial.
08:50:29 <wib_jonas> only a few times during my life, because at home and basically everywhere in town we had dialer phones and automated phone switch stations, so I only had to call through an operator if I wanted a reverse cost call
08:50:47 <int-e> (tbf I really grew up with frequency modulation which did away with most of the fading issues already)
08:51:47 <wib_jonas> int-e: sure, but even on FM we get a lot of artifacts from it being analog, especially noticable if you are in a place with poor reception and the amount of noise changes depending on which direction you're holding the wire of the headphones that function as an antenna
08:54:32 <int-e> But mostly I'm interested in this because of outdated phrases that are still in use as idioms. Dialing a phone number, hanging up on somebody, tuning into a radio station (at least in the form of "tune in again tomorrow")...
08:55:41 <shachaf> Hmm, now I'm not sure what the origin of "tune" is.
08:55:56 <wib_jonas> heck, these days there are even messed up android phones where, after typing your PIN code on a touchscreen, if you touch the # button on the touchscreen, instead of accepting your entry, it erases the last digit from it.
08:56:05 <wib_jonas> I don't understand interfaces
08:56:11 <Taneb> shachaf: adjusting a frequency is called tuning in music as well
08:56:32 <shachaf> Was that the origin?
08:56:33 -!- cpressey has joined.
08:56:38 <Taneb> Variant of "tone"
08:56:42 <shachaf> They're two different kinds of frequencies.
08:56:59 <int-e> You're tuning a resonance circuit to the right frequency.
08:57:37 <Taneb> I think it was used as "adjusting for optimum perfomance" as an extension of the music term
08:57:55 <int-e> Typically using a variable capacitor (which stand out when you take apart an old radio: https://en.wikipedia.org/wiki/Variable_capacitor )
08:59:21 <cpressey> Kids these days tune machine-learning algorithms instead of radios
08:59:24 <int-e> Oh the diagram on that page totally ignores the spiral nature of the blades in the rotor...
09:01:54 <int-e> It almost feels like I grew up in the previous century ;-)
09:03:40 <cpressey> shachaf: I couldn't sleep last night and I wrote a page trying to explain what I was talking about yesterday re semantics.
09:03:47 <cpressey> But I think I can summarize it.
09:03:56 <wib_jonas> I don't know how the radio hardware actually works, I only know it from a user's perspective
09:05:05 <wib_jonas> radios were reliable enough in my childhood that we no longer needed to service them, like replace vacuum tubes and capacitors (they didn't have vacuum tubes anymore), so I didn't have to know the details
09:05:16 <cpressey> OK, maybe I can't summarize it
09:06:01 <int-e> wib_jonas: there was a reason why I wrote "take apart" rather than "repair" ;-)
09:06:27 <shachaf> Semantics?
09:06:32 <cpressey> shachaf: Never mind
09:06:42 <cpressey> shachaf: Good luck on your language.
09:07:05 <shachaf> Uh oh.
09:07:10 <int-e> wib_jonas: There was a mechanical side to this as well of course... tuning knobs were liable to break.
09:07:18 <shachaf> I can't tell whether I said something mega-rude just now.
09:08:37 <cpressey> shachaf: No, you didn't.
09:09:06 <cpressey> I just feel like there's something I'd like to communicate to you, but also feel like Sisyphus
09:09:25 -!- tromp has quit (Remote host closed the connection).
09:09:40 <cpressey> No, not quite Sisyphus.
09:09:46 <cpressey> Getting my metaphors mixed up.
09:09:58 <cpressey> Feels like pushing water uphill, maybe that's it.
09:10:27 <Taneb> I feel like I'm eating a yoghurt
09:10:48 <int-e> Taneb: Are you eating a yoghurt?
09:10:51 <Taneb> int-e: yes
09:10:57 <Taneb> How did you know?
09:10:57 <cpressey> Also, I have to solve a horrible problem with time zones, and it's burning a hold in my head
09:11:04 <int-e> Taneb: Then that seems to be no reason for concern.
09:11:13 <shachaf> I have a horrible problem with time zones.
09:11:18 <Taneb> int-e: thank goodness
09:11:24 <shachaf> The problem is that you're always here when I should be asleep?
09:11:37 <Taneb> cpressey: the thing to remember with time zones, is that there's four simultaneous days in a single rotation of the time cube
09:11:41 <int-e> Taneb: Of course you shouldn't take my word for it. I'm just a stranger on the Internet.
09:12:43 <shachaf> You're just a stranger on the Internet? Says who?
09:12:59 <int-e> A stranger on the Internet. Duh!
09:13:22 <Taneb> int-e: I have met someone in person who claimed to be you
09:13:46 <int-e> Taneb: Heh, that did happen.
09:14:14 -!- tromp has joined.
09:15:17 <shachaf> I didn't know int-e had so many impostors.
09:15:37 <int-e> shachaf: Oh did you meet one of those?
09:15:47 <wib_jonas> cpressey: what is it burning? a _hold_ or a _hole_?
09:16:25 <shachaf> I didn't, no.
09:16:45 <wib_jonas> int-e has impostors? are they like evil twins?
09:16:56 <int-e> Not at all.
09:17:13 <int-e> Impostors don't have goatees to tell them apart from the original.
09:17:29 <Taneb> Impostors might also have different birthdays
09:17:59 <Taneb> (although not necessarily)
09:18:01 <wib_jonas> int-e: you can't tell them apart from the original because the original is evil too
09:19:23 <int-e> Taneb: twins can be born on different days (close to midnight)
09:20:04 <wib_jonas> Taneb: correct. I told about how I want to make another similar language similar to Consumer Society, so that in one programs have properly nested braces and in the other they have properly matched brackets, and if you want to parse both, choosing according to which one is properly nested, the resulting union language has a syntax that is an
09:20:05 <wib_jonas> intrinsically ambiguous context-free language,
09:20:19 <shachaf> If twins are born on different days they're called siblings.
09:20:30 <wib_jonas> and these too languages are mutually evil sibling languages of each other, but in fact Consumer Society is significantly younger than its sibling.
09:20:58 <wib_jonas> shachaf: no, they're still twins if they were conceived close to each other but happen to be born across a day change
09:21:31 <int-e> ""
09:21:31 <int-e> Twins can be born in different decades, as happened as 2009 changed to 2010 and a pair of Florida twins came into the world on each side of the dividing line.
09:21:46 <cpressey> What if one twin is born during daylight savings and the other isn't
09:22:00 <int-e> Why, Firefox, do you put extra newlines at the beginning of a paste...
09:22:02 <shachaf> wib_jonas: Yes, they're still twins
09:22:18 <int-e> s/paste/selection/
09:22:29 <cpressey> The one delivered second is younger than the other one by an hour
09:23:53 <int-e> cpressey: Hmm it could be more interesting when switching back from DST... old twin born 2:59am, young twin 2:01am, same day.
09:24:26 <int-e> (or whenever the switch happens exactly)
09:25:00 <wib_jonas> cpressey: yes. and if you travel from america to europe, you become six hours older, but you count as three year older for drinking age purposes
09:27:37 <shachaf> int-e: You could also cross a time zone border presumably.
09:28:11 <shachaf> Admittedly temporal time zone borders are much sketchier than spacial ones.
09:28:25 <Taneb> Hmm, with time zone borders it's possible for the older twin to have the later birthday
09:29:29 <shachaf> `grWp twin
09:29:31 <HackEso> ​*:Twinkle, twinkle, little star! \ ☆:Twinkle, twinkle, little star! \ ☾_:☾_ is moon_'s lawful twin. He's banned in the IRC RFC for being an invalid character. He sometimes eats papers. \ boorjan:boorjan is oerjan's uneducated twin. \ c#:C Pound is Java's good twin. \ myname:myname is not your name. You don't know what they are doing. Or you are doing. Or am I? He is Perl's evil twin brother. \ orin:orin is oren's evil twin, stalking him from the o
09:29:32 <wib_jonas> shachaf: that's not practical though, because there are few places convenient for births that are split among multiple timezones
09:30:17 <shachaf> `2 grWp twin
09:30:26 <HackEso> 2/3: other side of the international date line. \ örjan:Örjan is the diæresed twin. He will punctuate your vöẅëls, and maybe a few other unsuspecting letters. \ ørjan:Your pal Ørjan is oerjan's good twin. He's banned in the IRC RFC for being an invalid character. Sometimes he publishes papers without noticing it. \ owrjan:owrjan is oerjan's wise twin. \ pico:pico is the useless twin of nano. \ sewerjan:sewerjan is oerjan's extremely poor twin. \
09:31:17 -!- ArthurStrong has joined.
09:31:31 <shachaf> wib_jonas: I think births en route to hospitals happen sometimes.
09:31:32 <Taneb> wib_jonas: hmm, certain places in the US I think
09:31:35 <shachaf> https://www.theepochtimes.com/supermom-delivers-her-own-twins-in-moving-car-while-giving-husband-directions-to-the-hospital_2817854.html
09:31:53 <shachaf> Presumably you could cross a border while hurrying to a hospital.
09:33:04 <wib_jonas> Taneb: yeah, they have weird timezones, especially near semi-autonomous native american territories
09:33:37 <wib_jonas> I'm not saying that it's impossible, it's just usually inconvenient for the pregnant mother
09:33:53 <shachaf> Birth in general is quite an inconvenient process, I hear.
09:34:29 <shachaf> `n
09:34:31 <HackEso> 1/3:*:Twinkle, twinkle, little star! \ ☆:Twinkle, twinkle, little star! \ ☾_:☾_ is moon_'s lawful twin. He's banned in the IRC RFC for being an invalid character. He sometimes eats papers. \ boorjan:boorjan is oerjan's uneducated twin. \ c#:C Pound is Java's good twin. \ myname:myname is not your name. You don't know what they are doing. Or you are doing. Or am I? He is Perl's evil twin brother. \ orin:orin is oren's evil twin, stalking him from the
09:34:39 <shachaf> Hmm?
09:34:49 <shachaf> How did that happen?
09:34:54 <shachaf> `2 grWp twin
09:34:57 <HackEso> 2/3: other side of the international date line. \ örjan:Örjan is the diæresed twin. He will punctuate your vöẅëls, and maybe a few other unsuspecting letters. \ ørjan:Your pal Ørjan is oerjan's good twin. He's banned in the IRC RFC for being an invalid character. Sometimes he publishes papers without noticing it. \ owrjan:owrjan is oerjan's wise twin. \ pico:pico is the useless twin of nano. \ sewerjan:sewerjan is oerjan's extremely poor twin. \
09:34:58 <wib_jonas> shachaf: yeah, because it usually comes with a tight deadline that's not announced early enough, so the mother and all the helpers don't get an early enough warning for when they have to prepare for birth. it's really rude I think.
09:34:59 <shachaf> `n
09:35:01 <HackEso> 1/3:*:Twinkle, twinkle, little star! \ ☆:Twinkle, twinkle, little star! \ ☾_:☾_ is moon_'s lawful twin. He's banned in the IRC RFC for being an invalid character. He sometimes eats papers. \ boorjan:boorjan is oerjan's uneducated twin. \ c#:C Pound is Java's good twin. \ myname:myname is not your name. You don't know what they are doing. Or you are doing. Or am I? He is Perl's evil twin brother. \ orin:orin is oren's evil twin, stalking him from the
09:35:04 <shachaf> `n
09:35:08 <HackEso> 3/3:twint-e:twint-e is int-e's stupid twin. He sometimes hijacks int-e's keyboard and spouts nonsense. \ typoerjan:typoerjan is oerjan's clumsy twin. \ אrjan:אrjan is oerjan's first uncountable twin. He's inconsistent with the ZFC axioms.
09:35:16 <shachaf> That seems like a bug.
09:35:27 <int-e> `? bug
09:35:31 <HackEso> bug? ¯\(°​_o)/¯
09:35:38 <int-e> `grWp feature
09:35:40 <HackEso> ​ä:Ä is a Swedish geographical feature. \ degenerate:Degenerate things are those that have been featured on the Ellen DeGeneres Show. The subjects of this sui degeneris program include spaghoti sauce, talking spheres of zero volume, and watches without mustard. \ eyebrow:Eyebrows are Taneb's most notable feature. \ intercal:INTERCAL has excellent features for modular program for the enterprise market. \ java:Java is a programming-language shaped collec
09:36:21 <shachaf> `cat bin/n
09:36:22 <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
09:36:24 <wib_jonas> in normal jobs, when you have to stand by day and night to react quickly to emergencies, either they pay you lots of money for that, or at least people of the profession occasionally complain loudly why the government cheats them out of the money they are awed. but mothers usually don't get that sort of wage even if they have to stand by all the
09:36:24 <wib_jonas> time just in case there's an urgent birth.
09:39:48 <shachaf> I don't get it.
09:40:21 <shachaf> `` line=1; len="$(awk 'END{print NR}' /hackenv/tmp/spout)"; echo -n "$line/$len:"; echo "$((line<len?line+1:1))"
09:40:27 <HackEso> 1/3:2
09:40:29 <shachaf> `` line=2; len="$(awk 'END{print NR}' /hackenv/tmp/spout)"; echo -n "$line/$len:"; echo "$((line<len?line+1:1))"
09:40:31 <HackEso> 2/3:3
09:40:36 <shachaf> `` line=3; len="$(awk 'END{print NR}' /hackenv/tmp/spout)"; echo -n "$line/$len:"; echo "$((line<len?line+1:1))"
09:40:37 <HackEso> 3/3:1
09:40:56 <shachaf> `n 1
09:40:57 <HackEso> 1/3:*:Twinkle, twinkle, little star! \ ☆:Twinkle, twinkle, little star! \ ☾_:☾_ is moon_'s lawful twin. He's banned in the IRC RFC for being an invalid character. He sometimes eats papers. \ boorjan:boorjan is oerjan's uneducated twin. \ c#:C Pound is Java's good twin. \ myname:myname is not your name. You don't know what they are doing. Or you are doing. Or am I? He is Perl's evil twin brother. \ orin:orin is oren's evil twin, stalking him from the
09:41:04 <shachaf> `n
09:41:06 <HackEso> 3/3:twint-e:twint-e is int-e's stupid twin. He sometimes hijacks int-e's keyboard and spouts nonsense. \ typoerjan:typoerjan is oerjan's clumsy twin. \ אrjan:אrjan is oerjan's first uncountable twin. He's inconsistent with the ZFC axioms.
09:41:10 <shachaf> What's all this?
09:41:34 <wib_jonas> shachaf: I just use | tail -n+4 and stuff like that for greps
09:41:37 <shachaf> `n 1
09:41:39 <HackEso> 1/3:*:Twinkle, twinkle, little star! \ ☆:Twinkle, twinkle, little star! \ ☾_:☾_ is moon_'s lawful twin. He's banned in the IRC RFC for being an invalid character. He sometimes eats papers. \ boorjan:boorjan is oerjan's uneducated twin. \ c#:C Pound is Java's good twin. \ myname:myname is not your name. You don't know what they are doing. Or you are doing. Or am I? He is Perl's evil twin brother. \ orin:orin is oren's evil twin, stalking him from the
09:41:41 <wib_jonas> for greps through HackEso
09:41:53 <shachaf> `cat tmp/spline
09:41:55 <HackEso> 2
09:41:55 <wib_jonas> I don't trust all these fancy scripts
09:42:10 <shachaf> `n
09:42:13 <HackEso> 3/3:twint-e:twint-e is int-e's stupid twin. He sometimes hijacks int-e's keyboard and spouts nonsense. \ typoerjan:typoerjan is oerjan's clumsy twin. \ אrjan:אrjan is oerjan's first uncountable twin. He's inconsistent with the ZFC axioms.
09:42:16 <shachaf> `n 1
09:42:18 <HackEso> 1/3:*:Twinkle, twinkle, little star! \ ☆:Twinkle, twinkle, little star! \ ☾_:☾_ is moon_'s lawful twin. He's banned in the IRC RFC for being an invalid character. He sometimes eats papers. \ boorjan:boorjan is oerjan's uneducated twin. \ c#:C Pound is Java's good twin. \ myname:myname is not your name. You don't know what they are doing. Or you are doing. Or am I? He is Perl's evil twin brother. \ orin:orin is oren's evil twin, stalking him from the
09:42:22 <shachaf> `n 2
09:42:23 <HackEso> 2/3: other side of the international date line. \ örjan:Örjan is the diæresed twin. He will punctuate your vöẅëls, and maybe a few other unsuspecting letters. \ ørjan:Your pal Ørjan is oerjan's good twin. He's banned in the IRC RFC for being an invalid character. Sometimes he publishes papers without noticing it. \ owrjan:owrjan is oerjan's wise twin. \ pico:pico is the useless twin of nano. \ sewerjan:sewerjan is oerjan's extremely poor twin. \
09:42:37 <shachaf> How are those different?
09:42:40 <shachaf> `n 1
09:42:42 <HackEso> 1/3:*:Twinkle, twinkle, little star! \ ☆:Twinkle, twinkle, little star! \ ☾_:☾_ is moon_'s lawful twin. He's banned in the IRC RFC for being an invalid character. He sometimes eats papers. \ boorjan:boorjan is oerjan's uneducated twin. \ c#:C Pound is Java's good twin. \ myname:myname is not your name. You don't know what they are doing. Or you are doing. Or am I? He is Perl's evil twin brother. \ orin:orin is oren's evil twin, stalking him from the
09:42:45 <shachaf> `cat /hackenv/tmp/spline
09:42:46 <HackEso> 2
09:42:59 <shachaf> line="${1-$(cat /hackenv/tmp/spline)}"
09:43:09 <shachaf> What am I missing?
09:43:46 <int-e> hmm
09:44:05 <int-e> something to do with the two-phase commit logic in hackeso?
09:44:17 <shachaf> Oh, oh, right!
09:44:31 <shachaf> Why did that never come up before?
09:44:44 <int-e> `hurl bin/n
09:44:46 <HackEso> https://hack.esolangs.org/repo/log/tip/bin/n
09:45:01 <wib_jonas> dunno, but I did see a few days ago that hackeso runs all my writes to /hackenv/tmp twice
09:45:20 <int-e> no clue, the script seems unchanged since 2017
09:45:53 <shachaf> Of course it could write extra state to tmp/ to track this.
09:45:58 <shachaf> Is there a good solution?
09:46:35 <wib_jonas> ``` mkdir /hackenv/tmp/0KpPun-ahPnp
09:46:35 <int-e> we should ask fizzie what changed first, maybe?
09:46:37 <HackEso> mkdir: cannot create directory '/hackenv/tmp/0KpPun-ahPnp': File exists
09:46:43 <wib_jonas> ``` mkdir /hackenv/tmp/I3ZdY_oWgTHb
09:46:44 <HackEso> mkdir: cannot create directory '/hackenv/tmp/I3ZdY_oWgTHb': File exists
09:46:56 <wib_jonas> ^ tries to create the directory twice, which is why I get the EEXISTS the second tiem
09:47:55 <wib_jonas> whereas I assumed that if I only write to tmp, not elsewhere, then usually it's only ran once, unless some other statement is also running
09:48:57 <shachaf> fizzie: Do you know what changed?
09:49:14 <int-e> shachaf: or maybe we should check the logs ;)
09:49:34 <int-e> (Q: did this ever work?)
09:50:16 <int-e> `2 grwp dual
09:50:20 <shachaf> I wrote this thing originally and I'm pretty sure it worked then.
09:50:30 <HackEso> 2/3:he Matrix, eventually gaining increased individuality and becoming a threat to the Machines themselves. \ nundrum:A nundrum is the categorical dual of a conundrum: a problem whose solution is useless. \ palindrome:A palindrome is a word that remains the same if you take it to the mirror dimension, and then take each individual letter back to the normal dimension separately. \ sober space:Sober spaces are the dual of Stoned spaces. Taneb invented them.
09:50:34 <int-e> `n
09:50:37 <HackEso> 1/3:block device:Block devices are a concession made in Unix to make raw hard disks and magnetic tape have a similar interface to regular files and terminals. Since magnetic tapes can't write individual bytes, only entire blocks, the interface isn't exactly the same, thus the dreaded dd obs= option was born. \ comonad:Comonads are just monads in the dual category. They are hard to get into. \ elrond:Elrond is a rogue program originally created to police t
09:51:14 <shachaf> It seems to have worked as recently as last month.
09:51:20 <int-e> yeah still worked in August
09:51:49 <wib_jonas> ``` hg log -T "{date|isodate}\n" # and we didn't write anything in the versioned parts
09:51:51 <HackEso> 2019-09-13 12:14 +0000 \ 2019-09-13 12:14 +0000 \ 2019-09-13 12:13 +0000 \ 2019-09-13 11:19 +0000 \ 2019-09-13 11:17 +0000 \ 2019-09-13 11:15 +0000 \ 2019-09-13 10:44 +0000 \ 2019-09-13 10:43 +0000 \ 2019-09-13 10:13 +0000 \ 2019-09-13 10:09 +0000 \ 2019-09-13 09:36 +0000 \ 2019-09-13 09:32 +0000 \ 2019-09-13 09:32 +0000 \ 2019-09-13 09:31 +0000 \ 2019-09-08 02:18 +0000 \ 2019-09-08 02:17 +0000 \ 2019-09-01 19:25 +0000 \ 2019-08-29 20:48 +0000 \ 2019-08-29
09:51:52 <int-e> 2019-08-14
09:53:08 <int-e> Err, make that August 22nd
09:53:34 <shachaf> But with my understanding of the HackEso commit behavior, it shouldn't have worked before either.
09:53:35 <int-e> That's the last working `n with more than two entries that I've found.
09:54:22 <shachaf> Shouldn't even one-entry `n have this issue?
09:54:23 <int-e> I forgot why, but I did think that it only ran the command a second time if it actually detected a change.
09:54:28 <shachaf> Er, two-entry.
09:54:36 <shachaf> `5 w
09:54:41 <HackEso> 1/1:mirth//Mirths are juvenile moths. They giggle a lot. \ 8/8/8/8/8/8/8/8//8/8/8/8/8/8/8/8 is an empty chess board in FEN. \ wisdoom//Wisdoom is realizing just too late how you could have avoided your demise. \ css//CSS are confusing style sheets. \ impomatic//impomatic never did anything weird enough to get into this database.
09:54:44 <shachaf> `5
09:54:45 <int-e> shachaf: No, since the line number is set up by the `2 command?
09:54:47 <HackEso> 1/2:561) <fizzie> It's a bit like a regular monowheel, except when you brake too hard, instead of you going around and around inside the wheel, the (1100lb) wheel rolls over you. \ 488) <fizzie> "Do a sea monster while whatever." \ 223) <fizzie> $ perl -e '/? <-- HERE/' Quantifier follows nothing in regex; marked by <-- HERE in m/? <-- HERE <-- HERE/ at -e line 1. \ 215) <Vorpal> !bfjoust test (++-)*1000000 <Vorpal> probably will suck <EgoBot> Scor
09:54:49 <int-e> `cat bin/2
09:54:50 <HackEso> ​\` "$@" |& sport 2
09:54:52 <shachaf> `n
09:54:54 <HackEso> 1/2:561) <fizzie> It's a bit like a regular monowheel, except when you brake too hard, instead of you going around and around inside the wheel, the (1100lb) wheel rolls over you. \ 488) <fizzie> "Do a sea monster while whatever." \ 223) <fizzie> $ perl -e '/? <-- HERE/' Quantifier follows nothing in regex; marked by <-- HERE in m/? <-- HERE <-- HERE/ at -e line 1. \ 215) <Vorpal> !bfjoust test (++-)*1000000 <Vorpal> probably will suck <EgoBot> Scor
09:55:01 <shachaf> Yep, it doesn't even go to the second page.
09:55:15 <shachaf> (Or rather it wraps around.)
09:55:16 <int-e> `cat bin/5
09:55:18 <HackEso> cmd="${1-quote}"; \`^ 5 "$cmd"
09:55:28 <shachaf> `cat bin/`^
09:55:30 <HackEso> ​[[ $# == 2 ]] || { echo "Usage: $0 n cmd" >&2; exit 2; }; for ((i=0; i < $1; i++)); do \` "$2"; done | sport
09:55:40 <fizzie> Ooh, that may be a thing.
09:55:49 <fizzie> Writes to tmp/ should normally not be executed twice.
09:56:03 <fizzie> The way the logic goes, if the repository is clean after the command ran once, that's it.
09:56:09 <shachaf> Oh, right, it only executes twice if it detects a write.
09:56:43 <fizzie> Okay, there's actually a race condition there, in that a concurrent command may make a non-write operation also run twice. Normally that's benign, but with tmp/ it might cause issues. It's going to be pretty rare though.
09:56:57 <int-e> shachaf: Err, sorry. I didn't think that through.
09:57:04 <fizzie> My guess is there's something in the working directory that it can't commit for whatever reason, so it permanently thinks the repository is dirty.
09:57:10 <fizzie> I'll have a look.
09:57:26 <shachaf> `` hg status
09:57:43 <HackEso> EGYj6LpQgFKM: Permission denied \ o6M9ot4UJDYs: Permission denied
09:57:48 <wib_jonas> fizzie: can you make it give you logs so you can exclude concurrent commands in private message?
09:58:12 <int-e> funny file names
09:58:20 <shachaf> `` ls -l EGYj6LpQgFKM
09:58:22 <HackEso> ls: cannot access 'EGYj6LpQgFKM/s': Permission denied \ total 0 \ d????????? ? ? ? ? ? s
09:58:23 <wib_jonas> althoguh we should see something in the hg log if that happens usually, but perhaps not if the command is particularly sneaky and gives no changes to the versioned part the second time or smoething
09:58:31 <wib_jonas> int-e: sorry, part of that was me
09:58:35 <shachaf> `ls
09:58:36 <wib_jonas> ``` ls -aF
09:58:38 <HackEso> ​./ \ ../ \ .hg/ \ .hg_archival.txt \ .hgignore \ EGYj6LpQgFKM/ \ bin/ \ canary \ emoticons/ \ esobible/ \ etc/ \ evil/ \ f| \ factor/ \ good/ \ hw/ \ ibin/ \ interps/ \ izash.c \ karma \ le/ \ lib/ \ misle/ \ o6M9ot4UJDYs/ \ paste/ \ ply-3.8/ \ quines/ \ quinor/ \ quotes \ share/ \ src/ \ test2 \ testfile \ tmflry/ \ tmp/ \ wisdom/
09:58:39 <HackEso> bin \ canary \ EGYj6LpQgFKM \ emoticons \ esobible \ etc \ evil \ f \ factor \ good \ hw \ ibin \ interps \ izash.c \ karma \ le \ lib \ misle \ o6M9ot4UJDYs \ paste \ ply-3.8 \ quines \ quinor \ quotes \ share \ src \ test2 \ testfile \ tmflry \ tmp \ wisdom
09:58:45 <wib_jonas> I mistakenl created some files to hackenv rather than tmp
09:58:54 <wib_jonas> ``` rmdir -v EGYj6* o6M9o
09:58:56 <HackEso> rmdir: failed to remove 'EGYj6LpQgFKM': Directory not empty \ rmdir: failed to remove 'o6M9o': No such file or directory \ rmdir: removing directory, 'EGYj6LpQgFKM' \ rmdir: removing directory, 'o6M9o'
09:59:03 <int-e> `ls -ld EGYj6LpQgFKM
09:59:04 <wib_jonas> ``` rmdir -vp EGYj6*/s o6M9o*/s
09:59:05 <HackEso> ls: invalid option -- ' ' \ Try 'ls --help' for more information.
09:59:06 <HackEso> rmdir: failed to remove 'EGYj6*/s': No such file or directory \ rmdir: failed to remove 'o6M9o*/s': No such file or directory \ rmdir: removing directory, 'EGYj6*/s' \ rmdir: removing directory, 'o6M9o*/s'
09:59:09 <int-e> `` ls -ld EGYj6LpQgFKM
09:59:11 <HackEso> drw-r-xr-x 3 1000 1000 4096 Sep 16 14:43 EGYj6LpQgFKM
09:59:19 <int-e> no x for user, great
09:59:26 <wib_jonas> ``` find EGYj6* o6M9o*
09:59:27 <HackEso> find: 'EGYj6*': No such file or directory \ find: 'o6M9o*': No such file or directory
09:59:27 <fizzie> I cleaned them up from the outside.
09:59:44 <wib_jonas> int-e: yeah, I was trying to test something about permissions when ais523 talked about them
09:59:46 <wib_jonas> sorry
09:59:51 <wib_jonas> I should have done it in tmp but I messed up
09:59:58 <wib_jonas> then didn't notice that I didn't revert them properly
10:00:05 <wib_jonas> let me check the hg log if there's any other remain
10:01:52 <wib_jonas> what the...
10:01:57 <int-e> wib_jonas: I don't think it's a huge deal really... it only seems that way because it manifested in this terribly obscure way.
10:02:00 <wib_jonas> did you just rewrite version history?
10:02:13 <fizzie> No, those never got committed.
10:02:17 <fizzie> Because of the no-x thing.
10:02:23 <fizzie> They just stuck around in the work directory.
10:02:31 <wib_jonas> int-e: yeah, but I did know that I messed up and apparently didn't pay enough attention to clean them up
10:02:42 <wib_jonas> fizzie: who, hackeso does that? interesting
10:03:03 <shachaf> REX has WRXB bits
10:03:17 <shachaf> Clearly WRX should stand for write read execute, but what should B stand for?
10:03:35 <int-e> bullying rights?
10:03:36 -!- Sgeo__ has joined.
10:05:11 <wib_jonas> shachaf: https://esolangs.org/logs/2019-08.html#lbV
10:05:34 <int-e> shachaf: "base" since it extends the base register for modr/m or sib?
10:05:51 <shachaf> wib_jonas: Yes, I know what they actually stand for.
10:05:58 <fizzie> The cleanup logic is to run "hg status -rumad", remove anything mentioned in the output, then run "hg up -C" to get back to a clean state. But apparently hg will just print warnings into stderr about files/directories it can't access and ignore them otherwise, so they never get either committed or cleaned.
10:06:05 <int-e> (I'm guessing from "This 1-bit value is an 'inverted' extension to the MODRM.rm field or the SIB.base field.")
10:06:06 <shachaf> (You told me the other day, and also it became clear once I implemented addressing modes.)
10:06:43 -!- Sgeo_ has quit (Ping timeout: 268 seconds).
10:06:45 <wib_jonas> fizzie: I guess that sort of makes sense for normal version control
10:06:52 <wib_jonas> it's just strange in hackeso's context
10:06:56 <shachaf> Yes, R extends the "reg" register (or the register in the opcode), X extends the index registers, and B extends the base register.
10:07:04 <int-e> fizzie: can you remind me why there are two phases in the first place?
10:07:17 <fizzie> int-e: To allow commands that don't write run concurrently.
10:07:27 <int-e> ah
10:07:40 <fizzie> (It obtains an exclusive lock only for the second phase.)
10:08:02 <shachaf> `` hg status -rumad
10:08:11 <fizzie> TBH, it's probably more trouble than it's worth, but that's the way it was written and anyway it's kind of an #esoteric thing.
10:08:16 <HackEso> No output.
10:08:26 <shachaf> Does it handle the newline-in-filename thing I was talking about a while ago?
10:08:26 <wib_jonas> right. it's much better than in jevabot, where if you run two commands in the same context simultaneously, then the changes of one that finishes first will be ignored, even if the second one doesn't write anything
10:08:28 <int-e> fizzie: makes me wonder whether it would be worthwhile to detect whether there was an intervening command at all
10:08:42 <wib_jonas> and jevalbot doesn't currently offer any way to override this
10:08:53 <wib_jonas> shachaf: what newline-in-filename thing?
10:09:13 <wib_jonas> int-e: it does normally try to detect that
10:09:19 <wib_jonas> or so I think
10:09:32 <int-e> wib_jonas: apparently not
10:10:44 <wib_jonas> int-e: something seems wrong in the logic or the environment, because like fizzie said, it shouldn't rerun a command that edits tmp only
10:11:08 <int-e> fizzie: But of course that's not entirely trivial either, to say the least.
10:11:10 <fizzie> wib_jonas: That was the effect of those non-accessible directories, it likely isn't doing that any more.
10:12:02 <int-e> wib_jonas: well, the detection uses hg status, and assumes that this can recognize its own pristine state.
10:12:18 <shachaf> wib_jonas: http://esolangs.org/logs/2014-11.html#lX6d
10:12:26 <int-e> arguably the real problem here is that resetting to a pristine state results in a working directory that doesn't match the repo contents.
10:12:46 <shachaf> `? shaventions
10:12:48 <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.
10:12:56 <shachaf> tmp/ was such a good shavention
10:13:07 <fizzie> shachaf: I think newlines are probably a problem. I don't think there's an equivalent for -0 for the status output.
10:13:09 <int-e> We have funventions?
10:13:29 <shachaf> Imagine: Without tmp we wouldn't `1 or any of that.
10:13:39 <int-e> "funiragvbaf"
10:13:49 <fizzie> int-e: Yeah, I'd really like a hg option to just "restore the working directory exactly as it was, including the removal of untracked files". There's a way to do that in git, I couldn't discover a way to do it in hg.
10:13:55 <shachaf> `` rot13 tanebvention
10:13:56 <HackEso> gnaroiragvba
10:14:15 <wib_jonas> wait, maybe the no-permission files were the ones that made hackeso think that there were changes in the versioneed part
10:14:19 <fizzie> (Anyway, it would probably still fail for things like "no permission for the user" even if it did exist.)
10:14:23 <fizzie> wib_jonas: Yes, that's not a "maybe".
10:14:34 <int-e> wib_jonas: they were
10:14:37 <shachaf> fizzie: You could require write commands to run without tmp/
10:14:41 <wib_jonas> ``` mkdir /hackenv/tmp/-BE8SJn_Dnja
10:14:42 <HackEso> No output.
10:14:43 <shachaf> (By moving tmp/ out temporarily.)
10:14:52 <wib_jonas> ``` mkdir -v /hackenv/tmp/X81G5u_N85_r
10:14:53 <HackEso> mkdir: created directory '/hackenv/tmp/X81G5u_N85_r'
10:14:56 <wib_jonas> yeah, that was the problem
10:14:59 <wib_jonas> now it behaves sane
10:15:29 <shachaf> I do like the `mv tmp/foo . bug, though.
10:15:54 <shachaf> It would be nice to keep that one to trip up unsuspecting people who think computers don't hate them for some reason.
10:16:07 <wib_jonas> fizzie: hg status accepts a template too, with the -T argument
10:16:07 <int-e> shachaf: they don't
10:16:28 <int-e> shachaf: we're just making software too complex for our own good
10:16:36 <shachaf> I agree with that!
10:16:40 <int-e> So complexity is the real enemy, not computers.
10:16:57 <fizzie> shachaf: Huh, there *is* a -0 option for 'hg status'.
10:17:20 <fizzie> I can make it use that and split on '\0' instead of '\n', and then it'll work on files with newlines in them.
10:17:28 <shachaf> fizzie: The logs I linked to point it out.
10:17:43 <shachaf> I guess that change never happened?
10:18:14 <fizzie> shachaf: I couldn't find the relevant bit in there, you linked to the gigantic monthly logs and the "scroll to anchor" isn't working somehow.
10:18:20 <shachaf> Oh.
10:18:39 <wib_jonas> ``` hg log -T '{rev}:{join(files,"\0,")}\0;' | tr \\0 % # joins files within a revision with "\0," and revisions with "\0;"
10:18:40 <shachaf> I download the monthly logs to grep through, so I didn't have the file name for the daily logs.
10:18:41 <HackEso> 11941:bin/beat%;11940:bin/beat%;11939:bin/beat%;11938:share/whatis%;11937:bin/beat%;11936:bin/beat%;11935:bin/beat%;11934:bin/beat%;11933:bin/beat%;11932:bin/beat%;11931:share/whatis%;11930:share/whatis%;11929:share/whatis%;11928:share/whatis%;11927:bin/as-encoding%;11926:bin/as-encoding%;11925:wisdom/password%;11924:wisdom/can't%;11923:wisdom/can't%;11922:wisdom/can't%;11921:wisdom/can't%;11920:wisdom/can't%;11919:wisdom/can't%;11918:wisdom/can't%;11917:w
10:19:23 <wib_jonas> but why do you care about the specific output of hg status anyway?
10:20:43 <fizzie> Because I couldn't figure out a command to restore the working directory to a state matching the repository without manually removing files.
10:20:53 <fizzie> "hg up -C" definitely doesn't do it.
10:20:57 <int-e> fizzie: crazy thought... would switching to git storage + hg-git do the trick?
10:21:07 <wib_jonas> int-e: eww
10:21:24 <fizzie> I could just migrate the repository to git altogether. Even Bitbucket has stopped supporting Mercurial.
10:21:27 <int-e> (and using git for cleanup)
10:21:31 <wib_jonas> let me look at the hg manual
10:21:40 <wib_jonas> int-e: that would be worse
10:22:03 <int-e> (the point of hg-git would be to keep all the existing hg magic working)
10:22:29 <int-e> (and I don't know whether it's up to the task)
10:22:30 <fizzie> Well, it'd be a nice exercise to update all the tooling.
10:22:50 <fizzie> Although the 'h's in the names would become obsolete then.
10:23:00 <wib_jonas> int-e: yes, but... the git part would be harder to use
10:23:19 <shachaf> git is much easier to use than hg
10:23:36 <shachaf> hg might be better in some technical ways
10:23:38 <wib_jonas> shachaf: not for when you have strange untrusted data like filenames with newlines
10:23:45 <int-e> shachaf: wait didn't you advocate mercurial not too long ago?
10:23:48 <wib_jonas> and probably not in the normal case either
10:23:58 <wib_jonas> int-e: no, I think that was ais523
10:24:21 <shachaf> int-e: I think it's likely to be better?
10:24:34 <shachaf> But the UI is much more confusing than git's.
10:24:50 <int-e> I agree
10:24:59 <int-e> but I think it's a matter of first exposure, largely
10:25:14 <shachaf> Yes. I'm just making a baseless assertion here, like people always make about hg.
10:25:25 <fizzie> https://bitbucket.org/blog/sunsetting-mercurial-support-in-bitbucket "Git adoption has grown over the years to become the default system" "almost 90% of developers use Git, while Mercurial is the least popular version control system with only about 3% developer adoption" "the percentage of new Bitbucket users choosing Mercurial has fallen to less than 1%"
10:25:29 -!- sftp has quit (Quit: leaving).
10:25:43 <fizzie> Got to follow the trends here.
10:26:06 <shachaf> The git model is very simple and I can always use a few commands to get it to do what I want.
10:26:32 <wib_jonas> shachaf: you don't want interesting enough things then
10:27:40 <shachaf> What do you recommend wanting?
10:27:41 <int-e> mercurial is better... a) for hosting over dumb http and b) if you're confused about having a staging area between the working directory and the repo.
10:28:19 <wib_jonas> shachaf: try manipulating git repositories that pull data from a server repository into which other people commit and tag and history-edit in stupid ways
10:28:19 <shachaf> I don't think any of these systems are that great.
10:28:21 <fizzie> int-e: I've been told Mercurial is also better for extensibility.
10:29:00 <int-e> fizzie: maybe. it's mostly python with some bits of C rather than mostly C with some bits of Perl
10:29:05 <wib_jonas> including bad filenames, inconsistent line endings, changing whitespace in existing source files extensively even when they don't modify the file,
10:29:10 -!- sftp has joined.
10:29:12 <fizzie> int-e: In particular, Google's DVCS of choice is Mercurial with a lot of extra oddness, and AIUI the decision was primarily motivated by Git not having any sort of API to do the odd parts.
10:30:25 <wib_jonas> shchaf: also, do you happen to know how to ask git to remove directories from the working copy that it couldn't commit because of lack of permissions?
10:30:36 <int-e> extensibility doesn't come up so much in day to day usage :P
10:30:54 <wib_jonas> shachaf: and how to make git use a .git outside hackenv so that hackenv commands can't directly write it?
10:31:07 <int-e> wib_jonas: GIT_DIR
10:31:29 <wib_jonas> int-e: where is that documented?
10:31:33 <shachaf> fizzie: I think Facebook made the same decision for the same reason.
10:31:48 <int-e> wib_jonas: but it's a non-issue, I think? the umlbox can mount subdirectories read-only.
10:31:54 <shachaf> wib_jonas: I'm talking about non-esoteric uses so this is all irrelevant.
10:32:00 <wib_jonas> int-e: hmm, that might make sense
10:32:07 <shachaf> `` ls -ld .hg
10:32:10 <HackEso> drwxr-xr-x 5 1000 1000 4096 Sep 17 09:59 .hg
10:32:13 <fizzie> wib_jonas: I don't currently have .hg outside hackenv either.
10:32:15 <Taneb> wib_jonas: it's documented in the git-init man
10:32:18 <wib_jonas> shachaf: but... wasn't the whole point the esoteric uses in hackeso?
10:32:45 <int-e> `` touch .hg/doesnotwork
10:32:46 <HackEso> touch: cannot touch '.hg/doesnotwork': Read-only file system
10:32:48 <shachaf> No, I'm making a general claim.
10:33:00 <shachaf> One big advantage of git is that it's written in C.
10:33:09 <shachaf> ...But a big disadvantage is that big parts of it are written in sh.
10:33:57 <wib_jonas> int-e, Taneb: thanks
10:34:32 <int-e> wib_jonas: I actually use GIT_DIR quite a bit because I can never remember --bare ;-)
10:34:52 <wib_jonas> shachaf: all of subversion is written in C
10:35:08 <shachaf> Yes. Subversion is a pretty good version control system.
10:35:19 <shachaf> (I meant git over hg above, though.)
10:35:45 <wib_jonas> the main drawback of subversion is that it's a very bad distributed vcs right now, and that's hard to fix, but that problem doesn't come up too much for HackEso
10:36:05 <wib_jonas> that said, keeping the existing mercurial solution for HackE*o is probably for the best
10:37:24 <shachaf> I'm going to sleep.
10:38:01 <wib_jonas> these spams that advertise services to send bulk spam are sort of the most honest spam there is, because they at least prove that they can offer such services
10:38:27 <wib_jonas> unlike the other spam, which are usually about outright scams and state or promise something that they can't provide
10:38:59 <wib_jonas> not that the bulk mailers have to be totally honest of course, they can still scam you and underperform and overcharge you
10:39:09 <wib_jonas> or just steal the money
10:39:16 <wib_jonas> but they at least offer a service that they can do
10:40:35 <int-e> How much of this mess would be solved by sanitizing permissions of directories (making sure they're u+rx)?
10:41:20 <wib_jonas> int-e: eh, next you'll want to disallow symlinks and pipes and socket files from hackenv?
10:41:29 <wib_jonas> and even force regular files to readable?
10:42:17 <int-e> `? pipe
10:42:18 <HackEso> This is not a pipe.
10:50:57 <wib_jonas> maybe you'll even suggest that we shouldn't have a symlink to /proc/self/args in wisdom?
10:53:34 <int-e> I don't care. fifos are annoying because they break grep
10:53:44 <wib_jonas> ``` set -e; cd wisdom; find -type l -printf "%p > %l\n"
10:53:45 <HackEso> ​./СССР > ссср \ ./the usual suspect > usual suspect \ ./perpetuum mobile > perpetual motion machine \ ./r.i.p. > rip \ ./☆ > * \ ./h4gb4rd > hagb4rd \ ./issue > .doorstop \ ./the reals > real \ ./off by two error > off by two \ ./wolfram > stephen wolfram
10:53:48 <int-e> that symlink doesn't do that
10:53:52 <int-e> `grwp grep
10:53:54 <HackEso> No output.
10:53:58 <int-e> `grwp wisdom
10:53:59 <HackEso> ​?:? is wisdom \ america:This wisdom entry had to be removed due to a DMCA takedown notice. \ bimonthly:The word "bimonthly" has at least two meanings, although this wisdom only gives about half of one. No matter which expert you follow, you're 50% likely to misinterpret it, or doubly so, depending on the phase of the moon. \ busy beaver growth:No one can compute the length of a wisdom entry sufficient to explain busy beaver growth. \ claustrophobia:Clau
11:05:14 <fizzie> int-e: It might help. Currently I sanitize only the .hg and .hgignore permissions.
11:08:50 <fizzie> I think I thought about using the purge extension instead of the status parsing + remove approach, but I suspect it would not work any better w.r.t. bizarre permissions. Presumably it would be inherently robust against odd file names though.
11:21:15 <cpressey> Are there operators + and * on rings such that the set of rings forms a ring
11:22:09 <Taneb> I don't think so
11:23:07 <cpressey> Such that *some* set of rings forms a ring, maybe?
11:23:56 <cpressey> Every ring in such a set would need to have an inverse
11:23:57 -!- Frater_EST has left.
11:24:17 <cpressey> This is very difficult for me to think about, but it is entertaining.
11:26:53 <Taneb> The other week I tried to think about ZF¬C and the properties of a vector that lacks a basis
11:27:37 <int-e> cpressey: this is not what you want... but technically all you need is a ring of the right cardinality
11:29:46 <wib_jonas> `? ring
11:29:47 <HackEso> Addition, subtraction and multiplication have a certain ring to them.
11:31:14 <cpressey> int-e: I was thinking maybe you could do something trivialish with two boolean rings
11:31:23 <cpressey> Well anywan
11:31:34 <cpressey> Back to timezones, brain!
11:36:03 -!- arseniiv has joined.
11:38:08 <cpressey> Taneb: I once saw a stackexchange answer listing the bizarre implications of having Axiom of Choice next to the bizarre implications of *not* having Axiom of Choice... but I can't find it again now :/
11:42:24 <cpressey> Might've been this one, but I thought it was longer: https://math.stackexchange.com/questions/1771052/soft-question-why-does-the-axiom-of-choice-lead-to-the-weirdest-constructions
12:59:20 <esowiki> [[@NUM]] https://esolangs.org/w/index.php?diff=66207&oldid=59504 * KrystosTheOverlord * (+3)
13:01:49 <esowiki> [[@NUM]] https://esolangs.org/w/index.php?diff=66208&oldid=66207 * KrystosTheOverlord * (+76)
13:03:11 <esowiki> [[@NUM]] https://esolangs.org/w/index.php?diff=66209&oldid=66208 * KrystosTheOverlord * (+37)
13:24:23 <wib_jonas> `? banach-tarski # https://www.xkcd.com/804/
13:24:24 <HackEso> banach-tarski # https://www.xkcd.com/804/? ¯\(°​_o)/¯
13:24:29 <wib_jonas> hmm
13:28:46 <myname> i don't think they understand comments
13:30:16 <wib_jonas> ``` set -e; d=$(date +@%s); export TZ; for TZ in UTC Europe/Paris Europe/London America/New_York America/Los_Angeles; do date -d "$d" +"%Y-%m-%d %H:%M %z %Z"; done # timezones like this?
13:30:19 <HackEso> 2019-09-17 13:30 +0000 UTC \ 2019-09-17 15:30 +0200 CEST \ 2019-09-17 14:30 +0100 BST \ 2019-09-17 09:30 -0400 EDT \ 2019-09-17 06:30 -0700 PDT
13:30:21 <wib_jonas> ``` \? banach-tarski # https://www.xkcd.com/804/
13:30:24 <HackEso> ​"Banach-Tarski" is an anagram of "Banach-Tarski Banach-Tarski".
13:30:31 <wib_jonas> yes, that
13:31:37 <wib_jonas> at least the timezone database (or part of it) is installed, even if very few locales are
13:55:35 <wib_jonas> `pbflist https://pbfcomics.com/comics/the-forbidden-cave/
13:55:35 <HackEso> pbflist https://pbfcomics.com/comics/the-forbidden-cave/: shachaf Sgeo quintopia ion b_jonas Cale
13:59:32 -!- sprocklem has quit (Ping timeout: 276 seconds).
14:07:26 <cpressey> My head hurts.+00:00
14:12:40 -!- shikhin has quit (Quit: Quittin'.).
14:13:52 -!- shikhin has joined.
14:18:28 -!- ArthurStrong has quit (Quit: leaving).
14:21:40 -!- shikhin has quit (Read error: Connection timed out).
14:22:01 -!- shikhin has joined.
14:24:10 <cpressey> Robin should probably be split into an esolang and a non-esolang, but it's not entirely clear where I should draw the line.
14:24:33 <cpressey> Macros as fundamental + strange environment tricks based on that -> esolang.
14:25:45 <wib_jonas> cpressey: wait, if you remove that, then what remains that's interesting and unique as a non-esolang?
14:29:00 <cpressey> Referentially transparent homoiconic language with a reactive framework. Is that not interesting and unique enough?
14:29:31 <wib_jonas> I don't know. couldn't you just use a reactive frameword in scheme or something?
14:29:49 <wib_jonas> wait, what does the referentially transparent part mean?
14:30:12 <wib_jonas> ah
14:32:45 <cpressey> If I felt like I could successfully submit a SRFI for "immutable scheme" I'd probably do that instead.
14:33:33 <cpressey> Well, whatever
14:53:04 <cpressey> https://github.com/wolfgangj/bone-lisp#readme <-- That is virtually the only other language with immutable data and homoiconic syntax that I've found.
14:53:39 <cpressey> Could port the reactive framework to it; in some ways it would be a good fit
15:16:57 -!- APic has quit (Ping timeout: 244 seconds).
15:20:20 -!- APic has joined.
15:25:14 -!- APic has quit (Ping timeout: 265 seconds).
15:38:01 <wib_jonas> `? Screen
15:38:07 <HackEso> Screen? ¯\(°​_o)/¯
15:40:23 -!- wib_jonas has quit (Remote host closed the connection).
15:59:20 -!- cpressey has quit (Quit: A la prochaine.).
16:33:09 -!- Lord_of_Life_ has joined.
16:35:52 -!- Lord_of_Life has quit (Ping timeout: 245 seconds).
16:36:01 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
16:55:48 -!- sprocklem has joined.
17:00:46 <esowiki> [[Special:Log/newusers]] create * Alalalize * New user account
17:07:44 -!- b_jonas has joined.
17:12:49 -!- Phantom_Hoover has joined.
17:26:12 -!- APic has joined.
17:26:25 -!- FreeFull has joined.
17:26:32 <b_jonas> it seems like the time format bug that I mentioned yesterday is not in libc's strftime function. it's in coreutils's reimplementation of strftime.
17:26:43 <b_jonas> that's good to know.
17:36:53 -!- sprocklem has quit (Ping timeout: 268 seconds).
17:47:02 -!- arseniiv has quit (Ping timeout: 276 seconds).
17:47:28 -!- arseniiv has joined.
18:02:01 <fizzie> Hmm.
18:02:31 <fizzie> These seem both equally broken to me: http://ix.io/1VAl
18:02:55 <fizzie> And I'm sure the latter is using the libc's strftime.
18:03:15 <fizzie> (Unless this was a different bug you were talking about.)
18:03:31 <b_jonas> hmm
18:10:26 -!- imode has joined.
18:11:28 <b_jonas> (set -e; export LC_ALL=hu_HU.utf8; gcc -Wall -O -o a.out -x c - <<<$'#include<time.h>\n#include<stdio.h>\n#include<locale.h>\n''int main(void) { char o[100] = {0}; setlocale(LC_ALL, ""); struct tm b = {0}; time_t t = 1570230000; gmtime_r(&t, &b); strftime(o, 100, "%^B", &b); printf("%s\n", o); return 0; }'; ./a.out )
18:11:33 <b_jonas> OKTóBER
18:11:41 <b_jonas> let me install the fi_FI.utf-8 locale
18:12:10 <b_jonas> you're right this seems broken, so there's something wrong in my tests
18:12:59 <b_jonas> wait, I misread my previous tests
18:13:04 <b_jonas> those printed OKTóBER too
18:13:06 <b_jonas> darn
18:13:14 <b_jonas> or maybe I can't reproduce them or something
18:13:15 <b_jonas> I'm confused
18:13:42 <b_jonas> ...
18:13:45 <b_jonas> thanks for checking then
18:14:15 <b_jonas> let me see what the libc documentation actually says about this, and check their bug tracker where there's probably a ticket for that and they argue that this is completely correct behavior
18:17:20 <b_jonas> oh hey look
18:17:34 <b_jonas> it does uppercase correctly for the hu_HU.iso88592 locale
18:18:46 <b_jonas> in that case it prints OKTÓBER only the Ó is encoded in iso-8859-2 as a \xD3 as you'd expect
18:18:55 <b_jonas> so it can uppercase single-byte stuff
18:19:20 <b_jonas> aren't locales fun? this is why we don't use them these days, and just use libraries that do stuff like this without relying on locales
18:42:37 <fizzie> b_jonas: It's also correct for fi_FI.ISO-8859-1.
18:42:52 <b_jonas> good
18:43:07 <b_jonas> ``` locale -a
18:43:08 <HackEso> C \ C.UTF-8 \ POSIX \ en_GB.utf8 \ en_NZ.utf8 \ en_US.utf8
18:45:01 <fizzie> I think I probably added en_GB in addition to en_NZ and en_US when migrating to HackEso, to honor the fact that it's physically in the UK.
18:55:41 -!- xkapastel has joined.
19:06:21 -!- sprocklem has joined.
19:11:21 -!- cocof has joined.
19:11:37 <cocof> people in usa complain that college is experensive
19:11:57 <cocof> why don't they study online or in mexico?
19:12:37 <esowiki> [[Hello world program in esoteric languages]] https://esolangs.org/w/index.php?diff=66210&oldid=65984 * Dtuser1337 * (+106) /* Codd */
19:12:46 <cocof> *expensive
19:13:10 <shachaf> Who says they don't?
19:13:27 <cocof> their complain
19:13:31 <cocof> complains
19:13:36 <b_jonas> how is that a php question?
19:13:39 <int-e> . o O ( "why did you study online or in mexico?" )
19:14:14 <shachaf> Maybe they complain, and then go online to Mexico to study.
19:14:14 <cocof> I am watching a program about some free uni that started to charge fees and students claim their are entitled to free edu
19:14:23 <int-e> I suspect the former may be a real issue, if you study full time.
19:14:44 <cocof> int-e as far as person is smart he is more likely to be hired if he saved money on collegde
19:14:49 <cocof> colledge
19:14:57 <cocof> as it shows he she is smart
19:15:00 <int-e> college
19:15:09 <cocof> yet many spend 100K on gender study ? :D
19:15:38 <cocof> I haven't been in USA for some time and I suspect IQ drop is real
19:16:05 <shachaf> I get the impression you don't care about what anyone says here, and you just want to complain.
19:16:16 <cocof> there is a solution
19:16:18 <shachaf> I recommend complaining online, or in Mexico.
19:16:33 <cocof> it seems some standord professors made their own online unis
19:16:35 <b_jonas> we're mostly programming people, but let's ask the one foremost expert of politics in our channel
19:16:51 <int-e> fun!
19:16:51 <b_jonas> fungot, what do you think about the higher education system in the USA?
19:16:51 <fungot> b_jonas: i see,
19:17:07 <shachaf> ^style
19:17:07 <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:17:08 <int-e> uh, how did that... ah I won't even ask.
19:17:20 <shachaf> ^style speeches
19:17:20 <fungot> Selected style: speeches (misc. speeches from Project Gutenberg)
19:17:34 <cocof> programming requires logic and paying 100K for a college indicated IQ drop
19:17:39 <cocof> :D
19:17:48 <cocof> don't you have kids?
19:17:59 <cocof> do you beat them up when they mention college loan?
19:18:26 <int-e> fungot, fungot, fungot
19:18:27 <fungot> int-e: claiming only that they have been since, much employed by that political school, is an ancient story of a speech made in one parliament has been growing to by a progressive increase of improvement, brought in a bill to prevent judges from entering those lists in which lord ellenborough is a perfect man, if able, will take from the rest of mankind in all ages a chief cause of the house, that, in losing her american coloni
19:18:42 <b_jonas> oh, so talking about college loan is why fungot is beating his children?
19:18:43 <fungot> b_jonas: prior, matthew, his intimacy with bishop atterbury. appears as a witness in favour of wit; he tolerated even tameness for the sake of example they should be deluded, and should occasionally fnord to the institution to learn and to know that a man has not received such an education as enables him to understand that it was not merely a great writer, will, for a long time without pay, or at least a tinge of toryism. he li
19:18:50 <cocof> fungot IQ drop usa
19:18:50 <fungot> cocof: " when will rulers learn that, where we used to play it in this house, in the county. what is to be observed, or whether it shall be the vicegerent and with what portion of the american slave, the pride of man?
19:18:54 <int-e> `relcome fungot
19:18:54 <fungot> int-e: by fnord cleveland was not a very material difference in the main but three, which i consider excellent advice: and you give us to- night again, so amiable is our nature, and in some of its members is large, than cyrus, in the meantime, in spite of the opposition met for the purpose of greatness, which it is designed for the great honour which you have presented me, shall never break the tie of consanguinity between us a
19:18:55 <HackEso> fungot: 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.)
19:19:21 <cocof> fungot cocof
19:19:21 <fungot> cocof: first i thought i'd go and see. then i will proceed in my account of the great tory prelate were, as they are now taking the surest way to prevent a total rupture."
19:19:27 <cocof> see
19:19:40 <cocof> I am surest way to prevent a total rupture
19:19:44 <b_jonas> cocof: our expert says that "the institution to learn and to know that a man has not received such an education as enables him to understand that it was not merely a great writer, will, for a long time without pay"
19:19:45 <cocof> first kids must be beaten
19:20:31 <int-e> is garfield without garfield still ongoing?
19:20:39 <int-e> uhm s/without/minus/
19:20:45 <cocof> commonsense.com
19:20:46 <cocof> :D
19:20:46 <esowiki> [[Fishing]] https://esolangs.org/w/index.php?diff=66211&oldid=52777 * Dtuser1337 * (+66) /* Programs */
19:21:32 <kmc> fungot: what do you make of the present situation?
19:21:32 <fungot> kmc: but the fact is, that malignant disposition to which this building is devoted, of its brilliant and inspiring history, of which it is designed. a man, he seemed to be united with each other, but the influence was very broad in effect.
19:22:28 <cocof> yes malignant
19:22:32 <cocof> snowflakes
19:22:44 <cocof> need physical work forced
19:22:47 <cocof> to collect oranges
19:23:17 <esowiki> [[Deadfish]] https://esolangs.org/w/index.php?diff=66212&oldid=65925 * Dtuser1337 * (+1004) Yare yare daze
19:24:21 * kmc pelts cocof with oranges
19:24:44 <b_jonas> ``` \? "gene ray" | sed s/.*god..//
19:24:45 <HackEso> Academians are teaching - pseudocience. Worshipping a Word God will destroy the USA.
19:25:10 <b_jonas> to quote our other expert
19:25:23 <shachaf> I asked another expert: http://slbkbs.org/tmp/talk_to_transformer.png
19:26:16 <int-e> https://66.media.tumblr.com/2b8b62a7f4390548136987acf3943a5f/tumblr_nzs9xeDR3r1qz8z2ro1_500.png is every garfield strip, in a nutshell.
19:26:50 <b_jonas> shachaf: has to refer to Prime, because he's the most popular transformer so that's what sells everything
19:27:03 <b_jonas> even though he's totally irrelevant to this question
19:29:45 <shachaf> I don't know much about transformers.
19:29:53 <shachaf> I guess Megatron is also one?
19:30:17 <b_jonas> `? transformer
19:30:20 <HackEso> A transformer is one who used to trans, but no longer does.
19:30:48 <b_jonas> I don't know. I think a Megatron is either an angel or a unit of measure
19:32:32 -!- sprocklem has quit (Ping timeout: 245 seconds).
19:37:50 <esowiki> [[Talk:ZOWIE]] https://esolangs.org/w/index.php?diff=66213&oldid=43704 * Rdebath * (+237) My bad
19:45:59 <shachaf> `5 w
19:46:05 <HackEso> 1/1:violation//Violation is the act of playing an instrument in the viola family. \ nilfisk//Nilfisk is the fish of choice for the connoiseuring spämmer. \ pikachu//Pikachu is a universal quantifier for Chu spaces. \ clever//Being clever is different from being wise, but they are indistinguishable in sufficiently large quantities. \ forth//Since Biblical times, Forth has been the go-to language for multiplication.
19:53:48 <cocof> is there a mandatory IQ test before applying for a
19:53:55 <cocof> and who here have kids?
19:54:58 <b_jonas> nobody here has kids, but some of us have evil twins or reincarnations
19:55:30 <kmc> i'm my own grandpa
19:55:35 <kmc> and fungot is my grandma
19:55:35 <fungot> kmc: but, low as was the polished orator or writer, but as to me, and one day when we felt that we must not be understood as saying that there are two kinds of objects of desire; those which give mere bodily pleasure, and pain, without fnord passionate fnord furious fnord really proofs of the public.
19:55:57 <Phantom_Hoover> fungot is so literary
19:55:57 <fungot> Phantom_Hoover: bible, the fnord, which, fnord as i should speak as i now try to prevent others from oppressing them, as a means of ensuring fnord the consequence of triennial corruption, triennial drunkenness, triennial idleness, triennial law-suits, litigations, prosecutions, triennial phrensy, of society dissolved, industry interrupted, ruined; of those personal hatreds that will never be able to say to our friend and guest
19:56:27 <b_jonas> `? kmc
19:56:28 <HackEso> kmc did not run the International Devious Code Contest of 2013.
19:57:44 <b_jonas> `? kmc
19:57:45 <HackEso> kmc did not run the International Devious Code Contest of 2013. She is her own grandpa.
19:57:53 <kmc> :D
19:58:05 <shachaf> whoa whoa whoa
19:58:10 <shachaf> Editing in /msg?
19:58:10 <b_jonas> that entry was too bare. now it has something informative and specific in it.
19:58:15 <kmc> ty b_jonas
19:58:28 <cocof> '?usa education now
19:58:35 <cocof> '? usa education now
19:58:46 <cocof> `? usa education now
19:58:47 <HackEso> usa education now? ¯\(°​_o)/¯
19:58:54 <cocof> :)
19:59:06 <cocof> `? usa needs kids beating
19:59:07 <HackEso> usa needs kids beating? ¯\(°​_o)/¯
19:59:11 <cocof> yes yes
19:59:24 <shachaf> Maybe lay it off with the kids beating thing?
19:59:34 <kmc> i,i https://twitter.com/capsule_169/status/993963705791545344
19:59:45 * kmc beats cocof with the ugly stick
20:00:02 <shachaf> kmc: didn't heinlein write that story
20:00:03 <b_jonas> it's called a mapole
20:00:05 <cocof> kmc is a fail student?
20:00:10 <cocof> haha
20:00:16 <cocof> soon professors can kick students
20:00:22 <kmc> shachaf: yeah and like a billion people reply with that in the comments
20:00:25 <cocof> and ask security to drag them out
20:00:25 <kmc> i didn't read it, though
20:00:36 <shachaf> kmc: i'm the bazillionth and one
20:00:38 <b_jonas> shachaf: he rewrote it, but it's an ancient Sumerian tale originally
20:00:39 <kmc> cocof: no, I was a success in college, I'm a failure at everything *subsequent*
20:00:49 <shachaf> presumably i get a prize for being the bazillionth and one visitor to your website
20:01:09 <kmc> what prize would you like?
20:01:18 <kmc> currently in stock: hugs, coffee cake
20:01:31 <b_jonas> no imaginary internet points?
20:01:36 <kmc> sure
20:01:53 <int-e> kmc: are you suggesting that there's a life after college
20:02:00 <shachaf> no internet points for me
20:02:10 <shachaf> but i'll sign up for one hugs and one coffee cake
20:02:35 <kmc> hooray
20:02:35 <int-e> shachaf: you win a MASSIVE YACHT.
20:02:38 <kmc> *hugs*
20:02:41 <kmc> *coffee cake*
20:03:13 <b_jonas> https://www.xkcd.com/570/
20:03:48 <shachaf> those look a lot like internet points
20:04:02 <int-e> shachaf: cf. https://www.youtube.com/watch?v=sdi6E-qzS1c
20:06:09 <cocof> i can make 100 cups of coffee\
20:06:15 <cocof> got 2 jars :D
20:06:23 <cocof> and 2lts of milk
20:11:09 <cocof> who wants an e cup?
20:11:51 <cocof> https://www.youtube.com/watch?v=EHcr6R8nbZA
20:12:06 <esowiki> [[Mailman]] N https://esolangs.org/w/index.php?oldid=66214 * Xanman12321 * (+1451) Created page with " This language is about mail; the program runs until all houses have been delivered to. It was created by User:Xanman12321 and User:Andrew3335 in 2019, based on a Google Docs..."
20:16:42 <esowiki> [[Mailman]] https://esolangs.org/w/index.php?diff=66215&oldid=66214 * Xanman12321 * (+109)
20:23:29 <esowiki> [[Mailman]] https://esolangs.org/w/index.php?diff=66216&oldid=66215 * Xanman12321 * (+230)
20:26:06 -!- cocof has quit (Remote host closed the connection).
20:35:48 <arseniiv> strict symmetric monoidal categories are nice. We can talk about composition of things with several colored inputs and as well as outputs, if we constrain Obj(C) to be generated from some S via ⊗, hence getting a colored PROP
21:04:35 <kmc> mo noids mo problems
21:08:48 <arseniiv> <b_jonas> nobody here has kids, but some of us have evil twins or reincarnations => I want to have a twin :′(
21:14:22 <arseniiv> btw is IQ even a feasible measure of normal people’s intellect. I heard initially it was made to determine if a person is medically, sufficiently unsmart. These are very rare in any times
21:16:10 -!- Lykaina has joined.
21:18:44 <arseniiv> I don’t trust people who talk about IQ this IQ that
21:19:52 <arseniiv> also about BMI
21:24:36 <b_jonas> `forget vampire
21:24:38 <HackEso> Forget what?
21:24:41 <arseniiv> should we call semicatefory a polyid?
21:24:52 <arseniiv> semicategory*
21:37:10 -!- Lykaina has quit (Quit: leaving).
22:01:23 <esowiki> [[Special:Log/newusers]] create * Moose moose moose moose moose * New user account
22:03:34 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=66217&oldid=66164 * Moose moose moose moose moose * (+354)
22:30:34 -!- FreeFull has quit.
22:34:27 <b_jonas> ``` datei # I edited this to show only three digits after the decimal point for seconds
22:34:28 <HackEso> 2019-09-17 22:34:28.192 +0000 UTC September 17 Tuesday 2019-W38-2
22:57:25 <esowiki> [[Special:Log/newusers]] create * MiroslavRD * New user account
23:10:33 -!- Phantom_Hoover has quit (Quit: Leaving).
23:12:13 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=66218&oldid=66217 * MiroslavRD * (+61)
23:13:16 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=66219&oldid=66218 * MiroslavRD * (+600)
23:15:48 <esowiki> [[User:MiroslavRD/vector.css]] N https://esolangs.org/w/index.php?oldid=66220 * MiroslavRD * (+1) Created page with "k"
23:16:10 <esowiki> [[User:MiroslavRD/vector.css]] https://esolangs.org/w/index.php?diff=66221&oldid=66220 * MiroslavRD * (+22)
23:23:18 -!- cocof has joined.
23:23:21 <cocof> https://www.youtube.com/watch?v=7kpDA8wgOrU
23:23:26 <cocof> :D
23:29:14 <cocof> the less people need to work the more watch youtube and IQ drops
23:31:11 -!- b_jonas has quit (Quit: Lost terminal).
23:35:53 <esowiki> [[Sashleyfuck]] N https://esolangs.org/w/index.php?oldid=66222 * MiroslavRD * (+969) Created page with "Sashleyfuck is just like [[Brainfuck]], but it uses the letters S, A, H, L, E, and Y. It was made after [[User:MiroslavRD]] being the biggest Sashley hater. == Commands == S..."
23:36:34 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=66223&oldid=66053 * MiroslavRD * (+18) Add my new page
23:37:50 <esowiki> [[Sashleyfuck]] https://esolangs.org/w/index.php?diff=66224&oldid=66222 * MiroslavRD * (+11)
23:40:41 <esowiki> [[Sashleyfuck]] M https://esolangs.org/w/index.php?diff=66225&oldid=66224 * MiroslavRD * (+4) Link to Hello World
23:41:50 <esowiki> [[Sashleyfuck]] M https://esolangs.org/w/index.php?diff=66226&oldid=66225 * MiroslavRD * (+16) Use "Hello, world!" instead of "Hello World!" (link)
23:46:56 <esowiki> [[Brainoof]] N https://esolangs.org/w/index.php?oldid=66227 * MiroslavRD * (+23) Redirect from the Roblox-cleaned Brainfuck
23:47:30 <esowiki> [[Brainfuck]] M https://esolangs.org/w/index.php?diff=66228&oldid=65758 * MiroslavRD * (+10) Added a new clean alternative
23:49:07 <esowiki> [[User:MiroslavRD]] N https://esolangs.org/w/index.php?oldid=66229 * MiroslavRD * (+14) Created page with "A rush editor."
23:50:20 <esowiki> [[User:MiroslavRD]] M https://esolangs.org/w/index.php?diff=66230&oldid=66229 * MiroslavRD * (+25) Rushed my last edit (i'll be editing more later)
23:51:18 -!- cocof has quit (Remote host closed the connection).
23:57:55 -!- sprocklem has joined.
←2019-09-16 2019-09-17 2019-09-18→ ↑2019 ↑all