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