00:08:01 -!- GreaseMonkey has joined.
00:13:59 -!- lolwtfbbq has joined.
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:48 <dogface> Well, *you're* not my friend. Just... gosh, where'd they go?
02:48:59 <optbot> GreaseMonkey: I need to write a BF interpreter in INTERCAL still.
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: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:46:47 -!- kar8nga has joined.
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: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: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:30 <tusho> on the comments page
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: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:11 <tusho> methinks the syntax could use some whipping.
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:45 <tusho> closures + anonymous functions
14:04:47 <Deewiant> so it's just something private of yours
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: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: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: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:39 <Deewiant> it's just <return type> delegate <parameters> :-P
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: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: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: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: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 <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: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:24:07 <tusho> C++ is not context free
14:24:18 <tusho> C++ is turing complete to parse
14:24:20 <Deewiant> that's one big criticism of it
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: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: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: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:38 <tusho> give me an ambiguous expression
14:37:49 <tusho> Deewiant: yes, that's an expression
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: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: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:42 <Deewiant> yeah, I didn't mean "worry" as in "it's a problem" :-)
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: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: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: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: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: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: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:52 <Deewiant> possibly with *i < 5 and (*i)++ instead
14:47:58 <tusho> that is the problem I want to solve
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:55:01 <tusho> I had the code to MSPaint for some early version of win2k a while back.
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: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:29 <tusho> Deewiant: can it still be obtained?
14:58:34 <tusho> or has it been cracked down on
14:58:41 <tusho> yea, but I mean ... not gnutella
14:58:43 <Deewiant> you can't remove something from the internet
14:58:53 <tusho> but you can remove it from decent places
15:26:12 <tusho> http://groups.google.com/group/jquery-dev/browse_thread/thread/8411d58c4d66b934
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: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:26 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | Let's try that again.
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:03 <optbot> Deewiant: and what n-nary
16:19:04 <fizzie> Well, yes. Sure. They're so friendly.
16:19:14 <optbot> Deewiant: my io will have a sugar on top of it
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:40 <optbot> fungot: so ignoring that tusho sounds like hes on helium
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:21:03 <tusho> Deewiant: what was what
16:21:12 <tusho> you made optbot and fungot have a conversation
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:23 <tusho> Deewiant: japanese or something
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:22 <Deewiant> anybody feel like grepping for that misencoded snippet? ;-)
16:24:38 <tusho> Deewiant: sure, sec
16:25:28 <tusho> It doesn't seem to enter properly, obviously.
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: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:29:40 <tusho> the server of eso-std.org, optbot, etc
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: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:41 <tusho> i just did perl -lne 'BEGIN{$/=\1024} print "hit byte ", ($.-1) * 1024 + $-[0] if /\xc5\xa1/' *
16:34:35 <tusho> hooray, almost searched
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: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:50:00 <tusho> Judofyr: that's from the logs
17:05:18 <dogface> Good nick nobody did a /nick ihope.
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:13 <fungot> ais523: hm. no comments on " fnord". right. i'm not doing anything to decrease the number of variables
17:47:03 <fizzie> Neh, optbot makes my poor fungot look all deranged-like.
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 <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: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:49:31 <AnMaster> ais523, no need for TCP/IP support directly in intercal since cfunge have SOCK since about a week
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:55 <ais523> AnMaster: I'll probably add it anyway for CLC-INTERCAL compatibility, as an expansion library
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:53:14 <ais523> AnMaster: I've had an idea
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: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: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: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:32 <ais523> and strdup is trivial to write once you've got malloc
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: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: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:40 <AnMaster> ais523, anyway I use a lot more standard routines
17:58:48 <ais523> AnMaster: not very easy then
17:58:49 <tusho> ais523: get newlib working on it
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: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: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:27 <tusho> still, it's a good basis if nothing else
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: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:56 <ais523> tusho: the version of gcc it's based on is GPL3+
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:19 * tusho stabs richard stallman
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: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: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:51 <tusho> the gpl is just propaganda that polyglots as a license.
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: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: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 <Deewiant> AnMaster: hence, you kill google! Stop!
18:04:16 <tusho> == not the place for a license.
18:04:23 <Deewiant> Google is dying because of YOU!
18:04:31 <tusho> Deewiant: ok, stop exaggerating
18:04:34 <AnMaster> Deewiant and tusho: stop trolling
18:04:40 <tusho> i was not trolling, AnMaster
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: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: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: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:08 <tusho> oh look, more AnMaster trolling
18:06:12 <tusho> 'hahaha you use apple products'
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: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: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: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: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:28 <AnMaster> ais523, not sure what else there is...
18:09:51 <AnMaster> ais523, well STDIO for terminal, but that should be easy
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: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: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: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: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: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:37 <AnMaster> ais523, hm apart from that... fprintf() snprintf() iirc
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: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:16:11 <AnMaster> you need a fixed size for them
18:16:12 <ais523> hmm... another potential problem, is 16MB enough memory?
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: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: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: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:55 <ais523> I'd like to compile C-INTERCAL too, but it has problems due to being a compiler
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: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: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:43 <AnMaster> mmap() and STDIO are, various string and memory routines
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: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:38 <tusho> this is making no sense to me
18:24:42 <ais523> AnMaster: luckily gcc comes with floating point emulation libraries
18:25:07 <AnMaster> if (gettimeofday(&tv, NULL)) {
18:25:07 <AnMaster> perror("Couldn't get time of day?!");
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:26 <Deewiant> side note: how to display tab as something other than ^I in irssi
18:25:35 <AnMaster> I never claimed it didn't make use of POSIX stuff
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:33 <fizzie> Deewiant: I don't know what else it expands when that toggle is on.
18:26:54 <AnMaster> well mine display it as a single space
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: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:53 <ais523> AnMaster: well you get one line of input at a time
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:47 <fizzie> Deewiant: scripts.irssi.org has tab_stop.pl.
18:31:06 <fizzie> Deewiant: "Replaces the evil inverted I with a configurable number of whitespaces"
18:31:18 <AnMaster> ais523, any glibc system would have it in glibc
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: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: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:42 <ais523> that way you can have multicharacter options
18:32:54 <ais523> so for instance you might have -a^D#version
18:32:58 <tusho> http://waffles.fm/main.html <-- has waffles.fm bitten the dust?
18:33:04 <ais523> as a command line argument with 4 options
18:33:13 <tusho> "Admin Login" is just "Login".
18:33:14 <ais523> (^D represents control-D here)
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: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: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:33 -!- ais523 has joined.
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, however you can tell that you use unbuffered in y
18:35:56 <AnMaster> <AnMaster> but then programs like the wumpus in befunge won't work
18:36:02 <AnMaster> there was stuff other ppl said too
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: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 <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: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: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: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: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:25 <ais523> and is somewhat processor-dependent
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: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: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:43:00 <tusho> (space means end of shape, start new one)
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:51 <ais523> tusho: I used to do that using calculator keypads
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 <AnMaster> nm - list symbols from object files
18:44:19 <ais523> due to forgetting to bring my laptop's power supply here
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: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: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: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: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:26 <AnMaster> since I use sizeof(array) / sizeof(record) nowdays
18:47:47 <oklopol> i think i'm gonna poo and shit (pun intended) ->
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:30 <ais523> but NULL surely doesn't require standard library support
18:48:34 <ais523> nor ROMA for that matter
18:48:40 <AnMaster> there are a few more ones iirc
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: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:23 <AnMaster> ais523, malloc() calloc() free() memset() and a few more
18:50:38 <tusho> AnMaster-without-anmaster is pretty zen
18:50:43 <ais523> AnMaster: I think I'll implement all of stdlib.h, and find an implementation of stdio.h somewhere
18:50:48 <tusho> you get one person stating obvious things in a row for ages
18:51:13 -!- psygnisfive has joined.
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 <tusho> 10:14:17 <AnMaster> well I'm not ignoring tusho, nor do I think he is ignoring me
18:51:53 <tusho> i was just logreading and saw that
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: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: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:53 <tusho> AnMaster: AnMaster AnMaster AnMaster AnMaster
18:54:56 <tusho> psygnis__: logread.
18:55:00 <tusho> ais523 linked to an article
18:55:11 <ais523> psygnisfive: C++ is compile-time TC
18:55:25 <AnMaster> ais523, why such a strange register
18:55:43 <ais523> psygnisfive: using the template resolution mechanism
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:56 <tusho> yeah, good idea tusho
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:06 -!- oklofok has joined.
18:56:07 <ais523> AnMaster: due to generating code from filling in templates
18:56:16 <tusho> ah, wait, it can't log-tail then
18:56:16 <AnMaster> you just said what you thought
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: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: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: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:19 <ais523> just like on an x86 system
18:59:25 <tusho> oklofok: wait which part was true
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 <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: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: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: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:56 <ais523> it doesn't allow inline to grow the code by more than 50% by default, for instance
19:02:01 <ais523> it'll uninline things if it would
19:02:17 <ais523> AnMaster: you can change that, might be helpful for your speed optimisation
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:11 <psygnisfive> oklofok: :P whats it mean tho to say that its kind needs to be known at ~??
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: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:21 <psygnisfive> oklofok: i dont see how thats relevant to the syntax tho, see
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:17 <ais523> AnMaster: well you shouldn't have, they aren't C99 or POSIX, just a gcc extension
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:48 <oklofok> psygnisfive: you need to do them at the same time as the compilation though
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: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:43 <ais523> (that's how it ended up LGPL2.1)
19:06:48 <AnMaster> ais523, cfunge will fail badly without errno
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: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:45 <AnMaster> http://rafb.net/p/lUOFp085.html
19:10:57 <AnMaster> of course some are from fingerprints
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: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:47 <AnMaster> but since that writes svg files...
19:14:55 <ais523> anyway I'm using a nice generic implementation method
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: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:41 <ais523> which will probably result in more or less the same code anyway
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:32 <ais523> 5 fixed registers at current
19:17:38 <ais523> but probably I'll have more eventually
19:17:44 <ais523> (fixed = gcc's name for special purpose)
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: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: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:05 <ais523> AnMaster: condition code, which holds the result of a comparison
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: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: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:22:21 <ais523> BTW can cfunge cope with 16-bit int?
19:22:32 <ais523> it ought to be able to if you use types correctly, hardly anyone does though
19:22:37 <ais523> C-INTERCAL can't, I know
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:46 <AnMaster> anyway stack won't ever get 16 MB
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:15 <ais523> which allows 16 mebifunctions
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: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: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: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:17 <AnMaster> I'm sure of that functions call are not goto
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:39 <ais523> the function pops a label from the stack
19:27:51 <AnMaster> not sure if you can handle that
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:38 <AnMaster> return (fungeVector) { .x = x, .y = y };
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: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: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: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: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:33:12 <ais523> tusho: I want 24-bit ints!
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:42 <tusho> what about negative half trit
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: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:36:18 <AnMaster> ais523, anyway how do you do bitfields in your gcc-bf?
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: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:44 <AnMaster> ais523, not really on x86/x86_64
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: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: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:19 <AnMaster> ais523, and is checked once every time in main loop
19:39:31 <ais523> anyway I suspect gcc-bf will be painfully slow if run on an ordinary BF interpreter
19:40:09 <AnMaster> ais523, you could create one that reverse compile it to C...
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: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:33 <Deewiant> AnMaster: surely it'd be cached anyway
19:41:50 <tusho> GREN THINGS DEVEOTED TO MACHINESSSSSSSSSSS
19:41:54 <tusho> SDFSDS;DFSL;FKSDFL;KD;AKD;ASDK;ASDK;ALSD^G^G^G^G
19:42:09 <AnMaster> heck even the P3 near here got larger cache
19:42:10 <tusho> KJLjkLJklJKLjLjkLJlkJljKLjlkklJ
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: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: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:13 <tusho> PIGS HOW DO YOU LAFGHU
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:21 <AnMaster> for L1 the most I seen is 512 kb
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: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 <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:21 <fungot> optbot: i'm certain he isn't annoying at all. the code i write, more should be all set)) f
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: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: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:59 <ais523> although long double = double
19:50:19 <AnMaster> ais523, that is fine, while I do use long double I never depend on it's size
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: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:15 <Deewiant> ais523: why would that be a problem
19:52:19 <AnMaster> and long double on x86_64 is 128-bits
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: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:56:12 <AnMaster> ais523, but iirc that sets some floating point control register
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: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: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: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: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: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: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 <tusho> AnMaster i see you
20:00:29 <tusho> i see you with my eyes
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:52 <tusho> ^bf ,[.,]!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: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: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: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: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: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: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:11:44 <AnMaster> ais523, what is the command to check out darcs now again?
20:11:55 -!- Corun has quit ("This computer has gone to sleep").
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: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: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: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:15:20 <AnMaster> ais523, please makde config.sh +x
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: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:13 <AnMaster> checking whether we are using the GNU C compiler... yes
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: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:32 <AnMaster> ais523, there should be no extern in C files in icc's opinion
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: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: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:02 <ais523> or does it give header files a free pass?
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:25 <AnMaster> ais523, if you want all warnings try -Wall
20:19:33 <ais523> it has both -W and -Wall I think
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: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: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:56 <AnMaster> I think it may not do what you want
20:21:11 <ais523> AnMaster: oh, I do, it's a little-known feature of the C preprocessor which is confusing
20:21:23 <ais523> that undefined preprocessing identifiers are treated as 0 in #if
20:21:44 <AnMaster> src/abcess.h(112): remark #310: old-style parameter list (anachronism)
20:21:52 <tusho> well i was just logreading
20:21:59 <tusho> intercal is meant to be different in every way
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: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:58 <ais523> AnMaster: gcc does that too at -O3, it just doesn't tell you about it unless you ask it to
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: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: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: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:52 <AnMaster> I think ICC will break if you call ld
20:27:04 <AnMaster> ais523, icc will do cross-object optimising
20:27:10 <AnMaster> so it will put those together again
20:27:17 <ais523> AnMaster: and crash on IA64?
20:27:33 <ais523> AnMaster: maybe it has more memory than the Debian autobuilders
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: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: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: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:44 <ais523> so quite possibly doesn't work
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:29 <AnMaster> beer.c(3016): warning #177: label "L1910" was declared but never referenced
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:40 <AnMaster> ais523, my /usr/bin/cc is gcc so...
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:26 <ais523> at least ones which take much the same options
20:33:36 <AnMaster> ais523, no warnings without $CC set
20:33:37 <ais523> AnMaster: what, the compile, or the compiled program?
20:34:01 <AnMaster> ==8602== definitely lost: 500 bytes in 16 blocks.
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: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: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:36:05 <ais523> oh, with +help it's fine
20:36:26 <ais523> after +help runs there used to be a simulated segfault
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:37:11 <AnMaster> ais523, how would I test some of the ec features
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: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:42 <dogface> I don't like how irssi's auto-reconnect doesn't 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: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: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: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: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: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: line 13: realpath: command not found
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: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: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: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: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: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:51 <AnMaster> anyway ICC give a lot more readable errors
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:52:20 <AnMaster> it can handle some C but almost no C++
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: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: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: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: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: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:02:05 <ais523> the one on 31's genuine and fixable, the one on 44 reminds me why I needed gcc
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: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:29 <tusho> YOUR UNWASHED MASSES?
21:07:31 <tusho> NOT APPRECIATED!! BAD
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:09:01 <AnMaster> src/ick_ec.c(222): warning #1011: missing return statement at end of non-void function "ick_getonespot"
21:09:07 <AnMaster> src/ick_ec.c(252): warning #1011: missing return statement at end of non-void function "ick_gettwospot"
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: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: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: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: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:37 <AnMaster> REVERSE POLARITY WAS VECTORIZED
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:27 <AnMaster> #if (MULTITHREAD != 0) || (YUKDEBUG != 0) || defined(ICK_EC)
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:15:01 <AnMaster> #if defined(MULTITHREAD) || defined(YUKDEBUG) || defined(ICK_EC)
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:16:19 <AnMaster> sed 's/#define MULTITHREAD 0/#undef MULTITHREAD/'
21:16:29 -!- ais523 has quit ("http://www.mibbit.com ajax IRC Client").
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:17:07 <AnMaster> ais523, take your laptop with you next time!
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:53 <ais523> AnMaster: well if it doesn't misoptimise correct code there's no problem
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: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: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: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: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:45 -!- ais523 has quit ("mibbit.com: back 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: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: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: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:19 <ais523> AnMaster: you probably need -static on the link too
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:59 <ais523> $CFLAGS is for the compile normally
21:31:02 <AnMaster> so passing it in LDFLAGS as well would be double
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: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: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: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:22 <ais523> AnMaster: only if calls and returns don't match up
21:35:38 <ais523> AnMaster: that's why it's in a separate block, scoping exists for a reason
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: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: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:10 <tusho> will you talk to something other than silence now
21:48:21 <ais523> tusho: it depends on whether you say something interesting
21:48:32 <tusho> something interesting
21:48:34 <ais523> verifying that C-INTERCAL ports to compilers other than gcc is interesting
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: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: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:56:13 -!- psygnisfive has joined.
21:59:25 <oerjan> i don't think there are any bitches here. there is one dogface though.
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:39 <ais523> I don't think I've seen you here recently...
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.").