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