←2008-03-10 2008-03-11 2008-03-12→ ↑2008 ↑all
00:05:18 -!- RedDak has quit (Remote closed the connection).
00:05:27 <lament> damn, the more i look at lisp, the better it seems
00:05:33 <lament> (lisp as in CL)
00:20:33 <lament> but i'm still pretty sure it sucks :)
00:27:04 -!- timotiis has quit ("leaving").
00:31:38 -!- Tritonio_ has joined.
00:39:35 -!- sebbu has quit ("@+").
00:40:46 -!- BMeph has joined.
01:24:14 -!- olsner has quit ("Leaving").
01:35:41 -!- calamari has joined.
02:24:51 -!- CakeProphet has joined.
02:26:22 <CakeProphet> ...what's a good C reference?
02:26:38 <CakeProphet> like, not a tutorial, but something that has a lot of information I can look up quickly.
02:49:33 -!- Corun has quit (Read error: 110 (Connection timed out)).
03:02:57 -!- CakeProphet_ has joined.
03:19:22 -!- CakeProphet has quit (Read error: 110 (Connection timed out)).
03:31:01 -!- CakeProphet_ has quit ("haaaaaaaaaa").
03:53:38 <pikhq> man
04:02:31 -!- GregorR has quit (brown.freenode.net irc.freenode.net).
04:03:08 -!- GregorR has joined.
04:15:23 * pikhq declares some of his music 'hell for basses'.
04:15:37 <pikhq> The *bass part* is written in the lower end of the treble clef. :(
05:37:26 -!- immibis has joined.
05:38:04 -!- immibis has left (?).
06:18:00 <lament> no bassist is going to like you for that.
06:19:32 <pikhq> lament: It's music that I have to sing.
06:19:37 <pikhq> I'm a bass.
06:19:41 <pikhq> I fucking hate it.
06:19:47 <lament> oh, you're a bass.
06:19:55 * pikhq wants to be *below* the bass clef, thanks.
06:19:58 <lament> cut your balls off.
06:20:12 <pikhq> I'll just convince the tenors to sing my part. :p
06:59:01 -!- calamari has quit ("Leaving").
07:14:24 -!- BMeph has quit ("calls it a night").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:01:26 -!- bsmntbombdood has quit.
08:15:21 <oklopol> pikhq: aaand notes please
09:00:04 -!- bsmntbombdood has joined.
09:27:19 -!- oerjan has joined.
10:11:06 <AnMaster> stack stacks in funge is really complex
10:11:15 <AnMaster> are*
10:26:16 <oklopol> they are?
10:27:21 <oklopol> pikhq: "your music", assumed you meant a composition of yours, but i now realize that might not be the case
10:27:44 <oklopol> if its not yours that way, i ofc don't care much for the score
10:28:13 <oklopol> although, i guess i still do a bit
10:37:47 <oklopol> guitar pro is one awesome program, it simply cannot play a song correct :D
10:44:20 -!- oklokok has joined.
10:44:36 <oklokok> used my morning well http://www.vjn.fi/oklopol/music/random/riff006.mid
10:45:02 <faxathisia> WOAH
10:45:21 <faxathisia> 2 seconds in it's already /awesome/
10:45:25 <oklokok> :D
10:45:27 <oklokok> well, thx
10:45:35 <oklokok> that's just the midi guitar, it' kinda sucky
10:45:38 <oklokok> *it's
10:46:04 <faxathisia> It's the sort of similar to the sound as Ooze on megadrive
10:46:17 <faxathisia> or Alien Solier
10:46:18 <oklokok> also, some parts i guess should have some synth, and some parts i haven't really thought through
10:46:47 <oklokok> because it's so fucking slow composing when you listen to it after every fucking note : P
10:47:55 <faxathisia> that was good
10:47:58 <oklokok> faxathisia: i guess after that reaction i have to link you to some of my musics
10:48:52 <oklokok> http://www.mikseri.net/artists/?id=44508 <<< my old band
10:49:03 <oklokok> http://www.mikseri.net/artists/?id=62623 <<< my other current band
10:49:47 <oklokok> (the other one i don't have anything online for, and it's not really my band)
10:50:26 <oklokok> we have much better and weirder stuff nowadays, but haven't recorded yet
10:51:06 <oklokok> Syleily is not mine, and Wanna feel pain is only mine when the synth solo starts
10:51:20 <oklokok> which i play very badly, i used to suck quite bad
10:56:22 <oklokok> uhh, i sing like a horse
10:57:01 <oklokok> ...in case horses suck at that
10:57:08 <oklokok> not sure, never heard one sing
10:58:19 <oklokok> well, also http://www.vjn.fi/s/black.mp3 and http://www.vjn.fi/oklopol/music/etydes/all-as-midi.rar
10:58:30 <oklokok> listen to some of that if you have time
10:58:52 <oklokok> i can also upload you my hundreds of other gp songs if you want, but i think you're fine with those :P
10:59:06 <faxathisia> what's gp?
10:59:09 <oklokok> guitar pro
10:59:35 <oklokok> usually do songs with that, because i tablatures are a lot nicer than the normal score notation
10:59:38 <oklokok> *-i
11:00:12 <oklokok> a matrix view is of course the best for composition, and i have some ascii notations i use, but i don't have any program that actually plays those, nowadays
11:00:31 <oklokok> should make one, just so lazy
11:05:15 <oklokok> actually i don't know what the *notation* is called, perhaps pikhq tells me
11:05:34 <oklokok> it's basically "note writing" in finnish
11:06:14 <oklokok> which is a quite idiotic, scores are only good for writing piano sheets, if that
11:06:23 * oklokok HATES.
11:06:39 -!- sebbu has joined.
11:11:08 <oklokok> i also have about a hundred riffs as a test of my newest notation, but you'd have to learn that
11:11:18 * oklokok counts
11:12:41 <oklokok> lol just 50
11:13:26 <oklokok> would be cool if i used even 50% of my time, i'd have enough stuff to fill the screen with links when someone comments my music :-)
11:13:43 <oklokok> unfortunately someone introduced me to the world of tv series
11:14:09 * oklokok kills
11:22:04 * oerjan verbs
11:39:14 <oklokok> oerjan: verb verbing you verbing motherverber
11:40:52 <oerjan> your noun!
11:41:38 <oklokok> verb pronoun.
11:42:57 <oerjan> Why can't pronoun all just verb adverb?
11:44:01 <oklokok> interjection exclamation mark i'm so adjective at pronoun
11:44:22 <AnMaster> lol
11:45:53 <oklokok> AnMaster: no need to verb adjective.
11:46:07 <oklokok> s/adjective/adjective
11:46:56 <AnMaster> to what? I can't figure out what you mean
11:47:32 <oklokok> oerjan: verb pronoun verb pronoun question mark
11:47:44 <oklokok> s/oerjan/nick :D
11:47:59 <oklokok> s/:D/smiley
11:48:01 * AnMaster goes to verb on his noun interpreter
11:48:10 <oklokok> s/s/*/*/substitution
11:48:16 <oklokok> AnMaster: that might be for the vest.
11:48:27 <oklokok> *best, actually
11:48:35 <AnMaster> "vest"? A kind of clothing right?
11:48:41 <oklokok> yeah
11:48:45 <AnMaster> ah best
11:49:11 <AnMaster> verb verb stackstacks of befunge!
11:49:12 <AnMaster> :(
11:49:26 <oklokok> what's adjective about them, really?
11:49:39 <AnMaster> they are complex to implement
11:49:41 <AnMaster> that's the problem
11:49:47 <oklokok> hmm, in bash?
11:49:49 <AnMaster> in C
11:49:50 * oerjan calls a moratorium on generic grammar terms
11:49:53 <oklokok> hm
11:49:59 * AnMaster points to his cfunge
11:50:01 <oklokok> how are they complex to do in c?
11:50:09 <AnMaster> can be either conformant funge, or C funge
11:50:11 <AnMaster> you decide
11:50:21 <AnMaster> anyway it will be conformant
11:50:28 <oklokok> you make a stack thingie, then make a stack of stacks.
11:50:33 <oklokok> that's it, really
11:50:48 <AnMaster> oklokok, yep, but then there is the complexities of { and } instructions
11:50:52 <AnMaster> begin stack and end stack
11:51:07 <AnMaster> with transfer of items in order between stacks and what not
11:51:12 <oklokok> umm, their behavior ais imperatively described there
11:51:20 <AnMaster> yep
11:51:21 <oklokok> you just do exactly what it says.
11:51:23 <oklokok> *is
11:51:25 <AnMaster> and it isn't easy to implement
11:51:43 <AnMaster> not the way I made the stack structure
11:52:04 <AnMaster> using the variable sized structure to have an array of pointers to stacks at the end of the stack stack structure
11:52:06 <oklokok> make a function to move a certain amount of shit from the top of a stack to the top of another, and put a boolean flag there to indicate direction
11:52:06 <AnMaster> a C99 feature
11:52:26 <AnMaster> anyway I think I got it mostly now
11:52:32 <AnMaster> begin stack that is
11:52:46 <AnMaster> just need to do some magic to find storage offset
11:52:55 <oklokok> i don't know what that feature is, but i do know you don't have to use it, and it's trivial without it :P
11:55:31 <AnMaster> nah, but it means one less pointer redirection
11:55:36 <AnMaster> err whatever
11:56:34 <oklokok> well, if you care about stuff like that
11:56:36 <oklokok> i don't :D
12:00:08 <AnMaster> whoa, circular dependencies in headers sucks
12:00:46 * AnMaster adds a incomplete type to get around it.
12:20:42 <oklokok> Real = { Orig -> { int -> Orig;
12:20:43 <oklokok> + N -> Orig + (int N) } };
12:20:43 <oklokok> ((real 7) + 4) + (1 + (real 3))
12:20:48 <oklokok> works
12:20:50 <oklokok> yay
12:20:57 <oklokok> already owns java then
12:23:05 <oklokok> 1 + n always calls int(n)
12:23:29 <oklokok> 4 + 2.0 = 6, which might confuse some
12:25:51 <AnMaster> oklokok, wtf are you doing?
12:27:47 <oerjan> Destroying mathematics as we know it
12:43:37 <Deewiant> AnMaster: only bases up to 36 are supported, I think it reflects if you give it something like that 473
12:43:57 <AnMaster> BAD: { transfers cells incorrectly
12:43:58 <AnMaster> 10 0 0 Stopping due to fear of corrupt stack stack
12:44:03 <AnMaster> Deewiant, I can't find what I do wrong
12:44:51 <AnMaster> I looked at how you do it, and I debugged output of stack before and after and it looks correct to me
12:44:54 <Deewiant> make a test proggy with just that 123456{ snippet (or whatever Mycology uses) and see the diffs
12:45:06 <Deewiant> maybe the stack stack is messed up
12:45:23 <AnMaster> Deewiant, I can't read mycology, it's too dense :(
12:45:37 <Deewiant> n29*y is meant to be 0
12:45:43 <Deewiant> why should it be 1
12:46:01 <Deewiant> ah, wait a minute
12:46:19 <AnMaster> because isn't the value checked before y does any popping and pushing?
12:47:09 <Deewiant> note that values 10-14 are vectors
12:47:19 <Deewiant> so they're 2 cells each
12:47:22 <AnMaster> yes but 29* = 18
12:47:24 <AnMaster> not 14
12:47:40 <Deewiant> yes, so it does y and then takes the 18th cell
12:47:48 <Deewiant> but values 10-14 contain 10 cells in themselves
12:48:03 <AnMaster> indeed and?
12:48:03 <AnMaster> 18. size-of-stack-stack cells containing size of each stack, listed from TOSS to BOSS (ip)
12:48:04 <AnMaster> Stack sizes are pushed as if they were measured before y began pushing elements onto
12:48:04 <AnMaster> the stack.
12:48:12 <Deewiant> that's not the 18th cell
12:48:14 <AnMaster> there is just a single stack
12:48:27 <AnMaster> Deewiant, ok that's stupid -_-
12:48:34 <Deewiant> it's what the spec says
12:48:50 <Deewiant> and that's how it has to work in order to work as a pick instruction :-)
12:49:16 <AnMaster> Deewiant, but that breaks adding new pick entries in newer versions of the specs
12:49:17 <AnMaster> err
12:49:21 <AnMaster> new y entries
12:49:22 <AnMaster> I mean
12:49:37 <Deewiant> no it doesn't, if you add them at the end
12:49:58 <Deewiant> if you add them at the beginning it'd break anyway
12:50:03 <AnMaster> yes, you add them at the end indeed
12:50:10 <AnMaster> but that breaks pick instruction
12:50:18 <AnMaster> I mean, breaks y working as pick
12:50:32 <Deewiant> how's that
12:50:41 <Deewiant> you have to run y first to get the size of the stack it pushes anyway
12:50:54 <AnMaster> hm
12:50:55 <Deewiant> since the length of y isn't predetermined
12:51:01 <AnMaster> y is silly IMO
12:51:02 <Deewiant> consider command line args and envvars
12:51:08 <AnMaster> the way it is done I mean
12:51:15 <Deewiant> this is an esoteric language, it's supposed to be silly :-P
12:51:26 * AnMaster suggests a sane esoteric language
12:51:34 <Deewiant> not esoteric then, any more :-)
12:51:49 <Deewiant> btw, the mycology readme has a step-by-step explanation of what should happen with 101-{}
12:51:58 <AnMaster> yes it can be, anything with a 2D IP = esoteric
12:52:00 <Deewiant> maybe that'll help with your { woes
12:52:16 <AnMaster> Deewiant, it fails earlier than that
12:52:24 <AnMaster> on the very first {-test
12:52:35 <AnMaster> BAD: { transfers cells incorrectly
12:52:36 <AnMaster> 10 0 0 Stopping due to fear of corrupt stack stack
12:52:38 <Deewiant> yeah, but if you say you can't see why that fails maybe you can see why that fails
12:52:42 <AnMaster> Deewiant, what does that 10 0 0 mean?
12:52:55 <Deewiant> probably something that shouldn't be there and is printed accidentally
12:53:01 <Deewiant> you know, corrupt stack stack and all :-P
12:53:31 <AnMaster> from mycouser:
12:53:35 <AnMaster> UNDEF: BASE fingerprint not loaded, won't check I.
12:53:38 <AnMaster> and
12:53:39 <AnMaster> UNDEF: STRN fingerprint not loaded, wo<n't check I.
12:53:44 <AnMaster> those look weird to me
12:53:58 <AnMaster> are those how they should be output if those fingerprints are missing or?
12:54:18 <Deewiant> yeah, it just says your interpreter doesn't support BASE and STRN
12:54:20 <AnMaster> I mean, It's "I won't check" in English
12:54:26 <AnMaster> and then the < in the second message
12:54:28 <Deewiant> oh, right
12:54:36 <Deewiant> read it as "won't check the instruction 'I'" :-)
12:54:43 <Deewiant> I can't remember what the < is about
12:54:55 <Deewiant> in some interpreters it's output and in others not
12:55:01 <Deewiant> possibly to do with how you implement k
12:55:06 <AnMaster> I see
12:55:15 <AnMaster> Deewiant, I do k as you do mostly
12:55:55 <AnMaster> >;#"BAD: { transfers cells incorrectly"an< < < < < <<v
12:55:56 <AnMaster> v780>'_,#! #:<"GOOD: { transfers cells correctly"aw0w5w4w3w2w1<
12:56:05 <AnMaster> that is where the problem happens I guess
12:56:15 <Deewiant> if I replace the ( with r CCBI prints "won't" and not "wo<n't" so I think it's a problem with your interpreter and not mycouser.b98 :-)
12:56:21 <AnMaster> but when I check in gdb my stack looks like that
12:56:33 <AnMaster> Deewiant, ah thanks
12:56:45 <Deewiant> find out which w causes the messup
12:56:55 <Deewiant> and then find out why the stack is messed up at that point
12:56:57 * AnMaster uncomments trace output
12:57:42 <AnMaster> ok, not easy to parse my trace output though
12:58:50 <AnMaster> v<1w>^1<< < < < < <
12:58:59 <AnMaster> so the very first one fails
12:59:19 <Deewiant> so what was your stack at that point and why :-)
12:59:37 * AnMaster looks
13:00:20 <AnMaster> call StackDump(newStack)
13:00:20 <AnMaster> 0=5 1=4 2=3 3=2 4=1 5=0 6=0 <-- that is how it looks when { is just done
13:00:35 <Deewiant> what's with the two zeros
13:00:42 <AnMaster> that's storage offset right?
13:01:00 <AnMaster> The { "Begin Block" instruction pops a cell it calls n, then pushes a new stack on the top of the
13:01:01 <AnMaster> stack stack, transfers n elements from the SOSS to the TOSS, then pushes the storage offset
13:01:01 <AnMaster> as a vector onto the SOSS, then sets the new storage offset to the location to be executed next
13:01:01 <AnMaster> by the IP (storageo f f set ← position + delta). It copies these elements as a block, so order is
13:01:01 <AnMaster> preserved.
13:01:02 <Deewiant> ", then pushes the storage offset as a vector onto the SOSS"
13:01:03 <AnMaster> from standard
13:01:05 <Deewiant> the SOSS, not the TOSS
13:01:13 <AnMaster> Deewiant, aha
13:03:03 <AnMaster> BAD: { doesn't set storage offset correctly, or p doesn't use it <-- right, time to fix that
13:03:07 * AnMaster changes p
13:14:06 <AnMaster> Deewiant, p should push at (offset + requested position) right?
13:15:02 <Deewiant> aye
13:15:41 -!- oerjan has quit ("leaving").
13:18:39 <Deewiant> in retrospect, the best way to write Mycology would have been to, write after the Befunge-93 stuff, test {}pg and storage offsets, and then the code could be written modularly
13:18:44 <Deewiant> err
13:18:47 <Deewiant> s/write/right/
13:18:59 <Deewiant> how did that happen O_o
13:19:27 <slereah_> Rampant illetrism sweeping the nation?
13:20:36 <Deewiant> sumthin like thät
13:23:07 <AnMaster> Deewiant, your ccbi binary btw:
13:23:08 <AnMaster> UNDEF: Y says pow(2, -7) is 0.007812 (0.007813)
13:23:19 <AnMaster> a bit off is it?
13:23:19 <Deewiant> AnMaster: that's FPSP probably?
13:23:30 <AnMaster> FPDP
13:23:38 <Deewiant> darn
13:23:39 <Deewiant> ah well
13:23:43 <AnMaster> and FPSP too
13:23:44 <Deewiant> it's floats, what do you expect :-)
13:23:58 <AnMaster> Deewiant, still :P
13:24:08 <Deewiant> oh, come on
13:24:49 <AnMaster> why is BASE totally UNDEF?
13:24:58 <Deewiant> looks like it's the same on windows btw
13:25:16 <Deewiant> 2^-7 is 0.0078125
13:25:41 <Deewiant> so if that comes out as 0.0078124999999 it'll be 0.007812 which is probably the problem
13:25:54 <Deewiant> or then my CCBI output does truncation and not rounding
13:26:04 <Deewiant> I don't care, the answer is correct enough :-)
13:26:20 <AnMaster> Deewiant, CNCBI ?
13:26:33 <Deewiant> it's not defined anywhere what should be done in that case
13:26:36 <Deewiant> same with the BASE
13:26:42 <Deewiant> have you looked at the RC/Funge-98 docs? they /suck/
13:26:46 <AnMaster> ah
13:26:51 <Deewiant> and the source is worse
13:27:07 <Deewiant> AnMaster: you complained about having to reverse engineer my code. I had to reverse engineer code that doesn't work. :-)
13:27:18 * AnMaster sighs
13:27:34 <Deewiant> eventually I decided to write the tests based on the spec only
13:27:49 <Deewiant> then I'd run RC/Funge there and more often than not it'd fail early
13:27:49 <AnMaster> I still can't get it to think that p does the right thing when it pushes at (offset + requested position)
13:27:56 <AnMaster> so something somewhere is wrong
13:28:05 <Deewiant> possibly { is wrong
13:28:24 <AnMaster> the storage offset is correctly set, I verified
13:29:08 <Deewiant> maybe you've got your y and x mixed up at some point
13:29:44 <AnMaster> well the StackPopVector is correct, or the code would fail when mycology tests x hm
13:30:08 <Deewiant> maybe you're adding the wrong storage offsets
13:30:22 <Deewiant> or setting them incorrectly
13:30:22 <AnMaster> ipForward(1, ip, fspace);
13:30:23 <AnMaster> pos.x = ip->position.x;
13:30:23 <AnMaster> pos.y = ip->position.y;
13:30:23 <AnMaster> ipForward(-1, ip, fspace);
13:30:34 <AnMaster> that is how you get the new vector right?
13:30:38 <AnMaster> the new offset I mean
13:30:58 <Deewiant> err, sec
13:31:20 * AnMaster notes ccbi tend to reverse instead, and can't go backwards in one function call :P
13:31:25 <Deewiant> yeah, looks like
13:31:33 <AnMaster> somehow, that feels like a small win there :)
13:31:34 <AnMaster> ;P
13:31:37 <Deewiant> :-P
13:31:47 <Deewiant> it's not like it'd be difficult to make a function that does that :-P
13:31:50 <AnMaster> void ipForward(int_fast64_t steps, instructionPointer * ip, fungeSpace *space)
13:31:50 <AnMaster> {
13:31:50 <AnMaster> ip->position.x += ip->delta.x * steps;
13:31:50 <AnMaster> ip->position.y += ip->delta.y * steps;
13:31:51 <AnMaster> fungeSpaceWrapInPlace(space, &ip->position);
13:31:53 <AnMaster> }
13:31:55 <AnMaster> indeed
13:31:57 <AnMaster> :)
13:32:17 <Deewiant> CCBI isn't optimized at all
13:32:24 <Deewiant> or a bit, but not much really
13:32:26 <AnMaster> Deewiant, nor is mine in most places
13:32:37 <AnMaster> Deewiant, look, your k is optimized in strange ways!
13:32:39 <Deewiant> in most cases I just went for the easiest-to-write code
13:32:49 <Deewiant> yeah, k was one I prematurely optimized :-)
13:33:04 <Deewiant> so that 9999***k> doesn't loop needlessly
13:33:10 <Deewiant> and such
13:33:20 <Deewiant> but I'm off to eat now, have fun with your debugging o)
13:33:27 * AnMaster sighs
13:43:16 <AnMaster> Deewiant, btw, on }, where do you get the storage offset from?
13:43:40 <AnMaster> do you always restore the previous offset or?
13:49:40 <Deewiant> corresponding } "End Block" instruction pops a cell off the stack that it calls n, then pops a vector off the SOSS which it assigns to the storage offset
13:50:01 <Deewiant> it's not necessarily the original offset although it usually is
13:54:53 <AnMaster> right
13:55:42 * AnMaster wish mycology code wasn't so dense
13:56:04 <Deewiant> it could use a rewrite, yeah
13:56:13 <Deewiant> but I'm not going to do that, sorry :-)
13:56:41 <Deewiant> FWIW the code gets better later on, at least in my opinion
13:56:53 <Deewiant> the 'y' stuff is probably worst
13:57:20 <Deewiant> but the fingerprint stuff is almost sane
13:57:51 <Deewiant> there's some intentional obfuscation somewhere, though - just ask if you get totally confused :-)
13:58:04 <Deewiant> after all, it's Befunge, it's not supposed to be easy to read ;-)
13:58:29 <AnMaster> the storage offset is correctly calculated at least
13:59:04 <AnMaster> as in, the right x and y value is stored in ip->storageOffset
13:59:48 <Deewiant> you might want to try something simple like zzzzz{00g,'0,@ which, I think, should print 00
13:59:51 <AnMaster> oh I got it, it wraps things
13:59:52 <AnMaster> hah
14:00:03 <AnMaster> the "set with offset" wraps things
14:00:09 * AnMaster changes order of calculation
14:02:11 * AnMaster implements } too
14:04:17 <AnMaster> yay segfault
14:04:25 <Deewiant> yay C ;-)
14:04:59 <AnMaster> Deewiant, can't you get segfaults in D?
14:05:04 <AnMaster> you got pointers after all
14:05:10 <Deewiant> it's less likely
14:05:15 <Deewiant> since you usually don't use pointers
14:05:30 <Deewiant> arrays are built-in which helps a lot
14:05:42 <AnMaster> so are C ones partly
14:05:47 <AnMaster> FUNGEDATATYPE entriesCopy[count + 1];
14:05:49 <Deewiant> only static arrays
14:05:56 <AnMaster> that one is dynamic
14:05:58 <AnMaster> C99 feature
14:06:03 <Deewiant> yeah, C99 has VLAs
14:06:07 <Deewiant> but they're a bit clunky
14:06:12 <AnMaster> Deewiant, and my code is C99
14:06:34 <AnMaster> Deewiant, and memory managment: not an issue, I use boehm-gc
14:06:47 <Deewiant> that helps a lot :-)
14:07:17 <AnMaster> of course, realloc code to extend/contract stackstack pointer array to stacks is a bit hariy
14:07:30 <AnMaster> since it use the "dynamic arrays at end of struct" thingy
14:07:59 <AnMaster> typedef struct {// Top stack and current stack
14:07:59 <AnMaster> size_t current;
14:07:59 <AnMaster> // Array of pointers to stacks
14:07:59 <AnMaster> fungeStack * stacks[];
14:07:59 <AnMaster> } fungeStackStack;
14:08:10 <AnMaster> err, messed up newlines in paste
14:08:29 <Deewiant> what's "current stack"?
14:08:38 <AnMaster> TOSS and top also
14:08:40 <Deewiant> oh, you just use it to hold the stack size
14:08:55 <AnMaster> Deewiant, yep, as size and TOSS are the same for stack stack
14:09:04 <AnMaster> I contract the thing when I pop stack stack
14:09:09 <AnMaster> unlike normal stacks
14:09:20 <AnMaster> where I keep a size counter and a "top" counter
14:09:30 <AnMaster> and reallocates to add 10 in a bunch if more are needed
14:12:41 <AnMaster> yay
14:13:11 <AnMaster> stacks[0] and stacks[2] are valid, but stacks[1] = NULL
14:13:13 * AnMaster looks
14:16:14 <AnMaster> GOOD: { transfers cells correctly
14:16:15 <AnMaster> GOOD: { sets storage offset correctly, and p uses it
14:16:15 <AnMaster> Program exited normally.
14:16:18 <AnMaster> Deewiant, any clue?
14:16:20 <Deewiant> heh
14:16:27 <Deewiant> nope
14:16:29 * AnMaster can't see where it would do that
14:16:39 <Deewiant> but something tells me "normally" isn't quite right :-P
14:16:48 <AnMaster> that is what gdb says
14:16:52 <AnMaster> ie, exit code = 0
14:17:10 <AnMaster> x=87 y=72: # (35)
14:17:10 <AnMaster> x=89 y=72: } (125)
14:17:10 <AnMaster> Program exited normally.
14:17:11 <AnMaster> interesting
14:17:26 <Deewiant> :-)
14:17:39 <AnMaster> aha, missing break in case lol
14:17:52 <AnMaster> so fell through to next, that was @
14:18:00 <Deewiant> :-D
14:18:05 <AnMaster> nop, not that
14:18:18 <AnMaster> now it quits in another way
14:18:30 * AnMaster removes trace output to be able to see what mycology said
14:18:48 <AnMaster> BAD: } reflects, hrrm
14:18:52 <Deewiant> I suggest making that a command-line switch :-)
14:19:11 <AnMaster> Deewiant, yes, right, when I implement proper command line parsing
14:19:28 <AnMaster> GOOD: } resets storage offset
14:19:28 <AnMaster> GOOD: } transfers cells correctly
14:19:28 <AnMaster> Segmentation fault
14:19:29 <AnMaster> bbl
14:19:35 <Deewiant> how about right now just test if args[2] is -t or something
14:28:44 <AnMaster> heh indeed
14:32:19 -!- RedDak has joined.
14:37:09 <AnMaster> yay fixed it
14:54:00 <AnMaster> Deewiant, there?
14:54:02 <AnMaster> "If n is negative, |n| zeroes are pushed onto the SOSS."
14:54:10 <AnMaster> isn't that a typo for TOSS in that case?
14:54:36 <Deewiant> maybe it is but it says SOSS :-)
14:55:18 <Deewiant> doesn't that match with: "If the SOSS contains k elements, where k is less than n, the k elements are transferred as the top k elements and the remaining bottom (n-k) elements are filled in with zero-value cells."
14:56:43 <AnMaster> is there no matching GOOD for BAD: 101-{} doesn't leave stack top as 0 and next as 1 ?
14:56:52 <Deewiant> no :-/
14:56:53 <AnMaster> at least mine doesn't print anything for that test when I corrected it
14:56:56 <AnMaster> so confusing
14:57:00 <AnMaster> Deewiant, that is bad :(
14:57:00 <Deewiant> aye :-/
14:57:06 <AnMaster> FIX! ;P
14:57:06 <Deewiant> I agree :-/
14:57:12 <Deewiant> easier said than done :-D
14:57:18 <AnMaster> BAD: fedcba0{05-} doesn't leave 15 on stack
14:57:23 <AnMaster> explain that one please
14:57:24 <Deewiant> wow, that's rare
14:57:31 <Deewiant> well, self-explanatory?
14:57:31 <AnMaster> Deewiant, tell me about it
14:57:36 <AnMaster> no I don't get it
14:57:41 <Deewiant> I think I've only seen one other interpreter that does that
14:57:43 <Deewiant> well
14:57:46 <AnMaster> well mine does
14:57:47 <Deewiant> fedcba0{05-} was executed
14:57:52 <AnMaster> ok
14:57:57 <Deewiant> and the top of the stack should be 15 after that, but it isn't
14:58:02 <Deewiant> or wasn't, whatever
14:58:29 <AnMaster> so my handling of negative counts for } is bad in other words?
14:58:35 <Deewiant> probably
14:58:52 <AnMaster> If n is negative, |n| cells are popped off of the (original) SOSS.
14:58:57 <AnMaster> that means they are discarded?
14:59:09 <Deewiant> well that's what it says isn't it :-)
14:59:18 <AnMaster> that's an easy fix
14:59:42 <AnMaster> GOOD: 1y and 5y do not disagree about =
14:59:42 <AnMaster> No reliable cross-platform method of testing: assume = works
14:59:48 <AnMaster> indeed, both says it doesn't exist
15:00:07 <Deewiant> yep
15:00:09 * AnMaster thinks that second message is wrong with y says = doesn't exist
15:00:16 <Deewiant> meh
15:00:18 <AnMaster> it doesn't work!
15:00:21 <Deewiant> read it as "works as intended"
15:00:26 <AnMaster> ok
15:00:36 <Deewiant> it doesn't use it anywhere
15:00:38 <AnMaster> Deewiant, btw, could I invent my own = system?
15:00:52 <AnMaster> that is an own operating paradigm?
15:00:54 <Deewiant> not really since there's no standard :-/
15:01:09 <AnMaster> Deewiant, but I could make my own operating paradigm right?
15:01:15 <AnMaster> y does allow that
15:01:17 <Deewiant> "an implementation may support one of several standardized ways of interpreting the string, and which routine it uses can be determined by querying y"
15:01:23 <Deewiant> the standardized ways are given
15:01:27 <Deewiant> as long as it's one of them it's okay
15:01:42 <AnMaster> This value is included so the program can have a reasonable idea of what = will do. The
15:01:43 <AnMaster> values shown here are only the most basic set available at the time of publication. See the
15:01:43 <AnMaster> Registry for any late-breaking headway into further Operating Paradigms.
15:01:45 <AnMaster> from y
15:01:48 <Deewiant> yep
15:01:54 <Deewiant> but there is no registry
15:01:57 <AnMaster> so that means you could make a new one
15:01:57 <Deewiant> so we're screwed :-)
15:02:03 <AnMaster> Deewiant, ah, so no libffi then :(
15:02:03 <Deewiant> basically yes
15:02:06 <Deewiant> but the problem is
15:02:13 <AnMaster> because that's what I would want to do
15:02:16 <Deewiant> what if your interpreter uses 16 for what you do
15:02:16 <AnMaster> call libffi :)
15:02:22 <Deewiant> and another interpreter uses 16 for something else
15:02:32 <AnMaster> Deewiant, indeed, so we got to start a new registry
15:02:34 <Deewiant> since there's no central registry, that can't be controlled
15:02:50 <AnMaster> Deewiant, look, I want to use libffi to call C functions using it! :P
15:02:51 <Deewiant> that's up to you :-)
15:03:09 <AnMaster> just to be a pain in the **** for everyone else
15:03:20 <Deewiant> I'd just call that 2 actually
15:03:21 <Deewiant> "Equivalent to interpretation by a specific shell or program "
15:03:25 <Deewiant> or even 3
15:03:30 <Deewiant> since yours is a C program
15:03:33 <AnMaster> haha
15:03:42 <Deewiant> or no, scratch that
15:03:47 <Deewiant> 3 refers to the command-line shell
15:03:52 <Deewiant> 2 is what it'd be
15:04:00 <AnMaster> heh
15:04:14 <AnMaster> no, I'm not likely going to do libffi
15:04:18 <AnMaster> too painful
15:04:44 <AnMaster> Deewiant, the push on other stack then pop back thing for y = really painful :(
15:05:08 <AnMaster> it's bad for performance
15:05:09 <Deewiant> somewhat, yes
15:05:15 <AnMaster> and coding style too
15:05:27 <Deewiant> I just push all the things and then, at the end, check if some need to be popped
15:06:28 <AnMaster> on a temp stack?
15:06:47 <Deewiant> no, on the real stack
15:07:08 <AnMaster> if you got 2y, that means 3y will also end up on stack?
15:07:10 <AnMaster> but below it?
15:07:21 <Deewiant> no, they're removed as well
15:07:41 <AnMaster> then you need to shift items if you push onto real stack
15:07:48 <Deewiant> I think what I do is push all, then pop up to 2, remember that cell, pop the rest that were pushed, push the remembered one
15:07:53 <Deewiant> not sure though
15:08:03 <AnMaster> that is even messier
15:08:15 <Deewiant> actually it's quite clean in the code
15:08:34 <Deewiant> as far as performance goes, it's not the best option though :-)
15:08:57 <AnMaster> btw if I get this:
15:08:57 <AnMaster> GOOD: ] turns flying IP right
15:09:01 <AnMaster> and then lockup
15:09:07 <AnMaster> what is the likely cause
15:09:12 <Deewiant> can't remember
15:10:25 <AnMaster> got to love this "mutex" in concurrent befunge:
15:10:26 <AnMaster> <@Zaba> >#vt' 'o'l'l'e'H,,,,,,'>21p@
15:10:27 <AnMaster> <@Zaba> ><'!'d'l'r'o'w,,,,,, ^
15:10:47 <Deewiant> yep, I use that
15:10:58 <AnMaster> not that I will implement that I think
15:10:59 <Deewiant> in Mycology that is
15:11:07 <AnMaster> concurrent that is
15:11:13 <Deewiant> meh
15:11:23 <Deewiant> you're making this too easy for yourself :-)
15:11:35 <Deewiant> might as well just implement Befunge-93 ;-)
15:11:38 <AnMaster> at least I want to finish everything that is required in funge98 before I start on optional things
15:11:46 <Deewiant> aye, sure
15:14:39 <AnMaster> StackStackTransfer(FUNGEDATATYPE count, bool inOrder, fungeStack *TOSS, fungeStack *SOSS) <-- yay, that should be reusable
15:14:59 <AnMaster> Deewiant, btw what data type does ccbi use for the cells?
15:15:04 <AnMaster> 64-bit or 32-bit?
15:15:06 <Deewiant> 32-bit int
15:15:10 <Deewiant> I think
15:15:12 <Deewiant> or no, wait
15:15:15 <Deewiant> its int_fast32_t
15:15:22 <AnMaster> hah, mine use 64-bit, and should be easy to make 128-bit
15:15:30 <AnMaster> using int128 thing for amd64
15:15:31 <Deewiant> so it depends on what the library defines that as
15:15:43 <AnMaster> Deewiant, ah mine is int_fast64_t heh
15:15:55 <AnMaster> but easy to change in a header
15:15:57 <Deewiant> AnMaster: so good luck compiling that on 32-bit? :-P
15:16:05 <AnMaster> Deewiant, oh? should work still
15:16:16 <AnMaster> 64-bit values does exist on 32-bit
15:16:20 <AnMaster> long long is such a value
15:16:24 <Deewiant> oh yeah, C99
15:16:28 <AnMaster> Deewiant, :D
15:16:34 <Deewiant> ah well
15:16:35 <AnMaster> C99 rocks
15:16:38 <Deewiant> good luck /running/ on 32-bit ;-)
15:16:49 <AnMaster> Deewiant, it will run on 32-bit, just slower
15:16:55 <Deewiant> exactly, quite a bit slower :-P
15:17:15 <AnMaster> anyway just open src/global.h and redefine:
15:17:16 <AnMaster> #define FUNGEVECTORTYPE int_fast64_t
15:17:20 <AnMaster> #define FUNGEDATATYPE int_fast64_t
15:17:24 <AnMaster> to something else
15:17:32 <Deewiant> yeah, just change alias int_fast32_t cell to alias long cell in CCBI, too :-)
15:17:53 <AnMaster> for example I had it as char when I debugged play field loading
15:17:55 <Deewiant> why don't you use typedef
15:17:59 <AnMaster> because that makes print sane
15:18:08 <AnMaster> Deewiant, no real reason
15:18:19 <AnMaster> it hardly matters though
15:19:04 <AnMaster> but upper case = defines normally, so changing it would mean a sed if I want to keep good coding style
15:19:34 <AnMaster> Deewiant, btw, following ccbi's style of using weird build systems: I use cmake
15:19:35 <AnMaster> :)
15:19:48 <AnMaster> oh and I use POSIX specific stuff
15:19:59 <AnMaster> so it will only run on real OS I bet
15:20:07 <Deewiant> rebuild/DSSS is pretty much standard for D
15:20:20 <AnMaster> D isn't terribly much standard though
15:20:21 <Deewiant> and meh
15:20:27 <Deewiant> no, but I like using real languages ;-)
15:20:43 <AnMaster> C is more real
15:20:52 <AnMaster> what language is the D compiler itself written in?
15:20:57 <AnMaster> I bet answer is: C
15:20:59 <Deewiant> C++ I believe
15:21:03 <AnMaster> ok or C++
15:21:04 <AnMaster> :)
15:21:08 <AnMaster> and C++ compiler is in C
15:21:10 <AnMaster> so well
15:21:15 <Deewiant> no, more likely that's in C++ as well :-P
15:21:30 <AnMaster> Deewiant, not the gcc one I think?
15:21:31 <Deewiant> but why the POSIX stuff, what do you need it for?
15:21:32 <AnMaster> or maybe it bootstraps
15:21:38 <Deewiant> I'm not sure about GCC actually
15:21:42 <Deewiant> DMD and DMC are both C++
15:21:48 <AnMaster> Deewiant, simply because it's standard
15:22:13 <AnMaster> any OS not being POSIX.1-2001 isn't worth coding for IMO :P
15:22:15 <Deewiant> that's debatable
15:22:18 <Deewiant> but what do you need it for
15:22:33 <AnMaster> nothing really, just cases of easier to use / better functions
15:22:46 <AnMaster> for example, for some reason random() is often more random than rand()
15:22:53 <Deewiant> well, you do know that Linux and most BSDs aren't fully POSIX-compliant ;-)
15:22:58 <AnMaster> random is POSIX, rand is C89/99
15:23:09 <AnMaster> Deewiant, indeed, I test my app on both freebsd and linux
15:23:24 <Deewiant> I'd just use the mersenne twister if I were you
15:23:26 <AnMaster> Linux tux.lan 2.6.24-gentoo-r2 #1 Mon Feb 11 16:14:47 CET 2008 x86_64 AMD Sempron(tm) Processor 3300+ AuthenticAMD GNU/Linux
15:23:30 <Deewiant> for that example, for instance
15:23:50 <AnMaster> Deewiant, for ? instruction
15:24:15 <Deewiant> it's just that I don't see the advantage in locking out Windows, I don't think the POSIX-only stuff is /that/ good
15:24:20 <AnMaster> nothing in the funge standard says about what type or random
15:24:32 <AnMaster> of*
15:24:34 <Deewiant> nope, you could alias it to > if you want :-P
15:24:42 <Deewiant> although that'd infinite loop in mycorand.bf
15:24:47 <AnMaster> Deewiant, err no, that would be stupid
15:24:48 <AnMaster> yeah
15:25:00 <AnMaster> Deewiant, no, but it doesn't say it has to be 100% uniform i what I mean
15:25:02 <Deewiant> better, you could iterate over >v<^ always in the same order :-)
15:25:21 <AnMaster> long int rnd = random() % 4;
15:25:28 <AnMaster> is good enough I think
15:25:35 <faxathisia> :S
15:25:41 <AnMaster> of course with % it may not be random
15:25:42 <Deewiant> why not rand() % 4 and support windows on top, then :-P
15:25:54 <faxathisia> unsigned char rnd = random() % 4; // OPTIMIZED
15:25:55 <AnMaster> Deewiant, oh I do call srandom(time(NULL)) before :P
15:26:11 <AnMaster> faxathisia, hah, but then gcc complains about a cast needed
15:26:13 <Deewiant> seems a bit pointless to lose windows support just for that ;-)
15:26:15 <AnMaster> and I use -Werror
15:26:16 <AnMaster> :P
15:26:25 <faxathisia> O-o
15:28:00 <AnMaster> -std=c99 -Wall -Wextra -Wformat=2 -pedantic -Wstrict-aliasing=2 -Wfloat-equal -Wwrite-strings -Wshadow -Wcast-align -Wcast-qual -Wbad-function-cast -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wmissing-noreturn -Wmissing-format-attribute -Wundef -Wnested-externs -Wdeclaration-after-statement -Wmissing-include-dirs -Wunused-function -Wunused-label -Wunused-value -Wunused-variable -W
15:28:00 <AnMaster> redundant-decls -Werror
15:28:02 <AnMaster> in fact
15:28:22 <faxathisia> nice
15:28:32 <faxathisia> I use -funroll-loops
15:28:38 <faxathisia> and no other flags
15:28:43 <AnMaster> look it is for debugging!
15:28:50 <AnMaster> to code good code
15:29:16 <AnMaster> I use -ggdb3 -O0
15:29:18 <AnMaster> -_-
15:29:23 -!- Tritonio_ has quit (Remote closed the connection).
15:29:25 <faxathisia> hhehe
15:29:36 <AnMaster> for this app that is
15:31:07 <AnMaster> and stuff like __attribute__((nonnull,warn_unused_result)); (of course I #define away __attribute__ for non-gcc) to make sure I don't forget return values and so on
15:35:48 <AnMaster> BAD: u with a negative count transfers cells incorrectly
15:35:49 <AnMaster> hm
15:35:52 * AnMaster looks again
15:37:11 <AnMaster> yay
15:39:27 <AnMaster> Deewiant, BAD: after y the top cell is greater than 15
15:39:45 <AnMaster> hm
15:46:09 <Deewiant> unclear?
15:46:13 <AnMaster> no
15:46:41 -!- RedDak has quit (Remote closed the connection).
15:46:45 <AnMaster> just how I indicate how to follow 08 draft *adds a compatibility mode to be selected with parameter*
15:50:03 <AnMaster> Deewiant, interesting:
15:50:04 <AnMaster> That the command-line arguments were: [ "/" null "jÿ" null ]
15:50:15 <Deewiant> :-)
15:50:16 * AnMaster pushes two null atm until he fixed some things
15:50:28 <AnMaster> \0\0 = end of list
15:50:29 <AnMaster> so?
15:50:37 <Deewiant> so?
15:50:44 <AnMaster> why does it not realize it is just a case of an empty list?
15:50:56 <Deewiant> it should
15:50:56 <AnMaster> after all, it is valid to not have command line arguments
15:51:02 <Deewiant> no it's not
15:51:05 <Deewiant> The first string is the name of the Funge source program being run.
15:51:16 <AnMaster> Deewiant, that could be hard coded into an array into the interpreter :P
15:51:18 <Deewiant> so it should always be mycology.b98
15:51:43 <Deewiant> it's not the interpreter name, it's the Funge program name
15:51:55 <AnMaster> Deewiant, or it may be a case of downloading, say a funge that can execute urls
15:51:58 <AnMaster> or streams
15:52:01 <AnMaster> where it won't know
15:52:12 <Deewiant> it can push the URL then
15:52:15 <AnMaster> nothing says the funge program has to be loaded from a file does it?
15:52:41 <Deewiant> well, it talks about "Funge-98 source files" a lot :-)
15:52:45 <AnMaster> http://www.quote-egnufeb-quote-greaterthan-colon-hash-comma-underscore-at.info/befunge/jbefbef.php
15:52:46 <AnMaster> Deewiant, :)
15:52:52 <AnMaster> 93, but still
15:53:01 <Deewiant> yep, I know :-)
15:53:06 <AnMaster> or:
15:53:08 <AnMaster> http://www.quote-egnufeb-quote-greaterthan-colon-hash-comma-underscore-at.info/befunge/unebef.php
15:53:09 <Deewiant> I haven't run those on Mycology to see if they work
15:53:22 <AnMaster> Deewiant, mycology would be too large
15:53:29 <AnMaster> to fit inside it as well
15:53:41 <Deewiant> you do realize that the first 80x25 chars are valid Befunge-93 :-)
15:53:45 <Deewiant> and test the whole Befunge-93 spec
15:53:50 <AnMaster> yep I do
15:53:53 <AnMaster> I know that
15:54:06 <Deewiant> and that Befunge-93 interpreters should only load the first 80x25 chars anyway
15:54:09 <AnMaster> but I like to point out those programs load themself into the befunge93 space too
15:54:10 <AnMaster> so
15:54:19 <Deewiant> so they're not valid :-)
15:54:33 <AnMaster> Deewiant, btw what is this minifunge thing?
15:54:36 <AnMaster> or whatever it was called
15:54:59 <Deewiant> http://www.quote-egnufeb-quote-greaterthan-colon-hash-comma-underscore-at.info/befunge/dynafing.txt
15:55:15 <Deewiant> unfortunately I implemented RC/Funge-98's version and not that one
15:55:22 <Deewiant> but it shouldn't require many changes
15:55:29 <Deewiant> if someone wants me to implement that one instead :-P
15:56:47 <AnMaster> why not?
15:56:53 <AnMaster> do they differ much?
15:57:05 <Deewiant> not IIRC
15:57:09 <AnMaster> Deewiant, what is hover mode?
15:57:15 <AnMaster> and such
15:57:20 <Deewiant> defined in MODE fingerprint
15:57:29 <Deewiant> as it says there :-)
16:02:02 * AnMaster wonders if it would be nice to make HRTI take advantage of HPET on linux when available
16:02:14 <AnMaster> en.wikipedia.org/wiki/High_Precision_Event_Timer in case you don't know what it is
16:02:28 <Deewiant> isn't HPET exposed in any of the standard C lib
16:02:38 <AnMaster> it isn't afaik?
16:02:46 <Deewiant> I mean, just in the form of a higher CLK_TCK or whatever
16:02:51 * AnMaster guess doing some stuff on /dev/hpet could work
16:03:00 <AnMaster> of course with some fallback
16:03:09 <AnMaster> as only one of my computers got hpet
16:03:38 <AnMaster> Deewiant, but maybe
16:03:51 <AnMaster> anyway use NO_HZ so...
16:03:51 <AnMaster> heh
16:08:33 * AnMaster writes functions to push and pop C string to/from 0gnirts
16:13:29 -!- RedDak has joined.
16:57:29 -!- RedDak has quit (Remote closed the connection).
17:15:32 <AnMaster> #>:#_n:f8+y+8f:n_n:f8+y+8f:n_n:f8+y+8f:n_n:f8+y+8f:n_n:f8+y
17:15:33 <AnMaster> Deewiant, ^
17:15:38 <AnMaster> that is the infinite loop
17:15:53 <Deewiant> 'the'?
17:15:59 <AnMaster> that my code get into
17:16:15 <Deewiant> f8+y doesn't work then apparently
17:16:24 <AnMaster> what is f8+y supposed to be?
17:16:35 <Deewiant> I don't know, what does CCBI output there
17:16:52 <AnMaster> a sec
17:17:43 <AnMaster> GOOD: ] turns flying IP right
17:17:44 <AnMaster> GOOD: : on empty stack makes stack size 2 according to y
17:17:47 <AnMaster> hm
17:17:49 <AnMaster> the second one
17:17:54 <Deewiant> so it's trying to get the stack size
17:18:06 <Deewiant> TOSS size to be exact
17:18:11 * AnMaster checks
17:18:29 <AnMaster> Deewiant, why don't it print BAD or such then?
17:18:54 <Deewiant> I didn't expect that y would reflect after y having worked all the way up to there :-)
17:19:17 <AnMaster> Deewiant, maybe add that check? :)
17:19:21 <Deewiant> I can't check for reflection every time I try an instruction :-P
17:19:37 <AnMaster> Deewiant, you can, 98 doesn't have a size limit so it's easy
17:19:44 <AnMaster> ;P
17:19:53 <Deewiant> except that much of the later code uses hard-coded y-coordinates
17:19:58 <Deewiant> so adding lines breaks the whole program
17:20:12 <AnMaster> interesting
17:20:21 <AnMaster> just let it expand outwards to x?
17:20:24 <Deewiant> hence what I said earlier about testing {}pg first and then using {}
17:20:31 <Deewiant> that doesn't work either due to the tests on # edge jump
17:20:47 <Deewiant> the line there has to be the longest line in the file
17:20:56 <AnMaster> well just make that even longer?
17:20:59 <Deewiant> of course I could just make that one longer
17:21:07 <Deewiant> but then there's also the check for what y pushes for maxX/maxY
17:21:08 <AnMaster> simple really
17:21:13 <Deewiant> which would also have to be changed
17:21:18 <Deewiant> and possibly something in the fingerprints as well :-P
17:21:22 <Deewiant> too much trouble really
17:21:49 <Deewiant> it looks like there's plenty of free space there though
17:21:52 <AnMaster> Deewiant, does mycology test nested { and } btw?
17:22:02 <Deewiant> not sure
17:22:16 <AnMaster> Deewiant, you wrote it! you should know ;P *runs*
17:22:39 <Deewiant> it's over 100 KB of Befunge, I can't be sure :-P
17:23:22 * oklopol wants to write something in befunge
17:23:36 <AnMaster> oklokok, simple really
17:24:14 <oklopol> AnMaster: i'm not saying i don't have the skill
17:24:22 <oklopol> i'm saying god i wanna do it
17:24:26 <oklopol> what should i use?
17:24:31 <oklopol> for the interp
17:24:34 <Deewiant> a text editor? :-P
17:24:36 <Deewiant> CCBI, of course
17:24:53 <oklopol> ccbi is what?
17:24:59 <Deewiant> my interpreter :-)
17:25:03 <oklopol> for what os?
17:25:17 <AnMaster> oklokok, ccbi
17:25:17 <AnMaster> for now
17:25:17 <AnMaster> :P
17:25:20 <Deewiant> tested on windows and linux, might work on bsd if you can get it to compile
17:25:34 <AnMaster> oklokok, ccbi is coded in d though
17:25:38 <AnMaster> so a bit hard to compile
17:25:38 <Deewiant> http://iki.fi/matti.niemenmaa/befunge/ccbi.html
17:25:46 <Deewiant> AnMaster: but fortunately, I provide a linux binary now :-)
17:25:49 <oklopol> i'm using windows then, prolly
17:25:51 <Deewiant> AnMaster: thanks for testing it ;-)
17:25:52 <pikhq> oklopol: RE: your question earlier. . . Think 'Eb above middle C'.
17:25:55 <pikhq> (painful)
17:25:57 <oklopol> Deewiant: you finnish?
17:26:01 <Deewiant> oklopol: aye
17:26:12 <AnMaster> oklopol, he got a linux binary as well yes
17:26:27 <pikhq> Deewiant: BSD can be binary-compatible with Linux.
17:26:33 <AnMaster> Deewiant, not linked from site though
17:26:35 <AnMaster> add the link there
17:26:37 <Deewiant> AnMaster: yes it is
17:26:59 <AnMaster> Deewiant, then your servers send something bad with cache headers?
17:27:01 <oklopol> pikhq: i can do octave over C
17:27:10 <Deewiant> AnMaster: or you don't see it. :-P
17:27:10 <oklopol> although i'm not sure what question you were answering :P
17:27:12 <AnMaster> Deewiant, had to do Ctrl-R
17:27:16 <AnMaster> to make it show up
17:27:16 <Deewiant> AnMaster: I don't know, they're school servers
17:27:18 <AnMaster> interesting
17:27:47 <oklopol> and octave below G below middle C
17:27:51 <AnMaster> Deewiant, the "befunge98 SVN r11" linked from your site, link is broken
17:28:01 <AnMaster> Deewiant, on test results page
17:28:07 <Deewiant> bah
17:28:10 <AnMaster> maybe do a "local source" thing like for rcfunge?
17:28:12 <oklopol> AnMaster: i prefer my windows machine
17:28:18 <Deewiant> it seems he's redesigned his site
17:28:25 <AnMaster> oklopol, sure, just install linux on it
17:28:30 <AnMaster> Deewiant, correct link then
17:28:35 <oklopol> not worth it
17:28:43 <Deewiant> AnMaster: the only difference is a slash at the end >_<
17:28:44 <AnMaster> oklokok, to get a real OS I mean
17:28:58 <pikhq> oklopol: I ave a *low* range, not a high range. ;)
17:29:04 <pikhq> (I'm in high school)
17:29:04 <oklopol> not much difference
17:29:06 <Deewiant> oklopol: design and testing is done on Windows XP, so it's more likely to work there anyway :-)
17:29:50 <AnMaster> oklokok, in the future compiling cfunge may be a simpler choice :)
17:29:56 <AnMaster> when I get it done
17:30:22 <oklopol> pikhq: how low do you get?
17:30:29 -!- timotiis has joined.
17:30:45 <AnMaster> oklokok, cfunge can be set to use 64-bit stuff easily, in fact it is optimized for 64-bit ABI (I've read AMD64 ABI specs, so I optimize parameter order to pass as much as possible in the registers!)
17:30:51 <Deewiant> AnMaster: want to try iki.fi/deewiant/mycology.b98, it should have a test for that f8+y now
17:31:12 <AnMaster> Deewiant, I fixed my y for that, so can't test that
17:31:19 <Deewiant> AnMaster: undo the fix :-)
17:31:22 <pikhq> oklopol: At *least* to low C. . .
17:31:31 <oklopol> what's low c?
17:31:37 <oklopol> what are the names of the octaves?
17:31:38 <pikhq> C below bass clef.
17:31:48 <pikhq> ERm.
17:31:53 <pikhq> I might have screwed that up.
17:31:59 * pikhq imagines scale, labelling notes. . .
17:32:03 <oklopol> low C, some C, middle C
17:32:04 <oklopol> ?
17:32:13 <oklopol> like, two octaves down from that
17:32:46 <oklopol> i can do F quite easily too, but i'm a tenor really
17:32:48 <oklopol> well
17:33:03 <oklopol> as i'm not really a singer, i don't have a clear range like that
17:33:26 <oklopol> what are the ranges officially?
17:34:58 <AnMaster> Deewiant, anyway should nf8+y return 0 or 1?
17:35:02 <pikhq> Ah. The note I'm thinking of is called 'E2'. E below bass clef.
17:35:11 <pikhq> http://www.library.yale.edu/cataloging/music/vocalrg.htm
17:35:14 <oklopol> oh
17:35:26 <oklopol> C3 C2 C c c2 c3
17:35:30 <oklopol> and c is middle c?
17:35:33 <Deewiant> AnMaster: 0.
17:35:41 <pikhq> Yeah.
17:35:44 <oklopol> ah
17:35:54 <AnMaster> then wtf is up with:
17:35:54 <oklopol> same as in finnish then
17:35:55 <AnMaster> BAD: \ on empty stack doesn't make stack size 2, says y
17:36:00 <oklopol> well
17:36:06 <AnMaster> because, according to gdb
17:36:07 <AnMaster> it does
17:36:09 <pikhq> That range chart is a bit bad, though. . .I know all those parts have wider ranges.
17:36:10 <AnMaster> Deewiant, ^
17:36:16 <pikhq> Granted, not *much* wider.
17:36:21 <Deewiant> AnMaster: well, according to a Befunge program, it doesn't. :-)
17:36:35 <AnMaster> Deewiant, also BAD: i not implemented according to 1y - cannot test it <-- why is that "BAD"?
17:36:41 <AnMaster> it is fully valid to not have i and o
17:36:52 <Deewiant> AnMaster: I disagree
17:37:00 <AnMaster> Deewiant, the standard says so
17:37:10 <Deewiant> AnMaster: does it?
17:37:14 <AnMaster> # Bit 1 (0x02): high if i is implemented.
17:37:14 <AnMaster> # Bit 2 (0x04): high if o is implemented.
17:37:19 <oklopol> i can do all those, but i think i prefer the highest
17:37:23 <Deewiant> AnMaster: sure, it says that
17:37:35 <pikhq> oklopol: My *comfortable* range is the bass clef. ;)
17:37:36 <AnMaster> "Also, any of the instructions t (concurrent execution,) = (execute,) i (input-file,) and o (output-file) may be unavailable in different interpreters for many reasons, and are routinely bound to (i.e. act just like) r as well. However, they may also act like r when they fail to execute. To test if they are actually supported, execute 1y and examine the cell it produces."
17:37:39 <Deewiant> AnMaster: but that doesn't mean that a fully conforming implementation doesn't have to implement them :-)
17:37:39 <AnMaster> Deewiant, that too ^
17:37:54 <AnMaster> section "Instructions"
17:37:55 <AnMaster> :P
17:37:57 <Deewiant> AnMaster: alright
17:38:02 <AnMaster> so yes it is fully valid to not have those
17:38:14 <Deewiant> Did I say anything about '='? Was that UNDEF or nothing?
17:38:42 <Deewiant> darn, not much space there
17:38:48 <AnMaster> what you say is:
17:38:49 <AnMaster> BAD: i not implemented according to 1y - cannot test it
17:38:50 <AnMaster> BAD: can't test o without working i, might overwrite some existing file
17:39:03 <AnMaster> Deewiant, your test suite isn't conformant! :P:P
17:39:08 <Deewiant> hm, the second is kind of tricky
17:39:12 <Deewiant> AnMaster: I never claimed it was :-P
17:39:29 <oklopol> pikhq: you didn't answer the question of wether it was a composition of yours
17:39:32 <AnMaster> Deewiant, anyway, I don't implement either i or o
17:39:36 <AnMaster> nor do I plan to yet
17:39:39 <AnMaster> as they are optional
17:40:28 <AnMaster> Deewiant, so far: http://rafb.net/p/AA3KEd72.html
17:40:32 <AnMaster> yes I know y is broken still
17:40:39 <AnMaster> and so is some wrap parts
17:42:36 <pikhq> oklopol: Nope.
17:42:46 <oklopol> *whether
17:42:49 <pikhq> Just something I have to perform for my (fairly good) high school choir.
17:43:02 * pikhq damns the fourth movement of the Easter Cantata to hell.
17:45:01 <Deewiant> AnMaster: there'
17:45:06 <Deewiant> s a new Mycology up
17:45:13 <Deewiant> should say UNDEF at those two places now
17:46:17 <AnMaster> did you update test results?
17:46:19 <AnMaster> :P
17:46:26 <Deewiant> no, can't be bothered now
17:46:41 <Deewiant> some of the programs are outdated, too
17:47:01 <Deewiant> it's mostly "on hold" for now, I'll update it all later
17:47:11 <AnMaster> Deewiant, add a change log entry on that page for your change?
17:47:33 <AnMaster> Deewiant, http://users.tkk.fi/~mniemenm/files/befunge/mycology/mycology.zip is the right thing to download I assume?
17:47:39 <Deewiant> yep
17:48:27 <AnMaster> ok, interesting why CRLF btw?
17:48:43 <Deewiant> to make sure people support it :-)
17:58:47 <AnMaster> Deewiant, what about systems with multiple chars for path separator? iirc such systems existed that had two chars
17:58:52 <AnMaster> don't remember name
17:58:58 <AnMaster> but befunge won't work on those
17:59:00 <Deewiant> AnMaster: the standard specifies it's one cell
17:59:07 <Deewiant> can't be helped
17:59:13 <AnMaster> Deewiant, so befunge breaks on such systems
17:59:14 <AnMaster> I see
17:59:21 <Deewiant> on such a system, the interpreter could push a reserved value
17:59:28 <Deewiant> which it translates to the path sep on output
18:11:51 <AnMaster> reserved hm?
18:12:11 <Deewiant> like, say, it could say that cell sizes are 7 bytes
18:12:28 <Deewiant> and then reserve all higher values for stuff like that
18:12:38 <AnMaster> Deewiant, what file in CCBI does wrapping?
18:13:16 <Deewiant> ip.d probably
18:14:40 <Deewiant> yeah, IP.move
18:14:42 <lament> bah, CLOS is lame
18:14:53 <faxathisia> no it's not
18:15:07 <faxathisia> Have you used other object systems?
18:15:26 <lament> for lisp or in general?
18:15:31 <faxathisia> In general
18:15:53 <AnMaster> lament, what is CLOS?
18:15:58 <AnMaster> some befunge fingerprint?
18:16:09 <lament> object system for common lisp
18:16:14 <lament> faxathisia: i just don't like (method object)
18:16:33 <faxathisia> huh?
18:16:49 <lament> because it's namespace clutter
18:16:57 <faxathisia> you'd rather write method(object) ?
18:17:08 <lament> no, that's still namespace clutter
18:17:15 <lament> object.method() is not namespace clutter
18:17:23 <lament> there's no "method" in the global namespace
18:17:41 <lament> i understand the issues with multiple dispatch
18:17:43 <faxathisia> You can use packages
18:18:47 <lament> that doesn't really help, you just clutter the package namespace instead of the global one
18:19:06 <lament> as opposed to not cluttering anything
18:19:12 <oklokok> what way do people usually do functions in befunge?
18:19:17 <faxathisia> I don't really know why you are saying 'clutter' when actually you are defining a method
18:19:40 <faxathisia> if you didn't want it, don't write it
18:19:41 <oklokok> or they usually don't?
18:19:53 <Deewiant> AnMaster: :-D, not everything 4-char is a Befunge fingerprint ;-)
18:19:54 <lament> faxathisia: because in clos, this method is in the global namespace, and in python/c/c++/java/c# it's local _to the object_
18:20:17 <lament> which is where it belongs
18:20:18 <faxathisia> Lisp is different .. embrace it :)
18:20:39 <lament> it's not just different, it's worse
18:20:42 <faxathisia> the change is better in this case, especially reading something like AMOP
18:20:46 <Deewiant> oklokok: they usually don't, I guess
18:20:52 <oklokok> pretty simple to do for n-dimensions with (n-1) dimensions used in a function
18:20:58 <oklokok> so that you use one direction as a mapping level
18:21:15 <oklokok> like, you have every second level be one that just redirects the turtle in the right slow
18:21:26 <oklokok> based on function coordinates pushed on the stack
18:21:28 <Deewiant> oklokok: one way is to reserve one line/column of Funge-Space for a return address stack
18:21:31 <lament> faxathisia: good management of namespaces is one of the nicest things a language can do for you
18:21:38 <Deewiant> oklokok: and then use pg
18:21:47 <lament> when you have 20000 symbols in your namespace, it's hard to keep track of stuff
18:22:00 <AnMaster> <Deewiant> AnMaster: :-D, not everything 4-char is a Befunge fingerprint ;-)
18:22:01 <AnMaster> hehe
18:22:09 <AnMaster> yay wrapping now works
18:22:15 <oklokok> i'm fairly sure i can make callable functions with something like this, although you need to push a lot of stuff when you call a function
18:22:17 <AnMaster> non-cardinal I mean
18:22:42 <oklokok> Deewiant: that sounds slow
18:22:47 <AnMaster> Deewiant:
18:22:50 <AnMaster> UNDEF: 1k # does nothing at k or jumps at k and doesn't move past #
18:22:53 <Deewiant> oklokok: Befunge isn't fast :-P
18:23:07 <AnMaster> Deewiant, can you explain that one to me, and what way is "best"
18:23:38 <oklokok> Deewiant: no reason to make slow programs, quite the opposite!
18:23:43 <Deewiant> AnMaster: this is the thing that was discussed between myself and, IIRC, Lee Houghton
18:23:53 <Deewiant> AnMaster: I changed it in february to be UNDEF
18:24:22 <Deewiant> AnMaster: in short, k followed by a space is very poorly specified
18:24:33 <Deewiant> AnMaster: read the spec however you will
18:24:38 <AnMaster> yes indeed, it should not execute the space
18:24:40 <AnMaster> that is clear
18:24:56 <Deewiant> but after that, there are at least 3 options
18:25:00 <Deewiant> 1) reflect
18:25:07 <Deewiant> 2) ignore it and do nothing for 1 tick
18:25:19 <Deewiant> 3) find the instruction after the space and exec that
18:25:20 <AnMaster> and third?
18:25:41 <AnMaster> Deewiant, what one would you recommend?
18:25:46 <Deewiant> CCBI does 2
18:25:53 <Deewiant> some do 1, some do 3
18:25:59 <AnMaster> Deewiant, and the one I did?
18:26:03 <Deewiant> up to you really, based on the spec all can be justified
18:26:09 <AnMaster> I mean, the result
18:26:26 <Deewiant> "1k # does nothing at k" means 2
18:26:37 <Deewiant> "jumps at k and doesn't move past #" means that k doesn't move past the instruction it executes
18:26:37 <AnMaster> Deewiant, so it ignores the #?
18:26:46 <Deewiant> no, it means it ignores the space
18:26:51 <Deewiant> and then moves onto the # on the next tick
18:27:25 -!- jix has joined.
18:27:29 <AnMaster> err how can you know about tick for non-concurrent funge?
18:27:30 <Deewiant> or, in that latter case, that it executes # at k
18:27:41 <Deewiant> well for non-concurrent funge it doesn't make a difference
18:27:58 <Deewiant> I'm just saying "next tick" to clarify that it happens sequentially like that :-)
18:28:03 <AnMaster> Deewiant, my k function just calls return on space
18:28:13 <AnMaster> and reflects on 1) ", ; and nested k
18:28:26 <AnMaster> err not the , instruction that is
18:28:28 <Deewiant> why reflect on "?
18:28:35 <Deewiant> " toggles stringmode
18:28:43 <AnMaster> Deewiant, because standard says " isn't allowed in k
18:28:51 <Deewiant> it does?
18:29:02 <AnMaster> or rather indicates
18:29:09 <Deewiant> :-P
18:29:09 <AnMaster> "The k "Iterate" instruction pops a value n off the stack. Then it finds the next instruction in Funge-space in the path of the IP (note that this cannot be a marker such as space or ;)"
18:29:10 <Deewiant> how's that
18:29:20 <AnMaster> I would suggest " is a marker
18:29:29 <Deewiant> no, it's not
18:29:32 <Deewiant> it's an instruction
18:29:43 <Deewiant> The instruction " "Toggle Stringmode" toggles a special mode
18:29:47 <AnMaster> Deewiant, so what should 2k" do?
18:29:54 <Deewiant> nothing
18:30:06 <AnMaster> and 3k" ?
18:30:12 <Deewiant> same as 1k"
18:30:16 <Deewiant> or just "
18:30:20 <AnMaster> Deewiant, turn string mode on that is
18:30:23 <Deewiant> the only two markers are space and ;
18:30:26 <AnMaster> ok, that's stupid
18:30:27 <Deewiant> AnMaster: yep
18:30:29 <Deewiant> why
18:30:40 <Deewiant> I'm sure I could find a use for it if I try hard enough :-)
18:30:41 <AnMaster> Deewiant, k" doesn't make any sense :(
18:30:56 <Deewiant> say you've got two-dimensional code
18:31:01 <Deewiant> you need to skip over some code
18:31:08 <Deewiant> you've got semicolons in the middle so you can't use ;
18:31:28 <Deewiant> you're trying to move east and the code at that point looks like k"asdf
18:31:28 <AnMaster> j instruction
18:31:37 <Deewiant> you don't have enough room to turn to the east
18:31:51 <Deewiant> before hitting that k, that is
18:31:55 <AnMaster> hm ok
18:31:58 <Deewiant> so you put 1 on the stack and turn right
18:32:00 <AnMaster> relocate your code
18:32:05 <Deewiant> :-)
18:32:09 <Deewiant> that's not what befunge is about :-P
18:32:26 <Deewiant> to me anyway
18:32:31 <AnMaster> Deewiant, and you get a lot of crap on the stack right?
18:32:35 -!- ais523 has joined.
18:32:42 <Deewiant> do n afterwards
18:33:01 <Deewiant> or ask y for the current stack size and then use k$
18:33:01 <AnMaster> Deewiant, I would relocate the code to fit in a j instruction if needed
18:33:39 <Deewiant> if you can relocate like that, might as well not use j at all :-)
18:34:19 <Deewiant> but my point is, there can be a use for it
18:34:19 <AnMaster> I always write PIC code in befunge :P
18:34:22 <Deewiant> it's not /completely/ pointless
18:34:36 <Deewiant> to me that's somewhat self-defeating, might as well use brainfuck or whatever :-)
18:35:16 * AnMaster ponders a befungelint until he realizes it would be impossible to find what direction you enter a instruction without running it and seeing what happens in some cases
18:35:23 <Deewiant> yep
18:35:52 <AnMaster> Deewiant, anyway nasty thing that you check if ( that reflects pops things :P
18:36:05 * AnMaster could have managed further without that check
18:36:11 <AnMaster> as I don't implement ( yet
18:36:25 <Deewiant> an easy way to implement ( is just to make it pop a value then pop that many cells
18:36:30 <Deewiant> and reflect, of course
18:36:52 <Deewiant> but you do realize that if you're that far you've done pretty much everything else :-)
18:36:55 <AnMaster> wait, so ( isn't popping a 0gnirts?
18:37:07 <Deewiant> nope
18:37:10 <AnMaster> Deewiant, well my y is still seriously broken
18:37:38 <Deewiant> heh, looks like
18:37:48 <AnMaster> http://rafb.net/p/OqbNQJ59.html
18:37:51 <AnMaster> there ^
18:38:17 <AnMaster> also, my fungespace field is a mess, until I replace it with a sparse array
18:38:31 <AnMaster> a mess of 800x2500 cells heh ;P
18:38:41 <Deewiant> :-P
18:38:56 <AnMaster> just to do some things for now until I wait for some idea for sparse array
18:39:13 <AnMaster> anyway the interface for fungespace is clean
18:39:13 <Deewiant> Befunge98 used an octree I think
18:39:19 <AnMaster> so easy to replace with something else
18:39:46 <AnMaster> Deewiant, look, I'm in what equals last year of high school, I don't know the computer science stuff yet! tell me what a octree is :)
18:40:14 <Deewiant> when I started with CCBI I was, too :-)
18:40:20 <AnMaster> hahahah
18:40:51 <Deewiant> can't you guess from the name - octree i.e. octal tree i.e. a tree where each node has eight children
18:41:01 <AnMaster> uhu
18:41:05 <AnMaster> right
18:41:10 <Deewiant> so basically, each funge-space cell has pointers to each immediate neighbour
18:41:42 <AnMaster> I see
18:42:05 <AnMaster> Deewiant, must be slow to traverse if you want to not just go to next cell
18:42:14 <Deewiant> I don't know to be honest
18:42:17 <AnMaster> but say, get cell at 0,5 while you are at 374,57
18:42:30 <AnMaster> Deewiant, how does ccbi do it?
18:42:31 <Deewiant> he might have partitioned it
18:42:37 <Deewiant> AnMaster: D has built-in hash tables :-)
18:42:41 <AnMaster> :(
18:42:48 <faxathisia> Perl too..
18:42:53 <Deewiant> AnMaster: cell[cellidx][cellidx] space; or something
18:43:08 <AnMaster> well bash got sparse arrays hm
18:43:14 <AnMaster> but not matrixes
18:43:31 <AnMaster> so no point in looking at bash source
18:43:46 <Deewiant> there're libraries
18:43:55 <Deewiant> don't know what but there're bound to be some :-)
18:44:46 <AnMaster> Deewiant, I found some for floating point, some with bad license, some that was just 1D arrays and some that lacked any comments in code and said "buy this book to get documentation"
18:45:03 <AnMaster> and obfuscated source
18:45:07 <Deewiant> http://www.google.com/search?q=hash%20table%20library
18:45:22 <AnMaster> Deewiant, for C++ there are plenty, but not for C
18:45:22 <Deewiant> looks like a decent amount of results :-)
18:45:31 <Deewiant> the first one there is for C
18:45:36 <AnMaster> hm yes
18:45:37 * AnMaster looks
18:45:53 <Deewiant> the one referenced on the wikipedia page is also for C
18:46:09 <AnMaster> I looked at the ones listed there
18:46:17 <AnMaster> they were not 2D
18:46:32 <Deewiant> they don't have to be 2D
18:46:35 <AnMaster> oh?
18:46:44 <Deewiant> you have two options basically
18:46:52 <AnMaster> go on :)
18:46:53 <Deewiant> 1) what I do, have a hash table containing hash tables
18:47:06 <AnMaster> mhm
18:47:15 <Deewiant> 2) use, as the key, something which contains 2 integers
18:47:40 <Deewiant> either a struct or just a 128-bit integer with the higher bits as the y-coordinate and the lower as the x-coordinate or whatever
18:47:59 <AnMaster> ok, that makes "SunriseDD" look good, assuming license works with GPL3, because it works with boehm-gc
18:50:24 <Deewiant> CFUN eh
18:50:34 <AnMaster> Deewiant, er yes?
18:50:37 <AnMaster> is it in use?
18:50:47 <Deewiant> don't think so
18:51:02 <Deewiant> most use BEF or something instead of FUN
18:51:15 <AnMaster> FUN as in FUNGE
18:51:20 <Deewiant> yep
18:51:20 <AnMaster> but true it is just 2D
18:51:50 <AnMaster> Deewiant, does handprint have to be 4 chars?
18:51:58 <Deewiant> no
18:52:03 <Deewiant> it has to be a cell
18:52:08 <Deewiant> in your case it could be up to 8 chars
18:52:15 <Deewiant> since you have 64 bits
18:52:38 <AnMaster> I wonder, what about BIGNUMs?
18:52:46 <Deewiant> in that case it could be anything
18:52:52 <AnMaster> indeed
18:53:15 <Deewiant> because it doesn't matter whether other interpreters can represent it
18:53:45 <AnMaster> Deewiant, does mycology only test befunge or trefunge too?
18:53:51 <Deewiant> befunge only
18:53:59 <Deewiant> would be really hard to make it work for both befunge and trefunge
18:54:00 <AnMaster> and does it handle running under trefunges gracefully
18:54:04 <Deewiant> no, not at all
18:54:08 -!- slereah_ has quit (Read error: 104 (Connection reset by peer)).
18:54:15 <Deewiant> or unefunges ;-)
18:54:17 <AnMaster> Deewiant, it should check size of vectors :)
18:54:29 <Deewiant> tricky in 80x25 chars
18:54:32 <AnMaster> because if it does that, it can run under any funge > 2
18:54:38 <AnMaster> Deewiant, well I mean for funge98
18:54:45 <Deewiant> it'd have to be done for funge93 too
18:54:52 <AnMaster> oh?
18:54:58 <AnMaster> Deewiant, 80x25xwhat?
18:55:02 <Deewiant> funge93 has p and g
18:55:04 <Deewiant> which use vectors
18:55:17 <AnMaster> for trefunge93 I mean
18:55:26 <Deewiant> beats me
18:55:41 <Deewiant> but I guess you're right in that way, -93 didn't specify anything other than 2D
18:55:42 <AnMaster> does trefunge93 exist even?
18:56:05 <Deewiant> but still, it'd be tricky for funge98 as well
18:56:14 <Deewiant> since it'd have to be done /every time/ a vector is pushed/popped
18:56:27 <Deewiant> unless you mean just branching and saying "not befunge" the first time
18:56:35 <AnMaster> nah, not at all
18:56:48 <AnMaster> you check it once, then do some self modifcation
18:56:56 <AnMaster> to change all p/g instructions
18:56:59 <Deewiant> err
18:57:07 <Deewiant> there are a lot more instructions than just p and g that use vectors :-P
18:57:07 <AnMaster> you should leave place around
18:57:09 <AnMaster> of course
18:57:14 <AnMaster> Deewiant, yes all those twoo
18:57:15 <AnMaster> too*
18:57:16 <Deewiant> it's too difficult
18:57:19 <Deewiant> intractable in fact
18:57:28 <AnMaster> Deewiant, but not inpossible
18:57:30 <Deewiant> once again, since you can't tell what direction an instruction is entered from
18:57:32 <Deewiant> it's impossible
18:57:41 <Deewiant> and consider y for instance
18:57:48 <AnMaster> yes?
18:57:49 <Deewiant> it pushes 5 vectors
18:58:05 <AnMaster> you do y once, to find out whatfunge it is
18:58:15 <Deewiant> how would you programmatically modify anything that uses y to deal with arbitrary-sized vectors
18:58:20 <Deewiant> since the code would be very spread out
18:58:29 <AnMaster> then you go into self modification mode, and add the needed code around each place
18:58:32 <AnMaster> using p
18:58:39 <AnMaster> to change the mycology program itself
18:58:41 <Deewiant> how would you find 'the place'
18:58:48 <Deewiant> 'each place' that is
18:58:55 <Deewiant> it's impossible, I tell you
18:58:56 <AnMaster> Deewiant, store it as incomplete vectors?
18:59:12 <AnMaster> and then add the extra 0 needed :)
18:59:21 <Deewiant> how would you store it like that
18:59:29 <Deewiant> here's some code: aa+y
18:59:44 -!- slereah__ has joined.
18:59:46 <Deewiant> modify that to work under a dimensionality given on top of the stack :-)
18:59:51 <AnMaster> yes then you store say 53 or wherever it is at
19:00:07 <AnMaster> the position of that aa
19:00:15 <Deewiant> haha
19:00:25 <Deewiant> for every use of vectors, store the position somewhere? :-D
19:00:36 <Deewiant> no thanks
19:00:44 <AnMaster> Deewiant, yep, and then once you find out the dimension count, change those places
19:01:02 <AnMaster> pad the vectors to p that change them with 0
19:01:12 <AnMaster> as needed
19:01:22 <Deewiant> it'd probably be easier to check the dimensionality separately at each place :-D
19:01:22 <AnMaster> Deewiant, look, it isn't impossible
19:01:23 <AnMaster> !
19:01:32 <Deewiant> it's impossible programmatically
19:01:40 <Deewiant> you need to change the original code beforehand
19:01:45 <AnMaster> err no?
19:01:53 <Deewiant> yes, because you need to store all those places
19:01:56 <AnMaster> just leave some spaces around that you can fill out
19:02:15 <AnMaster> to support a fixed set of n dimensions
19:02:42 <Deewiant> exactly
19:02:55 <Deewiant> so first of all that limits you to a static number of dimensions
19:03:01 <AnMaster> no wait, you don't need to
19:03:08 <Deewiant> and second, that's changing the original code
19:03:13 <AnMaster> all you need is a sub routine
19:03:25 <AnMaster> simple you told someone here yourself how to
19:03:28 <AnMaster> jump and so on
19:03:54 <Deewiant> it's not that simple
19:04:02 <Deewiant> there are instructions that do X, then pop a vector, then do Y
19:04:07 <Deewiant> or s/pop/push/
19:04:20 <Deewiant> you'd need a subroutine for each such instruction
19:04:25 <Deewiant> not just p/g
19:04:37 <AnMaster> just a make vector subroutine
19:04:38 <AnMaster> :)
19:04:50 <AnMaster> that you can use for p/g/whatever
19:05:04 <AnMaster> even for x
19:05:21 <Deewiant> but still, this is all changing the original source
19:05:25 <AnMaster> Deewiant, also vector isn't hard, in that case, all you need is 0 in the extra dimensions right?
19:05:31 <Deewiant> what I mean is that you can't tractably do the following:
19:05:35 <AnMaster> so if stack is empty after vector
19:05:49 <AnMaster> then all will be +
19:05:50 <AnMaster> eh
19:05:51 <AnMaster> 0
19:05:55 <Deewiant> write befunge code that loads mycology.b98 and modifies each vector use to work for any number of dimensions
19:05:59 <Deewiant> without changing mycology.b98
19:06:06 <Deewiant> beforehand
19:06:13 <AnMaster> Deewiant, no I didn't say that
19:07:19 <Deewiant> that's what I was thinking when I said impossible
19:07:31 <Deewiant> of course, if you can rewrite the whole code, it's possible
19:07:35 <Deewiant> just ugly :-P
19:07:40 <Deewiant> and overly tricky
19:07:54 <Deewiant> it's much easier for the interpreter to allow specifying dimensionality
19:08:06 <Deewiant> since nobody's going to write a Funge interpreter which doesn't execute Befunge ;-)
19:08:41 <AnMaster> Deewiant, err what about unefunge?
19:09:12 <Deewiant> s/Funge/greater-than-2-Funge/
19:09:14 <Deewiant> nitpicker :-P
19:09:19 <AnMaster> hah
19:09:37 <AnMaster> also what about "extra dimensions on demand" style funge
19:09:44 <AnMaster> that would be nice
19:10:20 <AnMaster> Deewiant, wouldn't it?
19:10:21 <ais523> Deewiant: aren't all Befunge programs also legal Trefunge programs?
19:10:28 <Deewiant> ais523: nope
19:10:32 <ais523> (although they'll get the number of elements in a vector wrong)
19:10:35 <AnMaster> ais523, nop, because of vector size
19:10:38 <AnMaster> so that won't work
19:10:48 <Deewiant> ais523: consider 102p
19:10:54 <AnMaster> of course they are legal
19:10:56 <Deewiant> that should put 1 at the position (0,2)
19:10:58 <AnMaster> just won't do the same thing
19:11:06 <AnMaster> Deewiant, assuming befunge
19:11:10 <Deewiant> in trefunge, it'd put whatever was on the stack beforehand at the position (1,0,2)
19:11:35 <AnMaster> ais523, Deewiant: still legal, just won't do the same
19:11:36 <ais523> clearly, dimension-independent vectors are needed
19:11:37 <Deewiant> AnMaster: yes, of course. Always assume Befunge unless I say otherwise :-)
19:11:41 <AnMaster> ais523, yes
19:11:42 <ais523> so that we can have Hilbert-space-funge
19:11:49 <AnMaster> ais523, err what?
19:11:56 <ais523> AnMaster: infinitely many dimensions
19:12:06 <Deewiant> AnMaster: university stuff ;-)
19:12:07 <AnMaster> ais523, yes, but how do you indicate end of vector
19:12:12 <AnMaster> ah got an idea:
19:12:14 <Deewiant> AnMaster: just give the size
19:12:16 <ais523> only finitely many of which are allowed to be anything other than 0, so that it's possible to store coordinates in finite size
19:12:20 <AnMaster> ah yes
19:12:35 <AnMaster> Deewiant, first in vector: size of vector
19:12:38 <AnMaster> rest is vector
19:12:41 <Deewiant> yep
19:13:10 <AnMaster> Deewiant, now that would need some substantial redesigning or a fingerprint of some kind
19:13:35 <AnMaster> ais523, err?
19:14:04 <ais523> AnMaster: you can specify vectors by giving a number of coordinates and listing the first few
19:14:16 <ais523> because as only finitely many can be non-zero, there must be some highest non-zero coordinate
19:14:27 <Deewiant> AnMaster: INDV/PNTR supports arbitrary-dimensional vectors
19:14:40 <Deewiant> AnMaster: I think.
19:14:42 <Deewiant> at least some fingerprint did.
19:14:49 <AnMaster> Deewiant, interesting
19:14:57 <ais523> it would be easy enough to have a fingerprint that supports G and P as arbitrary-dimensional g and p
19:14:59 <Deewiant> not in this way, I don't think, but in some way.
19:15:14 <AnMaster> ais523, also need X too
19:15:33 <Deewiant> it wasn't INDV.
19:15:33 <ais523> does y return any vectors? I can't remember offhand
19:15:33 <AnMaster> or you couldn't jump into those dimensions
19:15:34 <AnMaster> ais523, it does
19:15:38 <Deewiant> oklokok: you were asking about functions: there's the SUBR fingerprint
19:15:40 <AnMaster> so Y too
19:16:11 <AnMaster> Deewiant, hm fingerprints got to fit in a cell?
19:16:14 <AnMaster> they don't do they?
19:16:17 <Deewiant> nope
19:16:24 <Deewiant> or yep, actually
19:16:26 <Deewiant> or wait
19:16:29 <Deewiant> not sure
19:16:32 <Deewiant> read the spec :-P
19:16:45 <AnMaster> can I make fingerprints that would only work on 64-bit funges is the question
19:16:50 <Deewiant> AnMaster: JSTR is the fingerprint I was thinking of
19:17:10 <AnMaster> Deewiant, modified rcfunge right?
19:17:19 <Deewiant> yep, jesse van herk's
19:17:22 <AnMaster> btw, the rcfunge with SGNL didn't compile
19:17:29 <AnMaster> had to remove SGNL thing
19:17:31 <Deewiant> quite possible
19:17:36 <AnMaster> and this is unix
19:17:45 <AnMaster> so it should work
19:17:46 <Deewiant> like said, POSIX is a bad thing ;-)
19:17:55 <AnMaster> Deewiant, it isn't
19:18:00 <Deewiant> I'm on cygwin so I think I removed SGNL and WIND
19:18:10 <Deewiant> or rather, I tested it on cygwin
19:18:13 <AnMaster> Deewiant, anyway WIND is just a crappy idea
19:18:29 <Deewiant> I agree, which is why I didn't implement it :-)
19:18:32 <AnMaster> it should be QT of course
19:18:33 <AnMaster> :D
19:18:38 <Deewiant> baah
19:18:42 <AnMaster> or maybe XLIB or GTK+
19:18:48 <Deewiant> I think using Funge for GUIs is just worthless :-P
19:18:52 <AnMaster> because those two would fit into 4 chars
19:19:03 <Deewiant> AnMaster: and yes, a fingerprint has to fit in a cell
19:19:11 <AnMaster> Deewiant, according to that principle, funge is worthless
19:19:15 <ais523> Deewiant: are you aware of Deltaplex
19:19:20 <ais523> s/$/?/
19:19:23 <AnMaster> ais523, what is it?
19:19:36 <ais523> it's a fungeoid designed for GUIs, graphics, etc.
19:19:41 <Deewiant> AnMaster: no, I just think GUI programming isn't Funge's forté ;-)
19:19:46 <ais523> it even has 3-D graphics commands and mouse support built in
19:19:48 <AnMaster> ais523, eww
19:19:50 <Deewiant> AnMaster: http://www.esolangs.org/wiki/Deltaplex
19:20:12 <AnMaster> Deewiant, then you should drop TURT too :P
19:20:14 * ais523 has the Esolang Firefox search widget
19:20:30 <Deewiant> AnMaster: nah, TURT isn't for GUIs, it's for drawing pictures
19:20:33 <AnMaster> drawing pictures isn't Funge's forté
19:20:53 <AnMaster> Deewiant, tell me what is Funge's forté?
19:21:09 <Deewiant> AnMaster: obfuscated code :-)
19:21:20 <Deewiant> it is an /esoteric/ language after all
19:21:27 <AnMaster> yes
19:21:35 <AnMaster> not drawing pictures then!
19:21:41 <Deewiant> true
19:21:49 <Deewiant> I just liked the idea of TURT
19:21:52 <Deewiant> seemed to fit the theme
19:22:13 * ais523 was under the impression that Befunge was originally invented to be hard to compile
19:22:25 <AnMaster> ais523, indeed
19:22:26 <Deewiant> yes, I believe so
19:22:29 <AnMaster> and it is
19:22:45 <AnMaster> I wouldn't even try to, even without anything like p
19:22:54 <ais523> it's probably harder to compile than Unlambda, which is itself traditionally hard to compile
19:22:55 <Deewiant> essentially impossible to compile for modern arches, unless you count embedding the interpreter into the executable
19:23:03 <Deewiant> since it relies on self-modifying code so much
19:23:06 <Deewiant> or can rely
19:23:09 <AnMaster> Deewiant, you know W^X/NX/PaX/misc/other/names
19:23:11 <AnMaster> ?
19:23:20 * ais523 is working on a language that Unlambda compiles to, and that can be compiled to C
19:23:31 <Deewiant> AnMaster: the data execution denial bit or whatever?
19:23:38 <AnMaster> No Execute thing, either pages are write or execute, but not both at same time indeed
19:23:44 <AnMaster> well that would break for funges
19:24:00 <AnMaster> so you can't compile it
19:24:04 <Deewiant> yeah, that effectively disallows all self-modifying code I believe
19:24:08 <AnMaster> and run it on any sane system
19:24:15 <AnMaster> Deewiant, well JITs does work around it
19:24:36 <AnMaster> and pure interpreters too
19:24:54 * AnMaster ponders NX bit for funge, per-cell
19:25:00 <Deewiant> :-)
19:25:00 <AnMaster> as a fingerprint
19:25:01 <AnMaster> :)
19:25:12 <Deewiant> best make it possible to set an area in one instruction then
19:25:19 <AnMaster> yep indeed
19:25:24 <AnMaster> anyway I won't do that yet
19:25:53 <AnMaster> also, following style of how hardware NX works, it shouldn't just reflect, but instead terminate current IP
19:25:54 <AnMaster> :D
19:26:08 <Deewiant> that'd work too
19:26:13 <Deewiant> it's to protect against bugs, after all
19:26:51 <Deewiant> so you'd set the NX bit on code after executing it once, and then if it ever goes there again it'll fail gracefully
19:27:02 <AnMaster> err no
19:27:05 <AnMaster> ah yes
19:27:11 <Deewiant> :-P
19:27:13 <AnMaster> and NoWrite bit too
19:27:15 <AnMaster> as well
19:27:21 <Deewiant> well, not necessarily
19:27:24 <Deewiant> you can use it for scratch space
19:27:26 <AnMaster> yes both are useful
19:27:33 <AnMaster> NX for scratch space
19:27:35 <Deewiant> sure, const :-D
19:27:38 <AnMaster> and NW for code space
19:27:43 <Deewiant> Funge++
19:27:46 <ais523> NX?
19:27:53 <Deewiant> ais523: http://en.wikipedia.org/wiki/NX_bit
19:27:53 <AnMaster> ais523, No eXcute
19:28:01 <AnMaster> eXecute*
19:28:16 <AnMaster> Deewiant, we need a NoRead bit too of course
19:28:22 <AnMaster> for write only data
19:28:26 <AnMaster> no idea about use
19:28:29 <Deewiant> :-D
19:28:33 <ais523> INTERCAL has a setting that can be placed on a command to prevent it running more than once
19:28:35 <AnMaster> but I'm sure someone could make one
19:28:39 <ais523> (it becomes a NOP after it runs, but can be reset)
19:28:46 <Deewiant> ah, there's an idea
19:28:59 <AnMaster> Deewiant, also, what about vectored IO for funge? :D
19:29:04 <ais523> it's used for multithreading synchronisation, and also a convenient way to write an if statement
19:29:08 <Deewiant> AnMaster: a fingerprint that sets a mode, so that whenever an instruction is executed it becomes the given instruction
19:29:17 <Deewiant> like zM - after that, all executed instructions become zs after executed
19:29:25 <Deewiant> 'zM rather
19:29:35 <AnMaster> yes I know that
19:29:38 <ais523> you'll end up inventing Malbolge at that rate
19:29:42 <Deewiant> :-)
19:30:09 <AnMaster> anyone up for the task of writing a malbolge interpreter in befunge?
19:30:46 <Deewiant> how about a befunge/malbolge quine
19:30:49 <Deewiant> one generates the other
19:31:10 <AnMaster> Deewiant, not going to try that
19:31:12 <AnMaster> I'm not insane
19:31:23 <AnMaster> writing a malbolge interpreter however, isn't as hard
19:31:27 <Deewiant> :-)
19:31:36 <AnMaster> ... as writing any program in malbolge
19:31:37 <ais523> malbolge interps are quite easy, normally
19:31:38 <Deewiant> the point about malbolge isn't to write interpreters, it's to try and write programs
19:31:51 <AnMaster> Deewiant, it is about saneness
19:31:55 <ais523> although I think it might be impossible to write one in Befunge-93 without some sort of extra storage
19:31:58 <AnMaster> I'm not going to write in malbolge
19:32:04 <AnMaster> ais523, indeed
19:32:25 <ais523> maybe someone should invent a 2D version of malbolge
19:32:25 <AnMaster> ais523, err what?
19:32:26 <AnMaster> no
19:32:34 <Deewiant> -93 sucks
19:32:36 <ais523> that combines the worst aspects of malbolge and befunge
19:32:40 <AnMaster> you can load files into befunge98
19:32:59 <AnMaster> so just use 98
19:32:59 <AnMaster> -_-
19:33:01 * ais523 agrees with Deewiant about -93's lack of storage, or indeed, TCness
19:33:01 <Deewiant> AnMaster: as he said, Befunge-93
19:33:01 <Deewiant> of course you're fine in -98
19:33:06 <AnMaster> true
19:33:09 <AnMaster> or well no
19:33:13 <AnMaster> you are insane still
19:33:14 <AnMaster> :P
19:33:28 <AnMaster> (not that I'm claiming to be sane myself in any way!)
19:33:34 <ais523> AnMaster: any Befunge-98 implementation should easily be able to fit 59049 10-trit words into the playfield memory
19:33:51 <AnMaster> ais523, indeed
19:33:51 <Deewiant> yes, 'should'. Might not, though. :-)
19:34:08 <Deewiant> case in point: a few interpreters crashed on loading mycology
19:34:11 <ais523> and Malbolge itself is basically an evilly twisted version of assembler
19:34:21 <AnMaster> Deewiant, oh? what ones?
19:34:37 <Deewiant> AnMaster: can't remember... befunge98 at least
19:34:39 <ais523> Deewiant: interfunge does that, but to be fair it's designed as a Befunge-93 implementation and doesn't like strings longer than 80 characters on the input
19:34:46 <AnMaster> Deewiant, interesting
19:34:55 <AnMaster> ais523, err no
19:35:04 <AnMaster> ais523, it should discard the extra data
19:35:05 <AnMaster> :P
19:35:10 <Deewiant> AnMaster: basically here was a bug in his octree code and he 'fixed' it by enlarging the default size :-)
19:35:14 <Deewiant> s/here/there/
19:35:23 <AnMaster> Deewiant, lol
19:35:23 <ais523> AnMaster: CLC-INTERCAL requires you to know the length of a string before you can input it
19:35:43 <AnMaster> ais523, then you can't write a conforming interpreter in that language
19:35:44 <AnMaster> sorry
19:35:49 <AnMaster> not even 93 one
19:35:53 <ais523> although interfunge is written in C-INTERCAL and therefore should be able to handle line-ends with extra code
19:36:02 <AnMaster> ais523, there you are then
19:36:12 <ais523> you also need to type two newlines at EOF because INTERCAL can't detect an EOF; it errors out instead
19:36:38 <AnMaster> ais523, well you would need to pre-process your code then
19:36:39 <ais523> although I have cunning plans to get around that which involve multithreading
19:36:49 <AnMaster> oh god
19:36:59 <AnMaster> look, intercal is even more insane than befunge
19:37:10 <ais523> Befunge always struck me as relatively sane
19:37:18 <ais523> but then I have a nonstandard set of things to compare it to
19:37:46 <AnMaster> btw didn't someone from this channel prove that something was turing complete and win some kind of price for it?
19:37:54 <AnMaster> must have been a few months ago
19:38:09 <ais523> AnMaster: that was me
19:38:14 <AnMaster> oh
19:38:29 <AnMaster> I looked at the proof pdf or whatever it was, and didn't understand it
19:38:38 <ais523> there isn't anything very difficult in there
19:38:42 <ais523> it just goes on and on and on
19:38:43 <Deewiant> ais523: what did you prove
19:38:45 <faxathisia> me neither :D
19:38:49 <faxathisia> I will read it again
19:38:52 <ais523> that a particular Turing machine was Turing-complete
19:38:55 <AnMaster> ais523, how much money=
19:38:57 <AnMaster> was it
19:39:00 <ais523> $25000
19:39:05 <ais523> although that comes to less in pounds
19:39:13 <AnMaster> that is quite a lot I think *coverts to SEK*
19:39:14 <Deewiant> ais523: is this on the 'Net somewhere?
19:39:23 <ais523> http://www.wolframprize.org/
19:39:26 <faxathisia> what did you do with the money? :P
19:39:27 <Deewiant> oh, that one
19:39:32 <ais523> faxathisia: put it in the bank
19:40:12 <AnMaster> ais523, still a LOT
19:40:14 <ais523> although I used a small amount of it to buy this laptop
19:40:16 <AnMaster> 25 000 U.S. dollars = 152 887.432 Swedish kronor
19:40:18 <AnMaster> indeed a lot
19:40:27 <AnMaster> enough to buy a car
19:40:40 <AnMaster> (small car that is)
19:40:45 <ais523> or, in my case, just about cancel out my student loan
19:40:54 <AnMaster> ah nice
19:40:55 <Deewiant> of course, the dollar was much more valuable 6 months ago :-)
19:41:06 <AnMaster> bad luck
19:41:20 <Deewiant> or rather, good luck that he got the money then and not now
19:41:30 <Deewiant> assuming he did get the money back then, and not now :-P
19:41:32 <AnMaster> ah maybe?
19:41:33 <ais523> yes
19:41:35 <AnMaster> right
19:41:50 <AnMaster> was thinking in reverse
19:41:53 <AnMaster> too much befunge
19:41:57 <Deewiant> heh
19:42:19 <ais523> Befunge is more interesting than some Turing machine that executes programs in O(2^2^n) time
19:42:42 <AnMaster> ais523, err?
19:42:48 <ais523> it wasn't very efficient
19:42:52 <AnMaster> I'm sure mine isn't that effective
19:42:52 <Deewiant> I actually thought about that competition when I first saw it, but then I figured it'd be too tedious :-)
19:42:55 <ais523> at least not the way I programmed it
19:43:15 <Deewiant> probably wouldn't have bothered to finish it if I did start it
19:43:19 <AnMaster> ais523, ?
19:43:22 <Deewiant> kudos for getting it done :-)
19:43:36 <ais523> AnMaster: the input program is ridiculously long and repetitive
19:43:37 <Deewiant> AnMaster: he's talking about wolfram's turing machine
19:43:47 <AnMaster> ah
19:43:50 <AnMaster> he said befunge too
19:43:53 <AnMaster> <ais523> Befunge is more interesting than some Turing machine that executes programs in O(2^2^n) time
19:43:53 <ais523> (in fact, infinitely long, but finitely many characters can run a program for any finite time)
19:44:10 <Deewiant> ais523: yes, where "some turing machine" is wolfram's 2,3 turing machine :-)
19:44:12 <Deewiant> err
19:44:13 <Deewiant> AnMaster: ^
19:44:17 <AnMaster> ah
19:44:19 <AnMaster> right
19:44:45 <AnMaster> ais523, wouldn't emulating P'' be the best option?
19:44:50 <Deewiant> ais523: but wasn't there something about the proof being flawed?
19:44:57 <ais523> AnMaster: I emulated cyclic tag systems
19:45:05 <AnMaster> ais523, that is?
19:45:10 <ais523> and as for the argument about the proof, the original concern was based on a misconception
19:45:30 <ais523> although new concerns emerged as a result which basically demonstrated that nobody is entirely sure exactly what Turing-completeness is anyway
19:45:47 <AnMaster> ais523, err, indeed I'm not sure of that
19:45:55 <ais523> and although my proof is correct, it lead to an argument about whether what it demonstrated was useful or not
19:46:11 <AnMaster> ais523, as long as you got the money! ;)
19:46:12 <ais523> as in, whether the definition of TCness I used was appropriate and/or interesting
19:46:33 <ais523> but the argument died down suddenly in the middle when the list moderator went on holiday, and never resumed
19:46:39 <Deewiant> :-D
19:46:45 <ais523> (that is, the argument, not the moderator)
19:46:51 <AnMaster> heh
19:46:58 <AnMaster> ais523, so well was it useful or not?
19:47:02 <ais523> I think it was
19:47:47 <ais523> anyone who actually followed through the entire proof - that is, me and at least one of the judges, and possibly other people - realises that I emulate all features of the cyclic tag system in the original Turing machine
19:47:52 <ais523> s/realises/realised/
19:47:57 <ais523> so it's definitely a valid emulation
19:48:10 <ais523> however, most mathematicians prefer to take a black-box approach to Turing-completeness
19:48:21 <ais523> which means that you need to be very careful with definitions
19:48:30 <ais523> and my proof hit the gray area that nobody was sure about
19:48:39 <ais523> in terms of a black-box approach
19:50:23 <AnMaster> ais523, oh?
19:50:30 <AnMaster> what does black box mean in this case
19:50:54 <ais523> that you deduce whether something is TC by applying certain tests to an emulation
19:50:58 <ais523> rather than seeing how the emulation works
19:51:08 <AnMaster> mhm
19:51:31 <ais523> I don't really aprove of the approach myself, but mathematicians like it because the other method is often hard to define rigorously
19:52:26 <AnMaster> Deewiant, wtf is the point of the fingerprint TOYS
19:52:44 <Deewiant> AnMaster: like it says, it's toys - random stuff
19:52:55 <Deewiant> btw, I'll take this moment to ask
19:52:59 <AnMaster> and most pointless, and with silly names
19:53:05 <ais523> (incidentally, a number of other esolangs came out of the proof. 1cnis came out indirectly, and I invented certain other languages which qualify as esolangs as stages in the proof, although system 5 is probably the only interesting one)
19:53:12 <AnMaster> Deewiant, ...where you can get my code?
19:53:16 <Deewiant> does anybody know what 'the result of a "butterfly" bit operation' is?!
19:53:27 <ais523> AnMaster: it's in tribute to INTERCAL character names
19:53:32 <ais523> Deewiant: yes
19:53:42 <AnMaster> aha
19:53:46 <ais523> you take the sum and the difference of two numbers, then multiply the differenceby a constant
19:53:56 <Deewiant> ais523: and what's the constant
19:53:58 <ais523> it's an operation in Fourier transforms
19:53:59 <Deewiant> B ('pair of shoes') pops two cells off the stack and pushes the result of a "butterfly" bit operation.
19:54:09 <Deewiant> how am I to understand that
19:54:11 <ais523> hmm... maybe it's a different operation
19:54:24 <ais523> because you have to provide the constant in the butterfly operation I know about
19:54:29 <ais523> and besides, mine isn't bitwise
19:54:31 <AnMaster> Deewiant, what does CCBI do for that?
19:54:43 <Deewiant> the same as !Befunge
19:54:50 <AnMaster> and what does it do?
19:54:54 <Deewiant> which has a "/* Guess what this is meant to be... */" comment in the code :-P
19:54:58 <oklokok> umm, befunge actually doesn't have an operator that digs up n deep in the stack and pushes that on top?
19:55:01 <Deewiant> it's the only one that implements anything at all
19:55:09 <Deewiant> oklokok: nope. only the FRTH fingerprint has something like that
19:55:18 <AnMaster> oklokok, of course not
19:55:20 <oklokok> lame :<
19:55:24 <oklokok> AnMaster: of course?
19:55:43 <Deewiant> AnMaster: it pushes the sum and then the difference of the values and then reflects
19:55:47 <AnMaster> oklokok, of course as it would make coding much easier, and we already used all ASCII chars below 127
19:55:48 <AnMaster> :P
19:55:52 <AnMaster> that are printable
19:55:53 <Deewiant> AnMaster: and outputs a warning if in warning mode, etc.
19:56:06 <AnMaster> Deewiant, interesting
19:56:14 <Deewiant> mine doesn't reflect but otherwise does the same
19:56:17 <AnMaster> Deewiant, who wrote the TOYS thing?
19:56:22 <oklokok> k could be replaces
19:56:24 <oklokok> *replaced
19:56:26 <oklokok> it's useless
19:56:27 <AnMaster> the specs I mean
19:56:29 <ais523> I'm guessing it reflects because the constant wasn't provided...?
19:56:31 <AnMaster> oklokok, it isn't!
19:56:37 <oklokok> yeah it is
19:56:39 <Deewiant> AnMaster: since it's part of the standard, probably chris pressey
19:56:49 <ais523> oklokok: Underlambda is going to have a very similar combinator
19:56:49 <AnMaster> Deewiant, then, why not ask him?
19:56:53 <Deewiant> ais523: possibly
19:57:08 <Deewiant> AnMaster: he posted back in 2000 or so that he's 'not very interested in befunge' anymore or something like that :-)
19:57:26 <oklokok> ais523: i'm sure it has a use in underlambda
19:57:26 <Deewiant> AnMaster: I figured I'd take the route of implementing everything I can find currently
19:57:28 <AnMaster> Deewiant, aha, that explains why I got no answer on my license mail
19:57:31 <Deewiant> AnMaster: or choosing not to
19:57:38 <Deewiant> AnMaster: and then just leave it at that.
19:57:50 <oklokok> it's just befunge doesn't have many operators worth iterating alone.
19:57:57 <Deewiant> AnMaster: yeah, maybe he automatically filters everything with 'befunge' in it ;-)
19:58:01 <AnMaster> oklokok, yes it does
19:58:04 <oklokok> like what?
19:58:08 <AnMaster> * / \ : and a few more
19:58:09 <AnMaster> :)
19:58:15 <Deewiant> $ for instance
19:58:22 <AnMaster> 2222222222222222 88+k*
19:58:24 <Deewiant> $ and , are the ones I use
19:58:28 <AnMaster> what does that result in?
19:58:30 <oklokok> pop makes sense in some cases
19:58:32 <AnMaster> yes , too
19:58:43 <Deewiant> but unfortunately using k, turned out to be a bad idea
19:58:48 <Deewiant> since interpreters implement k differently
19:58:51 <Deewiant> so the output becomes b0rked
19:59:04 <AnMaster> Deewiant, well thanks to mycology it won't any more
19:59:23 <Deewiant> AnMaster: but I still can't use it in mycology itself :-)
19:59:32 <Deewiant> and I probably won't be writing much more befunge :-D
19:59:41 <AnMaster> Deewiant, why not?
19:59:47 -!- faxathisia has quit (Connection reset by peer).
19:59:48 <AnMaster> are you also no longer interested in the language
19:59:49 <AnMaster> :(
20:00:03 <Deewiant> I've written more befunge than all others on this planet put together :-D
20:00:22 <AnMaster> you are sure?
20:00:23 <Deewiant> I was interested in implementing it and then writing that test suite, for fun
20:00:32 <Deewiant> of course not
20:00:35 <Deewiant> but probably
20:00:35 <AnMaster> ah
20:00:38 <AnMaster> indeed
20:00:51 <AnMaster> Deewiant, however that guy with the crazy domain name comes close I think
20:00:55 <Deewiant> but yeah, I never felt like I'd /use/ Befunge for something
20:01:10 <Deewiant> AnMaster: not necessarily
20:01:20 <ais523> Deewiant: I wrote a few Befunge programs as anarchy golf entries
20:01:26 <AnMaster> befunge would be nice for mission critical stuff, because it won't crash, it just reflects instead
20:01:27 <ais523> but I'm not very good at Befunge golfing
20:01:34 <AnMaster> so you can know your program won't end
20:01:38 <ais523> unfortunately it only supports Befunge-93
20:01:46 <Deewiant> Mycology is over 100K of Befunge
20:01:48 <ais523> AnMaster: it could get stuck in an infinite loop easily
20:01:52 <AnMaster> ais523, yes indeed
20:01:57 <Deewiant> a quick look at J^4 suggests he's written around 30K, maybe
20:01:59 <AnMaster> but it wouldn't actually end
20:02:01 <Deewiant> or published, at least
20:02:13 <Deewiant> if you count nonpublished then I go up to over 200K probably
20:02:27 <AnMaster> Deewiant, he likely written more, backspaced written more backspaced again
20:02:34 <AnMaster> considering how hard it is
20:02:35 <AnMaster> :)
20:02:36 <Deewiant> AnMaster: so have I :-)
20:02:51 <AnMaster> heh true
20:04:01 <Deewiant> the Befunge-93 section of Mycology has been fully rewritten 4 times, I believe
20:04:13 <Deewiant> the first time it was much more readable
20:04:19 <Deewiant> but it didn't come even close to fitting in 80x25
20:04:25 <AnMaster> hah
20:04:40 <Deewiant> it looked a bit like the befunge code you showed me you wrote :-)
20:04:42 <AnMaster> Deewiant, it isn't readable at all now
20:04:43 <Deewiant> although not quite as sparse
20:04:49 <Deewiant> yes, because it has to fit in 80x25
20:04:59 <AnMaster> and nor is the rest of the code -_-
20:05:03 <ais523> Deewiant: how much do you cross code over itself?
20:05:06 <Deewiant> yes, because I was naïve :-S
20:05:14 <Deewiant> ais523: too much, I'd say :-)
20:05:25 <AnMaster> ais523, way to much for Deewiant
20:05:26 -!- Hiato has joined.
20:05:33 <AnMaster> I avoid doing it when possible
20:05:43 <ais523> have you seen SNUSP?
20:05:49 <AnMaster> ais523, what is that?
20:05:57 <Deewiant> http://www.esolangs.org/wiki/SNUSP
20:06:01 <ais523> it's basically a cross between Befunge and Brainfuck
20:06:08 <AnMaster> urgh?
20:06:13 <Deewiant> befunge with ] and [
20:06:13 <ais523> but with procedures added in (in Modular SNUSP)
20:06:17 <Deewiant> and #
20:06:27 <Deewiant> and something weird
20:06:29 <AnMaster> Deewiant, err befunge got #
20:06:30 <Deewiant> which looks like !j
20:06:35 <ais523> making it really elegant to write constants
20:06:37 <Deewiant> AnMaster: err, brainfuck not befunge
20:06:58 <AnMaster> Deewiant, and brainfuck got [ and ]
20:07:10 <Deewiant> AnMaster: not befunge's ] and [ :-)
20:07:21 <ais523> SNUSP doesn't use either
20:07:30 <ais523> just ! as a trampoline
20:07:31 <AnMaster> Deewiant, true
20:07:37 <ais523> and ? as a maybe-trampoline depending on the current tape element
20:07:59 <Deewiant> ais523: which I think is equivalent to !j
20:08:14 * ais523 tries to remember what j does
20:08:33 <Deewiant> jumps ahead a given number of cells
20:08:58 <ais523> in that case, yes it's equivalent, apart from only taking up one funge-space cell
20:09:15 <Deewiant> yep
20:11:00 <ais523> Modular SNUSP is the most interesting part of it, though, in my opinion
20:11:10 <ais523> especially the base-Fibonacci constants
20:11:19 <ais523> that work using recursive procedure calls
20:25:01 <AnMaster> Deewiant,
20:25:03 <AnMaster> BAD: ( should have reflected trying to load nonexistent fingerprint 0
20:25:10 <AnMaster> does it say anywhere it can't exist
20:25:16 <AnMaster> what if I make one with that number?
20:25:40 <ais523> AnMaster: then Deewiant will add it to Mycology and change the number of the nonexistent one
20:25:50 <Deewiant> exactly :-)
20:25:53 <ais523> now, an interp which had a fingerprint for /every/ 32-bit number might be interesting
20:26:01 <AnMaster> ais523, heh :)
20:26:01 <Deewiant> AnMaster: but actually, many interpreters define 0 as some sort of internal fingerprint
20:26:12 <AnMaster> Deewiant, so that could be a problem then
20:26:25 <AnMaster> anyway now mine reflects on any fingerprint
20:26:31 <ais523> doesn't the spec say that all fingerprints have to be registered?
20:26:33 <AnMaster> I haven't coded fingerprints yet
20:26:33 <Deewiant> AnMaster: it's part of the reason I chose that fingerprint :-)
20:26:39 <AnMaster> so just the y mess left :D
20:27:00 <AnMaster> and the sparse thing
20:27:11 <Deewiant> so you get to the end?
20:27:18 -!- Hiato has left (?).
20:27:21 <AnMaster> Deewiant, I do
20:27:25 <Deewiant> not bad :-)
20:27:26 <AnMaster> Deewiant, http://rafb.net/p/SNzhKr58.html
20:27:37 <AnMaster> still a few BAD around y stuff though
20:29:38 <AnMaster> Deewiant, so still some stuff needed to be done
20:29:43 <Deewiant> yep
20:29:55 <AnMaster> oh and I think mycouser works
20:30:20 <AnMaster> Deewiant, no longer the < in mycouser
20:30:26 <AnMaster> got no idea what I changed
20:30:30 <Deewiant> heh
20:30:39 <AnMaster> Deewiant, still the horrible grammar though
20:30:40 <AnMaster> :(
20:30:45 <AnMaster> UNDEF: BASE fingerprint not loaded, won't check I.
20:30:52 <Deewiant> it's absolutely correct
20:30:56 <AnMaster> that's just not correct English
20:30:56 <Deewiant> I is the instruction that isn't checked
20:31:01 <AnMaster> ah
20:31:12 <AnMaster> it looks like it's horrible grammer
20:31:16 <Deewiant> not to me
20:31:21 <Deewiant> since "I won't check" would be equally horrible
20:31:23 <AnMaster> adding quotes of some kind around would work
20:31:25 <Deewiant> because check needs an object
20:31:28 <Deewiant> maybe
20:31:32 <Deewiant> but I'm really tight for space already
20:31:45 <AnMaster> Deewiant, it doesn't need to fit in 80x25 does it?
20:31:53 <Deewiant> I'd prefer it did
20:32:10 <Deewiant> since strictly speaking I guess it's valid for a befunge-93 to error out on seeing a file bigger than 80x25
20:32:12 <AnMaster> why?
20:32:22 <AnMaster> is it?
20:32:31 <Deewiant> well, it's probably unspecified
20:32:41 <Deewiant> it only says "programs are 80x25" or something probably
20:33:18 * AnMaster notes: add support for stuff like command line parameters
20:33:29 <AnMaster> command line parameter parsing is easier to do in bash than C :/
20:33:38 <Deewiant> heh
20:33:43 <ais523> "Befunge-93 programs have a maximum size of 80x25 total commands and data bytes"
20:33:45 <Deewiant> since you're going posix, use getopt, right
20:33:57 <ais523> implying that any program that's larger isn't valid Befunge-93
20:33:59 <Deewiant> yeah, so strictly speaking a befunge-93 program /should/ error on seeing 80x25
20:34:04 <Deewiant> er, bigger than 80x25
20:34:26 * ais523 guesses that those dimensions are because they're the standard dimensions of characters on the screen in DOS
20:34:38 <AnMaster> Deewiant, getoptlong though :/
20:34:48 <AnMaster> is gnu only
20:34:52 <Deewiant> AnMaster: beats me, haven't used getopt
20:35:02 * AnMaster checks gnulib for a getoptlong version
20:35:10 <Deewiant> I use the good old way of writing help strings manually and iterating over argv :-)
20:35:28 <AnMaster> Deewiant, and that is silly
20:35:39 <Deewiant> works fine for me
20:35:41 <AnMaster> I would never do that in C
20:35:49 <Deewiant> well, in C it sucks a bit more
20:35:52 <AnMaster> if windows doesn't have getopt, it can <badword />
20:35:52 <Deewiant> since you have to use strcmp
20:37:35 <ais523> C-INTERCAL uses getopt if it's available, but provides its own minimal-but-good-enough version for if it isn't
20:37:51 <ais523> and autoconf detects whether it's available or not and selects the right version
20:38:09 <AnMaster> ais523, autotools :(
20:38:09 -!- oerjan has joined.
20:38:11 * AnMaster use cmake
20:38:21 <AnMaster> brb
20:38:22 <ais523> AnMaster: it only uses autoconf, not the other autotools
20:41:13 <AnMaster> I won't use that either
20:43:12 <ais523> I even wrote some special INTERCAL-specific tests
20:43:33 <ais523> (one of them tested for the presence of undocumented behaviour in yacc that some of the pre-existing program depended on)
20:51:15 <ais523> Deewiant: I just noticed that Mycology uses the string 2+2 for testing the PERL fingerprint
20:51:23 <Deewiant> aye
20:51:34 <ais523> that string's a palindrome, so if 0gnirts communication fails by getting the string backwards, you won't notice
20:52:03 <Deewiant> true
20:52:31 <ais523> 8/2 would be one way to solve that problem without modifying anything else
20:52:53 <Deewiant> I was thinking 3-1
20:52:59 <Deewiant> hmm, is that problematic
20:53:11 <Deewiant> er, 5-1 of course
20:53:15 <ais523> it's unlikely to be a problem in practice
20:53:27 <ais523> but then, most of what Mycology tests is unlikely to be a problem in practice
20:53:33 <Deewiant> ;-)
20:53:44 <ais523> it's just that various interps fail at various different points
20:54:00 <ais523> multiple things each of which is unlikely to fail, together may be likely for /something/ to fail
20:56:00 <Deewiant> ais523: mind if I credit you with your realname on my website?
20:56:07 <ais523> Deewiant: no
20:56:32 <ais523> although you may want to use my actual realname, not the one I use on IRC
20:56:40 <ais523> which is obviously not a real realname
20:56:41 <Deewiant> :-)
20:56:50 <ais523> (it doesn't matter in here, but it does matter in some other channels)
20:58:04 <oerjan> hah, mr. This Is, that's just something you _say_
20:58:27 <ais523> another point: ccbi fails Mycology's tests for K in FPSP, at least on my computer, by giving 0 for ln(2)
20:58:41 <ais523> but it's sneakily marked as UNDEF: on the actual test due to issues with rounding
20:58:46 <Deewiant> of course
20:58:57 <Deewiant> it may be a case where single-point precision simply can't hold the actual value
20:59:02 <ais523> strangely the FPDP version is correct
20:59:10 <Deewiant> that's double-point precision
20:59:15 <Deewiant> so it is more likely to be correct :-)
20:59:17 <ais523> and I'm sure that 0.693 can be held more accurately than 0 in single-precision floating point
20:59:27 <Deewiant> I am checking
20:59:48 <Deewiant> UNDEF: K says ln(2) is 0.693147 (0.693147)
20:59:51 <Deewiant> works fine here
21:00:03 <ais523> must be something at my end, then
21:00:23 <Deewiant> and also on a school linux comp
21:13:09 <AnMaster> ais523, what arch?
21:13:23 <ais523> Ubuntu 7.10
21:13:27 <ais523> running on x86
21:14:31 <AnMaster> hm
21:14:50 <AnMaster> I just got a nice idea
21:14:56 <Deewiant> Linux iruel.hut.fi 2.6.20-16-generic #2 SMP Thu Jun 7 20:19:32 UTC 2007 i686 GNU/Linux
21:15:03 <AnMaster> use SSE vector instructions for delta and such
21:15:03 <Deewiant> ais523: worked on such
21:15:10 <AnMaster> Deewiant, what do you think?
21:15:18 <AnMaster> as a #ifdef
21:15:26 <ais523> Linux dell 2.6.22-14-generic #1 SMP Tue Feb 12 07:42:25 UTC 2008 i686 GNU/Linux
21:15:35 <AnMaster> using gcc intrinsics of course
21:15:38 <Deewiant> AnMaster: well, you'd have to benchmark to see if they're actually faster
21:15:42 <ais523> but it's likely just a misconfiguration of gdc or tango or something at my end
21:15:46 <AnMaster> Deewiant, they probably aren't
21:16:09 <AnMaster> Deewiant, anyway it finishes mycology fast enough without using -O even so... heh
21:16:38 <AnMaster> real 0m0.367s
21:16:38 <AnMaster> user 0m0.076s
21:16:38 <AnMaster> sys 0m0.022s
21:16:47 <AnMaster> Deewiant, how would ccbi do with no fingerprints?
21:16:56 <Deewiant> of course, you realize it's only executing a fifth or so of mycology :-)
21:17:02 <Deewiant> beats me
21:17:15 <AnMaster> Deewiant, I'm aware of that, and it is compiled as 64-bit
21:17:17 <AnMaster> real 0m4.975s
21:17:17 <AnMaster> user 0m0.718s
21:17:17 <AnMaster> sys 0m0.104s
21:17:19 <AnMaster> for ccbi
21:17:27 <AnMaster> but note!
21:17:35 <AnMaster> amd64 got more registers than x86
21:17:43 <AnMaster> about twice as many CPU registers iirc
21:17:56 <Deewiant> AnMaster: pipe output to /dev/null, how about then
21:18:19 <AnMaster> also, and this may be a disadgantage, my code is compiled as -fpic for some reason (blame cmake!)
21:18:21 <AnMaster> real 0m2.236s
21:18:21 <AnMaster> user 0m0.707s
21:18:21 <AnMaster> sys 0m0.050s
21:18:22 <AnMaster> for ccbi
21:18:35 <AnMaster> real 0m0.243s
21:18:36 <AnMaster> user 0m0.073s
21:18:36 <AnMaster> sys 0m0.017s
21:18:37 <AnMaster> for cfunge
21:18:47 <Deewiant> damn, that's slow
21:18:51 <Deewiant> real 0.66
21:18:51 <Deewiant> user 0.58
21:18:51 <Deewiant> sys 0.04
21:18:56 <Deewiant> for CCBI on a school linux comp
21:19:01 <Deewiant> and /dev/null
21:19:17 <AnMaster> os[Linux 2.6.24-gentoo-r2 x86_64] distro[Gentoo Linux (stable)] cpu[1 x AMD Sempron(tm) Processor 3300+ (AuthenticAMD) @ 2.00GHz] mem[Physical : 1.5GB, 46.7% free] disk[Total : 92.82GB, 29.40% Free] video[nVidia Corporation G73 [GeForce 7600 GS]] sound[EMU10K1 - SB Live 5.1]
21:19:36 <AnMaster> 128 kb cpu cache
21:19:42 <Deewiant> odd
21:20:00 <Deewiant> well, I dunno
21:20:02 <Deewiant> sempron 3300+
21:20:47 -!- GregorR has quit (Read error: 113 (No route to host)).
21:21:06 <Deewiant> well, okay
21:21:10 <Deewiant> these are apparently Intel Celeron 2.4 Ghz
21:21:25 <Deewiant> so beats me
21:22:49 <AnMaster> Deewiant, well a 64-bit version of ccbi would likely be faster
21:22:55 <AnMaster> let me try mine with -O
21:23:15 <Deewiant> AnMaster: yeah, but I doubt it'd make that big a difference
21:23:22 <Deewiant> or maybe it does, then, whatever
21:23:56 <AnMaster> -O3
21:23:57 <AnMaster> real 0m0.216s
21:23:58 <AnMaster> user 0m0.047s
21:23:58 <AnMaster> sys 0m0.019s
21:24:05 <AnMaster> with cfunge of course
21:24:06 <ais523> Deewiant: -O2 tends to be much better than -O
21:24:07 <AnMaster> wait
21:24:13 <Deewiant> AnMaster: that was for you
21:24:15 <AnMaster> sorry
21:24:17 <ais523> -O3 is only really an advantage over -O2 on embedded systems IME
21:24:27 <AnMaster> I was compiling in background another thing now
21:24:28 <AnMaster> real 0m0.170s
21:24:28 <Deewiant> depends on the system and the code in question
21:24:29 <AnMaster> user 0m0.045s
21:24:29 <AnMaster> sys 0m0.020s
21:24:36 <AnMaster> when I abort that compile
21:24:37 <AnMaster> Deewiant, ^
21:25:02 <Deewiant> I'm surprised that there'd be a 4x performance penalty for running 32-bit code
21:25:19 <AnMaster> Deewiant, depends on register usage
21:25:20 <Deewiant> although hmm
21:25:24 <AnMaster> real 0m0.234s
21:25:25 <AnMaster> user 0m0.065s
21:25:25 <AnMaster> sys 0m0.019s
21:25:27 <Deewiant> I wonder if the linux ccbi one is compiled with optimizations :-)
21:25:28 <AnMaster> with -Os
21:25:38 <AnMaster> all these are average on 5 runs
21:25:40 <AnMaster> Deewiant, ^
21:25:54 <Deewiant> AnMaster: your numbers mean nothing to me :-P
21:26:02 <AnMaster> Deewiant, why not?
21:26:17 <AnMaster> it is the normal way
21:26:17 <Deewiant> mainly due to the 32/64-bit schism
21:26:21 <Deewiant> and secondly, because I don't care much
21:26:39 <AnMaster> well I'd try with -m32 except I got no 32-bit boehm-gc installed :P
21:27:13 <Deewiant> yes, it seems that the ccbi binary has been compiled without optimizations
21:27:34 <AnMaster> Deewiant, even with -O0 mine was fast
21:27:38 <AnMaster> <AnMaster> real 0m0.243s
21:27:42 * AnMaster points to that
21:27:48 <Deewiant> AnMaster: one big difference between the two is how we do instructions
21:27:55 <Deewiant> AnMaster: you probably have a big switch in a main loop, right?
21:28:14 <AnMaster> Deewiant, well not in main loop no but in a ExecuteInstruction function
21:28:22 <AnMaster> so I can call same from k
21:28:26 <Deewiant> aye
21:28:29 <AnMaster> and I got a if case first for string mode
21:28:34 <Deewiant> I have hash tables containing function pointers
21:28:35 <AnMaster> in execute instruction
21:28:43 <Deewiant> which is immediately a huge performance penalty
21:28:48 <AnMaster> Deewiant, I plan doing that for extensions
21:29:13 <AnMaster> Deewiant, also I try to flattern out any structures
21:29:15 <AnMaster> so rather:
21:29:16 <Deewiant> aye, but especially with as good a compiler as GCC you're bound to get a huge performance boost over such
21:29:25 <AnMaster> struct whatever { fungevector foo; .... }
21:29:44 <AnMaster> than
21:29:44 <AnMaster> struct whatever { fungevector * foo; .... }
21:29:50 <AnMaster> not a huge difference
21:30:10 <AnMaster> and there are two reasons for that I do so: less memory managment needed
21:30:22 <AnMaster> faster theoterically
21:30:30 <AnMaster> theoretically*
21:30:50 <ais523> AnMaster: unless you need to make shallow copies of the objects inside
21:30:59 <AnMaster> ais523, indeed
21:31:21 <AnMaster> typedef struct {
21:31:21 <AnMaster> FUNGEVECTORTYPE x;
21:31:21 <AnMaster> FUNGEVECTORTYPE y;
21:31:21 <AnMaster> } fungePosition;
21:31:21 <AnMaster> typedef fungePosition fungeVector;
21:31:32 <AnMaster> the reason for that is self documenting code partly
21:31:50 <AnMaster> as in, I use the name vector when I mean a vector, and position when I mean a absolute position
21:31:58 <AnMaster> makes it easier to read the code
21:34:11 <Deewiant> AnMaster: there's a new CCBI binary up which may or may not be faster, but it's compiled with -O this time :-)
21:34:20 <AnMaster> Deewiant, link?
21:34:28 <Deewiant> iki.fi/deewiant/befunge/ccbi.html
21:34:41 <AnMaster> Deewiant, page fails in lynx :/
21:34:47 <Deewiant> O_o
21:34:48 <Deewiant> it shouldn't
21:34:50 <AnMaster> and I don't want to start firefox
21:35:05 <Deewiant> looks good here
21:35:13 <AnMaster> ok, maybe lynx version then
21:35:29 <Deewiant> Lynx Version 2.8.5rel.1 (04 Feb 2004)
21:35:47 <AnMaster> Deewiant, you got a issue
21:35:55 <AnMaster> $ ls -l
21:35:55 <AnMaster> total 261
21:35:55 <AnMaster> -rw-r--r-- 1 arvid arvid 263164 11 mar 2008 ccbi
21:35:55 <AnMaster> -rw-r--r-- 1 arvid arvid 1508 7 jan 17.46 license.txt
21:36:04 <AnMaster> you may want to set +x on binary in archive
21:36:04 <Deewiant> issue?
21:36:09 <Deewiant> I'm on windows
21:36:09 <AnMaster> I don't know if zip can do it
21:36:10 <Deewiant> impossible
21:36:13 <AnMaster> but well tar can
21:36:16 <AnMaster> tar.bz2
21:36:20 <Deewiant> quite possible
21:36:22 <AnMaster> is what I recommend for linux binaries
21:36:24 <Deewiant> but like said, I'm on windows
21:36:28 <Deewiant> where such distinctions don't exist
21:36:32 <AnMaster> Deewiant, you crosscompiled?
21:36:38 <AnMaster> Deewiant, I think cygwin does +x flag
21:36:39 <Deewiant> no, I compiled it on a linux box
21:36:47 <Deewiant> but I use UPX to compress it on windows
21:36:54 <AnMaster> $ time ./ccbi ~/bashfunge/trunk/mycology/mycology.b98 > /dev/null
21:36:55 <AnMaster> real 0m2.418s
21:36:55 <AnMaster> user 0m0.542s
21:36:55 <AnMaster> sys 0m0.050s
21:36:56 <ais523> that website seems to work fine for me in w3m
21:37:04 <ais523> although I haven't tried to download any of the binaries from it
21:37:04 <AnMaster> Deewiant, upx is bound to slow it down
21:37:05 <Deewiant> AnMaster: heh, slower
21:37:10 <AnMaster> as it need to uncompress binary
21:37:11 <Deewiant> AnMaster: yeah, but it should be a small cost
21:37:22 <Deewiant> AnMaster: the original binary is 1.3 megabytes
21:37:26 <Deewiant> optimized that is
21:37:27 <AnMaster> Deewiant, depends, it won't be if system enforce NX bit
21:37:29 <AnMaster> like mine does
21:37:30 <Deewiant> unoptimized it's 0.8 megabytes
21:37:39 <Deewiant> AnMaster: ah, that can be a problem
21:37:51 <AnMaster> Deewiant, in fact I suspect it will have to create a temp file to run on hardened systems
21:37:53 <Deewiant> AnMaster: if you have upx, you can decompress it in place
21:37:59 <AnMaster> Deewiant, I don't have upx
21:38:07 <Deewiant> AnMaster: portage probably does
21:38:15 <AnMaster> Deewiant, nor is it available for amd64 in a stable form
21:38:20 <Deewiant> ah, darn
21:38:20 <AnMaster> * app-arch/upx
21:38:21 <AnMaster> Available versions: *1.25 ~2.02 ~3.00
21:38:26 * AnMaster tries to avoid running ~arch
21:38:33 <AnMaster> though sometimes I have to
21:38:54 <AnMaster> like for boehm-gc to get some stuff called "Extensible cords"
21:39:14 <Deewiant> if you want, try iki.fi/deewiant/ccbi2
21:39:17 <Deewiant> uncompressed
21:39:19 <AnMaster> "Extensible cords are strings that may be destructively appended to. They allow fast construction of cords from characters that are being read from a stream."
21:39:22 <AnMaster> sure
21:40:12 <AnMaster> real 0m1.755s
21:40:12 <AnMaster> user 0m0.520s
21:40:12 <AnMaster> sys 0m0.055s
21:40:13 <AnMaster> better
21:40:26 <Deewiant> damn, that was a big difference
21:40:28 <Deewiant> almost a second
21:40:37 <AnMaster> op
21:40:46 <Deewiant> and maybe the remaining second can be attributed to 32/64-bit differences
21:40:49 <AnMaster> .4 + .3 != 1
21:41:06 <Deewiant> 0.7 ~= 1
21:41:11 <AnMaster> Deewiant, it can't I tried mine as -m32
21:41:12 <Deewiant> if you want, "over half a second" instead
21:41:14 <AnMaster> it is almost as fast
21:41:23 <Deewiant> well whatever
21:41:34 <AnMaster> real 0m0.307s
21:41:34 <AnMaster> user 0m0.076s
21:41:34 <AnMaster> sys 0m0.015s
21:41:35 <AnMaster> with 32-bit
21:41:51 <Deewiant> if I could be bothered to get GDC running this might end up being a lot faster
21:41:57 <Deewiant> but I can't, so. :-)
21:42:18 <AnMaster> Deewiant, gdc is faster than dmd?
21:42:28 <Deewiant> maybe
21:42:29 -!- RedDak has joined.
21:42:31 <AnMaster> Deewiant, anyway function pointers in hash map is slower
21:42:35 <Deewiant> with GCC 4.x, probably
21:42:40 <Deewiant> of course, that's what I said
21:42:47 <AnMaster> Deewiant, a static array index by char would be faster
21:42:48 <Deewiant> it's much slower than whatever GCC compiles a switch to
21:43:06 <Deewiant> yes, it would be
21:43:16 <Deewiant> and a switch statement would be even faster :-)
21:43:28 <AnMaster> Deewiant, tried that? I guess something on the lines of instructions[127] would be all that was needed
21:43:44 <AnMaster> if you can do such stuff in D
21:43:58 <Deewiant> AnMaster: would have to have extra checking for unimplemented instructions like control chars
21:44:04 <Deewiant> and it'd have to be 255, of course
21:44:10 <AnMaster> ok
21:44:25 <AnMaster> so
21:44:36 <Deewiant> and I might have to rewrite the way fingerprints are done, not sure
21:44:38 <AnMaster> put the r instruction in the rest of the slots
21:44:39 <AnMaster> :)
21:44:43 <AnMaster> for control chars
21:44:53 <Deewiant> aye
21:44:59 <AnMaster> and why 255?
21:45:14 <Deewiant> hmm, never mind actually
21:45:20 <AnMaster> if (opcode < 127) { use array here } else { reflect here }
21:45:21 <AnMaster> :)
21:45:27 <Deewiant> there's a fingerprint that allows rewriting instructions
21:45:30 <AnMaster> err actually
21:45:32 <AnMaster> < 128
21:45:40 * AnMaster sucks at off by one issues in arrays
21:45:40 <Deewiant> but it's implemented separately, doesn't modify the main instructions array
21:45:56 -!- olsner has joined.
21:46:04 <AnMaster> Deewiant, anyway fingerprints, yes you would need some way to layer them
21:46:04 <AnMaster> true
21:46:19 <AnMaster> so for A-Z you would need something slightly different
21:46:20 <Deewiant> they're done separately though
21:46:25 <Deewiant> so it shouldn't matter
21:46:26 <AnMaster> Deewiant, btw, want to see my switch case?
21:46:57 <AnMaster> it's "inlined" mostly
21:47:04 <AnMaster> http://rafb.net/p/Ry1n7736.html
21:47:07 <AnMaster> XD
21:47:21 <AnMaster> just k and y are outside
21:47:25 <AnMaster> because they were so complex
21:47:31 <Deewiant> ew, messed up indentation
21:47:33 <AnMaster> and y is still broken
21:47:36 <AnMaster> Deewiant, what?
21:47:39 <AnMaster> I like that style
21:47:40 <AnMaster> :)
21:47:44 <Deewiant> O_o
21:47:47 <Deewiant> do {
21:47:47 <Deewiant> ipForward(1, ip, fspace);
21:47:47 <Deewiant> } while (fungeSpaceGet(fspace, &ip->position) == ' ');
21:47:55 <AnMaster> err that is pastebin messup
21:48:01 <Deewiant> thought so :-)
21:48:14 <AnMaster> do {
21:48:14 <AnMaster> ipForward(1, ip, fspace);
21:48:14 <AnMaster> } while (fungeSpaceGet(fspace, &ip->position) == ' ');
21:48:17 <AnMaster> is how it looks here
21:48:33 <AnMaster> Deewiant, and so it does on pastebin in firefox I notice
21:48:51 <Deewiant> "show as plain text" looks smart
21:49:10 <AnMaster> Deewiant, non-plaintext looks ok in konq and firefox
21:49:40 <AnMaster> actually I wonder
21:49:50 <AnMaster> I may have a off by one issue with ;
21:49:51 <Deewiant> I'm on firefox 3 beta 3
21:49:59 <AnMaster> Deewiant, firefox whatever the stable is on gentoo
21:50:07 <Deewiant> 2.0.0.12 prolly
21:50:09 <AnMaster> [I] www-client/mozilla-firefox (2.0.0.12@2008-02-15): Firefox Web Browser
21:50:11 <AnMaster> indeed
21:50:15 <AnMaster> 64-bit version
21:50:32 <AnMaster> do {
21:50:33 <AnMaster> ipForward(1, ip, fspace);
21:50:33 <AnMaster> } while (fungeSpaceGet(fspace, &ip->position) != ';');
21:50:39 <AnMaster> doesn't that have a off by one issue?
21:50:49 <AnMaster> as I forward at end of main loop once
21:50:52 <AnMaster> or?
21:51:04 <AnMaster> wait it doesn't
21:51:05 <Deewiant> no, shouldn't be a problem
21:51:06 <AnMaster> it's fine
21:51:08 <Deewiant> as you forward up to the ; there
21:51:10 <Deewiant> and then past it
21:51:47 <AnMaster> Deewiant, anyway bzr branch http://rage.kuonet.org/~anmaster/bzr/cfunge08
21:51:51 <AnMaster> if you want the whole thing
21:51:58 <AnMaster> my bzrweb is currently broken
21:52:03 <AnMaster> haven't had time to look at problem
21:52:13 <AnMaster> so just go to bazaar-vcs.org
21:52:17 <AnMaster> and get your copy today :)
21:52:22 <Deewiant> :-)
21:52:23 <Deewiant> maybe later
21:52:28 <AnMaster> the best distributed version control system IMO :D
21:52:36 <Deewiant> I like mercurial myself
21:52:38 * AnMaster ducks for git and mercurial dans
21:52:40 <AnMaster> fans*
21:52:48 <AnMaster> Deewiant, mercurial isn't too bad
21:52:50 <AnMaster> it is git I hate
21:53:01 <Deewiant> I don't like git because it doesn't work on windows :-)
21:53:07 <Deewiant> or didn't, I guess it does now
21:53:09 <AnMaster> http://changelog.complete.org/posts/698-If-Version-Control-Systems-were-Airlines.html'
21:53:13 <AnMaster> err remove ' at end
21:53:14 <Deewiant> yes, I saw that
21:53:24 <AnMaster> ah?
21:53:35 * AnMaster saw it posted in #friendly-coders recently
21:53:43 <AnMaster> I don't normally read blogs
21:53:49 <Deewiant> I saw it on reddit myself
21:53:53 <AnMaster> on what?
21:54:00 <Deewiant> http://reddit.com/
21:54:02 <AnMaster> slashdot, dig and such: I don't do them
21:54:07 <AnMaster> or digg or whatever
21:54:14 <Deewiant> your loss :-)
21:54:19 <Deewiant> although in the case of digg, maybe a win ;-)
21:54:26 <AnMaster> hah :)
21:54:42 <AnMaster> I got better things to spend my time on
21:57:46 * AnMaster wonders how a license like http://www.sunrisetel.net/software/devtools/sunriseDD/LICENSE can be GPL compatible
21:58:30 <AnMaster> that library would otherwise provide the perfect hash table
21:58:57 <AnMaster> "The Sunrise Data Dictionary is a library for lock-free hash table storage of arbitrary data objects with built-in reference counting and guaranteed order iteration for the C programming language. It can be used with the Boehm garbage collector, participate in external reference counting systems or use its own built-in reference counting. It comes with a variety of built-in hash functions and allows t
21:58:57 <AnMaster> he use of runtime supplied hash functions via callback."
21:59:00 <AnMaster> looks very nice
21:59:08 <AnMaster> and it says license is GPL2 compatible
21:59:13 <AnMaster> but what about GPL3?
22:00:04 * oerjan recalls GPL2 containing an "or any later version" clause
22:00:36 <AnMaster> yep you can do "gpl2" or "gpl2 or any later"
22:00:49 <AnMaster> but you don't need to do the later version bit
22:00:49 <oerjan> oh it's author's choice?
22:00:55 <AnMaster> oerjan, it is
22:01:23 <ais523> oerjan: much GPL stuff is licensed with an or-later
22:01:43 <ais523> but there's no legal requirement to put that clause in if you don't want to
22:01:43 <AnMaster> but or-later is is the most common way
22:01:47 <ais523> GPLv3 also allows an 'or later, but only if such and such a person says so'
22:02:03 <AnMaster> ais523, ah nice didn't know that
22:02:08 * AnMaster will change his to that
22:02:45 <ais523> as in, you get to choose who says a license is a version of the GPL, in case you don't trust the FSF to keep the spirit of the license the same
22:03:18 <AnMaster> ais523, indeed I often wondered if GPL4 is where RMS will go mad
22:03:30 <AnMaster> he tried to in the early drafts of gpl3
22:03:36 <ais523> in what ways?
22:03:55 <AnMaster> ais523, I can't see the "such and such person" clause in gpl3 document?
22:04:04 <ais523> search for the word 'proxy'
22:04:27 <AnMaster> what exact wording should I use in my files for that?
22:04:39 <ais523> I don't know offhand
22:04:46 <AnMaster> it doesn't say
22:04:48 <ais523> not being a lawyer, or an expert on GPLv3
22:05:56 <ais523> I'd suggest using the same wording as the license itself
22:06:20 <ais523> as in, "<insert name here> is a proxy who can decide which future versions of the GNU General Public License can be used."
22:06:29 <ais523> but that's just a guess
22:14:01 <AnMaster> wow this looks good
22:14:16 <AnMaster> POSIX.1-2001 got some hash functions built in
22:14:17 <AnMaster> Deewiant, ^
22:14:18 <AnMaster> :D
22:14:25 <Deewiant> thought it might :-)
22:14:27 <AnMaster> hcreate, hdestroy, hsearch
22:14:37 <AnMaster> no idea about preformance though
22:14:50 <Deewiant> AnMaster: if you feel like more benchmarking, CCBI uses a static array for instructions now
22:15:02 <AnMaster> Deewiant, got a download?
22:15:43 <Deewiant> iki.fi/deewiant/ccbi2 as before
22:16:15 <Deewiant> might make some difference but probably not very much
22:16:40 <AnMaster> Deewiant, btw even that version wants executable stack
22:16:53 <Deewiant> hm, wonder why
22:17:13 <Deewiant> might be something in the compiler runtime
22:17:17 <AnMaster> $ scanelf -txebS ccbi2
22:17:17 <AnMaster> TYPE PAX STK/REL/PTL TEXTREL BIND SONAME FILE
22:17:17 <AnMaster> ET_EXEC PeMRxS RWX --- RW- - LAZY ccbi2
22:17:21 <AnMaster> that is how it looks
22:17:30 <Deewiant> looks greek to me :-D
22:17:38 <AnMaster> wants executable stack
22:17:43 <AnMaster> that is the bad part
22:17:46 <AnMaster> STK
22:17:48 <AnMaster> and under it
22:17:49 <Deewiant> I suppose there's no way of figuring out why
22:17:50 <AnMaster> RWX
22:17:55 <AnMaster> Deewiant, no clue
22:18:07 <AnMaster> Deewiant, at least *I* can't
22:18:16 <AnMaster> you would need to look at your linker
22:18:17 <AnMaster> and such
22:18:23 <Deewiant> yeah, and that's tricky
22:18:28 <Deewiant> closed source, written in asm :-P
22:18:34 <Deewiant> or no, actually
22:18:37 <Deewiant> on linux it uses ld I think
22:18:43 <AnMaster> $ scanelf -txebS cfunge08
22:18:43 <AnMaster> TYPE PAX STK/REL/PTL TEXTREL BIND SONAME FILE
22:18:43 <AnMaster> ET_EXEC ---xe- RW- R-- RW- - LAZY cfunge08
22:18:47 <AnMaster> much saner
22:18:58 <AnMaster> non-executable stack
22:19:17 <Deewiant> any performance difference between this version and the last?
22:20:02 <AnMaster> real 0m1.743s
22:20:02 <AnMaster> user 0m0.515s
22:20:02 <AnMaster> sys 0m0.063s
22:20:15 <Deewiant> so not much
22:20:20 <AnMaster> indeed
22:20:44 <Deewiant> have a look at iki.fi/deewiant/asdf
22:20:44 <AnMaster> Deewiant, and PaX really doesn't like executable stack!
22:20:49 <Deewiant> does it claim to want executable stack
22:21:02 <AnMaster> Deewiant, it does
22:21:08 <Deewiant> AnMaster: it's hello world :-/
22:21:31 <Deewiant> AnMaster: how about this one, same file
22:21:48 <AnMaster> I got no idea why, but I can't paste output, pasting just broke it seems
22:21:56 <AnMaster> into my irc client only
22:22:00 <Deewiant> heh
22:22:31 <Deewiant> AnMaster: so what about that one
22:22:38 <AnMaster> Deewiant, current version of that file also wants X stack
22:22:44 <Deewiant> that's just an empty main function
22:22:49 <Deewiant> so it looks like it's the compiler's fault
22:22:55 <AnMaster> then blame the compiler for being crappy
22:23:00 <Deewiant> :-)
22:23:09 <Deewiant> rather, written in a time when this wasn't an issue
22:23:12 <Deewiant> maybe there's something in the frontend
22:23:23 <AnMaster> tried gdc?
22:23:34 <Deewiant> would require recompiling gcc
22:23:39 <Deewiant> to install it
22:23:41 <AnMaster> you got gcc don't you?
22:23:44 <AnMaster> Deewiant, true
22:23:56 <Deewiant> and I'm on a school comp, can't be bothered to pull out my gentoo laptop
22:23:56 <AnMaster> and why I have no plans on getting a newer version
22:24:05 <AnMaster> ah you run gentoo :D
22:24:33 <AnMaster> Deewiant, still when I implement finger prints mine will be slower
22:24:36 <AnMaster> I will do a few
22:24:39 <AnMaster> I won't do them all
22:24:49 <Deewiant> that's what I thought at first, as well ;-)
22:25:01 <AnMaster> Deewiant, you didn't do them all
22:25:05 <AnMaster> WIND and SNGL
22:25:09 <Deewiant> all but 2 or 3
22:25:17 <Deewiant> SGNL can't work on windows so it's out for not being portable
22:25:21 <Deewiant> and WIND is just crap :-D
22:25:32 <AnMaster> Deewiant, and I think TURT is silly too
22:25:49 <AnMaster> is there any *stream IO* fingerprint
22:25:54 <AnMaster> unlike i/o instructions
22:26:02 <AnMaster> that hardly would work on binary streams well
22:26:02 <Deewiant> there's FILE
22:26:14 <Deewiant> which implements fopen/fread-instructions and such
22:26:29 <AnMaster> Deewiant, so just write a PNG/SVG writing routine in befunge? :P
22:26:32 <AnMaster> using FILE
22:26:53 <Deewiant> yeah, you could :-)
22:26:58 <AnMaster> TURT is just silly
22:27:07 <AnMaster> Deewiant, how do you create svg files btw?
22:27:12 <AnMaster> in your D app I mean
22:27:23 <AnMaster> you use some library for it?
22:27:26 <Deewiant> no, manually
22:27:29 <Deewiant> it's all in the source
22:27:36 <Deewiant> I read the SVG spec a bit
22:27:39 <AnMaster> isn't svg xml-o-crap?
22:27:41 <Deewiant> it's pretty simple actually
22:27:50 * AnMaster prefers S-Expressions
22:27:50 <Deewiant> if all XML is crap to you, then yes :-P
22:27:53 <Deewiant> but it could be worse
22:27:56 * Deewiant also
22:28:02 <AnMaster> ever played supertux?
22:28:05 <Deewiant> nope
22:28:07 <AnMaster> mario like open source game
22:28:13 <AnMaster> side scrolled platform jump
22:28:20 * AnMaster is one of several developers on it
22:28:30 <Deewiant> AnMaster: I got somebody to compile a GDC version for me, iki.fi/deewiant/test4
22:28:34 <AnMaster> it uses S-Expressions for data files, and thanks to it I learnt to love S-Expressions
22:28:35 <Deewiant> see if that needs executable stack
22:28:40 <Deewiant> (I don't have scanelf)
22:28:55 <AnMaster> Deewiant, it doesn't need it
22:29:01 <Deewiant> okay
22:29:24 * AnMaster wonder WTF is up with pasting in xorg
22:29:38 <AnMaster> yesterday middle mouse button paste into lyx died
22:29:50 <AnMaster> now it's emacs running my irc client
22:30:21 <AnMaster> Deewiant, ever used lyx?
22:30:37 <AnMaster> LaTeX with WYSIWYM (what you see is what you meant)
22:30:37 <Deewiant> nope
22:30:40 <AnMaster> very nice
22:30:58 <AnMaster> you just take care of the structure it does the formatting
22:31:07 <AnMaster> it works very well
22:31:52 <AnMaster> Deewiant, if you want to see my (still not allowed with copyright though!) funge08 specs I can DCC the generated pdf that looks awesom
22:32:02 <AnMaster> and allow you to give some input on my changes if you want
22:32:16 <Deewiant> AnMaster: one last one, iki.fi/deewiant/foo
22:32:29 <Deewiant> AnMaster: I don't really have time now
22:32:50 <AnMaster> Deewiant, no executable stack in that one, but unlike test4 it doesn't have sane PaX flags
22:33:03 <Deewiant> sane?
22:33:17 <AnMaster> insane: as in PaX flags being PeMRxS
22:33:24 <Deewiant> how's that insane
22:33:31 <AnMaster> sane: as in ---xe-
22:33:31 <Deewiant> like said it's all greek to me :-)
22:34:05 <Deewiant> so what does PeMRxS mean
22:34:27 <AnMaster> Deewiant, because it basically means that PaX (hardened kernel thing for NX) would allow lots of things
22:34:28 <AnMaster> a sec
22:34:46 <Deewiant> or rather, what are the differences to ---xe-
22:35:14 <AnMaster> Deewiant, I can't paste into irc client atm so...
22:35:22 <Deewiant> got a link or something?
22:35:33 <AnMaster> PAGEEXEC EMUTRMAP MPROTECT RANDMMAP RANDEXEC SEGMEXEC
22:35:36 <AnMaster> those are the flags
22:36:10 <Deewiant> so it's got more protections enabled
22:36:25 <AnMaster> less
22:36:37 <AnMaster> chars mean those are disabled
22:37:05 <AnMaster> or "BAD"
22:37:05 <AnMaster> as you would say in mycology
22:37:05 <AnMaster> :P
22:37:36 <AnMaster> apart from the e there
22:37:40 <AnMaster> it is actually good
22:37:50 <Deewiant> aye
22:38:05 <Deewiant> there's no way for you to disable PaX temporarily or anything, to see if CCBI runs faster?
22:38:19 <AnMaster> the x is bad, but you need compile and link with -fpic -fpie -pie to make that work
22:38:29 <AnMaster> Deewiant, not without recompiling kernel and rebooting
22:38:29 <AnMaster> :P
22:38:33 <Deewiant> meh :-P
22:38:36 <Deewiant> shouldn't take too long :-P
22:38:49 <AnMaster> Deewiant, I got a blender render running now
22:38:58 <AnMaster> huge size very slow
22:39:10 <AnMaster> guess 24 hours from now or so
22:39:10 <AnMaster> maybe
22:39:15 <Deewiant> meh, cancel it, this is more important >_<
22:39:27 <AnMaster> Deewiant, also another thing: I like my uptime
22:39:38 <Deewiant> meeh
22:39:44 <AnMaster> had it at 180 days at most
22:39:57 <AnMaster> currently at 19 due to power outage :(
22:40:01 <Deewiant> heh
22:40:06 <Deewiant> so it's not a big loss anyway ;-)
22:40:10 <AnMaster> it is
22:40:20 <AnMaster> and I don't want to disconnect from irc
22:40:42 <AnMaster> currently on 397 channels spread over 23 networks
22:41:11 <Deewiant> O_o
22:41:32 <Deewiant> I see, that's why you don't have time for things like slashdot ;-)
22:42:29 <AnMaster> heh
22:42:39 <AnMaster> I'm ircoper on some smaller networks
22:43:59 <AnMaster> night
22:44:05 <Deewiant> night
22:49:15 -!- Deformative has joined.
22:49:55 -!- Deformative has left (?).
22:56:12 -!- ais523 has quit ("too tired to concentrate").
22:58:13 -!- RedDak has quit (Remote closed the connection).
23:07:23 <oklokok> http://www.vjn.fi/oklopol/befunge.txt
23:07:29 -!- Deformative has joined.
23:07:34 <oklokok> http://www.vjn.fi/oklopol/befunge.txt
23:07:49 <oklokok> god it took long to get intuition for that
23:08:16 * oerjan laughs and points
23:08:29 <oerjan> now if i just understood it as well... :D
23:09:48 <oklokok> it's a simple copypaste solution
23:10:14 <oklokok> i'll make something real when i have time
23:13:45 <oklokok> i didn't even have time to obfuscate it
23:14:08 <oklokok> also, it's heavily commented :o
23:14:12 <oklokok> This is the stack
23:18:35 <oerjan> i noticed that, after a while. first i thought those were some strange commands...
23:18:47 <oklokok> hehe
23:35:53 <oklokok> hmm...
23:36:10 <oklokok> might be fun to make something that executes english sentences
←2008-03-10 2008-03-11 2008-03-12→ ↑2008 ↑all