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").