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:35 <Gregor> There's another Gregor Richards
02:59:38 <Gregor> http://www.wideawakemusic.com/gallery.html
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:24:00 -!- jcp has quit (Remote host closed the connection).
05:24:54 <augur> Gregor: i knew a Gregor Richardson
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: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.
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: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:29:55 <oerjan> i'm going with the whatever
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: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:54:02 <cheater> is this specified in the INTERCAL manual?
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:11 <cheater> C-IMTERCAL is not the defining standard
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: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: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: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: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: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:53:01 -!- augur has quit (Ping timeout: 264 seconds).
16:54:47 <fizzie> I know nobody asked me, but that sounds reasonable.
16:56:21 <fizzie> Heh, that TURT quine looks messy. I don't think I had even seen that before.
16:56:46 <AnMaster> the one from the huge domain name guy?
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: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: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: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: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: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:13:00 <fizzie> (But that's not endian-automatic the way bitshifting and masking is.)
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: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: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: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: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:52:12 <oerjan> um are you sure i'm the one you want to ask? oh math direction
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:53:19 <AnMaster> ccbi and cfunge both sets heading as in math-direction
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: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:17 <scarf> AnMaster: like bachelor of chenelography, etc
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: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: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: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:53 <oerjan> you don't _use_ pi in a turtle. the actual sin and cos are algebraic when the angles are rational _degrees_
18:06:11 <oerjan> for example sin (60 degrees) = (sqrt 2)/2
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:45 <AnMaster> cpressey, but set-heading doing the math set-heading
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:53 <cpressey> Sounds almost like someone should define TUR2.
18:07:54 <oerjan> cpressey: that's what i assumed you meant
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: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: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: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:11:01 <AnMaster> cpressey, things are 64-bit or bignum nowdays (at least the thing *I* write ;P)
18:11:08 <cpressey> You say that like things of the past have less value than things of the present.
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:57 <AnMaster> cfunge defaults to 64-bit iirc
18:13:12 <AnMaster> anyway, the issue is that TURT is so badly specced
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:41 <AnMaster> cpressey, also what about transparent colours?
18:18:53 <AnMaster> you could have semi-transparent pen-colours
18:19:10 <AnMaster> cpressey, I was thinking of alpha channel
18:19:27 <AnMaster> cpressey, gamma is something quite different isn't it?
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: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:59 <AnMaster> Deewiant, fixing it breaks the TURT quine amongst other things
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:07 <AnMaster> cpressey, well, the thing is that it is different in set-heading and turn left/right
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: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:59 <AnMaster> Deewiant, as in, 0 = east, 90 = straight up
18:26:05 -!- kar8nga has joined.
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: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: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: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: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:50 <cpressey> Could have just been "positive angle"
18:30:51 <Deewiant> Whether H or R, this prints 90 for me
18:31:29 <AnMaster> Deewiant, that doesn't render anything
18:31:43 <Deewiant> I don't give a damn about rendering
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:34 <cpressey> http://catseye.tc/projects/etcha/
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: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: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: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: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: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: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: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:46 <Deewiant> It did help for stuff like the quine
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: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: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:55:08 <Deewiant> Do you only use M at the start of a path then?
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:13 <AnMaster> it always draws lines first then circles
18:57:42 <AnMaster> but those two groups have their order preserved internally
18:58:52 <AnMaster> Deewiant, btw I assume your output contains no newlines then?
18:59:32 <AnMaster> heck you do turn 0000ff into 00f
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:01:00 <AnMaster> Deewiant, that assumes you have a fairly imperative language
19:01:16 <AnMaster> Deewiant, now go implement it in scheme
19:01:29 <AnMaster> Deewiant, for cons-list style strings
19:01:54 <AnMaster> Deewiant, can cons lists really?
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: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: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: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: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: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: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: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: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: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: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:37 <Deewiant> AnMaster: Because TURT isn't on the top of my TODO list :-P
19:24:48 <AnMaster> Deewiant, nor is ccbi I guess?
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:26:08 <Deewiant> I'd rather avoid messing with CCBI1 at all unless it's something relatively important
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:11 <AnMaster> Deewiant, but the wrong colour of dot: yes
19:28:21 <Deewiant> So now there's that colour thing and preserving order of lines/points
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: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: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: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: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: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: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: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: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:36 <Deewiant> I think X11 defines more colours than CSS?
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: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:42 <AnMaster> Deewiant, I don't have X running
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: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: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: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: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: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: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: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: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: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: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:01:06 <cpressey> as opposed to "I want a transparent border" or something
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: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:03:18 <cpressey> stream a spiral, clip it to 0x0, stream another spiral, clip it...
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:55 <cpressey> Well, RLE is probably the simplest kind of compression you could do
20:05:18 <AnMaster> cpressey, I was thinking of "how well will deflate work on this
20:10:52 <AnMaster> Deewiant, do you know if you can set r of a circle using css in svg?
20:11:29 <Deewiant> I remember you asking me about this a year+ ago too ;-P
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: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:29 <Deewiant> There is no defined default for anything
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:32:01 <cpressey> I've learned my lesson -- unfortunately my newfound zest for precision will probably not be applied to Befunge anytime soon.
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: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: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:18 -!- jcp has joined.
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:41:16 <cpressey> http://en.wikipedia.org/wiki/Butterfly_%28disambiguation%29
20:41:31 <cpressey> ATM, "Butterfliies Eat Pants" is the current vandalism.
20:43:42 <cpressey> I think the 8-bit diagram in the Butterfly_diagram page might explain the *W butterfly operation
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: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:49 <cpressey> (second is like first just mirrored)
20:49:00 <cpressey> x means "use the bit from the other half"
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: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:20 <AnMaster> cpressey, anyway it doesn't work out
20:51:53 <AnMaster> one with the upper 64 bits and one with the lower 64 bits
20:52:01 <AnMaster> of course this breaks down for bignum
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: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:50 <Wareya> you can emulate bignums in C
20:53:52 <AnMaster> cpressey, and I declare that wrong. Becuase it does
20:54:26 <cpressey> "do bignum" => "cleanly support bignums as a primitive type"
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: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: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:05:03 <AnMaster> cpressey, what download link? Somewhere on that page?
21:05:45 <AnMaster> charlls, indeed it seems to be dead
21:05:52 <AnMaster> charlls, but look that page mentions .Z
21:06:08 <AnMaster> and "http://www.gnu.ai.mit.edu/home.html."
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:49 <AnMaster> charlls, I use a message passing language when I need to do threads
21:08:00 <AnMaster> I refuse to touch pthreads directly
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:09:03 <AnMaster> so at least for "scramble" it has a short period
21:09:27 <AnMaster> oerjan, what is the algorithm used there?
21:09:34 <fungot> >>,[>,]<[<]>[.>>]<[>>]<2[.<2]
21:09:47 <oerjan> ^unscramble unscramble
21:10:01 <cpressey> Looks like butterflyification to me.
21:11:31 <oerjan> i think we calculated periods around when those commands were first added
21:11:52 <fungot> echo reverb rev rot13 rev2 fib wc ul cho choo pow2 source help hw srmlebac uenlsbcmra scramble unscramble
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:46 <fizzie> I don't know what that wc is about.
21:12:52 <fizzie> It doesn't look very worky.
21:13:26 <fungot> >,[>,]+32[<]>[[.>]<[<]>[-]>]
21:13:29 <fungot> >,[>,]<[<]>[[.>]<[<]>[-]>]
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: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: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: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:16 <fizzie> It just outputs powers of two.
21:14:18 <fungot> (http://git.zem.fi/fungot/blob/HEAD:/fungot.b98)S
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:44 <fungot> >+9[<+8>-]<.>+7[<+4>-]<+.+7..+3.>>>+8[<+4>-]<.>>>+10[<+9>-]<-3.<4.+3.-6.-8.>>+.
21:15:14 <fungot> 0.1.1.2.3.5.8.13.21.34.55.89.144.233.377.610.987.1597.2584.4181.6765.10946.17711.28657.46368.75025.121393.196418.317811.514229.832040.1346269.2178309.3524578.5702887.9227465.14930352.24157817.39088169.632459 ...
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: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: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:37 <AnMaster> cpressey, have you looked at mycology source then?
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:22 <AnMaster> also contains a literal null byte
21:21:05 <AnMaster> cpressey, the upper corner is a 93 test suite
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:53 <AnMaster> I fail to see how he can maintain it :)
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: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:32 <Deewiant> Probably matches what fits in UltraEdit-32, 1600x1200, Andale Mono 10pt or something
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:28:06 <AnMaster> it should work. It makes sense if it works
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:29:05 <cpressey> I should *probably* apply those patches. Someday.
21:29:37 <Deewiant> Given that one of them is by you I'm surprised it isn't applied :-P
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: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:51 <Deewiant> Well yes, obviously not those ones
21:32:52 <AnMaster> which Deewiant refuses to touch
21:33:03 <Deewiant> I see k on k as perfectly well defined :-P
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: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: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:14 <AnMaster> Deewiant, maybe it was cfunge then
21:35:15 <Deewiant> It used to crash cfunge, maybe ;-P
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:35 <Deewiant> "Only significant for NetFunge, BeGlad, and the like."
21:36:40 <AnMaster> maybe cpressey can explain wth it is
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: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: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:26 <AnMaster> and I think it was the wrong thing to do
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:13 <AnMaster> $ ./cfunge -F ../mycology/mycology.b98 | grep ^UNDEF | wc -l
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: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: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: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:50 <gm|lap> that's just... like... wrong
21:49:00 <Deewiant> The easiest way of implementing TRDS in minifunge is implementing a Funge-98 interpreter in minifunge
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: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:34 <AnMaster> otherwise we could have suggested FTHR to him
21:50:38 <Deewiant> cpressey: That sounds quite scary
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: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:50 <cpressey> "Retroactively" is scary, yeah.
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: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: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:57 <Deewiant> But no, it's not "out" as such
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: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: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: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:32 <Deewiant> Other than that, I don't think there's even any UNDEF stuff in TOYS, unless I misremember.
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: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: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:38 <Deewiant> Yes, only writing something doesn't give a really good picture of it
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:22 <gm|lap> as a bounce back would imply that it's not supported
22:05:42 <AnMaster> (I don't deal with other dimensionality normally)
22:06:23 <gm|lap> i think it should bounce back
22:06:31 <gm|lap> and send something forward
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: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:10:00 <AnMaster> I considered making 2^666 in efunge print "BIGNUM!"
22:10:12 <Deewiant> What about the stack stack? It's actually useful
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: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: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: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:12:02 <Deewiant> The storage offset isn't really related to stack stacks in any way
22:12:13 <Deewiant> It's just coincidentally modified by the same commands that modify the stack stack
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: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: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: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:57 <cpressey> gm|lap: Burro is broken, but I have a fix for it... slowly underway.
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:58 <gm|lap> AnMaster: same deal happens with most 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: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:52 <gm|lap> USAGE: bc [-d] [-p passwd] <infile> <outfile>
22:20:52 <gm|lap> -d: decompress (default is compress)
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: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: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: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: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: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: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: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: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:38:06 <cpressey> They aren't instructions, therefore can't be redefined.
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:51 <Deewiant> But anyway, messing with those is a bad idea
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:26 <Deewiant> but I don't think there's much of a use case except for malware :-P
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:45:04 <cpressey> I mean, with extremely feral fingerprints, the sky's the limit anyway
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: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 ;-)
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:28 <Wareya> Is it possible to implement liberal 2D flow controll and expression nesting without allowing for paradoxes?
23:12:26 -!- MizardX- has joined.
23:12:57 -!- adam_d has quit (Ping timeout: 248 seconds).
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: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: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: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:32 <Deewiant> AnMaster: Speed was not the issue
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: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: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: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:26:00 <Wareya> It doesn't exist in time, but the cause is something that doesn't exist because of its effect.
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: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).