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