โ†2008-08-31 2008-09-01 2008-09-02โ†’ โ†‘2008 โ†‘all
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-08-31 2008-09-01 2008-09-02โ†’ โ†‘2008 โ†‘all