00:00:00 -!- BMeph has joined. 00:01:13 ehird, yay cfunge just got it's first fingerprint! 00:01:22 working 00:03:24 -!- olsner has quit ("Leaving"). 00:09:32 AnMaster: cfunge is mine 00:09:35 :/ 00:11:24 are you both writing befunge compilers? 00:13:02 lament: not compilers 00:13:04 interpreters 00:13:04 * oklokok is writing a befunge compiler, at least :P 00:13:08 befunge-98 interpreters 00:13:14 oh 00:13:21 because we decided that one conforming interpreter was just not good enough 00:13:25 undersaturated market 00:13:25 :) 00:13:32 oklokok: in what language, to what language? 00:13:37 python, to python 00:13:44 threaded? 00:13:48 or jit 00:13:50 AnMaster: i'll pay you moneys if you rename your interp 00:13:51 actually 00:13:54 nm renaming the inter 00:13:57 lament: are those options? 00:13:58 just let me have CFUN 00:13:59 :D 00:14:08 i'll let you have CFNG 00:14:09 haha 00:14:11 oklokok: what do you mean? 00:14:16 what do you mean threaded, threaded as in am i going to implement befunge threads? 00:14:19 *funge 00:14:25 no 00:14:33 ah 00:14:33 what's your compilation strategy? 00:14:58 how are you making it different from just bundling an interpreter with initial source state? 00:15:18 compiling to a stack-based form, with gotos, then compiling that to python's loopie structures, i have some ideas for self-modifying code, but i'm not putting that in this version 00:15:33 umm 00:15:34 oh, so you're ignoring self-modifying code? 00:15:38 there will be no stack 00:15:40 that's... pretty pointless :) 00:16:13 although i remember there was a guy who made a brainfuck interpreter that didn't do loops 00:16:22 lament: yes 00:16:24 BestFriends.js 00:16:26 that's ver very different, though 00:16:28 *very 00:16:29 only handles one level of nested loops 00:16:41 befunge is usable without self-modification 00:16:45 AnMaster: if you use int_fastest32_t or whatever 00:16:48 oklokok: true 00:16:51 how do you make sure stuff doesn't exceed 32 bits? :| 00:17:10 actually i might even say it's better without it. 00:17:19 err... 00:17:22 easier to compile, certainly :) 00:17:40 oklokok: so wait 00:17:41 55+ 00:17:43 i haven't done a lot of befunge, just generally don't see many uses for self-modifications 00:17:44 compiles to 5+5? 00:17:49 i.e. you do total stack removal 00:17:50 ehird: sure 00:17:52 if so, that's cool 00:17:53 well 00:17:56 not entirely 00:17:58 oklokok: befunge-93? if so that's not TC :( 00:18:06 but where it's possible. 00:18:10 AnMaster: i'll pay you moneys if you rename your interp 00:18:11 nop 00:18:13 I won't 00:18:25 ehird: sure is, you can do "p" 00:18:25 I was first to release 00:19:11 ehird: befunge-93 is not tc without modification? 00:19:17 lament: of course.. 00:19:31 lament: when the code is modified, it's trivial to fix the stack+goto based form, compilation to python can be done jit then. 00:19:31 ehird, I even plan to rename it to just cfunge, as it isn't just one version 00:19:34 ehird, :) 00:19:37 AnMaster: you're sitting there whining 'RELEASE' every 2 seconds like putting a tarball on http:// is some magical ritual 00:19:38 :) 00:19:41 so it's not like it's hard to add later 00:19:51 i'm just not planning it in this version, because i don't see how that's important 00:19:53 ehird, hehe, but it is indeed 00:20:30 Befunge-93 is NOT tc 00:20:40 `` 00:20:40 Because Befunge-93 programs are given an explicit limit of 80x25 cells on the size of their playfield, but are also given a working stack, any Befunge-93 program should be simulatable by a push-down automaton. 00:20:40 However, the converse is not true; there surely exist some push-down automata which cannot be simulated by any Befunge-93 program (because they contain more states than can be encoded in the 80x25 playfield). 00:20:41 '' 00:20:42 MUNUS SIGSIGGA TAR BALLA YE... 00:20:56 oerjan: E J F 00:21:05 ESS CEE PEE 00:21:19 ehird: anyway, even with the limitation that the stack cannot grow, it is tc with an infinite grid. 00:21:24 * oerjan does not understand 00:21:36 ehird: obviously i meant with an infinite grid 00:21:37 in case that was your point with the " oklokok: befunge-93? if so that's not TC :(" thing 00:21:47 ehird: with the 80x25 grid, it's not TC with or without self-modification 00:21:52 -!- timotiis has quit ("leaving"). 00:22:08 lament: except with bignums 00:22:28 (i make such useful points!) 00:22:32 indeed 00:22:37 lament: Befunge-93 specifies 80x24. 00:22:49 oklokok: ehird has you beat :) 00:22:56 hehe :P 00:22:56 ehird: indeed. :) 00:23:04 thanks, ehird! 00:24:08 oklokok: I decided to do something like yours 00:24:08 :D 00:24:18 using a dict and lambdas for the instruction table 00:24:18 :D 00:24:22 '+': lambda: '(%s+%s)' % take(2), 00:24:28 take(N) is the magic 00:24:36 it gives you a sequence of the N top elements of the stack 00:24:46 [TOP, ...] 00:26:23 ehird: cool, i was thinking our tradition of stealing each others' ideas was over :P 00:26:29 oklokok: no way! 00:26:30 :D 00:26:30 i was pretty sad 00:26:36 just like the good ol' days 00:26:39 yay! 00:27:23 oklokok: take(N) will be pretty crazy when you can't remove a stack 00:27:28 it'll include destructive function calls 00:27:28 :P 00:27:52 i'm not sure how exactly you use that 00:28:15 oklokok: in the compiler, take(N) will give you a list of strings, length N 00:28:26 each string will be some python code that when evaluated, will give a stack element 00:28:26 sure 00:28:30 the stack element of this number: 00:28:33 mmmmmyeah 00:28:33 [top, top-1, ...] 00:28:39 so, take(2) givse you: [top, top-1] 00:28:45 where the elems are python strings of python expressions 00:28:52 well, that part i guessed 00:28:54 which, when evaluated, give you the top and second-top expressions relatively 00:29:04 oklokok: so in: 00:29:08 "122+-" 00:29:18 +'s take(2) will get it ["2","2"] 00:29:30 then -'s take(2) will get it ["(2+2)","1"] 00:29:51 oklokok: I am just doing 1-dimensional non-TC funge so I can prove I can eliminate a stack 99% of the time 00:29:51 heh 00:30:07 ehird: the problem is really when you start having loops 00:30:27 rpn -> infix is fairly simple otherwise, seems yours just does that 00:30:51 oklokok: oh, wait, yeah, it is equivilent to that 00:30:52 goddarn 00:31:05 but i'm fairly sure it's pretty simple once i actually get on it, currently just looking at my code and thinking about unicorns 00:31:26 unicorns 00:32:06 unicron 00:32:09 universal cron 00:32:40 AnMaster: Challenge. If you cannot give my C-funge interpreter a good name, you must change yours. 00:33:13 cefunge 00:33:29 seafunge 00:33:38 fudgerbudger 00:34:04 sorry, AnMaster, i'm not helping :< 00:35:05 man, it's impressive how similar forth and lisp are 00:35:14 (reading the hyperspec, low-level reader details) 00:35:35 is it the same, but all sentences are reversed? 00:35:38 lament: hahah 00:35:42 lament: R5RS! R5RS! 00:35:51 ehird, what is special with your one 00:36:05 AnMaster: it supports N-funge for all N>1 00:36:10 and is really fucking cool 00:36:11 ehird: r5rwhat? 00:36:15 ehird, but I know two good handprints: R2D2 and C3PO 00:36:16 * AnMaster runs 00:36:23 ehird: i'm not talking about scheme :) 00:36:25 lament: Revised^5 Report on the Algorithmic Language Scheme 00:36:28 expanded out: 00:36:34 besides, r6rs > r5rs 00:36:37 Revised Revised Revised Revised Revised Report on the Algorithmic Language Scheme 00:36:43 ehird, what do you think of those? 00:36:46 lament: r6rs is bloated 00:36:53 AnMaster: totally not as cool as cfunge 00:37:13 ehird, anyway I won't change mine, that's final, but well what about NFUN? 00:37:16 for nfunge 00:37:17 ? 00:37:21 AnMaster: call yours "an funge" 00:37:27 oklokok, nop 00:37:37 ehird can call his ehfunge 00:37:37 ? 00:37:40 that would be a fun inside joke on a channel 00:37:41 ehird: yermom 00:37:43 anyway NFUN sounds cool 00:37:50 why not just all use tha same name? 00:37:50 not here, but at least i would laugh! 00:37:50 ehird: it's not bloated, it _has a standard library_ 00:37:55 lament, yay! yermomafunge! 00:37:58 that's a good one 00:38:05 AnMaster: I can call mine ehfunge if you call yours anfunge. 00:38:11 Anfunge is a pretty cool name actually. 00:38:18 If I were you I'd probably call mine that. 00:38:20 ehird, AnMaster: duel! 00:38:21 ehird, what about youmomoafunge? 00:38:33 * AnMaster runs 00:38:33 AnMaster: don't you think anfunge is a cool name :| i do 00:38:36 okay, whoever's interp is faster wins the name? 00:38:41 ehird, hm I'm thinking of it 00:38:59 AnFunge imo 00:39:06 oklokok, currently mine is very fast, about twice as fast as CCBI or, on my system 3 times as fast 00:39:10 oklokok: capitalization is hardly important :) 00:39:29 ehird: well, so is hardly your mother 00:39:42 ehird: you could use the same name, differently capitalized. :D 00:39:48 CFunGe 00:40:28 CfungE 00:40:34 (the E is for ehird) 00:41:58 unfunge since it will remain unfinished at this rate 00:42:10 Compiler for unbounded n grid, Ehird 00:42:28 or was that interpreter 00:42:36 i'll call mine Oklonge 00:43:17 ehird, anyway I already registered this on freshmeat, so hard to change 00:43:18 did that a few hours ago 00:43:46 * oklokok is trying to incorporate "your mother", "long kok" and "coming from" in the same pun 00:43:49 AnMaster: not hard to reregister 00:43:49 heh 00:44:03 too hard 00:44:09 My long kok is coming from your mother. 00:44:21 Oklounge 00:44:22 oh, right, so obvious! 00:44:41 onge 00:44:41 ofunge 00:44:46 but it could be Ok-lounge 00:44:56 *Bk-Lounge 00:45:16 ehird, anyway as I said it is kind of too late then :/ 00:45:38 -!- olsner has joined. 00:45:48 AnMaster: I said, no it's not 00:45:56 AnMaster: re-registering is not hard. 00:48:54 hmm 00:48:59 what is the befunge terminology for a word? 00:49:06 ehird, a cell? 00:49:31 the b word 00:52:58 ehird, also, sf.net project request 00:53:17 AnMaster: don't use sourceforge. 00:53:23 ehird, why not? 00:53:35 AnMaster: 1. sourceforge is ironically closed-source, and costs big moneys 00:53:43 2. its interface &co. are really inferior to alternatives 00:53:50 3. the requests take ages. wtf. 00:53:51 sourceforge kind of sucks 00:53:52 ehird, it is the largest one still 00:54:00 but it's free webspace isn't it? 00:54:09 faxathisia, indeed, and a nice url for it 00:54:13 AnMaster: oh, it's large. that means it's good. Obviously. 00:54:17 and a good mirror system 00:54:23 ehird, yes high google ranking 00:55:20 * pikhq recommends the GNU Savannah 00:55:33 -!- Sgeo has joined. 00:55:41 pikhq, I will do source code hosting myself 00:55:44 * ehird recommends google code 00:55:44 as I prefer bzr 00:55:45 pretty good 00:55:48 not perfect, but. 00:55:54 and then only alternative would be sucky launchpad 00:56:04 AnMaster: high google ranking? why do you care about that for a befunge interp 00:56:06 sheehs 00:56:12 you'll get more traffic from the esolang wiki 00:56:48 On a side note: PEBBLE is in DMoz. :) 00:57:41 eek 00:57:42 dmoz 00:57:42 :D 00:57:47 the dead internet 00:57:57 It still lives. 00:58:35 Google's Directory mirrors it. ;) 00:58:39 -!- Slereah has joined. 00:59:16 -!- slereah__ has quit (Read error: 104 (Connection reset by peer)). 00:59:30 pikhq, 1) what is PEBBLE and 2) what is DMoz? 00:59:40 ehird, as for esolang wiki, already added there :) 00:59:56 http://pikhq.nonlogic.org/pebble.php 00:59:59 * Slereah goes to der esowiki 01:00:01 what is dmoz 01:00:01 lawl 01:00:07 official name is now cfunge without 08, as I'm implementing 93 and 98 as well 01:00:07 DMoz is the Open Directory Project. 01:00:10 ehird, I know what dmoz is 01:00:20 Then why did you ask? 01:00:33 lol 01:00:43 What was added to the fantasmesoteric wiki? 01:00:44 err wait 01:00:46 I'm tired 01:00:47 pikhq: So he can retroactively claim he knows after being told. 01:00:51 ehird: LMAO 01:00:55 hahaha 01:00:57 ehird, right! :D 01:01:01 I'm just tired 01:01:09 I had a faint memory of DMoz 01:01:19 didn't remember what it was exactly 01:07:39 i didn't know about dmoz OR freshmeat 01:07:44 oklokok: Mutant. 01:07:58 :P 01:08:02 i'm not into popular culture 01:08:15 Hmm. If I'm on Freshmeat, too. . . 01:09:13 * oklokok did know about sourceforge! 01:09:21 not that i've ever used it 01:10:11 never downloaded from it? 01:10:19 dunno, perhaps i did 01:10:24 just don't remember 01:10:37 hmm... i probably have downloaded something from there 01:12:10 and launchpad (as I actually use bzr) 01:16:23 -!- oerjan has quit ("Good night"). 01:17:25 -!- Deformati has joined. 01:18:25 Are Haskell's book good? 01:21:09 I heard it was not read it myself though 01:21:54 I'm thinking of buying "Combinatory logic" 01:22:00 And there's no review on Amazon. 01:22:25 I just bought Sets for Mathematics 01:22:32 The Schönfinkel article leaves too much mystery for me :o 01:23:17 -!- sebbu has quit ("@+"). 01:26:56 -!- Slereah has quit (Read error: 104 (Connection reset by peer)). 01:26:58 -!- Slereah has joined. 01:32:41 [02:17:14] Are Haskell's book good? 01:32:42 [02:19:59] I heard it was not read it myself though 01:32:52 took me quite a while to parse these 01:33:10 perhaps i'm a bit too tired 01:33:14 more coffees -> 01:33:24 night 01:33:36 nnnight? 01:33:39 -> 01:37:08 hmm, the powder has fossilized because i've been eating it with a spoon 01:37:17 hope it tastes the same -> 01:37:22 -!- GregorR-L has joined. 01:38:44 -!- slereah_ has joined. 01:38:45 -!- Slereah has quit (Read error: 104 (Connection reset by peer)). 01:38:59 GregorRL(1) 01:39:21 -!- Deformative has quit (Read error: 110 (Connection timed out)). 01:39:24 (i actually both misread and mistyped your nick's suffix) 01:39:57 (llled.) 01:41:06 -!- oklokok has changed nick to oklo. 01:41:37 Hahaha 01:41:57 Better than my previous GregorRead-Write (GregorR-W) 01:43:33 GregorReally-Awesome 01:44:17 Price: US$ 122.48 01:44:21 Aaaaaaaaaaaaaaaaaaaah 01:45:13 slereah_: i'm willing to pay that, when can you come? 01:45:20 is that for one night, or what? 01:46:07 Depends, do you have the work of Haskell Curry tatooed on your penis 01:46:22 no, i just drew a smiley face on t 01:46:24 *it 01:46:32 Well, I guess it's good too. 01:46:54 that's actually true, quite coincidental you should ask that on the only day ever i have something written on it. 01:47:08 THIS IS A HAPPY PENIS 01:47:11 :D 01:47:45 i feel so small and cute with this nick <3 01:47:51 coool 01:47:53 I want a small nick 01:47:56 :d 01:48:05 err 01:48:07 I meant dick 01:48:08 obviously 01:48:33 The only day... 01:48:33 ...SO FAR 01:48:34 obviously. 01:48:52 Well, oklo has one. 01:48:53 oklo: draw a penis on your penis 01:48:57 And it is adorable 01:49:16 Draw the ASCII value of a smiley face on your penis 01:49:20 "i have recursion on my penis" must the greatest pick-up line ever 01:49:22 on 01:49:23 no 01:49:25 the ascii penis smiley 01:49:27 on your penis 01:49:31 it has both sexual predator AND geeky loser 01:49:47 What's the ASCII value for a penis? Is it the value of 8===D? 01:49:57 we neeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed qdb.eso-std.org 01:50:05 [00:49] "i have recursion on my penis" must the greatest pick-up line ever 01:50:05 [00:49] it has both sexual predator AND geeky loser 01:50:07 quote #5 01:50:07 :D 01:50:12 :P 01:50:19 What are #0 through #4 ! 01:50:21 what are the first? 01:50:26 oklo: what is the Big-O complexity of your penis? 01:50:27 what's #4+3i 01:50:47 hmm 01:50:54 slereah_: #0 is how the qdb is open, and someone saying that them saying a line including the word 'dick' was sure to find its way onto there sooner or later 01:50:55 :D 01:51:19 And boy, were they right! 01:51:28 #1 is someone saying how the qdb's second quote ought to be one not including the word 'dick', to keep its integrity up. 01:51:32 Seems like that idea flopped. 01:51:47 #2 is this conversation. 01:52:06 #3 is the discussion that we will have later about how meta this conversation is. 01:52:18 And #4 is my 'I want a small nick/dick'. 01:52:21 slereah_: Satisfied? 01:52:45 Well, I'm naked and we're discussing penis. 01:52:48 So I guess. 01:53:09 slereah_: And thus quote #6 is born. 01:53:45 Why don't you just dump the logs on the qdb? 01:53:58 :P 01:54:01 slereah_: heh 01:54:07 not many false positives, you're rihgt 01:55:03 Still. $120 for a book, I hope it's made out of fucking gold. 01:56:05 slereah_: are you reading this stuff just for fun? 01:56:17 I sure don't need it to do physics. 01:56:31 heh 01:56:31 Problem with those books is, they're all referencing each others. 01:56:44 That's how I got here. 01:56:55 I tried to read the Principia Mathematica, and bam 01:56:59 The machine was on! 01:57:09 well, just perform a topological sort, book referencing graphs are always dags 01:57:54 slereah_: Goedel won the PriMat battle! 01:58:05 oklo: a mutually-referenced set of books would rock 01:58:13 yeah :D 01:58:38 Well, he only proved it incomplete, not false! 01:59:30 slereah_: He defeated its war against recursive sets though 01:59:45 What, x={x}? 01:59:54 Yes 02:00:05 I have a shameful picture. 02:00:06 http://membres.lycos.fr/bewulf/Divers2/Set.jpg 02:00:08 :( 02:01:41 I love you 02:03:26 'Recursion: see recursion.' 02:03:27 Oh crap.... 02:03:37 My funge may have to be in C++ for *convenience*. Yeah you heard that 02:03:40 Reason: Boost's array libraries 02:03:48 :) 02:03:49 :-( 02:04:05 "And by recursive, I of course mean defined by recursion." 02:04:05 Grr. 02:04:06 c++ has a nice name 02:04:18 Incr Tcl has a better one. 02:04:21 pikhq: Yeah, please show me a nice sparse N-dimensional array for C. I would really be happy :( 02:04:32 pikhq: And [incr Tcl] isn't exactly a speed demon. 02:04:51 ehird: we are only discussing names here 02:04:55 I didn't say it was a good bit of code. . . I just said it had a better name. 02:05:02 pikhq: Oh. 02:05:06 pikhq: Well plz halp :( 02:05:07 SNIT is a fairly speedy bit of code, though. 02:05:08 like i have a better name than any of you 02:05:10 *nick 02:05:11 (SNIT's Not Incr Tcl.) 02:05:18 Anyway, ADD ONE TO COBOL GIVING COBOL wins 02:05:22 but i'm still not better than you as a coder 02:05:22 BUT back to my question 02:05:23 :( 02:05:44 ehird: Just a sec while I pull my N-dimensional array code out of my pocket. 02:05:49 Ooops, my pocket is imaginary. 02:05:51 or better coded, whatever the analogy should be 02:05:52 As is that code. 02:06:10 pikhq: Well, just point to me a resource for C. 02:06:19 pikhq: Or at least feed me propaganda to convince me not to use C++ for it! 02:06:43 I mean, I would use a nicer thing with a nicer thing for that, but ofc C++ will be blazes faster 02:07:08 hmm, I think it's actually a sparse matrix I want 02:07:34 http://www.boost.org/libs/numeric/ublas/doc/matrix_sparse.htm 02:07:34 Bahh 02:07:39 i once owned a guy in speed, python vs. c++ 02:07:41 i was the python 02:07:58 i was like, lol you suck 02:08:05 :D 02:08:16 well yeah, so his code sux 02:08:17 :P 02:08:30 hmm 02:08:39 oklo: Know any algorithms for sparse N-dimensional arrays? :( 02:09:06 what do you need? 02:09:09 it's all about interface 02:09:55 basically, you can just do a hashmapping 02:10:08 you will need to access adjacent cells fast though 02:10:27 so, perhaps also do some linked-listing between executable cells, ignoring whitespace 02:10:28 dunno 02:10:28 oklo: exactly so a hashtable isn't nice 02:10:35 yeah 02:10:37 its hard 02:10:37 :( 02:10:58 well, i do python, nothing is hard 02:10:58 AnMaster: can I use AnFunge 02:11:12 oklo: how would you do a sparse Nd array then? 02:11:17 like what i said 02:11:18 i.e. fungespace 02:11:23 prolly 02:11:30 oklo: so (x,y) and (x,y,z) and (x,y,z,foogal) 02:11:30 -!- faxathisia has quit ("If there are any aliens, time travellers or espers here, come join me!"). 02:11:35 for 2,3,4d 02:11:45 yyyeah? 02:11:49 ehird, hah sure I guess, I wouldn't care 02:11:57 I don't name my software like that 02:12:05 just don't claim I made it :) 02:12:17 AnMaster: you *should* name your software like that 02:12:30 EgoBot, Anfunge. 02:12:32 it's awesome when people put parts of their nick in their software names 02:12:34 I need a prefix/postfix/substring. 02:12:41 Lio would work I guess 02:12:43 LioFunge 02:12:44 :| 02:12:53 oklo, comment taken on board, and will be thrown over as soon as we leave harbour 02:12:56 ;P 02:13:24 Is there anything up on ESO? 02:13:25 AnMaster: funny, but mean! 02:13:25 oklo, look is it gcc or rmsc? 02:13:25 :P 02:13:32 oklo, what? my Discworld quote? 02:13:56 slereah_: Not yet 02:14:14 * AnMaster is a Discworld geek (not fan, a geek) 02:14:25 oklo, you read any of those books? 02:14:54 ehird, err, it's emacs, not RMSmacs :P 02:14:56 just FYI 02:15:11 I used to be a fan. 02:15:17 But after reading them so many times! 02:15:19 AnMaster: most likely not, because i have no idea what you are talking about 02:15:34 slereah_, oh yes read and reread, Theif of Time is my favourite book 02:15:48 oklo, a fantasy/satirical fantasy series of books 02:15:50 oklo: or would you nest a hash table? 02:15:55 oklo, comment taken on board, and will be thrown over as soon as we leave harbour AnMaster: funny, but mean! 02:16:09 AnMaster: RMSmacs is the name for it when talking about it along with XEmacs 02:16:11 oklo, it was a quote from "The last continent" 02:16:14 ehird: nest a hashtable for each cell to get their neighbors? 02:16:16 also FSFmacs 02:16:22 ehird, what about sxemacs? 02:16:26 oklo: no for N dimensions 02:16:28 or µemacs 02:16:29 AnMaster: nobody uses that 02:16:49 ehird, actually I tried sxemacs, because a friend is a developer on it 02:16:56 * AnMaster think it is crazy 02:16:59 AnMaster: it sucks 02:17:03 ehird: like hashtable for each dimension? 02:17:08 ehird, as for µemacs: Torvalds use it 02:17:11 ;) 02:17:18 * AnMaster use gnu emacs 02:17:35 uemacs is nice 02:17:38 and yeah i know torvalds uses it 02:17:45 oklo: {x:{y:...}} or {(x,y):...} 02:17:51 the latter is more N-d 02:18:19 if befunge had infinite dimensions, and the "tree-structureness" of the FungeSpace was more easily accessible, i would most likely do that 02:18:54 hmm 02:19:01 i'm not sure what my logic was for that. 02:19:03 oklo, you would need some changes for that 02:19:09 infinite ones I mean 02:19:27 AnMaster: sure, you would need to change the operations. 02:19:45 AnMaster: name my funngeeee 02:19:46 like vectors as: {x,y.z.å,ä,ö,...} 02:19:46 it would be very different, and allow very different coding style 02:19:53 *a 02:19:59 ehird, no idea, what about nfunge? 02:20:04 nofunge? 02:20:17 funge? 02:20:25 noes 02:20:31 aleph-zero-funge? 02:20:44 ehird: {x,y:...} and {x:{y:...}} are both good 02:20:58 noes 02:21:01 Why only aleph zero! 02:21:03 i just don't like the latter as much, because it's less symmetric, even though it should conceptually be symmetric 02:21:04 oklo, for hash? I use vector as key 02:21:05 :P 02:21:16 AnMaster: so the first one 02:21:23 slereah_, aleph-aleph-aleph-0? 02:21:27 that would be interesting 02:21:32 Aleph 1 is enough! 02:21:50 awwwwww come onn 02:22:07 oklo, indeed 02:22:20 -!- slereah_ has changed nick to Slereah. 02:22:22 oklo, but my hash library should probably be ripped out and replaced 02:22:57 my fungespace will be a hash table with F_word[F_dimen] as the key 02:23:02 where F_ is my prefix, to be replaced 02:23:08 F_word is int32_t 02:23:09 ehird: the problem would be much more interesting if you needed to "find closest existing operation to point p" or something 02:23:16 hmm wait 02:23:18 but you don't need really anything for befunge 02:23:19 i need that done at runtime 02:23:20 heh 02:23:21 :D 02:23:23 just direct addressing 02:23:26 oklo: meh 02:23:45 hmm 02:23:50 shoudl I implement my own hash table? 02:23:52 I :D 02:23:54 *:D 02:23:58 wonder how I should hash the [N] 02:24:03 ehird, I would suggest n-dimensions, that can grow at runtime 02:24:11 so a redesign of vector system 02:24:18 AnMaster: hahah 02:24:19 what fun 02:24:25 F_vector_of_dimensions 02:24:26 ehird, my idea? yes 02:24:51 lol, my code has been one line away from ready for like 2 hours 02:24:52 :D 02:24:54 ehird, however, note that mycology only runs in funges with vectors of size 2 02:24:55 * oklo puts 02:25:36 ehird, so you need some compatibility mode to test those things 02:25:41 AnMaster: um hardly 02:25:46 just run with '-N 2' 02:25:46 ehird, ? 02:25:49 to get befunge 02:25:50 ah good idea 02:25:54 -N 1 is unefunge 02:25:57 -N 3 trefunge 02:26:01 ehird, -N -1 ? 02:26:03 and -N 938475 is memoryleakfunge 02:26:10 AnMaster: that's optionparsingerrorfunge 02:26:16 it has only one interesting program 02:26:22 and there are no uninteresting programs 02:26:23 :-) 02:26:28 ehird, -N sqrt(-1) 02:26:29 :D 02:26:43 AnMaster: ditto 02:26:43 that's headachefunge 02:26:44 ;) 02:27:03 -N integer>1 02:27:06 You can't have imaginry dimensions silly man. 02:27:16 How are you going to have a i-tuple! 02:27:18 Slereah, I know :D 02:27:39 hmm... 02:27:39 Slereah, at least it isn't pi-funge 02:27:45 AnMaster: How should I represent N > 2 in source files? 02:27:48 i.e. how should I parse them 02:27:54 You can do real dimensions. 02:28:04 You just need a set with aleph 1! 02:28:17 ehird, hm I think trefunge uses a form feed 02:28:25 to increment Z 02:28:30 apart from that I don't know 02:28:32 AnMaster: is that standard? 02:28:36 ehird, think so 02:28:42 not 100% sure 02:28:49 indeed, if you consider an n-dimensional space as a function from polynomials of order n to whatever that space holds, imaginary dimensions at least make *some* sense 02:28:52 but i'd need infinite chars to handle infinite dimensions 02:28:53 "In Trefunge-98, the Form Feed (12) character increments the z coordinate and resets the x and y coordinates to zero." 02:28:58 ehird, from http://catseye.tc/projects/funge98/doc/funge98.html#Quickref 02:29:00 err 02:29:00 AnMaster: wait, ^Z^Z is always invalid right? 02:29:02 oh wait no 02:29:04 not that section 02:29:07 it just means that that dimension is empty 02:29:07 damn 02:29:19 I thought: ^Z incrs Z, ^Z^Z incrs 02:29:20 etc 02:29:23 but that won't work 02:29:26 since ^Z^Z is well defined 02:29:43 ehird, hm: "The Funge-98 character set overlays the ASCII subset used by Befunge-93 and may have characters greater than 127 present in it (and greater than 255 on systems where characters are stored in multiple bytes; but no greater than 2,147,483,647.)" 02:29:46 so no infinite 02:29:59 of course 02:30:14 ehird, what I suggest: custom format for those extra 02:30:15 AnMaster: is there any unused funge character? 02:30:18 like that opengl thing does 02:30:22 ehird: you can only set values in positions with positive coordinates 02:30:28 for all X, Y and X 02:30:31 ... 02:30:32 Z 02:30:33 ehird, all from space to ~ are in use 02:30:34 in befunge 02:30:56 ehird, a sec for some info 02:30:56 AnMaster: I will use (char)dimension(char) 02:30:57 you cannot go up, but you cannot go left either. 02:31:01 where dimension is decimal 02:31:04 and shows how many to go up 02:31:05 kind of 02:31:06 like 02:31:13 (char)1(char) 02:31:19 means (4d's Z) 02:31:22 ehird, http://fluffy.ecs.soton.ac.uk/bequnge/examples/example5d.beq 02:31:40 by which I mean the 4d quiv of Z -- the axis it adds 02:31:40 (char)2(char) 02:31:42 will be 5d 02:31:42 and will up the axis that IT adds 02:31:44 but you can still use (char)1(char) and ^Z to do lower ds 02:32:06 ehird, a variant used by the very "wow"-effect opengl 105-dimension funge bequnge 02:32:06 http://fluffy.ecs.soton.ac.uk/bequnge/screenshots.php 02:32:11 ehird, fails mycology however :P 02:32:28 hm 02:32:29 11 02:32:30 vertical tab 02:32:39 maybe? 02:32:45 -!- Slereah has quit (Read error: 104 (Connection reset by peer)). 02:32:49 ehird, http://fluffy.ecs.soton.ac.uk/bequnge/examples/example5d.beq ? 02:32:58 it is a working way 02:33:32 eh 02:33:35 I don't like that idea 02:33:38 it's impure somehow 02:33:56 hm ok 02:34:02 so vertical tab could work 02:34:19 AnMaster: or 29 group seperator 02:34:50 say: {vertical tab, size of number describing size of numbers of dimension, dimension } 02:34:51 ? 02:35:21 because it may be hard to know how large the number would be 02:35:23 if infinite 02:35:27 or say 02:36:19 Graham's Number 02:36:21 :D 02:36:31 AnMaster: just do 02:36:36 vertical tab NUMBER veritacal tab 02:36:43 ehird, ok could work 02:36:56 ehird, how do you do vertical tab in emacs? 02:37:03 or form feed for that matter 02:37:04 AnMaster: hm \1 is start of heading 02:37:09 maybe something like: 02:37:13 at start of file: 02:37:21 \1DIMENSIONS\n 02:37:21 \1 is valid befunge code 02:37:28 AnMaster: eh what 02:37:29 :| 02:37:32 I mean the ascii char 1 02:37:34 ah ok 02:37:38 right 02:37:39 \1 DIMENSIONS \n 02:37:40 so like 02:37:50 ehird, wtf is the ascii char \1 btw? 02:37:50 '\1', '6', '\n' 02:37:57 AnMaster: http://www.asciitable.com/ 02:37:58 SOH 02:38:03 SOH being? 02:38:08 Start of Heading 02:38:08 goddamn 02:38:12 AnMaster: the byte value of the char!! 02:38:13 and what is that *used* for 02:38:14 ? 02:38:16 never used a programming language?! 02:38:20 AnMaster: uh, who cares 02:38:25 i'll interpret it as "start of header" 02:38:27 ehird, just wondering 02:38:28 and use it for headers 02:38:28 SO 02:38:31 at start of the file: 02:38:33 \1 DIMENSIONS \n 02:38:38 and then later on 02:38:42 \1 INCR \n 02:38:47 when INCR=1 02:38:54 it's an error 02:38:56 same with INCR=2 02:38:58 those make no sense :) 02:38:59 BUT 02:39:06 '\1', '3', '\n' 02:39:09 is also an error. 02:39:11 because there is ^Z 02:39:13 AND FINALLY 02:39:15 "The start of heading (SOH) character was to mark a non-data section of a data stream -- the part of a stream containing addresses and other housekeeping data. The start of text character (STX) marked the end of the header, and the start of the textual part of a stream. The end of text character (ETX) marked the end of the data of a message. A widely used convention is to make the two characters prece 02:39:15 ding ETX a checksum or CRC for error-detection purposes. The end of transmission block character (ETB) was used to indicate the end of a block of data, where data was divided into such blocks for transmission purposes." 02:39:17 '\1', '4', '\n' 02:39:18 from wikipedia 02:39:23 increments the d-4 02:39:27 (d-3 is Z, etc) 02:39:31 so, at start of file 02:39:37 \1, D, \n specifies the dimensions 02:39:38 ehird, so SOH 4 STX IMO 02:39:47 eh 02:39:53 I will think about it 02:39:58 Maybe actually something lightweight 02:40:01 who knows 02:40:04 will sleep over it 02:40:05 ehird, considering that was closed to how it was used :) 02:40:09 originally 02:41:11 lol, took me 3 hours to write my 59 line parser from befunge to a graph :D 02:41:33 perhaps i should close irc. 02:41:58 oklo, what is it? 02:42:18 irc is a chat protocol 02:42:23 no 02:42:25 I mean 02:42:28 the parser 02:42:30 what is it for? 02:42:42 -!- lifthras1ir has quit (brown.freenode.net irc.freenode.net). 02:42:42 AnMaster: eliminates the befunge-93 stack 02:42:47 just parses befunge to a graph from nodes to nodes 02:42:54 ehird: not yet. 02:43:00 interesting 02:43:16 oklo, very interesting, how will you support p however? 02:43:18 bye foir today 02:43:21 AnMaster: he won't 02:43:22 ehird, cya 02:43:25 ehird, night too 02:43:28 -!- ehird has quit ("Konversation terminated!"). 02:43:28 ofc i will 02:43:36 oklo, good for you :) 02:43:44 oklo, but it must run under NX 02:43:50 PaX and such 02:43:57 -!- lifthrasiir has joined. 02:43:58 if p is used on a command, it will just not change the semantics of the code 02:44:01 oklo, so JIT I assume? 02:44:17 oklo, um, it is valid to use p to set a non-command 02:44:19 basically, in this version you will just have a separate fungespace for storing data. 02:44:23 for say storing scratch data 02:44:37 (which in my opinion is much better, in practise) 02:44:38 oklo, and also, invalid instructions should be allowed, and reflect at runtime 02:44:57 oklo, so self modifying won't work? 02:45:02 that's a pitty 02:45:14 not yet, but it's just a matter of reparsing parts 02:45:32 oklo, need to pass b93 part of mycology :) 02:45:46 it can already trivially *detect* when code is modified, and what part of the code changes, it's just i haven't actually looked into how to do the reparsing 02:46:00 because parsing the whole program again would make no sense 02:46:12 but i'll think of something,. 02:46:23 oklo, heh 02:46:31 mycology was your deewiant's test suite? 02:46:33 or what was it 02:46:42 oklo, it's the best test suite around yes 02:46:47 it got a 93-only part 02:46:49 -!- Slereah has joined. 02:47:06 oklo, and what did "my deewiant's" mean? 02:47:12 hehe 02:47:15 ? 02:47:29 oklo, just he is damn useful to ask questions 02:47:33 as he knows befunge well 02:47:35 i was gonna write you test suite, then realized it was deewiant's 02:47:46 *yoru 02:47:49 *your 02:47:51 oklo, indeed, I can't write that complex code 02:47:55 in befunge 02:48:04 i know 02:48:09 * AnMaster wonders why cfunge now hangs at: 02:48:11 Testing fingerprint ROMA... loaded. 02:48:13 :/ 02:48:33 because you said "i would use self-modification in befunge", i assumed you haven't actually used it much 02:48:45 oklo, I used it some yes 02:48:53 because you would've either said "i use it" or "i don't use it, but it's CEWL" otherwise 02:49:08 oklo, but I have used it slightly 02:49:17 how exactly? 02:49:20 most I have written so far have been simplified test cases 02:49:32 oklo, oh with concurrent funge it is very important 02:49:42 hmm... maybe 02:49:57 can you help me get my brain started as to... why? 02:50:06 say: 02:50:07 #vt vectors here p 02:50:07 >< blah 02:50:13 that would form a mutex 02:50:26 so you could make the other ip wait for < to be removed 02:50:33 ah. 02:50:42 okay, i should've seen that 02:50:53 hmm... 02:50:54 oklo, there are loads of other examples, even in non-concurrent funge 02:51:29 i definitely need to look into this a lot more, i want everything that's commonly used to be compiled into something that requires no reparsing, you see. 02:51:46 mutexes should be compiled to something with flags. 02:51:52 oklo, t instruction for concurrency is optional of course 02:51:55 and b98 only 02:51:59 doesn't exist in 93 02:52:07 solving impossible problems is the best <3 02:52:21 oklo, look I could do: 02:52:25 > > 02:52:26 err 02:52:30 > < 02:52:30 or 02:52:32 v 02:52:33 ^ 02:52:36 for mutex 02:52:43 there are many ways to do it 02:53:16 oklo, and of course for storing scratch data, p/s is very useful 02:53:21 err 02:53:24 p/g 02:53:36 well, as i said that will ofc work already 02:53:52 oklo, oh yes another thing: 'vs r 02:53:55 in 98 02:53:57 :) 02:54:02 hmm 02:54:13 wuz that do? 02:54:15 push a v on stack, then set char after s to that, then reflect on r and hit the v 02:54:16 :) 02:54:24 the first time the v won't execute 02:54:27 ah 02:54:29 so you need to reflect once 02:54:33 forgot what "'" is 02:54:45 oklo, hehe, and s is set next char 02:54:51 ' is *get* next 02:55:00 oklo, oh and don't forget sudden x 02:55:02 to jump 02:55:06 hard to handle 02:55:13 hmm, stuff like that will be *very* hard to do without recompiling or interpreting, but i like a challenge 02:55:23 sudden x? 02:55:26 hmm 02:55:31 x = set absolute vector 02:55:38 as in, set delta to a vector 02:55:49 meaning jump to some place in code? 02:55:52 means suddely ip moves in a non-cardinal 02:56:16 set absolute ip position? 02:56:31 or what does "absolute vector" mean? 02:56:32 oklo, not position, but say set delta for instruction pointer to say: x=+5,y-2 02:56:38 as in how it moves 02:56:40 oh 02:56:41 fuck. 02:56:45 delta like in <^v> 02:56:48 :DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD 02:56:49 that is 98 only of course 02:56:56 oklo, 93 doesn't have x 02:57:06 a 93 compiler is easy compared to 98 02:57:16 okay, okay, i won't even aim at 98 then, at first. 02:57:32 oklo, thats good, I did 93 first in cfunge too 02:57:39 can you do random *jumps* in 93? 02:57:44 because that's just as shitty. 02:57:48 oklo, you can do random direction changes 02:57:55 not hard 02:57:58 as in "select random of ^v<>" 02:58:00 with ? 02:58:01 ? 02:58:02 i know 02:58:07 not hard 02:58:13 oklo, but you can't do longer jumps I think 02:58:19 in 98 you can 02:58:21 if you have a constant number of places to jump randomly, it's trivial 02:58:29 oklo, there is # to jump over on of course 02:58:35 one* 02:58:47 if you have a constant number of places to jump randomly, it's trivial 02:58:53 in 98 there is also things like: 5j, will jump forward 5 spaces 02:58:59 and 05-j 02:59:05 jump backwards 5 spaces 02:59:09 much easier than x still 02:59:15 yeah 02:59:30 but still you can't know where the stuff for j comes from 02:59:33 it could be anywhere 02:59:50 like say randomly generated using some instructions with ? 03:00:03 oklo, I got a random number generator somewhere let me look 03:00:21 no need, it's fairly trivial :) 03:00:30 hmm... 03:00:33 oklo, wraps with j 03:00:37 http://rafb.net/p/6Trzmm34.html 03:00:46 lessee 03:00:53 oklo, a friend made it as a test case for my broken j handling when wrapping 03:01:22 oklo, due to use of j it isn't 93 03:01:33 oklo, oh btw ; in 98 is "jump over" as in comment 03:01:38 jump from ; to next ; 03:01:42 in current direction 03:02:07 oklo, can think of some evil using with ; and p to put it there or remove the ; 03:02:11 would be hard to handle 03:02:28 oklo, oh I seen programs that copies themself around fungespace btw 03:02:38 forever 03:02:54 copy from one place to the next and delete old copy and so on 03:03:16 yeah... i'm beginning to see uses for self-modification... 03:03:30 oklo, there are many in befunge 03:03:44 funges was made to be almost impossible to compile 03:03:49 basically i just didn't want to implement it, and decided it's useless. 03:03:59 without giving much thought 03:04:22 hmm 03:04:48 a befunge program looping by quining might be fun 03:04:52 probably many exist 03:05:06 oklo, some ideas: http://quote-egnufeb-quote-greaterthan-colon-hash-comma-underscore-at.info/befunge/#files 03:05:23 oklo, there are a few quines there iirc 03:05:43 Befunge-98 'TURT' fingerprint quine is my favourite, it draws itself :D 03:06:36 oklo, see "troll" programs 03:06:39 for copy and move 03:08:17 -!- Slereah has quit (Read error: 104 (Connection reset by peer)). 03:11:09 heh 03:11:24 oklo, as you can see, quite complex 03:11:50 oklo, if you could manage those without reparsing, I would be impressed 03:11:54 :DD 03:12:01 oklo, some are befunge93 btw 03:12:02 that will be one of my goals for life 03:12:05 so no way around them 03:12:23 * oklo starts a list 03:13:27 TODO before I die: 03:13:27 - make a befunge compiler without an existing program that needs jit compilation 03:13:46 -!- slereah_ has joined. 03:14:03 oklo, good luck 03:14:03 i'll add something easier there, so i won't feel like a loser on my deathbed 03:14:17 TODO before I die: 03:14:17 - make a befunge compiler without an existing program that needs jit compilation 03:14:17 - fuck a dude 03:14:19 :D 03:14:31 lol 03:14:32 oklo, you are female or male? 03:14:33 Interesting list. 03:14:37 and your preference? 03:15:03 slash aslpixplz 03:15:07 male searching for female 03:15:17 age 19, location finland 03:15:19 horny for ya 03:15:21 uh 03:15:23 oklo, so why a dude? 03:15:24 Hahaha 03:15:25 :P 03:15:27 LMAO 03:15:27 AnMaster wants some oklolove 03:15:33 slereah_, I don't 03:15:36 - fuck a dude 03:15:42 was just wondering about that 03:15:52 Stop your lies 03:15:58 ;P 03:16:11 well, it was a joke, but who says everything on that list should be something i *want* to do. 03:16:45 Soooooo, if it's not something you want to do per se, then presumably its your claim that homosexual sex is one of those necessary life experiences? :P 03:16:47 Am I on that list? 03:17:12 GregorR: sure :D 03:17:30 slereah_: yes, - slereah is the next line. 03:17:38 "- slereah" 03:17:48 :o 03:17:53 Hahahaha 03:18:59 "- kill someone"? 03:19:04 hmm 03:19:09 oklo, so you given up on befunge compiler or? 03:19:13 this list may not be such a great idea after all. 03:19:15 AnMaster: no 03:19:18 Become an ABORTIONIST 03:19:25 *SCATHING POLITICAL COMMENT* 03:19:25 oklo, but one without JIT? 03:19:31 it's just irc gets all my attention when i'm not in my coding mood. 03:19:39 if something happens there 03:20:03 AnMaster: well, i don't even have the possibility of jit in my current one 03:20:04 oklo, basically it is impossible to design a befunge compiler that does NOT need jit 03:20:15 sure for most common cases you can do reparsing/ijit 03:20:17 jit* 03:20:17 it's self-modification i'm not implementing right away. 03:20:37 or even some optimizing it to other ways 03:20:40 AnMaster: ofc it isn't possible, but it is possible to do for programs that don't explicitly prevent it. 03:21:10 oklo, indeed, if it doesn't execute the instruction, you don't need to reparse it 03:21:28 explicit prevention would be actually using the same algo to do the opposite of what it expects, well, you must know the halting problem. 03:21:40 oklo, wait, it may be possible for 93, just compile every 255 * 80 * 25 possible program in? 03:21:46 each an optimized version :D 03:21:55 actually larger 03:22:17 :) 03:22:20 well 03:22:25 256^(80*25) 03:22:31 but you were clse 03:22:33 *close 03:22:58 not much difference between 256^(80*25) and 255*(80*25) 03:23:00 80*25 = the B grid? 03:23:00 argh TI83+ says "out of range" on that one 03:23:38 * AnMaster tries maxima 03:23:38 i would paste it but it's two pages. 03:23:46 maxima locks up? 03:23:59 :/ 03:24:21 bc is faster 03:24:26 4817 digits 03:24:33 hmm 03:24:36 yep 03:24:37 that's not that much 03:24:39 too large 03:24:47 oklo, what about 32-bit? 03:24:58 :DDDDDDDDDDDDDDDDDDDDDD 03:25:17 19833 is what wc -c says, but well there are newlines in bc output 03:25:19 oh 03:25:20 right 03:25:28 just 4 times more digits 03:25:44 60446271881373363749686324996264600587316128857473138638394640922597\ 03:25:44 35662354247400297810424791071242476818152196097844289638570097624044\ 03:25:46 (256^n)^(80*24) = 256^(n*80*24) 03:25:48 output looks like that 03:26:05 nice of bc 03:26:07 what output? 03:26:15 echo "(2^32)^(80*25)" | bc 03:26:17 that output 03:26:18 :P 03:26:52 i don't know bc, just wrote len(str((256**4)**(80*24))) in python 03:27:03 * AnMaster don't know python 03:27:14 >>> len(str((256**4)**(80*25))) 03:27:14 19266 03:27:25 It be the length of the string defined by 03:27:45 AnMaster: you can read that if you know C 03:27:51 ** is exponentiation 03:27:51 oklo, I can yes 03:28:00 well, if you know *anything* really 03:28:01 but I don't like python 03:28:16 who does, it's just so goddamn nice to use <3 03:28:18 But, python is awesome! 03:28:31 You don't even have to know how to program! 03:28:33 oklo, and in C you would use snprintf to convert to string though XD 03:28:46 Hell, I barely can program and I wrote the Love Machine 9000 on it! 03:28:53 AnMaster: i'd use itoa 03:29:53 AnMaster: what languages do you use? 03:30:01 i wish i was an asm dude 03:30:06 oklo, C, bash 03:30:07 :D 03:30:07 but i just don't have the penis for that 03:30:18 oklo, some misc other things like awk too 03:30:43 what' 03:30:45 ... 03:30:53 awk ~ bash 03:30:54 elaborate. 03:30:58 awk != bash 03:31:00 very different 03:31:06 -!- calamari has joined. 03:31:07 good, good, continue. 03:31:12 oklo, got to sleep 03:31:21 "go to sleep"? 03:31:26 oklo, try man bash and man awk 03:31:27 :P 03:31:30 :D 03:31:36 i'm on vista now 03:31:43 get a real OS? 03:31:51 omg never! 03:31:53 :DDDDDDDDDDD 03:31:59 Get ESOS! 03:32:07 hi 03:32:12 hi callie 03:32:22 callie? 03:32:25 yes 03:32:31 haha ok 03:32:34 :D 03:32:37 slereah_, ? 03:32:41 i'm a bit goofy today, sorry 03:32:48 slereah_, ESOS? 03:32:49 * oklo is so whacky 03:32:51 The legendary esoteric OS! 03:32:58 That no one will ever write 03:33:03 slereah_, hah 03:33:10 slereah_, link for specs? 03:33:12 :D 03:33:22 -!- shinku has joined. 03:33:22 no I won't 03:33:24 What, writing specs? 03:33:26 someone do the imaginary pocket thing again! 03:33:28 People won't go that far! 03:33:32 that was so much fun 03:33:36 slereah_, just wondering how far it got 03:33:42 I dunno. 03:33:53 I think it was the "talking about it" phase. 03:34:22 it has been discussed many times before slereah_ even existed 03:34:33 unless slereah_ existed before me, dunno 03:34:42 tell me about it 03:34:46 what would it be? 03:34:50 written in befunge? 03:34:56 or what would the cool thing be 03:35:06 something about kernel being written in brainfuck 03:35:12 ah riht 03:35:15 right* 03:35:21 GregorR once said something like "i'll go write it ->", i've been waiting since 03:35:43 because at that point, i considered GregorR a god 03:35:47 slereah_, btw about python: http://xkcd.com/353/ 03:35:56 I know AnMaster. 03:36:01 It's pretty much that! 03:36:03 nowadays i know so many people better than me i don't deal out that many god positions 03:36:27 slereah_, "sampled everything in the medicine cabinet" yes 03:36:37 hmm, i have the graph, let's do something with it 03:36:59 Stop your liiiies 03:37:18 The only thing I don't like that much about Python is the mandatory indentation. 03:37:25 the second step would be splitting it into "goto domains", meaning i have to find all loops, and split code between all goto clauses and labels 03:37:33 slereah_, that is the single thing I like about it 03:37:36 I like my end programs to look like goddamn cubes. 03:37:54 http://membres.lycos.fr/bewulf/Russell/TTT3.4.c 03:37:55 :D 03:38:01 from future import __braces__ in case someone hasn't seennit 03:38:09 slereah_, your mad 03:38:15 you're* 03:38:18 or whatever 03:38:32 i never use that much shitespace. 03:38:43 " && ", wtf is that about 03:38:45 :D 03:38:57 oklo, "from future" lol 03:39:05 slereah_, that code is 1) unmaintainable 2) unreadable 3) a mess 03:39:06 lol 03:39:13 AnMaster: I know :D 03:39:14 AnMaster: from __future__ import braces ofc 03:39:19 I also removed all strings. 03:39:27 All characters are represented as integers. 03:39:29 oklo, oh? 03:39:46 slereah_, what does it do 03:39:50 Try it! 03:39:52 >>> from __future__ import braces 03:39:52 SyntaxError: not a chance (, line 1) 03:39:54 sorry 03:39:58 oklo, I'm not insane 03:40:20 oklo, hah. an easter egg 03:40:24 kinda. 03:40:39 Some guy had a programming assignment. The restrictino on that assignment were fucking stupid. 03:40:43 So I did this 03:40:46 oklo, interesting: SyntaxError: future feature makethiswork is not defined 03:40:52 wtf 03:41:27 what's interesting about that? 03:41:37 oklo, what does __future__ contain? 03:41:50 stuff that will be standard in the future, i guess 03:41:52 THE FUTURE 03:41:56 but i don't know anything, i just use it 03:41:59 oklo, I see 03:42:17 oklo, what thinks can you import from it 03:42:30 Flying cars. 03:42:35 Also, anti-gravity 03:43:19 -_- 03:43:42 AnMaster: don't remember any. 03:44:05 i just use what i have :-) 03:46:04 wtf, third time "today" i need a topological sort. 03:46:27 "today" as in this period of being awake, there really should be a word for that 03:46:55 night 03:47:15 i'm going to call that "perium" from period / peruneum 03:47:18 *perineum 03:47:28 the latter is just for fun 03:49:00 -!- GregorR-L has quit (Read error: 113 (No route to host)). 03:56:27 hmm... 03:56:54 it seems gotos+rpn isn't *that* trivial to compile to python 04:40:52 -!- atsampso1 has joined. 04:47:29 -!- atsampson has quit (Connection timed out). 05:03:40 -!- shinku has quit (Read error: 113 (No route to host)). 05:10:01 oklo: lol 05:10:13 hint: you don't need any gotos 05:10:57 use CPS! 05:12:18 i want to do this with while loops. 05:12:26 and breaks <3 05:12:29 and continues <3 05:12:41 and boolean flags! 05:12:49 awesome. 05:13:18 right now, i'm writing small specs for the two intermediate languages i invented for this :D 05:22:16 Well, G'night all 05:22:20 -!- Sgeo has quit ("Ex-Chat"). 05:40:12 http://www.vjn.fi/pb/p423454326.txt <<< see "Problem:" 05:40:55 i know it's a confusing spec, i only like designing languages, not explaining them :P 05:41:06 well, two confusing specs 05:41:23 loopit is kinda pretty 05:43:04 basically, this is the problem of compiling befunge to python, only removing the possibility of using something like interpretation or functions. 05:43:37 i'll tackle that tomorrow, right now i need to take a walk or something -> 05:44:38 tried to compile if c; a; if d; b; if e; c; d; e; if a; if b; if c; by hand, it's fairly hard 05:45:24 lament: what did you mean i don't need any gotos? i don't need gotos to compile gotos+rpn to python? 05:45:37 or that i don't need gotos to compile befunge to python? 05:45:45 i don't need them as an intermediate form? 05:45:50 yeah 05:46:13 i'm not that explicitly doing so, i just happen to have the graph representing all possible ip movements. 05:46:24 it's basically a program with gotos 05:46:57 do you happen to know a trivial way to convert that to a bunch of whiles, ifs, breaks and continues? 05:47:16 i have a verrrry complicated way :P 05:49:35 lament: did you read my specs? :D 05:49:54 they are like, hardcore 05:52:20 sleeps -> 05:59:10 * lament proceeds to write a stupid threaded befunge93-scheme compiler 06:13:23 -!- GregorR-L has joined. 06:15:30 -!- GregorR-L has quit (Client Quit). 06:20:17 -!- BlackMeph has joined. 06:23:41 -!- BlackMeph has quit (Client Quit). 06:24:03 -!- BlackMeph has joined. 06:24:47 -!- BlackMeph has quit (Client Quit). 06:28:11 bah, scheme is annoying, it doesn't have slime 06:31:26 ...or hashtables 06:35:48 -!- BMeph has quit (Read error: 110 (Connection timed out)). 07:06:49 damn, my compiler looks less and less like a compiler and more and more like an interpreter. 07:16:34 befunge will do that to you 07:16:58 -!- calamari has quit ("Leaving"). 07:17:08 ooh, i got a _really_ stupid idea! 07:17:29 wow this will be retarded. 07:20:03 wow i'm like the genius of retarded. 07:20:59 -!- slereah__ has joined. 07:21:19 -!- slereah_ has quit (Read error: 104 (Connection reset by peer)). 07:22:56 -!- atsampso1 has quit (brown.freenode.net irc.freenode.net). 07:22:56 -!- olsner has quit (brown.freenode.net irc.freenode.net). 07:22:56 -!- oklo has quit (brown.freenode.net irc.freenode.net). 07:23:19 -!- atsampso1 has joined. 07:23:19 -!- olsner has joined. 07:23:19 -!- oklo has joined. 07:29:23 -!- Deformati has quit (brown.freenode.net irc.freenode.net). 07:29:23 -!- Quendus has quit (brown.freenode.net irc.freenode.net). 07:29:23 -!- whice has quit (brown.freenode.net irc.freenode.net). 07:29:23 -!- GregorR has quit (brown.freenode.net irc.freenode.net). 07:31:24 -!- Def has joined. 07:31:24 -!- Deformati has joined. 07:31:24 -!- Quendus has joined. 07:31:24 -!- whice has joined. 07:31:24 -!- GregorR has joined. 07:32:49 -!- Def has quit (Read error: 104 (Connection reset by peer)). 07:33:13 -!- Def has joined. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:02:02 -!- dbc has quit (Read error: 110 (Connection timed out)). 08:12:35 -!- dbc has joined. 09:42:53 -!- olsner has quit ("Leaving"). 09:46:43 -!- slereah__ has quit (Read error: 104 (Connection reset by peer)). 09:47:03 -!- slereah__ has joined. 09:50:02 -!- slereah__ has quit (Read error: 104 (Connection reset by peer)). 10:08:50 -!- slereah__ has joined. 10:11:36 lament, what did you do? 10:15:48 -!- faxathisia has joined. 11:46:52 -!- jix has joined. 11:57:23 -!- jix has quit (Nick collision from services.). 11:57:33 -!- jix has joined. 12:16:06 Deewiant, MODU NULL REFC ROMA implemented and working 12:17:08 -!- Slereah has joined. 12:17:28 -!- slereah__ has quit (Read error: 104 (Connection reset by peer)). 12:29:43 -!- jix has quit (Nick collision from services.). 12:29:53 -!- jix has joined. 12:42:44 -!- jix has quit (Nick collision from services.). 12:42:54 -!- jix has joined. 12:50:14 -!- jix has quit (Nick collision from services.). 12:50:24 -!- jix has joined. 13:13:05 -!- sebbu has joined. 13:46:12 -!- jix has quit ("CommandQ"). 13:47:49 -!- jix has joined. 14:30:27 -!- faxathisia has quit (Read error: 113 (No route to host)). 14:30:42 -!- faxathisia has joined. 14:35:57 -!- faxathisia has set topic: http://tunes.org/~nef/logs/esoteric/ - From Brainfuck to extending tetration to the reals.. 14:47:20 -!- Corun has joined. 15:13:21 faxathisia, tetration? 15:13:41 I have no idea 15:14:03 pikhq hopefully knows 15:14:21 (wiki says it's an iterated exponential) 15:14:29 I see 15:15:05 wwwhat 15:15:16 http://upload.wikimedia.org/wikipedia/en/f/f5/Tetration_escape.gif 15:15:31 don't they teach tetration in like the first grade 15:15:33 anyway cfunge now does mycology (including the fingerprints it implement, just four of them) very fast, in average: real 0m0.096s 15:15:35 :D 15:15:53 specially compiled though: 15:15:55 gcc -march=k8 -msse3 -std=c99 -O3 -fprofile-use -fno-ident -fvisibility=hidden -freorder-functions -funsafe-loop-optimizations -Wl,-O1,--hash-style=gnu,--as-needed -DNDEBUG -Wall -Wextra -Wunreachable-code -Wunused-function -Wunused-label -Wunused-value -Wunused-variable -Winline -Wunsafe-loop-optimizations -pedantic -fwhole-program -D_POSIX_C_SOURCE=200112L -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDE 15:15:55 D -DUSE32 -o cfunge.opt -Isrc -combine lib/libghthash/*.c src/*.c src/funge-space/b98/funge-space.c src/instructions/*.c src/fingerprints/*.c src/fingerprints/*/*.c -lgc -lcord 15:16:00 it should be taught as young as possible, cuz it's so cool 15:16:09 they should teach math in schools :D 15:16:16 faxathisia, looks like a fractal? 15:16:43 i like the crab in the middle 15:16:51 not Mandelbrot though? some other one? 15:17:04 looks like Satan to me 15:17:07 and the centipede turtle in the right middle 15:17:12 or is it centipurdle 15:17:46 -!- oklo has changed nick to oklofom. 15:18:04 i need to make a randomizer for my suffix 15:18:11 -!- oklofom has changed nick to oklofix. 15:18:42 oklofix, code it in befunge :) 15:18:58 what was that tetration escape btw? 15:19:05 AnMaster: currently playing with thue 15:19:13 thue is cool 15:19:18 oklofix, oh? gave up on compiler for befunge? 15:19:20 It's just markov model isn't it? 15:19:26 markov algorithm* 15:19:28 AnMaster: no, but i'm delaying it 15:19:32 hah ok 15:19:33 markov algorithm is TC anyway 15:19:39 and it feels like Thue 15:19:57 AnMaster: http://www.vjn.fi/pb/p423454326.txt 15:20:05 see "Problem" 15:20:14 oklofix, DNS failure 15:20:17 :o 15:20:27 oklofix, that is DNS timeout 15:20:38 is there a proof you can't have a superturing computer? 15:20:42 lol something wrong with the Provider 15:20:50 oklofix, ;; connection timed out; no servers could be reached 15:20:53 hyperturning whatever 15:21:04 faxathisia, hm? what would it do? 15:21:04 turing** 15:21:07 I don't know :S 15:21:14 faxathisia, being able to solve halting problem maybe? 15:21:24 AnMaster: happens rarely, but seems the page is down 15:21:26 i'll repaste 15:21:32 run some small class of programs not computable on a turing machine 15:21:34 oklofix, rafb is good 15:21:40 I don't care what those programs are 15:21:55 faxathisia, tell me if you find out :) 15:22:11 faxathisia, but, would quantum computers be turing or superturing? 15:22:14 I don't know 15:22:24 I guess they are still turing 15:22:35 http://pastebin.ca/942392 15:22:36 just that you can write algorithms in new ways 15:22:47 faxathisia, and can do some stuff very fast 15:22:47 AnMaster: pb.vjn.fi is better 15:23:17 i heard something about them possibly being superturing in some sense 15:23:20 oklofix, I may make some program that puts pastes on my gopher server 15:23:24 just to annoy ppl :D 15:23:32 gopher o_o 15:23:40 AnMaster: did you look? 15:23:47 faxathisia, just run it to shock ppl on irc :P 15:23:51 oklofix, looking 15:24:10 the analogies are, loopit is a subset of python, jumpit is the graph form of befunge i'm trying to compile 15:24:32 oklofix, Damnitall? 15:24:38 ;P 15:24:44 huh? 15:24:56 are you suggesting the name for my next language? 15:25:03 when it doesn't work it isn't jumpit or loopit, but damnit 15:25:08 or even damnitall 15:25:16 :D 15:25:17 ;P 15:25:44 the problem is, almost every program is legal in both those langs 15:26:01 oh? the problem being "almost"? 15:26:12 wwhat? 15:26:17 er? 15:26:25 i just specified a label cannot start with loop"" 15:26:29 *"loop" 15:26:33 ah right 15:26:38 so "loop " would not be any clause. 15:26:46 oklofix, and why is it a problem that "almost every program is legal in both those langs"? 15:26:48 because it's not a label, and it's not a loop clause 15:26:57 is the problem 1) too many are or 2) there are those that aren't? 15:26:58 AnMaster: problem as in Damnit makes not much sense! 15:27:16 oklofix, heh 15:27:17 not a serious problem, the serious problem is the one on the last line of the paste 15:27:29 oklofix, yes read that line, not sure I got it 15:27:34 Compile Jumpit(M = "Output label", N = "Jump if random(0..1)<0.5") to Loopit with the same parameters. 15:27:49 the parametrization is just for fun :D 15:28:19 you mean like: "label foo; if (random() % 2) goto foo; 15:28:20 ? 15:28:23 basically, i'm just putting in an M param for which you cannot just skip the compilation, because you can see program execution from the output 15:28:36 then a do while loop? 15:28:48 N is chosen to be a random choise so that you couldn't just always take the first argument of if 15:29:01 ...a do while loop? 15:29:07 do { 15:29:08 you cannot do that with that N 15:29:10 whatever 15:29:17 } while (random() % 2); 15:29:18 ? 15:29:33 or are you talking about something else? 15:29:44 do { foo; } while(random) would be foo; if foo 15:30:12 oklofix, I don't get the problem, can you express it in C? 15:30:24 while(random) { foo; } bar; would be if bar; foo if foo; bar 15:30:36 *while(random) { foo; } bar; would be if bar; foo; if foo; bar 15:30:57 "if label" means "if ( condition given by N ) jump to label;" 15:31:04 in Jumpit 15:31:24 "label" just marks a label, and has the side-effect given by M 15:31:27 that's all about jumpit 15:31:40 mhm 15:31:47 you can make it tc for some choises of M and N, most likely, but that is not the point here 15:32:00 we are basically compiling gotos to loops. 15:32:06 yes right 15:32:13 at least i tried to create languages where that must be done 15:33:42 do { foo } while(random); in Loopit would be loop; \t foo; \t if *; \t\t continue; \t break 15:33:45 i tihnk 15:33:46 *think 15:35:03 i need to go now, today is thue-day, i'll prolly tackle that problem next week 15:35:07 and kill it. 15:35:08 -!- jix has quit ("CommandQ"). 15:35:09 -> 15:35:41 I can't figure out how to code this without using streams/lazy-lists :S 15:35:54 faxathisia, this = ? 15:36:08 Prolog interpreter in a procedural language 15:36:13 (scheme) 15:36:17 (at the moment) 15:36:18 ok *backs away* 15:36:22 ? 15:36:35 prolog and scheme are both over my head :P 15:36:40 hardly 15:36:50 bbl 15:36:56 scheme is just C but you put the bracket before the function name 16:22:40 Deewiant, UNDEF: the empty string wrapped around the edge of space >' v>1> \v vv v\ >1>v > wtf? 16:22:48 * AnMaster was optimizing wrapping 16:22:53 it works until that happens now 16:23:09 and then an infinite loop with that message 16:24:59 well then I guess your optimizations are focked :-P 16:25:07 Deewiant, tell me what may cause that? 16:25:22 ie what are you testing 16:25:51 it puts a " at the eastmost location and westmost location in space, on the same line of course 16:25:56 and then goes there 16:25:59 hm 16:26:34 if I had to guess, I'd say the westmost " isn't hit 16:26:46 because it's at X coordinate -10 or so 16:26:58 aha 16:27:16 and yeah, that's probably what happens 16:27:24 because then the next " is immediately followed by a r 16:27:41 v>1> \v v"r 16:35:09 Deewiant, btw you may want to look at how I did fingerprints, I think I should be able to do a binary search on fingerprint for finding what one to load, not worth it yet but when the list of supported ones get larger it may be :D 16:35:36 binary search on fingerprints? why? 16:35:49 the list of supported ones: 16:35:50 if you're given "NULL" then you know NULL is the one to load :-P 16:35:56 static const ImplementedFingerprintEntry ImplementedFingerprints[] = { 16:35:57 // MODU - Modulo Arithmetic 16:35:57 { .fprint = 0x4d4f4455, .loader = &FingerMODUload, .opcodes = "MRU" }, 16:35:57 // NULL 16:35:57 { .fprint = 0x4e554c4c, .loader = &FingerNULLload, .opcodes = "ABCDEFGHIJKLMNOPQRSTUVXYZ" }, 16:35:58 like that 16:36:19 as they are sorted it should be easy to find the right one 16:36:19 :D 16:37:21 Deewiant, anyway I notice no difference in speed with and without fingerprints, even though I use function pointers 16:37:47 about 0.1 seconds in either case, no significant difference 16:38:02 of course complex fingerprints will be slower 16:38:51 Deewiant, src/fingerprints/manager.c :D 16:39:07 the .opcodes is another optimization? 16:39:20 not really, it is just a way to know what ones to pop 16:39:37 when unloading 16:39:38 I just loop from A-Z and check which ones aren't null :-P 16:39:40 only used then 16:39:50 hm? 16:40:02 each extension doesn't export any array of them or such 16:40:35 I use a global hash table of strings to arrays of function pointers 16:40:36 see src/fingerprints/MODU/MODU.c for example (yes I based it on your code) 16:40:48 Deewiant, I thought they were per-IP? hm? 16:41:02 one global one which is used for loading/unloading 16:41:07 ah right 16:41:10 and then IP just has 26 stacks 16:41:22 or something like that. 16:41:31 Deewiant, yes but I thought fingerprints was local to the IP? 16:41:38 as in what ones are loaded 16:41:40 like said, IP has 26 stacks. 16:41:45 ah right 16:41:46 :) 16:50:59 -!- Sgeo has joined. 16:51:39 Sometimes, I feel like I'm aleph_null, intellectually I mean. I'm smarter than almost everyone around me IRL, but there are a lot of people in here much smarter than me 16:51:51 heh 16:52:26 Sgeo, that's why I go on IRC.. almost everyone is smarter than me :D 16:55:06 -!- calamari has joined. 16:55:49 hi calamari 16:56:08 hi Sgeo.. having fun with your project? 16:56:30 Haven't touched it in a while, will work on it soon hopefully 17:05:06 -!- calamari has quit ("Leaving"). 17:10:31 Deewiant, I'm documenting my code now, to make it easier to understand :) 17:20:02 Deewiant, a question: why is the null fingerprint called: null_.d and not just null.d? 17:20:13 because null is a keyword, doesn't work 17:20:21 Deewiant, in D? 17:20:23 yep 17:20:25 ah 17:20:38 well I could create a file called if.c and it would compile 17:20:50 of course a variable called if wouldn't work 17:21:09 yes, because C doesn't have a module system, the preprocessor handles includes and such 17:24:29 indeed 17:33:33 Deewiant, don't claim you aren't a performance hunter too 17:33:50 your MODU fingerprint does some nice hackish abs optimizing :P 17:34:12 // http://graphics.stanford.edu/~seander/bithacks.html#IntegerAbs 17:34:12 auto mask = y >> (typeof(y).sizeof*8 - 1); 17:34:12 r += (y + mask) ^ mask; 17:42:33 I was probably reading the page at the time :-) 17:48:04 and hmm, that code is pretty stupid actually 17:53:22 or no, it is right after all. 17:53:57 it gives correct result 17:54:01 -!- timotiis has joined. 17:54:13 but I wonder if the gcc abs() builtin is better or not 17:54:55 Deewiant, anyway is it really faster? 17:55:15 I think that's what the gcc abs uses internally 17:55:30 just not the DMD abs, which is probably why it's there :-P 17:55:41 and no, the difference is probably negligible 17:55:51 AnMaster: consider that that function is called only once in all of mycology 17:56:08 Deewiant, indeed 17:56:18 so mycology isn't a good test for it 17:59:50 so compiling befunge in a non-stupid way is difficult. 18:00:29 lament, indeed? 18:00:38 -!- ais523 has joined. 18:00:38 what about that? 18:00:41 we know that 18:02:37 from which i conclude 18:02:47 that i should compile it in a stupid way instead 18:02:54 err 18:03:07 forsooth 18:04:28 -!- Corun has quit ("Leaving"). 18:09:29 Deewiant, I tried a simple loop for abs, and well it seems even with -O0 gcc optimizes most calls to abs away 18:09:51 yes, benchmarking isn't easy :-) 18:09:52 AnMaster: are you sure that abs isn't a macro in the header file? 18:10:01 ais523, I checked that 18:10:08 it is a __builtin__ 18:10:10 AnMaster: what I suggest is you just write two functions, one which uses that and one which does return abs(x) 18:10:18 AnMaster: and compare the asm of what they result in with -O3 18:10:38 good idea 18:15:15 Deewiant, different code 18:15:38 how different 18:16:26 not much 18:16:59 * AnMaster pastebins 18:17:20 http://rafb.net/p/TjTh3R65.html 18:19:17 Deewiant, doother is your variant 18:19:40 have a look at http://graphics.stanford.edu/~seander/bithacks.html#IntegerAbs and try both variants 18:20:50 the patented one? 18:21:05 ye 18:21:18 because from the asm, it looks like that's what GCC's using 18:21:34 with an extra mov for some reason 18:21:36 Deewiant, gcc abs is exactly the same as the patented one 18:21:47 thought so 18:21:55 wonder why there's an extra mov 18:21:58 Deewiant, eh both moves exist in both? 18:22:05 as in first and last move 18:22:15 doabs: mov sar xor sub mov 18:22:20 doother: mov sar add xor 18:22:35 and dopatent: mov sar xor sub mov 18:22:49 yeah, so I'm wondering why doabs/dopatent has an extra mov 18:23:08 Deewiant, may depend on system? 18:23:31 Deewiant, http://rafb.net/p/l08WdB82.html 18:23:38 looks like it needs the return value in EDI but it does the math in EAX 18:24:36 hmm, well whatever 18:25:00 Deewiant, no clue about that 18:25:05 AnMaster: I think if you do int donaive(int i) { return i < 0 ? -i : i; } it'll compile to the same as the others, too 18:25:17 I'll try 18:25:53 Deewiant, it does indeed 18:26:06 * AnMaster tries with 64-bit ints to see what happens then 18:26:09 which is why, if using GCC, it doesn't really matter what you do ;-) 18:27:13 Deewiant, with int64 they differ 18:27:39 AnMaster: compiling for your architecture? is it using %rax and co? 18:27:42 http://rafb.net/p/2znfY915.html 18:27:45 :) 18:27:57 Deewiant, I mean, donaive differs from abs then 18:28:51 well, of course 18:28:55 oh? 18:28:56 AnMaster: abs doesn't use 64-bit ints 18:29:02 Deewiant, aha 18:29:04 I see 18:29:10 it's int abs(int) 18:29:15 labs 18:29:22 yep, use that one 18:29:32 and it should look the same again 18:29:49 they do yes 18:30:00 gotta be careful with implicit conversions :-) 18:30:19 yes -Wall or something would have told me, if I had used it 18:30:35 probably 18:30:38 anyhoo, sauna -> 18:30:54 Deewiant, -fverbose-asm is nice 19:16:30 -!- Def has changed nick to Deformative. 19:48:24 -!- whice has quit (Read error: 113 (No route to host)). 19:49:02 * ais523 just came across this PDF: http://www.research.att.com/~bs/whitespace98.pdf 19:49:20 I think it's an old April Fool's joke, but they managed to define a C++-equivalent esolang at the same time 19:50:26 haha 19:50:29 that's horrible 19:53:59 Deewiant, there? BAD: G gets like g 19:54:05 how is ORTH get different? 19:54:30 -!- ais523 has quit ("going home"). 19:55:20 I think the param order was flipped or something 19:55:37 just google it, the ORTH specs are online 19:55:55 -!- oerjan has joined. 19:56:08 ah 19:57:06 noerjan 19:57:09 (no=hi) 19:57:26 Cannot test S reliably. If this line begins with "GOOD: ", it worked. 19:57:29 heh 19:57:36 Deewiant, so now newline after :) 19:58:21 evenlessgeo 19:59:23 Deewiant, one thing you don't test: ORTH instruction that set absolute x and y coordinates of ip, how do they work with wrapping? 20:01:05 if you're teleported outside of space then you wrap back into normal space, no? 20:01:23 Deewiant, depends, there are issues 20:01:32 even with your algorithms 20:01:55 if say, delta is as after a ^, then you teleport sidways, so there is no program above or below 20:01:58 then what should happen? 20:02:04 infinite loop, of course 20:02:19 Deewiant, in wrapping function yes 20:02:25 if you want to be smart you can check for that and reflect 20:02:31 at last that's what will happen for me 20:02:40 but IMHO that's just like writing for (;;) {} :-P 20:02:46 Deewiant, heh ok 20:02:49 "what did you expect?" 20:02:53 indeed 20:03:02 What's this about "GOOD: "? what langyage? 20:03:13 Sgeo, test suite for befunge98 20:03:18 * AnMaster is writing cfunge 20:03:35 http://rage.kuonet.org/~anmaster/cfunge/ 20:03:40 Sgeo: http://iki.fi/deewiant/befunge/mycology.html 20:03:45 the mycology test suite: http://users.tkk.fi/~mniemenm/befunge/mycology.html 20:03:53 Deewiant, err what? 20:03:54 * Sgeo stole some concept from befunge98 for use in PSOX iirc 20:04:03 different urls? 20:04:10 AnMaster: like it says in the corner... "please use this permalink" 20:04:25 isn't PSOX that network extensions stuff for brainfuck? 20:04:35 network extensions and file stuff 20:04:40 and other stuff can be added on easily 20:04:43 someone said it was crappyly coded, ehird I think 20:04:49 was weeks ago 20:04:49 -!- RedDak has joined. 20:04:49 of course, in IRC, it probably doesn't matter unless you're browsing the logs months later or something. 20:04:59 and it's not just for Brainfuck 20:05:13 Deewiant, I see 20:05:46 Deewiant, that's yet another url: "http://iki.fi/matti.niemenmaa/befunge/mycology.html" 20:06:29 Deewiant, anyway I pushed my ORTH extension, again reverse engineering your code 20:08:10 * AnMaster ponders making an extension for IMAP, (as in email) 20:08:22 just to mess up with IMAP as in instruction remapping :D 20:08:40 Deewiant, what do you think eh? 20:09:48 Deewiant, one thing, about REFC: 20:09:50 UNDEF: 12R34R56R pushed the scalars [ 0 1 2 ] 20:09:52 what is that about? 20:12:41 $ time ./cfunge.opt ~/bashfunge/trunk/mycology/mycology.b98 > /dev/null 20:12:41 real 0m0.096s 20:12:41 user 0m0.075s 20:12:41 sys 0m0.016s 20:12:42 Deewiant, :D 20:12:51 and that is with extensions 20:14:58 AnMaster: you implemented REFC, you should know :-P 20:15:23 Deewiant, yes but what it is trying to tell me? 20:15:34 nothing really 20:15:34 what series of numbers will returned or what? 20:15:54 I think it may come up with a BAD if two or more are the same, i.e. [ 0 1 0 ] or somethingh 20:15:58 s/h$// 20:16:05 aha 20:16:13 but no, it really doesn't matter 20:16:17 if the rest are GOOD 20:18:49 -!- oklofix has quit. 20:18:52 hm I think mine may return a different value if you try to reference it again 20:18:56 the same cell I mean 20:19:01 * AnMaster looks 20:19:13 both values will work 20:19:23 Deewiant, is it supposed to be like that? 20:19:25 you mean 12R 12R? 20:19:44 or what? 20:19:44 Deewiant, yep, will return 1 and then 2, both 1 and 2 will however point to the same cell 20:20:11 doesn't matter I guess 20:21:09 ok (potential memory leak though) 20:21:09 REFC is a bit annoying though, because it's always a memory leak 20:21:09 well if anyone complains I'll fix it :) 20:21:14 Deewiant, indeed 20:21:22 -!- ehird has joined. 20:21:23 you can't even garbage collect it 20:21:25 there's no defined way of removing old cells 20:21:31 Deewiant, exactly 20:21:39 ooh 20:21:41 what did i miss 20:21:52 ehird, that cfunge now does several fingerprints :) 20:21:54 -!- ehird has set topic: http://ircbrowse.com/cdates.html?channel=esoteric - From Brainfuck to extending tetration to the reals.. 20:22:00 meh 20:22:04 ehird, what? 20:22:05 ehird: the REFC fingerprint sucks because no matter how it's used, it creates memory leaks. 20:22:08 fungeh will be so superior 20:22:09 :D 20:22:13 Deewiant: refc=refcount? 20:22:15 ehird, that's a nice name 20:22:22 "referenced cells extension" 20:22:36 ehird, what handprint? FFUN? FUNH? 20:22:48 someone said it was crappyly coded, ehird I think 20:22:50 you bet :D 20:22:55 AnMaster: FGEH 20:22:57 i guess 20:23:01 ehird, interesting 20:23:08 it is pronounced 'fung-ehh' 20:23:10 or FEH? :-P 20:23:11 like 'fungy' 20:23:11 tell me when it's done 20:23:13 but without the ee 20:23:13 :p 20:23:45 ehird, anyway even if it is superior, I can make mine better 20:23:56 always possible 20:23:59 AnMaster: i care so much 20:24:00 :| 20:24:05 anyhoo, what does REFC do? 20:24:12 ehird, it does madness 20:24:19 allows you to reference a pair of cells with one value 20:24:20 ehird, like pointers to cells 20:24:28 so essentially what you do is you grow an array which contains pairs 20:24:35 yep 20:24:41 and you can't ever remove them 20:24:46 and give indices to the befunge program, with which it can access the array 20:24:49 there is no instruction for that 20:25:02 and hence the array just grows and grows until the program end. 20:25:03 so it's always a memory leak 20:25:07 hmm 20:25:09 from my todo: 20:25:11 -!- RedDak has quit (Remote closed the connection). 20:25:12 - FungeSpace is a hash table whose keys are vectors of length N where 20:25:12 N is the dimension. 20:25:18 i will really have to work out how to elegantly do that 20:25:19 :| 20:25:27 ehird, good luck :D 20:25:33 I think you can do it 20:25:37 bignum-lengthed vectors? aleph-null-funge? :-P 20:25:50 Deewiant, why not aleph-one? 20:25:51 Deewiant: BF_word 20:25:56 which is int32_t 20:26:04 Deewiant: AnMaster: you guys just have to support a few dimensions you have it easy 20:26:10 and Deewiant gets all that fancy auto-sizing D stuff too 20:26:12 ehird, so 2^31 -1 dimensions? 20:26:12 totally no fair 20:26:21 AnMaster: pretty much 20:26:21 ehird, why not uint32_t for dimension count? 20:26:33 AnMaster: 'cause BF_word is used for everything :) 20:26:36 I might add BF_uword 20:26:38 ehird: if you make things hard for yourself don't expect them to become magically easier :-P 20:26:41 and Deewiant gets all that fancy auto-sizing D stuff too <-- it's slower than the same done correctly in C :D 20:26:48 yes but easier 20:26:48 :) 20:26:51 true 20:26:57 but.. i don't think anyone will be using more than 256 dimensions 20:27:02 and even that as just a one-prorgam toy 20:27:05 like 'the biggest hello world ever' 20:27:05 ehird, but cfunge is very fast when compiled with right options 20:27:10 generated by a script 20:27:11 :-) 20:27:15 does this array fingerprint require the indices to be assigned in order? perhaps if you could make them strongly typed somehow... 20:27:35 AnMaster: I suspect that the top one people will do 'real' stuff in is 4d 20:27:37 oerjan: no, it doesn't. in fact, it doesn't even talk about arrays, as long as each pair gets a unique identifier. 20:27:39 and even that much less than 3d 20:27:44 ehird, indeed 20:27:51 ehird, and most in 2D 20:27:58 yes 20:27:58 1D would be more rare again 20:28:06 is unefunge even tc 20:28:07 :| 20:28:19 ehird, it is 20:28:26 ehird, at least I think it is 20:28:29 btw 20:28:33 the Hunt the Wumpus-93 20:28:36 does that work in 98 interps? 20:28:41 ehird, yep, works in mine 20:28:44 oklopol: I figured out how to do self-modifing code 20:28:46 very fast 20:28:56 hi ehird 20:29:05 oklopol: Bsaically, compile to machine code. Write the compiler as a function in C, and include the compiled function in your output. 20:29:05 ehird, even when not profiled for exactly that app 20:29:09 XD 20:29:09 oklopol: Also include a decompiler. 20:29:16 oklopol: Then 'p' compiles then MOVs to the codespace 20:29:18 'g' decompiles 20:29:20 faxathisia: hai 20:29:43 AnMaster: does your makefile already automatically profile against mycology and recompile? :-P 20:29:43 AnMaster: my makefile will be epic 20:29:48 you can choose which fingerprints you want 20:29:48 :D 20:30:02 mine can do that already 20:30:03 AnMaster: 20:30:04 ehird@ehird-desktop:~$ bzr branch http://rage.kuonet.org/~anmaster/bzr/cfunge 20:30:04 bzr: ERROR: Unknown branch format: 'Bazaar pack repository format 1 (needs bzr 0.92)\n' 20:30:04 ehird, err, bad idea about that compile at p, you can use p to put a value into scratch space 20:30:12 AnMaster: so what 20:30:14 ehird, what version do you have? 20:30:16 ehird: yes, needs bzr 0.92 or newer :-) 20:30:18 AnMaster: it will be decompiled when you 'g' it 20:30:26 ehird@ehird-desktop:~$ bzr --version 20:30:26 Bazaar (bzr) 0.90.0 20:30:30 that's the ewwbuntu version 20:30:34 if that's too old, feeking hell 20:30:39 ehird, point is, it may not be a valid instruction, so you can't compile it 20:30:42 canonical hate their own product :p 20:30:43 ehird, well I use bzr 1.1 20:30:46 AnMaster: uhh so you compile it to a nop 20:30:46 and bzr 1.2 is out 20:30:58 ehird, hm ok 20:31:00 AnMaster: you can always compile it to reverse at compilation time 20:31:13 Deewiant, hm true 20:31:17 ehird, indeed not a nop 20:31:29 you reverse on errors in befunge 20:31:33 like unknown instructions 20:31:33 * ehird update&upgrades 20:31:35 or whatever 20:31:37 AnMaster: yeah sure 20:31:39 AnMaster: compile it to that. 20:31:42 ehird, :) 20:31:43 ok then i _think_ you could make an implementation that could GC any REFC allocated cells as long as the befunge program makes no attempt to take its index apart as an integer. 20:31:47 AnMaster: if you put it in scratch space you'll never execute it anyway 20:31:51 ehird, http://rafb.net/p/vcgFCm27.html 20:31:52 :D 20:31:53 so, add oklopol's stack elimination 20:31:54 and whooosh 20:32:18 ehird, there are one major incompatiblity between 93 and 98, how to handle multiple spaces in strings 20:32:26 and how to divide by zero. 20:32:29 AnMaster: that thing screws up a bit 20:32:29 :) 20:32:37 ehird, 93 does it the normal way, 98 however, does it like xml 20:32:38 that's the only two, unless I forget something. 20:32:42 ie, drop duplicate spaces 20:32:50 Deewiant, indeed, possibly wrapping over edges too 20:33:00 Deewiant: how does ccbi handle wumpus 20:33:07 well, okay, the actual big difference is that -93 is 80x25 always. :-P 20:33:11 ehird: beats me, haven't tried 20:33:21 ehird: if cfunge works than CCBI probably does ;-) 20:33:22 ehird, iirc: well but loads about 0.1 seconds slower than cfunge does it ;) 20:33:36 or likely less 20:33:40 oh noes, teh slowness!!!!oneoneoneeleven1/9 20:33:48 Deewiant, heheh :) 20:33:53 AnMaster: you think wumpus.b is bad? 20:33:57 err 20:33:58 .bf 20:34:05 it's mainly interactive, so speed doesn't show up like in mycology 20:34:06 if so, you've obviously never written a brainfuck implementation... 20:34:12 ehird, I have 20:34:16 LostKng.b takes ~3 seconds to start up on a naive c impl 20:34:19 ehird, if you remember I wrote bashfuck 20:34:20 :P 20:34:27 you can get it down to less than 0.2 though iirc 20:34:28 took 5 minutes to load LostKng.b 20:34:28 :D 20:34:29 :D 20:34:48 I am fascinated by stack&tape removal 20:35:09 if LostKng's tape could be removed to a large degree, and constant folding performed, along with the regular optimizations 20:35:09 I actually added a pre-compile mode that stored information about matching [ and ] 20:35:13 I think it could be compiled to really really fast c 20:35:30 Deewiant, btw if you want to see bashfuck, bzr branch http://rage.kuonet.org/~anmaster/bzr/bashfuck 20:35:34 I think that's the url 20:35:37 it is slow 20:35:38 very slow 20:35:42 AnMaster: also, note that CCBI was my first D program (besides testing crap like hello world), so it's not exactly a paragon of design/good code :-P 20:35:59 Deewiant, heh ok 20:36:23 damn, the most annoying instruction in befunge-93 is " 20:36:29 you've been coding cfunge with speed constantly in mind, CCBI was just "let's see if this is fun" :-P 20:36:36 Deewiant, and well my incomplete bashfunge was very slow 20:36:39 still, it's been remarkably easy to optimize. 20:36:50 the latest CCBI runs in less than 0.2 seconds on mycology here. 20:36:51 lament: hardly 20:36:54 Deewiant, but true, ccbi is quite fast too, compared to what bashfunge was 20:37:00 ehird: really! 20:37:00 " -> stringmode=1-stringmode; 20:37:04 then in the mainloop 20:37:12 if (stringmode) {push(chr);}else{...} 20:37:22 we need to bring back c's =- 20:37:23 for this: 20:37:24 Deewiant, "UNDEF: # across left edge hits easternmost cell on line" took like 20 seconds in bashfunge from the line before 20:37:27 1 =- stringmode; 20:37:34 AnMaster: :-D 20:37:40 Deewiant, also it failed when it got to x, I gave up there 20:37:45 didn't do much of the rest 20:37:47 :-P 20:37:50 ehird: the most annoing for the retarded compiler i'm trying to write, not for a c interpreter 20:37:57 lament: oh 20:37:59 lament: trivial 20:37:59 Deewiant, but until that point it managed mycology 20:38:05 just getc until a " 20:38:11 then compile it into psuh instructions 20:38:36 Deewiant, anyway the "ask user" think for / and % by zero, that's just weird 20:38:53 AnMaster: it's an esoteric language, what did you expect :-P 20:39:05 AnMaster: it's amusing 20:39:08 indeed 20:39:58 AnMaster: i might use __asm__ for this 20:39:59 :-D 20:40:02 Deewiant, btw, I think PPC actually returns 0 on division and mod by zero in reality, I wonder, it should be possible to remove the code for check if zero if I compile cfunge for such an arch 20:40:03 hmm 20:40:03 :) 20:40:07 fungeh kinda sucks for a name 20:40:07 :P 20:40:20 AnMaster: catch the signal 20:40:21 XD 20:40:25 ehird, not really, reminds me of inspircd slogan 20:40:35 ehird, that's slower on other platforms 20:40:36 i don't like it 20:40:37 so meh 20:40:38 ehird: just call it "fungy" 20:40:46 AnMaster: #ifdef __PPC__ 20:40:55 Deewiant: #include "fungy/fungespace.h" 20:40:55 ehird, what about kung-funge? 20:40:56 naaaah 20:40:57 * AnMaster runs 20:40:58 err 20:41:10 lament: i guess the annoying thing would be that if a line contains " everything in it must be compiled _both_ as string and as ordinary command? 20:41:12 how do you spell it normally? material arts 20:41:12 frungy! frungy! frungy! 20:41:15 kung-fu? 20:41:19 something like that? 20:41:39 so just change the second word to funge? 20:41:46 "kung fu" 20:41:53 oerjan: vertical strnigs too 20:41:57 oerjan, not only that, but vertical too 20:41:59 or just 功夫 :-P 20:42:00 Deewiant, ah yes 20:42:09 oerjan: yes, although my compiler is too stupid to compile lines. 20:42:10 Deewiant, whoa, did you google for it? :P 20:42:18 AnMaster: wikipedia :-) 20:42:20 aww 20:42:22 /nick 功夫 20:42:23 fails 20:42:26 Deewiant, heh 20:42:30 i consider "line" as the geometric concept here ;) 20:42:30 ehird: realname works though 20:42:32 ehird, indeed, see IRC specs 20:42:38 AnMaster: nobody follows them 20:42:52 æßðððððððłe¶³€½ŧ¶←ħŋnðŋe¶ŧ¢þøsð→e€½}]đjÆ°±J§Ð⅛&⅛£Ðı→ 20:42:56 oerjan, lament: for funge98 you can have strings from other places, using x instruction 20:43:03 ehird, indeed 20:43:11 i don't care much about funge98 20:43:18 it seems overcomplicated 20:43:22 lament, well 93 isn't turing complete 20:43:29 AnMaster: eh? I don't think the IRC specs limit nicks to ascii 20:44:00 Deewiant, charset for channels and nicks are limited to a-zA-Z and {}[] iirc 20:44:04 or something like that 20:44:10 RFC 2812: "No specific character set is specified." 20:44:17 Deewiant, 2812, bah 20:44:17 Deewiant: ignore the irc rfcs 20:44:18 seriously 20:44:25 nobody follows 2812 20:44:29 lament: it is quite overcomplicated, but not superflously 20:44:39 lament: it's got more juicy topology theory 20:44:57 lament: also trefunge 20:45:00 "topology theory"? :-P 20:45:03 Deewiant, http://tools.ietf.org/html/rfc1459 20:45:04 Deewiant: used lightly 20:45:04 :D 20:45:15 'stuff that looks like mild topology theory from a long distance' 20:45:22 Deewiant, yes I wondered about having a mode with user specified wrapping 20:45:23 AnMaster: turing-completeness is overrated 20:45:25 but it LOOKS pointy-hat, so :D 20:45:30 AnMaster: RFC 1419: "No specific character set is specified." ;-P 20:45:34 er, 1459 20:45:53 Because of IRC's scandanavian origin, the characters {}| are 20:45:53 considered to be the lower case equivalents of the characters []\, 20:45:53 respectively. This is a critical issue when determining the 20:45:53 equivalence of two nicknames. 20:45:53 :) 20:45:53 (weird yes) 20:45:53 ehird: I mean the term "topology theory", no such thing in my experience 20:45:56 AnMaster: of course 20:46:04 Deewiant: it sounds pointy-hat 20:46:06 but I know historical background for it 20:46:14 AnMaster: I don't know how that's scandinavian but whatever :-P 20:46:32 Deewiant, ehird, back before 8bit charsets, they used to write åäö as those chars 20:46:43 that's what I've been told 20:47:03 AnMaster: correct 20:47:15 right, didn't know that 20:47:16 AnMaster: the swedish charset used the ASCII values of []\ for those 20:47:27 so iirc you couldn't type []\{}| in the swedish charset 20:47:27 :) 20:47:30 I'm too young 20:47:35 Deewiant: ditto 20:47:37 Deewiant, so am I 20:47:41 i think everyone here is 20:47:41 :) 20:47:42 but I like computer trivia 20:47:50 then why do you know stuff about 7-bit charsets??! :-P 20:47:55 (and I don't) ;-) 20:47:59 ehird, where are you from btw? (as in what country?) 20:48:37 google suggests hexham, england 20:49:22 Deewiant, btw, this I can't measure, but my feeling of it is that the time for wumpus to load and get ready in cfunge is so fast it seems directly after I press enter on the command line, for CCBI it is a very very small fraction of a second before it shows up 20:49:27 hardly noticable 20:49:31 and I may very well be wrong 20:49:38 you're probably right 20:49:45 before it hits the main function: 20:49:51 gc initialized 20:49:55 command line arguments parsed 20:50:02 module constructor run for each fingerprint 20:50:07 some buffers allocated 20:50:18 Deewiant, remember I use a GC too, initialized on very first line of main() 20:50:37 command line arguments are parsed in main() using getopt 20:50:47 I'm on EFNet, a private network, wikkedwire, and DarkMyst 20:50:48 constructs I don't have though 20:51:01 This is the only one that won't allow SgeoServ 20:51:09 AnMaster: I am from england 20:51:13 We have rain and mud 20:51:14 Sgeo, I think it bans *serv 20:51:15 And a queen 20:51:22 ehird, hehe, I know where UK is 20:51:23 AnMaster, but only FreeNode does, it seems 20:51:24 :D 20:51:30 AnMaster: uk!=england 20:51:33 Sgeo, nop, lot of other networks too 20:51:41 ehird, indeed, it's a part of uk 20:51:45 AnMaster: bingo 20:51:47 Not EFNet, not Sine, not Wikkedwire, and not DarkMyst 20:51:57 AnMaster: I mean stuff done by the D runtime 20:52:08 AnMaster, ehird, this? http://qntm.org/?uk 20:52:12 Sgeo, apart from efnet (that doesn't have services), I have never heard of those networks 20:52:13 AnMaster: converts int argc, char**argv to char[][] args, stuff like that. 20:52:14 Sgeo: Yes, that. 20:52:19 AnMaster: mostly it's the module constructors which take time. 20:52:44 Deewiant, hehe 20:52:55 Deewiant, anyway it is hardly noticeable 20:52:56 AnMaster: allocates a bunch of hash tables with pointers to functions. 20:53:03 and then possibly I/O is slower. 20:53:15 Deewiant, well I do allocate a hash table too, after main(), before I load program 20:53:20 ehird@ehird-desktop:~$ bzr branch http://rage.kuonet.org/~anmaster/bzr/cfunge 20:53:21 bzr: ERROR: Unknown branch format: 'Bazaar pack repository format 1 (needs bzr 0.92)\n' 20:53:23 i just FSCKING UPGRADED 20:53:25 :| 20:53:28 if I'd want to test, I'd take Mycology and insert a line containing "@" right at the beginning. 20:53:32 AnMaster: downgrade your repository 20:53:38 ehird, impossible 20:53:42 AnMaster: also, because of TRDS I need to make a copy of the entire funge-space. 20:53:42 you can't do it afaik 20:53:56 Deewiant, aha I see, so you need two fspace 20:54:02 AnMaster: use a vcs which doesn't enjoy breaking compatibility fully every 0.02 versions and being slow 20:54:09 AnMaster: yep, one is the currently running one and one is the original. 20:54:18 AnMaster: with --disable-fprints the copy might not be done though, I'm not sure. 20:54:24 Use assembla! 20:54:27 ehird, just get last release? :/ 20:54:30 ehird, well a sec 20:54:41 ehird, maybe the one mirrored by lauchpad works better 20:54:49 * Sgeo hosts PSOX on Assembla 20:54:58 (VCS is SVN) 20:55:02 ehird, they may downgrade format i their mirror 20:55:26 ehird, try bzr branch http://bazaar.launchpad.net/~anmaster/cfunge/main cfunge 20:55:46 Sgeo: i love how you suggest bzr->svn 20:55:55 that's the only direction which is even worse 20:56:01 cvs is not that bad :) 20:56:08 ehird@ehird-desktop:~$ bzr branch http://bazaar.launchpad.net/~anmaster/cfunge/main cfunge 20:56:08 bzr: ERROR: Unknown branch format: 'Bazaar pack repository format 1 (needs bzr 0.92)\n' 20:56:11 brilliant! 20:56:11 ehird, not very last version, there, they mirror every 4 hours or so 20:56:20 ehird, ok, go complain in #ubuntu? 20:56:25 launchpad ship all their repositories in a format that nobody using their official OS and their official repositories can use 20:56:26 :D 20:56:49 ehird, well try #launchpad and #ubuntu 20:56:54 I use gentoo and freebsd :P 20:57:07 yes, and gentoo provides bzr 0.17 if you recall 20:57:16 anything newer is unstable 20:57:27 so ubuntu has it better, and even theirs is too old :-P 20:57:49 ehird, also for cfunge you need boehm-gc 7.x, but it seems that is a problem on for example freebsd so I plan to allow a "memleak mode" where it uses libc malloc, and may leak a lot 20:58:03 memleak mode xD 20:58:14 AnMaster: you know one thing c++ got right was its scoped pointer stuff 20:58:24 ehird, and no way I'm doing c++ 20:58:28 my code is very very much C99 20:58:29 far more convenient than free() 20:58:33 but yeah. 20:58:37 unfortunately, there's the rest of c++ 20:58:38 :) 20:58:44 ehird, exactly 20:59:21 AnMaster: but even if you wanted something not to last the scope of a function 20:59:26 you can just do the bare { ... } trick 20:59:40 ehird, indeed I do that for non-pointers sometimes here 20:59:44 in my C code 20:59:51 basically I think C++'s lifetime&memory stuff is right, but the rest of it is sadly tremendously misguided 20:59:58 ehird, exactly 21:00:49 * Sgeo should probably learn C(?:\+\+)? sometime 21:01:00 ehird, anyway ask in #ubuntu or #launchpad about bzr version issues 21:01:12 ehird, can't you just select an unstable version for that single package? 21:01:38 it's very easy to mix and match in gentoo 21:02:02 Sgeo, that makes no sense if it is PCRE? 21:02:14 or is it some other regex dialect? 21:02:24 PCRE? I'm using the RE syntax that python uses 21:02:30 aha 21:02:45 Sgeo, PCRE = perl compatible regex 21:02:50 AnMaster: no such thing as 'unstable ubuntu' 21:02:51 well 21:02:55 the bleeding edge distro 21:02:56 : 21:02:57 ehird, oh yes there is 21:02:57 :) 21:02:58 http://docs.python.org/lib/re-syntax.html 21:02:59 AnMaster: sure it makes sense 21:03:02 ehird, all is 21:03:10 Deewiant, the ?: bit doesn't? 21:03:13 (?:...) 21:03:13 A non-grouping version of regular parentheses. Matches whatever regular expression is inside the parentheses, but the substring matched by the group cannot be retrieved after performing a match or referenced later in the pattern. 21:03:17 AnMaster: it's a PCRE extension 21:03:37 Deewiant, ok maybe, I use perl regex style with PCRE library normally 21:03:51 that is exactly a perl regex 21:03:55 fungy is a kinda sucky name 21:03:55 :p 21:03:56 hm 21:03:58 I guess it doesn't make a diff as to whether or not it's grouping, so C(\+\+)? 21:04:10 if you use just grep's normal regex or posix regex, it won't accept it 21:04:12 ehird, what about "kung funge"? 21:04:15 -!- oklokok has joined. 21:04:20 I should learn C(\+\+)? 21:04:29 ok 21:04:39 Sgeo, I suggest C 21:04:44 or objc maybe 21:04:49 C(?:[+]{2}|#)? 21:04:50 Why C as opposed to C++? 21:04:56 Deewiant, not # 21:04:56 AnMaster: please don't tell Sgeo to learn C/C++ 21:05:01 ehird, why? 21:05:09 everybody should know C... 21:05:10 Here comes the insults 21:05:13 AnMaster: i don't want to have to deal with the horror :( 21:05:18 ehird, err what? 21:05:19 Sgeo: you're quick on the uptake ;) 21:05:30 AnMaster: too much time seeing sgeo ask stuff about python.. 21:05:54 * oklokok hasn't seen him ask much about the language 21:06:06 ehird, look, I wrote horrible code to begin with, like using a static array instead of malloc that was very large (one of my first programs iirc) 21:06:36 today I write rather okish code (I hope) 21:06:37 :) 21:06:40 AnMaster: Sounds like Knuth 21:06:45 TeX uses no dynamic memory allocation 21:06:55 It has its own memory management routines based on static arrays 21:06:57 heh, it doesn't? 21:07:14 ehird, no, I didn't even do memory management 21:07:17 -!- RedDak has joined. 21:07:22 (It is also written in a restricted dialect of Pascal from the 70s with TeX around it using his WEB literate system. It looks ugly.) 21:07:26 ehird, but that's interesting why does TeX do it that way 21:07:37 (Also, it is always translated to dumb C before being compiled nowadays.) 21:07:38 AnMaster: portability 21:07:45 knuthtex was, after all, written in the 70s 21:08:00 ehird, err wait a sec, modern TeX doesn't do it that way do they? 21:08:00 doing that was the only way to get stability 21:08:03 you couldn't trust your system 21:08:07 like say tetex 21:08:12 or pdftex 21:08:15 AnMaster: Well TexLive and XeTeX and all are written in C (iirc) in a modern fashion 21:08:16 So no. 21:08:21 But knuthtex rawx0r my b0x0r 21:08:35 ehird, I still use tetex not texlive though 21:08:45 I use XeTeX. Mac OS X represent! 21:08:49 * AnMaster waits for it to become stable on gentoo before switching 21:08:53 Plus its font support is amazin'. 21:08:54 (hehehe) 21:08:55 Plus UNICODE 21:08:57 UNICOOOODE 21:09:36 ehird, well you still do it as \inf, or do you put a unicode infinite symbol in the latex file? 21:09:49 AnMaster: i think \inf just translates to the latter 21:10:00 mhm 21:10:02 ehird, do you think my code is horrendous? 21:10:13 Sgeo: how will you react if i say yes 21:10:24 heads will roll 21:10:27 I'd ask you to point out what exactly is bad about it 21:10:37 Sgeo: i guess you've never looked at it 21:11:10 Can you tell me what I could have done better? 21:11:23 * AnMaster watches with interest 21:11:38 Sgeo: ehird just told me the other day, that my oklotalk interp *made no sense*! 21:11:49 granted, it didn't, but i mean don't feel bad, he does that! :D 21:12:12 Sgeo: learnt python 21:12:13 :| 21:12:58 um, you're saying I did some unpythonic things in my code? Can you point them out? 21:13:23 Deewiant, btw, can't you use profiling data in D? 21:13:35 Sgeo: it looks horrendous 21:13:36 :| 21:13:38 Deewiant, and also, -fwhole-program? 21:13:48 for use with -combine 21:14:18 ehird, I think Sgeo want you to give some specific examples 21:14:24 where's sgeo's code? 21:14:26 like "like x" 21:14:32 lament, I wonder that too 21:14:43 http://trac2.assembla.com/psox/browser/trunk 21:14:49 http://trac2.assembla.com/psox/browser/trunk/impl 21:15:21 $blimps:{b|case $b.id$:$\n$ $b.code$$\n$ break\;};seperator="\n"}$ <-- epic 21:15:47 ehird, wtf is that 21:15:49 what the fuck is that 21:15:51 I don't know python 21:15:52 AnMaster: StringTemplate 21:15:54 and that's not python 21:15:55 :D 21:16:00 ehird, what is it then? 21:16:04 AnMaster: stringtemplate 21:16:10 ehird, and, what is that? 21:16:18 AnMaster cannot use google 21:16:20 it shoots him 21:16:44 ehird, examples? 21:16:47 ehird, look I tried to search with veronica on gopher and it didn't find it, what more did you expect? 21:16:48 * AnMaster runs 21:17:39 ehird, ok found it 21:17:40 hm 21:17:50 Sgeo, $blimps:{b|case $b.id$:$\n$ $b.code$$\n$ break\;};seperator="\n"}$ <-- epic 21:17:56 that was one I think 21:18:07 dude 21:18:09 that is unrelated to sgeo 21:18:15 :| 21:18:15 ah ok 21:18:19 why is everyone trying to link it to sgeo 21:18:20 hehe 21:18:38 ehird, you said his code was horrible, we asked for example, you posted that 21:18:39 that is why 21:18:52 AnMaster: what country do you live int? 21:18:53 *in 21:18:58 oklokok, Sweden, why? 21:20:08 ehird, examples? 21:20:43 "our page was down this morning" "really? i'm fairly sure it was just you" "a swedish guy couldn't access it either" 21:20:57 it may be it wasn you and that it wasn't this morning, but that's beside the point 21:21:26 oklokok, oh yes dns was down 21:21:56 why didn't you contact them when it was happening? 21:23:41 AnMaster: i tried contacting the guy responsible for contacting them ;) 21:23:59 ah 21:24:47 also, we don't really have that many visitors, and i can wait a few hours. 21:24:57 AnMaster: what is your fungespace? 21:25:14 a hash table? 21:25:14 ehird, yep that's how I do it atm 21:25:20 but it's hidden behind an abstraction 21:25:29 so can be replaced with something else if needed 21:25:31 ehird, no examples? 21:26:17 ehird, I already got an alternative 80x25 static array version (probably broken atm as it's unmaintaned 21:29:04 AnMaster: make your boehm less versionful 21:29:05 :( 21:29:21 ehird, indeed I know the issue, I plan to include the part I want 21:29:22 Version: 1:6.8-1ubuntu2 21:29:37 as it got issues installing it on freebsd too 21:29:44 and thats a platform I care about 21:29:51 so somehow, I plan to bundle parts of it 21:30:21 AnMaster: have you heard my WEB GARBAGE COLLECTION idea yet? 21:30:28 ehird, err what? 21:30:43 ehird, you got 64-bit? I can send you a static binary if you do 21:31:35 AnMaster: 32-bit 21:31:39 damn :/ 21:31:41 AnMaster: -m32 or something 21:31:49 AnMaster: also, this is the idea 21:31:56 ehird, I don't have boehm installed in 32-bit version 21:31:56 if you have a short urlservice and want to expire links eventually 21:31:56 ok 21:31:58 every gc, 21:32:06 you go through every page on the internet 21:32:15 ?? 21:32:16 and set the mark flag on every link you find to one of your links 21:32:22 then you delete all the unmarked ones. 21:32:24 XD XD XD XD XD 21:33:06 oh a garbage collector for internet? 21:33:36 ehird: sounds awesome 21:34:18 AnMaster: for a short url service 21:34:24 :-D 21:34:31 ehird, not doable however 21:34:33 in reality 21:34:42 AnMaster: sometimes i wonder if you're intentionally dnse 21:34:45 it's called a JOKE 21:35:00 ehird, "intentionally dnse" <-- nop, but intentionally dense, yes 21:36:09 ehird, anyway I'm working on a 32-bit binary for it 21:37:25 hmmmm why do all webservers suck 21:38:59 hmm 21:39:01 cherokee seems OK 21:39:36 ehird, lighttpd :) 21:39:45 AnMaster: sucks 21:39:48 the config gets all sprawling 21:39:53 hm 21:39:56 and its fastcgi 'lets try and spawn it myself' sucks 21:39:59 because itnever works 21:39:59 ehird, thttpd? 21:40:01 an dyou have to do it manually 21:40:17 AnMaster: latest release 2002. That's not a problem, though -- it's so rock solid. But it only supports cgi. 21:40:22 ehird, I blame ubuntu, fcgi "lets try and spawn it myself" works perfectly here 21:40:37 Hmm 21:40:40 no 21:40:41 ehird, err, thttpd doesn't do cgi does it? 21:40:43 AnMaster: It's a known problem 21:40:46 and yes thttpd does cgi 21:40:48 i think 21:40:57 AnMaster: besides i mainly use os x 21:40:59 also a problem there 21:41:07 ehird, I have used lighty on freebsd with fcgi spawning without problems 21:41:11 no problems whatsoever 21:41:19 hmmmm 21:41:23 i wonder if php can run as scgi 21:41:33 scgi&cherokee is the exact setup that nobody uses 21:41:37 and thus i should use it for eso-std.org 21:41:38 ehird, I use trac.fgci and php-fgci 21:41:39 err 21:41:41 fcgi 21:41:57 fcgi is kinda overcomplicated and stuff 21:42:01 the scgi spec is just a few screenfuls 21:42:59 ehird, ok I'm building a 32-bit boehm for you now 21:43:46 AnMaster: http://python.ca/scgi/protocol.txt 21:43:47 check it out 21:45:01 ok, but I don't care much 21:45:36 AnMaster: i hope that eso-std.org will be a mishmash of mostly python and some php 21:45:39 and hopefully all running on scgi 21:45:46 ok 21:46:11 AnMaster: including the most immediately useful to #esoteric things -- the pastebin and the QDB 21:46:18 the qdb will probably be the first thing going live 21:46:34 since i'm an elitist, i'll probably hack up my own qdb 21:47:15 AnMaster: the qdb will probably be prototyped on this box :-) 21:51:07 -!- oklokok has quit (Remote closed the connection). 21:51:20 -!- oklokok has joined. 21:55:10 ehird, http://rage.kuonet.org/~anmaster/cfunge/cfunge_r65_static_32_64.tar.bz2 21:55:17 one 32-bit and one 64-bit binary 21:55:31 32-bit is -march=pentium3 -mtune=k8 21:55:40 64-bit is -march=k8 22:00:15 ehird, does it work for you? 22:00:32 of course you would get best result optimizing for your arch 22:05:19 AnMaster: works 22:05:26 $ uname -a 22:05:26 Linux ehird-desktop 2.6.22-14-generic #1 SMP Sun Oct 14 23:05:12 GMT 2007 i686 GNU/Linux 22:05:29 there's optimizations tuffs 22:05:29 :P 22:05:46 ehird, ? 22:05:52 that doesn't say much 22:06:24 ehird, grep -E '(vendor|model|flags)' /proc/cpuinfo 22:06:25 :P 22:07:13 ehird, anyway here even the 32-bit one is real 0m0.096s 22:08:29 vendor_id : AuthenticAMD 22:08:29 model : 12 22:08:29 model name : AMD Sempron(tm) Processor 3100+ 22:08:29 flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext lm 3dnowext 3dnow up ts fid vid ttp 22:08:30 and yes 22:08:31 ehird, of course I recommend building and profiling your own 22:08:33 i know this box suxx0r 22:08:37 its the crap one 22:08:37 :) 22:09:26 ehird, ah, could be much better then, --march=athlon-xp -msse2 I think 22:10:02 ehird, but I can't do the profiling bit really, it's individual based on your system 22:10:06 :/ 22:12:38 ehird, btw this is what I use: http://rafb.net/p/AeLEvc11.html 22:12:42 AnMaster: think of a funny name for the eso-std.org qdb's software. 22:13:23 -!- Corun has joined. 22:22:38 AnMaster: no? ;) 22:22:45 err? was busy 22:22:54 ehird, no I can't think of one 22:23:07 * AnMaster never really cared about qdbs 22:24:11 i mgiht call it 'busy' 22:24:13 :) 22:24:34 How do I make my code readable? 22:24:51 Sgeo, ask ehird 22:24:53 he knows 22:24:59 ehird? 22:42:47 -!- RedDak has quit (Remote closed the connection). 22:42:57 yeah he's bribed us all to refer you to him 22:43:04 whoops, did i say that? 22:43:32 hehe 22:45:08 who's alive and gives a rat's ass about the qdb? 22:45:35 huh it seems GCC 4.1 and later have an undocumented -O4 mode 22:45:46 interesting 22:45:48 * Slereah gives ehird a rat's ass. 22:45:58 You can do whatever you want with it. 22:46:01 No questions asked. 22:46:19 oklokok: /oklopol maybe i guess# 22:46:20 :P 22:46:22 Slereah: heh 22:46:25 * AnMaster notes it shaves another 0.08 seconds off runtime for mycology without breaking stuff 22:46:28 Deewiant, ^ 22:46:31 \o/ 22:46:32 :P:P 22:51:16 the ratsass quote database has a certain ring to it 22:51:39 although it might be taken 22:54:02 oerjan: better than 'busy' 22:54:22 slogan: 'gives a rats ass about your quotes' 22:54:52 oerjan: i am thinking of user stuff 22:54:59 oerjan: i am not sure whether users are really needed 22:55:01 beyond admins 22:55:46 oerjan: i mean, what can you display about a quote submitter 22:55:49 number of quotes 22:55:51 that's about it 22:55:59 and if you store submitter *name* optionally, you can still do that, really 22:57:25 oerjan: and you don't care. presumably. 23:00:35 ehird, how goes your turky bomb interpreter? 23:00:45 * oerjan was busy in #haskell 23:01:37 oerjan: well, evidently you're not now :P 23:01:53 although i must admit i don't care terribly about the details 23:02:04 :) 23:08:11 oerjan: start caring! ;) 23:08:41 * oerjan thiddles his fumbs 23:08:54 NAOO 23:09:00 Slereah: okay, you then :P 23:09:13 D: 23:10:16 Slereah, D: ? it's a variant of D? 23:10:19 * AnMaster run 23:10:20 runs* 23:10:52 Slereah: OH COME ON <_< 23:12:44 Slereah: very simple question: are users needed apart from admins (i.e. you can log in and submit a quote), or: just have an optional 'submitter' name field, OR no submitter info 23:12:53 that affects the user experience 23:12:56 so you must be interested 23:12:56 <_< 23:13:34 :S 23:13:39 Well, I usually don't care about the name of the submitter. 23:14:03 And user contributing is a good idea 23:14:04 Slereah: OPINION NOTED 23:14:08 hm wait 23:14:11 when user contributing 23:14:13 i meant: 23:14:13 strange bug.... how is it possible to have append/3 member/3 etc.. permutation([a,b], X) work but not permutation([a,b,c], Y). %?? 23:14:15 user accounts 23:14:21 log in and submit 23:14:27 Nah. 23:14:31 'user submitting' how you seem to mean it is just the standard 'submit' page 23:14:34 which is just a text box 23:14:38 oh 23:14:40 and a last of tags 23:14:45 and maybe a note fiel 23:14:45 d 23:14:46 It's not like we risk much trolling 23:14:54 Are we making custom qdb software? :( 23:14:55 Slereah: quite true 23:14:58 Sgeo: yes, yes we are 23:15:01 WHY? 23:15:19 because there's none written in python 23:15:25 & eso-std.org is going to run on python 23:15:31 python????? 23:15:39 -!- ais523 has joined. 23:15:44 It can't be a hybrid site 23:15:45 ? 23:15:47 Hi ais523 23:15:55 Hi Sgeo 23:16:02 Sgeo: i don't want it to be :P 23:16:04 ais523: hey there 23:16:08 faxathisia: convenient. 23:16:12 Hi ehird, as well 23:16:24 ehird, if it's python you can get Sgeo to help 23:16:25 :D 23:16:27 * AnMaster runs 23:16:29 ais523: the eso-std.org QDB is being the first part to be made (judged so because it's the most pointless part, thus most likely to be used by #esotericians) 23:16:32 AnMaster: hee 23:16:36 spot the bug http://rafb.net/p/aLPQ0C26.txt :( 23:16:40 qdb? 23:16:50 ais523: quote data base 23:16:55 ehird, write it in befunge 23:17:01 with SOCK extension 23:17:04 since #esoteric is far too nsfw to keep off the web a lot of the time 23:17:04 :P 23:17:06 use PSOX 23:17:13 or maybe make a SCGI extension 23:17:29 faxathisia, nah, fast c based interpreter for befunge :D 23:17:45 I really should work on b1 at some point 23:17:52 FILE, DATA and SCGI, the first extension already exist 23:17:53 hmm 23:17:59 rash just has a text field :) 23:17:59 the second would be sqlite interface 23:18:02 or some other databse 23:18:02 hmm 23:18:05 database* 23:18:05 will tags on quotes really be useful? 23:18:08 i doubt it 23:18:12 but i'd like the 'note' field 23:18:16 just for, well, adding a note 23:18:26 also i hope to make all the timestamp removal etc. automatic 23:18:30 unless explicitly disabled 23:18:33 ehird look at my horrible code 23:19:12 ehird: http://pastebin.ca/943024 http://pastebin.ca/943026 23:19:22 (where I'm at with Underlambda ATM) 23:19:50 ais523: my god, you are a perlist 23:19:52 truly :) 23:20:15 well 23:20:16 not really 23:20:17 ...but the spec's based on rewrite rules.. 23:20:18 you use the ($$) stuff 23:20:30 ais523: i was thinking more things like $" 23:20:30 :D 23:20:46 ehird: the sort of thing that confuses pastebin.ca's syntax higlighting 23:21:07 yes 23:21:08 never seen a good perl syntax hilighter 23:21:08 hmm 23:21:18 bash.org etc seem to score 'up' and 'down' differently 23:21:21 faxathisia: Kate's is pretty good 23:21:22 instead of one combined score 23:21:23 good/bad? 23:21:35 seems kinda overcomplicated to me 23:21:38 ais523, what are these tires? 23:21:41 but maybe it makes stuff more balanced 23:21:49 ais523, I mean, tiers 23:21:56 AnMaster: the idea is that an implementation can implement more or less of the spec 23:22:04 the lower-numbered tiers are the ones it's more important to implement natively 23:22:07 hm 23:22:19 1 and 1a are TC and Brainfuck-complete, respectively, so you can compile anything into those in theory 23:22:41 but the stuff in tier 2 requires bundling an interp with the program to compile into Tier 1, practically speaking 23:22:42 ah 23:22:51 the stuff in tier 3 requires you to use reflection on the data structures 23:22:56 tier 5 requires a preprocessor 23:23:03 what about tier 4? 23:23:16 and tier 4 contains serious optimisations without which the language is unusable 23:23:31 (e.g. it allows an interpreter to make addition O(1) rather than O(n)) 23:23:34 hm 23:23:36 (by special-casing p) 23:23:43 i think the qdb may be the first unicode aware one 23:23:51 ais523, can you stick tier 4 on tier 2? 23:24:01 what do you mean by that? 23:24:06 or does it need tier 3 as well then? 23:24:11 it's possible to compile a tier 4 program into a tier 2 program, quite easily in fact 23:24:21 some of the tiers need some lower-numbered ones, but they're mostly independent 23:24:25 hmm 23:24:28 possibly last qdb question: 23:24:30 do we need approval? 23:24:31 or.. 23:24:34 I suspect I'll use < and > a lot later on because they're pretty useful 23:24:45 ehird: it's a publically logged channel, you could always link to the logs 23:24:49 if you couldn't get approval 23:25:14 ehird, one question: why do we need a qdb? 23:25:23 AnMaster: everyone needs a qdb 23:25:26 they just don't know it yet 23:25:27 no? 23:25:31 -_- 23:25:35 -!- Corun has quit ("Leaving"). 23:26:04 ais523: approval as in 'admin approves all quotes' 23:26:06 every site has it 23:26:20 AnMaster: because too many ridiculous things are said here. obviously. :) 23:26:38 ehird: either manual approval, or just do it wiki-style by deleting quotes that are voted down too much 23:28:32 ais523: i think manual approval 23:28:39 + maybe later a report button 23:28:51 basically, when an admin is logged in, each quote will have a delete button 23:28:56 and there'll also be two extra pages 23:29:01 'awaiting approval' 23:29:08 which will contain loads of quotes, and a 'yep' and 'nope' 23:29:13 and a 'reports page' which will be the same 23:29:28 very simple 23:31:14 AnMaster: another interesting point in the tiering system is that with different definitions of the commands (note that the 'as if' rule exists in Underlambda, although I haven't stated that explicitly yet), tier 5 plus () and ^ is Turing complete 23:31:21 because you can embed lambda calculus in it 23:31:38 (the rules with / are basically rewrite rules for translating lambdas into tier 1) 23:32:32 (it took me ages to get them working) 23:32:37 (and I meant \ not /) 23:34:14 whee 23:34:15 all the models are done 23:34:17 for the qdb 23:34:20 apart from reports, which can come later 23:34:43 ais523, hm 23:41:26 -!- algol has joined. 23:42:02 -!- algol has quit (Client Quit). 23:42:11 you know 23:42:21 naming a quote system ratsass after one line someone said in irc is probably not a good idea 23:43:46 stupid infinite stack of zeros in befunge 23:44:19 lament: I was wondering about whether to use an infinite stack of ones in Underlambda 23:44:24 lament: are you doing stack elimination? that's coooool 23:44:38 but I decided to only implement them for the > instruction 23:44:50 ehird: the infinite zeros thing is annoying 23:44:57 because the number of stack elements is otherwise too useful to discard like that 23:46:05 for instance, the only way to determine the length of a list within the tiers so far is to make a continuation and store it somewhere safe, then replace the stack with your list, pop it until it's empty, count how many times you have to do that, and then use your continuation to restore the original program context 23:48:04 there'll be an optimised command to do it in one of the later tiers, which I'll probably number 6 or 7 23:49:02 (BTW, there should be division in tier 4 as well, but I haven't yet figured out the rewrite rule to express it; most likely it could just be done by translating Church division from lambda calculus and special-casing 0 (I want x/0 to equal 0 in Underlambda so that 1/x = 1 iff x=1, 0 otherwise)) 23:50:17 ais523: make x/0 return a new type 23:50:19 the DivideZero type 23:50:24 with x as its internal data 23:50:24 :D 23:50:26 * lament hates cpressey for the infinite zeros thing 23:50:51 +1 would result in a special object saying that its that dividezero+1 23:50:53 hehe 23:50:55 how am i supposed to efficiently compile befunge when it has to check the stack every time! 23:51:00 equality would work too 23:51:00 so hah 23:51:04 and printing would too 23:51:25 lament: you think that wasn't intentional 23:51:49 it's only a minor annoyance, it doesn't actually make it much harder to compile, just more annoying 23:51:55 it's p that makes it hard to compile :) 23:53:06 lament, there are befunge programs that copy themself around fungespace 23:53:17 and delete the old copies of themselves 23:53:53 that's fine 23:56:21 ehird: the exceptional conditions for maths operations in Underlambda are based on what has the most uses for other purposes 23:56:34 so subtraction saturates at 0 so it can be used as greater-than 23:56:38 and likewise, 0^0 = 1 23:59:00 ais523: butvbut :(# 23:59:23 i want my divzero type 23:59:47 ehird: it isn't typed anyway, numbers are just Church numerals