←2008-03-13 2008-03-14 2008-03-15→ ↑2008 ↑all
00:00:00 -!- BMeph has joined.
00:01:13 <AnMaster> ehird, yay cfunge just got it's first fingerprint!
00:01:22 <AnMaster> working
00:03:24 -!- olsner has quit ("Leaving").
00:09:32 <ehird> AnMaster: cfunge is mine
00:09:35 <ehird> :/
00:11:24 <lament> are you both writing befunge compilers?
00:13:02 <ehird> lament: not compilers
00:13:04 <ehird> interpreters
00:13:04 * oklokok is writing a befunge compiler, at least :P
00:13:08 <ehird> befunge-98 interpreters
00:13:14 <lament> oh
00:13:21 <ehird> because we decided that one conforming interpreter was just not good enough
00:13:25 <ehird> undersaturated market
00:13:25 <ehird> :)
00:13:32 <lament> oklokok: in what language, to what language?
00:13:37 <oklokok> python, to python
00:13:44 <lament> threaded?
00:13:48 <lament> or jit
00:13:50 <ehird> AnMaster: i'll pay you moneys if you rename your interp
00:13:51 <ehird> actually
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:13:59 <ehird> :D
00:14:08 <ehird> i'll let you have CFNG
00:14:09 <ehird> haha
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:19 <oklokok> *funge
00:14:25 <lament> no
00:14:33 <oklokok> ah
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:33 <oklokok> umm
00:15:34 <lament> oh, so you're ignoring self-modifying code?
00:15:38 <oklokok> there will be no stack
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:22 <ehird> lament: yes
00:16:24 <ehird> BestFriends.js
00:16:26 <oklokok> that's ver very different, though
00:16:28 <oklokok> *very
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:48 <lament> oklokok: true
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:19 <lament> err...
00:17:22 <lament> easier to compile, certainly :)
00:17:40 <ehird> oklokok: so wait
00:17:41 <ehird> 55+
00:17:43 <oklokok> i haven't done a lot of befunge, just generally don't see many uses for self-modifications
00:17:44 <ehird> compiles to 5+5?
00:17:49 <ehird> i.e. you do total stack removal
00:17:50 <oklokok> ehird: sure
00:17:52 <ehird> if so, that's cool
00:17:53 <oklokok> well
00:17:56 <oklokok> not entirely
00:17:58 <ehird> oklokok: befunge-93? if so that's not TC :(
00:18:06 <oklokok> but where it's possible.
00:18:10 <AnMaster> <ehird> AnMaster: i'll pay you moneys if you rename your interp
00:18:11 <AnMaster> nop
00:18:13 <AnMaster> I won't
00:18:25 <oklokok> ehird: sure is, you can do "p"
00:18:25 <AnMaster> I was first to release
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:34 <AnMaster> ehird, :)
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:38 <ehird> :)
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:19:53 <AnMaster> ehird, hehe, but it is indeed
00:20:30 <ehird> Befunge-93 is NOT tc
00:20:40 <ehird> ``
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:41 <ehird> ''
00:20:42 <oerjan> MUNUS SIGSIGGA TAR BALLA YE...
00:20:56 <ehird> oerjan: E J F
00:21:05 <ehird> ESS CEE PEE
00:21:19 <oklokok> ehird: anyway, even with the limitation that the stack cannot grow, it is tc with an infinite grid.
00:21:24 * oerjan does not understand
00:21:36 <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:32 <lament> indeed
00:22:37 <ehird> lament: Befunge-93 specifies 80x24.
00:22:49 <lament> oklokok: ehird has you beat :)
00:22:56 <oklokok> hehe :P
00:22:56 <lament> ehird: indeed. :)
00:23:04 <oklokok> thanks, ehird!
00:24:08 <ehird> oklokok: I decided to do something like yours
00:24:08 <ehird> :D
00:24:18 <ehird> using a dict and lambdas for the instruction table
00:24:18 <ehird> :D
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:24:46 <ehird> [TOP, ...]
00:26:23 <oklokok> ehird: cool, i was thinking our tradition of stealing each others' ideas was over :P
00:26:29 <ehird> oklokok: no way!
00:26:30 <ehird> :D
00:26:30 <oklokok> i was pretty sad
00:26:36 <ehird> just like the good ol' days
00:26:39 <oklokok> yay!
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:28 <ehird> :P
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:26 <oklokok> sure
00:28:30 <ehird> the stack element of this number:
00:28:33 <oklokok> mmmmmyeah
00:28:33 <ehird> [top, top-1, ...]
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:52 <oklokok> well, that part i guessed
00:28:54 <ehird> which, when evaluated, give you the top and second-top expressions relatively
00:29:04 <ehird> oklokok: so in:
00:29:08 <ehird> "122+-"
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:29:51 <ehird> heh
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:30:52 <ehird> goddarn
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:31:26 <faxathisia> unicorns
00:32:06 <ehird> unicron
00:32:09 <ehird> universal cron
00:32:40 <ehird> AnMaster: Challenge. If you cannot give my C-funge interpreter a good name, you must change yours.
00:33:13 <oklokok> cefunge
00:33:29 <oklokok> seafunge
00:33:38 <oklokok> fudgerbudger
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:38 <ehird> lament: hahah
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:11 <lament> ehird: r5rwhat?
00:36:15 <AnMaster> ehird, but I know two good handprints: R2D2 and C3PO
00:36:16 * AnMaster runs
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:28 <ehird> expanded out:
00:36:34 <lament> besides, r6rs > r5rs
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:16 <AnMaster> for nfunge
00:37:17 <AnMaster> ?
00:37:21 <oklokok> AnMaster: call yours "an funge"
00:37:27 <AnMaster> oklokok, nop
00:37:37 <AnMaster> ehird can call his ehfunge
00:37:37 <AnMaster> ?
00:37:40 <oklokok> that would be a fun inside joke on a channel
00:37:41 <lament> ehird: yermom
00:37:43 <AnMaster> anyway NFUN sounds cool
00:37:50 <faxathisia> why not just all use tha same name?
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:37:55 <AnMaster> lament, yay! yermomafunge!
00:37:58 <AnMaster> that's a good one
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 * AnMaster runs
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:38:41 <AnMaster> ehird, hm I'm thinking of it
00:38:59 <oklokok> AnFunge imo
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:39:48 <oklokok> CFunGe
00:40:28 <oerjan> CfungE
00:40:34 <oerjan> (the E is for ehird)
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:42:36 <oklokok> i'll call mine Oklonge
00:43:17 <AnMaster> ehird, anyway I already registered this on freshmeat, so hard to change
00:43:18 <AnMaster> did that a few hours ago
00:43:46 * oklokok is trying to incorporate "your mother", "long kok" and "coming from" in the same pun
00:43:49 <ehird> AnMaster: not hard to reregister
00:43:49 <ehird> heh
00:44:03 <oklokok> too hard
00:44:09 <slereah__> My long kok is coming from your mother.
00:44:21 <oerjan> Oklounge
00:44:22 <oklokok> oh, right, so obvious!
00:44:41 <oklokok> onge
00:44:41 <oklokok> ofunge
00:44:46 <oerjan> but it could be Ok-lounge
00:44:56 <slereah__> *Bk-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:54 <ehird> hmm
00:48:59 <ehird> what is the befunge terminology for a word?
00:49:06 <AnMaster> ehird, a cell?
00:49:31 <oklokok> the b word
00:52:58 <AnMaster> ehird, also, sf.net project request
00:53:17 <ehird> AnMaster: don't use sourceforge.
00:53:23 <AnMaster> ehird, why not?
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:51 <faxathisia> sourceforge kind of sucks
00:53:52 <AnMaster> ehird, it is the largest one still
00:54:00 <faxathisia> but it's free webspace isn't it?
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:17 <AnMaster> and a good mirror system
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:44 <AnMaster> as I prefer bzr
00:55:45 <ehird> pretty good
00:55:48 <ehird> not perfect, but.
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:06 <ehird> sheehs
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:57:41 <ehird> eek
00:57:42 <ehird> dmoz
00:57:42 <ehird> :D
00:57:47 <ehird> the dead internet
00:57:57 <pikhq> It still lives.
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
00:59:59 * Slereah goes to der esowiki
01:00:01 <ehird> what is dmoz
01:00:01 <ehird> lawl
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:10 <AnMaster> ehird, I know what dmoz is
01:00:20 <pikhq> Then why did you ask?
01:00:33 <faxathisia> lol
01:00:43 <Slereah> What was added to the fantasmesoteric wiki?
01:00:44 <AnMaster> err wait
01:00:46 <AnMaster> I'm tired
01:00:47 <ehird> pikhq: So he can retroactively claim he knows after being told.
01:00:51 <pikhq> ehird: LMAO
01:00:55 <faxathisia> hahaha
01:00:57 <AnMaster> ehird, right! :D
01:01:01 <AnMaster> I'm just tired
01:01:09 <AnMaster> I had a faint memory of DMoz
01:01:19 <AnMaster> didn't remember what it was exactly
01:07:39 <oklokok> i didn't know about dmoz OR freshmeat
01:07:44 <pikhq> oklokok: Mutant.
01:07:58 <oklokok> :P
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:11 <faxathisia> never downloaded from it?
01:10:19 <oklokok> dunno, perhaps i did
01:10:24 <oklokok> just don't remember
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:18:25 <Slereah> Are Haskell's book good?
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:25 <faxathisia> I just bought Sets for Mathematics
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:33:14 <oklokok> more coffees ->
01:33:24 <AnMaster> night
01:33:36 <oklokok> nnnight?
01:33:39 <oklokok> ->
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:38:59 <oklokok> GregorRL(1)
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:39:57 <oklokok> (llled.)
01:41:06 -!- oklokok has changed nick to oklo.
01:41:37 <GregorR-L> Hahaha
01:41:57 <GregorR-L> Better than my previous GregorRead-Write (GregorR-W)
01:43:33 <ehird> GregorReally-Awesome
01:44:17 <slereah_> Price: US$ 122.48
01:44:21 <slereah_> Aaaaaaaaaaaaaaaaaaaah
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:24 <oklo> *it
01:46:32 <slereah_> Well, I guess it's good too.
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:11 <oklo> :D
01:47:45 <oklo> i feel so small and cute with this nick <3
01:47:51 <ehird> coool
01:47:53 <ehird> I want a small nick
01:47:56 <oklo> :d
01:48:05 <ehird> err
01:48:07 <ehird> I meant dick
01:48:08 <ehird> obviously
01:48:33 <slereah_> The only day...
01:48:33 <slereah_> ...SO FAR
01:48:34 <oklo> obviously.
01:48:52 <slereah_> Well, oklo has one.
01:48:53 <ehird> oklo: draw a penis on your penis
01:48:57 <slereah_> And it is adorable
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:22 <ehird> on
01:49:23 <ehird> no
01:49:25 <ehird> the ascii penis smiley
01:49:27 <ehird> on your penis
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:07 <ehird> quote #5
01:50:07 <ehird> :D
01:50:12 <oklo> :P
01:50:19 <slereah_> What are #0 through #4 !
01:50:21 <oklo> what are the first?
01:50:26 <ehird> oklo: what is the Big-O complexity of your penis?
01:50:27 <oklo> what's #4+3i
01:50:47 <oklo> hmm
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:50:55 <ehird> :D
01:51:19 <slereah_> And boy, were they right!
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:52:48 <slereah_> So I guess.
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:53:58 <oklo> :P
01:54:01 <ehird> slereah_: heh
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 <oklo> heh
01:56:31 <slereah_> Problem with those books is, they're all referencing each others.
01:56:44 <slereah_> That's how I got here.
01:56:55 <slereah_> I tried to read the Principia Mathematica, and bam
01:56:59 <slereah_> The machine was on!
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:13 <oklo> yeah :D
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
01:59:45 <slereah_> What, x={x}?
01:59:54 <ehird> Yes
02:00:05 <slereah_> I have a shameful picture.
02:00:06 <slereah_> http://membres.lycos.fr/bewulf/Divers2/Set.jpg
02:00:08 <slereah_> :(
02:01:41 <ehird> I love you
02:03:26 <pikhq> 'Recursion: see recursion.'
02:03:27 <ehird> Oh crap....
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:03:48 <oklo> :)
02:03:49 <ehird> :-(
02:04:05 <slereah_> "And by recursive, I of course mean defined by recursion."
02:04:05 <pikhq> Grr.
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:02 <ehird> pikhq: Oh.
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:10 <oklo> *nick
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:23 <ehird> :(
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:05:52 <pikhq> As is that code.
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:34 <ehird> Bahh
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:05 <oklo> :D
02:08:16 <ehird> well yeah, so his code sux
02:08:17 <ehird> :P
02:08:30 <ehird> hmm
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 <oklo> dunno
02:10:28 <ehird> oklo: exactly so a hashtable isn't nice
02:10:35 <ehird> yeah
02:10:37 <ehird> its hard
02:10:37 <ehird> :(
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:18 <ehird> i.e. fungespace
02:11:23 <oklo> prolly
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:35 <ehird> for 2,3,4d
02:11:45 <oklo> yyyeah?
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:05 <AnMaster> just don't claim I made it :)
02:12:17 <oklo> AnMaster: you *should* name your software like that
02:12:30 <ehird> EgoBot, Anfunge.
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:43 <ehird> LioFunge
02:12:44 <ehird> :|
02:12:53 <AnMaster> oklo, comment taken on board, and will be thrown over as soon as we leave harbour
02:12:56 <AnMaster> ;P
02:13:24 <slereah_> Is there anything up on ESO?
02:13:25 <oklo> AnMaster: funny, but mean!
02:13:25 <AnMaster> oklo, look is it gcc or rmsc?
02:13:25 <AnMaster> :P
02:13:32 <AnMaster> oklo, what? my Discworld quote?
02:13:56 <ehird> slereah_: Not yet
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:14:56 <AnMaster> just FYI
02:15:11 <slereah_> I used to be a fan.
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:16 <ehird> also FSFmacs
02:16:22 <AnMaster> ehird, what about sxemacs?
02:16:26 <ehird> oklo: no for N dimensions
02:16:28 <AnMaster> or µemacs
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:56 * AnMaster think it is crazy
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:11 <AnMaster> ;)
02:17:18 * AnMaster use gnu emacs
02:17:35 <ehird> uemacs is nice
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:18:54 <oklo> hmm
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:09 <AnMaster> infinite ones I mean
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:53 <oklo> *a
02:19:59 <AnMaster> ehird, no idea, what about nfunge?
02:20:04 <AnMaster> nofunge?
02:20:17 <AnMaster> <infinite symbol here>funge?
02:20:25 <ehird> noes
02:20:31 <AnMaster> aleph-zero-funge?
02:20:44 <oklo> ehird: {x,y:...} and {x:{y:...}} are both good
02:20:58 <ehird> noes
02:21:01 <slereah_> Why only aleph zero!
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:05 <oklo> :P
02:21:16 <oklo> AnMaster: so the first one
02:21:23 <AnMaster> slereah_, aleph-aleph-aleph-0?
02:21:27 <AnMaster> that would be interesting
02:21:32 <slereah_> Aleph 1 is enough!
02:21:50 <ehird> awwwwww come onn
02:22:07 <AnMaster> oklo, indeed
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:08 <ehird> F_word is int32_t
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:16 <ehird> hmm wait
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:20 <ehird> heh
02:23:21 <ehird> :D
02:23:23 <oklo> just direct addressing
02:23:26 <ehird> oklo: meh
02:23:45 <ehird> hmm
02:23:50 <ehird> shoudl I implement my own hash table?
02:23:52 <ehird> I :D
02:23:54 <ehird> *:D
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:18 <ehird> AnMaster: hahah
02:24:19 <ehird> what fun
02:24:25 <ehird> F_vector_of_dimensions
02:24:26 <AnMaster> ehird, my idea? yes
02:24:51 <oklo> lol, my code has been one line away from ready for like 2 hours
02:24:52 <oklo> :D
02:24:54 <AnMaster> ehird, however, note that mycology only runs in funges with vectors of size 2
02:24:55 * oklo puts
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:25:46 <AnMaster> ehird, ?
02:25:49 <ehird> to get befunge
02:25:50 <AnMaster> ah good idea
02:25:54 <ehird> -N 1 is unefunge
02:25:57 <ehird> -N 3 trefunge
02:26:01 <AnMaster> ehird, -N -1 ?
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:26:23 <ehird> :-)
02:26:28 <AnMaster> ehird, -N sqrt(-1)
02:26:29 <AnMaster> :D
02:26:43 <ehird> AnMaster: ditto
02:26:43 <AnMaster> that's headachefunge
02:26:44 <ehird> ;)
02:27:03 <ehird> -N integer>1
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:18 <AnMaster> Slereah, I know :D
02:27:39 <oklo> hmm...
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:25 <AnMaster> to increment Z
02:28:30 <AnMaster> apart from that I don't know
02:28:32 <ehird> AnMaster: is that standard?
02:28:36 <AnMaster> ehird, think so
02:28:42 <AnMaster> not 100% sure
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 <AnMaster> err
02:29:00 <ehird> AnMaster: wait, ^Z^Z is always invalid right?
02:29:02 <ehird> oh wait no
02:29:04 <AnMaster> not that section
02:29:07 <ehird> it just means that that dimension is empty
02:29:07 <ehird> damn
02:29:19 <ehird> I thought: ^Z incrs Z, ^Z^Z incrs <one up form Z>
02:29:20 <ehird> etc
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:29:46 <AnMaster> so no infinite
02:29:59 <ehird> of course
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:18 <AnMaster> like that opengl thing does
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:31 <oklo> ...
02:30:32 <oklo> Z
02:30:33 <AnMaster> ehird, all from space to ~ are in use
02:30:34 <oklo> in befunge
02:30:56 <AnMaster> ehird, a sec for some info
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:05 <ehird> kind of
02:31:06 <ehird> like
02:31:13 <ehird> (char)1(char)
02:31:19 <ehird> means (4d's Z)
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:40 <ehird> (char)2(char)
02:31:42 <ehird> will be 5d
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:28 <ehird> hm
02:32:29 <ehird> 11
02:32:30 <ehird> vertical tab
02:32:39 <ehird> maybe?
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:32:58 <AnMaster> it is a working way
02:33:32 <ehird> eh
02:33:35 <ehird> I don't like that idea
02:33:38 <ehird> it's impure somehow
02:33:56 <AnMaster> hm ok
02:34:02 <AnMaster> so vertical tab could work
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:34:51 <AnMaster> ?
02:35:21 <AnMaster> because it may be hard to know how large the number would be
02:35:23 <AnMaster> if infinite
02:35:27 <AnMaster> or say
02:36:19 <AnMaster> Graham's Number
02:36:21 <AnMaster> :D
02:36:31 <ehird> AnMaster: just do
02:36:36 <ehird> vertical tab NUMBER veritacal tab
02:36:43 <AnMaster> ehird, ok could work
02:36:56 <AnMaster> ehird, how do you do vertical tab in emacs?
02:37:03 <AnMaster> or form feed for that matter
02:37:04 <ehird> AnMaster: hm \1 is start of heading
02:37:09 <ehird> maybe something like:
02:37:13 <ehird> at start of file:
02:37:21 <ehird> \1DIMENSIONS\n
02:37:21 <AnMaster> \1 is valid befunge code
02:37:28 <ehird> AnMaster: eh what
02:37:29 <ehird> :|
02:37:32 <ehird> I mean the ascii char 1
02:37:34 <AnMaster> ah ok
02:37:38 <AnMaster> right
02:37:39 <ehird> \1 DIMENSIONS \n
02:37:40 <ehird> so like
02:37:50 <AnMaster> ehird, wtf is the ascii char \1 btw?
02:37:50 <ehird> '\1', '6', '\n'
02:37:57 <ehird> AnMaster: http://www.asciitable.com/
02:37:58 <ehird> SOH
02:38:03 <AnMaster> SOH being?
02:38:08 <ehird> Start of Heading
02:38:08 <ehird> goddamn
02:38:12 <ehird> AnMaster: the byte value of the char!!
02:38:13 <AnMaster> and what is that *used* for
02:38:14 <AnMaster> ?
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:27 <AnMaster> ehird, just wondering
02:38:28 <ehird> and use it for headers
02:38:28 <ehird> SO
02:38:31 <ehird> at start of the file:
02:38:33 <ehird> \1 DIMENSIONS \n
02:38:38 <ehird> and then later on
02:38:42 <ehird> \1 INCR \n
02:38:47 <ehird> when INCR=1
02:38:54 <ehird> it's an error
02:38:56 <ehird> same with INCR=2
02:38:58 <ehird> those make no sense :)
02:38:59 <ehird> BUT
02:39:06 <ehird> '\1', '3', '\n'
02:39:09 <ehird> is also an error.
02:39:11 <ehird> because there is ^Z
02:39:13 <ehird> AND FINALLY
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:17 <ehird> '\1', '4', '\n'
02:39:18 <AnMaster> from wikipedia
02:39:23 <ehird> increments the d-4
02:39:27 <ehird> (d-3 is Z, etc)
02:39:31 <ehird> so, at start of file
02:39:37 <ehird> \1, D, \n specifies the dimensions
02:39:38 <AnMaster> ehird, so SOH 4 STX IMO
02:39:47 <ehird> eh
02:39:53 <ehird> I will think about it
02:39:58 <ehird> Maybe actually something lightweight
02:40:01 <ehird> who knows
02:40:04 <ehird> will sleep over it
02:40:05 <AnMaster> ehird, considering that was closed to how it was used :)
02:40:09 <AnMaster> originally
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:41:58 <AnMaster> oklo, what is it?
02:42:18 <oklo> irc is a chat protocol
02:42:23 <AnMaster> no
02:42:25 <AnMaster> I mean
02:42:28 <AnMaster> the parser
02:42:30 <AnMaster> what is it for?
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:00 <AnMaster> interesting
02:43:16 <AnMaster> oklo, very interesting, how will you support p however?
02:43:18 <ehird> bye foir today
02:43:21 <ehird> AnMaster: he won't
02:43:22 <AnMaster> ehird, cya
02:43:25 <AnMaster> ehird, night too
02:43:28 -!- ehird has quit ("Konversation terminated!").
02:43:28 <oklo> ofc i will
02:43:36 <AnMaster> oklo, good for you :)
02:43:44 <AnMaster> oklo, but it must run under NX
02:43:50 <AnMaster> PaX and such
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:01 <AnMaster> oklo, so JIT I assume?
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:23 <AnMaster> for say storing scratch 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:02 <AnMaster> that's a pitty
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:23 <AnMaster> oklo, heh
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:47 <AnMaster> it got a 93-only part
02:46:49 -!- Slereah has joined.
02:47:06 <AnMaster> oklo, and what did "my deewiant's" mean?
02:47:12 <oklo> hehe
02:47:15 <AnMaster> ?
02:47:29 <AnMaster> oklo, just he is damn useful to ask questions
02:47:33 <AnMaster> as he knows befunge well
02:47:35 <oklo> i was gonna write you test suite, then realized it was deewiant's
02:47:46 <oklo> *yoru
02:47:49 <oklo> *your
02:47:51 <AnMaster> oklo, indeed, I can't write that complex code
02:47:55 <AnMaster> in befunge
02:48:04 <oklo> i know
02:48:09 * AnMaster wonders why cfunge now hangs at:
02:48:11 <AnMaster> Testing fingerprint ROMA... loaded.
02:48:13 <AnMaster> :/
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:45 <AnMaster> oklo, I used it some yes
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:17 <oklo> how exactly?
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:42 <oklo> hmm... maybe
02:49:57 <oklo> can you help me get my brain started as to... why?
02:50:06 <AnMaster> say:
02:50:07 <AnMaster> #vt vectors here p
02:50:07 <AnMaster> >< blah
02:50:13 <AnMaster> that would form a mutex
02:50:26 <AnMaster> so you could make the other ip wait for < to be removed
02:50:33 <oklo> ah.
02:50:42 <oklo> okay, i should've seen that
02:50:53 <oklo> hmm...
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:51:55 <AnMaster> and b98 only
02:51:59 <AnMaster> doesn't exist in 93
02:52:07 <oklo> solving impossible problems is the best <3
02:52:21 <AnMaster> oklo, look I could do:
02:52:25 <AnMaster> > >
02:52:26 <AnMaster> err
02:52:30 <AnMaster> > <
02:52:30 <AnMaster> or
02:52:32 <AnMaster> v
02:52:33 <AnMaster> ^
02:52:36 <AnMaster> for mutex
02:52:43 <AnMaster> there are many ways to do it
02:53:16 <AnMaster> oklo, and of course for storing scratch data, p/s is very useful
02:53:21 <AnMaster> err
02:53:24 <AnMaster> p/g
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:53:55 <AnMaster> in 98
02:53:57 <AnMaster> :)
02:54:02 <oklo> hmm
02:54:13 <oklo> wuz that do?
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:16 <AnMaster> :)
02:54:24 <AnMaster> the first time the v won't execute
02:54:27 <oklo> ah
02:54:29 <AnMaster> so you need to reflect once
02:54:33 <oklo> forgot what "'" is
02:54:45 <AnMaster> oklo, hehe, and s is set next char
02:54:51 <AnMaster> ' is *get* next
02:55:00 <AnMaster> oklo, oh and don't forget sudden x
02:55:02 <AnMaster> to jump
02:55:06 <AnMaster> hard to handle
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:23 <oklo> sudden x?
02:55:26 <oklo> hmm
02:55:31 <AnMaster> x = set absolute vector
02:55:38 <AnMaster> as in, set delta to a vector
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:38 <AnMaster> as in how it moves
02:56:40 <oklo> oh
02:56:41 <oklo> fuck.
02:56:45 <AnMaster> delta like in <^v>
02:56:48 <oklo> :DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
02:56:49 <AnMaster> that is 98 only of course
02:56:56 <AnMaster> oklo, 93 doesn't have x
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:57:55 <oklo> not hard
02:57:58 <AnMaster> as in "select random of ^v<>"
02:58:00 <AnMaster> with ?
02:58:01 <oklo> ?
02:58:02 <oklo> i know
02:58:07 <oklo> not hard
02:58:13 <AnMaster> oklo, but you can't do longer jumps I think
02:58:19 <AnMaster> in 98 you can
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:35 <AnMaster> one*
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:58:59 <AnMaster> and 05-j
02:59:05 <AnMaster> jump backwards 5 spaces
02:59:09 <AnMaster> much easier than x still
02:59:15 <oklo> yeah
02:59:30 <AnMaster> but still you can't know where the stuff for j comes from
02:59:33 <AnMaster> it could be anywhere
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:30 <oklo> hmm...
03:00:33 <AnMaster> oklo, wraps with j
03:00:37 <AnMaster> http://rafb.net/p/6Trzmm34.html
03:00:46 <oklo> lessee
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:01:38 <AnMaster> jump from ; to next ;
03:01:42 <AnMaster> in current direction
03:02:07 <AnMaster> oklo, can think of some evil using with ; and p to put it there or remove the ;
03:02:11 <AnMaster> would be hard to handle
03:02:28 <AnMaster> oklo, oh I seen programs that copies themself around fungespace btw
03:02:38 <AnMaster> forever
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:22 <oklo> hmm
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:06:36 <AnMaster> oklo, see "troll" programs
03:06:39 <AnMaster> for copy and move
03:08:17 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
03:11:09 <oklo> heh
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:11:54 <oklo> :DD
03:12:01 <AnMaster> oklo, some are befunge93 btw
03:12:02 <oklo> that will be one of my goals for life
03:12:05 <AnMaster> so no way around them
03:12:23 * oklo starts a list
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 <AnMaster> oklo, good luck
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:14:17 <oklo> - fuck a dude
03:14:19 <oklo> :D
03:14:31 <GregorR-L> lol
03:14:32 <AnMaster> oklo, you are female or male?
03:14:33 <GregorR-L> Interesting list.
03:14:37 <AnMaster> and your preference?
03:15:03 <GregorR-L> slash aslpixplz
03:15:07 <oklo> male searching for female
03:15:17 <oklo> age 19, location finland
03:15:19 <oklo> horny for ya
03:15:21 <oklo> uh
03:15:23 <AnMaster> oklo, so why a dude?
03:15:24 <GregorR-L> Hahaha
03:15:25 <AnMaster> :P
03:15:27 <pikhq> LMAO
03:15:27 <slereah_> AnMaster wants some oklolove
03:15:33 <AnMaster> slereah_, I don't
03:15:36 <AnMaster> <oklo> - fuck a dude
03:15:42 <AnMaster> was just wondering about that
03:15:52 <slereah_> Stop your lies
03:15:58 <AnMaster> ;P
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:16:47 <slereah_> Am I on that list?
03:17:12 <oklo> GregorR: sure :D
03:17:30 <oklo> slereah_: yes, - slereah is the next line.
03:17:38 <oklo> "- slereah"
03:17:48 <slereah_> :o
03:17:53 <GregorR-L> Hahahaha
03:18:59 <oklo> "- kill someone"?
03:19:04 <oklo> hmm
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:15 <oklo> AnMaster: no
03:19:18 <slereah_> Become an ABORTIONIST
03:19:25 <slereah_> *SCATHING POLITICAL COMMENT*
03:19:25 <AnMaster> oklo, but one without JIT?
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 <AnMaster> jit*
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:21:46 <AnMaster> each an optimized version :D
03:21:55 <AnMaster> actually larger
03:22:17 <oklo> :)
03:22:20 <oklo> well
03:22:25 <oklo> 256^(80*25)
03:22:31 <oklo> but you were clse
03:22:33 <oklo> *close
03:22:58 <oklo> not much difference between 256^(80*25) and 255*(80*25)
03:23:00 <slereah_> 80*25 = the B grid?
03:23:00 <AnMaster> argh TI83+ says "out of range" on that one
03:23:38 * AnMaster tries maxima
03:23:38 <oklo> i would paste it but it's two pages.
03:23:46 <AnMaster> maxima locks up?
03:23:59 <AnMaster> :/
03:24:21 <AnMaster> bc is faster
03:24:26 <oklo> 4817 digits
03:24:33 <oklo> hmm
03:24:36 <AnMaster> yep
03:24:37 <oklo> that's not that much
03:24:39 <AnMaster> too large
03:24:47 <AnMaster> oklo, what about 32-bit?
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:19 <oklo> oh
03:25:20 <oklo> right
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:25:48 <AnMaster> output looks like that
03:26:05 <AnMaster> nice of bc
03:26:07 <oklo> what output?
03:26:15 <AnMaster> echo "(2^32)^(80*25)" | bc
03:26:17 <AnMaster> that output
03:26:18 <AnMaster> :P
03:26:52 <oklo> i don't know bc, just wrote len(str((256**4)**(80*24))) in python
03:27:03 * AnMaster don't know python
03:27:14 <oklo> >>> len(str((256**4)**(80*25)))
03:27:14 <oklo> 19266
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:27:51 <AnMaster> oklo, I can yes
03:28:00 <oklo> well, if you know *anything* really
03:28:01 <AnMaster> but I don't like python
03:28:16 <oklo> who does, it's just so goddamn nice to use <3
03:28:18 <slereah_> But, python is awesome!
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:06 <AnMaster> oklo, C, bash
03:30:07 <AnMaster> :D
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:30:43 <oklo> what'
03:30:45 <oklo> ...
03:30:53 <oklo> awk ~ bash
03:30:54 <oklo> elaborate.
03:30:58 <AnMaster> awk != bash
03:31:00 <AnMaster> very different
03:31:06 -!- calamari has joined.
03:31:07 <oklo> good, good, continue.
03:31:12 <AnMaster> oklo, got to sleep
03:31:21 <oklo> "go to sleep"?
03:31:26 <AnMaster> oklo, try man bash and man awk
03:31:27 <AnMaster> :P
03:31:30 <oklo> :D
03:31:36 <oklo> i'm on vista now
03:31:43 <AnMaster> get a real OS?
03:31:51 <oklo> omg never!
03:31:53 <oklo> :DDDDDDDDDDD
03:31:59 <slereah_> Get ESOS!
03:32:07 <calamari> hi
03:32:12 <oklo> hi callie
03:32:22 <calamari> callie?
03:32:25 <oklo> yes
03:32:31 <calamari> haha ok
03:32:34 <oklo> :D
03:32:37 <AnMaster> slereah_, ?
03:32:41 <oklo> i'm a bit goofy today, sorry
03:32:48 <AnMaster> slereah_, ESOS?
03:32:49 * oklo is so whacky
03:32:51 <slereah_> The legendary esoteric OS!
03:32:58 <slereah_> That no one will ever write
03:33:03 <AnMaster> slereah_, hah
03:33:10 <AnMaster> slereah_, link for specs?
03:33:12 <oklo> :D
03:33:22 -!- shinku has joined.
03:33:22 <AnMaster> no I won't
03:33:24 <slereah_> What, writing specs?
03:33:26 <oklo> someone do the imaginary pocket thing again!
03:33:28 <slereah_> People won't go that far!
03:33:32 <oklo> that was so much fun
03:33:36 <AnMaster> slereah_, just wondering how far it got
03:33:42 <slereah_> I dunno.
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:42 <AnMaster> tell me about it
03:34:46 <AnMaster> what would it be?
03:34:50 <AnMaster> written in befunge?
03:34:56 <AnMaster> or what would the cool thing be
03:35:06 <oklo> something about kernel being written in brainfuck
03:35:12 <AnMaster> ah riht
03:35:15 <AnMaster> right*
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:35:56 <slereah_> I know AnMaster.
03:36:01 <slereah_> It's pretty much that!
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:36:59 <slereah_> Stop your liiiies
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:37:55 <slereah_> :D
03:38:01 <oklo> from future import __braces__ in case someone hasn't seennit
03:38:09 <AnMaster> slereah_, your mad
03:38:15 <AnMaster> you're*
03:38:18 <AnMaster> or whatever
03:38:32 <oklo> i never use that much shitespace.
03:38:43 <oklo> " && ", wtf is that about
03:38:45 <oklo> :D
03:38:57 <AnMaster> oklo, "from future" lol
03:39:05 <AnMaster> slereah_, that code is 1) unmaintainable 2) unreadable 3) a mess
03:39:06 <oklo> lol
03:39:13 <slereah_> AnMaster: I know :D
03:39:14 <oklo> AnMaster: from __future__ import braces ofc
03:39:19 <slereah_> I also removed all strings.
03:39:27 <slereah_> All characters are represented as integers.
03:39:29 <AnMaster> oklo, oh?
03:39:46 <AnMaster> slereah_, what does it do
03:39:50 <slereah_> Try it!
03:39:52 <oklo> >>> from __future__ import braces
03:39:52 <oklo> SyntaxError: not a chance (<pyshell#4>, line 1)
03:39:54 <oklo> sorry
03:39:58 <AnMaster> oklo, I'm not insane
03:40:20 <AnMaster> oklo, hah. an easter egg
03:40:24 <oklo> kinda.
03:40:39 <slereah_> Some guy had a programming assignment. The restrictino on that assignment were fucking stupid.
03:40:43 <slereah_> So I did this
03:40:46 <AnMaster> oklo, interesting: SyntaxError: future feature makethiswork is not defined
03:40:52 <AnMaster> wtf
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:52 <slereah_> THE FUTURE
03:41:56 <oklo> but i don't know anything, i just use it
03:41:59 <AnMaster> oklo, I see
03:42:17 <AnMaster> oklo, what thinks can you import from it
03:42:30 <slereah_> Flying cars.
03:42:35 <slereah_> Also, anti-gravity
03:43:19 <AnMaster> -_-
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:46:55 <AnMaster> night
03:47:15 <oklo> i'm going to call that "perium" from period / peruneum
03:47:18 <oklo> *perineum
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:27 <oklo> hmm...
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:01 <lament> oklo: lol
05:10:13 <lament> hint: you don't need any gotos
05:10:57 <lament> use CPS!
05:12:18 <oklo> i want to do this with while loops.
05:12:26 <oklo> and breaks <3
05:12:29 <oklo> and continues <3
05:12:41 <oklo> and boolean flags!
05:12:49 <oklo> awesome.
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:45:50 <lament> yeah
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:52:20 <oklo> sleeps ->
05:59:10 * lament proceeds to write a stupid threaded befunge93-scheme compiler
06:13:23 -!- GregorR-L has joined.
06:15:30 -!- GregorR-L has quit (Client Quit).
06:20:17 -!- BlackMeph has joined.
06:23:41 -!- BlackMeph has quit (Client Quit).
06:24:03 -!- BlackMeph has joined.
06:24:47 -!- BlackMeph has quit (Client Quit).
06:28:11 <lament> bah, scheme is annoying, it doesn't have slime
06:31:26 <lament> ...or hashtables
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:34 <calamari> befunge will do that to you
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:11:36 <AnMaster> lament, what did you do?
10:15:48 -!- faxathisia has joined.
11:46:52 -!- jix has joined.
11:57:23 -!- jix has quit (Nick collision from services.).
11:57:33 -!- jix has joined.
12:16:06 <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:13:21 <AnMaster> faxathisia, tetration?
15:13:41 <faxathisia> I have no idea
15:14:03 <faxathisia> pikhq hopefully knows
15:14:21 <faxathisia> (wiki says it's an iterated exponential)
15:14:29 <AnMaster> I see
15:15:05 <oklo> wwwhat
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:35 <AnMaster> :D
15:15:53 <AnMaster> specially compiled though:
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:09 <faxathisia> they should teach math in schools :D
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:04 <faxathisia> looks like Satan to me
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:13 <faxathisia> thue is cool
15:19:18 <AnMaster> oklofix, oh? gave up on compiler for befunge?
15:19:20 <faxathisia> It's just markov model isn't it?
15:19:26 <faxathisia> markov algorithm*
15:19:28 <oklofix> AnMaster: no, but i'm delaying it
15:19:32 <AnMaster> hah ok
15:19:33 <faxathisia> markov algorithm is TC anyway
15:19:39 <faxathisia> and it feels like Thue
15:19:57 <oklofix> AnMaster: http://www.vjn.fi/pb/p423454326.txt
15:20:05 <oklofix> see "Problem"
15:20:14 <AnMaster> oklofix, DNS failure
15:20:17 <oklofix> :o
15:20:27 <AnMaster> oklofix, that is DNS timeout
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:20:53 <faxathisia> hyperturning whatever
15:21:04 <AnMaster> faxathisia, hm? what would it do?
15:21:04 <faxathisia> turing**
15:21:07 <faxathisia> I don't know :S
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:26 <oklofix> i'll repaste
15:21:32 <faxathisia> run some small class of programs not computable on a turing machine
15:21:34 <AnMaster> oklofix, rafb is good
15:21:40 <faxathisia> I don't care what those programs are
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:14 <faxathisia> I don't know
15:22:24 <faxathisia> I guess they are still turing
15:22:35 <oklofix> http://pastebin.ca/942392
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:24 <AnMaster> just to annoy ppl :D
15:23:32 <faxathisia> gopher o_o
15:23:40 <oklofix> AnMaster: did you look?
15:23:47 <AnMaster> faxathisia, just run it to shock ppl on irc :P
15:23:51 <AnMaster> oklofix, looking
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:32 <AnMaster> oklofix, Damnitall?
15:24:38 <AnMaster> ;P
15:24:44 <oklofix> huh?
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:08 <AnMaster> or even damnitall
15:25:16 <oklofix> :D
15:25:17 <AnMaster> ;P
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:12 <oklofix> wwhat?
15:26:17 <AnMaster> er?
15:26:25 <oklofix> i just specified a label cannot start with loop""
15:26:29 <oklofix> *"loop"
15:26:33 <AnMaster> ah right
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:16 <AnMaster> oklofix, heh
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:20 <AnMaster> ?
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:36 <AnMaster> then a do while loop?
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:01 <oklofix> ...a do while loop?
15:29:07 <AnMaster> do {
15:29:08 <oklofix> you cannot do that with that N
15:29:10 <AnMaster> whatever
15:29:17 <AnMaster> } while (random() % 2);
15:29:18 <AnMaster> ?
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:04 <oklofix> in Jumpit
15:31:24 <oklofix> "label" just marks a label, and has the side-effect given by M
15:31:27 <oklofix> that's all about jumpit
15:31:40 <AnMaster> mhm
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:06 <AnMaster> yes right
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:33:45 <oklofix> i tihnk
15:33:46 <oklofix> *think
15:35:03 <oklofix> i need to go now, today is thue-day, i'll prolly tackle that problem next week
15:35:07 <oklofix> and kill it.
15:35:08 -!- jix has quit ("CommandQ").
15:35:09 <oklofix> ->
15:35:41 <faxathisia> I can't figure out how to code this without using streams/lazy-lists :S
15:35:54 <AnMaster> faxathisia, this = ?
15:36:08 <faxathisia> Prolog interpreter in a procedural language
15:36:13 <faxathisia> (scheme)
15:36:17 <faxathisia> (at the moment)
15:36:18 <AnMaster> ok *backs away*
15:36:22 <faxathisia> ?
15:36:35 <AnMaster> prolog and scheme are both over my head :P
15:36:40 <faxathisia> hardly
15:36:50 <AnMaster> bbl
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:41 <AnMaster> wtf?
16:22:48 * AnMaster was optimizing wrapping
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:22 <AnMaster> ie what are you testing
16:25:51 <Deewiant> it puts a " at the eastmost location and westmost location in space, on the same line of course
16:25:56 <Deewiant> and then goes there
16:25:59 <AnMaster> hm
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:26:58 <AnMaster> aha
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:27:41 <Deewiant> v>1> \v v"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:49 <AnMaster> the list of supported ones:
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> // MODU - Modulo Arithmetic
16:35:57 <AnMaster> { .fprint = 0x4d4f4455, .loader = &FingerMODUload, .opcodes = "MRU" },
16:35:57 <AnMaster> // NULL
16:35:57 <AnMaster> { .fprint = 0x4e554c4c, .loader = &FingerNULLload, .opcodes = "ABCDEFGHIJKLMNOPQRSTUVXYZ" },
16:35:58 <AnMaster> like that
16:36:19 <AnMaster> as they are sorted it should be easy to find the right one
16:36:19 <AnMaster> :D
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:37 <AnMaster> when unloading
16:39:38 <Deewiant> I just loop from A-Z and check which ones aren't null :-P
16:39:40 <AnMaster> only used then
16:39:50 <AnMaster> hm?
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:07 <AnMaster> ah right
16:41:10 <Deewiant> and then IP just has 26 stacks
16:41:22 <Deewiant> or something like that.
16:41:31 <AnMaster> Deewiant, yes but I thought fingerprints was local to the IP?
16:41:38 <AnMaster> as in what ones are loaded
16:41:40 <Deewiant> like said, IP has 26 stacks.
16:41:45 <AnMaster> ah right
16:41:46 <AnMaster> :)
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:51:51 <AnMaster> heh
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:55:49 <Sgeo> hi calamari
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:21 <AnMaster> Deewiant, in D?
17:20:23 <Deewiant> yep
17:20:25 <AnMaster> ah
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:24:29 <AnMaster> indeed
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:34:12 <AnMaster> r += (y + mask) ^ mask;
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:53:22 <Deewiant> or no, it is right after all.
17:53:57 <AnMaster> it gives correct result
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:08 <AnMaster> Deewiant, indeed
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:29 <AnMaster> lament, indeed?
18:00:38 -!- ais523 has joined.
18:00:38 <AnMaster> what about that?
18:00:41 <AnMaster> we know that
18:02:37 <lament> from which i conclude
18:02:47 <lament> that i should compile it in a stupid way instead
18:02:54 <AnMaster> err
18:03:07 <Deewiant> forsooth
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:01 <AnMaster> ais523, I checked that
18:10:08 <AnMaster> it is a __builtin__
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:10:38 <AnMaster> good idea
18:15:15 <AnMaster> Deewiant, different code
18:15:38 <Deewiant> how different
18:16:26 <AnMaster> not much
18:16:59 * AnMaster pastebins
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:20:50 <AnMaster> the patented one?
18:21:05 <Deewiant> ye
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:47 <Deewiant> thought so
18:21:55 <Deewiant> wonder why there's an extra mov
18:21:58 <AnMaster> Deewiant, eh both moves exist in both?
18:22:05 <AnMaster> as in first and last move
18:22:15 <Deewiant> doabs: mov sar xor sub mov
18:22:20 <Deewiant> doother: mov sar add xor
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:24:36 <Deewiant> hmm, well whatever
18:25:00 <AnMaster> Deewiant, no clue about that
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:25:17 <AnMaster> I'll try
18:25:53 <AnMaster> Deewiant, it does indeed
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:45 <AnMaster> :)
18:27:57 <AnMaster> Deewiant, I mean, donaive differs from abs then
18:28:51 <Deewiant> well, of course
18:28:55 <AnMaster> oh?
18:28:56 <Deewiant> AnMaster: abs doesn't use 64-bit ints
18:29:02 <AnMaster> Deewiant, aha
18:29:04 <AnMaster> I see
18:29:10 <Deewiant> it's int abs(int)
18:29:15 <AnMaster> labs
18:29:22 <Deewiant> yep, use that one
18:29:32 <Deewiant> and it should look the same again
18:29:49 <AnMaster> they do yes
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:35 <Deewiant> probably
18:30:38 <Deewiant> anyhoo, sauna ->
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:50:26 <faxathisia> haha
19:50:29 <faxathisia> that's horrible
19:53:59 <AnMaster> Deewiant, there? BAD: G gets like g
19:54:05 <AnMaster> how is ORTH get different?
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:56:08 <AnMaster> ah
19:57:06 <Sgeo> noerjan
19:57:09 <Sgeo> (no=hi)
19:57:26 <AnMaster> Cannot test S reliably. If this line begins with "GOOD: ", it worked.
19:57:29 <AnMaster> heh
19:57:36 <AnMaster> Deewiant, so now newline after :)
19:58:21 <oerjan> evenlessgeo
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:32 <AnMaster> even with your algorithms
20:01:55 <AnMaster> if say, delta is as after a ^, then you teleport sidways, so there is no program above or below
20:01:58 <AnMaster> then what should happen?
20:02:04 <Deewiant> infinite loop, of course
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:02:46 <AnMaster> Deewiant, heh ok
20:02:49 <Deewiant> "what did you expect?"
20:02:53 <AnMaster> indeed
20:03:02 <Sgeo> What's this about "GOOD: "? what langyage?
20:03:13 <AnMaster> Sgeo, test suite for befunge98
20:03:18 * AnMaster is writing cfunge
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:53 <AnMaster> Deewiant, err what?
20:03:54 * Sgeo stole some concept from befunge98 for use in PSOX iirc
20:04:03 <AnMaster> different urls?
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 <AnMaster> was weeks ago
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:13 <AnMaster> Deewiant, I see
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:09:52 <AnMaster> what is that about?
20:12:41 <AnMaster> $ time ./cfunge.opt ~/bashfunge/trunk/mycology/mycology.b98 > /dev/null
20:12:41 <AnMaster> real 0m0.096s
20:12:41 <AnMaster> user 0m0.075s
20:12:41 <AnMaster> sys 0m0.016s
20:12:42 <AnMaster> Deewiant, :D
20:12:51 <AnMaster> and that is with extensions
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 <Deewiant> nothing really
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:15:58 <Deewiant> s/h$//
20:16:05 <AnMaster> aha
20:16:13 <Deewiant> but no, it really doesn't matter
20:16:17 <Deewiant> if the rest are GOOD
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:18:56 <AnMaster> the same cell I mean
20:19:01 * AnMaster looks
20:19:13 <AnMaster> both values will work
20:19:23 <AnMaster> Deewiant, is it supposed to be like that?
20:19:25 <Deewiant> you mean 12R 12R?
20:19:44 <Deewiant> or what?
20:19:44 <AnMaster> Deewiant, yep, will return 1 and then 2, both 1 and 2 will however point to the same cell
20:20:11 <Deewiant> doesn't matter I guess
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:14 <AnMaster> Deewiant, indeed
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:31 <AnMaster> Deewiant, exactly
20:21:39 <ehird> ooh
20:21:41 <ehird> what did i miss
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:00 <ehird> meh
20:22:04 <AnMaster> ehird, what?
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:09 <ehird> :D
20:22:13 <ehird> Deewiant: refc=refcount?
20:22:15 <AnMaster> ehird, that's a nice name
20:22:22 <Deewiant> "referenced cells extension"
20:22:36 <AnMaster> ehird, what handprint? FFUN? FUNH?
20:22:48 <ehird> <AnMaster>someone said it was crappyly coded, ehird I think
20:22:50 <ehird> you bet :D
20:22:55 <ehird> AnMaster: FGEH
20:22:57 <ehird> i guess
20:23:01 <AnMaster> ehird, interesting
20:23:08 <ehird> it is pronounced 'fung-ehh'
20:23:10 <Deewiant> or FEH? :-P
20:23:11 <ehird> like 'fungy'
20:23:11 <AnMaster> tell me when it's done
20:23:13 <ehird> but without the ee
20:23:13 <ehird> :p
20:23:45 <AnMaster> ehird, anyway even if it is superior, I can make mine better
20:23:56 <AnMaster> always possible
20:23:59 <ehird> AnMaster: i care so much
20:24:00 <ehird> :|
20:24:05 <ehird> anyhoo, what does REFC do?
20:24:12 <AnMaster> ehird, it does madness
20:24:19 <Deewiant> allows you to reference a pair of cells with one value
20:24:20 <AnMaster> ehird, like pointers to cells
20:24:28 <Deewiant> so essentially what you do is you grow an array which contains pairs
20:24:35 <AnMaster> yep
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:03 <AnMaster> so it's always a memory leak
20:25:07 <ehird> hmm
20:25:09 <ehird> from my todo:
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:19 <ehird> :|
20:25:27 <AnMaster> ehird, good luck :D
20:25:33 <AnMaster> I think you can do it
20:25:37 <Deewiant> bignum-lengthed vectors? aleph-null-funge? :-P
20:25:50 <AnMaster> Deewiant, why not aleph-one?
20:25:51 <ehird> Deewiant: BF_word
20:25:56 <ehird> which is int32_t
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:12 <AnMaster> ehird, so 2^31 -1 dimensions?
20:26:12 <ehird> totally no fair
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:48 <ehird> yes but easier
20:26:48 <ehird> :)
20:26:51 <AnMaster> true
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:11 <ehird> :-)
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:27:44 <AnMaster> ehird, indeed
20:27:51 <AnMaster> ehird, and most in 2D
20:27:58 <ehird> yes
20:27:58 <AnMaster> 1D would be more rare again
20:28:06 <ehird> is unefunge even tc
20:28:07 <ehird> :|
20:28:19 <AnMaster> ehird, it is
20:28:26 <AnMaster> ehird, at least I think it is
20:28:29 <ehird> btw
20:28:33 <ehird> the Hunt the Wumpus-93
20:28:36 <ehird> does that work in 98 interps?
20:28:41 <AnMaster> ehird, yep, works in mine
20:28:44 <ehird> oklopol: I figured out how to do self-modifing code
20:28:46 <AnMaster> very fast
20:28:56 <faxathisia> hi ehird
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 <AnMaster> XD
20:29:09 <ehird> oklopol: Also include a decompiler.
20:29:16 <ehird> oklopol: Then 'p' compiles then MOVs to the codespace
20:29:18 <ehird> 'g' decompiles
20:29:20 <ehird> faxathisia: hai
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:29:48 <ehird> :D
20:30:02 <Deewiant> mine can do that already
20:30:03 <ehird> AnMaster:
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:12 <ehird> AnMaster: so what
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:43 <AnMaster> ehird, well I use bzr 1.1
20:30:46 <ehird> AnMaster: uhh so you compile it to a nop
20:30:46 <AnMaster> and bzr 1.2 is out
20:30:58 <AnMaster> ehird, hm ok
20:31:00 <Deewiant> AnMaster: you can always compile it to reverse at compilation time
20:31:13 <AnMaster> Deewiant, hm true
20:31:17 <AnMaster> ehird, indeed not a nop
20:31:29 <AnMaster> you reverse on errors in befunge
20:31:33 <AnMaster> like unknown instructions
20:31:33 * ehird update&upgrades
20:31:35 <AnMaster> or whatever
20:31:37 <ehird> AnMaster: yeah sure
20:31:39 <ehird> AnMaster: compile it to that.
20:31:42 <AnMaster> ehird, :)
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:52 <AnMaster> :D
20:31:53 <ehird> so, add oklopol's stack elimination
20:31:54 <ehird> and whooosh
20:32:18 <AnMaster> ehird, there are one major incompatiblity between 93 and 98, how to handle multiple spaces in strings
20:32:26 <Deewiant> and how to divide by zero.
20:32:29 <ehird> AnMaster: that thing screws up a bit
20:32:29 <ehird> :)
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:42 <AnMaster> ie, drop duplicate spaces
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:36 <AnMaster> or likely less
20:33:40 <Deewiant> oh noes, teh slowness!!!!oneoneoneeleven1/9
20:33:48 <AnMaster> Deewiant, heheh :)
20:33:53 <ehird> AnMaster: you think wumpus.b is bad?
20:33:57 <ehird> err
20:33:58 <ehird> .bf
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:12 <AnMaster> ehird, I have
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:20 <AnMaster> :P
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:28 <AnMaster> :D
20:34:29 <AnMaster> :D
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:34 <AnMaster> I think that's the url
20:35:37 <AnMaster> it is slow
20:35:38 <AnMaster> very slow
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:35:59 <AnMaster> Deewiant, heh ok
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:51 <ehird> lament: hardly
20:36:54 <AnMaster> Deewiant, but true, ccbi is quite fast too, compared to what bashfunge was
20:37:00 <lament> ehird: really!
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:23 <ehird> for this:
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:27 <ehird> 1 =- stringmode;
20:37:34 <Deewiant> AnMaster: :-D
20:37:40 <AnMaster> Deewiant, also it failed when it got to x, I gave up there
20:37:45 <AnMaster> didn't do much of the rest
20:37:47 <Deewiant> :-P
20:37:50 <lament> ehird: the most annoing for the retarded compiler i'm trying to write, not for a c interpreter
20:37:57 <ehird> lament: oh
20:37:59 <ehird> lament: trivial
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:08 <AnMaster> indeed
20:39:58 <ehird> AnMaster: i might use __asm__ for this
20:39:59 <ehird> :-D
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:03 <ehird> hmm
20:40:03 <AnMaster> :)
20:40:07 <ehird> fungeh kinda sucks for a name
20:40:07 <ehird> :P
20:40:20 <ehird> AnMaster: catch the signal
20:40:21 <ehird> XD
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:36 <ehird> i don't like it
20:40:37 <ehird> so meh
20:40:38 <Deewiant> ehird: just call it "fungy"
20:40:46 <ehird> AnMaster: #ifdef __PPC__
20:40:55 <ehird> Deewiant: #include "fungy/fungespace.h"
20:40:55 <AnMaster> ehird, what about kung-funge?
20:40:56 <ehird> naaaah
20:40:57 * AnMaster runs
20:40:58 <AnMaster> err
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:12 <Deewiant> frungy! frungy! frungy!
20:41:15 <AnMaster> kung-fu?
20:41:19 <AnMaster> something like that?
20:41:39 <AnMaster> so just change the second word to funge?
20:41:46 <Deewiant> "kung fu"
20:41:53 <ehird> oerjan: vertical strnigs too
20:41:57 <AnMaster> oerjan, not only that, but vertical too
20:41:59 <Deewiant> or just 功夫 :-P
20:42:00 <AnMaster> Deewiant, ah yes
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:18 <Deewiant> AnMaster: wikipedia :-)
20:42:20 <ehird> aww
20:42:22 <ehird> /nick 功夫
20:42:23 <ehird> fails
20:42:26 <AnMaster> Deewiant, heh
20:42:30 <oerjan> i consider "line" as the geometric concept here ;)
20:42:30 <Deewiant> ehird: realname works though
20:42:32 <AnMaster> ehird, indeed, see IRC specs
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:03 <AnMaster> ehird, indeed
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:04 <AnMaster> or something like that
20:44:10 <Deewiant> RFC 2812: "No specific character set is specified."
20:44:17 <AnMaster> Deewiant, 2812, bah
20:44:17 <ehird> Deewiant: ignore the irc rfcs
20:44:18 <ehird> seriously
20:44:25 <AnMaster> nobody follows 2812
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:00 <Deewiant> "topology theory"? :-P
20:45:03 <AnMaster> Deewiant, http://tools.ietf.org/html/rfc1459
20:45:04 <ehird> Deewiant: used lightly
20:45:04 <ehird> :D
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:34 <Deewiant> er, 1459
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 <AnMaster> equivalence of two nicknames.
20:45:53 <AnMaster> :)
20:45:53 <AnMaster> (weird yes)
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:46:43 <AnMaster> that's what I've been told
20:47:03 <ehird> AnMaster: correct
20:47:15 <Deewiant> right, didn't know that
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:27 <ehird> :)
20:47:30 <Deewiant> I'm too young
20:47:35 <ehird> Deewiant: ditto
20:47:37 <AnMaster> Deewiant, so am I
20:47:41 <ehird> i think everyone here is
20:47:41 <ehird> :)
20:47:42 <AnMaster> but I like computer trivia
20:47:50 <Deewiant> then why do you know stuff about 7-bit charsets??! :-P
20:47:55 <Deewiant> (and I don't) ;-)
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:27 <AnMaster> hardly noticable
20:49:31 <AnMaster> and I may very well be wrong
20:49:38 <Deewiant> you're probably right
20:49:45 <Deewiant> before it hits the main function:
20:49:51 <Deewiant> gc initialized
20:49:55 <Deewiant> command line arguments parsed
20:50:02 <Deewiant> module constructor run for each fingerprint
20:50:07 <Deewiant> some buffers allocated
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:14 <AnMaster> Sgeo, I think it bans *serv
20:51:15 <ehird> And a queen
20:51:22 <AnMaster> ehird, hehe, I know where UK is
20:51:23 <Sgeo> AnMaster, but only FreeNode does, it seems
20:51:24 <ehird> :D
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:45 <ehird> AnMaster: bingo
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:14 <ehird> Sgeo: Yes, that.
20:52:19 <Deewiant> AnMaster: mostly it's the module constructors which take time.
20:52:44 <AnMaster> Deewiant, hehe
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:25 <ehird> :|
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:38 <AnMaster> ehird, impossible
20:53:42 <Deewiant> AnMaster: also, because of TRDS I need to make a copy of the entire funge-space.
20:53:42 <AnMaster> you can't do it afaik
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:24 <Sgeo> Use assembla!
20:54:27 <AnMaster> ehird, just get last release? :/
20:54:30 <AnMaster> ehird, well a sec
20:54:41 <AnMaster> ehird, maybe the one mirrored by lauchpad works better
20:54:49 * Sgeo hosts PSOX on Assembla
20:54:58 <Sgeo> (VCS is SVN)
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 <ehird> brilliant!
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:26 <ehird> :D
20:56:49 <AnMaster> ehird, well try #launchpad and #ubuntu
20:56:54 <AnMaster> I use gentoo and freebsd :P
20:57:07 <Deewiant> yes, and gentoo provides bzr 0.17 if you recall
20:57:16 <Deewiant> anything newer is unstable
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:03 <Deewiant> memleak mode xD
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:28 <AnMaster> my code is very very much C99
20:58:29 <ehird> far more convenient than free()
20:58:33 <ehird> but yeah.
20:58:37 <ehird> unfortunately, there's the rest of c++
20:58:38 <ehird> :)
20:58:44 <AnMaster> ehird, exactly
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:44 <AnMaster> in my C code
20:59:51 <ehird> basically I think C++'s lifetime&memory stuff is right, but the rest of it is sadly tremendously misguided
20:59:58 <AnMaster> ehird, exactly
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:30 <AnMaster> aha
21:02:45 <AnMaster> Sgeo, PCRE = perl compatible regex
21:02:50 <ehird> AnMaster: no such thing as 'unstable ubuntu'
21:02:51 <ehird> well
21:02:55 <ehird> the bleeding edge distro
21:02:56 <ehird> :
21:02:57 <AnMaster> ehird, oh yes there is
21:02:57 <ehird> :)
21:02:58 <Sgeo> http://docs.python.org/lib/re-syntax.html
21:02:59 <Deewiant> AnMaster: sure it makes sense
21:03:02 <AnMaster> ehird, all is
21:03:10 <AnMaster> Deewiant, the ?: bit doesn't?
21:03:13 <Sgeo> (?:...)
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:51 <Deewiant> that is exactly a perl regex
21:03:55 <ehird> fungy is a kinda sucky name
21:03:55 <ehird> :p
21:03:56 <AnMaster> hm
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:29 <AnMaster> ok
21:04:39 <AnMaster> Sgeo, I suggest C
21:04:44 <AnMaster> or objc maybe
21:04:49 <Deewiant> C(?:[+]{2}|#)?
21:04:50 <Sgeo> Why C as opposed to C++?
21:04:56 <AnMaster> Deewiant, not #
21:04:56 <ehird> AnMaster: please don't tell Sgeo to learn C/C++
21:05:01 <AnMaster> ehird, why?
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:18 <AnMaster> ehird, err what?
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:37 <AnMaster> :)
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:06:57 <AnMaster> heh, it doesn't?
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:07 <AnMaster> like say tetex
21:08:12 <AnMaster> or pdftex
21:08:15 <ehird> AnMaster: Well TexLive and XeTeX and all are written in C (iirc) in a modern fashion
21:08:16 <ehird> So no.
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:08:54 <AnMaster> (hehehe)
21:08:55 <ehird> Plus UNICODE
21:08:57 <ehird> UNICOOOODE
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:00 <AnMaster> mhm
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:24 <Deewiant> heads will roll
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:23 * AnMaster watches with interest
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:13 <ehird> :|
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:36 <ehird> :|
21:13:38 <AnMaster> Deewiant, and also, -fwhole-program?
21:13:48 <AnMaster> for use with -combine
21:14:18 <AnMaster> ehird, I think Sgeo want you to give some specific examples
21:14:24 <lament> where's sgeo's code?
21:14:26 <AnMaster> like "like x"
21:14:32 <AnMaster> lament, I wonder that too
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:47 <AnMaster> ehird, wtf is that
21:15:49 <lament> what the fuck is that
21:15:51 <AnMaster> I don't know python
21:15:52 <ehird> AnMaster: StringTemplate
21:15:54 <ehird> and that's not python
21:15:55 <ehird> :D
21:16:00 <AnMaster> ehird, what is it then?
21:16:04 <ehird> AnMaster: stringtemplate
21:16:10 <AnMaster> ehird, and, what is that?
21:16:18 <ehird> AnMaster cannot use google
21:16:20 <ehird> it shoots him
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:16:48 * AnMaster runs
21:17:39 <AnMaster> ehird, ok found it
21:17:40 <AnMaster> hm
21:17:50 <AnMaster> Sgeo, <ehird> $blimps:{b|case $b.id$:$\n$ $b.code$$\n$ break\;};seperator="\n"}$ <-- epic
21:17:56 <AnMaster> that was one I think
21:18:07 <ehird> dude
21:18:09 <ehird> that is unrelated to sgeo
21:18:15 <ehird> :|
21:18:15 <AnMaster> ah ok
21:18:19 <ehird> why is everyone trying to link it to sgeo
21:18:20 <ehird> hehe
21:18:38 <AnMaster> ehird, you said his code was horrible, we asked for example, you posted that
21:18:39 <AnMaster> that is why
21:18:52 <oklokok> AnMaster: what country do you live int?
21:18:53 <oklokok> *in
21:18:58 <AnMaster> oklokok, Sweden, why?
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:26 <AnMaster> oklokok, oh yes dns was down
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:23:59 <AnMaster> ah
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 <ehird> a hash table?
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:05 <ehird> :(
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:28 <AnMaster> ehird, err what?
21:30:43 <AnMaster> ehird, you got 64-bit? I can send you a static binary if you do
21:31:35 <ehird> AnMaster: 32-bit
21:31:39 <AnMaster> damn :/
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:31:56 <ehird> ok
21:31:58 <ehird> every gc,
21:32:06 <ehird> you go through every page on the internet
21:32:15 <AnMaster> ??
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:32:24 <ehird> XD XD XD XD XD
21:33:06 <AnMaster> oh a garbage collector for internet?
21:33:36 <oklokok> ehird: sounds awesome
21:34:18 <ehird> AnMaster: for a short url service
21:34:24 <ehird> :-D
21:34:31 <AnMaster> ehird, not doable however
21:34:33 <AnMaster> in reality
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:38:59 <ehird> hmm
21:39:01 <ehird> cherokee seems OK
21:39:36 <AnMaster> ehird, lighttpd :)
21:39:45 <ehird> AnMaster: sucks
21:39:48 <ehird> the config gets all sprawling
21:39:53 <AnMaster> hm
21:39:56 <ehird> and its fastcgi 'lets try and spawn it myself' sucks
21:39:59 <ehird> because itnever works
21:39:59 <AnMaster> ehird, thttpd?
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:37 <ehird> Hmm
21:40:40 <ehird> no
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:48 <ehird> i think
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:11 <AnMaster> no problems whatsoever
21:41:19 <ehird> hmmmm
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:39 <AnMaster> err
21:41:41 <AnMaster> fcgi
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:43:47 <ehird> check it out
21:45:01 <AnMaster> ok, but I don't care much
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:45:46 <AnMaster> ok
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
21:55:40 <AnMaster> 64-bit is -march=k8
22:00:15 <AnMaster> ehird, does it work for you?
22:00:32 <AnMaster> of course you would get best result optimizing for your arch
22:05:19 <ehird> AnMaster: works
22:05:26 <ehird> $ uname -a
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:05:29 <ehird> :P
22:05:46 <AnMaster> ehird, ?
22:05:52 <AnMaster> that doesn't say much
22:06:24 <AnMaster> ehird, grep -E '(vendor|model|flags)' /proc/cpuinfo
22:06:25 <AnMaster> :P
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 : 12
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:30 <ehird> and yes
22:08:31 <AnMaster> ehird, of course I recommend building and profiling your own
22:08:33 <ehird> i know this box suxx0r
22:08:37 <ehird> its the crap one
22:08:37 <ehird> :)
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:10:06 <AnMaster> :/
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:38 <ehird> AnMaster: no? ;)
22:22:45 <AnMaster> err? was busy
22:22:54 <AnMaster> ehird, no I can't think of one
22:23:07 * AnMaster never really cared about qdbs
22:24:11 <ehird> i mgiht call it 'busy'
22:24:13 <ehird> :)
22:24:34 <Sgeo> How do I make my code readable?
22:24:51 <AnMaster> Sgeo, ask ehird
22:24:53 <AnMaster> he knows
22:24:59 <Sgeo> ehird?
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:43:32 <Sgeo> hehe
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:46 <AnMaster> interesting
22:45:48 * Slereah gives ehird a rat's ass.
22:45:58 <Slereah> You can do whatever you want with it.
22:46:01 <Slereah> No questions asked.
22:46:19 <ehird> oklokok: /oklopol maybe i guess#
22:46:20 <ehird> :P
22:46:22 <ehird> Slereah: heh
22:46:25 * AnMaster notes it shaves another 0.08 seconds off runtime for mycology without breaking stuff
22:46:28 <AnMaster> Deewiant, ^
22:46:31 <AnMaster> \o/
22:46:32 <AnMaster> :P:P
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:01 <ehird> beyond admins
22:55:46 <ehird> oerjan: i mean, what can you display about a quote submitter
22:55:49 <ehird> number of quotes
22:55:51 <ehird> that's about it
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:00:45 * oerjan was busy in #haskell
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:02:04 <ehird> :)
23:08:11 <ehird> oerjan: start caring! ;)
23:08:41 * oerjan thiddles his fumbs
23:08:54 <ehird> NAOO
23:09:00 <ehird> Slereah: okay, you then :P
23:09:13 <Slereah> D:
23:10:16 <AnMaster> Slereah, D: ? it's a variant of D?
23:10:19 * AnMaster run
23:10:20 <AnMaster> runs*
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:12:56 <ehird> <_<
23:13:34 <faxathisia> :S
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:08 <ehird> hm wait
23:14:11 <ehird> when user contributing
23:14:13 <ehird> i meant:
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:15 <ehird> user accounts
23:14:21 <ehird> log in and submit
23:14:27 <Slereah> Nah.
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:38 <ehird> oh
23:14:40 <ehird> and a last of tags
23:14:45 <ehird> and maybe a note fiel
23:14:45 <ehird> d
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:01 <Sgeo> WHY?
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:31 <faxathisia> python?????
23:15:39 -!- ais523 has joined.
23:15:44 <Sgeo> It can't be a hybrid site
23:15:45 <Sgeo> ?
23:15:47 <Sgeo> Hi ais523
23:15:55 <ais523> Hi Sgeo
23:16:02 <ehird> Sgeo: i don't want it to be :P
23:16:04 <ehird> ais523: hey there
23:16:08 <ehird> faxathisia: convenient.
23:16:12 <ais523> Hi ehird, as well
23:16:24 <AnMaster> ehird, if it's python you can get Sgeo to help
23:16:25 <AnMaster> :D
23:16:27 * AnMaster runs
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:32 <ehird> AnMaster: hee
23:16:36 <faxathisia> spot the bug http://rafb.net/p/aLPQ0C26.txt :(
23:16:40 <ais523> qdb?
23:16:50 <ehird> ais523: quote data base
23:16:55 <AnMaster> ehird, write it in befunge
23:17:01 <AnMaster> with SOCK extension
23:17:04 <ehird> since #esoteric is far too nsfw to keep off the web a lot of the time
23:17:04 <ehird> :P
23:17:06 <faxathisia> use PSOX
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:53 <ehird> hmm
23:17:59 <ehird> rash just has a text field :)
23:17:59 <AnMaster> the second would be sqlite interface
23:18:02 <AnMaster> or some other databse
23:18:02 <ehird> hmm
23:18:05 <AnMaster> database*
23:18:05 <ehird> will tags on quotes really be useful?
23:18:08 <ehird> i doubt it
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:18:33 <faxathisia> ehird look at my horrible code
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:19:52 <ehird> truly :)
23:20:15 <ehird> well
23:20:16 <ehird> not really
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:30 <ehird> :D
23:20:46 <ais523> ehird: the sort of thing that confuses pastebin.ca's syntax higlighting
23:21:07 <ehird> yes
23:21:08 <faxathisia> never seen a good perl syntax hilighter
23:21:08 <ehird> hmm
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:23 <ehird> good/bad?
23:21:35 <ehird> seems kinda overcomplicated to me
23:21:38 <AnMaster> ais523, what are these tires?
23:21:41 <ehird> but maybe it makes stuff more balanced
23:21:49 <AnMaster> ais523, I mean, tiers
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:07 <AnMaster> hm
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:42 <AnMaster> ah
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:03 <AnMaster> what about tier 4?
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:34 <ehird> hm
23:23:36 <ais523> (by special-casing p)
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:25 <ehird> hmm
23:24:28 <ehird> possibly last qdb question:
23:24:30 <ehird> do we need approval?
23:24:31 <ehird> or..
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:27 <AnMaster> no?
23:25:31 <AnMaster> -_-
23:25:35 -!- Corun has quit ("Leaving").
23:26:04 <ehird> ais523: approval as in 'admin approves all quotes'
23:26:06 <ehird> every site has it
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:29:28 <ehird> very simple
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:32:37 <ais523> (and I meant \ not /)
23:34:14 <ehird> whee
23:34:15 <ehird> all the models are done
23:34:17 <ehird> for the qdb
23:34:20 <ehird> apart from reports, which can come later
23:34:43 <AnMaster> ais523, hm
23:41:26 -!- algol has joined.
23:42:02 -!- algol has quit (Client Quit).
23:42:11 <ehird> you know
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:24 <ehird> :D
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:53 <ehird> hehe
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:00 <ehird> so hah
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:53:53 <lament> that's fine
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:56:38 <ais523> and likewise, 0^0 = 1
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
←2008-03-13 2008-03-14 2008-03-15→ ↑2008 ↑all