←2010-02-22 2010-02-23 2010-02-24→ ↑2010 ↑all
00:01:21 -!- lament has quit (Ping timeout: 252 seconds).
00:05:26 -!- lament has joined.
00:18:12 -!- Pthing has quit (Remote host closed the connection).
00:30:18 -!- Sgeo has quit (*.net *.split).
00:30:18 -!- ttm has quit (*.net *.split).
00:30:19 -!- Asztal has quit (*.net *.split).
00:30:19 -!- augur has quit (*.net *.split).
00:30:43 -!- ttm has joined.
00:30:45 -!- Sgeo has joined.
00:30:45 -!- augur has joined.
00:30:50 -!- Asztal has joined.
00:40:58 -!- oerjan has quit (Quit: Good night).
00:52:09 -!- cheater3 has quit (Ping timeout: 248 seconds).
01:17:08 -!- jcp has quit (Remote host closed the connection).
01:21:20 -!- Pthing has joined.
01:28:29 -!- coppro has joined.
01:39:20 -!- Pthing has quit (Remote host closed the connection).
01:44:07 -!- jcp has joined.
01:46:07 -!- jcp has quit (Remote host closed the connection).
01:49:21 -!- jcp has joined.
02:29:04 -!- Asztal has quit (Ping timeout: 265 seconds).
02:59:32 <Gregor> Oh nose D-8
02:59:35 <Gregor> There's another Gregor Richards
02:59:38 <Gregor> http://www.wideawakemusic.com/gallery.html
02:59:45 <pikhq> Oh noes.
03:03:31 -!- lament has quit (Ping timeout: 268 seconds).
03:03:46 -!- lament has joined.
03:23:43 -!- jcp has quit (Remote host closed the connection).
03:24:27 -!- MissPiggy has quit (Quit: Lost terminal).
03:27:21 <Sgeo> Oh nose ":-/"[1]
03:36:11 -!- jcp has joined.
03:58:09 -!- MizardX has quit (Ping timeout: 256 seconds).
05:12:20 -!- jcp has quit (Remote host closed the connection).
05:14:33 -!- jcp has joined.
05:18:37 <olsner> ":-/"[1]?
05:19:17 <puzzlet> fancy notation for nose
05:19:26 <olsner> oooh
05:24:00 -!- jcp has quit (Remote host closed the connection).
05:24:54 <augur> Gregor: i knew a Gregor Richardson
05:25:21 <Gregor> Not close enough.
05:36:17 <pikhq> I once knew a Gregor Richards.
05:36:31 <pikhq> Guy registered http://www.codu.org/ for some reason.
05:37:09 <coppro> wouldn't an oh nose be ":o/"[1]?
05:37:34 <pikhq> They would, in fact, like for you to think that.
05:41:36 -!- Gracenotes has joined.
05:42:34 <Gregor> pikhq: You'll notice that www.codu.org, while existent, forwards to codu.org :P
05:42:44 <pikhq> Gregor: Heheheh.
05:49:33 -!- amca has quit (Quit: Farewell).
05:56:30 -!- jcp has joined.
05:56:38 -!- jcp has quit (Client Quit).
05:59:13 -!- jcp has joined.
06:00:42 -!- cal153 has joined.
06:58:41 -!- FireFly has joined.
07:07:13 -!- tombom has joined.
07:32:16 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
07:46:27 -!- cheater2 has joined.
07:50:46 -!- tombom has quit (Quit: Leaving).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:22:05 -!- FireFly has quit (Quit: Leaving).
09:19:12 -!- gm|lap has quit (Quit: 2 hour UPS expired. Shutting down laptop.).
10:48:18 -!- oerjan has joined.
10:51:20 -!- ais523 has joined.
10:51:31 -!- ais523 has quit (Changing host).
10:51:31 -!- ais523 has joined.
10:51:31 -!- ais523 has quit (Changing host).
10:51:31 -!- ais523 has joined.
10:59:57 <oerjan> poor, poor fireballs
11:20:03 <augur> current favorite book: Handbook of Formal Languages
11:20:18 <augur> just for you, oerjan
11:20:28 <augur> dont let anyone else know about it x3
11:22:06 * oerjan rolls eyes
11:22:26 <augur> :p
11:22:28 <augur> its a nifty little book
11:22:48 <augur> theres one chapter that extensively covers some extensions of context free grammars
11:22:57 <augur> called controlled grammars
11:23:31 <augur> in which the rewriting of a string is controlled in some way, either by the string itself, or by some rules on the structure of derivations
11:23:34 <augur> or whatever
11:29:55 <oerjan> i'm going with the whatever
11:30:00 * oerjan whistles innocently
11:30:12 <augur> :(
11:30:16 <augur> its cool!
11:41:56 <fizzie> Handbook of Larval Fromages.
11:43:59 <oerjan> i think i'll skip those dishes
12:03:34 <AnMaster> I have to agree with oerjan on that
12:04:45 <AnMaster> oerjan, also: s/fireballs/fromer fireballs/
12:24:41 -!- oerjan has quit (Quit: Later).
12:29:01 -!- augur has quit (Ping timeout: 268 seconds).
12:31:16 -!- BeholdMyGlory has joined.
12:36:20 <cheater> http://divingintointercal.blogspot.com/
12:37:36 <ais523> cheater: has it been updated?
12:37:41 <ais523> I'm aware of it, but didn't think it had changed in years
12:37:54 <ais523> nope, still stuck at part 3
12:38:09 <ais523> I'm secretly hoping that the author is still going, just hadn't figured out how to do anything more complex in INTERCAL yet
12:39:24 <cheater> yeah, sadly
12:39:33 <cheater> yeah, so am i
12:39:44 <cheater> i hope he'll be able to tell us how to do intercal for the web
12:40:16 <ais523> oh, I think I'm the third comment on that most recent blog post, btw
12:40:28 <ais523> I only vaguely remember writing it, and it's marked as an anon, but it looks like my style
12:41:23 <ais523> " Combining INTERCAL expressions into one line is IMO good practice; it makes them easier to optimise, and has the added advantage of being more confusing."
12:41:34 <ais523> yep, I think that's me alright
12:49:33 -!- archtech has joined.
12:50:10 <cheater> ais523: do you know if it's possible to do command line arguments for intercal programs?
12:50:52 <cheater> ais523: in that case, i could re-implement drupal in intercal
12:53:22 <ais523> cheater: not at the moment, at least in C-INTERCAL
12:53:30 <ais523> there's a standard set of args all compiled programs support
12:53:34 <ais523> but they don't support any others
12:53:42 <cheater> hmm
12:53:54 <cheater> what about CLC-INTERCAL?
12:54:02 <cheater> is this specified in the INTERCAL manual?
12:54:34 <ais523> which one?
12:54:47 <cheater> the original one
12:54:49 <ais523> C-INTERCAL's certainly pretty clear about it in its
12:55:04 <ais523> the original one talks about the Princeton compiler, which has no mention of command-line args to the compiled programs themselves
12:55:06 <ais523> just to the compiler
12:55:11 <cheater> C-IMTERCAL is not the defining standard
12:55:23 <cheater> *N
12:55:59 <cheater> ais523: but the princeton compiler itself does not disallow them does it?
12:57:08 <cheater> I *guess* you could also do first-order programming by including argv in the source and recompiling
12:59:28 <ais523> cheater: the princeton compiler existed in the days of punched cards, I'm not entirely sure if a command-line existed
12:59:48 <ais523> but I don't know what you mean by "disallow"; there's no language feature that would let you get at them
13:00:17 -!- ais523 has quit (Quit: Page closed).
13:00:21 <cheater> well, hmm, ya.
13:00:26 <cheater> o no
13:00:30 <cheater> he quits
13:14:55 -!- augur has joined.
14:10:15 -!- lieuwe has joined.
14:16:09 -!- scarf has joined.
14:23:38 -!- coppro has quit (Quit: I am leaving. You are about to explode.).
14:31:40 <scarf> <ubuntu> there is no valid use case for a system without localhost
14:31:51 <scarf> can someone please randomly contradict that with a plausible argument
14:31:58 <scarf> that also takes into account the fact that it has ifupdown installed?
14:33:11 -!- Pthing has joined.
14:33:23 -!- Asztal has joined.
14:38:58 -!- coppro has joined.
14:40:15 -!- boily has joined.
14:48:15 -!- MizardX has joined.
14:52:54 -!- charlls has joined.
14:58:22 -!- lieuwe has quit (Quit: When two people dream the same dream, it ceases to be an illusion. KVIrc 3.4.2 Shiny http://www.kvirc.net).
15:00:37 -!- Blarumyrran has joined.
15:01:04 -!- Blarumyrran has left (?).
15:02:15 -!- archtech has left (?).
15:05:00 -!- coppro has quit (Quit: that school-y thing).
15:05:12 <charlls> anyone knows once you have a validated promela model how do you translate your specification into valid c/c++ code?
15:07:08 <fizzie> Isn't that just the -a flag to spin?
15:07:37 <fizzie> It should write pan.c (and a pile of other pan.X files) that's compilable to an executable verifier.
15:08:37 <fizzie> Sorry, a bit lazy reading there. You didn't want a compilable verifier, you wanted the actual promela code into C.
15:15:09 <charlls> excellent
15:15:23 <charlls> no
15:15:29 -!- cpressey has joined.
15:15:50 <charlls> what i mean is the c model you are actually trying to model with it
15:16:03 <charlls> im not sure whats the right terminology
15:16:31 <charlls> you mean that the -a flag produces a .c file that will run the verification?
15:16:40 <fizzie> Yes.
15:16:57 <charlls> ah
15:17:37 <charlls> what i mean is that once you have a model that checks out, you somehow have to use that to implement the c/c++ model right? thats the step of the process i'm not clear about
15:18:07 <fizzie> Yes, I got that a bit late. As far as I know, there's no magical tool that would turn a Promela model into C code.
15:19:13 <charlls> ok, but i'm sure there are some sort of guidelines
15:20:25 <fizzie> If you go the other way, I hear there are some (more or less restricted) tools that do (or at least help) "model extraction", i.e. take C code and generate a Promela model for that. Guidelines for that sort of stuff are in the Spin book.
15:21:04 <fizzie> After a quick look at the table of contents -- http://spinroot.com/spin/Doc/Book_extras/index.html -- it doesn't seem to talk much about the opposite problem, how to turn a Promela model into a real implementation.
15:21:38 <charlls> model extraction would work too
15:22:23 <charlls> in fact i think thats the intended usage (you write your c/c++, you extract the model, verify, check for issues, adjust your code, rinse and repeat)
15:22:32 <charlls> cool
15:22:57 <charlls> i was thinking at it backwards i suppose
15:24:08 <fizzie> I guess both ways are used; the traditionalish "design → Promela model → implementation in C" one, and the fancier "implementation in C → Promela model for checking" one.
15:24:42 <fizzie> There indeed seem to be some automation for model extraction, but I'm not really qualified to recommend any, not having used any of them.
15:25:47 <charlls> np, i will look and report back :P
15:34:07 -!- FireFly has joined.
15:36:00 -!- boily has quit (Quit: leaving).
16:05:10 -!- MigoMipo has joined.
16:06:17 -!- MissPiggy has joined.
16:37:20 <AnMaster> hm
16:37:47 <AnMaster> Deewiant, TURT has F for "move forward" and B for "move backward"
16:37:52 <AnMaster> should negative arguments be allowed
16:38:04 <AnMaster> because currently I think negative arguments to my F will move backwards
16:38:07 <AnMaster> and vice verse
16:53:01 -!- augur has quit (Ping timeout: 264 seconds).
16:54:47 <fizzie> I know nobody asked me, but that sounds reasonable.
16:55:50 <AnMaster> integer_to_colour(Value) ->
16:55:50 <AnMaster> <<R,G,B>> = <<Value:24>>,
16:55:51 <AnMaster> {R,G,B}.
16:55:54 <AnMaster> I find that rather neat
16:56:21 <fizzie> Heh, that TURT quine looks messy. I don't think I had even seen that before.
16:56:36 <AnMaster> fizzie, which turt quine?
16:56:46 <AnMaster> the one from the huge domain name guy?
16:56:55 <fizzie> Yes.
16:57:04 <fizzie> At www.quote-egnufeb-quote-greaterthan-colon-hash-comma-underscore-at.info.
16:57:41 <AnMaster> fizzie, and yes it does if your interpreter handle "pen down without moving (that is, followed by a jump or pen-up event) → draw a dot"
16:57:56 <AnMaster> if you sed out all the dots that cfunge and iirc ccbi cerates it looks quite ok
16:58:48 <AnMaster> fizzie, anyway isn't that integer-to-colour-triplet function rather nice
16:58:59 <AnMaster> in C it would have been quite some bitshifting or such
16:58:59 <fizzie> I haven't run it, I was just judging based on that picture there.
16:59:13 <fizzie> But yes, it is nice.
16:59:20 <AnMaster> fizzie, oh that picture is much better than what cfunge produces (due to missing the dots)
16:59:29 <AnMaster> of course cfunge does the correct thing instead
17:00:00 <AnMaster> fizzie, anyway in cfunge it produces quite a less blocky image
17:00:04 <AnMaster> due to it producing an svg
17:01:29 <fizzie> If you don't mind portability, though, and assuming the fields line up right and there are no alignment mishaps, you could do a similar "struct rgb { unsigned char r, g, b; }; struct rgb integer_to_colour(unsigned u) { return *((struct rgb *)&u); }" thing in C too.
17:02:24 <AnMaster> fizzie, well I'm not happy if it doesn't work on big endian or such
17:02:57 <fizzie> You can #ifdef in different struct definitions depending on endianness, but right, it's not guaranteed to work anyway.
17:03:27 <AnMaster> unless otherwise specified erlang uses big-endian for bitstrings/binaries
17:03:43 <AnMaster> (you can override it to one of: big, little, native)
17:04:50 <AnMaster> fizzie, anyway the sanest way in C seems like something such as:
17:06:10 <AnMaster> struct rgb integer_to_colour(uint32_t u) { return (struct rgb){.r=u&0xff0000, .g=u&0xff00, .b=u&0xff}; }
17:06:15 <AnMaster> fizzie, agreed?
17:06:34 <AnMaster> assuming same struct as above that is
17:07:56 <AnMaster> fizzie, oh and erlang defaults to unsigned. With little endian signed it would have required something like: <<Value:24/little-signed>>
17:08:16 <AnMaster> (and similar on the other side of the pattern matching for each of R, G and B
17:08:17 <AnMaster> )
17:09:04 <fizzie> If you use the same struct rgb definition I do, ".r = u&0xff0000" with an eight-bit byte will most likely end up in an always-zero .r,
17:10:25 <fizzie> If you don't mind the reliance on well-defined unsigned wraparoundery and can assume CHAR_BIT == 8, it'd be enough with just .r = u>>16, .g = u>>8, .b = u. But maybe it's still best to mask with those masks before the shift, or with 0xff after.
17:11:09 <fizzie> (Away, food.)
17:12:31 <AnMaster> fizzie, oh right
17:12:33 <fizzie> Incidentally, I think it would be well-defined to do something like "unsigned char *p = (unsigned char *)&u; return (struct rgb){ .r = p[0], g = p[1], b = p[2] };" if you like. It's in the standard that you can access all bytes of an object with a char*, and cast any pointer to a char pointer safely.
17:12:35 <AnMaster> you need to bitshift it too
17:13:00 <fizzie> (But that's not endian-automatic the way bitshifting and masking is.)
17:13:12 <AnMaster> indeed
17:13:17 -!- tombom has joined.
17:13:21 <AnMaster> fizzie, and in C the best way is probably bitshifting
17:13:29 <AnMaster> fizzie, and that was one quick meal
17:15:53 -!- kar8nga has joined.
17:18:16 <fizzie> Oh, I'm still away.
17:23:48 <AnMaster> XD
17:35:31 <AnMaster> Deewiant, oh dear it looks like both ccbi and cfunge mix up turn left and turn right
17:35:44 <AnMaster> plus ccbi somehow manages to miss one dot in that test
17:35:51 <AnMaster> or rather
17:36:00 <AnMaster> the dot turns out the wrong colour
17:36:23 <AnMaster> (test/turt.b98 in cfunge sources)
17:36:32 <AnMaster> (I believe it might be incorrect)
17:37:20 <AnMaster> (but still, ccbi gets the wrong colour for the right dot)
17:37:31 <AnMaster> (it should be black not blue)
17:38:11 <AnMaster> still, something is up with turn left/right there
17:39:10 <AnMaster> for some reason turning right adds to the degree
17:39:18 <AnMaster> and turing left substracts from it
17:39:50 <AnMaster> and that doesn't match behaviour for set heading
17:44:46 -!- oerjan has joined.
17:46:25 -!- augur has joined.
17:51:36 <AnMaster> oerjan, btw, just need you to confirm that I'm not mixing things up here: If you keep track of a heading and want to turn right you would substract from said heading.
17:51:37 <AnMaster> right?
17:51:46 <AnMaster> and turing left you would add to it
17:51:50 <MissPiggy> There was a general rejection of the theory of Evolution when it was first presented, and wasn't thoroughly excepted until a long time afterwards.
17:51:54 <MissPiggy> Furthermore, the revelation that the Earth is flat would be a far greater revelation than evolutionary theory was, meaning the public rejection and/or outcry would be far more widespread and violent.
17:51:56 <AnMaster> assuming a math-direction
17:52:12 <oerjan> um are you sure i'm the one you want to ask? oh math direction
17:52:18 <AnMaster> as in -> = 0 ^ = 90 <- 180
17:52:20 <AnMaster> and so on
17:52:22 <oerjan> yeah then right turn would be negative
17:52:34 <AnMaster> oerjan, then wth does both cfunge and ccbi do
17:52:40 <MissPiggy> what is this AnMaster some kind of LOGO?
17:52:53 <AnMaster> MissPiggy, the fingerprint TURT for befunge
17:52:59 <MissPiggy> oh cool
17:53:19 <AnMaster> ccbi and cfunge both sets heading as in math-direction
17:53:27 <AnMaster> but mix up right and left
17:53:32 <oerjan> sheesh
17:54:11 <oerjan> well by math direction i assume you mean the standard way of displaying complex numbers, with i upwards
17:54:13 <AnMaster> however for compatibility with older programs it might be better to redefine what right and left in English means
17:54:14 <AnMaster> ;)
17:54:26 <AnMaster> oerjan, yes
17:54:30 <oerjan> so e^(i*angle) is angle counterclockwise (in radians, though)
17:54:35 <AnMaster> oerjan, well, unit circle for trig actually
17:54:40 <AnMaster> which works out to the same thing
17:54:59 <AnMaster> oerjan, and yes in radians of course.
17:55:43 <AnMaster> oerjan, suggesting that <- would be 180 radians wouldn't make sense in *any* system, thus you could conclude the unit in that case was degrees
17:55:46 <oerjan> AnMaster: there was the argument that for a turtle degrees are better, since you get exact multiples of 360 (2*pi is not exact on floating point)
17:56:03 <AnMaster> oerjan, turtle degrees?
17:56:17 <AnMaster> oh
17:56:17 <scarf> AnMaster: like bachelor of chenelography, etc
17:56:20 <oerjan> *turtle, degrees
17:56:23 <AnMaster> oerjan, right
17:56:46 <AnMaster> oerjan, and yes the unit in question for the interface is degrees in integer
17:57:26 <AnMaster> so I track it as degrees but convert it to radians to calc sin and cos values for move(Distance)
17:57:27 <oerjan> of course even turns by 60 degrees gives you irrational x,y parts
17:57:39 <oerjan> (for integer forwards)
17:57:49 <AnMaster> oerjan, true. And that is defined to be integer x,y
17:58:01 <oerjan> oh it is?
17:58:04 <AnMaster> so I think it might be possible to get supposedly straight lines that are somewhat curved
17:58:15 <AnMaster> oerjan, well, you have an integer-interface for TURT
17:58:24 <AnMaster> (not sure about a real turtle bot)
17:58:29 <oerjan> i'm more thinking about how you might not end up where you started if you do a triangle, say
17:58:30 <AnMaster> and there is a query position thingy
17:58:49 <AnMaster> so you have to round to integers when drawing
17:58:51 <oerjan> because of rounding errors, if you are using integers
17:59:04 <AnMaster> anyway since there is "jump to x,y" too
17:59:17 <AnMaster> you want a line to continue where you left off
17:59:23 <AnMaster> if you jump to current position
18:00:02 <AnMaster> oerjan, and yes quite. Unless you do that 3/4/5 one
18:00:13 <AnMaster> (or another one like that)
18:00:55 <oerjan> ah but that one has an irrational _degree_, i'd think
18:01:52 <oerjan> !haskell arctan(4/3)*(180/pi)
18:02:00 <AnMaster> oerjan, oh hm
18:02:31 <oerjan> huh, EgoBot claimed a parse error
18:02:34 <AnMaster> oerjan, well, if you round to nearest then just ending up near where you wanted to go is enough
18:02:46 <oerjan> oh it's that two possible compilations thing
18:02:47 -!- kar8nga has quit (Remote host closed the connection).
18:02:58 <AnMaster> oerjan, how can that compile in two ways?
18:03:30 <oerjan> i probably misremembered the name of arctan, so the compilation as an expression failed. then the compilation as a file failed (obviously) and gave me a parse error
18:03:31 <cpressey> I shouldn't ask, but, don't all turtle interfaces have a rounding problem? I certainly remember Apple LOGO did.
18:03:58 <scarf> there has to be /some/ way to do it without a rounding issue
18:04:00 <oerjan> cpressey: in _principle_ you could track exact algebraic expressions :D
18:04:19 <cpressey> Even though pi is irrational?
18:04:36 <cpressey> OK, I suppose.
18:04:53 <oerjan> you don't _use_ pi in a turtle. the actual sin and cos are algebraic when the angles are rational _degrees_
18:04:58 <oerjan> (i think)
18:06:11 <oerjan> for example sin (60 degrees) = (sqrt 2)/2
18:06:24 <oerjan> er wait
18:06:28 <AnMaster> cpressey, it seems nearly all turt programs I have found depend on left and right being mixed up
18:06:32 <cpressey> Well, even if they weren't, you could probably still do it.
18:06:44 <oerjan> (sqrt 3)/2
18:06:45 <AnMaster> cpressey, but set-heading doing the math set-heading
18:06:51 <AnMaster> as in, counter clockwise
18:07:26 <cpressey> I mean, track all movements since the beginning as an algebraic expression incl. sin and cos, reduce when possible using trig rules, and *only for output*, approximate the pixels.
18:07:28 <oerjan> !haskell atan(4/3)*(180/pi)
18:07:30 <EgoBot> 53.13010235415598
18:07:36 <cpressey> AnMaster: That's unfortunate.
18:07:48 <AnMaster> cpressey, yes quite
18:07:53 <cpressey> Sounds almost like someone should define TUR2.
18:07:54 <oerjan> cpressey: that's what i assumed you meant
18:08:01 <AnMaster> cpressey, why not TURT2?
18:08:28 <cpressey> Aren't fingerprint IDs four characters?
18:08:42 <AnMaster> cpressey, I don't think it says anywhere that longer aren't permitted
18:08:44 <AnMaster> nor shorter
18:09:00 <cpressey> Then it's a convention?
18:09:11 <AnMaster> cpressey, you should know ;P
18:09:26 <AnMaster> "The ( "Load Semantics" instruction loads the semantics for a given fingerprint onto any or all of the instructions A to Z. ( pops a count. It then pops count cells. For each cell that it pops, it multiplies a temporary value (which is initially zero) by 256, and adds the cell value to it.
18:09:26 <AnMaster> In this way, ( builds a fingerprint. This mechanism makes it simple to express large fingerprints like 0x452e472e in printable ASCII such as ".G.E"4( ... ), while not requiring the use of ASCII as the medium for all fingerprints. "
18:09:31 <AnMaster> quoting from the 98 spec
18:09:41 <AnMaster> and yes it is a convention afaik
18:10:01 <AnMaster> cpressey, certainly there is nothing preventing me creating a fingerprint 0
18:10:11 <AnMaster> or such
18:10:18 <cpressey> Then not TURT2 because it breaks convention. :)
18:10:34 <AnMaster> cpressey, also it causes issues in 32-bit funges
18:10:39 <cpressey> TURT2 would evaluate to a 40-bit value, is why, and 32-bit... exactly
18:10:39 <AnMaster> which is a thing of the past anyway
18:10:52 <cpressey> Huh
18:11:01 <AnMaster> cpressey, things are 64-bit or bignum nowdays (at least the thing *I* write ;P)
18:11:07 <AnMaster> well,
18:11:08 <cpressey> You say that like things of the past have less value than things of the present.
18:11:11 <AnMaster> cfunge has an option
18:11:17 <AnMaster> cpressey, I was joking -_-
18:11:29 <AnMaster> I think 32-bit funges are still fairly common
18:11:43 <AnMaster> cfunge is 64- or 32-bit (compile time option)
18:11:46 <AnMaster> efunge is bignum
18:11:57 <AnMaster> cfunge defaults to 64-bit iirc
18:13:12 <AnMaster> anyway, the issue is that TURT is so badly specced
18:13:27 <cpressey> Indeed
18:14:24 <cpressey> Hard to believe mixing up left and right, though.
18:15:33 <AnMaster> cpressey, well, at least http://www.quote-egnufeb-quote-greaterthan-colon-hash-comma-underscore-at.info/befunge/tquine.php seems to depend on that behaviour and that plus a few test suite thingies are the only users of TURT I know of
18:16:06 <AnMaster> cpressey, and yes, left/right is problematic. Probably it has been copied for compat between implementations since then
18:16:32 <AnMaster> fizzie, btw did you ever do any more work on JIT-funge?
18:17:37 <cpressey> I think if I had to redesign it I would leave out the teleporting and the absolute-heading-setting stuff.
18:18:16 <AnMaster> cpressey, and define which direction it was to turn in (math one is the only one that makes sense IMO)
18:18:25 <AnMaster> (for relative ones at least)
18:18:32 <cpressey> Well, yes.
18:18:41 <AnMaster> cpressey, also what about transparent colours?
18:18:53 <AnMaster> you could have semi-transparent pen-colours
18:19:00 <AnMaster> more realistic too
18:19:02 <cpressey> Gamma, huh.
18:19:10 <AnMaster> cpressey, I was thinking of alpha channel
18:19:16 <cpressey> Oh, right.
18:19:27 <AnMaster> cpressey, gamma is something quite different isn't it?
18:19:35 <cpressey> Yes, I was mixed up.
18:19:37 <AnMaster> anyway since I render to svg, alpha should be trivial
18:20:38 <AnMaster> cpressey, now, should it be additive (light based) mixing or subtractive (ink/crayon/...) based mixing?
18:20:49 <AnMaster> the former would be way easier to implement
18:20:59 <AnMaster> unless you render to a real turtle bot
18:21:04 <AnMaster> but for me who renders to svg...
18:21:37 <Deewiant> TURT2 is fine, it just overlaps with something 4-character
18:21:38 <cpressey> I think it would be forgivable for a real turtle robot to stick to black-and-white.
18:21:43 <AnMaster> cpressey, oh and you should probably define TURT and TUR2 to share the same underlying turtle bot in case both are used during a single program run
18:21:44 <Deewiant> (In 32-bit)
18:22:28 <cpressey> AnMaster: Just so you know, I'm almost certainly never going to get around to defining TUR2. Sorry.
18:22:44 <cpressey> Don't let that stop you or anyone else who wants to, though.
18:22:49 <AnMaster> Deewiant, see about ccbi or cfunge having left/right mixed up for relative turining
18:22:58 <Deewiant> I saw your comment
18:22:59 <AnMaster> Deewiant, fixing it breaks the TURT quine amongst other things
18:23:07 <Deewiant> :-)
18:23:21 <AnMaster> Deewiant, so what are we to do?
18:23:32 <AnMaster> provide a command line option?
18:23:45 <cpressey> You could always have a "chirality" flag you pass to the implementation, a boolean saying how left and right should be determined in TURT
18:24:00 <lament> chirality!!!
18:24:07 <AnMaster> cpressey, well, the thing is that it is different in set-heading and turn left/right
18:24:09 <cpressey> Chirality is dead
18:24:22 <oerjan> --goatie
18:24:31 <AnMaster> what did I miss there?
18:24:39 <AnMaster> some sort of pop culture reference?
18:24:55 <cpressey> The point is to provide a command line option that makes the behaviour compatible with what existing programs expect
18:24:57 <oerjan> people in mirror worlds have goaties, of course
18:25:09 <oerjan> wait
18:25:12 <oerjan> *goatee
18:25:20 <Deewiant> AnMaster: But hmm, what makes it inconsistent?
18:25:36 <AnMaster> Deewiant, well set heading acts like it is math rotation
18:25:43 <cpressey> (Chivalry is dead)
18:25:44 <Deewiant> How does it act like it?
18:25:57 <Deewiant> set-heading 90 goes north?
18:25:59 <AnMaster> Deewiant, as in, 0 = east, 90 = straight up
18:26:05 -!- kar8nga has joined.
18:26:06 <AnMaster> as far as I can tell yes
18:26:32 <Deewiant> I find that highly unlikely
18:26:40 <AnMaster> hm
18:26:43 <Deewiant> Looking at CCBI's source, at least :-P
18:27:00 <AnMaster> Deewiant, how comes it renders the same as cfunge then
18:27:03 <AnMaster> which does it that way
18:27:13 <Deewiant> Beats me
18:27:14 <Deewiant> void turnRight() { turt.heading += toRad(cip.stack.pop); turt.normalize(); }
18:27:14 <Deewiant> void setHeading() { turt.heading = toRad(cip.stack.pop); turt.normalize(); }
18:27:20 <AnMaster> Deewiant, anyway, turn right should substract
18:27:21 -!- MigoMipo has quit (Remote host closed the connection).
18:27:22 <MissPiggy> GROSS
18:27:26 * MissPiggy pukes on Deewiant
18:27:26 <AnMaster> assuming math degrees
18:27:28 <AnMaster> Deewiant, and it doesn't
18:27:31 <AnMaster> Deewiant, that is the issue
18:27:37 <Deewiant> According to this, and starting at 0, 90 right and 90 set-to are identical
18:27:54 -!- MigoMipo has joined.
18:28:02 <AnMaster> Deewiant, yes that is the bug. Look at how you use those values
18:28:18 <Deewiant> AnMaster: I wouldn't assume math degrees: to quote the docs "A 'Query Heading' (positive angle relative to east) "
18:28:27 <Deewiant> Oh, never mind
18:28:32 <Deewiant> That doesn't mean anything :-P
18:28:54 <AnMaster> quite. The reason I didn't reply was I was trying to figure out wth you meant with that :P
18:29:49 <AnMaster> all it means is that 0 =< A < 360 (or 0 < A =< 360, both are valid ways to interpret that)
18:30:03 <AnMaster> (I would go for the former)
18:30:17 <AnMaster> actually it doesn't even mean that
18:30:19 <cpressey> Actually, I'm not even sure it means that. It sounds quite meaningless to me
18:30:22 <AnMaster> returning 720
18:30:24 <AnMaster> is valid
18:30:27 <AnMaster> but -720 isn't
18:30:38 <Deewiant> AnMaster: "TRUT"4(n9a*HA.a,@
18:30:43 <AnMaster> Deewiant, ?
18:30:50 <cpressey> Could have just been "positive angle"
18:30:51 <Deewiant> Whether H or R, this prints 90 for me
18:31:04 <Deewiant> So where's the inconsistency?
18:31:29 <AnMaster> Deewiant, that doesn't render anything
18:31:31 <AnMaster> so I can't check it
18:31:41 <AnMaster> Deewiant, and sure.
18:31:43 <Deewiant> I don't give a damn about rendering
18:31:47 <AnMaster> err
18:31:56 <AnMaster> how else can you check it?
18:31:58 <Deewiant> You just said that H is inconsistent wrt R/L
18:32:12 <cpressey> AnMaster, OOC, have you looked at Etcha at all?
18:32:27 <AnMaster> cpressey, never heard of it
18:32:34 <AnMaster> cpressey, and define OOC
18:32:34 <cpressey> http://catseye.tc/projects/etcha/
18:32:40 <cpressey> Out Of Curiosity
18:32:43 <AnMaster> ah
18:32:59 <AnMaster> Deewiant, yes because when you render it turning right ends up turning left
18:33:05 <cpressey> Etcha does the turtle thing, but combines it with the program source
18:33:18 <Deewiant> TURT has A and Q which print the heading and pos respectively, if there is a bug in pen movement these should be enough to show it
18:33:21 <AnMaster> Deewiant, remember it is relative the turtle bot
18:33:29 <AnMaster> Deewiant, (except for set heading)
18:33:42 <AnMaster> Deewiant, now look at tests/turt.b98 in cfunge source. It has:
18:33:45 <cpressey> (Etcha's also implemented in some horrendous Java that MissPiggy would probably like.)
18:33:50 <AnMaster> 5F 9a*L 11x> ; Draw vertical line, turn 90 deg right.;
18:33:50 <AnMaster> 0C 5F 11x> ; Change to black, draw line. ;
18:34:10 <AnMaster> which is very strange
18:34:53 <Deewiant> Looks like a typo in your comment or code :-P
18:35:17 <AnMaster> Deewiant, wait, is svg's coordinate system upside down?
18:35:22 <AnMaster> hm
18:35:23 <Deewiant> AnMaster: I'm still not seeing anything: "TRUT"4(n9a*HaF1PI@ prints a dot to the south as expected
18:35:27 <AnMaster> that could explain some of the things
18:35:50 <AnMaster> Deewiant, btw in that turt test code above you print the supposed-to-be-black dot as blue
18:35:55 <AnMaster> and blue was never set as pen colour
18:36:00 <AnMaster> it was set as the bg colour though
18:36:26 <AnMaster> Deewiant, using ccbi x86_64 binary downloaded from your website today
18:39:32 <Deewiant> Gah inkscape isn't zooming to the correct place by default
18:39:47 <AnMaster> Deewiant, it zooms at the pointer iirc
18:39:49 <AnMaster> when you scroll
18:40:02 <AnMaster> (with ctrl down)
18:40:17 <AnMaster> that's certainly how it works here
18:40:32 <Deewiant> It's failing at using my viewbox
18:40:41 <AnMaster> Deewiant, it uses it just fine for cfunge for some reason
18:41:13 <Deewiant> It displays it fine in the preview thing when I have it selected in file->open
18:41:41 <AnMaster> huh
18:42:18 <Deewiant> Zooming in would take forever as it starts from like -200 to 800 and it's supposed to go to -0.001 to 0.002 or so
18:42:56 <AnMaster> Deewiant, anyway, svg uses +y as down right?
18:43:04 <AnMaster> or do I misremember?
18:43:10 <Deewiant> Yes I'd think so
18:43:26 <AnMaster> why can't it use a sane way like in math :/
18:43:56 <AnMaster> Deewiant, it seems to start pretty decently zoomed for ccbi output for me
18:44:05 <Deewiant> It used to for me too
18:44:07 <Deewiant> What version?
18:44:25 * AnMaster starts it again
18:44:30 <Deewiant> inkscape --version
18:45:05 <AnMaster> 0.46
18:45:08 <Deewiant> Well, all the more reason to rewrite this thing to not use tiny coordinates :-P
18:45:12 <Deewiant> Inkscape 0.47 r22583 (Jan 22 2010)
18:45:31 <AnMaster> on 0.47 on my other computer I see those problems you mention
18:45:53 <Deewiant> Alright, so it's not my fault as such
18:45:53 <AnMaster> efunge doesn't use tiny coordinates btw, both versions work fine there
18:46:13 <Deewiant> I planned on using SVG Tiny originally which had a limitation of +-32767 or some such, which is why I used tiny coordinates
18:46:36 <AnMaster> Deewiant, cfunge causes same issues as ccbi there
18:46:39 <Deewiant> I ended up not doing so but I already had the coordinate impl at that point
18:46:46 <AnMaster> trivial to fix
18:46:55 <AnMaster> just stop scaling it
18:47:24 <Deewiant> But I'll lose all my cool optimizations for printing numbers ;-P
18:47:47 <Deewiant> Although I think I disabled them already for some reason or other
18:48:13 <Deewiant> As it doesn't seem to emit 5e-5 which'd be shorter than .00005
18:52:05 <AnMaster> <Deewiant> But I'll lose all my cool optimizations for printing numbers ;-P <-- ?
18:52:28 <AnMaster> you were golfing the TURT output
18:52:30 <AnMaster> ??
18:52:46 <Deewiant> It did help for stuff like the quine
18:53:17 <AnMaster> Deewiant, oh?
18:53:32 <Deewiant> I mean, reduction measureable in kilobytes not bytes :-P
18:53:51 <AnMaster> Deewiant, do you still try to make the paths as long as possible
18:53:52 <AnMaster> that is
18:53:56 <AnMaster> using M if jumping
18:54:00 <AnMaster> instead of creating a new path
18:54:07 <Deewiant> Of course, turning .00005 to .5 will help even more
18:54:12 <Deewiant> AnMaster: Yes
18:54:13 <AnMaster> Deewiant, I do that in cfunge but not in efunge.
18:54:25 <Deewiant> Since SVG supports it, might as well
18:54:28 <AnMaster> Deewiant, the quine is sluggish to zoom in with inkscape for the cfunge output
18:54:33 <AnMaster> but snappy for the efunge output
18:54:40 <AnMaster> so it seems like a counter optimisation
18:54:55 <Deewiant> Space for speed
18:55:08 <Deewiant> Do you only use M at the start of a path then?
18:55:12 <AnMaster> Deewiant, correct
18:55:14 <AnMaster> in efunge
18:55:55 <Deewiant> How big are the quine SVGs from cfunge and efunge?
18:55:58 <AnMaster> Deewiant, only space optimisation I do is to delete dots that are hidden under other dots or under "corner" points of paths
18:56:45 <AnMaster> which is a reasonably fast "scan the cons-style list from newest to oldest and built a set (erlang stdlib provides that) with coordinates, remove circles if they are already in it"
18:56:58 <AnMaster> Deewiant, you have to remember to get circles and lines in the straight order
18:57:03 <AnMaster> I don't know if you do that
18:57:06 <AnMaster> cfunge doesn't it seems
18:57:13 <AnMaster> it always draws lines first then circles
18:57:42 <AnMaster> but those two groups have their order preserved internally
18:57:47 <AnMaster> just not between each other
18:58:52 <AnMaster> Deewiant, btw I assume your output contains no newlines then?
18:59:03 <AnMaster> oh hm it does
18:59:14 <AnMaster> Deewiant, also "#00f000"
18:59:20 <AnMaster> oh wait
18:59:21 <AnMaster> misread
18:59:32 <AnMaster> heck you do turn 0000ff into 00f
18:59:36 <AnMaster> -_-
18:59:41 <Deewiant> Of course ;-P
18:59:57 <AnMaster> Deewiant, what is the algorithm for that. The one I can think of is fairly wordy
19:00:13 <cpressey> I'm sorry: "Etcha does the turtle thing, but combines it with the program source" -- it actually doesn't. It's like BitChanger but uses a turtle graphics playfield instead of a tape.
19:00:40 <Deewiant> AnMaster: if (buf[1] == buf[2] && buf[3] == buf[4] && buf[5] == buf[6])
19:00:41 <AnMaster> cpressey, oh I bookmarked it for later
19:00:49 <AnMaster> Deewiant, *cringe*
19:00:54 <Deewiant> :-D
19:01:00 <AnMaster> Deewiant, that assumes you have a fairly imperative language
19:01:10 <Deewiant> Not really
19:01:16 <AnMaster> Deewiant, now go implement it in scheme
19:01:29 <AnMaster> Deewiant, for cons-list style strings
19:01:42 <AnMaster> Deewiant, or maybe in haskell
19:01:45 <Deewiant> Those can still be indexed?
19:01:54 <AnMaster> Deewiant, can cons lists really?
19:01:56 <AnMaster> well
19:01:59 <AnMaster> cdar
19:02:00 <AnMaster> I guess
19:02:19 <AnMaster> (or was it cadr? I always mix those up)
19:02:39 <AnMaster> (as in, I never remember which order to read the operations in)
19:03:37 <AnMaster> oh cadr it seems
19:03:43 <AnMaster> which doesn't make a lot of sense to me
19:04:07 <Deewiant> uncurry (==) $ join (***) (map fst) $ (filter (even.snd) &&& filter (odd.snd)) $ zip (tail x) [0..]
19:04:21 <Deewiant> This is how I'd write that comparison in Haskell if I wanted to be general about it
19:04:31 <Deewiant> Where x is the #rrggbb string
19:05:01 <Deewiant> If I wanted to be nongeneral I'd do (x !! 1 == x !! 2 && x !! 3 == ...)
19:05:18 <Deewiant> But that's also less efficient since it traverses the list multiple times :-P
19:05:34 <Deewiant> AFK for a bit ->
19:07:33 <AnMaster> Deewiant, found the cause of the wrong colour circle in ccbi yet?
19:07:39 <cpressey> match([X,X|r]) -> match(r); match([]) -> true; match(_) -> false
19:07:58 <AnMaster> cpressey, wth at that tail (assuming erlang)
19:08:18 <cpressey> AnMaster: ?
19:08:25 <cpressey> My syntax isn't exact
19:08:26 <AnMaster> cpressey, lower case R
19:08:32 <AnMaster> it's an atom
19:08:35 <cpressey> Fine.
19:08:37 <cpressey> R.
19:08:46 <AnMaster> cpressey, you coded erlang before, there is no excuse ;)
19:09:25 -!- kar8nga has quit (Remote host closed the connection).
19:10:10 <AnMaster> hm does css and svg accept color:red/color="red"?
19:10:18 <AnMaster> if so that is shorter than #f00
19:10:25 <cpressey> I was merely surprised you didn't see there was an elegant way to express it in a functional language that you'.
19:10:30 <cpressey> re fluent in...
19:10:49 <AnMaster> cpressey, I'm not that fluent, also I found that somewhat non-elegant
19:11:58 <AnMaster> cpressey, however it's late and I had not just _a_ heavy day but several heavy days. And another one tomorrow...
19:13:09 <AnMaster> cpressey, anyway, I have the colour as a binary at that point it seems. I blame io_lib:format for this
19:13:19 <AnMaster> which is very strange
19:13:26 <AnMaster> since no binary was involved
19:14:03 <Deewiant> AnMaster: I'm not looking
19:14:04 <cpressey> Binaries always made me hesistate, but I *think* you can say things like <<X:8, X:8 | Y >> to match them
19:17:22 -!- MizardX- has joined.
19:17:41 <Deewiant> Something like all (uncurry (==)) . map snd . filter fst . zip (cycle [True,False]) . ap zip tail . tail might be nicer actually
19:18:06 -!- MizardX has quit (Ping timeout: 260 seconds).
19:18:08 <Deewiant> MissPiggy: Is this kind of stuff less puke-worthy?
19:18:20 -!- MizardX- has changed nick to MizardX.
19:18:20 <MissPiggy> no
19:18:24 <MissPiggy> that's worse
19:18:29 <Deewiant> D'oh
19:18:40 <pikhq> Deewiant: ap zip tail?
19:18:50 <pikhq> You know as well as I do that that should be zip`ap`tail.
19:18:59 <pikhq> The Aztec god of consecutive numbers.
19:19:07 <Deewiant> I know that it could be, not that it should be
19:19:32 <pikhq> On a more serious note: I find infix "ap" to be much more readable.
19:19:35 <Deewiant> In expressions like that where it'd need extra brackets to invoke the gawd I'd rather leave it as such
19:20:12 <pikhq> Mmm...
19:20:32 <pikhq> (zip `ap` tail) is nicer IMO, but... Whatever.
19:20:43 <Deewiant> <*> has unfortunate precedence too, so that doesn't help
19:21:11 <cpressey> I still think the Erlang version is closest to how I think.
19:21:15 <pikhq> You're not going to get anything better, because of the precedence of 「.」.
19:22:03 <Deewiant> cpressey: Yes, but that requires writing a separate function ;-)
19:22:06 <AnMaster> <Deewiant> AnMaster: I'm not looking <-- at what?
19:22:13 <Deewiant> For bugs.
19:22:20 <Deewiant> At the code, whatever.
19:22:32 <pikhq> As a side note, non-English punctuation is really nice for discussing programming. Doesn't collide at all for most languages.
19:22:48 <lament> "" is not English punctuation
19:22:59 <pikhq> Erm.
19:23:00 <pikhq> Bleh.
19:23:03 <pikhq> Not punctuation.
19:23:18 <cpressey> lament: Don"t confuse us.
19:23:19 <AnMaster> Deewiant, why not?
19:23:35 <lament> cpressey: well ' isn't English punctuation either :)
19:23:49 <pikhq> ... Other word that refers to various bits of non-pronouncable inline metadata used in the writing of natural language.
19:24:01 <lament> although on the rare occasions that people use the correct apostrophe... they just get laughed at
19:24:24 <AnMaster> cpressey, anyway for 3 colours you could just do [$#,X,X,Y,Y,Z,Z]
19:24:29 <AnMaster> now that would be nice
19:24:37 <Deewiant> AnMaster: Because TURT isn't on the top of my TODO list :-P
19:24:46 <cpressey> 'Struth!
19:24:48 <AnMaster> Deewiant, nor is ccbi I guess?
19:24:57 <Deewiant> I meant, "of CCBI"
19:25:08 <Deewiant> But yeah, it isn't either, as such
19:25:15 <AnMaster> Deewiant, well okay. Still ccbi 1 still recieves bug fixes I thought?
19:25:25 <AnMaster> receives*
19:26:08 <Deewiant> I'd rather avoid messing with CCBI1 at all unless it's something relatively important
19:26:31 <AnMaster> Deewiant, and TURT isn't?
19:26:47 <Deewiant> Not IMO, especially since it mostly works :-P
19:26:57 <Deewiant> AnMaster: Do you have a simple testcase for the north/south thing?
19:27:49 <AnMaster> Deewiant, hm? well you may be right, the coordinate system of svg confused me I think
19:28:07 <Deewiant> Alright
19:28:11 <AnMaster> Deewiant, but the wrong colour of dot: yes
19:28:19 <AnMaster> it is src/turt.b98
19:28:21 <Deewiant> So now there's that colour thing and preserving order of lines/points
19:28:23 <AnMaster> err
19:28:26 <Deewiant> Actually tests/turt.b98
19:28:27 <AnMaster> test/turt.b98
19:28:28 <AnMaster> I meant
19:28:30 <AnMaster> yeah tests even
19:28:33 <Deewiant> :-P
19:28:40 -!- charlls has quit (Read error: Connection reset by peer).
19:28:43 <AnMaster> Deewiant, obviously you found it by yourself though
19:29:01 <Deewiant> Thus my 93-line TODO for CCBI grows by four lines.
19:29:05 <AnMaster> Deewiant, anyway do you optimise #f00 into red?
19:29:09 <Deewiant> Nope.
19:29:16 <AnMaster> Deewiant, :/
19:29:20 <Deewiant> >_<
19:29:25 <AnMaster> Deewiant, what?
19:29:33 <AnMaster> afaik it is legal
19:29:36 <Deewiant> ":/" seems hardly warranted :-D
19:29:47 <Deewiant> Especially from someone who outputs #ff0000
19:29:49 <AnMaster> Deewiant, THINK OF THE EXTRA BYTES
19:29:53 <scarf> why is that an optimisation?
19:29:59 <Deewiant> It saves a byte of space
19:30:01 <AnMaster> scarf, fewer bytes
19:30:12 <cpressey> For the want of a byte of space, the kingdom was lost.
19:31:04 <AnMaster> Deewiant, anyway I was ridiculing you for your extreme space optimisations that are time pessimisationsa
19:31:07 <AnMaster> s/a$//
19:31:18 <AnMaster> also you still try to format the svg nicely
19:31:22 <Deewiant> "red" is the only one with any advantage, I think
19:31:29 <AnMaster> lots of un-needed newlines and spaces
19:31:49 <AnMaster> cfunge puts it all on one line (due to using the genx library to generate the xml)
19:31:51 <Deewiant> Yes, I know
19:31:55 -!- charlls has joined.
19:31:59 <AnMaster> (ehird managed to convince me to do that, not sure why)
19:32:20 <Deewiant> I might do that M-only-at-start thing as well, seems nice enough
19:32:21 <AnMaster> (since it outputs stuff like: <circle cx="136" cy="232" fill="#000000" r="0.25"></circle>)
19:32:55 <Deewiant> Aha, the defined colours are actually stuff like #808080 as well, so there's more advantage to be had
19:33:05 <AnMaster> Deewiant, hm?
19:33:24 <Deewiant> Continuing from my '"red" is the only one with any advantage, I think'
19:33:41 <AnMaster> Deewiant, iirc those are (used to be?) different between browsers
19:33:52 <Deewiant> No, they're well-defined
19:33:53 <AnMaster> the only ones you could trust were black/white/red/blue/green
19:34:02 <AnMaster> Deewiant, this might have been when HTML 4 was still new
19:34:04 <Deewiant> There are 16 defined colours in HTML 4.0
19:34:05 <AnMaster> I don't remember
19:34:13 <Deewiant> And those same colours are defined in SVG 1.1
19:34:28 <AnMaster> Deewiant, so which ones are advantages?
19:34:30 <Deewiant> Which actually linked to the CSS 2.0 spec
19:34:46 <Deewiant> There's system colours as well, which obviously aren't portable
19:35:07 <Deewiant> AnMaster: silver, gray, maroon, red, purple, green, olive, navy, teal
19:35:08 <AnMaster> Deewiant, btw why no DOCTYPE?
19:35:18 <scarf> did CSS steal the colour list from X11, or vice versa?
19:35:22 <scarf> or do they both have a common source?
19:35:31 <AnMaster> scarf, X11 has a colour list?
19:35:36 <Deewiant> I think X11 defines more colours than CSS?
19:35:37 <scarf> I think so
19:35:49 <scarf> some of them are really weirdly named
19:35:52 <scarf> Deewiant: hmm, maybe
19:35:55 <Deewiant> AnMaster: http://jwatt.org/svg/authoring/#doctype-declaration
19:36:58 <AnMaster> Deewiant, the link to why is dead
19:37:16 <AnMaster> or at least to where they tell it
19:37:20 <AnMaster> I get a redirect loop
19:37:36 <Deewiant> Accept cookies from yahoo.com
19:37:55 <Deewiant> Or enable javascript or whatever you have disabled
19:38:23 <Deewiant> AnMaster: But anyway, the fact that SVG 1.2 won't have one is also some proof I guess
19:38:24 <AnMaster> Deewiant, I use lynx atm
19:38:29 <AnMaster> let me try w3m
19:38:34 <Deewiant> That would be a problem
19:38:39 <Deewiant> :-P
19:38:42 <AnMaster> Deewiant, I don't have X running
19:38:47 <AnMaster> on this system
19:39:02 <Deewiant> So you probably won't be able to use yahoo groups
19:39:14 <AnMaster> maybe google has a cached copy
19:39:31 <AnMaster> yep, cache:http://groups.yahoo.com/group/svg-developers/message/48562 worked
19:39:32 <cpressey> fungot, We have managed out of existence of interconnecting principles, then they were
19:39:33 <fungot> cpressey: cyrus! are you leaving! we must use! let's show ' em! 200g per night. care, and stay...healthy! my husband...he's...he's...gone... but he left me precious gifts! the seeds...and our child, it's ancient history now...
19:40:03 <AnMaster> cpressey, you sounded almost as bad as fungot there XD
19:40:04 <fungot> AnMaster: cyrus! are you leaving! back to the present? he's been known. we reptites will rule the world in a mere door that keeps us bound, hand, foot...and tongue kid? ...oh, it's you, isn't this morbid? the great adventurer toma levine rests in a grave to the north. it's a great place for a picnic! heard that magus's place...
19:40:10 <cpressey> AnMaster: Well, I try. :)
19:41:52 <AnMaster> Deewiant, is there any good svg validator btw?
19:42:08 <AnMaster> Deewiant, since the w3c one accepted a viewbox of "hello"
19:42:16 <Deewiant> :-D
19:42:48 <Deewiant> I don't know of any others
19:43:00 <AnMaster> Deewiant, and the w3c one is obviously quite useless
19:43:35 <AnMaster> Deewiant, btw how easy would it be in ccbi to replace the rendering to svg with a completely different format?
19:44:08 <Deewiant> Depends on how easy it is to render that format :-P
19:44:18 <AnMaster> Deewiant, well, lets say png
19:44:34 <Deewiant> I don't know enough about image formats to be able to say anything
19:44:48 <AnMaster> Deewiant, well, any bitmap format then
19:45:01 <Deewiant> But basically the stuff is stored as paths and dots
19:45:20 <Deewiant> So it depends on how easily you can turn that into an image
19:45:23 <AnMaster> Deewiant, how funge specific is it?
19:45:48 <AnMaster> Deewiant, I mean, does the turtle part have a clean and nice interface that could be used for other things?
19:46:18 <Deewiant> There's hardly any interface
19:46:32 <AnMaster> (in efunge that is the case, and it can render to two formats, though one is slightly cheating: svg and raw (debug dump of all the nodes))
19:46:57 <Deewiant> Rendering once you have the data is trivial enough to do to any format (assuming you can render paths and dots)
19:46:59 <AnMaster> I still haven't made it save to a file though
19:47:56 <Deewiant> Getting the original image data to render is something that's only "cleanly" doable through the funge commands
19:48:23 -!- Gracenotes has quit (Ping timeout: 246 seconds).
19:48:34 <AnMaster> Deewiant, what do you mean with that?
19:49:20 <Deewiant> I mean that the only "clean" interface to getting a turtle-drawn picture is the funge commands, there's no nice turtle.moveforward(10) or turtle.turnright(45) or anything
19:50:11 <AnMaster> start/0, start_link/0, stop/0, get_info/0, clear/0, render/1, rotate/1, set_heading/1, jump/1, move/1, set_bg_colour/1, set_pen_colour/1, set_pen_state/1]).
19:50:19 <AnMaster> err ignore that ]). at the end
19:50:20 <AnMaster> anyway
19:50:30 <AnMaster> that is the api for efunge_turtle.erl
19:51:00 <Deewiant> I have hardly any API, just a few structs and then the functions defining the funge commands
19:51:19 <AnMaster> Deewiant, even in cfunge I mostly have separate functions for it, though not completely
19:51:24 <Deewiant> A few helpers do exist which could be part of an API if there were one
19:51:28 <AnMaster> it would require some work to pick it out
19:51:34 <AnMaster> but not much
19:51:35 -!- scarf has quit (Remote host closed the connection).
19:51:58 <AnMaster> Deewiant, and render returns an iolist
19:52:27 <AnMaster> (erlang data type of mixed, possibly deep, cons list containing mixed binaries and cons-style strings)
19:53:00 <AnMaster> (since the file and console io routines can work with this it is common for purposes where you expect it to go to IO only)
19:53:11 <AnMaster> (no need to flattern it in any sort of nice way)
19:55:24 <AnMaster> btw an idea for an interesting bitmap format: start with the middle pixel, then the one above it, then the one left of that
19:55:28 <AnMaster> then one down
19:55:30 <AnMaster> and so on
19:55:33 <AnMaster> in a spiral
19:56:37 <AnMaster> a nice property is that even if the image is cut off somewhere near the middle you would still get the center of the image where the most interesting things usually are
19:57:02 <AnMaster> cpressey, Deewiant: opinions?
19:57:53 <AnMaster> for non-square pictures you could just skip over the parts outside (would require a header with dimensions then)
19:58:32 <cpressey> Yes, it has a nice streamableness to it
19:58:42 <AnMaster> cpressey, har
19:58:47 <AnMaster> well actually
19:58:48 <AnMaster> it does
19:59:25 <AnMaster> so basically like:
19:59:27 <AnMaster> v<<<<<
19:59:27 <AnMaster> vv<<<^
19:59:27 <AnMaster> vvv<^^
19:59:27 <AnMaster> vvv^^^
19:59:27 <AnMaster> vv>>^^
19:59:28 <AnMaster> v>>>>^
19:59:32 <AnMaster> >...
19:59:32 <cpressey> If you have a "not really a part of the picture" color, you could do non-square pictures without a header (run-length encoding the pixels would help here)
20:00:05 <cpressey> Hell, you could do arbitrarily-shaped pictures with that "color" :)
20:00:17 <AnMaster> cpressey, yes basically like alpha right?
20:00:26 <AnMaster> :P
20:00:50 <AnMaster> cpressey, anyway, sure you could have an alpha channel or whatever
20:00:53 <cpressey> I guess, with the additional implication that "you can just discard this part of the picture after it's done"
20:00:59 <AnMaster> hm
20:01:06 <cpressey> as opposed to "I want a transparent border" or something
20:01:13 <AnMaster> right
20:01:31 <cpressey> But yeah, very similar to alpha otherwise.
20:01:34 <AnMaster> cpressey, would require removing one specific shade or adding one more bit/byte
20:02:02 <AnMaster> cpressey, I imagine one would use 16-bit integers per channel here
20:02:12 <AnMaster> or 8 bits at the very least
20:02:25 <cpressey> OR, you could embed commands to clip the existing image -- and additional pixels should flow around the new clipped region.
20:02:39 <AnMaster> 32-bit floating point per channel is kind of heavy (I have dealt with HDR, I know this)
20:02:45 <cpressey> You could stream entire slideshows, in a strange manner, if you went that way
20:02:58 <AnMaster> cpressey, how?
20:03:18 <cpressey> stream a spiral, clip it to 0x0, stream another spiral, clip it...
20:03:25 <AnMaster> oh I see
20:03:29 <AnMaster> hm
20:03:46 <AnMaster> cpressey, I wasn't thinking of the streaming aspect of it before
20:03:52 <AnMaster> but that is interesting indeed
20:04:08 <AnMaster> cpressey, I wonder how well it would compress though
20:04:16 <cpressey> I don't like the idea of embedding a "command" as much
20:04:34 <AnMaster> cpressey, you could use embedded befunge ;)
20:04:49 <AnMaster> would fit the 2D nature
20:04:55 <cpressey> Well, RLE is probably the simplest kind of compression you could do
20:04:58 <cpressey> Har
20:05:18 <AnMaster> cpressey, I was thinking of "how well will deflate work on this
20:05:34 <AnMaster> or such
20:10:52 <AnMaster> Deewiant, do you know if you can set r of a circle using css in svg?
20:10:56 <AnMaster> that would save quite a lot
20:11:17 <Deewiant> Yes, and no you can't.
20:11:29 <Deewiant> I remember you asking me about this a year+ ago too ;-P
20:12:15 <AnMaster> ah
20:24:56 <fizzie> "Triton cluster has 112 compute nodes. Each of them has two 6-core "AMD Opteron 2435" CPUs, which corresponds to total of 1344 cores." Yay, more university-internal computational resources.
20:25:35 <AnMaster> fizzie, you have access to that?
20:25:46 <AnMaster> or will have rather
20:26:13 <AnMaster> with that you could build some nice models for fungot! ;P
20:26:13 <fungot> AnMaster: see? i like marle better than " princess,' the chosen time has come! he's strong and he's gonna thrash those monsters! yea! is it?
20:26:16 <fizzie> Yes. Though we have to share it with the physicists and the BECS ("Biomedical Engineering and Computational Science") people, so it'll probably be a bit crowded.
20:27:00 <AnMaster> just pushed TURT updates to cfunge and the new TURT for efunge
20:27:29 <AnMaster> still some TODO for the efunge one. Like compact colours and properly testing clear when pen is down
20:28:01 -!- adam_d has joined.
20:29:12 <AnMaster> Deewiant, btw isn't black the default colour of paths and circles?
20:29:22 <AnMaster> (assuming no css overrides)
20:29:29 <Deewiant> There is no defined default for anything
20:29:35 <AnMaster> ouch
20:29:44 <Deewiant> Or did you mean SVG?
20:29:49 <Deewiant> I don't know about SVG, that was about TURT
20:30:20 <cpressey> Words and phrases to use in specs! "Of course", "Generally", "Without a doubt", "Except for trivial cases", "Positive angle relative to east"
20:30:31 <Deewiant> :-D
20:32:01 <cpressey> I've learned my lesson -- unfortunately my newfound zest for precision will probably not be applied to Befunge anytime soon.
20:35:55 <cpressey> Maybe Befunge-111
20:36:13 <Deewiant> Ah, hey, speaking of inprecise specs
20:36:25 <Deewiant> cpressey: TOYS: B ('pair of shoes') pops two cells off the stack and pushes the result of a "butterfly" bit operation.
20:37:02 <Deewiant> I don't /think/ we've asked you what 'a "butterfly" bit operation' was supposed to be
20:37:26 <AnMaster> indeed
20:37:29 <AnMaster> I would like to know too
20:37:41 <Deewiant> We've asked a lot of people, but I don't think we've asked you ;-)
20:37:45 <AnMaster> since the only one we found doesn't work on that number of inputs iirc
20:37:57 <Deewiant> No, we've got the (a+b, a-b) one
20:38:12 <AnMaster> Deewiant, well yes, but that one was just copied from some other interpreter
20:38:14 <Deewiant> Reverse-engineered from !Befunge
20:38:18 <Deewiant> But also justified
20:38:20 <Wareya> hey
20:38:29 <AnMaster> Deewiant, oh?
20:39:01 <Deewiant> http://en.wikipedia.org/wiki/Butterfly_diagram
20:40:06 <cpressey> It was inspired by the mention in here: http://catseye.tc/projects/starw/doc/starw.html
20:40:15 <cpressey> But I have no idea why it has two inputs, or what that means.
20:40:16 <cpressey> Sorry.
20:40:18 -!- jcp has joined.
20:40:23 <Deewiant> heh
20:40:37 <cpressey> "Butterfly the bits of X, i.e., 11001100 becomes 10100101."
20:40:41 <Deewiant> FWIW I have no idea what that butterfly does either
20:40:42 <cpressey> Also a great spec.
20:40:49 <Deewiant> Yep :-)
20:41:16 <cpressey> http://en.wikipedia.org/wiki/Butterfly_%28disambiguation%29
20:41:31 <cpressey> ATM, "Butterfliies Eat Pants" is the current vandalism.
20:41:51 <Deewiant> >_<
20:41:58 <Wareya> DESU
20:42:22 <pikhq> Wareya: もっとです?
20:43:42 <cpressey> I think the 8-bit diagram in the Butterfly_diagram page might explain the *W butterfly operation
20:43:47 <Wareya> ?
20:43:51 <cpressey> Or not
20:44:27 <AnMaster> cpressey, it looks like it tries to distribute those one-bits symmetrically?
20:44:36 <AnMaster> according to a pleasing pattern perhaps
20:44:59 <cpressey> That's as good as anything I can come up with :)
20:45:39 <AnMaster> cpressey, note that the two identical nibbles (separated with space): 1100 1100 becomes 1010 0101
20:45:53 <AnMaster> patterns to note:
20:46:02 <AnMaster> identical nibbles in input
20:46:15 <AnMaster> symmetrical output byte
20:46:32 <Wareya> If you change directions in my language, you can change 1100 to 0011 or to 1000 if you're not careful!
20:46:33 <AnMaster> mirror nibbles (follows from the previous one though)
20:46:46 <AnMaster> every other bit is one in each nibble
20:47:04 <AnMaster> the only place with two identical bits is where the nibbles join up
20:47:40 <AnMaster> this is clearly very significant for, uh... significant reasons!
20:48:03 <AnMaster> (of great significance of course)
20:48:15 <AnMaster> it should also be noted that the sign bit was *not* changed
20:48:17 <AnMaster> again very important
20:48:18 <cpressey> I think it's this
20:48:30 <AnMaster> cpressey, ?
20:48:33 <cpressey> first 1100 -> 1x1x0x0x
20:48:42 <cpressey> second 1100 -> x0x0x1x1
20:48:47 <AnMaster> cpressey, what are those x?
20:48:49 <cpressey> (second is like first just mirrored)
20:49:00 <cpressey> x means "use the bit from the other half"
20:49:14 <AnMaster> so
20:49:18 <AnMaster> then what
20:49:26 <AnMaster> oh wait
20:49:28 <cpressey> So if you combin 1x1x0x0x and x0x0x1x1 you get: 10100101
20:49:43 <AnMaster> cpressey, ah interesting. You know this would have been trivial in intercal I think
20:49:49 <AnMaster> which is kind of amazing
20:50:19 <cpressey> So, there's your answer, I think. For two inputs, just treat each like the nibbles in *W
20:50:55 <AnMaster> cpressey, but then the answer is twice the number of bits of the funge implementations?
20:51:05 <cpressey> :D
20:51:08 <AnMaster> s/s\?/\?/
20:51:20 <AnMaster> cpressey, anyway it doesn't work out
20:51:40 <AnMaster> oh wait
20:51:44 <AnMaster> just push two separate cells
20:51:53 <AnMaster> one with the upper 64 bits and one with the lower 64 bits
20:51:58 <cpressey> Sure!
20:52:01 <AnMaster> of course this breaks down for bignum
20:52:02 <AnMaster> -_-
20:52:10 <cpressey> Since the spec doesn't say how many result values there should be for B
20:52:44 <AnMaster> cpressey, but it is impossible in a bignum funge.
20:53:06 * AnMaster mandates a "bignum considerations" section after the "security considerations" for future fingerprints
20:53:16 <AnMaster> cpressey, want to see the ATHR spec btw?
20:53:33 <AnMaster> it is somewhat in a flux
20:53:37 <cpressey> As I've mentioned, Funge, like C, just doesn't do bignum.
20:53:44 <AnMaster> due to trying to figure out what is feasible
20:53:45 <cpressey> Sure.
20:53:50 <Wareya> you can emulate bignums in C
20:53:52 <AnMaster> cpressey, and I declare that wrong. Becuase it does
20:53:53 <AnMaster> :)
20:54:26 <cpressey> "do bignum" => "cleanly support bignums as a primitive type"
20:54:35 <AnMaster> cpressey, yep
20:54:39 <AnMaster> and it works mostly
20:54:45 <AnMaster> cpressey, anyway http://sprunge.us/icgB
20:54:53 <cpressey> Because both languages define a MAXSIZE for integers.
20:54:54 <AnMaster> and it is somewhat in flux due to various reasons
20:54:58 <AnMaster> cpressey, -1
20:55:01 <AnMaster> I return -1
20:55:04 <AnMaster> for that y thing
20:55:59 <AnMaster> cpressey, at least be happy I don't insist on doing a balanced ternary bignum funge!
20:58:51 <cpressey> ATHR looks pretty good, I like the books.
20:59:13 -!- gm|lap has joined.
20:59:16 <AnMaster> cpressey, it is also rather well specced especially how it interacts with other known feral fingerprints
20:59:35 <AnMaster> (especially the RCS ones which are infamously underspecced in general)
21:00:19 <AnMaster> of course, I refuse to even try to figure out how it works with TRDS
21:00:48 <AnMaster> since it is bound to cause issues when you time travel and have async threads
21:03:24 <cpressey> My head hurts.
21:04:08 <AnMaster> cpressey, from TRDS alone or from ATHR + TRDS?
21:04:12 <AnMaster> The implementation shall detect deadlocks (in a reasonably timely manner) when
21:04:12 <AnMaster> two IIPC operations are waiting on each other and break them by making one of
21:04:12 <charlls> is it just me, or the link for downloading verisoft is dead? http://cm.bell-labs.com/who/god/verisoft/files.html
21:04:12 <AnMaster> the blocking threads reverse.
21:04:16 <AnMaster> added that paragraph
21:04:29 <cpressey> >From all of it.
21:05:03 <AnMaster> cpressey, what download link? Somewhere on that page?
21:05:24 <cpressey> AnMaster: you mean charlls?
21:05:25 <charlls> yes
21:05:34 <AnMaster> oh
21:05:36 <AnMaster> right I did
21:05:45 <AnMaster> charlls, indeed it seems to be dead
21:05:52 <AnMaster> charlls, but look that page mentions .Z
21:05:54 <AnMaster> it is OLD
21:06:08 <AnMaster> and "http://www.gnu.ai.mit.edu/home.html."
21:06:10 <AnMaster> wth :)
21:06:13 <charlls> indeed
21:07:00 -!- jcp has quit (Remote host closed the connection).
21:07:08 <charlls> do you know other model checking tools for c++? i've found inspect which seems somewhat mantained and ongoing but i'm not sure how to use it for lock-free primitives (cas and ll-sc)
21:07:18 <charlls> c/c++ i meant, c is fine too
21:07:38 <AnMaster> charlls, I have no clue
21:07:49 <AnMaster> charlls, I use a message passing language when I need to do threads
21:07:51 <AnMaster> such as erlang
21:08:00 <AnMaster> I refuse to touch pthreads directly
21:08:04 <oerjan> !scramble scramble
21:08:15 <AnMaster> is egobot here?
21:08:20 <AnMaster> ^scramble scramble
21:08:20 <fungot> srmlebac
21:08:26 <AnMaster> oerjan, or did you mean fungot?
21:08:27 <fungot> AnMaster: we must do it to save you! who the heck are you?! c'mon!!
21:08:33 <AnMaster> ^scramble srmlebac
21:08:34 <fungot> smeacblr
21:08:39 <AnMaster> ^scramble smeacblr
21:08:40 <fungot> seclrbam
21:08:42 <oerjan> !unscramble 11001100
21:08:44 <AnMaster> ^scramble seclrbam
21:08:45 <fungot> scramble
21:09:03 <AnMaster> so at least for "scramble" it has a short period
21:09:05 <AnMaster> oerjan, ...
21:09:06 <oerjan> oh right
21:09:10 <oerjan> ^unscramble 11001100
21:09:11 <fungot> 10100101
21:09:15 <oerjan> yay!
21:09:16 <AnMaster> wow
21:09:20 <AnMaster> cpressey, ^
21:09:27 <AnMaster> oerjan, what is the algorithm used there?
21:09:33 <AnMaster> ^show scramble
21:09:34 <fungot> >>,[>,]<[<]>[.>>]<[>>]<2[.<2]
21:09:47 <oerjan> ^unscramble unscramble
21:09:47 <fungot> uenlsbcmra
21:09:57 <AnMaster> ^unscramble uenlsbcmra
21:09:58 <fungot> uaernmlcsb
21:10:01 <cpressey> Looks like butterflyification to me.
21:10:01 <AnMaster> ^unscramble uaernmlcsb
21:10:02 <fungot> ubasecrlnm
21:10:06 <AnMaster> ^unscramble ubasecrlnm
21:10:06 <fungot> umbnalsrec
21:10:10 <AnMaster> ^unscramble umbnalsrec
21:10:11 <fungot> ucmebrnsal
21:10:15 <AnMaster> ^unscramble ucmebrnsal
21:10:15 <fungot> ulcamsenbr
21:10:19 <AnMaster> ^unscramble ulcamsenbr
21:10:20 <fungot> urlbcnaems
21:10:25 <AnMaster> ^unscramble urlbcnaems
21:10:25 <fungot> usrmlebacn
21:10:30 <AnMaster> ^unscramble usrmlebacn
21:10:31 <fungot> unscramble
21:10:35 <AnMaster> longer period for that one
21:10:36 <AnMaster> hm
21:10:42 <AnMaster> ^scramble 12345678
21:10:43 <fungot> 13578642
21:10:53 <AnMaster> ^unscramble 12345678
21:10:54 <fungot> 18273645
21:11:00 <AnMaster> ^unscramble 123456789
21:11:01 <fungot> 192837465
21:11:08 <AnMaster> ^scramble 123456789
21:11:08 <fungot> 135798642
21:11:14 <AnMaster> ^scramble abc
21:11:14 <fungot> acb
21:11:19 <AnMaster> ^scramble abcd
21:11:20 <fungot> acdb
21:11:27 <AnMaster> cpressey, not quite I think
21:11:31 <oerjan> i think we calculated periods around when those commands were first added
21:11:40 <AnMaster> oerjan, ah
21:11:49 <AnMaster> ^list
21:11:51 <AnMaster> ^show
21:11:52 <fungot> echo reverb rev rot13 rev2 fib wc ul cho choo pow2 source help hw srmlebac uenlsbcmra scramble unscramble
21:11:54 <cpressey> ^unscramble 12345678
21:11:54 <fungot> 18273645
21:11:58 <AnMaster> ^show wc
21:11:58 <fungot> []
21:12:02 <AnMaster> what
21:12:04 <AnMaster> fizzie, ^
21:12:14 <AnMaster> ^show ul
21:12:15 <fungot> >,[>,]<[<]>[<+4[>-8<-]+>-[-7[-2[<+3[>-4<-]+>[<+4[>-5<-]+>[-11[-3[[-]<2[>[-]>+<2-]>>[<2+>>-]+<[->-<3[[>+<-]<]>>[>]]>[->[>]<[[>+<-]<]<2[[>+<-]<]<[[>+<-]<]>>[>]>[[[>]>+<2[<]>-]<2[[>+<-]<]>>[>]>[>]>[<2[<]<[<]<+>>[>]>[>]>-]<2[<]>]>>[[<+>-]>]<2[<]]]<[->>[>]<[[>>+<2-]<]<2[[>+<-]<]>+>[>]+5[>+8<-]+2>-[<+[<]>+[>]<-]]>]<[->>[[<2+>>-]>]<3[[>+<-]<]]>]<[-<[[<]>.[-]>[[<+>-]>]>>[[<+>-]>]<2[<]<2]>>>[[<+>-]>]<2[<]<]>]<[->>[>]<[[>+<-]<]<2[>>>>[>]
21:12:21 <cpressey> 1x2x3x4x, x8x7x6x5
21:12:22 <AnMaster> well that one is cut short
21:12:37 <fizzie> It's also not used.
21:12:46 <fizzie> I don't know what that wc is about.
21:12:52 <fizzie> It doesn't look very worky.
21:12:56 <fizzie> ^wc foo bar baz
21:12:56 <AnMaster> fizzie, ^ul isn't used?
21:13:08 <AnMaster> what then is it for
21:13:26 <cpressey> ^show choo
21:13:26 <fungot> >,[>,]+32[<]>[[.>]<[<]>[-]>]
21:13:28 <AnMaster> ^show cho
21:13:29 <fungot> >,[>,]<[<]>[[.>]<[<]>[-]>]
21:13:33 <AnMaster> ^cho test
21:13:35 <fungot> testeststt
21:13:38 <fizzie> I mean that brainfuck code is just a leftover from time before Underload was a directly supported language by fungot.
21:13:38 <AnMaster> ^choo test
21:13:38 <cpressey> ^choo test
21:13:39 <fungot> fizzie: i see. you know, i really care... a time portal? what in the...! ozzie's stumped! it's time you jumped off this mortal coil...
21:13:39 <fungot> test est st t
21:13:39 <fungot> test est st t
21:13:43 <AnMaster> fizzie, ah
21:14:00 <AnMaster> ^pow2 test
21:14:01 <fungot> 1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 65536 131072 262144 524288 1048576 2097152 4194304 8388608 16777216 33554432 67108864 134217728 268435456 536870912 1073741824 2147483648 42949672 ...
21:14:05 <AnMaster> eh?
21:14:09 <AnMaster> ^show pow2
21:14:09 <fizzie> That one doesn't take any inputs.
21:14:09 <fungot> +2[[<+7[-<+7>]>[-<+<+>>]<[->+<]<-2.[-]<]+4[->+8<]>.[-]>>[-[>+2<-[>+2<-[>+2<-[>+2<-[>-8>+>[->+>+<2]+>>[<2->>[-]]<2[>+<-]>[-<+>]<4-[>+2<-[>+2<-[>+2<-[>+2<[-]]]]]]]]]]<[->+<]>+>[-<+>]>>]<3]
21:14:12 <AnMaster> fizzie, right
21:14:16 <fizzie> It just outputs powers of two.
21:14:17 <AnMaster> ^show source
21:14:18 <fungot> (http://git.zem.fi/fungot/blob/HEAD:/fungot.b98)S
21:14:23 <AnMaster> ^show help
21:14:23 <fungot> (^<lang> <code>; ^def <command> <lang> <code>; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool)S
21:14:34 <AnMaster> ^show show
21:14:38 <AnMaster> aww
21:14:43 <AnMaster> ^show hw
21:14:44 <fungot> >+9[<+8>-]<.>+7[<+4>-]<+.+7..+3.>>>+8[<+4>-]<.>>>+10[<+9>-]<-3.<4.+3.-6.-8.>>+.
21:14:48 <AnMaster> ^hw
21:14:49 <fungot> Hello World!
21:15:13 <AnMaster> ^fib
21:15:14 <fungot> ...
21:15:38 <AnMaster> cpressey, what is your opinion on the coding style in http://git.zem.fi/fungot/blob/HEAD:/fungot.b98 ;)
21:15:38 <fungot> AnMaster: frog will do. the king fought the mystics over 400 long years. when will it be the reptites, or you silly apes who end up ruling the world? yes, i'd have done something very brave! he's probably up north, to guardia!!! let's toast our land! now we'll have some peace! magus is a tad on the spooky side. our only hope.
21:15:56 <fizzie> Should at some point fix that >>> bug too. It collapses multiple <<<s together, but not multiple >>>s.
21:16:53 -!- tombom_ has joined.
21:17:04 <cpressey> AnMaster: I have no strong feelings about it.
21:17:06 <AnMaster> fizzie, what was that triangle in the code for now again?
21:17:11 <AnMaster> fizzie, around line 157
21:18:10 <fizzie> Converts punctuation token indices to characters.
21:18:13 <cpressey> I'm just amazed the thing actually works.
21:18:25 <AnMaster> cpressey, well it uses the SOCK fingerprint for sockets of course
21:18:34 <fizzie> There's really no reason to have a triangle there, since a "comb-style" jump table would work as well.
21:18:56 -!- tombom has quit (Ping timeout: 240 seconds).
21:18:57 <AnMaster> fizzie, or a binary w tree?
21:19:13 <fizzie> Well, that too, but since it's a contiguous range, I think a jump table makes sense.
21:19:19 <fizzie> The letters above the triangle are comments, in fact.
21:19:22 <AnMaster> fizzie, a j table yes
21:19:22 <cpressey> It's also pretty.
21:19:37 <AnMaster> cpressey, have you looked at mycology source then?
21:19:44 <cpressey> I don't think so.
21:19:57 <fizzie> Mycology's a lot wider, it's not always easy to look at it.
21:20:14 <AnMaster> cpressey, http://sprunge.us/KcWN
21:20:16 <AnMaster> and what fizzie said
21:20:22 <AnMaster> also contains a literal null byte
21:20:25 <AnMaster> to test that
21:20:52 <cpressey> Christ.
21:21:05 <AnMaster> cpressey, the upper corner is a 93 test suite
21:21:10 <AnMaster> the rest is for 98
21:21:23 <AnMaster> you can see it is somewhat more compact up there
21:21:27 <AnMaster> cpressey, also Deewiant wrote it
21:21:30 <AnMaster> also,*
21:21:53 <AnMaster> I fail to see how he can maintain it :)
21:21:59 <AnMaster> I'm happy he does though
21:22:40 <AnMaster> cpressey, I love the vertical strings in it
21:22:42 -!- Phantom_Hoover has joined.
21:22:49 <AnMaster> and how some stuff is used differently in different directions
21:23:13 <Phantom_Hoover> INTERCAL is not IWBTG. Malbolge is.
21:23:38 <AnMaster> IWBTG?
21:23:55 <Phantom_Hoover> I Wanna Be The Guy.
21:24:04 <Phantom_Hoover> Insanely hard computer game.
21:24:47 <AnMaster> mhm
21:25:07 <Phantom_Hoover> Per the topic.
21:25:23 <AnMaster> oh hadn't noticed
21:25:33 -!- AnMaster has set topic: 0 days since last topic change | <dtsund> For those who don't know: INTERCAL is basically the I Wanna Be The Guy of programming languages. Not useful for anything serious, but pretty funny when viewed from the outside. | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
21:26:04 <AnMaster> ooh
21:26:09 <Deewiant> Mycology is 180 columns wide
21:26:19 <Phantom_Hoover> Mycology?
21:26:32 <Deewiant> Probably matches what fits in UltraEdit-32, 1600x1200, Andale Mono 10pt or something
21:26:36 <AnMaster> http://sprunge.us/KcWN
21:26:58 <AnMaster> Phantom_Hoover, or official source: http://users.tkk.fi/~mniemenm/befunge/mycology.html
21:27:11 <Deewiant> Or permalink: http://iki.fi/matti.niemenmaa/befunge/mycology.html
21:27:37 <AnMaster> Deewiant, I just copy from top of browser. Always. At all sites.
21:27:52 <Deewiant> Well then you're an idiot
21:27:57 <AnMaster> Deewiant, why?
21:28:06 <AnMaster> it should work. It makes sense if it works
21:28:08 <AnMaster> and it is easiest
21:28:09 <Deewiant> Because that's not always the best link to use
21:28:20 <AnMaster> Deewiant, then the wrong link is displayed at the top
21:28:31 <Deewiant> Not all URLs are permanent
21:28:35 <cpressey> "if you must use FBBI"
21:28:35 <cpressey> heh
21:29:05 <cpressey> I should *probably* apply those patches. Someday.
21:29:31 <cpressey> Or, Befunge-111. Ha.
21:29:37 <Deewiant> Given that one of them is by you I'm surprised it isn't applied :-P
21:29:45 <AnMaster> cpressey, befunge-111?
21:29:48 <AnMaster> oh that
21:30:03 <AnMaster> cpressey, well I was the guy working on s/108/109/
21:30:12 <AnMaster> but well, few people seemed to care
21:30:55 <cpressey> Well, probably the number of people who do care is greater than the number who seem to care.
21:31:16 <cpressey> I would never have guessed that there would be that many Befunge-98 implementations out there.
21:31:19 <AnMaster> I suggest a technical memorandum clarifying k, fixing t behaviour (so it doesn't spawn infinite threads, no one implements the spec to the letter here), and clarifying out-of-order fingerprint unloading
21:31:44 <AnMaster> plus probably some other minor points
21:31:48 <Deewiant> I suggest doing something about every UNDEF in Mycology ;-P
21:31:57 <AnMaster> Deewiant, well, possibly
21:32:07 -!- Phantom_Hoover has quit (*.net *.split).
21:32:07 -!- adam_d has quit (*.net *.split).
21:32:11 <AnMaster> Deewiant, but most of them are in RCS fingerprints
21:32:32 -!- adam_d has joined.
21:32:37 -!- Phantom_Hoover has joined.
21:32:47 <AnMaster> cpressey, also define k on k
21:32:51 <Deewiant> Well yes, obviously not those ones
21:32:52 <AnMaster> which Deewiant refuses to touch
21:33:01 <AnMaster> (I worked it out for cfunge)
21:33:03 <Deewiant> I see k on k as perfectly well defined :-P
21:33:07 <AnMaster> Deewiant, oh?
21:33:12 <Deewiant> You worked out your own view on the matter
21:33:19 <Deewiant> I think mine is what CCBI implements :-P
21:33:27 <AnMaster> Deewiant, you don't handle k on k is what you said before
21:33:36 <Deewiant> I don't special-case it
21:33:40 <Deewiant> The spec doesn't; why should I
21:33:51 <cpressey> Not too thrilled about the idea of an "addendum". There needs to be a new spec.
21:33:54 <AnMaster> which means it ends up in a very very strange way iirc
21:34:06 <AnMaster> cpressey, well corrigendum then
21:34:26 <AnMaster> cpressey, that can be applied with reasonable effort to existing implementations
21:34:31 <Deewiant> "Very very strange" - it's exactly what the spec defines :-P
21:34:35 <AnMaster> while 111 are for more radical changes
21:34:44 <Deewiant> Sure, you can argue that the spec /should/ special-case k on k
21:34:47 <AnMaster> cpressey, see what I mean?
21:34:58 <cpressey> AnMaster: No. Or, maybe I do, and I disagree.
21:34:59 <AnMaster> Deewiant, k on k used to *crash* ccbi iirc
21:35:00 <Deewiant> But since it doesn't, I don't think any conforming interpreter should either
21:35:08 <Deewiant> AnMaster: You misrecall
21:35:14 <AnMaster> Deewiant, maybe it was cfunge then
21:35:15 <Deewiant> It used to crash cfunge, maybe ;-P
21:35:23 <AnMaster> I know cfunge crashed on 3k@
21:35:27 <AnMaster> at one point
21:35:44 <Deewiant> I recall that
21:35:46 <AnMaster> (for t build only)
21:35:48 <cpressey> The problem is, and has been since 1999, that there are so many directions Funge could go "post-98". And, no one seemed interested.
21:36:00 <AnMaster> cpressey, I don't know what those directions are
21:36:12 <AnMaster> cpressey, but if I have anything to say there should be some room for bignum out there
21:36:25 <Deewiant> Another minor nit in the spec is the "team number" that y pushes
21:36:32 <AnMaster> ooh yes
21:36:35 <Deewiant> "Only significant for NetFunge, BeGlad, and the like."
21:36:40 <AnMaster> maybe cpressey can explain wth it is
21:36:44 <AnMaster> or was supposed to be
21:36:45 <cpressey> AnMaster: Well, just consider how many things could be taken out of the language because someone doesn't like them.
21:36:54 <Deewiant> AnMaster: I thought it was mentioned in those old mailing list logs?
21:36:58 <cpressey> Or how many features could be added in the name of "makes it harder to compile".
21:37:16 <AnMaster> cpressey, some time ago we discussed 98s in this channel. Which is befunge98 but with all the commands also in befunge93 taken away
21:37:26 <AnMaster> it resulted in a very strange and interesting language
21:37:27 <cpressey> "team number" was for BeGlad, which was supposed to be Core Wars in Befunge
21:37:44 <AnMaster> at one point I suggested there should be a 80x25 hole in fungespace from origo
21:37:48 <AnMaster> but that was just insane
21:38:21 <AnMaster> cpressey, ah interesting. And NetFunge was similar?
21:38:35 <cpressey> Probably for NetFunge it would be a like a node ID or something.
21:38:49 <AnMaster> sounds like I could abuse that thing for ATHR then
21:38:50 <cpressey> But, that's the kind of thing that should be taken out. Should be in a fingerprint.
21:38:58 <AnMaster> cpressey, true
21:39:01 <AnMaster> like ATHR
21:39:03 <cpressey> But, i never liked the fingerprint system much.
21:39:08 <gm|lap> i originally made TheSquare to be a sort of combat game of some sort
21:39:14 <AnMaster> cpressey, true they should use URIs
21:39:16 <AnMaster> ;)
21:39:21 <AnMaster> that was one plan for 109
21:39:26 <AnMaster> and I think it was the wrong thing to do
21:39:34 <AnMaster> collisions aren't that common
21:39:50 <AnMaster> cpressey, still befunge without loadable extensions would mean the end to things like fungot and ATHR
21:39:51 <fungot> AnMaster: you! take! we find! you are crono. why not? then you should leave quickly!
21:40:09 <AnMaster> fungot, now where was that phrase from.... I remember it from ct...
21:40:09 <fungot> AnMaster: that no one was allowed to use the crane, enter any two of these letters, a b y.
21:40:36 <cpressey> AnMaster: Well, the main thing I didn't like about it was that there was no real way to make it portable. But that's not a good reason.
21:40:51 <cpressey> I think handprints are worse, and should just be thrown out.
21:41:01 <AnMaster> cpressey, let IANA give out the numbers
21:41:01 <Deewiant> What do you mean by "portable", exactly?
21:41:11 <cpressey> maybe have a handprint-revealing-fingerprint, at best.
21:41:12 <AnMaster> $ ./cfunge ../mycology/mycology.b98 | grep ^UNDEF | wc -l
21:41:12 <AnMaster> 140
21:41:13 <AnMaster> $ ./cfunge -F ../mycology/mycology.b98 | grep ^UNDEF | wc -l
21:41:13 <AnMaster> 8
21:41:16 <AnMaster> Deewiant, ^
21:41:26 <AnMaster> -F is "disable all fingerprints"
21:41:26 <Deewiant> Handprints are fairly useless, yes
21:41:43 <cpressey> Deewiant: Well, you can't really package them, into say a .so
21:42:06 <Deewiant> Why not?
21:42:14 <AnMaster> cpressey, fingerprints could in theory be loaded dynamically I guess but the speed penalties would be horrible
21:42:23 <gm|lap> i recall k was just an utter pain in the arse
21:42:28 <AnMaster> cpressey, I would refuse to do it for cfunge since cfunge is all about uttermost speed
21:42:31 <Deewiant> Just the fact that there are different interpreters?
21:42:41 <cpressey> Deewiant: Well you CAN, but then, any implementation that doesn't easily support .so's, doesn't easily support fingerprint-packages.
21:43:10 <cpressey> I suppose you could do all kinds of messing about with SWIG and such, for say a Python implementation.
21:43:33 <Deewiant> Yes, there's no way of implementing a fingerprint once and have it work for all implementations
21:43:34 <cpressey> But, yes, I agree this can easily be outside the bounds of the language spec.
21:43:40 <AnMaster> cpressey, I run mycology in around 0.040 seconds (wall clock)
21:43:44 <Deewiant> But I don't think that's necessary a problem
21:43:51 <cpressey> There could be a seperate module spec for modules that implement fingerprints, or something.
21:43:52 <AnMaster> (measured with time builtin in bash)
21:43:59 <cpressey> Or multiple of those.
21:44:04 <AnMaster> <cpressey> Deewiant: Well you CAN, but then, any implementation that doesn't easily support .so's, doesn't easily support fingerprint-packages.
21:44:06 <Deewiant> Since fingerprints are sometimes so feral that it's not reasonable to do it anyway
21:44:13 <AnMaster> cpressey, how do you hook into the interpreter?
21:44:22 <AnMaster> cpressey, after all they have very different internal representations
21:44:33 <cpressey> AnMaster: Like I said, module spec.
21:45:00 <Deewiant> That'd probably tie implementations to some design choices that the current spec doesn't
21:45:01 <cpressey> Which is None Of My Business As Language Definer (or something like that.)
21:45:15 <AnMaster> cpressey, for cfunge the stack is a malloced chunk with a pointer to the top of it. It is grown one page at a time and never shrinks.
21:45:21 <cpressey> Deewiant: Only if they choose to follow it, which they wouldn't have to, to adhere to the language.
21:45:26 <AnMaster> cpressey, for efunge it is a erlang list with top of stack at the start of the list
21:45:36 <AnMaster> cpressey, no way those are even close to compatible internally
21:46:01 <AnMaster> cpressey, and funge space: a static array around 0,0 with a memory pool backed hash table for the rest (cfunge) or an ets table (efunge)
21:46:04 <cpressey> AnMaster: In principle, you could write an adapter to whatever interface the module system uses.
21:46:14 <cpressey> In principle.
21:46:21 <AnMaster> yeah in your dreams
21:46:24 <cpressey> There's no way I'd want to force that on any implementer.
21:46:38 <AnMaster> cpressey, what about that mini-funge thing
21:46:42 <AnMaster> with fingerprints in befunge itself
21:46:50 <cpressey> Well, now you see why I answered <Deewiant> Why not? the way I did :)
21:46:51 <AnMaster> of course works reasonably well for very tame fingerprints
21:47:16 <cpressey> AnMaster: I don't know what it is, but I have a secret project that sounds like it, but even better :)
21:47:29 <cpressey> and/or don't remember, if I did know once.
21:47:32 <AnMaster> cpressey, just try implementing TRDS in minifunge
21:47:48 <AnMaster> cpressey, here is the TRDS spec: http://rcfunge98.com/rcsfingers.html#TRDS
21:48:23 <AnMaster> cpressey, and here is an addenum: http://rcfunge98.com/trds.html
21:48:25 -!- sshc has quit (*.net *.split).
21:48:32 <gm|lap> AnMaster: ....far out.
21:48:40 <AnMaster> gm|lap, ?
21:48:50 <gm|lap> that's just... like... wrong
21:48:59 <AnMaster> gm|lap, what? TRDS?
21:49:00 <Deewiant> The easiest way of implementing TRDS in minifunge is implementing a Funge-98 interpreter in minifunge
21:49:04 <AnMaster> I didn't write it
21:49:09 <gm|lap> yeah
21:49:18 <AnMaster> Deewiant, exactly
21:49:33 <AnMaster> Deewiant, and ATHR you can't even do in minifunge
21:49:41 <cpressey> The secret project, FWIW, is to combine Mascarpone and Befunge -- define Befunge with a reflective meta-circular interpreter.
21:49:45 <AnMaster> because SOCK needs to be non-blocking w.r.t. other threads
21:49:47 <AnMaster> same for other IO
21:50:23 -!- sshc has joined.
21:50:24 <Deewiant> AnMaster: Sure you can: write minifunge which writes a Funge-98 interpreter in <any suitable language> to a file and then executes that
21:50:25 <AnMaster> a pitty scarf isn't here
21:50:34 <AnMaster> otherwise we could have suggested FTHR to him
21:50:38 <Deewiant> cpressey: That sounds quite scary
21:50:39 <AnMaster> (Feather for Befunge :D)
21:50:39 <cpressey> And actually the secret project was to be called "Beefgun" (an anagram of Befunge), not FWIW.
21:51:02 <AnMaster> Deewiant, but = is implementation defined!
21:51:10 <cpressey> What is Feather, exactly?
21:51:19 <Deewiant> AnMaster: So's minifunge :-P
21:51:19 <cpressey> I only heard scarf mention it once.
21:51:34 <AnMaster> cpressey, a language where you can rewrite the interpreter retroactively kind of
21:51:38 <AnMaster> I can't really explain it
21:51:50 <cpressey> "Retroactively" is scary, yeah.
21:52:10 <AnMaster> Deewiant, good point
21:52:31 <Phantom_Hoover> AnMaster: Not on the wiki.
21:52:45 <AnMaster> Phantom_Hoover, what isn't?
21:52:49 <AnMaster> feather?
21:52:51 <AnMaster> well that is known
21:52:55 <AnMaster> since the spec isn't finished
21:53:05 <AnMaster> ais/scarf is still working on working it out iirc
21:53:30 -!- sshc_ has joined.
21:53:59 <AnMaster> cpressey, anyway I think ais/scarf is up to the task
21:54:01 <cpressey> So what would the Befunge-111 spec need to address? Cleaning up ambiguities, specifying bignum behavior, throwing out useless crap like handprints and team numbers
21:54:05 <AnMaster> cpressey, after all he maintains C-intercal
21:54:12 <cpressey> I wish him luck.
21:54:29 <AnMaster> cpressey, and he wrote/is writing gcc-bf (bf backend for gcc)
21:54:40 <cpressey> I don't think Befunge-111 should add anything much to the language.
21:54:42 <AnMaster> which is done to a large part but quite untested and buggy still
21:55:09 <cpressey> The reason I wouldn't want it to just be an addendum is because it needs such an overhaul.
21:55:10 <AnMaster> cpressey, bignum is quite simple. You need a special value (such as -1) for cell size
21:55:36 <Deewiant> cpressey: If you're up to it, going through the Cat's Eye fingerprints would be nice too ;-)
21:55:58 <AnMaster> cpressey, and the rest that needs to be cleaned up for bignum is in fingerprints
21:56:09 <AnMaster> the core language works just fine once you deal with y
21:56:20 <AnMaster> s/ deal/'ve dealt/
21:56:35 <gm|lap> is befunge-109 out or not?
21:56:44 <cpressey> AnMaster: It still needs to be *specified*, less some program assume they can rely on there always being a fixed size, or something.
21:56:46 <Deewiant> There's the partial spec
21:56:57 <Deewiant> But no, it's not "out" as such
21:57:03 <AnMaster> cpressey, indeed
21:57:10 <AnMaster> not out indeed
21:57:17 <cpressey> Deewiant: I don't think I'm up for it, at least not as such.
21:57:38 <cpressey> Maybe TURT, since it seems popular (??!?)
21:58:02 <AnMaster> cpressey, s/popular/discussed since it is ambig and I have been implementing it again recently
21:58:04 <Deewiant> Not really popular, just hard to test automatically which is why it's always buggy ;-)
21:58:16 <AnMaster> and what Deewiant said
21:58:22 <cpressey> Yeah, OK.
21:58:39 <cpressey> Sigh.
21:58:58 <AnMaster> TOYS is quite nice but you need to reverse engineer large parts of it
21:59:00 <Deewiant> Of course, it's hard to say what exactly is "popular" when we're starting out with Befunge-98
21:59:01 <AnMaster> at least I had to
21:59:07 <Phantom_Hoover> On an unrelated tack, based on Safalra's method of evaluating the number of valid BF programs of length n, it would appear that a compression system could be worked out.
21:59:08 <Deewiant> AnMaster: Not really.
21:59:55 <Deewiant> One annoyance in TOYS is F and G's "pops a vector, then a value i" followed by "j groups of i cells each" <-- where did j come from?!
22:00:28 <AnMaster> yeah stuff like that
22:00:32 <Deewiant> Other than that, I don't think there's even any UNDEF stuff in TOYS, unless I misremember.
22:00:40 <AnMaster> Deewiant, butterfly
22:00:53 <Deewiant> Well yeah, but that's so-so
22:01:10 <Deewiant> If it weren't for the word "bit" in there I'd make it a non-undef at this point :-P
22:01:13 -!- Phantom_Hoover has quit (Quit: ChatZilla 0.9.86 [Firefox 3.5.8/20100214235838]).
22:01:45 <AnMaster> cpressey, to not break old programs those places where handprint and such were should be "reversed for backward compat/future reuse" or such
22:01:57 <AnMaster> otherwise offsets to y would need to be adjusted everywhere
22:02:01 <AnMaster> which would be a pain
22:02:20 <cpressey> AnMaster: So you think Befunge-111 should be 100% compatible with Befunge-98?
22:02:44 <cpressey> I agree that anything less could mean major rewrites for existing programs.
22:02:58 <AnMaster> cpressey, no, but something like "most programs should work just fine"
22:03:02 <cpressey> Then again, those programs can still be run under -98 implementations.
22:03:13 <AnMaster> like 93 does in 98 possibly with some non-SGML space emulation
22:03:23 <AnMaster> a few programs depend on stuff like f reflecting
22:03:32 <AnMaster> but we won't run into that, all instructions are in use after all
22:03:34 <gm|lap> -111 could really be a clarified / decrapped -98
22:03:50 <AnMaster> gm|lap, you forgot "bug fixed"
22:03:58 <AnMaster> since t in 98 as written in the spec doesn't work
22:04:12 <gm|lap> hmm
22:04:13 <cpressey> I'm going to have to read this "spec" of which you speak, someday.
22:04:16 <AnMaster> the new ip will there execute t on the first turn
22:04:25 <AnMaster> cpressey, ;P
22:04:38 <Deewiant> Yes, only writing something doesn't give a really good picture of it
22:04:43 <Deewiant> You need to read it as well
22:04:44 <AnMaster> true
22:04:47 <cpressey> I'm happy with breaking programs that rely on some of the fuxxier corners.
22:05:02 <Deewiant> As long as I don't have to rewrite all of Mycology
22:05:08 <gm|lap> TheSquare does concurrency by bouncing an IP backwards; however, i think you'd be best to go left/right
22:05:09 <AnMaster> cpressey, yes, but y offsets is not one of those for stuff like "elements on TOSS"
22:05:19 <AnMaster> which iirc is offset 21 or 23
22:05:22 <gm|lap> as a bounce back would imply that it's not supported
22:05:23 <AnMaster> don't remember exactly
22:05:31 <AnMaster> (for *be*funge that is)
22:05:42 <AnMaster> (I don't deal with other dimensionality normally)
22:05:50 <cpressey> Um, so
22:06:12 <gm|lap> hmm, actually...
22:06:12 <cpressey> yeah
22:06:14 <AnMaster> gm|lap, ?
22:06:18 <AnMaster> hm
22:06:23 <gm|lap> i think it should bounce back
22:06:29 <AnMaster> it should indeed bounce
22:06:31 <gm|lap> and send something forward
22:06:34 <AnMaster> since 1) you check it with t
22:06:36 <AnMaster> err
22:06:37 <AnMaster> with y
22:06:41 <cpressey> Unicode?
22:06:46 <AnMaster> 2) you can see if anything else came the other way
22:06:57 <AnMaster> cpressey, would be a pain for cfunge. fine for efunge
22:07:11 <Deewiant> The way I read the spec, Unicode is currently optional
22:07:15 <gm|lap> my main reason was that if one had Unefunge / Trefunge, it'd just be plain confusing
22:07:16 <AnMaster> cpressey, since cfunge takes every shortcut available for speed. Including mmap()ing to load files
22:07:18 <Deewiant> You're allowed to have it or not
22:07:24 <AnMaster> and what Deewiant said
22:07:33 <Deewiant> CCBI2 will have it as an option
22:07:44 <Deewiant> At least, if it's finished before Funge-111
22:07:54 <cpressey> I'm thinking more along the lines of 'stop using the word ASCII so damned much'.
22:07:55 <AnMaster> efunge currently does byte io for files and unicode code point IO for stdio
22:08:13 <AnMaster> this could be trivially changed (5-10 minutes of work at most)
22:08:18 <gm|lap> kleinefunge could be interesting =D
22:08:28 <Deewiant> cpressey: I don't think there are any egregious uses of ASCII
22:09:17 <AnMaster> cpressey, anyway, what about EBCDIC? :(
22:09:22 <cpressey> "However, a Funge-98 interpreter may also expose any number of proprietary instructions above ASCII 127 or below ASCII 0." -- internally, they shouldn't be thought of as ASCII, or even "characters" really, they're instructions.
22:09:51 <cpressey> Also, stack stack?
22:10:00 <AnMaster> I considered making 2^666 in efunge print "BIGNUM!"
22:10:04 <AnMaster> at one point
22:10:12 <Deewiant> What about the stack stack? It's actually useful
22:10:21 <AnMaster> yes stack stack is nice
22:10:27 <AnMaster> and Deewiant would hate if it went away
22:10:35 <AnMaster> I would miss it but not as badly
22:10:50 <gm|lap> -1 would be an amusing thing to have
22:10:52 <Deewiant> Would I miss it more?
22:10:57 <AnMaster> gm|lap, -1 what?
22:11:01 <cpressey> I'll just point out that it's equivalent to a single stack, plus a special marker that can be placed on the stack to partition it into sub-stacks.
22:11:03 <gm|lap> as an instruction index
22:11:05 <AnMaster> Deewiant, yeah I think so
22:11:13 <Deewiant> OK
22:11:27 <Deewiant> cpressey: That's an implementation detail
22:11:27 <AnMaster> cpressey, not quite, there is the storage offset. Also you can't optimise the way you suggested as well
22:11:39 <cpressey> Deewiant: True.
22:11:45 <AnMaster> cpressey, after all, I do memcpy between stacks when I can avoid reversing order
22:11:48 <cpressey> I don't recall storage offset, will look.
22:11:50 <AnMaster> :)
22:11:58 <AnMaster> wow you are rusty :)
22:12:02 <Deewiant> The storage offset isn't really related to stack stacks in any way
22:12:03 <AnMaster> (no offence meant)
22:12:13 <Deewiant> It's just coincidentally modified by the same commands that modify the stack stack
22:12:17 <AnMaster> true
22:12:29 <AnMaster> Deewiant, idea: storage delta offset
22:12:35 <cpressey> Yeah, i've only been busy designing like two dozen other !@#$%^&*ing languages since 1998
22:12:39 <Deewiant> AnMaster: Y'wot?
22:12:55 <gm|lap> damn i used to have the catseye rss feed
22:12:56 <AnMaster> Deewiant, that way you can not just move it, you can mirror it and what not
22:12:57 <Deewiant> cpressey: Yeah, your time would've been better spent memorizing the Funge-98 spec as you wrote it
22:13:08 <cpressey> Deewiant: Damn straight.
22:13:20 <AnMaster> Deewiant, exactly ;P
22:13:25 <Deewiant> AnMaster: How can you "mirror" the value put by p?
22:14:07 <AnMaster> Deewiant, well for bignum compat it would have to be around the 0 axis, which is now moved thanks to the storage offset
22:14:45 <cpressey> One problem is that I find new designs much more interesting, so I have a hard time not thinking about them when looking at something like this.
22:14:48 <AnMaster> so 0,2 with a storage delta of -1,-1 gives you the position -2 relative that offset
22:14:54 <AnMaster> Deewiant, see what I mean?
22:15:04 <Deewiant> AnMaster: What's the point? Why not just modify the offset directly?
22:15:07 <AnMaster> if only I could make a nice animation showing what I meant
22:15:11 <AnMaster> Deewiant, no but it is mirrored
22:15:16 <gm|lap> burro was interesting IIRC
22:15:22 <AnMaster> so higher value is in the other direction
22:15:40 <Deewiant> AnMaster: So add the negation of the value to the offset
22:15:45 <AnMaster> Deewiant, imagine you rotate befunge along the X axis 180 degrees
22:15:49 <gm|lap> also this seems kinda interesting: http://www3.sympatico.ca/mt0000/bicom/bicom.html
22:16:02 <AnMaster> Deewiant, multiply the value with the storage delta rather
22:16:19 <AnMaster> then do it relative storage offset
22:16:23 <AnMaster> Deewiant, see what I mean now?
22:16:34 <Deewiant> AnMaster: So it modifies the value, not the position, now?
22:16:48 <AnMaster> Deewiant, yes, it is an additional value to storage offset
22:16:51 <AnMaster> both would co-exist
22:16:57 <cpressey> gm|lap: Burro is broken, but I have a fix for it... slowly underway.
22:17:22 <gm|lap> hmmkay
22:17:24 <Deewiant> AnMaster: So it's just a multiplier that is applied to p/g values?
22:18:25 <AnMaster> <gm|lap> also this seems kinda interesting: http://www3.sympatico.ca/mt0000/bicom/bicom.html <-- how can that work and still be a compression?
22:18:31 <gm|lap> wrt bicom: wow crap, a c++ program that actually compiles properly!
22:18:36 <AnMaster> some inputs must grow instead of shrink
22:18:39 <cpressey> AnMaster: I was thinking that vectors would be atomic objects (pop 2 vectors off stack, add them and push resulting vector, etc)
22:18:51 <AnMaster> Deewiant, hm yes
22:18:58 <gm|lap> AnMaster: same deal happens with most compressions
22:19:01 <gm|lap> actually
22:19:03 <gm|lap> all compressions
22:19:04 <AnMaster> Deewiant, should be more like able to skew stuff. Maybe we should have a translation matrix instead
22:19:10 <AnMaster> or rotation matrix or something
22:19:12 <gm|lap> except for cat compression, where the input is the same as the output
22:19:14 <AnMaster> for really fancy stuff
22:19:42 <AnMaster> cpressey, I considered tagged tupes in funge-space/on stack at one point
22:19:44 <gm|lap> i think the idea would be to split it into blocks and make sure that they remap correctly
22:19:56 <AnMaster> cpressey, for implementing FPSP/FPDP (floating point support)
22:20:12 <gm|lap> wait... it's not really that bijective :/
22:20:15 <AnMaster> cpressey, but erlang has sucky floating point semantics for NaN/inf so I decided not to
22:20:27 <gm|lap> -rwxr-xr-x 1 ben ben 83742 2010-02-24 11:18 bc
22:20:27 <gm|lap> -rw-r--r-- 1 ben ben 33528 2010-02-24 11:20 bc.bc
22:20:27 <gm|lap> -rw-r--r-- 1 ben ben 33941 2010-02-24 11:20 bc.bc.bc
22:20:27 <gm|lap> -rw-r--r-- 1 ben ben 34369 2010-02-24 11:20 bc.bc.bc.bc
22:20:41 <AnMaster> gm|lap, what?
22:20:41 <gm|lap> ohthatispoopy.
22:20:52 <gm|lap> USAGE: bc [-d] [-p passwd] <infile> <outfile>
22:20:52 <AnMaster> oh I guess there is bc/unbc
22:20:52 <gm|lap> -d: decompress (default is compress)
22:21:00 <AnMaster> right
22:21:06 <AnMaster> gm|lap, so not same function both ways
22:21:09 <gm|lap> i think it might also use LZ
22:21:39 <gm|lap> it uses arithmetic coding AFAIK
22:22:13 <gm|lap> i might try a truly bijective audio compression scheme
22:22:47 <gm|lap> just treat everything as an elias gamma code or something like that
22:22:57 <gm|lap> and then remap where appropriate or something
22:23:03 <gm|lap> ...that's not going to work, is it? :/
22:23:20 <gm|lap> plan B: pair some chars together in a special way
22:23:36 <gm|lap> it'd be like a samplewise huffman
22:23:46 <AnMaster> mhm
22:23:57 <gm|lap> probably catch a delta of it or something
22:24:18 <AnMaster> cpressey, anyway vectors being atomic would be annoying for cfunge that depends on the plain integer nature of funge space
22:24:33 <AnMaster> cpressey, in the inline SSE asm for example (there are C fallbacks, but still)
22:25:30 <cpressey> AnMaster: Yeah, it would be a different language.
22:25:44 <AnMaster> and are you scared of cfunge yet?
22:25:48 <AnMaster> ;P
22:25:53 <cpressey> Well, not really...
22:26:27 <cpressey> I am starting to have some ideas for befunge-111, which is scaring me.
22:27:00 <AnMaster> cpressey, mmap(), posix_madvise(), inline SSE asm, regparm calling convention on 32-bit x86 (using gcc __attribute__s), static array for the most commonly used funge space area around origo and hash library to fill out the rest
22:27:03 <AnMaster> the list can go on
22:27:11 <AnMaster> with various stack-stack optimisations
22:27:21 <AnMaster> oh and y that is a lookup table for low fixed-offset values
22:27:24 <cpressey> Whatever gets you through the night :)
22:27:32 <AnMaster> cpressey, "whatever makes me fastest" in cfunge
22:27:37 <cpressey> y is executed so rarely...
22:27:43 <AnMaster> cpressey, not in mycology
22:27:50 <cpressey> Well, true
22:27:51 <AnMaster> which is one of the things I speed test against
22:28:20 <AnMaster> cpressey, oh and there is an option to use fully buffered stdout of course
22:28:59 <Deewiant> Mycology really isn't worth speed-testing against, it's too quick to run through :-P
22:29:10 <AnMaster> Deewiant, not for that befunge in perl
22:29:14 <cpressey> Would anyone kick and scream if Befunge-111 was only defined for 2 dimensions? Generalizing to different #s of dimensions would be nicer in that language where vectors are first class.
22:29:18 -!- MigoMipo has quit (Remote host closed the connection).
22:29:21 <AnMaster> cpressey, only JIT-funge beats cfunge
22:29:26 <AnMaster> and jitfunge is basically dead
22:29:32 <AnMaster> unless fizzie starts working on it again
22:29:33 <Deewiant> AnMaster: Just because there exists a slow implementation doesn't mean the test case isn't fast
22:29:58 <AnMaster> cpressey, mike Riley might
22:30:01 <AnMaster> bbl urg
22:30:07 <Deewiant> "urg"?
22:30:23 <Deewiant> Too much cfungeing for one night?
22:30:36 <cpressey> Either something "urg"ent came up, or...
22:30:38 <gm|lap> the basic idea behind compression: each file is a number, e.g. a file containing 0xBEEF might be the number 0x1BEEF (you need that top bit to give a fair representation).
22:30:49 <Deewiant> Ah, urg-ent indeed
22:31:18 <gm|lap> basically, you want to make it so that the most relevant/likely files are the smallest numbers and the least are the biggest.
22:31:45 <cpressey> Also have an urge to deprecate =.
22:32:13 <Deewiant> Or make it useful by being C system() or something always
22:33:55 <cpressey> = and t sound like they should go into fingerprints.
22:34:44 <Deewiant> And the file I/O stuff too, I reckon
22:35:00 <cpressey> Sure, I could go for that.
22:35:40 -!- tombom_ has quit (Quit: Leaving).
22:36:04 <cpressey> Also, maybe fingerprints should be able to redefine a wider set of instructions, maybe all instructions except ")". That would let = and t stay the same. A compatibility-oriented implementation could "pre-load" the fingerprints for those,.
22:36:26 <Deewiant> Basically, all the stuff for which y needs to be asked to know whether it's implemented
22:36:44 <Deewiant> cpressey: That's opening the door to all kinds of abuse ;-)
22:37:05 <cpressey> Deewiant: More abuse than now?
22:37:13 <Deewiant> I'd say so, yes
22:37:31 <Deewiant> Say, could you redefine space (" ") in a fingerprint?
22:37:32 <cpressey> Well, maybe, and I didn't say I wasn't against it...
22:37:48 <cpressey> OK, " " and ";" are special.
22:38:06 <cpressey> They aren't instructions, therefore can't be redefined.
22:38:18 <cpressey> Well, maybe ";" can.
22:38:18 <Deewiant> Agreed
22:38:22 <Deewiant> No, not ";" :-P
22:38:40 <cpressey> :)
22:38:43 <Deewiant> They're both markers and work completely differently
22:38:58 <Deewiant> For example! 1k;;;;1 will execute the 1
22:39:13 <cpressey> Oh god, combining k and ;
22:39:23 <cpressey> Yeah.
22:39:24 <Deewiant> Same for 1k 1, of course
22:39:51 <Deewiant> But anyway, messing with those is a bad idea
22:40:20 <cpressey> Yeah, I agree.
22:41:13 <Deewiant> Still, I don't like the idea of being able to redefine such basic things as #, $, 0-9, etc
22:41:40 <cpressey> Well, I like it in one sense, but I agree that it's probably too large a departure.
22:42:07 <cpressey> Still, I'd like to see t, i, o, = et al move to a fingerprint.
22:42:10 <Deewiant> I can see the appeal,
22:42:26 <Deewiant> but I don't think there's much of a use case except for malware :-P
22:42:34 <Deewiant> (Malfunge?)
22:43:02 <cpressey> It feeds the "nightmare to compile" goal somewhat.
22:43:40 <cpressey> As does mapping the stack to funge-space. But neither has ever had a lot of support.
22:44:04 <cpressey> So maybe they're just not "Befunge-y". And that should trump the other goal.
22:44:05 <Deewiant> Eh? You mean the stack overlays a location in funge-space?
22:44:25 <cpressey> Yes, that was one proposal. Pushing something onto the stack actually p's it somewhere.
22:44:40 <cpressey> That, too, could be a fingerprint, though.
22:44:49 <Deewiant> Stick it in MODE :-P
22:45:04 <cpressey> I mean, with extremely feral fingerprints, the sky's the limit anyway
22:45:21 <Deewiant> Yep
22:45:50 <Deewiant> When it comes to "hard to compile", I don't think there's any advantage to either of the things you mentioned
22:46:22 <Deewiant> Whether it's just 'A' or all of 0-126 that are modifiable by ( doesn't really matter, the implementation is essentially the same
22:46:45 <Deewiant> And making the stack commands just work on funge-space is actually a simplification since you don't need to implement a stack :-P
22:48:16 <cpressey> Well, from the point of view of a compiler writer... if the stack is mapped to an arbitrary point in funge-space, I can no longer just use the machine stack, and I can no longer do simple optimizations
22:49:04 <Deewiant> Optimizations it does inhibit, true
22:50:18 <Deewiant> I wouldn't use the machine stack anyway, the spec doesn't indicate that you're ever allowed to fail on simple operations like 0-9 ;-)
22:51:28 <Deewiant> (And the machine stack would run into limits pretty fast, I think)
22:51:40 <cpressey> Yeah, the spec doesn't define arithmetic overflow either though.
22:52:12 <Deewiant> "In Funge-98, stack and Funge-Space cells alike should be treated as signed integers of the same size."
22:52:20 <Deewiant> It doesn't define what should happen, true
22:52:31 <Deewiant> But it at least implicitly acknowledges that the size is limited
22:52:49 <cpressey> It assumes it :)
22:53:25 <Deewiant> My point is that it allows for it, at least :-P
22:53:41 <Deewiant> Whether as the only option or not is a different question ;-)
22:54:03 <cpressey> Yeah.
23:00:20 <fizzie> jitfunge uses a sort of a machine-assisted stack: the stack memory is surrounded by no-access memory pages, and the "pop 0 from empty stack" is handled by catching the sigsegv, manipulating the saved context (to make the registers look like it would have read a 0 out) and then resuming execution from the next instruction.
23:00:54 <Deewiant> But it still lives in the heap, no?
23:01:35 <fizzie> It's a separately mmap'd area, so.. I guess it depends on your definition of the heap. Certainly it's not the C heap.
23:02:10 <fizzie> But it's not in the "real" stack; it's just that there's nothing really magical about that stack either.
23:03:42 <fizzie> You could argue that it's not the machine stack because I don't use esp/rsp to point at it, nor do I use the push/pop instructions to access it.
23:04:12 <Wareya> guys
23:04:28 <Wareya> Is it possible to implement liberal 2D flow controll and expression nesting without allowing for paradoxes?
23:10:16 <Wareya> control*
23:11:20 <cpressey> Depends - what's a paradox?
23:12:26 -!- MizardX- has joined.
23:12:57 -!- adam_d has quit (Ping timeout: 248 seconds).
23:13:04 <Wareya> well
23:15:28 <Wareya> an expression nested with others with tests such that you continually reformed the initial test before ever completing interpreting the expression
23:15:31 -!- MizardX has quit (Ping timeout: 276 seconds).
23:15:37 <AnMaster> back
23:15:47 <AnMaster> Deewiant, urg = urgent
23:15:50 <AnMaster> due to nosebleed
23:15:54 <Wareya> like a self modifying language in an infinite loop
23:16:14 -!- MizardX has joined.
23:16:37 <cpressey> Wareya: Sounds like Feather, or Chronofunge / TRDS -- you search for a "fixed point" where all your definitions work out, but there might not be such a point
23:16:53 <AnMaster> <Deewiant> Or make it useful by being C system() or something always <-- often impossible to implement
23:16:55 <Wareya> that's the problem
23:16:57 <Deewiant> cpressey: Chronofunge?!
23:17:07 <cpressey> I think you always have to allow for the possibility of a paradox (infinite loop while looking for a stable state)
23:17:42 <cpressey> Deewiant: Chronofunge was the idea I had to add time-travel to Befunge
23:17:57 <cpressey> Don't know if TRDS was influenced by it
23:18:09 <Wareya> Zybourne time travel or traditional time travel?
23:18:40 <cpressey> I have no idea.
23:18:46 <AnMaster> <cpressey> It feeds the "nightmare to compile" goal somewhat. <-- JIT compiling works just fine
23:18:46 -!- MizardX- has quit (Ping timeout: 276 seconds).
23:19:16 <cpressey> AnMaster: JIT compiling doesn't really count.
23:19:48 <AnMaster> <Deewiant> And making the stack commands just work on funge-space is actually a simplification since you don't need to implement a stack :-P <-- funge space is quite a bit slower due to the sparse-ness
23:20:25 <Wareya> zybourne time travel is the idea that time travel towards to passt just modified history as it was, and while the particular initial point of when you initiated traveling back in time once existed in time, it doesn't any more.
23:20:30 <Wareya> past&*
23:20:32 <Deewiant> AnMaster: Speed was not the issue
23:20:33 <Wareya> past*
23:20:35 <AnMaster> <Deewiant> "In Funge-98, stack and Funge-Space cells alike should be treated as signed integers of the same size." <-- so the stack is a single signed integer?
23:20:48 <Deewiant> AnMaster: (stack and Funge-Space) cells
23:21:10 <Deewiant> AnMaster: Not: stack and (Funge-Space cells)
23:22:00 <Deewiant> The latter would require a "the" to be valid anyway
23:22:11 <Wareya> traditional time travel is time travel that insists that causalty must remain intact, so going to the past would be virtually impossible without causing a paradox.
23:22:47 <AnMaster> <Deewiant> AnMaster: (stack and Funge-Space) cells <-- I know
23:22:54 <AnMaster> I was just joking
23:23:07 <Deewiant> Your joke failed because your parse is not valid
23:23:10 -!- augur has quit (Read error: Connection reset by peer).
23:23:15 <AnMaster> Deewiant, meh
23:23:29 <Deewiant> Wareya: TRDS is Zybourne, then
23:23:44 -!- augur has joined.
23:24:25 <AnMaster> Wareya, with zybourne "[...] the particular initial point of when you initiated traveling back in time once existed in time" is problematic
23:24:31 <AnMaster> what does "once existed" mean here
23:24:46 <oerjan> once upon a time
23:24:49 <AnMaster> it implies a beore
23:24:50 <AnMaster> before*
23:24:55 <AnMaster> but along what time axis?
23:24:58 <Wareya> ?
23:25:08 <Wareya> "once existed" is illogical
23:25:15 <Wareya> it's the only expression I could come up with
23:25:28 <AnMaster> that's the issue indeed I had with it
23:25:33 <Wareya> k
23:25:44 <AnMaster> anyway, night →
23:26:00 <Wareya> It doesn't exist in time, but the cause is something that doesn't exist because of its effect.
23:26:03 <Wareya> Night.
23:26:08 <oerjan> i would suggest a certain book by dr. dan streetmentioner
23:26:44 <pikhq> oerjan: Which willo-onhaven been written, I presume?
23:26:56 <oerjan> presumably
23:28:54 -!- augur has quit (Ping timeout: 256 seconds).
23:36:54 -!- coppro has joined.
23:48:44 -!- cpressey has left (?).
23:50:24 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
←2010-02-22 2010-02-23 2010-02-24→ ↑2010 ↑all