00:04:44 <ihope> Hmm, so that fancy voiceless alveolar lateral fricative, found in Welsh words like "Llywellyn", sounds a lot like a soft "th". 
00:24:42 -!- GreaseMonkey has joined. 
00:28:04 -!- moozilla has joined. 
00:38:47 -!- olsner has quit ("Leaving"). 
00:49:43 <psygnisfive> the voiceless alveolar lateral fricative is basically just an l, without being voiced, and very h-like 
00:50:17 <psygnisfive> its almost lisp-ish if you're not familiar with it. 
01:00:44 <ihope> psygnisfive: that's why I said it's a lot like a "th" rather than being one. 
01:04:04 -!- sebbu has quit ("@+"). 
02:29:26 -!- poiuy_qwert has joined. 
03:08:01 -!- oerjan has quit ("Good night"). 
03:50:13 -!- ihope has quit (Read error: 60 (Operation timed out)). 
03:58:57 -!- metazilla has joined. 
03:59:49 -!- CO2Games has joined. 
04:07:48 -!- moozilla has quit (Read error: 110 (Connection timed out)). 
04:55:08 -!- poiuy_qwert has quit. 
05:23:08 -!- CO2Games has quit ("And I invented doors, no joke!"). 
05:49:04 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | Abelboobied indeed.. 
06:17:10 -!- CO2Games has joined. 
06:27:16 <psygnisfive> not in a way that you can iterate over them, necessarily 
06:31:01 <psygnisfive> but in that you can test membership in a type just like you'd test membership in a set 
06:40:23 <CO2Games> a language based around halloween commands 
06:43:48 -!- slereah has joined. 
06:43:49 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)). 
06:46:08 <CO2Games> No wait I've got a better idea 
06:46:19 <CO2Games> A language based around a couldron 
06:48:16 <CO2Games> a package which holds the ingredients in order as in the header 
06:48:28 <ae5ir> something like chef? 
06:48:52 <ae5ir> http://www.dangermouse.net/esoteric/chef.html 
06:50:31 <ae5ir> if you're going to name it Cauldron, be sure to spell it right :) 
06:50:53 <ae5ir> but I'm intrigued. 
06:51:11 <CO2Games> need a purpose for the pot though 
06:51:14 <ae5ir> as I've been fond of the premise of chef 
06:51:25 <ae5ir> execution notwithstanding 
06:52:04 <CO2Games> See, I'm thinking two stacks and two shelves 
06:52:14 <CO2Games> and then a readonly stack called the box 
06:52:36 <CO2Games> one stack will just be general purpose 
06:53:03 <CO2Games> pushing to it outputs to the user, popping inputs from the user 
06:53:33 <CO2Games> And the end result is whatever is in the pot 
06:54:50 -!- Slereah_ has joined. 
06:54:59 <CO2Games> like on posix systems, the pot could start out empty and cold, and on windows it could be greasy and disgusting 
06:55:26 <CO2Games> and if the pot ever goes over 255 on posix, ingredients that go into it evaporate 
06:55:39 -!- slereah has quit (Read error: 104 (Connection reset by peer)). 
06:55:50 <CO2Games> and then you can drain the pot too 
06:56:01 <CO2Games> but on windows before you start you have to clean the pot 
06:56:21 <CO2Games> then you need to rinse the shit out of it 
06:56:29 <CO2Games> so you don't get sick from the soap 
06:56:51 <CO2Games> and if you don't rinse it enough, you get sick at the end of the program and get an access violation 
06:57:08 <CO2Games> then on both systems you have to make sure the water is clean 
06:57:28 <CO2Games> so you have to either use a filter, investigate, or just hope you don't vomit 
06:58:45 <CO2Games> and you always have to wash out the pot after draining unless you want oil from the previous contents 
06:59:17 <CO2Games> and then you can cause yourself to vomit 
06:59:50 <CO2Games> if you use your fist theirs a chance that you choke instead and that deletes the executable 
07:00:03 <CO2Games> and if you use a fork you could stab yourself 
07:00:16 <CO2Games> and if you use a knife you will always stab yourself 
07:00:24 <CO2Games> and if you use a spoon you always choke 
07:00:41 <CO2Games> and if you use a spork, you will either stab yourself or choke 
07:00:51 <ae5ir> so I guess you can overengineer a language to death 
07:01:17 <CO2Games> and if you use a foot you will always explode and that deletes the entire directory of the program 
07:01:37 <CO2Games> I mean c4 with an electrical timer in it 
07:02:33 -!- CO2Games has quit ("And I invented doors, no joke!"). 
07:07:47 -!- slereah has joined. 
07:08:22 -!- Slereah_ has quit (Read error: 113 (No route to host)). 
07:21:17 -!- kar8nga has joined. 
07:30:00 -!- mtve has joined. 
07:41:58 -!- kar8nga has left (?). 
07:49:40 <oklopol> ehird: don't worry i typo "finnish" to "swedish" all the time. 
07:49:52 <oklopol> slereah: what if they're infinite? 
07:53:15 <oklopol> also, i was gonna ask you, ehird, whether you changed your nick back to tusho for a while some time ago, then i realized ehird is, in fact, your old nick, so, err, i think you did 
07:53:25 <oklopol> but not back to tusho, but back to ehird 
07:55:56 -!- psygnisfive has changed nick to psygnisfive[slee. 
07:56:05 -!- psygnisfive[slee has changed nick to p5[sleep]. 
07:59:59 -!- clog has quit (ended). 
08:00:00 -!- clog has joined. 
09:11:40 -!- puzzlet_ has quit (SendQ exceeded). 
09:12:20 <optbot> ais523: they're actually disjoint, i was confused by no ^$ or similar around k and s 
09:17:06 <oklopol> oooooooooooooooooooooooooooooooooo 
09:17:31 <ais523> but I'll be back considerably later today (my time) 
09:21:08 <oklopol> muture has once again been postponed a bit, since i read pretty much all my free time 
09:21:29 <ais523> also, I like the topic 
09:21:42 <oklopol> the ideas i had for it are basically automation of dynamic programming 
09:22:59 <oklopol> but that's basically just having a memoization structure where you memoize based on input and whether you minimize or maximize, or just take the result 
09:24:21 <oklopol> so if you want to minimize f(n) = f(n-1) | f(n-2), you would check the memoization table for (MIN,f,n-1) and (MIN,f,n2), or just evaluate those if they aren't found, and then take the smaller one as the global minimum 
09:24:52 <ais523> maybe you could do memoization by name? 
09:25:15 <ais523> that sounds much like what you're doing 
09:25:31 <ais523> I mean, you memoize instructions which are more complicated than just functions 
09:25:38 <ais523> so you memoize min(f(n-1)) 
09:25:51 <oklopol> ("f(n-1) | f(n-2)" means to take, nondeterministically, either of these evaluations) 
09:26:05 <oklopol> yeah, that's why the parens 
09:26:31 <oklopol> i still don't know what you mean by memoization by name 
09:26:46 <ais523> well, call-by-name is a sort of imperative version of laziness 
09:26:59 <ais523> instead of passing the function an argument, you tell it what the argument looks like 
09:27:04 <ais523> you can take this to extremes, though 
09:27:36 <oklopol> but i will actually need the value that's gotten when the memoization is done 
09:27:36 <ais523> as an example, imagine a simple imperative language with an eval statement 
09:27:54 <ais523> and instead of writing f(g(x)); sub f(y) {return y;} 
09:28:07 <ais523> you write f("g(x)"); sub f(y) {return eval(y);} 
09:28:18 <ais523> so you memoise by the instructions you're passing around 
09:29:01 <oklopol> where's the memoization in that? i'm still missing your point i'm afraid 
09:29:03 <ais523> so in this case you optimise min(f(n)) where f(n) = f(n-1) | f(n-2) into fmin(n) where fmin(n) = min(fmin(n-1), fmin(n-2)) 
09:29:19 <ais523> but you just write it as memoisation of min(f(x)) 
09:29:29 <ais523> which you can memoise as if it were a function 
09:29:50 <ais523> I think that was your original point, though 
09:29:52 <ais523> in which case, I agree 
09:30:21 <oklopol> oh, you mean that the actual min(f(n)) could be memoized, f(n) unevaluated 
09:30:31 <oklopol> that's exactly what i'm doing, yes :P 
09:30:53 <ais523> well, with that particular definition of f it all ends up equal to min(f(0),f(1)) or whatever your base cases are 
09:31:05 <ais523> but that's deliberately missing the point... 
09:32:26 <oklopol> but you could have stuff like f(n) = ( f(n - 1) | f(n - 3) + 1 | f(n - 5) + 3 ) + ( f(n-2) - 1 | f (n-4) * 1.1 ) 
09:32:36 <oklopol> and you could minimize that 
09:33:30 <ais523> hmm... muture is a bit of a hyper-Prolog, but actually implementable 
09:33:30 <ais523> are you going to use all this optimisation stuff to implement program flow like loops too? 
09:33:49 <oklopol> i haven't thought much about program flow tbh 
09:34:07 <oklopol> i'm aiming for somewhat domain specific a language 
09:34:14 <oklopol> you cannot define new types 
09:34:25 <ais523> well, you don't really need them 
09:34:28 <oklopol> and it's even discouraged to define new functions, except when you're minimizing them. 
09:34:41 <oklopol> everything is done with list operations 
09:34:57 <oklopol> which are quite interesting, and eso 
09:35:25 <oklopol> stuff like /list == 5, which tests "for all x in list: x == 5" 
09:35:42 <oklopol> and \list == 5 for "for at least one x in list: x == 5" 
09:36:08 <ais523> well, if you implement lists and tuples of arbitrary types 
09:36:10 <ais523> then you basically have a sufficiently rich type system anyway for a declarative language 
09:36:16 <oklopol> and then explicit quantification, doing this for lists representing trees or graphs, and // and \\ for doing this for the second level of a nested list, etc 
09:36:32 <ais523> you're going to run out of chars for comments at this rate 
09:36:40 <oklopol> i only have dynamically typed lists, and integers 
09:36:59 <ais523> so lists and tuples are the same type? 
09:37:07 <oklopol> i wasn't gonna use // for comments anyway 
09:37:53 <oklopol> i don't see a need for tuples really 
09:38:04 <oklopol> integers + links between them, that's all i need 
09:39:12 <oklopol> i have these infinite numbers, kinda 
09:39:19 <oklopol> that are greater than any integer 
09:39:38 <oklopol> so when you maximize, and you get a number like that, you can ignore any number with a smaller amount of infinities 
09:39:40 <ais523> are these the same as the mathematical infinities, or a new okloset of numbers? 
09:40:00 <oklopol> of course, not mathematical infinites, just numbers that are greater than numbers that aren't pseudo-infinite 
09:40:03 <ais523> hmm... you could have numbers in base infinity 
09:40:24 <ais523> so 4:0:0 > 3:99999999999999999999999999:999999999999999999999999999999 
09:40:32 <ais523> and each of the parts is bignums, and you can have as many as you like 
09:40:44 <oklopol> yes, can you see the use of those? 
09:41:35 <oklopol> if you're maximizing a quantity, you can kinda create a goal that's strictly higher up than anything one could've achieved without reaching the goal, by giving a pseudo-infinite point for it 
09:41:44 <ais523> well, there are several uses 
09:41:50 <ais523> it would be good in the chess program I wrote once, for instance 
09:42:02 <ais523> (btw Muture should create brilliantly short programs for playing games like chess) 
09:42:08 <ais523> also, for error conditions, too 
09:42:33 <oklopol> yes, the list operations should be extensive enough to make most rules trivial to express 
09:42:44 <oklopol> and the rest is basically creating the local heuristics 
09:42:52 <oklopol> and maximizing or minimizing 
09:43:53 <ais523> if something goes wrong 
09:43:58 <oklopol> the pseudo-infinities are there because otherwise you end up thinking "okay, if i can get a checkmate here, then i definitely should do it... so, what is the maximum sum the other heuristics can give, let's calculate..." 
09:44:10 <ais523> then setting a lexicogrpahically high or low value could either report or hide the error 
09:44:19 <ais523> as in, -1:0 if you want paths that error to be ignored 
09:44:27 <ais523> and 1:0 if you want parhs that error to always be reported 
09:45:48 <oklopol> i'm also thinking you could give the program a hint of what maximum is "good enough", this way you could use something like you just explained, and also, you could tell it 0 is the least amount of errors there can be in a result or something 
09:46:16 <ais523> well, hinting is really easy 
09:46:17 <oklopol> because sometimes it may not be trivial to see all functions that constitute the sum that is to be minimized always give nonnegative results 
09:46:43 <ais523> well, I need a for-all-x in there 
09:46:46 <ais523> but you know what I mean 
09:47:14 <oklopol> umm just \x there actually 
09:47:20 <ais523> and probably I've got the syntax for min and max wrong 
09:48:04 <oklopol> i'm not sure what max(f(/x)) means, the distinction of / and \ makes sense only for checking whether "all", or "some", of a list satisfy a predicate 
09:48:37 <ais523> you'll have to post a partial spec some time so I can look at it 
09:49:02 <ais523> except that I'm going in about 10 mins 
09:49:12 <ais523> and won't be back until much later today 
09:49:21 <ais523> (I'm sneaking in a bit of IRC before class) 
09:49:28 <ais523> nothing, I'm really busy in RL 
09:49:29 <oklopol> ais523: i see, i'll *write* a partial spec some time so you can look at it. 
09:50:10 <AnMaster> ais523, oh and should I learn Ocaml or Haskell first? 
09:50:13 <ais523> AnMaster: I really don't have time for much esoprogramming atm apart from my University project 
09:50:19 <AnMaster> I plan one of them after I finish learning scheme 
09:50:23 <oklopol> i've only written programs in muture, no speccing has been done 
09:50:26 <ais523> also, learn both, but you'll probably get into Ocaml more easily 
09:50:46 <ais523> Haskell is very weird until you're used to it, even if you know how functional programming works 
09:51:00 <ais523> but once you're used to it you'll realise everything else is a special case of Haskell, more or less 
09:51:11 * ais523 ponders a Haskell to Underload compiler 
09:51:24 <AnMaster> ais523, oh and, call/cc is an abbreviation headache obviously 
09:51:37 <ais523> well, the official name is call-with-current-continuation 
09:51:40 <ais523> but that takes too long to type 
09:51:53 <ais523> maybe it should just be called c, like in Unlambda and Underlambda 
09:51:59 <AnMaster> ais523, well that is not true really, in reality it means "headache" 
09:52:13 <oklopol> ais523: abbreviation *for* headache, i think 
09:52:38 <oklopol> ais523: missed it, i think 
09:52:40 <ais523> well, it's basically just a nonlocal goto, except that it stores the call and data stacks in the continuation 
09:52:50 <oklopol> because you clearly cannot read AnMaster's mind when it comes to "for" 
09:52:51 <AnMaster> ais523, I understand the theory 
09:53:02 <AnMaster> it still is hard to think about 
09:53:18 <AnMaster> macros are not as bad, but still pretty bad too 
09:53:35 <ais523> well, if call/cc doesn't hurt your brain, either you're doing something wrong or you're oklopol 
09:53:47 <ais523> but even though it hurts my brain slightly I still know how to use it 
09:53:58 <AnMaster> well hm I guess one have to learn by trying 
09:54:26 <oklopol> AnMaster: call/cc is pretty simple if you don't return multiple times. used as a fast way to return it's just exception control without autopilot 
09:54:46 <ais523> oklopol: well yes, but that's boring 
09:54:47 <AnMaster> oklopol, sure but the semantics are hard too IMO 
09:54:56 <ais523> I plan to implement pretty much all of Feather with multireturning call/cc 
09:55:36 <oklopol> ais523: yes, very boring, that's why it's useful to emphasize the difference 
09:55:45 <AnMaster> ais523, btw there exists some experimental lisp variant that compiles into erlang bytecode, can't find the link atm 
09:55:53 <ais523> well, there are two sorts of call/cc 
09:55:55 <AnMaster> but I heard some ppl talk of it in #erlang the other day 
09:56:00 <ais523> jumping downwards once, which is the boring case 
09:56:06 <ais523> and jumping upwards some time, which is more interesting 
09:56:17 <ais523> and the case that causes implementors nightmares 
09:56:28 <ais523> you can jump down multiple times and it's just like a break; statement in C, not confusing at al 
09:56:31 <AnMaster> ais523, the first case is like longjmp more or less? 
09:56:48 <ais523> jumping up is like longjmp which magically restores all the stack 
09:57:03 <ais523> that got destroyed between the call/cc and the continuation being used 
09:57:12 <ais523> I have to go now, anyway 
09:57:20 <ais523> but I'll be back in 7 or 8 hours or so 
09:57:29 <AnMaster> the main issue is the semantics of it. I mean the way it seems to replace an expression with something else... I don't know how to describe it properly 
09:58:11 <oklopol> AnMaster: try the unlambda page, oerjan created a system for representing it 
09:58:27 <oklopol> well, i created the exact same system when i implemented subtle cough 
09:58:28 <AnMaster> oklopol, hm? the unlambda esowiki page? 
09:58:44 <oklopol> AnMaster: The Unlambda Page 
09:59:15 <oklopol> i would google, but i don't like clicking the browser open 
09:59:21 <AnMaster> If you don't mean http://esolangs.org/wiki/Unlambda or any of the links at the bottom 
09:59:52 <AnMaster> www.madore.org/~david/programs/unlambda/ ? 
10:01:34 <AnMaster> oklopol, any specific part of the page? Or just in general? I never really looked closely at unlambda before 
10:02:22 <oklopol> but the continuation part, search for continuation 
10:03:09 <oklopol> well it wasn't, but should've been :P 
10:03:59 <oklopol> the part with the continuations isn't there anymore 
10:04:14 <AnMaster> http://www.madore.org/~david/computers/callcc.html <-- that was linked? 
10:04:17 <oklopol> btw, i need to go raed now 
10:04:25 <oklopol> yes, i haven't looked at that 
10:04:58 -!- Asztal has quit (Connection timed out). 
10:16:00 -!- GreaseMonkey has quit ("So, how much do you love noodles?"). 
11:31:19 <ais523> yay, I got a 3-hour break 
11:31:21 <ais523> they were meant to be teaching everyone VHDL 
11:31:27 <ais523> AnMaster: that's a good guide to call/cc 
11:31:37 <ais523> and as for Unlambda, it's probably the best functional esolang out there atm 
11:31:47 <ais523> most esolangs tend to imperative, as it's what people are used to 
11:32:11 <ais523> it's an unusual paradigm 
11:32:16 <AnMaster> hm may want to try it some day 
11:32:42 <ais523> it can be emulated on software, of course, but you're suppose to compile it to hardware for the best experience 
11:32:54 <ais523> it's not really a language you write in to start with, it's a language you compile into 
11:32:58 <AnMaster> ais523, well that require resources 
11:33:07 <ais523> software simulation is cheaper 
11:33:32 <AnMaster> ais523, so what language do you use for writing the stuff you compile into VHDL? 
11:33:44 <ais523> well, I write it directly atm 
11:33:56 <ais523> apparently some weird nonstandard dialect of C++ is popular though 
11:34:08 <ais523> not many things compile into VHDL 
11:34:12 <AnMaster> also you said unusual paradigm. How (apart from compiling to hardware)? 
11:34:12 <ais523> even though it's crying out for it 
11:34:18 <ais523> apparently the compilation is normally done by humans 
11:34:25 <ais523> AnMaster: it's event-driven and parallel 
11:34:29 <ais523> assignments never happen immediately 
11:34:32 <ais523> they all have time delays 
11:34:45 <ais523> the control flow is such that commands only run in response to a particular thing changing 
11:34:50 <AnMaster> ais523, does that mean you have to handle taking care of timing yourself or? 
11:34:58 <ais523> if you write a <= b + c 
11:35:07 <ais523> it means "one delta after either b or c changes, set a to their sum" 
11:35:22 <ais523> where a delta is the shortest unit of time, it's infinitesimally long 
11:36:01 <ais523> if you're simulating real hardware, which VHDL is often used for, you would say a <= b + c AFTER 20 ns 
11:36:02 <AnMaster> yes "short" sounds more normal to use there 
11:36:20 <ais523> "infinitesimally short" doesn't make sesne though 
11:36:31 <AnMaster> the first one sounded somewhat like event driven GUI programming in OO 
11:36:58 <ais523> it's a bit like event driven programming, but sufficiently different that it isn't really a helpful analogy 
11:37:16 <ais523> to make things more confusing, you can put blocks of imperative code in, which trigger on certain variables changing 
11:37:17 <AnMaster> (My experience of event driven programming is mainly from GTK# + C#) 
11:37:26 <ais523> but you're not supposed to except in certain strict circumstances 
11:37:31 <ais523> or the result is legal but doesn't compile 
11:37:51 <AnMaster> ais523, normally legal == compiles, except for any compiler bugs 
11:38:02 <ais523> well, you can run it on an interpreter 
11:38:14 <ais523> generally speaking one company will write imperative VHDL 
11:38:31 <ais523> to say what the program should do 
11:38:48 <ais523> and another company will compile it by hand to VHDL that compiles to hardware 
11:39:05 <AnMaster> compiling a language to itself is something I find very strange 
11:39:24 <ais523> if VHDL wasn't so popular it would definitely be an esolang 
11:39:59 <AnMaster> ais523, how do you handle setjmp/longjmp in gcc-bf btw? 
11:40:13 <ais523> well, storing IP is easy 
11:40:21 <ais523> for storing stack pointer I record the literal value of the pointer 
11:40:29 <ais523> and the only other thing that normally needs to be stored is frame pointer 
11:40:33 <ais523> but I have a hardware stack of frame pointers 
11:40:43 <ais523> and I can deduce which one to use by looking at where the stack pointer ended up 
11:40:48 <ais523> so mostly it's done in "hardware" 
11:40:52 <AnMaster> err hardware stack? where did brainfuck get that? 
11:41:01 <ais523> I use part of the tape 
11:41:15 <ais523> it's hardware from gcc's point of view 
11:41:25 <ais523> because it isn't mentioned anywhere in the asm 
11:41:53 <AnMaster> ais523, will this allow C++ too? And other languages supported by gcc? 
11:42:08 <AnMaster> for C++ at least you would need a few more runtime libraries I guess 
11:42:17 <ais523> the main problem with C++ atm is exception handling 
11:42:20 <ais523> because gcc does that weirdly 
11:42:38 <ais523> well, using routines which gcc compiling C doesn't use anywhere 
11:42:41 <ais523> so I'd have to implement them 
11:42:49 <ais523> it involves changing the calling conventions and everything 
11:43:01 <AnMaster> ais523, those routines would logically have no use in C 
11:43:08 <AnMaster> since C doesn't need exception handling like C++ 
11:43:23 <ais523> but that means a C compiler needs more work to become a C++ compiler 
11:43:26 <ais523> even if it's based on gcc 
11:43:30 <AnMaster> thus it doesn't seem strange that the routines aren't used for C 
11:43:48 <AnMaster> that would need porting boehm-gc I suspect 
11:43:59 <ais523> gcj is likely to have similar problems to g++ 
11:44:00 <AnMaster> since boehm-gc is very platform specific (I looked at it's code) 
11:44:10 <ais523> and boehm-gc would probably fail, I expect 
11:44:18 <ais523> because pointer values are too plausible in gcc-bf 
11:44:33 <ais523> I mean, plausible values for things that aren't pointers 
11:44:42 <ais523> you could use the same technique with knowledge of data types 
11:44:45 <ais523> which gcj has, in theory 
11:44:51 <ais523> but it would be quite the porting effort 
11:44:52 <AnMaster> ais523, iirc boehm-gc is used for gcj. And I read large parts of the boehm-gc code so I know what I speak of. It needs porting for different platforms and different cpus. 
11:45:23 <ais523> I was talking about reimplementing gcj to use something which wasn't boehm-gc but worked similarly 
11:45:32 <ais523> I think it would be possible, but I also think I can't be bothered 
11:46:18 <ais523> I don't know about that, haven't looked at the code 
11:46:24 <ais523> I doubt it would be hard, but don't know the details 
11:48:40 <AnMaster> ais523, btw cfunge heap memory usage have gone down according to valgrind --tool=massif by almost 1 MB during the last week 
11:49:02 <ais523> have you been trying to reduce it deliberately? 
11:49:04 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | yeah I figured that like 0.1 seconds after saying it. 
11:49:18 <AnMaster> ais523, I have been trying to reduce overhead by lots of small malloc() yes 
11:49:22 <ais523> also, the way malloc normally works on Unices, the memory usage is equal to the highest value it's ever been 
11:49:30 <ais523> unless you deliberately give back the memory 
11:49:36 <ais523> to the OS, rather than just to malloc 
11:49:48 <AnMaster> ais523, I had around half an mb in malloc book keeping data overhead according to valgrind 
11:49:51 <ais523> and that needs malloc to do a huge amount of work shuffling things round so it isn't normally worth it 
11:50:01 <AnMaster> now just around 100 kb at most I think 
11:50:27 <AnMaster> ais523, I use memory pools with free list for some stuff now, with no per-object overhead 
11:50:48 <ais523> heh, so you're doing what malloc does, but by hand? 
11:50:53 <AnMaster> I originally developed the code for something else 
11:50:55 <ais523> maybe it would be worth looking at a malloc replacement 
11:51:05 <ais523> there's more than one implementation of malloc around 
11:51:10 <AnMaster> ais523, I need to malloc lots of object by the same size 
11:51:17 <ais523> IIRC the Firefox people spent ages comparing different mallocs 
11:51:20 <ais523> to decide which one was best 
11:51:37 <ais523> AnMaster: and yes, seeing as you know more about the situation than malloc does you're likely to have better results 
11:51:54 <AnMaster> ais523, and I can have no object overhead 
11:52:26 <AnMaster> ais523, http://bzr.kuonet.org/cfunge/trunk/annotate/432?file_id=cfunge_mempool.c-20081005091327-4dhg0fw6swhlu950-1 
11:53:19 <AnMaster> ais523, the union trick I have fizzie to thank for 
11:53:58 <AnMaster> ais523, so what do you think? :) 
11:54:04 <ais523> AnMaster: I'm a bit disappointed really because cfunge has nothing to compete against 
11:54:14 <ais523> so I can't tell exactly how well these crazy tricks are doing 
11:54:20 <ais523> but I have nothing to compare it to 
11:54:26 <AnMaster> ais523, I profiled before and after the change 
11:54:29 <ais523> so I don't really know how impressive or otherwise it is 
11:54:36 <ais523> comparing to yourself works, I suppose... 
11:54:45 <AnMaster> execution time on glibc: No significant diff 
11:54:57 <AnMaster> memory usage: around half an mb saved 
11:55:15 <AnMaster> the other half I saved before. I was allocating too much in one place 
11:55:23 <AnMaster> so I had dead memory at the end of some mallocs 
11:55:35 <AnMaster> that alone saved almost one mb 
11:55:46 <ais523> also it's worth knowing that different mallocs have different favourite sizes to allocate 
11:55:54 <ais523> normally it's slightly less than a power of 2, though 
11:57:24 <AnMaster> ais523, well here I need 56 bytes on amd64 with 64-bit funge 
11:57:44 <AnMaster> the exact size will vary across different compile options/platforms 
11:57:52 <AnMaster> ais523, also for glibc: http://www.gnu.org/software/libtool/manual/libc/Efficiency-and-Malloc.html#Efficiency-and-Malloc 
11:57:53 <ais523> well that's just less than 64, but it might be not quite just less enough 
11:58:13 <ais523> but it's nice to have documentation about what's right for a particular platform 
11:58:32 <AnMaster> ais523, well I alloc 4096 objects here for each superblock 
11:58:52 <ais523> ah, that says that glibc malloc doesn't care about the power of 2 thing 
11:58:58 <ais523> which is also good to know 
11:59:08 <AnMaster> ais523, yes and for this size of allocations it use mmap() too 
11:59:17 <AnMaster> I checked using the mallinfo function 
11:59:19 <ais523> so the OS deals with the allocation 
11:59:26 <ais523> which is probably the right thing to do here 
11:59:32 <ais523> so the memory can be given back 
11:59:49 <AnMaster> on my system I end up allocating sizeof(memorypool_data) pages 
12:00:14 <AnMaster> I think that at least, unless I got the units confused somewhere 
12:01:13 <AnMaster> ais523, also I don't give memory back, since I reuse any free stuff, and test runs on a varity of funge programs indicated that at no point would it be a good idea to give back memory 
12:01:37 <AnMaster> I guess for a huge self-overwriting-with-space program that could be a good idea 
12:01:43 <AnMaster> however I consider that rather contrived 
12:02:18 <AnMaster> since most such programs tend to be short ;P 
12:02:55 <AnMaster> ais523, however I believe the code is general enough to be useful elsewhere too 
12:03:14 <AnMaster> in fact I first wrote it for something else, then latter decided "this may work well for cfunge too" 
12:04:06 <AnMaster> ais523, currently on my system for a mycology run: $1 = {arena = 139264, ordblks = 6, smblks = 2, hblks = 19, hblkhd = 7122944, usmblks = 0, fsmblks = 64, uordblks = 36864, fordblks = 102400, keepcost = 100256} 
12:04:08 <AnMaster> http://www.gnu.org/software/libtool/manual/libc/Statistics-of-Malloc.html 
12:04:21 -!- lifthrasiir has quit (calvino.freenode.net irc.freenode.net). 
12:04:21 -!- dbc has quit (calvino.freenode.net irc.freenode.net). 
12:04:29 -!- rodgort has quit (calvino.freenode.net irc.freenode.net). 
12:04:29 -!- pikhq has quit (calvino.freenode.net irc.freenode.net). 
12:04:32 -!- ENKI-][ has quit (calvino.freenode.net irc.freenode.net). 
12:04:32 -!- bsmntbombdood has quit (calvino.freenode.net irc.freenode.net). 
12:04:34 -!- cmeme has quit (calvino.freenode.net irc.freenode.net). 
12:04:34 -!- GregorR has quit (calvino.freenode.net irc.freenode.net). 
12:04:36 -!- ais523 has quit (calvino.freenode.net irc.freenode.net). 
12:04:38 -!- metazilla has quit (calvino.freenode.net irc.freenode.net). 
12:04:43 -!- optbot has quit (calvino.freenode.net irc.freenode.net). 
12:04:43 -!- ehird has quit (calvino.freenode.net irc.freenode.net). 
12:04:44 -!- mtve has quit (calvino.freenode.net irc.freenode.net). 
12:04:45 -!- SimonRC has quit (calvino.freenode.net irc.freenode.net). 
12:05:41 -!- mtve has joined. 
12:05:41 -!- metazilla has joined. 
12:05:41 -!- lifthrasiir has joined. 
12:05:41 -!- dbc has joined. 
12:05:41 -!- ehird has joined. 
12:05:41 -!- pikhq has joined. 
12:05:41 -!- optbot has joined. 
12:05:41 -!- rodgort has joined. 
12:05:41 -!- SimonRC has joined. 
12:06:10 -!- ENKI-][ has joined. 
12:06:10 -!- bsmntbombdood has joined. 
12:06:10 -!- ais523 has joined. 
12:06:10 -!- GregorR has joined. 
12:06:10 -!- cmeme has joined. 
12:06:39 <ais523> [12:01] <ais523> if it's a bad idea, then no need to worry about how to do it 
12:06:39 <ais523> [12:01] <ais523> ofc now I'll have to invent a funge program where it is, just to annoy you... 
12:06:39 <ais523> [12:03] <ais523> hi ehird 
12:06:48 <AnMaster> <AnMaster> I guess for a huge self-overwriting-with-space program that could be a good idea 
12:06:48 <AnMaster> <AnMaster> however I consider that rather contrived 
12:06:48 <AnMaster> <AnMaster> since most such programs tend to be short ;P 
12:06:53 <ais523> I got caught on the wrong side of a netsplit... 
12:06:56 <AnMaster> <AnMaster> ais523, however I believe the code is general enough to be useful elsewhere too 
12:06:56 <AnMaster> <AnMaster> in fact I first wrote it for something else, then latter decided "this may work well for cfunge too" 
12:07:03 <AnMaster> <AnMaster> ais523, currently on my system for a mycology run: $1 = {arena = 139264, ordblks = 6, smblks = 2, hblks = 19, hblkhd = 7122944, usmblks = 0, fsmblks = 64, uordblks = 36864, fordblks = 102400, keepcost = 100256} 
12:07:03 <AnMaster> <AnMaster> http://www.gnu.org/software/libtool/manual/libc/Statistics-of-Malloc.html 
12:07:03 <AnMaster> <AnMaster> for how to interpret that 
12:07:03 <AnMaster> <AnMaster> and it was at the end 
12:07:45 <AnMaster> * Ping reply from ais523: 0.87 second(s) 
12:07:45 <AnMaster> * Received a CTCP PONG from ais523 
12:07:56 <ais523> AnMaster: it was a joke... 
12:08:30 <AnMaster> NOTICE <sender-of-ctcp> :\01PING <parameters>\01 
12:08:52 <AnMaster> probably known as "nctcp" command in client 
12:09:11 <ais523> AnMaster: I know how to send CTCP replies 
12:09:13 <ais523> I've done it by hand before 
12:10:37 <AnMaster> ais523, and giving back the memory is kind of pointless, since freed memory is recycled before it tries allocating new at end 
12:13:29 <fizzie> If you actually were worried about malloc overhead, you could do some somewhat hacky tricks to use raw sbrk() to add pages to your pools. 
12:14:04 <AnMaster> fizzie, not really an issue with pools. The issue was when I used one malloc() per object allocated 
12:14:17 <AnMaster> with the pools I get one malloc() for each allocated pool 
12:15:22 <AnMaster> fizzie, since I had something like 65536 mallocs for mycology before 
12:17:09 <AnMaster> valgrind now claims that in total cfunge does 1442 malloc() calls when running mycology 
12:17:19 <AnMaster> don't have the exact count of the previous versiomn 
12:18:21 <ehird> <oklopol> also, i was gonna ask you, ehird, whether you changed your nick back to tusho for a while some time ago, then i realized ehird is, in fact, your old nick, so, err, i think you did 
12:18:25 <ehird> ehird -> tusho -> (just now) ehird 
12:18:49 * ais523 has been ais523 ever since ais523 joined University 
12:18:53 <ais523> and didn't really have a nick before then 
12:19:00 * AnMaster have been same nick for ages too 
12:19:20 <ais523> maybe you should be LanMaster, like oerjan suggested once IIRC 
12:19:56 <ehird> I used to have a "real" nick, but I abandoned it because a) It's retarded b) I did stupid stuff under it (I got it when I was 8, abandoned when I was like 9 or 10) 
12:20:08 <ehird> And no, I won't tell you it, because then you could google for my stupidity. 
12:20:18 <ehird> (Or worse - recognize me) 
12:20:35 <AnMaster> ehird, you met any of us back then? 
12:20:47 <ehird> Not unless someone changed their name since then at least. 
12:20:56 <ais523> it's very unlikely you met me in any case 
12:20:57 <ehird> Oh, and my password used to be 'elliott'. :-P 
12:21:02 <ais523> except possibly in real life by chance 
12:21:10 <ais523> but we wouldn't have recognised each other then... 
12:21:15 <ais523> probably not nowadays either 
12:21:24 <ehird> ais523: "MY GOD! You're that INTERCAL guy!" 
12:21:26 <fizzie> I used to write my IRC name "Fizzle", but then I think someone stole it or something and I had to switch to "Fizzie"; I'm not sure when I dropped the uppercase letter off. 
12:21:33 <ehird> <you> "INTERCAL? Hm... I've heard of it..." 
12:21:44 <ehird> <ehird> "IT'S VERY IMPORTANT. in the future YOU WILL MAINTAIN C-INTERCAL" 
12:21:47 * ais523 wonders why only half of ehird's line beginning ais523 was higlighted 
12:21:49 <ehird> <ehird> "AND KNOW ME ON IRC" 
12:22:05 <ehird> <you> "[citation needed]" 
12:22:14 <ehird> <ehird> "CITATIONS: [1] I AM 10 YEARS OLD." 
12:22:20 <ehird> <you> "GOOD POINT." *walks away* 
12:22:27 * ais523 struggles hard to remember the conversation 
12:22:28 <ehird> AnMaster: 'in the past' 
12:22:51 <ehird> ais523: yea well I had to wipe your mind didn't I 
12:22:59 <ehird> can't let anyone know about my time travel abilities 
12:24:17 <ehird> AnMaster: Yeah, well, I murdered 'nef'. 
12:24:18 <ais523> that trick wouldn't work on me because my client leaves the tab open when kicked 
12:24:19 <ehird> Now I control those logs. 
12:24:54 <AnMaster> and I got local logs of course. And since I'm paranoid it is direct connected to a printer ;) 
12:25:14 <ais523> somehow I didn't think so 
12:25:18 <ehird> ais523: I honestly wouldn't be surprised. 
12:25:29 <ais523> also, I have both local logs and ehird's bouncer's logs 
12:25:38 <ais523> so that's 4 sources of logs 
12:25:46 <AnMaster> ais523, however it could make sense for kernel log for a mission critical system 
12:25:54 <ehird> i hope psybnc doesn't log /msgs 
12:25:56 <AnMaster> in fact I think linux supports it 
12:26:12 <ehird> psybnc only logs when you're disco'd 
12:26:18 <ais523> ehird: it puts them in the private logs 
12:26:27 <ais523> which I erase as soon as I've read them 
12:26:39 <AnMaster> ais523, right I shall remember to be careful with what I say to you when you use the bnc 
12:26:52 <ehird> AnMaster: totally not paranoid 
12:26:52 <ais523> AnMaster: well my client would log them anyway... 
12:27:00 <ehird> but AnMaster, you're right 
12:27:02 <AnMaster> ais523, well but that would be local 
12:27:06 <ehird> don't go telling him your stories of child abuse 
12:27:09 <ehird> that would be dumb. 
12:27:19 <ehird> AnMaster: IT WOULDN'T LOG 
12:27:22 <AnMaster> ehird, well I never done that so how could I? 
12:27:23 <ehird> it only logs when ais523's offline 
12:27:24 <ais523> specifically, it only logs stuff that's sent in /msg when I'm not online 
12:27:30 <ais523> and I erase it when I become online again 
12:27:37 <AnMaster> someone could change that setting 
12:27:44 <ehird> i'd have to modify the code 
12:27:48 <ehird> i could login as ais523 now 
12:27:54 <ais523> if you're paranoid enough ehird might have put a backdoor in when e recompile 
12:27:56 <ehird> i control the bouncer logfile 
12:28:07 <ehird> and so does ais523 
12:28:10 <ehird> since we are both in sudoers 
12:28:25 <ais523> I think AnMaster's right not to trust it 
12:28:26 <ehird> AnMaster: its silly 
12:28:30 <ehird> any system with a root user 
12:28:35 <ehird> other than you, is completely insecure 
12:28:37 <ais523> if he was going to send me data that needed to be completely secret from ehird for some reason 
12:28:43 <ais523> not going via ehird's server would make sense 
12:28:44 <AnMaster> ehird, oh just btw, I think bundles are a good idea, as I said yesterday :P 
12:28:44 <ehird> no data at all can be private 
12:29:11 <ehird> ais523: which I just test-initiated 
12:29:14 <ehird> i'm not sure it'll work 
12:29:16 <ehird> due to eso-std.org 
12:29:44 <AnMaster> I block dcc since I tend to get a lot of dcc spam 
12:30:10 <ais523> well, better still, what about I create a direct nick 
12:30:14 <ais523> that doesn't bounce of ehird's server 
12:30:22 <ais523> in addition to the indirect nick I normally use 
12:30:29 <ehird> ais523_trade_secrets 
12:30:42 <ehird> it goes through freenode anyway 
12:30:52 <ehird> AnMaster: so who do you trust more 
12:30:56 <ehird> freenode or me :-P 
12:30:59 <ehird> don't answer that btw. 
12:31:04 <ehird> but i wouldn't read private logs 
12:31:19 <AnMaster> ehird, 1) they don't hate me like you do 2) no ssl indeed, but still a lot more communication to check 
12:31:45 <ehird> AnMaster: 1) That is true. It is part of my personal vendetta against you to steal all your trade secrets. 
12:31:46 <AnMaster> so freenode in fact, and I don't trust freenode very much 
12:31:51 <ehird> Or flirting with ais523. I don't know what's so private. 
12:32:07 -!- ais523_ has joined. 
12:32:19 <AnMaster> * Current global users: 44320  Max: 50795 
12:32:21 -!- ais523_ has left (?). 
12:32:28 <ehird> ais523: call it ais523_911_was_an_inside_job 
12:32:50 -!- ais523|direct has joined. 
12:33:00 <ais523> somehow I don't see how you would get the plain to crash from inside the tower... 
12:33:06 <ais523> I'm pretty sure it came from outside 
12:33:15 <ehird> ais523: WAKE UP SHEEPLE 
12:34:08 <ais523> doing it like this isn't ideal because I get two #esoterics 
12:34:18 <ais523> I think I'll leave ais523|direct connected but in no channels 
12:34:24 <ais523> and you lot will just have to remember it exists 
12:34:29 -!- ais523|direct has left (?). 
12:34:29 <ehird> not communicating really private stuff over irc 
12:34:35 <AnMaster> not an inside job, but in the investigation after they released too little information, making it look suspicious 
12:34:38 <ehird> that's a retarded idea ever, who does that 
12:34:46 <ehird> AnMaster: 911 WAS HALF OF AN INSIDE JOB 
12:35:03 <AnMaster> ehird, rather the investigation was not well handled 
12:35:07 <ehird> 911 WAS AN OUTSIDE JOB MADE TO LOOK LIKE AN INSIDE JOB BY THE DICTATORSHIP OF THE CHIMPERIOR!! CHIMPEACH!! WAKE UP SHEEPLE 
12:35:21 <AnMaster> I don't think they intended it to look bad 
12:36:32 <ais523> also, wrong channel, surely? 
12:36:33 <AnMaster> like only releasing a few frames of the video showing the plane hit pentagon... And those frames didn't show it very well 
12:36:35 <ehird> ^ best 9/11 conspiracy ever 
12:36:37 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | G'luck!. 
12:36:38 <optbot> ais523: nor indeed subroutines, i think it'd be pretty easy to write a forth without subroutines 
12:37:20 <ehird> anyway, duh, the US government is incompetend 
12:37:25 <ehird> so is my spelling apparently 
12:37:28 <ehird> but that's not a great revelation 
12:37:33 <ehird> (the incompetence ... not my spelling) 
12:38:16 <ais523> heh, that reminds me of that Muphry's Law you were telling me about... 
12:38:39 <AnMaster> ehird, yes they are incompetent. And they failed to be open enough in the investigation, making the whole thing looks strange. And that of course leads to conspiracy theories 
12:38:56 <ehird> AnMaster: they could have given the best investigation ever and the conspiracy theorists would be all over it 
12:39:20 <ehird> AnMaster: sure, most conspiracies are like that 
12:39:43 <ais523> ok, if you want a silly conspiracy theory: it was terrorists after all, but the US Government thought it would be less embarassing if people thought they'd done it 
12:39:47 <ehird> "I think X - a bad thing - is happening. The evidence is irrelevant because it was manufactured by the people doing X. We must expose the people doing X." 
12:39:54 <ais523> so they set up lots of conspiracy theories to try to discredit themselves 
12:39:57 <ehird> "Any explanation from the people doing X about how they are not doing X is trying to cover up the conspiracy." 
12:40:05 <AnMaster> ehird, however one can't deny that it did strengthen Bush's position considerably. But I rather think he used the situation, but not created it 
12:43:32 <ehird> I'm gonna write a silly rougelike 'cause I want to. 
12:43:40 <ais523> rougelike, or roguelike? 
12:43:49 <ehird> ais523: rouguelike. 
12:45:00 <ais523> I've been thinking for ages that someone should rewrite NetHack in Prolog 
12:45:26 <ehird> scheme->unlambda can't be hard 
12:45:26 <AnMaster> Prolog, another language I would like to learn 
12:45:45 <ehird> lazy scheme and such -> lambda calculusy thing -> unlambda 
12:45:54 <ehird> the latter one is mostly just lambda calculus -> SKI 
12:46:13 <ehird> but probably very slow 
12:46:17 <ehird> AnMaster: Sxyz = xz(yz) 
12:46:18 <AnMaster> google only gives results related to the sport 
12:46:25 <ais523> ehird: I thought scheme -> unlambda had already been done? 
12:46:37 <ais523> ah no, it was scheme -> Befunge 
12:46:42 <ehird> S, K and ` (apply) 
12:46:43 <ehird> are turing complete 
12:46:44 <ais523> I still want to do Haskell -> Underload some time 
12:46:54 <ehird> AnMaster: http://en.wikipedia.org/wiki/SKI_combinator_calculus 
12:47:06 <AnMaster> ais523, how does Underload differ from unlambda? 
12:47:07 <ehird> unlambda is s, k, i 
12:47:09 <ehird> then continuations 
12:47:11 <ehird> and some other stuff 
12:47:15 <ehird> AnMaster: toatlly different 
12:47:16 <ais523> whereas Underload is a concatenative language 
12:47:20 <ais523> which acts functional in practice 
12:47:20 <ehird> only similarities: 
12:47:24 <ehird> and they're functional 
12:47:33 <AnMaster> and both are programming languages? 
12:47:35 <ais523> Underlambda is a sort of cross between the two, which I haven't finished yet 
12:47:40 <ehird> AnMaster: no, one is a mindfuck 
12:47:43 <ehird> the other is a programming language 
12:47:47 <ais523> http://esolangs.org/wiki/Underload, http://esolangs.org/wiki/Underload 
12:47:53 <ehird> AnMaster: mindfuck=unlambda 
12:47:56 <ehird> ais523: nice doublelink 
12:48:01 <ais523> ehird: my client is messed up 
12:48:17 <ais523> it seems not to be able to handle two regex replacements in the same line 
12:48:19 <ehird> but they go to the same page. 
12:48:23 <ais523> AnMaster: the same link ended up twice 
12:48:27 <ais523> even though I didn't type it twice 
12:48:31 <AnMaster> ais523, yes I thought you wanted that 
12:48:33 <ehird> ais523: both are esolangs 
12:48:35 <ehird> ais523: http://esolangs.org/wiki/Underload, http://esolangs.org/wiki/Underload 
12:48:36 <ais523> [[e:Underload], [[e:Unlambda] 
12:48:41 <ehird> pretty obvious that e meant to link both 
12:49:01 <ais523> and apparently Konversation messes it up... 
12:49:07 <ais523> I'll report that bug sometime later, probably 
12:51:05 <ais523> ah, it's been reported already 
12:51:05 <ais523> https://bugs.kde.org/show_bug.cgi?id=158910 
12:51:14 <ais523> see, it wasn't me, it was my client, and that's official! 
12:59:23 <AnMaster> not sure if there have been any release since then 
13:24:52 -!- ENKI-][ has quit (Read error: 104 (Connection reset by peer)). 
13:31:18 -!- ENKI-][ has joined. 
13:46:28 -!- moozilla has joined. 
13:48:04 -!- ENKI-][ has quit (calvino.freenode.net irc.freenode.net). 
13:48:07 -!- GregorR has quit (calvino.freenode.net irc.freenode.net). 
13:48:07 -!- cmeme has quit (calvino.freenode.net irc.freenode.net). 
13:48:10 -!- ais523 has quit (calvino.freenode.net irc.freenode.net). 
13:48:10 -!- bsmntbombdood has quit (calvino.freenode.net irc.freenode.net). 
13:48:10 -!- lifthrasiir has quit (calvino.freenode.net irc.freenode.net). 
13:48:10 -!- dbc has quit (calvino.freenode.net irc.freenode.net). 
13:48:17 -!- rodgort has quit (calvino.freenode.net irc.freenode.net). 
13:48:17 -!- pikhq has quit (calvino.freenode.net irc.freenode.net). 
13:48:22 -!- metazilla has quit (calvino.freenode.net irc.freenode.net). 
13:48:24 -!- optbot has quit (calvino.freenode.net irc.freenode.net). 
13:48:27 -!- ehird has quit (calvino.freenode.net irc.freenode.net). 
13:48:27 -!- mtve has quit (calvino.freenode.net irc.freenode.net). 
13:48:28 -!- SimonRC has quit (calvino.freenode.net irc.freenode.net). 
13:48:46 -!- moozilla has changed nick to metazilla. 
13:49:45 -!- ehird has joined. 
13:50:09 -!- ehird has left (?). 
13:50:09 -!- ehird has joined. 
13:50:17 <ehird> hahahahahahahahaha 
13:50:32 -!- optbot has joined. 
13:50:32 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | It's like it's decided that fork(); shouldn't be ran.. 
13:50:53 <ehird> it was just me and optbot 
13:50:54 <optbot> ehird: wow- not a bad deal: http://www.woot.com/ 
13:51:14 -!- ENKI-][ has joined. 
13:51:14 -!- bsmntbombdood has joined. 
13:51:14 -!- ais523 has joined. 
13:51:14 -!- GregorR has joined. 
13:51:14 -!- cmeme has joined. 
13:51:30 -!- lifthrasiir has joined. 
13:51:30 -!- dbc has joined. 
13:51:30 -!- pikhq has joined. 
13:51:30 -!- rodgort has joined. 
13:52:54 -!- mtve has joined. 
13:52:54 -!- SimonRC has joined. 
13:53:00 -!- SimonRC_ has joined. 
13:53:05 <AnMaster> anyone know a brainfuck interpreter that can read from stdin? 
13:53:11 <AnMaster> basically I want REPL for brainfuck atm 
13:53:24 <ehird> AnMaster: $ bf /dev/stdin 
14:05:27 -!- SimonRC has quit (Connection refused). 
14:34:36 <ehird> convert.cc:51: error: 'g_assert' was not declared in this scope 
14:34:36 <oklopol> filter((lambda page : page has a button for random content), internet) 
14:35:22 <oklopol> why the fuck would i wanna see "most popular" entries or entries in chronological order? i want entries. an infinite flow of net entries, i don't care what the fucking category is 
14:35:47 -!- pini has joined. 
14:35:57 <oklopol> wonder when i'm gonna add a random button on vjn.fi 
14:36:29 <oklopol> nothing wrong with being hypocritical ofc 
14:37:41 -!- KingOfKarlsruhe has joined. 
14:37:45 <oklopol> well, on vjn.fi you can just get a list of *all* content, from a category for a certain type of media, so it's simple to randomize manually 
14:38:16 <ehird> oklopol: well...categories make sense 
14:38:25 <ehird> not everyone just wants an infinite stream of anything 
14:41:03 <ehird> Requested 'glib-2.0 >= 2.17.3' but version of GLib is 2.16.3 
14:41:10 <ehird> what is the latest glibmm that works with glib 2.16.3 
14:41:35 <ehird> i was just asking random people 
14:41:42 <oklopol> ehird: i'm sure they *should* just want an infinite stream 
14:41:55 <ehird> oklopol: maybe people want to read about a specific topic... 
14:42:08 <ehird> oklopol: also, infinite stream reminds me of that funky javascript that detects when you scroll down and loads more content 
14:42:13 <ehird> oklopol: so it really is an infinite page of concent 
14:43:11 <oklopol> a page with nothing but text, infinitely 
14:43:40 <ehird> oklopol: if you write that random script for vjn and gimme the code i'll make it an infinite page 
14:43:46 <ehird> because i have to spread awesome like that everywhere 
14:43:53 <ehird> also, the whole pi on an infinite page is win 
14:44:35 <oklopol> i was thinking of an infinite pi song at some point 
14:44:58 <ehird> paul slocum recently made a machine that generates house music from the digits of pi 
14:45:04 <ehird> http://www.qotile.net/blog/wp/?p=572 
14:45:11 <ehird> oklopol: take a listen to an hour of it http://www.qotile.net/files/pi_1hour.mp3 
14:45:17 <ehird> just put the text to speech of the digits over that 
14:46:09 <ehird> he has a torernt of 10 hours of it also 
14:46:26 <oklopol> what's the algo? do you know at all 
14:46:37 <ehird> oklopol: no, he says hes gonna release the source post-polishing 
14:47:03 <oklopol> well i'm not going to read the million lines of source to realize it's copypasting around a few elements 
14:47:08 <oklopol> i want a human filtering of the source 
14:47:13 <oklopol> perhaps you'll read it for me 
14:47:20 <ehird> oklopol: i doubt its a million lines 
14:47:27 <ehird> http://qotile.net/morehouse/pi.jpg 
14:47:28 <ehird> http://qotile.net/morehouse/pi_detail.jpg 
14:47:47 <ehird> oklopol: a screenshot of it http://www.qotile.net/images/catalog/pi_house_screen.jpg 
14:47:50 <ehird> (its in an art gallery) 
14:49:00 <oklopol> that doesn't contain any info though 
14:49:28 <oklopol> perhaps i should create the infinite sequence, i have no idea how that's done actually. 
14:49:40 <ehird> oklopol: i'll write the infinite pi page if you want 
14:50:44 <oklopol> http://alienryderflex.com/pi.shtml :D 
14:50:55 <ehird> oklopol: is it infinite? 
14:51:21 <ehird> there is a O(n) pi algorithm 
14:51:33 <ehird> assuming your computer doesn't decay, which it will. 
14:51:44 -!- pini has left (?). 
14:57:13 <oklopol> why the fuck don't programming languages support hexadecimal floating point 
14:57:22 <oklopol> it's much more useful than base 10 
14:57:33 <oklopol> WHY THE FUCK DO PEOPLE USE BASE 10 
14:57:45 <ehird> oklopol: you know  the answer to that 
14:58:44 <oklopol> actually according to an algorithm book i'm reading: "humans have 10 fingers, so they find the base 10 to be the most natural" 
14:59:15 <ehird> oklopol: well, that is probably how it arose, you know? 
14:59:16 <ehird> counting on fingers 
14:59:48 <oklopol> but it's not why we find it the most natural 
15:00:53 <ehird> over and over again 
15:01:00 <ehird> RICK ASTLEY RICK ASTLEY RICK ASTLEY 
15:01:55 -!- oklocod has joined. 
15:02:21 <ehird> oklocod: i have an idea 
15:02:40 <ehird> oklocod: what about a site which had like every site ever, and you could add your own sites, and you could deselect sucky sites 
15:02:46 <ehird> an infinite page of random content 
15:02:48 <ehird> from all of those site 
15:03:25 <ehird> oklocod: amazing or not amazing 
15:04:33 <ehird> oklocod: i shall write it 
15:18:16 -!- oklopol has quit (Connection timed out). 
15:18:17 <oklocod> write the dying heaven into it 
15:18:49 <oklocod> well living and dying aren't antonymous, of course, excuse my terrible failure 
15:25:57 -!- Corun has joined. 
15:46:35 <ehird> iinland what is sweden? 
15:46:40 <ehird> in finland what is s weden 
15:47:20 <oklocod> "what is sweden in finnish?"? 
15:48:10 <ehird> in finland what is sweden 
15:51:15 <ehird> in finland what is sweden 
15:53:16 <ais523> hmm... that lokos wrong in this font, the C doesn't line up with the : properly 
15:53:44 <ais523> oklocod: I like hex floating point too 
15:53:49 <ais523> although I've never used it 
15:54:10 <ais523> well, apart from telling gcc to build floating point emulation libraries, and that doesn't count 
15:54:26 <ais523> just out of interest, the Romans used base 10 for integers, but fractions were measured in units of 1/12 
15:57:27 <oklocod> well that's just stupid :P 
16:23:06 -!- sebbu has joined. 
16:29:11 -!- jix has joined. 
16:59:21 -!- Corun_ has joined. 
17:00:16 <ais523> ah, just checking to see if I was online 
17:00:19 <ais523> but I like your response 
17:00:59 <fungot> ^<lang> <code>; ^def <command> <lang> <code>; ^show [command]; lang=bf, code=text/str:N; ^str 0-9 get/set/add [text] 
17:01:27 <ais523> ^def bf rev >,[>,]<.[<.] 
17:01:27 <fungot> Usage: ^def <command> <lang> <code> 
17:01:34 <ais523> ^def rev bf >,[>,]<.[<.] 
17:01:52 <ais523> ^def hi rev !dlorw ,olleH 
17:01:52 <fungot> Usage: ^def <command> <lang> <code> 
17:07:13 -!- Corun has quit (No route to host). 
17:14:34 -!- Asztal has joined. 
17:19:57 -!- p5[sleep] has changed nick to psygnisfive. 
17:22:55 <fizzie> ehird: In Finland, Sweden is the most common target for nationality-related jokes. 
17:23:06 <ehird> sweden is finaland 
17:23:22 <ais523> in England, it's mostly the Irish who are laughed at in such jokes 
17:23:45 <ais523> there's often a Scotsman too but they aren't the target of the joke, they're just there to establish normal behaviour 
17:24:16 <fizzie> Here's it's a Finn, a Swede and a Norwegian. 
17:24:40 <ais523> presumably there are similar jokes all over the world 
17:27:52 <ehird> SWEEDEN IS FINALAND 
17:28:24 <ehird> (Sweden was an inside job, wake up Finland?) 
17:30:52 <fizzie> ais523: Started to write an example here, but ran across IRC's message length limits. See http://zem.fi/~fis/joke.txt 
17:31:34 <ais523> that's totally unrealistic, obviously the captain would have saved one for himself... 
17:32:20 <fizzie> Yes, he jumps off with it immediately after the announcement. 
17:32:28 <oklocod> it's funny because the kids don't have a dad anymore, duh 
17:32:37 <fizzie> Skipped that part when I was still trying to make that text fit in 512 characters. 
17:32:52 <ais523> it's mostly funny because the plane was coming in to land and they were only 6 feet above the ground... 
17:32:53 -!- Slereah_ has joined. 
17:32:57 -!- slereah has quit (Read error: 113 (No route to host)). 
17:54:20 -!- Corun_ has quit (Remote closed the connection). 
17:55:03 <psygnisfive> but i take my backpack with me almost everywhere 
18:00:55 <GregorR> fizzie, ehird, ais523: In the US, we make fun of /everyone/. We're equal-opportunity jerks. 
18:01:11 <ehird> GregorR: Let's make fun of Somalia. 
18:01:18 <ehird> Something about domain names 
18:01:57 <GregorR> Make fun of a country with no effective government? Too easy. 
18:02:14 <ehird> GregorR: But in a way that involves their people's inability to buy domain names from their country? 
18:02:53 <GregorR> An American, an Italian and a Somali walk into a bar. The American is yelling at himself. The Italian asks why. "Well, I have two personalities that are always conflicting." The Italian says, "Oh, you only have two?" The Somali says nothing, because he imploded. 
18:03:52 <GregorR> And no, I can't figure out a way to stuff domain names in there :P 
18:03:57 <GregorR> Although I'd still like to own libc.so 
18:45:56 -!- CO2Games has joined. 
19:08:30 <oklocod> the graphs in this book are MARVELOUS 
19:08:55 <oklocod> there should be a book about graphs, just pictures of them, one on every page 
19:09:02 <ehird> oklocod: make a graph: 
19:09:05 <ehird> 'Number of graphs in book' 
19:09:07 <ehird> 'Awesomeness of book' 
19:09:22 <ehird> you of all people can figure out how to make a chart a graph 
19:10:32 <oklocod> there's plenty of ways to encode the list of pairs [(x, f(x))] that constitutes the chart into a graph 
19:10:41 <Slereah_> http://membres.lycos.fr/bewulf/Divers6/fffffffff.jpg 
19:10:59 <Slereah_> This graph is the number of google results per number of f'. 
19:11:16 <Slereah_> As you can see, there's a brutal drop for a hundred f's. 
19:11:39 <ehird> Slereah_: my msn name was ffffffff or something recently 
19:11:56 <ais523> what a ridiculous thing to graph... 
19:12:05 <ehird> ais523: but awesome 
19:12:06 <Slereah_> Also note the high result for ffffff 
19:12:09 <oklocod> ehird: your mom's name was ffffffff or something recently. 
19:12:15 <ehird> Slereah_: do 'length of program' vs 'steps to run' 
19:12:17 <Slereah_> Because of the hex value of the same name 
19:12:19 <ehird> for brainfuck or something 
19:12:28 <oklocod> charts are like the ugliest thing on the planet 
19:12:35 <Slereah_> ehird : It would diverge rapidly 
19:12:44 <Slereah_> I would also have to solve the halting problem 
19:12:58 <ehird> Slereah_: just download programs from the interweb 
19:13:00 <oklocod> Slereah_: no you wouldn't, just don't plot the y axis infinitely 
19:13:12 <oklocod> i mean, have a finite bound on the stepcount 
19:13:14 <Asztal> I'm guessing it's 128, probably generated by repeatedly doubling the clipboard 
19:13:32 <oklocod> Slereah_: nothing really, it just rhymed. 
19:13:35 <Slereah_> There's 8^n programs for a program of length n 
19:13:43 <Slereah_> What am I supposed to take as a result? 
19:14:13 <Slereah_> Average is infinity for most, I think 
19:14:27 <Slereah_> Unless you allow some unbalance brackets 
19:14:28 <ehird> Slereah_: DOWNLOaDprograms 
19:14:43 <ehird> Slereah_: just a lot of them 
19:16:16 <Slereah_> Unlike ffffffffffffffffffffffffffffffffffffffff 
19:17:02 <ais523> less than 8^n, [] have to match 
19:17:34 <Slereah_> ais523 : Not in my version it does not! 
19:18:34 <ais523> new silly idea: an esolang where any input is a legitimate program 
19:18:39 <ais523> but it's used to seed a random number generator 
19:18:44 <ais523> and its output is the real program 
19:42:42 -!- olsner has joined. 
19:48:05 <ais523> hmm... that program has a nice visual simplicity to iy 
19:48:11 <GregorR> Wow, that's beautifully compact. 
19:48:33 <GregorR> (I guess that's what an infinite tape gives you though :P ) 
19:49:10 <ais523> I suppose that program is an argument for EOF = 0 or unchanged 
19:49:48 <ais523> (I told ehird that ESO ought to be standardising brainfuck, ehird said it was standard, then we had a furious argument about what value EOF was in standard brainfuck) 
19:50:30 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | ugh. 
19:50:51 <ais523> see, optbot agrees with me 
19:50:58 <ais523> EOF = unchanged is probably neatest 
19:51:02 <ais523> and the original implementation used -1 
19:51:05 <ehird> neatest is irrelevant 
19:51:12 <ehird> what matters is what programs & impls today are written for 
19:51:28 <ais523> what do you mean "today's programs & impls" 
19:51:50 <ais523> of the BF implementations I could reasonably get documentations for, some assumed 0, some assumed -1, some assumed unchanged, some let you choose, one errored out and one returned 32 
19:52:00 <ehird> GregorR: For context, ais523 is convinced that since a lot of the My First Brainfuck Interps (none of which are any any good or really work properly) he snabbed don't use 0, that means 0 is not standard 
19:52:25 <ais523> even the high-quality top-of-the-range ones differ 
19:52:27 <GregorR> Most would use whatever C defines EOF as, no? 
19:52:30 <ais523> although mostly they let you choose 
19:52:31 <ehird> ais523: what about if you downloaded 100 c compilers made as toys 
19:52:40 <ehird> and they defined printf to explode a toaster 
19:52:44 <ehird> is printf exploding a toaster now a standard 
19:52:45 <ais523> they would be good for guessing common widths for int, and so on 
19:53:05 <ais523> they wouldn't define printf to explode a toaster because the people writing them wouldn't expect C to work like that 
19:53:08 <GregorR> The lesson: EgoBF is the only standard. Love EgoBF. EgoBF is your friend. 
19:53:15 <ais523> the toy compilers are a good way to measure people's expectations 
19:53:21 <ais523> GregorR: what EOF value does it use? 
19:53:29 <ehird> EXPECTATIONS ARE IRRELEVANT 
19:53:52 <ais523> people's expectations is exactly what causes a de-facto standard to develop 
19:54:10 <ehird> ais523: not if the people "developing" the de-facto standard are CLUELESS NEWBIES 
19:54:16 <ais523> and the only written-down standards are the reference interp, which uses -1, and the Epistle, and I can't remember what value that uses 
19:54:24 <ehird> epistle says 0 or unchanged 
19:54:25 <ais523> ehird: clueless newbies are precisely who develop de-facto standards 
19:54:32 <ehird> and egobf uses 0+configurable 
19:54:34 <ais523> as that determines what 'de-facto' is 
19:54:41 <ehird> define the standard 
19:54:42 <ais523> people who actually think about it aren't doing de-facto 
19:54:43 <ehird> more than implementations 
19:54:52 <ehird> most brainfuck programs assume 0, or at least assume 0 or stay-same 
19:55:56 <ais523> where are you finding these most brainfuck programs? 
19:56:12 <ehird> where are you finding these useless implementations 
19:56:19 <fizzie> And fungot uses 0! That's the interpreter most people use! 
19:56:19 <fungot> fizzie: if you convince another human being. ever.) 
19:56:37 <ehird> epistle, bff.c, egobf, fungot 
19:56:38 <fungot> ehird: zsh was always better at piping of find, grep, etc from walmart you get a logical fnord integer 
19:56:43 <ais523> ehird: I used the links from the Esolang article 
19:56:44 <ehird> all but epistle use 0 by default 
19:56:48 <ehird> and epistle says 0 or undefined 
19:56:55 <ais523> also, the largest selection of BF programs I know is Keymaker's website 
19:57:03 <ehird> epistle, bff.c, egobf, fungot 
19:57:05 <ehird> all but epistle use 0 by default 
19:57:06 <ehird> and epistle says 0 or undefined 
19:57:38 <ais523> of the two BF interps in the Ubuntu repos, one uses -1, the other is configurable 
19:57:53 <ehird> ais523: I like the part where you're ignoring me. 
19:58:03 <ais523> no, I'm just disagreeing with you 
19:58:20 <ais523> why do you consider fungot an authoritative source, for instance? 
19:58:20 <fungot> ais523: and...? if you want args 
19:58:29 <ais523> anf you mention bff.c a lot as if it means something in particular 
19:59:19 <GregorR> ais523: Out of curiosity, what are the two BF interps in Ubuntu? 
19:59:29 <ais523> they're called beef and bf 
19:59:39 <ais523> although "bf" is a pretty generic name for a BF interp 
19:59:42 <ehird> AnMaster: are you seriously telling me you don't know what bff.c is? 
19:59:54 <ehird> if so, haha, stop arguing about brainfuck interps now 
20:00:07 <ais523> I know it's a brainfuck interp that you harp on about a lot without explaining why you think it's more important than all the others 
20:00:14 <ehird> ais523: it is famous 
20:00:33 <ehird> being the fastest until bff4 displaced it, and bff4 is kinda sucky 
20:00:36 <ehird> it uses dbfi-style input and such 
20:00:50 <GregorR> ehird: EgoBFC2M is faster than both, but it's cheating :) 
20:00:58 <ais523> GregorR: bf is apparently called "Yet another Brainfuck interpreter" 
20:01:00 <fizzie> Debian almost got atehwa's "bfc", but then didn't: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=354831 
20:01:28 -!- asiekierka has joined. 
20:01:37 <ais523> ugh, why does esolang stuff always end up at Debian prio extra 
20:01:45 <ais523> the only reason to put it there is that it's useless 
20:01:46 -!- asiekierka has quit (Read error: 104 (Connection reset by peer)). 
20:01:55 <ais523> I mean, it's not as if it typically depends on closed-source stuff or anything like that 
20:02:35 <ais523> GregorR: how does EgoBFC2M work? 
20:02:39 <ais523> using the ick -F trick? 
20:03:06 <ais523> ah, so GregorR's claiming "faster" whilst not taking the whole run time into account? 
20:03:11 <ais523> ick -F works like that too 
20:03:16 <GregorR> (It's not strictly JIT since BF has no functions, so the whole thing is compiled at once, but it's about as close as you can get :P ) 
20:03:25 <ehird> ais523: no hes saying that it it is not an interp 
20:03:25 <GregorR> I actually hadn't heard of ick. 
20:03:36 <ais523> GregorR: ick's the filename of the C-INTERCAL compiler 
20:03:37 <ehird> that runs the compiled code 
20:03:41 <ehird> and discards it after 
20:03:59 <ais523> ehird: well if that's faster than interpreting, it's a legit way to run the program 
20:04:04 <fizzie> Depending on closed-source stuff would put it in contrib, I think; as far as I know "extra" really _means_ "useless". 
20:04:13 <ehird> ais523: we're talking about _fastest interps_ 
20:04:27 <ais523> oh? I'm talking about fastest implementations 
20:04:29 <GregorR> And then, Gregor disappeared because this conversation is getting stupid. 
20:04:32 <ais523> no matter what technique they use 
20:04:41 <ehird> ais523: we are not. 
20:05:02 <ais523> why are you restricting yourself to interps only, just because the second-fastest happens to support your EOF convention? 
20:05:12 <ais523> that seems a bit intellectually dishonest... 
20:05:13 <ehird> ais523: because esowiki does 
20:05:25 <ais523> awib's a compiler, for instance 
20:05:28 <ehird> and i mentioned bff.c way before that, anyway 
20:05:29 <ais523> and I'm pretty sure it's mentioned 
20:05:35 <ehird> so don't accuse me of intellectual dishonesty kthx. 
20:05:49 <ais523> well, if I invent a new world's fastest BF compiler, probably I'll use EOF unchanged 
20:05:57 <ais523> or maybe -2, just to annoy you 
20:06:54 <ehird> <ehird> For the record, do you agree that the de-facto standard is EOF=0? 
20:06:55 <ehird> <GregorR> Off the record I agree :P 
20:06:55 <ehird> <ehird> Oh, off the record is a shame because now I'm going to quote you >:) 
20:07:11 <fizzie> Oh, and Debian does have the Perl Acme::Brainfuck "embed BF in Perl" module -- translates BF to Perl at the parsing stage -- with priority "optional". 
20:07:24 <ais523> well, that's in CPAN, it must be useful... 
20:07:30 <ais523> what EOF does it use, BTW? 
20:07:33 <GregorR> #1 reason why 0 should be considered the standard: -1 sucks and makes code suck. 
20:07:45 <GregorR> And then, Gregor ACTUALLY disappeared because this conversation is getting stupid. 
20:07:48 <ais523> that's the #1 reason why it should be unchanged, really 
20:08:45 <fizzie> ais523: The documentation doesn't say (and the "reverse" example uses ".----------]" to stop to newline) and I don't have it installed, so can't be sure. 
20:09:44 <pikhq> ais523, Only make an argument of unchanged and 0 on EOF. 
20:09:58 <pikhq> (since it's trivial to handle both in the same program) 
20:10:20 <fizzie> It translates , directly to "P = ord getc;" and "ord" seems to turn the 'undef' returned by getc into 0. 
20:10:24 <ais523> the only real argument for -1 is that it's what the reference interp used, and the most obvious choice in some ways 
20:10:31 <pikhq> -1 is stupid, and -2 is fucking insane. 
20:11:17 <ais523> maybe the correct value is actually "whatever the platform uses for EOF by default" 
20:11:22 <ais523> which would be -1 for running on C 
20:11:37 <ais523> 59048 for running on Malbolge (IIRC) 
20:11:44 <pikhq> Actually, on C, it's not -1. 
20:11:48 <ais523> and whatever the host used for recursive BF 
20:11:56 <ais523> pikhq: and yes, I know, but it always seems to be -1 in practice 
20:12:44 <pikhq> Saying 'always seems to be' is not correct. :p 
20:13:18 <ais523> -1 for running on a typical POSIXy C implementation, maybe I should have said 
20:16:39 <ais523> <Wikipedia> Some implementations set the cell at the pointer to 0, some set it to the C constant EOF (in practice this is usually -1), some leave the cell's value unchanged. There is no real consensus; arguments for the three behaviors are as follows. 
20:19:56 <pikhq> I prefer 0, but don't mind unchanged. 
20:21:14 <fizzie> fungot: What do you prefer? Never mind the behaviour I forcibly coded into you. 
20:21:14 <fungot> fizzie: not sure about 
20:21:25 <fizzie> Well, that's not conclusive. 
20:21:49 <ais523> it's pretty conclusive for fungot 
20:21:50 <fungot> ais523: sorry i don't know why i capitalized satisfiable? in the end 
20:23:26 <ais523> optbot: what do you think? 
20:23:34 <optbot> ais523: i would do a temporary complete sleep-dep experiment, but not that 
20:23:48 <ais523> hmm... ChanServ? Your opinion? 
20:23:54 <pikhq> I tend to write code that works when EOF=0 and EOF=unchanged, so they're effectively the same. 
20:23:56 <ais523> you never seem to do much but send out welcomes... 
20:24:11 <oklocod> ...like a general-purpose mental exercise book, basically pages and pages full of things you can "calculate" in your head, each represented with just a short textual representation, for instance "what will the following intercal snippet evaluate to?", or just "what is the optimal move for the following tic-tac-toe board, if you're X?" 
20:24:31 <ais523> oklocod: sounds interesting 
20:24:37 <ais523> would it all be esostuff 
20:24:41 <ais523> or a mixed bag of things? 
20:24:49 <oklocod> well, i was thinking a very mixed bag. 
20:25:26 <oklocod> there could be problems that required quite specific knowledge, and ones that are trivial; you'd just skim through it, and mark the ones you've found the solution to 
20:25:47 <ais523> ok, that does sound interesting 
20:25:58 <ais523> for some reason it reminds me of the Mystery Hunt which had an esolang-related question 
20:26:11 <ais523> but the whole of the rest of it was, as usual, all sorts of stuff 
20:26:20 <ais523> oklocod: apparently it's some tradition at an American university 
20:26:26 <ais523> I only found out about it from Wikipedia 
20:26:32 <ais523> it's basically a giant quiz 
20:26:43 <ais523> but the rules aren't really explained at all 
20:26:53 <ais523> most of the questions have no explanation, you just have to guess how to answer them 
20:27:11 <ais523> and normally they're presented in a surreal manner which itself is a clue to something else 
20:27:21 <ais523> like giving them numbers that aren't in sequence, for instance 
20:27:37 <ais523> http://en.wikipedia.org/wiki/Mystery_Hunt 
20:27:40 <oklocod> anyway, all problems would have a very short explanation, and a very short answer you could like write on the line next to it, but the answer might require quite a lot of pondering; you could also have ones that are meant to be done on paper, which wouldn't have to have a limit on the memory the solution uses, so to speak (as most people's mental capacity is quite small) 
20:28:06 <oklocod> i was thinking less mysterious :P 
20:28:24 <oklocod> so that you'd actually know what you're answering to, just not always how 
20:29:49 <oklocod> and many would require specific knowledge, so that you'd need to learn the basics of intercal for some questions, for instance 
20:30:29 <oklocod> and there could be like markers for what question requires what, categories like Esolangs, Math, Games... 
20:30:54 <oklocod> not sure that's useful, if there's the requirement of short questions 
20:31:36 <oklocod> anyway, that's something that could just be gathered up for a long period of time, and i'm thinking i could, maybe, start doing just that 
20:31:56 <ais523> anyway, http://www.mit.edu/~puzzle/02/round2/05/Puzzle.html was the esolang round 
20:32:03 <ais523> I haven't looked at it in detail 
20:32:08 <ais523> I wonder how long it would take us to solve? 
20:32:30 <ais523> identifying the langs is the first step 
20:32:33 <oklocod> (=<;:^8765Y32V0/.R,+*N('K%$H"!~}C0cba`_^]s\8IXGFEqSSnP?kdLKg&HGpE4CB1@/h sadol? 
20:32:51 <ais523> sequences of chars running backwards like that are a giveaway 
20:33:16 <ais523> fourth is RUBE, I think 
20:33:29 <ais523> numbers on top of = signs 
20:33:37 <ais523> is a typical way to print a string in RUBE 
20:33:48 <oklocod> is it a conveyor belt language? 
20:33:57 <ais523> the fifth, I can't recognise the format the image is in 
20:34:28 <ais523> based on the magic word at the start 
20:34:34 <ais523> but they changed the extension to confuse people 
20:35:15 <ais523> based on the large blocks of colour, it's probably Piet 
20:35:22 <oklocod> so, i'm thinking... that one that starts with a p 
20:35:38 <ais523> the sixth I don't recognise 
20:35:41 <oklocod> the large blocks are really a trivial giveaway 
20:36:12 <ais523> I thought False had more letters in than that 
20:36:13 <oklocod> false has newline strings like the one in the end 
20:36:19 <ehird> if you wanted to make that book 
20:36:29 <oklocod> the last line is just ", and the line before it ends in a " 
20:36:32 <ehird> i'd make a web version where you can enter your answers 
20:36:33 <oklocod> this is something false does 
20:36:35 <ehird> and it'll tell you if you got any wrong 
20:36:37 <oklocod> also doesn't false use []'s 
20:36:46 <ais523> the next one is Flip, almost certainly 
20:36:51 <ais523> which I've never used but it looks distinctive 
20:37:22 <ais523> the one after that seems to be some sort of Lord Of The Rings-themed esolang 
20:37:41 <ais523> oklocod: Flip's fungelike, but very multithreaded, I don't know much else 
20:37:53 <oklocod> ais523: sure it's not that one language that uses quines for iteration? 
20:38:04 <oklocod> strings, plus concatenation, plus printing 
20:38:07 <ais523> it has much longer identifiers 
20:38:12 <ais523> Muriel has a little sister, though 
20:38:12 <oklocod> they didn't have the guts to do iteration 
20:38:18 <ais523> which has shorter identifiers 
20:38:22 <ais523> trying to remember its name now 
20:38:30 <oklocod> well clealy they're just concatenating, then outputting. 
20:38:41 <ais523> what do gth do, though? 
20:38:47 <ais523> it looks like a stack-based lang that identifies strings 
20:38:53 <oklocod> actually yes, something like that 
20:38:54 <ais523> and I agree that the LOTR stuff is probably a decoy 
20:38:58 <oklocod> i didn't realize there was that ppppppp part 
20:39:07 <oklocod> yeah, most certainly, they're in strings, after all. 
20:39:26 <ais523> can't be anything else... 
20:39:26 <fizzie> ais523: Are you sure the fungelike isn't just plain old Befunge? It is at least a working befunge program. 
20:39:44 <oklocod> yeah, | used for ifs, clearly 
20:39:54 <oklocod> you have |'s, then code underneath, and to the right 
20:40:12 <fizzie> Also it prints "DOROTHY'S AUNT" when run under a Funge interpreter. 
20:40:25 <ais523> my guess is they all print strings 
20:40:28 <ais523> which form the clues to something else 
20:40:32 <ais523> the Mystery Hunt worked like that 
20:40:45 <ais523> also the names of the questions will be a clue to yet another thing 
20:40:45 <oklocod> yeah, would be a bit trivial just to find out what the language is 
20:41:14 <oklocod> but, at least we did the first phase quite fast. except for the second to last 
20:41:58 <ais523> ehird: http://www.mit.edu/~puzzle/02/round2/05/1183 if you want to play along 
20:42:08 <ehird> that looks like muriel 
20:42:10 <ais523> we're trying to identify what lang it's in 
20:42:17 <ehird> some quine-rewriting language 
20:42:23 <ais523> well, oklocod thought Muriel too 
20:42:28 <oklocod> hmm, gt*h, g does something that lets you use t on the result, then it's converted "back" with h 
20:42:40 <ais523> Muriel has longer keywords, so if it is it's the tarpit version 
20:42:58 <oklocod> muriel so doesn't have longer keywords! :o 
20:43:16 <ais523> g and p access variables 
20:43:37 <ais523> and t removes the first char from a string 
20:43:44 <ais523> so it's basically slicing all those strings by hand 
20:43:54 <ais523> presumably to find the characters they actually want to print 
20:44:36 <oklocod> well, okay, perhaps we are quite good at esolanging. 
20:45:38 <ais523> we ought to be the best on the Internet, collectively 
20:45:55 <ais523> now we just have to find interps and run them all 
20:46:47 <ais523> 1183 outputs "first letter of the name of this programming language" 
20:46:59 <fizzie> ^bf ++++[>++++<-]>[>+>+++>++>+++++>+++++++<<<<<-]>[>]<[>+>+<<-]<++++.>>--------.---.+++<<---<.>--->>+>++<++>++<+.-------.>..<.>--.<++<<---<.>--->>++.>+.<<<<.>---.<<--.<---. 
20:47:48 <fizzie> And 600 was "Dorothy's aunt", which I think usually is a Wizard of Oz reference meaning Em (short for Emily). 
20:47:59 <fizzie> I'm sure there must be some additional trickery involved. 
20:48:14 <ais523> anyone here have a Malbolge interp? 
20:48:22 <oklocod> i have nothing on this comp 
20:48:24 <fizzie> Why are the link numbers the program lengths in bytes, anyway? 
20:49:06 <oklocod> seems like a way to get irrelevant information that's not totally random, to confuse people 
20:49:47 <ais523> fizzie: ah, that must be a clue to something else 
20:49:48 <fizzie> The unlambda program (132) outputs an 's'. 
20:49:56 <fizzie> Or actually it outputs: 
20:50:08 <ais523> anyway the Malbolge program prints -> R <- 
20:50:10 <oklocod> what would be nicer is if you'd have to guess what the program does even though the language is actually nonexistant 
20:50:35 <oklocod> probably, done well, that would be quite a fun mental exercise 
20:50:49 <ais523> well, it would just be a new lang in that case 
20:51:01 <oklocod> yes, but you'd have to reverse-engineer it, that's the point 
20:51:03 <ais523> so, which programs still have to be run? 
20:51:21 <ais523> assuming that each program outputs a letter 
20:52:11 <oklocod> ehird: sorry for not responding, i was in esolang mode, a webpage like that would be nice for it, could be referenced in it 
20:52:48 <ais523> we have 73 R, 132 S, 180 E, 194 not sure, 198 not sure, 241 not sure, 600 M, 1183 S, 1840 not sure 
20:54:14 <ais523> <noZone> ##Begin comment: Note to self, IRP reads comments, like this one, and makes comments about their content. Avoid placing sensitive data (e.g. SSN, Bank account numbers, etc.) in IRP comments like you do in other languages. ##End Comment 
20:56:52 <fizzie> The Piet one (198) outputs "LETTER L". 
20:57:08 <fizzie> Happened to have the Perl module Piet::Interpreter around. 
21:03:27 <fizzie> But Acme::Chef doesn't seem to want to run the Chef program. :/ 
21:03:41 <ehird> fizzie: Perl isn't the only thing ever :-P 
21:04:21 <ais523> ehird: no, but it's a convenient repo 
21:04:33 <ehird> ais523: but cpan is evil remember 
21:06:22 <fizzie> Strange, though. It just complains: "Unknown ingredient 'contents of the mixing bowl' required for recipe 'baked herb casserole' in 'verb'." even though the program itself seems just fine to me. 
21:06:39 <ais523> it must be an earlier version 
21:08:02 <fizzie> It shouldn't call require_ingredient at all when handling 'pour'. 
21:09:37 <fizzie> Oh, I see. It should say "Liquify", not "Liquefy", in the program. 
21:11:12 <fizzie> Unfortunately all it prints out are bytes with values in the [2, 32] range. I don't think the interpreter is compatible. 
21:11:51 <ais523> fizzie: try adding 26 to all of them, what do you get then? 
21:13:53 <fizzie> For the reference, here's the output. But it might be very wrong; better try with some other Chef interpreter. 
21:14:02 <fizzie> 00000000  0e 03 15 02 20 02 03 03  13 06 17 0a 02 15 0a 10  |.... ...........| 
21:14:03 <fizzie> 14, 3, 21, 2, 20, 2, 3, 3, 19, 6, 23, 10, 2, 21, 10, 16, 15 
21:14:23 <ais523> I was wondering if it was positions in the alphabet 
21:14:31 <ais523> in which case adding 64 would make more sense than adding 65 
21:14:47 <fizzie> So was I, but at least 1=A it wasn't. Feel free to try with 0=A or something else. 
21:15:34 <fizzie> http://www.dangermouse.net/esoteric/chef.html has "Additional syntax specifications added 17 July, 2003, marked in red. Fixed spelling of "liquefy" keyword." 
21:15:39 <fizzie> So the Acme::Chef one is pretty old. 
21:16:18 -!- Hiato has joined. 
21:16:39 -!- Hiato has quit (Client Quit). 
21:17:59 <fizzie> fis@eris:~$ perl -e '@a = (14, 3, 21, 2, 20, 2, 3, 3, 19, 6, 23, 10, 2, 21, 10, 16, 15); print chr($_+63) foreach @a; print "\n";' 
21:18:17 <fizzie> "MBT AS ABBREVIATION" sounds suspiciously English to be random nonsense. 
21:18:25 <ais523> those sneaky puzzle-setters... 
21:18:49 <ais523> so what letter does that resolve to, I wonder? 
21:19:02 <ais523> unfortunately it's probably one of those questions which you need to know about MIT to solve 
21:20:14 <oklocod> well, what does mbt mean, as an abbreviation? 
21:20:21 <oklocod> isn't that kind of an obvious next step 
21:20:25 <fizzie> A lot of thing, according to Wikipedia. :p 
21:21:09 <oklocod> well, we're looking for random letters, perhaps this one gives us 3? dunno. 
21:21:27 <ais523> I think each answer is one letter most likely 
21:21:41 <ais523> although 600 could be em rather than m 
21:21:59 <oklocod> err, i'm pretty sure it's M 
21:22:52 <fizzie> 73 R, 132 S, 180 E, 194 ?, 198 L, 241 ?, 600 M, 1183 S, 1840 "MBT as abbreviation". Still two more languages to run there. 
21:25:54 <ais523> the RUBE program seems to have no output instructions 
21:26:21 -!- atrapado has joined. 
21:26:22 <oklocod> prolly just builds a string? 
21:26:42 <ais523> RUBE doesn't have strings 
21:30:56 <fizzie> Ran it with the catseye interpreter with a long delay -- after hacking usleep() in place of the #ifdef BORLAND delay() based one -- and the crates just seem to drop off without much happening. 
21:31:31 <ais523> yes, there are no output instructions 
21:31:40 <ais523> there's probably a typo in the program somewhere 
21:31:48 <fizzie> They drop down to the < and then into the furnace. 
21:31:52 <ais523> also, what's that input instruction doing over the right where it can't do anything? 
21:32:37 -!- oerjan has joined. 
21:32:48 <fizzie> Actually a C is left on the conveyor belt at the very end. 
21:33:05 <ais523> then C means "output char" 
21:33:07 <ais523> which makes a lot more sense 
21:35:43 <fizzie> "This yields an "E"." is what it does. 
21:36:06 <ais523> 73 R, 132 S, 180 E, 194 E, 198 L, 241 ?, 600 M, 1183 S, 1840 "MBT as abbreviation". 
21:37:13 <oerjan> <oklopol> AnMaster: try the unlambda page, oerjan created a system for representing it 
21:37:39 <oerjan> that _definitely_ was on the esolangs wiki, no matter how much you try to confuse poor AnMaster 
21:40:43 <oerjan> but i think madore's pages are good for callcc too 
21:41:26 <fizzie> koira-apina /u/1/htkallas > ./false 241.f 
21:41:26 <fizzie> Portable False Interpreter/Debugger v0.1 (c) 1993 $#%! 
21:41:26 <fizzie> ..-. .. ..-. - ....    .-.. . - - . .-.    --- ..-. 
21:41:26 <fizzie> .- .-.. .--. .... .- -... . - 
21:41:54 <fizzie> The Javascript interpreter didn't run it, and false_int.c did not want to compile on my GCC, but there it is. Someone else can translate from the morse code. 
21:43:10 <ais523> FIFTH LETTER OF ALPHABET 
21:43:29 <fizzie> It might also be an A. 
21:43:35 <fizzie> Which is fifth letter of "alphabet". 
21:44:07 <ais523> so, do the letters anagram to anything, I wonder 
21:46:01 -!- KingOfKarlsruhe has quit (Remote closed the connection). 
21:46:30 <fizzie> If you use the "A from alphabet" interpretation, you get R, S, E, E, L, A, M, S and 1840 being something strange; it anagrams to "real mess". :p 
21:47:12 <ais523> well, I suspect we don't have enough context to get any further with the puzzle 
21:47:17 <ais523> but I'm glad at our progress 
22:19:01 -!- sebbu2 has joined. 
22:22:17 -!- sebbu has quit (Read error: 60 (Operation timed out)). 
22:22:17 -!- sebbu2 has changed nick to sebbu. 
22:29:24 <psygnisfive> haskell makes it really easy to perform algebraic manipulations of functions 
22:30:21 <ais523> I'm starting to think that all imperative languages and all functional languages are in fact special cases of Haskell 
22:30:31 <oerjan> in fact the ghc compiler is heavily based on algebraic simplifications 
22:30:56 <psygnisfive> i mean look at this definition of adding two lists: 
22:31:00 -!- ENKI-][ has quit (Excess Flood). 
22:31:27 <psygnisfive> and from this last version it becomes trivial to then say 
22:31:51 -!- ENKI-][ has joined. 
22:32:37 <psygnisfive> ehird: so? was i interrupting any conversations? 
22:32:43 <ehird> psygnisfive: Irrelevant. 
22:32:58 <ais523> no, not irrelevant really 
22:33:14 <Asztal> anything involving (.) . or (x .) currently breaks my parser :( 
22:33:19 <ais523> actually, /me goes home 
22:33:37 <oerjan> Asztal: you're trying to implement haskell? 
22:33:56 <ehird> ais523: if he was someone who had just joined he'd be being pointed to pastebins now 
22:33:56 <ehird> Why do the rules change because he has been here for a while? 
22:34:09 <Asztal> sorry, I mean my feeble human parsing 
22:34:19 <psygnisfive> because pastebins are useful in specific contexts, ehird. 
22:34:38 <ehird> psygnisfive: every time anyone has ever flooded this channel they are told to use a pastebin 
22:34:39 <oerjan> well (f . g) x = f (g x) 
22:34:46 <oerjan> that's the definition of . 
22:35:08 <ehird> you may argue that is bad, fine. but that does not mean it doesn't apply to you too 
22:35:25 <psygnisfive> haskell seems to be designed to make obfuscation easy 
22:35:51 <oerjan> psygnisfive: there have been three obfuscated haskell contests 
22:36:15 <psygnisfive> what, did people just submit their existing programs and win? :P 
22:37:05 <psygnisfive> did they define some trivial function in the most absurd way possible, ala EHP? 
22:37:31 <oerjan> i do recall some heavy renaming of functions as operators 
22:38:47 <oerjan> http://www.haskell.org/haskellwiki/Obfuscation 
22:40:49 -!- ENKI-][ has quit (Excess Flood). 
22:41:40 -!- ENKI-][ has joined. 
22:55:52 -!- atrapado has quit ("Abandonando"). 
23:08:30 -!- Chocolate_Syrup has joined. 
23:54:40 -!- jix has quit ("CommandQ").