←2008-07-06 2008-07-07 2008-07-08→ ↑2008 ↑all
00:09:11 -!- RedDak has quit (Read error: 104 (Connection reset by peer)).
00:41:16 -!- timotiis has quit (Read error: 110 (Connection timed out)).
01:17:26 -!- cc_to_ide has joined.
01:29:33 -!- GreaseMonkey has joined.
01:36:03 -!- cc_toide has quit (Connection timed out).
01:45:36 -!- Corun has joined.
01:45:51 -!- tusho has quit.
02:35:54 -!- Corun has quit ("This computer has gone to sleep").
02:42:37 -!- cc_to_ide has changed nick to cctoide.
02:56:02 -!- cctoide has quit ("Leaving").
04:37:26 -!- Sgeo has joined.
05:06:18 -!- pikhq has quit ("leaving").
05:27:18 -!- RodgerTheGreat has joined.
05:27:24 <RodgerTheGreat> 'sup, folks?
05:53:25 <GreaseMonkey> 'lo
05:54:25 <RodgerTheGreat> what are you up to this evening, GreaseMonkey?
05:54:55 <GreaseMonkey> coding a new bot
05:55:04 <GreaseMonkey> piemonkey is pretty hackish
05:56:15 <RodgerTheGreat> neat
05:56:49 <RodgerTheGreat> I've been working on stuff for a comic book I plan to make
06:31:51 -!- cherez has quit (Read error: 110 (Connection timed out)).
06:32:29 -!- cherez has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:01:20 <Sgeo> G'night all
08:04:14 -!- jix has joined.
08:19:05 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
09:49:55 -!- Hiato has joined.
10:04:58 -!- Hiato has quit ("Leaving.").
10:56:14 -!- GreaseMonkey has quit ("Remote closed the previous member app").
11:35:34 -!- Judofyr has joined.
12:03:15 -!- Slereah_ has joined.
12:03:15 -!- Slereah- has quit (Read error: 54 (Connection reset by peer)).
12:05:01 -!- Slereah- has joined.
12:05:01 -!- Slereah_ has quit (Read error: 54 (Connection reset by peer)).
12:25:50 <Slereah-> People, never go three years without sorting your files
12:25:54 <Slereah-> You'll regret it
12:30:40 -!- timotiis has joined.
12:46:10 -!- sebbu2 has joined.
12:48:16 -!- sebbu3 has joined.
12:48:46 -!- sebbu has quit (Nick collision from services.).
12:48:48 -!- sebbu2 has quit (Nick collision from services.).
12:48:54 -!- sebbu3 has changed nick to sebbu.
13:20:36 <AnMaster> hm
13:20:49 <AnMaster> no one seen ais?
13:20:53 <AnMaster> or tusho?
13:21:05 <AnMaster> (the place is boring without them)
13:21:14 <AnMaster> ;)
13:22:21 <AnMaster> Deewiant, there?
13:22:22 -!- planofish has joined.
13:22:30 -!- planofish has left (?).
13:22:35 <AnMaster> does a D program made for phobos compile and work with tango?
13:29:15 -!- Slereah- has quit (Read error: 54 (Connection reset by peer)).
13:30:29 <Deewiant> AnMaster: you'll need tangobos and might need to make some small changes
13:30:38 <AnMaster> ah
13:31:06 <AnMaster> well that genx that tusho recommended, LOTS of compiler warnings
13:31:20 <AnMaster> mostly casting const char* to non-const ones
13:31:37 <Deewiant> so compile that file without warnings. :-P
13:31:51 <AnMaster> Deewiant, no, rather fix them
13:32:51 <Deewiant> I generally don't bother if it's somebody else's code and known to work
13:33:00 <Deewiant> but yes, that works too. :-P
13:36:00 <AnMaster> Deewiant, I have high quality standards for code I use in my own projects, way higher than if I just depend on it already being installed (and currently I only depend on libc, and optionally boehm-gc)
13:50:07 -!- pikhq has joined.
13:54:11 <AnMaster> Deewiant, down to 2 warnings now
13:54:16 <AnMaster> these two will be hard to fix
14:37:52 <AnMaster> Deewiant, also it uses sprintf in some places instead of snprintf
14:37:56 <AnMaster> UGH
14:41:51 <Deewiant> nothing wrong with that if you have a buffer of the max possible size
14:42:00 <Deewiant> e.g. %d and 11
14:53:11 <AnMaster> Deewiant, indeed, but that wasn't the case here
14:53:13 <AnMaster> it was strings
14:53:23 <AnMaster> static constUtf8 storePrefix(genxWriter w, constUtf8 prefix, Boolean force)
14:53:30 <AnMaster> sprintf((char *) buf, "xmlns:%s", prefix);
14:53:40 <Deewiant> and if they're internal, they might now the size
14:53:55 <AnMaster> Deewiant, I traced the code backwards, it is not checked before it is sent to said function
15:03:13 -!- ais523 has joined.
15:03:41 <ais523> AnMaster: there?
15:04:25 <AnMaster> ais523, yes?
15:04:32 <ais523> AnMaster: I finished fffungi
15:04:36 <AnMaster> wow!
15:04:44 <ais523> but there are some things I'd like to discuss with you about it
15:04:50 <AnMaster> yes, go ahead
15:04:59 <ais523> the main issue is distributing it
15:05:07 <ais523> at the moment I have patches + a script that applies them
15:05:12 <AnMaster> hm
15:05:27 <ais523> but the patches being GPLv3 makes it kind of tricky to distribute with C-INTERCAL
15:05:41 <AnMaster> ais523, isn't C-INTERCAL "gpl2 or later"?
15:05:44 <ais523> yes
15:05:49 <ais523> the distribution's fine
15:06:01 <ais523> it's just having two files that aren't normally used with a different licence is a pain to explain on the 'packaging'
15:06:24 <AnMaster> ais523, well cfunge already contains some BSD code in lib, and shortly also some MIT
15:06:29 <ais523> ofc I could just licence the patches under gpl2+ as it would come to the same thing when combined with your gpl3 code, but I'd need your permission to do that
15:06:34 <AnMaster> included and customized libraries basically
15:06:45 <ais523> oh, I found a bug in cfunge's string load
15:06:51 <AnMaster> oh?
15:06:54 <ais523> Deewiant: also a bug in mycology
15:06:56 <AnMaster> details so I can fix it
15:07:03 <ais523> AnMaster: off-by-one in the loop counter
15:07:14 <ais523> you basically put the trailing NUL of the string onto the end of the program
15:07:23 <Deewiant> ais523: \o
15:07:23 <ais523> so if you try to wrap round the bottom row, it hits the NUL and reflects
15:07:33 <AnMaster> ah
15:07:40 <ais523> Deewiant: if negative k reflects, then it prints 'reflects' but also another message
15:07:42 <AnMaster> ais523, got a patch for that? ;)
15:07:46 <ais523> AnMaster: yep
15:07:53 <ais523> also another patch which it would be helpful for you to apply
15:08:03 <ais523> which doesn't affect cfunge at all when not combined with C-INTERCAL
15:08:08 <AnMaster> ais523, oh btw your patch is your custom interpreter main loop file + your fingerprint right? in that case, go ahead with GPL2+
15:08:12 <ais523> Deewiant: I think you have a missing semicolon
15:08:17 <ais523> AnMaster: yes, that's all
15:08:25 <AnMaster> ais523, care to upload the patches somewhere?
15:08:26 <ais523> I've pushed fffungi to the C-INTERCAL repo
15:08:29 <AnMaster> so I can review and such
15:08:32 <ais523> so you can get it from there
15:08:56 * AnMaster darcs pull
15:09:21 <AnMaster> ais523, where in c-intercal repo?
15:09:34 <ais523> the patch is etc/cfunge.patch
15:09:47 <ais523> for the whole thing, the script's etc/cftoec.sh
15:09:53 <ais523> which compiles cfunge into a library
15:10:03 <Deewiant> ais523: hmm, doesn't look like that to me... what does it print?
15:10:16 <ais523> Deewiant: maybe I have an older version
15:10:18 <ais523> let me run it again
15:10:42 <ais523> UNDEF: k with a negative argument executes more often than the absolute value of the argumenteflects
15:10:48 <AnMaster> ais523, the other patch hm I see yes
15:10:59 <ais523> lets me use a command-line define to change the handprint
15:11:08 <AnMaster> um
15:11:14 <AnMaster> that sounds like an old mycology?
15:11:17 <Deewiant> ais523: looks like what it actually does is it executes more often and then prints something extra
15:11:37 <ais523> Deewiant: nah, it reflects, but after pushing the string "reflects" to the stack it ends up in a different string by mistake
15:11:45 <Deewiant> hmm
15:11:47 <ais523> there's a semicolon meant to skip that bit, but it doesn't match another semicolon
15:11:49 <Deewiant> 6443244db122653f5479bd1751988175 *mycology.b98
15:12:03 <AnMaster> Deewiant, didn't you fix that bug some ages ago iirc?
15:12:07 <Deewiant> there should be a semicolon in column 110 which it skips to
15:12:15 <Deewiant> (from column 47)
15:12:30 <Deewiant> and yes, this is from the latest version of mycology which dates back to may
15:12:44 -!- Corun has joined.
15:13:24 <Deewiant> I only have a changelog up to march and I don't see me messing with that, but it could be it was earlier
15:13:24 <ais523> ah yes, I think I just have an old version
15:13:36 <ais523> 2007-12-02 16:35 mycology.b98
15:13:46 <Deewiant> yes, that's old :-)
15:13:46 <ais523> I'm going to have to get a newer version, I think
15:15:18 <AnMaster> ais523, they are commited locally (with minor changes to add a comment explaining why I did that in global.h) but not pushed as the local code is broken (changing TURT to use the a library for xml generation, library is added under lib/genx/*.c)
15:15:34 <ais523> ah, ok
15:15:45 <ais523> I'll remove the bit of my code that patches cfunge once the newer version is pushed
15:15:58 <ais523> oh, and the fingerprint still says example.com as the URL
15:16:08 <ais523> I'll fix that once I have a website up describing it
15:16:30 <ais523> there's a page in the C-INTERCAL manual describing IFFI now, so I just need to put the manual online and I can link to that
15:16:37 <ais523> incidentally, have you tried the test program?
15:16:51 <ais523> pit/tests/iffit1.i with pit/tests/iffit2.b98
15:17:57 <AnMaster> ais523, haven't tried it yet as my local cfunge source doesn't compile atm
15:18:06 <ais523> ok
15:18:10 <ais523> try it with an older revision
15:18:19 <AnMaster> too lazy, it will be fixed soon
15:28:15 -!- timotiis has quit (Read error: 110 (Connection timed out)).
15:45:20 -!- Hiato has joined.
15:49:28 -!- jix has quit (Nick collision from services.).
15:49:38 -!- jix has joined.
16:07:06 <AnMaster> ais523, there?
16:07:10 <ais523> yes
16:07:11 <AnMaster> would this be valid C:
16:07:12 <AnMaster> genxStartElement(g_path) || return false;
16:07:14 <AnMaster> just wondering
16:07:21 <ais523> no, return isn't a function
16:07:27 <AnMaster> ah right
16:07:28 <ais523> you can do || exit(EXIT_FAILURE) though
16:07:29 <AnMaster> true
16:07:36 <AnMaster> ais523, no I don't want that
16:07:39 <ais523> except that exit returns void
16:07:56 <ais523> so I suggest you use an if
16:08:53 -!- tusho has joined.
16:09:24 <tusho> hi ais523
16:09:27 <ais523> hi tusho
16:09:30 <ais523> you win
16:09:54 <tusho> yep
16:10:23 <tusho> ais523: when did it arrive at your end?
16:10:26 <ais523> 16:09
16:10:35 <ais523> before I focused Konversation
16:10:51 <ais523> anyway, I finished my C-INTERCAL/cfunge FFI
16:11:00 <tusho> ais523: i meant to the second, really
16:11:00 <tusho> :P
16:11:04 <tusho> and cool
16:14:32 <AnMaster> tusho, btw you said genx handled CDATA? it doesn't
16:14:37 <AnMaster> also the code is way ugglier now
16:14:41 <tusho> huh, I was pretty sure it did.
16:14:47 <AnMaster> I will mention this is thanks to you in a comment
16:14:49 <tusho> well, it may be uglier but it's more correct
16:14:54 <AnMaster> a lot of static buffers
16:15:01 <AnMaster> as I need to do stuff like:
16:15:09 <AnMaster> snprintf(sminx, sizeof(sminx), FIXEDFMT, PRINTFIXED(minx));
16:15:09 <AnMaster> snprintf(sminy, sizeof(sminy), FIXEDFMT, PRINTFIXED(miny));
16:15:15 <AnMaster> genxAddAttributeLiteral(gw, gns, (constUtf8)"x", (constUtf8)sminx);
16:15:15 <AnMaster> genxAddAttributeLiteral(gw, gns, (constUtf8)"y", (constUtf8)sminy);
16:15:19 <AnMaster> and so on and so on
16:15:23 <tusho> AnMaster: send patches to tim bray making it better.
16:15:26 <tusho> i'm sure he'd love them
16:15:53 <AnMaster> tusho, also it contained sprintf() for untrusted data instead of snprintf() (fixed that) and lots and lots of compiler warnings
16:16:09 <AnMaster> fixed all but two compiler warings
16:16:11 <AnMaster> warnings*
16:16:18 <tusho> it was developed circa 2004
16:16:22 <tusho> so gcc is probably more pedantic now
16:16:24 <AnMaster> again thanks to you cfunge will no longer compile with -Werror
16:16:29 <AnMaster> unless you plan to send me a patch
16:16:39 <tusho> AnMaster: fix the other two maybe...?
16:16:55 <AnMaster> tusho, they are quite complex cases of casting a const char * to a char *
16:17:03 <AnMaster> that will need major redesign to work
16:17:42 <tusho> this is why you don't use const :)
16:17:47 <AnMaster> tusho, ...
16:17:51 <AnMaster> the code already does
16:17:58 <AnMaster> also a string literal is a const char *
16:18:46 <AnMaster> tusho, also creating a path is much harder as the path goes inside an attribute
16:18:57 <AnMaster> so I need to malloc() a buffer for them and grow it as needed
16:19:06 <tusho> AnMaster: ok, are you going to complain at me for like five hours about it?
16:19:16 <AnMaster> as I can't just append like I could with fprintf() before
16:19:30 <AnMaster> tusho, why would I?
16:19:47 <AnMaster> tusho, I think you overcomplicate stuff though
16:19:51 <tusho> AnMaster: you've managed 5 minutes already
16:19:51 <tusho> :)
16:20:02 <tusho> [... and me overcomplicating stuff? Coming from you?]
16:20:24 <AnMaster> I would prefer S-Expressions
16:20:29 <AnMaster> way more elegant than XML
16:21:18 <tusho> AnMaster: Produce s-expressions and use the scheme SXML library to turn them into XML.
16:21:26 <tusho> I think it runs on Guile so you should be able to embed it.
16:21:31 <AnMaster> haha
16:21:43 <AnMaster> that would be even more overcomplicated and bloated
16:22:24 <ais523> anyway, anyone who likes looking at Befunge-98 code with COME FROMs in: http://eso-std.org/darcs/c-intercal/pit/tests/iffit2.b98
16:22:35 <ais523> that interfaces with http://eso-std.org/darcs/c-intercal/pit/tests/iffit1.i
16:22:50 <ais523> just a test program, all they do is print out numbers in sequence as they do various tests
16:23:29 <ais523> oh, I went a bit overboard in the Befunge program
16:23:56 <ais523> it's pretty dense, with code interleaving around other code, and also self-modifying
16:24:05 <ais523> not only that, but it alters the syntax of the INTERCAL program
16:24:08 <ais523> because I wanted to test that
16:25:14 -!- Corun has quit ("This computer has gone to sleep").
16:25:15 <AnMaster> that befunge code is write only heh
16:25:27 <ais523> AnMaster: you can read individual bits
16:25:31 <ais523> by tracing them in your head
16:25:40 <ais523> start at the start, and also in each possible direction from each middot
16:26:06 <ais523> I find Befunge isn't usually as hard to read as it looks
16:26:12 -!- Hiato has quit ("Leaving.").
16:26:17 <ais523> compared to something like Unlambda, for instance, which is usually as hard to read as it looks
16:27:04 -!- Corun has joined.
16:28:37 <AnMaster> blregh I got to write a generic string builder with append or this will be painful
16:28:45 <AnMaster> actually that could be useful in other parts too
16:29:00 <AnMaster> oh wait I think I can take that from crossfire maybe, it got a stringconstructor iirc
16:33:59 <ais523> Deewiant: "BAD: O opened 'mycotemp.tmp' for reading, won't overwrite it and thus won't test fingerprint" <-- what does that mean?
16:34:13 <Deewiant> ais523: it means just what it says
16:34:19 <AnMaster> ais523, that you should do rm mycotemp.tmp
16:34:22 <AnMaster> and then try again
16:34:22 <Deewiant> it managed to open 'mycotemp.tmp' so it won't overwrite it
16:34:28 <ais523> ah
16:34:32 <Deewiant> just in case you actually put something important in a file called mycotemp.tmp :-P
16:35:02 <ais523> well, in that case ick passes mycology
16:35:18 <ais523> although it's cfunge doing all the work behind the scenes, of course
16:35:21 <ais523> so not that surprising
16:36:26 <ais523> maybe I should write a test for IFFI...
16:36:36 <ais523> that works Mycology-style
16:36:45 <ais523> rather than just writing numbers
16:36:51 <ais523> although I suppose Mycology writes numbers to start with
16:37:36 <Deewiant> it has to since it only assumes that the few instructions in sanity.bf work :-)
16:37:45 <ais523> yes, I know
16:37:52 <ais523> in my case I wrote out numbers to save program size
16:38:01 <Deewiant> of course I could easily have assumed that , works and not .
16:38:05 <ais523> and also because reading out strings is a pain in INTERCAL
16:38:16 <Deewiant> heh
16:38:21 <ais523> Deewiant: not that easily, you'd be limited to control codes until you got arithmetic working
16:38:38 <Deewiant> ah, true
16:38:47 <Deewiant> that explains why I chose it like that ;-)
16:38:59 <ais523> incidentally, for testing =
16:39:05 <ais523> I think the echo command does the same thing on all platforms
16:39:18 <ais523> as it just happens to have the same meaning in DOS, in Windows and in UNIX
16:39:32 <ais523> that would work for C-system-style =
16:39:49 <Dewi> ais523: it's not exactly the same, as you might imagine
16:39:54 <ais523> no, it isn't
16:40:05 <ais523> but when given one argument consisting of nothing but letters it is
16:40:11 <ais523> if that argument isn't "on" or "off"
16:40:15 <Dewi> :)
16:40:49 <Dewi> just pedantic enough now, I approve
16:41:07 <Deewiant> ais523: echo doesn't exist in Windows or DOS except as a builtin of the shell
16:41:22 <ais523> Deewiant: yep, but C system() always invokes the shell in DOS/Windows
16:41:25 <Deewiant> ah, but = was C system()
16:41:51 <ais523> except under DJGPP it optimises it if it notices that the shell isn't needed, but invokes the shell if it is
16:42:01 <ais523> so it always works as if the shell was invoked
16:42:15 <Deewiant> how can it know that at compile-time? O_o
16:42:41 <ais523> Deewiant: it doesn't, there's a check in their version of libc
16:42:50 <Deewiant> ah
16:42:56 <Deewiant> but hmm
16:43:01 <Deewiant> how can it know it even then
16:43:14 <Dewi> the shell in DOS is pretty dumb
16:43:29 <ais523> yes compared to a UNIX shell
16:43:35 <ais523> but it's still usable, just about
16:43:37 <Dewi> I mean there's the short list of builtins
16:43:45 <Dewi> but no globbing
16:43:55 <Dewi> not much interesting chaining of commands
16:43:56 <ais523> Deewiant: checks to see if it refers to an executable on the PATH that isn't a shell builtin
16:44:02 <Dewi> does the shell handle piping ?
16:44:08 <ais523> Dewi: not exactly
16:44:09 <ais523> it does
16:44:13 <Deewiant> yeah, I just realized that being DOS-only means that you only have to worry about one shell :-)
16:44:14 <ais523> but DOS is single-threaded
16:44:25 <ais523> so it pipes through tempfiles
16:44:31 <Dewi> ais523: ew
16:44:38 <Dewi> ais523: that sounds familiar
16:44:42 <Dewi> ais523: I wonder if I suppressed that memory
16:44:53 <Dewi> ais523: winnt cmd.exe doesn't do that does it?
16:45:04 <ais523> Dewi: not sure, cmd.exe is somewhat improved
16:45:10 <ais523> I don't have a copy here to try it on
16:45:17 <ais523> I'd have to switch to a Windows computer to test
16:45:18 <Deewiant> it doesn't
16:45:40 <Dewi> a few years ago when I was in the transitional phase from thinking in windows to thinking in unix... I used to write a lot of batch files that invoked inline perl
16:45:50 <Deewiant> i.e. yes | head terminates
16:45:59 <ais523> ah, that's good
16:46:02 <Dewi> and I was surprised how hard I could push windows piping
16:46:11 <tusho> Dewi: i hate you for not being Deewiant
16:46:12 <tusho> :(
16:46:14 <Dewi> people act like cmd.exe almost doesn't have it, but it's actually rather good
16:46:30 <Dewi> tusho: me too
16:46:38 <tusho> Dewi: start being Deewiant
16:46:47 <ais523> A quote I remember, not sure where from: "Microsoft shoved a lot of standard UNIX shell functionality into cmd.exe while no-one was looking"
16:46:51 <Dewi> tusho: but I also reserve some hatred for Deewiant choosing such a name
16:47:01 <ais523> but cmd.exe still has insane variables
16:47:20 <Dewi> yeah the rest of it's hideous
16:47:40 <Deewiant> the quoting rules of process execution on windows are brilliant
16:47:44 <Dewi> but it's surprising how similar a batch file can be to a simple shell script if you have enough textutils installed
16:47:50 <Deewiant> let me dig them up for your viewing pleasure
16:48:02 <Dewi> Deewiant: nobody ever, EVER quotes correctly in windows batch files
16:48:08 <ais523> Deewiant: I've run into them before
16:48:16 <Dewi> Deewiant: people think it's bad in unix, but... urgh
16:48:26 <AnMaster> hm
16:48:28 <ais523> and I have managed to quote correctly before, but only in situations where all the things I was quoting were string literals
16:48:31 <ais523> even then it can be tricky
16:48:56 <Dewi> I always manage to invoke the crazy thing to do filenames correctly
16:49:03 <tusho> the fish shell never requires quoting
16:49:04 <Deewiant> hmm, can't find them
16:49:05 <tusho> I kinda like that
16:49:09 <AnMaster> argh too much to read
16:49:09 <tusho> it seems like a sane shell
16:49:10 <Dewi> but the other day I found even that got me into trouble because doing so expands the full path, and I needed a relative form
16:49:12 <AnMaster> anything important?
16:49:14 <ais523> Dewi: well, cmd.exe tab-completes the quoting correctly
16:49:14 <Deewiant> I thought I remembered a place where they're linked but it wasn't there after all
16:49:17 <AnMaster> ais523, ^
16:49:21 <ais523> that's a useful trick to know
16:49:29 <Dewi> ais523: I meant for variables
16:49:32 <ais523> AnMaster: not really, we were just discussing Windows shells
16:49:37 <AnMaster> oh ok
16:49:41 <AnMaster> bbl food
16:49:42 <ais523> Dewi: yep, that's harder
16:49:44 <Dewi> ais523: the big problem is this, the shell doesn't remove quotes on batch file invocations
16:50:13 <ais523> Dewi: not even if you use call?
16:50:18 <Dewi> ais523: so if your batch file needs to pass the param on again, it's going to either add another layer of quotes if the original user included them, or fail to add them and possibly break stuff
16:50:28 <ais523> ugh
16:50:32 <Deewiant> ah, here we are
16:50:33 <Deewiant> http://msdn.microsoft.com/en-us/library/system.environment.getcommandlineargs.aspx
16:50:38 <ais523> recursive batch files were always a bad idea under DOS
16:50:46 <Deewiant> If a double quotation mark follows two or an even number of backslashes, each proceeding backslash pair is replaced with one backslash and the double quotation mark is removed. If a double quotation mark follows an odd number of backslashes, including just one, each preceding pair is replaced with one backslash and the remaining backslash is removed; however, in this case the double quotation mark is not removed.
16:50:57 <ais523> especially as they acted like UNIX exec when called by default, and you needed a special prefix to be able to return from them
16:51:29 <Dewi> ais523: so to feel a little bit safe you can go "%~1"
16:51:30 <Deewiant> same under windows
16:51:34 <Deewiant> the prefix is "call"
16:51:37 <ais523> Deewiant: that page doesn't open correctly in Konqueror at all, there are no scrollbars so I can't read more than the first few sentences
16:51:40 <ais523> Deewiant: yes, I know
16:51:54 <Deewiant> ais523: not surprising... I pasted the relevant bit
16:52:01 <Dewi> ais523: aah see that's the correct thing, "%~1" but I sometimes forget, the other day I was using something like "%~dpnx1" which is fine but it does expand to a full absolute canonical path, which can be bad
16:52:04 -!- Sgeo has joined.
16:52:21 <tusho> HALO AIS523
16:52:24 <ais523> Deewiant: that definition's the way C strings are quoted
16:52:33 <Dewi> ais523: but these are invocations you never see in batch files you encounter, those are just pretty much always wrong
16:52:53 <Dewi> Deewiant: ooh, that's eeevil
16:53:08 <Deewiant> ais523: hm, is it? darn
16:53:31 <ais523> Deewiant: except that it strips unquoted double-quotes rather than using them as string delimiters
16:54:19 <ais523> Dewi: well, utilities like find on UNIX/Linux have similar quoting problems when used on files that contain literal newlines in their names
16:54:37 <Dewi> ais523: any kind of space, I thought
16:54:51 <ais523> Dewi: it's possible to quote spaces more easily than newlines
16:54:56 <ais523> although they can also be problems
16:55:20 <Dewi> ais523: that's something I find really odd about 'find'. By default, filenames with spaces break it. You can use \0, and usually I do, but newlines feel "good enough" in a lot of cases
16:55:29 <Dewi> ais523: but only the most recent gnu finds allow you to use newline as delimeter
16:55:51 <Dewi> to the point where I usually end up doing - perl -pe 's/\n/\0/;' | xargs -0
16:56:03 <ais523> Dewi: well, I use newline-delimited find when compiling cfunge, because I know that AnMaster's unlikely to put newlines or spaces in filenames there
16:56:23 <Dewi> ais523: in my view, spaces in filenames is pretty common. Newlines is... really odd
16:56:25 <ais523> AnMaster: also, let me know if you plan to give two files the same filename in different directories, my current code will break if you do that
16:56:39 <ais523> Dewi: spaces in filenames is common on Windows but not on Unices
16:57:02 <Deewiant> here we are
16:57:03 <Deewiant> http://msdn.microsoft.com/en-us/library/bb776391.aspx
16:57:13 <Deewiant> 2n backslashes followed by a quotation mark produce n backslashes followed by a quotation mark.
16:57:14 <ais523> whereas newlines in filenames is impossible on Windows before the most recent versions (and impossible through the normal interfaces) and very rare on Unices
16:57:16 <Deewiant> (2n) + 1 backslashes followed by a quotation mark again produce n backslashes followed by a quotation mark.
16:57:20 <Deewiant> n backslashes not followed by a quotation mark simply produce n backslashes.
16:57:34 <ais523> Deewiant: ugh, that is pretty different from C quoting
16:57:40 <Dewi> ais523: yeah. So I'd be pretty comfortable using newlines
16:57:52 <Deewiant> ais523: yeah, and that's what I was looking for. :-)
16:57:56 <Dewi> ais523: but xargs on lots of machines won't let me. -0 works everywhere though
16:58:25 <Dewi> * for provincial values of everywhere
16:58:29 <ais523> Dewi: well, keeping in with the normal INTERCAL method of finding an unusual way to do things, I used find -printf to print out shell commands and piped find's output to sh
16:58:45 <ais523> unfortunately that is a bit insane
16:58:54 <Dewi> ais523: actually... I invoke find like this really very often
16:59:04 <ais523> normally I try to find a way that's sane but nobody uses it for some reason
16:59:21 <Dewi> find -print0 | xargs -0r -n1 bash -c 'mv -i "$0" "$0.bak"'
16:59:27 <ais523> such as C-INTERCAL running just fine after a configure and make but no install, you simply have to give the path to the executable explicitly
16:59:30 <Dewi> ^ rename filename to filename.bak.
16:59:51 <Dewi> totally safe. *bash* making things *safe*. Hard to imagine isn't it
17:00:02 <ais523> Dewi: find -printf 'mv %f %f.bak' | sh
17:00:14 <ais523> and that method breaks if the filenames contain literal double-quotes, surely?
17:00:20 <ais523> that is, your method
17:00:20 <Dewi> ais523: less safe, spaces, newlines, etc
17:00:24 <ais523> otoh my method breaks a lot more
17:00:24 <Dewi> ais523: nope
17:00:29 <ais523> it wasn't meant to be safe
17:00:30 <ais523> just insane
17:01:19 <Dewi> ais523: because bash gets exactly 3 parameters with that invocation, and $0 is the one that came after the command
17:01:32 <Dewi> and since I have double-quoted the $0, that's watertight, or should be
17:01:46 <ais523> oh, of course
17:02:22 <Dewi> the key is avoiding talking directly about the param until the last moment. Xargs passes it through onto the end of the list without any of that troublesome parsing
17:02:51 <Dewi> it's funnny the awkward recipies I end up using on a daily basis because they seem safe
17:02:58 <Dewi> (safe like the defaults should have been, damn it!)
17:03:21 <Dewi> it's dangerously close to cargo cult programming
17:06:20 -!- Slereah- has joined.
17:06:30 <AnMaster> <ais523> AnMaster: also, let me know if you plan to give two files the same filename in different directories, my current code will break if you do that <-- hm possible that will happen, indeed
17:06:41 <ais523> AnMaster: what would you use it for?
17:06:45 <Dewi> ais523: that method shouldn't be underestimated though, just because it makes it easy to review the craziness before it runs
17:06:51 <Dewi> ais523: that can prevent a lot of grief
17:06:51 <AnMaster> ais523, when I replace the funge space with a faster version I'm likely to offer both as alternatives at compile time for a while
17:06:52 <Dewi> :)
17:06:54 <AnMaster> like I did last time
17:07:11 <ais523> AnMaster: ah, but it wouldn't be right to compile both in at once?
17:07:17 <AnMaster> ais523, indeed not both at once
17:07:20 <ais523> at the moment I just compile and link together all the .c files in /lib and /src
17:07:22 <AnMaster> both at once would be an error
17:07:29 <ais523> so it's right for it to break when that happens
17:07:35 <AnMaster> right
17:07:39 <ais523> and I'll need to not compile one or the other depending on circumstances
17:07:44 <ais523> that's fine, just let me know when it happens
17:07:48 <AnMaster> sure
17:08:01 <AnMaster> ais523, do you use lib/*/*.c or lib/blah/*.c atm?
17:08:11 <AnMaster> because in the next commit two subdirs to lib will be added
17:08:24 <ais523> AnMaster: recursive find atm
17:08:37 <ais523> so effectively lib/*/*.c
17:08:41 <ais523> but with any number of */
17:09:16 <Deewiant> lib/**/*.c in zsh
17:09:19 <AnMaster> ais523, also in that commit cfunge will contain MIT code as well as current GPL3, LGPL and BSD (see COPYING, it contains several licenses, due to the libraries)
17:09:27 <AnMaster> Deewiant, hah
17:09:37 <Deewiant> hah?
17:09:45 <AnMaster> "yet another zsh user"
17:09:46 <ais523> AnMaster: that isn't an issue really
17:09:51 <AnMaster> but zsh is quite bloated IMO
17:09:57 <AnMaster> yes some nice features
17:10:02 <ais523> I don't care all that much about the licences of things I link to as long as they're compatible
17:10:02 <AnMaster> that I would like to see in bash
17:10:05 <Deewiant> I suppose you use sh then
17:10:07 <Deewiant> :-P
17:10:07 <AnMaster> but some are just bloat IMO
17:10:15 <AnMaster> Deewiant, I think average is best
17:10:15 <ais523> and anything GPLv3-compliant can legally link to LGPL, BSD and MIT
17:10:20 <ais523> so there aren't any legal problems there
17:10:30 <AnMaster> ais523, yes I checked that before
17:10:48 <ais523> however GPLv3 is more restrictive than GPLv2 so I have to take care that I don't relicence something under GPLv3 under GPLv2 without permission
17:11:03 <AnMaster> oh and also some gpl2+, I reused some code from the MMORPG crossfire (on which I'm a developer), for string buffers (don't worry it is on the heap)
17:11:24 <AnMaster> because stringbuffer_append(sb, "foo"); is so much easier than doing realloc yourself
17:11:57 <ais523> AnMaster: don't worry about things on stack vs. heap, etc., because the way I've set it up I'm just about immune to anything but stack-smashing and your interpreter recursively calling mine, neither of which are likely
17:12:07 <AnMaster> hah
17:12:42 <AnMaster> ais523, well I can think of two things that would cause major messup (but that I don't plan to do): 1) pthreads 2) fork() which returns
17:12:53 <AnMaster> but don't worry, I don't plan to do either
17:13:11 <ais523> AnMaster: AFAICT the second would simply fork the running INTERCAL interp with no problems except confusion for the user
17:13:19 <AnMaster> haha
17:13:21 <ais523> you're right in that the first could cause interesting results, though
17:13:40 <AnMaster> that sounds like an understatment
17:14:10 <ais523> AnMaster: yes, but compared to the number of interesting interactions that there are in INTERCAL at the moment, most likely it would fit right in
17:14:45 <AnMaster> ais523, is IFFI valgrind clean btw?
17:15:02 <ais523> AnMaster: the fingerprint side has to be, it does nothing but toggle static variables
17:15:12 <ais523> in fact I don't think either side mallocs
17:15:20 <ais523> except for allocating an IP on startup
17:15:24 <AnMaster> right
17:15:27 <ais523> which is used throughout the entire progra
17:15:29 <ais523> s/$/m/
17:15:34 <ais523> thus I don't see how it could fail
17:16:19 <AnMaster> ais523, well cfunge doesn't free everything at end unless it is built as DEBUG. But I mainly meant no "real" memory leaks and no invalid read/writes and such
17:16:35 <ais523> AnMaster: why do you ask? interest?
17:16:57 <ais523> AFAIK the programs that C-INTERCAL outputs, and its runtime libraries, are valgrind clean, and the compiler itself leaks like a sieve
17:17:03 <AnMaster> ais523, yes because of interest and because I like good code
17:17:14 <AnMaster> hah
17:17:52 <AnMaster> now I wonder if TURT will work, time to test with new code
17:19:10 <AnMaster> ah yay segfault
17:23:27 <Deewiant> :-D
17:24:07 <AnMaster> tusho, there?
17:24:11 <AnMaster> tusho, this is the result:
17:24:11 <tusho> yes
17:24:16 <AnMaster> &lt;![CDATA[path{fill:none;stroke-width:0.00005px;stroke-linecap:round;stroke-linejoin:miter}]]&gt;
17:24:25 <AnMaster> tusho, as you suggested genx, how do I fix that?
17:24:40 <tusho> AnMaster: Well, you're doing something wrong. Dunno what.
17:24:58 <AnMaster> tusho, I just use genxAddText()
17:25:03 <AnMaster> tell me what I should use instead
17:25:09 <tusho> AnMaster: Read the docs.
17:25:13 <AnMaster> tusho, I have...
17:25:24 <tusho> I told you, I haven't used genx for anything big. But I've heard of people using it to much success and I know it works well.
17:27:05 <AnMaster> tusho, also how do I get it to write this type of tags <foo /> instead of <foo></foo>
17:27:22 <tusho> You don't, AnMaster. That's not part of the Canonical XML that genx writes.
17:27:34 <tusho> It aims for the maximum compatibility and correctness.
17:28:40 <AnMaster> tusho, in fact it seems impossible to do CDATA
17:28:53 <tusho> do you even need it in this case?
17:28:55 <tusho> it's for convenience of writing
17:28:55 <Deewiant> you don't need it
17:29:00 <tusho> you can just add the text without the cdata wrapper
17:29:04 <tusho> and genx will handle it for you
17:30:21 <AnMaster> tusho, it also fails to generate paths btw
17:30:29 <AnMaster> that works
17:30:33 <tusho> then i guess that's your fault :p
17:32:13 <AnMaster> according to Deewiant svg should have a max line length of 256 chars, however genx writes it all on one line...
17:35:08 <Deewiant> of course you need to add the newlines yourself
17:35:16 <Deewiant> generic XML has no such limitation suggestions
17:36:19 <tusho> yeah nothing will enforce that.
17:36:20 <tusho> :P
17:36:25 <tusho> that's just a reccomendation
17:36:27 <tusho> ignore it, it's silly
17:37:05 <AnMaster> interesting, konq can no longer view the image
17:38:34 -!- Slereah_ has joined.
17:39:17 <AnMaster> well it seems the order of width and viewBox elements matters, both for konq and inscape
17:39:19 <AnMaster> inkscape*
17:39:29 <AnMaster> genx refuses to put width first
17:39:31 <AnMaster> which is needed
17:39:36 * AnMaster shrugs
17:39:44 <Deewiant> I put width last
17:39:51 <Deewiant> worked fine for me
17:40:07 <tusho> AnMaster: nothiing can enforce that
17:40:09 <tusho> xml specifically says:
17:40:11 <tusho> no ordering
17:40:44 -!- Slereah- has quit (Read error: 104 (Connection reset by peer)).
17:44:04 -!- cherez has quit (Connection timed out).
17:45:49 -!- cherez has joined.
17:48:37 <AnMaster> oh I see what the issue is
17:48:40 <AnMaster> genx again
17:48:57 <AnMaster> tusho, it added svg: to every single element, if that is done, it doesn't work for some reason
17:49:08 <tusho> you didn't set the namespace, then
17:49:10 <tusho> or whatever
17:49:15 <tusho> genx is not the problem
17:49:16 <tusho> your use of it is
17:49:19 <AnMaster> I did
17:49:20 <tusho> most likely
17:49:23 <AnMaster> I did set the namespace
17:49:25 <AnMaster> that was the issue
17:49:35 <AnMaster> if I don't, and just add xmlns by hand it works
17:57:06 <AnMaster> ais523, pushed the fixed code so that patch no longer is needed
17:57:17 <ais523> AnMaster: ok
17:58:06 <AnMaster> tusho, two things: the file is now way larger than before, it generates svg file that doesn't work in konq
17:58:21 <tusho> AnMaster: I am not your personal genx support team.
17:58:25 <tusho> Please stop bothering me about it.
18:13:08 -!- cherez has quit (Read error: 110 (Connection timed out)).
18:15:26 -!- cherez has joined.
18:19:48 <AnMaster> Deewiant, it seems I misunderstood width/height values before, they are "how wide should it show up as"
18:19:54 <AnMaster> that is why the odd *10000 worked
18:19:54 -!- Slereah_ has quit (Connection reset by peer).
18:19:56 <AnMaster> and so
18:20:00 <AnMaster> best is to just not set it
18:20:07 <AnMaster> it then defaults to 100% of viewport
18:20:12 -!- Slereah- has joined.
18:22:57 <Deewiant> hmm, I thought I read somewhere in the standard that it's good form to set them
18:23:03 <Deewiant> but I can't find it any more so I guess not
18:23:17 <AnMaster> well I'm not 100% either
18:23:48 <Deewiant> all I can find now is
18:23:49 <Deewiant> SVG content itself optionally can provide information about the appropriate viewport region for the content via the width and height XML attributes on the outermost 'svg' element.
18:23:52 <AnMaster> "absolute units identifiers are only recommended for the width and the height on outermost 'svg' elements and situations where the content contains no transformations and it is desirable to specify values relative to the device pixel grid or to a particular real world unit size.
18:23:53 <AnMaster> "
18:24:00 <Deewiant> so it's just optional
18:24:26 <AnMaster> rather the correct way would be to do something like 800xwhatever the other unit scales to
18:24:27 <AnMaster> or such then
18:30:25 -!- Corun has quit ("This computer has gone to sleep").
18:30:30 <AnMaster> for the element <svg> it just defines how large you want the entire image to be displayed as
18:41:34 -!- Slereah- has quit (Read error: 104 (Connection reset by peer)).
18:45:18 -!- ais523 has quit ("brb, hopefully").
18:56:24 -!- ais523 has joined.
19:03:29 <AnMaster> hm
19:03:58 <AnMaster> ais523, just decided cfunge got large enough to need a credits/thanks to file, should I use your real name or?
19:04:05 <AnMaster> (same question for Deewiant btw)
19:04:34 <Deewiant> real name is fine
19:04:46 <AnMaster> ok
19:04:49 <tusho> AnMaster: ais523 I think
19:04:49 <tusho> well
19:04:49 <tusho> what does c-intercal's copyright file say?
19:04:49 <tusho> use that
19:04:57 <tusho> AnMaster: link a url too
19:05:00 <AnMaster> it has a COPYING file
19:05:05 <AnMaster> as in just a list of licenses
19:05:08 <tusho> make sure to use Deewiant's permalink, too
19:05:30 <AnMaster> also ick doesn't have a COPYRIGHT one
19:05:41 <AnMaster> all it got is a "Discredits" section in README
19:06:51 <AnMaster> also I don't know url to use for ais523
19:07:03 <ais523> AnMaster: call me Alex Smith, no url
19:07:04 <ais523> I don't have one
19:07:09 <AnMaster> ok
19:07:13 <tusho> ais523: yes you do
19:07:18 <tusho> http://eso-std.org/~ais523/
19:07:54 <ais523> tusho: look at what's there
19:07:58 <ais523> it's hardly a homepage right now
19:08:06 <tusho> ais523: it only takes a `vi index.html`
19:08:07 <ais523> and it would be an inappropriate URL for AnMaster's purposes
19:08:20 <tusho> really? for thanking you? Don't see why.
19:08:40 <AnMaster> for thanking ais523 for finding bugs and for writing IFFI
19:08:59 <tusho> yes
19:09:16 <ais523> tusho: you're suggesting he links to a directory listing that contains nothing but some Agora stuff?
19:09:25 <tusho> ais523: at the very second that's all it has
19:09:32 <tusho> but it will likely have a homepage at one point
19:09:40 <tusho> and it's a canonical unchanging URL now, so what's the problem?
19:09:49 <tusho> it's also an identifying URI
19:09:54 <tusho> to distinguish you from any other Alex Smith
19:09:54 <ais523> tusho: eventualism in changelogs is rarely a good idea...
19:10:05 <tusho> ais523: not a changelog
19:10:08 <tusho> it's a THANKS file
19:10:23 <ais523> tusho: well, exactly
19:10:36 <ais523> "THANKS to some random agoran ramblings for finding out bugs and writing a fingerprint..."?
19:11:09 <tusho> ais523: Thanks to Alex Smith <http://eso-std.org/~ais523/> for being an awesome person
19:11:09 <AnMaster> tusho, could I also have a url at eso-std.org then? XD
19:11:37 <tusho> AnMaster: 3 goats. Then I'll consider it.
19:11:43 <AnMaster> tusho, 3 goats?
19:11:52 <AnMaster> tusho, for what purpose?
19:11:53 <tusho> Sacrificed.
19:11:57 <tusho> Religious.
19:12:05 <AnMaster> tusho, animal rights!
19:12:17 <tusho> Shut up, my religion says I can do it QED.
19:12:33 -!- Hiato has joined.
19:12:42 <ais523> tusho: presumably you'd go mad if I created an account for AnMaster, too?
19:12:48 <ais523> not that I would without your permission
19:12:52 <tusho> ais523: In the insanity sense?
19:12:52 <tusho> Yes.
19:12:57 <ais523> tusho: in the anger sense?
19:13:01 <ais523> at least, would you try to stop me?
19:13:12 <ais523> insanity isn't really that hard to come by in #esoteric
19:13:18 <ais523> also, can I?
19:13:23 <tusho> I'd be too busy dancing around like a chicken and barking out the Zimbabwean anthem to be angry.
19:13:31 <tusho> And no. Not unless he joins ESO (oh god) :p
19:13:51 <AnMaster> what is ESO?
19:14:03 <ais523> AnMaster: an Esoteric Standards Organisation
19:14:04 <tusho> uh.. yeah.
19:14:07 <ais523> which is just me and tusho at the moment
19:14:08 <AnMaster> ais523, nice
19:14:13 <tusho> ais523: in the pop standards sense, actually
19:14:15 <AnMaster> I got some work which would fit in that
19:14:19 <ais523> we aren't getting any standardisation done because tusho's too busy doing other things
19:14:21 <tusho> the standards part is a subdivision
19:14:21 <AnMaster> the funge108 standard
19:14:24 <AnMaster> that I'm working on
19:14:25 <ais523> like repeatedly moving everything around the website
19:14:31 <AnMaster> ais523, tusho ^
19:14:36 <ais523> and wanting to reinvent everything from scratch
19:14:40 <tusho> AnMaster: yes, well, we'll see when it's done
19:14:45 <tusho> ais523: do you object? :)
19:14:45 <ais523> AnMaster: Funge-108 is exactly the sort of thing it ought to be for
19:14:50 <ais523> tusho: to what?
19:14:56 <tusho> ais523: reinventing everything!
19:15:02 <ais523> tusho: not particularly
19:15:08 <ais523> but it would be nice to get some standardisation done at some point
19:16:04 <AnMaster> ais523, http://kuonet.org/~anmaster/funge-108/
19:16:15 <AnMaster> a bit old have been too busy until now
19:16:26 <Deewiant> AnMaster: btw, one thing that came to mind: if UTF isn't mandated in Funge-108, mandate it
19:16:28 <ais523> AnMaster: maybe we should just work on the standard ourselves (mostly you), and then put it up on ESO when tusho's ready
19:16:31 <AnMaster> and tomorrow I will be busy packing to go to Norway for some days
19:16:45 <AnMaster> Deewiant, oh you mean load it as utf8 file?
19:16:48 <AnMaster> no I disagree
19:16:55 <AnMaster> it should be every char is 8 bits
19:17:01 <ais523> AnMaster: that's dated as of my birthday, thanks for the present
19:17:03 <Deewiant> unportable
19:17:06 <tusho> ais523: that sounds reasonable, I don't really care about funge-108
19:17:17 <AnMaster> Deewiant, well ok "as native byte size"
19:17:19 <Deewiant> imagine "det här er iso-8859-1"
19:17:23 <Deewiant> and then i
19:17:57 <AnMaster> Deewiant, issue: It would be exceedingly hard to write a funge-108 interpreter in funge then
19:18:05 <AnMaster> or in brainfuck
19:18:11 <Deewiant> no, not really
19:18:15 <AnMaster> Deewiant, do you want to try to parse utf8 by hand?
19:18:17 <Deewiant> it would be easier in fact
19:18:27 <Deewiant> since you can assume that it's utf-8
19:18:36 <Deewiant> on windows, you can then convert to utf-16
19:18:40 <tusho> i vote FOR Deewiant's proposal
19:18:41 <tusho> :)
19:18:46 <Deewiant> everywhere else, just pass it directly to functions
19:18:51 <AnMaster> Deewiant, it is easier to just read it in to char *
19:18:58 <Deewiant> (since anybody with a locale other than utf-8 is wrong anyway ;-))
19:19:05 <Deewiant> AnMaster: no, it's not. it's not portable.
19:19:09 <Deewiant> or rather
19:19:14 <Deewiant> you will still be reading it in to char*
19:19:18 <AnMaster> Deewiant, it is not easy in C without using an external library
19:19:24 <Deewiant> the difference is that if you need to convert it to a certain encoding, you can do so.
19:19:30 <Deewiant> AnMaster: you do not need to
19:19:52 <AnMaster> Deewiant, like what if you fread() in chunks of 1024 and a char end up over a boundary, you need to parse utf8 and load every utf8 char into one cell
19:19:57 <AnMaster> even if it is multibyte
19:20:03 <AnMaster> after converting it to unicode too I assume?
19:20:05 <AnMaster> ugh IMO
19:20:17 <Deewiant> no, I didn't say that
19:20:17 <AnMaster> because utf8 chars can be up to 5 bytes iirc
19:20:20 <Deewiant> 4
19:20:28 <AnMaster> quite sure it can be 5
19:20:31 <Deewiant> no, 4.
19:20:46 <Deewiant> I've implemented UTF-8 decoders and encoders; don't bother questioning me on this. :-)
19:21:05 <Deewiant> up to 6 is theoretically allowed but if the UTF-8 is used to encode Unicode, it's 4.
19:21:26 <AnMaster> um
19:21:31 <Deewiant> AnMaster: but yeah, you have two options there
19:21:37 <ais523> there are only 17*65536 characters in Unicode
19:21:41 <AnMaster> how would you load it then
19:21:44 <ais523> so it can't end up more than 4 bytes long
19:21:44 <Deewiant> 1) like you said, every utf-8 char in one cell
19:22:03 <Deewiant> 2) you don't have to change your program at all: multibyte chars are multiple cells.
19:22:20 <ais523> personally I'd favour combining chars loading into the same cells as the char they're combining onto if you're going down that route
19:22:20 <Deewiant> the only difference in case 2 from now being that a string can be assumed to be valid UTF-8.
19:22:23 <AnMaster> oh, and y should tell the program which is the case?
19:22:29 <ais523> Deewiant: even if read backwards?
19:22:48 <AnMaster> Deewiant, because then a program written for variant 1 and variant 2 won't work vertically in same interpreter
19:22:54 <AnMaster> as columns won't match
19:23:01 <Deewiant> ais523: if you pass it to any instruction which uses a string, yes.
19:23:15 <Deewiant> AnMaster: I meant, pick one for the standard.
19:23:22 <AnMaster> right
19:23:25 <ais523> there are no string-based instructions in Funge-98, only in some of the fingerprints
19:23:30 <Deewiant> ais523: i and o
19:23:38 <Deewiant> and =
19:23:41 <ais523> Deewiant: I thought they read onto the playfield
19:23:43 <AnMaster> oh "ö"<
19:23:45 <ais523> but I forgot about =
19:23:54 <Deewiant> ais523: they take filenames
19:23:59 <Deewiant> from 0gnirts
19:24:03 <ais523> Deewiant: ah
19:24:20 <AnMaster> idea: replace 0gnirts with gnirts<len>
19:24:32 -!- Corun has joined.
19:24:34 <Deewiant> yes, but that's another issue.
19:24:35 <AnMaster> would break existing programs though
19:25:20 <AnMaster> Deewiant, fingerprint loading will be extended to accept urls, retaining the old fingerprint system for compatibility with old fingerprints
19:25:25 <AnMaster> but new ones should use URIs
19:25:28 <AnMaster> not URLs
19:25:31 <AnMaster> I meant URIs
19:25:39 <Deewiant> tusho managed to brainwash you then :-)
19:25:59 <tusho> Brainwash?
19:26:00 <tusho> )
19:26:02 <tusho> *:)
19:26:09 <tusho> anyway, AnMaster
19:26:13 <tusho> all URLs are URIs
19:26:13 <AnMaster> Deewiant, no? I talked to Pressy about it too and he agreed assuming existing fingerprints still would work
19:26:15 <Deewiant> but still, I think it's somewhat annoying that I have to use legacy APIs just because I don't know the encoding of a given file
19:26:15 <tusho> so just say URIs
19:26:16 <tusho> and it's fine
19:26:22 <tusho> ah, wait, I see
19:26:22 <tusho> okay
19:26:23 <AnMaster> tusho, yes it was a typo on irc
19:26:24 <Deewiant> so UTF-8 would be nice
19:26:29 <Deewiant> or UTF-whatever
19:26:31 <tusho> AnMaster: anyway
19:26:33 <Deewiant> 16 and 32 are fine too
19:26:34 <tusho> forget about old extensions
19:26:36 <tusho> :)
19:26:48 <tusho> just have a funge-98 mode, AnMaster
19:26:55 <tusho> and let funge-108 be nice and URIy without kludges
19:26:58 <AnMaster> tusho, I already have different modes
19:27:10 <AnMaster> to handle space issue in strings in befunge93 programs
19:27:18 <AnMaster> and handle experimental stuff in funge108
19:27:21 <AnMaster> as I try them out
19:27:29 <AnMaster> like extending y instruction to have more info
19:27:39 <AnMaster> also the support for trinary funges would be nice
19:27:41 <AnMaster> XD
19:27:55 <AnMaster> but I may drop that
19:28:42 <tusho> AnMaster: see, exactly, different modes
19:28:53 <tusho> so funge-108 doesn't need to keep back-compat
19:28:55 <AnMaster> also future compatibility for quantum funges I guess
19:29:08 <tusho> heh
19:29:38 <AnMaster> tusho, in the link I gave above to the draft read section 5.5
19:29:41 <AnMaster> to see some wild ideas
19:29:44 <AnMaster> for that
19:30:10 <AnMaster> tusho, oh and Chris Pressy which I talked to in email did suggest retaining some backward compatiblity
19:30:19 <tusho> mph
19:30:25 <AnMaster> miles per hour
19:30:28 <AnMaster> ?
19:30:31 <tusho> AnMaster: no, 'mmph'
19:30:33 <tusho> like 'meh'
19:30:35 <tusho> but mmmph
19:30:52 <AnMaster> many multiple miles per hour? ~~~
19:31:10 <AnMaster> ;p
19:32:53 <tusho> AnMaster: about cfunge's page -
19:32:57 <tusho> the page is in english but you have Mars
19:33:00 <tusho> it should be March..
19:33:03 <AnMaster> oops
19:33:05 <tusho> unless it's not in english
19:33:11 <tusho> in which case, my eyes are deceiving me!
19:33:33 <AnMaster> fixed
19:33:35 <ais523> tusho: there are several English problems in the Funge-108 standard too, mostly nonidiomatic things and using slightly the wrong word, but I should be able to fix them once I've had time to look at it properly
19:33:51 <AnMaster> ais523, that would be helpful
19:34:21 <AnMaster> ais523, please work with the lyx file when doing so to make it easier to co-operate
19:35:11 <ais523> AnMaster: one English mistake you make a lot: "The Funge-98 (Pressey, 1998) standard got several unclear corner cases and is also missing definitions for non-binary funges (like ternary ones)."
19:35:14 <ais523> "got" should be "has" there
19:35:23 <AnMaster> ah
19:35:43 <tusho> ais523: that's always bothered me when talking to anmaster
19:35:49 <tusho> but I just noticed now exactly what it is that bothered me
19:35:49 <tusho> :P
19:36:42 <AnMaster> ais523, according to search that was the only case of "got" in the file
19:36:55 <ais523> AnMaster: good
19:37:00 <ais523> you do that a lot in speech, I meant
19:37:10 <ais523> I wasn't sure how much it had ended up in the standard
19:37:11 <AnMaster> ah
19:37:34 <AnMaster> ais523, a lot of it is just reformatted and clarified funge98
19:37:44 <ais523> I noticed
19:37:57 <AnMaster> because funge108 is a good language
19:38:19 <tusho> AnMaster: Of course you'd think that.
19:38:34 <AnMaster> tusho, heh
19:41:35 -!- sebbu2 has joined.
19:43:51 -!- sebbu3 has joined.
19:48:11 -!- oklopol has joined.
19:51:46 -!- tusho has quit ("And then-").
19:52:25 -!- tusho has joined.
19:59:55 -!- sebbu has quit (No route to host).
20:03:33 -!- sebbu2 has quit (Connection timed out).
20:07:19 <ais523> AnMaster: anyway, for Funge-108, something that's been bothering me a lot is what happens if a file with mixed newlines uses \r then \n to do a blank line
20:10:17 <Deewiant> it won't do a blank line
20:10:27 <Deewiant> simple as that :-P
20:10:31 <ais523> Deewiant: yes, I know
20:10:39 <ais523> personally I think the standard should state that
20:10:50 <Deewiant> by saying that \r\n is a line break, I think it does
20:10:59 <ais523> Deewiant: but it also says that \r and \n are line breaks
20:11:02 <ais523> so that's ambiguous
20:11:05 <AnMaster> well
20:11:08 <AnMaster> ais523, not really
20:11:08 <ais523> it should say which takes precedence
20:11:11 <Deewiant> maximal munch
20:11:14 <AnMaster> hm
20:11:22 <Deewiant> alternately, disallow mixed newlines
20:11:34 <Deewiant> same type throughout the file or it's invalid
20:11:38 <AnMaster> Deewiant, mixed in one file? should be allowed
20:11:41 <AnMaster> IMO
20:11:46 <AnMaster> I assume ccbi can handle it?
20:12:04 <Deewiant> of course
20:12:13 <Deewiant> but why should it be allowed
20:12:30 <AnMaster> Deewiant, is there any good reason to disable it?
20:12:47 <Deewiant> ais523's ambiguity is one
20:13:02 <Deewiant> another is the fact that vim doesn't like them
20:13:23 <ais523> Deewiant: nor does Emacs
20:13:28 <AnMaster> well most editors won't like it
20:13:34 <AnMaster> however I feel it should be allowed
20:13:40 <Deewiant> vim is the first editor I found that doesn't :-P
20:13:49 <Deewiant> I thought it was the only one, TBH
20:13:51 <AnMaster> Deewiant, does nano handle it?
20:13:59 <Deewiant> I don't know, haven't used it
20:14:13 <AnMaster> um nano transparently converts everything to LF iirc
20:15:13 <Deewiant> so it probably works then
20:15:16 <Deewiant> but still, why allow it
20:15:29 <Deewiant> in the end it can be considered erroneous
20:16:00 <AnMaster> hmm
20:16:48 <AnMaster> "A Funge source file SHOULD not mix different styles of line ending. If a file does the result is implementation defined."
20:16:50 <AnMaster> what about that?
20:16:56 <ais523> it's almost certainly unintentional, unless someone is writing Mycology
20:16:59 <tusho> AnMaster: just make it invalid
20:17:06 <tusho> and must-reject
20:17:08 -!- ihope has joined.
20:17:17 <AnMaster> tusho, an implementation should not need to detect this condition
20:17:18 <AnMaster> IMO
20:18:21 <AnMaster> implementation defined = This indicates the implementation can do whatever it wants (either from a list of alternatives or completely freely). However an interpreter MUST NOT error out or crash.
20:18:24 <AnMaster> does that seem sane?
20:18:26 -!- timotiis has joined.
20:18:30 <AnMaster> for a definition of it
20:18:32 <ais523> AnMaster: yes
20:18:34 <ais523> However, a Funge-108 interpreter MAY also expose any number of proprietary instructions above
20:18:34 <ais523> ASCII 127 or below ASCII 0.
20:18:38 <Deewiant> implementation defined, in general, also means that the implementation should document it
20:18:38 <ais523> is that based on my middot
20:18:43 <ais523> or did it say that beforehand?
20:18:47 <AnMaster> ais523, no it was in funge98 too
20:18:51 <ais523> ah, good
20:19:01 <AnMaster> Deewiant, good point
20:19:04 <ais523> so fffungi is legal in funge98
20:19:11 <Deewiant> AnMaster: oh, and another thing I was musing
20:19:16 <tusho> <AnMaster> implementation defined = This indicates the implementation can do whatever it wants (either from a list of alternatives or completely freely). However an interpreter MUST NOT error out or crash.
20:19:17 <tusho> NOT SANE
20:19:18 <AnMaster> Deewiant, hm what?
20:19:18 <Deewiant> default bindings for A-Z
20:19:27 <tusho> An interpreter SHOULD be able to error out on undefined behaviour.
20:19:29 <Deewiant> so that they don't just reflect by default
20:19:29 <tusho> Saying otherwise is madness!
20:19:41 <AnMaster> ais523, yes but not in pure funge98 of course, as in it is a proprietary extension
20:19:46 <Deewiant> tusho: implementation defined and undefined are two quite separate things
20:19:48 <ais523> AnMaster: normally "implementation defined" means "must be documented from this list of choices"
20:19:51 <AnMaster> tusho, undefined yes
20:19:56 <AnMaster> tusho, implementation defined no
20:20:13 <Deewiant> ais523: a list? not usually in my experience
20:20:22 <ais523> whereas "unspecified" means "must be from this list of choices but need not be documented nor chosen consistently"
20:20:38 <AnMaster> ais523, and "undefined"?
20:20:40 <ais523> Deewiant: maybe not a list, but a description of a set of choices is given
20:20:46 <ais523> AnMaster: "can do anything at all when this happens"
20:20:51 <Deewiant> ais523: sometimes, but not always
20:21:08 <AnMaster> ais523, even crash? I would like to define it as "error out gracefully but not crash"
20:21:12 <AnMaster> is valid
20:21:13 <Deewiant> or at least, the set contains "or something else"
20:21:26 <AnMaster> Deewiant, in some cases it is a list of valid ways to do it, and in other it is just totally implementation defined
20:21:29 <AnMaster> examples:
20:21:36 <AnMaster> kk <--- implementation defined from a list
20:21:38 <Deewiant> yes, I know
20:21:41 <Deewiant> you don't need to list them
20:21:52 <AnMaster> 201-% <-- implementation defined, not from a list
20:21:52 <Deewiant> I just said that usually, in my experience, one is not given a list
20:21:57 <Deewiant> but yes, that can happen
20:22:12 <AnMaster> Deewiant, both cases exist in funge108
20:22:27 <Deewiant> uninteresting, that wasn't the point
20:24:13 <Deewiant> AnMaster: anyhoo, I was thinking that handy stack instructions or something for A-Z would be nice
20:24:26 <AnMaster> Deewiant, hm?
20:24:36 <AnMaster> what do you mean?
20:24:40 <Deewiant> when no fingerprints are loaded
20:24:42 <Deewiant> default behaviour
20:24:45 <AnMaster> ah true
20:24:50 <AnMaster> isn't that documented to reflect?
20:25:08 <AnMaster> Deewiant, oh you mean use it for other instructions?
20:25:09 <ais523> personally I think that such handy stack instructions should be in a fingerprint
20:25:13 <ais523> not by default
20:25:18 <AnMaster> ais523, I tend to agree
20:25:44 <Deewiant> I just think that it's a bit of a waste to have 27 instructions all of which reflect
20:26:30 <Deewiant> a b -- a a b is one which would have eliminated a lot of uses of p and g in mycology
20:27:06 <AnMaster> Deewiant, that one is simple: \:
20:27:08 <AnMaster> err
20:27:10 <AnMaster> :\:
20:27:10 <AnMaster> even
20:27:11 <Deewiant> nope
20:27:18 <AnMaster> Deewiant, no?
20:27:26 <Deewiant> that's a b -- a b b
20:27:31 <Deewiant> note that \ after : is a no-op
20:27:36 <Deewiant> actually that's a b -- a b b
20:27:38 <Deewiant> er
20:27:38 <Deewiant> crap
20:27:41 <Deewiant> a b -- a b b b
20:27:44 <Deewiant> since you dup twice
20:27:49 <AnMaster> ah wait
20:27:52 <AnMaster> \:\
20:27:54 <AnMaster> is what I mean
20:27:55 <AnMaster> meant*
20:28:02 <Deewiant> a b -- b a a
20:28:02 <AnMaster> but that doesn't work either
20:28:04 <ais523> couldn't you do that with the stack stack?
20:28:13 <AnMaster> ais523, that would need even more code
20:28:27 <Deewiant> it needs a secondary data store
20:28:35 <AnMaster> Deewiant, you *could* have a fingerprint for it
20:28:38 <Deewiant> whether it's the stack stack or a cell in funge-space or a variable or whatever
20:28:43 <Deewiant> sure I could
20:28:49 <Deewiant> I could have a fingerprint for a lot of things
20:28:54 <AnMaster> but mycology couldn't depend on that of course
20:28:57 <ais523> Deewiant: or what about doing it with the y instruction with a massively high argument?
20:29:01 <Deewiant> with minifunge fingerprints are obsoleted anyway :-)
20:29:19 <AnMaster> ais523, that would need g/p to store how massively
20:29:32 <AnMaster> Deewiant, well I'm not sure cfunge will ever implement that
20:29:33 <Deewiant> no it wouldn't actually
20:29:46 <Deewiant> but anyhoo
20:29:51 <AnMaster> + minifunge can't do anything that C/D/whatever fingerprints can do
20:29:55 <Deewiant> I still think 26 extra instructions for 'r' is kinda pointless
20:30:08 <ais523> Deewiant: the point is that they aren't for 'r'
20:30:15 <Deewiant> AnMaster: it can do everything they can without requiring an interpreter update
20:30:16 <ais523> rather they're undefined, so error until you give them a definition
20:30:26 <ais523> sort of like CREATE-able instructions in INTERCAL
20:30:27 <Deewiant> might as well define them to be useful by default
20:30:27 <AnMaster> Deewiant, really? open sockets? read files?
20:30:34 <ais523> DO T .1 is an error by default
20:30:43 <ais523> but it's in iffit1.i and it gains a meaning by the time that line runs
20:31:05 <Deewiant> AnMaster: not sure, if = is there then yes but nonportably
20:31:08 <AnMaster> Deewiant, implement TRDS in pure minifunge and I may be interested
20:31:15 <Deewiant> heh
20:31:21 <Deewiant> just writing a simple test for TRDS took weeks
20:31:32 <AnMaster> Deewiant, yes I know how mad it is
20:31:34 <Deewiant> (including implementing it in D, though)
20:31:40 <Deewiant> but still
20:31:46 <Deewiant> the point is that you can ship fingerprints with your program
20:32:03 <AnMaster> Deewiant, or the forth stack one? could that be done in minifunge?
20:32:04 <ais523> besides, you could have a fingerprint called 0
20:32:10 <Deewiant> AnMaster: yes, it could
20:32:12 <ais523> so all you needed to do was ( at the start of the program to load it
20:32:17 <AnMaster> ais523, not in cfunge without a major crash atm
20:32:25 <Deewiant> many interpreters don't support 0
20:32:27 <Deewiant> ... cfunge included
20:32:35 <AnMaster> Deewiant, well I could support it with some change
20:32:41 <AnMaster> not that hard
20:32:41 <ais523> well, technically speaking there are no limitations on fingerprint names
20:32:44 <Deewiant> of course, they all could
20:32:45 <ais523> they're just numbers
20:32:48 <Deewiant> but many don't, regardless
20:32:52 <AnMaster> just need to store the last valid fingerprint in some other way
20:33:08 <AnMaster> Deewiant, currently I know that I reached end of the fingerprint array by a 0
20:33:19 <Deewiant> uninteresting
20:33:40 <AnMaster> ais523, and yes indeed
20:34:03 <AnMaster> however there are two things to note for funge 108
20:34:31 <AnMaster> 1) each fingerprint will be able to be loaded by URI, existing fingerprints by the "legacy fingerprint" too
20:34:51 <AnMaster> 2) how do do the "push one cell with data for unloading fingerprint"
20:34:58 <AnMaster> anyone got a good idea for the latter?
20:35:11 <Deewiant> how will you differentiate between an URI and a legacy fingerprint
20:35:15 <Deewiant> if they're both done by (
20:35:31 <Deewiant> AnMaster: just say it's an implementation-defined value
20:35:37 <Deewiant> like in REFC
20:35:41 <Deewiant> where it's an array index
20:36:11 <AnMaster> ah good idea
20:36:14 <AnMaster> <Deewiant> how will you differentiate between an URI and a legacy fingerprint
20:36:15 <AnMaster> well
20:36:37 <AnMaster> 1) first try to load it as a uri (it will be gnirts<len> like currently)
20:36:43 <AnMaster> 2) if none match, try to load it the old way
20:36:58 <AnMaster> does that seem sane?
20:37:11 <Deewiant> do URIs have some defined syntax?
20:37:17 <tusho> Deewiant: yes
20:37:26 <tusho> http://en.wikipedia.org/wiki/Uniform_Resource_Identifier
20:37:26 <Deewiant> ah, apparently so
20:37:28 <Deewiant> then that works
20:37:32 <Deewiant> http://en.wikipedia.org/wiki/URI_scheme#Generic_syntax
20:37:33 <Deewiant> rather
20:37:54 <AnMaster> Deewiant, anyway the implementation can, I assume, know what fingerprints it got
20:38:01 <Deewiant> but, still, that breaks old code
20:38:15 <Deewiant> not a bother I guess since other stuff does too
20:38:15 <AnMaster> Deewiant, well "TRUT"4( will still work with that scheme
20:38:35 <AnMaster> while new fingerprints may be uri only
20:39:02 <Deewiant> yes but something sneakier like "TRUT//:ptth"a1+( won't
20:39:25 <AnMaster> um what, would it currently?
20:39:29 -!- RedDak has joined.
20:39:32 <Deewiant> sure
20:39:35 <Deewiant> not that, exactly, of course
20:39:39 <Deewiant> but something equivalent
20:39:42 <AnMaster> Deewiant, also does any code do that?
20:39:43 <Deewiant> since the rules are given
20:39:48 <Deewiant> maybe, I don't know
20:39:57 <Deewiant> it could be written
20:40:19 <AnMaster> I think the majority of the code does it the normal way at least
20:40:38 <Deewiant> certainly
20:40:47 <Deewiant> but I was only saying that that's not fully backwards-compatible
20:40:57 <AnMaster> Deewiant, and funge-98 broke quite some funge-93 code
20:41:02 <AnMaster> a lot of code with spaces in strings
20:41:15 <AnMaster> which wasn't that ucommon at all
20:41:28 <Deewiant> yes, I am aware of this
20:41:29 <AnMaster> also that space thing broke for no good reason IMO
20:41:37 <AnMaster> while I got a good reason for URIs
20:41:41 <AnMaster> name clashes
20:41:47 <Deewiant> you can still get name clashes
20:41:51 <Deewiant> it's just less likely
20:42:12 <AnMaster> Deewiant, yes much less likely, as you should use some domain you own
20:42:18 <Deewiant> given the number of potential funge-108 users it's even less likely ;-P
20:42:32 <Deewiant> yes, you should, but you might not.
20:42:37 <AnMaster> Deewiant, well will you port mycology to it? if it becomes a standard
20:42:48 <AnMaster> Deewiant, well I'm sure eso-std.org will be happy to help then
20:42:50 <Deewiant> nope
20:42:51 <AnMaster> right tusho?
20:42:55 <AnMaster> Deewiant, no?
20:42:59 <Deewiant> nope
20:42:59 <tusho> depends if it's any good
20:43:31 <AnMaster> Deewiant, and there is always stuff like free webhosting pages with lots of ads if you are really desperate
20:43:47 <Deewiant> ccbi and mycology were fun, and I can keep them up to date and free of bugs, but I won't completely rehaul them unless I get /really/ bored
20:46:14 <AnMaster> also we should try to reach the wider befunge community outside this channel, where else is there
20:46:17 <AnMaster> any mailing lists?
20:46:37 <ais523> AnMaster: there's alt.lang.intercal, it's used for all esolangs but is pretty dead at the moment
20:46:44 <ais523> it still has several avid readers, just nobody writes anything there
20:46:55 <AnMaster> ais523, I don't have anywhere I can *post* on usenet afaik
20:46:59 <Deewiant> I posted CCBI only to the esolang wiki
20:47:02 <AnMaster> well maybe google groups? I don't know
20:47:05 <Deewiant> I figured it's the only place with any readers
20:47:28 <AnMaster> ais523, don't you make release announcements there?
20:51:30 <tusho> Google groups is usenet, AnMaster.
20:51:56 <AnMaster> tusho, yeah I should learn how to use that
20:52:25 <Deewiant> google groups also has its own groups which aren't usenet
20:52:38 <AnMaster> hm
20:52:43 <tusho> Deewiant: yes
20:52:45 <AnMaster> Deewiant, they use different namespaces?
20:52:53 -!- sebbu3 has changed nick to sebbu.
20:54:37 <Deewiant> beats me
20:54:50 <Deewiant> I don't use google groups other than for searching
20:54:57 <AnMaster> same so far
20:55:42 <AnMaster> Deewiant, one undef that I plan to change: fingerprints loaded by child ips
20:55:45 <AnMaster> what do you suggest
20:55:49 <AnMaster> that they are loaded or not?
20:55:57 <AnMaster> I'd go for "loaded by child ips too"
20:56:04 <Deewiant> whatever
20:56:25 <AnMaster> Deewiant, hm? yes I know ccbi does it the other way, but I feel keeping them loaded makes more sense
20:56:28 <AnMaster> but maybe that is just me
20:56:47 <Deewiant> yes it probably does
20:56:48 <tusho> they do use diferent namespaces
20:56:51 <tusho> *different
20:57:05 <AnMaster> what does tusho and ais523 think about this issue?
20:57:12 -!- pikhq has left (?).
20:58:01 <AnMaster> Deewiant, after all they are clones
20:58:27 <ais523> AnMaster: which issue? I'm not too good with concurrent execution
20:58:42 -!- Slereah- has joined.
20:58:59 <AnMaster> ais523, should the list of loaded fingerprints be duplicated to the child ip, or should new threads start out with no fingerprints loaded?
20:59:17 <ais523> duplicated IMO
20:59:27 <ais523> because you have two threads the same as one old thread
20:59:46 <AnMaster> right, what I think too (but not what ccbi does)
20:59:50 <AnMaster> it was undefined in 98
21:02:07 <AnMaster> Deewiant, should URI matching be case insensitive or case sensitive?
21:02:17 <Deewiant> I don't know anything about URIs
21:02:20 <Deewiant> probably the latter
21:02:26 <AnMaster> ais523, tusho ^
21:02:31 <ais523> insensitive in the domain name, definitely
21:02:36 <ais523> the rest can be case-sensitive, though
21:02:42 <ais523> probably you should make it so it isn't
21:02:42 <tusho> ais523 is right
21:02:45 <tusho> dns is case insensitive
21:02:46 <tusho> URIs aren't
21:03:27 <AnMaster> so. "case insensitive in domain name part but implementation defined for the rest" (said clearer obviously)
21:03:30 <AnMaster> or?
21:03:44 <ais523> makes sense
21:03:50 <ais523> recommend that programs get the case right anyway
21:03:56 <AnMaster> yep
21:04:16 <tusho> not implementation defined AnMaster!
21:04:18 <tusho> then it's not a URI
21:04:21 <tusho> URIs are CASE SENSITIVE
21:04:30 <AnMaster> tusho, except for the domain name part?
21:04:38 <tusho> AnMaster: stop
21:04:40 <tusho> read http://tools.ietf.org/html/rfc3986
21:04:41 <tusho> start again
21:05:42 <AnMaster> "An implementation should accept uppercase letters as equivalent to lowercase in scheme names (e.g., allow "HTTP" as well as "http") for the sake of robustness but should only produce lowercase scheme names for consistency."
21:05:43 <AnMaster> hm
21:05:49 * AnMaster searches onwards
21:06:23 <AnMaster> tusho, best is to just refer to that RFC in other words
21:06:37 <tusho> yes
21:06:38 <AnMaster> tusho, what is the *authoritative* url to that rfc?
21:06:45 <tusho> AnMaster: 'RFC 3986'
21:06:49 <AnMaster> is it the html version you linked?
21:07:00 <tusho> AnMaster: http://tools.ietf.org/rfc/rfc3986.txt
21:07:02 <ais523> AnMaster: that one's on the IETF website so it's likely pretty authoritative
21:07:04 <AnMaster> ah
21:07:17 <AnMaster> ais523, yes but probably the text version is, not the html one
21:07:30 * AnMaster opens kbibtex
21:09:47 <ais523> AnMaster: in my opinion # at the edge should always jump over a space
21:09:55 <ais523> and so execute the first command at the other side, not the second
21:10:06 <ais523> the playfield should act as though it's surrounded by infinite spaces
21:10:26 <ais523> otherwise the playfield size is actually relevant to the way programs behave, and it shouldn't be IMO
21:10:53 <AnMaster> ais523, well I think Deewiant will disagree with that
21:10:59 <ais523> likewise for j off the edge of the map (does mycology test that, by the way?)
21:11:17 <Deewiant> (no)
21:11:33 <Deewiant> AnMaster: and why would I disagree
21:11:43 <Deewiant> that's the smartest way of fixing it IMO
21:11:58 <AnMaster> hm
21:12:02 <Deewiant> but currently it's ambiguous with 3 or 4 different interpretations
21:12:02 <AnMaster> Deewiant, what does ccbi do for it
21:12:16 <Deewiant> void trampoline() { ip.move(); }
21:12:19 <Deewiant> nothing else
21:12:25 <Deewiant> what happens, happens
21:13:40 <AnMaster> hm
21:15:34 <AnMaster> Berners-Lee, T., Fielding, R., and Masinter, L. (2005). Uniform Resource Identifier (URI): Generic
21:15:34 <AnMaster> Syntax.
21:15:34 <AnMaster> URL http://tools.ietf.org/rfc/rfc3986.txt
21:15:41 <AnMaster> I love BibTex
21:15:43 <AnMaster> :D
21:22:47 <ais523> AnMaster: as for k, it would likely be good to describe what 1k^ does; does the pointer start moving upwards from the ^ or from the cell after?
21:23:01 <AnMaster> ais523, that is in my local copy already
21:23:09 <ais523> ok
21:23:10 <AnMaster> I wrote it just about half an hour ago
21:23:23 <AnMaster> and yes k is tricky
21:23:29 <ais523> what does it do? move from the current location if the IP or delta changed, from the next location otherwise?
21:23:43 <AnMaster> // The weird stuff below, is, as described by CCBI:
21:23:43 <AnMaster> // Instruction executes *at* k
21:23:43 <AnMaster> // If the instruction k executes, changes delta or position, we are finished.
21:23:43 <AnMaster> // If it doesn't we should jump to *after* the instruction k executed.
21:23:58 <ais523> what if it changes position and then changes it back again?
21:23:59 <AnMaster> I just rewrote that for the standard to be more generic
21:24:05 <AnMaster> ais523, like what?
21:24:08 <ais523> or delta
21:24:10 <ais523> say, like 4k[
21:24:28 <AnMaster> Deewiant, help! ;P
21:25:06 <AnMaster> ais523, I think that should be treated as "If it doesn't we should jump to *after* the instruction k executed."
21:25:24 <ais523> yes
21:25:30 <ais523> but does it count as changing delta or position there?
21:25:37 <AnMaster> ais523, I'd say: no
21:25:40 <ais523> it did, it just changed it bacj
21:25:44 <Deewiant> AnMaster: wut
21:25:44 <ais523> s/bacj/back/
21:25:49 <ais523> Deewiant: what does 4k[ do?
21:25:57 <Deewiant> varies
21:25:58 <Deewiant> :-P
21:25:59 <ais523> it changes the delta, but then changes it back to its original value
21:26:05 <ais523> Deewiant: what should 4k[ do?
21:26:08 <AnMaster> Deewiant, what *should* 4k[ do then?
21:26:25 <Deewiant> I honestly don't know
21:26:31 <Deewiant> the problem is stuff like 0k^
21:26:35 <Deewiant> which you'd like to do nothing
21:26:46 <Deewiant> and yet have 4k[ also do nothing
21:26:53 <ais523> personally, I think 1k^z should be equivalent to zzz^
21:26:56 <Deewiant> you can't really have both at once
21:26:58 <ais523> it's a lot more orthogonal that way
21:27:12 <Deewiant> 1k^z or 1kz^
21:27:16 <AnMaster> ais523, err, k only takes one tick
21:27:17 <AnMaster> ever
21:27:21 <ais523> AnMaster: not wrt ticks
21:27:24 <AnMaster> yes
21:27:28 <ais523> wrt where the IP ends up
21:27:33 <AnMaster> ah
21:27:36 <AnMaster> um
21:28:36 <Deewiant> ais523: 1k^z or 1kz^
21:28:47 <ais523> 1k^z
21:28:52 <ais523> i.e. do ^ once, then do nothing
21:29:11 <AnMaster> Deewiant, wrt fingerprint loading and implementation defined index: should that index also be usable to load the fingerprint with?
21:29:14 <Deewiant> and if it does ^... it doesn't hit the z
21:29:18 <ais523> because, say, 1k4z pushes only one 4
21:29:23 <Deewiant> AnMaster: up to you
21:29:24 <ais523> I mean, it should do the ^ at the z
21:29:29 <ais523> i.e. after the command finishes executing
21:29:34 <Deewiant> ah, that's interesting
21:29:42 <Deewiant> haven't thought of that
21:29:45 <Deewiant> hmm
21:30:15 <Deewiant> so it changes the delta, but still executes the z afterwards?
21:30:16 <AnMaster> um?
21:30:26 <AnMaster> well that doesn't seem sane
21:30:28 <Deewiant> so more like zz^z
21:30:35 <Deewiant> because I can't see zzz^ making sense
21:30:51 <ais523> Deewiant: basically, consider what 1k4z does, it pushes 4 once, right?
21:31:01 <Deewiant> aye
21:31:01 <ais523> that's because after the 1k4, the next command to execute is the z
21:31:15 <ais523> so after doing 1k^z, the next command to execute should likewise be the z
21:31:27 <Deewiant> yes, I see all this
21:31:31 <AnMaster> ais523, doesn't make sense really as it changed direction
21:31:32 <Deewiant> but why zzz^ and not zz^z
21:32:09 <ais523> AnMaster: well, what would 1k>z do? Would it run the > twice?
21:32:25 <ais523> I think I see what you're getting at now
21:32:33 <Deewiant> ais523: 2k#12345
21:32:35 <AnMaster> ais523, um that doesn't change so that would execute z the next tick
21:32:39 <AnMaster> also there is the issue of: 2k; blah blah;4
21:32:41 <Deewiant> what's the next instruction after the k
21:32:44 <AnMaster> what do you do then?
21:32:57 <AnMaster> Deewiant, that is a good question!
21:33:00 <ais523> AnMaster: I treat that identically to 2k4, the bit in-between is invisible
21:33:15 <AnMaster> ais523, right like spaces then
21:33:22 <ais523> well, 1k#12345 should be identical to zz#12345
21:33:34 <ais523> so 2k#12345 should be identical to zzz#2345
21:33:39 <AnMaster> because in funge-108 Chris Pressy said that spaces should be skipped, I can paste the emails somewhere if you want
21:33:57 <Deewiant> so your rule of thumb is, 1kX is always zzX and 0kX is zzz (forgetting about ticks)?
21:33:58 <ais523> AnMaster: I'm not surprised, IMO that was the intention all along, it's just # that acts oddly
21:34:03 <ais523> Deewiant: yes
21:34:21 <ais523> then 1k^z is zz^z which makes sense
21:34:28 <Deewiant> yes, exactly
21:34:31 <AnMaster> ais523, he also said:
21:34:31 <Deewiant> and not zzz^ like you said :-)
21:34:32 <AnMaster> My feeling is that #2 is the right answer: reach past the space and
21:34:33 <AnMaster> execute the c instruction 4 times. That is, when the spec says "next"
21:34:33 <AnMaster> it means "next instruction that would be executed if the k wasn't even
21:34:33 <AnMaster> there".
21:34:33 <AnMaster> However... if you take this as a principle, it suggests that the #
21:34:36 <AnMaster> instruction should skip the next instruction that would be executed,
21:34:38 <AnMaster> in the same way, no matter how many spaces there are between the # and
21:34:40 <AnMaster> the next instruction. I don't think anybody expects # to work that
21:34:42 <AnMaster> way!
21:34:46 <AnMaster> (#2 was execute next instruction after the spaces)
21:34:53 <Deewiant> AnMaster: so he's thought about it the same way I have. :-)
21:35:04 <ais523> AnMaster: # to me seems to be 'wrong' in a sense
21:35:07 <AnMaster> Deewiant, yes but you all got be so confused now
21:35:08 <ais523> in that it's un-Fungey
21:35:10 <Deewiant> have you forwarded him my thoughts (which I forwarded to you)
21:35:16 <AnMaster> ais523, k over a lot of stuff is not well defined really
21:35:18 <AnMaster> 2k@
21:35:19 <Deewiant> it might save him some thinking :-P
21:35:21 <AnMaster> for concurrent
21:35:22 <AnMaster> or
21:35:25 <AnMaster> 2kt
21:35:27 <ais523> because it cares about the dimensions of the playfield, not of the current situation
21:35:40 <AnMaster> right
21:35:45 <ais523> thinking about this INTERCAL style, k would 'supercharge' the next instruction to act multiple times
21:35:51 <AnMaster> so it should always execute first instruction then?
21:36:04 <ais523> AnMaster: examples? I'm not sure exactly what you mean
21:36:32 <AnMaster> ais523, I mean, when # wraps it is always the first instruction after wrapping that will execute next
21:36:39 <AnMaster> as in it won't skip first after wrapping
21:36:49 <ais523> yes, that makes sense too
21:36:55 <AnMaster> however
21:36:57 <AnMaster> # f
21:37:01 <AnMaster> will execute f
21:37:02 <AnMaster> right?
21:37:18 <ais523> actually, what would make the most sense would be for 2k#12345 to be identical to 2k;;2345 and for # to take no ticks
21:37:21 <ais523> but that would be quite a change
21:37:27 <ais523> and yes, # f should execute f
21:38:04 <ais523> it's clear to me that space and semicolon change the shape of the playfield, rather than being commadns
21:38:11 <ais523> maybe # should do the same thing?
21:38:20 <AnMaster> yes space and ; are markers
21:38:25 <ais523> should # be too?
21:38:29 <AnMaster> not sure
21:38:34 <AnMaster> what does Deewiant think?
21:38:45 <Deewiant> sounds interesting to be sure
21:39:07 <Deewiant> AnMaster: forward Chris my stuff since he seems to be thinking about it, I've done a lot of the thinking already
21:39:07 <AnMaster> but k always take one tick ais523
21:39:23 <ais523> AnMaster: yep
21:39:23 <Deewiant> is that a problem?
21:39:24 <AnMaster> Deewiant, you want me to paste this discussion to him?
21:39:30 <Deewiant> AnMaster: no, I mean my e-mails
21:39:41 <Deewiant> which I'm fairly sure I forwarded to you many months ago
21:39:47 <Deewiant> on original discussion of k
21:39:49 <AnMaster> Deewiant, you sent me emails? from what mail
21:40:01 <AnMaster> I got several thousands mails around
21:40:02 <Deewiant> probably from my iki.fi-address
21:40:07 <AnMaster> Deewiant, which is
21:40:09 <ais523> let's see... does it make sense for space # space to be equivalent to ; space ;
21:40:11 <AnMaster> /msg if you want
21:40:13 <Deewiant> just search for my name
21:40:20 <Deewiant> (which is in /whois)
21:40:26 <ais523> i.e. # is changing the shape of the playfield rather than moving the IP
21:40:57 * AnMaster waits for it to search
21:41:05 <AnMaster> could take a while heh
21:41:18 <AnMaster> ais523, um?
21:41:22 <Deewiant> O_o
21:41:33 <tusho> AnMaster: I have Google's over-a-decade worth of work on search powering my email search.
21:41:34 <tusho> :)
21:41:41 <AnMaster> "No matches found" for you last name in message body
21:41:43 <AnMaster> Deewiant, ^
21:41:51 <Deewiant> in body? how about in sender?
21:41:54 <ais523> well, in my view spaces are actually not commands, but instead cause the cells on either side to become adjacent
21:42:07 <ais523> likewise semicolons cause the commands either side to become adjacent over a longer distance
21:42:08 <Deewiant> the "From:" header, that is
21:42:12 <AnMaster> nor in from
21:42:22 <ais523> might it make sense for # to screw around with adjacencies too, rather than being a command?
21:42:23 <Deewiant> meh, guess I just put em in a pastebin then
21:42:24 <Deewiant> sec
21:42:38 <AnMaster> em? you gone nomic too!?
21:42:44 <AnMaster> oh wait
21:42:47 <AnMaster> misread that
21:42:58 <AnMaster> ais523, err
21:43:00 <AnMaster> ais523, example
21:43:05 <tusho> AnMaster: I object to that insult.
21:43:13 <tusho> Ha! So much for #ESOTERICAN CONSENT
21:43:17 <AnMaster> tusho, what insult?
21:43:25 <Deewiant> AnMaster: gimme an address
21:43:32 <AnMaster> Deewiant, for email? sure
21:43:41 <AnMaster> Deewiant, see /msg
21:43:46 <Deewiant> cheers
21:44:22 <AnMaster> Deewiant, one new mail "Get a bigger one with v1agra"
21:44:25 <AnMaster> not that I guess?
21:44:26 <AnMaster> ;P
21:44:46 <AnMaster> will check later
21:45:49 <Deewiant> sent it now
21:47:24 <AnMaster> k
21:47:42 <Deewiant> didja get it?
21:48:15 <AnMaster> yes
21:48:17 <AnMaster> reading it atm
21:48:19 <Deewiant> great
21:48:22 <Deewiant> I'm off to bed
21:48:35 <Deewiant> forward it to Chris if there's something new there
21:48:38 <ais523> AnMaster: example: 2k#12 is equivalent to 2k;;2 or to zzz22 (not counting ticks)
21:48:50 <Deewiant> and go ahead and send snippets of this discussion too
21:48:54 <Deewiant> but I'm gone now ->
21:49:22 <ais523> bye
21:50:02 <AnMaster> "The problem with that is with nested k, for instance (something I need to add to
21:50:02 <AnMaster> Mycology as soon as I can figure out what should happen): "
21:50:04 <AnMaster> you never did
21:50:07 <AnMaster> hm
21:50:19 <ais523> anyway, I've been thinking about other languages to add as FFIs to INTERCAL
21:50:23 <ais523> I think I can do Brainfuck
21:50:24 <AnMaster> and that is implementation defined
21:50:27 <ais523> possibly also Unlambda
21:50:33 <ais523> although COME FROM in Unlambda will be fun
21:50:39 <AnMaster> ais523, brainfuck would be trivial
21:50:48 <ais523> AnMaster: not quite, but reasonably easy
21:50:54 <AnMaster> ais523, oh why?
21:50:59 <AnMaster> because of loops?
21:51:06 <ais523> AnMaster: because of computed COME FROM, etc
21:51:20 <AnMaster> ais523, well how would that be done at all?
21:51:25 <ais523> you'd practically need to invent a new temporary tape for doing the computations in
21:51:36 <ais523> e.g. (++++++C) would be equivalent to M6C in Funge-98+IFFI
21:51:42 <ais523> the parens are like markers
21:51:47 <AnMaster> um
21:51:51 <ais523> and the computed come from is done on a new temporary tape
21:51:56 <AnMaster> very non-brainfucky
21:51:57 <tusho> ais523: make . turn into 'execute FFI command' in the (tape)
21:52:02 <ais523> AnMaster: yes, I know
21:52:05 <ais523> that's the issue
21:52:11 <ais523> but gotos are non-brainfucky as it is
21:52:16 <ais523> at least, gotos with line labels
21:52:19 <AnMaster> ais523, indeed
21:52:19 <ais523> and so so are come froms
21:52:45 <AnMaster> ais523, what about a CLC/C-INTERCAL FFI?
21:52:50 <AnMaster> that could be pretty interesting
21:52:54 <AnMaster> using libperl I guess
21:52:55 <ais523> AnMaster: yes, also difficult
21:53:03 <ais523> given the way CLC-INTERCAL works
21:53:06 <AnMaster> ais523, oh?
21:53:12 <ais523> practically it would have to be done by sending commands over a socket or something
21:53:21 <AnMaster> ais523, why is that?
21:53:37 <ais523> AnMaster: the way CLC-INTERCAL works is so complicated that even I have trouble describing it
21:53:46 <ais523> probably only me and Claudio have much of an idea of how it works
21:53:49 <ais523> him more than me
21:54:17 <ais523> but basically, you couldn't just call functions in CLC-INTERCAL to get things to happen
21:54:25 <ais523> because the control structures are so convoluted
21:54:28 <ais523> and they act non-locally
21:54:29 <AnMaster> I see
21:54:33 <ais523> you can even change the syntax at runtime
21:54:42 <AnMaster> ais523, pretty much like C-INTERCAL then?
21:54:44 <ais523> also, programs aren't even compiled until after they start running
21:54:48 <ais523> AnMaster: much more so than in C-INTERCAL
21:55:01 <ais523> C-INTERCAL allows you to give meaning to syntax that didn't have a meaning beforehand, within limits
21:55:01 <AnMaster> ais523, you mean they are compiled in CLC?
21:55:07 <AnMaster> not just interpreted?
21:55:09 <ais523> in CLC-INTERCAL you can even change the grammar at runtime
21:55:13 <AnMaster> is it JITTING?!
21:55:15 -!- Corun has quit ("This computer has gone to sleep").
21:55:18 <ais523> AnMaster: worse than jitting
21:55:23 <AnMaster> worse than jitting?
21:55:28 <AnMaster> wtf is worse than that in perl
21:55:44 <ais523> it actually runs the program until it errors, then goes back and compiles the bit of the program that didn't work under the current compiler
21:55:46 <tusho> ais523: i think you should abandon C-INTERCAL, 'cause CLC totally has you beat
21:55:51 <ais523> and the compiler can be changed from within the program
21:55:57 <AnMaster> ais523, oh my
21:56:00 <ais523> tusho: C-INTERCAL and CLC-INTERCAL have different goals completely
21:56:16 <ais523> yes, CLC-INTERCAL has C-INTERCAL beat on sheer esotericness, and probably it will always be that way
21:56:33 <ais523> but C-INTERCAL is faster, and compiles to something relatively sane
21:56:39 <AnMaster> ais523, you need posix_fadvise(), that will beat CLC on "get tusho madiness"
21:56:46 * AnMaster runs
21:57:25 <AnMaster> ais523, maybe even make C-INTERCAL a sleek and beautiful beast (could that be done?)
21:57:34 <ais523> AnMaster: well, it is compared to CLC-INTERCAL
21:57:41 <ais523> possibly it was always meant to be
21:57:42 <AnMaster> oh my
21:57:51 <ais523> the compiler's a mess, but the result is not too bad
21:57:59 <ais523> especially when neither -e nor -m is used
21:58:05 <ais523> that way it doesn't do any stupid stack tricks
21:58:06 <AnMaster> ais523, making the compiler nicer would be cool
21:58:08 <ais523> it just becomes a C program
21:58:16 <AnMaster> I may make some patches to fix valgrind issues if I have time
21:58:21 <ais523> AnMaster: well, the problem is trying to track all the allocations and deallocations
21:58:27 <ais523> it gets confusing very quickly
21:58:50 <AnMaster> ais523, at least some should be pretty clear like "this is never visible outside this function, so add a free() at the end"?
21:59:17 <ais523> AnMaster: yes, but those aren't responsible for memory leaks
21:59:27 <ais523> the issue is that the entire program is compiled into a massive binary tree in memory
21:59:30 <AnMaster> ais523, of course is way harder to fix existing code than when you are writing it
21:59:39 <ais523> and the issue is freeing bits of it in the right order
21:59:46 <AnMaster> which is why I always debug each fingerprint in valgrind before even committing it
21:59:52 <AnMaster> and each new feature
22:00:29 <AnMaster> <ais523> AnMaster: yes, but those aren't responsible for memory leaks <-- yes they are to a certain extent
22:01:21 <ais523> AnMaster: I mean, not in this code
22:01:30 <ais523> those are all caught by splint
22:01:36 <ais523> which I've run over the whole code
22:01:48 <ais523> I even tried to annotate, but I gave up on some bits because the referencing was so weird
22:01:54 <AnMaster> haha
22:02:03 <AnMaster> well I'd used splint on parts
22:02:13 <AnMaster> but it fails horribly on even simple C99 stuff like:
22:02:22 <AnMaster> for (int i = 0; i < foo; i++)
22:02:27 <AnMaster> that is putting int there
22:03:25 <ais523> well, C-INTERCAL isn't C99, so I didn't have that problem
22:03:32 <ais523> in fact, it originally wasn't even C89
22:03:33 <ais523> but older
22:03:58 <AnMaster> right
22:04:14 <AnMaster> ais523, apart from mem leaks, are there any other valgrind errors?
22:05:34 <ais523> AnMaster: no, I don't think so
22:06:06 -!- Corun has joined.
22:06:21 <AnMaster> ais523, :)
22:06:39 -!- poiuy_qwert has joined.
22:06:42 -!- Judofyr has quit.
22:07:07 <ais523> AnMaster: at least all the commonly-used codepaths are fine
22:07:12 <AnMaster> ais523, heh
22:07:22 <ais523> every now and then, though, someone comes up with some strange way of using ick that malfunctions
22:07:35 <AnMaster> ais523, I pondered writing a test suite for cfunge using check but gave up on that idea
22:07:38 <ais523> maybe I should just try every single possible combination of command-line args to see which ones work
22:07:58 <AnMaster> ais523, I tried running ick on some CLC-INTERCAL code and it generated invalid C as output iirc
22:08:08 <ais523> AnMaster: that's strange, it shouldn't do that
22:08:15 <AnMaster> let me find the code
22:08:26 <ais523> oh, btw, cfunge goes into an infinite loop if you enter input with no numeric characters when asked to input a number
22:08:39 <AnMaster> ais523, yes it will "try again" then basically
22:08:46 <AnMaster> until you enter a valid number
22:08:53 <AnMaster> if that is what you mean, it is intentional
22:09:08 <ais523> ah, I assumed it was just broken
22:09:16 <ais523> maybe it should print "Redo from start" like in BASIC
22:09:24 <AnMaster> ais523, http://intercal.freeshell.org/examples/hello.i <-- that, after fixing PLEASE ratio to conform to what ick wants
22:09:26 <ais523> what if it gets an EOF in the input when inputting a number?
22:09:30 <ais523> or a character, for that matter?
22:09:36 <AnMaster> ais523, good question
22:09:38 <AnMaster> let me try
22:09:59 <AnMaster> ais523, Ctrl-D seems to be ignored
22:10:00 <ais523> AnMaster: I tested on that program too...
22:10:06 <ais523> AnMaster: redirect from /dev/null
22:10:14 <ais523> can you reproduce the problem at your end?
22:10:26 <AnMaster> ais523, with cfunge or ick?
22:10:29 <tusho> brb
22:10:30 <ais523> AnMaster: with ick
22:10:33 <AnMaster> it was last release of ick
22:10:35 <AnMaster> not darcs
22:10:48 <ais523> AnMaster: what did you modify in it?
22:11:07 <AnMaster> ais523, just the PLEASE ratio to remove some please on the line that said "PLEASE PLEASE PLEASE (PRETTY PLEASE)"
22:11:13 <AnMaster> or ick didn't like it
22:11:17 <ais523> AnMaster: ah, ok
22:11:26 <ais523> because to C-INTERCAL, the whole of the rest of the program is one statement
22:11:36 <ais523> no, sorry
22:11:40 <ais523> each of the ERROR lines is one statement
22:11:43 <ais523> let me try
22:11:58 <AnMaster> ais523, wait not invalid c
22:12:00 <AnMaster> linker error
22:12:12 <AnMaster> remove the whole "please please please pretty please" line
22:12:17 <AnMaster> $ bin/ick hello.i
22:12:17 <AnMaster> /tmp/ccBpzVat.o: In function `ick_og6669c0':
22:12:17 <AnMaster> hello.c:(.text+0x1ca): undefined reference to `ick_or0'
22:12:19 <AnMaster> and so on
22:12:26 <AnMaster> ais523, is that supposed to happen?
22:12:36 <AnMaster> ais523, other programs work
22:12:37 <ais523> no, it isn't
22:12:41 <AnMaster> in pit of ick
22:12:49 <ais523> it seems to have utterly confused the type-checker
22:12:53 <ais523> that's what that error always means
22:13:01 <ais523> that something wasn't given a data-type at all
22:13:03 <AnMaster> ais523, well that's a bug then I guess?
22:13:07 <ais523> yes, definitely
22:13:14 <AnMaster> A BUG A BUG!
22:13:15 <ais523> I'll have to look into what it is that failed to type-check
22:13:20 <AnMaster> ON THE WAY TO ANYWHERE
22:13:31 <AnMaster> CORRECT COMPILER AND RESUBNIT
22:13:33 * AnMaster runs
22:13:46 <AnMaster> or better:
22:14:06 <AnMaster> ON THE WAY TO CALIFORNIA
22:14:08 <AnMaster> XD
22:14:09 <ais523> ah, I think I get what's happening
22:14:15 <ais523> let me see if I can create a minimal test case
22:14:18 <ais523> to send off to me...
22:14:26 <AnMaster> ais523, got that yet in your program? in the way to <real world location>?
22:14:35 <ais523> AnMaster: there's ON THE WAY TO THE NEW WORLD
22:14:36 <AnMaster> could be quite fun for something I guess
22:14:39 <ais523> on something
22:14:45 <AnMaster> ais523, which means?
22:14:46 <ais523> also ON THE WAY TO THE CLOSET
22:14:48 <ais523> neither is mine
22:14:53 <AnMaster> k
22:14:59 <ais523> and I can't remember what error message they correspond to
22:15:04 <ais523> because that's the last line
22:15:13 <ais523> not the bit at the start, which is normally related to the error somehow
22:15:18 <AnMaster> true
22:15:22 <ais523> the one's that aren't aren't that hard to memorise
22:15:23 <AnMaster> um
22:15:25 <AnMaster> last line is
22:15:27 <AnMaster> CORRECT SOURCE AND RESUBNIT
22:15:28 <AnMaster> right?
22:16:15 <ais523> PLEASE DO .1/.?2 SYNTAX:ERROR
22:16:19 <ais523> AnMaster: I think so
22:16:24 <ais523> and that's my minimal test case
22:16:27 <ais523> to reproduce the error
22:16:38 <AnMaster> ais523, and that what is that supposed to do?
22:16:44 <ais523> nothing, it's an error
22:16:52 <ais523> the point is, it gets halfway through compiling the code
22:16:54 <AnMaster> well not a linker error right?
22:17:00 <ais523> AnMaster: yes, let me explain
22:17:05 -!- pikhq has joined.
22:17:11 <ais523> the .1/.?2 is a symlink
22:17:22 <AnMaster> um
22:17:23 <AnMaster> what
22:17:30 <AnMaster> symlink inside a language?
22:17:30 <pikhq> There's far too many cool things to do.
22:17:34 <ais523> meaning that from now on, .1 should mean the value of .?2
22:17:39 <AnMaster> pikhq, very true
22:17:40 <ais523> AnMaster: yep, symlinked variables
22:17:45 <AnMaster> pikhq, life is too short
22:17:49 <ais523> you can have great fun with that
22:17:50 <AnMaster> ais523, oh god
22:17:59 <pikhq> Do I want to work on Def-BF?
22:18:01 <pikhq> My kernel?
22:18:03 <pikhq> Learning D?
22:18:07 <AnMaster> ais523, well in C you could do aliased pointers
22:18:07 <ais523> now, this means I have to generate code to calculate the XOR of .2 if needed
22:18:10 <pikhq> Helping Gregor with Plof?
22:18:13 <ais523> because something might be symlinked to it
22:18:21 <ais523> however, then there's a syntax drror
22:18:23 <AnMaster> pikhq, call fork(), problem solved
22:18:24 <ais523> s/drror/error/
22:18:28 <ais523> so that wasn't a real command after all
22:18:39 <ais523> so the typecaster is never run on it
22:18:49 <AnMaster> ais523, right
22:19:06 <AnMaster> ais523, and that means?
22:19:08 <ais523> therefore, it generates code that is never used in the program, without typecasting it first
22:19:15 <AnMaster> ais523, ouch
22:19:19 <AnMaster> ais523, hard to fix?
22:19:21 <ais523> so it tries to do a (undefined memory)-bit XOR rather than a 16-bit or 32-bit XOR
22:19:31 <ais523> and you get a linker error
22:19:37 <ais523> because that sort of XOR isn't in the runtime library
22:19:48 <ais523> as for hard to fix, probably not
22:19:57 <AnMaster> k
22:19:59 <ais523> I can think of a reasonably easy way to fix it that generates a lot of dead code
22:20:07 <ais523> I'm currently wondering if there's a better way
22:20:23 <ais523> after all, that function is never actually called
22:20:28 <ais523> so the linker error doesn't matter
22:20:31 <ais523> just the linker doesn't know that
22:20:42 <ais523> if C was like INTERCAL, then the error would be just fine as long as it was never encountered
22:20:59 <AnMaster> ais523, what about "generate the unneeded code in case we get a linker error" XD
22:21:09 <AnMaster> or use llvm
22:21:12 <AnMaster> which does runtime linking
22:21:21 <ais523> no, those are both insane methods
22:21:31 <ais523> besides, the unneeded code is generated at present
22:21:33 <AnMaster> ais523, yes very intercallish though XD
22:21:37 <ais523> and the linker error is in that code
22:21:45 <ais523> so there's an error because it can't find a function it'll never use
22:22:29 <AnMaster> ais523, does intercal have floating or fixed point at all?
22:22:35 <AnMaster> could you do sin() and such in it?
22:22:55 <ais523> AnMaster: it doesn't have any sort of maths by default, but libraries are available both for integer arithmetic and for floating-point arithmetic
22:23:04 <ais523> both work by bitwise manipulation
22:23:13 <AnMaster> ais523, and for sin() and such high level stuff?
22:23:22 <ais523> yep, that's in the floating-point library too
22:23:28 <AnMaster> ais523, oh god
22:23:30 <ais523> I was quite astounded that someone was actually bothered to write that
22:23:33 <ais523> it isn't standard
22:23:40 <ais523> but it's one of the examples bundled with the compiler
22:23:41 <AnMaster> asin()? cos() acos() too?
22:23:50 <ais523> let me find the list of what's supported
22:24:16 <AnMaster> ais523, cfunge supports trigonometry by 3 different fingerprints, FIXP, FPDP, FPSP
22:24:35 <ais523> ugh, tusho's doing one of their big reorganisations at the moment, so it isn't online
22:24:35 <AnMaster> (fixed point, various math functions, double floating point, single floating point)
22:24:39 <ais523> I'll find it on my own compute
22:24:44 <ais523> AnMaster: yes, but those fingerprints are written in C
22:24:49 <AnMaster> ais523, is the repo down?
22:24:50 <ais523> the floating-point library is written in INTERCAL
22:24:53 <AnMaster> ais523, yes they are
22:24:56 <ais523> AnMaster: yes, temporarily
22:24:59 <AnMaster> and they just use libmath
22:25:06 <AnMaster> err
22:25:08 <AnMaster> libm
22:25:24 <AnMaster> ais523, well I wouldn't know how to write it in C even
22:25:28 <AnMaster> sin and such I mean
22:25:51 <AnMaster> I would use lookup tables or a calculator, I couldn't calculate it by hand
22:26:15 <AnMaster> well if I had sin() I could calculate cos() and tan()
22:26:27 <AnMaster> and possibly arcsin() and such too
22:26:40 <ais523> + - floor (both integer and real result) * / mod cast-from-integer sqrt ln exp pow sin cos tan random
22:26:44 <ais523> that's what's supported
22:26:51 <AnMaster> ah
22:27:03 <AnMaster> ais523, do you optimize those into C?
22:27:08 <ais523> no
22:27:10 <AnMaster> iirc you said you did for some parts in syslib
22:27:16 <ais523> it would be easy enough to write an expansion library that does
22:27:33 <ais523> and no, what I have is a version of syslib in both C and in INTERCAL, and you can link either
22:27:39 <AnMaster> ah
22:27:45 <AnMaster> ais523, does one need ec then?
22:28:09 <ais523> you need -e to link syslibc
22:28:18 <ais523> whereas the INTERCAL version needs no command-line options
22:28:20 <AnMaster> oh so can't be done with threads then
22:28:25 <ais523> yes, that's it
22:28:44 <AnMaster> ais523, hm could you optimize syslib to work even with threads?
22:29:03 <ais523> AnMaster: yes, probably, but it would be quite a bit of effort
22:29:26 <AnMaster> ais523, is the C one much faster?
22:29:33 <ais523> AnMaster: I'm not sure
22:29:39 <ais523> the INTERCAL one's not all that slow, actually
22:29:44 <ais523> C-INTERCAL is pretty optimised for an INTERCAL compiler
22:29:47 -!- Slereah- has quit (Connection timed out).
22:29:58 <ais523> let me try something
22:30:03 <AnMaster> k
22:30:44 <ais523> I'm going to time primes.i with various different command-line arguments
22:31:21 <AnMaster> nice
22:31:34 <AnMaster> ais523, what about a pure C version just to compare
22:31:37 <AnMaster> would be very nice
22:31:58 <AnMaster> (using sieve of Atkins maybe?)
22:32:16 <ais523> a pure C version using the same algorithm as the INTERCAL would be an interesting comparison
22:32:16 <AnMaster> http://en.wikipedia.org/wiki/Sieve_of_Atkin
22:32:35 <AnMaster> ais523, ah, what algorithm does intercal use then?
22:32:49 <ais523> simple try-all-odd-factors, I think
22:33:02 <AnMaster> ais523, up to the square root I assume?
22:33:36 <ais523> AnMaster: probably, actually probably to half the number as square roots are slow to calculate
22:33:39 <ais523> I didn't write primes.i
22:33:43 <ais523> but it's a well-known benchmark
22:33:46 <AnMaster> hm
22:34:04 <AnMaster> ais523, well you could calculate square root once and then be done with it
22:34:13 <AnMaster> store it in a variable or whatever
22:34:34 <ais523> AnMaster: primes.i finds all primes from 0 to 65535
22:34:43 <ais523> and yes, obviously you'd do it like that
22:35:08 <AnMaster> hm
22:36:59 <ais523> http://pastebin.ca/1065027
22:37:25 <ais523> -beEO is slightly faster than -bfO, but not by a significant amount
22:37:49 <ais523> AnMaster: what do you think?
22:37:52 <AnMaster> hm
22:38:03 <AnMaster> what about that instruction that generates a shell script to output it?
22:38:04 <AnMaster> XD
22:38:10 <ais523> that's -F
22:38:13 <ais523> note how quick that was
22:38:16 <AnMaster> hahaha
22:38:41 <AnMaster> what is -f? and what is -e?
22:38:50 <ais523> -f is flow optimisation
22:39:03 <ais523> and -e is the external-calls system, which is needed to link in syslibc
22:39:09 <AnMaster> -bfeEO <-- what about that
22:39:14 <ais523> -E disables the auto-linking of the INTERCAL version of the system library
22:39:19 <tusho> Back
22:39:29 <AnMaster> ais523, or doesn't that work?
22:39:37 <ais523> AnMaster: -f and -e contradict
22:39:43 <AnMaster> ais523, oh? how so?
22:39:52 <ais523> you can't flow-optimise the external-calls system ATM
22:39:56 <AnMaster> aha
22:40:07 <tusho> the repo will be up soon
22:40:11 <AnMaster> ais523, what about a pure C version then?
22:40:16 <ais523> I'd have to write one...
22:41:11 <AnMaster> ais523, ah right
22:46:12 <AnMaster> "ge/gro.elpmaxe//:ptth"37*( ... v"tset/pf/0/ten.elpmaxe.oof//:rehpog"a7+2*( ... v>"lmth.krow/moc.elpmaxe.www//:ptth"84*( ... S v>... ) ... ) ... ) >
22:46:13 <AnMaster> um
22:46:14 <AnMaster> wtf
22:46:27 <AnMaster> "ge/gro.elpmaxe//:ptth"37*( ... v
22:46:27 <AnMaster> "tset/pf/0/ten.elpmaxe.oof//:rehpog"a7+2*( ... v>
22:46:27 <AnMaster> "lmth.krow/moc.elpmaxe.www//:ptth"84*( ... S v>
22:46:27 <AnMaster> ... ) ... ) ... ) >
22:46:29 <AnMaster> is what I ,eam
22:46:34 <AnMaster> meant*
22:46:34 <ais523> did you just paste some Funge-108 into the channel?
22:46:38 <ais523> if so, why?
22:46:41 <AnMaster> ais523, yes
22:46:44 <AnMaster> for URI
22:46:49 <AnMaster> does it look nice or not
22:46:59 <tusho> AnMaster: maybe you should make it be reversed
22:47:05 <AnMaster> tusho, oh?
22:47:15 <tusho> AnMaster: so that you could write it the right way around
22:47:17 <AnMaster> tusho, the original example was:
22:47:18 <tusho> although I admit it looks pretty as is
22:47:23 <AnMaster> ".G.E"4( ... "TSET"4( ... "KROW"4( ... S ... ) ... ) ... )
22:47:37 <AnMaster> I just assigned some uris and translated the funge98 example
22:47:48 <AnMaster> in a way that would fit within the width of the pdf file
22:47:53 <tusho> AnMaster: but, try reversing those strings
22:47:56 <tusho> it'll look a lot nicer
22:47:57 <AnMaster> simple
22:48:12 <AnMaster> $ echo "ge/gro.elpmaxe//:ptth" | rev
22:48:12 <AnMaster> http://example.org/eg
22:48:24 <tusho> AnMaster: exactly
22:48:30 <AnMaster> tusho, they should be gnirts, not strings
22:48:34 <tusho> "http://example.org/eg"37*
22:48:40 <AnMaster> as befunge does 0"gnirts" elsewhere
22:48:47 <tusho> AnMaster: fine
22:48:48 <AnMaster> tusho, like for i and o instructions
22:48:57 <AnMaster> tusho, I just try to keep it consistent
22:49:03 <ais523> AnMaster: well, personally I like writing strings with left-to-right execution
22:49:07 <ais523> so they look good in the source
22:49:11 <tusho> ais523: ditto...
22:49:12 <ais523> s/left-to-right/right-to-left/
22:49:16 <tusho> oh
22:50:01 <AnMaster> hsi-egnufeB yrev t'nera uoy sey ,ohsut
22:50:02 <AnMaster> !
22:50:19 <AnMaster> tusho, that was to you btw
22:50:31 <tusho> heh
22:50:49 <AnMaster> ais523, is there any emacs command to reverse a selection?
22:50:53 <AnMaster> would be very useful
22:54:14 <AnMaster> tusho, also iirc there is some fingerprint that can read strings from funge-space
22:54:21 <AnMaster> not sure if I implement that yet
22:54:34 <ais523> AnMaster: I don't know
22:54:36 <AnMaster> it is one I most likely will implement however
22:55:01 <AnMaster> I'm going to upload a new pdf and lyx file btw
22:56:48 <AnMaster> uploading
22:57:10 <AnMaster> http://kuonet.org/~anmaster/funge-108/funge108.pdf and http://kuonet.org/~anmaster/funge-108/funge108-lyx.tar.bz2
22:57:13 <AnMaster> ais523, ^
22:57:18 <AnMaster> contains last updates as of today
22:58:23 <AnMaster> ais523, 55 pages now
22:58:39 <AnMaster> I wonder if we can make it as long as the C standard
22:58:41 <AnMaster> just kidding
22:59:56 <ais523> AnMaster: tusho has just moved the C-INTERCAL repo to http://code.eso-std.org/c-intercal/
23:00:06 <tusho> ais523: but with consent from you!
23:00:10 <AnMaster> ais523, how do I make darcs switch
23:00:11 <tusho> jeez, stop twisting words
23:00:11 <tusho> :P
23:00:17 <ais523> tusho: yes, but I'd still like a redirect
23:00:23 <ais523> AnMaster: specify the new URL the next time you pull
23:00:30 <ais523> in fact, try that now, I made a change
23:00:30 <tusho> ais523: i'd like to not innundate eso-std.org with cruft before it even gets started
23:00:36 <ais523> to make it compatible with your fixes to cfunge
23:00:56 <ais523> tusho: well, it'll never get started if nobody can link to it
23:01:01 <AnMaster> ais523, is there any way to auto say y when you pull?
23:01:08 <tusho> ais523: oh shush :)
23:01:08 <ais523> AnMaster: yep, a return
23:01:17 <AnMaster> ais523, I mean for all changes
23:01:29 <ais523> that says y to all changes
23:01:40 <ais523> but I think there's a command-line arg for that too if you find it easier
23:01:41 <AnMaster> ais523, no that says:
23:01:44 <AnMaster> "Invalid response, try again!"
23:01:58 <ais523> darcs pull -a http://code.eso-std.org/c-intercal/
23:02:09 <AnMaster> ah
23:02:20 <tusho> ais523: you might wanna tell a.l.intercal about the new url
23:02:34 <ais523> tusho: not until its stable for a while, until then, you use redirects
23:02:37 <AnMaster> ais523, cftoec.sh is no longer chmod +x?
23:02:42 <ais523> Wikipedia has redirects in that are years old in case people link to them
23:02:52 <ais523> AnMaster: darcs is really bad at versioning permissions, it's a major problem
23:02:55 <ais523> it's meant to be +x
23:03:02 <ais523> but darcs tends to forget the permissions on things
23:03:08 <AnMaster> I see
23:03:44 <AnMaster> ais523, will c-intercal modify cfunge source in place or copy it?
23:04:05 <ais523> AnMaster: it compiles it into a .cio file
23:04:07 <AnMaster> because my cfunge trunk contains lots of cruft like test files and such
23:04:10 <ais523> which is a modified version with some metadata
23:04:19 <ais523> so .cio and .c files with the same name are overwritten
23:04:23 <ais523> oh, cfunge
23:04:26 <ais523> it copies it
23:04:43 <ais523> you probably want to do it from a clean source-tree, though
23:04:51 <ais523> because it just compiles all .c files it finds in the source tree
23:04:58 <ais523> regardless of what they're called
23:05:31 <AnMaster> ais523, fun trick with cfunge that I use myself to test speed:
23:05:46 <AnMaster> -combine
23:06:04 <ais523> AnMaster: well, I don't use that when compiling the library
23:06:07 <AnMaster> that makes certain inter-file optimization possible
23:06:16 <ais523> AnMaster: well, I don't really care about speed for fffungi
23:06:18 <AnMaster> ais523, also it helps me detect certain bugs
23:06:24 <ais523> computed COME FROM is inherently slow
23:06:35 <AnMaster> like extern of variable in source file (forbidden in my coding standard)
23:06:46 <AnMaster> I used it on crossfire however to detect conflicting such extern
23:07:05 <AnMaster> ais523, well what about having non-computed ones as well?
23:07:32 <AnMaster> ais523, I could provide a place to hook in and monitor changes to funge-space so you could just update the info as you need it
23:07:49 <ais523> AnMaster: you're overthinking this, really
23:07:54 <AnMaster> haha
23:07:55 <ais523> besides, -e treats all COME FROMs as computed
23:07:59 <AnMaster> ais523, well I always tend to do that
23:08:10 <ais523> even the ones in the INTERCAL program
23:08:15 <ais523> due to dynamic line labels and such
23:08:47 <AnMaster> ais523, where was the example to try then?
23:08:48 <AnMaster> I forgot
23:08:51 <AnMaster> for cfunge
23:09:04 <ais523> pit/tests/iffit1.i and pit/tests/iffit2.b98
23:09:07 <ais523> you compile them together
23:09:18 <ais523> as ick -bea iffit1.i iffit2.b98
23:09:25 <AnMaster> bin/ick -eba pit/tests/iffit2.b98 pit/tests/iffit1.i ?
23:09:27 <AnMaster> what is -a?
23:09:32 <ais523> AnMaster: enables CREATE support
23:09:36 <ais523> otherwise the very last test fails
23:09:41 <AnMaster> oh I see
23:09:43 <ais523> because the thing it's testing isn't supported
23:09:43 <AnMaster> what is CREATE?
23:09:52 <ais523> AnMaster: gives meaning to syntax that previously didn't have any
23:09:59 <ais523> there's a DO T .1 in the INTERCAL file
23:10:02 <ais523> that means nothing to start with
23:10:08 <AnMaster> $ bin/ick -eba pit/tests/iffit1.i pit/tests/iffit2.b98
23:10:08 <AnMaster> ICL127I SAYING 'ABRACADABRA' WITHOUT A MAGIC WAND WON'T DO YOU ANY GOOD
23:10:10 <ais523> but the Befunge file gives it a definition
23:10:12 <AnMaster> ON THE WAY TO THE CLOSET
23:10:14 <AnMaster> wtf?
23:10:17 <ais523> AnMaster: that's an installation problem
23:10:31 <AnMaster> ais523, so what is wrong?
23:10:45 <ais523> AnMaster: did you reinstall C-INTERCAL after generating the library?
23:10:50 <ais523> otherwise it won't have been installed
23:10:53 <AnMaster> oh no I forgot that
23:10:58 <AnMaster> make install
23:11:00 <AnMaster> still same error
23:11:05 <ais523> strange
23:11:11 <ais523> there's an option to debug that
23:11:14 <ais523> let me remember which one it is
23:11:24 <AnMaster> $ ls /home/arvid/local/ick/lib/
23:11:25 <AnMaster> libick.a libickec.a libickmt.a libyuk.a
23:11:26 <ais523> add -u to the command line
23:11:28 <AnMaster> isn't there
23:11:36 <ais523> ah, why not?
23:11:51 <AnMaster> ais523, no idea
23:11:53 <AnMaster> anyway
23:11:55 <AnMaster> from that command
23:12:02 <ais523> is it in lib in the C-INTERCAL development sources?
23:12:09 <AnMaster> http://rafb.net/p/IusI1X29.html
23:12:24 <AnMaster> $ ls lib/
23:12:24 <AnMaster> COPYING.txt compunex.c coopt.sh ick-wrap.c libick.a libick_ecto_b98.a libickec.a libickmt.a libyuk.a pickwrap.c syslibc.c
23:12:33 <AnMaster> libick_ecto_b98.a I guess?
23:12:37 <ais523> AnMaster: that one's fine
23:12:44 <ais523> it's missing the other half, ecto_b98.c
23:12:45 <AnMaster> ais523, so make install is broken?
23:12:54 <ais523> AnMaster: try make lib/ecto_b98.c
23:13:03 <ais523> I may have screwed up make's dependencies somewhere
23:13:06 <AnMaster> $ make lib/ecto_b98.c
23:13:06 <AnMaster> make: *** No rule to make target `lib/ecto_b98.c'. Stop.
23:13:12 <ais523> yep
23:13:18 <ais523> AnMaster: ah, reconfigure
23:13:18 <AnMaster> ais523, looks like you fail at detecting when to re-generate makefile
23:13:25 <AnMaster> something automake would do for you
23:13:28 <ais523> I don't regenerate the makefile except on request
23:13:33 <AnMaster> so this would be handled automatically in automake
23:13:37 <ais523> I thought that was normal
23:13:54 <ais523> config.status will regenerate it
23:13:57 <AnMaster> ais523, well I'm used to smart build systems
23:14:07 <AnMaster> cmake is semi smart in that aspect
23:14:16 <ais523> working now?
23:14:23 <AnMaster> waiting
23:14:26 <AnMaster> it is recompiling it all now
23:14:38 <ais523> ugh, I must have changed something relevant
23:14:47 <AnMaster> sh -c "[ `whoami` = root ] && : -q"
23:14:47 <AnMaster> make: [install] Error 1 (ignored)
23:14:48 <AnMaster> hm?
23:14:53 <ais523> yep, that's fine
23:15:08 <ais523> I should have put || : at the end of that, though
23:15:13 <AnMaster> ok
23:15:16 <ais523> because that's meant to be able to fail
23:15:17 <AnMaster> ais523, now where is the outfile
23:15:19 <ais523> and it surpresses the error
23:15:21 <AnMaster> can't find it
23:15:24 <ais523> AnMaster: should be iffit1
23:15:26 <ais523> with no extension
23:15:34 <ais523> and it'll be in the same dir as the sources
23:15:34 <AnMaster> $ bin/ick -eba pit/tests/iffit1.i pit/tests/iffit2.b98
23:15:38 <AnMaster> oh ok
23:15:39 <ais523> so pit/tests/iffit1
23:16:13 <ais523> basically it just chops off the extension of the INTERCAL source to give the output file
23:16:19 <AnMaster> ais523, some cool things to write would be some thing to make use of fingerprints to in befunge to make it possible to do stuff you can't normally in intercal easily
23:16:23 <AnMaster> as examples
23:16:29 <ais523> yes, probably
23:16:38 <ais523> although that would be a good example for the C things too
23:16:43 <ais523> did it work, anyway?
23:16:48 <AnMaster> http://rafb.net/p/zIUcbS97.html
23:16:51 <AnMaster> if that is correct then yes
23:16:55 <ais523> run it with +wimpmode if you find Roman numerals hard to read
23:16:58 <ais523> it should just count up to 18
23:17:04 <AnMaster> ==4763== still reachable: 3,208,940 bytes in 287 blocks.
23:17:05 <AnMaster> hm
23:17:15 <ais523> AnMaster: it isn't deallocating the cfunge stuff on exit
23:17:19 <ais523> it can't, really
23:17:23 <ais523> without messing with atexit
23:17:23 <AnMaster> that could be cfunge I guess in RELEASE mode
23:17:26 <AnMaster> ais523, ah
23:17:28 <AnMaster> I see
23:17:42 <ais523> I checked, it's all cfunge internals, and all still-reachable
23:17:43 <AnMaster> well if you study cfunge you will notice it only does it in DEBUG
23:17:46 <ais523> most of it's the hash thing
23:17:59 <ais523> and it's pretty hard to figure out when the deallocation's needed
23:18:05 <AnMaster> DEBUG deallocate EVERYTHING at exit
23:18:14 <AnMaster> RELEASE: assume OS can do it's job
23:18:28 <AnMaster> ais523, well it is needed in atexit() if ever
23:18:37 <AnMaster> I assume OS will do it's job unless DEBUG is set
23:18:55 <AnMaster> ais523, because the only things I deallocate in atexit() are such that need to persist to the very last moment
23:18:59 <ais523> that stuff's all being used until the last moment
23:19:04 <ais523> that is, all the Befunge stuff
23:19:17 <ais523> because everything else is freed by cfunge
23:19:24 <ais523> that's just funge-space and one IP that you're seeing there
23:19:33 <AnMaster> yes cfunge is valgrind clean apart from stuff that aren't really leaks
23:19:37 <ais523> and yes, that is expected output
23:19:52 <ais523> pit/tests/iffit.doc for the expected output with an explanation, by the way
23:20:12 <AnMaster> I assume this is ASCII text?
23:20:17 <ais523> AnMaster: yes
23:20:23 <AnMaster> ah good no word:)
23:20:29 <tusho> "No, it's an MS Word 2007 document."
23:20:32 <ais523> all the C-INTERCAL examples are documented like that
23:20:32 <tusho> "OOXML!"
23:20:35 <ais523> tusho: that would be .docx
23:20:38 <AnMaster> tusho, that would be .docx
23:20:43 <tusho> No it wouldn't.
23:20:46 <AnMaster> oops ais523 was first
23:20:46 <tusho> That's not DOS-compatible!
23:20:48 <ais523> and I think the C-INTERCAL extension predates Word becoming popular
23:20:55 <tusho> They'd have to compromise and use .doc.
23:21:12 <ais523> tusho: .dcx with DJGPP's mangling scheme, I think, it favours removing vowels
23:21:14 <AnMaster> tusho, well they haven't done that
23:21:29 <AnMaster> ais523, that is pretty wtf ;P
23:22:06 <AnMaster> I Printed at the start of the INTERCAL program; tests Y.
23:22:10 <AnMaster> ais523, what does that mean?
23:22:18 <ais523> AnMaster: I is 1 in Roman Numerals
23:22:28 <AnMaster> I mean Y
23:22:28 <AnMaster> ...
23:22:34 <ais523> and Y is "yield", which the Funge program runs once to start the INTERCAL program running
23:22:48 <ais523> i.e. the Funge program starts first, does its initialisation, then runs Y and the INTERCAL program starts
23:22:59 <ais523> you can't use anything else in the fingerprint until you use Y
23:23:03 <ais523> except for A
23:23:05 <AnMaster> ais523, I see, does C program also run first when doing that FFI?
23:23:15 <ais523> AnMaster: C programs can define blocks which run first
23:23:18 <AnMaster> ais523, where are the fingerprint docs btw?
23:23:20 <ais523> once they end, the program starts
23:23:26 <ais523> AnMaster: they're in the texinfo source
23:23:30 <ais523> so doc/ick.txi
23:23:39 <ais523> there's a makefile there that'll compile it to a lot of formats you know
23:23:50 <AnMaster> ais523, pure text would be a good one atm
23:23:53 <ais523> doc/ick.txt
23:23:58 <ais523> but you'll have to search for it
23:24:04 <ais523> because that's one long file that documents everything
23:24:14 <ais523> the text is pregenerated for people who don't have texinfo
23:24:18 <AnMaster> arvid@tux ~/src/c-intercal/doc $ make
23:24:19 <AnMaster> make: *** No rule to make target `x.mm', needed by `x.txt'. Stop.
23:24:22 <AnMaster> it that supposed to happen?
23:24:24 <ais523> yep
23:24:25 <ais523> make allnew
23:24:31 <ais523> for the new documentation
23:24:39 <AnMaster> why the odd error then?
23:24:46 <ais523> actually, I've often wondered why the makefile deliberately chokes when not given a target
23:24:58 <ais523> it's done that since before I started maintaining C-INTERCAL
23:25:05 <ais523> so I assumed there was a good reason...
23:25:10 <AnMaster> ais523, may be worth fixing it then
23:25:10 <ais523> probably there isn't, though
23:25:17 <ais523> it's clearly deliberate
23:25:26 <ais523> although a bit of a strange way to do it
23:25:28 <AnMaster> ais523, well give it something like:
23:25:29 <AnMaster> all:
23:25:38 <AnMaster> echo "Please use one of these targets:"
23:25:41 <AnMaster> or something like tyhat
23:25:49 <ais523> well, I have an all target that builds everything too, I think
23:25:50 <AnMaster> that*
23:25:56 <AnMaster> um?
23:26:03 <ais523> I think normally people don't want everything, though
23:26:04 <AnMaster> all is the default target isn't it?
23:26:12 <ais523> AnMaster: no, the first target is the default
23:26:16 <ais523> no matter what it's called
23:26:22 <AnMaster> ais523, well right, but make default target explain what is going on
23:26:29 <ais523> yes, I should do
23:26:43 <AnMaster> "This section will not make much sense to a non-Funge programmer;
23:26:43 <AnMaster> therefore, if you are not used to Funge, you probably want to skip it."
23:26:52 <AnMaster> well same for a non-intercal programmer ;/
23:26:52 <ais523> yep, that's the one
23:27:06 <ais523> yes, but the whole manual's about INTERCAL
23:27:11 <AnMaster> yes right
23:27:16 <AnMaster> I know
23:27:22 <ais523> and actually, I think it's suitable for people who don't know INTERCAL as long as you read it in order
23:27:25 <ais523> as a learning aid
23:27:39 <tusho> c-intercal should require clc-intercal
23:27:39 <tusho> :D
23:27:41 <ais523> I tried to explain everything reasonably carefully, as a reference
23:27:45 <ais523> tusho: why?
23:27:50 <tusho> for crazity
23:28:19 <AnMaster> ais523, has anyone coded an intercal interpreter or compiler in intercal?
23:28:19 <ais523> tusho: C-INTERCAL isn't crazy, it's the sane end of the INTERCAL implementation market
23:28:22 <AnMaster> that would be crazy
23:28:30 <ais523> AnMaster: I don't think so, INTERCAL's a pain to parse
23:28:34 <ais523> it's even kind-of tricky to lex
23:28:40 <AnMaster> ais523, so a C->INTERCAL compiler
23:28:42 <tusho> ais523: which is still pretty crazy...
23:28:46 <AnMaster> then compile C-INTERCAL using that?
23:28:48 <AnMaster> XD
23:28:53 <ais523> AnMaster: yes, that would probably be easier
23:28:56 <ais523> which is worrying
23:28:59 <AnMaster> ais523, indeed
23:29:14 <AnMaster> ais523, is there a limit of number of lines in INTERCAL?
23:29:19 <ais523> AnMaster: available memory
23:29:24 <ais523> there is a limit to line length, though
23:29:25 <AnMaster> so it is turing complete then
23:29:27 <ais523> and number of line numbers
23:29:33 <ais523> but not all lines need be numbered
23:29:39 <ais523> and it's turing complete quite easily
23:29:41 <AnMaster> ah right
23:29:48 <ais523> in fact, I think it's even turing complete without variables
23:29:59 <ais523> the flow structure is rich enough
23:30:29 <AnMaster> haha
23:30:45 <ais523> I tried to prove that once but got confused
23:31:09 <ais523> anyway, I'm going home now
23:31:16 <ais523> but I'm glad it works
23:31:31 <ais523> hmm... I'd like to give INTERCAL lessons some time, but I'm not sure who'd be interested
23:31:37 <ais523> it's an interesting idea
23:31:41 <ais523> but bye for now, anyway
23:31:45 -!- ais523 has quit ("(1) DO COME FROM ".2~.2"~#1 WHILE :1 <- "'?.1$.2'~'"':1/.1$.2'~#0"$#65535'"$"'"'&.1$.2'~'#0$#65535'"$#0'~#32767$#1"").
23:31:49 <tusho> I would be!
23:31:49 <AnMaster> heh
23:31:53 <tusho> Real-life ones, I assume.
23:32:00 <tusho> :D
23:32:01 <AnMaster> well I couldn't go to UK
23:32:05 <AnMaster> need to sleep as well
23:32:07 <tusho> i could, very easily
23:32:08 <tusho> watch:
23:32:09 <tusho> boom!
23:32:11 <tusho> I just went to the UK
23:32:17 <AnMaster> hah
23:32:21 <AnMaster> you were in UK...
23:32:22 <tusho> didn't have to do much
23:32:27 <tusho> but it's the thought that counts
23:33:40 <AnMaster> hah
23:33:51 <AnMaster> hrrm....
23:33:57 <AnMaster> INTERCAL and Befunge
23:34:00 <AnMaster> the dynamic duo!
23:34:02 * AnMaster runs
23:35:15 <tusho> :D
23:36:05 -!- Sgeo has quit (Connection timed out).
23:36:30 <AnMaster> ./src/fingerprints/IFFI/IFFI.c:38: warning: no previous prototype for 'ick_SaveIPPosDelta'
23:36:30 <AnMaster> ./src/fingerprints/IFFI/IFFI.c:46: warning: no previous prototype for 'ick_RestoreIPPosDelta'
23:36:30 <AnMaster> ./src/fingerprints/IFFI/IFFI.c:54: warning: no previous prototype for 'ick_InterpreterRun'
23:36:30 <AnMaster> ./src/fingerprints/IFFI/IFFI.c:79: warning: no previous prototype for 'ick_iffi_InterpreterOneIteration'
23:36:31 <AnMaster> hm
23:37:29 <AnMaster> will have to tell ais tomorrow
23:39:06 <AnMaster> tusho, but very few warnings :D
23:39:19 <tusho> Yayyyyyyyyyyy.
23:39:41 -!- Corun has quit ("This computer has gone to sleep").
23:40:03 <AnMaster> tusho, just those from IFFI
23:44:23 <AnMaster> tusho,
23:44:28 <tusho> AnMaster,
23:44:34 <AnMaster> I want a permalink to the darcs repo for ick
23:44:42 <AnMaster> one that will work for the next few years
23:44:43 <AnMaster> at least
23:44:51 <tusho> AnMaster: And I want a pony.
23:44:59 <tusho> But http://code.eso-std.org/c-intercal/ should be stable.
23:45:02 <tusho> (With the ending slash.)
23:45:07 <AnMaster> really? good
23:45:29 <tusho> AnMaster: But, you know. There's never any guarantees
23:45:37 <tusho> Who knows if ESO will exist in the next few years?
23:45:58 <tusho> I also doubt people will be desperately trying to follow links to the repository in a few years, AnMaster.
23:46:04 <tusho> Especially not so much that they're disappointed before you can fix it.
23:46:23 <AnMaster> tusho, well a few months then
23:46:31 <AnMaster> I expect this will be stable now :)
23:46:37 <tusho> AnMaster: It'll probably be.
23:46:39 <tusho> It's a reasonable URL.
23:46:47 <AnMaster> tusho, /msg me if you change it
23:47:02 <tusho> AnMaster: I'll just tell you in here...
23:47:11 <tusho> (Actually, I was going to change it and NOT TELL ANYONE about the new URL.)
23:47:13 <AnMaster> tusho, msg is better in case I'm away
23:47:14 <tusho> (Great idea right?)
23:47:33 <AnMaster> tusho, or if I'm not here just use memoserv
23:47:41 <AnMaster> and if I'm here and marked away just use /msg
23:47:57 <tusho> I'll just highlight you.
23:47:58 <tusho> AnMaster.
23:49:57 <AnMaster> tusho, no thanks I don't have a long scrollback
23:50:19 <AnMaster> if I'm not here (I'm going to Norway the day after tomorrow), just use memoserv
23:50:22 <tusho> AnM*ster: if I ever highlight you again, it'll mean I moved it!
23:52:49 <AnMaster> tusho, my client won't be online when I'm in Norway
23:52:52 <AnMaster> thus memoserv
23:53:02 <tusho> AnM*ster: Grep logs!
←2008-07-06 2008-07-07 2008-07-08→ ↑2008 ↑all