00:00:02 <int-e> Okay, there's an exit syscall. man 2 exit isn't too helpful about it on my system...
00:01:04 <Phantom_Hoover> i think _start eventually boils down to exit(main(argc, argv))
00:01:11 <int-e> no, there's exit_group for that.
00:02:08 <Phantom_Hoover> "The function _exit() terminates the calling process[...]"
00:02:24 <int-e> (libc function names do not always correspond to syscall names)
00:02:52 <int-e> look under C library/kernel differences
00:03:49 <Phantom_Hoover> i just looked closer at clone(2) and yeah, i guess since threads would be individual processes that'd only kill the current thread
00:11:36 <int-e> hmm of course sierpinsky is perfect for 56 threads and 9 cycles...
00:13:35 <int-e> ah the leaderboard is confused... the 0x05 should be lines of code
00:17:47 <Kaynato> Apparently I was wrong and everything is actually more severely wrong now
00:17:54 <pikhq> Phantom_Hoover: The _Exit function doesn't actually map to the exit syscall, though.
00:18:55 <pikhq> Ah, which mentions that. :)
00:19:35 <pikhq> Yeah, the kernel level notion of "process" is more "a schedulable entity" which may or may not map to a Unix "process". So you get a few weird things like that in the syscall layer.
00:20:53 <pikhq> Probably the worst thing is that setuid etc. is a *god damned pain* to do correctly, because there's not a way of telling Linux to do it atomically across all threads in a process.
00:21:07 <Kaynato> http://pastebin.com/PnRYcK9L
00:24:32 -!- jaboja has quit (Ping timeout: 268 seconds).
00:24:55 -!- Sprocklem has quit (Ping timeout: 244 seconds).
00:34:46 <int-e> as claimed, 0x09 cycles sierpinski... http://sprunge.us/BEba
00:35:36 <int-e> (hmm, I could save a thread...)
00:39:33 -!- centrinia has quit (Quit: Leaving).
00:43:51 -!- lambda-11235 has joined.
00:47:27 <lambda-11235> Ok, I did some thinking and came up with a more succinct language, https://notehub.org/mvig3.
00:52:08 -!- zzo38 has joined.
00:53:26 <zzo38> I found a book describing the original IBM PC hardware including the full BIOS code, instruction set, and schematic diagrams.
00:55:31 <Phantom_Hoover> int-e, it's this kind of shit that makes me hate THR!!
00:56:33 <int-e> Phantom_Hoover: you must really loathe my 15 cycles checkerboard then :P
00:58:39 -!- centrinia has joined.
01:06:25 -!- Sprocklem has joined.
01:07:13 -!- earendel has joined.
01:07:56 <impomatic> Nice work on the Sierpinski int-e :-)
01:09:27 <Phantom_Hoover> impomatic, that mario program is the kind of outrage that has provoked inquisitions
01:09:29 <int-e> I wonder whether my 5 lines sierpinski is the same as yours... will find out in a moment...
01:10:31 <int-e> it'll take almost 0x4000 cycles, ouch
01:14:42 <impomatic> int-e: 5 line Sierpinski 0x4FC cycles
01:25:14 <int-e> okay, mine is 4 lines :)
01:26:52 <int-e> that box-256 thing
01:27:20 <int-e> and with that odd LOC counting that ignores empty lines
01:27:41 <int-e> though, hmm, that's not essential anymore...
01:28:01 -!- bb010g has joined.
01:28:58 -!- tromp_ has joined.
01:30:34 <int-e> http://sprunge.us/KDYB
01:33:16 -!- tromp_ has quit (Ping timeout: 250 seconds).
01:33:51 -!- tromp_ has joined.
01:33:53 <impomatic> Hmmm... I should've thought of that!
01:37:30 <int-e> in fact, wth... I've spent enough time on this to put it on github... https://github.com/int-e/box256
01:42:34 <impomatic> Some of mine are on Github https://github.com/impomatic/BOX256
01:43:51 <int-e> ah but at least our basic idea is the same :)
01:46:14 <int-e> (though I somehow failed to make the forward iteration work)
01:56:00 <hppavilion[1]> lambda-11235: Individual token notes should have the tokens in monospace
01:58:29 <hppavilion[1]> lambda-11235: Like "-> is right associative, so a -> b -> c = a -> (b -> c). a -> b always has type *."
02:01:04 <lambda-11235> hppavilion[1]: Better? https://notehub.org/mvig3
02:02:06 <hppavilion[1]> lambda-11235: No; that's literally the exact same page, but I'm really just nitpicking
02:02:34 <hppavilion[1]> lambda-11235: If recursive functions are banned, and functions can only use their predecessor-defined functions, doesn't that make it a BSM?
02:03:34 -!- Phantom_Hoover has quit (Remote host closed the connection).
02:03:57 <hppavilion[1]> lambda-11235: A TM with finite memory; FSM-complete
02:04:28 <int-e> linear bounded automaton... how many names does this thing have?
02:08:28 <lambda-11235> hppavilion[1]: I don't think so. An FSM could loop forever. This language can't.
02:09:56 <hppavilion[1]> int-e: Also, for a finite string of length 3-5, 12355928
02:11:07 * int-e is not really paying attention
02:12:21 <lambda-11235> Recursive functions are banned to garauntee totality, a property of any typed lambda calculus that doesn't have the fix point function.
02:15:52 -!- tromp_ has quit (Remote host closed the connection).
02:19:22 <oerjan> nonterminating functions can still be immensely more powerful than linear bounded. i recall we found previously that system F can implement goodstein sequences.
02:19:42 <oerjan> although this seemed like a different system - dependent but not polymorphic?
02:20:02 <oerjan> or wait, s/polymorphic/higher rank/
02:21:08 <oerjan> (goodstein sequences, fwiw, cannot be proved to terminate in peano arithmetic)
02:21:24 <oerjan> s/nonterminating/terminating/, sheesh
02:22:30 <oerjan> was it impomatic who wrote that up in restricted haskell
02:23:06 <oerjan> hm who am i confusing you with
02:24:14 <oerjan> (haskell using rank-n extension but no recursion, so equivalent to system F)
02:27:54 <hppavilion[1]> int-e: There. I wrote a program to generate all possible names for a LBA
02:29:00 * oerjan keeps getting the impression that google only knows a fraction of our logs
02:29:33 <hppavilion[1]> oerjan: BTW, do you remember who it was that made Predicate Nomic?
02:29:49 <oerjan> i found a relevant page, but not the haskell program
02:30:11 <oerjan> hppavilion[1]: the first time i remember seeing that name was yesterday.
02:31:30 * oerjan tries looking for just system f
02:33:20 <int-e> impomatic: https://raw.githubusercontent.com/int-e/box256/master/four_squares_2/multi_0x0B :-)
02:34:35 <hppavilion[1]> @ask quintopia Are you the one who invented Predicate Nomic?
02:38:23 -!- tromp_ has joined.
02:59:01 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
03:00:41 -!- hppavilion[1] has joined.
03:07:16 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
03:43:30 <int-e> impomatic: https://raw.githubusercontent.com/int-e/box256/master/checkerboard_2/multi_0x10 ... this time, 0x0F looks impossible, but perhaps there's a better way of dealing with the color swaps.
04:01:45 <coppro> how did I become a contributor to len
04:02:44 <oerjan> you probably made a categorical mistake.
04:04:24 <lambda-11235> coppro: You pointed them at the sun, and got burned.
04:22:44 -!- XorSwap has joined.
04:44:23 -!- centrinia has quit (Quit: Leaving).
04:59:17 -!- lambda-11235 has quit (Ping timeout: 244 seconds).
05:04:45 -!- lambda-11235 has joined.
05:09:03 -!- earendel has changed nick to jessi.
05:09:19 -!- jessi has changed nick to earendel.
05:14:42 -!- iconmaster has quit (Ping timeout: 246 seconds).
05:17:59 -!- XorSwap has quit (Quit: Leaving).
05:20:08 <zzo38> What is best way to make up temporary files in a shell script? Is it possible to automatically delete once it is finish?
05:21:03 -!- Kaynato has quit (Ping timeout: 240 seconds).
05:27:11 <shachaf> zzo38: Maybe if you opened a file descriptor and then unlinked the file.
05:27:27 <shachaf> I'm not sure how well that approach works for shell scripts.
05:32:01 <zzo38> Would it be possible to make up another program that will do the necessary stuff (given the process ID if necessary) and output the commands that can be use with eval or whatever?
05:33:07 -!- jessi has joined.
05:34:06 <int-e> impomatic: it fit... https://raw.githubusercontent.com/int-e/box256/master/checkerboard_2/multi_0x0F
05:36:14 -!- hppavilion[1] has joined.
05:37:46 <hppavilion[1]> Product type yields tuples, but what exactly does quotient type yield?
05:46:18 <hppavilion[1]> lambda-11235: All functional languages seem a little contrived. What happens when you grow one?
05:47:27 <HackEgo> iiuc i understand iiuc correctly.
05:48:30 <tswett> For "what a quotient type yields": that's tricky.
05:49:02 <hppavilion[1]> tswett: Assuming "yields" is not whatever high-level math word you think I meant
05:49:38 <tswett> There's no such high-level math term, so I'm pretty sure I'm thinking the same thing you're thinking.
05:49:58 <lambdabot> It must be inordinately taxing to be such a boob.
05:50:21 <hppavilion[1]> tswett: For reference, sum types yield tagged unions and product types yield tuples
05:51:19 <tswett> Right. Let's say that we're working in the category of... recursive sets, where the arrows are computable functions.
05:51:26 <zzo38> Exponents would then yield functions I suppose
05:51:43 <tswett> Then yeah. Tagged unions are an implementation of sum types, and tuples are an implementation of product types.
05:51:47 -!- oerjan has quit (Quit: Nite).
05:52:09 <tswett> Sum types and product types are category theoretic duals to each other.
05:52:20 <tswett> Likewise, subset types and quotient types are category theoretic duals to each other.
05:52:44 -!- tromp_ has quit (Remote host closed the connection).
05:53:00 <tswett> Subset types can be implemented by just dropping the values that are outside the subset.
05:53:16 <earendel> generator functions in js yield valiues..like compute and spawn the next element of a determined series
05:53:55 <tswett> earendel: no, not really.
05:54:00 <earendel> one of more functional aspects in js.
05:54:23 <zzo38> That is true of JavaScript although it is not related to what hppavilion[1] and tswett was talking about
05:54:52 <tswett> Yeah, generator functions like this are a pretty neat thing.
05:55:09 <earendel> well.. maybe you're even wrong those generators are quite fancy stuff.
05:55:41 <earendel> ah good. we have an agreement.
05:56:36 <zzo38> Monadic generators is also possible and I have written some JavaScript codes for doing such thing
05:56:49 <tswett> hppavilion[1]: so here's a disappointing answer for you: often, quotient types can't be implemented.
05:56:59 <tswett> hppavilion[1]: let me also give you an answer you'll be happier with.
05:57:34 <tswett> Often, quotient types can be implemented by picking one particular element of each equivalence class, and using that to represent the corresponding element of the quotient type.
05:57:52 <zzo38> Node.js does not implement the "return" method for generator objects although I made up my own implementation which seem to work in most cases and requires that the function just rethrows any exception it does not know
05:57:59 <tswett> You can often implement a quotient type by having a function which converts all its inputs to some "normal form".
05:58:18 <tswett> And if you do that, then the answer to your original question is...
05:58:22 <tswett> Quotient types yield normal forms.
05:58:33 <hppavilion[1]> tswett: Oh, I suppose that makes sense; if x*y/y = x, then ((T, U)U = T, but
05:59:13 <hppavilion[1]> tswett: Oh, I suppose that makes sense; if x*y/y = x, then {(T, U) `U} = T, but what's {T `U} if T isn't a tuple?
06:00:00 <hppavilion[1]> tswett: Oh, subset types would be difference types, wouldn't they?
06:00:13 <earendel> zzo38: return? useless in async code. also you can return values. but why not yield* them?
06:00:20 <tswett> Now, quotients of sets are more general than quotients of numbers.
06:00:49 <tswett> In general, the thing that you "quotient over" isn't another set; it's an equivalence relation.
06:01:22 <zzo38> earendel: Not all code will be asynchronous though anyways. But yes you can use return and yield and yield* inside of a function, just the method called "return" is not yet implemented
06:01:34 <tswett> So if you have a set with 100 elements, doing a quotient could land you with any number of elements from 1 to 100 (inclusive).
06:02:13 <tswett> Sometimes, you'll do a quotient where every equivalence class has the same number of elements.
06:02:23 <tswett> *This* is the case that corresponds to quotients of numbers.
06:02:49 <tswett> If you have a set with 100 elements, and you do a quotient such that every equivalence class contains exactly 5 elements, then you'll end up, at the end, with a set with 20 elements.
06:02:56 <zzo38> But with the monadic generator operations you can do such thing as .joinR() which replaces "return x" with "return yield*x" for example.
06:03:17 -!- infinitymaster has joined.
06:04:02 <tswett> Hey everyone, I've been working on my English–Spanish blend some more.
06:04:23 <tswett> I've finally managed to produce... about two words' worth of vocabulary.
06:04:34 <earendel> well the tricky part is the generator "stops" the computation until next yield..allowing a nice form of memoization
06:05:05 <earendel> @zzo38. anything else isn't even that world-moving.
06:05:07 <tswett> I'm starting by blending Old English and Latin, and to start, I'm doing just the consonants.
06:05:22 <tswett> Pretty much ignoring the vowels.
06:05:40 <zzo38> earendel: I am not sure what you meant.
06:06:09 <zzo38> I know what you say is true but I do not understand how it is related to
06:06:15 <tswett> Most of the words I've come up with are kinda boring, because they're identical to either the Old English or the Latin.
06:06:42 <tswett> There's one exception, which is the word for "brother". It is:
06:06:54 <tswett> I'm sure you are all very impressed by this.
06:08:43 <zzo38> earendel: I do not understand what you mean by "anything else isn't even that world-moving" and what your point is by that, is what I meant.
06:08:54 <earendel> nevermind.. i'm not able to express that in a formal way, and it's indeed not related to whatever you guys do here. it's a fun channel, since i never know what you're talking about. one of the last of these channels..
06:09:10 <earendel> so i silence myself again and listen here and then.
06:09:13 <tswett> I've gotta sleep now. Night, everyone.
06:10:31 <zzo38> Which is meaning what?
06:11:40 <zzo38> I think dc and INTERCAL both have something similar
06:13:03 <zzo38> (Such thing could also be implemented in some Forth systems probably)
06:13:18 <pikhq> return -level 2 x returns from the caller, for example.
06:13:42 <shachaf> what happens if you give it a negative level
06:15:01 <zzo38> I would also thought of a strange kind of JavaScript where you can write such thing as "arguments.caller.caller.return(x)"
06:16:31 <shachaf> pikhq: how're things over at pooch hq
06:19:53 * Sgeo wouldn't be surprised if that's how Tcl worked
06:20:25 -!- jessi has quit (Ping timeout: 244 seconds).
06:25:05 <zzo38> Another idea is evasive exceptions, such as if it is implemented extending JavaScript then a label name might be a constant local to the function, the label is itself a function which throws an evasive exception and the function containing that label catches it at the point where the label is (it cannot be caught by "catch" blocks, although "finally" blocks still work)
06:26:45 <zzo38> So it is like a "goto" command but is a bit more generalized
06:49:24 <shachaf> I wrote a chdir executable for Linux once.
06:49:46 <hppavilion[1]> shachaf: return^-1 x returns x from the current function's callee
06:50:12 <hppavilion[1]> shachaf: Upside-down call stack: Every function has 0..infinity callers and 1 callee
06:51:23 <hppavilion[1]> zzo38: It's a sort of functional version of COMPUTED goto, I suppose
06:52:31 <zzo38> hppavilion[1]: Yes it is
06:53:25 -!- tromp_ has joined.
06:54:02 -!- infinitymaster has quit (Remote host closed the connection).
06:57:33 -!- tromp_ has quit (Ping timeout: 240 seconds).
06:59:37 -!- Grenlo has joined.
07:01:46 -!- infinitymaster has joined.
07:02:45 <Grenlo> I don't know, I wasn't sure if people were lurking about here.
07:02:53 <hppavilion[1]> Grenlo: Are you trying to kick this channel into gear?
07:03:56 <Grenlo> Mm what are you working on? *Braces himself*
07:03:59 <zzo38> There are people on this channel. You can ask the question if you have something to write please
07:04:04 <zzo38> Otherwise you do not have to.
07:05:02 <zzo38> I work on many things, currently on some utilities for farbfeld
07:05:05 <hppavilion[1]> So https://en.wikipedia.org/wiki/Eiichi_Goto was a person
07:05:24 <pikhq> Mostly I just work on random bullshit, really.
07:05:31 <hppavilion[1]> Grenlo: A discussion you just missed was about a functional computed GOTO statement
07:06:09 <zzo38> What kind of random bullshit?
07:07:04 <hppavilion[1]> zzo38: He uses an octuple-blind process to randomly sample male cow excrement from farms around the world, which he then studies
07:07:31 <pikhq> It's great research for my upcoming esolang, Cowpie.
07:09:16 <hppavilion[1]> pikhq: A much-anticipated development in the Esolang industry
07:11:01 <Grenlo> Perhaps I would gain at least some understanding of functional programming by listening in here.
07:11:44 <Grenlo> I suppose to an esoteric-ish extent.
07:12:10 -!- AnotherTest has joined.
07:12:29 -!- Grenlo has left.
07:17:41 -!- lambda-11235 has quit (Quit: Bye).
07:18:45 <hppavilion[1]> zzo38: I wonder if a usable typesys could be implemented with return^n
07:25:44 -!- rdococ has joined.
07:32:55 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
07:35:03 -!- infinitymaster has quit (Quit: Leaving...).
07:39:03 -!- bb010g has quit (Quit: Connection closed for inactivity).
08:35:37 -!- J_Arcane has quit (Ping timeout: 252 seconds).
08:48:13 -!- AnotherTest has quit (Ping timeout: 248 seconds).
08:53:50 -!- tromp_ has joined.
08:58:10 -!- tromp_ has quit (Ping timeout: 252 seconds).
09:06:40 -!- jaboja has joined.
09:18:39 -!- jaboja has quit (Ping timeout: 246 seconds).
09:32:30 -!- jaboja has joined.
09:50:05 -!- jaboja64 has joined.
09:51:05 -!- jaboja has quit (Disconnected by services).
09:51:52 -!- jaboja64 has changed nick to jaboja.
10:18:23 -!- jaboja has quit (Ping timeout: 268 seconds).
11:18:01 -!- rdococ has quit (Ping timeout: 244 seconds).
11:25:29 -!- boily has joined.
11:35:58 <lambdabot> CYUL 111000Z 11010G15KT 1 1/2SM -SN SCT007 OVC020 M01/M02 A3005 RMK SF3NS5 /S02/ SLP178
11:36:20 <lambdabot> KOAK 110953Z 25007KT 10SM OVC020 13/09 A3002 RMK AO2 SLP165 T01330094 PNO $
11:36:29 * boily glares at the shachafweather
11:47:00 -!- AnotherTest has joined.
11:55:28 -!- tromp_ has joined.
11:59:20 -!- jaboja has joined.
11:59:52 -!- tromp_ has quit (Ping timeout: 250 seconds).
12:19:36 -!- boily has quit (Quit: PETROLEUM CHICKEN).
12:22:54 -!- ais523 has joined.
12:28:30 <b_jonas> In git, is there a command to reset/merge a branch without checking it out first but in such a way that it only works if it's a fast-forward?
12:29:02 <ais523> b_jonas: also, the only such command I can think of is push
12:29:11 <ais523> and you'd need to do it from a different repo
12:57:16 <b_jonas> git branch can reset a branch without checking it out, but it doesn't offer a check for fast forward
13:13:33 -!- Sgeo has quit (Ping timeout: 240 seconds).
13:20:22 -!- spiette has joined.
13:34:25 -!- jaboja has quit (Ping timeout: 244 seconds).
13:45:41 <HackEgo> [wiki] [[Talk:Brainfuck]] https://esolangs.org/w/index.php?diff=46769&oldid=46491 * Primo * (+600) /* Shortest known "hello world" program. */
13:49:16 -!- jaboja has joined.
13:50:12 -!- Kaynato has joined.
13:56:59 -!- tromp_ has joined.
14:01:23 -!- tromp_ has quit (Ping timeout: 248 seconds).
14:14:03 -!- jaboja has quit (Ping timeout: 240 seconds).
14:19:19 -!- Kaynato has quit (Ping timeout: 244 seconds).
14:38:58 -!- nycs has joined.
14:50:25 -!- J_Arcane has joined.
14:58:10 -!- impomatic_ has joined.
14:58:20 -!- tromp_ has joined.
15:00:15 -!- AnotherTest has quit (Ping timeout: 246 seconds).
15:03:02 -!- tromp_ has quit (Ping timeout: 260 seconds).
15:22:53 -!- Kaynato has joined.
15:27:54 -!- Kaynato has quit (Ping timeout: 260 seconds).
15:34:42 <Taneb> I need to choose my final year project...
15:34:50 <Taneb> Two I'm tempted by are basically esolanging, it seems
15:36:07 -!- lambda-11235 has joined.
15:36:36 <Taneb> (functional programming with orderings and equivalences; and a proof assistant for a graph programming language)
15:49:22 <Taneb> b_jonas: do you have any insights as to my path forwards?
16:07:34 -!- rdococ has joined.
16:08:41 -!- Kaynato has joined.
16:08:55 -!- jaboja has joined.
16:11:56 -!- gamemanj has joined.
16:17:45 -!- AnotherTest has joined.
16:24:21 -!- rdococ has quit (Quit: Leaving).
16:24:44 -!- rdococ has joined.
16:59:16 -!- zadock has joined.
16:59:29 -!- jaboja has quit (Ping timeout: 244 seconds).
17:01:58 -!- Reece` has joined.
17:03:01 -!- Frooxius has quit (Quit: *bubbles away*).
17:08:18 -!- ais523 has quit (Quit: buying food).
17:24:26 -!- Kaynato has quit (Ping timeout: 250 seconds).
17:29:43 -!- zadock has quit (Quit: Leaving).
17:31:13 <b_jonas> argh, I'm getting malloc crashes. something's going very wrong here.
17:32:01 <gamemanj> potential(ly impractical) solution: "Who uses malloc? Static allocation is The Future!"
17:32:38 -!- Kaynato has joined.
17:34:12 <int-e> does valgrind help?
17:34:22 <int-e> gamemanj: I'm not sure that's how it works...
17:34:41 -!- `^_^ has joined.
17:34:45 <int-e> gamemanj: managed heaps are a more likely candidate... and being used quite successfully I might say
17:34:46 <gamemanj> Heap corruption is actually a benefit, because it means the code is writing to addresses you won't be using in your program, so it's at least theoretically tracable.
17:36:09 <int-e> hmm, is the allocator a strange enough machine that it's TC with a carefully crafted heap?
17:36:13 -!- nycs has quit (Ping timeout: 268 seconds).
17:36:23 <int-e> (very C library specific question, obviously)
17:36:33 <gamemanj> That much depends on your allocator and how insane the writer of the heap was.
17:36:52 <gamemanj> Managed heaps are even weirder since I've heard they allow memory to be moved.
17:40:01 <int-e> they might. it's beneficial for avoiding fragmentation and speeding up allocation
17:42:32 -!- p34k has joined.
17:46:16 <gamemanj> Hmm. Maybe there's a solution in this to the old problem of "how to specify the exact alignment, permissions and other requirements for a block of memory"
17:46:47 <gamemanj> An allocator that requires supplying it with a block of bytecode to determine a good address.
17:49:50 <gamemanj> Now, the bytecode will use relative addressing for instructions. The bytecode will also use a randomly chosen* set of instruction IDs: 91, 93, 43, 45, 60, 62.
17:51:59 -!- ais523 has joined.
17:52:21 <int-e> ah I knew it wasn't my own idea.... the term is "weird machine". http://langsec.org/papers/Bratus.pdf uses an allocator as an example.
17:52:34 <b_jonas> what? no, you don't need fancy bytecode, you only need about four integer parameters and a ton of flags for a memory allocation
17:53:39 <gamemanj> b_jonas: ...I think you may be missing the point. Notice my odd choice of instruction IDs...
17:54:32 <b_jonas> I don't see anything interesting about those ids
17:55:11 <gamemanj> `lua -e "print(string.char(91))"
17:55:17 -!- Kaynato has quit (Ping timeout: 244 seconds).
17:55:31 <HackEgo> lua: (command line):1: unexpected symbol near '"print(string.char(91))"'
17:55:54 <b_jonas> gamemanj: try without the quotes
18:02:28 <gamemanj> ironically, when I tested it in a command line, I tried without the quotes first.
18:02:42 <HackEgo> lua: cannot open print(string.char(91)): No such file or directory
18:02:46 <gamemanj> `lua -e print(string.char(91))
18:03:20 <gamemanj> The point being, of course, that the "bytecode" is Brainfuck.
18:09:02 -!- centrinia has joined.
18:12:38 -!- lambdabot has quit (Remote host closed the connection).
18:12:54 -!- jaboja has joined.
18:16:02 -!- lambdabot has joined.
18:18:43 -!- lambdabot has quit (Remote host closed the connection).
18:23:10 -!- erdic has quit (Ping timeout: 248 seconds).
18:24:00 -!- Elronnd has quit (Quit: Let's jump!).
18:25:30 -!- hppavilion[1] has joined.
18:26:03 -!- Phantom_Hoover has joined.
18:27:52 -!- augur_ has quit (Ping timeout: 244 seconds).
18:27:58 -!- Elronnd has joined.
18:31:16 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
18:32:33 -!- Elronnd has quit (Client Quit).
18:35:10 -!- erdic has joined.
18:35:14 <shachaf> @tell boily One day last week it was 30 degrees here.
18:35:55 -!- Elronnd has joined.
18:39:24 -!- lambdabot has joined.
18:41:18 -!- hppavilion[1] has joined.
18:41:18 -!- augur has joined.
18:46:10 -!- Kaynato has joined.
18:47:54 -!- Frooxius has joined.
18:55:33 -!- Kaynato has quit (Ping timeout: 240 seconds).
18:58:05 <fizzie> fungot: You're a clever bot, why can't you support note-sending?
18:58:05 <fungot> fizzie: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc* jargon lovecraft nethack pa speeches ss wp
18:58:20 <fizzie> fungot: I see you're up to your old tricks.
18:58:20 <fungot> fizzie: that is just a value of type is created containing the syntax for mark if he was really gonna get worse and worse each week,
18:59:12 -!- Kaynato has joined.
18:59:56 -!- tromp_ has joined.
19:01:05 <ais523> huh, fungot is mimicking itself?
19:01:06 <fungot> ais523: if that is not used commonly and carries with it an array subscript was too easy heh one time i figured if it's possible.
19:01:08 <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 youtube
19:01:42 <ais523> fizzie: feature idea: ^style random
19:04:12 -!- tromp_ has quit (Ping timeout: 246 seconds).
19:05:57 -!- gremlins has joined.
19:07:14 -!- Reece` has quit (Ping timeout: 260 seconds).
19:09:11 <gamemanj> fizzie: feature idea: a 64Kb permanent store and command to define a command in brainfuck + extras that can access it (as a "second tape"), and can call other commands. That way, if someone gives you an implementable feature request, you can just point them at that meta-command.
19:12:09 <gamemanj> (There are loads of problems with this idea, specifically that someone, someday, would wipe the permanent store - but if only a specific group of people could access it, and they had a standard for data storage, plus a simulator to make sure it doesn't crash?)
19:13:27 <ais523> gamemanj: err, ^def already exists
19:13:32 <fungot> ^<lang> <code>; ^def <command> <lang> <code>; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool
19:14:04 <ais523> ^def exampleforgamemanj ul (here's an example for gamemanj)S
19:14:08 <fungot> here's an example for gamemanj
19:14:10 <gamemanj> you have got to be kidding me.
19:14:33 <ais523> that said each defined command is self-contained, and doesn't have permanent storage (yet)
19:14:42 <ais523> wouldn't be too hard to implement the permastore though
19:14:55 <ais523> (note also that defined commands are temporary unless fizzie makes them permanent)
19:15:01 <ais523> ^def exampleforgamemanj
19:15:01 <fungot> Usage: ^def <command> <lang> <code>
19:15:04 <ais523> ^def exampleforgamemanj bf
19:15:04 <fungot> Usage: ^def <command> <lang> <code>
19:15:09 <ais523> hmm, how do you delete these things?
19:15:12 <ais523> ^undef exampleforgamemanj
19:15:19 <fungot> here's an example for gamemanj
19:15:22 <ais523> meh, it'll disappear at the next reboot
19:15:29 <gamemanj> ^def exampleforgamemanj bf +[]
19:15:46 <ais523> why did you define it to an infinite loop?
19:15:53 <ais523> that normally gives an error message after a while
19:16:00 <ais523> ^def exampleforgamemanj +
19:16:00 <fungot> Usage: ^def <command> <lang> <code>
19:16:03 <ais523> ^def exampleforgamemanj bf +
19:16:07 <ais523> that would make a lot more sense
19:16:47 <gamemanj> huh, I was thinking that the program returning normally would cause it to output something like "no output".
19:17:18 <ais523> although it takes a while to react if it hasn't been used recently
19:18:00 -!- Kaynato has quit (Ping timeout: 244 seconds).
19:18:01 <shachaf> /dev/null probably wasn't in the cache
19:18:26 <ais523> `` while true; do true; done
19:18:38 <ais523> I think infinite loops give no output in HackEgo, not sure though
19:18:57 <gamemanj> busy trying to implement ^cat /dev/null
19:19:24 <ais523> oh, hmm, that's an interesting reaction
19:19:40 <ais523> `` sleep 10; echo test
19:20:13 <ais523> `` sleep 20; echo test
19:20:49 <ais523> `` x=1; while true; do echo $x; x=$((x+1)); sleep 1; done
19:21:33 -!- Elronnd has quit (Quit: Let's jump!).
19:21:44 <ais523> I'm guessing the no output is because it produces no output if it times out?
19:21:57 <ais523> `` x=1; while [ $x -lt 20 ] ; do echo $x; x=$((x+1)); sleep 1; done
19:22:17 <HackEgo> 1 \ 2 \ 3 \ 4 \ 5 \ 6 \ 7 \ 8 \ 9 \ 10 \ 11 \ 12 \ 13 \ 14 \ 15 \ 16 \ 17 \ 18 \ 19
19:22:27 <ais523> `` x=1; while [ $x -lt 60 ] ; do echo $x; x=$((x+1)); sleep 1; done
19:23:30 <ais523> `` x=1; while [ $x -lt 50 ] ; do echo $x; x=$((x+1)); sleep 1; done
19:24:21 <ais523> `` x=1; while [ $x -lt 40 ] ; do echo $x; x=$((x+1)); sleep 1; done
19:24:24 -!- Elronnd has joined.
19:24:36 <gamemanj> documenting brainfuck code is hard "at 0 if mem0 not 0 then decrement mem2 and zero mem0"
19:25:01 <ais523> `` x=1; while [ $x -lt 30 ] ; do echo $x; x=$((x+1)); sleep 1; done
19:25:44 <ais523> `` x=1; while [ $x -lt 29 ] ; do echo $x; x=$((x+1)); sleep 1; done
19:26:14 <HackEgo> 1 \ 2 \ 3 \ 4 \ 5 \ 6 \ 7 \ 8 \ 9 \ 10 \ 11 \ 12 \ 13 \ 14 \ 15 \ 16 \ 17 \ 18 \ 19 \ 20 \ 21 \ 22 \ 23 \ 24 \ 25 \ 26 \ 27 \ 28
19:26:58 <ais523> `` stdbuf -o0 echo test; while true; do true; done
19:28:01 <ais523> `` stdbuf -o0 echo test
19:28:21 <ais523> hmm, what if no shell is involved
19:28:31 <HackEgo> usage: mk[x] file//contents
19:29:51 -!- J_Arcane_ has joined.
19:30:36 -!- Reece` has joined.
19:30:42 <gamemanj> ^def cat-experiment-gamemanj bf +++++++++[>+++++<-]>++<,>[<->-]>+<<[>>-<<[-]]>>[>+++++++++++[->++++++<]>++++++++++++.+++++++.--------..++++++.-.----.+++++.-.[-]<<[-]]
19:30:51 <gamemanj> ^cat-experiment-gamemanj this will have no output
19:30:55 <gamemanj> ^cat-experiment-gamemanj /dev/null
19:31:33 -!- gremlins has quit (Ping timeout: 240 seconds).
19:31:46 <ais523> gamemanj: it might help if your , was in a loop
19:31:52 <ais523> if you're trying to read more than one character of input
19:32:52 -!- J_Arcane has quit (Ping timeout: 252 seconds).
19:32:56 <gamemanj> actually that's deliberate - trying to match the whole of /dev/null would be hard
19:33:01 -!- J_Arcane_ has changed nick to J_Arcane.
19:33:03 <gamemanj> it's the output routine that's having problems
19:37:24 <gamemanj> ^def cat-experiment-gamemanj bf +++++++++[>+++++<-]>++<,>[<->-]>+<<[>>-<<[-]]>>[>+++++++++++[->++++++>+++<<]>++++++++++++.+.>-.<.++++++.-.----.+++++.-.[-]>[-]<<<[-]]
19:37:27 <gamemanj> ^cat-experiment-gamemanj /dev/null
19:40:31 <gamemanj> now to check if someone already did this
19:41:25 <fungot> +9[>+5<-]>+2<,>[<->-]>+<2[>2-<2[-]]>2[>+11[->+6>+3<2]>+12.+.>-.<.+6.-.-4.+5.-.[-]>[-]<3[-]]
19:42:08 -!- Kaynato has joined.
19:42:26 <gamemanj> ok, so cat isn't defined. If anyone wants ^cat /dev/null to show "NO OUTPUT", ^def the above :)
19:45:52 -!- impomatic__ has joined.
19:46:04 -!- impomatic_ has quit (Quit: http://corewar.co.uk).
19:47:27 -!- impomatic has quit (Ping timeout: 244 seconds).
19:47:41 -!- impomatic__ has changed nick to impomatic.
19:47:57 -!- jaboja has quit (Ping timeout: 244 seconds).
19:49:56 <shachaf> @tell boily One day last week it was 30 degrees here.
20:00:26 -!- rdococ has quit (Quit: Leaving).
20:01:36 -!- earendel has quit (Ping timeout: 246 seconds).
20:05:31 -!- jaboja has joined.
20:11:37 -!- Kaynato has quit (Ping timeout: 268 seconds).
20:17:45 -!- Elronnd has quit (Quit: Let's jump!).
20:19:09 -!- Elronnd has joined.
20:29:11 -!- Reece` has quit (Quit: Alsithyafturttararfunar).
20:29:25 -!- lambda-11235 has quit (Quit: Bye).
20:37:46 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
20:41:28 -!- hppavilion[1] has joined.
20:47:23 -!- Kaynato has joined.
20:48:48 -!- lambdabot has quit (Remote host closed the connection).
20:53:21 -!- lambdabot has joined.
21:14:25 -!- iconmaster has joined.
21:15:02 -!- Digby has joined.
21:19:51 -!- hppavilion[1] has quit (Ping timeout: 276 seconds).
21:27:00 -!- hppavilion[1] has joined.
21:28:12 -!- Digby has left ("Leaving").
21:58:38 <HackEgo> smlist 435: shachaf monqy elliott mnoqy
22:00:04 <HackEgo> Non-update notification for the webcomic Super Mega.
22:00:10 <shachaf> http://www.supermegacomics.com/index.php?i=435
22:00:26 <Phantom_Hoover> nobody else on that list is still in the channel shachaf
22:00:45 <shachaf> but people might still be interested
22:01:08 <shachaf> how are people going to know about the super mega update service if it's never used
22:02:31 <HackEgo> slist: Taneb atriq Ngevd nvd Fiora Sgeo ThatOtherPerson alot
22:02:45 <HackEgo> Update notification for the webcomic Homestuck.
22:03:10 <Taneb> Phantom_Hoover: will be on Wednesday
22:03:16 <shachaf> Taneb: You're the only person on that list in this channel.
22:03:29 <Taneb> shachaf: yes but I'm four of them
22:03:33 <HackEgo> hppavilion[1] b_jonas boily a`a`a`a`jo7as a`a`a`a`jo8as a`a`a`a`jo3as a`a`a`a`jo6as a`a`a`a`jo5as a`a`a`a`jo4as a`a`a`a`jo2as a`a`a`a`jo1as a`a`a`a`jonas0 a`a`a`a lambdabot chicken_jonas myname
22:03:34 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: enlist: not found
22:03:59 -!- AnotherTest has quit (Quit: ZNC - http://znc.in).
22:04:41 <shachaf> int-e: Try it again and you'll see.
22:06:15 <int-e> no, I read the source code...
22:06:22 <int-e> ...apparently I should've done this first :P
22:06:30 <shachaf> int-e: Well, it's too late now.
22:06:38 <shachaf> You might as well `list to see it in action.
22:06:46 <myname> don't you like highlights?
22:07:18 <int-e> `` sed -i 's/..xargs/| grep -v int-e | xargs/' bin/list
22:10:10 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
22:10:30 <HackEgo> rm: cannot remove `/home/hackbot/hackbot.hg/multibot_cmds/env/.hg/store/data/canary.orig': Is a directory \ Done.
22:10:46 <int-e> `` sed =i 's/..xargs/| shuf | xargs/' bin/list
22:10:51 <HackEgo> sed: -e expression #1, char 2: extra characters after command
22:11:25 <int-e> `` sed -i 's/..xargs/| shuf | xargs/' bin/list
22:12:15 -!- hppavilion[1] has joined.
22:12:23 <shachaf> It's supposed to be sorted by most recent modifiers.
22:12:40 <int-e> well it's going to be one of thise versions
22:13:05 <shachaf> b_jonas sabotaged the list with a bunch of spurious entries.
22:14:20 -!- hppavilion[2] has joined.
22:15:51 -!- earendel has joined.
22:17:19 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
22:19:06 -!- hppavilion[2] has quit (Ping timeout: 250 seconds).
22:20:24 -!- jaboja has quit (Ping timeout: 250 seconds).
22:27:57 -!- gamemanj has quit (Ping timeout: 248 seconds).
22:28:35 <HackEgo> rm: cannot remove `/home/hackbot/hackbot.hg/multibot_cmds/env/.hg/store/data/canary.orig': Is a directory \ Done.
22:28:45 <int-e> I think it doesn't even hilight people anymore
22:28:52 -!- `^_^ has quit (Quit: This computer has gone to sleep).
22:29:36 <HackEgo> int-e hppavilion[1] b_jonas boily a`a`a`a`jo7as a`a`a`a`jo8as a`a`a`a`jo3as a`a`a`a`jo6as a`a`a`a`jo5as a`a`a`a`jo4as a`a`a`a`jo2as a`a`a`a`jo1as a`a`a`a`jonas0 a`a`a`a lambdabot chicken_jonas myname
22:29:37 <HackEgo> date > share/conscripts; culprits share/conscripts | xargs -n 1 | awk '!x[$0]++' | xargs
22:30:50 <b_jonas> yeah... and I still haven't written that new noping filter I promised
22:35:25 <ais523> huh, did Phantom_Hoover just join the new `list for the first time?
22:36:18 <HackEgo> Phantom_Hoover int-e hppavilion[1] b_jonas boily a`a`a`a`jo7as a`a`a`a`jo8as a`a`a`a`jo3as a`a`a`a`jo6as a`a`a`a`jo5as a`a`a`a`jo4as a`a`a`a`jo2as a`a`a`a`jo1as a`a`a`a`jonas0 a`a`a`a lambdabot chicken_jonas myname
22:36:56 <ais523> also b_jonas is on there a lot
22:37:31 <b_jonas> ais523: yeah, I started to put a lot when I thought it was alphabetized
22:37:58 -!- haavard_ has quit (Remote host closed the connection).
22:38:01 <b_jonas> ais523: but it's sorted latest first, so there's no point adding lots of entries until after I want to remove an entry
22:38:04 <ais523> you were trying to push yourself past 512 characters?
22:38:21 <ais523> this really subverts the `list's purpose
22:38:31 <b_jonas> ais523: sort of. I was never on the list as b_jonas, but I was trying to make it so that I couldn't get on it
22:38:35 <ais523> insomuch as it has one at all
22:38:39 <b_jonas> since the list would consist only of names starting with a
22:38:40 -!- haavard has joined.
22:39:02 <ais523> then when you realised the sorting rules, you added yourself so that over time you'd fall off the end?
22:39:34 <b_jonas> ais523: no, I didn't add myself, and I think that doesn't help, because I think it's sorted by last appearance descending
22:39:46 <b_jonas> so it's a queue and every time you list you move on the head
22:39:59 <ais523> that's an even better sorting rule
22:40:01 <b_jonas> but I'm not sure that's how it works
22:40:05 <ais523> even if it's accidental, I like it
22:40:07 -!- ais523 has quit.
22:40:17 <HackEgo> #!/bin/sh \ exec hg log -l 512 --template "{desc}\0" -- "$@" | perl -0ne '/^<([^>]*)>/ and print"$1 "'
22:40:22 -!- ais523 has joined.
22:40:26 <HackEgo> #!/bin/sh \ exec hg log -l 512 --template "{desc}\0" -- "$@" | perl -0ne '/^<([^>]*)>/ and print"$1 "'
22:40:26 <HackEgo> hg log --removed "$1" | grep summary: | awk '{print substr($2,2,length($2)-2)}' | sed "s/.$/\x0F&/" | xargs
22:43:04 <b_jonas> reminder: culprits-ng is disabled because I haven't implemented a noping filter yet
22:45:43 <myname> b_jonas: you canntest if you move to the front, you know ...
22:46:52 <b_jonas> myname: I think I did test that with some of the numbered variants
22:47:17 <b_jonas> but you can see it from the source too: culprits lists in order of date backwards, then that awk thing filters keeping the first instance of each name
22:47:41 <b_jonas> myname: also, "chicken_jonas" appears on that list because the real b_jonas was too much of a chicken to list
22:51:52 -!- Sgeo has joined.
22:53:00 -!- boily has joined.
22:54:04 <olsner> the real b_jonas is more chicken than chicken jonas?
22:55:16 -!- earendel has quit (Ping timeout: 252 seconds).
22:56:17 <boily> hellolsner, b_jellonas. chickening?
22:56:44 * boily premptives shachaf's unloud-massage.
22:56:47 <lambdabot> shachaf said 3h 6m 50s ago: One day last week it was 30 degrees here.
22:56:56 <boily> shachaf: hellochaf. AAAAAAAAAAAAAARGH!
22:57:20 <shachaf> boily: But now it's cold again.
22:57:22 <lambdabot> KOAK 112153Z 27009KT 10SM FEW024 BKN045 18/09 A3011 RMK AO2 SLP195 T01830094 PNO
22:58:09 <Taneb> shachaf: bekekekech?
22:58:36 <lambdabot> EGBB 112150Z 22003KT 4200 BR BKN028 09/09 Q1005
22:58:39 <fungot> b_jonas: i, myself, will bring an end to all. ghosts lurk in the ruins were in truth, and everything in readiness for fnord. under these is concerned, the use of " coup" here is one that only takes predicates and has not named a
22:58:42 <Taneb> Chorus of the Frogs from Aristophanes' play The Frogs
22:59:03 <boily> shachaf: it's +18. it's hot.
22:59:09 <lambdabot> CYUL 112100Z 15012KT 10SM -RA FEW015 OVC020 06/05 A2983 RMK SF1SC7 SLP104
22:59:46 <Taneb> Aaaaah, my uni's weather station has a broken wind measurer thingy
23:00:28 <ais523> hmm, EGBB is easy to remember as "England, Great Britain, Birmingham" even though it doesn't actually stand for that
23:00:38 <b_jonas> Taneb: it's not broken. there's a terrible hurricane there right now.
23:00:56 <boily> Europe (part of), Gunited Kingdom, BBirmingham.
23:01:16 <boily> Britain gets hurricanes?
23:01:16 <shachaf> Taneb: Oh. I feel like I talked about that play in here recently but I don't remember the context.
23:01:29 <Taneb> boily: we did, once
23:01:42 -!- tromp_ has joined.
23:01:44 <ais523> oh, "Europe, Great Britain, Birmingham" works even better because it's in the right order
23:02:03 <ais523> even if it's still a little incorrect etymologically
23:03:10 <boily> I wish Bbirmingham was pronounced with a bilabial trill.
23:03:52 <ais523> I'm not sure I /can/ pronounce a bilabial trill
23:04:11 <Taneb> I'm not even sure what one is
23:04:36 <ais523> Taneb: you know how you say "b" by blowing outwards with your lips together, then letting your lips separate?
23:04:49 <ais523> if you have your lips in the right position, you can separate them with the force of your breath
23:05:04 <Taneb> Making a sort of brr sound?
23:05:08 <ais523> /now/, if you blow at the right speed, they'll separate then come back together, and separate again
23:05:15 <ais523> thus you get two b's in a row
23:06:03 -!- tromp_ has quit (Ping timeout: 246 seconds).
23:06:15 -!- oerjan has joined.
23:06:17 <Taneb> I can *almost* do that, but not consistently
23:06:39 <Phantom_Hoover> Taneb, it's blowing a raspberry with your lips basically?
23:08:45 <ais523> and then you somehow have to segue into "irmingham" without dropping a beat
23:09:14 <Taneb> It always comes out as prrirmingham for me
23:09:19 -!- hppavilion[2] has joined.
23:10:26 <boily> pbvbvbvbvbvrirngmingham...
23:10:31 <hppavilion[2]> A javascript framework that forces you to prove pages...
23:11:24 -!- earendel has joined.
23:11:34 <ais523> I've wanted strongly typed LaTeX for a while
23:11:43 <ais523> which could catch typos in formulas you write via the units on the two sides not being the same
23:12:27 <b_jonas> ais523: um... there's strongly typed stuff that catches non-matching units, but I don't think it's LaTeX
23:12:40 <ais523> right, I didn't think it /existed/
23:12:45 <ais523> I typo formulas too often
23:17:10 * oerjan is disappointed that this bbirmingham stuff wasn't how they actually pronounce it there
23:22:48 <boily> how do you say the "_"?
23:23:27 <b_jonas> boily: I'm not sure, it's a screen name so I don't have to pronounce it
23:23:27 <ais523> I had that problem too trying to pronounce it
23:23:30 <ais523> I guess you just wait for a bt
23:23:45 <b_jonas> but I usually pronounce it as béjónás
23:23:51 <b_jonas> so there's a vowel between
23:24:05 <coppro> I have now authored a piece of serious software whose source code includes the word "Coyoneda". What has come of my life?
23:25:09 <boily> cobbrello. mwah ah ah.
23:26:03 <ais523> I didn't know "Coyoneda" was a word at all
23:26:35 <shachaf> It's a little rude to dualize someone's name, don't you think?
23:26:41 <shachaf> Coyoneda is great, though.
23:27:04 <shachaf> coppro: If you don't want to include the word "Coyoneda" you can inline it.
23:28:19 <ais523> oh, I didn't even parse it with a break after the first o
23:28:29 <ais523> that's how I normally see it spelled
23:29:17 <shachaf> It's a Haskell type in this case.
23:29:27 <shachaf> Coyoneda f a = exists x. (f x, x -> a)
23:31:04 <b_jonas> how do you know what coyoneda is in coppro's software?
23:31:40 <myname> these exists thingies always get me
23:32:09 <b_jonas> why would it even use Haskell?
23:32:39 <myname> cause haskell is awesome
23:33:54 <shachaf> b_jonas: I've been seeing coppro's discussion of it in another channel.
23:34:05 <shachaf> Well, I haven't really been reading it in detail.
23:34:47 <b_jonas> but why would any serious software use haskell?
23:36:12 <myname> while we are at it: how do i do nested if then else in a do block without adding identation at every if
23:36:55 <lambdabot> https://prime.haskell.org/wiki/DoAndIfThenElse
23:37:01 <coppro> shachaf: I could, yes. That would somewhat defeat the entire point though
23:37:28 <coppro> which was to build the Operational instance of Zoom off of the Functor instance
23:38:18 <oerjan> <hppavilion[1]> zzo38: I wonder if a usable typesys could be implemented with return^n <-- you'd need the type of a function to include the return types of its callers...
23:38:24 <myname> so, as i guessed, you can't?
23:39:13 <shachaf> I don't know what you want to do.
23:39:47 <oerjan> > if 1 > 2 ; then 1 ; else if 2 > 3 ; then 2 ; else 3
23:39:58 <oerjan> myname: you can in ghc.
23:40:30 <oerjan> because you don't have to indent then or else.
23:41:00 <oerjan> well you have to start with "else if".
23:41:12 <oerjan> that might even be official haskell2010, not sure.
23:41:33 <b_jonas> huh... how does that even parse? there shouldn't be semicolons there
23:42:06 <oerjan> b_jonas: the semicolons (optional) are what makes it work
23:42:18 <b_jonas> (in haskell that is. in ruby semicolons would be allowed)
23:42:20 <oerjan> because they're equivalent to newlines.
23:42:45 <b_jonas> oerjan: um... nah, I don't get it
23:43:03 <b_jonas> that's just not how H syntax used to work
23:43:43 -!- hppavilion[2] has changed nick to hppavilion[1].
23:44:01 -!- p34k has quit.
23:44:13 <shachaf> b_jonas: Right, that's why the Haskell Prime proposal I linked to above changed it.
23:44:55 <b_jonas> meh, haskell syntax was screwed up a few times already
23:44:57 <oerjan> b_jonas: what's impossible about it? it's just a small change to the grammar.
23:45:25 <b_jonas> them haskellers just have a very different idea about syntax from me
23:45:53 <b_jonas> I should go and program C++ and Rust, those have syntax I like
23:46:42 <shachaf> b_jonas: Just write Haskell with {} and ;
23:47:01 <b_jonas> that's already how I write H
23:47:03 <oerjan> b_jonas: ok, it's official haskell 2010.
23:47:52 -!- boily has quit (Quit: CARRY CHICKEN).
23:58:28 <oerjan> <ais523> meh, it'll disappear at the next reboot <-- i think that's the only way to get rid of them.
23:58:58 <ais523> are there any languages which can be written with /just/ {};?
23:59:04 <ais523> perhaps there are some DSLs inside IOCCC entries
23:59:14 <ais523> which tend to use {};-based encodings a lot
23:59:26 <ais523> due to an intentional exploit of the byte counter