00:10:02 -!- Tritonio_ has joined.
00:12:50 -!- calamari has quit ("Leaving").
00:21:23 <slereah_> Why are there 8.388.606 different values for NAN :o
00:22:02 <slereah_> Oh, it's also independant of the sign bit. So 16 millions :o
00:22:39 <Corun> The more the merrier! :-P
00:22:46 <olsner> celebrating diversity!
00:23:12 <slereah_> Well, I don't want to be racist and all, but if someone isn't a number, he should go back to his country.
00:24:27 <olsner> apparently, there were political issues with excluding so many non-numbers from the standard
00:25:02 <slereah_> Affirmative action strikes again!
00:25:18 <slereah_> But you don't see them giving a third value to the infinities!
00:36:20 -!- Corun has quit ("This computer has gone to sleep").
01:02:49 -!- sebbu has quit ("@+").
01:22:39 -!- Overand has quit ("Reconnecting").
01:22:41 -!- Overand has joined.
01:22:57 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
01:41:13 -!- Sgeo has joined.
03:44:09 -!- Tritonio_ has quit (Remote closed the connection).
03:47:15 <slereah_> http://youtube.com/watch?v=gCh-fOTGgks&feature=related
04:15:40 <Sgeo> I mean, besides the sucky attempt at singing
04:18:25 <pikhq> That's also horribly written.
04:18:50 <pikhq> I stopped at 'Formally, a Turing can be defined as'. . .
04:19:14 <pikhq> My music-loving soul wants to execute him.
04:19:58 <slereah_> Is there a good program to deal with graphs?
04:20:06 <slereah_> Bonus point for visualisation.
04:20:30 <pikhq> Is there a good way of embedding a graph in LaTeX?
04:20:41 <slereah_> Something that would be able to deal with some transformation on the graph, so that I might try to build the Andrei machine.
04:26:24 <slereah_> I just don't dare to google "graph".
04:53:49 * Sgeo posts on Fark: Completely 100% irrelevant and off-topic, but when I see someone say "gObama", I immediately think of gOS.. Is Obama sponsored by Google?
04:53:49 <Sgeo> /waits for someone to not recognize a joke
04:54:02 <Sgeo> http://forums.fark.com/cgi/fark/comments.pl?IDLink=3430569
05:27:44 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
05:30:16 <slereah_> I'm having trouble sleeping, because I have a graph doing the Fibonacci jig in my head.
06:22:58 -!- dbc has joined.
06:54:30 -!- oerjan has joined.
07:20:29 -!- immibis has joined.
07:31:03 -!- cherez has quit ("Leaving.").
07:31:46 -!- cherez has joined.
07:52:11 -!- immibis has changed nick to we.
07:52:18 -!- we has changed nick to u.
07:52:39 * u r teh ..... what should i put here?
07:54:13 <oerjan> http://en.wikipedia.org/wiki/U_Thant
07:55:15 * u ask freenode to unban "you" as a nick
07:56:07 -!- u has changed nick to me.
07:56:38 * me knows better than to start a sentence with "me", that's why he's changing his nick to "I"
07:56:40 -!- me has changed nick to I.
07:56:51 * I changed my nick
07:58:00 -!- I has quit (Nick collision from services.).
07:58:46 -!- immibis_ has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:39 <immibis_> [20:56] --NickServ-- This nickname may not be used. Please choose another.
08:00:39 <immibis_> [20:56] --NickServ-- If you do not change within one minute, you will be disconnected
08:00:40 <immibis_> [20:56] --NickServ-- This nickname may not be used. Please choose another.
08:00:40 <immibis_> [20:56] --NickServ-- If you do not change within one minute, you will be disconnected
08:00:45 <immibis_> [20:56] --NickServ-- This nickname may not be used. Please choose another.
08:00:45 <immibis_> [20:56] --NickServ-- If you do not change within one minute, you will be disconnected
08:00:46 <immibis_> [20:56] --NickServ-- This nickname may not be used. Please choose another.
08:00:46 <immibis_> [20:56] --NickServ-- If you do not change within one minute, you will be disconnected
08:00:57 <immibis_> d'oh again i didn't mean to do that
08:01:16 -!- immibis_ has changed nick to immibis.
08:07:31 <immibis> ok. "you" is out. "I" is out.
08:07:34 -!- immibis has changed nick to we.
08:07:51 <we> i wonder if NS will let me register "I" and disable that protection...
08:07:53 -!- we has changed nick to I.
08:08:17 -!- tejeez has quit (brown.freenode.net irc.freenode.net).
08:08:17 -!- Deewiant has quit (brown.freenode.net irc.freenode.net).
08:08:19 -!- I has changed nick to immibis.
08:09:27 -!- immibis has changed nick to GreaseMonkey.
08:09:51 -!- GreaseMonkey has changed nick to immibis.
08:11:11 -!- immibis has changed nick to u.
08:11:20 * u will like me having this nick or else
08:11:26 -!- u has changed nick to yu.
08:16:05 * yu will say something
08:17:38 * yu WILL follow the directions on this sign. The sign says "Stop. Drive sideways."
08:17:55 <yu> "three types of ball are offered. They are one. two. three."
08:22:02 <yu> "In my attempt to kill a fly, I drove into a telephone pole."
08:22:13 <yu> "The telephone pole was approaching fast. I was attempting to swerve out of its path when it struck my front end."
08:22:23 <yu> # "The guy was all over the road. I had to swerve a number of times before I hit him."
08:24:56 -!- yu has quit ("Hi Im a qit msg virus. Pls rplce ur old qit msg wit tis 1 & hlp me tk ovr th wrld of IRC. and dlte ur files. and email ths to).
08:52:14 -!- jix has joined.
09:30:48 -!- tejeez has joined.
09:34:27 -!- oerjan has quit ("Later").
09:37:09 -!- lifthrasiir has quit (brown.freenode.net irc.freenode.net).
09:37:10 -!- puzzlet has quit (brown.freenode.net irc.freenode.net).
09:37:11 -!- Deewiant has joined.
09:37:58 -!- puzzlet has joined.
09:37:58 -!- lifthrasiir has joined.
09:39:34 -!- jix has quit (Read error: 110 (Connection timed out)).
09:40:46 -!- olsner has quit ("Leaving").
10:39:26 -!- jix has joined.
10:53:29 -!- Corun has joined.
10:53:52 -!- Corun has quit (Client Quit).
11:05:12 -!- mental has joined.
11:05:32 -!- lament has quit (Read error: 113 (No route to host)).
11:36:19 -!- jix has quit ("This computer has gone to sleep").
12:00:29 -!- jix has joined.
12:02:58 -!- AnMaster_ has joined.
12:04:08 -!- AnMaster has quit (Nick collision from services.).
12:04:36 -!- AnMaster_ has changed nick to AnMaster.
12:21:17 -!- Tritonio_ has joined.
12:25:04 -!- jix has quit ("This computer has gone to sleep").
12:34:55 -!- sebbu has joined.
13:18:12 -!- RedDak has joined.
13:22:55 -!- sebbu has quit (Read error: 60 (Operation timed out)).
13:32:11 -!- jix has joined.
13:57:54 -!- jix has quit ("This computer has gone to sleep").
14:07:55 <AnMaster> in brainfuck, is it the case that a + or - directly in front of a "," can be optimized away?
14:08:17 -!- sebbu has joined.
14:21:59 -!- slereah_ has quit (Read error: 104 (Connection reset by peer)).
14:22:01 -!- slereah__ has joined.
14:49:00 -!- wildhalcyon has joined.
14:49:40 -!- slereah_ has joined.
14:51:50 <slereah_> Well, if it's in front of a , you can probably remove it
14:52:38 -!- slereah__ has quit (Read error: 104 (Connection reset by peer)).
14:54:35 <AnMaster> also strings of + and - can be optimized
14:54:57 * AnMaster is pondering a brainfuck optimizer
14:55:22 <AnMaster> one thing that is obvious (in the compiler or interpreter), replace [-] or [+] with "zero cell" opcode
15:01:56 <slereah_> Where can I get the Profile module for Python?
15:22:34 <wildhalcyon> I was thinking of writing a hyperexponentiation program in bf
15:23:48 <wildhalcyon> use a trinary operator (x,h,y) where it computes x^^..h..^^y
15:27:14 * slereah_ 's trying to write an addition program on a Kolmogorov machine
15:27:45 -!- Corun has joined.
15:28:10 -!- slereah_ has changed nick to Slereah.
15:29:16 -!- RodgerTheGreat has quit (Read error: 110 (Connection timed out)).
15:48:22 -!- slereah_ has joined.
15:49:01 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
15:50:07 -!- jix has joined.
16:00:38 -!- jix has quit ("CommandQ").
16:00:58 -!- jix has joined.
16:17:59 -!- ehird` has joined.
16:23:37 <ehird`> immibis has been spamming again
16:24:17 <ehird`> AnMaster: brainfuck optimization is pretty advanced these days
16:24:24 <ehird`> the stuff you have talked about is 3-line stuff
16:24:37 <ehird`> nowadays we optimize linear loops to O(1) and multiplication and everything ;O
16:28:55 <AnMaster> ehird`, can you point me to an example of that?
16:29:26 <slereah_> Well, I'm sure EsCo can satisfy all your BF needs!
16:30:03 <ehird`> AnMaster: http://mazonka.com/brainf/bff4.c this optimizes linear loops to O(1) if compiled with -DLNR
16:30:12 <ehird`> http://mazonka.com/brainf/index.html some benchmarks
16:30:41 <ehird`> it's the fastest bf interp out there
16:31:18 <ehird`> it seems to use ints, though, not chars
16:31:21 <AnMaster> someone should write a bf frontend for gcc
16:31:39 <ehird`> gcc wouldn't be able to do much to the code
16:31:47 <ehird`> ESO1's reference will include a fast bf interp and compiler anyway
16:31:55 <AnMaster> x86, x86_64, whatever arch you want
16:32:01 <ehird`> compiling to machine code is pointless for BF
16:32:14 <ehird`> compile to good C, and then gcc -O3, because gcc can spot idioms better than you
16:32:20 <AnMaster> ehird`, nah you could do common code reduction to "un-inline" it
16:32:31 <ehird`> AnMaster: gcc is not suitable for this
16:32:35 <ehird`> http://www.swapped.cc/bf/ <-- the reigning champ interp before bff4
16:33:12 <ehird`> oh -- and bff4.c doesn't do interactive input
16:33:24 <ehird`> so no luck running e.g. lostkng.b on it
16:33:39 <ehird`> anyway, the ESO1 reference suite will be the best one out there when it's worked on, i'll bet
16:33:42 <slereah_> Well, you could do lostkng!the solution
16:33:51 <AnMaster> ehird`, well I want interactive input
16:33:53 <ehird`> lostkng is only slow in startup
16:34:00 <ehird`> AnMaster: http://www.swapped.cc/bf/files/bff-1.0.3.1.tar.gz
16:34:11 <ehird`> I'll mod bff4.c for interactive.
16:34:15 <ehird`> Should just take a mo.
16:34:34 <ehird`> i love the style of code in bff4.c
16:34:54 <AnMaster> ehird`, possibly, but I'm way geekier, I updated mosaic to support basic xhtml and plan to make it good enough to use it as my normal browser
16:34:56 <slereah_> Damn you people and your fancy code!
16:35:16 <ehird`> AnMaster: why would you want to do that, though?
16:35:22 <ehird`> mozaic isn't even useful, like lynx is
16:35:25 <slereah_> Let's hook up AnMaster on PSOX
16:35:28 <AnMaster> ehird`, because it make ppl ask why I want to do it
16:35:46 <ehird`> AnMaster: i'm way geekier, i started making an OS once! :(
16:35:48 <AnMaster> ehird`, and I run a gopher server
16:35:48 <ehird`> it sucked, sure, but hey
16:35:52 <ehird`> i got it to print hello world :|
16:36:00 <slereah_> http://www.esolangs.org/wiki/PSOX
16:36:30 <AnMaster> hrrm, what's on the other side of the scale of minimalism
16:36:35 <ehird`> do not listen to it AnMaster! :(
16:36:59 <AnMaster> ehird`, well malbolge doesn't have a lot of opcodes
16:37:00 <ehird`> unikitten is the most bloated thing out there
16:37:09 <ehird`> AnMaster: http://www.esolangs.org/wiki/ORK
16:37:16 <AnMaster> http://www.esolangs.org/wiki/PSOX <-- wowowowow though
16:37:35 <ehird`> Sgeo doesn't know what malloc() is
16:37:44 <ehird`> and he thought a good 'networking' domain was HTTP
16:37:48 <ehird`> AnMaster: PSOX maintainer.
16:38:03 <AnMaster> ehird`, well what do you mean not know malloc?
16:38:11 <ehird`> AnMaster: he had no idea what it was
16:38:24 <ehird`> AnMaster: he only knows Python..
16:38:25 <AnMaster> you can't code C without knowing it
16:38:32 <ehird`> he doesn't even know basic brainfuck algorithms, really
16:38:37 <AnMaster> ehird`, well if it is written in python?
16:38:38 <ehird`> and he's probably watching me say this right now
16:38:49 <ehird`> AnMaster: yes, but it would affect the architechtural stuff of it
16:39:18 <AnMaster> I actually use bohem-gc, for a leak detector :)
16:39:31 <AnMaster> combined with valgrind and mudflap it is quite useful
16:39:49 <AnMaster> ehird`, it isn't, how do I register an allocation from X for example
16:40:00 <ehird`> AnMaster: you asked this last time
16:40:01 <AnMaster> I need to place some pointers in widget
16:40:06 <ehird`> because manuals are too difficult to read for you, apparently
16:40:10 <AnMaster> ehird`, yes I read the docs, and found no way
16:40:26 <ehird`> AnMaster: go ask in #c
16:40:59 <AnMaster> ehird`, well #c is an unfriendly channel
16:42:11 <AnMaster> still no idea how to tell it about an already malloced object
16:42:38 <AnMaster> I tried GC_add_roots, no idea why it didn't work :/
16:44:45 <ehird`> if( strchr(",.",a) ){ a=getbf(); continue; }
16:44:55 <ehird`> getbf only litsens to BF instructions
16:44:58 <ehird`> so surely, this is a bug
16:49:23 -!- slereah__ has joined.
16:52:09 <ehird`> GregorR: Those guys made CMUCL. You don't want to be anywhere near them!
16:52:11 <ehird`> x) ehird@ehird-desktop ~/LostKingdomBF $ ../bff4 LostKng.b
16:53:48 <ehird`> GregorR: have you ever looked at bff4.c? :P
16:54:27 <ehird`> eso1's reference interpreter/compiler needs a name.
16:54:30 <AnMaster> ehird`, someone need to use better variable names
16:54:44 <ehird`> AnMaster: the source is not that hard to understand; just at first
16:54:51 <ehird`> verbose c code is horrible
16:55:32 <AnMaster> ehird`, true, but so is obfuscated as well
16:56:03 <ehird`> AnMaster: This is obfuscated C: http://nsl.com/papers/origins.htm
16:56:17 <ehird`> and what's more, that guy actually writes all his C like that, and seriously
16:57:53 <ehird`> http://www.kx.com/a/k/examples/read.k
16:57:57 <ehird`> translates k to english
16:57:58 -!- Slereah has joined.
16:58:31 <ehird`> http://www.kx.com/a/k/examples/xhtml.k this parses xhtml
16:59:10 <ehird`> AnMaster: KDB, a very widely used, fast, stable etc. database program, used by loads of finance stuffz, made by Kx systems (same people as K, obviously), is written in K
16:59:16 <ehird`> and according to them, contains 0 loops
16:59:39 <ehird`> AnMaster: it's an array programming language
16:59:57 <ehird`> scalar values in K etc are just 0d arrays
17:00:09 <ehird`> 1 2 3 + 1 2 3 == 2 4 6
17:00:17 <ehird`> so basically all operations are generalized across arrays
17:00:24 <ehird`> so you don't have to loop over an array
17:00:34 <ehird`> AnMaster: because that's the style of array programming languages
17:00:36 <AnMaster> ehird`, ok, but on hardware level it would loop
17:00:39 <ehird`> wildhalcyon: me too! it's not easy.
17:00:44 <ehird`> AnMaster: gosh, really
17:00:50 <ehird`> i thought faeries did it
17:01:04 <AnMaster> ehird`, anyway what's so nice with "no loops"
17:01:13 <AnMaster> I mean, why would anyone boost with it?
17:01:14 <ehird`> AnMaster: it's array programming language style.
17:01:19 <wildhalcyon> I would disagree with anyone who told me it WAS C code unless I knew already
17:01:23 <ehird`> well they obviously prefer it
17:01:45 -!- Slereah- has joined.
17:02:15 <ehird`> http://nsl.com/papers/unlambda.htm unlambda in k
17:02:39 <ehird`> did i mention that in K it's actually shorter & more trivial to write a gui app than a console one? it's really, really weird
17:03:10 <ehird`> http://nsl.com/papers/befreak.htm this interp+gui = http://nsl.com/k/befreak.k
17:03:50 -!- RodgerTheGreat has joined.
17:04:35 <AnMaster> ehird`, where can one read about the k language itself?
17:04:49 <ehird`> AnMaster: http://www.kuro5hin.org/story/2002/11/14/22741/791
17:04:54 <ehird`> that introduces it very gently.
17:05:00 <ehird`> AnMaster: i must warn you though; it's not open source
17:05:15 <ehird`> kx systems used to offer a free interpreter for most systems, but they appear to have stopped
17:05:30 <AnMaster> ehird`, couldn't someone make an open source compiler for it (why would anyone want that?)
17:05:39 <ehird`> AnMaster: compiler, no.
17:05:46 <ehird`> but the k library is huuuuuge
17:05:52 <ehird`> i doubt it would be feasable to reproduce it
17:06:01 <ehird`> without years and years of stuffs
17:07:27 <ehird`> AnMaster: all its stdlib
17:07:27 -!- slereah__ has quit (Read error: 110 (Connection timed out)).
17:07:31 <ehird`> i.e. more than the basic lang
17:07:40 <ehird`> which already uses most characters on a keyboard, I'll venture
17:12:19 -!- slereah_ has quit (Read error: 110 (Connection timed out)).
17:15:20 -!- Slereah has quit (Read error: 110 (Connection timed out)).
17:15:26 <Slereah-> Hell, Kolmogorov didn't have I/O on his mind with his machine.
17:16:51 <ehird`> i should expand that, sometime.
17:18:30 <ehird`> the ESO1 reference interpreter
17:21:26 <ehird`> 'It's impractical to program in BrainFuck.' GENIUSES, ON THE INTERNET
17:24:26 <ehird`> Slereah-: how can you optimize linear loops, actually?
17:24:30 -!- Sgeo[College] has joined.
17:24:34 <ehird`> [++>--<+++>>>-<+>--<<++<+>-<-]
17:24:47 <ehird`> no, i have no idea how you can optimize that
17:24:47 <Slereah-> I don't know, I'm not the one who can optimise BF!
17:25:46 <Slereah-> I guess you could try to run what's inside and look at the results.
17:25:56 <Slereah-> And then change it to something more efficient
17:26:04 <ehird`> like, if you have a program going right 4357345 cells
17:26:11 <ehird`> i wonder if GC would be useful
17:26:18 <ehird`> Slereah-: I meant, algorithmically.
17:26:32 <Slereah-> Well, that was my algorithmical idea.
17:34:16 <wildhalcyon> [++>--<+++>>>-<+>--<<++<+>-<-] ... Optimizing ... [+++++>-->>-<+>--<<++<+>-<-] ...
17:36:11 <wildhalcyon> [+++++>-->>-<+>--<<++<+>-<-] ... Optimizing ... [+++++>-->>-<+>--<<++<>-<] ...
17:37:29 <wildhalcyon> [+++++>-->>-<+>--<<++<>-<] ... Optimizing ... [+++++>-->+>---<<++<>-<] ...
17:41:05 <Corun> Surely that can be optimized out?
17:41:12 <wildhalcyon> Here's the correct optimization: [+++++>->+>---<<<]
17:41:53 <ehird`> says it optimizes balanced <> loops into O(1)
17:42:04 <ehird`> http://mazonka.com/brainf/bff4.c
17:42:38 <ehird`> wildhalcyon: Well, that optimization of yours isn't O(1).
17:43:33 <ehird`> wildhalcyon: Take a look at its code
17:43:37 <ehird`> I don't know either, but it does do it.
17:44:27 <wildhalcyon> Bah, now I have to read code. Today is just sucky.
17:49:19 -!- Corun has quit ("This computer has gone to sleep").
17:49:32 <wildhalcyon> It is optimized, but not to O(1), only to O(n) where n is the number of cells traversed in the linear loop.
17:53:13 <ehird`> wildhalcyon: So not that much of an optimization?
17:53:30 <wildhalcyon> Well, it depends on how badly the code is written, but in general, no, not really an optimization.
17:53:43 <ehird`> Might help with compiled; e.g. lostkng.b, I guess.
17:54:03 <ehird`> Still, bfi&bfc will include it.
17:54:43 <AnMaster> wildhalcyon, how did you optimize above
17:54:48 <AnMaster> <wildhalcyon> [+++++>-->>-<+>--<<++<>-<] ... Optimizing ... [+++++>-->+>---<<++<>-<] ...
17:55:41 <AnMaster> wildhalcyon, anyway how did you do do convert it?
17:55:54 <wildhalcyon> After that, I abandoned that approach and tried something much faster
17:56:26 <wildhalcyon> Go through the loop and number each ">" or "<" by what cell it ends up pointing to
17:56:50 <wildhalcyon> so the original loop looks like this: [++1--0+++123-2+3--21++0+1-0-]
17:56:57 <wildhalcyon> Now, just sort and group the terms together
17:57:16 <wildhalcyon> Remove the extra arrows, and any cancelling positive and negative signs.
17:59:52 <wildhalcyon> Well, more instructions usually mean convenient programming. Last time I checked, esolangs were the opposite of convenient.
18:00:36 <Slereah-> What, convenient programming? We don't like convenient programming here!
18:00:37 <ehird`> wowzers, gcc can optimize pure functions
18:00:40 <ehird`> it's almost a FP compiler
18:01:15 <AnMaster> ehird`, of course it can, when marked with __attribute__((const)) iirc
18:01:58 <ehird`> makes it optimize it just like a mathematical operator
18:02:00 <ehird`> subexpression stuff, etc
18:02:01 <AnMaster> ehird`, difference is in pointers iirc
18:02:12 <ehird`> BFI_GCC_ATTR((noreturn, format(printf, 4, 5))) void bfi_die(bfi_err_code, int, int, char *, ...);
18:02:15 <ehird`> ugliest definition EVAR
18:02:39 <ehird`> I mean, I have the attribute declarations on a line, but then it's too long, so the whole funcdef itself has its own line
18:02:51 <ehird`> #define BFI_FOPEN(fn, md) \
18:02:51 <ehird`> (fopen((fn), (md)) || \
18:02:55 <ehird`> ((BFI_ERR(BFI_ERR_FOPEN, "BFI_FOPEN(%s, %s) - %s", #fn, #md, \
18:02:57 <ehird`> strerror(errno))), NULL))
18:02:58 <AnMaster> ehird`, agreed, you can just do: #ifndef __GNUC__ #define __attribute__(x) /**/ #endif iirc
18:02:59 <ehird`> which i still haven't perfected yet
18:03:15 <ehird`> i don't want to define anything not BFI_ or bfi_ prefixed.
18:03:23 <ehird`> this should be non-conflicting all the time :-)
18:04:23 <ehird`> # define BFI_ERR(code, fmt, ...) \
18:04:23 <ehird`> (bfi_die((code), __FILE__, __LINE__, (fmt), __VA_ARGS__), return (code))
18:04:24 <AnMaster> ehird`, well I'll make a C compiler called bficc then? (Basic Functional Integrated C Compiler, don't ask me what THAT means...)
18:04:49 <ehird`> i need variadic macros
18:04:54 <ehird`> the rest will be ansi c
18:05:00 <ehird`> actually, you're right.. i really want c89
18:05:06 <ehird`> this interp should work in 845793845345 years
18:05:12 <ehird`> AnMaster: could i do this:
18:05:21 <ehird`> myprintfalikemacro(a,b,("x",y,z),abc)
18:05:25 <ehird`> since cpp would treat that as one arg
18:05:35 <AnMaster> BFI_ERR1(code, fmt, arg1); BFI_ERR2....
18:05:45 <ehird`> uhh, dunno how to splice that into the printf call though
18:05:47 <AnMaster> I saw some c89 code doing something like that
18:06:03 <ehird`> i'll just do 3, for now
18:06:15 <AnMaster> ehird`, for doing one function definition, for K&R C and ANSI C
18:07:11 <AnMaster> I don't have the K&R version around still
18:07:24 <ehird`> AnMaster: the only interpreters/compilers that will be ESO-approved as reference implementations are either ANSI C89 or languages with an interp approved by es
18:07:39 <ehird`> so you can have a stack of 4 interpreters, as long as you have ANSI C89 at the bottom.
18:07:46 <ehird`> they are designed to be the most portable out there.
18:07:53 <ehird`> they don't need to be the prettiest code on earth
18:08:04 <AnMaster> ehird`, so? GCC 4 can be compiled with a C89 compiler I bet
18:08:27 <ehird`> AnMaster: you are amusing
18:08:51 <AnMaster> GCC does suported staged bootstrap
18:09:44 <AnMaster> ehird`, in any case, that means you are free to code C99 I think?
18:09:51 <ehird`> that is so not the point
18:10:25 <AnMaster> you could even use GCC specific extensions
18:11:42 <ehird`> exactly; why do you think a lot of projects don't?
18:11:45 <ehird`> because your idea is ridiculous
18:15:07 <ehird`> void *foo = BFI_MALLOC(43594357934857435);
18:15:12 <ehird`> void *foo = (malloc(43594357934857435) || (((bfi_die((BFI_ERR_OOM), "test.c", 6, ("BFI_MALLOC(%s)"), ("43594357934857435")), return (BFI_ERR_OOM))), ((void *)0)));
18:16:10 <AnMaster> ehird`, and this will fail at:
18:16:37 <ehird`> AnMaster: a large malloc to test my error handling
18:16:45 <ehird`> but that's because the user is an idiot
18:17:06 <ehird`> void *foo = (malloc(++x) || (((bfi_die((BFI_ERR_OOM), "test.c", 6, ("BFI_MALLOC(%s)"), ("++x")), return (BFI_ERR_OOM))), ((void *)0)));
18:17:10 <ehird`> because the argument is stringified
18:17:16 <ehird`> i did that on purpose, to avoid re-evaluation
18:17:26 <AnMaster> ehird`, heh , the # operator iirc?
18:17:39 <ehird`> it may be less useful since you don't get the actual int, actually
18:17:41 <ehird`> and yes, it is, AnMaster
18:17:53 <ehird`> i may make it reevaluate for the sake of better error messages
18:17:56 <ehird`> and assume the caller isn't an idiot.
18:18:12 <AnMaster> ehird`, BFI_MALLOC(rand()) *runs*
18:18:26 <ehird`> AnMaster: I said something about the caller not being an idiot
18:18:50 <ehird`> crappers, how am i going to make BFI_MALLOC expressionable then
18:18:59 <ehird`> it needs to be able to return from the function it's called in
18:19:03 <ehird`> that's why its a macro in the first place
18:19:16 -!- wildhalcyon has quit ("ChatZilla 0.9.81 [Firefox 2.0.0.11/2007112718]").
18:19:25 <ehird`> AnMaster: which requires a setjmp.
18:19:33 <AnMaster> or 1) a macro that calls 2) a function for most of it's stuff
18:19:35 <ehird`> and a variable decl, which i also can't expressionize
18:19:42 <ehird`> and, AnMaster, that still doesn't help
18:19:55 <ehird`> i need to use BFI_MALLOC in an expression, because of 'void *p = BFI_MALLOC(...)'
18:20:01 <ehird`> but in the function doing that
18:20:06 <ehird`> i must return BFI_ERR_OOM
18:20:21 <ehird`> which i cannot do, as far as i can see, in expression context
18:20:24 <ehird`> there is a gcc extension:
18:20:30 <ehird`> but, well, gcc extension.
18:20:59 <AnMaster> ehird`, idea: use a different macro language first
18:21:13 <AnMaster> then compile result using normal C preprocessor
18:21:46 -!- mental has changed nick to lament.
18:28:32 <AnMaster> Slereah-, that's an anagram of my nick isn't it?
18:29:01 <AnMaster> however, aspell doesn't accept "Steraman" as valid, nor can I find any sub parts of it that are valid
18:29:32 <Slereah-> But it has a certain super hero ring to it.
18:29:42 <Sgeo[College]> I added two entities more than the slide we're copying had
18:32:01 -!- RedDak has quit (Remote closed the connection).
18:32:59 <Slereah-> ais. Gregor R. Rodger the Great.
18:33:07 <Slereah-> There seems to be a trend here.
18:34:13 -!- ehird` has quit (Read error: 113 (No route to host)).
18:35:59 -!- Sgeo[College] has quit ("http://www.mibbit.com ajax IRC Client").
18:41:25 -!- ehird` has joined.
18:43:59 -!- oerjan has joined.
18:50:06 * oerjan ponders: Is it a good or a bad thing that dying of boredom takes a long time :D
18:51:48 <oerjan> wouldn't that risk recursion...
18:59:42 -!- timotiis has joined.
19:01:40 <ehird`> bsmntbombdood: that's pretty silly
19:02:00 <ehird`> Slereah-: oh wow, *right click*. as if apple still sold one-button mice.
19:02:28 <Slereah-> Yes. Now they have a middle button, that doesn't work like a right click at all :o
19:02:48 <ehird`> they have left, right.
19:02:58 <ehird`> the mighty mouse also has a 3d scrollwheel which can be clicked and two side buttons
19:03:00 <ehird`> but that's not important.
19:03:10 <ehird`> and their right click most certainly works properly...
19:03:12 <Slereah-> Then my mom needs to buy a new mac :o
19:03:16 <ehird`> Right click, context menu, oh wao.
19:05:18 <bsmntbombdood> http://bp0.blogger.com/_XNXLcHFsW1U/R8Z894yBmcI/AAAAAAAACaQ/p4RK6SwloFM/s1600-h/306139.jpg
19:15:53 -!- slereah_ has joined.
19:15:56 -!- Slereah- has quit (Read error: 104 (Connection reset by peer)).
19:19:44 <bsmntbombdood> i know it's cliche, but i'm thinking of traveling and then starting my distillery
19:23:12 <slereah_> If you're travelling, don't travel to the past then!
19:56:31 <ehird`> crap! i can't use getopt for bfi
19:56:47 <ehird`> because: it's not standard C. :)
19:59:18 <RodgerTheGreat> Do you think it'd be a neat idea if my assembler could be instructed that a given chunk of data memory is "for constants" (ie, they will never be written to during execution), and then have it search the rest of the program for that value?
19:59:59 <RodgerTheGreat> Like, if an instruction anywhere used the value 13, and you're looking for a 13, you just give the data half of that instruction as the address your constant 13 is stored, rather than using additional memory
20:01:12 <RodgerTheGreat> if used improperly, you could inadvertently create some really nasty self-modifying code situations, but if used properly, you could potentially squeeze many bytes out of the finished binary
20:03:47 <ehird`> RodgerTheGreat: Whatever it is it should be done automatically.
20:03:50 <RodgerTheGreat> I think if I combine this with some other ideas, I'll wind up with a very size-efficient compiler with *spectacular* results in out-of-bounds errors
20:03:58 <ehird`> RodgerTheGreat: No -- I mean
20:04:29 <RodgerTheGreat> It's much better if users simply declare data as "constant" and then everything else is automated
20:05:07 <RodgerTheGreat> well, not doing that and still having it work is on the order of the halting problem
20:07:27 <oerjan> as a general rule, you should not try to solve the halting problem in a hobby project.
20:07:43 <ehird`> RodgerTheGreat: anyway, herueruerueruerusitics
20:07:48 <RodgerTheGreat> exactly, which is why I'm doing my way instead of ehird`'s way
20:10:36 <ehird`> should bfi/bfc parse brainfuck from a file, or read it in first then parse a string?
20:18:12 <ehird`> bfi_ins *bfi_parse(FILE *f, bfi_err_code *err)
20:18:12 <ehird`> bfi_ins *res = (malloc(sizeof(bfi_ins)) || (((void *)0)), ((void *)0));
20:18:12 <ehird`> if (!(res)) { if ((err)) { *(err) = (BFI_ERR_OOM); } return ((void *)0); };
20:48:23 <ehird`> in brainfuck, you actually don't need a move instruction, do you?
20:48:27 <ehird`> i mean, a compiler doesn't need one
20:48:37 <ehird`> you do, for loops that >
20:48:50 -!- olsner has joined.
20:49:39 -!- Sgeo[College] has joined.
21:05:41 -!- Sgeo[College] has quit ("http://www.mibbit.com ajax IRC Client").
21:21:14 <ehird`> we're no strangers to rick roll
21:22:35 <oerjan> NEVER GONNA CHOP YOU INTO LITTLE PIECES
21:23:02 <ehird`> NEVER GOING TO TELL A LIE AND EAT YOUR FAECES
21:29:55 <slereah_> Now this is my story, all about how.
21:30:04 <slereah_> My life got twisted, turned upside down!
21:30:12 <slereah_> And I'd like you to just sit right there!
21:30:24 <slereah_> I'll tell you I became the prince of a tow called Bel Air.
21:33:06 <bsmntbombdood> it would appear to me chocolate rain is about discrimination
21:40:36 <bsmntbombdood> hahahahahhaahahha it's chocolate rain: http://encyclopediadramatica.com/Image:Chocolatepee.jpg
21:40:51 <olsner> now *that's* a rickroll... luring someone into performing a cover of it :P
21:46:08 -!- RedDak has joined.
21:49:16 -!- olsner has quit ("Leaving").
21:50:26 -!- oerjan has quit ("Good night").
22:00:30 -!- ihope has joined.
22:08:51 -!- jix has quit ("CommandQ").
22:44:10 <ihope> Stephen Malinowski's Fantasy in F: http://www.vimeo.com/93612
22:44:45 * slereah_ is trying to make a tic tac toe on the love machine 9000
22:45:26 <slereah_> And trying to do it before tomorrow :o
22:45:47 <ihope> I like it. My mom finds it disastrously dissonant.
22:49:33 <ihope> I would say that alliteration is effortless emphasis, but it took me about five minutes to come up with the phrase "effortless emphasis".
22:49:43 -!- slereah_ has changed nick to Slereah.
22:50:41 <ihope> "I hate the piano, with its diabolical diatonic scales."
22:58:05 <ihope> And is that French?
23:03:27 <Slereah> It was also in Look Around You.
23:03:38 <Slereah> The 19 forbidden notes, in LA BOITE DIABOLIQUE
23:06:14 -!- RedDak has quit (Remote closed the connection).
23:11:39 <ihope> lament: didn't you once have a little IRC thing called kilbot, which ran a simple game where people shot each other and tried to stay alive?
23:11:45 <ihope> Do you still have that?
23:28:27 -!- timotiis has quit ("leaving").
23:30:51 -!- kilbot has joined.
23:31:01 <ehird`> Some people, when confronted with regular expressions, always think "I know,
23:31:02 <ehird`> I'll paste that Jamie Zawinski quote, and people will think I'm clever!"
23:31:02 <ehird`> These people have a problem.
23:31:24 <kilbot> Opening a new game. Say !join to join. Say !start again to start.
23:31:31 <kilbot> lament: You have already joined.
23:31:59 <lament> you have to say start before saying join.
23:32:07 <lament> i mean, someone has to say start.
23:32:56 <ehird`> Slereah: Sometimes annoying, sometimes clever. Ex-Netscape hacker who now owns a nightclub with wifi and stuff.
23:32:56 <kilbot> lament shoots at ehird`
23:32:59 <kilbot> ehird` shoots at lament
23:33:24 <lament> it was probably you who suggested that stupid three lives idea
23:33:41 <ehird`> Slereah: Some people, when confronted with a problem, think “I know, I’ll use regular expressions.” Now they have two problems.
23:34:03 <kilbot> sender + : You have already shot at ehird`
23:34:07 <kilbot> sender + : You have already shot at lament
23:34:16 <ehird`> lament: show me the src!
23:34:19 <ehird`> i will make it awesome.
23:34:25 -!- kilbot has quit (Remote closed the connection).
23:34:44 <lament> ehird`: i assure you it would be a better idea to start from scratch.
23:34:51 <lament> the code is not pretty
23:34:59 <lament> also as you can see by the "sender +"
23:35:01 <ehird`> so I can rewrite it from scratch, obviously
23:35:17 <lament> i was actually in the process of changing the game around when i abandoned it
23:36:04 <lament> you don't want the source! the entire message handler is one big multi-level if statement.
23:36:16 <lament> why don't you rewrite it in erlang or haskell
23:36:30 <lament> or, for bonus points, in both
23:38:07 <lament> http://z3.ca/~lament/killbot.py
23:38:16 <lament> http://z3.ca/~lament/irclib.py
23:39:21 <lament> ignore that it's in python and pretend that it's in perl
23:39:27 <lament> then the ugly code makes more sense
23:40:24 <ehird`> lament: It's not THAT bad.
23:40:46 <lament> it's pretty bad. the only goodness in it is irclib.py, which isn't mine.
23:41:02 <ehird`> lament: I may rewrite it in Haskell.
23:41:12 <ehird`> Using Network.IRC -- though I wil lwrite my own lib sometime.
23:41:23 <ehird`> lament: Is there something actually specifying the game? The code is hard to follow.
23:42:20 <lament> it would be easier just to ask me
23:42:36 <lament> especially since the rules of the game changed during development
23:42:55 <lament> the game i originally implemented went like this:
23:43:14 <lament> somebody says !start, then people say !join, then somebody says !start again which starts the game.
23:43:34 <lament> then you say !kill nick to kill somebody (if both you and they are players)
23:44:10 <lament> or you can say !friend nick, which is really stupid because it means that now you can't kill them, but they still can kill you.
23:44:23 <lament> once you kill somebody, they're dead.
23:44:40 <lament> the game ends when the remaining players are all mutual friend.
23:45:11 <lament> so then i modified those rules so that people have 2 lives
23:45:19 <ehird`> why would you !friend nick
23:45:21 <lament> and you can only shoot the same person once
23:45:35 <lament> so it takes cooperation of two people to kill somebody
23:46:15 <lament> so with two players, A shoots B, B shoots A and the game stalls.
23:46:56 <lament> i don't think killbot checked for that, so they had to !friend each other for a shared victory.
23:47:11 <lament> feel free to come up with less brain-damaged rules.
23:48:43 <ihope> Exactly the same as that, except you can shoot people as many times as you want, the game ends after no shooting has been done for a while, and you can raise players from the dead. >:-)
23:48:53 <ehird`> ihope: Now THAT sounds fun!
23:52:25 -!- Sgeo has joined.
23:53:24 <lament> ehird`: do it in erlang!
23:53:44 <ihope> Do it in Epigram! >:-)
23:53:54 <lament> ehird`: erlang looks interesting
23:53:58 * Sgeo almost mistook this for Sine
23:54:03 <Sgeo> was wondering why lament was here
23:54:41 <Sgeo> I'd dragged so many people from here to sine
23:55:22 <ihope> I think it's been described as a semi-private chat server.
23:55:41 <ihope> With roughly 30 people on it.
23:56:26 -!- calamari has joined.
23:56:32 <ihope> No password or anything is required, but you do need to know the server name and port number.
23:56:41 <ihope> The port number's relatively guessable. :-P
23:56:42 <ehird`> which isn't that hard if you google for it actually.
23:57:47 <lament> never heard of "Creatures".
23:59:47 <Sgeo> Did I mention the new safety features I'm planning