←2008-08 2008-09 2008-10→ ↑2008 ↑all
2008-09-01
00:08:01 -!- GreaseMonkey has joined.
00:13:59 -!- lolwtfbbq has joined.
00:14:17 <lolwtfbbq> test
00:14:18 -!- lolwtfbbq has quit (Client Quit).
00:55:49 -!- funnygot has quit (Read error: 145 (Connection timed out)).
01:03:01 -!- AnMaster_ has joined.
01:03:38 -!- AnMaster has quit (Connection timed out).
01:07:28 -!- Corun has quit ("This computer has gone to sleep").
01:13:10 -!- tusho has quit.
02:00:24 -!- bsmntbombdood has joined.
02:41:35 -!- bsmntbombdood has quit.
02:41:57 -!- bsmntbombdood has joined.
02:44:32 -!- dogface has joined.
02:44:48 <dogface> Guys, you're my friends. Suppose I were to write a story.
02:46:09 <dogface> I'd have a character named Johann Algernon, and he'd be really smart, but he'd be bored most of the time. Then a girl named Grace would come into his life via deus ex machina and teach him how to be happy.
02:47:40 <dogface> And then they'd kidnap Wolfram Blitzen from Newshounds and... well, maybe not that.
02:48:12 <GreaseMonkey> wait, we're your friends now?
02:48:18 <GreaseMonkey> shit, when did that happen?!
02:48:27 <GreaseMonkey> can i see some paperwork?
02:48:48 <dogface> Well, *you're* not my friend. Just... gosh, where'd they go?
02:48:50 <dogface> :-P
02:48:58 <GreaseMonkey> optbot, any ideas?
02:48:59 <optbot> GreaseMonkey: I need to write a BF interpreter in INTERCAL still.
02:49:15 <GreaseMonkey> right, that's what your friends are doing.
02:51:21 <dogface> And in a completely unrelated manner, a funny group of characters would get together and accomplish something really cool.
02:51:43 <dogface> And it'd collapse in a comic manner so that I could continue writing.
02:52:20 <dogface> And these seemingly separate stories would be heavily allegorical, and scathing commentaries on each other. :-P
03:10:08 <dogface> And it's gotten to the point where I suddenly don't understand the comics I'm reading.
03:10:36 <dogface> So I'll stop putting "and" at the beginning of every sentence and go to bed instead.
03:10:40 <dogface> Good night, everyone.
03:33:24 -!- megatron has changed nick to moozilla.
03:45:33 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | i prefer Ligeti ;).
06:02:44 -!- Judofyr has joined.
06:40:43 -!- AnMaster_ has changed nick to AnMaster.
06:55:08 -!- psygnisf_ has joined.
06:55:08 -!- psygnisfive has quit (Read error: 104 (Connection reset by peer)).
07:34:05 -!- olsner has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:20:50 -!- oklofok has joined.
08:20:50 -!- oklopol has quit (Read error: 104 (Connection reset by peer)).
08:30:21 -!- GreaseMonkey has quit (Remote closed the connection).
08:46:49 <funktio> Deewiant: on line 707, '""oof""' should be '""oof"'"
09:34:03 -!- jix has joined.
09:35:59 -!- mtve has quit ("Reconnecting to server - dircproxy 1.0.5").
09:36:02 -!- mtve has joined.
09:45:33 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | where did you get that code?.
09:47:24 -!- kar8nga has joined.
09:57:41 -!- KingOfKarlsruhe has joined.
10:25:55 -!- kar8nga has left (?).
11:06:48 -!- KingOfKarlsruhe has quit (Remote closed the connection).
11:42:41 -!- jix has quit (Nick collision from services.).
11:42:51 -!- jix has joined.
12:24:21 -!- tusho has joined.
12:41:21 <dogface> School starts in exactly 24 hours.
12:43:07 <dogface> Three trimesters later, and boom, you're a graduate.
12:43:14 <dogface> And by you, I mean me, of course.
12:44:26 <tusho> z+4
12:46:47 -!- kar8nga has joined.
13:23:03 <dogface> I agree completely.
13:53:41 <tusho> http://www.reddit.com/r/programming/comments/6yuat/let_people_use_google_accounts_to_log_in_to_your/ 65 upvotes, 65 downvotes.
13:53:45 <tusho> A perfect 0 score
13:53:46 <tusho> .
13:59:01 <dogface> See if you can win a prize for most controversial idea ever.
13:59:17 <tusho> dogface: Nah, there've been more controversial posts on reddit.
13:59:47 <tusho> dogface: http://www.reddit.com/controversial/?t=all
13:59:59 <tusho> The most controversial reddit posts of all time.
14:00:05 <tusho> Hmm.
14:00:08 <tusho> I am #16.
14:00:09 <tusho> Not bad, not bad.
14:00:12 <oklofok> dogface: you're a graduate in a year?
14:01:20 <Deewiant> tusho: where do you see number of up/downvotes
14:01:27 <tusho> Deewiant: sidebar
14:01:30 <tusho> on the comments page
14:01:35 <Deewiant> ah, there
14:01:41 <tusho> #1 has 561 up vs 562 down
14:01:54 <Deewiant> there used to be a little "status" link or something on the comments page which showed it
14:02:08 <Deewiant> now that it's always visible I couldn't find it anymore ;-)
14:02:16 <tusho> Deewiant: yeah reddit fucked with the design a while ago
14:02:25 <tusho> it looks kind of shit now unless you turn on compact mode in prefs
14:02:34 <Deewiant> and of course I immediately did
14:02:53 <Deewiant> hmm, I've voted up 4 posts in the top 31 controversial
14:03:10 <tusho> i rarely ever upvote things
14:03:21 <Deewiant> I rarely ever downvote things
14:03:25 <Deewiant> I either upvote or don't, in general
14:03:53 <oklofok> you're a bunch of anarchists
14:04:02 <tusho> (( (int (*)(int))(*foo)(int) = { int n |
14:04:02 <tusho> { int i | return n += i; } }; ))
14:04:04 <tusho> yipes.
14:04:11 <tusho> methinks the syntax could use some whipping.
14:04:15 <Deewiant> what's that
14:04:20 <Deewiant> rather, where's that from
14:04:23 <Deewiant> I know what it is :-P
14:04:36 <tusho> Deewiant: i am playing around with a little syntax to give C functional programming shizz
14:04:39 <tusho> closures is part of that
14:04:42 <tusho> well
14:04:45 <tusho> closures + anonymous functions
14:04:47 <Deewiant> so it's just something private of yours
14:04:50 <Deewiant> hmm
14:04:54 <tusho> but yeah, that type is gnarly.
14:05:03 <tusho> (int (*)(int)) (*foo)(int)
14:05:03 <Deewiant> how about "int n, int i |" for starters
14:05:13 <tusho> Deewiant: how about no, see http://www.paulgraham.com/accgen.html
14:05:16 <tusho> The problem: Write a function foo that takes a number n and returns a function that takes a number i, and returns n incremented by i.
14:05:34 <tusho> mine does everything except his (a) requirement which is basically designed to get rid of any non-dynamically-typed langs
14:05:35 <Deewiant> tusho: it would mean the same thing, of course
14:05:44 <tusho> Deewiant: ah. i am not making c a curried language :D
14:05:50 <Deewiant> why not
14:05:59 <tusho> that would break variadics, noadics, and most pieces of c code ever
14:06:12 <tusho> also if you do func(notenoughargs); as a statement it'd suck to get it accepted
14:06:17 <tusho> because that'd return a function
14:06:23 <tusho> instead of erroring out because you didn't specify enough args
14:06:42 <tusho> anyway, the actual function body is fine I think, it's just the type that is hideous
14:06:53 <tusho> I could add an 'auto' for type inferrence ofc
14:07:05 <tusho> auto foo = { int n | { int i | return n += i } };
14:07:14 <Deewiant> hmm
14:07:31 <Deewiant> well, the thing is that C's function/function pointer syntax /is/ gnarly
14:08:12 <Deewiant> adding even just a keyword "function" or whatever would work but would break compatibility with C, of course
14:08:24 <tusho> i don't mind breaking compatibility a little
14:08:30 <tusho> but i wouldn't completely rewrite it e.g. by currying
14:10:45 -!- Tritonio_ has joined.
14:13:27 <Deewiant> in D that'd be "int delegate(int) delegate(int) foo = (int n) { return (int i) { return n += i; } };"
14:13:37 <Deewiant> plus a semiclon after the next-to-last }
14:13:42 <Deewiant> s/clon/colon/
14:13:48 <oklofok> for a second there i thought "in D" was some elaborate smiley
14:14:28 <Deewiant> and with auto, "auto foo = (int n) { return (int i) { return n += i; }; };"
14:15:14 <tusho> Deewiant: yeah, I prefer the smalltalky {x | y} though
14:15:23 <tusho> also the delegate syntax has always confused me
14:15:25 <tusho> imo
14:15:25 <tusho> hmm
14:15:28 <tusho> maybe:
14:15:39 <Deewiant> it's just <return type> delegate <parameters> :-P
14:16:01 <tusho> ^(params)(return)
14:16:02 <Deewiant> you could of course use "function" instead if you prefer that to the odd term "delegate"
14:16:08 <tusho> ah, how about (params)^(return)
14:16:20 <Deewiant> hmm
14:16:20 <tusho> (int)^((int)^int)
14:16:33 <tusho> i mean, the type of the function is difficult to comprehend anyway, so it'll never be perfect
14:16:42 <tusho> i think that's pretty decent
14:17:25 <Deewiant> are the lexical and parsing phases separate in C compilation, like they are not in C++?
14:17:35 <Deewiant> I forget the short term to describe this kind of grammar
14:18:37 <psygnisf_> deewiant: wha?
14:18:39 <Deewiant> context-sensitive?
14:18:47 -!- psygnisf_ has changed nick to psygnisfive.
14:19:27 <psygnisfive> separating lexical recognition from non-lexical stuff is just a different way of parsing, it has nothing to do with the language
14:19:30 <tusho> Deewiant: yea, they are
14:19:35 <tusho> psygnisfive: no, the c standard specifies it
14:19:41 <psygnisfive> i understand that
14:19:43 <Deewiant> like, in that case you can't always parse "X ^ Y" to "xor X Y", it's "if X is a type then function pointer... else xor X Y"
14:19:48 <psygnisfive> but it has nothing to do with the grammar or the language
14:19:51 <psygnisfive> its a matter of parsing
14:20:06 <tusho> psygnisfive: the c standard defines the language c. the c standard specifies that they must be seperate.
14:20:07 <Deewiant> well basically of course you can implement it all in one clump if you want to :-P
14:20:10 <tusho> therefore it has something to do with the language.
14:20:19 <Deewiant> but it /is/ a property of the grammar
14:20:21 <tusho> Deewiant: ah, that's true .... wait, couldn't I just use ->?
14:20:25 <psygnisfive> tusho: i understand that the standard specifies this but theres no essential difference
14:20:29 <tusho> (int) -> ((int) -> int)
14:20:33 <tusho> psygnisfive: ok ,yes, you can implement it either way
14:20:38 <tusho> but you have to act as if you used two steps
14:20:39 <psygnisfive> deewiant: its not a property of the grammar
14:20:47 <psygnisfive> ill show you precisely why too
14:20:47 <Deewiant> tusho: no, I don't think so, since "(x) -> (y)" is valid, no?
14:20:57 <tusho> Deewiant: how is that valid in c
14:21:03 <tusho> minus greater than?
14:21:05 <Deewiant> tusho: x is a pointer to a struct
14:21:09 <tusho> oh
14:21:09 <tusho> duh
14:21:11 <psygnisfive> the lexing stage is the collection of terminal symbols, potentially infinite in size, into labels
14:21:14 <tusho> the spaces threw me off
14:21:18 <tusho> Deewiant: but this is a type
14:21:21 <tusho> you can't do foo->bar in a type
14:21:28 <Deewiant> tusho: I'm not sure if ->(y) is valid though, it might have to be ->y (no brackets)
14:21:36 <psygnisfive> e.g. strings like "blarg" become 'terminals' of type <string> or whatever you want to call it
14:22:04 <psygnisfive> by using some regular expression to recognize the string.
14:22:11 <Deewiant> tusho: no, but it's still context sensitive because you can't just see "identifier -> identifier" and decide what it is
14:22:23 <psygnisfive> this basically is a rule <string> ::= /.../
14:22:34 <Deewiant> http://en.wikipedia.org/wiki/Context-free_grammar
14:22:45 <tusho> Deewiant: well duh, c has tons of ambiguities like that :D
14:22:48 <psygnisfive> now whether or not all those rules are applied beforehand or not is irrelevant to the grammar/language
14:23:26 <psygnisfive> deewiant how is C's grammar context sensitive?
14:23:29 <Deewiant> tusho: I'm not sure if this is what I want to be talking about, but it's a property the grammar of D has and that of C++ doesn't :-P
14:23:41 <Deewiant> psygnisfive: I didn't say it was
14:23:46 <Deewiant> I asked whether it was
14:23:53 <psygnisfive> oh. probably not
14:23:55 <Deewiant> C++'s is
14:23:59 <psygnisfive> i doubt that.
14:24:07 <tusho> C++ is not context free
14:24:07 <psygnisfive> CS grammars are hard to parse, in general
14:24:12 <psygnisfive> How not?
14:24:14 <Deewiant> C++ is hard to parse
14:24:17 <psygnisfive> :P
14:24:18 <tusho> C++ is turing complete to parse
14:24:20 <Deewiant> that's one big criticism of it
14:24:21 <tusho> due to templates
14:24:24 <tusho> look it up, bitchez
14:24:38 <psygnisfive> i seriously doubt that C++ is unrestricted
14:25:01 <psygnisfive> i have to go. ill ask you about this later. see ya.
14:25:32 <oklofok> well the type system is tc, so most likely you can do something impossible to parse with the thingie<thingie vs. template<...> ambiguity
14:25:41 <Deewiant> http://groups.google.com/group/comp.lang.c++/browse_thread/thread/93b9995c660a443b/7aa3c7a30ec301d4
14:26:07 <Deewiant> ah yes, the canonical example
14:26:10 <Deewiant> Mytype MyName(MyValue);
14:27:05 <Deewiant> could be a number of things in C++, from a function declaration to initializing a class instance
14:29:14 <Deewiant> the idea of context-freeness is that a given piece of code, say "identifier -> identifier", can parse to only one thing
14:30:08 <Deewiant> in this case, something like "expression -> struct-member-dereference -> (identifier, identifier)" I guess
14:30:25 <tusho> Indeed
14:30:33 <tusho> Deewiant: but, in this case
14:30:35 <tusho> it's not ambiguous
14:30:40 <tusho> as the type doesn't clash with the expr
14:30:57 -!- psygnisfive has quit (Read error: 60 (Operation timed out)).
14:30:58 <Deewiant> what do you mean
14:32:25 <Deewiant> given "x -> y", x and/or y might be typedefs so you can't know whether that's a function literal in your syntax or (*x).y
14:37:00 <dogface> tusho, I think yours is the most controversial thing that's actually an idea.
14:37:16 <tusho> dogface: :D
14:37:34 <tusho> Deewiant: wut
14:37:38 <tusho> give me an ambiguous expression
14:37:42 <Deewiant> tusho: x -> y
14:37:49 <tusho> Deewiant: yes, that's an expression
14:37:50 <tusho> not a type
14:37:56 <tusho> (x -> y) foo;
14:37:57 <tusho> vs
14:38:00 <tusho> foo = (x -> y)
14:38:08 <dogface> The heads of all pages that are in the imperative: 1. vote 2. vote 4. vote 7. vote 14. let
14:38:09 <Deewiant> hmmm
14:38:10 <tusho> totally different contexts, you can just have a seperate rule for type with that in
14:38:18 <Deewiant> you may be right, let me think
14:38:21 <tusho> and let that only appear in the expression thing
14:38:41 <Deewiant> of course this isn't actually a problem anyway
14:38:45 <Deewiant> now that I think about it
14:38:49 <tusho> :D
14:38:52 <tusho> i like to hear that
14:39:03 <Deewiant> since you can just parse it as struct-member-deference-expression, since it has the same exact syntax
14:39:09 <Deewiant> and worry about it in the semantics phase
14:39:25 <tusho> Deewiant: even then you can still handle it fine
14:39:30 <tusho> beacues x->y is always a struct thing in an expr
14:39:33 <tusho> and always a function in a type
14:39:36 <tusho> never overlaps
14:39:42 <Deewiant> yeah, I didn't mean "worry" as in "it's a problem" :-)
14:39:46 <tusho> :D
14:39:57 <tusho> ok, so, glad we've got that sorted out
14:40:01 <Deewiant> there's still an addition to the grammar somewhere
14:40:14 <tusho> now i'd like a nice syntax for higher-order stuffs
14:40:14 <Deewiant> but it shouldn't cause any additional ambiguities
14:40:16 <tusho> that is
14:40:21 <tusho> foo(bar, {...})
14:40:23 <tusho> is not very pretty
14:40:26 <tusho> foo (bar) { ... } would be nicer
14:40:30 <tusho> I guess I can just specialcase it
14:40:38 <tusho> foo (x; y; z) { quux }
14:40:48 <tusho> where foo is a function taking a block as all its args
14:40:54 <tusho> is foo({x},{y},{z},{quux})
14:40:56 <tusho> i guess?
14:41:00 <tusho> then you could implement for
14:41:42 <tusho> Deewiant: any suggestions for a nicer way to do that?
14:41:44 <tusho> seems a bit special casey
14:42:01 <tusho> in fact
14:42:04 <tusho> you can't implement for with that
14:42:09 <tusho> {int i=0;}, {i = 5}
14:42:11 <tusho> doesn't make sense
14:43:15 <Deewiant> hmm, so what exactly do you want
14:43:26 <Deewiant> a syntax for calling a function with a function literal as a parameter/
14:43:30 <Deewiant> s:/:?:
14:44:38 <tusho> Deewiant: i just want something that lets me define control structures and such and then use them with a natural-looking syntax
14:44:40 <tusho> foo(bar, {
14:44:41 <tusho> ...
14:44:42 <tusho> });
14:44:44 <tusho> is kind of ugly
14:44:54 <Deewiant> so essentially, what I said
14:45:05 <Deewiant> and well
14:45:13 <Deewiant> foo (bar) { } should work
14:45:19 <Deewiant> and you could implement for with it
14:45:38 <Deewiant> just specify that bar is passed as a reference into {}
14:45:51 <Deewiant> (pointer, since this is C)
14:45:53 <tusho> Deewiant: show me how to implement for
14:46:00 <tusho> i don't think you can do it
14:46:08 <tusho> for (int i = 0; i < 5; i++) { printf("%i\n", i); }
14:46:11 <tusho> that is what it must run
14:46:47 <Deewiant> well, the trickier thing is that in this case it must take a variable definition as a function parameter
14:47:11 <Deewiant> so I guess the closest you can get is
14:47:26 <Deewiant> int i = 0; for (i; i < 5; i++) { ... }
14:47:28 <Deewiant> or something
14:47:52 <Deewiant> possibly with *i < 5 and (*i)++ instead
14:47:54 <tusho> well yea, exactly
14:47:58 <tusho> that is the problem I want to solve
14:47:58 <tusho> :P
14:48:04 <Deewiant> can't be done
14:48:08 <Deewiant> not with just that, anyway
14:48:31 <tusho> Deewiant: not with just that <- i'm figuring out what to replace that with
14:48:33 <Deewiant> you need some kind of macro/template system or something
14:48:42 <tusho> i think i could possibly get away with less
14:48:45 <Deewiant> or if you want to be less general, something less general
14:48:47 <Deewiant> but I'm not sure what
14:54:49 <tusho> So.
14:55:01 <tusho> I had the code to MSPaint for some early version of win2k a while back.
14:55:02 <tusho> Discuss.
14:55:31 <dogface> How did you get it?
14:55:40 <tusho> A friend had it and gave it to me. :P
14:55:47 <tusho> I don't know how they got it.
14:56:01 <tusho> Unfortunately, it required a makefile from a few directories up to build, so I couldn't. (Didn't wanna fuck with compiler settings until it worked.)
14:56:05 <tusho> I don't think I have it any more.
14:57:44 <Deewiant> there was that Win2000 source code leak
14:57:47 <Deewiant> which is probably where it's from
14:57:52 <tusho> i don't think so
14:58:00 <tusho> i've read articles about it, i don't think there were many apps in it
14:58:05 <tusho> mostly socket code and some shell stuff and crap
14:58:15 <tusho> more plausable is from the nt4 leak
14:58:18 <tusho> but i'm not certain
14:58:21 <Deewiant> I think it did have some apps, such as paint and minesweeper or some such
14:58:27 <Deewiant> but I don't know
14:58:29 <tusho> Deewiant: can it still be obtained?
14:58:34 <tusho> or has it been cracked down on
14:58:35 <Deewiant> on P2P networks, sure
14:58:41 <tusho> yea, but I mean ... not gnutella
14:58:42 <tusho> :)
14:58:43 <Deewiant> you can't remove something from the internet
14:58:49 <tusho> ofc
14:58:53 <tusho> but you can remove it from decent places
14:58:55 <Deewiant> I don't know, google around
14:58:56 * tusho checks torrents
14:59:23 <tusho> mmph.
14:59:25 <tusho> just crap results
14:59:29 <tusho> oh well
15:26:12 <tusho> http://groups.google.com/group/jquery-dev/browse_thread/thread/8411d58c4d66b934
15:26:16 <tusho> *g*
15:28:16 <dogface> The problem with voting comments up and down is that it kind of assumes everyone likes the same thing.
15:28:37 <tusho> dogface: The point of up/downvoting comments on reddit is meant to be: downvote disruptive, useless etc
15:28:40 <tusho> but upvote worthful comments
15:28:42 <tusho> even if you disagree
15:28:43 <tusho> the problem is
15:28:47 <tusho> for submissions
15:28:53 <tusho> you're meant to upvote what you like, downvote what you don't
15:28:58 <tusho> so they use the exact same UI for very different things
15:29:09 <tusho> so it ends up that the up/down arrows on comments are misused.
15:31:17 <tusho> http://www.courageunfettered.com/stuf/mozillapics/ o_x
15:45:34 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | Like Perl ;).
16:05:25 <oklofok> optbot!
16:05:26 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | Let's try that again.
16:05:29 <oklofok> okay
16:05:30 <oklofok> optbot!
16:05:31 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | my sentence was a bit obscure, gotta admit..
16:09:24 <fizzie> optbot: What, now you're speaking with topic changes?
16:09:24 <optbot> fizzie: I'll just put the tape display on.
16:09:34 <fizzie> optbot: Uh... what will that do?
16:09:35 <optbot> fizzie: your girlfriend likes my voice :(
16:10:05 <fizzie> optbot: Really? She never said anything about that to me...
16:10:05 <optbot> fizzie: ~exec sys.stdout("I AM NOT bsmnt_bot")
16:10:25 <fizzie> optbot: I know you're not bsmnt_bot; you two don't even look that much alike.
16:10:26 <optbot> fizzie: replace if_zero with its brainfuck equivalent...
16:18:10 <tusho> fizzie: you like these bots, don't you
16:19:02 <Deewiant> optbot: don't you?
16:19:03 <optbot> Deewiant: and what n-nary
16:19:04 <fizzie> Well, yes. Sure. They're so friendly.
16:19:13 <Deewiant> optbot: this n-nary
16:19:14 <optbot> Deewiant: my io will have a sugar on top of it
16:19:22 <Deewiant> optbot: mine will have a salt
16:19:23 <optbot> Deewiant: if yes a sec
16:19:37 <tusho> fizzie: it's funny, I never thought something could make optbot look sane
16:19:38 <optbot> tusho: [pigs.canFly].whileTrue["hello world".print!]
16:19:40 <tusho> then I heard fungot
16:19:42 <fungot> tusho: ctcp is such a metaclass as a class entirely in l no use of recursion on the java fnord faces when you say " structurally equal", and i'm pretty sure she heard it mentioned on the site it does...
16:20:39 <Deewiant> ^echo optbot
16:20:39 <fungot> optbot optbot
16:20:40 <optbot> Deewiant: x = 1
16:20:40 <optbot> fungot: so ignoring that tusho sounds like hes on helium
16:20:41 <fungot> optbot: so there.))
16:20:42 <optbot> fungot: other way around
16:20:43 <fungot> optbot: sounds like a book and start writing the first 1l quine? :p. ugh i need to push fnord
16:20:43 <optbot> fungot: šÌ›ÌœÌÌžÌŸÌ ̴̵̶̷̸̡̢̧̨̣̤̥̦̩̪̫̬̭̮̯̰̱̲̳̹̺̻̼̽̾̿̀́͂̓̈́ͅÍ
16:20:45 <fungot> optbot: mikä on approaching ja mikä on peculiar. anteeks että olen tyhmä. tai no fnord minä. c++ is plain bad. thanks. :) but... it's x-treme!
16:20:46 <optbot> fungot: the id list will work the same here
16:20:47 <fungot> optbot: ( i could only find one book on general c, and wrapping is not so much
16:20:47 <optbot> fungot: Some people associate colors with letters, or tastes with sounds, or moods with textures, or some such.
16:20:50 <Deewiant> wow, what was that
16:21:03 <tusho> Deewiant: what was what
16:21:12 <tusho> you made optbot and fungot have a conversation
16:21:13 <optbot> tusho: strange
16:21:13 <fungot> tusho: agreed. originally, this wiki was to be expected. zaphod is lacking a head. some unfamiliar ( or simply unrecognizable) things in a interpreter for an arbitrary bf program? :) htmlprag?' questions.
16:21:15 <Deewiant> tusho: optbot's binary-looking scrawl
16:21:16 <optbot> Deewiant:
16:21:23 <tusho> Deewiant: japanese or something
16:21:23 <Deewiant> and that :-P
16:21:24 <tusho> presumably
16:21:28 <tusho> in the wrong encoding
16:21:31 <Deewiant> optbot: please, UTF-8 only here
16:21:31 <optbot> Deewiant: there's a perfectly good mailing list to which a bunch of people are already subscribed... :)
16:21:44 <Deewiant> tusho: where did it get it from
16:21:52 <tusho> Deewiant: a log somewhere.
16:22:03 <Deewiant> where does it get its data from in general
16:22:19 <tusho> every #esoteric log from the tunes.org sources, and fizzie's old personal logs
16:22:24 <tusho> which span from sometime in 2002 to when the tunes.org ones start
16:24:15 <Deewiant> hmm
16:24:22 <Deewiant> anybody feel like grepping for that misencoded snippet? ;-)
16:24:38 <tusho> Deewiant: sure, sec
16:25:23 <tusho> No results.
16:25:28 <tusho> It doesn't seem to enter properly, obviously.
16:25:31 <tusho> (Via my terminal)
16:25:35 <Deewiant> no doubt
16:25:44 <tusho> Deewiant:
16:25:48 <Deewiant> so can you do a binary grep
16:25:50 <tusho> put a file containing that quote in a pastebin
16:25:54 <tusho> and i'll wget it from rutian
16:25:58 <Deewiant> for, say, 0xc5 0xa1
16:26:13 <tusho> just do what i said :P
16:26:41 <Deewiant> it'd be easier for you to just hex-edit a file :-P
16:26:55 <tusho> Rutian is sparse on tools.
16:27:01 <Deewiant> but, iki.fi/deewiant/asdf.txt
16:28:33 <Deewiant> and what is "rutian"
16:29:40 <tusho> the server of eso-std.org, optbot, etc
16:29:41 <optbot> tusho: good night
16:29:48 <tusho> optbot sleeps?
16:29:49 <optbot> tusho: whatever.
16:29:58 <dogface> optbot is a despicable liar.
16:29:59 <optbot> dogface: see http://www.wikicities.com/wiki/Database_download for info about backups (it'd be about as complicated as wget and a cron job)
16:30:32 <tusho> $ grep "`cat asdf.txt`" *
16:30:32 <tusho> asdf.txt:šÌ›ÌœÌ]]ÌžÌŸÌ Ì¡Ì¢Ì£Ì¤Ì¥Ì¦Ì§Ì¨Ì©ÌªÌ«Ì¬Ì­Ì®Ì¯Ì°Ì±Ì²Ì³Ì´ÌµÌ¶Ì·Ì¸Ì¹ÌºÌ»Ì¼Ì½Ì¾Ì¿Í€ÍAA͂̓̈́ͅÍ
16:30:33 <tusho> *g*
16:32:37 <Deewiant> tusho: perl -lne 'BEGIN{$/=\1024} print "hit byte ", ($.-1) * 1024 + $-[0] if /\xc5\xa1/'
16:32:43 <tusho> Deewiant: if i gave you a rutian account would you figure it out ;)
16:32:45 <tusho> oh, that coul dwork.
16:33:15 <tusho> okay, it hits a lot of bytes but that's about it :D
16:33:29 <Deewiant> well, which file :-P
16:33:35 <tusho> it doesn't say
16:33:36 <tusho> :D
16:33:41 <Deewiant> >_<
16:33:41 <tusho> i just did perl -lne 'BEGIN{$/=\1024} print "hit byte ", ($.-1) * 1024 + $-[0] if /\xc5\xa1/' *
16:33:46 * tusho refines
16:33:46 <Deewiant> don't do that :-P
16:33:49 <tusho> for x in * ....
16:34:26 <Deewiant> for instance
16:34:35 <tusho> hooray, almost searched
16:35:02 <tusho> 06.03.10
16:35:02 <tusho> hit byte 7279
16:35:06 <tusho> 06.06.07
16:35:06 <tusho> hit byte 6464
16:35:10 <tusho> 07.06.27
16:35:10 <tusho> hit byte 19677
16:35:13 <tusho> 07.12.03
16:35:14 <tusho> hit byte 9544
16:35:18 <tusho> 08.04.27
16:35:18 <tusho> hit byte 49873
16:35:19 <tusho> hit byte 50206
16:35:24 <tusho> that's it
16:35:54 <Deewiant> so check them out :-P
16:36:00 <tusho> i am
16:36:00 <tusho> :P
16:40:38 <tusho> Deewiant: ah.
16:40:42 <tusho> 09:38:59 <ais523> ·?~@?~A?~B?~C?~D?~E?~F?~G?~H?~I?~J?~K?~L?~M?~N?~O?~P?~Q?~R??~T?~U?~V?~W?~X?~Y?~Z?~[?~\?~]?~^?~_?| ̴̡̢̧̨̣̤̥̦̩̪̫̬̭̮̯̰̱̲̳??
16:40:42 <tusho> ?̶̷̸̹̺̻̼̽̾̿?~@?~A?~B?~C?~D?~E?| ͡.·?~@?~A?~B?~C?~D?~E?~F?~G?~H?~I?~JJ
16:40:43 <tusho> ?~K?~L?~M?~N?~O?~P?~Q?~R?~S?~T?~U?~V?~W?~X?~Y?~Z?~[?~\?~]?~^?~_?| ̡̢̧̣̤̥̦?
16:40:43 <tusho> 09:39:10 <ehird> ?~R?~S?~T?~U?~V?~W?~X?~Y?~Z ?~R?~S?~T?~U?~V?~W?~X?~Y?~Z?~R?~S?T?~U?~V?~W?~X?~Y?~Z?~R?~S?~T?~U?~V?~W?~X?~Y?~Z?~R?~S?~T?~U?~V?~W?~X?~Y?~Z?~R?~T?~U?~V?~W?~X?~Y?~Z?~R?~S?~T?~U?~V?~W?~X?~Y?~Z?~R?~S?~T?~U?~V?~W?~X?~Y?~Z?~R??~T?~U?~V?~W?~X?~Y?~Z?~R?~S?~T?~U?~V?~W?~X?~Y?~Z?~R?~S?~T?~U?~V?~W?~X?~Y?~Z?~R?S?~T?~U?~V?~W?~X?~Y?~Z?~R?~S?~T?~U?~V?~W?~X?~Y?~Z?~R?~S?~T?~U?~V?~W?~X?~Y?~Z?~S?~T?~U?~V?~W?~X?~Y?~Z?~R?~S?~T?~U?~V?~W?~X?~Y?~Z?~R?~S?~T?~U?~V?~W?~X?
16:40:49 <tusho> Tons of jewnicode bombs.
16:41:22 <Deewiant> heh
16:41:32 <Deewiant> so it's all your fault :-P
16:41:39 <tusho> Hey, ais did it first!
16:41:43 <tusho> Then I played with it.
16:41:45 -!- Judofyr has quit (Read error: 104 (Connection reset by peer)).
16:42:03 -!- Judofyr has joined.
16:42:07 -!- oklopol has joined.
16:42:08 -!- oklofok has quit (Read error: 104 (Connection reset by peer)).
16:49:14 <tusho> 14:09:54 --- nick: ehird -> ehirdclone
16:49:14 <tusho> 14:10:03 --- nick: ehirdclone -> ehirdc
16:49:15 <tusho> 14:10:31 --- nick: ais523 -> ehird
16:49:15 <tusho> 14:10:40 --- nick: ehird -> ais523
16:49:15 <tusho> 14:10:58 --- nick: ehirdc -> ehird
16:49:15 <tusho> 14:12:02 --- nick: ais523 -> ehirdc
16:49:17 <tusho> 14:12:07 --- nick: ehird -> AnMasterr
16:49:19 <tusho> 14:12:07 --- nick: ehirdc -> ehirdclone
16:49:21 <tusho> 14:12:13 --- nick: AnMasterr -> ehirdc
16:49:23 <tusho> 14:12:29 --- nick: ehirdclone -> ais523
16:49:25 <tusho> 14:12:34 --- nick: ehirdc -> ehirdclone
16:49:27 <tusho> 14:12:39 --- nick: ehirdclone -> ehird
16:49:29 <tusho> 14:12:49 --- nick: Sgeo -> Sgea
16:49:31 <tusho> 14:13:00 --- nick: Sgea -> Sgee
16:49:33 <tusho> 14:13:11 --- nick: ehird -> Sgeeee
16:49:35 <tusho> 14:13:14 --- nick: Sgeeee -> ehirdc
16:49:37 <tusho> 14:13:24 --- nick: Sgee -> Sgei
16:49:39 <tusho> 14:13:38 --- nick: Sgei -> Sgeu
16:49:41 <tusho> 14:14:01 --- nick: Sgeu -> Sgeo
16:49:45 <Judofyr> woot?
16:50:00 <tusho> Judofyr: that's from the logs
16:50:14 <Judofyr> lol
17:05:18 <dogface> Good nick nobody did a /nick ihope.
17:05:34 <dogface> s/nick/thing/
17:21:05 -!- Corun has joined.
17:32:56 -!- Hiato has joined.
17:38:58 -!- oklopol has quit (Read error: 104 (Connection reset by peer)).
17:39:09 -!- oklopol has joined.
17:45:59 -!- ais523 has joined.
17:46:04 <ais523> hi tusho
17:46:12 <ais523> hi optbot, hi fungot
17:46:13 <fungot> ais523: hm. no comments on " fnord". right. i'm not doing anything to decrease the number of variables
17:46:13 <optbot> ais523: yes
17:47:03 <fizzie> Neh, optbot makes my poor fungot look all deranged-like.
17:47:04 <optbot> fizzie: (force X)
17:47:04 <fungot> fizzie: i had my computer manufacturer replace my hard drive blew up, and an auxiliary function
17:47:29 <ais523> I feel really foolish, anyway
17:47:44 <fizzie> Because of?
17:47:44 <ais523> I'm on Windows at the moment because I remembered to bring my laptop here but forgot to bring its power supply
17:47:48 <pikhq> I freaking love ignore.
17:48:20 <ais523> pikhq: yes, it lets everyone see just the bits of the channel they like, so it helps everyone as long as they're not offended by being ignored
17:48:32 * pikhq nods
17:48:42 <fizzie> It would be pretty hard to offend the bots, I think.
17:48:45 <pikhq> Hell of a lot better than saying "Shut the fuck up, fungot!"
17:48:46 <fungot> pikhq: ( that kela can't complain about pay... i write programs for a new language, i would
17:48:57 <AnMaster> hi ais523
17:49:05 <ais523> hi AnMaster
17:49:31 <AnMaster> ais523, no need for TCP/IP support directly in intercal since cfunge have SOCK since about a week
17:49:33 <AnMaster> ;)
17:50:51 <AnMaster> fizzie, there is a bug in fungot I think
17:50:53 <fungot> AnMaster: hmmmmm... thats not going to refer me to a mistake. i still haven't gotten all that excited by emacs, but cmuscheme.el works well enough to need a new toplevel with threads already loaded? ie, you can
17:51:03 <AnMaster> it didn't detect it lost connection
17:51:20 <AnMaster> RAW >>> PING :orwell.freenode.net <<< *long ago* was last line
17:51:32 <AnMaster> yet it detects QUIT fine
17:51:39 <AnMaster> but not timeout, I wonder why
17:51:55 <ais523> AnMaster: I'll probably add it anyway for CLC-INTERCAL compatibility, as an expansion library
17:52:00 <AnMaster> ok
17:52:32 <AnMaster> fizzie, could be a cfunge bug of course, but I think I reflect if anything returns an error
17:52:48 <AnMaster> ais523, good news btw: cfunge compiles under ICC
17:52:57 <ais523> ICC?
17:53:06 <AnMaster> Intel's C Compiler
17:53:10 <ais523> ah
17:53:13 <AnMaster> well C++
17:53:14 <ais523> AnMaster: I've had an idea
17:53:15 <AnMaster> but does C too
17:53:31 <ais523> how easy would it be to compile cfunge under a non-POSIX C99 implementation?
17:53:43 <ais523> or one which, in fact, had basically no standard library
17:53:53 <ais523> freestanding + I/O
17:53:57 <AnMaster> ais523, hm well you need to mess up loading code since I use mmap() to make parsing code simpler
17:54:18 <AnMaster> oh and you have to drop SOCK, SCKE, PERL and a few other such fingerprints
17:54:24 <ais523> well, yes
17:54:28 <ais523> also mmap wouldn't be a problem
17:54:29 <AnMaster> mess with y command to push environment in some other way
17:54:36 <ais523> because I'm planning to implement I/O with a reverse mmap, so to speak
17:54:43 <AnMaster> reverse mmap!?
17:54:48 <ais523> files are kept in memory because there's nowhere else to keep them
17:54:54 <AnMaster> ais523, anyway FILE uses streams
17:55:06 <AnMaster> ais523, apart from that, there may be more
17:55:11 <ais523> so streams are harder than mmap, but still possible and in fact quite easy
17:55:19 <ais523> (you just need a couple of pointers inside the FILE structure)
17:55:23 <fizzie> AnMaster: I should be catching most places that reflect, but not all.
17:55:23 <AnMaster> I haven't really studied free-standing ones
17:55:33 <AnMaster> ais523, it uses streams for o too
17:55:45 <AnMaster> fizzie, well no idea where it locked up, didn't run it under a debugger
17:55:51 <ais523> AnMaster: you get no standard functions at all, and only the header files which are nothing but macros
17:56:11 <AnMaster> ais523, you would need to provide malloc/calloc/free/strdup and co.
17:56:12 <ais523> so that's limits.h, iso646.h, float.h, and one other which I can't remember right now
17:56:24 <ais523> AnMaster: that shouldn't be too hard, everyone uses malloc
17:56:25 <AnMaster> and some other
17:56:32 <ais523> and strdup is trivial to write once you've got malloc
17:56:36 <tusho> HI ais523
17:56:43 <AnMaster> ais523, and there are probably a lot more, for example math.h stuff
17:56:44 <ais523> so I'm going to have to implement malloc somehow
17:56:45 <ais523> hi tusho
17:56:47 <AnMaster> I use log() for some stuff
17:56:57 <AnMaster> sin()/cos() and so on
17:57:02 <ais523> AnMaster: ugh, looks like I'm going to have to get a math library from somewhere then
17:57:07 <ais523> I'm using floating point emulation as-is
17:57:18 <ais523> which is a pain because of all the bitwise operations
17:57:38 <AnMaster> ais523, well I use sinf() and sinl() they are C99, but if you don't mind always using double you could just replace the f/l versions with the plain ones
17:57:52 <AnMaster> ais523, think of fingerprints like FPDP FPSP
17:57:59 <AnMaster> oh they assume float is 32-bit and double 64-bit
17:58:03 <ais523> AnMaster: float is easier than double, or at least faster
17:58:07 <AnMaster> I think they will crap out *badly* if that isn't true
17:58:10 <ais523> and I went and stuck with usual 32-bit assumptions for the compiler
17:58:28 <AnMaster> ais523, hm what else, I use an xml writing library, but it is included in lib, there are a few more things in lib
17:58:31 <AnMaster> not 100% of them
17:58:33 <ais523> char=8, short=16, int=32, long=32, long long=64, float=32, double=64
17:58:34 <tusho> ais523: the bf compiler?
17:58:35 <tusho> :P
17:58:39 <ais523> tusho: tes
17:58:40 <AnMaster> ais523, anyway I use a lot more standard routines
17:58:41 <ais523> s/tes/yes/
17:58:48 <ais523> AnMaster: not very easy then
17:58:49 <tusho> ais523: get newlib working on it
17:58:50 <tusho> or similar
17:58:53 <AnMaster> ais523, I guess
17:58:57 <ais523> however it would probably be easiest to use something like newlib
17:58:59 <AnMaster> ais523, I haven't really looked
17:58:59 <tusho> just have to port the asm bits and such
17:59:01 <ais523> tusho: ha, snap
17:59:06 <tusho> ais523: :)
17:59:09 <tusho> wait
17:59:18 <tusho> ais523: i has idea
17:59:28 <tusho> http://sourceforge.net/projects/pdclib try this perhaps
17:59:29 <AnMaster> ais523, I have assumed POSIX-2001 and C99 when I coded
17:59:33 <tusho> when i did os dev that seemed the best choice
17:59:33 <ais523> anyway, I use the nonstandard long double = 64 (and thus a synonym for double) because the C standard says I'm allowed to
17:59:35 <tusho> it's c99
17:59:41 <tusho> and very easy to modify to get working on your stuff
17:59:52 <tusho> i.e. it's designed that you can configure it and perhaps change a few bits and it'll work
18:00:03 <AnMaster> ais523, well that works ok, I only use long double in a few cases but non where size matters
18:00:07 <ais523> ah, public domain will be useful as this project is such a mess of licences at the moment
18:00:10 <AnMaster> it would be 80 bits on x86 anyway
18:00:21 <tusho> ais523: hasn't had a release since 2006 i think maybe there have been checkins since then though
18:00:23 <tusho> so get the svn
18:00:27 <tusho> still, it's a good basis if nothing else
18:00:27 <AnMaster> ais523,
18:00:28 <AnMaster> #ifndef __STDC_IEC_559__
18:00:28 <AnMaster> # warning "cfunge requires the floating point support to conform to the IEC 60559 floating-point standard in order to work. Hoping this will work anyway...";
18:00:28 <AnMaster> #endif
18:00:31 <tusho> the code is very clear and clean
18:00:39 <ais523> I might just make the whole thing GPL3+ though, that would be legal and simplify matters
18:00:40 <AnMaster> I assume your stuff with spew warnings
18:00:46 <tusho> ais523: plz gpl2+
18:00:54 <AnMaster> ais523, cfunge is GPL3+
18:00:55 <AnMaster> already
18:00:56 <ais523> tusho: the version of gcc it's based on is GPL3+
18:01:01 <tusho> ais523: gah
18:01:06 <ais523> and you seriously don't want me to rewrite gcc...
18:01:07 <tusho> does that mean you can't make it gpl2
18:01:11 <ais523> tusho: yes
18:01:13 <tusho> stupid gcc.
18:01:19 * tusho stabs richard stallman
18:01:22 <Deewiant> stupid gpl3 :-P
18:01:27 <AnMaster> what about llvm backend?
18:01:31 <Deewiant> BSD
18:01:33 <Deewiant> ++
18:01:40 <tusho> Deewiant: totally.
18:01:45 <tusho> i don't mind gpl2, really
18:01:47 <ais523> tusho: why are you so upset with gpl3?
18:01:58 <tusho> ais523: it makes the gpl more gply :)
18:02:01 <AnMaster> BSD means companies can reuse code without giving anything back
18:02:05 <tusho> gpl2 has a barely-acceptable level of gpl
18:02:09 <tusho> AnMaster: yes, and?
18:02:10 <tusho> it's their right
18:02:15 <tusho> good for them
18:02:23 <tusho> if they add an awesome modification and it makes them rich and famous and they use it
18:02:24 <AnMaster> tusho, well that is what BSD doesn't suite me
18:02:24 <tusho> good for them
18:02:33 <AnMaster> tusho, bad luck, I go for GPL
18:02:36 <tusho> AnMaster: A license is not the correct place to argue against capitalism.
18:02:42 <AnMaster> since I consider that everyone should share back
18:02:50 <AnMaster> tusho, CC-by-sa-nc?
18:02:51 <tusho> the gpl is just propaganda that polyglots as a license.
18:02:52 <AnMaster> then
18:03:04 <AnMaster> would be worse
18:03:04 <tusho> AnMaster: That still denies commercial use.
18:03:16 <tusho> A license is not the correct place to argue against capitalism. there are perfectly good outlets for that
18:03:16 <AnMaster> tusho, which is what I want, unless they give back
18:03:19 <tusho> but the gpl is just unproductive.
18:03:22 <AnMaster> GPL allows commercial use
18:03:31 <tusho> AnMaster: but not commercial use with modification without giving back
18:03:36 <ais523> tusho: GPL3 is more forgiving than GPL2 on people who mess up
18:03:48 <AnMaster> tusho, well you can still sell a linux distro containing GPL software
18:03:49 <tusho> AnMaster. say google use your crappy search library but add tons of amazing things and it makes them the best search engine ever
18:03:57 <ais523> tusho: it allows commercial use with modification without giving back as long as they don't redistribute the result
18:03:57 <AnMaster> ais523, yes indeed
18:03:58 <tusho> their business would be OVER if they had to release those changes
18:04:04 <tusho> it's just unproductive
18:04:10 <ais523> inhouse use of modified GPL2/GPL3 is fine even without backcontributing
18:04:12 <tusho> and if you'd prefer everyone just shared and be happy, well, that's a political position
18:04:13 <AnMaster> tusho, and?
18:04:13 <Deewiant> AnMaster: hence, you kill google! Stop!
18:04:16 <tusho> == not the place for a license.
18:04:20 <AnMaster> I don't want to support them
18:04:23 <Deewiant> Google is dying because of YOU!
18:04:31 <tusho> Deewiant: ok, stop exaggerating
18:04:32 <tusho> it was an example
18:04:34 <AnMaster> Deewiant and tusho: stop trolling
18:04:37 <AnMaster> both of you
18:04:40 <tusho> i was not trolling, AnMaster
18:04:42 <Deewiant> I'm not trolling
18:04:45 <Deewiant> I was just making a joke
18:04:47 <tusho> i was trying to have an argument
18:04:56 <tusho> but, of course, i'm telling you that you're wrong
18:04:59 <tusho> = obviously trolling, right?
18:04:59 <AnMaster> <ais523> inhouse use of modified GPL2/GPL3 is fine even without backcontributing
18:05:03 <AnMaster> yes that is fine with me
18:05:18 <tusho> ais523: yes, but what if google use it in a desktop product
18:05:20 <ais523> <tusho> AnMaster. say google use your crappy search library but add tons of amazing things at it makes them the best search engine ever <-- actually they could do that even under GPL3 without backcontributing unless they sold or gave the code to someone else
18:05:22 <tusho> desktop search or whatever
18:05:23 <AnMaster> however making money from someone else's work without giving anything back...
18:05:26 <ais523> not under AGPL though
18:05:31 <tusho> ais523: see, it's silly
18:05:38 <tusho> a website is not different from a dekstop app, fundamentally
18:05:43 <AnMaster> ais523, well I would use AGPL for web apps anyway
18:05:47 <tusho> agpl is more gply
18:05:49 <tusho> but even so
18:05:50 <tusho> it's wrong.
18:05:55 <AnMaster> tusho, you think so
18:05:59 <AnMaster> well you use Mac
18:06:05 <AnMaster> so of course you are a capitalist
18:06:06 <ais523> tusho: well suppose the desktop search which incorporates your code is buggy
18:06:06 <AnMaster> *shrug*
18:06:08 <tusho> oh look, more AnMaster trolling
18:06:09 <ais523> and you can't fix it
18:06:12 <tusho> 'hahaha you use apple products'
18:06:14 <tusho> 'CAPITALIST'
18:06:31 <AnMaster> tusho, I just do the same as you :P
18:06:40 <tusho> yea, i was trying to have a reasoned argument
18:06:47 <AnMaster> no you were trying to troll
18:06:48 <tusho> but fuck that, it's impossible to disagree with you without being called a troll
18:06:51 <tusho> you are on ignore.
18:07:13 <Judofyr> echo "AnMaster" >> .gitignore
18:07:20 <tusho> Judofyr: /ignore AnMaster
18:07:24 <tusho> beaten by mere characters!
18:07:30 <Judofyr> Git > *
18:07:34 <AnMaster> ais523, anyway back to the topic... you will need to drop some fingerprints, all floating point are in various fingerprints btw
18:07:37 <fizzie> That's a curious definition of "beaten" there.
18:07:49 <tusho> fizzie: gawlf
18:07:51 <tusho> Judofyr: gitirc?
18:08:01 <AnMaster> ais523, further, file IO will need to be changed
18:08:07 <AnMaster> loading can be done from a string
18:08:07 <Judofyr> tusho: now that's what I call an idea!
18:08:13 <AnMaster> ais523, while writing use streams
18:08:17 * tusho kills Judofyr before he implements
18:08:23 <tusho> bad Judofyr. bad!
18:08:31 <ais523> Judofyr: wouldn't that command mean that files called AnMaster wouldn't be stored in your git repository?
18:08:41 -!- KingOfKarlsruhe has joined.
18:08:49 <ais523> AnMaster: don't worry, streams are not a hard part of the C library to implement when all your files are stored in memory
18:09:08 <AnMaster> ais523, and well I use extern char **environ; need to handle that in some way
18:09:16 <Judofyr> ais523: file is kinda like a person, and repository is kinda like a channel....
18:09:25 <Judofyr> anyway, I got to go!
18:09:28 <AnMaster> ais523, not sure what else there is...
18:09:30 <Judofyr> training ;)
18:09:36 <oklopol> whaddyatrain?
18:09:41 <ais523> bye Judofyr
18:09:45 <Judofyr> guess!
18:09:50 <oklopol> no
18:09:51 <AnMaster> ais523, well STDIO for terminal, but that should be easy
18:09:56 <oklopol> i shall do no such thing
18:09:58 <oklopol> speed coding?
18:10:01 <Judofyr> Judo, perhaps?
18:10:01 <ais523> AnMaster: harder than streams actually, it needs to be special-cased
18:10:05 <AnMaster> ais523, I use getline to read a line at once, then use my own internal buffer
18:10:09 <oklopol> oh
18:10:10 <AnMaster> ais523, buffered IO
18:10:19 <ais523> AnMaster: there is no other sort in brainfuck
18:10:19 <AnMaster> ais523, so fflush() and such are called
18:10:21 <oklopol> Judofyr: i'd never have guessed that
18:10:25 <Judofyr> *gone*
18:10:34 <tusho> ais523: stop talking to AnMaster, it's confusing without his context.
18:11:00 <ais523> tusho: why not, I'm fine with people ignoring each other but they should learn to live with half-conversations
18:11:07 <tusho> ais523: it was a joke
18:11:13 <tusho> ais523: has AnMaster commented on my ignoring of him yet
18:11:24 <ais523> tusho: no, we changed the subject
18:11:31 <tusho> i bet he will now
18:11:40 <ais523> tusho: for all I know e's ignoring you too
18:11:48 <tusho> oh, that'd be nice
18:11:50 <tusho> can you ask him if he is?
18:11:55 <oklopol> everyone stop talking, i've ignored everyone, and i don't like missing anything
18:12:02 <ais523> oklopol: heeh
18:12:04 <ais523> s/ee/e/
18:12:08 <tusho> oklopol: ok
18:12:31 <oklopol> i hate it when people make a big deal out of ignoring others
18:12:42 <oklopol> i personally don't give a shit if i'm being ignored
18:12:54 <AnMaster> ais523, memcpy(), strcpy, various other stuff from string.h
18:12:56 <tusho> oklopol: you said everyone should stop talking
18:13:11 -!- oklopol has quit (Read error: 54 (Connection reset by peer)).
18:13:14 <ais523> AnMaster: gcc needs the mem* functions in the standard library to work
18:13:17 -!- oklopol has joined.
18:13:19 <ais523> tusho: e was joking
18:13:23 <fizzie> If you _really_ want to have conversations-via-an-intermediary, you can always use fungot's ^echo if you don't mind the duplicationary. (But don't do that.)
18:13:24 <fungot> fizzie: seems to me to do that in the " better" language.
18:13:24 <oklopol> really i guess it's just making the statement people find me useless or annoying, but if they're ignoring me, what do i care what they think
18:13:32 <tusho> ais523: lies
18:13:37 <AnMaster> ais523, hm apart from that... fprintf() snprintf() iirc
18:13:52 <AnMaster> ais523, probably strtol()
18:14:02 <tusho> ^echo yo hi AnMaster
18:14:02 <fungot> yo hi AnMaster yo hi AnMaster
18:14:04 <AnMaster> atof() iirc in the floating point fingerprints
18:14:08 <ais523> AnMaster: I'm definitely going to try to find someone else's implementation of vsprintf, once you have that you can get all the others
18:14:13 <ais523> well, vsprintf and vsscanf
18:14:17 <AnMaster> well I'm not ignoring tusho, nor do I think he is ignoring me
18:14:23 <AnMaster> ais523, no *scanf
18:14:30 <AnMaster> I use my own parsing
18:14:37 <ais523> luckily it's easy to find an infinitely long string buffer in a brainfuck program
18:15:00 <AnMaster> ais523, since I need to "stop one digit before overflow" rather than "clamp to MAX_INT"
18:15:04 <AnMaster> befunge specs heh
18:15:41 <AnMaster> ais523, um that has an issue
18:15:47 <AnMaster> the sizeof() issue
18:15:49 <AnMaster> to be exact
18:15:57 <ais523> sizeof what?
18:16:05 <AnMaster> and pointers
18:16:11 <AnMaster> you need a fixed size for them
18:16:12 <ais523> hmm... another potential problem, is 16MB enough memory?
18:16:12 <AnMaster> in C
18:16:29 <ais523> AnMaster: pointers are fixed size, they're 26 bits long padded to 32
18:16:41 <ais523> 2 bits for the sort of memory to look in, 24 for the location there
18:16:41 <AnMaster> ais523, um, depends. Normal programs: yes mycology: no
18:16:45 <AnMaster> ais523, oh I found another thing
18:17:02 <AnMaster> I need gettimeofday()
18:17:13 <AnMaster> with a good resolution
18:17:15 <AnMaster> for HRTI
18:17:25 <ais523> argh, that's pretty tricky in brainfuck, I think I'll use the DJGPP solution
18:17:33 <ais523> which is to make the function always error out or return invalid data
18:17:38 <AnMaster> ais523, sysinfo need date and such too
18:17:49 <ais523> DJGPP's implementation of fork looks something like pid_t fork() {errno=ENOMEM; return -1;}
18:17:50 <AnMaster> ais523, well in that case I think cfunge may abort() on gettimeofday()
18:17:55 <AnMaster> or just fail in other way
18:17:59 <Deewiant> ais523: heh, nice
18:18:07 <AnMaster> ais523, anyway 16 MB isn't enough for mycology
18:18:14 <ais523> it's a lot simpler than cygwin's, but less useful
18:18:27 <Deewiant> AnMaster: because of ff*ky or something else as well?
18:18:30 <AnMaster> since HRTI does a test calling y several times
18:18:33 <AnMaster> Deewiant, exactly
18:18:44 <AnMaster> I think without HRTI memory usage peek at around 11 MB
18:18:46 <ais523> AnMaster: well I'd probably try to compile fingerprintless cfunge
18:18:46 <Deewiant> yeah, I guess I could do something about that
18:18:47 <AnMaster> at least last I checked
18:18:55 <ais523> I'd like to compile C-INTERCAL too, but it has problems due to being a compiler
18:18:56 <AnMaster> but that was a while ago
18:19:01 <AnMaster> so it is probably a bit more now
18:19:04 <ais523> which is that I'd have to port gcc to brainfuck to really get it working
18:19:13 <AnMaster> ais523, hm even core does some such stuff
18:19:17 <ais523> as in, write a brainfuck version of gcc
18:19:40 <AnMaster> time(NULL) to get current time in y
18:19:43 <AnMaster> and gmtime()
18:19:49 <AnMaster> that is in core
18:19:59 <AnMaster> befunge-93 would be a lot easier to handle there
18:20:03 <ais523> well y is going to have to lie in brainfuck without something like PSOX
18:20:09 <AnMaster> but befunge-98 need a lot more system interaction
18:20:22 <AnMaster> ais523, well you will have to claim you don't handle i or o either then
18:20:39 <AnMaster> ais523, and you will need to fake some environment variable and command line arguments
18:20:45 <ais523> shouldn't be much of a problem, really
18:20:47 <AnMaster> because they are both terminated by double \0
18:20:51 <AnMaster> iirc
18:20:58 <ais523> I might try to do a GregorR and port a miniature OS to brainfuck
18:21:02 <AnMaster> anyway if either is empty it cause confusion
18:21:18 <AnMaster> ais523, anyway the hash library I use for funge space may do other stuff
18:21:22 <AnMaster> that is needed by core
18:21:43 <AnMaster> mmap() and STDIO are, various string and memory routines
18:22:18 <AnMaster> ais523, random()
18:22:21 <AnMaster> how will you handle it?
18:22:32 <AnMaster> needed for ? instruction
18:22:43 <ais523> AnMaster: using a deterministic method like Mersenne Twister, possibly prompting for random number seed on startup
18:22:55 <ais523> I could have it as an -mprompt-for-seed option to gcc, for instance
18:23:03 <AnMaster> ais523, I initialise it from current time
18:23:25 <ais523> AnMaster: it's easy enough to define srandom() to a nop
18:23:35 <AnMaster> *cringe*
18:24:08 <ais523> but the more conforming way would be to get time() to return a magic value that causes srandom() to be a nop, and make it work in any other case
18:24:22 <AnMaster> ais523, fingerprints I *remember* use floating point: 3DSP, BASE, FPSP, FPDP
18:24:25 <AnMaster> there may be more
18:24:38 <tusho> this is making no sense to me
18:24:42 <ais523> AnMaster: luckily gcc comes with floating point emulation libraries
18:24:45 <AnMaster> ais523, err gettimeofday()
18:24:46 <AnMaster> is used
18:25:07 <AnMaster> struct timeval tv;
18:25:07 <AnMaster> if (gettimeofday(&tv, NULL)) {
18:25:07 <AnMaster> perror("Couldn't get time of day?!");
18:25:07 <AnMaster> exit(EXIT_FAILURE);
18:25:07 <AnMaster> }
18:25:09 <AnMaster> like that
18:25:16 <ais523> AnMaster: that's POSIX, but I can handle it the same way as time() if needed, I'll get the C standard stuff working first, though
18:25:17 <AnMaster> if it works
18:25:20 <AnMaster> srandom(tv.tv_usec);
18:25:26 <Deewiant> side note: how to display tab as something other than ^I in irssi
18:25:27 <AnMaster> ais523, cfunge *is* POSIX
18:25:28 <Deewiant> anybody know?
18:25:35 <AnMaster> I never claimed it didn't make use of POSIX stuff
18:25:39 <AnMaster> just see mmap() for example
18:25:57 <ais523> AnMaster: I know, I was wondering how easy it would be to rip the problematic parts of POSIX out of it, probably not too hard but it would disable features
18:26:04 <ais523> running it unmodified would just be crazy
18:26:19 <AnMaster> ais523, oh you want to drop most fingerprints out, of you need to link ncurses for example
18:26:22 <fizzie> Deewiant: /set expand_escapes on or something like that.
18:26:23 <ais523> Deewiant: I don't, but at least it's better than Konversation which displays tab as toggling italics
18:26:27 <ais523> which is very confusing
18:26:28 <AnMaster> or*
18:26:33 <fizzie> Deewiant: I don't know what else it expands when that toggle is on.
18:26:46 <AnMaster> ais523, haha
18:26:54 <AnMaster> well mine display it as a single space
18:26:58 <AnMaster> which is rather odd
18:26:59 <AnMaster> but ok
18:27:26 <Deewiant> fizzie: isn't that for expanding \t to a tab character
18:27:31 <AnMaster> on the other hand I guess my ERC is nowdays spending more time in the hooks in my .emacs than in the core code ;)
18:27:35 <Deewiant> so \t becomes that fugly ctrl-I as well :-P
18:27:50 <ais523> here on Mibbit it displays it as 8 spaces, I think
18:28:03 <fizzie> Oh, it did that thing.
18:28:07 <Deewiant> I guess I'll have to dig into the source and make a modification
18:28:21 <fizzie> Deewiant: You could plug a Perl script into it too if you like that more.
18:28:30 <AnMaster> ais523, anyway STDIO is needed for Befunge
18:28:31 <AnMaster> any befunge
18:28:33 <Deewiant> hmm, that might be easier
18:28:41 <Deewiant> I might not like it more but it might be easier :-P
18:28:47 <AnMaster> ais523, buffered STDIO too to be exact
18:29:02 <AnMaster> ais523, and working fflush(stdout)
18:29:04 <ais523> AnMaster: in what way does it need buffering?
18:29:16 <ais523> line buffering is easy because it hits buffering on the BF interp itself
18:29:17 <AnMaster> ais523, well the code of cfunge assumes that is happening
18:29:34 <ais523> and most good BF interps have a setting to flush after each character of output
18:29:38 <AnMaster> ais523, I read one line of input at a time
18:29:44 <AnMaster> ais523, then buffer it myself
18:29:49 <AnMaster> I probably use fgets()
18:29:52 <AnMaster> actually
18:29:53 <ais523> AnMaster: well you get one line of input at a time
18:29:57 <AnMaster> I use a gnulib function
18:30:02 <AnMaster> gnulib getline()
18:30:31 <AnMaster> copied to support.c
18:30:35 <ais523> does that do much the same thing as the ggets function that keeps getting posted to comp.lang.c?
18:30:43 <AnMaster> ah that does getc
18:30:47 <fizzie> Deewiant: scripts.irssi.org has tab_stop.pl.
18:30:51 <AnMaster> ais523, huh?
18:30:55 <AnMaster> I got no idea what ggets does
18:31:01 <AnMaster> man getline
18:31:02 * Deewiant has a look
18:31:03 <AnMaster> iirc
18:31:06 <fizzie> Deewiant: "Replaces the evil inverted I with a configurable number of whitespaces"
18:31:10 <AnMaster> on any Linux
18:31:18 <AnMaster> ais523, any glibc system would have it in glibc
18:31:19 <Deewiant> hooray for Stefan
18:31:21 <Deewiant> fizzie: cheers
18:31:22 <ais523> AnMaster: reads to the next newline and returns a malloced string
18:31:40 <AnMaster> ais523, I use a few gnulib functions like this for glibc specific ones
18:31:48 <AnMaster> ais523, well yes that is what it does
18:31:58 <AnMaster> anyway strndup() from gnulib too
18:32:04 <AnMaster> and strnlen()
18:32:12 <AnMaster> so I got copies of both
18:32:13 -!- psygnisfive has joined.
18:32:15 <ais523> tusho: AnMaster: dogface: I thought of a really evil way to do command line arguments for an esoprogram, I might use it for C-INTERCAL
18:32:24 <AnMaster> ais523, oh?
18:32:25 <ais523> basically, a command line argument is one character
18:32:27 <ais523> including control codes
18:32:35 <ais523> except it goes from a # to the next newline
18:32:37 <AnMaster> err?
18:32:42 <ais523> that way you can have multicharacter options
18:32:54 <ais523> so for instance you might have -a^D#version
18:32:55 <ais523> f
18:32:58 <tusho> http://waffles.fm/main.html <-- has waffles.fm bitten the dust?
18:33:01 <Deewiant> foo
18:33:01 <Deewiant> foo
18:33:04 <ais523> as a command line argument with 4 options
18:33:09 <tusho> Oh, heh.
18:33:13 <tusho> "Admin Login" is just "Login".
18:33:14 <ais523> (^D represents control-D here)
18:33:15 <Deewiant> argh, it works not
18:33:30 <ais523> it was inspired by Nethack
18:33:32 <AnMaster> ais523, cfunge uses getopt() to parse command line arguments, it assumes the strict POSIX variant, so once it hits a non-parameter the rest is befunge program name and command line arguments for that program
18:33:44 <tusho> http://ok.org/ totally needs something cooler than what is there
18:33:45 <Deewiant> the evil inverted I is stronger than Perl
18:33:49 <ais523> those controls work great interactively, not so much over a command line, which is where the evil comes from
18:34:10 <ais523> AnMaster: well that's sane, getopt is easy to reimplement anyway
18:34:11 <Deewiant> foofoo
18:34:39 <fizzie> Deewiant: Maybe it only replaces on privmsgs by others? Here's a tab: ... I hope that was a tab.
18:34:41 <AnMaster> ais523, anyway if you don't use buffered STDIO a lot of befunge programs will behave strange
18:34:49 <AnMaster> ais523, for example returning too early
18:34:50 <Deewiant> fizzie: evidently so
18:34:55 <Deewiant> that sucks :-/
18:34:56 <AnMaster> ais523, in input
18:35:09 <AnMaster> ais523, however you can tell that you use unbuffered in y
18:35:19 -!- ais523 has quit ("http://www.mibbit.com ajax IRC Client").
18:35:28 <AnMaster> but then programs like the wumpus in befunge won't work
18:35:31 <AnMaster> huh...
18:35:33 -!- ais523 has joined.
18:35:33 <AnMaster> why leave
18:35:39 <ais523> umm... I don't know
18:35:39 <AnMaster> ais523, what was the last you saw?
18:35:45 <ais523> I was halfway through a sentence too
18:35:50 <AnMaster> <AnMaster> ais523, anyway if you don't use buffered STDIO a lot of befunge programs will behave strange
18:35:50 <AnMaster> <AnMaster> ais523, for example returning too early
18:35:51 <ais523> I think I hit back on my browser by mistake
18:35:53 <AnMaster> <AnMaster> ais523, in input
18:35:53 <AnMaster> <AnMaster> ais523, however you can tell that you use unbuffered in y
18:35:54 <ais523> but am not sure how
18:35:56 <AnMaster> <AnMaster> but then programs like the wumpus in befunge won't work
18:35:56 <AnMaster> <AnMaster> huh...
18:35:56 <AnMaster> <AnMaster> why leave
18:36:02 <AnMaster> there was stuff other ppl said too
18:36:07 <AnMaster> (hardly as important ;)
18:36:10 * AnMaster ducks
18:36:13 <ais523> AnMaster: it will be buffered the same way as the BF interp
18:36:23 <ais523> most BF interps I know line-buffer input
18:36:25 <AnMaster> ais523, you have to say which way in y
18:36:38 <AnMaster> ais523, also it need to flush stdout before any input
18:36:40 <fizzie> Deewiant: You probably need to signal_add it to some other sensible signal in addition to only "server incoming". But at least you're not starting from scratch.
18:36:44 <AnMaster> cfunge calls fflush() to do that
18:36:47 <ais523> AnMaster: I can add -mbuffered-input, I'll get the user to tell me during compile
18:36:59 <AnMaster> um?
18:37:05 <AnMaster> huh?
18:37:09 <ais523> AnMaster: you can add new options to gcc
18:37:14 <ais523> to tell you about the target CPU
18:37:17 <AnMaster> ais523, well buffered output too
18:37:22 -!- psygnisf_ has joined.
18:37:22 <ais523> in this case the target "CPU" is actually a brainfuck interpreter
18:37:24 <Deewiant> fizzie: that may be what the FIXME: experimental is about :-P
18:37:31 <AnMaster> anyway I already do my own buffer for input
18:37:34 <ais523> so the user has to explain about the interp
18:37:44 <AnMaster> so input is less of a problem than output
18:37:45 <fizzie> Deewiant: The whole script looks a bit iffy.
18:37:48 <ais523> I assume 8-bit wrapping, though, it's much more difficult and time-consuming otherwise
18:38:10 <AnMaster> ais523, anyway another issue, threads in befunge, I plan to create a fingerprint that will only block the current thread on IO, a new version of SOCK
18:38:18 <Deewiant> fizzie: also, I don't think I can /set anything to only spaces
18:38:30 <AnMaster> oh and for such I need non-blocking IO too
18:38:34 <AnMaster> ais523, SCKE uses poll()
18:38:34 <ais523> AnMaster: well don't expect that to work in brainfuck, possibly not in C-INTERCAL either
18:38:41 <ais523> non-blocking IO is fine for C-ITNERCAL though
18:38:50 <AnMaster> ais523, as in poll()?
18:38:56 <AnMaster> and maybe select() too
18:39:07 <AnMaster> that will be in fingerprints of course
18:39:27 <ais523> AnMaster: select() will block the INTERCAL program too, but that's expected behaviour in a single-threaded program and I don't support concurrent
18:39:31 <AnMaster> ais523, oh how does variable length structs work in GCC?
18:39:38 <AnMaster> I assume they are taken care of at a higher level?
18:39:49 <AnMaster> cfunge use some structs with a foo bar[]; at the end
18:39:52 <AnMaster> C99 feature
18:39:56 <ais523> AnMaster: they're pretty trivial really, it just takes the address of the last struct member
18:40:10 <ais523> gcc used to have that as an extension
18:40:17 <ais523> but its syntax was foo bar[0];
18:40:31 <AnMaster> ais523, btw you may know:
18:40:32 <AnMaster> The difference between -fno-peephole and -fno-peephole2 is in how they are
18:40:33 <AnMaster> implemented in the compiler; some targets use one, some use the other, a few use both.
18:40:34 <AnMaster> well
18:40:38 <ais523> not sure if they accept C99 syntax too, probably they do because that probably wouldn't be a difficult change
18:40:39 <AnMaster> what is the difference exactly?
18:41:07 <ais523> AnMaster: -fno-peephole turns off RTL to asm peepholing, -fno-peephole2 turns off RTL to RTL peepholing
18:41:12 <AnMaster> ais523, gcc accepts the C99 syntax with -std=c99 at least
18:41:21 <ais523> RTL is the last intermediate language in the chain of languages that gcc translates the program between
18:41:24 <AnMaster> ah
18:41:25 <ais523> and is somewhat processor-dependent
18:41:33 <AnMaster> ais523, why so many?
18:41:46 <AnMaster> I remember GLIMPS or something like that being mentioned?
18:41:47 <fizzie> Deewiant: At least /set does not seem to be trimming any leading whitespace, so maybe just "/set whatever " to set to " " or something. Haven't tried.
18:41:54 <AnMaster> forgot the name
18:41:57 <ais523> AnMaster: well, each frontend has its own internal representation, which is translated to GENERIC which is common between most of them
18:42:03 <Deewiant> fizzie: yes, I am messing around with it now and testing in a query
18:42:30 <ais523> that's translated to GIMPLE in a more-or-less processor-agnostic way (although the way it translates varargs is dependent on processor)
18:42:34 <tusho> ais523: i invented a method of encoding
18:42:41 <AnMaster> ah GIMPLE was the name
18:42:42 <ais523> then from GIMPLE it's translated to RTL
18:42:45 <tusho> you type out some keys, then your reciever types them out and they make shaped
18:42:53 <AnMaster> ais523, does your stuff handle varargs?
18:42:53 <tusho> edctgbf rfvetcb
18:43:00 <tusho> (space means end of shape, start new one)
18:43:01 <tusho> try it
18:43:08 <ais523> AnMaster: I think so, although I haven't tested that, or anything else for that matter
18:43:11 <AnMaster> ais523, well it needs to handle printf
18:43:23 <ais523> it's meant to handle varargs, and all other C89 features, also all C99 features that gcc have implemented
18:43:45 <AnMaster> ais523, an idea for how to check for what functions are used just hit me
18:43:48 * AnMaster tests
18:43:51 <AnMaster> ah yes works
18:43:51 <ais523> tusho: I used to do that using calculator keypads
18:43:56 <AnMaster> nm -D ./cfunge
18:43:57 <ais523> AnMaster: nm?
18:43:57 <AnMaster> ais523, try that
18:44:01 <tusho> ais523: nm=never mind
18:44:05 <tusho> ais523: here, have a smiley face
18:44:09 <ais523> AnMaster: I'm on Windows at the moment
18:44:17 <tusho> vfr567ujnbrydvbhj
18:44:17 <AnMaster> nm - list symbols from object files
18:44:18 <tusho> try it
18:44:19 <ais523> due to forgetting to bring my laptop's power supply here
18:44:25 <AnMaster> -D
18:44:25 <AnMaster> --dynamic
18:44:25 <AnMaster> Display the dynamic symbols rather than the normal symbols. This is only meaningful for dynamic objects, such as certain types of
18:44:25 <AnMaster> shared libraries.
18:44:34 <AnMaster> well it lists imported functions too
18:44:53 <AnMaster> http://rafb.net/p/0ge9DV43.html
18:45:00 <fizzie> objdump would probably do it with different flags too.
18:45:00 <ais523> AnMaster: I used nm to find out which symbols in C-INTERCAL could cause namespace clashes and mangled them all
18:45:05 <ais523> nm won't work for gcc-bf though
18:45:09 <AnMaster> of course gcc will inline calls to memcpy and such on x86/x86_64 iirc
18:45:14 <AnMaster> using special low level stuff
18:45:24 <ais523> partly because I implemented as as a front-end to cp
18:45:29 <ais523> and ar as a front-end to tar
18:45:38 <ais523> it seemed easiest, as the linker has to work on the asm implementation
18:45:50 <AnMaster> ais523, anyway a lot of those are only used in fingerprints, there is no way to disable compiling fingerprints, nor is it something I plan to do
18:45:55 <AnMaster> you can disable them at runtime
18:45:55 <ais523> this means that libgcc.a is in fact just a tar.gz of asm files with .o extensions
18:46:01 <AnMaster> which is useful in mycology sometimes
18:46:06 <AnMaster> if you mess around with core
18:46:13 <AnMaster> and want to not have to scroll up a lot
18:46:19 <ais523> AnMaster: disabling compiling fingerprints is trivial, you just remove them all from the fingerprint description file
18:46:21 -!- psygnis__ has joined.
18:46:21 <tusho> ais523 is not interested :(
18:46:26 <AnMaster> ais523, well yeah
18:46:33 <ais523> tusho: I am slightly, but can't figure out what you were trying to say
18:46:36 <AnMaster> ais523, except it will want one at least I think...
18:46:40 <tusho> ais523: it's a smiley face
18:46:59 <tusho> cde4567ujmnbvcrtfvg
18:47:02 <tusho> perhaps more legible
18:47:03 <ais523> AnMaster: NULL is trivial
18:47:05 <oklopol> the smiley face is everything that has been said after tusho's last message
18:47:11 <oklopol> if anyone needed that cleared up
18:47:11 <AnMaster> ais523, I think strange stuff may happen if it tries to use a for loop to iterate over a 0 length array...
18:47:13 <tusho> heh
18:47:15 <tusho> no it's not :P
18:47:18 <oklopol> he's jokes are so weird.
18:47:23 <oklopol> *his
18:47:26 <AnMaster> since I use sizeof(array) / sizeof(record) nowdays
18:47:27 <oklopol> what the fuck was that :\
18:47:36 <AnMaster> not ending 0 entry
18:47:47 <oklopol> i think i'm gonna poo and shit (pun intended) ->
18:47:54 <tusho> have fun
18:47:57 <ais523> AnMaster: C's control structures are all designed to handle the 0-length edge case incidentally
18:48:01 <AnMaster> ais523, anyway... http://rafb.net/p/0ge9DV43.html are all the functions used by cfunge here
18:48:04 <ais523> except do-while, but you normally only use that one deliberately
18:48:13 <AnMaster> and other symbols
18:48:30 <ais523> but NULL surely doesn't require standard library support
18:48:34 <ais523> nor ROMA for that matter
18:48:36 <AnMaster> ais523, indeed
18:48:40 <AnMaster> there are a few more ones iirc
18:48:54 <tusho> what does roma do
18:49:03 -!- psygnisfive has quit (Read error: 110 (Connection timed out)).
18:49:07 <AnMaster> tusho, map some instructions to push roman numerals
18:49:10 <ais523> tusho: interprets capital letters as roman numerals
18:49:13 <tusho> ah
18:49:43 <AnMaster> ais523, SUBR, INDV shouldn't use anything except malloc() and such either if even that
18:50:07 <AnMaster> REFC use malloc() but you can't get away without malloc() for cfunge at all
18:50:09 <ais523> well obviously I'm going to have to implement malloc as just about every C program ever uses it
18:50:19 <ais523> likewise
18:50:23 <AnMaster> ais523, malloc() calloc() free() memset() and a few more
18:50:26 <ais523> s/.*//
18:50:38 <tusho> AnMaster-without-anmaster is pretty zen
18:50:39 <AnMaster> memchr, memcpy
18:50:43 <ais523> AnMaster: I think I'll implement all of stdlib.h, and find an implementation of stdio.h somewhere
18:50:45 <AnMaster> tusho, ??
18:50:48 <tusho> you get one person stating obvious things in a row for ages
18:51:05 <AnMaster> ais523, string.h too
18:51:11 <AnMaster> use quite a bit from that
18:51:13 -!- psygnisfive has joined.
18:51:19 <psygnisfive> woo hey guys
18:51:34 <ais523> gcc needs some headers on the target to exist to compile: string.h stdlib.h stdio.h time.h sys/types.h unistd.h
18:51:39 <ais523> but I only edited the last two with touch
18:51:43 <ais523> as they aren't standard C
18:51:47 <ais523> and hi psygnisfive
18:51:47 <tusho> 10:14:17 <AnMaster> well I'm not ignoring tusho, nor do I think he is ignoring me
18:51:49 <tusho> haha
18:51:53 <tusho> i was just logreading and saw that
18:51:57 <psygnisfive> i just got into my dorm :D
18:52:02 <tusho> AnMaster, you are actually on ignore :p
18:52:13 <ais523> tusho: happy mailman reminders day by the way
18:52:14 <fizzie> tusho: What's the point of the /ignore if you logread the stuff still?
18:52:19 <AnMaster> fat lot if I care
18:52:21 <tusho> ais523: beat you to it yesterday
18:52:25 <tusho> for the australian agora list :)
18:52:32 <tusho> fizzie: i wanted to see if he's commented on my ignoring
18:52:40 <ais523> tusho: I wasn't here yesterday, and yesterday isn't mailman reminders day except in Australia
18:52:52 <AnMaster> just because he doesn't like GPL and wants to troll, then goes on to ignore me
18:52:54 <AnMaster> well he is strange
18:52:58 <AnMaster> we all know that
18:53:31 <tusho> 10:49:07 <AnMaster> tusho, map some instructions to push roman numerals
18:53:35 <tusho> why did you answer to /dev/null...
18:53:41 -!- psygnisf_ has quit (Connection timed out).
18:54:13 <tusho> 10:52:52 <AnMaster> just because he doesn't like GPL and wants to troll, then goes on to ignore me
18:54:22 <tusho> sorry trying to have a reasoned argument, i'll just blindly agree with you in future
18:54:22 <ais523> heh, at the moment ABI has a %devnull register which throws away data moved into it
18:54:27 <AnMaster> I do wish he stops highlighting me though
18:54:27 <ais523> which will be optimised away later
18:54:30 <tusho> well, after i stop /ignoring you
18:54:32 <AnMaster> and anyway it can't be called ignore
18:54:34 <tusho> i might just forget for a year or so
18:54:46 <psygnisfive> so someone tell me how C++'s grammar is unrestricted please
18:54:49 <tusho> 10:54:27 <AnMaster> I do wish he stops highlighting me though
18:54:49 <AnMaster> not with tusho log reading
18:54:53 <tusho> AnMaster: AnMaster AnMaster AnMaster AnMaster
18:54:55 <AnMaster> he have to ignore log
18:54:56 <tusho> psygnis__: logread.
18:54:59 <AnMaster> or it isn't ignore
18:55:00 <tusho> ais523 linked to an article
18:55:08 <psygnisfive> tusho: is in log?
18:55:11 <ais523> psygnisfive: C++ is compile-time TC
18:55:11 <psygnisfive> ok.
18:55:18 <AnMaster> ais523, hum
18:55:20 <psygnisfive> im not sure how that works but ok :)
18:55:25 <AnMaster> ais523, why such a strange register
18:55:34 <tusho> which reminds me
18:55:39 <tusho> botte.
18:55:43 <ais523> psygnisfive: using the template resolution mechanism
18:55:45 <tusho> hm
18:55:46 <AnMaster> ais523, anyway brainfuck doesn't *have* registers
18:55:50 <tusho> perhaps I'll just write a log searcher first
18:55:51 <tusho> then botte
18:55:56 <tusho> yeah, good idea tusho
18:55:58 <tusho> hmm
18:56:04 <AnMaster> also tusho: I too was trying to have a reasoned argument
18:56:05 -!- oklopol has quit (Read error: 104 (Connection reset by peer)).
18:56:05 <tusho> how can i make sure it already has the most recent logs...
18:56:05 <AnMaster> however
18:56:06 -!- oklofok has joined.
18:56:07 <ais523> AnMaster: due to generating code from filling in templates
18:56:11 <AnMaster> you did ignore that
18:56:16 <tusho> ah, wait, it can't log-tail then
18:56:16 <AnMaster> you just said what you thought
18:56:19 <AnMaster> ignoring what I said
18:56:29 <AnMaster> ais523, hum?
18:56:31 <ais523> and register in asm = data stored at a fixed location on the tape in BF
18:56:56 <ais523> AnMaster: sorry, I meant to higlight psygnisfive on the comment before last rather than you
18:57:03 <AnMaster> ais523, anyway how will you handle pointers? I think the generated code would be spectacularly slow
18:57:05 <ais523> but I'd been talking to you so much I typed the wrong name
18:57:19 <oklofok> compile-time tc equals unrestricted grammar?
18:57:26 <psygnisfive> oklofok! :D
18:57:26 <tusho> oklofok: for c++
18:57:28 <ais523> AnMaster: yes, it will be, although pointers aren't that hard (just slow) and I've thought up several optimisations
18:57:38 <tusho> psygnisfive: god, stop going oklopol! whenever he talks
18:57:41 <psygnisfive> oklofok: all TC == unrestricted grammar.
18:57:42 <tusho> we can tell.
18:57:56 <ais523> oklofok: I don't think so necessarily, it rather depends on whether the grammar is the only thing relevant at compile-time
18:58:04 <oklofok> psygnisfive: having a tc type system automatically makes it impossible to parse in general?
18:58:09 <oklofok> i somewhat doubt that
18:58:15 <psygnisfive> no i didnt say that :P
18:58:19 <AnMaster> I mean 1) pointers, lots of them 2) cells in funge space can't be less than 4 bytes
18:58:20 <ais523> it could be, say, that the grammar was type 3 but some other step in the compilation was TC
18:58:28 <psygnisfive> unrestricted grammars are computationally equivalent to turing complete machines
18:58:35 <AnMaster> ais523, about every app would break with sub-32-bit cells
18:58:36 <ais523> AnMaster: well pointers are 26 bits, padded to 32
18:58:45 <ais523> and the cells are 32-bit
18:58:54 <AnMaster> ais523, that isn't brainfuck...
18:58:57 <psygnisfive> so if C++ is compile-time TC then theres some unrestricted grammar that goes along with it
18:59:05 <oklofok> psygnisfive: everyone knows that; ais523: we were talking about whether parsing is tc, not just compilation; tusho: true
18:59:06 <AnMaster> brainfuck got unsigned 8 bit...
18:59:09 <ais523> AnMaster: yes it is, the pointers are stored in 4 8-bit brainfuck cells
18:59:14 <AnMaster> ah
18:59:19 <ais523> just like on an x86 system
18:59:25 <tusho> oklofok: wait which part was true
18:59:26 <oklofok> psygnisfive: oh
18:59:26 <ais523> gcc is fine with storing data in more than one cell
18:59:33 <tusho> my telling psygnisfive not to okoping all the time?
18:59:38 <AnMaster> ais523, anyway cfunge uses function pointers
18:59:42 <oklofok> tusho: for c++ it is true, in case it's true
18:59:45 <ais523> AnMaster: they're fine too
18:59:45 <AnMaster> ais523, how the heck do you handle that?
18:59:48 <ais523> I use them everywhere
18:59:48 <psygnisfive> oklofok: i know. apparently C++ is TC at compile time. earlier tho they said the syntax of C++ was itself unrestricted
18:59:51 <oklofok> i'm not sure whether it is
18:59:57 <AnMaster> ais523, huh... how can you do that in brainfuck
19:00:02 <oklofok> psygnisfive: yeah i'm a bit confused too
19:00:06 <psygnisfive> i dont think it is
19:00:07 <oklofok> not sure what's the case
19:00:08 <ais523> AnMaster: each segment of code has a number
19:00:10 <AnMaster> ais523, you need to jump in code a lot
19:00:12 <tusho> psygnisfive: it is
19:00:14 <ais523> yes
19:00:15 <psygnisfive> because unrestructed grammars are a pain in the ass to parse.
19:00:18 <tusho> ais523: yo, you link him to the article.
19:00:34 <ais523> so every goto, label, and function call in the program is translated to a break in the BF code
19:00:43 <ais523> where it stores the number of the next block of code in some dedicated registers
19:00:52 <AnMaster> ais523, oh and you probably want to sed out all occurrences of the word "inline" in cfunge ;P
19:00:52 <ais523> then the whole body of the code is effectively a switch in a loop
19:00:57 <ais523> tusho: I don't know where it is offhand
19:01:00 <AnMaster> or the resulting code would be HUGE
19:01:02 <tusho> bah, k
19:01:24 <ais523> AnMaster: why, inline gives a better speed gain in BF than it does in other langs
19:01:29 <ais523> the resulting code's going to be HUGE anyway
19:01:39 <AnMaster> ais523, well code could grow a lot
19:01:40 <oklofok> A's type, or should i say kind, needs to be known @ "A < B > C", so it's unrestricted
19:01:43 <ais523> besides the better way is probably to set gcc's inlining flags
19:01:47 <oklofok> i think that's it really
19:01:56 <ais523> it doesn't allow inline to grow the code by more than 50% by default, for instance
19:02:01 <psygnisfive> oklofok: whats that mean now?
19:02:01 <ais523> it'll uninline things if it would
19:02:04 <AnMaster> ah true
19:02:17 <ais523> AnMaster: you can change that, might be helpful for your speed optimisation
19:02:22 <AnMaster> ais523, haha
19:02:43 <ais523> worryingly I'm trying to optimise gcc-bf's output too
19:02:50 <oklofok> psygnisfive: i think i'd have to think for a while to answer that.
19:02:51 -!- psygnis__ has quit (Connection timed out).
19:02:52 <ais523> I assume a run-length-encoding interp though
19:03:05 <ais523> so I assume that >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> is as fast as >
19:03:06 <AnMaster> ais523, normal cfunge binary on x86, stripped, is around 109 KB
19:03:07 <oklofok> but i think i'll just sleep
19:03:07 <AnMaster> using GCC
19:03:11 <psygnisfive> oklofok: :P whats it mean tho to say that its kind needs to be known at ~??
19:03:14 <AnMaster> that is with -march=pentium3
19:03:18 <AnMaster> gcc 4.3
19:03:35 <ais523> AnMaster: what about the insane -O3 version with funroll loops?
19:03:43 <AnMaster> ais523, I don't have a copy around
19:03:51 <AnMaster> only other is 1.4 MB from debug info...
19:03:56 <AnMaster> wait
19:04:02 <AnMaster> 2.5 MB, it is -ggdb3
19:04:02 <oklofok> psygnisfive: i meant you need to know whether A is a type or an object, really, i think; "kind" was definitely the wrong term, and i'm not sure it's hard to know which one A is
19:04:07 <ais523> oh btw profile feedback won't work on gcc-bf
19:04:11 <ais523> nor will any debug format
19:04:15 <ais523> -g gives a warning that it was ignored
19:04:17 <AnMaster> ais523, I assume that :P
19:04:21 <psygnisfive> oklofok: i dont see how thats relevant to the syntax tho, see
19:04:23 <AnMaster> that it wont*
19:04:32 <ais523> nor will nested functions, but those aren't standard C anyway
19:04:49 <oklofok> psygnisfive: well in case the types are TC, you need to resolve that stuff before you can parse A<B>C
19:04:50 -!- Hiato has quit ("Leaving.").
19:04:57 <oklofok> so you can't parse all cases at all
19:05:02 <oklofok> because the type system can infloop
19:05:03 <AnMaster> ais523, as far as I know I got no nested functions
19:05:10 <AnMaster> ais523, it is C99 + POSIX
19:05:17 <ais523> AnMaster: well you shouldn't have, they aren't C99 or POSIX, just a gcc extension
19:05:23 <AnMaster> exactly
19:05:24 <psygnisfive> oklofok: oh right but types and stuff are done at compilation, they're not part of the syntax.
19:05:34 <ais523> they're sort of like lambdas but less useful because they can't have any scoping other than auto
19:05:35 <AnMaster> ais523, all GCC extensions I have (attributes mostly) are optiona
19:05:37 <AnMaster> optional
19:05:39 <AnMaster> with ifdef
19:05:48 <oklofok> psygnisfive: you need to do them at the same time as the compilation though
19:05:49 <oklofok> err
19:05:55 <oklofok> the same time as the parsing
19:06:01 <ais523> heh, my header files simply #define __attribute__(x) to nothing if __GNUC__ isn't defined
19:06:03 -!- Hiato has joined.
19:06:12 <oklofok> you can't parse without knowing the types, and you can't know the types unless you've parsed the program
19:06:17 <psygnisfive> oklofok: i doubt this. parse then verify.
19:06:23 <AnMaster> ais523, well yeah I do a bit more since ICC support *some* attributes
19:06:30 <ais523> I must have spent an hour or so writing stdio.h
19:06:36 <oklofok> psygnisfive: different parse trees depending on types, that's definitely true of C++
19:06:37 <ais523> even though I was copying from glibc
19:06:40 <AnMaster> #include <errno.h>
19:06:43 <ais523> (that's how it ended up LGPL2.1)
19:06:48 <AnMaster> ais523, cfunge will fail badly without errno
19:07:01 <ais523> I have an errno.h
19:07:02 <ais523> it defines errno
19:07:04 <ais523> and that's it
19:07:20 <psygnisfive> oklofok: i still doubt that anything truly requires an unrestricted grammar. i cant even imagine how different types force different parses in a way that requires TCness.
19:07:29 <ais523> probably I should define numeric codes for the C99 errno codes, though
19:07:34 <AnMaster> ais523, the getline() from gnulib assumes that it will have reasonable values
19:07:55 <ais523> I find it's normally possible to rewrite programs around most restrictions
19:07:56 -!- psygnisfive has quit ("http://www.mibbit.com ajax IRC Client").
19:08:09 <ais523> C-INTERCAL was POSIX originally, but I think it can be compiled without unistd.h nowadays
19:08:13 <ais523> nor any of the functions from it
19:08:24 <AnMaster> ais523, well befunge98 requires date/time
19:08:45 <ais523> AnMaster: maybe Befunge-108 should have an option for freestanding Befunge
19:08:48 <ais523> which doesn't assume an OS
19:08:49 -!- psygnisfive has joined.
19:08:52 <ais523> just like there's freestanding C
19:09:03 <AnMaster> ais523, um, the interpreter would have to handle it still
19:09:06 <AnMaster> wait
19:09:11 <AnMaster> not sure how it would work
19:09:20 <ais523> it would be just a case of returning dummy information for some of y
19:09:36 <ais523> because Befunge-98 already allows not implementing i and o
19:10:35 <AnMaster> ais523, you will have to remove the signal(SIGPIPE, SIG_IGN); thingy
19:10:43 <AnMaster> happens in main.c
19:10:45 <AnMaster> http://rafb.net/p/lUOFp085.html
19:10:45 <AnMaster> anyway
19:10:49 <AnMaster> that may be of interest
19:10:57 <AnMaster> of course some are from fingerprints
19:11:00 <AnMaster> core is a lot less
19:11:00 <ais523> AnMaster: heh, what you just wrote is by definition a NOP in brainfuck
19:11:06 <ais523> you're telling it to ignore something that can't happen anyway
19:11:34 -!- oerjan has joined.
19:11:43 <ais523> sort of like ABSTAIN FROM COMING FROM in INTERCAL-72
19:11:45 <AnMaster> ais523, you need a working printf anyway
19:11:53 <ais523> hmm... I wonder if C-INTERCAL correctly sees that as an error
19:12:21 <ais523> and yes, I'm going to implement or find from somewhere stdlib, stdio, and string, as programmers really assume they need those
19:12:39 * oerjan wonders if there are many programs using ABSTAIN FROM ABSTAINING
19:13:20 -!- megatron has joined.
19:13:28 -!- moozilla has quit (Nick collision from services.).
19:13:31 <ais523> oerjan: probably not, when you're using ABSTAIN as control flow normally you aim for individual lines, and when you aim for a gerund it's usually NEXTING
19:13:32 <AnMaster> ais523, stdint, stdbool and so on too
19:13:49 <ais523> AnMaster: stdint's just macros, right? and stdbool is trivial in gcc
19:14:02 <AnMaster> ais523, well stdint is probably just typedefs
19:14:11 <AnMaster> for int32_t int64_t and such
19:14:20 -!- psygnisfive has quit ("http://www.mibbit.com ajax IRC Client").
19:14:24 <AnMaster> ais523, I think cfunge may use int64_t for some other stuff even if funge space is 32-bit
19:14:25 <AnMaster> not sure
19:14:41 <AnMaster> oh yes TURT fingerprint
19:14:42 <ais523> AnMaster: well, LONG
19:14:47 <AnMaster> but since that writes svg files...
19:14:52 <AnMaster> you wouldn't want it anyway
19:14:55 <AnMaster> and it uses math
19:14:55 <ais523> anyway I'm using a nice generic implementation method
19:15:00 <ais523> for long integers
19:15:07 <AnMaster> ais523, TURT too depends on math.h
19:15:16 <ais523> probably I could add support for 128-bit integers without much trouble (I already have 64-bit long long due to C99)
19:15:29 <AnMaster> ais523, I decided against implementing LONG because it is unportable between 32-bit and 64-bit funges
19:15:30 <ais523> 256-bit would be harder as gcc has no name for a data type that large internally
19:15:37 <AnMaster> causing programs to be unportable rather
19:15:38 <ais523> ah, ok
19:15:46 <ais523> I'm still faced with much the same problem, though
19:16:00 <ais523> which is: what's the most efficient way to multiply 64-bit numbers in 8-bit brainfuck?
19:16:01 <AnMaster> ais523, there is some vector extension?
19:16:07 <AnMaster> and GCC got __int128_t at least
19:16:16 <ais523> AnMaster: I don't use the vector extension
19:16:27 <ais523> and __int128_t will currently be emulated in software by gcc
19:16:33 <AnMaster> ais523, yes i know it will
19:16:39 <AnMaster> or it will use SSE I guess
19:16:41 <ais523> which will probably result in more or less the same code anyway
19:16:42 <AnMaster> on x86_64
19:16:50 <ais523> AnMaster: ah, I was talking about gcc-bf
19:17:02 <ais523> which is fine with 64-bit numbers (it stores them in 8 consecutive registers or memory locations)
19:17:14 <AnMaster> ais523, how many registers do you have=
19:17:15 <AnMaster> ?
19:17:25 <ais523> 64 ordinary registers
19:17:32 <ais523> 5 fixed registers at current
19:17:33 <AnMaster> and how many special purpose?
19:17:38 <AnMaster> ah
19:17:38 <ais523> but probably I'll have more eventually
19:17:40 <AnMaster> program counter?
19:17:43 <AnMaster> and what else?
19:17:44 <ais523> (fixed = gcc's name for special purpose)
19:17:52 <AnMaster> ais523, what ones are they
19:18:09 <ais523> 4 registers which are a combined pc and cc0, and one scratch register
19:18:21 <AnMaster> oh btw I was thinking of generating code at runtime, using JIT with LLVM, could be rather interesting
19:18:26 <ais523> also I have stack pointer and a stack of frame pointers, but they're represented in unary for speed
19:18:29 <AnMaster> I think JITing funge would work
19:18:35 <ais523> AnMaster: probably
19:18:36 <AnMaster> but probably won't do it
19:19:06 <AnMaster> ais523, cfunge's stack can grow rather large I think
19:19:18 <AnMaster> probably outside what 8 bits could represent for size
19:19:37 <AnMaster> oh what is cc0 btw?
19:19:50 <ais523> AnMaster: well gcc-bf supports an unlimited size stack, but you can't take pointers to it or pass structures to or from functions if it grows beyond 16 MB
19:20:03 <AnMaster> ais523, hm 16 MB no
19:20:05 <ais523> AnMaster: condition code, which holds the result of a comparison
19:20:12 <AnMaster> but maybe a few kb on stac
19:20:13 <AnMaster> stack*
19:20:24 <AnMaster> and I do take pointers to stuff on stack all the time
19:20:42 <ais523> AnMaster: not a problem, the stack pointer is represented by two consecutive 0s in a long run of 1s on every sixth tape element
19:20:48 <AnMaster> since I prefer variable on stack and pointer rather than having to remember to free
19:20:55 <ais523> so you can get to the stack pointer easily with [[>>>>>>]>>>>>>]
19:21:08 <AnMaster> makes better code IMO
19:21:13 <AnMaster> unless variables are large
19:21:15 <ais523> and pointers to the stack are 24-bit integers with an extra byte stating that they're on the stack
19:21:16 -!- Hiato has quit ("Leaving.").
19:21:26 <ais523> and yes, I agree with you, alloca was probably invented for that purpose
19:21:36 <AnMaster> ais523, I got some 1024 * 8 bytes arrays on stack in one function or another iirc
19:21:37 <ais523> pity it isn't standard C really, probably some systems can't manage it
19:21:39 <AnMaster> assuming 64-bit funge
19:21:47 <AnMaster> 1024 * 4 otherwise
19:21:57 <AnMaster> actually it may be char buf[1024]
19:21:57 <ais523> AnMaster: 8KB is fine, although might take a while to access
19:21:59 <AnMaster> don't remmeber
19:22:21 <ais523> BTW can cfunge cope with 16-bit int?
19:22:27 <AnMaster> ais523, no
19:22:32 <ais523> it ought to be able to if you use types correctly, hardly anyone does though
19:22:34 <AnMaster> definitely not
19:22:37 <ais523> C-INTERCAL can't, I know
19:22:41 <AnMaster> ais523, well maybe
19:22:45 <AnMaster> not sure
19:23:00 <AnMaster> I probably use int32_t most of the time
19:23:02 <ais523> ideally I should be able to set sizeof(int)=2 in gcc-bf, but everything assumes it's 4 nowadays so I'll have it as a command-line option
19:23:03 <AnMaster> but not sure
19:23:46 <AnMaster> anyway stack won't ever get 16 MB
19:23:50 <AnMaster> heap can probably
19:24:34 <ais523> I think I know how to implement pointers larger than 26-bit
19:24:50 <ais523> hmm... how many BF interpreters can cope with over 72 million successive > signs?
19:24:51 <AnMaster> ais523, fingerprints use a *lot* of function pointers, remember that
19:25:03 <ais523> AnMaster: function pointers are in a separate memory space
19:25:03 <AnMaster> and I have a static array with function pointers
19:25:05 <AnMaster> for the loaders
19:25:14 <AnMaster> static const array even
19:25:15 <ais523> which allows 16 mebifunctions
19:25:22 <AnMaster> ais523, 16 what?
19:25:35 <ais523> mebi=2^20 just like mega=10^6
19:25:37 <AnMaster> anyway I got way more than 16 functions that I use function pointers to
19:25:39 <Deewiant> ais523: 72 million? that's what, 300 megabytes of memory?
19:25:42 <AnMaster> .....
19:25:48 <ais523> Deewiant: no, 72 megabytes
19:25:58 <Deewiant> ais523: is each cell not 4 bytes
19:26:02 <ais523> AnMaster: so you have over 16 million total functions + labels
19:26:07 <AnMaster> hah ok
19:26:08 <ais523> Deewiant: no, 8-byte cells
19:26:16 <Deewiant> ais523: so then it's more like 600 megabytes
19:26:18 <ais523> if you store an int it's stored in 4 successive cells
19:26:29 <AnMaster> ais523, I do use goto for error handling in FILE and SOCK where I need similiar clean up paths in a lot of cases
19:26:35 <AnMaster> otherwise goto is very very sparse
19:26:38 <ais523> it uses a bit over 72 million cells
19:26:39 <AnMaster> if ever outside those two
19:26:49 <ais523> AnMaster: everything's translated into goto in the asm anyway
19:26:55 <ais523> so it doesn't matter what it was in your code
19:26:57 <AnMaster> ais523, well I meant at C level
19:27:05 <ais523> while is a convenience for the programmer, not for the compiler
19:27:07 <AnMaster> ais523, err
19:27:08 <AnMaster> not goto
19:27:10 <AnMaster> call/ret
19:27:17 <AnMaster> I'm sure of that functions call are not goto
19:27:22 <AnMaster> or you couldn't return
19:27:24 <ais523> AnMaster: call/ret is also translated into goto the way I'm doing things
19:27:30 <ais523> it pushes a label onto the stack first
19:27:33 <ais523> then gotos the function
19:27:33 <AnMaster> ais523, oh btw I sometimes return structs
19:27:36 <AnMaster> by value
19:27:39 <ais523> the function pops a label from the stack
19:27:41 <AnMaster> actually just in one place
19:27:46 <AnMaster> but I still do it there
19:27:51 <AnMaster> not sure if you can handle that
19:27:58 <AnMaster> it is a { x, y } struct
19:28:02 <ais523> AnMaster: if you're using gcc, no you don't, it automatically rewrites that as pass by reference
19:28:21 <ais523> but if the struct's 64 bits or smaller it stores it in a long long instead and it doesn't matter that it's a struct
19:28:21 <AnMaster> ais523, hm doesn't make sense since I construct that in *return*
19:28:23 <AnMaster> like:
19:28:38 <AnMaster> return (fungeVector) { .x = x, .y = y };
19:28:39 <AnMaster> that
19:28:47 <AnMaster> not sure where it would place the reference
19:29:12 <ais523> AnMaster: the function that calls it allocates space for a fungeVector on the stack and passes a pointer to it to the function that returns a fungeVector
19:29:22 <AnMaster> ais523, ugh
19:29:28 <ais523> then the function returning a fungeVector stores in the memory referenced by that pointer
19:29:36 <AnMaster> ais523, but that breaks AMD64 ABI
19:29:37 <ais523> AnMaster: that's how gcc and most other compilers handle struct returns
19:29:47 <AnMaster> AMD64 ABI would return that struct in registers
19:29:48 <AnMaster> iirc
19:29:50 <ais523> except it modifies it to conform with ABIs if possible
19:30:03 <ais523> it does use registers for things 64-bit and smaller, I think
19:30:12 <ais523> except to conform with someone else's ABI
19:30:25 <AnMaster> I think, but I'm not sure, that AMD64 ABI splits such a struct up over 2 registers...
19:30:32 <ais523> and probably can handle 128-bit structs too on systems which can normally return long long longs in registers, don't know how many of those exist though
19:30:34 <AnMaster> can't find the pdf atm
19:30:48 <AnMaster> long long long?
19:30:49 <AnMaster> that exist?
19:30:50 <Deewiant> AnMaster: just compile with optimizations on and look at the asm
19:30:58 <ais523> for instance atm the gcc-bf ABI returns 64-bit integers and structs in registers r0-r7
19:31:08 <ais523> AnMaster: no it doesn't, but what else could you call a 128-bit int?
19:31:18 <AnMaster> ais523, int128_t
19:31:35 -!- oklofok has quit (Read error: 104 (Connection reset by peer)).
19:31:36 -!- oklopol has joined.
19:31:36 <ais523> well yes, but long long long has a swing to it
19:32:11 <AnMaster> hah
19:33:02 <tusho> long short
19:33:12 <ais523> tusho: I want 24-bit ints!
19:33:14 <ais523> 48-bit too
19:33:20 <AnMaster> ais523, why on earth?
19:33:22 <AnMaster> wait
19:33:24 <ais523> there are a whole lot of missing lengths of integers
19:33:32 <tusho> ais523: what would long short be?
19:33:34 <ais523> actually mysql has a 24-bit data type AFAIR
19:33:36 <AnMaster> struct foo { unsigned int bar:24; }
19:33:38 <tusho> also
19:33:39 <AnMaster> ais523, that *may* work
19:33:42 <tusho> what about negative half trit
19:33:43 <tusho> :D
19:33:46 <AnMaster> bit field
19:33:48 <tusho> turkey booooooooooomb!
19:33:55 <ais523> AnMaster: interesting, I wonder if that's 3 bytes on gcc-bf?
19:34:04 <ais523> I've told the compiler not to pad anywhere unless the user asks for it
19:34:07 <ais523> or to make whole bytes
19:34:11 <AnMaster> ais523, well I never tried anything but one bit bitfields
19:34:25 <AnMaster> but iirc other values than 1 work too
19:34:35 <ais523> AnMaster: most compilers will give you a 32-bit struct if you do that
19:34:40 <ais523> with 8 bits of padding
19:34:48 <ais523> at least on most processors
19:34:59 <ais523> but will access it like a 24-bit unsigned int
19:35:06 <ais523> by ignoring the top 8 bits
19:35:07 <AnMaster> ais523, cfunge uses bitfields, I made sure the structs had as few holes as possible on x86 and x86_64 using both 32-bit and 64-bit funges
19:35:11 <AnMaster> tried all combos
19:35:19 <AnMaster> used a tool the kernel developers made: pahole
19:35:28 <AnMaster> it reads the debug info from -g and lists any holes
19:35:31 <ais523> AnMaster: I know, you told me earlier
19:35:31 <AnMaster> very nifty tool
19:35:38 <AnMaster> I did?
19:35:40 <AnMaster> you got good memory
19:35:45 <AnMaster> unlike me
19:36:18 <AnMaster> ais523, anyway how do you do bitfields in your gcc-bf?
19:36:28 <ais523> AnMaster: badly
19:36:35 <ais523> it takes lots of bitwise operations
19:36:38 <AnMaster> ais523, as in slow? or incorrect?
19:36:44 <ais523> AnMaster: very slow but correct
19:36:45 <AnMaster> ais523, well cfunge will be hellish slow then
19:36:49 <ais523> lots of multiplication and division in loops
19:36:57 <AnMaster> ais523, since it accesses a few bitfields for every instruction executed
19:37:08 <AnMaster> basically: isStringMode
19:37:09 <AnMaster> and
19:37:21 <AnMaster> wait more than that
19:37:27 <AnMaster> ipMode mode; ///< String or code mode.
19:37:28 <AnMaster> bool needMove:1; ///< Should ipForward be called at end of main loop. Is reset to true each time.
19:37:28 <AnMaster> bool stringLastWasSpace:1; ///< Used in string mode for SGML style spaces.
19:37:28 <ais523> AnMaster: probably it would be worth having a mode that unpacked the bitfields into one unsigned char per bitfield
19:37:29 <AnMaster> that is it
19:37:44 <AnMaster> ais523, not really on x86/x86_64
19:37:46 <AnMaster> I checked there
19:37:55 <tusho> so
19:37:56 <tusho> avofs
19:37:56 <AnMaster> no noticable difference
19:37:58 <ais523> oh, I think it's probably a lot faster on gcc-bf if you don't have many bits in your bitfield
19:38:07 <ais523> but chars will still be faster still
19:38:08 <tusho> oh wow, some intercal code! in the wild!
19:38:12 <tusho> coooooooool
19:38:12 <AnMaster> ais523, there is another one:
19:38:13 <AnMaster> bool fingerSUBRisRelative:1; ///< Data for fingerprint SUBR.
19:38:20 <ais523> tusho: whwew did you find it?
19:38:30 <tusho> ais523: i'd tell you but then i'd have to kill you
19:38:35 <tusho> not a good deal overall i think
19:38:48 <Deewiant> AnMaster: ew, bitfields
19:38:54 <AnMaster> Deewiant, why?
19:38:57 <ais523> AnMaster: are these constant structs?
19:39:00 <ais523> or do they change over time
19:39:03 <Deewiant> AnMaster: I was just about to ask you :-P
19:39:03 <AnMaster> ais523, no that is in ip struct
19:39:07 <AnMaster> so it changes a lot
19:39:14 <ais523> ok
19:39:19 <AnMaster> ais523, and is checked once every time in main loop
19:39:22 <AnMaster> or something like that
19:39:25 <AnMaster> one of them is
19:39:31 <ais523> anyway I suspect gcc-bf will be painfully slow if run on an ordinary BF interpreter
19:39:35 <AnMaster> needMove in concurrent funge
19:39:39 <AnMaster> Deewiant, ??
19:39:47 <Deewiant> AnMaster: why bitfields
19:39:52 <AnMaster> Deewiant, why not?
19:40:09 <AnMaster> ais523, you could create one that reverse compile it to C...
19:40:10 <AnMaster> ;P
19:40:18 <Deewiant> more code, and probably slower
19:40:29 <AnMaster> Deewiant, as I said, there was no noticable difference
19:40:37 <ais523> AnMaster: well I'm going to litter the output with optimisation data
19:40:41 <Deewiant> yeah, probably not noticeable
19:40:52 <Deewiant> but it's one extra instruction for each access :-P
19:40:52 <ais523> such as @4 to mean "the pointer is now at cell 4 of the tape"
19:40:56 <AnMaster> Deewiant, and I'm not that speed crazy
19:41:08 <AnMaster> Deewiant, plus this means it will fit into my L2 cache ;)
19:41:10 * AnMaster ducks
19:41:33 <Deewiant> AnMaster: surely it'd be cached anyway
19:41:35 <ais523> AnMaster: not L1?
19:41:43 <AnMaster> ais523, this is a sempron
19:41:46 <tusho> GREEN THINGS!!
19:41:50 <tusho> GREN THINGS DEVEOTED TO MACHINESSSSSSSSSSS
19:41:51 <AnMaster> so very very SMALL cache
19:41:54 <tusho> SDFSDS;DFSL;FKSDFL;KD;AKD;ASDK;ASDK;ALSD^G^G^G^G
19:41:55 <AnMaster> so about nothing fits
19:42:02 <tusho> DDDDDDD:DDDDD
19:42:09 <AnMaster> heck even the P3 near here got larger cache
19:42:10 <tusho> KJLjkLJklJKLjLjkLJlkJljKLjlkklJ
19:42:12 <AnMaster> slower yes
19:42:14 <AnMaster> but more cache
19:42:19 <ais523> AnMaster: you could probably fit a BF interp written in asm into it, those can be very small indeed
19:42:21 <tusho> o_XXXXXXXXXX
19:42:25 <AnMaster> ais523, cache size : 128 KB
19:42:28 <tusho> ,o/ /// o\,
19:42:30 <AnMaster> from /proc/cpuinfo
19:42:34 <AnMaster> the P3 got twice that
19:42:37 <ais523> 128 KB isn't very small!
19:42:47 <AnMaster> and of course it will have lot of other stuff
19:42:49 <tusho> HO HO I HEARTY LAFF
19:42:51 <tusho> LAFFLAFLAFLAFLALFAF
19:42:51 <AnMaster> than just hte ip struct
19:43:01 <ais523> by "very small" I thought you meant a few hundred bytes, that's what I'm used to working with sometimes
19:43:09 <tusho> DO YOU LAF
19:43:12 <AnMaster> ais523, hah
19:43:13 <tusho> PIGS HOW DO YOU LAFGHU
19:43:17 <tusho> dddd
19:43:47 <AnMaster> ais523, modern x86 can have caches larger than 2-3 MB these days
19:44:01 <ais523> AnMaster: even in the L1?
19:44:04 <Deewiant> AnMaster: L1 caches, nope
19:44:07 <Deewiant> +for
19:44:15 <AnMaster> indeed not for L1
19:44:21 <AnMaster> for L1 the most I seen is 512 kb
19:44:24 <AnMaster> iirc
19:44:39 <tusho> iDISAGREElol,wiht ur jiaoj ioj
19:44:52 <AnMaster> why do we have a randomness generator in here?
19:45:08 <ais523> AnMaster: we have at least two. optbot, fungot, hi!
19:45:08 <optbot> ais523: If anybody wishes: Throw a runtime exception with the message "I'm in ur channel throwin ur exceptionz."
19:45:09 <fungot> ais523: paste all the urls i've visited. strange.) an earlier version of sql but not without? :p. ugh i need to enter " qemu" to edit a file that has ?scm ( fnord " source-file.scm"))
19:45:13 <tusho> comic effect lol
19:45:15 <AnMaster> ais523, 3
19:45:16 <AnMaster> then
19:45:17 <Deewiant> ^echo optbot
19:45:17 <fungot> optbot optbot
19:45:18 <optbot> Deewiant: !bf8 +[<+>+<+>+<+>+<+]
19:45:18 <optbot> fungot: even ignoring the fact that you've read his book
19:45:18 <fungot> optbot: it was too easy heh one time i figured out my bug :d)
19:45:19 <AnMaster> tusho, fungot optbot
19:45:19 <optbot> fungot: you lose, by a lot
19:45:19 <optbot> AnMaster: Knock knock.
19:45:20 <fungot> AnMaster: it doesn't look like it does the fnord i want to do is to write a render procedure for sdl is just a value that prints as void. it is a load of hell. twice. most confusing. :p ( although theoretically speaking i could try.
19:45:20 <AnMaster> all of them
19:45:21 <fungot> optbot: i'm certain he isn't annoying at all. the code i write, more should be all set)) f
19:45:21 <optbot> fungot: +2 5=7
19:45:22 <fungot> optbot: actually just parsing ski says. remember physics 103, modern physics, general functions i suppose.
19:45:23 <optbot> fungot: indeed. everything is subjective
19:45:25 <fungot> optbot: fopen(3) freebsd library functions manual fopen(3)
19:45:26 <optbot> fungot: the short way ;)
19:45:27 <fungot> optbot: i made it up as much as cheap jokes would like you to die, but it does not render via cocoa, and qt/ kde
19:45:28 <optbot> fungot: Jim is pretty much a light Tcl interpreter, with nice things like "closures" added.
19:46:06 <tusho> 3
19:46:13 <tusho> 4 COMIC EFFECT CLEAN MAKER 2!!!!!!
19:49:24 <AnMaster> ais523, anyway if you want floating point to work with cfunge means float will be exactly 32-bit and double exactly 64-bits
19:49:35 <AnMaster> since I have to mess around with unions
19:49:39 <AnMaster> for some fingerprints
19:49:54 <ais523> don't worry, those are exactly the sizes of floating point I'm using
19:49:55 <Deewiant> AnMaster: aren't there float32_t types
19:49:58 <Deewiant> or some such
19:49:59 <ais523> although long double = double
19:50:04 <AnMaster> Deewiant, nop
19:50:12 <Deewiant> hoorays for standard C
19:50:17 <Deewiant> hip hip, hooray
19:50:19 <Deewiant> hip hip, hooray
19:50:19 <AnMaster> ais523, that is fine, while I do use long double I never depend on it's size
19:50:20 <Deewiant> hip hip, hooray
19:50:21 <ais523> Deewiant: I don't think so, systems on which float wasn't 32 bits almost certainly wouldn't implement them so it would be pointless
19:50:39 <ais523> Deewiant: float formats are a lot more varied than int formats
19:50:39 <Deewiant> ais523: why wouldn't they
19:51:32 <AnMaster> ais523, cfunge will need both sin() and sinf() then, and you would just map sinl() to sin()
19:51:57 <ais523> Deewiant: different processors have different sort of float support, for instance things like the 387 work in 80-bit float internally, so it can cause problems by having too much precision internally as double is only 64
19:52:11 <AnMaster> yes
19:52:15 <Deewiant> ais523: why would that be a problem
19:52:19 <AnMaster> and long double on x86_64 is 128-bits
19:52:23 <AnMaster> it uses SSE
19:52:26 <Deewiant> an algorithm that relies on a certain bittiness is broken anyway
19:52:40 <ais523> that's one example, most compilers have an option to emulate exact 64-bit double and normally just switch between 64 and 80 at will because normally too much precision is not a problem
19:53:19 <Deewiant> ais523: I still don't see why that would prevent a float32_t from existing
19:53:24 <ais523> but gcc has options to work exactly to the spec and use exactly the right amount of precision by copying the float values into memory and back every operation
19:53:45 <ais523> Deewiant: it would have to be implemented in software, slowing the program down a lot and requiring floating point emulation libraries
19:54:03 <Deewiant> ais523: it doesn't have to have any specific characteristics
19:54:20 <Deewiant> if you have 36-bit floats you can have 32-bit floats which just have 4 bits of the exponent always zero
19:54:20 <AnMaster> <ais523> but gcc has options to work exactly to the spec and use exactly the right amount of precision by copying the float values into memory and back every operation
19:54:21 <AnMaster> err
19:54:22 <AnMaster> no
19:54:28 <AnMaster> you can set the precision
19:54:30 <AnMaster> with some instruction
19:54:32 <AnMaster> pretty sure
19:54:54 <ais523> AnMaster: it's one of the -mwhatever options on x86, I know because I was reading the gcc manual last night
19:55:00 <tusho> jkjlkjlfkdjkdlfjfdg
19:55:06 <tusho> AIS523 AnMaster Deewiant AIS523 AnMaster Deewiant AIS523 AnMaster Deewiant AIS523 AnMaster Deewiant AIS523 AnMaster Deewiant AIS523 AnMaster Deewiant AIS523 AnMaster Deewiant AIS523 AnMaster Deewiant AIS523 AnMaster Deewiant AIS523 AnMaster Deewiant
19:55:21 <Deewiant> tusho: congrats, you're the first person I've ignored in years
19:55:27 <tusho> awesome
19:55:41 <AnMaster> ais523, um -mpc64 ?
19:56:12 <AnMaster> ais523, but iirc that sets some floating point control register
19:56:14 <AnMaster> or such
19:56:20 <ais523> AnMaster: I don't think so, but I can't remember what the option was offhand, it had some long name
19:56:29 <Deewiant> mfpmath rings a bell, related?
19:56:39 <AnMaster> Deewiant, that is for selecting x87 or see
19:56:41 <AnMaster> sse*
19:56:48 <Deewiant> meh
19:56:59 <AnMaster> -m96bit-long-double
19:56:59 <AnMaster> -m128bit-long-double
19:57:04 <AnMaster> can't be that
19:57:09 <AnMaster> they are for alignment in structs
19:57:40 <tusho> i wonder if i can get ignored by everyone in #esoteric
19:57:41 <tusho> that would rock
19:58:01 <fizzie> AnMaster, ais523: are you sure you don't mean -ffloat-store?
19:58:17 <ais523> fizzie: ah, that might be it
19:58:24 <fizzie> "Do not store floating point variables in registers -- This option prevents undesirable excess precision --"
19:58:38 <AnMaster> um
19:58:40 <AnMaster> hm
19:58:48 <ais523> tusho: well I just ignored you to help you with your mission, I'll probably unignore you again in a bit
19:58:50 <AnMaster> but what about setting the control register of x87?
19:58:54 <tusho> sweet
19:58:56 <AnMaster> I'm 99% sure that is possible
19:58:58 <tusho> fizzie: /ignore me, would you?
19:59:06 <tusho> FUNNY JOKE POSSIBILITY:
19:59:10 <tusho> fizzie stays silent
19:59:13 <AnMaster> funny, I don't plan to ignore tusho
19:59:14 <tusho> ...because he's already ignoring me
19:59:14 <ais523> fizzie: yes, that's what I was thinking of
19:59:30 <AnMaster> mentally sure
19:59:33 <AnMaster> but not with client
19:59:42 <AnMaster> ironic that tusho can't read this
20:00:04 <ais523> I'll paste it, I'm ignoring tusho but I don't think tusho's ignoring me
20:00:11 <tusho> i am not
20:00:16 <ais523> 19:59AnMasterfunny, I don't plan to ignore tusho 19:59AnMastermentally sure 19:59AnMasterbut not with client 19:59AnMasterironic that tusho can't read this
20:00:26 <AnMaster> ah yes now he can
20:00:26 <tusho> AnMaster i see you
20:00:29 <tusho> i see you with my eyes
20:00:29 <AnMaster> since you pasted it
20:00:30 <tusho> or rather
20:00:33 <tusho> through ais523's eyes.
20:00:43 <tusho> ^echo HELLO WORLD HEAR ME ROAR
20:00:44 <fungot> HELLO WORLD HEAR ME ROAR HELLO WORLD HEAR ME ROAR
20:00:47 <AnMaster> well I don't plan to paste back what tusho said
20:00:51 <AnMaster> that would be too silly
20:00:52 <tusho> ^bf ,[.,]!ah this is better
20:00:53 <fungot> ah this is better
20:01:02 <tusho> ^bf ,[.,]!so Deewiant... adhisaweh8q2y381786*(y88 PANCAKES
20:01:02 <fungot> so Deewiant... adhisaweh8q2y381786*(y88 PANCAKES
20:01:03 <ais523> AnMaster: yep
20:01:07 <ais523> I might logread it later
20:01:47 <AnMaster> ais523, does c-intercal compile with ICC?
20:02:02 <ais523> AnMaster: never tried, it should compile with most things though
20:02:16 <AnMaster> ais523, icc supports a lot of GCC extensions btw, it even defines __GNUC__ by default to get GNU specific stuff from system headers
20:02:16 <ais523> it even used to compile with pre-C89 C
20:02:42 -!- Hiato has joined.
20:02:50 <AnMaster> but cfunge manage without those (-no-gcc to ICC)
20:03:25 <KingOfKarlsruhe> http://imgs.xkcd.com/comics/python.png
20:03:37 <AnMaster> ais523, ah it will have to wait since I can't do out of tree build
20:03:44 <AnMaster> don't feel like making a copy of the source
20:03:45 <AnMaster> sorry
20:04:15 <ais523> ah, ok
20:04:25 <AnMaster> ais523, *HINT HINT*
20:05:22 <AnMaster> ais523, as I don't have icc on my amd64 (for obvious reasons) I would nfs mount the source and compile it on the p3 using icc
20:05:23 <ais523> AnMaster: to me building out of tree is just extra complexity to the user, besides it does build out of tree just the out of tree place it builds is a fixed place elsewhere in the tree
20:05:43 <AnMaster> ais523, well that is not really out of tree
20:05:53 <AnMaster> I normally have several different builds of cfunge
20:05:56 <AnMaster> on same source
20:06:03 <AnMaster> all of them out of tree thus
20:06:29 <ais523> AnMaster: well you can create a new tree with just the base directory with configure and an empty lib, include, bin, and temp, symlink the src directory, and reconfigure
20:06:38 <ais523> that's how you do an out of tree C-INTERCAL build
20:06:44 <ais523> admittedly that isn't obvious though
20:06:46 <AnMaster> ais523, well that seems complex
20:06:56 <AnMaster> ais523, but I suggest supporting it the real way
20:06:56 <AnMaster> :)
20:08:06 <ais523> it would be pretty easy to support actually, you could just have the configure script create lib include bin and temp, and symlink src, then compile the normal way
20:08:16 <ais523> or have an out-of-tree-configure which was a wrapper
20:08:21 <tusho> ais523: ping
20:09:45 <AnMaster> ais523, well I suggest doing it like everyone else does
20:10:05 <ais523> <AnMaster> ais523, well I suggest doing it like everyone else does <--- I think you are missing the point of INTERCAL
20:10:25 <AnMaster> ais523, hah
20:10:26 <AnMaster> ok
20:11:44 <AnMaster> ais523, what is the command to check out darcs now again?
20:11:52 <AnMaster> of intercal
20:11:55 -!- Corun has quit ("This computer has gone to sleep").
20:12:04 * ais523 tries to remember
20:12:26 <ais523> darcs pull http://code.eso-std.org/c-intercal/
20:12:37 <AnMaster> darcs failed: Unable to "darcs pull" here.
20:12:37 <AnMaster> You need to be in a repository directory to run this command.
20:12:40 <tusho> no
20:12:41 <tusho> darcs get
20:12:45 <tusho> ais523 can't see that
20:12:48 <tusho> but i think AnMaster can
20:12:50 <tusho> if you can, say yes
20:12:51 <tusho> i'll logread
20:12:51 <AnMaster> ah thanks tusho
20:12:53 <ais523> tusho: yes I can, I unignored you about 2 minutes ago
20:13:01 <ais523> but that's the first thing you did since
20:13:14 <ais523> s/did/said/
20:13:43 <AnMaster> ais523, does darcs work over nfs?
20:13:58 <ais523> AnMaster: no idea, I don't see why not though
20:14:56 <AnMaster> -xK -march=pentium3 -O3 -ipo -no-prec-div
20:14:59 <AnMaster> I *think*
20:15:20 <AnMaster> ais523, please makde config.sh +x
20:15:23 <AnMaster> it would be very useful
20:15:33 <ais523> AnMaster: bug in darcs, it is at my end but darcs forgets file permissions
20:15:38 <ais523> probably the most famous bug in darcs
20:15:42 <tusho> not a bug
20:15:43 <tusho> a feature
20:15:44 <tusho> i think
20:16:02 <ais523> tusho: no, it's a bug, just it's really difficult to fix for some reason or they would have fixed it already I suspect
20:16:05 <AnMaster> checking for gcc... icc
20:16:06 <AnMaster> eh?
20:16:13 <AnMaster> checking whether we are using the GNU C compiler... yes
20:16:16 <AnMaster> ok.. whatever
20:16:18 <tusho> ais523: darcs development has slooooooooowed to a crawl
20:16:22 <ais523> AnMaster: it check for __GNUC__
20:16:25 <tusho> and a buncha people are switching darcs -> git
20:16:30 <tusho> i think it's on death row, it just doesn't know it yet
20:16:39 <AnMaster> ais523, && !defined(__INTEL_COMPILER)
20:16:53 <ais523> AnMaster: that test is to see if gcc extensions can be used
20:16:55 <AnMaster> src/oil.y(466): remark #810: conversion from "int" to "char" may lose significant bits
20:16:55 <AnMaster> buf[bi++]=c;
20:16:55 <AnMaster> ^
20:16:55 <AnMaster> nice
20:17:00 <ais523> there are other tests for things like command line arguments
20:17:11 <AnMaster> src/dekludge.c(55): remark #1419: external declaration in primary source file
20:17:11 <AnMaster> extern void prexpr(node *np, FILE* fp, int freenode); /* AIS */
20:17:11 <AnMaster> ^
20:17:11 <AnMaster> yes
20:17:32 <AnMaster> ais523, there should be no extern in C files in icc's opinion
20:17:35 <AnMaster> I agree most of the time
20:17:41 <AnMaster> there is one case in cfunge
20:17:46 <AnMaster> extern char **environ;
20:17:47 <ais523> AnMaster: oh, and storing the result of getchar in a char is a reasonable thing to do IMO once you've verified separately that it isn't EOF
20:17:57 <ais523> AnMaster: what about extern int errno?
20:17:58 <AnMaster> ais523, agreed
20:18:01 <AnMaster> ais523, wrong
20:18:03 <AnMaster> use errno.h
20:18:04 <AnMaster> always
20:18:10 <AnMaster> ais523, since at least here it is not an int
20:18:13 <ais523> AnMaster: yes, but that's included into your source
20:18:14 <AnMaster> it is something more complex
20:18:17 <AnMaster> that is rentrant
20:18:19 <AnMaster> ais523, it is not
20:18:35 <AnMaster> #include <errno.h>
20:18:38 <AnMaster> always
20:18:43 <ais523> AnMaster: yes, I know, that's how I do it too
20:18:53 <ais523> what I'm saying is shouldn't it complain about the extern in errno.h?
20:19:01 <AnMaster> ais523, that is a header
20:19:02 <ais523> or does it give header files a free pass?
20:19:04 <AnMaster> different
20:19:09 <AnMaster> ais523, yes indeed it does
20:19:18 <AnMaster> icc: command line remark #10148: option '-W' not supported
20:19:19 <AnMaster> icc: command line warning #10120: overriding '-O2' with '-O3'
20:19:19 <AnMaster> hm
20:19:25 <AnMaster> ais523, if you want all warnings try -Wall
20:19:33 <ais523> it has both -W and -Wall I think
20:19:38 <AnMaster> ais523, ICC doesn't
20:19:45 <AnMaster> ais523, so better check such stuff
20:19:50 <ais523> -W is the old name for -Wextra in gcc, and C-INTERCAL is stuck in the past
20:20:00 <AnMaster> ais523, consider being portable?
20:20:09 <AnMaster> if you still work on DOS
20:20:14 <AnMaster> why not work on ICC correctly
20:20:15 <ais523> AnMaster: it's portable in theory but hasn't been tested on non-gcc compilers for years
20:20:20 <ais523> so some gccisms may have snuck in
20:20:24 <ais523> without anyone noticing
20:20:41 <AnMaster> src/abcess.h(210): remark #193: zero used for undefined preprocessing identifier
20:20:41 <AnMaster> #if (MULTITHREAD != 0) || (YUKDEBUG != 0) || defined(ICK_EC)
20:20:41 <AnMaster> ^
20:20:42 <ais523> oh, some of the external calls stuff relies on gnu ld to work
20:20:44 <tusho> so who agrees with me: random noise pixels look pretty
20:20:45 <AnMaster> not sure what that is
20:20:46 <AnMaster> ais523, ^
20:20:56 <AnMaster> I think it may not do what you want
20:21:02 <AnMaster> try defined()
20:21:11 <ais523> AnMaster: oh, I do, it's a little-known feature of the C preprocessor which is confusing
20:21:21 <AnMaster> ais523, ?
20:21:23 <ais523> that undefined preprocessing identifiers are treated as 0 in #if
20:21:32 <AnMaster> yes
20:21:34 <AnMaster> but still
20:21:35 <AnMaster> why use that
20:21:44 <AnMaster> src/abcess.h(112): remark #310: old-style parameter list (anachronism)
20:21:44 <AnMaster> extern void ick_resize();
20:21:52 <tusho> well i was just logreading
20:21:53 <tusho> AnMaster:
20:21:54 <AnMaster> try adding a void in there?
20:21:56 <Deewiant> boohoo, anachronism
20:21:59 <tusho> intercal is meant to be different in every way
20:22:01 <Deewiant> who cares, it's correct
20:22:02 <tusho> for no reason at all.
20:22:04 <tusho> get that in to your head.
20:22:08 -!- dogface has quit (Read error: 60 (Operation timed out)).
20:22:21 <AnMaster> ok
20:22:25 <AnMaster> tusho, will LOVE this
20:22:26 <AnMaster> src/lexer.l(308): (col. 13) remark: REVERSED LOOP WAS VECTORIZED.
20:22:27 <AnMaster> src/lexer.l(307): (col. 13) remark: REVERSED LOOP WAS VECTORIZED.
20:22:27 <AnMaster> src/lexer.l(306): (col. 13) remark: REVERSED LOOP WAS VECTORIZED.
20:22:32 <ais523> AnMaster: I probably would have if I caught it earlier, I had to add prototypes to bits of C-INTERCAL earlier, though
20:22:34 <AnMaster> look it optimised c-intercal!
20:22:35 <AnMaster> to use SSE
20:22:42 <AnMaster> and vectorised loops
20:22:46 <AnMaster> I know tusho loves such
20:22:50 <AnMaster> I don't care...
20:22:58 <ais523> AnMaster: gcc does that too at -O3, it just doesn't tell you about it unless you ask it to
20:23:06 <AnMaster> ais523, try protoize
20:23:11 <AnMaster> comes with gcc iirc
20:23:21 <ais523> AnMaster: yes, I hadn't heard about it back then and the conversion was years ago
20:23:23 <AnMaster> ais523, well default is to tell
20:23:30 <AnMaster> ais523, how can you get gcc to tell you btw?
20:23:49 <ais523> AnMaster: not sure by the way, it's probably in one of the debugging dumps
20:23:58 <AnMaster> ah
20:24:01 <ais523> gcc tends not to have options to shout at you whenever it does an optimisation
20:24:20 <ais523> AnMaster: yesterday for fun I turned on all the debug dumps on a very simple program and it created about 100 of them
20:24:27 <AnMaster> ais523, well there are optimising log verbosity(sp?) level for icc
20:24:41 <AnMaster> to stdout though
20:24:49 <AnMaster> temp/oilout03.c(3): remark #1418: external function definition with no prior declaration
20:24:49 <AnMaster> int optimize_pass1_3(node *np)
20:25:06 <AnMaster> it thinks there should either be a prototype in a header or it should be static
20:25:18 <AnMaster> ais523, and GCC will say that too with the right switches
20:25:33 <ais523> AnMaster: there is in most cases, that function results from splitting optimize_pass1 into smaller pieces so it doesn't crash gcc on ia64 though
20:25:38 <ais523> that bug was reported by Debian
20:25:48 <AnMaster> ais523, hm here is one that *could* be bad, or *could* be just a false positive:
20:25:49 <AnMaster> temp/oilout01.c(106): remark #981: operands are evaluated in unspecified order
20:25:50 <AnMaster> x=x3; c=c3; if(!(!(x&2863311530LU)&&iselect(x,1431655765LU)==xselx(iselect(x,1431655765LU)))) break;
20:25:56 <AnMaster> ^
20:26:04 <ais523> no, that's not bad
20:26:13 <ais523> iselect and xselx are both pure functions
20:26:23 <ais523> so it doesn't matter which order they're evaluated in
20:26:39 <AnMaster> ais523, well how do you do linking?
20:26:40 <AnMaster> calling ld?
20:26:43 <AnMaster> or calling compiler?
20:26:49 <ais523> calling compiler
20:26:52 <AnMaster> I think ICC will break if you call ld
20:26:53 <AnMaster> ah good
20:26:54 <ais523> using shell expansion
20:27:04 <AnMaster> ais523, icc will do cross-object optimising
20:27:06 <ais523> $CC oilout*.o
20:27:10 <AnMaster> so it will put those together again
20:27:17 <ais523> AnMaster: and crash on IA64?
20:27:18 <AnMaster> at the final linking
20:27:23 <AnMaster> ais523, maybe, don't know
20:27:33 <ais523> AnMaster: maybe it has more memory than the Debian autobuilders
20:27:34 <AnMaster> gcc is very memory hungry
20:27:36 <AnMaster> remember that
20:27:48 <ais523> btw I also managed to get it to crash even on x86 once, the split avoided that problem
20:28:01 <AnMaster> ais523, gcc is very memory hungry
20:28:43 <AnMaster> sh -c "(test -f /home/anmaster/local/ick/share/info/ick.igz && : --quiet --dir-file=`echo /dev/null` /home/anmaster/local/ick/share/info/ick.igz) || true"
20:28:44 <AnMaster> err
20:28:46 <ais523> <n1124.pdf> After all replacements due to macro expansion and the defined unary operator have been performed, all remaining identifiers are replaced with the pp-number 0, and then each preprocessing token is converted into a token.
20:28:48 <AnMaster> --dir-file=`echo /dev/null`
20:28:51 <AnMaster> ais523, WHAT THE HECK?
20:29:01 <AnMaster> --dir-file=/dev/null
20:29:04 <AnMaster> is what you mean
20:29:07 <AnMaster> not echo like that
20:29:09 <ais523> well yes, surely
20:29:19 <ais523> I think things must have been evaluated in the wrong order
20:29:23 <ais523> still, it comes to the right thing
20:29:32 <ais523> and besides it's running : which ignores all its arguments anyway
20:29:40 <ais523> so no problem
20:29:49 <ais523> ah, the joys of autoconf
20:30:21 <AnMaster> ais523, will ick use $CC or gcc?
20:30:36 <AnMaster> the actual compiler compiles with icc
20:30:38 <ais523> AnMaster: it /ought/ to use $CC, that hasn't been tested for years though
20:30:41 <AnMaster> that I can say
20:30:44 <ais523> so quite possibly doesn't work
20:31:14 <AnMaster> $ CC=echo ick -b beer.i
20:31:14 <AnMaster> beer.c -I/usr/include/ick-0.28 -I. -I./../include -L/usr/lib -L. -L./../lib -O2 -o beer -lick
20:31:15 <AnMaster> well that works
20:31:29 <AnMaster> beer.c(3016): warning #177: label "L1910" was declared but never referenced
20:31:29 <AnMaster> case -1910: ; L1910:
20:31:29 <AnMaster> ^
20:31:32 <AnMaster> lots of stuff like that
20:31:36 <AnMaster> harmless in generated code
20:31:50 <AnMaster> works
20:31:54 <AnMaster> right result that is
20:32:09 <ais523> well there are lots of unused labels in the result
20:32:30 <ais523> AnMaster: try it without the CC=
20:32:30 <AnMaster> -wd177 would quited that
20:32:40 <AnMaster> ais523, my /usr/bin/cc is gcc so...
20:32:42 <AnMaster> why?
20:32:50 <ais523> I think it tries to use the value of CC there was at compile time if there isn't a CC in the environment
20:32:57 <AnMaster> /opt/intel/cc/10.1.018/bin/icc
20:33:14 <ais523> anyway I'm glad it works with non-gcc compilers
20:33:22 <AnMaster> ais523, at least beer does
20:33:26 <ais523> at least ones which take much the same options
20:33:27 <AnMaster> leaks 500 bytes though
20:33:36 <AnMaster> ais523, no warnings without $CC set
20:33:37 <ais523> AnMaster: what, the compile, or the compiled program?
20:33:39 <AnMaster> so I assume it is gcc
20:33:44 <AnMaster> ais523, the compiled program
20:33:47 <ais523> ah, ok
20:34:01 <AnMaster> ==8602== definitely lost: 500 bytes in 16 blocks.
20:34:05 <AnMaster> using gcc now
20:34:07 <ais523> AnMaster: that's bad, the compile is known to leak loads but I didn't think compiled programs leaked
20:34:11 <AnMaster> ==8602== 36 bytes in 8 blocks are definitely lost in loss record 1 of 3
20:34:11 <AnMaster> ==8602== at 0x4006D6E: malloc (vg_replace_malloc.c:207)
20:34:11 <AnMaster> ==8602== by 0x8057679: ick_resize (in /home/anmaster/c-intercal/pit/beer)
20:34:11 <AnMaster> ==8602== by 0x8056A1B: main (in /home/anmaster/c-intercal/pit/beer)
20:34:15 <AnMaster> and
20:34:17 <AnMaster> ==8602== 464 bytes in 8 blocks are definitely lost in loss record 3 of 3
20:34:18 <AnMaster> ==8602== at 0x4006D6E: malloc (vg_replace_malloc.c:207)
20:34:18 <AnMaster> ==8602== by 0x80576FC: ick_resize (in /home/anmaster/c-intercal/pit/beer)
20:34:18 <AnMaster> ==8602== by 0x8056A1B: main (in /home/anmaster/c-intercal/pit/beer)
20:34:29 <ais523> oh, I thnk I know what that might be
20:34:35 <ais523> let me check something
20:35:20 <ais523> ok, that's harmless
20:35:30 <ais523> at the very end of the program it isn't freeing the contents of arrays
20:35:33 <ais523> just the pointers to them
20:35:36 <tusho> ais523: stop talking to yourself
20:35:40 <tusho> there's like 50 lines of just you
20:35:46 <ais523> easy enough to fix though, so I may as well
20:35:48 <AnMaster> ICL778I UNEXPLAINED COMPILER BUG
20:35:48 <AnMaster> ON THE WAY TO 0
20:35:48 <AnMaster> CORRECT SOURCE AND RESUBNIT
20:35:52 <AnMaster> ais523, should that happen?
20:35:56 <AnMaster> $ ./beer +help
20:35:56 <ais523> no it shouldn't
20:35:58 <AnMaster> was what I did
20:36:05 <ais523> oh, with +help it's fine
20:36:09 <AnMaster> ais523, oh?
20:36:26 <ais523> after +help runs there used to be a simulated segfault
20:36:33 <AnMaster> err
20:36:35 <AnMaster> wtf :P
20:36:46 <ais523> I took the time delay out of it, but there's still an internal error
20:36:46 <AnMaster> ais523, anyway CC from compile time isn't used
20:36:52 <ais523> which is invoked deliberately
20:36:53 <ais523> and ok
20:37:11 <AnMaster> ais523, how would I test some of the ec features
20:37:14 <AnMaster> that normally need GCC
20:37:16 <ais523> it probably should be and there's support from it in the code, looks like I'm going to have to tweak the build process again
20:37:23 <AnMaster> give me a command line for ick in pit
20:37:50 <ais523> ick -beE beer.i syslibc
20:38:19 <AnMaster> ais523, just two labels that weren't used this time
20:38:19 <AnMaster> huh
20:38:31 <AnMaster> ais523, also how to send some cflags on to ICC
20:38:37 <AnMaster> as it is in a gcc compatiblity mode by default
20:38:39 -!- dogface has joined.
20:38:48 <AnMaster> need to send -no-gcc to tell it to not try to support GCC extensions
20:38:54 <ais523> AnMaster: you can put them in $CC I think
20:39:01 <ais523> hi dogface
20:39:19 <dogface> Ello.
20:39:42 <dogface> I don't like how irssi's auto-reconnect doesn't work.
20:39:46 <AnMaster> ais523, well then beer work
20:40:05 <AnMaster> /tmp/syslibc.c(54): remark #174: expression has no effect
20:40:05 <AnMaster> do { if(0) { ick_l2_65540 : ; if(ick_global_linelabel != (1010) || (1010) > 65535) goto ick_l2_65541 ; ick_global_checkmode = 0; } 0 ; ick_checksuckpoint(1010); } while(0);
20:40:06 <AnMaster> ais523, ^
20:40:09 <ais523> AnMaster: ah great!
20:40:14 <AnMaster> ^
20:40:18 <dogface> Seems that it tries to reconnect once, and if that fails, it forgets about the server's existence.
20:40:22 <ais523> AnMaster: it's complaining about the 0;
20:40:22 <AnMaster> ais523, um?
20:40:29 <ais523> AnMaster: crosseed messages...
20:40:37 <ais523> hmm... I wonder why there's a 0; there anyway
20:40:59 <AnMaster> ais523, http://rafb.net/p/QXAv9U46.html
20:41:03 <AnMaster> you may want to read that
20:41:19 <AnMaster> ais523, could be some real useful warnings
20:42:05 <ais523> the one on line 30 of the paste looks genuine, that's a gcc extension I triggered by accident (it allows stray semicolons as null declarations, C doesn't)
20:42:27 <AnMaster> ais523, the one on 62 also looks valid
20:42:45 <ais523> AnMaster: no, the one on 62's bogus
20:42:51 <AnMaster> really?
20:42:54 <ais523> the variable could have been used but wasn't
20:43:04 <ais523> think of it like a library function that's never used
20:43:08 <AnMaster> ais523, well it was never in the generated code
20:43:24 <ais523> AnMaster: it could have been substituted in with a macro
20:43:31 <ais523> but I never used that macro in syslibc
20:43:32 <AnMaster> hm ok
20:43:34 <ais523> thus the warning
20:44:05 <AnMaster> ais523, also "expression has no effect" looks valid to me
20:45:34 <ais523> AnMaster: nah, that's fine, it's just a 0; I wrote because I needed a nop there
20:45:43 <ais523> probably it should be (void)0; which is the canonical C nop
20:45:51 <AnMaster> $ ./cftoec.sh ~/cfunge/trunk
20:45:51 <AnMaster> ./cftoec.sh: line 13: realpath: command not found
20:45:52 <AnMaster> ais523, huh ^
20:45:53 <ais523> but that's to avoid code duplication in the header files
20:46:00 <ais523> oh dear, I tend to rely on realpath a lot
20:46:09 <AnMaster> ais523, this is archlinux
20:46:10 <ais523> to prevent problems with directory changes
20:46:20 <AnMaster> ais523, well arch linux doesn't have it by default it seems
20:46:28 <ais523> AnMaster: I don't think it's default anywhere unfortunately, Ubuntu doesn't have it by default either
20:46:40 <AnMaster> ais523, maybe stop using it :)
20:46:40 <ais523> probably it shouldn't have been in C-INTERCAL then, I just get into the habit of using it..
20:46:58 <ais523> AnMaster: it should work if you change it to echo as long as you give an absolute path
20:47:11 <AnMaster> why the heck does it need absolute path?
20:47:30 <ais523> AnMaster: so the path doesn't get lost when you change directory
20:47:37 <ais523> it doesn't need an absolute path normally, that's what the realpath is for
20:47:44 <AnMaster> um, I would use a subshell
20:47:45 <ais523> to make the path absolute if a relative path was given
20:48:05 <ais523> it makes a lot more sense than erroring out just because you were given a relative path, like configure does
20:48:23 <AnMaster> well do that then
20:48:43 <ais523> I'll find some way around it
20:48:53 <ais523> it's just that I'm so used to realpath I forgot that systems didn't have it by default
20:49:00 <AnMaster> ais523, you didn't update for the FUNGEDATATYPE -> fungeCell change it seems?
20:49:06 <AnMaster> even though I told you some time ago
20:49:09 <AnMaster> or you forgot to push
20:49:16 <ais523> AnMaster: not yet, no, I haven't been working on C-INTERCAL recently
20:49:30 <ais523> mostly I've either been asleep or working on gcc-bf
20:49:35 <ais523> it will be fixed before the next release
20:49:47 <AnMaster> ais523, also why does it ignore $CC
20:49:55 <AnMaster> the cftoec.sh script
20:50:08 <AnMaster> ais523, cfunge compiles just fine with ICC
20:50:09 <ais523> because I wrote it in about 5 minutes in a hurry
20:50:12 <AnMaster> ah
20:50:51 <AnMaster> anyway ICC give a lot more readable errors
20:50:56 <AnMaster> and so will clang
20:51:11 <ais523> clang?
20:51:19 <AnMaster> you know about LLVM?
20:51:26 <ais523> not really
20:51:37 <AnMaster> clang is the new C/C++ frontend written from scratch being coded for LLVM
20:51:53 <AnMaster> modular, better error tracking than gcc while using less memory
20:51:56 <AnMaster> and so on
20:52:02 <AnMaster> looks very promising
20:52:11 <AnMaster> still not in usable state
20:52:20 <AnMaster> it can handle some C but almost no C++
20:52:22 <AnMaster> yet
20:52:36 <AnMaster> but certainly looks promising
20:52:46 <ais523> interesting, I know a lot about gcc from working on it for a week or so, and its design seems to be mostly about the genericness of frontend and backend, and the ability to do crazy optimisations easily
20:53:00 <ais523> it's not so good at error detection except when an optimisation discovers something's gone wrong, though
20:53:43 <AnMaster> google for clang
20:54:21 <ais523> seems interesting
20:54:25 <ais523> competition in C compilers is good
20:54:31 <ais523> I don't want GCC getting too big for their boots
20:56:14 <AnMaster> /tmp/syslibc.c(192): remark #128: loop is not reachable from preceding code
20:56:15 <AnMaster> do { if(0) { ick_l2_65556 : ; if(ick_global_linelabel != (1001) || (1001) > 65535) goto ick_l2_65557 ; ick_global_checkmode = 0; } 0 ; ick_checksuckpoint(1001); } while(0);
20:56:17 <AnMaster> ais523, what about that one
20:56:46 <ais523> AnMaster: do while 0 is an idiom
20:56:46 <AnMaster> and still, why do you have those "expression has no effect"
20:56:52 <ais523> and shouldn't be treated as a loop at all
20:57:12 <AnMaster> ais523, why a do { } while at all?
20:57:17 <AnMaster> you could just strip that
20:57:21 <ais523> AnMaster: because that statement was created by filling out a template (reasonably obviously, given its appearance), and there was a blank which I didn't need to put a command in so I put a 0 in instead
20:57:29 <ais523> AnMaster: macro expansion, it makes a block act like a statement
20:57:46 <ais523> so you can do if(1) macro(args); else something_else();
20:57:55 <ais523> and it compiles correctly
20:58:11 <ais523> do { } while(0) is a common trick because it's a single statement if you put ; at the end
20:58:21 <ais523> whereas a block isn't, once you add the semicolon it's two statements
20:58:25 <AnMaster> /tmp/syslibc.c(197): remark #111: statement is unreachable
20:58:25 <AnMaster> if(ick_local_checkmode) ick_doresume((1),-1); ick_l1_65538 : ; ick_l6_65538 : ; ick_l2_65557 : return; }
20:58:25 <AnMaster> ^
20:58:26 <AnMaster> that too?
20:58:47 <ais523> yes, that's the very end of the function, and that function isn't allowed to return as it's only called from INTERCAL, not from C
20:58:59 <ais523> functions can be called either via INTERCAL or via C mechanisms
20:59:09 <ais523> if called via INTERCAL mechanisms they must return via INTERCAL mechanisms
20:59:16 <ais523> whereas that's the code for returning via the C mechanism
20:59:27 <ais523> which is never used in this case
21:00:53 <AnMaster> http://rafb.net/p/uTeEIr64.html
21:00:57 <AnMaster> ais523, any false positive there?
21:01:24 -!- Hiato has quit (Read error: 104 (Connection reset by peer)).
21:01:24 <AnMaster> "external declaration in primary source file" and "external function definition with no prior declaration" are not false positives to me
21:01:27 <AnMaster> just FYI
21:01:58 <AnMaster> ais523, BAD:
21:01:59 <AnMaster> rot13.c(579): warning #2132: statement expressions are a GNU extension
21:01:59 <AnMaster> if(0) { ick_l1_65538 : ; if(ick_global_linelabel == (10U) && (10U) <= 65535) if(({int i=0; if (!ick_abstained[86]) { i=1;};i;})) { if(ick_global_goto) ick_lose("555 FLOW DIAGRAM IS EXCESSIVELY CONNECTED\n ON THE WAY TO %d\n", ick_lineno, (char*)0); ick_global_goto = 65544 ; } goto ick_l1_65539 ; ick_l2_65557 : ; if(ick_global_linelabel != 65544 ) goto ick_l2_65558
21:01:59 <AnMaster> ; ick_global_checkmode = 0; };
21:01:59 <AnMaster> ^
21:02:04 <AnMaster> GNUish
21:02:05 <ais523> the one on 31's genuine and fixable, the one on 44 reminds me why I needed gcc
21:02:11 <ais523> for external calls
21:02:20 <ais523> that one's very genuine, and may take some thought to fix
21:02:32 <ais523> it would be nice to find a different way and so get rid of the gcc dependency
21:02:51 <AnMaster> ais523, hope you can skip using GCC specific ones :)
21:02:56 <AnMaster> even though icc can handle those
21:02:56 <ais523> maybe move all the statement expressions to generated functions, not sure if that would work due to the need to access local variables
21:03:10 <ais523> ({ }) is kind-of hard to substitute into standard C
21:03:11 <AnMaster> ais523, now to try to compile main ick with these flags
21:03:17 <ais523> maybe I'll ask comp.lang.c if they have any ideas
21:03:29 <ais523> nested functions would work except they're a GNU extension too
21:03:37 <AnMaster> ais523, pass local variables along?
21:03:46 <AnMaster> foo(&a, &b, &c)
21:03:53 <ais523> AnMaster: hard to tell what the local variables are
21:04:03 <ais523> because they could be in user-supplied C code
21:06:28 <AnMaster> icc: command line remark #10148: option '-W' not supported
21:06:35 <AnMaster> you should probably check in configure
21:07:01 <ais523> yes, although last I checked configure didn't have an option to check "option to turn on all warnings"
21:07:10 <ais523> kind of hard to see how it could manage that really
21:07:19 <tusho> RADICAL
21:07:26 <tusho> NO SIR
21:07:29 <tusho> YOUR UNWASHED MASSES?
21:07:31 <tusho> NOT APPRECIATED!! BAD
21:07:44 <AnMaster> ais523, hm
21:07:56 <AnMaster> ais523, I may have a m4 macro to check if an option is supported
21:08:08 <AnMaster> by checking if there was any output
21:08:23 <ais523> AnMaster: but sometimes supported options generate output, sometimes unsupported options do
21:08:27 <AnMaster> actually it checked if it was GCC first, then checked using -Werror to see if it was supported
21:08:42 <ais523> as a facetious example, how can you tell if --version works or not?
21:08:50 <AnMaster> hah
21:09:01 <AnMaster> src/ick_ec.c(222): warning #1011: missing return statement at end of non-void function "ick_getonespot"
21:09:01 <AnMaster> }
21:09:01 <AnMaster> ^
21:09:02 <AnMaster> ais523, ^
21:09:06 <AnMaster> and
21:09:07 <AnMaster> src/ick_ec.c(252): warning #1011: missing return statement at end of non-void function "ick_gettwospot"
21:09:07 <AnMaster> }
21:09:07 <AnMaster> ^
21:09:26 <ais523> oh dear, that looks bad, let me look at the source
21:09:36 <AnMaster> ais523, full compile log: http://rafb.net/p/6uCztn52.html
21:09:57 <tusho> ais523:
21:09:59 <tusho> stop talking to yourself
21:10:00 <AnMaster> src/cesspool.c(919): warning #1011: missing return statement at end of non-void function "ick_ieg277"
21:10:01 <AnMaster> }
21:10:01 <AnMaster> ^
21:10:02 <AnMaster> that too
21:10:03 <tusho> or, more nonsense from me
21:10:13 <AnMaster> tusho, you could try unignoring me
21:10:14 <ais523> AnMaster: that one's fine, the statement before errors out and doesn't return
21:10:16 <AnMaster> that would help
21:10:28 <ais523> maybe I should start messing about with __attribute__((__noreturn__))
21:10:31 <AnMaster> ais523, anyway see http://rafb.net/p/6uCztn52.html
21:10:38 <AnMaster> ais523, well ICC doesn't support that one
21:10:42 <ais523> I do for Splint as it accepts annotations in comments
21:10:57 <ais523> which therefore don't interfere with anything else
21:11:03 <AnMaster> and I only use it on functions that GCC suggests using noreturn for
21:11:25 <AnMaster> it didn't have any false positives or negatives here
21:11:29 <ais523> oh, I use noreturn on functions which actually don't return
21:11:48 <AnMaster> src/clc-cset.c(262): warning #187: use of "=" where "==" may have been intended
21:11:48 <AnMaster> csro->shifts==1 && (sso=1);
21:11:48 <AnMaster> ^
21:11:50 <AnMaster> hum
21:11:54 <AnMaster> don't get that at all
21:12:09 <AnMaster> on the other hand it isn't very C-ish
21:12:10 <ais523> AnMaster: it's just not used to Perl, that's all
21:12:18 <ais523> clc-cset.c is full of Perl idioms as a homage to CLC-INTERCAL
21:12:24 <ais523> they tend to require a lot more parens to work in C, though
21:12:24 <AnMaster> src/lexer.l(307): (col. 13) remark: REVERSED LOOP WAS VECTORIZED.
21:12:25 <AnMaster> now
21:12:28 <AnMaster> that should say:
21:12:37 <AnMaster> REVERSE POLARITY WAS VECTORIZED
21:12:40 <AnMaster> would be much better
21:12:41 <AnMaster> :D
21:12:46 * oerjan read that as VAPORIZED
21:13:58 <ais523> AnMaster: that all looks fine, some cases where I should probably use ifdef rather than if, but apart from that no serious errors
21:14:11 <AnMaster> ais523, or #if defined()
21:14:27 <AnMaster> #if (MULTITHREAD != 0) || (YUKDEBUG != 0) || defined(ICK_EC)
21:14:29 <AnMaster> that would be
21:14:33 <ais523> AnMaster: why do that when #ifdef exists, except in complicated cases where you want to test more than one thing in the if?
21:14:43 <AnMaster> ais523, agreed
21:15:01 <AnMaster> #if defined(MULTITHREAD) || defined(YUKDEBUG) || defined(ICK_EC)
21:15:03 <AnMaster> right?
21:15:08 <AnMaster> or should there be ! in front?
21:15:08 <ais523> AnMaster: no, because it might be defined to 0
21:15:21 <ais523> I want to test that it's defined and with a non-zero value
21:15:26 <AnMaster> ais523, but ICK_EC won't be that?
21:15:31 <ais523> #define MULTITHREAD 0 exists in several cases
21:15:37 <ais523> AnMaster: yes, that's right
21:15:50 <AnMaster> ais523, maybe time to update the ot same scheme
21:15:55 <AnMaster> would make it easier to read
21:16:19 <AnMaster> sed 's/#define MULTITHREAD 0/#undef MULTITHREAD/'
21:16:22 <AnMaster> or something like that
21:16:29 -!- ais523 has quit ("http://www.mibbit.com ajax IRC Client").
21:16:46 <AnMaster> ..
21:16:48 -!- ais523 has joined.
21:16:52 <AnMaster> <ais523> AnMaster: yes, that's right
21:16:52 <AnMaster> <AnMaster> ais523, maybe time to update the ot same scheme
21:16:52 <AnMaster> <AnMaster> would make it easier to read
21:16:52 <AnMaster> <AnMaster> sed 's/#define MULTITHREAD 0/#undef MULTITHREAD/'
21:16:52 <AnMaster> <AnMaster> or something like that
21:16:52 <ais523> ugh, sorry
21:17:07 <AnMaster> ais523, take your laptop with you next time!
21:17:08 <AnMaster> ;P
21:17:10 <ais523> AnMaster: the problem is that the MULTITHREAD and the 0 are occasionally kept in different source files
21:17:14 <ais523> and my laptop's with me
21:17:18 <ais523> I just forgot to bring its power supply
21:17:24 <ais523> actually I might move onto my laptop now
21:17:30 <AnMaster> ais523, oh wait icc can auto-parallellise programs
21:17:33 <ais523> as the battery's charged and won't run out before I'm thrown out of here
21:17:36 <AnMaster> to use pthreads in loops
21:17:53 <ais523> AnMaster: well if it doesn't misoptimise correct code there's no problem
21:18:15 <AnMaster> heh
21:18:24 <ais523> I haven't done anything weird-control-like that isn't allowed by the C standard
21:18:35 <ais523> I've just made a lot more interesting use of setjmp and friends than is normally considered sane
21:19:04 <AnMaster> hahah
21:20:15 <AnMaster> ais523, anyway there is no need for -W these days
21:20:26 <AnMaster> use -Wextra if you have too, after checking it is GCC
21:20:27 <ais523> AnMaster: it's a synonym for -Wextra, so there is
21:20:42 <AnMaster> deprecated ones iirc
21:21:01 <ais523> and as I said earlier, parts of C-INTERCAL were ported from pre-C89 C, so you can understand that it has trouble catching up
21:21:15 <AnMaster> lex.yy.c(2254): (col. 2) remark: LOOP WAS VECTORIZED.
21:21:15 <AnMaster> /tmp/ipo_icc1tzGiK.o: In function `main':
21:21:15 <AnMaster> /tmp/ipo_icc1tzGiK.c:(.text+0x30): undefined reference to `__kmpc_begin'
21:21:15 <AnMaster> /tmp/ipo_icc1tzGiK.c:(.text+0x3a): undefined reference to `__kmpc_global_thread_num'
21:21:15 <AnMaster> /tmp/ipo_icc1tzGiK.c:(.text+0x24ab): undefined reference to `__kmpc_end'
21:21:16 <AnMaster> make: *** [bin/ick] Fel 1
21:21:18 <AnMaster> ok nice one
21:21:37 <AnMaster> had no problems with cfunge with that option
21:21:43 <ais523> AnMaster: mibbit changed parts of those error messages to sad faces
21:21:54 <AnMaster> ais523, well that sucks for you
21:21:55 <ais523> where it said :(
21:21:56 <AnMaster> *shrug*
21:22:03 <ais523> what option was that?
21:22:19 <AnMaster> -parallel
21:22:21 <AnMaster> to ICC
21:22:25 <AnMaster> anyway I missed -static
21:22:31 <AnMaster> it should work with them combined
21:22:39 <ais523> I'm going to leave this computer and go onto my laptop now
21:22:42 <ais523> see you again soon
21:22:45 -!- ais523 has quit ("mibbit.com: back soon").
21:22:47 <AnMaster> ais523, well
21:22:49 <AnMaster> not really
21:22:52 <AnMaster> going to sleep soon
21:24:44 -!- oklofok has joined.
21:24:46 <tusho> i should probably unignore AnMaster
21:24:49 <tusho> or i'll forget tomorrow
21:24:51 <AnMaster> ais: for log reading -parallel will make it multithreaded in ICC
21:24:53 <tusho> wait, that's a good thing. possibly
21:25:13 -!- oklopol has quit (Read error: 113 (No route to host)).
21:26:03 -!- LinuS has joined.
21:26:18 -!- calamari has joined.
21:27:37 -!- Tritonio_ has quit ("Leaving.").
21:28:25 -!- ais523 has joined.
21:28:44 <AnMaster> ais523, going to bed soon
21:28:47 <AnMaster> anyway it works for oil
21:28:51 <AnMaster> but not ick
21:28:53 <AnMaster> icc -O2 -W -Wall -parallel -Wall -Wcheck -wd810 -wd981 -no-gcc -xK -march=pentium3 -O3 -ipo -static -no-prec-div -diag-enable port-win -DICKINCLUDEDIR=\"/home/anmaster/local/ick/include/ick-0.29\" -DICKDATADIR=\"/home/anmaster/local/ick/share/ick-0.29\" -DICKBINDIR=\"/home/anmaster/local/ick/bin\" -DICKLIBDIR=\"/home/anmaster/local/ick/lib\" -DYYDEBUG -DICK_HAVE_STDINT_H=1 -I./src -I./temp -o temp/oil
21:28:53 <AnMaster> temp/oil.c
21:28:55 <AnMaster> that works fine
21:29:00 <AnMaster> icc temp/perpet.o temp/parser.o temp/lexer.o temp/feh2.o temp/dekludge.o temp/oilout*.o temp/ick_lose.o temp/fiddle.o temp/uncommon.o -o bin/ick
21:29:02 <AnMaster> that doesn't
21:29:07 <AnMaster> /tmp/ipo_iccY7jGt7.o: In function `main':
21:29:08 <AnMaster> /tmp/ipo_iccY7jGt7.c:(.text+0x30): undefined reference to `__kmpc_begin'
21:29:08 <AnMaster> /tmp/ipo_iccY7jGt7.c:(.text+0x3a): undefined reference to `__kmpc_global_thread_num'
21:29:08 <AnMaster> /tmp/ipo_iccY7jGt7.c:(.text+0x24a9): undefined reference to `__kmpc_end'
21:29:10 <AnMaster> is the result
21:29:11 <ais523> what does?
21:29:13 <ais523> -static -parallel?
21:29:19 <ais523> AnMaster: you probably need -static on the link too
21:29:20 <AnMaster> ais523, I see it
21:29:22 <ais523> not just the compiler
21:29:29 <AnMaster> you forgot to pass it in $CFLAGS
21:29:37 <AnMaster> you forgot to pass CFLAGS there
21:29:42 <AnMaster> unlike the other time you link
21:29:48 <ais523> that's because you pass $LDFLAGS when linking
21:30:02 <AnMaster> ais523, well all cases I seen it uses CFLAGS too when linking
21:30:47 <AnMaster> ais523, and you *do* pass that when compiling old
21:30:49 <AnMaster> oil*
21:30:59 <ais523> $CFLAGS is for the compile normally
21:31:02 <AnMaster> so passing it in LDFLAGS as well would be double
21:31:04 <AnMaster> for oil
21:31:07 <ais523> maybe I should do it so $CC is used for compile and $LD for link, and they're both the detected C compiler by default
21:31:10 <ais523> do I compile and link oil in one step?
21:31:11 <AnMaster> musn't happen
21:31:15 <AnMaster> ais523, you do
21:31:21 <AnMaster> see what I said above
21:31:21 <ais523> that would explain it
21:32:38 <ais523> ok, looks like I have to work even more on the build system
21:32:41 <AnMaster> <AnMaster> ais: for log reading -parallel will make it multithreaded in ICC
21:32:44 <AnMaster> you missed that
21:32:51 <ais523> no, I got that
21:33:09 <ais523> anyway I'm not sure -parallel will help all that much
21:33:15 <AnMaster> I think it basically does mapreduce()
21:33:22 <AnMaster> err s/()//
21:33:25 <ais523> probably feh2.c could be redesigned so it would but atm it won't
21:33:52 <ais523> besides ick runs very fast compared to gcc, so normally it doesn't matter about optimising ick itself
21:34:11 <AnMaster> ais523, but would it break it's programs to be compiled with -parallel?
21:34:37 <ais523> AnMaster: I don't see how it could, I'm not doing anything disallowed by the C standard so unless it's listed as unsafe in the compiler docs it should be fine
21:34:52 <AnMaster> ais523, you said pthreads would break stuff?
21:35:20 <AnMaster> src/perpet.c(664): remark #1599: declaration hides variable "c" (declared at line 285)
21:35:21 <AnMaster> int c=getchar();
21:35:21 <AnMaster> ^
21:35:22 <ais523> AnMaster: only if calls and returns don't match up
21:35:22 <AnMaster> ais523, ^
21:35:38 <ais523> AnMaster: that's why it's in a separate block, scoping exists for a reason
21:35:49 <AnMaster> so you want to shadow it?
21:35:49 <AnMaster> ok
21:36:05 <AnMaster> just gcc will warn with -Wshadow for that too
21:36:20 <AnMaster> src/clc-cset.c(303): remark #593: variable "ssrecord" was set but never used
21:36:20 <AnMaster> int sstesting, ssbestsf, ssrecord, j, k;
21:36:20 <AnMaster> ^
21:36:40 <ais523> AnMaster: when I need a temporary variable I create a small block so that shadowing will prevent an identifier clash
21:36:54 <ais523> AnMaster: I can't even remember what ssrecord does offhand
21:36:57 <AnMaster> http://rafb.net/p/cIjSdJ39.html is the last log from main ick compile using icc
21:36:59 <ais523> let me look that up
21:37:05 <AnMaster> ais523, going to sleep
21:37:06 <AnMaster> night
21:37:10 <ais523> ok, night
21:45:33 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | function g() is a big hint.
21:48:04 <tusho> hi ais523
21:48:10 <tusho> will you talk to something other than silence now
21:48:12 <ais523> hi tusho
21:48:21 <ais523> tusho: it depends on whether you say something interesting
21:48:30 <tusho> i can handle that
21:48:32 <tusho> something interesting
21:48:34 <ais523> verifying that C-INTERCAL ports to compilers other than gcc is interesting
21:48:38 <ais523> for instance
21:48:44 <ais523> and that's what I was doing, if you were wondering
21:49:12 <tusho> ais523: does it compile on my brain
21:49:22 <ais523> tusho: I don't know, it doesn't really compile in mine
21:49:23 * tusho tracks order
21:49:31 <ais523> it's a bit too large to grasp all at once
21:49:33 <tusho> It sits at "DISPATCHED"!
21:49:44 <tusho> ais523: my brain is pretty damn awesome
21:49:46 <tusho> i think i could handle it
21:49:47 <tusho> maybe
21:49:53 <ais523> well, you know where the code is
21:49:55 <tusho> if I augmented it with a large pen and paper extension
21:49:59 <tusho> and "caring"
21:56:13 -!- psygnisfive has joined.
21:56:29 <psygnisfive> hey bitches
21:59:25 <oerjan> i don't think there are any bitches here. there is one dogface though.
22:01:23 <psygnisfive> dont make me rape your ass, bitch
22:11:15 -!- oerjan has quit ("And a nice evening to you too").
22:19:23 -!- kar8nga has left (?).
22:36:11 -!- jix has quit ("CommandQ").
22:40:11 <calamari> old news, but new to me... programmable wristwatch with a battery that lasts 2 years.. http://en.wikipedia.org/wiki/Timex_Datalink
22:40:23 <ais523> hi calamari
22:40:27 <calamari> hi ais
22:40:39 <ais523> I don't think I've seen you here recently...
22:40:50 <calamari> probably not
23:07:43 -!- ais523 has quit ("going home, and basically out of battery").
23:23:01 -!- KingOfKarlsruhe has quit (Remote closed the connection).
23:27:50 -!- psygnisfive has quit ("http://www.mibbit.com ajax IRC Client").
23:39:32 -!- LinuS has quit ("Puzzi. S, parlo proprio con te. Puzzi.").
2008-09-02
00:00:41 <tusho> pikhq:
00:00:42 <tusho> ping ping
00:00:52 <tusho> agora are trying to exile you because you're a shite speaker
00:23:56 -!- tusho has quit.
01:00:32 -!- olsner has quit ("Leaving").
01:00:54 -!- psygnisfive has joined.
01:07:18 <psygnisfive> BITCHES OF #ESOTERIC, HERE ME
01:07:25 <psygnisfive> HEAR EVEN
01:07:30 <psygnisfive> I HAVE MANY TYPOES FOR YOU ALL
01:09:01 -!- psygnisfive has quit ("http://www.mibbit.com ajax IRC Client").
02:25:58 -!- Corun has joined.
03:11:27 -!- Corun has quit ("BAKED").
03:24:32 -!- psygnisfive has joined.
03:27:27 <psygnisfive> so guys
03:27:29 <psygnisfive> hows it goin
03:27:55 <psygnisfive> oklofok, have i mentioned recently how hot you are?
03:45:23 -!- psygnisfive has quit ("http://www.mibbit.com ajax IRC Client").
03:45:34 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | fizzie pulls out his marijuana - "And this helped too".
03:58:52 -!- oerjan has joined.
05:18:37 -!- GreaseMonkey has joined.
05:28:00 <oerjan> q45t
05:28:19 <oerjan> silly num lock
05:28:33 -!- oerjan has quit ("leaving").
05:29:37 -!- Tritonio_ has joined.
06:49:43 -!- Tritonio_ has quit (Remote closed the connection).
07:05:43 -!- oklopol has joined.
07:05:43 -!- oklofok has quit (Read error: 104 (Connection reset by peer)).
07:34:19 -!- jix has joined.
07:49:38 -!- calamari has quit ("Leaving").
07:59:45 -!- oklopol has quit ("( www.nnscript.com :: NoNameScript 4.2 :: www.regroup-esports.com )").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:12:49 -!- KingOfKarlsruhe has joined.
08:20:49 -!- jix has quit ("CommandQ").
08:46:20 -!- oklopol has joined.
08:46:25 <fizzie> I have no recollection of the context the current topic has.
08:48:06 <fizzie> Apparently I woke up at 16:00 one Friday, and the topic was GregorR's speculation on the reason.
09:14:05 -!- oklopol has quit (Read error: 60 (Operation timed out)).
09:25:38 -!- kar8nga has joined.
09:26:27 <fizzie> fungot: How should I improve you next?
09:26:28 <fungot> fizzie: see this: slashdot.org/ comments.pl?sid=99801&cid=8509203 linux. or at least a few people are making silly things for linux
09:29:17 <fizzie> fungot: Uh... I don't quite get it. You already have a command line interface of sorts, and are running on Linux; and I'm not going to expose that stuff directly to people on the channel, nope.
09:29:18 <fungot> fizzie: but kelsey still has it. basically you get bloat at runtime instead of compiletime function an ok way to describe it. ( plt scheme actually has such a mechanism often named thus. all syntax-rules implementations based on this single statement of yours? :)
09:29:52 <fizzie> optbot: You're usually more coherent; do you have any good ideas?
09:29:53 <optbot> fizzie: *Oh*.
09:30:02 <fizzie> optbot: What?
09:30:02 <optbot> fizzie: !undaemon ctcp
09:30:27 <fizzie> optbot: fungot doesn't have any "ctcp" command, and I don't quite see the point.
09:30:27 <optbot> fizzie: things like online javadocs, tutorial sites and w3schools have saved me hundreds of dollars in books
09:30:28 <fungot> fizzie: according to our consensus, for " 3" does not mean that all rings should have a locale with an encoding that will be
09:31:00 <fizzie> Those things aren't very useful for serious advice. :/
09:45:34 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | lisp is nice too.
09:50:34 <fizzie> optbot: Isn't it traditionally "a cat" which is fine too, not lisp?
09:50:34 <optbot> fizzie: A recursive array.
09:50:46 <fizzie> A recursive array is fine too. Hmm, right.
10:14:19 -!- oklopol has joined.
10:22:31 -!- GreaseMonkey has quit ("Jesus loves you").
10:23:44 -!- GreaseMonkey has joined.
10:42:51 -!- oklofok has joined.
10:42:51 -!- oklopol has quit (Read error: 104 (Connection reset by peer)).
10:43:53 -!- GreaseMonkey has quit ("Jesus loves you").
10:44:28 <oklofok> hiya all
11:02:43 -!- tusho has joined.
11:06:35 -!- LinuS has joined.
11:26:19 -!- oklofok has quit (Read error: 113 (No route to host)).
11:26:32 -!- oklopol has joined.
11:47:57 -!- oklofok has joined.
11:49:17 -!- oklopol has quit (Read error: 113 (No route to host)).
12:08:50 -!- ais523 has joined.
12:26:45 <tusho> hi ais523
12:26:49 <tusho> you are early
12:26:52 <ais523> hi
12:26:54 <ais523> and no, I'm late
12:26:57 <ais523> I still haven't gone to bed yet
12:26:58 <tusho> ?
12:27:01 <tusho> oh.
12:27:01 <tusho> wow.
12:27:06 <ais523> it happens sometimes
12:27:06 <tusho> ais523: ... wow
12:27:07 <tusho> :D
12:27:12 <ais523> I can't sleep for an entire night...
12:27:30 <tusho> i can, mostly because i stay up late.
12:27:35 <tusho> so i'm tired.
12:27:54 <tusho> although things have been working out to about 8 hours of sleep recently
12:28:28 -!- LinuS has quit (Connection reset by peer).
12:29:20 <tusho> ugh
12:29:25 <tusho> jksdfhisdfhsdkjfhkdjsfksdjf fuck reddit comments
12:29:29 <tusho> "[citation needed]!! HAHA! Xkcd!"
12:29:37 <tusho> what the fuck happened to DOING YOUR OWN RESEARCH
12:29:41 <tusho> god damn.
12:30:09 <fizzie> No original research!
12:30:15 <Deewiant> tusho: to be fair, if you make an assertion, you should back it up
12:30:23 <tusho> Deewiant: of course
12:30:31 <tusho> but it's done when the poster has made a negative assertation
12:30:47 <tusho> "Hey, I bet this steals your passwords and eats your babies." "Um... no it doesn't?" "[CITATION NEEDED BITCH]"
12:31:05 <tusho> you're the one who made the statement, give ME the evidence
12:31:12 <ais523> hmm... there are burden of proof problems right there
12:31:42 <Deewiant> just post the source and they'll shut up :-P
12:31:56 <tusho> Deewiant: "but you could be running a modified version with extra evil"
12:32:04 <tusho> (seriously, I am 100% certain they would say that)
12:32:15 <Deewiant> sure, somebody would
12:32:17 <Deewiant> most wouldn't
12:32:26 <ais523> #ifdef LICENCE_MANAGER
12:32:44 <ais523> (a line from pic30, a modified version of gcc with extra evil)
12:33:00 <tusho> Deewiant: but I see it all over reddit
12:33:02 <tusho> it's just annoying
12:33:07 <ais523> sorry, it's called MPLAB C30, pic30 is what gcc thinks of it as internally
12:33:13 <tusho> you can say whatever you want and if people challenge you you can just say [citation needed].
12:33:17 <tusho> bullshiiiiiiiiiiit
12:33:21 <ais523> tusho: citation needed
12:33:29 <tusho> ais523: [citation needed]
12:33:38 <Deewiant> tusho: ( ais523) tusho: citation needed
12:33:51 <tusho> ("that's evil" "i don't think it is..." "[citation needed]")
12:33:53 <ais523> tusho: you may laugh, but people actually use {{disputedtag}} on occasion
12:33:58 <tusho> (can be reduced to "that's evil" "[citation needed]" "[citation needed]")
12:34:01 <ais523> there have been edit wars over it too
12:34:10 <tusho> however, the ones who say [citation needed] are never the ones who understand burden of proof
12:34:11 <tusho> :D
12:34:13 <ais523> which means that there's a dispute over whether something is disputed or not
12:34:19 <tusho> ais523: wow
12:34:43 <ais523> tusho: there can be edit wars over the strangest things on wikis, Wikipedia gets them a lot but I think they affect other wikis too
12:35:01 <ais523> for instance there was an edit war about whether a particular truck in the background of an area in Pokemon was notable or not
12:35:09 <tusho> ais523: kind of related: people bugged me on WikiWikiWeb for not using my real name
12:35:15 <tusho> because apparently using my real name makes me more trustworthy.
12:35:18 <tusho> riiiiiiiiiiight
12:35:19 <tusho> http://c2.com/cgi/wiki?TuSho
12:35:44 <ais523> tusho: it's not exactly that, it's that people who aren't trustworthy tend to be unwilling to reveal their own names for some reason
12:35:50 <ais523> so it works as a filter one way but not the other
12:35:57 <ais523> you exclude lots of people who are trustworthy too
12:36:10 <tusho> ais523: actually, when I was young and naive I'd have a good reason not to reveal my name
12:36:13 <tusho> my password was "elliott"...
12:36:53 <ais523> tusho: anyway, where's the history link on c2?
12:37:00 <ais523> as it is, it's very difficult to tell who's talking to you
12:37:11 <ais523> arguably it doesn't matter, but that goes against the thrust of what they were saying
12:38:43 <ais523> heh, c2 doesn't record contributors to a page forever, only for a certain length of time
12:38:55 <ais523> so it's simultaneously anonymous and requires real names
12:38:59 <ais523> that's an interesting compromise
12:39:37 <ais523> <spam I just got> Plastic SCM is saying goodbye to stuffy old software configuration management tools that are high on complexity and low on usability. With Plastic SCM every aspect of what you would expect from a configuration management tool has been enhanced. Trace the history of your projects with a number of graphical tools such as the per-file history that you can view through a 3D revision tree! How cool is that?!
12:39:41 <ais523> I found it amusing
12:39:48 <ais523> and it's more ontopic than the normal spam I come across
12:39:56 <ais523> doesn't make me want to buy their product though
12:41:05 <tusho> back
12:41:12 <tusho> ais523: yes, that's intentional
12:41:16 <tusho> also
12:41:19 <tusho> plastic scm is quite popular
12:41:22 <tusho> are you sure it's spam?
12:41:35 <tusho> i haven't heard of well-known companies spamming a lot, reall
12:41:35 <ais523> well, it's unsolicited bulk email
12:41:36 <tusho> y
12:41:51 <ais523> Subject: ?spam? Our Version Control tool is not just cool looking, its smart too! Is yours?
12:42:03 <ais523> maybe someone else is spamming them
12:42:08 <ais523> but there's no obvious reason why
12:42:14 <ais523> it doesn't look like the work of a reputable company
12:42:29 <ais523> maybe a phishing attempt disguised as spam?
12:42:32 <ais523> that would be something new
12:42:43 <tusho> ais523: you can find all the revisions in the wiki data dir
12:42:49 <tusho> i can't remember where that is , though
12:42:52 <tusho> and again they get expired
12:43:00 <tusho> http://c2.com/cgi/quickDiff?TuSho
12:43:05 <tusho> (found by clicking the link) shows the last change
12:43:14 <tusho> it has no accounts, anyway
12:43:17 <tusho> so it's all honour system
12:43:50 <ais523> there is something very odd about that, but it resonated with me as being Wiki too
12:43:58 <ais523> which makes sense, as c2 is the Wiki with a capital W
12:44:15 <tusho> ais523: c2 is bizarre
12:44:21 <tusho> wikimedia is such a distant relative
12:44:26 <tusho> e.g. their Recentchanges is updated by a bot
12:44:29 <tusho> once every 24 hours
12:44:34 <tusho> just a regular pge
12:44:40 <tusho> *mediawiki
12:44:52 <ais523> yes, but even so I think I understand c2 in a way, pretty much any wiki model you'll have a faction of people on Wikipedia who thinks Wikipedia ought to work like that
12:45:14 <ais523> and you get used to the politics after a bit, c2 is a bit like Wikipedia would be with a different political party in charge
12:45:28 <tusho> ais523: it's kind of like america, isn't
12:45:29 <tusho> it
12:45:31 <tusho> both the parties suck
12:45:36 <tusho> but one is mildly preferable :P
12:45:48 <ais523> tusho: which one depends on who you are, though
12:46:06 <tusho> http://c2.com/cgi/wiki?ChangesInWeekThirtyThree 33rd week of 2007 ... listing changes from 2008
12:46:11 <tusho> ais523: yea, i guess insane people differ ;)
12:46:17 <tusho> [ICE BURN needed]
12:46:27 <tusho> wonder how c2 would do citation needed.
12:46:32 <tusho> probably add a long italic comment below it.
12:46:54 <ais523> tusho: when I've worked on effective internal wikis they've ended up looking a lot like c2
12:47:04 <tusho> indee
12:47:04 <ais523> they normally act like extended group mind-maps, with hyperlinks
12:47:05 <tusho> d
12:47:11 <tusho> which is a good thing
12:47:21 <tusho> although it's funny, wikis are actually a good replacement for most html sites
12:47:31 <ais523> Wikipedia is pretty strange as wikis go, it's sort of like using Google Docs to write an encyclopedia with a wiki attached for discussing it
12:48:59 <ais523> hmm... wiki software is strangely abusable too
12:49:13 <ais523> for instance I wrote a JavaScript multiplayer networked chess program
12:49:18 <ais523> using MediaWiki for data storage
12:49:44 <tusho> ha
12:49:52 <tusho> ais523: one problem I think mediawiki has
12:50:00 <tusho> is that was designed for 'everyone edits, better make it safe' first
12:50:18 <tusho> i think if you started with something made for a personal site-wiki-thingy that are quite popular these days - i.e. free for all, locked down permissions
12:50:25 <tusho> then put the restrictions etc on top of that
12:50:32 <tusho> it might result in something more flexible & less adhoc
12:50:50 <ais523> for wikis, adhoc is good
12:51:12 <tusho> well, yes
12:51:21 <tusho> but not in the part of the software meant to be structured, ais523
12:51:24 <tusho> i'm talking about the software
12:51:28 <ais523> ah
12:51:57 <tusho> e.g. for a personal wiki, you'd want something that you could poke about in standard tools for some purposes
12:52:05 <ais523> sort of like the monks from HHGTTG, but instead of demanding rigidly defined areas of doubt and uncertainty you're demanding a rigidly structured framework in which to be adhoc
12:52:09 <tusho> so you store stuff in the filename (not much relational about well, documents anyway)
12:52:12 <tusho> err
12:52:13 <tusho> LOL
12:52:15 <tusho> nice slip
12:52:18 <tusho> in the FILESYSTEM
12:52:21 <tusho> (how intercal.)
12:52:26 <tusho> and use an existing VCS, etc
12:52:27 <ais523> tusho: yes, very INTERCAL
12:52:30 <tusho> and probably a DVCS so you could edit locally
12:52:37 <tusho> and then, wow, hey, you get merging
12:52:42 <tusho> which turns out to be helpful in a more open, public site!
12:52:44 <tusho> see, benefits like that
12:52:49 <ais523> btw were you reading what I said when I told you about my new evil idea for command line argument syntax?
12:52:59 <tusho> kind of
12:53:12 <ais523> sorry, I like telling people about that sort of random evil
12:53:23 <ais523> I haven't implemented most of the random evil ideas I've come up with yet, though
12:53:52 <tusho> ais523: incidentally,
12:54:01 <tusho> http://developer.mozilla.org/En doesn't run on mediawiki, although it really looks like it at first glance
12:54:11 <tusho> "Powered by MindTouch Deki Enterprise Edition v.8.05.2b"
12:54:28 <tusho> http://developer.mozilla.org/index.php?title=En&action=history <-- The goddamn URL is even the same. The UI for the history is better, though.
12:56:21 <tusho> http://developer.mozilla.org/index.php?title=Special:Listusers&limit=50&offset=50
12:56:26 <tusho> that is the EXACT URI that mediawiki uses
12:56:27 <tusho> :)
12:56:33 <tusho> it doesn't look like it's based on MW, though
12:56:42 <ais523> tusho: the UI for the history is the same, but skinned differently
12:56:55 <tusho> ais523: but the other pages look different
12:56:56 <tusho> e.g. login
12:56:59 <ais523> the confusing thing is it's using the same URIs as MediaWiki everywhere
12:57:02 <tusho> i think they just imitated mediawiki
12:57:04 <tusho> ais523: well, no
12:57:10 <ais523> but doesn't have any of the other hallmarks of MediaWiki
12:57:17 <tusho> http://developer.mozilla.org/Project:en/About
12:57:23 <tusho> lots of language stuff in the url
12:57:27 <tusho> i am pretty sure it's not based on MW, anyway
12:57:32 <tusho> i guess they just imitated the UI they likec
12:57:34 <tusho> *liked
12:59:22 <ais523> well it's open source, so I'm going to settle this the traditional open source way
13:00:06 <tusho> indeed
13:00:08 <tusho> check it :P
13:00:11 * tusho does the same
13:00:15 <tusho> hmm
13:00:18 <tusho> they only provide distro packages
13:00:20 <tusho> and a vmware thing
13:00:21 <tusho> enterprisey
13:00:55 <tusho> ais523: http://wiki.developer.mindtouch.com/Deki_Wiki/Installation_and_Upgrade/1.9.0_Itasca_Source_Code_Install_and_Upgrade_Guide
13:01:02 <tusho> ok, THAT is obviously not mediawiki
13:01:13 <tusho> guess mozilla just made it looks like MW
13:02:37 <tusho> ais523: can you slap me, I'm about to go off writing a wiki engine
13:02:43 <tusho> and I Shouldn't
13:02:47 <ais523> tusho: no, slaps tend not to work over IRC
13:02:50 <ais523> at least not very well
13:02:54 <tusho> ais523: how about a Swhack
13:03:06 <ais523> ok
13:05:14 -!- Tritonio_ has joined.
13:05:18 <ais523> Deki Wiki looks worrying, anyway, it's full of dependencies on Windows and/or Mono
13:05:27 <ais523> "Adding services, like Microsoft Windows Live Controls, as a built-in component
13:05:27 <ais523> to a wiki is super interesting; MindTouch Deki Wiki is truly breaking new ground,"
13:05:27 <ais523> said George Moore, general manager, Windows Live Platform at Microsoft.
13:05:31 <ais523> that's from their README
13:05:39 <tusho> ais523: well, that's what microsoft want to do with it
13:05:44 <tusho> ais523: if you read their installation instructions, they're for mono
13:05:49 <tusho> nothing wrong with mono/C#
13:05:52 <tusho> nice VM, nice language
13:05:54 <ais523> well they have mono as a dependency
13:05:57 <tusho> yes
13:05:57 <tusho> and
13:05:59 <tusho> ?
13:06:13 <ais523> and lots of people are paranoid about mono because they think installing it allows Microsoft to sue you some time down the line
13:06:13 <tusho> ais523: gnome depends on Mono these days
13:06:17 <tusho> http://www.gnome.org/projects/tomboy/
13:06:25 <tusho> a gnome/C# app that runs on Mono
13:06:29 <tusho> i don't think it'd even run on windows
13:06:33 <ais523> tusho: no it doesn't, the person in charge wants it to but there are no Mono dependencies in Gnome core nowadays
13:06:42 <tusho> ok, well ubuntu includes t
13:06:43 <tusho> it
13:06:47 <ais523> yes
13:07:02 <ais523> apparently there are two programs in Ubuntu by default that depend on it
13:07:28 <ais523> also someone put in a dependency for OpenOffice.org on Mono but there isn't a dependency there actually and after removing the dependency it still works
13:07:41 <tusho> what gui toolkit does openoffice use again?
13:07:47 <tusho> it's some crazy shit that looks like java but isn't
13:07:48 <tusho> iirc
13:07:55 <ais523> not sure
13:08:26 <ais523> and arguably any GUI made by Sun ends up looking like Java, because it's the same GUI designers
13:09:08 <tusho> they should fire 'em
13:09:08 <tusho> :D
13:11:56 -!- tusho has changed nick to mupersan.
13:12:04 -!- mupersan has changed nick to tusho.
13:12:25 -!- tusho has changed nick to mupersan.
13:12:30 -!- mupersan has changed nick to tusho.
13:14:45 <tusho> Well, mupersan has been defeated.
13:14:55 <tusho> The name would trip me up if I didn't already have one.
13:15:23 <tusho> Hm. Now language choice will trip me up. Damn.
13:15:26 <tusho> INTERCAL!
13:15:26 <ais523> tusho: the last few events here in #esoteric would look pretty weird to anyone who wasn't in the other channels that provide context
13:15:31 <tusho> ais523: quite
13:15:40 <ais523> oh, btw, hi optbot, hi fungot
13:15:41 <optbot> ais523: no it's not :(
13:15:41 <fungot> ais523: so include the code? :p) and all is well and good.' you can hang around in mystream. but when you pass your custom port to a procedure without naming it after " people who are used to
13:15:53 <fizzie> I, for one, am confused about what just happened.
13:16:26 <ais523> fizzie: I don't think it makes sense without having been in ##nomic at the same time
13:16:27 <fizzie> Especially with irssi's nick-tracking-for-query-windows, which added a "You are now talking with mupersan" line as the first line I noticed.
13:18:58 <ais523> fungot: provide some context for fizzie
13:19:04 <ais523> fungot?
13:19:05 <tusho> ais523: do you think I should give perl another chance for this?
13:19:15 <tusho> fungot: test
13:19:15 <fizzie> fungot: Why so quiet?
13:19:19 <ais523> tusho: actually I'd rather like to see it in INTERCAL
13:19:24 <fizzie> ^help
13:19:26 <tusho> ais523: you can port it ;)
13:19:27 <ais523> but that would be really difficult
13:19:31 <fizzie> Wow, been a while since the last crash.
13:19:33 <tusho> i'm not insane enough
13:19:42 -!- fungot has quit (Read error: 131 (Connection reset by peer)).
13:19:48 <ais523> maybe I should make an INTERCAL backend for gcc, not sure if it would be easier or harder than brainfuck
13:20:01 <ais523> worryingly many of INTERCAL's commands are not too hard to explain to gcc
13:20:07 <fizzie> It saw that ais523 "provide some context" line and got confused.
13:20:13 <ais523> it can understand what ABSTAIN does to some extent, for instance
13:20:24 <ais523> but it tends to assume things that aren't true
13:20:25 -!- fungot has joined.
13:20:48 <fizzie> fungot: Feeling better?
13:20:49 <fungot> fizzie: ( indirectly via fnord and my blue fnord long underwear all ready to go through all words in the stdlib
13:20:59 <fizzie> Sounds... fungotty enough.
13:21:00 <fungot> fizzie: guess i've not done any forth coding since... well, physically around me without specifying " good stewart" versus " xtu". ( advanced in his mind uses it.
13:21:45 <tusho> Test hi
13:21:56 <ais523> hi fungot
13:21:56 <fungot> ais523: those are just the ordinary ( for call/ cc))) hangs
13:23:58 <tusho> ais523: is there any actual justification for a lot of perl's weirdness?
13:24:02 <ais523> yes
13:24:04 <tusho> I can see how some of it leads to interesting stuff
13:24:05 <tusho> but most of it...
13:24:21 <ais523> Perl is designed to be ruthlessly pragmatic AFAICT
13:24:57 <tusho> but a lot of the pragmatism is just silly & afaict not very helpful either
13:30:53 <tusho> ais523: does perl have a Git module?
13:30:54 <tusho> hmm.
13:30:56 <tusho> seems so
13:31:02 <tusho> ah. it's part of official git
13:37:28 <fizzie> For disturbingly many X, "does perl have a X" has a positive answer.
13:39:36 -!- Judofyr_ has joined.
13:39:36 -!- Judofyr has quit (Read error: 104 (Connection reset by peer)).
13:41:32 <tusho> fizzie: libido?
13:42:00 <ais523> tusho: well in C you could import that with -lido, Perl naming conventions are a bit different though
13:42:18 <tusho> man someone make a protocol called ido already
13:42:18 <tusho> :D
13:43:13 <tusho> Hmm. I haven't bought any albums, recently, apart from this one.
13:43:19 * tusho Swhacks himself for being a naughty pirate.
13:43:23 * tusho denies that Swhack.
13:43:30 <tusho> (/me checks download status...)
13:44:10 -!- tritonio__ has joined.
13:44:44 <tusho> Why must there be throttles in the world.
13:44:45 -!- Tritonio_ has quit (Read error: 110 (Connection timed out)).
13:44:46 <tusho> Whyyyy.
13:45:12 <ais523> tusho: to prevent one person being able to slashdot the entire Internet with wget
13:45:40 <ais523> (there are ways to set its settings so it'll download every web page linked from any other webpage recursively forever, which will end up downloading much of the Internet, but this is a bad idea)
13:46:10 <tusho> ais523: Or rather so that the file dump sites can sucker you into being a premium account. (I'd use bittorrent except 1. if a friend uploads it I can be sure of the quality & correct tags 2. It's more reliable, in general, whereas torrents often end up with incomplete files etc)
13:50:53 <tusho> Woop woop. Downloaded.
13:51:09 <ais523> tusho: what did you download?
13:51:19 <tusho> An album.
13:51:26 <tusho> Ugh, my fonts have messed up.
13:51:32 <tusho> Always seems to happen after catting /dev/urandom.
13:51:34 * tusho restarts
13:51:40 <ais523> tusho: use the reset command?
13:51:52 <ais523> that cleans up a random cat for me
13:51:55 <tusho> ais523: no I mean literally
13:52:00 <tusho> even if I restart the terminal
13:52:04 <ais523> how?
13:52:05 <tusho> it's something to do with os x font caches
13:52:09 <tusho> I imagine leopard fixes it
13:52:11 <ais523> that's pretty bad terminal design...
13:52:19 <tusho> ais523: it happens with any terminal
13:52:21 <tusho> I think its an os bug
13:52:24 <tusho> but it rarely happens
13:52:33 <tusho> mostly if you give it really wacky unicode over the course of several days
13:52:38 <ais523> how can the OS mess up the fonts just because you catted something to a terminal?
13:52:43 <tusho> i don't know. :P
13:53:51 <ais523> oh, btw I found an explanation of SGML comments that actually made sense
13:54:12 <ais523> it seems that <! -- this is a comment -- > is fine in SGML (and therefore in early versions of HTML)
13:54:18 <tusho> it is
13:54:26 <ais523> because <! starts a declaration, > ends it, and -- toggles a comment inside a declaration
13:54:46 <tusho> ah, that's how it got the syntax
13:54:50 <ais523> that's why <!----> starts and ends a comment but <!------> ends up inside a comment
13:54:53 -!- oklofok has quit (Read error: 113 (No route to host)).
13:55:10 <tusho> brb.
13:55:16 -!- tusho has quit.
13:56:48 -!- jix has joined.
13:58:21 -!- tusho has joined.
13:58:41 <tusho> ugh, mouse out of battery again
13:58:50 <tusho> that does it, after this i'll put back in my crappy old wired mouse
13:59:02 <ais523> tusho: that's why I'm using a wired mouse at the moment too
13:59:10 <tusho> ais523: it didn't used to do this
13:59:14 <tusho> but it's been dropped a few times
13:59:16 <ais523> and this mouse is very crappy, I suspect it's made of cardboard but am not sure
13:59:25 <tusho> and I think that fucked it up
13:59:39 <tusho> (the batteries have a little checker thing on the side and they always have like a third)
13:59:45 <tusho> (and yet the mouse says they're dead)
14:00:40 <ais523> tusho: could be a loose connection causing resistance inside the mouse, the battery charge would appear lower to the mouse because less voltage and/or current would get through
14:00:40 <ais523> and I can see how dropping a mouse would cause a loose connection
14:00:55 <tusho> ais523: something over my head like that, yes
14:00:59 <tusho> it scratched the teflon base
14:01:08 <tusho> so now it's awkward to use on anything other than a fibrous mouse mat
14:01:11 <tusho> and it's slowed down a bit even on that
14:01:16 <tusho> so i had to turn accelleration up
14:02:38 <tusho> ais523: http://zeepmobile.com/ neat
14:02:52 <tusho> they use the last 40 chars of the message for ads though :(
14:02:57 <tusho> still. neat.
14:03:30 <ais523> tusho: now all that's needed is someone interfaces it with Java, then we can plz send everyone the code
14:03:37 <tusho> ais523: brillant
14:04:04 <ais523> sending SMS messages from Java was the original question that sparked off that particular meme
14:04:10 <tusho> yes, I know
14:09:00 -!- oklopol has joined.
14:11:48 <tusho> So.
14:12:03 <ais523> hi oklopol
14:12:20 <oklopol> hi
14:12:27 <oklopol> anyone an expert on mips?
14:12:36 <tusho> yes, GregorR
14:12:36 <oklopol> i want like a spec, but i'm too lazy to ggl
14:12:38 <ais523> GregorR is I think
14:12:48 <tusho> hear that GregorR? we're pinging you
14:12:53 <tusho> like this: GregorR
14:15:50 <tusho> mp[e
14:15:51 <tusho> *nope
14:16:41 <ais523> tusho: the FSF have released a new propaganda video which I'm watching atm, it's good if you like unintentional humour
14:16:48 <tusho> ais523: by stephen fry?
14:16:51 <ais523> yes
14:16:55 <tusho> i'll watch that in a bit
14:16:58 <tusho> i like stephen fry a lot
14:17:28 <ais523> basically they've persuaded him to spout propaganda lines explaining what FSF-free software is in terms that a kindergarten could understand
14:17:34 <ais523> which is all very patronising
14:18:01 <tusho> ais523: i'm sure he had a lot of fun being patronising too
14:18:13 <ais523> yes, I agree
14:18:43 <ais523> the FSF are still desperately trying to promote gNewSense
14:18:55 <tusho> yea, i read the reddit comments to that video and saw gnewsense
14:18:58 <tusho> and i just laughed
14:19:09 <tusho> oh FSF, when will you learn about reality?
14:20:23 <tusho> ais523: could you check if rutian's apache is gzipping pages it sends?
14:20:24 <tusho> i hope so
14:20:25 <ais523> they released it cc-nd
14:20:32 <tusho> ugh, I hate -nd
14:20:32 <ais523> tusho: I think I can check
14:20:40 <tusho> it's evil
14:20:48 <ais523> tusho: the FSF think propaganda should be no-derivs
14:20:55 <tusho> ais523: yea, god forbid they get made fun of
14:20:57 <ais523> the Emacs manual ended up being declared non-free by Debian
14:21:01 <ais523> for a while
14:21:05 <ais523> until they changed their mind about that
14:21:21 <tusho> ais523: i think I might remix stephen fry's video to make the FSF look even more ridiculous (after watching it) and host it out of spite
14:21:34 <tusho> and have at the bottom, two links
14:21:41 <tusho> fsf.org - "Support free software!"
14:21:45 <fizzie> Lots of GNU program documentation is in Debian non-free, thanks to GFDL.
14:21:47 <tusho> creativecommons.org - "Support free culture!"
14:21:49 <tusho> "...wait"
14:22:07 <tusho> fizzie: Hm, so Wikipedia isn't debian-free?
14:22:28 <ais523> tusho: it depends on what options on the GFDL you select
14:22:31 <ais523> Wikipedia is debian-free
14:22:40 <fizzie> According to vrms, I've got non-free packages like: autoconf-doc, gdb-doc, gcc-doc-base, ocaml-doc.
14:22:40 <ais523> but the GFDL has all sort of optional extras you can add on
14:22:55 <ais523> for including propaganda into a document in a non-free way
14:23:06 <ais523> as long as it's unrelated to the subject of the document
14:23:07 <fizzie> Immutable sections were the thing I saw people griping about.
14:23:09 <tusho> i have non-free software such as ... um ... I don't think it'll fit on an IRC line :P
14:23:32 <fizzie> Yes, well, I just selected some of the "-doc" packages I had; there's others.
14:23:36 <ais523> in other words GFDL lets you add a section of propaganda to your documentation that nobody's allowed to remove, as long as it has nothing to do with the content people are actually looking for
14:24:25 <ais523> of course people who try to use the GFDL sanely, like me and whoever selected the licence for Wikipedia, disable all the optional extras and just end up with a licence that actually resembles the cc licences a bit
14:24:55 <tusho> i'd say something witty but I can't think of anything to make this funnier :)
14:25:44 <ais523> I think the problem is that the FSF don't really 'get' free software, despite having invented it
14:26:06 <tusho> ais523: my take on it is that the FSF are obsessed with making the general public all brainwashed to support everything they say
14:26:15 <tusho> so they add loads of terms to obligate the spreading of the propaganda
14:26:27 <tusho> (exaggerated, of course, but the basic idea)
14:26:40 <tusho> they'd be good virus writers
14:26:41 <ais523> tusho: bad news, it isn't gzipping, I would tell you in #ESO but you aren't there
14:26:49 <tusho> ais523: ah, so that's why it's not all that fast
14:34:38 <AnMaster> ais523, http://rafb.net/p/dbkAv776.html
14:34:41 <AnMaster> not sure about it
14:34:44 <AnMaster> but could be relevant
14:35:06 <AnMaster> or could be false positive
14:35:12 <ais523> AnMaster: those warnings aren't just in the compiler, they're in the C-INTERCAL manual too
14:35:22 <ais523> they're potential gotchas for people writing code to interface with INTERCAL code
14:35:29 <AnMaster> ais523, um?
14:35:31 <AnMaster> huh?
14:35:40 <AnMaster> ah
14:35:47 <ais523> AnMaster: the manual warns that the variables won't be initialised and so don't rely on them being initialised
14:35:48 <AnMaster> longjmp into a function?
14:36:01 <ais523> AnMaster: yes, or goto into a block with initialised variables
14:36:07 <AnMaster> right
14:36:13 <ais523> as in goto a; {int b; a: ; }
14:36:14 <AnMaster> ais523, anyway you could have a bug there
14:36:28 <AnMaster> ais523, and this is not with EC stuff
14:36:30 <AnMaster> continuation.i
14:36:32 <AnMaster> -m
14:36:35 <AnMaster> so not sure...
14:36:59 <ais523> oh, wait
14:37:05 <ais523> actually that's just a false positive
14:37:16 <ais523> because those variables go out of scope before they can be used
14:37:24 <ais523> the code for -m is more like goto a; {int b=2; } a: ;
14:37:29 <ais523> which is clearly not a problem
14:37:52 <ais523> it's kind-of obvious that's happening from the error because it's skipping a huge number of variables with the same name
14:37:57 <ais523> which don't shadow each other
14:38:03 <ais523> so they all go out of scope before there's a problem
14:40:38 * tusho downloads some more stuff
14:41:13 <AnMaster> ok
14:42:24 <tusho> 17 minutes remaining...
14:44:55 <oklopol> http://www.vjn.fi/pb/p144322651.txt readable and/or Cish?
14:44:58 <oklopol> i'm a bit rusty
14:45:19 <tusho> oklopol: quite Cish
14:45:24 <ais523> oklopol: those bitfields will cause havoc on an 8-bit system
14:45:27 -!- Judofyr_ has quit (Read error: 104 (Connection reset by peer)).
14:45:31 <oklopol> ais523: how so?
14:45:34 <tusho> oklopol: use int argc, char **argv though
14:45:37 <tusho> instead of nargs,args
14:45:40 <oklopol> right
14:45:43 <ais523> they don't fit nicely on 8-bit boundaries
14:45:44 <tusho> but apart frmo that, it looks kind of like c from the 70s :P
14:45:46 <tusho> which is cool
14:46:00 -!- Judofyr has joined.
14:46:06 <oklopol> ais523: well then i'll just have to do the bitshifts manually.
14:46:21 <tusho> oklopol: do you care about 8 bit systems
14:46:21 <ais523> tusho: C from the 70s would be main()int argc;char** argv;{}
14:46:22 <tusho> :P
14:46:26 <tusho> ais523: well, you know what i mean
14:46:39 <oklopol> which basically means writing in python what the C compiler has for this exact case
14:46:57 <tusho> oklopol: just do what you're doing
14:47:05 <tusho> unless you wanna run it on a nes
14:47:48 -!- oklofok has joined.
14:47:48 -!- oklopol has quit (Read error: 104 (Connection reset by peer)).
14:47:55 <oklofok> i've managed to break another cable
14:47:58 <oklofok> god i suck
14:48:09 <oklofok> "as always, i want it to run on my own computer, everything else is just gravy." was my last message, not sure if you got it.
14:49:16 <ais523> oklopol: no, leave it as it is
14:49:16 <ais523> the compiler will sort it out for you
14:49:16 -!- ais523 has quit (Remote closed the connection).
14:49:31 -!- ais523 has joined.
14:49:33 <oklofok> "sort it out"?
14:49:34 <tusho> wb ais523
14:49:36 <oklofok> what do you mean
14:49:51 <oklofok> i need the bitfields to have that exact structure, because i'm writing that raw into a file
14:50:13 <oklofok> sort out the shifting the data into the struct?
14:50:25 <ais523> oklofok: C doesn't guarantee any structure in bitfields
14:50:36 <ais523> for instance, what's the endianess of a 26-bit int?
14:50:41 <oklofok> well that sucks donkey ass
14:50:46 <ais523> it will vary from system to system
14:50:58 -!- Judofyr has quit.
14:51:03 <ais523> the bits are guaranteed to be in the order you say but there may be padding between them
14:51:28 <oklofok> so basically i have to shift everything manually into an int
14:51:31 <ais523> gcc lets you remove the padding with __attribute__((__packed__)) but I'm not sure if that'll work on non-32-bit systems, where your bitfields cross the boundaries between ints
14:51:40 <ais523> manual shifting is safer, and easy
14:51:42 <oklofok> that sucks donkey balls
14:51:58 <oklofok> yeah, well, i'll stick with this one, and make a python program convert all that for me
14:52:11 <oklofok> not convert, shiftorize is the correct term
14:52:23 <tusho> oklofok: why not just use attribute packed
14:52:25 <tusho> it's probably the best
14:52:30 <tusho> after all, you only care about your system
14:52:30 -!- tritonio__ has quit (Client Quit).
14:52:31 <oklofok> anyway i have some business to attend to, see you in a bit
14:52:32 <tusho> so it'll be OK
14:52:37 <oklofok> tusho: well i kinda missed that line :P
14:52:40 <tusho> :P
14:52:44 <oklofok> yeah, that'll indeed be okay
14:53:02 <oklofok> i think i automatically skip lines that contain something as complicated as __attribute__
14:53:25 <oklofok> you will have to tell me how that's used later, when i actually start making this
14:53:45 <ais523> oklofok: it isn't standard C, gcc lets you do that sort of thing but some compilers don't or have different syntax
14:53:59 <oklofok> ais523: yeah that's fine by me, but how exactly is it used?
14:54:22 <oklofok> do i just write __attribute__((__packed__)) in my diary or something?
14:54:28 <ais523> you put the syntax after the } of the struct definition
14:54:30 <oklofok> or should it be written in the code somewhere
14:54:37 <oklofok> ah, after the whole thing
14:54:44 <oklofok> good, i'll be trying that
14:54:58 <oklofok> but, ima take a break from irc now, see you in a bit ->
14:55:03 <ais523> ok
14:58:04 <ais523> tusho: heh, newlib is formed by combining code licenced under 28 different BSD-style licences and the LGPL
14:58:15 <tusho> haha
14:58:18 <ais523> that's legal, but hardly good style
14:58:25 <tusho> :P
14:58:53 <ais523> it makes the copyright notice stupidly long
14:59:19 <tusho> ais523: idea for a copyright license
14:59:34 <tusho> for each derivative
14:59:39 <tusho> you have to add one word to a one word story included with the program
15:00:20 <ais523> tusho: I wanted to write an anti-copyleft licence which was still open-source; all derivative works had to add an extra condition to the licence, preferably a silly one which hardly ever comes up
15:00:24 <tusho> heh
15:00:29 <tusho> copyside
15:00:35 <ais523> therefore derivative works can be non-open-source but the original is open source
15:00:55 <ais523> I don't think I'd use such a licence except for something silly though
15:01:04 <ais523> I mean, sillier than usual
15:01:22 <tusho> ais523: what about a licensenomic
15:01:32 <tusho> different derivatives could vote on license changes in their parents
15:01:36 <ais523> tusho: combining a nomic legal system with a RL legal system?
15:01:40 <tusho> exactly
15:01:58 <ais523> that would get very dangerous very quickly, especially when it came to indemnification
15:02:16 <tusho> ais523: it'd probably have a huge legalese of limitations
15:02:18 <ais523> you might end up having to pay Apple the damages for being sued by Microsoft, for instance
15:02:24 <tusho> ha
15:02:30 <tusho> it'd only be for silly things anyway
15:14:32 <tusho> a
15:22:52 <oklofok> hmm, is there an assembly that requires you to declare a register before you use it
15:23:16 <oklofok> you could have the speed benefit of not having to push everything @ call, but still have the safety
15:23:42 <ais523> oklofok: C written entirely with gcc asm statements
15:23:54 <oklofok> well yeah
15:24:10 <oklofok> but that's even higher up
15:24:12 <oklofok> i don't want that
15:24:29 <ais523> that gives you the speed benefit
15:24:38 <ais523> it's just very verbose
15:24:47 <ais523> the whole thing collapses into just the asm when it's compiled
15:25:00 <oklofok> sure
15:25:09 * ais523 recalls writing asm like that on a different compiler because they didn't know how to use the assembler
15:25:20 <oklofok> but, you don't have to specify the registers you use, and that's a bit boring
15:25:26 <oklofok> hmm
15:25:31 <oklofok> actually you do have to do that
15:25:51 <oklofok> you will have to elaborate on how a register is declared in C
15:26:05 <oklofok> inside an asm statement
15:26:16 <ais523> oklofok: again you can't do that in general, in gcc you can declare a variable to be in a particular register
15:26:18 <oklofok> can't you just write any assembly you like?
15:26:31 <ais523> and in gcc you have to specify the inputs and outputs to each asm statement you write
15:27:08 <oklofok> i should learn more about gcc, it seems to be incredibly awesome and great
15:27:35 <ais523> it's good for doing non-portable stuff, and most of the stuff you're asking about can't be done portably
15:29:13 <oklofok> i don't care about portability, i mainly wanted to know whether that idea has been investigated
15:29:38 <ais523> gcc's asm is awesome compared to asm in all the other non-gcc-based compilers I've used
15:29:48 <oklofok> well, i invented it for my stack-language->brainfuck compiler as well, it's not really an invention; guess that's why i specifically asked whether it exists
15:29:58 <ais523> most of the others required you to guess where everything went when mixing asm and C
15:30:02 <ais523> in the same source file
15:30:09 <oklofok> heh
15:45:34 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | print message.
15:46:30 <oklofok> optbot!
15:46:30 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | you are not allowed to use a printout?.
15:46:34 <oklofok> optbot!
15:46:35 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | Ah. Fine ;)..
15:46:39 <oklofok> :)
16:04:34 -!- KingOfKarlsruhe has quit (Remote closed the connection).
16:06:39 <tusho> brb.
16:10:35 -!- Tritonio_ has joined.
16:11:26 <AnMaster> <ais523> gcc lets you remove the padding with __attribute__((__packed__)) but I'm not sure if that'll work on non-32-bit systems, where your bitfields cross the boundaries between ints
16:11:26 <AnMaster> <ais523> manual shifting is safer, and easy
16:11:27 <AnMaster> well
16:11:30 <AnMaster> in erlang it would be easy
16:11:36 <AnMaster> very easy
16:11:46 <ais523> AnMaster: what if you were on a system with 11-bit ints?
16:11:51 <ais523> not that they exist, but they could do in theory
16:12:14 <ais523> well, 11-bit char
16:12:22 <ais523> it would have to be 22-bit int, 33-bit or 44-bit long
16:12:30 <ais523> and long long would be 66 bits or more
16:18:36 -!- AnMaster_ has joined.
16:19:48 -!- AnMaster has quit (Nick collision from services.).
16:20:14 -!- AnMaster_ has changed nick to AnMaster.
16:20:19 <AnMaster> so
16:20:21 <AnMaster> what was the last I said?
16:20:23 <AnMaster> ais523, ^
16:20:27 <AnMaster> <ais523> not that they exist, but they could do in theory <-- last I saw from anyone else
16:20:29 <AnMaster> I said several lines after that though
16:20:42 <ais523> [16:11] <AnMaster> <ais523> gcc lets you remove the padding with __attribute__((__packed__)) but I'm not sure if that'll work on non-32-bit systems, where your bitfields cross the boundaries between ints
16:20:42 <ais523> [16:11] <AnMaster> <ais523> manual shifting is safer, and easy
16:20:42 <ais523> [16:11] <AnMaster> well
16:20:42 <ais523> [16:11] <AnMaster> in erlang it would be easy
16:20:42 <ais523> [16:11] <AnMaster> very easy
16:21:15 <AnMaster> ais523, http://rafb.net/p/yehiAb75.html
16:22:07 <ais523> _ means don't care in Prolog too
16:22:38 <AnMaster> well erlang doesn't do back tracking
16:23:40 <AnMaster> for union it would be harder
16:24:01 <AnMaster> you would probably do it in two steps
16:24:22 <AnMaster> <<Opcode:6,Parameters:26>>
16:24:29 <AnMaster> unless there was some easy way to see
16:24:46 -!- oklofok has quit (Read error: 113 (No route to host)).
16:24:49 <AnMaster> for example, first bit set of Opcode means that it is a "Rinstr"
16:24:52 <AnMaster> then you could do:
16:24:54 -!- oklopol has joined.
16:25:30 <AnMaster> <<2#1:1,Opcode:5,Rs:5,Rt:5,Rd:5,Shamt:5,Funct:6>>
16:25:35 <AnMaster> 2# for base 2
16:26:00 <AnMaster> I love Erlang pattern matching :)
16:26:07 <AnMaster> ais523, it is so powerful
16:26:34 <ais523> lots of langs have powerful pattern matching, unfortunately most of the really popular ones don't
16:26:38 -!- BMeph has joined.
16:26:54 <AnMaster> I saw some code to detect if it was a MPEG frame. the function prototype was: decode_header(<<2#11111111111:11,B:2,C:2,_D:1,E:4,F:2,G:1,Bits:9>>)
16:27:02 <AnMaster> MPEG frame header*
16:27:45 <AnMaster> ais523, anyway how many got such powerful bit matching syntax?
16:27:56 -!- BMeph has quit (Client Quit).
16:28:09 -!- BMeph has joined.
16:28:23 <AnMaster> it can also be used to construct, not just pattern match
16:28:34 <ais523> AnMaster: Prolog doesn't have bitwise variables but it can match arrays and tuples the same way as that, and likewise can construct the same way
16:28:53 <AnMaster> well erlang can do it for arrays and tuples too
16:29:37 <AnMaster> ais523, http://rafb.net/p/C7qQoh24.html
16:30:10 <ais523> in Prolog the entire lang's pattern matching, pretty much
16:30:13 <ais523> with backtracking
16:30:45 <AnMaster> well erlang doesn't use backtracking, doesn't really make sense for something "soft realtime" (which erlang is, not hard realtime though)
16:30:53 <ais523> I should really write more Prolog, it's a beautiful language but I haven't written more than simple test programs in it
16:31:36 <AnMaster> ais523, back tracking wouldn't be good for something performance critical
16:31:49 <ais523> AnMaster: it depends on how deep it is
16:32:05 <ais523> you can write Prolog so that every predicate is deterministic, then all backtracking collapses into an if
16:32:13 -!- Mony has joined.
16:32:23 <AnMaster> ais523, does prolog have list comprehensions?
16:32:36 <Mony> hi
16:32:43 <AnMaster> hello
16:32:45 <ais523> I'm not entirely sure what a list comprehension is, but I'm pretty sure from memory that it does
16:32:48 <ais523> and hi Mony
16:33:06 <AnMaster> 1> L = [1,2,3,4,5].
16:33:06 <AnMaster> [1,2,3,4,5]
16:33:23 <AnMaster> say you want to multiply each number in the list by 2
16:33:31 <AnMaster> you could use lists:map
16:33:32 <AnMaster> like:
16:33:38 <AnMaster> 2> lists:map(fun(X) -> 2*X end, L).
16:33:38 <AnMaster> [2,4,6,8,10]
16:33:40 <AnMaster> or
16:33:44 -!- BMeph has quit ("http://www.mibbit.com ajax IRC Client").
16:33:48 <ais523> ah, that sort of thing's generally done using setof
16:33:52 <AnMaster> 3> [2*X || X <- L ].
16:33:53 <AnMaster> [2,4,6,8,10]
16:33:56 <AnMaster> like that
16:33:59 <ais523> where the list comprehension is mixed into the syntax of the rest of the language
16:34:01 <AnMaster> that is a list comperhension
16:34:02 <AnMaster> the last one
16:34:05 <AnMaster> map of course isn't
16:34:36 <AnMaster> ais523, eh?
16:34:45 <ais523> doublemember(A,L) :- member(B,L), A is B*2;
16:34:48 <AnMaster> well
16:34:51 <ais523> then you do setof(doublemember(A,L),A)
16:34:52 <AnMaster> [2*X || X <- L ].
16:34:56 <AnMaster> that is a list comprehension
16:34:59 <AnMaster> map() isn't
16:35:03 <ais523> that's almost exactly your list comprehension just with more verbose synta
16:35:05 <ais523> s/$/x/
16:35:10 <AnMaster> ais523, hm yeah
16:35:42 <AnMaster> ais523, you can have several comma separated entries after the || there in erlang
16:35:44 <Deewiant> well, "list comprehension" generally means "that, but with less verbose syntax" :-)
16:36:03 <Deewiant> of course all list comprehensions can be rewritten in terms of combinators like map
16:36:09 <ais523> Deewiant: yes, a quick Wikipedia check shows that someone invented "Visual Prolog" which has a short syntax for a list comprehension
16:36:13 <AnMaster> Deewiant, indeed
16:36:21 <AnMaster> 1> [ X || {a, X} <- [{a,1},{b,2},{c,3},{a,4},hello,"wow"]].
16:36:22 <AnMaster> [1,4]
16:36:24 <ais523> Prolog tends to have consistent syntax rather than short syntax, though
16:36:31 <AnMaster> pattern matching everywhere! :)
16:36:46 <ais523> pretty much syntax can be deduced from the rules of the language
16:37:08 <ais523> ; , ! :- are pretty much the only control flow operators you need
16:37:13 <fizzie> List comprehensions have been all the rage after Python did them; they added those to Javascript, too. (In Mozilla, although it might be in a later ECMAScript version too.)
16:37:17 <ais523> and you don't need to write ; explicitly either
16:37:56 <AnMaster> ais523, um, erlang got if and case, but you can always use pattern matching instead
16:38:11 <AnMaster> however sometimes it is clearer with if and case
16:38:18 <AnMaster> than calling another function for it
16:38:22 <ais523> AnMaster: in Prolog it's always done with pattern matching
16:38:30 <ais523> or with ,
16:38:32 <ais523> for if
16:38:33 <ais523> sometimes
16:38:34 <AnMaster> ais523, sometimes the alternative is more readable
16:38:45 <ais523> it depends on if you're used to reading Prolog, I suppose
16:39:16 <AnMaster> max(X, Y) when X > Y -> X;
16:39:16 <AnMaster> max(X, Y) -> Y.
16:39:17 <AnMaster> nice
16:39:24 <tusho> AnMaster: trivial
16:39:28 <AnMaster> tusho, indeed
16:39:33 <tusho> max x y | x > y = x
16:39:34 <AnMaster> but still a nice syntax
16:39:38 <ais523> AnMaster: that looks like Prolog with a non-standard syntax
16:39:38 <tusho> | otherwise = y
16:39:40 <tusho> max x y | x > y = x
16:39:41 <tusho> | otherwise = y
16:39:46 <tusho> (just getting that in line :P)
16:39:51 <AnMaster> ais523, it is erlang
16:39:59 <ais523> let me translate it into Prolog
16:40:01 <Deewiant> max x y = if x > y then x else y
16:40:10 <Deewiant> don't hate if statements :<
16:40:19 <ais523> max(X,Y,R) :- X > Y, !, X=R
16:40:25 <AnMaster> well the "when" keyword in erlang is a guard
16:40:34 <AnMaster> can be used with pattern matching too
16:40:34 <ais523> max(X,Y,R) :- !, Y=R
16:40:39 <ais523> hmm... that can be shortened
16:40:47 <ais523> max(X,Y,X) :- X > Y, !
16:40:56 <ais523> max(X,Y,Y) :- Y > X
16:40:59 <AnMaster> X,Y,X?
16:41:04 <ais523> AnMaster: pattern matching
16:41:09 <ais523> it matches the argument to the function against the result
16:41:13 <AnMaster> ais523, it takes 3 parameters?
16:41:16 <ais523> there is no distinction in Prolog
16:41:24 <ais523> AnMaster: the return variable is always one of the arguments in Prolog
16:41:29 <AnMaster> ah ok
16:41:33 <ais523> things return values through their arguments
16:41:44 <ais523> apart from pass/fail Booleans
16:41:46 <AnMaster> ais523, so everything doesn't have a value in prolog?
16:41:54 <ais523> AnMaster: functions are only pass/fail
16:41:56 <tusho> AnMaster: prolog doesn't work like that
16:41:57 <AnMaster> ah
16:41:59 <ais523> well, not functions, predicates
16:42:02 <tusho> it's a totally different paradigm
16:42:03 <AnMaster> right
16:42:16 <oklopol> "Most actual digital computers have only a finite store." <<< wonder what turing meant by this exactly
16:42:19 <ais523> they can put extra restrictions on their arguments as a side effect
16:42:21 <AnMaster> tusho, yes though ais523 seem to suggest it is close to erlang
16:42:26 <AnMaster> and erlang is functional
16:42:27 <tusho> AnMaster: it's not
16:42:29 <tusho> other than syntax
16:42:33 <tusho> and functionalism
16:42:34 <ais523> AnMaster: no, I was suggesting it had similar pattern matching facilities
16:42:40 <ais523> Prolog is declarative, not functional
16:43:03 <AnMaster> ais523, well I read that erlang is classed as something in between declarative and functional
16:43:04 <Deewiant> well, functional is declarative to an extent
16:43:39 <ais523> Deewiant: yes, it can be, but it's not really crazy declarative like Prolog
16:43:40 <Deewiant> the difference is that prolog is logic programming
16:43:55 <ais523> Deewiant: apart from !
16:44:02 <ais523> the cut messes things up so beautifully
16:44:07 <ais523> although it's pretty hard to explain
16:44:09 <AnMaster> what does ! do?
16:44:36 <ais523> AnMaster: prevents backtracking backwards past the ! to earlier in the same predicate or an alternative to that predicate, backtracking has to go to a previous predicate instead
16:44:49 <AnMaster> heh ok
16:45:14 <AnMaster> ais523, does Prolog support files? sockets?
16:45:31 <ais523> probably the best way to explain to a C programmer is that the difference between no cut and cut is a bit like the difference between if(a){do_a();} if(b){do_b();} and if(a){do_a();} else if(b){do_b();}
16:45:40 -!- oerjan has joined.
16:45:54 <AnMaster> ais523, well I'm an erlang programmer too :P
16:46:00 <ais523> AnMaster: not sure if that's in the standard library, the original implementation implemented files in a pretty quaint way with routines with silly names that tended not to be copied
16:46:00 <AnMaster> well a bit
16:46:07 <ais523> AnMaster: but I don't know erlang and I do know C
16:46:13 <AnMaster> ah true
16:46:29 <ais523> to get the Prolog equivalence working properly, think of do_a() and do_b() as either doing nothing or not returning depending on whether they can do something
16:46:30 <AnMaster> ais523, concurrency in prolog?
16:46:51 <ais523> AnMaster: they wouldn't mix well, loops in Prolog work differently from in most other languages
16:46:59 <ais523> well, you can loop by recursion, which functional programmers are fine with
16:47:06 <AnMaster> yes erlang does loops that way
16:47:09 <ais523> and you can loop by backtracking which is just weird if you're not used to it
16:47:13 <AnMaster> tail recursion
16:47:31 <AnMaster> ais523, how do you cause a backtrack to happen?
16:47:44 <ais523> AnMaster: any command failing, normally due to a lack of pattern match
16:48:00 <AnMaster> ais523, won't it give up at some point?
16:48:03 <Deewiant> AnMaster: you can look at http://shootout.alioth.debian.org/gp4/prolog.php for instance for prolog programs
16:48:07 <ais523> AnMaster: when it runs out of possibilities
16:48:08 <AnMaster> when it tried all possibilities
16:48:14 <AnMaster> ais523, so how could you loop then?
16:48:22 <ais523> AnMaster: repeat. repeat:-repeat.
16:48:33 <AnMaster> ais523, meaning?
16:48:41 <ais523> that translates roughly as "One way to repeat is to do nothing; another way is to repeat."
16:48:52 <AnMaster> ok....
16:48:53 <ais523> which means that there are an infinite number of different ways to repeat, due to the recursion
16:49:01 <tusho> ais523: you're kind of breaking AnMaster's brain
16:49:13 <AnMaster> ais523, is this like tail recursion? or does it eat up stack space
16:49:23 <tusho> AnMaster: you;re thinking way too low level
16:49:26 <oklopol> STACCKKKKKKKKKKKKKK
16:49:26 <ais523> AnMaster: it doesn't eat up stack space, nor trail space
16:49:32 <AnMaster> ah ok
16:49:43 <ais523> it does have a problem with nowhere to save data though unless you use things like assert
16:49:58 <ais523> so normally you implement your own leaky version of repeat so you can leave the loop at both ends
16:50:09 <oklopol> now is the loopie actually done by writing stuff in the first repeat?
16:50:17 <AnMaster> tusho, a non-tail recursion would eat up call stack space, while a tail recursive one would basically be translated to a goto to the start of the function
16:50:18 <oklopol> so you don't just infloop nop
16:50:28 <tusho> AnMaster: that's low-level thinking
16:50:38 <ais523> oklopol: no, a sample infloop printing hello world would be goal:- repeat, print("Hello, world!"), fail.
16:50:38 <tusho> prolog is a Very High Level language, as they're called
16:50:44 <AnMaster> tusho, "what the implementation is doing" thinking yes
16:50:49 <AnMaster> nothing wrong with that
16:50:55 <tusho> AnMaster: it is when you're thinking about the language
16:51:02 <oklopol> ais523: oh i see
16:51:06 <tusho> it's why a ton of things i try and explain to you go over your head
16:51:07 <ais523> tusho: I know the naive way to implement prolog, so I can think in terms of implementations too
16:51:17 <tusho> ais523: but he's not thinking naively
16:51:20 <ais523> there are less naive ways that run a lot faster though
16:51:23 <tusho> he's thinking about optimizations and stuff
16:51:28 <tusho> it's just not productive in this situation
16:51:42 <AnMaster> no I'm not
16:51:46 <ais523> tusho: you need to read several mathematical papers which I haven't read to understand how Prolog optimisation works, apparently
16:52:00 <AnMaster> if you want to do an infinite loop, for example a thread dispatching messages
16:52:06 <AnMaster> then you want tail recursion
16:52:19 <tusho> god, now I remember why I ignored AnMaster
16:52:22 <AnMaster> as you will run out of memory after some 10000 loops or so
16:52:22 <tusho> that's better.
16:52:32 <AnMaster> now this is very erlang style of thinking actually
16:52:45 <AnMaster> because erlang is kind of a mix between high and low level functional language
16:52:55 <ais523> AnMaster: tail recursion or backtracking in Prolog to prevent running out of stack, a good implementation won't run out of trail in tail-recursion either unless you're doing something silly like building an infinitely-long list
16:52:59 <AnMaster> erlang supports so called "linked in drivers" to interact with native code
16:53:14 <AnMaster> for example someone made a "SDL and OpenGL" linked in driver
16:53:19 <AnMaster> used by wings3d
16:53:29 <AnMaster> a 3D modelling program written in erlang
16:53:58 <AnMaster> ais523, indeed, but *non* tail recursion...
16:54:30 <ais523> AnMaster: well you wouldn't use that if you wanted to write an infinite loop
16:54:42 <ais523> that way you'd run out of both stack and trail, probably irrelevant which one runs out first
16:54:50 <oklopol> i don't believe in stack overflows
16:55:05 <AnMaster> ais523, exactly what I said...
16:55:43 <AnMaster> ais523, I'd say erlang is both high and low level
16:56:05 <AnMaster> high level functional programming is perfectly possible, but interacting with low level stuff is easy too
16:56:37 <AnMaster> not very odd when you think about it
16:56:40 <ais523> well Prolog is definitely high level, it doesn't even have anything very equivalent to what most languages call variables
16:56:46 <AnMaster> it is a general purpose programming language
16:57:04 <AnMaster> ais523, variables are "one time assign" in erlang if that is what you mean
16:57:24 <Deewiant> I heard somewhere that one of Prolog's original creators (or old developers) said that it would have been better off as a library in another language
16:57:32 <Deewiant> can anybody verify that?
16:58:14 <tusho> Deewiant: it's widely agreed on nowadays, I believe
16:58:21 <AnMaster> ais523, there *are* ways to get around that, for example using something called EDS tables, which are mostly used by the transaction database mnesia coded in erlang, it need to be stateful for obvious reasons
16:58:28 <ais523> AnMaster: variables are not exactly one time assign in Prolog, they get narrowed down over time
16:58:31 <tusho> Franz's Allegro Common Lisp has a prolog query language built in
16:58:33 <Deewiant> tusho: is there a semi-credible source for such a statement?
16:58:37 <tusho> Deewiant: my brain
16:58:38 <AnMaster> ais523, oh that is a new one hehe
16:58:42 <Deewiant> tusho: so no :-)
16:58:48 <tusho> Deewiant: cocks
16:58:51 <tusho> wait, no
16:58:55 <tusho> they dont' generally remember things
16:59:00 <tusho> sheesh, thought i was on to something then
16:59:01 <tusho> sorry
16:59:02 <Deewiant> nor are they credible
16:59:03 <tusho> no semi-credible sources
16:59:11 <tusho> Deewiant: oh I know some VERY credible cocks
16:59:13 <tusho> IF YOU KNOW WHAT I MEAN
16:59:16 <tusho> ... I don't know what I mean.
16:59:45 <Deewiant> tusho: where do you get "it's widely agreed on", then :-)
16:59:48 <Deewiant> said cocks?
16:59:54 <tusho> my brain
17:01:03 <ais523> AnMaster: basically in SSA a variable gets a value once and never changes, in Prolog once it gets an actual value it never changes (although the assignment can be backtracked past), but variables can be unified with other variables causing the variables to have to have the same value once a value does appear
17:01:19 <Deewiant> tusho: your brain is that wide?
17:01:31 <tusho> Deewiant: my brain is a cock, i think
17:02:48 <oerjan> tusho: i was going to avoid saying that
17:02:59 <tusho> oerjan: it's ok, i can take the immaturity of this channel to new levels
17:02:59 <AnMaster> ais523, heh
17:03:02 -!- Tritonio_ has quit (Remote closed the connection).
17:03:04 <tusho> it's just hard finding a good time to do so
17:03:17 <AnMaster> ais523, this sounds more like an automated logic proof checker or so
17:03:21 <tusho> hmm it's also possible that my cock is a brain
17:03:24 <tusho> but that'd be weird.
17:03:35 <tusho> (I mean, weirder than this hypothetical "braincock")
17:03:49 <AnMaster> ais523, no, more like: you give it some rules, and it works out a result that fits with all the rules
17:03:49 <Deewiant> AnMaster: doesn't sound far off the mark, actually
17:04:00 <Deewiant> AnMaster: that's pretty much exactly it
17:04:29 <AnMaster> question: will it do "any ok match" or "best match""
17:04:30 <AnMaster> say
17:04:34 <ais523> AnMaster: yes, were it not for the existence of ! that would be Prolog in a nutshell, ! throws the whole system quite out of kilter, which is why I like it
17:04:36 <Deewiant> "any ok"
17:04:50 <AnMaster> you have the coast line of africa and south america, and want to find the best possible fit
17:04:55 <ais523> AnMaster: "first match", and you can get subsequent matches using something like setof or failing when you get a match you don't like the look of
17:04:59 <AnMaster> within a given error range
17:05:20 <ais523> or in your case you could mess about with assert, which is another way to go insane in Prolog
17:05:31 <AnMaster> ais523, so prolog isn't suited for problems where there are "good" and "better" matches
17:05:38 <AnMaster> like best possible fit
17:05:43 <AnMaster> while no fit would be perfect
17:05:53 <ais523> AnMaster: it's not really good for anything but headlong depth-first search which is bad for that sort of problem
17:06:07 <ais523> that sort of problem is trivial to specify in Prolog but very difficult to specify efficiently
17:06:10 <AnMaster> ais523, so what language would you recommend for the problem I suggested?
17:06:26 <oklopol> i'd recommend muture, if it existed yet
17:06:27 <oklopol> :P
17:06:30 <tusho> how many albums have I downloaded today, 4 or 5?
17:06:33 <tusho> i think 5...
17:06:46 <tusho> and one arrived that i'd bought
17:06:47 <ais523> AnMaster: not really sure, I can't think of one that fits offhand
17:06:56 <oerjan> tusho: sqrt(20)
17:07:00 <tusho> well, I like all of them so far, so that's good
17:07:02 <tusho> oerjan: wowzers
17:07:03 -!- bsmntbombdood has quit (Connection reset by peer).
17:07:12 <oklopol> made muture exactly for that, running it as a human computer can already accomplish fun stuff
17:07:28 <AnMaster> ais523, actually I would use the "coast line" at say 1000 meters below the sea, I read somewhere that is a much closer fit than the "real" cost line
17:07:36 -!- bsmntbombdood has joined.
17:07:49 -!- bsmntbombdood has quit (Connection reset by peer).
17:08:23 -!- bsmntbombdood has joined.
17:08:28 <oerjan> the tectonic plates don't stop exactly at the seaside...
17:08:34 <tusho> oerjan: lies
17:08:40 <AnMaster> oerjan, true
17:09:07 <AnMaster> oerjan, I'd blame erosion I guess
17:09:08 <oerjan> for example, i think britain is on the same plate as the rest of europe, and the north sea
17:09:16 <oerjan> + ireland
17:09:47 <AnMaster> yes I know
17:09:54 <oerjan> also, sea level change
17:10:11 <oerjan> there was a relevant WP article...
17:15:15 <oerjan> http://en.wikipedia.org/wiki/Epeiric_sea i think it was
17:16:36 <oklopol> what *don't* you have vague knowledge about!
17:17:28 <oerjan> it's just a month or so since i discovered that article, and i had a hard time finding it again
17:18:32 <oerjan> (turned out North Sea had a link to it)
17:19:35 <oerjan> http://en.wikipedia.org/wiki/Transgression_(geology) is also relevant
17:19:53 <tusho> bam.
17:22:04 <tusho> Lost the game/
17:25:42 <tusho> omg
17:25:43 <tusho> i have an idea
17:25:50 <ais523> oh dear, tell me anyway
17:26:04 <tusho> a client filter that filters out messages like 'the game', 'i lost the game', 'the game: you all just lost it', etc
17:26:04 <ais523> (n.b. this tends to be my typical reaction to anyone who claims to have a new idea, not just you)
17:27:09 <oerjan> he never claimed it was new
17:27:21 <oerjan> a wise move, probably
17:30:36 <tusho> well, that was another good album
17:32:22 <oklopol> what you lisnin
17:32:29 <oklopol> izzi good
17:32:42 <tusho> oklopol: no, i said it was good but i was lying
17:32:43 <tusho> duh
17:32:47 <tusho> why would i tell the truth?
17:33:00 <oklopol> i have no idea how good was it?
17:33:31 <oerjan> tusho: because it's shiny!
17:33:35 <tusho> -4% in base -9i2
17:33:47 <oerjan> eek
17:34:04 <oerjan> er, what is that % doing there
17:34:52 <Deewiant> tusho: I had that thought approximately immediately when you said "Lost the game/"
17:35:01 <tusho> Deewiant: haha, awesome
17:35:02 <tusho> oerjan: because
17:35:34 <Deewiant> tusho: I was interested enough to look at /help ignore but too lazy to write the regex
17:36:25 <ais523> Deewiant: .*[Gg]ame.* should work for most cases
17:36:37 <Deewiant> ais523: a bit too inclusive :-)
17:36:58 <oerjan> TH/\T'5 WH/\T Y0U TH1NK
17:37:14 <oklopol> false positives are okay for that important a filtering
17:37:17 <fizzie> Also the ".*"s surrounding it are spurious, as it will accept a regex match anywhere in the string if you don't anchor it with ^/$.
17:37:32 <ais523> fizzie: ah, I didn't know whether it was anchored or not
17:37:37 <ais523> assuming anchored is more orthogonal
17:38:06 <oerjan> U \/\/ILL L0S3 TH3 G/\M3 /\NYH0\/\/
17:38:47 <ais523> oerjan: I have a Firefox extension to generate leet-speak, I only installed it for rot13 though and the leet came free with it
17:39:05 <Deewiant> I used to have that one too
17:39:11 <ais523> Y()|_| J|_|57 L()57 7|-|3 64|\/|3
17:39:19 <tusho> ais523: GAME woul dwork with that, to
17:39:20 <tusho> o
17:39:22 <oerjan> the question here is whether you have an extension to filter it, me thinks
17:39:25 <tusho> YOU JUST LOST THE GAME
17:39:35 <ais523> come to think of it that's sufficiently leet that I can't decipher it myself
17:39:38 <ais523> oko
17:39:42 <tusho> okoko
17:39:47 <fizzie> I had an ircII script installed which did leet among other ugly formats, once.
17:40:11 <fizzie> It did not convert from leet back to plain text, though.
17:40:20 <oerjan> okokoko
17:40:33 <ais523> fizzie: the leet back to plain text converter worked fine on that string I pasted
17:40:40 <ais523> oh, and okokokoko
17:40:41 <Deewiant> a GAME fingerprint that maps A-Z to q?
17:40:58 <ais523> Deewiant: wouldn't that be kind of pointless?
17:41:06 <Deewiant> kind of?
17:41:25 <fizzie> Not just a "kind of", many kinds of.
17:41:25 <ais523> besides, it should probably make all of A-Z print out the source code to the GAME fingerprint
17:41:30 <ais523> in different programming languages
17:41:38 <oerjan> *, * -> *, * -> * -> *, etc.
17:42:02 <ais523> oerjan: is that a Haskell kind signature?
17:42:03 <oklopol> okokokokokokoko
17:42:04 <ais523> if so, what for?
17:42:04 <oklopol> okokokokokokoko
17:42:06 <oklopol> okokokokokokoko
17:42:10 <oerjan> a list of them
17:42:12 <ais523> kokokokokokok
17:42:22 <ais523> oerjan: ah
17:43:52 <fizzie> ^bf ++++++++++[>+++++++++++<-]>+[.----.++++]
17:43:53 <fungot> okokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokoko ...
17:44:03 <tusho> fizzie: a work of art
17:44:08 <tusho> oklopol: oko-approved?
17:44:25 <oklopol> is what oko approved?
17:44:30 <tusho> that program
17:44:33 <tusho> ^bf ++++++++++[>+++++++++++<-]>+[.----.++++]
17:44:33 <fungot> okokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokoko ...
17:44:44 <oklopol> i like it
17:44:53 <oklopol> especially [.----.++++]
17:45:12 <tusho> oklopol: hmm
17:45:17 * tusho considers setting up ESO's Shrine to Oko
17:45:22 <tusho> wait, no
17:45:22 <tusho> it's oko
17:45:28 * tusho slaps himself
17:45:37 <ais523> tusho: it's actually plp, there was an off-by-one error
17:45:44 <tusho> ais523: like HAL?
17:47:03 <tusho> oklopol: the oko shrine will have everything getting bigger and smalling and flickering and will be impossible to navigate
17:47:06 <tusho> unless you are amazing.
17:47:23 <tusho> aww, oko.org is squatted :P
17:47:38 <oerjan> apparently okoko is a surname
17:47:50 <ais523> tusho: I once saw a website about how not to design websites
17:48:03 <ais523> and they'd invented a navigation system which was even worse than the one they liked least
17:48:06 <tusho> ais523: heh
17:48:11 <tusho> what was it called?
17:48:16 <fizzie> Osuuspankki (a Finnish bank) has taken oko.fi; that's not surprising. (Although they're not using that domain any more.)
17:48:35 <ais523> they were annoyed at navigation systems which just showed abstract shapes until rolled over
17:48:43 <ais523> so you had to roll over each image to tell where you could go
17:48:51 <tusho> oklopol: how many 'ko's does an oko site need?
17:48:55 <ais523> so they invented one where the targets of the link were randomised on each rollover
17:48:55 <tusho> okoko, okokokokokoko, etc?
17:48:57 <tusho> (for the domain)
17:49:05 <tusho> ais523: brilliant
17:49:29 <tusho> ais523: http://www.webpagesthatsuck.com/mysterymeatnavigation.html?
17:49:32 <ais523> that's it
17:50:40 <tusho> oklopol: well?
17:50:55 <tusho> okoko, okokoko, okokokokokokokokokoko, ...
17:50:55 <tusho> :P
17:53:21 <tusho> And the Wikipedia Terrible Main Page Suggestion Combined With Bad Sig award goes to...
17:53:23 <tusho> http://en.wikipedia.org/wiki/Talk:Main_Page#Icon
17:54:23 <ais523> tusho: there's a Main Page redesign competition-like object going on at the moment, there are therefore many candidates for the Wikipedia Terrible Main Page Suggestion award
17:54:29 <ais523> not sure about the Combined With Bad Sig part
17:54:40 <tusho> ais523: but that one is truly terrible, click the guys name and see it in action
17:54:56 <ais523> tusho: I've seen the barnstar in question befor
17:54:58 <ais523> s/$/e/
17:55:04 <tusho> ais523: but behind the logo?
17:55:06 <tusho> spinning?
17:55:07 <ais523> why do I keep leaving off the last character of sentences today?
17:55:25 <oerjan> ais523: becaus
17:56:03 <ais523> anyway, I tend to look suspectly at anyone with 4 collapsible boxes of userboxes on their userpage, at least as far as main page design is concerned
17:56:46 <Deewiant> oh wow, a wikipedia page that needs javascript
17:57:05 <ais523> Deewiant: needs it?
17:57:13 <ais523> most of the collapse stuff is designed to work without JS
17:57:14 <Deewiant> contains stuff that needs it
17:57:24 <ais523> although the way it's abused for userpages probably it does need the JS installed
17:57:28 <Deewiant> I can't uncollapse anything with JS disabled
17:57:37 <Deewiant> and I do have JS disabled for wikipedia
17:57:49 <ais523> ugh, it should autoexpand without JS, someone's been messing up the autocollapse code for userpage use
17:57:56 <ais523> a whole lot of dubious coding practices happen on userpages
17:58:25 <tusho> hmm... if you can position:absolute things on wikipedia
17:58:33 <tusho> then you could do a MySpace(TM) and make your completely own page
17:58:36 <tusho> with just the basic chrome at the top
17:58:46 <tusho> it'd probably be removed, but damn, gotta try that
17:58:58 <tusho> oklopol: an oko shrine would have to run really fast, wouldn't it?
17:59:04 <tusho> because while oko code is not fast
17:59:07 <tusho> it EMBODIES fast
17:59:15 <ais523> tusho: you can, but they started messing around with blacklisting various z-index messabouts because people were using them for trolling
17:59:29 <tusho> ais523: ah yes, that one
17:59:33 <tusho> GAWKY or something
17:59:36 <tusho> with ascii goatse
17:59:40 <ais523> all the ones that spambots have used automatically will be blocked, so you'll have to write the code an entirely different way
18:00:00 <ais523> and no, the ascii goatse was something else but they blocked that too
18:00:24 <tusho> hmm
18:00:30 <tusho> i need to incorporate oko javascript into this shrine
18:00:36 <tusho> perhaps news reports will be delivered by twitter
18:00:44 <tusho> and got by making an ajax request to the archives
18:00:51 <tusho> applying a formatting language for multi lines, etc
18:00:56 <tusho> and accounting for split over multiple messages
18:00:58 <tusho> then rendering it in the page
18:02:17 <tusho> ais523: http://www.toad.com/gnu/sysadmin/index.html#firefox-eula-sux
18:02:20 <tusho> Hear her.
18:02:21 <tusho> *hear
18:02:32 <ais523> tusho: Firefox has an EULA?
18:02:37 <tusho> ais523: apparently
18:02:42 <tusho> http://blogs.gnome.org/hughsie/2008/05/23/firefox-eula/
18:03:36 <ais523> well I never agreed to one on Ubuntu
18:03:45 <tusho> ais523: presumably ubuntu remove it
18:03:52 <ais523> yes, that's what I assumed
18:04:01 <ais523> it's not like an EULA does anything in open source software anyway
18:04:08 <tusho> ais523: speaking of browsers, seen google chrome?
18:04:10 <ais523> besides, sed on a binary is pretty weird...
18:04:15 <ais523> tusho: I've heard of it, but not seen it
18:04:18 <tusho> the process seperation is badly needed, and IE8 actually excels in this area
18:04:29 <tusho> and a new javascript VM is a plus too, js kind of sucks these days + a sandbox = yay
18:04:36 <tusho> also a lot of the UI ideas look quite nice
18:04:46 <Deewiant> just about every browser is getting a new JS engine anyway :-P
18:04:52 <tusho> Deewiant: yes :)
18:04:58 <tusho> should be coming out today for windows, apparently an os x version is following
18:05:01 <ais523> tusho: apparently Slashdot has just decided that IEb2 uses more memory than Windows XP
18:05:01 <tusho> and then linux
18:05:13 <tusho> ais523: no wifi, less space than a nomad, lame.
18:05:31 <ais523> s/nomad/monad/, or am I missing something here?
18:05:50 <tusho> ais523: http://apple.slashdot.org/article.pl?sid=01/10/23/1816257&tid=107
18:06:28 <ais523> tusho: ah, Slashdot editor deciding they didn't like the iPod
18:06:36 <tusho> ais523: cmdrtaco, even
18:06:40 <ais523> admittedly there are still people who don't like iPods, quite a few
18:06:41 <tusho> it's a rather famous post
18:06:48 <ais523> but they are popular amongst the people who do
18:06:58 <tusho> i use an iphone
18:07:02 <tusho> though mostly as a portable web browser.
18:07:07 <ais523> I don't use a mobile at all
18:07:11 <tusho> (and ipod, though less often)
18:07:17 <tusho> i never call anyone, pretty much
18:07:18 <ais523> arguably my laptop's a portable web browser, though
18:07:19 <tusho> except once recently
18:07:21 <tusho> and texts are rare.
18:07:26 <ais523> if a little bulky
18:07:36 <ais523> and it needs to be in range of a wifi connection I can access
18:08:01 <tusho> admittedly I generally use it to feed my web addiction before I go to sleep :\
18:12:42 <Mony> bye
18:12:45 -!- Mony has quit ("À vaincre sans péril on triomphe sans gloire...").
18:15:20 -!- kar8nga has left (?).
18:21:56 <tusho> g
18:25:35 <tusho> http://www.kavoir.com/ <- crAAAAAAAAAAAAAAAAAAAAzy
18:31:59 -!- KingOfKarlsruhe has joined.
18:38:08 <tusho> ais523: oh no.
18:38:14 <tusho> oh no, oh no, NO!
18:38:15 <tusho> http://news.cnet.com/8301-17939_109-10026577-2.html?part=rss&tag=feed&subj=Webware
18:38:27 <tusho> ugh.
18:38:30 <tusho> what a fuckup.
18:38:32 <tusho> where do i opt-out?
18:38:42 <tusho> come to think of it, isn't this shit illegal?
18:39:03 <ais523> tusho: what are you referring to, the fact that the page you linked had no text put a headline?
18:39:08 <ais523> s/put/but/
18:39:14 <tusho> ais523: um, no.
18:39:15 <ais523> ah, it was just slow loading
18:39:31 <tusho> more to the new advance in the war against privacy.
18:40:18 <ais523> I normally don't worry about such software because it's too incompetent to do its job properly
18:40:32 <tusho> let's just hope it doesn't become competent
18:47:07 <fizzie> What is it exactly that you would want to be illegal?
18:47:33 <tusho> fizzie: I couldn't specify it exactly, but stuff like that. Anyone can just identify me in a photo like that.
18:47:39 <tusho> (Obviously, it won't be that good, but that's the IDEA)
18:48:02 <tusho> That's a violation of privacy.
18:49:33 <ais523> tusho: where exactly is the violation? People teaching Google what you look at? Google using that information to find other pictures of you? Somewhere else/
18:49:38 <ais523> s/at/like/
18:49:55 <tusho> ais523: the violation is in the use of the feature to identify me & others
18:50:08 <tusho> although since the feature has absolutely no other use, the feature itself is at fault
18:50:30 <ais523> tusho: presumably it's for people tagging their own images Facebook-style
18:50:34 <ais523> to help them tag more quickly
18:50:40 <tusho> ais523: yeah, and I think that's bad too
18:51:03 <tusho> i don't care if a photo you took has me in it. without my explicit consent you have no right to identify the figure as me
18:59:50 <tusho> ZOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOM
19:00:10 <ais523> on the subject of Web Pages That Suck, they found this: <http://www.webpagesthatsuck.com/worst-web-sites-of-2007-number10-moire.html> <-- warning don't visit if you suffer from epilepsy or similar problems
19:00:32 <ais523> sorry, <http://web.archive.org/web/20060613061524/http://moire.ch/>, I copied the wrong link
19:00:42 <ais523> make sure you have JS on or you won't be able to see what's wrong
19:01:06 <tusho> my god.
19:01:13 <tusho> ais523: isn't that, like, an art site thing
19:01:16 <tusho> if so it kind of makes sense
19:01:18 <ais523> well, probably
19:01:20 <Deewiant> without JS it's not that bad
19:01:20 <ais523> but still...
19:01:29 <ais523> Deewiant: have you tried with?
19:01:40 <ais523> hmm... I wonder if that could be done with CSS nowadays, probably it could be
19:01:41 <tusho> ais523: i think it's not a bad design for an arty kind of site
19:01:47 <tusho> and no, it couldn't
19:01:48 <Deewiant> ais523: I don't dare :-)
19:01:50 <tusho> there's no < operator in css
19:01:53 <ais523> tusho: except for knocking you out when you move the mouse?
19:01:54 <tusho> you can't say "the parent of X"
19:01:58 <tusho> ais523: that's art ;
19:02:00 <tusho> *;)
19:02:03 <tusho> the rule would be:
19:02:09 <tusho> a:hover < body { background: ...; }
19:02:11 <tusho> e.g.:
19:02:21 <tusho> #link-about-trees:hover < body { background: green }
19:03:27 <ais523> still, I reckon that design's inexcusable on any website, no websites should require the user to navigate with the keyboard because using the mouse drives them insane
19:03:44 <ais523> also there's the apparent harmlessness of it before you hover the links
19:04:02 <tusho> i think it fits for a graphic design site, personally
19:04:44 <tusho> aww, they've changed it - http://moire.ch/
19:04:45 <ais523> tusho: you're insane
19:04:50 <ais523> and yes, no wonder they changed it
19:04:53 <tusho> ais523: yes, and?
19:05:19 <ais523> tusho: most websites don't kill their users when they move the mouse from one end of the screen to the other
19:05:28 <tusho> that would be an awesome site
19:05:34 <tusho> ekillyourselfonline.com
19:05:38 <ais523> tusho: I wouldn't want to visit it, though
19:05:43 <ais523> I like the e in your name for it
19:05:52 <tusho> ais523: They could travel back in time and put commercials on superbowl
19:06:03 <tusho> they'd only cost $100million to make.
19:06:07 -!- Corun has joined.
19:06:15 <tusho> and think of the benefit: people could eKill themselves! online!
19:06:20 <ais523> tusho: there are standards for that sort of thing, the London 2012 Olympic adverts had to slow down because they flashed too quickly
19:06:55 <tusho> ais523: the seizures were because it sucked so much
19:06:58 <tusho> not because of the flashes
19:07:25 <oerjan> seizure the moment
19:07:27 <ais523> tusho: they were, they have an automatic seizurometer
19:07:38 <ais523> they had to slow it down to 1/4 of the speed to explain what they were talking about on the news
19:07:39 <tusho> man I want one of them
19:07:46 <tusho> oh
19:07:47 <tusho> I thought you said
19:07:50 <tusho> seizuromater
19:08:01 <ais523> umm... that doesn't even make sense
19:08:02 <tusho> egiveyourselfaseizureonline.com
19:08:05 <oerjan> seizuron
19:08:40 <oerjan> and it's lightweight cousin, the seizurino
19:08:44 <oerjan> *its
19:10:43 <fizzie> tusho: Okay, I was just checking that you don't advocate illegalizing facial recognition algorithms or something insane like that. (And sure the feature has other uses: you could use it to tag pictures from your collection containing the face of someone who consents, like yourself. In any case, it would probably be pretty hard to make it illegal to offer that sort of feature.)
19:11:25 <tusho> fizzie: well, you can easily identify yourself without automatic recognition...
19:11:32 <tusho> it's...not hard...
19:12:26 <fizzie> A friend with permission, then. And even tagging pictures containing yourself is hard if there are gazillions of them. Although I fail to see why anyone would want to add a "hey_look_its_me_hey_look_hey_look" tag.
19:12:38 <fizzie> eDeath sounds like something far less serious than death.
19:13:16 <AnMaster> <oerjan> seizure the moment <-- heh
19:13:17 <ais523> well lots of people tag photos on places like Facebook, I don't really understand it myself but apparently Facebook's quite popular
19:13:26 <oerjan> there is also the fancy design iDeath, which works straight out of the box
19:13:46 <fizzie> oerjan: You mean with plain old death you need to install all kinds of patches to make it work right?
19:14:09 <oerjan> yeah
19:14:24 <tusho> no, plain old death is ok but kind of buggy
19:14:35 <tusho> dthxi is the patch one
19:14:48 <fizzie> Death bugs might explain all the zombies that seem to be around.
19:14:51 <tusho> iDeath is fashionable. Hipsters use it. Slogan: Die Different.
19:14:56 <AnMaster> hahah
19:15:03 -!- ais523 has left (?).
19:15:12 <AnMaster> tusho, :D
19:15:17 <oerjan> dthxbye _thinks_ it is fashionable
19:15:44 <AnMaster> oerjan, what about plain old Death?
19:16:03 <oerjan> it hasn't been fashionable for eons
19:16:07 <AnMaster> true
19:16:10 <AnMaster> OpenDeath
19:16:13 <AnMaster> there is always that :D
19:16:18 <tusho> uh
19:16:19 <tusho> death = windows
19:16:19 <tusho> :P
19:16:25 <AnMaster> tusho, good point
19:16:25 <oerjan> it _does_ have a large installed base, though
19:16:33 <tusho> dthxi = linux
19:16:33 <tusho> iDeath = os x
19:16:33 <tusho> those were my analogies
19:17:01 <AnMaster> hah
19:17:43 <AnMaster> tusho, But some use the much more secure OpenDeath ;P
19:18:04 <AnMaster> at least they think so
19:18:14 <oerjan> there was the Death Machine with its AI technology, but it was not commercially viable
19:18:20 <tusho> AnMaster: well, I parodied apple with iDeath and am arguably an Apple fanboy but apparently openbsd fanboys can't bring themselves to do that
19:18:35 <AnMaster> tusho, hah you are right
19:18:47 <AnMaster> well I both like and dislike openbsd
19:19:07 <AnMaster> on one hand, they made some pretty good stuff: OpenSSH, the pf firewall...
19:19:26 <AnMaster> on the other: social skills = *even* less than tusho ;)
19:19:58 -!- ais523 has joined.
19:20:17 <tusho> wb ais
19:20:19 <tusho> aos
19:20:20 <tusho> ais523:
19:20:55 <ais523> tusho:
19:20:59 <tusho> ais523:
19:21:49 <fizzie> Your :'s line up! Awesome.
19:21:55 <tusho> fizzie:
19:22:10 <ais523> fizzie: not really, given that the lines contain the same characters in a different order
19:22:38 <oerjan> ooh commutativity
19:25:23 <tusho> 45
19:25:37 <ais523> 656566969667596767665654657767444454646364454423435534432323321
19:25:45 <oerjan> 61
19:26:06 <ais523> (unsigned bignum)-1
19:26:11 <tusho> 0
19:26:25 <tusho> (+ 1 MOST-POSITIVE-BIGNUM)
19:26:32 <oerjan> beth-aleph-aleph-3
19:26:44 <tusho> (http://jwz.livejournal.com/854482.html)
19:26:58 <oerjan> s/-/_/g
19:27:17 <ais523> s/[a-zA-Z]/A/g
19:27:32 <tusho> AAAA_AAAAA_AAAAA_3
19:27:50 <ais523> AAA AAAAA AA AAAAA!
19:28:07 <tusho> oh ha ha, a joke from uncyclopedia
19:28:10 <tusho> those are always funny
19:28:25 <ais523> tusho: someone even based an esolang on it
19:28:31 <tusho> ais523: unfortunately.
19:28:36 <ais523> the strange thing about that joke is it has no obvious reason for existing
19:28:46 <ais523> or even an obvious reason why it's funny
19:28:50 <tusho> ais523: most uncyclopedia jokes are like that.
19:28:52 <Deewiant> http://uncyclopedia.org/wiki/AAAAAAAAA!
19:28:55 <tusho> they don't really have a justification.
19:28:59 <tusho> Deewiant: thank you, captain obvious!
19:29:03 <ais523> hmm... can a joke be funny if it has no punchline, and no setup?
19:29:08 <tusho> ais523: yes
19:29:11 <ais523> like the null string, for instance?
19:29:16 <oerjan> "Very few things are truly justified" -- Oscar Wilde
19:29:25 <Deewiant> tusho: more like, preventing others from having to search for it
19:29:33 <tusho> ais523: here's a funny joke:
19:29:36 <tusho> BUNNIES!
19:29:42 <ais523> oerjan: nowadays, you can justify anything if you have a decent word processor
19:29:44 <tusho> ("BUNNIES!" is not a punchline.)
19:29:56 <tusho> ais523: ragged text is a lot nicer to read, though.
19:30:13 <ais523> I didn't say it was a good idea, and not everyone agrees with you
19:30:19 <tusho> :)
19:30:25 <Deewiant> I think AnMaster would disagree very much
19:30:27 <oerjan> LEMURS!
19:30:30 <tusho> Deewiant: probably.
19:30:36 <tusho> though, uncontroversial is for screen use
19:30:41 <ais523> This sentence is not a punchline.
19:30:44 <AnMaster> <ais523> oerjan: nowadays, you can justify anything if you have a decent word processor << :D
19:30:47 <tusho> it has been studied a lot and proven that for screen use at least, ragged text is a LOT nicer
19:31:00 <ais523> AnMaster: it's not an original joke, I misquoted it from somewhere
19:31:05 <tusho> i prefer it overall, but for screen use there's really no controversy
19:31:08 <oerjan> AnMaster: Oscar Wilde did surprisingly well without one
19:31:16 <AnMaster> well I always use justified text
19:31:19 <AnMaster> much easier to read
19:31:20 <ais523> tusho: on Wikipedia enough people wanted justified that they made it a preference option, and the devs hate adding preferences
19:31:21 <AnMaster> even on screen
19:31:29 <tusho> ais523: ew
19:31:33 <AnMaster> unless I use monospace of course
19:31:37 <ais523> although ragged is the default
19:31:38 <AnMaster> like when programming
19:31:40 <AnMaster> ais523, ^
19:31:59 <ais523> AnMaster: well, justifying program code is the sign either of an insane mind or an IOCCC entry
19:32:10 <AnMaster> ais523, haha :D
19:32:17 <tusho> AnMaster:
19:32:21 <tusho> AnMaster: you do not have to highlight everyone
19:32:22 <tusho> AnMaster: all the time
19:32:26 <oerjan> ais523: um i think one of those is contained in the other
19:32:27 <tusho> AnMaster: because if they've just talked
19:32:31 <tusho> AnMaster: then they're paying attention
19:32:33 <tusho> AnMaster: to the channel.
19:32:34 <AnMaster> ais523, I do tend to justify block comments however
19:32:35 <tusho> AnMaster: thank you.
19:32:46 <AnMaster> tusho, ah thanks for that :D
19:32:52 <AnMaster> much easier to read
19:32:58 * AnMaster ducks
19:33:01 <ais523> I tend to nick-prefix when there's more than one conversation going on at once
19:33:10 <AnMaster> yes and there was there for a bit
19:33:18 * oerjan gooses
19:33:19 <ais523> if I have two conversations at once with the same person in the same channel I normally nick-prefix one and not the opther
19:33:32 <AnMaster> huh
19:33:34 <tusho> AnMaster: ais523: oerjan: In future I'm going to nickping everyone active when I want to address everyone
19:33:35 <AnMaster> ok that is strange
19:33:39 <tusho> AnMaster: ais523: oerjan: so i'm sure they can see it
19:33:51 <AnMaster> I agree with ais523 however there
19:34:04 <AnMaster> and I'm going to do something else: tusho
19:34:04 <ais523> tusho: optbot: fungot: that can get annoying when some of the addressees are irrelevant
19:34:05 <fungot> ais523: gambit's compiler is somewhat better than realtime, meaning joe and jane average don't use linux
19:34:05 <optbot> ais523: No. Everyone would have to leave here to keep the secret.
19:34:11 <AnMaster> I'm going to nick suffix: tusho
19:34:21 <tusho> i'm going to do something different too
19:34:24 <ais523> classic: AnMaster
19:34:31 <tusho> i just did it! ais523: i bet you can guess what it is
19:34:35 <AnMaster> is it classic? didn't know that, ais523
19:35:14 <ais523> anyway, I think I'll have a go at compiling newlib into brainfuck:AnMaster
19:35:19 <AnMaster> middle-fix it, tusho? I guess so
19:35:21 <tusho> ais523: don't wanna guess?
19:35:29 <ais523> that way I don't have to implement more than about 8 or so functions
19:35:38 <ais523> and a couple of them are trivial
19:35:40 <AnMaster> ais523, still don't have internet at home btw?
19:35:49 <ais523> no: AnMaster
19:35:52 <AnMaster> :/
19:35:54 <oerjan> An: i like circumfix :Master
19:36:21 <AnMaster> that doesn't highlight (oerjan) highlight me
19:36:36 <ais523> oTeHrAjTa nC:O U L D M A K E I T H A R D T O H I G H L I G H T
19:36:37 <AnMaster> ooh
19:36:59 <ais523> now please nobody tell me off for shouting
19:36:59 <tusho> ais523: hmm?
19:37:18 <AnMaster> otehrajta, atjarheto?
19:37:22 <AnMaster> huh?
19:37:37 <AnMaster> highlight(ais523).
19:37:43 <ais523> wow, I'm surprised neither of you figured out what I just did
19:37:54 <tusho> i'm waiting ais523
19:37:55 <AnMaster> ais523, rot13?
19:38:03 <ais523> railfence can be hard to read but I put one set of characters in uppercase and the other in lowercase to make it easier
19:38:10 <ais523> read the uppercase and lowercase separately
19:38:25 <oerjan> ais523: what do you mean didn't figure out
19:38:25 <tusho> OMG
19:38:27 <AnMaster> oerja that?
19:38:28 <tusho> all 2003 logs are gone from http://tunes.org/~nef/logs/esoteric/
19:38:35 <AnMaster> tusho, huh?
19:38:37 <AnMaster> that's strange
19:38:50 <ais523> tusho: do you still have them saved for optbot?
19:38:51 <optbot> ais523: nothing really
19:38:54 <oerjan> i don't have to comment on every obvious thing
19:38:58 <tusho> ais523: yep
19:39:24 <AnMaster> tusho, so upload them somewhere
19:39:35 <fizzie> Uh? There's still old/esoteric-03.zip there.
19:39:41 <AnMaster> ah!
19:40:50 <tusho> oh
19:40:55 <tusho> right :P
19:41:23 <tusho> is this nef guy dead?
19:41:34 <tusho> he does't seem to have updated thinsg since like 2006
19:49:52 -!- oerjan has quit ("ZZZZZZZZZZ").
19:55:02 -!- kar8nga has joined.
19:55:30 <fizzie> Oh, right; happened across that old old Penny Arcade comic the earlier webdesign conversation immediately reminded me of: http://www.penny-arcade.com/comic/1999/3/3
19:56:03 <ais523> fizzie: did you visit the website in question with JS on?
19:56:13 <ais523> tusho: is tunes dead?
19:56:17 <tusho> ais523: yep
19:56:20 <tusho> completely
19:56:25 <fizzie> The one discussed here? Nope.
19:56:27 <tusho> for some years now
19:56:30 <tusho> fizzie: tunes.org
19:56:52 <tusho> it was kind of wheezing out the last breaths it could manage in 2003, 2004
19:56:58 <tusho> but had been inactive a little before that
19:57:05 <tusho> since then it's just a ghost town
19:57:23 <tusho> there are still people in #tunes but they never speak until you comment on how dead the place is and they joke that it'll be active again one day.
20:02:48 <tusho> ais523: well, that's the first time I've seen someone claim that the IE team has "imperial contempt for the world and all its people" seriously
20:03:00 <ais523> where?
20:03:09 <tusho> http://www.reddit.com/r/programming/comments/6z460/official_google_blog_a_fresh_take_on_the_browser/c059gba, third child now
20:03:10 <tusho> *down
20:05:24 <tusho> God damn. hoodwink.d (http://hoodwink.d/) is still down.
20:05:28 -!- olsner has joined.
20:05:38 <ais523> .d?
20:05:41 <ais523> is that a real TLD?
20:05:50 <tusho> ais523: no, you have to add hoodwink.d to your hosts file to go to it
20:06:04 <ais523> so does it actually have a domain name then?
20:06:14 <tusho> nope, but the ip doesn't work directly as it hosts multiple sites
20:06:17 <tusho> so you have to add it to your hosts
20:06:18 <ais523> after all you could aim, say, example.com there if you really wanted to
20:06:25 <tusho> no
20:06:27 <tusho> the Host header would be wrong
20:06:37 <tusho> anyway, it's a site+greasemonkey script by why the lucky stiff that lets you comment on any site at all
20:06:43 <tusho> it uses xpath expressions to find out where to put the comment box
20:06:49 <tusho> it's a little underground toy thing and it was a lot of fun
20:06:56 <tusho> but sometime in 2007 it just stopped working. :(
20:07:13 <ais523> that actually sounds like an interesting idea
20:07:30 <tusho> it is
20:07:31 -!- LinuS has joined.
20:07:49 <tusho> ais523: one of the funniest was on wikipedia
20:07:59 <tusho> people put nonsense articles in the comments for nonexistent articles
20:08:10 <tusho> so that you could actually go there and see the article, albeit not in the content box
20:09:17 <tusho> hey perhaps i could revive it myself
20:09:21 <tusho> ... Nah. Nobody would use it.
20:09:44 <fizzie> I think there have been at least some "leave comments on any site" thingies; never have used any of them, though.
20:10:00 <tusho> fizzie: this one was funnier, though, because of the undergroundness of it all
20:10:09 <tusho> it had its own little forum which didn't do any foruming at all
20:10:16 <tusho> it just had a hoodwink.d entry and put that in the content area
20:10:27 <tusho> so all it handled was giving a new uri out on request
20:10:34 <tusho> and to top it off, you couldn't see it
20:10:37 <tusho> if you went there, it just wasn't there
20:10:41 <tusho> because everything was display: none
20:10:44 <tusho> so you had to add a user style
20:12:07 <tusho> bye for a while (hour or so)
20:12:31 <fizzie> What sort of time zone was tusho in, anyway?
20:13:32 <ais523> fizzie: UTC+1
20:13:37 <ais523> the same as me
20:15:36 <fizzie> Oh, okay.
20:17:25 <AnMaster> are there any java fanboys here?
20:17:39 <ais523> I doubt it, we tend to scare them out of existence
20:17:39 <fizzie> The fact that the mentioned zeepmobile.com site only works in the US sort-of confused me.
20:17:47 <AnMaster> ais523, good
20:17:54 <ais523> heh
20:17:58 <fizzie> What do you need a Java fanboy for?
20:18:31 <AnMaster> however I was looking for a fight with someone, since I tried to make a java app run and it just cause all sorts of problems
20:18:53 <AnMaster> oh well
20:19:12 <fizzie> I'm sure there's a ##java or something.
20:19:26 <AnMaster> tusho, are you ignoring randomly currently?
20:20:26 <AnMaster> you will love this (and no: I'm making a joke, I don't really care about it, I was looking for something else when I came a across this) "Intel® VTune™ Performance Analyzer 9.0 for Linux" ... but I can't use it, not free software
20:20:28 * AnMaster ducks
20:20:33 <AnMaster> http://www.intel.com/cd/software/products/asmo-na/eng/vtune/239145.htm btw
20:20:47 <AnMaster> I was looking for ICC for Linux x86_64 download actually
20:20:53 <AnMaster> since I needed to try something out
20:21:25 <ais523> AnMaster: Intel invented powertop too IIRC, that's something that Windows has no real hope of replicating atm
20:21:39 <AnMaster> ais523, yes but powertop is open source
20:21:43 <fizzie> Isn't ICC a bit non-free, though?
20:21:43 <AnMaster> so I like it and use it
20:21:48 <AnMaster> fizzie, indeed it is
20:21:53 <AnMaster> but I need to make sure stuff compiles
20:22:09 <Deewiant> so does cfunge compile on VC?
20:22:19 <AnMaster> Deewiant, it does compile on ICC
20:22:37 <AnMaster> but current software uses X, my P3 that got ICC on it doesn't have X
20:22:49 <AnMaster> it doesn't even have any screen
20:22:51 <Deewiant> LLVM? DMC? Comeau?
20:23:03 <AnMaster> Deewiant, gcc-llvm tested, works fine
20:23:04 <Deewiant> Borland?
20:23:07 <AnMaster> DMC and comeau?
20:23:11 <AnMaster> I don't know what they are
20:23:17 <AnMaster> MSVC doesn't do C99
20:23:24 -!- oklofok has joined.
20:23:26 <AnMaster> Borland, don't plan to pay anything
20:23:36 <Deewiant> hmm, I'm somewhat surprised you haven't at least heard of Comeau
20:23:46 <Deewiant> but I guess it's more of a C++ thing
20:23:49 <fizzie> Borland compilers are available, I think. At least some of 'em were at some point.
20:23:51 <ais523> AnMaster: pretty much nobody does all of C99, gcc implements the more often used bits though
20:23:52 <AnMaster> Deewiant, Comeau sounds slightly familiar
20:23:56 -!- oklopol has quit (Read error: 113 (No route to host)).
20:24:00 <AnMaster> ais523, err ICC does it more or less
20:24:11 <Deewiant> Comeau has pretty much the best standards support AFAICT
20:24:14 <Deewiant> not free though
20:24:17 <AnMaster> ah
20:24:17 <AnMaster> well
20:24:21 <ais523> what about Sun CC?
20:24:23 <AnMaster> I can get ICC for no cost
20:24:32 <ais523> I thought it supported C99 nowadays, I might be wrong though
20:24:35 <AnMaster> free as in beer, but not open
20:25:05 <AnMaster> ais523, and about C99, iirc the ICC frontend is pretty good, oh and GCC are working on it too
20:25:13 <AnMaster> GCC is getting better at C99
20:25:19 <Deewiant> somewhat evidently: http://docs.sun.com/app/docs/doc/819-5265/bjayy?a=view
20:25:22 <ais523> part of the problem is that gcc's only about two-thirds of a compiler
20:25:29 <fizzie> http://gcc.gnu.org/c99status.html is looking reasonably good already.
20:25:35 <ais523> the libraries need to handle it too, also the linker
20:26:04 <Deewiant> on windows, the problem is the libraries
20:26:22 <Deewiant> MSVCRT doesn't have any C99 stuff
20:26:42 <AnMaster> damn complex.h is broken
20:26:45 <Deewiant> I wouldn't be surprised if it lacked some obscure part of C90, too :-P
20:26:51 <AnMaster> and I was planning a project using complex numbers
20:26:52 <AnMaster> oh well
20:26:56 <AnMaster> have to use something else
20:27:00 <AnMaster> or do the maths myself
20:27:18 <Deewiant> of course you might want to check what "broken" actually means
20:27:30 <Deewiant> for instance, VLAs are "broken" but most cases probably work fine
20:27:30 <AnMaster> Deewiant, and I got syntax errors from Visual Studio C++ Express or whatever it is called
20:27:34 <fizzie> You can also get Borland C++ Compiler 5.5 free-as-in-beer too. Very new; released in the year 2000.
20:27:35 <ais523> AnMaster: it's not very broken, it probably just doesn't conform with the specs in some cases
20:27:38 <AnMaster> was 2005 edition or 2008 edition
20:27:43 <AnMaster> Deewiant, and it was a legal C99 think
20:27:45 <AnMaster> thing*
20:27:50 <ais523> fizzie: where? I still have bc4 at home
20:27:55 <ais523> so it would be an upgrade for me...
20:27:59 <AnMaster> ip ips[];
20:28:01 <Deewiant> AnMaster: well, it doesn't support C99 so that's not unexpected.
20:28:02 <AnMaster> at end of struct
20:28:06 <AnMaster> Deewiant, exactly
20:28:14 <fizzie> www.codegear.com/downloads/free/cppbuilder
20:28:52 <fizzie> I had 4.x from a pcplus magazine cover CD, too. That was some time ago.,
20:29:44 <AnMaster> fizzie, does it do C99 at all?
20:29:49 <AnMaster> and is it for Linux?
20:29:53 <AnMaster> I don't have windows any more
20:29:56 <ais523> AnMaster: no, it's for windows and is C89/C++98
20:29:58 <AnMaster> since several months
20:30:02 <AnMaster> well then
20:30:09 <ais523> that's an improvement, bc4 was well before C++98
20:30:11 <AnMaster> no point in even trying cfunge under it
20:30:25 <fizzie> That's also the command-line stuff only; I had the IDE parts of bc4 too.
20:30:38 <ais523> and so its C++ wasn't very standard, I have #ifdefs all over my C++ code that I wrote to compile on both bc4 and g++
20:30:45 <ais523> fizzie: yes, I have the IDE parts too
20:30:47 <AnMaster> ICC handles the parts of C99 that cfunge use, So does GCC
20:30:55 <AnMaster> however there is a known library issue on FreeBSD
20:31:03 <AnMaster> FreeBSD lacks sinl() cosl() and such
20:31:05 <Deewiant> Comeau is the only compiler that supports the C++98 feature "export templates"
20:31:08 <AnMaster> ie, the long double ones
20:31:20 <AnMaster> Deewiant, "export templates" what is that?
20:31:39 <Deewiant> google it, I can't easily explain it in a few lines
20:31:44 <Deewiant> especially if you're unfamiliar with C++
20:31:50 <AnMaster> well I know some basic stuff
20:31:59 <ais523> oh dear, yes Deewiant's right here
20:32:00 <AnMaster> and I know similiar concepts from other languages
20:32:04 <ais523> templates are bad enough as they are
20:32:05 <AnMaster> I have coded in C#
20:32:07 <AnMaster> I admit that
20:32:23 <AnMaster> ais523, aren't templates like type generic classes or such?
20:32:27 <ais523> can cause all sorts of weirdness in C++, for instance they can do Turing-complete calculations at compile time
20:32:32 <AnMaster> ie List<int> List<string>
20:32:33 <AnMaster> and so on
20:32:35 <AnMaster> right?
20:32:41 <Deewiant> yes, in the simple case
20:32:42 <ais523> AnMaster: a bit, well a lot really except there are a huge number of edge/corner cases
20:32:49 <Deewiant> but also Factorial<10> can give 3628800
20:32:57 <AnMaster> Deewiant, ok *that* is strange
20:32:58 <ais523> as a compile-time constant
20:33:03 <AnMaster> oh my
20:33:14 <Deewiant> AnMaster: hehe, good luck copying stuff from CCBI when the next version comes out
20:33:20 <Deewiant> it uses templates a /LOT/ to generate code
20:33:22 <AnMaster> ah well the simple case here, that is about what C#'s generic classes implement
20:33:28 <AnMaster> Deewiant, ouch why?
20:33:34 <AnMaster> Deewiant, and does D have that really
20:33:36 <Deewiant> simpler that way
20:33:40 <ais523> because they're oh so esoteric
20:33:41 <Deewiant> yes, D's templates are more powerful than C++'s
20:33:43 <AnMaster> Deewiant, + you can't do that for all fingerprints
20:33:51 <Deewiant> what do you mean
20:33:52 <ais523> Deewiant: no they aren't, C++'s are turing-complete
20:33:56 <Deewiant> you don't even know what I do :-P
20:34:13 <AnMaster> Deewiant, the stuff I reuse is basically when the fingerprint specs are too vague and you have already implemented it
20:34:18 <Deewiant> ais523: well, I suppose you know what I meant
20:34:20 <AnMaster> Deewiant, I implemented my SOCK not looking at your
20:34:22 <AnMaster> for example
20:34:36 <Deewiant> and your NULL I suppose ;-)
20:34:44 <fizzie> I think C# generics have more in common with Java generics than C++ templates. Does C# even do code generation with them? Java ones at least are implemented with that type erasure thing.
20:34:54 <AnMaster> Deewiant, and a lot more
20:35:10 <AnMaster> Deewiant, issues are stuff like butterfly operator in TOYS
20:35:27 <AnMaster> and 3DSP since I don't know matrix manipulation
20:35:42 <ais523> fizzie: Java templates are an utter mess, they tried to retrofit them to a language that doesn't like them
20:35:45 <AnMaster> fizzie, I think they could be done at runtime
20:36:06 <ais523> and as a result you have a lot of random arbitrary casts and such trying to get things to the right data type
20:36:13 <AnMaster> anyway doesn't lisp have some sort of powerful macros?
20:36:14 <AnMaster> iirc
20:36:16 <fizzie> Well, they're not even called "templates" there.
20:36:32 <AnMaster> maybe you could approximate that using C++ templates!
20:36:32 <AnMaster> XD
20:36:34 <ais523> AnMaster: Lisp macros are like text substitution on steroids
20:36:38 <AnMaster> ais523, hah
20:36:45 <ais523> they're more like #define than template<typename x>
20:36:47 <Deewiant> D's have approximately the same power as those of Lisp
20:36:47 <AnMaster> ais523, how does that factorial one work?
20:36:53 <Deewiant> but the syntax is of course much uglier
20:36:55 <AnMaster> or wait
20:36:56 <ais523> AnMaster: recursion in the template definition
20:36:59 <AnMaster> ah
20:37:01 <Deewiant> and they don't currently work on ASTs directly
20:37:03 <Deewiant> only strings
20:37:09 <ais523> I couldn't write it offhand though, I'm not very good at writing C++ templates
20:37:16 <Deewiant> which makes it an occasional pain to work with
20:37:24 <AnMaster> also another thing with C++
20:37:31 <AnMaster> cout << foo;
20:37:43 <AnMaster> what the heck does bitshift have to do with STDOUT?
20:37:44 <AnMaster> really
20:37:45 <ais523> AnMaster: operand overloading
20:37:53 <AnMaster> ais523, yes but it is silly operator overloading
20:37:56 <AnMaster> that makes no sense
20:37:57 <AnMaster> I mean
20:37:57 <ais523> the answer is "nothing, so we can use the << operator for something else"
20:38:04 <AnMaster> ais523, well that is confusing
20:38:05 <Deewiant> that was a bad choice
20:38:11 <Deewiant> honestly :-P
20:38:24 <AnMaster> really operator overloading has it's uses
20:38:38 <AnMaster> say you implement a class that does number as fractions of BIGNUMS
20:38:54 <ais523> AnMaster: that's sane operator overloading, go and talk about it in a sane channel
20:38:56 <AnMaster> so you can represent stuff like 1/9 precisely
20:39:04 <AnMaster> then you could overload / * and so on
20:39:15 <AnMaster> but using << for "write to output"
20:39:16 <AnMaster> well
20:39:18 <ais523> you can overload casts too in C++
20:39:20 <AnMaster> that's just insane
20:39:23 <AnMaster> ais523, um huh?
20:39:26 <Deewiant> AnMaster: you've actually seen D's templates in CCBI already, mixin (Code!("NULL")) and so forth
20:39:33 <ais523> like define (int) to mean something different on your class
20:39:37 <ais523> then you can cast it to int easily
20:39:40 <Deewiant> AnMaster: so that you can do (int)bignum
20:39:59 <ais523> although C++ has 4 different types of cast so you can explain to the compiler why you're doing it
20:40:07 <ais523> one of which can only be resolved at runtime
20:40:19 <Deewiant> hooray for 5 different ways to cast
20:40:27 <ais523> because of polymorphism, the time an object looks like at compile time is not necessarily the type it actually is
20:40:34 <ais523> s/time/type/
20:41:22 <fizzie> If you want to see template nastinessitude, Boost is a nice place to look at; for example Boost.Lambda, http://www.boost.org/doc/libs/1_36_0/doc/html/lambda.html -- I _think_ the implementation was pretty template-heavy.
20:41:48 <fizzie> It is rather extreme in any case.
20:41:48 <AnMaster> Deewiant, ah ok
20:41:50 <AnMaster> makes sense
20:42:10 <AnMaster> <ais523> although C++ has 4 different types of cast so you can explain to the compiler why you're doing it
20:42:10 <AnMaster> <ais523> one of which can only be resolved at runtime
20:42:14 <AnMaster> 4 different ones?
20:42:15 <AnMaster> HUH?
20:42:23 <AnMaster> I can think of two
20:42:28 <ais523> AnMaster: const_cast which adds or removes const/volatile
20:42:28 <Deewiant> AnMaster: 5
20:42:32 <AnMaster> "have say (foo) explicitly"
20:42:32 <AnMaster> and
20:42:38 <AnMaster> "happens automatically"
20:42:46 <ais523> static_cast which is for casts that can be calculated at compile time
20:42:47 <AnMaster> like double bar = somefloat
20:42:56 <Deewiant> AnMaster: the latter, implicit casting, wasn't included
20:42:58 <ais523> dynamic_cast is the one that only works at runtime
20:42:59 <AnMaster> ais523, ah ok, makes sense I guess
20:43:00 <Deewiant> AnMaster: with that, it's 6. :-P
20:43:06 <ais523> I've forgotten what the fourth named one is
20:43:10 <AnMaster> ais523, dynamic cast?
20:43:11 <AnMaster> huh
20:43:12 <Deewiant> reinterpret_cast
20:43:21 <AnMaster> Deewiant, and that is?
20:43:26 <Deewiant> I can't remember
20:43:29 <ais523> Deewiant: ah yes, taking the bit pattern of something and interpreting it as a different data type
20:43:30 <Deewiant> I only ever use static_cast
20:43:32 <fizzie> With dynamic_cast<Foo*>(bar); you get a NULL out of it if "bar" is not a Foo pointer. Or something like that.
20:43:36 <ais523> like interpreting a pointer as an int
20:43:41 <AnMaster> ais523, ever heard of union
20:43:42 <AnMaster> ...
20:43:57 <fizzie> And reinterpret_cast is the one which looks most like the C casts.
20:43:57 <Deewiant> AnMaster: want to define a new union type every time you do that?
20:44:01 <ais523> AnMaster: yes, but that's type-punning and that's wrong, in fact it can be optimised to not work correctly in some cases in C++ I think
20:44:03 <AnMaster> hm
20:44:14 <AnMaster> ais523, type-punning?
20:44:17 <ais523> even in C
20:44:25 -!- minirop has joined.
20:44:44 <ais523> AnMaster: there's an example in the GCC docs, say you have a union of a float and an int, then you assign to the int and return a pointer to the float to the function, then access a float through that pointer
20:44:45 <Deewiant> AnMaster: http://en.wikipedia.org/wiki/Type_punning
20:44:47 <AnMaster> ais523, if union breaks the compiler is obviously wrong
20:45:04 <ais523> it's not necessarily going to have been set from the bits of the int, according to the C standard, it might just read garbage
20:45:07 <AnMaster> ais523, well I do use float/int unions
20:45:08 <ais523> due to the aliasing rules
20:45:15 <AnMaster> don't think I return pointers to one of them
20:45:19 <ais523> AnMaster: well on gcc it only breaks when pointers are involved
20:45:30 <AnMaster> ais523, no pointers except to the whole union
20:45:33 <fizzie> Yes; the C standard says that if you write a union using one member, you must not read it through any other member.
20:45:43 <ais523> <wikipedia> For example, reading from a different union member than the last one written invokes undefined behavior, but the effect in practice is usually to permit type punning.
20:45:54 <AnMaster> fizzie, it does?
20:45:58 <Deewiant> AnMaster: it does.
20:46:02 <fizzie> Well, there was the wikipedia quote.
20:46:04 <AnMaster> how the heck can you then store a float in an int
20:46:07 <ais523> gcc deliberately allows it to work in the situation when you write from one and read from the other without doing anything tricky
20:46:09 <Deewiant> AnMaster: you can't.
20:46:15 <AnMaster> -_-
20:46:20 <ais523> AnMaster: read up about the strict aliasing rules some time
20:46:23 <ais523> Deewiant: you can, memcpy()
20:46:25 <Deewiant> implementation-defined, not portable and all that.
20:46:28 <AnMaster> ais523, it works under other compilers too
20:46:34 <Deewiant> ais523: eh?
20:46:39 <AnMaster> ais523, ah good point
20:46:45 <ais523> Deewiant: you can access both of them via unsigned char pointers
20:46:48 <ais523> safely
20:46:57 <Deewiant> that's actually well-defined? wow.
20:46:58 <ais523> unsigned char is special with respect to the aliasing rules
20:47:05 <ais523> it was special-cased in the standard
20:47:07 <Deewiant> ah, that rings a bell, yes indeed
20:47:08 <AnMaster> ais523, nice, so I just do: (float*)(unsigned char*)&myint?
20:47:27 <AnMaster> presumably that should work
20:47:41 <ais523> I think so, not sure though
20:47:51 <ais523> float would have to be the same size as int for that to make sense
20:48:00 <ais523> and the result's going to differ depending on padding, etc
20:48:11 <AnMaster> ais523, yes it would be int32_t actually
20:48:34 <fizzie> ais523: I'm not certain the memcpy apporach is safe; surely you can read all the bits of a float with memcpy (or through a unsigned char *), but the bit pattern might be some sort of a trap representation when interpreted as int. You could store the _value_ of the bytes in the integer if it's large enough, of course.
20:48:38 <AnMaster> ais523, so you mean you can't implement FPSP, FPDP and 3DSP in any portable way?
20:48:50 <ais523> course you can, you can memcpy
20:49:08 <ais523> and emulate 32-bit float yourself on targets which don't have it
20:49:18 -!- LinuS has quit ("Puzzi. S, parlo proprio con te. Puzzi.").
20:49:22 <ais523> fizzie: unsigned int isn't allowed to have trap representations
20:49:26 <ais523> but apart from that you're right
20:49:27 <AnMaster> ais523, well actually I would just error out on those
20:49:32 <ais523> well, uint32_t isn't
20:49:35 <AnMaster> I was adding size checks in cmakelists today
20:49:36 <ais523> unsigned int is
20:49:51 <AnMaster> ais523, "trap representations"?
20:49:55 <fizzie> ais523: Okay, I was in fact thinking there might be something special when one of the parties is an integer.
20:50:07 <ais523> well, if it's signed, you can have problems
20:50:17 <ais523> a trap representation's a number that causes a program to error if it's used
20:50:19 <AnMaster> well it would be in FPSP and FPDP
20:50:24 <AnMaster> since funge space is signed
20:50:31 <AnMaster> same for 3DSP
20:50:46 <ais523> 0x80000000 is common as a trap representation on 32-bit systems, and is in fact the only value allowed for one in a 32-bit signed int by the standard
20:50:56 <ais523> even more systems don't have a trap representation at all
20:51:00 <ais523> though
20:51:00 <AnMaster> ais523, anyway how comes no tools "warn portability" checks actually warn about using an union there?
20:51:15 <ais523> AnMaster: because everyone does it anyway so no sane compiler manufacturer would break it
20:51:19 <fizzie> Still, with a large enough signed integer you could store the value of the float bytes in there.
20:51:21 <AnMaster> ais523, ah good
20:51:27 <AnMaster> so I'll just depend on it then :)
20:51:35 <ais523> fizzie: or enough unsigned chars
20:51:55 <fizzie> Yes, but if you only have a single funge-cell to work with.
20:51:57 <AnMaster> ais523, um what if I want to use something that happens to be 0x80000000
20:52:26 <AnMaster> for example will those systems crash when the unix timestamp hit that value?
20:52:26 -!- moozilla has joined.
20:52:28 <ais523> AnMaster: the range of int doesn't include that number
20:52:32 <ais523> on such systems
20:52:34 <ais523> that's signed int
20:52:41 <AnMaster> ais523, so int isn't 32-bit?
20:52:43 <ais523> so such systems break 1 second earlier than other systmes
20:53:02 <ais523> AnMaster: yes it is, it's -2^31-1 to +2^31-1 with one trap representation
20:53:10 <ais523> that's 2^32 possibilities total, so 32 bit
20:53:18 <AnMaster> anyway we will all have 64-bit timestamps by then
20:53:29 <fizzie> And they might break harder; a trap representation might cause hard abort()s or something, instead of some sort of wrap-around.
20:53:32 <Deewiant> will we? I doubt it.
20:53:35 <AnMaster> ais523, so what about those systems that doesn't have a trap?
20:53:41 <ais523> AnMaster: they roll over, normally
20:53:44 <AnMaster> Deewiant, well linux already got it in kernel iirc
20:53:59 <ais523> but incrementing a signed int past its maximum is undefined behaviour
20:54:06 <Deewiant> I wonder what will happen to embedded systems
20:54:09 <ais523> and in fact gcc takes advantage of this on occasion
20:54:16 <AnMaster> Deewiant, good question
20:54:38 <AnMaster> ais523, it does?
20:54:57 <AnMaster> Deewiant, does Funge-98 say what should happen on funge cell overflow?
20:55:01 <AnMaster> undefined I think?
20:55:10 <Deewiant> not sure
20:55:27 <AnMaster> Deewiant, does CCBI trap SIGPIPE?
20:55:29 <fizzie> I think it doesn't.
20:55:43 <ais523> AnMaster: it's undefined in C for signed integers, wraparound for unsigned
20:55:43 <Deewiant> the bit representation is probably also unspecced
20:55:54 <ais523> this implies that unsigned can only have trap representations if it also has padding
20:55:54 <Deewiant> AnMaster: no, CCBI does nothing with signals.
20:55:58 <AnMaster> Deewiant, if it doesn't your SOCK could be non-conforming
20:56:09 <AnMaster> Deewiant, since you would crash on a SIGPIPE iirc if not handled
20:56:13 <Deewiant> AnMaster: do the SOCK specs say I have to trap SIGPIPE?
20:56:13 <AnMaster> instead of reversing
20:56:20 -!- RodgerTheGreat has joined.
20:56:21 <AnMaster> Deewiant, they say you have to reverse on error iirc
20:56:24 <RodgerTheGreat> http://archive.computerhistory.org/resources/text/GE/GE.Basic.1965.102646121.pdf
20:56:31 <AnMaster> Deewiant, and you get SIGPIPE on error
20:56:43 <Deewiant> AnMaster: that's not an error, that's a signal. :-P
20:56:48 <AnMaster> Deewiant, so just ignore SIGPIPE and use the PIPE return value
20:56:55 <AnMaster> Deewiant, yes but it is caused by an error
20:56:56 <Deewiant> AnMaster: but in all honesty most likely tango does something
20:57:04 <AnMaster> ah I guess so
20:57:08 <Deewiant> AnMaster: can you whip up a test program?
20:57:40 <AnMaster> Deewiant, not really, it happens on network errors iirc
20:58:24 <Deewiant> well I can just netcat something and Ctrl-C, or?
20:58:25 <AnMaster> actually hm
20:58:50 <AnMaster> I always heard it applies to sockets too, however http://en.wikipedia.org/wiki/SIGPIPE seems to say it is pipes only
20:58:58 <AnMaster> huh
20:58:58 <ais523> Deewiant: netcat and ctrl-d probably
20:59:20 <AnMaster> ais523, it is for sockets too right?
20:59:37 <olsner> sigpipe verily applies to sockets as well
20:59:43 <AnMaster> ah :)
20:59:46 <ais523> AnMaster: not sure, I don't know all that much POSIX yet
20:59:58 <AnMaster> ais523, you edit on wikipedia right? go fix http://en.wikipedia.org/wiki/SIGPIPE :P
21:00:19 <AnMaster> ah yes
21:00:19 <ais523> AnMaster: anyone can edit Wikipedia
21:00:22 <AnMaster> send() can return EPIPE
21:00:32 <AnMaster> ais523, except I refuse for religious reasons :P
21:01:01 <Deewiant> and your religion doesn't prevent you from inciting others to do so?
21:01:11 <fizzie> Yes, and send() will give you a SIGPIPE if the socket has been shutdown(foo, SHUT_WR)ed, for example.
21:01:11 -!- megatron has quit (Read error: 110 (Connection timed out)).
21:01:40 <fizzie> I guess it might happen because of some network error too; at least it doesn't seem to be forbidden.
21:01:56 <AnMaster> Deewiant, indeed doing that is the command of the higher force
21:02:25 <Deewiant> this higher force sounds like an idiot
21:02:31 <AnMaster> fizzie, ah yes so if remote end does shutdown() on it?
21:02:39 <AnMaster> Deewiant, hehe :D
21:11:42 <AnMaster> "one of the changes from C90 to C99 was to remove any restriction on accessing one member of a union when the last store was to a different one"
21:11:42 <AnMaster> hm
21:11:47 <ais523> AnMaster: http://wwwold.dkuug.dk/JTC1/SC22/WG14/www/docs/dr_257.htm
21:11:52 <ais523> that's to do with type punning in unions
21:11:56 <AnMaster> ais523, that was I was reading
21:11:59 <AnMaster> and quoting above
21:12:05 <ais523> basically someone suggested that it should work the way that you suggested
21:12:09 <ais523> and the standards body said no
21:12:19 <ais523> but then, they say no to just about every defect report raised
21:12:25 <ais523> and it costs a lot of money to submit one to them
21:13:27 <AnMaster> <AnMaster> "one of the changes from C90 to C99 was to remove any restriction on accessing one member of a union when the last store was to a different one"
21:13:35 <AnMaster> ais523, what about that then?
21:13:45 -!- LinuS has joined.
21:14:00 <ais523> from that sentence I can't figure out which direction the change was in
21:20:09 <AnMaster> ais523, hm http://wwwold.dkuug.dk/JTC1/SC22/WG14/www/docs/dr_283.htm
21:20:55 <ais523> AnMaster: well they didn't even answer...
21:21:22 <AnMaster> http://std.dkuug.dk/jtc1/sc22/wg14/www/docs/n980.htm
21:21:25 <AnMaster> there is that too
21:21:39 -!- kar8nga has quit (Read error: 110 (Connection timed out)).
21:25:21 <AnMaster> ais523, http://wwwold.dkuug.dk/JTC1/SC22/WG14/www/docs/dr_236.htm
21:27:34 <fizzie> Even if C99 had relaxed the aliasing rules re type-punning with unions, I'm still pretty sure that a float interpreted as int might well be that one allowed trap representation of a signed integer.
21:28:24 <AnMaster> fizzie, So FPSP and FPDP are basically broken?
21:28:47 <AnMaster> fizzie, for me it is just int64_t btw
21:28:51 <AnMaster> not int32_t
21:28:55 <ais523> fizzie: AnMaster: luckily not with IEEE floats, 0x80000000 happens to be an invalid float
21:29:09 <AnMaster> ais523, ah which I actually say in README is needed
21:29:29 <AnMaster> * cfunge requires IEC 60559 floating-point arithmetic (please see Annex F in
21:29:29 <AnMaster> ISO/IEC 9899 for more details.)
21:29:43 <ais523> AnMaster: why does it require that sort of float arithmetic?
21:30:10 <ais523> hmm... I'm not sure if 0x00000080 is an invalid float though, what if floats are big-endian and ints are little-endian?
21:30:29 <AnMaster> ais523, because it is needed for FPDP and FPSP. You can't be sure it works otherwise
21:30:36 <AnMaster> anyway I do double too
21:30:39 <AnMaster> in FPDP
21:30:48 <AnMaster> union over 2 32-bit ints
21:31:22 <ais523> AnMaster: what if you're using 64-bit funge?
21:31:44 <ais523> actually, that could break badly if you're compiling 32-bit on a 64-bit system
21:31:56 <ais523> because the two ints could quite possibly have 32 bits of padding between them
21:32:19 <AnMaster> ais523, hm
21:32:26 <AnMaster> well that I know a way to fix
21:32:30 <AnMaster> called pointers
21:32:44 <ais523> in theory they could have 32 bits of padding between them anyway, but compilers tend not to do that without a reason
21:33:18 <AnMaster> it should be possible to access an int32_t at an address evenly divisible by sizeof(int32_t) I assume?
21:33:53 <AnMaster> it would be rather tricky to handle stuff if that wasn't true
21:34:04 <ais523> I'm not convinced, probably, but that's asking about alignment and all sorts of weird stuff happens when you think about alignment
21:34:17 <ais523> maybe someday I'll write a DS9K implementation that aligns all structs to prime numbers
21:34:23 <AnMaster> ais523, anyway if you like, rewrite FPSP and FPDP to be strictly conforming then!
21:34:42 <ais523> memcpy is your friend
21:34:44 <ais523> if a little slow
21:34:50 <AnMaster> ais523, a little slow yes...
21:35:05 <AnMaster> ais523, anyway that wouldn't work for double
21:35:07 <AnMaster> on int32_t
21:35:15 <fizzie> I can easily imagine a system where int32_t is implemented as a 64-bit quantity with padding; perhaps because the system does not do any <64-bit access and the implementor doesn't want to do any shifting around.
21:35:17 <AnMaster> if what you say about padding ever happens
21:35:18 <ais523> AnMaster: accessing a char is always aligned
21:35:33 <ais523> so you just memcpy 4 chars at a time
21:35:53 <ais523> presumably you're assuming 8-bit char, some systems have 9-bit char but I seriously doubt cfunge would run on those the way you're doing things
21:36:15 <AnMaster> ais523, well I need to handle FPSP and FPDP
21:36:25 <AnMaster> and I need to conform to other parts of the befunge specs
21:36:32 <fizzie> With that int64_t, you could also store the 32-bit float bit-pattern as the value of an integer with something like: float f; int64_t i; ... unsigned char *p = (unsigned char *)&f; i = p[0] | (p[1] << 8) | (p[2] << 16) | (p[3] << 24);
21:36:33 <AnMaster> so...
21:36:57 <ais523> fizzie: yes, that's the sort of thing that can be done correctly
21:37:03 <AnMaster> hm
21:37:14 <AnMaster> fizzie, USE64 vs. USE32 is decided at compile time
21:37:17 <ais523> if -fweb and -O3 are on then gcc might not even slow down as a result
21:37:18 <AnMaster> for the size of funge cells
21:37:19 <fizzie> Of course that assumes CHAR_BIT == 8, sizeof(float) == 4 and sizeof(int64_t) == large enough.
21:37:25 <AnMaster> so that makes everything more complex
21:37:30 <ais523> and -fweb is implied by -funroll-loops
21:37:51 <ais523> fizzie: sizeof(int64_t) == 64/CHAR_BIT
21:37:52 <ais523> always
21:37:56 <ais523> that's how int64_t is defined
21:38:18 <AnMaster> -fweb... oh god
21:38:27 <AnMaster> what exactly does -fweb do?
21:38:41 <ais523> AnMaster: allows the compiler to change which register it's holding a register variable in midfunction
21:39:02 <AnMaster> ais523, well I don't declare any variable with register...
21:39:03 <ais523> it makes it near-impossible to explain to a debugger what's going on, but if you ask for funroll-loops it assumes you don't care much about that anyway
21:39:13 <ais523> AnMaster: -O3 auto-registers variables when it helps
21:39:20 <ais523> I think -O2 does too, for that matter
21:39:24 <tusho> BaKKK
21:39:42 <AnMaster> ais523, ggdb4 obviously needs to be invented ;)
21:39:59 <tusho> ais523: google chrome is out
21:40:01 <tusho> only for windosw
21:40:02 <tusho> atm
21:40:05 <tusho> http://www.google.com/chrome
21:40:09 <ais523> tusho: does it run in Wine, I wonder?
21:40:13 <tusho> maybe
21:40:20 <AnMaster> their own browser?
21:40:32 <AnMaster> can you use Windows Live search in it? XD
21:40:34 * tusho parallelz it up
21:41:23 <fizzie> I guess you should be able to "portably" store a 32-bit IEEE float in a "long", since the value range of long is [-(2^31-1), 2^31-1] and that's enough distinct values to hold all the IEEE floats, which have at least that one illegal value.
21:42:06 <AnMaster> well unless anyone complains I won't change current one, unless you can come up with one universal and sane solution :P
21:42:23 <AnMaster> I hardly expect anyone to use cfunge on non-x86/x86_64
21:42:35 <ais523> tusho: I'm not downloading it anyway because I don't like their EULA
21:42:43 <AnMaster> and if someone actually hits an issue with it in a non-contrived case then I shall fix it
21:42:48 <ais523> which is actually potentially enforceable because you have to agree to it pre-download
21:42:49 <fizzie> Given how common the "union of float and int" (or even "union of int and pointer") approaches are, the current way probably works just about anywhere.
21:42:52 <AnMaster> however until that happens...
21:43:01 <ais523> at least it gets around many of the common problems with enforcing EULAs
21:43:09 <fizzie> Don't you want your cfunge to work on a DS9K? :p
21:43:21 <AnMaster> fizzie, well tell me what DS9K is
21:43:25 <AnMaster> then I may answer
21:43:26 <ais523> AnMaster: would you consider an automated C to brainfuck translater to be a contrived case
21:43:34 <ais523> AnMaster: http://en.wikipedia.org/wiki/Special:Search?go=Go&search=DS9K, I wrote that article
21:43:38 <AnMaster> ais523, does it do such aligning issues?
21:43:48 <AnMaster> have*
21:44:02 <AnMaster> fizzie, oh that, and then: yes
21:44:03 <ais523> AnMaster: no alignment issues on gcc-bf, it aligns to 8 bits
21:44:09 -!- tusho has quit ("And then-").
21:44:16 <ais523> the DS9K has all alignment issues possible, except when you want it to
21:44:25 -!- oklofok has quit (Read error: 113 (No route to host)).
21:44:26 <AnMaster> ais523, well I checked it on 32-bit and 64-bit x86
21:44:29 <AnMaster> GCC and ICC
21:44:31 -!- tusho has joined.
21:44:39 <AnMaster> once clang is ready I plan to make sure it works there too
21:44:44 <tusho> ais523:
21:44:46 <tusho> 1. it's open source, just remove the eula
21:44:47 <AnMaster> currently I can't get clang to build even so ;P
21:44:48 <tusho> then recompile
21:44:57 <tusho> ais523: 2. is it the stuff about sending your browser history to google
21:45:00 <tusho> because that has a setting to turn it off
21:45:09 <tusho> and yeah, that being default is the most braindeaded thing ever
21:45:34 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | i just meant, when you start going oracle, you might wanna rethink what it means for something to be "O(n)".
21:45:53 <fizzie> AnMaster: Was cfunge-0.3.0 recent enough to run fungot?
21:45:53 <ais523> tusho: it's the stuff about if you use any of their services they can change their Ts&Cs without telling you and if you use their services again you're bound by the new Ts&Cs
21:45:53 <fungot> fizzie: and more plus shipping ( honest). other scheme implementations but guile is my favorite. i.e. you never have to
21:46:03 <tusho> ais523: dude. everything has that
21:46:07 <AnMaster> fizzie, hm... let me check
21:46:08 <tusho> seriously: everything
21:46:25 <ais523> tusho: well nowadays I don't agree to EULAs that require that, that's like zombifying yourself in Agora
21:46:39 <tusho> ais523: every EULA has done that since I can remember.
21:46:40 <fizzie> I don't think I have bzr here. :/
21:46:42 <ais523> how am I meant to check the Ts&Cs for scams when they can change while I'm looking
21:46:42 <AnMaster> fizzie, no
21:46:46 <tusho> you can't avoid it.
21:46:50 <AnMaster> fizzie, only later ones got SOCK it seems
21:47:01 <ais523> tusho: you can, most computer games come with a fixed EULA for instance
21:47:05 <ais523> that doesn't change behind your back
21:47:07 <tusho> ais523: ok, games
21:47:10 <tusho> apart from that/
21:47:14 <tusho> all online services have it
21:47:15 <tusho> and most software.
21:47:31 <AnMaster> fizzie, so next release (a few weeks I guess, but I never make promises about that) will have it
21:47:38<