00:03:52 -!- Slereah2 has joined. 
00:17:31 -!- KingOfKarlsruhe has quit (Remote closed the connection). 
01:00:07 -!- tusho has quit. 
01:16:04 -!- AnMaster_ has joined. 
01:18:26 -!- Slereah2 has quit (Read error: 113 (No route to host)). 
01:26:46 -!- sebbu2 has quit ("@+"). 
01:30:36 -!- AnMaster has quit (Connection timed out). 
02:10:10 -!- olsner has quit ("Leaving"). 
03:14:00 -!- ihope has quit (Read error: 110 (Connection timed out)). 
03:26:17 -!- oerjan has quit ("leaving"). 
03:48:09 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | *goran*?. 
04:37:53 -!- Sgeo has quit (Read error: 110 (Connection timed out)). 
04:56:00 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | ELIZA not ELIZa. 
04:56:04 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | it could be that your terminal shows unknown characters as ?. 
06:32:22 -!- AnMaster_ has changed nick to AnMaster. 
07:50:54 -!- cherez has quit ("Leaving."). 
07:52:04 -!- cherez has joined. 
07:59:59 -!- clog has quit (ended). 
08:00:00 -!- clog has joined. 
08:11:11 -!- puzzlet has joined. 
08:13:05 -!- puzzlet_ has quit (Read error: 104 (Connection reset by peer)). 
08:13:34 -!- cherez has quit ("Leaving."). 
08:14:02 -!- cherez has joined. 
08:14:06 -!- cherez has quit (Client Quit). 
08:16:05 -!- cherez has joined. 
08:16:05 -!- cherez has quit (Remote closed the connection). 
08:16:36 -!- cherez has joined. 
08:16:37 -!- cherez has quit (Client Quit). 
08:16:58 -!- cherez has joined. 
08:22:16 * pikhq hits cherez with a flyswatter. 
08:22:33 <pikhq> Stay, dammit. I know your Internet connection is stable... 
08:22:39 <cherez> The sentiment is not appreciated. 
08:22:42 <pikhq> Hell, it's hooked right next to mine. 
08:36:26 -!- puzzlet_ has joined. 
08:37:13 -!- puzzlet has quit (Remote closed the connection). 
09:16:12 <oklofok> GregorR: damn you, i've highlighted you about both mips and hydra, and you haven't responded, but you have time to play with optbot like 24/7 
09:21:37 <AnMaster> Deewiant, where is "UNDEF: D says 1/0 is inf (NaN or +infinity)" defined to be one of those two values 
09:31:40 <oklofok> ieee 754 should have an exception for where the result is simply not *perfect* 
09:32:05 <oklofok> this way you could actually use it even if you're doing math 
09:32:43 <oklofok> i'm not saying there isn't one, my ieee 754 knowledge is limited to wikipedia, which didn't list the exceptions 
09:34:34 <Deewiant> AnMaster: IEEE 754 says it's +inf, and practically all floating point arithmetic uses approximately that 
09:34:47 <AnMaster> Deewiant, does FPDP say it uses IEEE 754 anywhere? 
09:35:16 <AnMaster> Deewiant, issue: Erlang throws an exception at inf or nan 
09:35:41 <AnMaster> but will mycology handle that? 
09:36:08 <AnMaster> Deewiant, since I can't know if it was inf or nan that IEEE 754 would have produced? 
09:36:21 <AnMaster> ** exception error: bad argument in an arithmetic expression 
09:36:52 <Deewiant> AnMaster: can't you do if y == 0 then push whatever else push x/y 
09:37:17 <AnMaster> Deewiant, sure for division, but what about other stuff, you can get inf by multiplying enough 
09:37:18 <Deewiant> or, push x/y `catch` if x == 0 push nan else push signbit(x) * inf 
09:37:41 <Deewiant> AnMaster: it throws an exception if you get floating point infinity by multiplication? O_o 
09:37:55 <AnMaster> Deewiant, it throws an exception if you get inf or nan 
09:39:37 <Deewiant> so if you do 1e200 * 1e200 what do you get? 
09:39:58 <AnMaster> Deewiant, syntax error. doesn't like that syntx 
09:40:40 <AnMaster> ** exception error: bad argument in an arithmetic expression 
09:41:46 <AnMaster> Deewiant, yes very strange design choice 
09:43:38 <AnMaster> Deewiant, so what would you do? 
09:44:30 <AnMaster> I guess I could resort to using a linked in driver (a module coded in C that is loaded into erlang) but that seems quite complex. 
09:45:01 <Deewiant> I'd probably catch the exceptions and figure it out 
09:45:37 <AnMaster> Deewiant, hm and I'm unable to find a copy of the IEEE 754 specs (for free at least) 
09:46:58 <Deewiant> there's a lot of stuff there that you don't have to care about 
09:47:23 <AnMaster> Deewiant, to know if I should treat it as nan +inf of -inf 
09:47:38 <AnMaster> as they all generate the same exception 
09:48:09 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | hello. 
09:48:20 <Deewiant> wikipedia has this level of info 
09:48:26 <AnMaster> UNDEF: E says asin(2) is nan (actually complex: NaN) <-- from cfunge output 
09:48:50 <Deewiant> I was talking about division there 
09:49:35 <AnMaster> and I can't think of some good heuristics for finding out what inf 
09:50:29 <Deewiant> x + y = -inf if that throws and y < x 
09:50:56 <oklofok> what if x = -inf and y is like 100 
09:51:10 <Deewiant> since it would have thrown previously :-P 
09:51:19 <oklofok> oh i see i'm missing context yes. 
09:51:38 <oklofok> but it's symmetric, how can there be a constraint on y but not x 
09:51:53 <Deewiant> it is possible that you get the bit pattern for -inf pushed on the stack via other means 
09:52:18 <AnMaster> Deewiant, since they are type tagged tuples 
09:52:37 <Deewiant> so what happens if I do 00A (if A was the floating point addition instruction, can't remember) 
09:53:41 <AnMaster> Deewiant, you know about that C compiler for Lisp machines? NULL not 0x0 for example and so on 
09:53:50 <AnMaster> think efunge is something like that but for befunge :P 
09:54:19 <AnMaster> Deewiant, implementation defined 
09:54:23 <Deewiant> whether the machine null pointer has value 0 or not is 
09:54:32 <AnMaster> if 0x0 is used in pointer context however it is indeed true 
09:54:40 <Deewiant> but the implementation should always convert it 
09:54:48 <Deewiant> just like it is guaranteed that '1' == '0' + 1 
09:54:56 <Deewiant> even though the charset might be different 
09:55:02 <AnMaster> Deewiant, depends on if you do int i = 0; char * = (char*)i; 
09:55:20 <Deewiant> that might actually still work 
09:55:30 <Deewiant> but char* x = *(char**)&i; won't 
09:56:01 <AnMaster> Deewiant, oh and g/p will handle the tuples correctly. And any instructions like normal +-*/% will pop a dummy value instead 
09:56:26 <AnMaster> since it is undefined what they will do on floating point values in FPDP 
09:56:52 <AnMaster> Deewiant, oh? using normal + on two floating point numbers in befunge make no sense 
09:57:06 <AnMaster> even if you use unions to store them 
09:57:38 <AnMaster> anything that doesn't care if it is an int or not, use pop(), anything that needs an int use pop_int 
09:57:45 <Deewiant> do you have to p a floating point before g works? 
09:57:55 <Deewiant> or can you do 000p 00g and get 0 as floating point 
09:58:23 <AnMaster> Deewiant, that would be undefined. You would need to use the FPDP functions to create such a floating point number 
09:58:54 <Deewiant> ah well, somewhat limiting but can't be helped I guess 
09:59:05 <AnMaster> I asked Mike about this in an email, and he said ok basically :P 
09:59:17 <oklofok> 11:56:38 AnMaster: Deewiant, oh? using normal + on two floating point numbers in befunge make no sense <<< what, no polymorphism? 
09:59:18 <AnMaster> Deewiant, waiting for email client to load 
09:59:23 <Deewiant> mycology might use 0 to push floating point 0 
09:59:34 <Deewiant> so if you run into problems that might explain it 
09:59:37 <AnMaster> Deewiant, that would reflect. And you invoke undefined behaviour 
09:59:44 <Deewiant> or then it might not, I don't know 
10:00:00 <AnMaster> blergh, haven't checked mail for two days 
10:00:10 * AnMaster waits for about 500 mails to be downloaded 
10:00:37 <AnMaster> the rest are mostly mailing lists 
10:00:42 <Deewiant> you get a lot of spam then :-P 
10:00:52 <Deewiant> and you still get a lot of mail, even with only 30% :-P 
10:01:27 <AnMaster> Deewiant, what do you expect from lists like <projectname>-commits and such :P 
10:01:43 <AnMaster> example: [Crossfire-cvs] SF.net SVN: crossfire:[9912] maps/trunk/quests 
10:02:04 <Deewiant> meh, I'd read such through gmane :-P 
10:02:16 <AnMaster> Deewiant, are you a developer on those projects though? 
10:02:33 <Deewiant> even if I were I'd read through gmane 
10:04:33 <Deewiant> but, something is starting in this classroom so I'm off -> 
10:05:10 <AnMaster> Deewiant, only thing he said was: "However if you cannot use standard functions to duplicate these numbers on the stack or read/write these numbers in funge-space, you may need to augment (add another fingerprint maybe) the extension to provide this ability." 
10:05:26 <AnMaster> dup/swap/put/get/store with s/fetch with ' all works 
10:05:56 <oklofok> is there a way to write like a ping pong in befunge 
10:06:05 <oklofok> i'm not aware of all the fingerprints 
10:06:15 <AnMaster> oklofok, using the NCRS or TERM fingerprint you should be able to do it I guess 
10:06:42 <oklofok> of fingerprints + short descriptions 
10:06:50 <AnMaster> TERM is basic terminal functions like moving cursor to another line and such, while NCRS is more or less full blown ncurses interface iirc 
10:07:06 <AnMaster> cfunge has TERM but not NCRS so I don't know the NCRS details very well 
10:07:51 <AnMaster> oklofok, hm, could be done I guess (rendering 3D image as ascii art or whatever) but it would be too slow to be usable 
10:08:11 <oklofok> i was thinking like not ascii art 
10:08:21 <oklofok> it's an awful way to draw stuff 
10:08:23 <AnMaster> there is the 3DSP fingerprint to handle some vector operations on signle precision floating point vectors/matrices 
10:08:32 -!- puzzlet_ has quit ("leaving"). 
10:08:33 <AnMaster> oklofok, then nothing remotely portable 
10:08:44 <AnMaster> RC/Funge got some "windows handler" thing 
10:09:02 <AnMaster> so probably not usable for anything more than basic dialogs 
10:09:51 <AnMaster> oklofok, you could render images using TURT I guess (turtle style like Logo)... 
10:10:19 <AnMaster> like cfunge and ccbi don't implement the "display in window" only the "save to file" variant 
10:10:27 -!- puzzlet has joined. 
10:10:34 <AnMaster> and rcfunge that got render to window blocks until you close the window 
10:10:47 <AnMaster> so you need the user to close the window every time you drawn to it 
10:11:05 <AnMaster> oklofok, and it is still 2D so any 3D you would need to implement yourself 
10:11:43 <oklofok> have we never met before? i implement everything myself 
10:13:07 <AnMaster> oklofok, well I can't think of a sane way to do it. Nor of an insane one 
10:13:29 <oklofok> sane way to do the 3d calculations yourself? 
10:13:29 <AnMaster> don't know about that old glfunge thing, it used opengl for something iirc, but don't remember what 
10:13:39 <AnMaster> oklofok, no, sane way to display it 
10:13:43 <oklofok> sane way to draw textures and shit using turtles? 
10:13:57 <oklofok> well i was commenting the latter thing, that it's 2d. 
10:13:58 <AnMaster> oklofok, well you could draw it using TURT, but displaying it... 
10:14:32 <oklofok> about displying it i have nothing to say, because it's you who has any idea about these fingreptinrts 
10:14:39 <AnMaster> as I said the show to user command (that far from all implement) blocks until the window is closed in all interpreters I know 
10:15:05 <AnMaster> you can certainly find lists of what each interpreter implements 
10:15:22 <AnMaster> since new are added all the time 
10:15:55 <oklofok> i can find them, the question is will you find them for me :) 
10:16:09 <oklofok> perhaps i'll make my own "draw ip's to screen" fingerprint 
10:16:19 <oklofok> so that you can create befunge code to move the ip's around 
10:16:49 <oklofok> only a part of the codespace would be visible at any point, and only ip's would be seen 
10:17:05 <oklofok> should be simple with threads to make something outta that 
10:18:02 <oklofok> the fruit flies are everywhere :< 
10:18:15 <oklofok> should throw those kebab remains away... 
10:18:27 <oklofok> they've sat there for like 2 weeks 
10:19:15 <AnMaster> oklofok, also the speed would be horrible. cfunge is the fastest interpreter out there. With -O3 -march=k8 -m64 it can manage something like 12000 instructions per second at best on my 2 GHz AMD64. Of course it depends on what funge instruction. I calculated that using a befunge 93 program that implements game of life 
10:20:20 <oklofok> do you optimize parts that aren't self-modifying? 
10:20:34 <oklofok> befunge is one of the best languages for compilations 
10:20:43 <oklofok> because you can always compile it better 
10:21:02 <AnMaster> but the issue is then you tie yourself to a specific instruction set 
10:21:46 <oklofok> no, because i don't know what that is 
10:22:02 <oklofok> seems it's a program of some sort 
10:22:04 <AnMaster> http://en.wikipedia.org/wiki/Low_Level_Virtual_Machine 
10:22:26 <oklofok> i'm thinking just making everything myself :-) 
10:22:44 <oklofok> i'm a programmer, not an installer! 
10:23:18 <oklofok> llvm is like something you can then compile to something real? 
10:23:50 <oklofok> because that's something i probably couldn't do, as real things are full of annoying details, especially x86 
10:24:36 <oklofok> i'm leaving, you can answer my ponderings while i'm gone if you wish -> 
10:28:13 <AnMaster> <oklofok> llvm is like something you can then compile to something real? <-- yes 
10:28:18 <AnMaster> there is also a JIT for it iirc 
10:29:31 <AnMaster> llvm byte code is more or less platform independent. You can then either interpret it (it JITs it) or you can compile it into machine code and link it to a binary 
10:30:10 <AnMaster> llvm can also optimize the byte code. 
11:38:02 -!- oerjan has joined. 
11:42:17 -!- Slereah2 has joined. 
11:44:28 -!- puzzlet has quit (Read error: 60 (Operation timed out)). 
11:44:32 -!- puzzlet has joined. 
11:55:16 <AnMaster> Deewiant, "UNDEF: N says -0 is 0.000000 (-0)" <-- hm??? 
11:56:49 <oerjan> IEEE distinguishes positive and negative zero 
11:57:17 <AnMaster> oerjan, well nowhere does it say FPDP requires IEEE floating point actually 
11:57:47 <fizzie> Which might be why it's UNDEF? 
11:58:34 <AnMaster> fizzie, no it is undef because comparing floating point is tricky in befunge 
11:58:47 <AnMaster> "Because floating point equality is, with epsilons, too tricky, and without them, poorly defined, and because rounding with I is too inaccurate, results of calculations will be UNDEF. The precisely correct answer will follow, to 6 decimal places: the calculated result can be compared to it." 
12:00:03 <fizzie> I guess "precisely correct" here will mean IEEE, then; as said, it's "poorly defined". 
12:00:41 <AnMaster> fizzie, well even in cfunge they don't match in the last decimal place. Nor in CCBI iirc 
12:01:09 <fizzie> Although you don't need to resort to the IEEE explanation in this case: -0 is -0 in the mathematical sense, too. 
12:02:43 <AnMaster> it doesn't seem to have sense to have a signed 0 
12:03:56 <oerjan> it makes 1/0 come out the right infinity 
12:04:57 <AnMaster> oerjan, and 1/0 makes even less sense to me 
12:04:59 <oerjan> and some transcendental functions are discontinuous at 0 
12:05:51 <fizzie> It's also very common in floating point representations, which tend to be of the sign-mantissa-exponent variety often, no matter how much sense it might fail to make make. 
12:06:55 <oerjan> http://en.wikipedia.org/wiki/Makemake_(dwarf_planet) 
12:09:24 -!- sebbu has joined. 
12:11:24 <oerjan> also, http://en.wikipedia.org/wiki/Negative_zero 
12:30:46 <Deewiant> AnMaster: in CCBI they all match down to the last decimal place, except in FPSP of course. :-) 
12:31:22 * oerjan wonders exactly how you define "poorly defined" again 
12:31:45 <AnMaster> Deewiant, you use higher precision internally then? 
12:31:46 <Slereah2> oerjan : "This sentence is not poorly defined" 
12:32:06 <Deewiant> AnMaster: the only one that differs is the last one, 2^-4 or something, anyway 
12:37:37 <AnMaster> Deewiant, anyway I can't make my FPDP IEEE conformat for non-finite maths since it will be a hell to handle if one of the operands already are inf or nan 
12:37:39 -!- ais523 has joined. 
12:38:07 <AnMaster> but since FPDP doesn't say it have to be IEEE 754 conforming I can get away with that 
12:40:23 -!- ais523 has quit (Remote closed the connection). 
12:40:37 -!- ais523 has joined. 
12:41:36 <AnMaster> Deewiant, for example inf+(-inf) seems to be nan in my tests 
12:42:04 <ais523> also inf+-inf is NaN IIRC 
12:42:07 <ais523> what else could it be? 
12:42:22 -!- tusho has joined. 
12:42:35 <AnMaster> ais523, except in erlang any result of nan or inf is an exception, very irritating 
12:43:22 <Deewiant> AnMaster: inf-inf is nan, that's correct 
12:43:36 <tusho> AnMaster: i think you've forgotten: the logs go by our own clients 
12:43:42 <tusho> ais523: what does your client say? 
12:43:45 <tusho> when did you send your hi 
12:43:47 <ais523> tusho: that's an unworkable rule as we have different clocks 
12:43:55 <tusho> it's not that unworkable 
12:43:57 <ais523> and let me open up the log to get the seconds, this thing only shows the minutes by default 
12:43:58 <tusho> as our clocks are not that different 
12:44:08 <tusho> anyway it's a better solution than the tunes.org logs 
12:44:14 <tusho> because that removes the reflex time altogether 
12:44:26 <tusho> AnMaster: so is mine. 
12:44:28 <AnMaster> you can calculate difference against it 
12:44:40 <tusho>     <message id="ESLMBSD1ZX1" received="2008-09-22 12:44:16 +0100">mån sep 22 11:44:14 UTC 2008 <span class="encoding error">incompatible encoding</span></message> 
12:44:44 <tusho> (yeah colloquy logs as xml :|) 
12:45:02 <AnMaster> Deewiant, it should be 0 IMO ;P. Anyway I don't plan to make my FPDP IEEE 754, it is undef. and mycology does try to depend on 0 being a fpdp 0 too 
12:45:03 <tusho> so I am 1hr,2sec ahead of anmaster 
12:45:18 -!- ais523 has quit (Read error: 104 (Connection reset by peer)). 
12:45:20 -!- ais523_ has joined. 
12:45:21 <AnMaster> and the 2 secs are probably irc lag 
12:45:27 <tusho> so my clock is correct 
12:45:31 <tusho> let's assume ais523's is too 
12:45:56 <tusho>     <message id="BZGL80B1ZX1" received="2008-09-22 12:42:36 +0100"><span class="member">ais523</span>: HI</message> 
12:46:12 -!- ais523_ has changed nick to ais523. 
12:46:14 <ais523> tusho: I pasted it in-channel 
12:46:22 <ais523> did it not come through? 
12:46:22 <tusho> no you did not ais523 
12:46:24 <ais523> (stupid connection problems) 
12:46:33 <tusho> my clock is = AnMaster's 
12:46:43 <AnMaster> by 2 seconds, which could be irc lag 
12:47:11 <tusho> mine is sync'd to time.euro.apple.com 
12:47:12 <ais523> [Mon Sep 22 2008] [12:42:47] <ais523> hi tusho 
12:47:14 <tusho> os x does it by default 
12:47:16 <ais523> [Mon Sep 22 2008] [12:42:51] <tusho> ais523: HI 
12:47:20 <tusho>     <message id="BZGL80B1ZX1" received="2008-09-22 12:42:36 +0100"><span class="member">ais523</span>: HI</message> 
12:47:28 <ais523> [Mon Sep 22 2008] [12:42:52] <ais523> also, ugh 
12:47:32 <ais523> [Mon Sep 22 2008] [12:42:53] <tusho> er 
12:47:33 <tusho> ais523: that's not important 
12:47:36 <ais523> [Mon Sep 22 2008] [12:42:53] <AnMaster> and hi tusho 
12:47:40 <ais523> [Mon Sep 22 2008] [12:42:55] <tusho> hi ais523 
12:47:44 <ais523> [Mon Sep 22 2008] [12:43:05] <AnMaster> ais523 won by 4 seconds 
12:47:45 <tusho> ais523: STOP FLOODING 
12:48:03 <tusho> anyway, point is, I beat you by 11 seconds 
12:48:04 <ais523> tusho: I only pasted 7 lines, and my round-trip ping time is 33 seconds so your "stop that" came far too late 
12:48:07 <tusho> give or take a second or so 
12:48:12 <ais523> and no, because our clocks are obviously different 
12:48:22 <tusho> do your thing again 
12:48:43 <tusho> AnMaster: try again 
12:48:47 <tusho> ais523: paste his line from the logs 
12:48:51 <ais523> tusho: our clocks are within 1s of each other 
12:48:51 <AnMaster> tusho, I did that with intention 
12:49:04 <ais523> and no, I don't want to freeze up the computer again to open the logs, my #esoteric logs are massive 
12:49:04 <tusho> ais523: probably irc lag 
12:49:17 <tusho> anyway, point is, i beat you 
12:49:22 <ais523> tusho: mine and yours, I was CTCP TIMEing you 
12:49:30 <AnMaster> tusho, also since you use a script it doesn't count 
12:49:54 <AnMaster> oh and you are such a bad looser you can't even admit you loose 
12:50:03 <tusho> we just checked it and i won 
12:50:10 <tusho> and...that makes me a sore loser? 
12:50:16 <AnMaster> <ais523> and no, I don't want to freeze up the computer again to open the logs, my #esoteric logs are massive 
12:50:46 <ais523> AnMaster: I never plan to delete any of the logs in question, and they're easier to grep if they're all one file 
12:50:56 <tusho> ais523: why not just tail the log 
12:50:58 <tusho> to get his message 
12:51:08 <tusho> grep 'mån sep 22 11:48:43 UTC 2008' esoteric.log 
12:51:14 <ais523> tusho: I could do that easily enough but that would involve going through the filesystem to find the log 
12:51:22 <ais523> I just used Konversation's open-log command 
12:51:30 <ais523> which takes a while on a large log 
12:51:34 <ais523> it is tailed, but to 1MB 
12:51:39 <ais523> which still takes a while to open 
12:52:25 <tusho> heh, a new crop of isitchristmas.com sites 
12:52:51 <tusho> http://isitbirthday.com/ -> http://isitafuckingirritatingbrowser.com/ -> http://www.isbushgone.com/ 
12:53:17 <AnMaster> ais523, how long is this "while"? 
12:53:26 <fizzie> Given the amount of lag in the IRC network and that one's own messages aren't really in a fair fight, I don't see any other way of resolving "who was first" disputes than a trusted third party, like the tunes.org logs. 
12:53:30 <ais523> AnMaster: maybe about 10 seconds 
12:53:38 <ais523> I think Konversation spends a while rendering everything in the log though 
12:53:43 <tusho> the whole point is 
12:53:46 <AnMaster> ais523, how long does it take to load KDE? 
12:53:51 <tusho> how fast we can type and get it entered 
12:54:03 <tusho> so, we compare when we sent at -this- end 
12:54:05 <AnMaster> $ du -bsh /usr/kde/3.5/lib/libkdecore.so.4.2.0 
12:54:06 <AnMaster> 2.5M    /usr/kde/3.5/lib/libkdecore.so.4.2.0 
12:54:14 <ais523> AnMaster: probably about 90 seconds while the rest of the computer's loading, as I use Gnome by default, it's much faster if loading KDE's the only thing I'm doing 
12:54:17 <AnMaster> that indicates that just one library is larger than that 1 MB tail 
12:54:30 <AnMaster> ais523, ok you got a slow computer 
12:54:42 <ais523> I think it's rendering that's the problem, not physically loading the file 
12:55:06 <AnMaster> from that I hit enter startx to KDE is fully loaded: maybe 15 seconds or so 
12:55:21 <ais523> AnMaster: does your computer run KDE by default? 
12:55:40 <AnMaster> ais523, I don't start X by default. but it is the default when I enter startx 
12:55:42 <Deewiant> AnMaster: so what, the actual size as opposed to the disk usage? 
12:55:55 <AnMaster> Deewiant, yes that is the effect of it 
12:55:58 <ais523> AnMaster: I normally use ls -l to determine the size of a file 
12:56:04 <AnMaster> tusho, sure but the computer is a few years old 
12:56:06 <tusho> this imac takes 40-60 seconds to boot up from power button to the gui :P 
12:56:10 <tusho> but that's due to the use of EFI and such 
12:56:15 <tusho> as opposed to the BIOS 
12:56:23 <Deewiant> ais523: but then you get it in bytes and reading 13857624 isn't easy enough 
12:56:28 <AnMaster> tusho, ah well I can beat that, from grub to login prompt it takes 10 seconds 
12:56:39 <tusho> AnMaster: that's not fair. 
12:56:41 <ais523> there's an option for that anyway 
12:56:46 <tusho> AnMaster: i am talking about from bootup to full gui syste 
12:56:47 <Deewiant> ais523: I always want du --si which I think only du supports :-) 
12:56:54 <AnMaster> tusho, well bios to grub takes about 14 seconds 
12:57:10 <tusho> AnMaster: wanna measure that? 
12:57:11 <ais523> $ ls -l --si squeak.image 
12:57:11 <ais523> -rwxr--r-- 1 ais523 ais523 17M 2008-08-10 21:18 squeak.image 
12:57:16 <tusho> turn x on by default, use a stopwatch 
12:57:24 <tusho> i bet you can't get to a login prompt in 35 seconds. 
12:57:34 <ais523> my bootup is really slow due to all the crap I have installed 
12:57:37 <AnMaster> I don't have xdm or kdm installed tusho 
12:57:39 <fizzie> The iBook seems to take a long long long long long time to boot to OS X login screen, but usually I just wake it up from sleep. 
12:57:46 <AnMaster> login then startx is the only way on this system 
12:57:49 <tusho> AnMaster: then don't try and give your own measurements, because it's not a fair comparison 
12:58:14 <tusho> AnMaster: because i am talking about an automated process from the initial electrical turnon to a login screen, how long that takes 
12:58:17 <AnMaster> tusho, loading full KDE would take longer than loading xdm 
12:58:20 <tusho> this mac is the fastest i've ever seen 
12:58:28 <ais523> if we're going for unfair comparisons, sudo su takes me about 5 seconds on here, which is the time it takes me to type my sudo password 
12:58:29 <tusho> and it has tons of daemons and apps running at startup 
12:58:47 <tusho> ais523: oh yeah??? well my 'true' runs in -3ms! 
12:58:52 <ais523> and tusho, not everyone /has/ an automated process from initial turnon to login screen 
12:58:56 <AnMaster> tusho, well I measured time to grub (14.2 seconds) and grub to console login prompt (10.1 seconds) about 2 weeks ago 
12:59:00 <tusho> ais523: of course. 
12:59:05 <tusho> so they can't give their times :P 
12:59:09 <tusho> because it's an irrelevant comparison 
12:59:14 <AnMaster> tusho, so adding those you get 24.3 seconds 
12:59:23 <AnMaster> then you can add time for startx 
12:59:30 <tusho> AnMaster: OS X starts the full system (like KDE) before login prompt 
12:59:47 <tusho> so I guess for a fair comparison with a linux system you'd have to make an automatic login for the test 
12:59:51 <AnMaster> tusho, it doesn't load a lot of stuff before login 
13:00:07 * ais523 wonders whether Gnome or KDE is faster 
13:00:09 <AnMaster> like battery menu when I tested 
13:00:13 <ais523> I'd guess KDE, based on my experiences with both 
13:00:21 <tusho> kde is faster, ironically 
13:00:39 <AnMaster> tusho, so in fact linux is at disadvantage here 
13:00:51 <AnMaster> since my measurement will include load time to full desktop 
13:01:02 <AnMaster> which is a lot less code to load 
13:01:19 <tusho> AnMaster: okay, make 'startx' your login shell or something then 
13:01:30 <tusho> then it would be fair 
13:01:41 <AnMaster> tusho, why isn't measuring each section and adding them up fair? 
13:02:07 <tusho> AnMaster: because of the time taken to transition from each section 
13:02:30 <AnMaster> tusho, that is user type type time yes to enter password and such, but I don't see how that is relevant? 
13:02:52 <tusho> that is not what i meant. 
13:03:18 <AnMaster> tusho, then what *do* you mean? 
13:04:54 <AnMaster> and you refuse to explain it, *shrug* 
13:06:28 <oerjan> A _true_ scotsman wouldn't need an explanation 
13:06:45 <AnMaster> <ais523> and tusho, not everyone /has/ an automated process from initial turnon to login screen 
13:06:55 <tusho> so then they are irrelevant to the comparison. 
13:07:05 <AnMaster> tusho, and you can give relevant times by adding up all the automated sections 
13:07:32 <tusho> AnMaster: not valid when every second makes a difference 
13:08:24 <AnMaster> tusho, well then we can't know if your measurement is that exact either 
13:08:31 <AnMaster> so the whole thing is pointless anyway 
13:08:42 <tusho> because i measured it. 
13:08:53 <AnMaster> tusho, well a human isn't that exact 
13:09:40 <tusho> i am good at counting seconds manually, besides, i'll redo it with a stopwatch later 
13:09:58 <fizzie> What _was_ your measurement, then? I only saw that "40-60 seconds" figure. 
13:10:05 <AnMaster> tusho, well I used a stopwatch, but even so it may be a second or so off 
13:10:14 <AnMaster> because humans aren't that exact 
13:10:23 <tusho> fizzie: i forget, it was a while ago 
13:10:33 <tusho> AnMaster: no, but 1s doesn't make all that much difference 
13:11:40 <AnMaster> anyway my timings: 14.2 seconds from power button to grub prompt, 10.1 seconds from selection in grub to login prompt on console, 15.3 seconds from startx to "loading KDE dialog" closed 
13:12:54 <AnMaster> my grub doesn't use a timeout at all so that is irrelevant, + the all boot entries are password protected (oh yes bios is password protected too), not a lot of security, but something is better than nothing 
13:13:08 <AnMaster> yes I know bios pass is easy to crack 
13:13:14 <tusho> if someone has my hardware they're fucked, i figure 
13:13:31 <tusho> it's not hard to stick a floppy linux distro in and read from the disk 
13:13:42 <AnMaster> tusho, depends on the boot order you set 
13:13:54 <tusho> AnMaster: but as you said - bios password is easy to crack 
13:13:55 <ais523> AnMaster: I've seen a bios password cracked, the person did it by shorting out a capacitor on the motherboard temporarily 
13:14:04 <ais523> and the BIOS forgot what the password was 
13:14:05 <AnMaster> tusho, indeed, but it require some knowledge 
13:14:20 <tusho> AnMaster: true, true 
13:14:28 <tusho> i don't really care though, my priority is not letting it get stolen 
13:14:34 <tusho> or letting anyone near it who i don't want to be 
13:14:44 <tusho> anyway, i have autologin on and all that stuff because of the aforementioned reasons 
13:15:06 <tusho> also, i am hideously environmentally unfriendly because i just boot this from standby after the night 
13:15:12 <AnMaster> tusho, oh and timings on my laptop would be impossible you would say since I need to enter password for harddisk encryption at boot there 
13:15:15 <tusho> better than actually leaving it on, i guess 
13:16:33 -!- pikhq has quit (Read error: 60 (Operation timed out)). 
13:17:57 -!- KingOfKarlsruhe has joined. 
13:18:35 <AnMaster> Deewiant, I special case {0, 0} to work around the "using 0 as FPDP 0" bug in mycology now. But I hope you fix it 
13:19:50 <ais523> what floating point number does all-bits-zero correspond to? 
13:20:26 <ais523> yes, I was wondering what it actually meant 
13:20:31 <Deewiant> it corresponds to 0 in IEEE-754 
13:20:31 <AnMaster> ais523, except in efunge floats from FPDP are tagged tuples 
13:20:41 <tusho> Deewiant: i think you are correct 
13:20:48 <tusho> IEEE-754 is a good standard to adhere to 
13:20:50 <tusho> AnMaster: like POSIX! 
13:21:04 <AnMaster> tusho, certainly, but it is undefined in FPDP 
13:21:09 <tusho> anyway, if you ask me FPDP should mean IEEE-754 
13:21:13 <AnMaster> so well you can't expect anything sensible 
13:21:16 <tusho> AnMaster: it's a mike riley fingerprint 
13:21:21 <tusho> i'm surprised it HAS a specification 
13:21:39 <AnMaster> well maybe, but consider efunge a Dethstation 9000 if you want 
13:21:52 <tusho> somehow I'm doubting Deewiant cares about dethstation 9000s :D 
13:22:01 <ais523> AnMaster: you've never seen a true Deathstation 9000, efunge is more like a Deathstation 2 by comparison 
13:22:07 <tusho> i don't care about deathstation 9000s 
13:22:13 -!- pikhq has joined. 
13:22:22 <tusho> a similar system (i.e. not literally one) - my programs won't work 
13:22:36 <tusho> i assume a modern system - unix-like or not - for my sanity 
13:22:49 <ais523> tusho: what about gcc-bf? 
13:22:59 <ais523> I've expended a lot of effort on trying to make it not a Deathstation 
13:23:07 <ais523> but I'm not sure to what extent it's succeeded 
13:23:08 <tusho> ais523: if it's not too much work 
13:23:11 <tusho> because that is amusing 
13:23:17 <Deewiant> a deathstation 9000 funge interpreter would easily break mycology since it tries to test UNDEF stuff to see what they do 
13:23:20 <ais523> (I even made int 32-bits, because everyone seems to assume it is nowadays) 
13:23:36 <ais523> Deewiant: hmm... some of it's undefined, some's just unspecified 
13:24:01 <ais523> I think, for instance, you can imply from the spec that # across the right edge either hits or jumps over the left edge of the program, for instance, nothing else 
13:26:09 <AnMaster> Deewiant, ok not that bad. but I plan to make efunge do unusual but kind of sane stuff 
13:26:30 <AnMaster> and I did contact Mike Riley about it 
13:26:43 <AnMaster> not the IEEE bit, but the type tagged tuples bit 
13:27:06 <Deewiant> well that's just an implementation detail 
13:27:20 <Deewiant> did he specifically say that it's ok for "00A" to reflect, for instance 
13:27:37 <AnMaster> Deewiant, http://rafb.net/p/9NkK4p98.html 
13:27:54 <ais523> well, 00A does reflect, you need to load a fingerprint first if you want it to do something 
13:28:53 <AnMaster> Deewiant, I can special case 00 in the pop double code, but I can hardly do it in all cases 
13:29:08 <Deewiant> yeah so he's saying "my spec sucks, do what you want" 
13:29:16 <Deewiant> why can't he just write stuff properly :-P 
13:29:18 <AnMaster> anyway the format is {double, <actual value>}{double, dummy} 
13:29:30 <AnMaster> Deewiant, then I wouldn't have been able to implement it 
13:29:43 <Deewiant> that would have been fine as long as it has well-defined behaviour :-P 
13:29:48 <ais523> AnMaster: can you p a FPDP tuple onto the playfield, g it back, and have it still work? 
13:29:53 <tusho> related: http://tusho.net/mkry/ 
13:29:56 <tusho> dunno if ais523's seen that 
13:29:59 <tusho> Deewiant and AnMaster have though 
13:30:21 <ais523> AnMaster: can you p a FPDP tuple onto the playfield, then run into it with the IP and have an appropriate command happen? 
13:30:23 <AnMaster> ais523, same for swap/dup on stack and such 
13:30:25 <Deewiant> AnMaster: what about $ in FPDP, will it pop one FPDP value or two 
13:30:40 <Deewiant> will you need one or two to pop one value* 
13:30:41 <AnMaster> ais523, no because the internal representation is undefined in the spec 
13:30:55 <AnMaster> Deewiant, it will pop one cell 
13:31:07 <AnMaster> just that one cell is a dummy cell 
13:31:08 <Deewiant> strictly speaking even that is UNDEF 
13:31:19 <AnMaster> Deewiant, well ccbi will pop one cell too 
13:31:20 <ais523> well, you could reason on the basis that if you have 2^64 different floating point numbers and p them all onto the playfield, all possible commands have to end up there somewhere 
13:31:21 <Deewiant> which again makes the FPDP spec as it currently is rather useless 
13:31:32 <ais523> then you could search the playfield to find the one that was y, for instance 
13:31:33 <AnMaster> Deewiant, why do you need to know the internal format of the numbers? 
13:31:35 <ais523> then run into it with the IP 
13:31:40 <AnMaster> the interface functions are there for a reason 
13:31:47 <ais523> yes, that would be ridiculous, but I don't seen any reason why it doesn't work in theory 
13:31:53 <Deewiant> AnMaster: now I'm just thinking about how to pop a single value, which is evidently impossible without invoking undef behaviour 
13:32:20 <AnMaster> Deewiant, it says two cells, so $$ will do it obviously 
13:32:28 <Deewiant> AnMaster: no it doesn't say that anywhere 
13:32:29 <AnMaster> since $ operates on cells on the stack 
13:32:40 <Deewiant> it can be one cell or 64 cells 
13:33:03 <fizzie> Deewiant: You can use "I$", I think. 
13:33:25 <AnMaster> Deewiant, it used to say it back at the webarchive days 
13:33:26 -!- jix has joined. 
13:33:32 <AnMaster> Deewiant, I'm 99.99% sure about that 
13:33:53 <Deewiant> AnMaster: or did it say it or something like "A (ah al bh bl -- ch cl)" which makes little sense on its own :-P 
13:34:11 <AnMaster> Deewiant, well iirc it said two cells 
13:34:27 <ais523> I remember it having two-word things in the title at some point, like that example above 
13:34:30 <AnMaster> anyway efunge won't have FPSP since erlang only got it's "semi-IEEE" floating point 
13:34:42 <AnMaster> erlang will throw and exception on inf or nan 
13:35:12 <ais523> AnMaster: even quiet NaN? 
13:35:15 <ais523> if so that violates the specs 
13:35:26 <AnMaster> ais523, it doesn't claim to be conforming 
13:35:30 <ais523> as there are two sorts of NaNs, quiet and signaling, only the signaling one throws an exception 
13:35:42 <Deewiant> ais523: it throws an exception on 1.0e200 + 1.0e200 
13:35:46 <ais523> (incidentally, NaNs can carry a payload too) 
13:36:15 <AnMaster> ais523, yes that and 1.0/0.0 also throws an exception (and no it is not integer division, that would be the "div" operator") 
13:36:17 <Deewiant> yeah, special NaNs would be the main reason why being able to mess with the bit representation directly would be handy 
13:36:59 <ais523> 1./0. being signaling NaN would strike me as a reasonable implementation choice 
13:37:07 <ais523> and so that's a similar behaviour for the wrong reason 
13:38:00 <AnMaster> ais523, any nan or inf. And well it doesn't claim to fully conform to IEEE 754 
13:38:15 <ais523> AnMaster: yes, I understand 
13:38:30 * ais523 wonders what floatlib.i does in such cases 
13:38:36 <ais523> that isn't conforming fully to IEEE754 either 
13:38:48 <ais523> the author said that the only reason it resembles IEEE754 was that it was convenient 
13:40:28 <AnMaster> well erlang does use floating point of the system, it just checks after each operation for any of those conditions 
13:40:42 <AnMaster> ais523, also it seems to turn -0 into 0 at least in output 
13:41:09 <ais523> AnMaster: does it exception on underflow? 
13:41:16 <ais523> What's the result of 1.0e-200 / 1.0e200? 
13:41:49 <ais523> ok, it's trying to do floating point like maths, I think 
13:41:55 <ais523> which can be a bad idea in programming 
13:42:23 <tusho> ais523: works well for haskell 
13:42:33 <AnMaster> ais523, well efunge is bignum. Mycology handles that, but that other test suite (Fungus) locks up on it 
13:42:35 <tusho> but erlang was designed by programmers 
13:42:37 <tusho> not mathematicians 
13:42:43 <tusho> haskell was designed by mathematicians 
13:42:49 <tusho> so erlang doing floating point like maths is probably bad 
13:44:23 <AnMaster> tusho, so the floating point in Haskell is not fully IEEE 754? 
13:44:39 <tusho> AnMaster: It has different types. 
13:44:49 <tusho> For IEEE 754 and mathematical. 
13:48:17 <oerjan> tusho: not without some extra libraries i think 
13:49:07 <oerjan> anyway Double in ghc is IEEE 
13:50:41 <oerjan> CReal is for the ffi, i guess 
13:51:34 <oerjan> they're not necessarily different in practice 
13:54:29 <oerjan> hm they are in lambdabot 
13:57:12 <oerjan> hm wait, maybe CReal really is unbounded, that was a lot of digits for pi 
14:04:03 -!- Slereah_ has joined. 
14:04:04 -!- Slereah2 has quit (Read error: 104 (Connection reset by peer)). 
14:04:53 <oerjan> hey it was discussed on #haskell just two days ago.  clearly i've been away too long... 
14:12:22 <oerjan> also, i was confusing it with CDouble and CFloat 
14:34:24 <Deewiant> CReal is in an external library 
14:34:55 <Deewiant> there's Ratio for precise fractions 
14:35:13 <Deewiant> and then there's Double and Float which are mostly IEEE 754 
14:37:12 -!- puzzlet_ has joined. 
14:37:25 * AnMaster decides to put efunge's FPDP aside for now until he figures out a cleaner way to code some stuff in it. 
14:49:10 -!- puzzlet has quit (Read error: 110 (Connection timed out)). 
15:06:19 -!- oklofok has quit (Read error: 104 (Connection reset by peer)). 
15:06:28 -!- oklofok has joined. 
15:19:15 -!- Hiato has joined. 
15:24:29 <AnMaster> Deewiant, what should FIXP B (acos) do on non-valid input? 
15:25:05 <Deewiant> whatever, I guess you can reflect 
15:26:05 <Deewiant> probably just casts the NaN that comes out to an integer 
15:26:25 * ais523 wonders what (int)nan() is anyway 
15:26:52 <AnMaster> Deewiant, well mycology doesn't like that you reflect on nan from B in FIXP 
15:27:46 <AnMaster> GOOD: T says tan(35) is 0.7002 
15:28:14 <AnMaster> BAD: B says acos(-1) isn't 180 
15:28:26 <AnMaster> or is the messages totally different? 
15:28:31 <AnMaster> and unrelated to the BAD ones? 
15:28:44 <AnMaster> not having matching GOOD/BAD confuses 
15:29:23 <Deewiant> for the reflections, it evidently gives the exact code 
15:30:26 <AnMaster> Deewiant, but it is in degrees 
15:31:28 <Deewiant> acos :: [-1,1] -> [0,360) for FIXP :-P 
15:31:48 <AnMaster> parentheses didn't match up they way they should 
15:32:51 * oerjan hopes AnMaster is not referring to the [0,360) 
15:34:33 -!- Slereah_ has quit (Read error: 113 (No route to host)). 
15:37:06 -!- Hiato has quit ("Leaving."). 
15:37:24 -!- Hiato has joined. 
15:39:56 <oklofok> angles expressed on a scale from zero to random in base random with randomly created characters in a sentence written in a natlang, could this get any worse 
15:40:38 <ais523> The angle is 49823y4pcnq283yn4p9cq283y5p9q235. 
15:41:10 <oklofok> well, random base that happens to be the convention :) 
15:43:00 <oklofok> AnMaster: i don't actually just hate physical objects artificially created for a specific purpose, like i said earlier, i also hate backwards-compatibility, and all kinds of conventions 
15:43:25 <oklofok> err, conventions that aren't perfect, but are used because of backwards-compatibility 
15:43:32 <oklofok> i don't hate *all* conventions 
15:44:28 <oklofok> also i'm out of stuff to read :< 
15:44:33 <oklofok> i mean stuff i have to read 
15:45:54 <oerjan> you have to read Ulysses.  now! 
15:46:50 <oklofok> and i only like reading computer/math related books 
15:47:13 <oklofok> and sounds like tragedy, yes, not sure what book that is 
15:47:22 -!- Hiato has quit ("Leaving."). 
15:47:50 <oklofok> seems it wasn't a shakespearean masterpiece of great tragedy 
15:48:10 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | yes 00 false. 
15:49:34 -!- ais523 has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | MistyRoses are Red, Violets are Blue. 
15:52:06 -!- AnMaster has quit (Connection timed out). 
15:52:25 -!- AnMaster_ has joined. 
15:54:07 <AnMaster_> <AnMaster> oerjan, as for [) I do know what it means, though I don't know the English name for it 
15:54:44 <oerjan> i didn't get that last one.  many have spoken since. 
15:55:01 -!- AnMaster_ has changed nick to AnMaster. 
15:56:05 <oerjan> or should that be semi- 
15:57:05 <ais523> I'd say semi-, I think 
15:59:06 <oerjan> http://en.wikipedia.org/wiki/Interval_(mathematics) 
15:59:24 * ais523 just received an email saying that the doors won't work again for a couple of weeks... 
16:00:08 <ais523> upgrading the computer system that validates our swipe cards 
16:00:10 <AnMaster> and where will you chat on irc from? 
16:00:25 <AnMaster> ais523, how can that take more than a few days!? 
16:00:34 <ais523> various other places, there are a few open-access labs I can go in sometimes 
16:00:48 <ais523> also wifi tends to carry, sometimes that helps when it isn't raining 
16:03:04 -!- AnMaster_ has joined. 
16:04:40 -!- AnMaster has quit (Nick collision from services.). 
16:04:42 -!- AnMaster_ has changed nick to AnMaster. 
16:07:03 <AnMaster> still ais523 how can that take more than a few days!? 
16:07:09 <AnMaster> not sure if that went through or not 
16:07:10 <oerjan> ah yes.  i think pikhq took the flyswatter, i'm afraid. 
16:07:25 <ais523> AnMaster: don't ask me 
16:07:31 <ais523> because I don't have a clue either 
16:07:56 <ais523> it's some huge bureaucratic thing 
16:08:00 <ais523> probably involves more than one department 
16:08:10 <ais523> also it's September so there are new students 
16:08:13 <AnMaster> ais523, still ask, asking doesn't hurt 
16:08:24 <ais523> anyway my card seems to be mysteriously working anyway 
16:08:30 <ais523> so with any luck it won't affect me... 
16:08:35 <AnMaster> ais523, hm at what level are you studying currently? 
16:09:15 <ais523> I'm a fourth-year student, MEng Electronic and Computer Engineering 
16:10:32 <ais523> a qualification that generally requires 4 years to get 
16:10:54 <ais523> universities vary about whether it's a 1-year upgrade from Bachelor of Engineering, or if it's awarded all in one go 
16:11:02 <ais523> my course is an all-in-one-go one 
16:16:05 -!- puzzlet_ has quit (Read error: 60 (Operation timed out)). 
16:17:28 -!- puzzlet has joined. 
16:22:25 -!- Slereah2 has joined. 
17:06:05 -!- oerjan has quit ("leaving"). 
17:15:24 -!- AnMaster_ has joined. 
17:18:56 -!- AnMaster has quit (Nick collision from services.). 
17:18:58 -!- AnMaster_ has changed nick to AnMaster. 
17:19:04 <AnMaster> wtf is up with my connection today 
17:19:45 <ais523> I'm still doing other things 
17:19:54 <ais523> if someone else wants to finish the tricky parts I'd be grateful 
17:20:06 <AnMaster> ais523, I wouldn't manage it :P 
17:20:10 <ais523> but I need to figure out exactly what the build system is before even being able to upload it in a form that others can use 
17:20:33 <AnMaster> ais523, oh? how do you currently build it then? 
17:20:42 <ais523> a whole load of shell scripts 
17:20:56 <AnMaster> ais523, also I assume it is against last gcc? gcc 4.3.x 
17:20:57 <ais523> and rely on me having set up everything by hand first 
17:21:08 <ais523> and it's against the version of the source in the Ubuntu repos 
17:21:17 <AnMaster> ais523, no clue what one that is 
17:22:03 <tusho> ais523: is that under gpl3? 
17:23:28 <ais523> it's not like the resulting programs are GPL3, though 
17:23:36 <ais523> they're just a mix of LGPL and 28 different BSD-style licences 
17:23:42 <tusho> but i was considering contributing to gpl3 
17:24:02 <ais523> the part of it I haven't done isn't gpl3 
17:24:05 <ais523> it's currently "unspecified" 
17:24:16 <tusho> i mean, once it'sdone 
17:24:17 <ais523> and I'll decide on a licence for it later 
17:24:33 <ais523> the gpl3 code is gcc, and the code that goes into it 
17:24:36 <tusho> though allow me to suggest BSD or MIT or the Eiffel Public License 
17:24:43 <ais523> newlib has a crazy permissive licence 
17:24:51 <ais523> and bf-ld can be anything really as I wrote it all myself 
17:25:03 <tusho> ais523: Eiffel Public License is pretty esoteric 
17:25:05 <ais523> as does libbf, but that will almost certainly be BSD 
17:25:10 <tusho> it's like BSD or MIT, but shorter 
17:28:23 <AnMaster> ais523, what is the code that won't be gpl3? 
17:28:41 <AnMaster> but didn't you say you would use newlib? 
17:28:44 <ais523> the stuff that's linked into the resulting program 
17:29:00 <ais523> there's libbf as well which fills in gaps in newlib 
17:29:04 <ais523> like I/O and filesystem 
17:29:10 <ais523> which the OS normally takes care of 
17:29:23 <ais523> also, there's the assembler/linker, which is an important part of it 
17:29:30 <ais523> I'm writing that by hand in Perl and haven't chosen a license yet 
17:30:32 <ais523> also, things like hash-tables built into the language are nice for doing linking 
17:30:55 <AnMaster> damn the connection is failing again 
17:31:26 <AnMaster> ais523, but how will you be able to call that from inside the bf program? 
17:31:43 <ais523> generally speaking you don't call the linker from inside the resulting executable 
17:31:53 <tusho> AnMaster thinks you are writing gcc in bf, ais523 
17:32:00 <tusho> either that or he doesn't know what a linker is. 
17:32:24 <ais523> I'm not doing shared libraries if that's what you're wondering about 
17:32:58 <ais523> although I'm writing the code such that I could make it a bytecode compiler with a brainfuck-based VM, rather than compiling directly into brainfuck, if I wanted to 
17:33:18 <ais523> the second version would make it possible to compile files into executables then run the executables from inside the brainfuck program 
17:35:24 -!- AnMaster_ has joined. 
17:36:16 <ais523> wow, I'm getting quite good at standing on one leg and balancing a laptop on my knee, whilst swiping for a door with the other hand 
17:36:26 -!- AnMaster has quit (Nick collision from services.). 
17:36:28 -!- AnMaster_ has changed nick to AnMaster. 
17:37:00 <AnMaster> http://rafb.net/p/Gjgh1u98.html 
17:37:02 <AnMaster> and first thing tomorrow I'm going to call the ISP and complain (they have closed the call center for the day) 
17:37:37 <ais523> the way it works is that I compile everything into asm, both the program and the standard libraries 
17:38:00 <ais523> then statically link the program and the required parts of the stdlib together 
17:38:07 <ais523> then assemble the result into a single brainfuck program 
17:38:12 <ais523> and yes, the filesystem isn't executable 
17:38:44 <AnMaster> ais523, hm and it isn't the real file system? 
17:38:52 <ais523> yes, it's a fake filesystem 
17:39:02 <ais523> the code for it is surprisingly readable as it has pretty much nothing to do with brainfuck 
17:39:15 <ais523> to allocate space for the files 
17:39:18 <AnMaster> ais523, is it possible to bundle data files on it? 
17:39:30 <AnMaster> some programs need to read data or settings files and such 
17:39:36 <ais523> not atm, but I hope it will be eventuall 
17:39:50 <ais523> no technical reason why not, just haven't written that part yet 
17:39:56 <AnMaster> ais523, hm how does that code work, if it is C I would like to read it 
17:40:05 <oklofok> ais523: wow, I'm getting quite good at standing on one leg and balancing a laptop on my knee, whilst swiping for a door with the other hand <<< elaborate 
17:40:19 <ais523> oklofok: I often carry a laptop out of this room to get something to eat 
17:40:24 <ais523> the problem is then getting back into the room again 
17:40:32 <ais523> the door is weighted, and needs to be pulled open 
17:40:41 <ais523> and will only open within a few seconds of swiping a card 
17:40:54 <ais523> also I'm not strong enough to hold my laptop in one hand safely 
17:41:20 <AnMaster> ais523, oh? need to body build ;) or get a macbook air ;P 
17:41:32 <AnMaster> just watch out so you don't cut yourself ;) 
17:42:07 <ais523> so: my solution is to balance the card on my laptop, walk to the door, then stand on one leg, balance the laptop on the other leg with my left hand for support, swipe the card with my right hand, drop the card on the laptop, open the door with my right hand, then as it swings shut hold the laptop with both hands, put my left leg on the ground and hook the door with my right leg 
17:42:16 <ais523> ironically this is the simplest method I've found 
17:42:51 <AnMaster> ais523, you could fold the laptop, carry it under one arm 
17:43:17 <AnMaster> ais523, might disconnect you for a moment though ;P 
17:43:35 <ais523> AnMaster: yes, I like to do it seamlessly so you lot don't realise what's happened unless I tell you 
17:43:42 <ais523> also it makes an interesting topic of conversation 
17:44:33 <oklofok> how much does your laptop weigh / how weak are you? 
17:45:07 <ais523> oklofok: it's actually pretty heavy 
17:45:54 <ais523> AnMaster: http://code.eso-std.org/gcc-bf/libbf/libbf.c 
17:46:15 <ais523> AnMaster: that + newlib = standard library for gcc-bf 
17:46:47 <ais523> note that it's untested and probably buggy 
17:47:46 <AnMaster> ais523, you should allow optionally making using of PSOX! *ducks* 
17:48:08 <ais523> AnMaster: actually the code's designed so that's a possibility, not planning to work on it atm though 
17:48:33 <AnMaster> ais523, what's the #if PASS == 0 and such stuff for? 
17:48:43 <ais523> to generate lots of separate .o files from one .c 
17:48:50 <ais523> so the linker only links the ones you need 
17:48:55 <ais523> rather than all of them 
17:49:01 <AnMaster> ais523, pretty esoteric, but why not use separate C files? 
17:49:06 <ais523> I tried to emulate the usual semantics of UNIX linkers 
17:49:29 <ais523> and I just didn't think of using separate C files, also some of the functions reference each other so having them in the same file is neater 
17:49:42 <ais523> besides many of the functions are so short that separating them would be overkill 
17:49:52 <ais523> and there's some boilerplate like the headers that's the same for all of them 
17:49:56 <AnMaster> ais523, I believe glibc have more or less one function per file 
17:50:03 <AnMaster> possibly some static functions as wlel 
17:50:12 <Deewiant> I believe glibc functions tend to be long 
17:50:20 <ais523> AnMaster: yes, but libgcc has everything in four or five files 
17:50:48 <ais523> fun fact: my build process compiles each function in libgcc three times 
17:51:02 <ais523> with different word sizes 
17:51:29 <ais523> that way if I'm missing a function, I get not just the 8- and 16-bit versions, but the 32- and 64-bit versions too 
17:51:49 <ais523> AnMaster: the double underscore should warn you that something's up there 
17:52:02 <ais523> and void is the right data type, brkpos is literally 0 bytes long 
17:52:39 <ais523> by the way comp.lang.c told me that I was talking nonsense 
17:52:43 <ais523> but it works, so I don't care 
17:52:45 <AnMaster> ais523, isn't double underscore used for "compiler internal variables/functions" 
17:52:51 <ais523> AnMaster: yes, exactly 
17:52:56 <ais523> what do you think that is? 
17:53:02 <ais523> I'm writing a compiler here, after all... 
17:53:20 * ais523 waits for tusho to make a snarky comment 
17:53:22 <AnMaster> ais523, but does the C standard define this reserved "namespace"? 
17:53:41 <ais523> double underscore followed by anything, or single underscore followed by a capital letter 
17:53:50 <AnMaster> ais523, and one underscore? Seems to be libc stuff a lot of the time 
17:54:02 <tusho> ais523: Fed up of arguing with AnMaster, I wish I could /ignore him but then I'd miss out on half of #esoteric. 
17:54:03 <ais523> they're both defined in both standards, but the first is used in C89 more and the second is used in C99 more 
17:54:10 <tusho> Not a particularly good half... but a continuity-making half. 
17:54:19 <ais523> single underscore is not defined by the standard as such 
17:54:31 <tusho> AnMaster: It's "says". 
17:54:32 <ais523> except for capital letters 
17:54:59 <ais523> but it's become a sort of pseudonamespace that tends to be used neither by implementations nor by user programs 
17:55:10 <ais523> if it's in libc, though, the only legitimate reason I can think of is that it's linking to something in asm 
17:55:23 <AnMaster> ais523, so it is mostly used by libraries then? 
17:55:31 <ais523> the difference between C identifiers and asm identifiers on most systems is that the asm version of a C identifier has an extra _ at the start 
17:55:49 <ais523> but really stuff like _var shouldn't be used by anyone, it's just confusing 
17:55:57 <ais523> a C program can use it under some situations, but why? 
17:56:10 <ais523> (exception: _ is in the user namespace, and quite commonly used as a macro name, by gettext, for instance) 
17:56:10 -!- KingOfKarlsruhe has quit (Remote closed the connection). 
17:56:26 <AnMaster> ais523, I think valgrind headers sometimes use triple underscore 
17:56:52 <ais523> AnMaster: in that case most likely they're interfacing with compiler internals in the asm 
17:56:58 <ais523> thus two underscores from the internals, one for asm 
17:57:23 <ais523> well, valgrind's linking against the user program 
17:57:36 <ais523> so it uses names like __vg_replace_malloc in implementation namespace 
17:57:47 <ais523> to avoid clashes with user program identifiers 
17:57:49 <Deewiant> ais523: for standards questions like extern void, you might want to ask comp.std.c 
17:58:16 <ais523> it's easier to check that you don't clash with any well-known compiler than it is to check with any program anyone's ever written 
17:58:28 <ais523> Deewiant: I know about comp.std.c, mostly they don't like questions so much 
17:58:37 <ais523> they prefer complaints about tricky bits in the standard 
17:58:45 <ais523> like asking why gets is still there, for instance 
17:58:56 <ais523> whereas comp.lang.c answer questions about what's allowed in programs 
18:06:59 <ais523> <GiovanniZero> What's more eco-friendly than keeping servers in the garden? <antifoidulus> Have you even considered the possibility of sentient tomatoes? 
18:07:20 <Slereah2> ATTAAAACK OF THE KILLER TOMATOES! 
18:07:22 <Slereah2> ATTAAAACK OF THE KILLER TOMATOES! 
18:07:40 <Slereah2> THEY'LL BEAT YOU, BASH YOU, SQUEEZE YOU, CHEW YOU UP FOR LUNCH! 
18:07:50 <Slereah2> AND FINISH YOU UP, FOR SUPPER OR LUNCH 
18:07:53 <ais523> look at the context, though 
18:08:07 <ais523> sentient tomatoes would be so much more eco-friendly than a server in the garden 
18:11:34 <AnMaster> ais523, hm I don't think any mainstream newsgroup or irc channel would like what you are doing 
18:11:58 <tusho> AnMaster: nah, see, there are people with senses of humour 
18:12:04 <tusho> those people like it just fine, if amusedly 
18:12:10 <tusho> AnMaster: however... you're not in that set 
18:12:14 <tusho> as far as i can tell 
18:12:20 <AnMaster> but I know about channels like ##c and such 
18:12:29 <tusho> ##c is not mainstream 
18:12:32 <tusho> it's the bullshit fringe 
18:12:39 <ais523> gcc-bf isnt humorous, really 
18:12:52 -!- Mony has joined. 
18:12:54 <AnMaster> no idea why you would think I don't 
18:14:01 <tusho> set = people who have a sense of humour 
18:14:14 <tusho> (AnMaster in set) -> false 
18:14:54 <AnMaster> ais523, would you say I have humor? 
18:15:06 <ais523> different people have different senses of humour 
18:15:13 <ais523> you have one but it's incompatible with tusho's 
18:15:16 <tusho> ok, people with a _good_ sense of humour 
18:15:27 <tusho> just about everyone in #esoteric has one 
18:15:37 <AnMaster> tusho, well good is subjective 
18:15:50 <AnMaster> I don't like your sense of humor 
18:15:58 <tusho> AnMaster: since I am in #esoteric, i can objectively say that an #esoteric-esque sense of humour is a good one 
18:16:01 <tusho> you do not have one... 
18:16:06 <AnMaster> but I wouldn't call one is better than the other 
18:16:49 <AnMaster> tusho, you are just trolling, it is so pathetic 
18:16:57 <tusho> no, no I am not trolling 
18:17:06 <tusho> disagreeing with you != trolling 
18:17:09 <tusho> not liking you != trolling 
18:17:15 <tusho> accusing me of trolling without basis == trolling 
18:17:23 <AnMaster> but saying that "good" is objective 
18:17:32 <AnMaster> and the way you act is trolling 
18:17:43 <tusho> in #esoteric, it can be objectively said that an #esoteric-esque sense of humour is good 
18:17:48 <tusho> relative to #esoteric 
18:17:51 <ais523> calm down you two, you're both reasonable when you're on your own 
18:17:53 <tusho> which you will note you are in 
18:17:59 <tusho> ais523: disagreed on that point. 
18:18:00 <ais523> just something bad seems to happen when you end up in the same channel together 
18:18:05 <AnMaster> tusho, yes but you can't objectively say what an "#esoteric-esque sense of humour" is 
18:18:15 <tusho> AnMaster: yes, i can: it's the sense of humour most of #esoteric have 
18:18:34 <AnMaster> tusho, and then it isn't same as you certainly, I see lot of humor that you seem to ignore 
18:18:44 <AnMaster> probably you just don't notice it is humor 
18:18:47 <tusho> ignore != i didn't find it funny 
18:19:01 <tusho> ignore == everyone spamming the channel with 'lol' is annoying 
18:19:02 <AnMaster> tusho, but I disagree that most have same humor as you 
18:21:05 <AnMaster> ais523, as far as I can tell libbf.c's malloc() will experience rather bad memory fragmentation, though I'm not sure 
18:21:41 <ais523> well there's plenty of memory to spare 
18:21:46 <ais523> and not all that many files likely created 
18:21:57 <ais523> that's quite a lot really 
18:22:04 <ais523> I used to store all my data on floppy disks 
18:22:11 <ais523> so I appreciate how big a megabyte is 
18:22:14 <AnMaster> ais523, but will it be used for other stuff than file system that sbrk? 
18:22:21 <ais523> sbrk's used for all malloc 
18:22:29 <ais523> but sbrk is used by malloc 
18:22:43 <ais523> generally speaking you don't sbrk stuff directly because there's no way to give it back 
18:22:52 <AnMaster> ais523, err glibc uses mmap for large allocations 
18:23:02 <ais523> AnMaster: this is newlib I'm talking about 
18:23:07 <ais523> and I checked all its dependencies 
18:23:24 <ais523> I actually hacked my linker to return all the dependencies it needed 
18:24:19 <AnMaster> ais523, one think I wonder how you solve in gcc-bf is function pointers. Do you use some global jump table? 
18:24:35 <ais523> actually all looping's done like that 
18:25:03 <ais523> and all labels, instead of being label: are more like ip=16; break; case 16: 
18:25:52 <AnMaster> ais523, btw.... I thought about what you said about pointers being slow in gcc-bf... How fast is gcc-bf generally? 
18:26:05 <ais523> not sure, it's vary variable 
18:26:07 <AnMaster> I know that is very hard to answer of course 
18:26:29 <ais523> basically addition and subtraction can be done very fast as long as it's all in registers 
18:26:37 <ais523> everything else is slow 
18:26:49 <ais523> and computational-order-slow, for that matter 
18:26:55 <AnMaster> ais523, cfunge's funge-space is quite heavy on pointers.... 
18:27:10 <ais523> anyway I changed the function-call interface 
18:27:14 <ais523> to put arguments in registers 
18:27:18 <tusho> oh no! it won't run cfunge in negative time! 
18:27:22 <tusho> ais523: fix it immediately! 
18:27:52 <ais523> tusho: AnMaster is actually more intelligent and multi-track-minded than you give them credit for 
18:28:03 <AnMaster> tusho, I was just thinking since ais523 asked me about cfunge deps in relation to gcc-bf before (he asked, I didn't even consider it). 
18:28:15 <ais523> it was just idle speculation 
18:28:23 <ais523> I'm wondering about what gcc-bf could run in theory 
18:28:28 <ais523> not what it can run in a reasonable time 
18:28:30 <AnMaster> but I think it may take a huge amount of time to even do hello world 
18:28:30 <tusho> ais523: he's annoying, that's what 
18:28:45 <ais523> AnMaster: hello world has huge stdio overhead 
18:28:54 <ais523> if you write the POSIX version it can be done pretty quickly, I think 
18:29:00 <AnMaster> ais523, since even the setup of funge space pre-allocates a lot of more cells than really needed (20 000 by default iirc) 
18:29:01 <ais523> that is, using write() rather than printf() 
18:29:15 <ais523> oh, you mean cfunge under gcc-bf doing hello world? 
18:29:19 <ais523> yes, that would be insanely slkow 
18:29:43 <AnMaster> ais523, actually cfunge initially allocates #define FUNGESPACEINITIALSIZE 150000 cells 
18:30:03 <AnMaster> yes it is tuned for mycology there, yes I know tusho will make fun of it, no I don't care about him 
18:30:21 <tusho> actually I'm not going to make fun of it so that your sentence was a waste of typing 
18:30:23 <AnMaster> ais523, also what posix version of hello world? 
18:30:23 <ais523> AnMaster: the main problem I'm finding with gcc-bf is that it throws all the common knowledge about optimisation out of the window 
18:30:30 <ais523> AnMaster: the one that uses write rather than printf 
18:30:34 <tusho> (and solely for that reason) 
18:31:18 <ais523> it would be still faster with __builtin_dot and __builtin_comma or whatever I decide to call them when I get round to writing them 
18:31:26 <AnMaster> ais523, if you do manage to compile cfunge under it (and even get it to output it's help) I would really really like to know how large the binary was 
18:31:32 <ais523> the other six BF commands are probably best avoided 
18:31:37 <ais523> also, what do you mean "binary"? 
18:31:50 <ais523> brainfuck programs are text... 
18:31:54 <tusho> ais523: __builtin_output, __builtin_input 
18:32:02 <tusho> __builtin_move_left, __builtin_move_right 
18:32:08 <tusho> __builtin_increment 
18:32:11 <tusho> __builtin_decrement 
18:32:15 <tusho> also, for the lulz: 
18:32:20 <tusho> __builtin_loop_start 
18:32:22 <tusho> __builtin_loop_end 
18:32:24 <AnMaster> tusho, that could mess up the program if you did it the wrong way 
18:32:30 <tusho> AnMaster: the loop ones? 
18:32:35 <tusho> but __builtin_ is pretty dangerous anyway 
18:32:38 <tusho> also, it'd be funny 
18:32:41 <ais523> (incidentally, with an early version which just linked and output dummy executables, I got autoconf to configure C-INTERCAL to cross-compile to brainfuck, and it correctly identified the default output filename as a.b. I was very impressed.) 
18:32:45 <tusho> since they'd work kind of like setjmp 
18:32:48 <tusho> in their interface 
18:32:55 <AnMaster> tusho, the other ones could mess with register state or memory pointer too 
18:33:01 <ais523> tusho: as I said, the other 6 are probably best avoided 
18:33:02 <tusho> AnMaster: well yeah 
18:33:08 <tusho> ais523: they're esoteric, though 
18:33:13 <ais523> move_left and move_right would actually be worst of all 
18:33:15 <AnMaster> tusho, ,.+- are probably the least dangerous 
18:33:19 <tusho> int main(void) { __builtin_increment(); __builtin_loop_start(); printf("hello world!\n"); builtin_loop_end(); return 0; } 
18:33:21 <ais523> as they would basically cause all of memory to no longer exist 
18:33:31 <tusho> ais523: well, __builtin_ is ALWAYS dangerous territory 
18:33:35 <tusho> I think it's best to expose as much as possible 
18:33:44 <tusho> because some crazy soul will write a program that uses them and it will WORK 
18:33:48 <ais523> + and - would be safe, you could give it an argument saying where the pointer should be at the time 
18:33:57 <tusho> ais523: possibly you should have __asm__ too 
18:34:07 <ais523> read the library I linked 
18:34:09 <tusho> you could use the register stuff in the __asm__ syntax to avoid register clobbering 
18:34:13 <tusho> ais523: does it do brainfuck, though? 
18:34:17 <ais523> tusho: no, it does ABI 
18:34:25 <tusho> i mean you should have a brainfuck __asm__ 
18:34:25 <AnMaster> ais523, that reminds me, what is the syntax for that strange __asm__ 
18:34:25 <ais523> but ABI will probably have a literal-brainfuck opcod 
18:34:44 <tusho> then you could implement __builtin_move_left yourself 
18:34:45 <ais523> AnMaster: it takes either 3 or 4 args, separated by colons 
18:34:51 <tusho> just by using the ABI thing to do "lit [" 
18:34:56 <tusho> and stuff like that 
18:35:17 <ais523> the first is the asm you want, the second describes the outputs, the third describes the input, and the fourth tells it what registers are clobbered 
18:35:33 <ais523> AnMaster: that's typical ABI that you're quoting there 
18:35:57 <AnMaster> ais523, also I can (from reading libbf.c) see plenty of ways to make programs that would break gcc-bf in subtle ways 
18:36:05 <ais523> except that's actually an ABI template, so % becomes %, and %1 and %0 are replaced 
18:36:25 <AnMaster> ais523, that signal stuff looks suspect in pass 15 for example 
18:36:34 <AnMaster> it *may* be safe, not sure how it is used 
18:36:41 <ais523> it's all done with newlib's simulated signals 
18:36:58 <ais523> so IOW it doesn't have to be reentrant or anything like that that's normally important with signals 
18:37:13 <ais523> because there's no way to get a signal other than raise or abort 
18:37:56 -!- olsner has joined. 
18:38:22 <AnMaster> ais523, am I right to guess that in gcc-bf a program with many small functions (non-inlined, maybe because they are recursive or whatever) will be a lot slower than a program with a few large functions? 
18:39:18 <ais523> if recursive, yes; if not, probably not all that much because although using the call stack is moderately slow looping and goto have overhead just as function calls do 
18:39:42 <ais523> (incidentally, gcc translates all flow control to goto or one of three types of function call internally) 
18:40:00 <tusho> how does that work? 
18:40:18 <ais523> if is done by computed goto, yes 
18:40:45 <AnMaster> ais523, does gcc optimise tail recursive functions btw? 
18:40:45 <ais523> it's always in a conventional form, though 
18:41:03 <ais523> which corresponds to goto *(x ? &&label1 : &&label2) 
18:41:14 <ais523> AnMaster: it can do, it needs special patterns in the machine description for a sibling call though 
18:41:53 <AnMaster> ais523, hm gettimeofday() returns a constant... what should then be used for srandom()? 
18:42:08 <AnMaster> ais523, also cfunge would lockup forever if gettimeofday() never changes 
18:42:13 <ais523> I've been wondering about that too, about the only thing I can think of is asking the user 
18:42:25 <ais523> also, I've been wondering if gettimeofday should increment the time every time it's called 
18:42:26 <AnMaster> ais523, since it uses a loop to check the granularity of gettimeofday() in HRTI 
18:42:29 <ais523> to prevent that sort of lockup 
18:42:51 <ais523> simple enough, I could just use a static variable holding the fake time 
18:44:12 <AnMaster> ais523, this is what cfunge does first time HRTI is loaded http://rafb.net/p/EAxpoX15.html 
18:44:37 <ais523> ok, I can hack it to get that to work easily enough 
18:44:46 <AnMaster> ais523, though HRTI wouldn't work at all under gcc-bf for various other reasons 
18:44:51 <ais523> there is more than one possible set of bogus data to return from gettimeofday() 
18:45:09 <AnMaster> ais523, well incrementing by one every time could work 
18:46:35 <ais523> AnMaster: usual trick to tell warning-generators that you aren't using the variable 
18:46:44 <ais523> that particular idiom's recognised by pretty much all lintalikes 
18:46:51 <AnMaster> ais523, since this needs gcc anyway what is wrong with __attribute__((unused)) 
18:47:00 <tusho> AnMaster: it's a lot longer. 
18:47:02 <ais523> I like doing it portably, besides it's faster to type 
18:47:06 <tusho> plus why be unportable when it's unneeded 
18:47:55 <ais523> it's not as if (void)tz; translates into any code anyway on any sane compiler 
18:48:26 <ais523> gcc-bf's insane and it doesn't even translate into any code on that 
18:49:21 <AnMaster> ais523, don't "shared" parts of gcc remove it before? 
18:49:41 <ais523> no, I think it's probably removed in RTL 
18:49:43 <AnMaster> ais523, oh computed goto how will that work in gcc-bf? 
18:50:03 <AnMaster> can't* just jump to a specific place in the code 
18:50:03 <ais523> AnMaster: the whole thing's basically a massive switch statement, so very easily 
18:50:12 <AnMaster> ais523, really? for every address? 
18:50:23 <ais523> for every possible break in program flow 
18:50:38 <AnMaster> ais523, what if you used computed goto to go elsewhere? 
18:50:48 <ais523> so the program's broken into cases at every label, if, goto, loop and function call 
18:50:58 <ais523> computed goto can goto any label it likes 
18:51:17 <ais523> and each label is a place that program flow could potentially be transferred to 
18:51:28 <AnMaster> ais523, exit goes to the start? 
18:51:35 <ais523> it doesn't start at 0! 
18:51:48 <ais523> loops never do in brainfuck 
18:52:15 <ais523> but yes, that is one weird function by normal standards 
18:52:19 <AnMaster> ais523, for case 23.... isn't that true for lots of other functions too? sqrtl, tanl, sinl, cosl, asinl and so on 
18:52:37 <AnMaster> cfunge check that they exist and fall back to double variants 
18:52:58 <ais523> AnMaster: it's to do with which functions are used by newlib, and which ones aren't 
18:53:01 <ais523> newlib needs fabsl to exist 
18:53:17 <ais523> my library is just like gcc; it implements bits of C99 but not all of them 
18:53:26 <AnMaster> ais523, case 24 says old style prototype, but I don't see that. All I see is a modern varargs prototype: "int fcntl(int fd, int cmd, ...)" 
18:53:46 <ais523> to be precise, it implements the bits that newlib needs 
18:53:53 <ais523> also, I don't get that warning on case 24 
18:54:00 <ais523> but are you actually trying to compile that code? 
18:54:14 <AnMaster> ais523, no I was reading your comemnt 
18:54:16 <ais523> half of it doesn't make any sense on any platform other than gcc-bf 
18:54:23 <AnMaster> " n.b. old-style prototype as we don't know how many arguments we're getting and thus need to force an unprototyped call " 
18:54:33 <ais523> and forgot to update the comment 
18:54:43 <ais523> I assumed it was using old-style argument type-punning 
18:54:49 <ais523> like lots of the old BSD interfaces did 
18:55:05 <ais523> but actually it turned out to be varargs 
18:55:10 <AnMaster> ais523, hm I don't see any calls to functions to handle varargs stuff in there 
18:55:16 <ais523> ironic really because I never use the third argument 
18:55:43 <ais523> the ... is needed though so it passes args on the stack 
18:55:58 <ais523> varargs calling conventions are different on most architectures from the non-varargs version 
18:56:13 <AnMaster> /usr/include/gentoo-multilib/amd64/fcntl.h:extern int fcntl (int __fd, int __cmd, ...); 
18:56:26 <AnMaster> weird to use __ in parameter list 
18:56:26 <ais523> yes, it's a ... in newlib's .h too 
18:56:34 <ais523> and not at all in a system header file 
18:56:42 <ais523> imagine if the user does #define fd before including it 
18:56:55 -!- bsmntbombdood has quit (Read error: 110 (Connection timed out)). 
18:57:02 <ais523> header files can't mention any user-namespace stuff at all other than what they're meant to be defining 
18:57:12 <ais523> (splint actually gives a warning about this on its strictest mode...) 
18:57:29 <AnMaster> ais523, hm does opening /dev/null work? 
18:57:46 <ais523> not if it doesn't exist and you don't specify O_CREAT 
18:57:54 <ais523> no directory structure, no special filenames 
18:57:59 <AnMaster> ais523, I mean a null device node 
18:58:05 <ais523> there are no device nodes 
18:58:10 <ais523> stdin/out/err are special-cased 
18:58:21 <ais523> everything else is a regular file, all chars but NUL allowed in filenames, no directories 
18:58:40 <ais523> also, all files are owned by root, nosuid, noexec, permissions 644 
18:58:49 <AnMaster> ais523, am I right in my understanding that gcc-bf will have one very advanced security feature? 
18:59:01 <ais523> which is the inability to do anything BF can't do? 
18:59:28 <AnMaster> mandatory NX on the data and write protected code? 
18:59:34 <AnMaster> and that mprotect() can't change it 
18:59:56 <AnMaster> ais523, you could make it sound enterprisy :) 
19:00:00 <ais523> mandatory NX on data, mandatory NR/NW on the code 
19:00:22 <ais523> annoyingly gcc requires executable stack to implement nested functions 
19:00:29 <tusho> sounding like a crazy esoteric code wizard who can code something like gcc-bf is sometimes better than sounding enerprisey 
19:00:32 <ais523> but I decided to not implement that because they aren't part of standard C anyway 
19:01:01 <AnMaster> ais523, yes. Except I have seriously considered adding JIT using llvm or similiar to cfunge 
19:01:15 <AnMaster> only thing blocking that is 1) time 2) LLVM is C++ 
19:01:35 <ais523> well, I may write the bytecode version some time in which the program is stored in the same memory as the data 
19:01:44 <ais523> and only the VM would be unreadable and unwritable 
19:01:47 <AnMaster> ais523, would be even slower :D 
19:02:02 <ais523> the memory would be "nonexecutable", but the VM could execute it so there wouldn't be a problem 
19:02:14 <ais523> also, I don't think it would be slower by a factor of more than n^2 or so 
19:02:18 <AnMaster> ais523, anyway it would be an optional cfunge feature if I did it 
19:02:42 <ais523> AnMaster: luckily gcc-bf runs in polynomial time, I think 
19:04:25 <AnMaster> ais523, which column in ps aux is the memory usage that would be relevant for gcc-bf? 
19:04:47 <AnMaster> USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND 
19:04:47 <AnMaster> arvid    11814  0.2  0.5  18080  7948 pts/4    T    20:03   0:00 build/cfunge -S mycology/mycology.b98 
19:05:02 <ais523> probably all of them added together 
19:05:38 <AnMaster> ais523, in what units? 18080 + 7948 
19:05:40 <ais523> the entire OS is inside the program too 
19:05:53 <AnMaster> ais523, I'm not sure if it will fit with mycology inside 16 MB RAM 
19:06:33 <AnMaster> ais523, cfunge wasn't coded for that memory limited systems 
19:06:46 <tusho> 16MB of ram is not memory limited. 
19:06:57 <ais523> well, I've fit an entire Linux distro into 16 MB disk space, 64 MB RAM 
19:07:04 <tusho> for a gui app running on a fully-featured OS, sure. 
19:07:05 <ais523> although I had to take bits out to fit Python on there 
19:07:11 <tusho> for an esolang interp, no, 16MB is luxury 
19:07:16 <AnMaster> tusho, fully featured? As in Linux? 
19:07:24 <tusho> AnMaster: Or Windows or OS X. 
19:07:50 <AnMaster> 119890 * 8 bytes for 64-bit cfunge to hold mycology 
19:07:58 <ais523> AnMaster: it's in kilobytes 
19:08:20 <ais523> so yes, 26MB is a bit too much 
19:08:35 <tusho> ais523: why can't you have infinite memory 
19:08:37 <ais523> well, gcc-bf doesn't support debug info 
19:08:38 <tusho> i.e. that of the BF host 
19:08:52 <ais523> tusho: it does, but you can't take pointers to stuff outside the first 16MB 
19:09:05 <ais523> which makes it pretty hard to use with regular C programs 
19:09:11 <tusho> ais523: perhaps have an extension thing:a 
19:09:20 <AnMaster> ais523, it gets down to 17 MB without it 
19:09:25 <AnMaster> and this is 64-bit funge remember 
19:09:49 <tusho> __mem(multiples of 16 for base offset, value) 
19:09:50 <ais523> AnMaster: how much of that is on the stack? 
19:09:54 <tusho> addresses memory at offset+value 
19:10:09 <AnMaster> ais523, most is the hash table on the heap, which have lots and lots of pointers 
19:10:11 <ais523> You get 16MB for the stack, and another 16MB for heap + bss + initialised data + rodata combined 
19:10:19 <AnMaster> ais523, I use a memory pool to allocate the cells from 
19:10:22 <ais523> also the program itself doesn't count 
19:10:36 <ais523> you get 16 million basic blocks there 
19:10:46 <ais523> which is easily enough for anything I'm likely to be able to think of 
19:10:54 <AnMaster> ais523, remember my pointers are 64 bits 
19:11:03 <ais523> ah yes, mine are 32 bits 
19:11:11 <ais523> actually they're 26 bits 
19:11:16 <ais523> but padded to 32 for sanity reasons 
19:11:27 <AnMaster> ais523, and only a tiny fraction of the memory is on the stack 
19:11:31 <ais523> generally C likes sizeof(void*) to be an integer 
19:11:36 <AnMaster> basically arguments + local variables 
19:11:47 <ais523> it'll be fast to access the stack, though 
19:11:51 <ais523> if you don't have much on it 
19:12:05 <AnMaster> ais523, well I pass pointers to stuff on the heap 
19:12:14 <AnMaster> ais523, also what about static const arrays? 
19:12:23 <ais523> they're in the same memory storage as the heap is 
19:12:24 <AnMaster> I use one large such to look up fingerprint function pointer in 
19:13:34 <AnMaster> ais523, actually I don't think I use all that memory, but the initial hash table size is on the large size, I found that it helped performance quite a bit in mycology 
19:13:59 <ais523> well maybe I can just reduce the numbers a bit, I don't think performance is likely to be very important here... 
19:14:29 <ais523> doubling the speed of your program is pointless when the interpreter's making it worse by several factors of n 
19:16:53 <AnMaster> ais523, my normal build is 2.5 MB binary with debug info and 160 KB after strip, with an -Os x86_32 build I got 79 KB after strip 
19:17:22 <ais523> maybe I should get a buildable-by-someone-else version of gcc_bf up sometime 
19:17:31 <ais523> so you can have a go at running what I've done so far 
19:17:32 <AnMaster> USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND 
19:17:33 <AnMaster> arvid    13331  4.0  0.3   6780  5400 pts/4    T    20:17   0:00 build_32/cfunge -S mycology/mycology.b98 
19:17:43 <AnMaster> ais523, that is *without* changing the initial alloc size 
19:17:54 <ais523> bf-gcc -o works fine atm (and is equivalent to bf-gcc -S apart from the output filename) 
19:18:05 <ais523> and those numbers look tenable 
19:18:23 <AnMaster> cfunge is extremely pointer heavy 
19:18:36 <ais523> and it's also extremely int heavy 
19:18:42 <AnMaster> ais523, well I used that in the last 64-bit build 
19:18:45 <ais523> or at least native-int-size heavy 
19:18:49 <AnMaster> it didn't make a lot of difference 
19:19:02 <ais523> but yes, code that pointy isn't going to go well with brainfuck 
19:19:07 <ais523> as brainfuck doesn't like pointers or anything similar 
19:19:20 <AnMaster> ais523, well a hash library is pointy by definition kind of 
19:19:49 <AnMaster> I have tried to reduce pointers there 
19:19:58 <AnMaster> special case the hash library code 
19:20:35 <ais523> hmm... if I wrote a funge interp from scratch in brainfuck, I could take advantage of the infinite memory to not bother with hashing 
19:20:54 <AnMaster> ais523, from using a void* pointer in the nodes to point at the data to contain the data directly in the record 
19:21:14 <ais523> yes, I was talking about brainfuck in general not gcc-fb 
19:21:21 <ais523> where you do have infinite memory 
19:21:23 <AnMaster> ais523, also you wouldn't want to write a befunge-98 from scratch, it is *hard* the first time 
19:21:31 <AnMaster> since there are such a lot of pitfalls 
19:21:38 <AnMaster> it was a lot easier the second time with efunge 
19:21:40 <ais523> gcc-bf has infinite memory but it doesn't have infinite addressable memory, so the infinite memory is a bit pointless 
19:21:45 <AnMaster> but even then I hit several of those pitfalls 
19:21:49 <Deewiant> if you don't use mycology for testing it's a lot easier ;-P 
19:22:07 <AnMaster> Deewiant, but it doesn't test everything 
19:22:32 <Deewiant> kind of hard to test every possible valid befunge-98 program :-P 
19:22:38 <AnMaster> Deewiant, kk ..... k       v ...... kt        kq 
19:23:08 <ais523> AnMaster: what does o do again? 
19:23:09 <AnMaster> Deewiant, it means you can do like MS: Rig the POSIX test 
19:23:16 <ais523> kkkt is bad enough to think about, anyway 
19:23:48 <ais523> Deewiant: probably worth having something on the stack beforehand 
19:25:29 <ais523> Deewiant: I just ran #tkkkt in debug mode in ccbi 
19:25:48 <ais523> it went into an infinite loop at the first k 
19:25:53 <AnMaster> Deewiant, ais523: leason: Set your ulimits! 
19:26:00 <ais523> busyloop by the feel of it as everything else on the computer stopped responding 
19:26:10 <Deewiant> now if I only knew what caused the crash 
19:26:22 <AnMaster> Deewiant, it doesn't crash in cfunge 
19:26:28 <ais523> AnMaster: and it's certainly worth setting ulimits when compiling gcc-bf, several times the resulting code, which runs during the compilation, turned out to have infinite recursion 
19:26:33 <ais523> AnMaster: what does it do in cfunge? 
19:26:35 <AnMaster> Deewiant, all it does is hit my ulimit after about 2 seconds 
19:26:53 <Deewiant> it could be a stack overflow crash 
19:27:05 <ais523> AnMaster: which ulimit does it hit? 
19:27:06 <AnMaster> Deewiant, well you store the stuff on the stack? 
19:27:43 <ais523> what does that one do? 
19:27:49 <ais523> I don't think I've ever used it 
19:27:53 <AnMaster> max memory size         (kbytes, -m) unlimited 
19:27:57 <Deewiant> AnMaster: so what, you think I should allocate k's stack frame on the heap? :-P 
19:27:57 <ais523> and I don't understand the docs for it 
19:28:05 <ais523> wait, -m is "max resident set size" on my computer 
19:29:46 <ais523> and I have no idea what that means 
19:29:57 <AnMaster> ais523, wait it hit -v first actually 
19:30:14 <ais523> ah, -v is one of the ones I normally set when I have a hunch that something might hit ulimit 
19:30:20 <ais523> normally I set it quite low, though 
19:30:34 <AnMaster> actually what happened to be exact was: 
19:30:35 <AnMaster> Could not create IP, possibly out of memory? 
19:30:35 <AnMaster> Things may be broken now, continuing anyway. 
19:30:57 <AnMaster> not sure what logic I used for that 
19:31:22 <AnMaster> ais523, oh and the 25 MB, those include libraries I think 
19:31:28 <AnMaster> ais523, if I set -v low enough I get: 
19:31:40 <AnMaster> ./cfunge: error while loading shared libraries: libdl.so.2: failed to map segment from shared object: Cannot allocate memory 
19:32:06 <AnMaster> ais523, that could explain the huge memory usage 
19:32:48 <AnMaster> actually it seems cfunge does *not* handle most errors gracefully really: 
19:32:51 <ais523> well, ncurses may be a lot simpler on gcc-bf 
19:32:54 <AnMaster> $ ( ulimit -v $(( 15 * 1024 )); ./cfunge -S test.b98; ) 
19:32:54 <AnMaster> cfunge: /home/arvid/src/cfunge/trunk/src/ip.c:199: ipListDuplicateIP: Assertion `index <= (*me)->top' failed. 
19:33:02 <AnMaster> ais523, it needs terminal move 
19:33:05 <ais523> if I get it working there at all 
19:33:13 <AnMaster> ais523, all I use from ncurses are the low level terminfo bits 
19:33:26 <AnMaster> I don't use the high level dialog functions 
19:33:38 <ais523> AnMaster: what happens if you try to write to /dev/full inside cfunge? 
19:33:43 <ais523> that's a useful device to know about 
19:33:59 <AnMaster> ais523, well using o, it should refelect 
19:34:14 <AnMaster> ais523, the issue is that it doesn't handle realloc/malloc errors gracefully all the time 
19:34:21 <ais523> I wonder how many people take the possibility of reflecting o into account? 
19:34:34 <AnMaster> ais523, I certainly do reflect on it in some cases 
19:34:36 <ais523> also, handling realloc/malloc errors can often be done simply by wrapping realloc and malloc 
19:34:42 <AnMaster> ais523, also you do when you code since o is optional 
19:34:44 <ais523> I meant when writing Funge programs 
19:34:59 <AnMaster> ais523, you need to check with y if i and o are implemented 
19:35:59 <AnMaster> $ ( ulimit -v $(( 13 * 1024 )); ./cfunge -S test.b98; ) 
19:35:59 <AnMaster> malloc: Cannot allocate memory 
19:35:59 <AnMaster> Couldn't create funge space!?: Illegal seek 
19:36:09 <ais523> or just try bouncing filenames off them to see what happens 
19:36:13 <AnMaster> ais523, I think I know what that was. :D mmap failing 
19:36:46 <AnMaster> ais523, it seems at least 11 MB alone in the 64-bit build is needed to load the libraries and the binary 
19:37:09 <ais523> well, the libraries and binary aren't in memory for gcc-bf 
19:37:14 <ais523> so there's no problem to worry about there 
19:37:39 <AnMaster> ais523, indeed and on linux the libraries will be shared with other apps 
19:37:54 <ais523> whereas gcc-bf statically links everything 
19:37:57 <AnMaster> so just one copy of each libary 
19:38:00 <ais523> because there is no more than one program per universe 
19:38:24 <AnMaster> ais523, right. Does ick have issues with dlopen/dlclose btw? 
19:38:36 <ais523> shouldn't do, it doesn't notice them itself 
19:38:43 <ais523> it will have no idea if you're using them or not 
19:41:18 -!- Hiato has joined. 
19:41:36 -!- puzzlet has quit (Remote closed the connection). 
19:41:40 -!- puzzlet has joined. 
19:42:22 -!- KingOfKarlsruhe has joined. 
20:10:08 -!- Hiato has quit ("Leaving."). 
20:13:45 <AnMaster> ais523, I need your help with an issue 
20:14:18 <AnMaster> ais523, read the comments on http://aur.archlinux.org/packages.php?ID=18937 
20:14:27 <AnMaster> ais523, I haven't got any response 
20:14:57 <AnMaster> ais523, the *direct* link is needed since it is a program that downloads, not a human 
20:15:04 <AnMaster> but that person doesn't seem to understand it 
20:15:19 <ais523> I understand his situation better than you do, probably 
20:15:28 <AnMaster> ais523, well I need *direct link to tarball* 
20:15:32 <ais523> there is more than one download site for c-intercal 
20:15:36 <ais523> he's suggesting you link to the other one 
20:15:49 <AnMaster> I need a direct link to the tarball again 
20:16:11 <AnMaster> ais523, it will be fetched by a program, not by a human like he seems to assume 
20:16:30 <ais523> http://www.intercal.ukfsn.org/download/ick-0-28.tgz and http://intercal.freeshell.org/download/ick-0-28.tgz are the two download locations for C-INTERCAL 0.28 
20:16:56 <ais523> the problem is maybe neither of them are 
20:17:06 <ais523> maybe we should persuade tusho to host a permanent version 
20:17:09 <AnMaster> ais523, also it was over a month since I responded to him and he didn't reply 
20:17:25 <tusho> "what an arse" who 
20:17:36 <ais523> (btw if you expect C-INTERCAL download locations to be permanent, you are obviously unaware of the history; many versions were never distributed over either HTTP or FTP) 
20:17:49 <ais523> some were done as shars over usenet, others were distributed as patches to other versions 
20:17:55 <tusho> oh, AnMaster is calling Claudio an arse? 
20:17:57 <tusho> well fuck you too AnMaster 
20:17:58 <AnMaster> ais523, the link will be fetched by wget basically (actually curl iirc) 
20:18:09 <ais523> AnMaster: what about using a redirection service? 
20:18:10 <AnMaster> ais523, so I need a link *which works for that* 
20:18:33 <AnMaster> ais523, couldn't http://intercal.freeshell.org/download/ick-<version>.tgz provide that? 
20:18:34 <ais523> I understand what you need, I'm just trying to explain you might not be able to get it 
20:18:50 <AnMaster> ais523, or you could use the sourceforge mirror system :) 
20:19:00 <AnMaster> I do that for cfunge *exactly for that reason* 
20:19:01 <ais523> sourceforge... now there's an idea 
20:19:21 <AnMaster> ais523, and it is the only bit I use the cfunge project on there for really 
20:19:50 <AnMaster> ais523, it should be perfect for mirror network 
20:20:11 <ais523> well, maybe I'll move to eso-std.org when I'm convinced that tusho won't move everything around every 10 seconds 
20:20:25 <AnMaster> ais523, sf.net seems sane to me 
20:20:33 <tusho> ais523: you know me. I'll move it around as soon as AnMaster updates his thing to use it 
20:20:37 <AnMaster> ais523, also why didn't he bother to respond I tried to ask what he meant? 
20:20:48 <tusho> AnMaster: people have lives 
20:20:52 <ais523> AnMaster: he tends to be busy, I think 
20:21:10 <AnMaster> ais523, yet another reason to use sf.net, I think they changed download link once the last 5 years :P 
20:21:34 <AnMaster> from dl.sourceforge.net/project/filename to download.sourceforge.net/project/filename 
20:21:59 <AnMaster> ah yes http://downloads.sourceforge.net/cfunge/cfunge-0.3.2.tar.bz2 
20:22:31 <AnMaster> ais523, and that redirects to some mirror 
20:22:48 <ais523> AnMaster: evil idea: use Debian's version of the original source 
20:22:59 <ais523> that's mirrored all over hte place 
20:23:12 <ais523> it's bundled in the dpkg 
20:23:20 <ais523> along with a Debian-specific diff 
20:23:21 <AnMaster> ais523, no way I'm extracting that 
20:23:47 <AnMaster> ais523, I do odd stuff already: http://aur.archlinux.org/packages/c-intercal/c-intercal/PKGBUILD 
20:24:02 <AnMaster> ick at least used to break at -j2 or higher 
20:24:06 <ais523> AnMaster: that's less than a page of odd stuff 
20:24:45 <ais523> in fact that looks positively sane 
20:25:11 <AnMaster> ais523, what about the gentoo version: http://bugs.gentoo.org/attachment.cgi?id=157803 
20:25:30 <AnMaster> (odd that Claudio didn't comment on http://bugs.gentoo.org/show_bug.cgi?id=228563) 
20:25:39 <ais523> that's better, but still too short 
20:25:54 <ais523> (btw config.sh is named configure again in -1.29, you'll be glad to know) 
20:28:50 <AnMaster> "IMHO, the major.minor.major version is asking for trouble. What will happen if 
20:28:50 <AnMaster> upstream decides to add a micro version component? I think the Gentoo version 
20:28:50 <AnMaster> should follow major.minor (i.e., 28.0, even if this is boring)." 
20:29:28 <ais523> AnMaster: I actually have incomplete plans somewhere for a complete Debian-legal version mangling scheme 
20:29:35 <ais523> I even got hold of the source to dpkg to check 
20:29:43 <ais523> even 28.0 won't handle the version numbers for the alphas 
20:29:55 <ais523> -1.29 = alpha for 0.29 
20:30:07 <ais523> or maybe even 1.-3.0.29 
20:33:41 <AnMaster> ais523, well we will just skip alphas then 
20:34:00 * ais523 is tempted to release a version of C-INTERCAL with a version number like "fish" to annoy everyone 
20:34:13 <tusho> ais523: just make versions C-INTERCAL programs 
20:34:14 <ais523> I won't, though, that would be evil 
20:36:24 -!- Mony has quit ("À vaincre sans péril on triomphe sans gloire..."). 
20:39:46 <AnMaster> ais523, better yet: make the version fish and the *codename* 0.29 
20:40:03 <ais523> it's had various codenames at various stages 
20:40:10 <ais523> -1.29 is a good one, though, as it's pretty obvious what it means 
20:40:21 <ais523> it was called 1.29 at one point, because I wasn't sure if it was a bugfix release or not 
20:40:23 <fizzie> TeX (and metafont) have that funny version numbering, where the version number approaches pi (or e for metafont) by adding one digit to the end of the version number; TeX is currently at 3.1415926. But maybe that's too user-friendly since it's just a monotonically increasing number. 
20:41:16 <fizzie> I'm sure most people know, but since the topic was version numbering... 
20:43:34 <AnMaster> ais523, also I thought it was clc that did negative? 
20:43:52 <ais523> clc does negatives using decimal, though 
20:43:58 <ais523> which is pretty easy to translate 
20:44:05 <ais523> whereas C-INTERCAL is lexicographic 
20:45:26 <AnMaster> ais523, can you contact Claudio and explain why *direct link to tarball* is needed, since he now added an offending text at the top of http://intercal.freeshell.org/download/ about that 
20:45:35 <AnMaster> ais523, I hope you can do it soon 
20:45:49 <AnMaster> or I will just give up on it, it needs a stable link 
20:45:58 <AnMaster> even if that means it has to be source forge 
20:46:00 <ais523> AnMaster: I think he's pretty much pointing out that a stable link is unavailable via his servers 
20:46:44 <AnMaster> ais523, well gentoo will mirror it to it's own servers if the ebuild get accepted, but they will fetch from the original 
20:46:55 <AnMaster> ais523, while archlinux won't mirror source 
20:47:01 <ais523> well in that case just point Arch at the Gentoo servers and you're done 
20:47:29 <AnMaster> ais523, doesn't work since old mirrored files are cleaned out when the corresponding ebuild is removed 
20:47:45 <AnMaster> so when it is updated the link will suddenly get invalid overnight 
20:48:20 <AnMaster> give me a reason *against* using them for mirroring 
20:48:40 <AnMaster> for code or website hosting sure, but their mirror system is way way more stable 
20:49:24 <ais523> AnMaster: you can use them for that if you like 
20:49:38 <AnMaster> ais523, you need to register the c-intercal project there then 
20:49:40 <ais523> however, INTERCAL was never really based on practicality 
20:50:06 <AnMaster> ais523, you don't want distributions to include packages? 
20:50:29 <ais523> oh, well Debian rarely seem to have a problem, they even found some of them without hints 
20:50:41 <ais523> and it seems strange that distros demand a stable download link 
20:50:45 <AnMaster> ais523, well that is due to them hosting it themselves 
20:50:52 <ais523> couldn't you just update the link whenever it changes? 
20:51:02 <tusho> AnMaster: ais523's job is to make INTERCAL as difficult as possible to work with in any way 
20:51:07 <ais523> that's what package managers are good at, isn't it? 
20:51:10 <tusho> you are asking him to do exactly the opposite 
20:51:19 <ais523> tusho: actually, yes, I get criticised on a.l.i if I make it too easy... 
20:51:32 <ais523> possibly I've gone too far letting it build without manual tinkering 
20:51:39 <AnMaster> ais523, I read a.l.i, it is dead basically 
20:51:49 <ais523> AnMaster: lots of people read it, hardly anyone writes there though 
20:52:03 <ais523> Deewiant: .pax.lzma, I'm thinking, with .pax.bz2 and .pax.gz versions too 
20:52:06 <ais523> that way anyone can read it 
20:52:21 <AnMaster> ais523, and I don't write because I don't have access to anything but readonly newserver 
20:52:26 <ais523> Deewiant: INTERCAL doesn't necessarily have to be difficult, but it does have to be different 
20:52:38 <ais523> so using a POSIX standard format when nobody else does = win 
20:52:49 <AnMaster> <ais523> Deewiant: .pax.lzma, I'm thinking, with .pax.bz2 and .pax.gz versions too <-- gentoo's unpack ebuild command handle them all 
20:52:56 <Deewiant> the comp my irssi runs on doesn't even have pax 
20:53:03 <ais523> Deewiant: it's upward-compatible with tar 
20:53:05 <tusho> everyone has access to a write newserver 
20:53:10 <ais523> regular tar can read pax-encoded files 
20:53:13 <ais523> even if it doesn't know it 
20:53:25 <ais523> GNU tar can even create them 
20:53:35 <tusho> i have pax on this os x system 
20:53:38 <Deewiant> ais523: what if it contains stuff like over-255-char filenames or whatever pax supports that tar doesn't? 
20:53:53 <ais523> it gets mapped to files with long complicated names that don't clash with anything 
20:53:59 <ais523> and you get a tar-suitable version instead 
20:54:08 <ais523> AnMaster: doesn't preserve directory structure 
20:54:14 <ais523> I looked into that when tusho suggested it, though 
20:54:36 <Deewiant> ais523: make an ar which contains ars which are named according to directory 
20:54:44 <Deewiant> so foo/bar/baz becomes foo.a -> bar.a -> baz.a -> files 
20:55:07 <AnMaster> ais523, care to write an unpacker script for then ;P 
20:55:11 <ais523> I still think .pax is perfect, it doesn't actually require any extra effort from people but they don't realise it 
20:55:20 <AnMaster> ais523, and yes that sounds good 
20:55:36 <AnMaster> ais523, was there any comments on CREATE on a.l.i? 
20:55:41 <Deewiant> ais523: well, I think people will just try tar xf and be happy when it works :-P 
20:55:55 <ais523> Deewiant: I was going to tell them that that's what they should do 
20:56:02 <ais523> do you think they'd guess even without/ 
20:56:13 <Deewiant> I think some wouldn't even notice that it's pax and not tar 
20:56:44 <Deewiant> they'll just see "XXXX.XaX.gz" and use tar xzf :-P 
20:57:03 <GregorR> Something occurred to me on the bus today: Stereotypical black guy = valley girl | sed 's/like/motherfucker/g' 
20:57:26 <AnMaster> Fri Sep 12 17:17:02 CEST 2008  ais523@bham.ac.uk 
20:57:27 <AnMaster> Sun Sep 14 11:12:25 CEST 2008  Alex Smith <ais523(524\)(525)x)@bham.ac.uk> 
20:57:33 <ais523> heh, Google is really unhelpful at determining how to unpack a pax 
20:57:36 <AnMaster> ais523, ^ what is up with those escape codes? 
20:57:39 <tusho> AnMaster: comments 
20:57:41 <ais523> AnMaster: no escapes at all 
20:57:44 <tusho> he is trying to break your mailer 
20:57:44 <ais523> that's a valid email address 
20:57:47 <ais523> it just has nested comments in 
20:58:00 <AnMaster> ais523, ah does any modern email client handle it 
20:58:01 <ais523> no spambot I know of is capable of handling them 
20:58:15 <AnMaster> ais523, far from all humans too 
20:58:15 <ais523> AnMaster: well, Thunderbird can handle comments but not nested comments, I've heard 
20:58:15 <GregorR> tusho: There was the world's most stereotype-conformant black guy on the bus today. It was ridiculous. It's like he went to racist websites and adopted every stupid stereotype they had. And yeah, that's the equivalence. 
20:59:07 <AnMaster> ais523, it seems darcs pull locked up 
20:59:12 <ais523> ofc the utility of a complicated comment syntax with nested comments and escapes for the comment delimiters in email addresses is somewhat suspect 
20:59:33 <AnMaster> ais523, protecting against spambots? 
20:59:35 <ais523> AnMaster: it shouldn't have 
20:59:46 <ais523> and yes, it's partly spambot protection, and partly just because I can 
20:59:58 <AnMaster> ais523, I pressed y for the last patch and then nothing 
21:00:03 <ais523> anyway the latest version the cfunge stuff is broken as I haven't redone the built process for it 
21:00:16 <ais523> AnMaster: try killing and restarting the connection? 
21:00:38 <AnMaster> iirc it used to have some output 
21:00:47 <ais523> it does once it's downloaded 
21:00:55 <ais523> it does that when it has network problems 
21:01:17 <AnMaster> Alex Smith <ais523(524\)(525)x)@bham.ac.uk>**20080914091817] 
21:01:38 <ais523> strange, I've never known it to crash there before 
21:02:05 <ais523> seeing as I moved everything to different places using the wrong commands I could understand if it got a bit confused, but darcs is good at that sort of thing 
21:02:52 <AnMaster> ais523, it seems to be swap trashing? 
21:02:55 <ais523> let me try a clean unpack myself 
21:03:43 <ais523> it worked for me from clean 
21:04:28 <Deewiant> heh, that's an awfully quiet bug https://bugzilla.mozilla.org/show_bug.cgi?id=147346 
21:04:58 * ais523 recreates a tree 3 patches from the end, then tries pulling the last 3 
21:05:03 <ais523> which is what AnMaster's doing I think 
21:05:22 <AnMaster> trying make clean and such now 
21:05:49 <ais523> not sure what that was, then 
21:05:54 <AnMaster> ais523, it worked after make clean and removing cfunge build tree in there 
21:06:57 <ais523> it doesn't work cross-compiling yet 
21:07:16 <ais523> I don't know how to tell automake to build with native compiler rather than cross-compiler even in a cross-compilation build 
21:08:14 <ais523> I just don't know how Automake handles that situation 
21:08:28 <ais523> gcc isn't automake-based IIRC 
21:08:50 <ais523> half the makefiles there seem to be generated dynamically as it is 
21:08:53 <AnMaster> you would think they would use their own stuff 
21:09:06 <ais523> gcc-bf even has a Perl script which edits one of the makefiles 
21:09:12 <ais523> it compiles once, edits the makefile and recompiles 
21:09:17 <Deewiant> they started using autoconf and realized what crap it is before they got to automake 
21:09:22 <ais523> the makefile isn't even there to edit before the first compile 
21:09:43 <AnMaster> Deewiant, it is better than maintaining the files by hand 
21:09:46 <ais523> AnMaster: because the makers of gcc in their infinite wisdom didn't forsee that an 8-bit system would need 64-bit emulation libraries 
21:09:54 <AnMaster> stuff like cmake or scons beat both however 
21:10:10 <AnMaster> though cmake kind of sucks if you build shared libraries 
21:10:33 <ais523> actually I had my idea for my own make system 
21:10:38 <ais523> which I'll call aimake if I make it 
21:10:46 <ais523> it doesn't need any input at all 
21:10:57 <Deewiant> runs gcc on every file in the current subdirectory? 
21:10:58 <ais523> it analyses all the stuff in your directory structure and works out what to do itself 
21:11:16 <ais523> and does things like hook into ldd and analyse calls to open to work out dependencies 
21:11:19 <AnMaster> want to see the efunge build system? 
21:11:29 <AnMaster> {['src/*'],[{outdir, ebin},warn_obsolete_guard,warn_untyped_record,warn_unused_import,warn_missing_spec_all]}. 
21:11:29 <AnMaster> {['src/fingerprints/*'],[{outdir, ebin},warn_obsolete_guard,warn_untyped_record,warn_unused_import,warn_missing_spec_all]}. 
21:11:55 <Deewiant> what about the fingerprint .spec files 
21:12:01 <AnMaster> then a Makefile wrapper of 7 lines to have a make all target and clean 
21:12:09 <AnMaster> Deewiant, not part of build system 
21:12:36 <AnMaster> and the spec files just describe the fingerprints 
21:12:51 <ais523> they're native build helpers 
21:12:59 <AnMaster> http://rafb.net/p/VS8txA72.html 
21:13:07 <ais523> the sort of thing that can be expressed in Automake which for some reason doesn't realise that they shouldn't be cross-compiled 
21:13:20 <ais523> AnMaster: that's data for a native build helper 
21:13:30 <ais523> arguably idiotism.oil is the same in C-INTERCAL 
21:13:37 <ais523> although it's quite a bit more complicated than those .spec files 
21:13:55 <ais523> at least in terms of the effect it has on the build 
21:13:56 <AnMaster> ais523, well extension reuse :P 
21:14:15 <ais523> AnMaster: C-INTERCAL has plain-text documentation for many of the example programs, with extension .doc 
21:14:23 <ais523> for some reason things keep assuming it's MS-Word files... 
21:14:31 <ais523> but we were here first! 
21:14:51 <Deewiant> .doc is much older than MS Word 
21:15:51 <AnMaster> Deewiant, anyway the bash scripts that process those .spec files are large 
21:16:01 <AnMaster> since they contain here documents with parts of the file 
21:16:26 <AnMaster> http://rafb.net/p/LekfKu32.html 
21:16:30 <AnMaster> to generate the fingerprint list 
21:16:39 <AnMaster> it is the efunge version actually 
21:17:37 <AnMaster> the cfunge ones are similiar but make use of more of the fields in the .spec files 
21:22:16 <tusho> Hooray, http://tusho.net/blog/ redesign launched 
21:24:19 <ais523> and is that some genuine data on your blog/ 
21:25:18 <tusho> ais523: 'genuine data'? 
21:25:31 <ais523> well, something other than testing 
21:25:39 <tusho> all the dates are wrong 
21:26:16 <tusho> ais523: if you refresh you will see that there has been actual posts there regularly since its startu 
21:26:57 <tusho> ais523: ok, if you refresh *now* 
21:28:04 <AnMaster> ais523, http://bzr.kuonet.org/efunge/b98/files 
21:28:17 <AnMaster> I think that feature branch is ready to merge into trunk soon 
21:28:18 <tusho> ok, admittedly there was a 10 day gap after nazi dinosaurs 
21:28:25 <tusho> but nazi dinosaurs have that big of an impact, you know? 
21:28:29 <tusho> they count for like 10 posts on their own 
21:29:03 -!- ais523 has quit (Remote closed the connection). 
21:29:13 <tusho> ^ a nazi dinosaur's work 
21:29:47 -!- ais523 has joined. 
21:32:58 <AnMaster> ais523, mention a mail client for linux that supports your email address please 
21:33:33 <ais523> let me try GNU mail, to see if it works 
21:34:49 <ais523> yep, GNU mail works just fine 
21:34:57 <ais523> as long as you escape the parens from bash when invoking it 
21:36:11 <ais523> it managed the nested comments, but the \) fooled it 
21:36:20 <ais523> I don't have mutt over here 
21:36:38 <ais523> AnMaster: presumably they'll claim that escaping \ in the To address is a feature 
21:36:55 <AnMaster> ais523, it is against the specs? 
21:37:01 <ais523> Delivery to the following recipients failed. 
21:37:01 <ais523>        "ais523(524\\)(525)x)"@bham.ac.uk@adf.bham.ac.uk 
21:37:10 <ais523> AnMaster: you have to escape \ to put it into an email address 
21:37:23 <ais523> actually, that's weirder breakage than I was expecting, in that bounce message 
21:37:43 <ais523> the problem is I was using \ as an escape character, not as a character in the address 
21:38:24 <ais523> AnMaster: I don't think you're getting what's going on here 
21:38:33 <ais523> if you want to insert a literal \ in an email address you have to type it as \\ 
21:38:46 <AnMaster> ais523, well pine handles your 
21:38:46 <ais523> likewise, if you want to insert a literal ) you have to type it as \) 
21:39:12 <AnMaster> ais523, I tried and as soon as I stopped editing the field it stripped the comment 
21:39:48 <AnMaster> ais523, pine is curses based if you don't know 
21:39:58 <tusho> i have never cared much about liceses 
21:40:05 <tusho> so pine is good for me 
21:40:10 <tusho> even though I use gmail.com 
21:40:17 <tusho> Hm. http://en.wikipedia.org/wiki/Alpine_(e-mail_client) 
21:40:22 <tusho> The successor to Pine. 
21:42:12 <AnMaster> To: "524)(525)x" <ais523@bham.ac.uk> 
21:42:26 <ais523> another interesting breakage... 
21:42:35 <ais523> actually, that may be correct 
21:42:45 <ais523> it's extracted the text of the comment and is using it as the realname 
21:42:52 <ais523> interesting thing to do with the comment, I suppose 
21:43:26 <AnMaster> ais523, if I enter the full "Alex Smith <ais523(524\)(525)x)@bham.ac.uk>" it works 
21:43:30 <AnMaster>       To: Alex Smith <ais523@bham.ac.uk> 
21:43:39 <AnMaster> it was when I just entered ais523(524\)(525)x)@bham.ac.uk 
21:43:46 <ais523> taking the realname from the comment is quite clever, really 
21:43:55 <ais523> so in other words, most decent email clients succeed 
21:44:06 <ais523> (I tried on Outlook Web Access; it wouldn't even let me send) 
21:45:50 <AnMaster> ais523, file a bug against evolution 
21:46:07 <AnMaster> ais523, and put yourself on CC on https://bugzilla.mozilla.org/show_bug.cgi?id=147346 
21:46:41 <ais523> Bug creates legal issues according to U.S. law since e.g. a trademark in a 
21:46:41 <ais523> company's email address cannot be protected by the (tm) comment correctly. 
21:47:28 <tusho> ais523: yes, that's an amusing joke 
21:47:35 <ais523> $.==1 || $.==4 and print $.==1?"[[\n":"]]\n" 
21:47:51 <AnMaster> ais523, intercal? perl? line noise? 
21:48:01 <tusho> that is obviously not intercal 
21:48:10 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | my program is provably correct. 
21:48:12 <ais523> quite readable for Perl, too 
21:48:32 <ais523> AnMaster: have you ever /seen/ line noise? 
21:48:35 <tusho> you joked that perl was line noise 
21:48:42 <tusho> oh man, it's as funny as it was in 1990! 
21:48:49 <tusho> ahahahahahahahahhahahaha 
21:49:12 <AnMaster> ais523, yes, at http://esolangs.org/wiki/Perl ;) 
21:49:23 <tusho> ahahahahahaha! you repeated the same joke! 
21:49:32 <ais523>  The e-mail address you entered (ais523(524\)(525)x)@bham.ac.uk) didn't pass our syntax checking for a legal email address. A legal address must contain exactly one '@', and at least one '.' after the @, and may not contain any commas or spaces. It must also not contain any of these special characters: \ ( ) & < > , ; : " [ ], or any whitespace. 
21:49:32 <tusho> oh my, your comedy is truly the highest quality in the world 
21:49:59 <AnMaster> ais523, and send an email complaining 
21:50:18 <AnMaster> ais523, file a bug against bugzilla (use your normal email for now) 
21:50:43 <ais523> nah, I'm just going to utterly fail to be able to file the bug due to the infinite regress involved 
21:50:59 <AnMaster> ais523, revert to normal email for now? 
21:51:04 <tusho> AnMaster: 'normal email' 
21:51:06 <tusho> his email address is: 
21:51:12 <tusho> ais523(524\)(525)x)@bham.ac.uk 
21:51:14 <tusho> using another would be dishonest 
21:51:27 <ais523> well, no clearly that email address is contrived 
21:51:35 <ais523> I may have to move to another one after a year or so anyway 
21:51:36 <tusho> ais523: what?! you mean that one is dishonest? 
21:51:43 <tusho> I expected more from you, ais523... 
21:51:49 <ais523> the comments are pretty accurate for a programmer like me, after all 
21:52:01 <tusho> heh, I wonder what email ais523 will switch to... 
21:52:05 <tusho> he'd never use a hosted solution 
21:52:07 <AnMaster> ais523, well I'm going to file bugs for all websites I use, from now on I will use nested comments when I register 
21:52:11 <tusho> so i'll probably have to set up postfix on rutian 
21:52:21 <tusho> wonder what domain... 
21:52:23 <AnMaster> should it faill I will register with comment free email and file a bug 
21:52:24 <tusho> probably eso-std.org 
21:52:35 <ais523> tusho: you never know, I have working email on Normish 
21:52:45 <tusho> ais523: now THAT is playing with fire... 
21:53:05 <tusho> AnMaster: how does a djb know what a license is? 
21:53:17 <AnMaster> tusho, well public domain works 
21:53:37 <tusho> AnMaster: until recently it wasn't licensed like that 
21:53:47 <tusho> djb's position on licenses is fundamentally flawed and i'm not risking myself legally like that 
21:53:55 <AnMaster> tusho, and thus until recently I used postfix 
21:53:58 <tusho> plus on principle i don't want to support software licensed like that 
21:54:09 <AnMaster> but I had tried qmail out and noted how much better it was 
21:54:13 <ais523> tusho: so this is why you exclusively use programs licenced under GPL3, right? 
21:54:30 <tusho> ais523: no, i use things licensed with licenses that aren't completely broken 
21:54:36 <tusho> i hate the gpl3, but i wouldn't argue it is completely broken 
21:54:54 <ais523> tusho: for ages CLC-INTERCAL's licence agreement was given in source form and had to be compiled in order for you to read it 
21:55:09 <tusho> and probably legally invalid 
21:55:15 <ais523> although it's just BSD3 anyway 
21:55:27 <ais523> or some trivial variant of it 
21:55:32 <AnMaster> ais523, you could compile it in your head 
21:55:59 <ais523> AnMaster: I fear it may have been written in CLC-INTERCAL 
21:56:03 <ais523> which is written in itself 
21:56:17 <ais523> they supply a pre-compiled version in ICBM so you can get started 
21:56:22 <ais523> and the ICBM interpreter is written in Perl 
21:56:24 <tusho> its written in itself, 
21:56:30 <tusho> using its perl ffi 
21:56:38 <ais523> CLC-INTERCAL is written in CLC-INTERCAL, and compiles to bytecode 
21:56:47 <ais523> The Perl programs are to interpret the resulting bytecode. 
21:56:51 <ais523> of the program you compiled 
21:57:02 <ais523> or of the compiler, for that matter 
21:57:16 <AnMaster> ais523, writing an intercal compiler in intercal is pretty hard I bet 
21:57:30 <ais523> AnMaster: it's a different set of syntax for the compilation than for the main programming 
21:57:36 <ais523> the compiler's nothing but CREATE statements 
21:57:41 <AnMaster> ais523, huh, that's cheating ;P 
21:57:46 <ais523> and the bytecode has lots of features, like COME FROM, that make it easy to compile into 
21:57:54 <ais523> no, ICBM is the bytecode 
22:00:04 -!- CO2Games has joined. 
22:00:36 -!- tusho has quit. 
22:05:48 <AnMaster> ais523, what is the compiler then? 
22:06:04 <AnMaster> and the byte code interpreter? 
22:06:06 <ais523> there are various compilers 
22:06:13 <ais523> all of which are written in IACC 
22:06:25 <ais523> one of the compilers itself compiles IACC into ICBM 
22:06:35 <ais523> and a Perl program interprets the ICBM 
22:06:43 <AnMaster> ais523, this is *worse* than C-INTERCAL 
22:06:49 <ais523> I never said it wasn't! 
22:07:03 <ais523> basically, the IACC compiler is written in IACC and compiles IACC to ICBM. 
22:07:17 <ais523> The other compilers compile CLC-INTERCAL, and other related languages, to ICBM, and are written in IACC. 
22:07:19 <AnMaster> ais523, bootstrapping it must have been a hell 
22:07:26 <ais523> The ICBM interpreter is written in Perl. 
22:07:36 <ais523> and yes, that's what I think too, probably 
22:07:59 <AnMaster> ais523, they should write an ICBM -> C compiler in IACC :D 
22:08:09 -!- tusho has joined. 
22:08:09 <ais523> however compiling iacc.iacc into iacc.io (where io is the extension for ICBM) probably isn't ridiculously difficult by hand as it's all CREATE statements 
22:08:26 <ais523> hmm... let me type that again so tusho can see it 
22:08:29 <ais523> basically, the IACC compiler is written in IACC and compiles IACC to ICBM. 
22:08:35 <ais523> The other compilers compile CLC-INTERCAL, and other related languages, to ICBM, and are written in IACC. 
22:08:38 <ais523> The ICBM interpreter is written in Perl. 
22:08:50 <tusho> ais523: Not the best time. Sorry. 
22:09:14 * ais523 wonders what the odds are that anyone but them and Claudio Calvelli really have the faintest idea of how CLC-INTERCAL works internally 
22:09:37 <AnMaster> ais523, does anyone but you understand the internals of ick? 
22:09:47 <ais523> after all I didn't even write some of them! 
22:10:01 <ais523> and Joris keeps sending patches to various parts of it, usually the optimiser 
22:10:14 <AnMaster> ais523, did Claudio Calvelli alone write CLC? 
22:10:28 <tusho> when was clc released 
22:10:34 <ais523> I submitted bug reports now and again 
22:10:39 <ais523> but they didn't come with patches 
22:10:58 <ais523> well, one came with a patch described in English, but Claudio had to translate it to Perl, so that doesn't count 
22:11:30 <AnMaster> ais523, do you understand the internals of clc? 
22:11:37 -!- jix has quit ("CommandQ"). 
22:11:44 <ais523> AnMaster: yes, to some extent 
22:11:50 <ais523> not nearly as well as Claudio does, though 
22:12:05 <AnMaster> ais523, and the opposite is true for ick I guess? 
22:12:07 <ais523> I tried to port it to DOS once but gave up 
22:12:20 <ais523> I don't know how much Claudio knows about C-INTERCAL's internals 
22:12:34 <ais523> I would guess he knows a bit, but am not sure as to the extent 
22:12:56 <ais523> I've had to correct him on the details of CLC-INTERCAL's C-INTERCAL emulation mode from time to time, so not the details 
22:13:18 <AnMaster> ais523, does ick offer clc-emulation? 
22:13:31 <ais523> some of the features are just impossible to emulate in a compiled language 
22:13:35 <ais523> and others I never got round to writing 
22:13:44 <ais523> and some of the emulation is buggy 
22:14:01 <AnMaster> ais523, I the emulation is buggy the other way too? 
22:14:17 <ais523> and again CLC-INTERCAL doesn't support some of C-INTERCAL's newest features 
22:14:39 <ais523> also they use different syntax by default, but each can emulate the other's syntax more or less perfectly 
22:14:47 <AnMaster> ais523, I have an idea for how to handle memory leaks in the compiler itself. Not sure how esoteric it would be 
22:14:56 <AnMaster> "pretty strange" for ick though 
22:15:07 <ais523> that doesn't matter, any idea no matter how sane is esoteric when applied to the C-INTERCAL source 
22:15:14 <ais523> due to how you have to contort it to make it fit 
22:15:27 <ais523> that isn't handling memory leaks! 
22:15:31 <ais523> that's just pretending they don't exist 
22:15:36 <ais523> besides, I don't think it would help 
22:15:44 <ais523> the memory leaks aren't actually harmful 
22:15:56 <ais523> as C-INTERCAL allocates all the memory, then deallocates it all with basically no allocations involved 
22:15:59 <ais523> due to the way it works 
22:16:12 <ais523> possibly that's why fixing them's a low priority 
22:16:26 <ais523> the optimiser is definitely free from leaks as that's generated code, i hope 
22:16:48 <AnMaster> ais523, cfunge have no memory leaks or fd leaks. Some fingerprints do leave still allocated (and reachable data) and FILE and SOCK offers the ability to leave open fds around 
22:17:15 <AnMaster> ais523, this you can use to debug *befunge scripts* in valgrind 
22:17:28 <AnMaster> found a fd leak in fungot some time ago for example 
22:17:29 <fungot> AnMaster: that would just add to the pipe. 
22:17:30 <ais523> AnMaster: just write your own befungegrind 
22:17:55 <ais523> for that matter, if INTERCAL had a memory-allocation statement, simply NEXTING FROM it would let you track all the allocations and deallocations 
22:18:08 <ais523> IFFI doesn't have NEXT FROM gerund, though 
22:18:08 <AnMaster> ais523, and the only issues are FILE and SOCK fingerprints basically 
22:18:11 <ais523> maybe I should add that 
22:18:13 <tusho> ais523: NEXT FROM is post-come-from? 
22:18:25 <ais523> it's COME FROM but saves a return address 
22:18:34 <ais523> before the thing it comes from 
22:18:47 <ais523> so you can next from it, change things, then drop back to exactly where in the code you were 
22:18:59 <AnMaster> ais523, and yes I guess you could add it to IFFI, it is not like anyone else realistically even can implement it ;P 
22:19:10 <ais523> don't be so hard on yourself 
22:19:12 <AnMaster> it is very very specific to ick and patched cfunge 
22:19:16 <ais523> it isn't exactly all that difficult 
22:19:31 <AnMaster> ais523, really? Well I guess CLC could implement it 
22:19:33 <ais523> maybe I should find another C-compatible Funge-98 interp and patch that too to demonstrate 
22:19:48 <AnMaster> ais523, rc/funge is always threaded iirc 
22:20:06 <AnMaster> ais523, apart from that there aren't any good ones iirc 
22:20:16 <ais523> well I'll just patch a bad one then 
22:20:17 <tusho> ais523: ccbi would work 
22:20:23 <ais523> tusho: I don't know D, though 
22:20:27 <ais523> I'd have to learn it first 
22:20:29 <tusho> ais523: you wouldn't have to 
22:20:34 <tusho> just copypaste his fingerprints and interface to c 
22:20:38 <tusho> AnMaster: that's simple 
22:20:42 <ais523> tusho: you have to insert something around the main loop 
22:20:44 <AnMaster> ais523, oh and ccbi also always concurrent 
22:20:48 <tusho> ais523: ok, but that wouldn't be too hard 
22:20:55 <tusho> you could figure it out by trial & error and reading what he's got 
22:20:58 <ais523> AnMaster: also just disabling t would likely be fine 
22:21:02 <tusho> D isn't taht weird 
22:21:03 <ais523> you could alter the code to make it reflect 
22:21:17 <ais523> as long as there's only one thread it doesn't matter that the interp is threaded 
22:21:30 <AnMaster> ais523, yep, I believe ccbi use a table of function pointers 
22:21:38 <AnMaster> so simply removing the t entry should should do it 
22:22:21 * AnMaster ponders concurrent efunge. It would be way way more fun if it didn't have to be synced 
22:22:44 <AnMaster> Deewiant, is it possible to implement MVRS but not t i or o= 
22:24:58 <AnMaster> ais523, efunge may be not be deathstation 9000 but I'll try to make it deathstation[9|0] at least ;P 
22:25:24 <ais523> AnMaster: is 0 a list, or is that unusual head-tail syntax? 
22:25:49 <ais523> maybe it's 9 followed by an infinite number of 0s, that's easy to express in Prolog (although it sends the interp into an infinite loop if you try) 
22:25:58 <ais523> it's also easy to express in Haskell where it actually works 
22:25:58 <AnMaster> ais523, you would normally write [9, 0] there for the list, but you can construct lists like that yes 
22:26:08 <ais523> in Prolog it would be [9|[0]] 
22:26:18 <AnMaster> ais523, I believe those would do the same in erlang 
22:26:18 <ais523> because the thing after the | is a list itself 
22:27:01 <AnMaster> so lets make it deathstation{9, 0} ;) 
22:28:17 <AnMaster> so lets make it deathstation<<9:4/unsigned-big, 0>>. 
22:28:35 <ais523> what are you laughing at now? 
22:29:13 <AnMaster> while a bitstring can be sub-byte size 
22:29:46 <AnMaster> actually I think it 9 encoded in a nibble as unsigned big endian followed by 0 
22:30:13 <AnMaster> ais523, the bit syntax is sometimes *too* powerful 
22:30:26 <AnMaster> the 4 may be bytes or bits not sure 
22:31:17 <AnMaster> 7> <<9:5/unsigned-big, 2:3/signed-little>>. 
22:31:47 * ais523 is slightly worried that they could calculate that in their head 
22:32:20 <AnMaster> I don't remember those details 
22:32:25 <AnMaster> and what has @ got to do with it? 
22:33:04 <ais523> so @ + (position of letter in alphabet) = (ASCII code for that capital letter) 
22:33:36 <AnMaster> ais523, tell me if you think this makes sense: 15> <<9:5, -2:3>>. 
22:33:56 <AnMaster> first is 5 bits the next is 3 bits 
22:34:21 <AnMaster> you can't do TURKEY BOMB in it 
22:34:37 <ais523> -2 in 3 bits is 110 so that makes sense 
22:34:52 <ais523> 9 in 5 bits is 01001 which makes less sense 
22:35:16 <ais523> so I'm not entirely sure where that N comes from 
22:35:33 <AnMaster> ais523, what would you get it to? 
22:36:00 <ais523> sorry, I set the wrong bit 
22:36:04 <AnMaster> if you add them after each other 
22:36:17 <ais523> I simply screwed up translating 'N' into binary 
22:36:33 <ais523> is there a syntax for extracting individual bits too? 
22:36:38 <ais523> if so, write mingle, now! 
22:37:41 <ais523> <<a:15, b:15, a:14, b:14, a:13, b:13, a:12, b:12, a:11, b:11, a:10, b:10, a:9, b:9, a:8, b:8, a:7, b:7, a:6, b:6, a:5, b:5, a:4, b:4, a:3, b:3, a:2, b:2, a:1, b:1, a:0, b:0>> 
22:37:48 <ais523> and way more readable than tusho's 
22:38:10 <ais523> assuming I've got the syntax right 
22:38:15 <ais523> it'll be something like that even if I haven't 
22:39:03 -!- ais523 has quit (Remote closed the connection). 
22:39:22 <AnMaster> 1> MyBin = <<9:5/unsigned-big, -2:3/unsigned>>. 
22:39:30 <AnMaster> 2> <<FirstBit:1,Tail/bitstring>> = MyBin. 
22:39:36 -!- ais523 has joined. 
22:39:44 <AnMaster> <AnMaster> 1> MyBin = <<9:5/unsigned-big, -2:3/unsigned>>. 
22:39:44 <AnMaster> <AnMaster> 2> <<FirstBit:1,Tail/bitstring>> = MyBin. 
22:39:44 <AnMaster> <AnMaster> 3> {FirstBit, Tail}. 
22:40:02 <AnMaster> I was going to write a function that interated over it 
22:40:20 <AnMaster> <ais523> <<a:15, b:15, a:14, b:14, a:13, b:13, a:12, b:12, a:11, b:11, a:10, b:10, a:9, b:9, a:8, b:8, a:7, b:7, a:6, b:6, a:5, b:5, a:4, b:4, a:3, b:3, a:2, b:2, a:1, b:1, a:0, b:0>> 
22:40:22 <ais523> AnMaster: what are you trying to do now, select? 
22:40:24 <AnMaster> 5> <<a:15, b:15, a:14, b:14, a:13, b:13, a:12, b:12, a:11, b:11, a:10, b:10, a:9, b:9, a:8, b:8, a:7, b:7, a:6, b:6, a:5, b:5, a:4, b:4, a:3, b:3, a:2, b:2, a:1, b:1, a:0, b:0>>. 
22:40:24 <AnMaster> ** exception error: bad argument 
22:40:44 <AnMaster> ais523, also lower case = atom 
22:40:44 <ais523> what's the first bit called then? 
22:41:03 <ais523> and same case syntax as Prolog I see 
22:41:04 <AnMaster> ais523, um that defines how many bits that field have 
22:41:18 <ais523> oh, how do you extract one bit then? 
22:41:39 <AnMaster> ais523, well you could so A:1, B:1, C:1 and so on, or you could do a tail recursive loop of some sort 
22:41:53 <AnMaster> I would do a tail recursive loop 
22:41:57 <AnMaster> extracting head bit every time 
22:42:12 <AnMaster> then adding each to an accumulator 
22:42:18 <AnMaster> if you are trying to separate them 
22:42:25 <AnMaster> if you are building you want the reverse 
22:42:38 <AnMaster> ais523, in both cases you want a tail recursive loop 
22:42:56 <tusho> ais523: ha, my version is more readable then 
22:43:16 <AnMaster> ais523, you want to join them? one bit from each? 
22:43:25 <tusho> AnMaster: he wants to mingle. 
22:43:46 <AnMaster> tusho, I don't remember what that meant 
22:43:53 <ais523> AnMaster: alternate bits in the two numbers 
22:44:30 <tusho> ABCDEFGHIJKLMNOPQ mingle RSTUVWXYZ1234567 = RASB(etc) 
22:45:36 <ais523> you got the arguments the wrong way round 
22:47:34 -!- puzzlet_ has joined. 
22:48:02 <AnMaster> ais523, can you give me two numbers to test on and the result 
22:48:23 -!- puzzlet has quit (Remote closed the connection). 
22:48:52 <ais523> 65535 $ 0 = 2863311530 
22:48:59 <ais523> that's a nice simple one to start off with 
22:49:09 <AnMaster> ais523, input is 16 bits and output 32? 
22:49:21 <ais523> although doing it with more bits gives the same answer 
22:49:53 <AnMaster> ais523, http://rafb.net/p/WZOfED60.html 
22:49:55 <ais523> 64280 $ 64280 is 4294901760 IIRC 
22:50:14 <AnMaster> ais523, ok there may be a bug then: 
22:50:26 <ais523> but yes, that definition looks right 
22:50:30 <AnMaster> 9> mingle:mingle(64280, 64280). 
22:50:46 <ais523> ugh, that answer is far too low to be correct 
22:51:03 <AnMaster> ais523, need to sleep though soon 
22:51:50 <ais523> AnMaster: maybe it's treating the numbers as signed or something like that and getting confused? 
22:51:52 -!- KingOfKarlsruhe has quit (Remote closed the connection). 
22:52:43 <AnMaster> ais523, default is big endian in erlang binaries 
22:53:12 <ais523> it could matter if it isn't being abstracted away 
22:53:31 <ais523> and give the result in hex, please 
22:54:55 <AnMaster> 14> io:format("~.16B~n", [mingle:mingle(16#1234, 16#4321)]). 
22:55:19 <AnMaster> ais523, I get different results if I put /native in the mingle/2 (the wrapper function) 
22:55:28 <ais523> ugh, that probably is the problem 
22:55:35 <ais523> let me reinstall C-INTERCAL to check what the answer should be 
22:55:37 <AnMaster> 16> io:format("~.16B~n", [mingle:mingle(16#1234, 16#4321)]). 
22:55:40 <ais523> I uninstalled it to test the build process 
22:57:15 <AnMaster> ais523, however maybe it should in fact be /little not /native, don't have any big endian system to check on 
22:58:03 <ais523> well the actual answer is 0x120d0e21 according to C-INTERCAL 
22:58:18 <ais523> which makes sense, it fits in with what I know about mingling 
22:58:29 <AnMaster> ais523, so what may the issue be then? 
22:58:44 <AnMaster> 19> io:format("~.2B~n", [mingle:mingle(16#1234, 16#4321)]). 
22:58:44 <AnMaster> 10110000010010001000010001110000 
22:58:55 <AnMaster> ais523, give me bit pattern for icks result 
22:59:25 <ais523> 10010000011010000111000100001 
23:00:02 <AnMaster> ais523, hey I get that using /big 
23:00:16 <ais523> 10010000011010000111000100001 
23:00:22 <AnMaster> 22> io:format("~.2B~n", [mingle:mingle(16#1234, 16#4321)]). 
23:00:22 <AnMaster> 1001000101100000111000010000100 
23:00:27 <ais523> wait, #esoteric blocks colours, doesn't it? 
23:00:43 <ais523> there it is with every other bit in bold 
23:01:20 <AnMaster> ais523, yes right, doesn't explain the result I got 
23:01:34 <ais523> the bold bits spell out 4321, the unbold bits spell out 1234 
23:04:21 <tusho> we can't see the bold, ais523 
23:04:30 <ais523> tusho: AnMaster can, I sent it to him in /msg 
23:05:04 <ais523> AnMaster's result is right when written backwards in middle-endian 
23:05:08 <ais523> which doesn't really make sense at all 
23:08:59 <ais523> anyway, moving back here 
23:09:13 <ais523> AnMaster: the problem is that the bits come out in the wrong order, backwards to be precise 
23:09:25 <ais523> so just get the solution with bits backwards, then reverse the bits pairwise 
23:09:42 <ais523> the first pair, then the second, then so on 
23:09:51 <AnMaster> ais523, is there a way to avoid doing it in pairs I wonder? 
23:09:52 <ais523> you can easily generate pairs the other way round to make it truly backwards 
23:09:57 <ais523> or just swap the arguments for that matter 
23:10:03 <AnMaster> ais523, that would be more effective 
23:10:15 <ais523> anyway I think you mean "efficient" not "effective" 
23:10:23 <AnMaster> lists:reverse() wonder if there is a reverse for binaries too? 
23:10:27 <ais523> my solution was effective (i.e. it worked) just not efficient (i.e. it wasn't fast) 
23:10:40 <ais523> anyway, bit-reversal is one of INTERCAL's strong points, most languages aren't nearly as good at it 
23:10:49 <ais523> C is decent, though, once you know the tricks 
23:11:03 <tusho> what is this operator 
23:11:30 <ais523> tusho: for each 1, it looks to see if there's a 1 to its left 
23:11:32 <ais523> and returns the result 
23:11:45 <tusho> ais523: haha, that is great 
23:11:48 <tusho> any practical applications? 
23:11:50 <ais523> as in, you get the set of digits to the left of 1s 
23:12:05 <ais523> actually, arithmetic's all about this sort of thing in practice 
23:12:10 <AnMaster> what is ~ now again? bitwise not? 
23:12:20 <tusho> i meant the C meaning 
23:12:28 <ais523> tusho: bitwise not only takes one argument, though 
23:12:33 <tusho> ais523: ok, i mean 
23:12:36 <ais523> I assumed it was INTERCAL select because you gave it two arguments 
23:12:43 <tusho> 1111 ~ 0000 = 1111 
23:12:49 <tusho> 1111 ~ 1010 = 0101 
23:12:53 <tusho> that's the operator i'm talking about 
23:13:00 <ais523> tusho: what happens when the first arg isn't 1111? 
23:13:02 <tusho> the last argument is a pattern: for every 1, that bit is NOT'd in the left argument 
23:13:14 <tusho> for every 1 in the second argument, the bit at the same position is NOT'd in the left argument 
23:13:16 <ais523> is what tusho's trying to describe 
23:13:22 <tusho> that is my dyadic ~ 
23:13:39 <ais523> that is just bitwise XOR that tusho's described 
23:13:42 <ais523> which is called ^ in C 
23:13:46 <ais523> it has a perfectly good name already 
23:13:56 <tusho> ok, the op is (x<<1)^x 
23:14:03 <tusho> what does THAT do, apart from what it says 
23:14:05 <ais523> and (x << 1)^x is INTERCAL xor 
23:14:05 <tusho> I mean, anything useful 
23:14:11 <tusho> ais523: is it? bahhahaha 
23:14:15 <ais523> except that INTERCAL xor does a rotate not a select 
23:14:28 <ais523> as in the top bit of x << 1 gets copied to the bottom bit 
23:14:35 <ais523> sort of a bitshift with carry 
23:14:47 <ais523> and it does have uses, the implementation of greater-than for instance 
23:14:49 <AnMaster> ais523, there is an x86 instruction for it iirc 
23:14:55 <ais523> which is one of the great triumphs of INTERCAL-72 
23:15:01 <ais523> and yes, lots of machines have rotate instructions 
23:15:07 <tusho> ais523: what is this 
23:15:22 <AnMaster> ais523: no mainstream high level languages seem to offer it 
23:15:25 <tusho> i'm making up a silly thing 
23:15:48 <ais523> tusho: destroys the sign bit and copies it from the bit above it, if signed 
23:16:01 <tusho> ais523: that is great 
23:16:11 <ais523> if unsigned it's boring, it's just x & ((1 << (bits-1))-1) 
23:16:34 <tusho> ais523: it's returning 0 for me, always 
23:16:39 <AnMaster> but doesn't it move the whole number one step? 
23:16:43 <ais523> tusho: whoops, I misread it 
23:16:48 <ais523> I calculated (x<<1)>>1 
23:17:03 <ais523> what you wrote always returns 0 with a positive argument 
23:17:08 <ais523> and is undefined with a negative argument 
23:17:20 <AnMaster> ais523, undefined with negative? how so? 
23:17:29 <ais523> AnMaster: shift a negative amount 
23:17:38 <ais523> not to mention the overflow if the argument happens to be INT_MIN 
23:19:12 <AnMaster> ais523, would shift the other way obviously 
23:23:22 <AnMaster> ais523, actually I was wrong, for lists access at head is more effective 
23:23:36 <AnMaster> for binaries reading at head and writing at tail is most efficient 
23:24:09 <ais523> s/effective/efficient/ 
23:27:26 -!- CO2Games has left (?). 
23:33:02 <AnMaster> ais523, do you think the result was elegant btw? 
23:33:10 <ais523> anyway, I have to go home now 
23:33:12 -!- ais523 has quit ("9"). 
23:34:46 <oklofok> i gotta ask him about that quit message 
23:34:56 <oklofok> the number 9 has been bugging me for weeks 
23:35:06 <oklofok> it seems to be in my head every time i close my eyes