00:05:19 -!- timotiis has quit (Read error: 110 (Connection timed out)). 00:20:59 lol, thought that "presumably it was a joke in another channel" was about "AnMaster: Slereah2, I wonder same as Slereah2 about Corun", because i automatically skip all nick changes when reading, tusho's comment did indeed seem quite astute, especially as AnMaster is only on #esoteric :P 00:21:24 heh 00:21:38 also, is that the first time you've used the word astute 00:21:39 i think so 00:22:10 not really 00:22:30 i'm a word copier 00:22:56 I personally prefer the word "saucy". 00:23:13 so if you're called astute, i will use that same term 00:23:23 even if not about you, but about your comment, which is kinda weird 00:25:47 so what's the seven today? 00:30:00 7 00:30:16 oh, right 00:30:23 i always forget that 00:30:32 it's like 1, 2, 3, 4, 5, 6, 6, 8, 9 for me 00:30:33 all day long 00:31:59 tusho: actually, how was astute wrong describing a comment? 00:32:10 it wasn't 00:32:41 i tend to believe i'm wrong when it comes to... anything. 00:32:46 okay, then i'm not sure what you meant 00:56:33 Gaiz 00:56:38 Anyone of you know Occam Pi? 00:57:27 -!- cherez has quit ("Leaving."). 00:58:11 z 01:02:23 -!- cherez has joined. 01:10:31 o 01:10:50 z 01:10:51 i win 01:10:52 bye :) 01:11:00 -!- tusho has quit. 01:11:32 damn! 02:02:14 Aw shit 02:02:14 Too late for zorro 02:02:56 oklopollll 02:10:53 meee 02:46:18 how has the language changed 02:52:56 hey guys, what's the opposite of Christopher Reeves? 02:53:54 "Christopher Walken" 02:54:01 alternate punchline: 02:54:06 "Christopher Alive" 03:08:50 christopher walken > all 03:09:42 Is there a Christopher Alive? 03:34:48 -!- Corun has quit ("This computer has gone to sleep"). 04:31:31 Slereah2: missing the joke 04:39:09 Well, I get the joke 04:39:22 Just that it would be funny if there were actually that guy. 04:56:04 might make the joke better, potentially 04:57:25 Yes, because it was quite lame originally 04:57:50 ok, what has two legs and bleed? 04:57:53 *bleeds 04:58:43 half a dog. 04:58:51 I hate riddles 04:59:20 They have infinitely many answers, but they only want the answer they're thinking off. 04:59:27 Fuck you, riddles. 05:00:41 Here, have an open-ended riddle: What is the answer to this riddle? 05:00:52 There is only one correct answer, of course: "This." 05:00:55 you already said the answer 05:00:58 "what" 05:01:18 Heh 05:01:32 Is no the answer to this riddle? :o 05:01:57 Of course, one might say "negative". 05:02:14 So you'd have to use a larger class of no. 05:02:16 The answer is "no". 05:02:30 The riddle isn't working properly, you see. 05:02:46 But, if it is no, that means that no isn't the answer? :o 05:47:00 -!- calamari has quit ("Leaving"). 06:14:47 -!- olsner has joined. 06:32:41 -!- ihope has quit (Read error: 110 (Connection timed out)). 07:42:20 -!- jix has joined. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:37:32 -!- jix has quit ("This computer has gone to sleep"). 08:49:42 -!- GreaseMonkey has joined. 10:02:56 lol, thought that "presumably it was a joke in another channel" was about "AnMaster: Slereah2, I wonder same as Slereah2 about Corun", because i automatically skip all nick changes when reading, tusho's comment did indeed seem quite astute, especially as AnMaster is only on #esoteric :P 10:03:00 I'm on other channels 10:03:13 just they are hidden due to some user mode... 10:03:23 you only see the channel I share in /whois 10:03:30 share with you* 10:14:13 -!- jix has joined. 10:14:13 -!- jix has quit (Remote closed the connection). 10:39:41 /whoisnt 10:55:27 -!- jix has joined. 11:01:04 -!- GreaseMonkey has quit ("Remote closed the previous member app"). 11:19:40 AnMaster: yes, but we're talking about ehird's perspective, so it's pretty much the same thing 11:30:45 -!- oklopol has quit ("( www.nnscript.com :: NoNameScript 4.2 :: www.regroup-esports.com )"). 12:03:06 -!- sebbu2 has joined. 12:04:33 -!- fizzie has quit (clarke.freenode.net irc.freenode.net). 12:04:34 -!- lifthras1ir has quit (clarke.freenode.net irc.freenode.net). 12:04:34 -!- olsner has quit (clarke.freenode.net irc.freenode.net). 12:04:35 -!- cherez has quit (clarke.freenode.net irc.freenode.net). 12:04:35 -!- GregorR[Prague] has quit (clarke.freenode.net irc.freenode.net). 12:04:35 -!- AnMaster has quit (clarke.freenode.net irc.freenode.net). 12:04:35 -!- shachaf has quit (clarke.freenode.net irc.freenode.net). 12:04:36 -!- jix has quit (clarke.freenode.net irc.freenode.net). 12:04:37 -!- puzzlet has quit (clarke.freenode.net irc.freenode.net). 12:04:37 -!- Dewi has quit (clarke.freenode.net irc.freenode.net). 12:04:38 -!- bsmntbombdood has quit (clarke.freenode.net irc.freenode.net). 12:04:38 -!- atsampson has quit (clarke.freenode.net irc.freenode.net). 12:04:38 -!- Phenax has quit (clarke.freenode.net irc.freenode.net). 12:04:39 -!- Polar has quit (clarke.freenode.net irc.freenode.net). 12:04:40 -!- Judofyr has quit (clarke.freenode.net irc.freenode.net). 12:04:40 -!- lament has quit (clarke.freenode.net irc.freenode.net). 12:04:40 -!- AAAAAAue4njxuz has quit (clarke.freenode.net irc.freenode.net). 12:04:41 -!- psygnisfive has quit (clarke.freenode.net irc.freenode.net). 12:04:41 -!- Deewiant has quit (clarke.freenode.net irc.freenode.net). 12:04:42 -!- RodgerTheGreat has quit (clarke.freenode.net irc.freenode.net). 12:04:42 -!- sekhmet has quit (clarke.freenode.net irc.freenode.net). 12:04:43 -!- mtve has quit (clarke.freenode.net irc.freenode.net). 12:04:43 -!- SimonRC has quit (clarke.freenode.net irc.freenode.net). 12:04:43 -!- Ilari has quit (clarke.freenode.net irc.freenode.net). 12:04:43 -!- Slereah2 has quit (clarke.freenode.net irc.freenode.net). 12:04:43 -!- sebbu has quit (clarke.freenode.net irc.freenode.net). 12:04:44 -!- sebbu2 has changed nick to sebbu. 12:09:30 -!- Slereah2 has joined. 12:09:30 -!- Ilari has joined. 12:09:30 -!- SimonRC has joined. 12:09:30 -!- mtve has joined. 12:09:52 -!- bsmntbombdood has joined. 12:09:52 -!- atsampson has joined. 12:09:52 -!- Phenax has joined. 12:10:00 -!- RodgerTheGreat has joined. 12:10:00 -!- sekhmet has joined. 12:10:06 -!- olsner has joined. 12:10:06 -!- cherez has joined. 12:10:06 -!- GregorR[Prague] has joined. 12:10:06 -!- shachaf has joined. 12:10:06 -!- AnMaster has joined. 12:10:12 -!- Ilari_ has joined. 12:10:37 -!- lifthras1ir has joined. 12:10:37 -!- fizzie has joined. 12:10:37 -!- Dewi has joined. 12:10:37 -!- puzzlet has joined. 12:10:37 -!- psygnisfive has joined. 12:10:37 -!- Judofyr has joined. 12:10:37 -!- lament has joined. 12:10:37 -!- Deewiant has joined. 12:10:37 -!- Polar has joined. 12:10:37 -!- AAAAAAue4njxuz has joined. 12:14:52 -!- SimonRC_ has joined. 12:21:04 -!- SimonRC has quit (Connection refused). 12:21:21 -!- Ilari has quit (No route to host). 12:22:52 -!- Ilari_ has quit (clarke.freenode.net irc.freenode.net). 12:22:52 -!- cherez has quit (clarke.freenode.net irc.freenode.net). 12:22:52 -!- olsner has quit (clarke.freenode.net irc.freenode.net). 12:22:52 -!- GregorR[Prague] has quit (clarke.freenode.net irc.freenode.net). 12:22:52 -!- shachaf has quit (clarke.freenode.net irc.freenode.net). 12:22:52 -!- AnMaster has quit (clarke.freenode.net irc.freenode.net). 12:23:09 -!- Ilari_ has joined. 12:23:09 -!- olsner has joined. 12:23:09 -!- cherez has joined. 12:23:09 -!- GregorR[Prague] has joined. 12:23:09 -!- shachaf has joined. 12:23:09 -!- AnMaster has joined. 12:23:40 -!- Ilari_ has changed nick to Ilari. 12:51:18 -!- oklopol has joined. 12:55:57 -!- oklopol has quit (Read error: 104 (Connection reset by peer)). 13:02:40 -!- oklopol has joined. 13:03:59 -!- cherez has quit (clarke.freenode.net irc.freenode.net). 13:03:59 -!- olsner has quit (clarke.freenode.net irc.freenode.net). 13:04:00 -!- AnMaster has quit (clarke.freenode.net irc.freenode.net). 13:04:00 -!- shachaf has quit (clarke.freenode.net irc.freenode.net). 13:04:00 -!- GregorR[Prague] has quit (clarke.freenode.net irc.freenode.net). 13:04:00 -!- Ilari has quit (clarke.freenode.net irc.freenode.net). 13:05:12 -!- SimonRC_ has quit (Remote closed the connection). 13:05:17 -!- SimonRC has joined. 13:07:20 -!- Ilari has joined. 13:07:20 -!- olsner has joined. 13:07:20 -!- cherez has joined. 13:07:20 -!- GregorR[Prague] has joined. 13:07:20 -!- shachaf has joined. 13:07:20 -!- AnMaster has joined. 13:14:04 -!- RedDak has joined. 13:21:20 http://www.vjn.fi/pb/p621246134.txt <<< suggestion based language 13:21:51 under construction, and so esoteric you could eat off of it. 13:22:21 but as you can see from the "functional" definitions of the functions, you can be a bit more declarative 13:23:10 the idea is, you *suggest* pieces of computation, the interp finds a way to actually use that computation to get the correct sequence 13:23:27 because atm it only supports integer functions 13:24:03 tusho's not here, so no one prolly cares, but ask me for details if ya feel like it :P 13:25:36 {{...}} marks something failed, ((...)) means it did what the definition asks for 13:26:03 How is failure defined? 13:26:27 that at that point, neither returning a nor b will do what the definition asks for 13:27:21 for instance, for the rule a=a+b, without b=a, the sequence [(1,1),(1,1),(1,1)...] will be generated, so @ fib 2, fib 4 - fib 3 != fib 2 13:27:29 which means that ruleset is incorrect 13:27:41 and another one is tried 13:30:02 as it is, this is very pointless, but i like the idea of just kinda suggesting the computational part, and letting it give you the details 13:30:55 for instance, for look-and-say, you'd just give a few examples, and tell it it should be counting subsequences consisting of the same character 13:31:14 i like the idea of doing this in an ef-like regex-list way 13:31:23 not that you know ef 13:31:28 as it is one of my languages too 13:31:30 :P 13:31:47 Ilari: lost interest? :D 13:32:04 What's Ef? Got some URL? 13:32:11 i have a few exmaples 13:32:12 examples 13:32:39 http://www.vjn.fi/oklopol/ef.txt dunno if that's helpful 13:32:40 (searching esolangs.org gets no hits)... 13:32:45 heh 13:32:51 yeah, i'm a bit afraid of wikis 13:33:06 i've been going to add all my langs there 13:33:17 How many? :-) 13:33:25 Ef is a functional language with a twist 13:33:40 http://www.vjn.fi/oklopol/ cise and the ones after it are mine 13:33:46 but i have a lot more 13:34:14 graphica and oklotalk-- are the only ones with a working implementation 13:34:17 err, and nopol 13:34:28 To me, that Ef looks a lot like Haskell... 13:34:52 the twist is, every time you apply a function to something, you take the fixed-point of it 13:35:09 what looks like haskell about it? :P 13:35:28 it is *very* different semantically, but in my opinion syntactically as well 13:35:44 That kind of defining functions by formulas. 13:35:54 (double n) = (doublecum n n/2) ! n 13:35:57 this? 13:36:00 oh 13:36:08 well that's just setting a variable to a lambda 13:36:43 -!- Corun has joined. 13:37:01 python does it too, fac = (lambda a,b:a(a,b))(lambda f,n:n==0 and 1 or f(n-1)*n) 13:37:42 hmm, i failed 13:38:12 fac = lambda n:(lambda a,b:a(a,b))(lambda f,n:n==0 and 1 or f(f,n-1)*n,n) 13:38:47 sorry, added the function to give fac to itself after realizing python doesn't indeed have a recursion construct 13:39:10 and was in too much of a hurry to fix 13:39:55 well, (double n) = (doublecum n n/2) ! n doesn't take the fixed-point, this is just some ugly sugar for the fixed-point definition 13:40:10 because the fixed-point definition is overkill for simple stuff like this 13:40:27 this is basically: to double n, call the function to double it, and extract the result. 13:40:41 doublecum does the actual multiplication by two 13:40:48 but with a cool fixed-point 13:40:54 doublecum = (n .add):{n+add add/2} 13:40:57 this is 13:41:09 "take two args, n and add, and take fixed-point of add" 13:41:21 now, n is the cumulative sum, add is what's added to it each iteration 13:41:40 fixed-point(function) is basically while(true){function} 13:41:44 but functionall 13:41:46 y 13:42:14 so fixed-point of (f n) is (f (f (f (... (f(f n))))) 13:42:23 infinite f's 13:42:57 so, doublecum takes an n, and an "add", which should always be n/2 when it's called 13:43:08 it then generates the sequence 13:43:37 (n, n/2), (n+n/2, n/4), (n+n/2+n/4, n/8) 13:43:39 etc 13:43:50 -!- ais523 has joined. 13:43:56 as you prolly know from math, n approaches n*2 13:43:59 and add approaches 0 13:44:15 ais523: read logs for a new language of mine, and obscure rant about Ef! 13:44:24 Ef? 13:44:34 my fixed-point language 13:44:45 applying a function is taking the fixed-point of it 13:44:52 ugh 13:44:55 is that TC? 13:45:11 so it's syntactically functional, but imperative/declarative in semantics 13:45:19 ais523: i have ski in it 13:45:30 hmm, actually just parsing ski 13:45:36 but it should be simple to actually execute too 13:45:38 parseski={!x:_;(!x=='` & ! x+1 & ! x+2 ~ (class[])) => ! x..x+2 = [! x+1,! x+2]} 13:45:48 Least fixed points apparently have connection to complexity. For first-order logic + LFP, you apparently get P (polynomial time), and for second-order logic + LFP you apparently get EXPTIME... 13:46:14 it's actually perfect for executing non deterministic stuff, because you don't tell it the order of reductions 13:46:16 oklopol: should I read today's logs, or yesterday's, or both? 13:46:23 ais523: just before you joined 13:47:38 Ilari: not least fixed point, you tell it from where to start 13:47:41 so 13:47:57 it's not that you give it a function f, and it finds the least x for which f x = x 13:47:59 instead 13:48:42 oklopol: it reminds me a bit of one of my as-yet-undocumented idea-languages, but it's different 13:48:57 it's a very weird paradigm 13:49:05 very fun and different to program in 13:49:19 basically, there are two things it's good at 13:49:28 one is just the mathematical fixed-point stuff 13:49:53 you can use the infinite sequence and it does all the precision work for you 13:49:58 but 13:50:17 you can also program by telling it stuff that can be wrong in the input 13:50:22 oklopol: I'm talking about Tinker 13:50:28 and tell it how to correct the errors 13:50:31 ah. 13:50:33 Proud did much the same thing, but in an uncomputable and crazy way 13:50:38 basically, it took all possible functions 13:50:44 then you gave it information about the functions 13:50:45 :P 13:50:51 and it rejected the ones that didn't comply with your info 13:51:00 yeah, that was basically my idea too 13:51:03 so if you write something like fib n = fib n+2 - fib n+1 13:51:04 i love the concept 13:51:19 then it rejects all functions that don't have that property 13:51:34 yep, unfortunately that's still infinite functions :P 13:51:37 one unusual thing I noticed about Proud was that it was above-TC despite having no way to loop 13:52:00 oklopol: Proud didn't just do integer functions, it does everything, even higher-order functions 13:52:09 i know 13:52:19 i mean, i know you, so i guessed that. 13:52:20 but yes, clearly it's unimplementable 13:52:33 quite 13:52:47 did i already show you muture? 13:52:48 ais523: Got URL? 13:52:52 Ilari: no 13:52:52 i was going to, at least 13:52:59 because it's similar to yours 13:53:00 I've only ever described it in #esoteric 13:53:06 it's only an idea-language, I haven't worked out the details 13:53:11 your other impossible language 13:53:19 oklopol: which one? 13:53:22 hmmhmm 13:53:23 and I don't know muture 13:53:32 the declarative thingie 13:53:52 http://www.vjn.fi/oklopol/muture.txt 13:53:52 oklopol: I think that was Proud 13:53:54 which is declarative 13:53:56 it's a functional language 13:54:04 with two declarative constructs 13:54:21 oklopol: are you comparing functions for equality there? 13:54:21 ">> expression" means "maximize result of expression" 13:54:24 that's uncomputable 13:54:25 << == minimization 13:54:37 ":: expression" == "make expression true" 13:54:46 ais523: i'm not comparing them 13:54:48 but you can do that 13:54:59 ah, that :: thing is something that INTERCAL really seems to want 13:55:11 the language doesn't guarantee perfect results. 13:55:20 it was originally designed for graphical purposes 13:55:31 ever since assignment to expressions was implemented, INTERCAL seems to want a fully general declarativeness 13:55:35 but i reduced it to a declarative language first, and decided to add graphics later 13:55:44 but I can't think of a sensible way to implement it 13:56:06 ais523: i'll go do laundry, try to deduce what that code does, it's fairly simple :P 13:56:12 -> 13:56:50 oklopol: Levenstein distance, obviously 13:57:33 or in this case, finding the word with the most similar Levenstein distance 13:57:44 assuming that \ is some sort of member-of operator 13:58:06 hmm... muture seems capable of similar things to Cyclexa 13:58:15 which I really ought to get around to writing some day 13:58:42 they're different languages in paradigm and syntax and so on, but strike me as similar in the sort of programs they'd be good at 14:01:45 freenode-connect: stop being so slow, I joined over a quarter of an hour ago 14:02:15 At least you didn't get killed by your own ghost... :-) 14:02:32 Ilari: that would be embarassing 14:02:49 but generally it's me killing the ghosts 14:02:52 the router here is dodgy 14:02:58 and I often have to reset my connection 14:04:07 -!- oklopol has quit (Read error: 54 (Connection reset by peer)). 14:04:14 Apparently if client breaks the connection while network is split and joins the other side of split and original server won't notice before network is joined again, you get killed by your own ghost. 14:04:30 yes, I can see how that would confuse an ircd 14:10:11 Apparently computers had so little power when IRC was designed that one couldn't allow multiply-connected server connection graphs (IRC interserver connection graph is spanning tree, which makes it very vulernable to netsplits). :-( 14:13:19 Spanning graph connections makes it so that if ANY interserver connection drops for any reason, you get netsplit. Also, if any IRCD with degree greater than one crashes, you also get a netsplit (along with possibly some dropped users). 14:13:31 -!- oklopol has joined. 14:13:48 -!- pikhq has joined. 14:13:50 Ilari: I'd always wondered why IRC was a spanning tree 14:13:55 I assumed it was to make routing easier 14:14:30 I always assumed it was to be annoying. 14:15:20 It is because if it was general graph, you would have to have a mechanism for killing duplicate messages. 14:15:55 Ilari: well, you could just send sequence numbers or something 14:16:01 but one good thing about IRC is how simple the protocol is 14:16:10 I can, and have, written IRC by hand, it's not particularly difficult 14:16:28 Yes, it makes message routing easier. With spanning tree it is just: Send your own messages to all outgoing links and send messages coming from link to all other links. 14:16:53 Ilari, most ircds only send to those links that need it 14:16:57 for performance reasons 14:17:24 and there are experiments in meshed ircds 14:17:31 -!- caio has joined. 14:18:01 ais523, ! 14:18:09 ais523, interfunge progress? 14:18:19 AnMaster: I've been working on the INTERCAL external-calls stuff recently 14:18:26 still the INTERCAL-C bits 14:18:29 nice! 14:18:31 ok 14:18:50 AnMaster: it was for a silly but necessary reason 14:19:01 I'm trying to create a way to define new expression operators in INTERCAL itslef 14:19:04 s/itslef/itself/ 14:19:18 uhu 14:19:20 I see 14:19:28 which means that you need to be able to do NEXTs out of and RESUMEs into the middle of an expression 14:19:37 WOW 14:19:40 ;P 14:19:46 the only solution I could think of was to use the external calls mechanism to get the INTERCAL program to do ffi to itself 14:20:07 hahahah 14:20:31 the code for that's about half-written now 14:20:39 cool 14:21:28 -!- oklopol has quit (Connection reset by peer). 14:22:45 I am mildly insane. 14:22:56 ATM, I suffer from the urge to make a distro smaller than tomsrtbt. 14:23:11 pikhq: I've used ucLinux, is tomsrtbt even smaller than that? 14:23:22 ucLinux is a kernel. . . 14:23:30 pikhq: ah, ucLinux/Busybox 14:23:32 -!- oklopol has joined. 14:23:34 -!- oklopol has quit (Remote closed the connection). 14:23:46 in order to make the full OS 14:23:50 -!- oklopol has joined. 14:24:08 tomsrtbt is kernel+busybox+dosfsutils+ext2utils+reiserutils+httpd, basically. 14:24:10 I have fond memories of customising it to be able to fit Python and the entire OS onto just 16MB of hard disk space 14:24:19 Oh, and a complete Lua environment. 14:24:25 ais523: yes, it's exactly that, although as you said, quite obvious 14:24:27 In 2MB. 14:24:33 and \ is member of 14:24:51 The reason I think I can make it smaller: frankly, it's old. 14:25:10 It predates such niceties as the linux-tiny patches, uclibc, squashfs-lzma, etc. 14:25:34 So, it's got that 2MB using straight glibc. . . 14:25:42 pikhq: also, you can do things like customize BusyBox to make it smaller by removing unused programs from it 14:25:48 True. 14:26:03 pikhq: can you get it down to 32 bytes? 14:26:08 God no. 14:26:18 that was my target when trying to make a small TC lang interp 14:26:19 That's perhaps 2 or 3 opcodes. :p 14:26:29 it didn't matter which lang, just to make the interp as short as possible 14:26:35 so I invented MiniMAX for that purpose 14:26:37 (assuming an ELF header) 14:26:47 pikhq: ELF's really bloated 14:27:05 you can fit most of a BF interp in a minimum-length ELF program 14:27:14 because you can put machine language in unused header fields 14:27:28 Well aware. ;) 14:27:40 I was using DOS .COM format to save on overhead 14:28:06 Well, yeah; after all, .COM has 0 overhead. 14:28:15 yep 14:28:23 so it gives a fairer count of the true length of a program 14:41:11 -!- ais523 has quit (Remote closed the connection). 14:41:28 -!- ais523 has joined. 14:46:34 -!- Corun has quit ("This computer has gone to sleep"). 14:49:37 -!- Slereah has joined. 14:50:41 -!- ais523 has quit (Remote closed the connection). 14:50:59 -!- ais523 has joined. 14:51:22 -!- Slereah has quit (Read error: 104 (Connection reset by peer)). 14:51:50 -!- Slereah has joined. 14:59:22 -!- oklopol has quit (Read error: 104 (Connection reset by peer)). 14:59:57 -!- oklopol has joined. 15:00:09 * pikhq sayeth 'w00t'. 15:00:16 pikhq: why? 15:00:20 I'm getting $8,000 in renewable scholarships. 15:00:26 wow, that is good 15:00:39 From the university itself. 15:00:53 I only get £500 in scholarships a year 15:01:00 Only $3,000 in financial aid, though. 15:01:04 and only if I get high grades 15:01:11 But, that makes about half of my college paid for. 15:01:15 and they just go towards reducing the fee from very lots to lots 15:02:10 -!- oklopol has quit (Read error: 54 (Connection reset by peer)). 15:02:45 -!- oklopol has joined. 15:04:13 -!- Slereah2 has quit (Read error: 110 (Connection timed out)). 15:04:58 In other words: dammit, this kicks some major ass. 15:10:06 pikhq: what are you studying? 15:10:23 Computer science & applied math; dual major. 15:11:15 Heh... Just worked out how to write valid enough a.out headers (36 bytes on i386, space not reusable)... 15:13:31 9 little-endian header fields. First is 6553863, second is size of program code and the remaining seven zeroes. 15:14:29 does anyone use a.out format nowadays? 15:14:39 Nope. :-) 15:14:43 also, why is it named after a default filename? 15:14:54 Sometimes in initrd's. . . 15:15:01 If you're really *that* anal about binary size, of course. 15:17:07 And if one is really anal about binary size, doing tricks like using mmap to load 'shared' libs is also probably useful. 15:17:08 Ilari, what about x86_64? 15:17:13 that doesn't even have a.out 15:18:14 Linux/x64 does support a.out, but the binaries are 32-bit. 15:19:30 /usr/bin/ld: cannot find -lstdc++ 15:19:36 * pikhq flips off this build system 15:20:02 pikhq: libstdc++ package missing? 15:20:12 Nope. 15:20:25 [pikhq@localhost specs_finished]$ ls /usr/lib | grep stdc++libstdc++.so.5@libstdc++.so.5.0.7*libstdc++.so.6@libstdc++.so.6.0.9* 15:20:32 I had a problem a while ago where there was a broken version of libstdc++ higher in my build path than the correct version 15:20:38 s/build path/.so search path/ 15:20:44 Hrm. 15:20:47 no idea how it got there, but it utterly broke my system 15:21:00 most of the executables on it stopped working, but luckily bash and mv were still working 15:21:01 It seems to be trying to statically link in libstdc++. 15:21:02 so I renamed it 15:21:08 and then the system started working again 15:21:20 Which makes me wonder if maybe Mandriva has libstdc++.a in a seperate package. 15:21:53 Which it does. 15:22:13 Ah... Package search paths. I once ran into problem that scons built a (not very) substly broken binary. But repeat the link on command line using EXACT SAME command it said it ran, and it would link working executable... 15:23:58 pikhq: Are you using 'gcc' to compile/link C++ code? 15:24:06 pikhq: Or 'g++'? 15:24:35 g++. 15:24:44 I just didn't have libstdc++.a. 15:24:55 Which is a problem when the package is trying to statically link something. 15:25:15 -!- ais523 has quit (Remote closed the connection). 15:25:16 i'm quite in a dilemma with my university courses, 6 of the courses i've taken sofar i've gotten grade 5/5 from, and i got 3/5 from one, probably because i used oklotalk to answer the questions 15:25:33 -!- ais523 has joined. 15:25:44 -!- oklopol has quit (Read error: 104 (Connection reset by peer)). 15:25:54 -!- oklopol has joined. 15:26:33 pikhq: AFAIK, if you put -lfoo as linker option it searches for both libfoo.a and libfoo.so... 15:26:34 -!- RedDak has quit (Read error: 104 (Connection reset by peer)). 15:26:35 now i basically have to redo that 15:26:52 oklopol, um 15:26:57 Ilari: The linker is being explicitly told to statically link everything. 15:26:58 what? 15:27:14 disconnected, not sure what got through: i'm quite in a dilemma with my university courses, 6 of the courses i've taken sofar i've gotten grade 5/5 from, and i got 3/5 from one, probably because i used oklotalk to answer the questions 15:27:28 now i basically have to redo that 15:27:38 why do you have to redo it? 15:27:41 is 3/5 bad? 15:27:46 it's average 15:27:50 and? 15:27:57 but... you can't *almost* reach perfection, and then not. 15:28:00 do you need 5/5 in t? 15:28:06 it* 15:28:27 others are 5/5, it would feel lonely. 15:29:46 oh god... you won't need 5/5 in it afaik? 15:30:01 the problem is, of course, that the more fives i get the harder the strike is when i can't five a course :P 15:30:14 i don't *need* it 15:30:14 here they mark people with percentages 15:30:19 ah 15:30:24 >70% is the top grade boundary 15:30:39 here it is U/G/VG 15:30:45 that's better in that you can't get obsessed with getting 100%, cuz you never do anyway 15:30:48 and in some subjects everyone gets 50-80%, and in some it ranges from about 1% to about 99% 15:30:55 Underkänt, Godkänkt, Väl Godkänt 15:30:59 U = not ok 15:31:03 G = ok 15:31:05 oklopol: Some people can pull it off. Granted, that's usually in high school. . . 15:31:09 VG = very good 15:31:13 about that 15:31:16 Where, frankly, grades seem inflated for the most part. 15:31:24 pikhq: sure, but i'm just a regular genius 15:31:25 i'm no ais. 15:31:33 (how the fuck does it make sense for me to get 112% in a class?) 15:31:37 :P 15:31:51 well, i don't really consider high school anything 15:32:02 it's a 3 year wait 15:32:10 pikhq, is that possible? 15:32:27 AnMaster: In US high schools, almost trivial. 15:32:33 pikhq, oh god 15:32:40 well highschools in Sweden use: 15:32:55 If you only bother with putting up with the BS that is easy, boring, useless homework. 15:33:05 IG (not passed), G (passed), VG (very passsed), MVG (excellent passed) 15:33:08 And easier, more boring, more useless extra credit. 15:33:12 I had 20 MVG iirc 15:33:20 not inflated 15:33:33 at the end of high school i kept getting grades 5/[10] 15:33:36 err 15:33:47 at the end of high school i kept getting grades 5/[4..10] in high school and 5/5 in uni 15:33:54 it was quite funny 15:33:59 the A-level grading system here in the UK doesn't make a whole load of sense 15:34:00 eh 15:34:04 the percentages are scaled for everyone 15:34:14 scaled how? 15:34:17 so in some subjects I had several modules at 100% 15:34:26 because it would have been 110% or so but it's capped at 100% 15:34:30 very passed is funny too! 15:34:35 AnMaster: basically they add marks to everyone or remove marks from everyone 15:34:39 oklopol, it is bad translation 15:34:45 according to whether the exam was easy or difficult 15:34:50 oklopol, it makes sense in Swedish "väl godkänt" 15:35:06 ais523, wtf 15:35:10 makes no sense 15:35:19 this explains how I got several 100%s despite not answering all the questions 15:35:27 because I got the exam mostly right, and it was scaled upwards 15:35:31 because no one else did? 15:35:33 I think exams are mostly scaled upwards nowadays 15:35:51 AnMaster: well, several people did, just several more people did really badly 15:36:01 I see 15:36:05 makes 0 sense 15:37:32 I fucking hate this package. 15:37:39 It has bogobugs! 15:37:48 the way the group project was marked here at Uni was pretty silly too, though 15:37:51 -!- jix has joined. 15:37:55 there were four groups of ten people 15:37:58 each group was given a mark 15:38:10 and all the marks were about 68% because they took care to balance the groups 15:38:12 pikhq, what package? 15:38:38 but before the marks were given, the members of each group had to agree what proportion of the final mark would be split to each person 15:38:56 ais523, err that seems totally unfair? 15:39:04 so for instance, I ended up with 10.73% (I think) of the 680% the group had 15:39:20 AnMaster: well, the idea was that some people in each group would have worked harder than others 15:39:26 and the marks should be given accordingly 15:39:26 sigh 15:39:27 still 15:39:37 good idea, stupid implementation 15:39:40 still, yes it's a pretty silly system that I don't agree with 15:39:54 incidentally, some of that 68% was made up of the groups grading each other 15:40:01 so we all agreed beforehand to all give each other top marks 15:40:38 :P 15:41:57 the grading system the year before that was even sillier, by the way 15:42:09 SAOimage DS9. 15:42:10 basically, groups could do work for each other in exchange for marks 15:42:14 and people could exchange marks freely 15:42:15 http://hea-www.harvard.edu/RD/ds9/ 15:42:36 and before work started, groups had to draft contracts, signed by them and the supervisor, explaining how marks would be allocated 15:42:47 the supervisor signed the one I drafted without reading it 15:42:59 which is good because I left loopholes in there that I could have used to get arbitrarily high marks 15:43:09 I didn't use them, though, because I scored well enough anyway 15:43:17 XOR $r1,$38 15:43:19 if that was given 15:43:22 they are two registers 15:43:26 does it seem sane? 15:43:34 which register would be modified? 15:43:43 AnMaster: it depends on the syntax you're using 15:43:51 as there are $ signs there, the second, I think 15:44:12 but don't take my word for that, I'm not used to GNU-style assembly syntax 15:44:13 ais523, I'm constructing a new asm language 15:44:15 ! 15:44:20 so I want what is logical 15:44:32 I'm used to "statements modify the first register" 15:44:40 but some syntaxes use "statements modify the last register" 15:44:51 ais523, and what is the most common one? 15:44:59 not sure 15:45:03 I think it differs from OS to OS 15:45:07 AT&T is more common outside x86 isn't it? 15:45:11 on Windows "statements modify the first register" is by far the most common 15:45:23 ais523, this is linux 15:45:32 yes, I haven't done much asm work on Linux 15:45:44 ais523, and it is going to byte code 15:45:48 AnMaster: There's two syntaxes used on Linux, depending upon your choice of assembler. 15:46:05 AT&T syntax and Intel syntax. 15:46:12 pikhq, yasm and nasm are only for x86/x86_64 right? 15:46:20 gasm uses AT&T syntax, nasm uses Intel syntax. 15:46:22 AnMaster: Correct. 15:46:28 On Linux, NASM uses 'first argument is destination'. GAS is configurable (defaults to 'last argument is destination). 15:46:28 AT&T is gas (not gasm) 15:46:35 AnMaster: Correct. Thinko. 15:46:51 is AT&T more common on non-x86? 15:47:01 Yes. 15:47:04 AnMaster: well, it's used on SPARC IIRC 15:47:13 and x86 is a minority right? 15:47:16 :/ 15:47:32 Well, except that x86 is used everywhere. ;p 15:47:38 x86 is still the most commonly used processor architecture on laptops/desktops nowadays 15:47:46 although I think it's a minority in embedded systems 15:47:47 yeah 15:47:53 probably it isn't used much in mainframes either 15:48:04 embedded: ARM is big 15:48:08 Mainframes are soley System/360 these days. 15:48:16 depends 15:48:19 pikhq, ! 15:48:27 what about super computers? 15:48:34 AnMaster: yes, I've used ARM, not at the assembly level though 15:48:38 isn't IBM's last using Cell processor + Opetrons 15:48:42 I mean both at once 15:48:50 AnMaster: That's not a mainframe, though. 15:49:04 what is mainframe then? 15:49:44 AnMaster: Mainframes specialize in stability, transaction integerity, I/O, etc... 15:49:45 Think System z10, from IBM. 15:50:00 well, this isn't a technical definition, but I think of a computer system as being mainframe if it needs its own specially-designed room to be able to run without overheating 15:50:00 (the modern iteration of the System/360 architecture) 15:50:16 ais523: That's horrendously false. 15:50:22 yes, I know 15:50:26 that's just how I think of it 15:50:43 Your thoughts need scrubbed clean of that misconception. 15:50:51 k... so what is main frame? 15:50:54 That's like claiming a robot is your plastic pal that's fun to be with. 15:50:58 servers? no x86 is fine there 15:51:06 pikhq, but it is! 15:51:34 Wikipedia: "Today in practice, the term usually refers to computers compatible with the IBM System/360 line, first introduced in 1965." 15:51:54 AnMaster: A computer that is designed for high throughput and high reliability. 15:52:00 pikhq, hm ok 15:52:07 Namely, the IBM System/360 line. ;) 15:52:14 hah 15:52:29 Wikipedia: "Historically 85% of all mainframe programs were written in the COBOL programming language" 15:52:33 oh dear 15:52:37 Because those systems are basically the only systems still being made that are designed for that. 15:52:53 ais523: This was in an era where COBOL was well-thought-of. 15:53:03 pikhq: yes, but most of that code's still used nowadays 15:53:11 Because it still works. 15:53:15 yes 15:53:26 And has probably been continuously running for a few decades. ;) 15:54:22 * ais523 just found out that someone ported BancSTAR to Windows 15:54:23 http://www.thefreelibrary.com/Broadway+&+Seymour%27s+WinPrism+To+Debut+in+Early+1997-a018763321 15:54:29 apparently for a serious commercial reason 15:54:37 presumably that code still works nowadays, too... 15:54:41 or at least it did 11 years ago 15:54:42 hey folks 15:54:47 hi RodgerTheGreat 15:54:58 what are the haps my friends? 15:55:05 Supercomputers, on the other hand, tend to be designed with whatever processor has good bang for the buck. 15:55:30 Which varies depending upon how much money can be sunk into the supercomputer, and what's the best CPU at the time the computer is made. . . 15:55:49 Thus, one sees everything from the Cell to a bunch of Opterons. . . 16:01:08 Hm. How many milliseconds would you figure it would take for network traffic to make a round-trip to the opposite side of the earth? 16:02:08 RodgerTheGreat: not sure 16:02:18 * pikhq wonders if this specific computer is connected to Internet2. :p 16:02:24 maybe you could find out by pinging somewhere on the opposite side of the earth 16:02:49 -!- oklofok has joined. 16:02:59 -!- oklopol has quit (Read error: 113 (No route to host)). 16:07:28 -!- ais523 has quit ("will be back later"). 16:10:22 -!- Judofyr has quit. 16:22:20 -!- oklopol has joined. 16:22:29 -!- oklofok has quit (Read error: 104 (Connection reset by peer)). 16:27:42 -!- sebbu has quit (Read error: 110 (Connection timed out)). 16:33:47 -!- jix has quit ("CommandQ"). 16:36:35 -!- ais523 has joined. 16:36:56 -!- oklofok has joined. 16:37:58 -!- oklopol has quit (Read error: 113 (No route to host)). 16:39:19 AnMaster: how often would you say it's a good idea to push patches to a publicly-visible server, when writing code in a distributed versioning system 16:39:51 ais523, I do it quite often 16:39:59 at the moment I'm pushing code if it works 16:40:06 even if it's a NOP because other bits of the code are missing 16:40:12 yes good, and "when I'm connected" 16:40:27 if I work without internet, I can't push of course 16:40:31 so there's half an implementation of CREATEing operators in the C-INTERCAL repos at the moment 16:40:40 k 16:40:42 and yes, of course I don't push either if I don't have an Internet connection 16:40:53 * ais523 sets off to write the other half 16:41:00 I generally don't commit if it crashes or such 16:41:05 this half should be easier because I'm more or less duplicating code that already exists 16:41:23 and then interfunge? 16:41:30 AnMaster: maybe 16:41:43 I'll see if my bzr is new enough to download the cfunge sources yet 16:41:56 which command should I use to copy the repo? 16:41:57 cfunge is mostly finished apart from: 1) some more fingerprints 2) replace hash library code 16:42:00 I don't know bzr 16:42:06 a sec, isn't it on website? 16:42:16 AnMaster: probably, but I don't know where the website is 16:42:18 http://rage.kuonet.org/~anmaster/cfunge/ 16:42:27 first hit in google on "cfunge" 16:42:28 ;P 16:42:34 ah 16:42:51 16:43:02 I think it's working 16:44:15 oh? nice 16:44:17 it may take a bit 16:44:22 it did 16:44:29 server is rather slow 16:44:31 224 revisions is a lot 16:45:02 yes I prefer to commit small changes 16:45:07 easier to keep track of 16:45:09 makes sense 16:46:53 hmm... if a Befunge program's called from inside an INTERCAL program, what should y's list of command-line args return? 16:47:03 y? 16:47:11 AnMaster: the Befunge command 16:47:15 oh 16:47:18 right 16:47:19 hm 16:47:24 ais523, I don't know 16:47:34 I'm not sure either 16:47:35 AND WHERE IS MY TASKBAR!? 16:47:42 * AnMaster feels lost without kicker 16:47:46 oh wait it is on the side 16:47:50 ais523: perhaps let the intercal program decide on that? 16:47:56 i mean, let you pass kinda args with that 16:48:01 oklofok: ffi doesn't normally mess with command-line args 16:48:07 hm 16:48:33 ffi? 16:48:40 there's also the issue that giving args to the INTERCAL program may make it barf, because all C-INTERCAL programs accept some predefined args 16:48:41 oklofok, stfw? 16:48:45 ah 16:48:46 oklofok: foreign function interface 16:49:05 "there's also the issue that giving args to the INTERCAL program may make it barf" <-- eh? 16:49:08 but in this case, compiling and linking things to INTERCAL programs that weren't INTERCAL themselves 16:49:26 ais523, anyway arguments are not the arguments to the interpreter itself iirc? 16:49:32 ais523: i'd say just pass the arguments the intercal program got, then 16:49:39 * AnMaster hasn't been working on cfunge code for a few weeks 16:49:52 oklofok: except that the intercal program errors on startup if it gets an arg it doesn't recognise 16:49:56 the interp accepts arguments 16:50:03 but it also generates programs that accept arguments 16:50:10 true 16:50:15 so all C-INTERCAL programs accept +wimpmode to turn on wimpmode, for instance 16:50:17 -!- tusho has joined. 16:50:21 hi tusho 16:50:30 hi tusho 16:50:46 hi ais523 16:50:48 AAAAAAAAAAARGH 16:50:52 ais523, well right I see. however 16:50:54 "fungeargc = argc - optind;" 16:51:06 ais523: i planned since I turned the computer on... 16:51:08 TO NO AVAIL 16:51:10 ais523, ie, "discard all options from getopt 16:51:17 tusho, planned what? 16:51:29 AnMaster: to beat him to welcoming me. we've battled over it since forever 16:51:30 AnMaster: to say hi to me before I said hi to him 16:51:37 ah 16:51:55 tusho: and that was normal human reaction time, although I was looking at the channel at the time, which gave me an advantage 16:52:02 ais523, so options to the befunge interepreter itself are *NOT* passed to the program 16:52:11 yes, that makes sense 16:52:18 ais523, thus same should apply for interfunge I guess? 16:52:30 AnMaster: probably 16:52:37 ie, not +wimpmode and such 16:52:39 there just needs to be some way to mark arguments as not being to the INTERCAL program 16:52:42 -- or something like that 16:52:44 for cfunge it is easy 16:52:52 it uses strict getopt 16:53:06 everything before the file argument: to interpreter 16:53:11 everything after: to program 16:53:22 the program itself is passed as argument 0 16:54:03 ais523, hm 17:08:38 -!- oklofok has quit (Read error: 104 (Connection reset by peer)). 17:08:55 -!- oklopol has joined. 17:22:03 -!- Slereah has quit (Read error: 110 (Connection timed out)). 17:24:55 -!- ihope___ has joined. 17:25:15 -!- ihope___ has changed nick to ihope. 17:29:12 -!- oklofok has joined. 17:36:55 -!- ais523 has quit (Remote closed the connection). 17:37:11 -!- ais523 has joined. 17:38:55 -!- sebbu has joined. 17:44:55 -!- timotiis has joined. 17:47:46 -!- oklopol has quit (Read error: 113 (No route to host)). 17:56:47 -!- Corun has joined. 18:04:03 I think I might be insane. . . 18:04:13 pikhq: you're here, so that's a good bet 18:04:18 but what in particular did you have in mind? 18:04:23 Yesterday, I got fed up with Debian for getting in my way. . . 18:04:36 heh 18:04:38 And went ahead and installed Gentoo, thinking "this is much easier to use". 18:04:45 ... 18:04:52 pikhq: NOT ANOTHER GENTOO USER 18:04:55 (okay, fine; so I know Gentoo like the back of my hand) 18:06:36 tusho: What's wrong with Gentoo? 18:06:57 :P 18:09:16 -!- Judofyr has joined. 18:11:46 pikhq, gentoo rocks 18:11:48 I use gentoo 18:11:58 * pikhq agrees 18:11:59 and FreeBSD and Arch Linux 18:12:10 I've been using Gentoo for 3 or 4 years. . . 18:12:11 My top list: 18:12:13 1) Gentoo 18:12:15 2) FreeBSD 18:12:18 3) Arch Linux 18:12:23 4) Slackware 18:12:37 I just recently had Debian on one specific box here which I need to use for the next couple of months. . . 18:12:43 Got fed up with it. Wheee. 18:12:48 inf) Crap^W^W^W^W^WCentOS 18:12:52 * pikhq <3 Slackware. 18:13:09 For a long time I was used to using OSs which are pretty much worse than any modern Linux or UNIX deriviative 18:13:18 so generally I'm happy with most Linuces 18:13:18 Though I don't use it, I shall always adore it. 18:13:18 what ones? 18:13:33 AnMaster: Windows (back to 3.1), ancient version of SunOS 18:13:40 also the BBC Micro, but I rather liked that 18:13:43 It's only right for one to adore one's first distro. ;) 18:14:46 well, this is the first Linux-based system I've owned 18:14:50 and it runs Ubuntu, as it happens 18:15:06 I find the package system to be nice, but the community to be terribly unresponsive 18:16:30 Sweet mother of God. 18:16:40 Gentoo 2008.0 release in a week, folks. 18:17:10 ais523: I honestly prefer the Gentoo community. Has some assholes, but most people are genuinely helpful. 18:17:28 well, Debian were very responsive when I filed patches with them, but it depends on which maintainer you get 18:17:36 (except for the retards. Those are usually obvious. 'OMG! USE CFLAGS="-funroll-loops"!' 18:17:49 Ubuntu's community is awful. 18:17:55 pikhq: what's your opinion on -funroll-loops? 18:17:59 OS X's is worse, though. :-P 18:18:04 The website? Hilarious. 18:18:12 pikhq: no, the compiler option 18:18:16 Ah. 18:18:25 ais523: http://funroll-loops.info/ 18:18:27 I didn't know there was a website with that name 18:18:27 Punishable by death. 18:18:44 ais523: it's a parody of gentoo users 18:18:55 pikhq: I've used that option on microcontroller code before, but I could still beat the result by writing asm by hand 18:19:01 why is funroll-loops retarded? 18:19:09 It pretty much guarantees an insanely long compile time, and insanely large binary, and a whole hell of a lot of cache misses. 18:19:21 Oh, and it has this annoying tendency of breaking shit. 18:19:47 ais523: which language can I write notary2html in to anger you the most? 18:19:49 s/and\ insanely/an\ insanely/ 18:19:58 pikhq: well, in my case, I was using a system with ROM = several kB, RAM = a few hundred bytes 18:20:03 and no cache 18:20:28 ais523: It's only sane in a few selected cases, where the user knows WTF he's doing. 18:20:40 well, I hope that was one of them 18:20:45 Such as, say, someone who wrote the code. ;) 18:20:55 to put it into context, in this project I had the source open in one window and the asm output in another 18:21:05 and kept tweaking the source until the asm was as good as it could make it 18:21:15 ais523: that was a question >:( 18:21:15 in some cases that wasn't good enough so I just wrote it in inline asm 18:21:19 that's the sort of project it was 18:21:23 Yeah. That's about when you should be trying -funroll-loops. 18:21:42 People will actually try to use that system-wide. 18:22:02 pikhq: anyway, don't say "never use -funroll-loops" 18:22:24 say it as "don't use -funroll-loops for bash. don't use -funroll-loops for gcc. don't use -funroll-loops for..." listing every single package in the repo 18:22:30 that may get the point across 18:22:37 It's better to say that than risk some n00b thinking that it's a good idea. . . 18:23:01 Fine. "Don't use -funroll-loops unless you're prepared to do a good look over the resulting assembly." 18:23:22 pikhq: ais523's way is funnier, though 18:23:27 -!- sebbu2 has joined. 18:23:29 especially because you'd need to do it in multiple parts 18:23:30 True, true. 18:23:33 otherwise it'd be too big for a message... 18:23:38 If I were in irssi. . . 18:24:20 so gcc just sucks yes? 18:24:29 /exec -o foreach i in /usr/portage/*/*;echo "Don't use -funroll-loops for $i.";done 18:25:31 lament: No, GCC is great. The only problem with it is the retards who don't look through the documentation and note that a lot of the optimization flags say "This can break shit.". 18:25:51 but should they break shit? 18:26:08 They're useful in some select cases. . . 18:26:10 I don't think it's that 'great' that they break shit, documented or not :-P 18:26:27 -!- RedDak has joined. 18:26:28 And the bit about breaking stuff? The only way those can work involve some other things breaking. 18:26:33 normally they only break things in certain situations which shouldn't exist in the first place 18:26:37 but that people assume will work anyway 18:27:01 -!- sebbu has quit (Connection timed out). 18:27:01 -!- sebbu2 has changed nick to sebbu. 18:27:05 so they shouldn't break ansi-conforming code? 18:27:25 lament: they shouldn't, I don't know whether they do but they shouldn't 18:27:42 Such as using threads (yes, there have been cases of optimizations that work fine single-threaded, but introduce races or pessimize performance in multi-threaded programs)? 18:28:20 heh, I was noting that I hadn't seen Ilari in here before 18:28:24 he's the person i dragged here from #git 18:28:29 [he/her] 18:28:49 tusho: Ilari was here earlier making useful comments, when you weren't here 18:28:57 I noticed, in the logs 18:29:08 fizzie's twin, I guess. :-P 18:29:47 Also, maybe collecting useful ideas for his third esolang... :-) 18:30:05 A fairly large amount of the flags that break things involve floating point. 18:30:22 pikhq: floating point's interestingly specified in C99 anyway 18:30:24 Because those flags tend to involve reducing precision. . . 18:30:35 in particular, I'm not sure how much it says about precision 18:30:43 I think there are preprocessor defines that give information on the floating-point model 18:31:09 actually, IIRC there are some optimisations that break floating-point programs by using too much precision 18:31:18 4 finnish people here 18:31:27 normally that isn't a problem, but if you're relying on precision working exactly as in the spec there is 18:31:42 soon we shall take over the world 18:31:44 i mean irc 18:31:45 Also, some of the flags that break things are marked as experimental. Now, I've got to wonder why the fuck those are in stable GCC. . . 18:32:13 * ais523 tries to remember which country IRC originated in 18:32:29 it was somewhere in Europe, possibly Scandinavia, IIRC 18:33:02 ais523: switzerland 18:33:09 huh no 18:33:10 finland 18:33:11 ais523: fi 18:33:13 oklofok: lucky you 18:33:21 by this guy 18:33:21 http://www.kumpu.org/ 18:33:29 i bet he doesn't actually use irc 18:33:47 http://bugs.gentoo.org/show_bug.cgi?id=35890 18:34:04 ais523: brilliant 18:34:09 the thing that gets me is that someone actually filed that bug... 18:34:14 I'm not suprised. 18:34:22 Gentoo users can be unbearable 18:35:09 Like I said: there are retards. 18:35:11 ais523: wow... 18:35:16 And those retards are really retarded. 18:35:17 that was filed by the lead maintainer of pidgin 18:35:23 it seems 18:35:47 ... Jebus. 18:35:51 That's kinda. . . Stupid. 18:36:11 The same program that got forked due to 'gnome disease'? 18:36:12 pikhq: I'm not suprised that #gaim had tons of gentoo users coming in and complaining when it was their fault 18:36:23 Ilari: that fork is pretty stupid, to be honest 18:36:29 Ilari: gnome disease? 18:36:34 {This has to be worst initial contact I think anybody could have made. Not sure I expect much more out of somebody that codes for AOL software.} <-- LOL WUT 18:36:41 Yes, because gaim has a close and friendly relationship with AOL! 18:36:48 AOL totally didn't try and stop them providing a FOSS client. Nope. 18:37:23 {This is blasphemy, and just proves there are people with way to much time on their hands. If you got a problem, don't bitch on bugzilla, we have better things to do then listen to your incessant whining.} 18:37:25 THIS IS BLASPHEMY 18:37:44 actually, spamming bugzilla with complaints and nontechnical stuff can really annoy devs very quickly 18:37:52 Refers to thinking that "users are idiots" and can't handle more advanced behaviour, even as configuration option. 18:37:55 I know, I have wikimedia bugzilla recent changes piped to my email 18:38:08 http://bugs.gentoo.org/show_bug.cgi?id=124595 Heh 18:38:22 I've read about some of the problems the Quod Libet dev had with gentoo users 18:38:22 Ilari: luckily I think Gnome's recovering from that, but I am upset that it doesn't provide access to the screensaver settings at all 18:38:24 pretty stupid stuff 18:38:44 They have fixed those file dialogs yet? 18:39:24 Ilari: what in particular do you think is wrong with them, I can check, I'm on Gnome right now 18:39:28 tusho: If one could just get rid of certain retards, then all would be well in the world. 18:39:37 They're almost as bad as Ubuntu users. :p 18:40:00 Who are almost as bad as OS X users. 18:40:17 Though there _is_ a good sized chunk of sane, reasonable, non-fanboy OS X users 18:40:20 * pikhq nods 18:40:23 I like to pretend I'm part of it. :-P 18:41:33 personally I think a reasonable user shouldn't have much trouble with any reasonable OS 18:41:46 which includes most Linux distros, OS X, and the BSDs 18:41:54 One fun thing to do. You are using Firefox (or some rebranded version of it). You run across some new file type and want to bind it to some other application. Ok, now type path of the application binary (in /usr/bin/ of course) to that file dialog, and watch as application freezes for long time... 18:41:59 also Windows when it's been heavily customised to make it bearable, but normally that isn't worth the effort 18:42:12 Ilari: that bug's still there, I think 18:42:22 Ilari: I'd love to, except I use Konqueror. :p 18:42:43 yep 18:43:39 pikhq: in the last month or so, I've used Firefox 3, Firefox 2, Firefox 1.5, Epiphany, Konqueror, IE7, possibly IE6, Mozilla, and probably w3m 18:44:23 ouch? 18:44:33 lament: it's not that bad when you're used to it 18:44:42 but I've got pretty good at adapting to new browsers as a result 18:46:45 My standard complement of browsers is Iceweasel (Debian rebranded Firefox) and Links2 (the text-mode browser with graphical mode). 18:47:42 well, I have Firefox 3rc1 on here as my main browser, Konq for looking at things linked from IRC, and Epiphany for when Firefox 3rc1 is hitting the fsync bug because Ubuntu haven't got around to packaging rc2 yet 18:47:48 also I use w3m from text mode sometimes 18:47:56 ais523: you can change konversation to use firefox you know 18:48:08 oh, and rc2? ff3 is out :-P 18:48:17 tusho: rc2 is ff3 18:48:26 they just renamed the package 18:48:29 ais523: no, rc3 is 18:48:35 which admittedly only changed on os x 18:48:37 ah, I didn't realise there was a third 18:48:44 rc3 == rc2 except for some OS X fixes 18:48:49 yes 18:48:50 but rc2 and ff3, on Windows at least, have the same md5 sum I think 18:49:00 ais523: no 18:49:04 uninstall.exe changed from rc2->rc3 18:49:07 oddly 18:49:18 ok, so it's just the sum of some bit of it 18:49:36 Does FF3 final display yellow address bar on (non-EV) HTTPS sites? 18:49:58 heh, fun: Write random sentences into a .com file and run it 18:50:01 when on a Windows computer (say if I'm on one of the university's public computers), I end up using a mix of Firefox versions (some run FF2, some run FF1.5), and normally use IE as the secondary browser 18:50:05 Apparently 'Fuck you all' gives you an unclosable dos box 18:50:20 such fun! 18:50:26 mostly just to provide email notifications 18:50:28 lament: shut up - this is #esoteric 18:50:33 but also to log onto a website with multiple users at once 18:50:48 also I can shell into CDE on SunOS and use ancient Mozilla 18:51:08 that accounts for most of the browsers 18:51:15 oh, I think one of my computers at home has IE4 18:51:20 but it isn't connected to the internet anyway 18:51:56 Apparently that program contains nice stuff like OUTSD and INSB (I/O hardware banging)... 18:52:04 heh, fun: Write random sentences into a .com file and run it 18:52:11 It may also run off the end and execute garabage. 18:52:15 disassemble it! 18:52:21 Ilari: Cool. 18:52:27 lowercase letters don't disassemble on x86, I think 18:52:33 then type it in uppercase 18:52:37 GLOBAL THERMONUCLEAR WAR 18:52:50 anyway, I never dared to run any of my MiniMAX interps 18:52:55 which were each hand-coded in machine code 18:53:00 IIRC, uppercase letters contain tame stuff such as INC, DEC, PUSH and POP... 18:53:05 partly because I never got around to writing any MiniMAX programs 18:53:18 Ilari: bah 18:53:19 ais523, what was MiniMAX? 18:53:19 okay then 18:53:27 http://esolangs.org/wiki/MiniMAX 18:53:28 how does this disassemble, Ilari? 18:53:30 Global Thermonuclear War 18:53:36 it was my attempt at golfing interps 18:53:49 there's an example interp right at the bottom 18:54:23 in an unrelated machine-language thing, I wrote a program in C that took a binary file as input and compiled it into a .COM file which output that binary file as output 18:54:28 except that the .COM file was plaintext 18:54:35 i.e. all the characters in it were printable 18:54:55 ais523: awesome 18:55:02 AFAICT such a program has to be self-modifying as there's no way to do a loop otherwise 18:55:26 tusho: do you have access to a Windows or DOS box? I'll paste a .COM program that outputs the relevant C file, if you like 18:55:38 ais523: I don't, but I have Parallels. 18:55:45 Which has XP on. 18:55:56 oh, I wrote an obfuscated version of it too 18:56:03 ais523: That's fiendishly clever. 18:56:13 I was thinking of submitting it to the IOCCC on the basis that it was unclear what the program did even after it was run 18:56:17 ais523: paste the file, though 18:56:23 I'd be even more impressed if it only used BIOS calls. 18:56:43 lolol 18:56:47 INC EDI; INSB; OUTSD; BOUND ESP, [ECX + 0x6C]; AND [EAX+2*EBP+0x65],DL; JC 0x79; OUTSD; OUTSB; JNZ 0x73; INSB; [GS-seg-override]POPAD; JC 0x35; PUSH EDI; POPAD; JC 0x23 18:57:42 -!- Corun has quit ("This computer has gone to sleep"). 18:57:43 http://rafb.net/p/ugQVGm20.html 18:58:09 the A5 at the end is me signing the program 18:58:16 to say it was made by me 18:58:31 unfortunately, the output isn't as dense as uucode 18:58:40 it alternates between encoding 6 bits and encoding 2 bits IIRC 18:58:42 XP_W^VH%35%DCPYXPH%=5%=CP[]UM#(UX%??t&* * * * ZR 1() !GFF=\ouU0_0<0^3L1L0^292L1^1Q1L2Y1D1\3R3P0A3B2D0<1p3p3o11131p3>2D0<3:0<18253<2:170D021p3D0>0A0D0<183<3:1:1D0432041p24143o031p2D0p331o0A2D0B2A3I1J2I1J2D321124310o13031D0=0p3o0302113A220=2I1J2I1J22112o0D011412112B02112o0D042A0D0432041p2B2B2D0o2B1I1J2n3I1J2p231o0o1p212D0B042=0?0B1B2B042B242A142B1B2B042A1@2B1=342B3@1m0m032p0o1o0p3B0D2<2@090@061@1;0@15050@382@380@0D2A0B0o2132130B2B1@263o251B1A042A1@3=342B3@3=3 18:58:45 WHOA 18:58:46 Bwahahah. 18:58:49 i didn't realise it was that big 18:58:55 Ilari: what does it do 18:58:58 tusho: well, it's more than an IRC line 18:59:02 that's only the first part of the program 18:59:05 also there are no line breaks 18:59:23 there should be, really, but that's harder to do 18:59:25 -!- Sgeo has joined. 18:59:29 Perhaps one could make a uucode decoder that only uses printable characters? 18:59:41 pikhq: well, my idea was that you encode a uucode decoder in that 18:59:56 thus making it possible to bootstrap uudecode across a plain-text link 19:00:01 LMAO 19:00:13 hah 19:00:19 * ais523 wonders if it's possible to do the same in ELF 19:00:23 Great. Now you're making me want to bootstrap Linux from DOS. 19:00:27 ais523, the elf header... 19:00:37 AnMaster: does it necessarily contain nonprintables? 19:00:39 that's what I was wondering about 19:00:47 It tends to contains NULs. 19:00:48 Probably that code would get GPF in that INSB instruction, and if it somehow clears those two HW banging instructions, that bound instruction is likely to either cause page fault or bound exceeded. 19:00:51 ais523, well I don't really know, but I would think it does 19:01:13 probably the program would have to be 0x20202020 bytes long or something silly like that 19:01:32 Ilari, hah or on x86_64 BOUND cause illegal opcode iirc 19:02:04 ais523, hah yeah 19:02:08 huge in other words 19:02:23 Ilari: Run it! :P 19:02:29 You'd also need to make the thing load at something silly, like 0x20202020. 19:02:57 pikhq: Likely Not possible. Last 12 bits must be clear in mmap address. 19:03:00 tusho: extracted the original C yet? 19:03:10 ais523: No, I'm not starting xp. :P 19:03:13 Dammit. 19:03:17 tusho: ah, ok 19:03:18 Hmm... Wonder what signal the task is going to get (its task, not process, since its hardware fault signal) if BOUND traps? 19:03:22 so how are you running random .COM files/ 19:03:23 Well, mayb. 19:03:24 e 19:03:25 Just not now. 19:03:34 ais523: I'm not. 19:03:39 ais523: Hand execution. 19:03:47 pikhq: Sssh! That's a SECRET! 19:03:50 * ais523 has an idea 19:04:05 * pikhq applauds tusho for his x86 and DOS knowledge 19:04:35 pity, it seems not to work in Wine 19:04:42 Wine isn't very good at DOS support AFAICT 19:04:56 Wine only supports Win16 and up. 19:04:57 because it doesn't implement all the corner cases 19:05:06 And what amount of DOS is needed for Win16, of course. 19:05:12 ais523, dosbox? 19:05:15 for instance, I take advantage of the fact that the stack starts with a single 0 19:05:17 Which happens to exclude a ton of corner cases. 19:05:25 ais523: Try Dosemu. 19:05:33 pikhq, yes or dosbox 19:05:46 True, though I just prefer DOSemu. 19:05:59 Apparently that signal is sig #11: SIGSEGV. 19:07:53 -!- ais523_ has joined. 19:08:21 back 19:08:23 -!- ais523 has quit (Nick collision from services.). 19:08:35 [19:08] [CTCP] Received CTCP-PING reply from ais523_: 8 seconds. 19:08:38 -!- ais523_ has changed nick to ais523. 19:09:14 here's an interesting question: if you distribute the binaries for a GPL quine, do you have to provide sources too? 19:10:12 you'd better ask the FSF :P 19:10:32 -!- jix has joined. 19:10:40 Sure. 19:10:47 Of course, the binary counts as a distribution. 19:10:48 ;) 19:13:42 anyway, apparently it does run in DosBOX 19:13:46 pikhq: no 19:13:56 what if you don't have an appropriate system 19:14:22 What if you don't have an appropriate decompression system? 19:14:41 Let's say that someone is shipping sources as tar.gz. Should they not be allowed to do that since you don't have tar installed? 19:14:57 well, let them ship it as self-extracting uucode instead 19:20:06 * Sgeo managed to misread pikhq as "PSOX" 19:20:15 ... 19:21:22 Sgeo: how? 19:21:30 ais523: because all he ever thinks about is PSOX 19:21:35 regardless of its dead/alive status :-P 19:22:00 Sgeo is the funniest guy ever :P 19:22:48 oklofok: i read that as gay 19:22:51 :| 19:22:54 too much augur exposure 19:25:41 tusho is the funniest guy ever :P 19:26:19 I AM NOT GAY 19:26:20 o, wait 19:27:07 haha you CRACK me up 19:27:22 oh jeez, that was terrible 19:27:28 :DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD 19:28:07 terrible joke day 19:28:19 who's next? 19:32:29 if the jokes are that bad, I don't want to be involved 19:33:22 *zing* 19:33:52 heh 19:34:34 involved carries some connotations of having sex, and you did refer to a butt with your "that". 19:34:56 so you pretty much doubled the funniness of my joke. 19:35:13 oklofok: that's fine, it made no difference, your joke wasn't funny to begin with 19:35:30 2*0 == 0 you know 19:36:19 i have a hard time believing you 19:36:23 get it, hard? 19:36:26 okay, sorry 19:36:31 i'll be going now! -> 19:37:06 yeah, you don't wanna get *tied up* 19:38:51 -!- Corun has joined. 19:41:00 hey! :D 19:41:07 hi psygnisfive 19:41:19 hey :) 19:41:23 hi augur. 19:41:31 sup guys 19:41:34 -!- psygnisfive has changed nick to augur. 19:50:08 AnMaster: cfunge is seriously overengineered 19:50:13 but I think it does what I want it to 19:50:28 I'm trying to figure out in my head what recursively invoking it from inside itself would do, without running it 19:51:35 ais523, it is? 19:51:39 how do you mean? 19:51:42 oh, and in response to your question on the ? commands: the top bits of a random-number generator are more random than the bottom bits on some algorithms, but as you're using random() rather than rand() I think it doesn't matter 19:51:56 AnMaster: all the compiler hints, defines for several different sorts of inlining, and so on 19:52:07 ais523, oh yes 19:52:17 and restrict on function args, which I've never seen in a serious program before, which is surprising because it really ought to be used more often 19:52:34 ais523, see memcpy prototype in system headers 19:52:41 ais523: have you seen the posix_ stuff he uses? 19:52:57 AnMaster: yes, I know, memcpy's pretty much the stock example for restrict 19:52:59 i just don't know what kind of state of mind he has when coding a _befunge interpreter_, but I think it might involve illegal substances 19:53:20 tusho: there's nothing wrong with hideously overengineering a Funge interp, in fact that seems to me to be part of the point 19:53:22 * AnMaster lols 19:53:27 ais523: it's not a funge interp 19:53:29 it just does befunge 19:53:35 tusho, yet 19:53:35 probably unefunge too 19:53:37 which surprises me considering the rest of it 19:53:42 it isn't hard to adopt 19:53:43 at least, it would likely be simple to change 19:53:48 and yes you could do unefunge 19:53:55 but simply removing some instructions 19:53:59 or "not using them" 19:54:27 actually just change | v ^ w and a few more to reflect and you got unefunge, a small change in the loading routine too 19:54:29 AnMaster: well, you have to alter how many things are popped for certain instructions which pop vectors 19:54:36 ais523, oh yes true 19:54:38 not that hard 19:54:44 no, not that hard at all 19:54:57 ais523, as almost all things that pop vectors pop a fungeVector * 19:55:11 the main complication with merging cfunge and C-INTERCAL strikes me as being identifier clashes 19:55:20 ais523, ORTH fingerprint is an exception 19:55:31 I think that could be avoided by catting together all the files that make up cfunge and staticing all the variables, but I'm not sure 19:55:39 ais523, oh? well it wasn't coded to avoid name space clashes 19:55:45 yes, I know 19:55:49 and well you will need some more compiler hints 19:56:02 if it were just a single file, then that could be avoided by file-scoping all the variables 19:56:09 * ais523 thinks C needs a directory scope 19:56:14 hah 19:56:24 ais523, well doesn't intercal always use ick_ prefix? 19:56:29 as far as I know I don't use that 19:56:32 AnMaster: in publically visible identifiers, yes 19:56:53 but I'm thinking of the idea of using C-INTERCAL as glue to link a C program to a befunge program 19:57:04 ais523, anyway catting together all would have some downsides 19:57:23 like patches to upstream would be a hell 19:57:27 oh dear, I expected that 19:57:28 same for updating to newer version 19:57:32 ais523: How? 19:57:33 I was actually thinking about catting with a script 19:57:39 ais523, hm 19:57:42 maybe 19:57:45 but then filescoping the variables could be difficult 19:57:52 ais523, does it fail? 19:57:54 it could 19:57:55 pikhq: what are you referring to with your question? 19:58:04 AnMaster: I haven't tried to run it yet, I'm just browsing the source 19:58:05 ais523, I know it works with gcc -combie 19:58:07 combine* 19:58:10 Is there an INTERCAL implementation of Befunge or something? 19:58:14 because I have done gcc combine 19:58:26 ais523, HOWEVER there may be clashing static variables inside the current files 19:58:31 I got no idea whatsoever 19:58:33 pikhq: no, but C-INTERCAL has an ffi to C, and I'm working with AnMaster to give it an ffi to Befunge 19:58:43 *Ah*. 19:58:46 Makes sense now. 19:58:49 using AnMaster's cfunge interp combined with a modified version of the C ffi 19:59:11 ais523, and as you can see I even use doxygen in a lot of places 19:59:22 hmm... one thing I'd like to do at some point is change the C-INTERCAL libraries from statically linked to dynamically linked 19:59:28 that was mainly to make 3rd party fingerprints easier 19:59:34 then yuk could just be a shared object, and cfunge could be too 20:00:05 ais523, that could work, but you would need some compiler hints, __attribute__((visibility("hidden")) and such 20:00:15 ais523, as for the __attribute__ defines there is a very simple reason 20:00:24 doxygen puked if I didn't do it that way 20:00:41 it thought __attribute__((printf,blah)) was a function prototype 20:00:47 can you define the __attribute__ away for non-gcc compilers, or does it fail if you don't? 20:00:53 s/don't/do/ 20:00:54 ais523, I do define it away 20:00:58 in global.h 20:01:04 but doxygen still puked on it 20:01:10 I did just define it away before 20:01:15 but doxygen :/ 20:01:29 what does visibility do? 20:01:35 I know next to nothing about shared objects 20:01:44 ais523, make sure a symbol isn't exported dynamically 20:01:45 I made some DLLs in Windows once, but that's about it 20:01:49 to avoid name clashes 20:02:08 and windows dlls are very different 20:02:10 AnMaster: ah, that's pretty much what I was looking to do here 20:02:17 avoid name clashes when importing the library 20:02:25 ais523, HOWEVER visibility is gcc specific 20:02:27 in this case between the C code and the cfunge code 20:02:31 you could use a linker script too iirc 20:02:36 custom linker script 20:02:46 but that is also pretty non-portable 20:02:50 only portable way is static 20:02:59 and cfunge already uses static where it can more or less 20:03:20 well, the ffi requires gcc at the moment 20:03:26 I got no idea what you need to export 20:03:28 because I rely on some of the details of how its preprocessor works 20:03:37 ais523, *pukes* 20:03:41 ;P 20:03:44 I'm portable 20:03:50 so am I, for most things 20:03:53 I just offer advantages when gcc is used 20:04:00 but everything works as long as it isn't windows 20:04:14 but to prevent having to parse C, my ffi-to-C relies on the preprocessor being reinvokable 20:04:15 (see instructions/sysinfo.c for some funny windows #defines) 20:04:30 that is, that it's possible to run the preprocessor over already-preprocessed files without issues 20:04:49 * ais523 wonders what happens if an ffi'd file has a #error directive in it 20:04:50 oh god 20:05:33 ais523, well as far as I can see you just need to export a few functions. all of them probably custom written to call existing functions? 20:05:59 AnMaster: yes, that's the idea 20:06:14 let me check ick_ec.h to see how many functions might be needed 20:06:20 ais523, as for the funge-space.c, everything except the public interface (funge-space.h) may change dramatically, without prior notice 20:06:37 What's fii? 20:06:41 erm ffi? 20:06:44 Sgeo, google? 20:06:56 fii = the next generation of wii! 20:06:58 On Fark, Firefox being generally nonresponsive 20:07:11 Sgeo, !! 20:07:34 let's see, I think cfunge may only actually need to expose one function 20:07:45 which follows my C-INTERCAL ffi API 20:07:46 -!- Corun has quit ("This computer has gone to sleep"). 20:08:01 but it'll have to use a lot more than one function 20:08:24 Google unhelpful 20:08:37 you're using Boehm, so I don't have to worry about memory deallocation when arbitrarily obliterating bits of stack 20:08:41 -!- oerjan has joined. 20:08:47 all funge-space updates are atomic, right? 20:08:53 hm? 20:09:00 what do you mean by that? 20:09:04 nuclear explosions, every one 20:09:08 well, say you start running a custom fingerprint command 20:09:22 is it true that before the command runs, fungespace is completely up-to-date 20:09:25 you're using Boehm, so I don't have to worry about memory deallocation when arbitrarily obliterating bits of stack <-- um 20:09:32 I may not in future 20:09:37 I plan on dropping it 20:09:44 because of the issues it cause with portability 20:09:48 and that nothing will go wrong if I decide to longjmp downwards 20:09:49 and some random bugs too 20:10:01 is it true that before the command runs, fungespace is completely up-to-date <-- well I think so 20:10:10 maybe if the CPU got write-through cache or whatever 20:10:15 there are no memory barriers 20:10:16 AnMaster: that's not an issue here 20:10:23 because it'll be sequenced 20:10:30 I won't try to do INTERCAL + concurrent Funge 20:10:34 george carlin died :( 20:10:44 ais523, well even with concurrent funge that shouldn't be an issue 20:10:46 due to the problem that Claudio observed in C-INTERCAL 20:11:05 I don't use pthreads 20:11:13 it was something like "This error occurs when you were trying to merge together two multithreaded programs, and the interpreter couldn't decide which thread in one program should connect to which thread in the other" 20:11:18 that is not how concurrent funge works in the specs 20:11:28 AnMaster: yes, I know, INTERCAL threading's similar 20:11:42 but I can't do ffi and INTERCAL threading simultaneously, because setjmp isn't call/cc 20:12:00 it won't jump up the stack, only down 20:12:25 hm ok 20:12:39 ais523, I think setjmp is horrible hack but oh well 20:12:40 still, I think probably the craziest thing I'm likely to do is to reinvoke the interp from inside a fingerprint, then longjmp down from the nested version of the interp to the original 20:12:51 ais523, "reinvoke the interp from inside a fingerprint" 20:12:54 AnMaster: C setjmp == INTERCAL FORGET, almost exactly 20:12:55 that may or may not work 20:13:00 I got absolutely no idea 20:13:03 AnMaster: yes, that's why I was looking at the code so carefully 20:13:06 I /think/ it will 20:13:17 ais523, well funge space is a static variable 20:13:20 hidden in funge-space.c 20:13:21 because everything's either a global or stored in the IP object 20:13:38 * Sgeo pokes 20:13:41 although I don't think it'll be possible to link to more than one Befunge program at once without duplicating cfunge 20:13:59 ais523, and note that funge-space.c is likely to be totally changed quite soon (this summer) to use some other, faster, hash library. As that is the bottle neck currently 20:14:08 just I lack the knowledge for it really 20:14:26 the public interface will be the same 20:14:37 and adding a "load from string" shouldn't be that hard 20:14:43 heck it would be easier than load from file 20:14:57 AnMaster: as for performance, one thing I need to optimise is searching for a particular character in Funge-space 20:15:06 actually, that could cause issues of its own 20:15:19 hm 20:15:20 if someone happens to store an M in fungespace using p/g for its ASCII value, rather than as a command 20:15:28 Befunge is not known for being COME FROM-friendly 20:15:29 oh yes 20:15:31 why M? 20:15:35 that is Middle 20:15:39 if I add trefunge 20:15:43 which I might in future 20:15:44 ;P 20:16:46 well, what I'm planning at the moment for semantics: 20:16:59 there is a character M, for a Marker, which specifies where communications with INTERCAL happen 20:17:07 oh 20:17:08 I see 20:17:15 basically from each direction from the M, you have a Befunge program 20:17:17 ais523, how do you plan to load it? 20:17:21 from a file or a string? 20:17:27 AnMaster: probably a string literal 20:17:31 hm 20:17:35 shouldn't be *that* hard 20:17:38 * AnMaster ponders 20:18:08 ais523, pretty simple if you just load it once (see FungeSpaceLoad(), and make a variat) 20:18:32 yes, loading is unlikely to be the hard part 20:18:37 or if you plan to load more than one you probably want a variant of the less optimized FungeSpaceLoadAtOffset() 20:18:53 anyway, the idea is that there is a subprogram from M in each direction 20:19:00 ais523, I see 20:19:01 it terminates at another fingerprint character 20:19:05 um 20:19:05 another M is a NOP 20:19:12 wait you said M? right 20:19:14 so you can do, say >M to close the M off from the left 20:19:17 oh wait there is a problem 20:19:18 ... 20:19:20 AnMaster: what? 20:19:22 what if you use say ROMA? 20:19:29 or a funge string with M in it 20:19:40 "AMOR"( 20:19:42 AnMaster: the first problem's just a typical fingerprint clash 20:19:44 to load ROMA 20:19:50 the second I haven't thought of a good solution to 20:20:02 ais523, ROMA defines an M instruction 20:20:14 if you search for M then you will have issues I think? 20:20:17 AnMaster: yes, but fingerprints clash sometimes, the INTERCAL program will have its own fingerprint defining M 20:20:27 but searching could be an issue 20:20:33 maybe I should instead use a nonexistent character 20:20:33 exactly 20:20:42 that's remembered by coordinates 20:20:44 anything non-printable will work 20:20:51 well mostly 20:20:53 AnMaster: no, because of p and g being used to store numbers 20:20:58 oh true 20:21:08 yes I done that myself 20:21:17 I'm not sure how to represent a nonexistent character in the source, though 20:21:23 hmm... this is harder than I thought 20:21:23 um nor am I 20:21:51 ok so seriously 20:21:54 william moseley = HOT 20:21:58 don't give up! 20:22:00 ais523, ! 20:22:15 maybe write the source in some rich-text format, and the marker is a bold M 20:22:25 heh 20:22:30 ais523, btw fingerprint spec file format docs are in doc/somewhere iirc 20:22:39 AnMaster: yes, I've read them 20:22:40 it should be reasonably straight forward 20:22:44 doc/* actually because doc only contains one file 20:23:03 ais523, oh yes it does, I have some more unfinished latex files locally 20:23:12 heh 20:24:44 $ ls doc/ 20:24:44 fingerprints fingerprintspecformat.txt frontend-prococol.pdf frontend-prococol.tex prot-ideas.txt standard-docs 20:25:02 fingerprint is my own copies of docs for fingerprints 20:25:08 but copyright on those docs 20:25:11 well you never know 20:25:15 so I'm careful 20:25:20 yes, makes sense 20:25:28 $ ls doc/fingerprints 20:25:28 dynafing.txt ext_FPSP.txt ext_SCKE.txt ext_SOCK.txt jesseexts.txt rcfunge.html 20:25:28 I'm careful with copyright too 20:25:40 at one point I even emailed Debian to ask them the copyright on the C-INTERCAL man page they wrote 20:25:48 ais523, and what did they say? 20:25:56 they are mad with it too so... 20:26:07 AnMaster: they said that it was GPL2, like the rest of the distribution 20:26:11 ah 20:26:11 well, 2+ 20:26:13 to be precise 20:26:25 ais523, note that cfunge is *GPL3* 20:26:29 AnMaster: that's fine 20:26:42 I have no problems linking to GPL3 libraries frm a GPL2+ program, it just produces a GPL3 result 20:26:58 ok 20:27:04 I have no problems distributing GPL3 sources and GPL2 sources in the same tarball either, with a linker script that links them together 20:27:11 indeed 20:27:15 your is GPL2+ right? 20:27:20 yes 20:27:24 and yours is GPL3+? 20:27:30 actually, I inherited GPL2+ as the licence 20:27:34 but there was no real reason to change it 20:27:45 indeed 20:27:47 err 20:27:53 ais523, gpl3+ with proxy 20:28:02 see details in file headers 20:28:07 and gpl3 20:28:15 ais523, basically I don't trust GNU 20:28:16 ah, ok 20:28:21 that's still linkable-against 20:28:26 GPL4 *could* be madness 20:28:28 who knows 20:28:29 I'll have to ask you for an update if and when GPL4 comes out 20:28:33 but until then, no problems 20:28:40 AnMaster: gpl3 is madness 20:28:40 indeed 20:28:41 :-P 20:28:48 tusho, well that is questionable 20:28:56 I certainly agree it is a bit on the long side 20:29:05 it's not the length that worries me! 20:29:10 tusho, oh? 20:29:15 you mean the content? 20:29:27 -!- Corun has joined. 20:29:38 yeah :) 20:30:05 I understand what everything's in there for, I think 20:30:16 and the GPL3 looks good to me at furthering the aims of the GPL 20:30:23 I'm not convinced that tusho agrees with the aims of the GPL, though 20:30:40 'not convinced'? Awesome understatement :-P 20:30:42 that's not necessarily a bad thing 20:31:09 -!- Slereah2 has joined. 20:31:17 GPL literally caused more deaths than the Indonesian tsunami 20:31:21 NEVER HAVE I BEEN MORE FURIOUS OR ORANGE 20:31:31 lament: really? Pics or it didn't happen 20:31:36 Slereah2: likewise 20:31:51 hah 20:32:17 Don't joke, ais523 20:32:27 Slereah2: what are you furious at? 20:32:27 My grand mother was killed by the GPL. 20:32:33 My connection. 20:32:52 ais523: look, they killed thousands of free software users and one jew: http://www.mideastweb.org/coffins2.jpg 20:33:20 Why the free software users? 20:33:23 :o 20:33:28 -!- cherez has quit (Success). 20:33:35 lament: tusho: please, I was having an interesting conversation with AnMaster before this got into an argument about the GPL 20:33:44 ais523: actually I find this rather funny 20:33:45 :-P 20:33:51 What was the interesting conversation? 20:33:52 but, we can multi-converse 20:33:52 you know 20:34:00 Slereah2: brilliant 20:34:01 Slereah2: we were discussing linking Befunge and INTERCAL 20:34:14 Ah yes, the interfuge business. 20:34:25 actually, interfunge is a Befunge-93 interp written in INTERCAL 20:34:27 interfunge then 20:34:30 which is in the C-INTERCAL distributions 20:34:34 yes 20:34:34 that name's already taken 20:34:38 so what do we call it? 20:34:43 fffungi? 20:34:45 * AnMaster runs 20:34:45 Becal? 20:34:50 ais523, ^ 20:34:51 AnMaster: I actually kind of like that 20:35:01 ais523, I think it got one f too many 20:35:03 not sure 20:35:10 but I haven't named the INTERCAL <-> C ffi yet 20:35:19 I just call it "external calls to C" in the C-INTERCAL docs 20:35:21 cpiffi? 20:35:23 * AnMaster runs 20:35:32 likewise "external calls to Befunge" is likely the name I'll use in the docs for that 20:35:35 (spiffy if you can't read it) 20:35:36 ais523, ^ 20:35:48 -!- cherez has joined. 20:35:49 I think I liked fffungi better 20:36:00 ais523, well that was for c 20:36:13 ah 20:36:16 what's the p for? 20:36:23 SimonRC, to make it looks like spiffy 20:36:25 err 20:36:26 ais523, ^ 20:36:40 (a != s 20:36:44 AnMaster: why did you just mention SimonRC? typo on tab-complete? 20:36:49 ais523, indeed typo 20:36:54 a and s are next to each other 20:37:07 ai vs. si 20:37:23 yes, I'd guessed a vs. s, I hadn't realised about the is though 20:37:32 si 20:37:34 not is 20:37:36 STAB STAB 20:37:46 is was the plural of i in my last statement 20:37:48 is = beep 20:37:49 here 20:37:59 oh right 20:38:10 btw hot in here, will be back with a fan shortly 20:39:16 back 20:39:32 here it is raining - and this is supposedly _the_ day of the year for bonfires in norway 20:39:48 so, the problem still remains of how to do COME FROM in Befunge 20:39:56 whilst still being able to use g and p, and string literals 20:40:54 ais523, indeed 20:40:59 and I don't know 20:41:06 ais523, why not use out of band data? 20:41:17 seems only sane solution to me 20:41:19 I was thinking along those lines myself 20:41:27 the problem then is how to specify it in the source 20:41:35 hm? 20:41:48 well, you still need to be able to represent the data in text form 20:41:57 so that you can actually write a ComeFromFunge program 20:42:05 hm? 20:42:16 good question 20:42:27 #esoteric: there are enough ingenious esoprogrammers here, surely someone can think up a good way to do COME FROM in Funge-98 20:42:27 ais523, you want to add new come from points at runtime? 20:42:34 AnMaster: of course, or it wouldn't be Befunge 20:42:46 ais523, a fingerprint with two instructions 20:42:50 call them X and Y 20:42:58 X = register new come frome point 20:43:04 Y = deregister existing 20:43:13 change the chars to better ones 20:43:20 yes, that's what I concluded for modifying the out-of-band data 20:43:24 it would take a vector 20:43:32 and whatever else you need 20:43:43 what about initially specifying the locations? 20:43:56 ais523, not sure how do plan to include funge source in the intercal source 20:44:01 my idea depends on that 20:44:10 * oerjan is reminded of Lisp's variable vs. function contents 20:44:12 as a separate file? or in-band data? 20:44:13 AnMaster: by linking a .i file to a .b98 file 20:44:28 just like I link .i and .c files at current 20:44:36 ais523, well cfunge is happy to run befunge93 too 20:44:44 and the future 108 20:44:54 * AnMaster is still working on that standard 20:45:02 AnMaster: heh, Unix year naming 20:45:08 years-since-epoch and all that 20:45:11 ais523, by request of author yes 20:45:16 years since 1900 20:45:24 that is by request of original author 20:45:27 that's the format that the relevant syscall returns in IIRC 20:45:33 yes 20:46:47 ais523, anyway for intitial data, maybe specify it in the intercal file in some way? 20:46:51 I don't know 20:46:57 Heh... Reminds me of collection of Y2K buggy year printing routines... They worked correctly for 1910-1999, but try 2000 and they blew up nicely... 20:47:00 AnMaster: yuck, that's not a good way to do it 20:47:16 Ilari: some websites think the year's 19108 right now 20:47:19 isn't yuck the debugger? 20:47:20 ais523, ???? 20:47:24 now you are confusing me! 20:47:26 ;P 20:47:27 AnMaster: the debugger's actually called yuk 20:47:32 but much the same name 20:47:40 ok 20:47:41 ;P 20:47:46 ais523: Let's say that some of those routines printed stuff much more bizarre than that... 20:47:57 Ilari: I wouldn't be surprised 20:47:57 ais523, or maybe specify that you will start at 42,42 and run to end of line, allowing to set initial breakpoints 20:48:04 Windows 3.1 file manager would print the year as 19:8 20:48:23 hah? 20:48:33 AnMaster: '9'+1==':' in C and ASCII 20:48:40 oh 20:48:43 true 20:48:46 IIRC, one that would print 2008 as 19:8 was among those routines... 20:49:14 Ilari: how many of them hardcoded the 19? 20:49:47 and do you have a link? 20:52:07 heh 20:52:29 Nope, no link. But I found the code... 20:52:39 ais523: Not always. 20:52:47 C doesn't specify the character set in use. 20:52:58 pikhq: I know, did that lead to trouble? 20:52:58 Some ISO C environments use EBDIC. 20:53:05 it does specify that 0-9 are in order, though 20:53:18 EBCDIC, rather. 20:53:19 and that's why I specifically mentioned ASCII in my comment above 20:53:28 Ah. 20:53:35 incidentally, a-f also are in order in EBCDIC 20:53:38 but not a-z 20:54:18 ais523, that is weird 20:54:28 and not logical 20:54:37 AnMaster: the letters form a little rectangle on a 16x16 character set IIRC 20:54:37 There are apparently a lot of them that actually try to display dates in 21st century, but get it wrong... 20:54:55 oh 20:55:37 it isn't hard! 20:56:05 printf ("%d", 1900 + unix_style_date); 20:56:06 ... 20:56:30 -!- mckiko has joined. 20:56:38 You're right. It's not hard to fuck up. 20:56:42 apart from printing "-32" instead of "32 BC" that will handle it fine 20:57:01 pikhq, it is hard to fuck up 20:57:14 printf ("19%d", unix_style_date); is just stupid 20:57:20 True. 20:57:37 actually I'm getting infected by GNU! EWW 20:57:38 I meant 20:57:42 printf("19%d", unix_style_date); is just stupid 20:57:42 AnMaster: actually, it'll print "-31" instead of "32 BC" 20:58:04 no space between the printf and the ( 20:58:06 ever 20:58:11 Depending upon how your signing goes. 20:58:14 except for if (foo) 20:58:24 AnMaster: I generally adapt the parens on functions and ifs to the surrounding code 20:58:26 One's complement? Two's complement? ;) 20:58:26 or while (foo) 20:58:34 but leave no space on either if I'm writing the code from scratch 20:58:35 pikhq, hah 20:58:43 ais523, but why -31? 20:58:51 AnMaster: because there was no year 0 20:58:52 IDGI 20:59:01 ais523, um I see 20:59:03 that's crazy 20:59:06 so 1AD - 1 = 1Bc 20:59:10 s/c/C/ 20:59:15 but 1-1 = 0 20:59:20 yes... 20:59:24 ok insane 20:59:32 anyway 20:59:41 NORMALLY computers doesn't have to handle such numbers 20:59:48 not as dates 21:00:02 normally only as text 21:00:05 computers don't like our date system, really 21:00:08 because it makes no sense 21:00:21 at least, not to a computer 21:00:27 not to me either 21:00:44 well it is related to the moon, the year and the day 21:01:11 so it kind of makes sense 21:02:05 Some of the most bizarre stuff for '2008': 198, 198, 19E6, 194294967256, 1965496, 19216, '19,0', 19-40, 2108, 3908, 4008, 208, 216, 2116, 2216, 20E6, 4294967256, 1860, 1960, 204294967256, -40, 20-40. 21:02:19 19E6? 21:02:39 * ais523 would be amused at 2.008e3 21:02:51 -!- pikhq has left (?). 21:03:00 208 21:03:01 wait? 21:03:05 that almost made sense 21:03:37 Ilari, link to these? 21:03:56 AnMaster: Maybe I put it online somewhere after cleaning it up a bit... 21:04:15 Ilari, was there any 19108? 21:04:38 that I think should be the most likely mistake to make 21:04:49 AnMaster: Of course. 21:05:08 Ilari, I like to see the code that cause these errors 21:08:19 The 19E6 code was follows: Suppose that year routine returns 1999 as 99 but 2000 as 2000 (yes, such things exist). Store the return into uchar and print '19['0'+year/10][year%10]'. 21:08:47 ... 21:09:19 well, 4294967296 is (unsigned)-40 21:09:19 eh 21:09:24 that could explain that to some extent 21:09:37 ais523, -40 makes no sense still 21:09:37 s/4294967296/4294967256/ 21:09:51 There also was 20E6 (which was just code that chooses century part right). 21:10:04 and I'm enough of an INTERCAL programmer to be able to do that in my head 21:10:05 2008 = -40 (mod 256). 21:10:34 Ilari: oh, yes, that would explain it 21:10:36 (sorry too lazy to get that triple-line sign, as congruences should have). 21:10:57 you could always write it as === 21:12:46 ≡ 21:12:59 ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡ 21:13:23 heh? 21:13:29 why the tripple one really 21:13:33 I never understood the point of it 21:13:44 AnMaster: congruence vs. equality 21:14:00 the triple-bar bascially implies equivalence under a certain relation 21:14:01 The standard notation for congruences has that ≡ symbol... 21:14:06 even though the two things can be different 21:14:19 e.g. -40 is not 2008 but they both end with the same 8 bits 21:14:30 ah 21:14:42 Actually, have same remainder when divided by 266... 21:15:17 Ilari: 266, not 256? 21:15:50 I thought triple was for identities? 21:15:52 Oops, should be 256. 21:16:07 ais523, any idea for initial fffungi come from points? 21:16:11 Sgeo: it often is in programming languages, but not in maths 21:16:16 what about my idea about "run initial line"? 21:16:32 AnMaster: well, a simple heuristic would be to look for M with three arrowhead commands pointing into it 21:16:35 but that's a bit fragile 21:16:40 yes indeed 21:17:07 ais523, look for ascii art of a T-Rex? ;) 21:17:09 So why do I remember the book I learned Algebra from, Algebra the Easy Way, saying something about identities like 4x ≡ x + x + x + x using the triple bar thing? 21:17:26 Sgeo: there, the triple-bar is meaning always equals 21:17:29 rather than just equals 21:17:49 sometimes equals? 21:17:53 when it is hot outside? 21:18:02 AnMaster: you'd have to invent your own operator for that 21:18:10 ais523, haha 21:18:12 e.g. temperature ?=? 30oC 21:18:15 does intercal have one? 21:18:26 AnMaster: well, seeing as I'm programming custom operators 21:18:29 it can have one if you want 21:18:37 ais523, does it have sensor interface? 21:18:45 AnMaster: it has ffi to C 21:18:48 which can have a sensor interface 21:19:04 ais523, you said boehm-gc? note that I sometimes use normal malloc still 21:19:09 like in the PERL fingerprint 21:19:17 Like 'sometimes equals' in x^4-128x^3-1920x^2-63488x-1048544=0... 21:19:19 and I'm deciding boehm-gc is not recommended 21:19:23 it cause odd errors 21:19:27 anyway, the legal names for custom INTERCAL operators are punctuation marks that aren't used for anything else, lowercase letters, and any overstrike of exactly two characters which wasn't used otherwise 21:19:52 What's ffi? 21:19:57 Sgeo, STFW 21:19:59 Google is unhelpful 21:20:23 Sgeo, try FFI wikipedia 21:20:24 n/m 21:20:25 second hit 21:20:26 ... 21:20:32 Sgeo: foreign function interface 21:20:41 2. Foreign function interface - Wikipedia, the free encyclopedia 21:20:41 From Wikipedia, the free encyclopedia. Jump to: navigation, search. A foreign function interface (or FFI) is a mechanism by which a program written in one ... 21:20:41 en.wikipedia.org/wiki/Foreign_function_interface - 27k - Cached - Similar pages - Filter - History 21:20:41 More results from en.wikipedia.org » 21:21:00 anyway, the reason I'm talking about memory allocation is to do with FORGET commands 21:21:08 which were the hardest to implement in C 21:21:16 ais523, what does FORGET do? 21:21:26 it allows you to return from a function other than the one you're in 21:21:41 e.g. function a calls function b, function b forgets, then it returns from function a 21:21:43 blergh 21:21:54 that's existed since INTERCAL-72 21:22:08 so basically "mess with call stack"? 21:22:11 when FORGET, or the version of RESUME that's sugar for it, was the only way to do a conditional jump 21:22:15 so yes, "mess with call stack 21:22:18 s/$/"/ 21:22:42 ais523, well if you do that and cause strange bugs in cfunge users should report the errors to you not me 21:22:51 but the issue here is that if function a does mallocing, then it won't get to free its data 21:22:55 because the second half never runs 21:23:03 (btw now probably you see why I was using setjmp_ 21:23:07 ais523, oh yes that does happen 21:23:08 s/_/)/ 21:23:20 anyway I'm phasing out boehm 21:23:25 for various reasons 21:23:33 lol@cfunge users 21:23:37 THE VIBRANT CFUNGE COMMUNITY 21:23:43 no 21:23:46 user of intercal 21:23:51 users* 21:23:55 who will use fffunti 21:23:57 err 21:24:00 fffungi* 21:24:12 (or whatever ais523 calls it) 21:24:31 I assume there is some vibrant intercal community? 21:24:35 ais523, ? 21:24:40 AnMaster: not exactly vibrant, but chugging along 21:24:47 I normally get patches after each new release 21:24:54 often for older features that people are used to, though 21:24:55 actually I ask that all bugs in fffungi should first go to you 21:25:01 AnMaster: that makes sense 21:25:11 to verfiy they actually *are* related to my code before I get it 21:25:24 well, I doubt they'll be related to your code 21:25:25 after all you seem to plan to do some pretty strange thing 21:25:36 ais523, I don't say that my code is bug free 21:25:42 I'm pretty sure it isn't 21:25:53 well, no, but it's likely to be bugfree compared to C-INTERCAL 21:25:57 haha 21:26:41 ais523, and anything messing with call stack or such that in my book goes under "compiler internals, don't touch" well... I don't "support" that 21:27:03 setjmp is included in that book as a "don't do!" 21:27:09 sure I realize you need it 21:27:14 but don't expect me to like that part 21:27:20 well, no 21:27:26 but C wasn't really designed for FORGET 21:27:34 agreed it wasn't 21:27:34 I'm actually surprised at how well it handles COME FROM 21:27:42 it does handle it well? odd 21:27:56 * Sgeo should learn INTERCAL at some point 21:27:57 AnMaster: at the cost of clobbering all the auto variables in the function because it basically has to exit and reinvoke it 21:29:40 ais523, urgh 21:30:02 AnMaster: it makes sense when you're COMING FROM one function into another 21:30:08 what possible valuse could the auto variables have? 21:30:09 ais523, my code do use variable sized arrays 21:30:23 ah, that could cause issues 21:30:26 ais523, I thin 21:30:28 probably not though 21:30:33 and structs with variable size 21:30:35 I think they work if I put wrapper functions around them 21:30:41 variable size structs will be fine 21:30:41 as in an array at the end of the struct 21:30:47 because you never put them on the stack, right 21:30:53 ais523, I don't think I do 21:30:58 I do put *some* structs on stack 21:31:03 like returning a struct 21:31:07 yes, but variable-length struct on stack makes no sense 21:31:08 but that is fixed size iirc 21:31:11 it just wouldn't work in C 21:31:30 ais523, however on amd64 I think that struct *may* be returned in a register 21:31:55 if it fits in a register that's no problem 21:32:12 yes but on x86 it is definitely on the stack 21:32:14 a vector 21:32:32 with is just two 32- or 64-bit values 21:32:44 stack vs. register doesn't really matter 21:32:51 if you're FORGETTING you're clobbering everything anyway 21:32:53 that's sort of the point 21:33:09 luckily, at least the IP is known after all INTERCAL mess-about-with-things instructions... 21:33:21 ais523, well could have memory leaks I guess 21:33:52 AnMaster: C-INTERCAL leaks like a sieve anyway, I've tried to patch some of the holes but it's like trying to patch a sieve one hole at a time 21:34:09 unmodified cfunge is valgrind clean (well except it doesn't free the copies of the argc/argv, but those are allocated at the start and then "still reachable") 21:34:46 ais523, if compiled as RELEASE cfunge will have some non-dangerous small "still reachable" 21:35:05 as it doesn't free on exit then 21:35:12 ok 21:35:17 in debug build it will free almost everything at exit 21:35:23 except the argv 21:36:00 ais523, there are however *no* valgrind errors :) 21:36:09 ais523, that I know of 21:36:18 I have done fuzz testing to ensure that 21:36:28 ais523, there may be in the "unsafe instructions" 21:36:37 because they are harder to fuzz test safely 21:36:43 I used sandbox mode when fuzz testing 21:36:57 but they won't leak during normal operation 21:48:31 -!- jix has quit ("CommandQ"). 21:50:01 -!- jix has joined. 21:50:21 ais523, well I wish you good luck 21:50:28 yes 21:50:42 also befunge doesn't have real functions 21:50:46 especially in the external calls and multithreading area 21:50:47 so how could you FORGET? 21:50:50 and neither does INTERCAL 21:51:02 it uses NEXTing, which is like a cross between a function call and a GOTO 21:51:07 basically, it's GOSUB from BASIC 21:51:12 I see 21:51:37 ais523, oh and cfunge gives more or less sane errors/warnings 21:51:44 unlike intercal 21:51:56 INTERCAL's warnings and errors are sane, just the messages are funky 21:52:05 but I'm complying with host language errors for the ffi 21:52:07 well cfunge's messages are sane 21:52:08 e.g. you get C errors in C code 21:52:09 actually... cfunge doesn't give errors 21:52:13 just optional warnings 21:52:18 well, it reflects on error 21:52:20 that's what Funge does 21:52:24 yes 21:52:40 * ais523 reckons that that's bound to end up in an infinite loop at some point for some program, but whatever 21:52:40 well there is the "hopeless out of memory error case" 21:52:56 YOU HAVE TOO MUCH ROPE TO HANG YOURSELF 21:53:08 well for cfunge it only happens in stack code 21:53:28 oh it is a warning 21:53:32 yes, in INTERCAL it could happen in threading, memory allocation, or I/O 21:53:33 see OOMstackStack 21:53:38 in stack.c 21:54:14 ais523, it could also happen elsewhere 21:54:16 -!- oklofok has quit (No route to host). 21:54:26 except I don't think it may always handle it gracefully 21:54:37 well, I don't think OOM's all that graceful in C-INTERCAL 21:54:40 it wasn't before I got to it 21:54:44 I think it may call abort() in one case 21:54:49 I think programs handle OOM pretty well now, but the compiler probably doesn't 21:55:04 hm 21:55:11 ais523, OOM isn't very likely these days 21:55:17 on desktops/laptops 21:55:23 no, especially on Linux, you get the oom-killer instead 21:55:27 sure for PIC intercal but... 21:55:39 PIC-Intercal uses entirely static memory 21:55:40 ais523, I only got that once, but I have 1.5 GB ram 21:55:44 and I got as much swap 21:55:44 Also, some really crazy allocation requests may fail... 21:55:59 so I will be warned before it actually happens 21:56:03 well, when I tried putting a ulimit on the compile process, it caused problems on Itanium, apparently 21:56:06 by heavy swap trashing 21:56:13 where the compiler used massive amounts of memory 21:56:13 ais523, oh? 21:56:18 right I see 21:56:18 the ulimit itself was to avoid swapping 21:56:36 ais523, well Itanium is unusual in that aspect 21:56:40 VLIW 21:56:41 anyway, in the end I adopted the fix of splitting idiotism.c into a huge number of smaller files 21:56:48 and I know why Itanium might use lots of memory 21:57:08 compiler needs to do scheduling 21:57:22 it seems that there are 14 output files from idiotism.oil at the moment 21:57:27 I get the OIL compiler to autosplit them 21:57:48 ais523, this was done after last release? 21:57:49 however currently I compile them using wildcards in the call to gcc 21:57:51 AnMaster: yes 21:57:57 ok 21:58:07 ais523, will you use 32-bit or 64-bit cfunge? 21:58:08 :) 21:58:12 AnMaster: probably 32-bit 21:58:16 oh? 21:58:18 because INTERCAL's 32-bit 21:58:25 as in, the language itself 21:58:27 not just the compiler 21:58:28 ok makes sense 21:58:44 variables are limited to 32 bits 21:58:50 constants are limited to 16 bits just to be annoying 21:59:15 see global.h and CMakeLists.txt 21:59:57 ais523, well *input program* to cfunge is 8 bit (file of char*), but at runtimes the cell are larger 22:00:09 most files are stored 8-bit 22:00:16 yes 22:00:25 although if you input UTF-16 or UTF-32, you might be able to load more directly 22:00:35 ais523, also note that cfunge won't compile under MSVC, I tried 22:00:42 it did compile under mingw in the end 22:00:49 what went wrong under MSVC? 22:00:50 Hmm... CLC-INTERCAL description says it supports quantum computation? Quantum INTERCAL or what? 22:00:52 after a lot of heavy work and stubbing out stuff 22:00:59 ais523, MSVC doesn't support C99 basically 22:00:59 Ilari: apparently it's a threading model 22:01:02 not really quantum 22:01:14 all it does is just run two versions of the program in parallel 22:01:22 with one datum being different between them 22:01:25 it's a bit of a cheat really 22:02:24 ais523, cfunge is heavy with C99 code 22:02:34 I can live with C99 22:02:37 especially VLAs 22:02:41 it is non-trivial to convert to C89 22:02:43 but nobody's impemented it, pretty much 22:02:56 AnMaster: some things are trivial, like restrict 22:03:11 ais523, well stuff like: & (fungeVector) { .x = 5, .y = 2 }; 22:03:14 and the struct hack generally works by coincidence in C89 compilers with a slight syntax change 22:03:27 but things like VLAs have problems 22:03:38 as for structure literals, I imagine there's some way to hack around that 22:03:39 ais523, see vector.h 22:03:46 probably using helper functions 22:03:51 #define VectorCreateRef(a, b) (& (fungeVector) { .x = (a), .y = (b) }) 22:03:59 there are also some other variants of it 22:04:03 in the source 22:04:36 + you need to move up from for (int i = 0; ...) to int i; for (i = 0 ...) 22:04:45 -!- mckiko has quit. 22:05:42 ais523, also I did test it on win32 before, some fingerprints have to be ifdefed out, oh and one of the header files clash with what is already used by the win32 api in name 22:05:45 and some other such things 22:05:57 also it was a few versions ago 22:06:00 so it may no longer work 22:06:04 VectorCreateRef could be functionised relatively easily, I think, if you had garbage collection 22:06:11 but an API name clash strikes me as unusual 22:06:19 ais523, I think it was io.h 22:06:22 presumably that happens becaues they put everything in windows.h 22:06:22 that caused problem 22:06:32 rather than splitting it into separate headers for namespacing purposes 22:06:35 it couldn't find another header named io.h 22:06:43 -!- caio has quit ("Leaving"). 22:06:46 ais523, it was a header file name clash 22:06:52 AnMaster: that's what <> vs. "" is for, surely? 22:06:59 it would be #include 22:07:01 #include "io.h" 22:07:03 to get both of them 22:07:03 ais523, yes but even so 22:07:15 ais523, I didn't care about the other io.h 22:07:28 but somehow my io.h ended up in the include path before 22:07:34 this caused problems 22:07:45 because some header I used wanted to include the system io.h 22:07:55 ais523, probably a build system issue 22:08:13 well, I put my headers in the -I include path in C-INTERCAL 22:08:14 and I don't think you will use my build system anyway 22:08:22 because they aren't in the standard library 22:08:41 ais523, anyway a real issue: I will drop boehm-gc in future 22:08:46 but my perfect way of using C-INTERCAL + cfunge would be just a wrapper that links to cfunge 22:08:52 AnMaster: where do you allocate memory? 22:09:02 and when will you free it? 22:09:03 ais523, malloc()/calloc() in future 22:09:06 free() 22:09:09 but when? 22:09:12 depends on code flow 22:09:15 as in, what part of your program 22:09:21 do you allocate memory every command? 22:09:21 I ususally free "when I'm done with it" 22:09:24 see support.h 22:09:25 do you only allocate on the stack? 22:09:33 ais523, for most stuff I don't need to allocate 22:09:43 and stack is allocated in chunks 22:09:48 and that is malloc+realloc 22:09:56 yes, I'm wondering what needs allocation 22:09:56 stack.c 22:09:57 fungespace and stack are both fine 22:09:59 is there anything else? 22:10:18 ais523, well some stuff malloc for popping strings from funge stack and such 22:10:32 AnMaster: does it free before the command's finished? 22:10:38 if so, that's fine 22:10:49 ais523, if it doesn't need it later then yess 22:10:50 yes* 22:10:54 grep -RE 'malloc|free|calloc|realloc' src 22:10:55 ? 22:11:05 I may try that 22:11:08 ais523, some fingerprints alloc and put in a static array 22:11:09 not really used to cfunge yet 22:11:14 AnMaster: static is always fine 22:11:32 that doesn't interact with stupid stack tricks at all 22:11:44 ais523, the main() function allocs some stuff into a global (well strdup in fact) that it never frees 22:12:13 again, not an issue, I don't think 22:12:28 because cfunge will be loaded exactly once in a run of the program 22:12:38 ais523, I can't really answer your questions about "does it do anything that will fuck up with stack tricks" because I'm an innocent and clean C programmer that got no idea what those tricks are! 22:12:52 yes, I know 22:12:54 ais523, anyway those strdup and such are for copying argv as needed 22:13:01 that won't cause issues 22:13:05 for later use in y instruction 22:13:17 main.c and interpreter.h 22:13:18 actually, I wrote a chapter in the documentation about the effect the stupid stack tricks had on programs 22:13:21 I'll try to find a link 22:13:25 ais523, thanks 22:14:18 ugh, the link's gone dead, I'll mirror it on eso-std.org 22:14:45 ok 22:16:03 -!- oklopol has joined. 22:16:24 ais523, hm ok 22:16:50 http://eso-std.org/~ais523/c-intercal-docs/n0kl5548.htm#External-Calls-and-auto 22:17:09 I just got that up, I'll look for a more permanent place to put it later 22:17:44 also patches upstream should be minimal, follow existing indention/coding style and *be clean C* 22:17:54 yes, makes sense 22:17:58 like I hope my code is 22:18:00 mostly 22:18:03 ideally it would require no upstream patching at all 22:18:13 well if you find bugs I would like patches 22:18:19 even better than I like bug reports 22:18:25 C-INTERCAL uses some gld tricks to delete main()s in the programs it links against 22:18:28 so it can use its own 22:18:29 ais523, also sure you won't do concurrent befunge? 22:18:42 AnMaster: concurrency + ffi is confusing in all situations 22:18:48 ais523, and well cfunge's main is just option parsing really 22:18:54 imagine one thread Befunge and one thread INTERCAL proceeding simultaneously 22:19:22 ais523, well they won't really, will they? 22:19:30 no pthread 22:19:35 in either 22:19:38 well, no, but it would be the only thing that made sense based on the semantics 22:19:41 but it's impossible to implement 22:19:45 ais523, however your C ffi could use pthread couldn't it? 22:19:48 that's why I'm not mixing ffi and concurrency 22:19:54 and yes, I have been thinking along those lines 22:20:15 I mean... nothing would stop anyone from using pthread int it 22:20:16 in it* 22:20:27 AnMaster: I hate to think what breakage that would cause, though 22:20:36 ais523, indeed 22:20:36 it might be interesting, but it's definitely try-at-your-own-risk 22:20:49 well I don't know enough intercal to try it 22:20:58 nor have I ever used pthread 22:21:08 I can easily write a simple INTERCAL program and a C shell that just runs arbitrary C 22:21:27 well would be useful for testing with I guess 22:21:51 I may have one already as a test, let me check 22:21:59 Hell. 22:22:06 alloca storage? 22:22:09 It seems all pi-based languages are for Linux. 22:22:11 is that defined by C standard? 22:22:12 Slereah2: deliberate typo, or are you trying to say hello? 22:22:18 or some gcc extension? 22:22:23 AnMaster: no, it's a common nonstandard extension 22:22:24 There are pi-based languages? 22:22:27 most C compilers implement it 22:22:32 but it isn't in the standard 22:22:48 ais523, I never used it, what does it do actually? 22:23:04 AnMaster: allocates memory that's deallocated when the function exits 22:23:14 Sgeo : A few. 22:23:21 aha 22:23:31 ais523, that could cause problems with intercal? 22:23:41 Occam-pi, Jo-Caml, Pict, BPML 22:23:48 AnMaster: well, I worked out the effect that alloca would have on the code 22:23:58 one of the reasons it's used is that it plays nicely with longjmp 22:25:13 But most of them are pretty experimental. 22:25:22 So it's hard finding compilers and manuals 22:26:44 "More worrying is probably the fact that the C standard provides a portable method for deleting the stack like that, and in fact the external calls runtime library is written in standard freestanding-legal C89 (with the exception of +printflow debug output which requires a hosted implementation), meaning that in theory it would be possible to split it out to create an implementation of a C-plus-COME-F 22:26:44 ROM-and-NEXT language, and doing so would not be particularly difficult.)" 22:26:46 wtf? 22:26:58 It seems all pi-based languages are for Linux. 22:27:01 why is that bad? 22:27:02 AnMaster: longjmp does almost exactly the same as forget 22:27:08 just run it on your linux/*bsd system? 22:27:13 AnMaster: Slereah uses Windows 22:27:19 well that is a bug IMO ;P 22:27:55 ais523, and "longjmp" is definitely in my "don't ever touch that crazy stuff" entry 22:27:57 but the chance of having the silly stack tricks being portable freestanding C was too much to pass up 22:28:04 * oerjan hands Slereah2 a flyswatter. To use on AnMaster. 22:28:06 "Even if you are willing to make more changes to fix it, there is no easy way to do so. " 22:28:09 http://www.gnu.org/software/libtool/manual/libc/Advantages-of-Alloca.html 22:28:11 oerjan, eh? 22:28:19 -oerjan- VERSION irssi v0.8.10 - running on Linux i686 22:28:20 I think I see a way to do it without alloca() 22:28:41 AnMaster: just because you don't personally use windows doesn't mean you like people going 'lol windows sucks so i wont fix it' 22:28:48 Although it's a bit ugly 22:29:13 i am actually ssh'ing from Windows to Linux... 22:29:15 Actually, I has a Linux 22:29:31 But the dual booting went away when I reinstalled windows 22:29:36 oerjan: i salute you 22:29:36 well, generally I try to get my programs working on Windows if possible, but not if it involves working around obstacles Microsoft put in my way 22:29:42 I could reinstall the dual booting 22:29:44 which is usually 22:29:49 If my hard drive wasn't broken 22:30:06 and I've been known to connect from Windows ssh'd into SunOS 22:30:11 simply to be in a UNIXy environment 22:30:12 ais523, well see instructions/sysinfo.c 22:30:25 line 45 22:30:40 and around there 22:31:11 ah, environ 22:31:21 I think Windows has something vaguely corresponding to it 22:31:24 but it's probably a pain to get at 22:31:31 ais523, yes I couldn't be bothered to mess with the functions it uses instead 22:31:53 the Windows API is awful 22:32:00 ais523, there are a few more, in some of the math fingerprints for example 22:32:23 the windows version of fork has infinity times as many parameters and is less powerful 22:32:29 // Yeah, some systems are *really* crap. 22:32:29 // This includes Mingw on windows when I tried. 22:32:29 #ifndef M_PI 22:32:29 # define M_PI 3.14159265358979323846 22:32:29 #endif 22:32:35 from FIXP 22:32:41 ISTR it had 11 params last I tried 22:32:49 wtf is ISTR? 22:33:07 -!- RedDak has quit (Read error: 104 (Connection reset by peer)). 22:33:08 I Seem To Remember 22:33:14 anyway fork got *NO* parameters 22:33:18 yes, I know 22:33:19 ais523: If I Recall Correctly is more popular :-P 22:33:27 and it's more powerful than CreateProcessEx 22:33:35 cygwin has to jump through huge hoops to simulate fork 22:33:35 yeah 22:33:52 and that is why fork() on cygwin is so slow 22:33:57 + the memory isn't shared 22:34:12 tusho: ITYM "IIRC FTW". HTH. 22:34:34 ITYM? HTH? 22:34:35 wtf 22:34:36 are 22:34:37 oerjan: you IRC? I IRC too 22:34:37 those 22:34:50 IRC? 22:34:55 iirc not irc 22:34:56 ... 22:34:57 I Think You Mean? Hope That Helps? 22:35:04 oerjan: Internet Relay Chat 22:35:05 oh 22:35:07 what ais523 said 22:35:20 ais523, IIRC != IRC 22:35:31 AnMaster: yes, it was an acronym pun 22:35:32 iiiiiiiiiirrrrrrrrrrrrrrccccccccccccc 22:35:38 ais523: somehow my mind refused to verb that noun :D 22:36:00 haha 22:36:01 Linux has sys_clone syscall... 3 or 6 arguments. sys_fork() is special case of sys_clone() (IIRC, sys_clone(SIGCHLD, NULL, NULL)). 22:36:02 to irc 22:36:22 Ilari: sheesh, you really are another fizzie 22:36:25 we need more of you two :P 22:36:26 well that is syscall 22:36:33 Ilari, I don't care about syscall 22:36:38 I just use the POSIX interface 22:36:40 which is clean 22:36:41 :) 22:36:48 I don't care about the internals indeed 22:36:52 well, it doesn't have 11 args 22:37:02 more args are good, right? 22:37:09 hahaha 22:37:34 as in aaaaaaaaaaaaaaargh 22:37:51 Until it starts to exhibit 'inner platform effect'... 22:37:54 er, aaaaaaaaaaaaaargs 22:38:01 no, it's only 7 args at the moment 22:38:02 oh 22:38:16 Ilari, what do you mean? 22:39:13 So many arguments as it tries to do everything that one would want to set up a task it becomes hideously complicated... 22:39:22 wait, that 7 args wasn't for the real function 22:39:26 it was a wrapper someone wrote 22:39:41 ais523, this is CreateProcessEx? 22:39:52 CreateProcessEx isn't the real function nowadays 22:39:57 they renamed it back to CreateProcess 22:40:00 which has 10 args 22:40:52 "Since Linux 2.5.49 the system call has five parameters." 22:41:06 ais523, when did they rename it back? 22:41:12 no idea 22:41:18 I don't keep up with Windows API changes 22:41:27 I'm not /that/ crazy 22:41:42 haha ok 22:42:31 since Windows 2000, apparently 22:42:34 I just looked it up 22:42:36 I see 22:43:09 while the POSIX API is clean and nice 22:48:34 no it's not 22:48:35 :\ 22:48:48 yes it is 22:49:01 tusho, the windows api isn't 22:49:11 sure the posix api got some issues too 22:49:22 like tmpfile/tempfile/mktmp 22:49:31 but compared to windows api? MUCH less issues 22:49:51 I got to know the Windows 3.1 API at one point 22:50:02 some of it was borderline sane, most of it was just insane 22:50:12 you basically have to open handles to everything before you can use it 22:50:20 and often to lock those handles as well 22:50:28 so it's open/lock/use/unlock/free 22:50:37 POSIX does that with files on occasion, for efficiency 22:50:37 oh god 22:50:42 but Windows does it with everything, more or less 22:50:47 yes you can lock files 22:50:53 but you don't have to 22:51:01 ais523, see support.h of cfunge for locked/unlocked stdio stuff 22:51:10 also, handles are like crosses between pointers and integers 22:51:16 and I know how locking works in POSIX 22:51:17 ais523, yes 22:51:19 at least, I think I do 22:51:40 IIRC a bit of the Windows API exploits the fact that pointers to ints are always even on a 16-bit system 22:51:52 by rightshifting them and using the high bit to mean something else 22:52:31 URGH 22:52:57 that's only in some contexts, though 22:53:04 even so 22:53:15 actually I think that makes it worse 22:53:22 -!- AAAAAAue4njxuz has changed nick to AAAAAA. 22:53:33 I can imagine doing that consistently being sane for a Lisp-alike 22:53:49 oh? 22:53:59 I don't think it is sane in *any* case 22:54:10 -!- AAAAAA has changed nick to AAA_AAA. 22:54:19 AnMaster: Lisp often stores type and value in the same 32-bit value 22:54:25 that's why you get 28-bit integers, for instance 22:54:35 AAA_AAA: trying to find an unused nick? 22:54:39 hm 22:55:03 ais523: am I? 22:55:11 Slereah2: i can remember when you used the nick ANantes and never talked, ever 22:55:12 I was asking 22:55:17 you were Yet Another Idler 22:55:21 :P 22:56:18 tusho: opinions on whether shifting a pointer because it's known to be even and using the remaining bit for something else is sane? 22:56:27 "trying" isn't really the word, since it implies difficulty 22:56:27 sane 22:56:36 ais523, depends on context 22:56:53 How long did it take me to go from idling here to chatting 22:57:00 Also, why isn't the pointer opaque? 22:57:10 Sgeo, huh? 22:57:19 what do you mean "opaque"? 22:57:30 AnMaster: presumably Sgeo has a semitransparent mouse pointe 22:57:32 Why are there things that look at the pointer's bits? 22:57:46 either that or it's a C-style pointer to an incomplete type 22:58:05 "because it's known to be even and using the remaining bit for something else is sane?" 22:58:06 Sgeo: to determine whether it's a pointer or an int multiplexed into the same 32-bit space 22:58:08 ais523, well I can see how the extra bit can be useful 22:58:14 AnMaster: yes 22:58:17 but I still find it a bit dirty 22:58:21 um, what? 22:58:22 maybe with a union? 22:58:23 XD 22:58:30 it was used to multiplex local 32-bit strings with handles to global strings IIRC 22:58:32 ais523: ghc 6.8 does something like that (except not shifting i think) for efficiency of pattern matching 22:58:35 oh, a union? ty AnMaster 22:58:41 * Sgeo is still confuzzled 22:58:43 Sgeo, no not at all 22:58:57 a union is *not related* 22:59:03 I just pondered how I would solve it 22:59:03 Windows has the MAKEINTDWORD macro 22:59:07 and a union wouldn't work 22:59:08 which fits an integer into a pointer 22:59:13 it was used to multiplex local 32-bit strings with handles to global strings IIRC <-- THAT isn't sane 22:59:15 at least, I think that's what it's called 22:59:17 I still don't get it 22:59:51 AnMaster: yes, I agree that that isn't sane 22:59:53 especially the handle bit 23:00:03 Windows has an unhealthy love of handles 23:00:07 indeed 23:00:17 ais523, well posix got file handles kind of 23:00:22 file descriptors 23:00:24 AnMaster: yes, they're just integers 23:00:26 but that is all 23:00:28 and they're allocated from 23:00:28 ais523, indeed 23:00:31 s/$/0/ 23:00:39 hm? 23:00:48 oh "from0"? 23:00:55 that make even less sense 23:00:55 there was a space at the end of my line 23:00:59 just you can't see it 23:01:03 ais523, I selected to check 23:01:04 but then I hit return rather than 0 23:01:09 your client stripped that space 23:01:15 AnMaster: it must have been stripped somewhere 23:01:16 mine doesn't strip it 23:01:19 Bye 23:01:20 the space is here on my client 23:01:25 so presumably it stripped on sending but not on echo 23:01:31 ais523, interesting 23:02:07 -say ##AnMaster test 23:02:07 test 23:02:11 that has the spaces on the end 23:02:13 hm 23:02:29 same with just one space 23:02:36 ais523, so seems to be on your side 23:02:42 yes, probably 23:02:44 and for that channel it is locked up 23:02:58 just not on echo, so I can't see it happening 23:03:04 (so no point in trying to join, it is just a boring test channel) 23:03:11 ais523, indeed makes no sense 23:03:39 -!- Corun has quit ("This computer has gone to sleep"). 23:04:51 ais523, anyway have you found out how to properly do the initial come from points? 23:05:22 AnMaster: no 23:05:24 still thinking 23:05:26 hm 23:05:34 with a channel full of esoprogrammers, I assumed that someone would have an idea 23:05:51 I like the bold M idea from an eso point of view but not a practical point of view 23:06:02 hey, I've thought of a nicely INTERCALly way to do it 23:06:08 ais523, what about at start of program require that some fixed position in the program contains a line with encoded way to do it? 23:06:10 how many befunge programs contain literal backspaces? 23:06:11 oh tell me! 23:06:18 ais523, ARGH! 23:06:20 INTERCAL uses overstrikes in its character set 23:06:25 written as char backspace char 23:06:29 oh my 23:06:39 ais523, how the heck do you write that in emacs? 23:06:41 an overstrike would be a nicely INTERCALLy way to do a marker that isn't in the Befunge character set 23:06:45 AnMaster: C-q C-h 23:06:54 so for instance a bookworm is V C-q C-h - 23:07:09 oh my 23:08:00 -!- Corun has joined. 23:08:17 -!- ais523 has quit (Remote closed the connection). 23:08:33 -!- ais523 has joined. 23:08:33 ... 23:08:46 did you miss anything? 23:08:49 so for instance a bookworm is V C-q C-h - 23:08:50 oh my 23:08:52 * ais523 has quit (Remote closed the connection) 23:08:52 * ais523 (n=ais523@147.188.254.115) has joined #esoteric 23:09:03 probably 23:09:05 connection troubles 23:09:07 the oh my I didn't see 23:09:10 but I saw the line before 23:09:23 you'll be glad to know that overstrikes are normally not used in modern code 23:09:23 ok sync finished ;P 23:09:27 because they have synonyms 23:09:36 ais523, oh good 23:09:53 V^H- is ? in C-INTERCAL 23:09:56 and c^H/ is $ 23:09:57 ais523, anyway for overstrike... how the heck would you store it in the program? 23:10:03 it would be 3 chars? 23:10:03 character backspace character 23:10:06 with a literal backspace 23:10:14 the parser could probably handle that 23:10:15 ais523, how would columns line up? 23:10:25 AnMaster: as if the char backspace char was one character 23:10:30 ok 23:10:35 ais523, same in editors I hope? 23:10:47 I don't know of an editor that does backspaces like that 23:10:49 at least emacs doesn't 23:10:57 most screens don't have the required fonts 23:11:00 well there is my problem 23:11:11 yes, not lining up is pretty fatal in Befunge 23:11:12 columns should line up :/ 23:11:19 indeed 23:11:26 probably it would be possible to write an emacs mode to handle it, though 23:11:33 a befunge-mode that handled overstrikes properly 23:11:33 ais523, it's like "don't even try to use unicode" 23:11:55 well, C-INTERCAL also has unicode synonyms for overstrikes which look like the original character 23:11:56 because unicode would not line up 23:12:04 and CLC-INTERCAL has latin-1 synonyms 23:12:07 hm 23:12:16 ais523, 8 bits per char really hm 23:12:45 AnMaster: well, it would be breaking the Funge specs to allow overstrikes in the original program, but then it's impossible to do the FFI without breaking the Funge specs somehow 23:12:53 COME FROM is about as feral as you can get 23:13:03 hah! 23:13:09 well how would the actual overstrike be stored in the cell 23:13:11 after loading 23:13:25 AnMaster: I guess it would be stored as one of the chars, with the other as metadata 23:13:34 hm? 23:13:37 or maybe as a 0 with metadata 23:13:44 the metadata would be stored separately from the grid 23:13:49 meta data would have to be out of band indeed 23:13:50 and manipulated with special fingerprint instructions 23:13:56 and the metadata would be right out of band 23:14:00 only used by the fingerprint 23:14:07 so cfunge just sees a normal Funge program 23:14:11 ais523, this seems like the most sane idea so far 23:14:23 but. why overstrike? why not some other non-printable char? 23:14:30 that will not cause line-up issues 23:14:39 AnMaster: yes, that makes sense too 23:14:53 ais523, there got to be some that does not cause line up issues 23:14:54 especially if we have a high-bit-set nonprintable and a backspace-based synonym, that's what INTERCAL interps normally do 23:15:03 hah ok 23:15:18 ais523, what about that char that cause a dot? 23:15:23 not sure what one that is 23:15:25 incidentally, I'm working on implementing arithmetic in INTERCAL, and I was planning to use -^H: for division 23:15:35 ais523, or some of those line chars 23:15:40 · 23:15:41 I mean used my ncurses and such 23:15:43 it's 0xB1 23:15:48 in latin-1 and Unicode 23:16:01 ais523, that one will not cause line up issue, and work in utf8? 23:16:08 as well as latin-1? 23:16:19 well, all latin1 characters are 2 bytes in utf8 23:16:24 hm ok 23:16:27 but INTERCAL's generally transmitted in latin-1 23:16:32 for CLC-INTERCAL compatibility 23:16:36 I see 23:17:03 also it isn't used for anything yet, which is good 23:17:29 I wonder if it's in EBCDIC? If it were it would be perfect 23:17:33 but that's probably too much to hope for 23:17:45 ais523, cfunge will never ever parse EBCDIC! 23:17:54 I can probably simply persuade Claudio to add it to his nonstandard EBCDIC parser 23:18:00 AnMaster: don't worry, the EBCDIC stuff's separate 23:18:03 I wrote a conversion program 23:18:12 so that C-INTERCAL could handle EBCDIC and Baudot programs 23:18:15 just like CLC-INTERCAL can 23:18:19 err 23:18:28 ais523, the C FFI can't do baudot 23:18:29 they both handle ASCII too 23:18:30 ... 23:18:33 AnMaster: only for sources 23:18:37 well, 23:18:45 I didn't mean to say that well, ignore it 23:18:51 basically it compiles Baudot into ascii 23:18:53 well gcc will certainly break on EBCDIC AND Baudot 23:19:01 AnMaster: that's why you compile it into ascii first 23:19:10 that's the only sane way to do it AFAICT 23:19:14 -!- Sgeo has quit (Connection timed out). 23:19:20 but INTERCAL's so old that it originally targetted EBCDIC 23:19:31 so we keep the compatibility in, just in case... 23:19:39 ais523, well I don't think cfunge in Baudot is an issue 23:19:46 it's not something that you have to worry about day-to-day, though 23:19:48 -!- olsner has quit ("Leaving"). 23:19:53 because none of the compiler ever sees anything but ASCII 23:20:03 or utf8 23:20:07 well, CLC-INTERCAL does text I/O in Baudot, but that's also irrelevant here because it's abstracted away 23:20:16 AnMaster: yes, or utf8 or latin1, both of which are supported 23:20:40 incidentally, there's one char which has a different meaning depending on which character set it's in, but that's fine anyway 23:20:40 hm 23:20:50 GAH 23:20:56 stop trying to give me a headache ;P 23:22:15 * oerjan wonders if Morse code could be added 23:22:26 oerjan: probably not that hard, I'd just need to modify convickt 23:22:32 but what's the Morse for a rabbit char? 23:22:36 "^H. 23:22:52 actually, bad example 23:22:52 Morse has no rabbit. 23:22:57 try bookworm instead, V^H- 23:23:07 Slereah2: I'm not very surprised, most character sets don't 23:23:14 it's expressible in punched cards, though 23:23:33 hahahah 23:23:38 but no punched card reader actually correctly reads it apart from CLC-INTERCAL's virtual punched card reader 23:23:48 Does Unicode have a rabbit? 23:23:58 AnMaster: normally we wouldn't have bothered, but the INTERCAL-72 docs mentioned it 23:24:08 Mathematica certainly has a fox! 23:24:12 Slereah2: probably not, it's a pretty obscure character 23:24:31 Mathematica certainly has a fox! <-- what? 23:24:40 ais523, isn't rabbit just a "? 23:24:54 AnMaster: Mathematica has a fox-lookinf character 23:24:58 AnMaster: no, it's a " overpunched on a . 23:24:59 Pretty angular one. 23:24:59 hm 23:25:03 ais523, ARGH 23:25:06 i wonder if it has signs for the chinese zodiac - there's a hare there isn't there? 23:25:10 Slereah2, screenshot? 23:25:17 I have one somewhere. 23:25:21 basically, it's a cross between " and . just like ! is a cross between ' and . 23:25:25 at least, in the INTERCAL meaning 23:25:29 I hope it's online 23:25:32 ' and " are for quoting 23:25:45 oh rabbit actually 23:25:49 so common expressions like '.1 $ .2' can be abbreviated to !1 $ .2' 23:26:06 it doesn't really work in this font, though, but that's a legal INTERCAL abbrevation 23:26:18 I actually used it when golfing my sig down to 120 chars for Slashdot 23:26:27 also occasionally in code, for extra fun 23:26:45 err 23:26:51 hm i guess it's just an ordinary chinese character 23:27:16 "rabbit character" Unicode gives no useful ghits 23:27:27 ghits? 23:27:31 google hits? 23:27:31 Google hits 23:27:33 k 23:27:38 http://en.wiktionary.org/wiki/%E5%85%94 23:27:47 occasionally used on Wikipedia as a slightly objective measurement of notability, despite warnings about this 23:28:05 oerjan: that looks nothing like ". though 23:29:00 oh right we got a wikipedia admin here :/ 23:29:26 AnMaster: a reasonably inactive Wikipedia admin at the moment 23:29:31 ah 23:29:36 anyway 23:30:28 hm no specific sign for the constellation of Lepus (hare) 23:30:37 I found where my Mathematica fonts are. 23:30:41 There's 28 of them :o 23:31:26 Is there a software to see what's in a font? 23:33:01 Slereah2, on linux? certainly! 23:33:05 on windows: no idea 23:34:31 Let's try google with "font viewer" 23:35:09 -!- pikhq has joined. 23:35:15 ais523, so will that dot char work? anyway normal line art chars should also work 23:35:23 as used by dialog 23:35:37 -!- pikhq has quit (Client Quit). 23:35:52 ┌ 23:35:54 like that 23:35:55 ais523, ^ 23:35:56 "Advanced Font Viewer est un programme, disposant d’une interface très conviviale, qui permettra de visualiser en simultanée toutes les polices installées sur votre système." 23:36:01 Google has many powers, people 23:36:07 -!- pikhq has joined. 23:36:08 Never underestimate it. 23:36:26 Slereah2, not in finding English results 23:36:33 I can't read that you pasted 23:36:36 Spanish? 23:36:42 French? 23:36:55 it looks like french to me 23:37:03 AnMaster: it should work 23:37:24 ais523, well except how do you type it in emacs? 23:37:31 French 23:37:58 0xB1 = 10 110 001 = C-q 2 6 1 RET 23:38:05 * oerjan found a character map in his windows, only it is called "tegnkart" because it's a norwegian windows 23:38:06 oh I see 23:38:17 oerjan, oh yes that 23:38:28 Teckenuppsättning in Swedish windows iirc 23:41:50 ah it's %SystemRoot%\system32\charmap.exe 23:42:04 -!- ais523 has quit (Remote closed the connection). 23:42:12 hope he get back 23:42:23 -!- ais523 has joined. 23:42:36 ais523, wb 23:42:39 what did you miss? 23:42:41 oerjan> ah it's %SystemRoot%\system32\charmap.exe 23:42:57 Teckenuppsättning in Swedish windows iirc 23:42:57 Teckenuppsättning in Swedish windows iirc "before" that 23:42:59 is the last thing I saw 23:43:04 Teckenuppsättning in Swedish windows iirc 23:43:04 ah it's %SystemRoot%\system32\charmap.exe 23:43:04 * ais523 has quit (Remote closed the connection) 23:43:10 hope he get back 23:43:11 * ais523 (n=ais523@147.188.254.115) has joined #esoteric 23:43:21 ais523, you are leaving soon I guess? 23:43:28 yes, I have to leave by midnight my time 23:43:32 i.e. within about 15 mins 23:43:35 ais523, why is that? 23:44:11 AnMaster: this lab closes then 23:44:16 -!- Slereah has joined. 23:44:23 ais523, and no internet at home? 23:44:39 ais523, well hope you will work on ffungi then 23:44:43 * pikhq is back in t3h irssi. . . 23:44:46 fffungi is just hard to type 23:44:49 Oh, sweet Ratpoison. 23:44:49 too hardÄ* 23:44:51 too hard* 23:45:01 pikhq, what? 23:45:06 AnMaster: yes, it's one thing to work on 23:45:08 ffffffffffungi 23:45:11 any other languages I could ffi to easily? 23:45:17 AnMaster: It's a window manager. 23:45:21 ais523: Plof. 23:46:14 what is? 23:46:27 ais523, hm what about brainfuck? 23:46:41 AnMaster: yes, that would be pretty trivial 23:46:54 pikhq: I don't know Plof 23:46:55 need to add a few new instructions of course 23:47:03 AnMaster: how do you do COME FROM in BF, anyway? 23:47:20 also, data transfer might be a problem 23:47:22 ais523, I got no idea 23:47:33 -!- timotiis has quit (Connection timed out). 23:47:36 you mean to BrainFuck or BeFunge? 23:47:42 BF is ambigious here! 23:47:58 ambiguous* 23:48:07 ais523, ^ 23:48:12 Isn't BF always Brainfuck? 23:48:12 AnMaster: brainfuck 23:48:15 hm 23:48:26 Slereah, not at all 23:48:27 I don't think BF is used as an abbreviation for befunge except in file extensions 23:48:32 *.b = brainfuck 23:48:36 *.bf = befunge 23:48:38 We should have an ESO subcomittee for it. 23:48:46 *.b98 = befunge 98 23:51:39 -!- Slereah has quit (Read error: 104 (Connection reset by peer)). 23:52:07 Slereah: I hereby declare that Befungeabbreviated shall be the appropriate abbreviation for Befunge. 23:52:42 pikhq, haha 23:52:56 ais523, got to sleep too 23:52:56 -!- Slereah has joined. 23:52:57 i suggest .bs for Befunge, Shortened 23:53:01 and happy hacking 23:53:13 oerjan, .bf is already used 23:53:29 ais523, oh and: good luck! 23:56:27 -!- Slereah2 has quit (Read error: 110 (Connection timed out)). 23:57:05 -!- ais523 has quit ("(1) DO COME FROM ".2~.2"~#1 WHILE :1 <- "'?.1$.2'~'"':1/.1$.2'~#0"$#65535'"$"'"'&.1$.2'~'#0$#65535'"$#0'~#32767$#1""). 23:57:52 -!- pikhq has quit ("leaving"). 23:58:19 -!- pikhq has joined.