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