00:13:18 -!- Corun has joined.
00:26:45 -!- RedDak has quit (Read error: 104 (Connection reset by peer)).
01:17:17 -!- tusho has quit.
02:08:12 -!- cherez1 has quit (Read error: 110 (Connection timed out)).
02:12:20 -!- cherez has joined.
02:26:14 -!- Corun has quit ("This computer has gone to sleep").
02:48:21 -!- djgera has joined.
02:50:06 -!- RodgerTheGreat has joined.
02:58:27 <RodgerTheGreat> Ah, sitting around waiting for something interesting to happen. Me too.
02:59:29 <pikhq> I've been busy muttering about how MST's "intro to" courses suck.
02:59:36 <pikhq> No, not at all; it's a fairly grokkable spec.
03:19:37 -!- Slereah_ has joined.
03:47:27 <RodgerTheGreat> I was bored, so I wrote a test program in high-level def-bf: http://www.nonlogic.org/dump/text/1215053139.html
03:47:57 <RodgerTheGreat> foreach/while loops ended up being very nice and clean looking
03:50:13 <RodgerTheGreat> ah christ, I forgot colons after my define statements: http://www.nonlogic.org/dump/text/1215053310.html
03:50:16 <pikhq> The whole thing is ridiculously simple to understand.
03:50:41 <RodgerTheGreat> yeah, I'm just insanely pleased with how nicely it comes together
03:51:52 <RodgerTheGreat> what's interesting is that <> seem to become largely relegated to array manipulation
03:52:14 <pikhq> Insanely, if I write that so that it uses the C calling interface, then the C interface will be trivial.
03:53:12 <pikhq> var: string "Hello, world!\n\0"
03:53:52 <pikhq> Wait, that's already null terminated, isn't it?
03:54:11 <pikhq> Anyways, that's really fucking cool.
03:54:17 <pikhq> define: print[a][ a [.>];// display a null-terminated string
03:54:27 <pikhq> ]That seems to imply that it's null terminated already.
03:54:44 <RodgerTheGreat> there are a few things that might be inefficient without post-optimization, but it shouldn't be too much worse speed-wise than regular compiled BF
03:54:57 <pikhq> No; it seems like C gets along just fine without.
03:55:25 <RodgerTheGreat> Hm. what do you think would be more useful in general?
03:57:30 <RodgerTheGreat> seems like almost every time someone wants to iterate over array elements or characters in a string they'd want a null to easily break out of the loop anyway, so null-terminated seems good
03:57:44 <RodgerTheGreat> it's not like we're shooting for mega space-efficiency, anyway
03:57:57 <pikhq> It's much, much nicer in Brainfuck than even in C. . .
03:58:12 <pikhq> And even in C, null termination is fairly handy for a few algorithms.
03:58:40 <pikhq> Though it'd be nice if C strings were size-encoded, hell: making a really simple C calling interface is a good idea in my book.
03:59:44 <RodgerTheGreat> do you think there's a need for more than numbers->numbers quoted strings->null-terminated character sequence as far as ? is concerned?
04:01:40 <RodgerTheGreat> I think you can make custom control structures for this language ridiculously cleanly- I haven't even touched the code pointers yet.
04:03:39 <RodgerTheGreat> and it now occurs to me that there's a need for a convenient way to specify said pointers. I think it should be done as "label: name", and then the name can be used as a variable.
04:08:18 <RodgerTheGreat> here's a trivial example: http://www.nonlogic.org/dump/text/1215054391.html
04:08:39 <RodgerTheGreat> you can extend this to something like a "while a>x" loop pretty easily
04:09:43 <pikhq> I think the "label: name" part is handy.
04:10:13 <RodgerTheGreat> yeah, otherwise %/: are really crippled in high-level mode
04:10:27 <pikhq> Especially since this language seems to be, as far as hardware interfacing goes, somewhere between C and assembly.
04:11:03 <RodgerTheGreat> and it achieves a weird kind of LISP-esque elegance somehow
04:12:08 <pikhq> By just being so damned simple.
04:12:36 <RodgerTheGreat> I should also note that it makes a lot of sense to make it possible to have literals in function calls and return statements, as this is not explicitly said in the spec
04:12:40 <pikhq> My favorite part is that, if you *really* wanted to, you could have this thing write arbitrary pre-assembled code into memory. :p
04:13:01 -!- djgera has quit.
04:13:09 <RodgerTheGreat> and you might even be able to use label: to then call it trivially depending on how the semantics work
04:13:11 <pikhq> And thereby forgo all actual assembly files.
04:13:33 <pikhq> Though I, personally, wouldn't use it.
04:14:03 <pikhq> Instead, I'd just do foreign_assembly_call%.
04:14:31 <pikhq> And let the linker handle the details of figuring out where the fuck that foreign assembly call is supposed to come from.
04:14:52 <pikhq> Indeed, this is a *perfect* esoteric systems programming language.
04:14:56 -!- cherez has quit (Read error: 110 (Connection timed out)).
04:15:49 <RodgerTheGreat> perhaps having a working compiler and some basic libraries will encourage yet another attempt at creating an esoteric OS from scratch?
04:16:39 -!- cherez has joined.
04:16:39 <pikhq> I plan on making said esoteric OS.
04:16:52 <pikhq> I'll get on the compiler this weekend.
04:16:56 <pikhq> (and possibly finish)
04:17:07 <pikhq> I need to finish my Autotools kick, though. ;)
04:17:16 <RodgerTheGreat> I'll write some bits and pieces for the std libs when I have free time
04:17:40 <RodgerTheGreat> I'm thinking stdio, stdmath and stdctrl are the main ones to shoot for
04:17:55 <RodgerTheGreat> maybe stdstring and stdarray as well for more complex stuff
04:18:07 <pikhq> I do have to wonder, however. . .
04:18:14 <pikhq> How am I going to implement '.'?
04:18:46 <pikhq> But what if we go into 32-bit mode?
04:19:52 <RodgerTheGreat> Are you shooting for making this self-hosting eventually?
04:19:57 <pikhq> I'll have '.' call a single function, which shall be my support library for the language. ;)
04:20:28 <pikhq> Said single function could equally well be written in Def-BF as in assembly. . .
04:20:47 <RodgerTheGreat> yeah, with %/: and #/; it'll be a LOT easier than trying to make PEBBLE self-hosting
04:21:00 <pikhq> PEBBLE is simple not meant to self-host.
04:21:04 <RodgerTheGreat> PEBBLE is quite powerful but data structures are still a bitch
04:21:28 <RodgerTheGreat> I'm just saying that because we've discussed it passingly in the past
04:21:28 <pikhq> Whereas, in Def-BF, it's no harder than writing this in assembly.
04:21:48 <pikhq> Except that it's mildly quirky assembly, of course.
04:22:23 <RodgerTheGreat> I like to think of it as a very clean RISC that pretends registers don't exist
04:22:33 <pikhq> Sounds about right.
04:25:06 <RodgerTheGreat> oh, found another minor typo- there is no ; necessary after the "return a" in the while loop example. My curly-bracket reflexes are biting me. The program ought to compile right anyway, though.
04:28:03 <pikhq> After all, the ; won't ever be executed.
04:33:09 -!- cherez has quit (Read error: 110 (Connection timed out)).
04:34:57 -!- pikhq has quit ("leaving").
04:35:26 -!- cherez has joined.
04:44:46 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)).
04:44:51 -!- Slereah_ has joined.
05:16:11 -!- jamesstanley has quit (clarke.freenode.net irc.freenode.net).
05:16:12 -!- Deewiant has quit (clarke.freenode.net irc.freenode.net).
05:17:31 -!- jamesstanley has joined.
05:17:31 -!- Deewiant has joined.
05:17:42 -!- Deewiant has quit (Read error: 104 (Connection reset by peer)).
05:17:55 -!- Deewiant has joined.
05:21:46 -!- jamesstanley has quit (clarke.freenode.net irc.freenode.net).
05:24:51 -!- GreaseMonkey has joined.
05:28:59 -!- jamesstanley has joined.
05:30:44 -!- GreaseMonkey has changed nick to DarkPants.
06:04:41 -!- cherez has left (?).
06:07:15 <Slereah_> Zipped files inside zipped files make me a sad panda.
06:23:15 <Slereah_> I'd much rather have text files!
07:14:54 -!- DarkPants has quit (Remote closed the connection).
07:18:29 -!- GreaseMonkey has joined.
07:18:48 -!- GreaseMonkey has changed nick to DarkPants.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:05:13 <oklopol> printn[val] <<< i don't get this in the Def-BF
08:05:28 <oklopol> unless it should be printn[tmp] or something
08:16:07 <oklopol> add1[val2,tmp] // tmp = val1+val2
08:17:34 <oklopol> add1's params are copies, not the original var?
08:18:27 <oklopol> seems like it would be a bit of a space/efficiency to do that for all calls
08:20:03 <oklopol> well, i'll wait for rodgie
08:20:40 <oklopol> also i'll highlight him in case he's already awake, already slept like 3 hours: RodgerTheGreat
08:22:39 <AnMaster> <Slereah_> Adobe Reader is 190 Mo?
08:22:46 <oklopol> add2[a,b,c]// make two copies
08:22:55 <oklopol> so add is clearly destructive
08:23:04 <oklopol> RodgerTheGreat: i do believe you have two errors
08:23:12 <AnMaster> $ du -sh /usr/kde/3.5/bin/kpdf
08:23:25 <oklopol> but probably none, i'm a failer
08:25:52 <oklopol> is it related to megabytor
08:33:28 <AnMaster> oklopol, s/megabytor/moozilla/
08:34:23 <oklopol> oklopol: talkin' bout mo here
08:34:27 <AnMaster> oklopol, he wrote it in some esoteric specs when he was high (the result of the specs were also written then it seems)
08:34:55 <moozilla> http://www.fileden.com/files/2006/11/27/428255/esoteric.txt
08:35:18 <oklopol> hmm i missed the spec conversation, nnscript decided it doesn't show but about one page of logs now, and i have to use a fucking logviewer to read the rest
08:43:01 <oklopol> using ascii without the high byte?
08:45:22 <oklopol> second row designated for that? :\
08:47:24 <oklopol> ah and you don't actually output, just make the second row contain hello world
08:52:54 <oklopol> moozilla: i think your example either fails miserably quite near the beginning, or then i misunderstood the language
08:53:29 <oklopol> but if i understood it correctly, i absolutely love the way you do args
08:56:09 <oklopol> as for tcness, you could set up an initial state and run a line of 110
08:56:55 <oklopol> so my suggestion is you infinitely execute the program for the first line, then move to the next, execute the program infinitely for it, and so on
08:57:03 <oklopol> this way you could easily write ca
08:57:14 <oklopol> moozilla: goddammit you were here 10 minutes ago :P
08:57:56 <oklopol> i'll write an interp for the current one as i understood it
09:01:57 <oklopol> it seems i managed to read only half of it, and thought it ended there :D
09:02:43 <oklopol> okay if second row indeed is output, as your hello world suggested, it might work
09:02:58 <oklopol> probably works, that is, at least the beginning does
09:05:04 <oklopol> replace(/[^+-*/%|&~#$?<>^v]*/g,''); //remove comments (javascript example) <<< this line is incomplete
09:09:00 <oklopol> hmm. actually i'm not sure how the looping shit works
09:10:02 <oklopol> you say something about looping grids letting you do flow control... not sure what you mean, but in case you either get flow control *or* an infinite grid, it's not tc
09:10:23 <oklopol> but you probably know that, now appear, o sweet moozilla.
09:12:21 <oklopol> heh, didn't even realize "cool" means cold :D
09:12:28 <oklopol> i meant in the other sense
09:13:52 <oklopol> i love python's "unstable" and/or driven flow control
09:14:02 <oklopol> should esolangify some of that
09:41:43 -!- DarkPants has quit (Remote closed the connection).
09:42:32 <oklopol> perhaps i should make a small befunge interpreter in C
09:42:49 <oklopol> need more languages on my page
09:43:22 <oklopol> http://www.vjn.fi/oklopol/python.txt updated this, it used to be a fucking cartesian product i made in about 30 seconds :P
09:45:59 * AnMaster ponders writing a very slow interpreter
09:46:07 <AnMaster> for some simple C-like language
09:47:01 <oklopol> it's just you first start making the string on the second line
09:47:08 <oklopol> but @ l, you stack two in the same spot
09:47:28 <oklopol> moozilla: how does flow control work?
09:47:36 <oklopol> what order do you run the code in
09:47:51 <AnMaster> oklopol, check his interpreter
09:48:10 <AnMaster> however I got other stuff to do toda
09:48:32 <oklopol> moozilla: i mean, how do you jump?
09:48:36 <AnMaster> <oklopol> http://www.vjn.fi/oklopol/python.txt updated this, it used to be a fucking cartesian product i made in about 30 seconds :P <-- not readable!
09:48:42 <oklopol> AnMaster: why would i read it when i can just ask?
09:48:56 <oklopol> AnMaster: it's a one-expression bf interp
09:48:56 <AnMaster> oklopol, oh you follow the lazy programmer paradigm?
09:49:11 <AnMaster> oklopol, "ask instead of read"
09:50:27 <oklopol> also, i have no idea where the interp is
09:50:53 <oklopol> AnMaster: i can't read code
09:51:47 <oklopol> if there's a function the meaning of which i don't know, i will just try to read it over and over
09:52:02 <oklopol> often takes 5 minutes to realize i don't know what it is
09:52:14 <oklopol> it's not like that, i don't actually realize i don't know the function.
09:52:48 <oklopol> anyway, i have a lot of problems like that, when reading
09:53:34 <oklopol> i could probably read a small interp, tho
09:54:13 <oklopol> also i read code like a machine, the names of variables tell me absolutely nothing
09:55:05 -!- GreaseMonkey has joined.
10:18:49 -!- RedDak has joined.
10:39:38 -!- GreaseMonkey_ has joined.
10:48:32 -!- GreaseMonkey_ has quit ("Remote closed the previous member app").
10:54:10 -!- GreaseMonkey has quit (Read error: 110 (Connection timed out)).
12:04:21 -!- RedDak has quit (Remote closed the connection).
12:26:16 -!- jix has joined.
12:38:01 -!- RedDak has joined.
12:42:09 -!- RedDak has quit (Read error: 104 (Connection reset by peer)).
13:03:10 -!- olsner has joined.
13:09:31 -!- puzzlet has quit (Read error: 54 (Connection reset by peer)).
13:38:40 <jamesstanley> The wiki page about Brainloller says 'Infinite loops due to the IP rotators can never happen because they're reversible and the IP starts at the top left.' Surely if execution encounters a square of 4 Rotate-Right instructions, there will be an infinite loop...?
13:43:44 <jamesstanley> It is impossible to enter such a construction.
13:43:58 <jamesstanley> The rotations would prevent execution from getting to the right place to start the loop.
13:48:09 <jamesstanley> I can see that I'm going to waste a lot of time trying to come up with a shape that will cause an infinite loop because of IP rotators.
13:48:13 -!- Corun has joined.
14:14:48 -!- pikhq has joined.
14:16:03 -!- Corun has quit ("This computer has gone to sleep").
14:34:32 -!- ais523 has joined.
14:37:25 -!- Corun has joined.
14:39:14 <Slereah_> "Silly deontologist, cocoa crispies are for consequentialists!"
14:39:20 <Slereah_> "I hold you morally responsible!"
14:57:13 -!- RedDak has joined.
15:00:42 <cctoide> "This means, if Azeroth really is a spherical planetoid with a diameter of 12 kms, that the planet must have an average density of roughly 5850 grammes per cubic centimetre. That makes its average density more than 500 times greater than lead. The extreme density of Azeroth would explain why it is impossible to pick up many objects from the ground, including ones that you have just dropped."
15:03:16 -!- olsner has quit.
15:15:06 -!- Slereah_ has quit ("kthxbai").
15:15:23 -!- RedDak has quit (Read error: 104 (Connection reset by peer)).
15:16:36 -!- Slereah_ has joined.
15:17:55 -!- zolletta has joined.
15:18:37 -!- zolletta has left (?).
15:30:24 <ais523> cctoide: how did you determine its mass?
15:31:53 <cctoide> it's from here: http://www.spaaace.com/cope/?p=111
15:45:30 -!- olsner has joined.
15:48:19 -!- Corun has quit ("This computer has gone to sleep").
15:49:16 -!- Corun has joined.
15:49:30 -!- jix has quit (Nick collision from services.).
15:49:38 -!- jix has joined.
15:55:14 <ais523> I got COME FROM INTERCAL to Befunge working
15:55:26 <ais523> and I've written much of the rest of the code but not tested it
15:55:34 <AnMaster> ais523, oh in other news: envbot 0.1-beta1 was released today
15:55:35 <ais523> all I need to do now is handle line labels in the Befunge
15:56:20 <AnMaster> ais523, oh befunge has goto using a fingerprint
15:58:13 <AnMaster> ais523, will it be possible to come from befunge to befunge?
15:58:27 <ais523> it's possible to do all the combinations
15:58:32 <ais523> even COME FROM C to Befunge if you like
15:58:36 <AnMaster> you mean that some place in funge space will act as a teleporter to another place?
15:58:48 <ais523> well, you can put in a line label like M5L
15:58:52 <ais523> and a COME FROM like M5C
15:59:00 <ais523> then if the M5L is evaluated, it teleports to the M5C
15:59:13 <AnMaster> ais523, what is there are 2 places in funge space with same line label?
15:59:15 <ais523> or errors if another COME FROM aims there
15:59:31 <ais523> AnMaster: then it's unspecified which one is NEXTed to, and either can be COME FROM
15:59:40 <ais523> the same behaviour as if you have two of the same line label in C
15:59:46 <ais523> (duplicate labels are illegal in INTERCAL)
15:59:56 <AnMaster> well that would cause an error if they are in same function right?
16:00:27 <ais523> oh, yes if you were using C labels
16:00:33 <ais523> I mean if you wrote ick_linelabel(5); for instance
16:00:37 <ais523> you can do that twice in the same function
16:00:43 <AnMaster> ais523, well what will c-intercal do on that
16:00:59 <ais523> COME FROMs target both of them, NEXTs switch to an unspecified one
16:01:10 <AnMaster> and what one will happen in practise?
16:01:11 <ais523> (that is, the compiler can choose either for any or no reason, but must choose exactly one)
16:01:13 -!- Corun has quit ("This computer has gone to sleep").
16:01:18 <ais523> AnMaster: I think it switches to the first one
16:01:29 <ais523> with a reasonably sensible definition of 'first'
16:01:47 -!- Corun has joined.
16:02:00 <AnMaster> ais523, one intersting thing with your FFIs are that they are not really FFIs. They do far more
16:02:05 <AnMaster> a FFI would just do function calls
16:02:19 <ais523> they merge all the control structures of INTERCAL into the target language
16:02:29 <ais523> except ABSTAIN/REINSTATE, but that would be even more feral than COME FROM
16:02:31 <AnMaster> ais523, idea: inline C in intercal and vice versa
16:02:49 <ais523> AnMaster: ugh, both would be pretty difficult
16:03:08 <ais523> actually, inline C in INTERCAL would be pretty easy with C-INTERCAL
16:03:12 <ais523> I could just copy it verbatim to the output
16:03:22 <ais523> what that actually did, though, would require a good knowlegde of the compiler's internals
16:03:56 <AnMaster> well the good thing is if you had that working and you used gcc you could then do inline asm inside that!
16:04:28 <olsner> or inline c in inline intercal in inline c in inline intercal in inline c in intercal etc?
16:04:44 <ais523> olsner: don't start on that, it would require writing a recursive compiler
16:05:40 <AnMaster> ais523, does svg support background color?
16:05:50 <olsner> extra evil points for requiring escapes for the inline code
16:06:01 <ais523> olsner: INTERCAL has no escape characters
16:06:03 <ais523> because it has no strings
16:06:07 -!- Corun has quit (Client Quit).
16:06:16 <ais523> also, no particularly easy way to represent strings either
16:06:24 <olsner> ais523: I'm not specifically talking about strings..
16:06:25 <ais523> string handling's a pain in INTERCAL
16:06:29 <AnMaster> ais523, yet it can be done as it is turing complete I guess
16:06:34 <ais523> AnMaster: yes, of course
16:06:57 <AnMaster> ais523, what about generating intercal code from some readable language?
16:06:58 <olsner> just code in general - like have the end-of-inline-c character/syntax conflict with normal C syntax
16:07:11 <ais523> AnMaster: I've been thinking about that
16:07:22 <AnMaster> ais523, object orientated intercal maybe?
16:07:28 <ais523> I think a C to INTERCAL compiler would be easier than compiling C into most other langs
16:07:34 <ais523> and CLC-INTERCAL is optionally object-oriented
16:07:44 <olsner> btw, do we still not have any programming language with time travel? if so, I'm building it
16:08:02 <ais523> olsner: TwoDucks (uncomputable), Feather (not properly specced and unimplemented)
16:08:05 <AnMaster> olsner, well yes, TRDS in befunge
16:08:52 <AnMaster> ccbi is a pain to compile, so just get binary downloads
16:09:00 <ais523> AnMaster: I compiled it
16:09:30 <olsner> AnMaster: TRDS? google comes up almost empty-handed
16:09:38 <ais523> olsner: see the CCBI docs
16:12:21 <ais523> Deewiant: [[FBBI’s help text describes a flag -fast with the words “more speed, at the cost of locking up in infinite loops”. Interestingly, all it does is that it prevents the output of the string " \b" whenever the IP moves. I wonder: how exactly does outputting a character and then backspacing over it prevent infinite loops?]]
16:12:45 <ais523> it's because in DOS, Control-C doesn't work until the next I/O operation by the running program
16:12:59 <ais523> so it makes it possible to break an infinite loop with Control-C if you do useless IO
16:13:47 <olsner> hmm, I found ccbi, but not the docs
16:14:37 <ais523> I can't find its docs either
16:14:41 <ais523> I found the source for TRDS, though
16:15:56 <ais523> inside the CCBI source package
16:16:12 <ais523> there's a lengthy comment explaining how Deewiant managed to get bits of it working
16:17:55 <Deewiant> there are two, actually, IIRC :-)
16:18:10 <ais523> Deewiant: do you know where the TRDS specs are?
16:18:24 <olsner> ah, fingerprints/rcfunge98/trds.d seems to contain the meat of the time-travel extension
16:18:36 <ais523> olsner: yes, that's what I found
16:18:47 <Deewiant> ais523: in the readme of RC/funce-98
16:18:53 -!- tusho has joined.
16:18:59 <AnMaster> <ais523> it's because in DOS, Control-C doesn't work until the next I/O operation by the running program
16:18:59 <AnMaster> <ais523> so it makes it possible to break an infinite loop with Control-C if you do useless IO
16:19:32 <tusho> i hit enter first, probably
16:19:39 <tusho> as i said, networking is irrelevant
16:19:41 <ais523> AnMaster: another weird DOS problem is with NTVDM (Windows emulation of DOS)
16:19:46 <tusho> or in this case, my irc client being a retard
16:19:55 <ais523> where it slows down to a crawl after a while if you don't give a program any input
16:20:01 <tusho> ais523: that's odd
16:20:06 <ais523> you can see individual characters being printed on the screen one at a time
16:20:14 <AnMaster> 08:18:53 --- join: tusho (n=tusho@91.105.109.15) joined #esoteric
16:20:18 <Deewiant> ais523: http://web.archive.org/web/20020816190021/http://homer.span.ch/~spaw1088/funge.html for instance
16:20:19 <AnMaster> 08:18:59 <AnMaster> <ais523> it's because in DOS, Control-C doesn't work until the next I/O operation by the running program
16:20:19 <AnMaster> 08:18:59 <AnMaster> <ais523> so it makes it possible to break an infinite loop with Control-C if you do useless IO
16:20:19 <AnMaster> 08:19:14 <AnMaster> very interesting
16:20:20 <ais523> pressing control, though, or any other modifier key, puts it back to full speed again
16:20:23 <AnMaster> http://tunes.org/~nef/logs/esoteric/08.07.03
16:20:29 <tusho> AnMaster: do you have to do that every day? I think I've made the game pretty clear
16:20:34 <ais523> [16:18] <ais523> hi tusho [16:19] <tusho> hi ais523
16:20:38 <tusho> _network_ _and_ _client_ _lag_ _are_ _irrelevant_
16:20:40 <tusho> it's about reflexes
16:20:44 <ais523> tusho: well, I'm playing to different rules than you
16:20:47 <Deewiant> ais523: the other long TRDS comment is in the main function or thereabouts
16:21:00 <AnMaster> Deewiant, there is one in ip too
16:21:01 <tusho> ais523: in that case, I'll DDoS freenode before connecting
16:21:25 <Deewiant> TRDS is pervasive, you'll find bits of it everywhere :-P
16:21:27 <ais523> tusho: well, do your logs say when you sent the message?
16:21:27 <tusho> hah, AnMaster is doing TRDS
16:22:23 <tusho> ais523: one sec, finding the logs
16:22:32 <AnMaster> ais523, why is that slow down?
16:22:43 <ais523> probably the Windows scheduler being stupid
16:22:59 <AnMaster> ais523, does it only affect ntvdm?
16:23:06 <ais523> AnMaster: as far as I know
16:23:12 <tusho> uh, what's the date today ais523
16:23:22 <Deewiant> 2008-07-03 18:23:12 ( tusho) uh, what's the date today ais523
16:23:28 <ais523> tusho: thurs July 3 108
16:23:40 <ais523> that's in Unix years, of course
16:23:52 <Deewiant> unix years? wouldn't that be 38
16:24:00 <ais523> Deewiant: well, C measures from 1900
16:24:08 <ais523> and so does POSIX, I think
16:24:14 <ais523> even though 1970 is the epoch when counting in seconds
16:24:25 <tusho> my client isn't logging right now
16:24:28 <tusho> it's logging to the july 2 file
16:25:07 <ais523> AnMaster: tusho is, I suspect, in GMT+1 right now
16:25:12 <tusho> as is ais523 , yes
16:25:44 <AnMaster> ais523, how does UTC and GMT differ?
16:25:54 <ais523> AnMaster: the handling of leap seconds, I think
16:25:57 <ais523> otherwise they're identical
16:26:00 <tusho> but for all practical purposes
16:26:33 <tusho> ais523: <envelope><sender self="yes" hostmask="tusho@91.105.109.15">tusho</sender><message id="UREPLEDBTT1" received="2008-07-03 16:20:02 +0100">hi <span class="member">ais523</span></message></envelope>
16:26:42 <tusho> when did you send yours?
16:27:07 <ais523> tusho: that can't be right, your message arrived for me a little after 16:19
16:27:18 <tusho> ais523: yes, our clocks are different
16:27:20 <ais523> and I sent mine in the last few seconds of 16:18
16:27:22 <tusho> AnMaster: my clock is automatically sync'd
16:27:27 <tusho> it's ais523's that's wrong
16:28:06 <tusho> ais523: your clock is wrong, I believe
16:28:20 <ais523> tusho: I just checked, it's NTP'd
16:28:31 <tusho> ais523: so is mine, to time.euro.apple.com
16:28:47 <tusho> I am going to write the time as I see it when I start typing the next line:
16:28:56 <AnMaster> I use pool.ntp.org which is geodns iirc so it points to Swedish time servers
16:29:00 <olsner> darn it, TRDS has almost entirely satisfied my thirt for implementing time travel
16:29:16 <tusho> ais523: > Also, the HTML version of the Notary's report omits the AAA.
16:29:16 <tusho> Really? I'll have to look into how that happened.
16:29:17 <ais523> mine's synced to JANET
16:29:18 <tusho> i think your input has a bug
16:29:30 <AnMaster> ais523, what about pool.ntp.org?
16:29:33 <olsner> enough to make me not want to spend the time, but not enough to not bother me anymore
16:29:55 <AnMaster> olsner, what time? you won't spend it, you will gain it!
16:30:30 <AnMaster> ais523, what is janet's ntp server?
16:30:32 <ais523> AnMaster: I've added that one too
16:30:42 <ais523> just because you suggested it
16:30:53 <AnMaster> tell me the hostname for JANET?
16:31:09 <AnMaster> 3 Jul 17:31:05 ntpdate[13404]: can't find host ja.net
16:31:38 <AnMaster> 3 Jul 17:31:32 ntpdate[13412]: adjust time server 193.62.22.98 offset 0.002959 sec
16:32:11 <tusho> AnMaster: I don't think janet want you using their servers...
16:32:24 <AnMaster> tusho, I just checked their time server to see if it was off or not
16:32:32 <ais523> 3 Jul 16:32:17 ntpdate[12689]: adjust time server 130.226.232.145 offset 0.013661 sec
16:32:35 <tusho> well, apple's is highly likely to be correct :-)
16:32:41 <tusho> them being a big corp and it being default-sync'd for all macs
16:32:48 <AnMaster> 3 Jul 17:29:05 ntpdate[13376]: adjust time server 17.72.255.11 offset 0.002143 sec
16:33:07 <AnMaster> and my clock is synced to pool.ntp.org
16:33:21 <tusho> anyway, I'm fairly certain as for hitting-enter-time I won as I did it immediately after it joined
16:33:27 <tusho> vs typing hi t<tab>
16:33:36 <tusho> ais523 won and always will
16:34:27 <tusho> AnMaster: i don't care that much
16:34:38 <tusho> I guess you always start hacking on code that doesn't behave exactly as you want, too?
16:34:56 <ais523> tusho: maybe not always, but I did in the case of Nibbles
16:35:02 <ais523> and sent off the patches to Gnome
16:35:03 <AnMaster> I have fixed some issues in my irc client
16:35:07 <ais523> so this sort of thing is not unknown
16:35:12 <tusho> ais523: of course, but 'So fix it!' does not really work for software.
16:35:24 <AnMaster> and same I sent patches upstream to gentoo
16:35:41 <AnMaster> for valgrind errors in the q tool suite
16:35:59 <tusho> AnMaster: so YOU removed that MD_update call as an attempt to sabotage debian!
16:36:09 <AnMaster> tusho, I fixed it the right way
16:36:59 <AnMaster> which was to check return value of readlink()
16:37:09 <AnMaster> as it doesn't null-terminate the string
16:37:30 <ais523> AnMaster: s/string/array of characters/
16:37:41 <ais523> in C, it isn't a string if it isn't null-terminated
16:38:14 <AnMaster> ais523, well you could implement your own string
16:38:41 <AnMaster> that would be C99, but similar can be done otherwise too
16:38:45 <ais523> AnMaster: yes, but it wouldn't be a C string
16:39:05 <ais523> and yes, that works in practice but not in theory in C89 as long as you put something inside the square brackets
16:39:25 <AnMaster> ais523, you could put it as a pointer
16:39:34 <AnMaster> more or less same functionality
16:40:40 <AnMaster> or could probably be done with some macros
16:41:53 <AnMaster> (char*)(mysafestrpointer + sizeof(size_t))
16:42:16 <AnMaster> malloc would be painful though
16:47:13 <AnMaster> ais523, can you paste current ffungi stuff somewhere?
16:47:19 <AnMaster> I'm eager to see your fingerprint
16:47:24 <ais523> AnMaster: doing something else right now, but I will soon
16:53:49 <AnMaster> ais523, do you understand http://en.wikipedia.org/wiki/Image:INTERCAL_Circuitous_Diagram.svg
16:54:12 <tusho> it re-calculates the B/7 at each step, though
16:54:23 <ais523> note that the bit at the end is defined so vaguely it could mean anything
16:54:26 <ais523> also, there's an error in it
16:54:27 <tusho> and it could get a Mornington Crescent in 3
16:54:33 <ais523> one of the boxes has the wrong number of inputs
16:54:40 <AnMaster> tusho, hey that is another game
16:55:15 <ais523> AnMaster: I can't remember
16:55:19 <ais523> it wasn't me who found the error
16:55:27 <ais523> although it sparked a bit of discussion on Usenet a while back IIRC
16:55:37 <AnMaster> ais523, anyway what does it mean exactly?
16:55:50 <ais523> AnMaster: the select operator
16:55:54 <ais523> however, I think it's a joke
16:56:03 <AnMaster> ais523, can you tell me what the select operator does then
16:56:03 <ais523> because a circuit diagram for select wouldn't look like that
16:56:18 <tusho> ais523: also, it's captioned Bus Line 8 and has place names along the side...
16:56:33 <ais523> AnMaster: http://rafb.net/p/2BWylE78.html <--- IFFI so far
16:56:53 <ais523> AnMaster: OK, select's a binary operator (i.e. it has two operands)
16:57:03 <ais523> and it's bitwise, in that it operates on the binary representations of its operands
16:57:41 <ais523> suppose you write both operands in binary; then the least significant bit of the output is the bit of the left operand corresponding to the least significant set bit of the right operand
16:57:49 <ais523> same for the second-least, third-least, and so on
16:57:55 <ais523> that's a bit confusing, so an example will probably help
16:58:40 <ais523> basically, for 00101 ~ 00011
16:58:56 <ais523> yes, imagine a right-justified bitwise and
16:59:10 <ais523> so 00101 ~ 00110 is 00010
16:59:22 <AnMaster> oh btw: char * ick_iffi_befungeString <-- one issue. try to compile that with -Wwrite-strings
16:59:40 <AnMaster> because literal strings in C are really const char *
16:59:48 <ais523> it shouldn't be a problem because I only ever use it as const char *
16:59:53 <AnMaster> however char * is supported for compatiblity
17:00:01 <AnMaster> ais523, well it makes me feel ill :P
17:00:03 <ais523> AnMaster: yes, and I declare strings as char * for compatibility
17:00:45 <tusho> AnMaster: could you try and explain your philosophy to me? C is the most ugly, hackish, awkward, low-level language that twiddles bits ever, and yet you try and encapsulate it and have 'clean', well-guarded code
17:00:47 <AnMaster> ais523, there is no need to declare it like that for compatibility really (unless your function prototypes are wrong) however compilers need to support it for compatiblity
17:01:06 <ais523> AnMaster: lots of library functions take char * arguments
17:01:12 <tusho> AnMaster: no, i'm pretty sure C being a low-level, hacky bit-twiddling language is fact
17:01:14 <ais523> and so give warnings if you try to pass const char * to them
17:01:24 <ais523> even though they don't modify their argument
17:01:34 <ais523> AnMaster: in POSIX/C99 they fixed it, I think
17:01:37 <ais523> I'm not sure about C89, though
17:01:50 <ais523> it's definitely fixed for C++
17:01:54 <ais523> but C has a lot of inertia
17:02:18 <AnMaster> static void ick_InterpreterRun()
17:02:23 <AnMaster> static void ick_InterpreterRun(void)
17:02:42 <ais523> not that it makes any difference in this case
17:03:04 <Deewiant> does it actually matter for anything in practice
17:03:15 <AnMaster> Deewiant, if a header contains:
17:03:30 <AnMaster> then a compiler will accept passing anything to it
17:03:35 <Deewiant> I sometimes write K&R: it's much nicer to write void foo(x, y, z, w) const double x, y, z, w; than writing const double 4 times
17:03:36 <AnMaster> without giving a warning or error
17:03:38 <ais523> Deewiant: if you put void in the parens, a compiler will error if you try to pass the function arguments, if you leave it out, the compiler has to accept it but produces UB instead
17:03:52 <Deewiant> my question was does it matter in practice
17:03:59 <ais523> there's one point in C-INTERCAL where I deliberately leave the parens empty
17:04:01 <AnMaster> Deewiant, as for double, well you got the horrible "expanding" type issue then
17:04:03 <Deewiant> it protects from an error of accidentally passing an argument
17:04:07 <AnMaster> you can't pass a float that way
17:04:08 <ais523> after having been told to do so by comp.lang.c
17:04:17 <Deewiant> but does it actually generate different code or anything like that
17:04:18 <ais523> originally I had stuff there
17:04:24 <ais523> but it required ugly casts
17:04:33 <AnMaster> hm well I know one such case too
17:04:39 <ais523> (Situation: I needed to write a function which was capable of taking a pointer to itself as an argument)
17:04:49 <Deewiant> AnMaster: huh? the point was that K&R is sometimes more succint
17:04:52 <AnMaster> the best would be to use a union of different function pointers
17:05:07 <AnMaster> Deewiant, maybe, but I prefer ANSI C
17:05:20 <AnMaster> <ais523> (Situation: I needed to write a function which was capable of taking a pointer to itself as an argument) <-- ok, and?
17:05:21 <ais523> AnMaster: K&R is legal in ANSI C
17:05:21 <tusho> Ruby has an awful lot of K&R C code
17:05:29 <tusho> there are a few files entirely or almost entirely using K&R C
17:05:29 <ais523> AnMaster: try to figure out what type the function is
17:05:41 <Deewiant> ais523: GCC at least accepts it in C99 mode as well
17:05:51 <Deewiant> haven't checked the standard to see if that's correct but I suspect it is
17:05:51 <AnMaster> Deewiant, it is legal in C99 too yes
17:06:11 <AnMaster> however I find I prefer compiler to be able to check arguments
17:06:52 <ais523> anyway, the simple way to do that is to have an unprototyped function pointer, making the function void(*)(void(*)())
17:07:04 <AnMaster> more verified at compile time = less bugs at runtime
17:07:14 <ais523> you can call prototyped functions through them, apparently, as long as you aren't using types that autopromote
17:08:07 <ais523> AnMaster: I only had one sort of function pointer
17:08:12 <AnMaster> some ; and a lot more like names missing there
17:08:24 <ais523> but it's impossible to write
17:08:24 <ais523> void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void
17:08:24 <ais523> (*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(
17:08:27 <ais523> void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(void(*)(
17:08:36 <tusho> ais523: awesome prototype
17:08:38 <ais523> so the infinite regress has to stop somewhere
17:08:51 <AnMaster> ais523, yes then it makes sense to have it empty
17:08:55 <tusho> taking the func ptr as (void *) ... wait, no, that's not valid
17:09:13 <tusho> (can't cast data ptr to func ptr)
17:09:27 <AnMaster> tusho, well you have to, see dlsym
17:09:30 <ais523> tusho: you can use void(*)() as a func ptr equivalent of void*
17:09:40 <ais523> because function pointers can be freely casted back and forth
17:09:43 <tusho> AnMaster: dlsym requires you to break the standard
17:10:08 <ais523> besides, I've personally worked on systems where functions and data were in different memory
17:10:17 <ais523> and function pointers and data pointers were different lengths
17:10:26 <ais523> thus making intercasting kind-of difficult
17:10:28 <AnMaster> ais523, they couldn't use shared libraries then?
17:10:42 <ais523> AnMaster: well, seeing as they only had a few KB of RAM, the situation never came up
17:13:11 <AnMaster> ais523, why is ick_iffi_resuming an int?
17:13:31 <ais523> I'm writing C89 there, more or less
17:13:31 <AnMaster> you are C99 anyway as you use uint32_t
17:13:35 <ais523> so there isn't a bool type
17:13:39 <ais523> and I know I use uint32_t
17:13:54 <ais523> but that's actually typedeffed in ick_ec.h if it doesn't exist already
17:14:11 <ais523> so it works for me even in C89
17:14:33 <ais523> besides, it's possible that some day I may want the rest of C-INTERCAL to look at those flags for some reason
17:14:43 <AnMaster> %url:http://example.com <-- well I hope you fix that at some point, in the funge-108 specs, some form of URIs will be used to load fingerprints
17:14:53 <ais523> AnMaster: I will fix that eventually
17:15:00 <ais523> but I don't have an URL for it yet
17:15:14 <AnMaster> anyway it is likely to change to java style
17:15:26 <AnMaster> because some issues I found with current
17:15:39 <AnMaster> ais523, I have to see how to solve it
17:15:46 <AnMaster> tusho, two fingerprints on one page
17:15:53 <AnMaster> that is why a straight url won't work
17:15:55 <tusho> AnMaster: that's not what a URI is
17:16:02 <tusho> a URI doesn't have to resolve
17:16:08 <tusho> a URI is just a universal locator
17:16:16 <tusho> http://mypage.com/befunge#myext1
17:16:17 <tusho> http://mypage.com/befunge#myext2
17:16:26 <tusho> so, keep them as just regular URIs
17:16:42 <AnMaster> tusho, there were no anchors on that page
17:16:56 <ais523> tusho: can you make a place on eso-std.org to act as somewhere to store databases required by esolangs
17:16:57 <AnMaster> also it is gone, should I do way back machine link or what?!
17:17:02 <ais523> such as for Funge-108 and for PSOX?
17:17:09 <tusho> ais523: funge-108 will be distributed...
17:17:11 <tusho> they'll just be uris...
17:17:25 <ais523> but somewhere where people can create pages to describe fingerprints
17:17:31 <tusho> ais523: uris don't have to _exist_
17:17:39 <AnMaster> ais523, well I assume they will use their own websites
17:17:42 <ais523> tusho: no, but it would be helpful if they did
17:17:46 <ais523> not everyone has their own website
17:17:51 <tusho> http://funge.eso-std.org/author/ext
17:18:04 <tusho> http://funge.eso-std.org/tusho/replace_cfunge_with_sane_interp
17:18:17 <AnMaster> anyway it could be: org.eso-std.funge.whatever
17:18:29 <ais523> tusho: anyway, I think it fits ESO's mission to attempt to document all the fingerprints even if they're documented elsewhere
17:18:31 <tusho> that's horrible and pointless
17:18:33 <tusho> and not a real URI :)
17:18:42 <tusho> so you can't use ftp:// or gopher://
17:18:52 -!- olsner has quit.
17:18:54 <AnMaster> gopher://inspircd.dyndns.org :D
17:18:57 <tusho> gopher:// would be fucking evil, though
17:19:13 <AnMaster> tusho, does eso-std have gopher?
17:19:31 <tusho> we only have 256mb of ram
17:19:32 <tusho> and apache is a hog
17:19:47 <tusho> i've told you why we don't use lighttpd, AnMaster
17:19:59 <AnMaster> ais523, why extern int in the source file
17:20:06 <AnMaster> ais523, it should be in a header file IMO, but ok
17:20:20 <ais523> AnMaster: which occurence of extern int?
17:20:26 <AnMaster> thought you used nested extern
17:21:55 <AnMaster> ais523, for FingerIFFIload() the first load stuff seems odd?
17:22:11 <AnMaster> oh wait I see what you do I think
17:22:12 <ais523> AnMaster: basically loading IFFI for the first time signifies the end of the initialisation
17:22:22 <ais523> reloading it in future has no effect because you aren't in initialisation
17:27:35 <tusho> ais523: "CFJ 2028 assigned to <s>root</s> ais523"
17:27:39 <tusho> er, move to ##nomic
17:28:10 <AnMaster> ais523, well IFFI looks quite nice
17:28:22 <ais523> yes, the fingerprint itself is sane
17:28:24 <tusho> AnMaster: it's not iffy enough then
17:28:28 <ais523> glue.c99 is the silly part
17:28:33 <AnMaster> ais523, well I don't fully agree with the brace style but heh
17:28:39 <ais523> after all, I'm even using magic internal identifiers in it
17:28:46 <AnMaster> I do separate for functions and same line for other stuff
17:28:56 <ais523> AnMaster: oh, I didn't realise, I'll try to fix taht
17:29:03 <ais523> also IFFI.h has the wrong copyright information, but I'll fix that too
17:29:11 <ais523> I forgot to credit me, and the GPL says I have to
17:31:18 <AnMaster> ais523, you should document each extern in the fingerprint header with doxygen to follow the style of cfunge ;P
17:31:36 <ais523> AnMaster: maybe, but half of them don't make sense outside the concept of IFFI
17:31:48 <AnMaster> well true, but I don't understand half of them either
17:31:49 <ais523> as they're all flags to communicate with the main loop
17:32:24 <AnMaster> ais523, what the heck is ick_iffi_sucking?
17:32:37 <ais523> AnMaster: checking for suckpoints
17:32:51 <ais523> AnMaster: COME FROMs and NEXT FROMs
17:33:01 <ais523> referred to as suckpoints because they can suck in control from elsewhere in the code
17:33:36 <AnMaster> ais523, also why mixed spaces and tabs in the main file?
17:33:55 <AnMaster> the mix doesn't seem sane to me, sure I accept you use your own coding style
17:34:04 <ais523> AnMaster: it's the usual way to indent that most people use, 2 spaces = 1 indent, 1 tab = 4 indents
17:34:14 <ais523> basically lots of spaces at the start of a line are turned into tabs by most editors
17:34:28 <AnMaster> well... mixed is the worst variant IMO
17:34:47 <AnMaster> -*- mode: C; coding: utf-8; tab-width: 2; indent-tabs-mode: t; c-basic-offset: 2 -*-
17:34:54 <AnMaster> ais523, that should work for your style?
17:35:17 <ais523> AnMaster: not really, because I always have tab-width set to 8 so I can read everyone else's files
17:35:26 <tusho> ais523: mixed spaces and tabs make me want to kill people
17:35:29 <ais523> as it upsets you, I might set it to spaces only
17:35:30 <tusho> stupid fucking emacs defaults
17:35:41 <tusho> ais523: SELL TICKET
17:35:45 <AnMaster> ais523, well I'm happy with spaces only
17:35:48 <tusho> Action: switch to tabs only
17:35:53 <tusho> (i think that's a sell ticket)
17:36:01 <ais523> tusho: yes, it would be, but wrong channel
17:36:07 <tusho> ais523: no, note the action
17:36:18 <ais523> tusho: it could be either
17:36:21 <ais523> depending on who filed the ticket
17:36:27 <tusho> ais523: I will pay you 5VP to switch to tabs only
17:36:36 <ais523> then it's a Buy ticket with me as target
17:36:47 <AnMaster> ais523, where is the middot? can't find it
17:37:06 <ais523> but there isn't one in the code at the moment
17:37:10 <AnMaster> ais523, I mean in your ick_iffi_befungeString
17:37:19 <ais523> because that would be handled by a bit of ick I haven't written yet
17:37:33 <ais523> what you see there is after that bit's been done
17:37:41 <ais523> although I got it wrong and will need to fix that
17:38:02 <AnMaster> ais523, any cfunge questions btw?
17:38:32 <ais523> AnMaster: for a while I was thinking that an easy way to duplicate IPs would have been helpful, but after a while I realised it wouldn't be and in fact if it was there I wouldn't be using it
17:38:33 <AnMaster> ais523, oh also you can remove the line "// TODO: Add code to template functions" from your fingerprint as you have done it
17:39:02 <AnMaster> ais523, there is an easy way if you compile with concurrency, so you could resuse that code I guess
17:39:10 <ais523> AnMaster: yes, I noticed
17:39:13 <ais523> but I don't need that any more
17:41:02 <AnMaster> your fingerprint isn't safe? interesting, well I guess that is correct as you can't sandbox intercal?
17:41:21 <ais523> AnMaster: INTERCAL's safe atm, but it's possible to link to C via that FFI too
17:41:24 <ais523> and that can't be sandboxed
17:41:35 <AnMaster> ais523, well it can technically
17:41:58 <ais523> besides CLC-INTERCAL has file I/O so I may end up implementing that at some point
17:42:07 <AnMaster> ais523, LD_PRELOAD trick maybe
17:42:08 <ais523> 0-bit variables and all
17:42:25 <ais523> AnMaster: even then, the C could have inline asm and make syscalls directly
17:42:35 <ais523> AnMaster: they have no value, but can have metadata
17:42:42 <ais523> variables tend to gather a lot of metadata in CLC-INTERCAL
17:42:56 <ais523> sort of like a 0-length file can have a filename
17:42:59 <ais523> which holds information
17:43:34 <AnMaster> oh and attributes if the file system supports it
17:43:47 -!- cherez1 has joined.
17:44:30 -!- Sgeo has joined.
17:48:49 -!- cherez1 has left (?).
17:50:46 -!- timotiis has joined.
17:54:07 -!- cherez1 has joined.
17:57:23 <AnMaster> "SVG does not support specifying an image background color"
17:57:55 <ais523> presumably you just have to draw a large filled rectangle, then, and put everything on top of it
18:00:55 -!- cherez1 has changed nick to cherez.
18:12:36 -!- Dewi has quit ("leaving").
18:12:52 -!- Dewi has joined.
18:19:57 <pikhq> RodgerTheGreat: "functions leave a 'return value' by storing a pointer to their result in the memory location the main pointer was at when the function was called."
18:20:07 <pikhq> How would that work with the C calling interface?
18:20:41 <pikhq> (either the return value or the pointer to the return value is in eax, IIRC)
18:21:18 <RodgerTheGreat> so far all the examples we've worked with do great with just pass-by-reference for everything
18:21:33 <RodgerTheGreat> hm. although I imagine it would impair using some existing C libs
18:22:22 <pikhq> Just make the Brainfuck calling interface store the return value in eax, and then the calling function does 'mov eax, pointer'.
18:23:37 <RodgerTheGreat> do we want a sort of dual nature to functions, so they can return a pointer or a value?
18:24:08 <RodgerTheGreat> the method you described ought to work for either, the coder just has to remember which is which
18:24:32 <RodgerTheGreat> and it might call for having two different kinds of return statements
18:24:56 <pikhq> Doesn't make sense to have two different kinds of return statements.
18:25:08 <pikhq> The coder just needs to know if the value in question is a pointer or a value.
18:25:20 <AnMaster> RodgerTheGreat, that totally breaks amd64 calling convention
18:25:29 <tusho> AnMaster: it's his own cpu
18:25:35 <pikhq> AnMaster: we're discussing an x86-specific calling convention.
18:25:37 <ais523> but the PPC doesn't have an eax I don't think
18:25:56 <AnMaster> but the result will be portable I assume?
18:26:00 <pikhq> In fact, trying to make Def-BF's calling convention compatible with the standard C calling convention.
18:26:10 <pikhq> We're compiling to assembly, for crisssake.
18:26:24 <pikhq> http://www.nonlogic.org/dump/text/1215028173.html
18:26:35 <pikhq> What about that reads 'portable code' to you? :p
18:27:06 <AnMaster> RodgerTheGreat, will it be portable to other platforms than x86 or not?
18:27:12 <RodgerTheGreat> we also have this example of high-level code, which oklopol pointed out some issues with: http://www.nonlogic.org/dump/text/1215053310.html
18:27:34 <pikhq> Sure, but the actual *code* will probably be only as portable as C code doing the same thing.
18:28:23 <ais523> I haven't started work on it yet today
18:28:32 <ais523> but as you've seen, it went quite a way while I wasn't online
18:28:48 <pikhq> I, personally, plan to use Def-BF to write the holy grail of esolang coding.
18:28:49 <AnMaster> ais523, maybe that was the cause of it getting that far? ;P
18:29:08 <tusho> Brainfuck OS isn't very unique.
18:29:15 <tusho> BF is a pretty typical low-level lang.
18:29:19 <tusho> Things like Underload are interesting for OS
18:29:40 <AnMaster> ais523, could you make it possible to write an OS in intercal?
18:29:43 <pikhq> tusho: BF doesn't actually suffice for writing an OS, though.
18:29:49 <ais523> AnMaster: what I have to do next is to figure out the other place I have to use ick_l1_ICK_EC_PP_1
18:29:50 <AnMaster> well I guess it would be using the ec stuff
18:29:57 <ais523> and those magic identifiers are a pain to think about
18:30:02 <pikhq> And I don't think anyone has really done it.
18:30:17 <ais523> basically it's the internals of the external calls code
18:30:23 <ais523> it gets replaced by a goto label
18:30:25 <pikhq> The closest someone's gotten involves a very low-level Brainfuck interpreter.
18:30:34 <ais523> and each occurence of it can get replaced by a different goto label
18:30:42 <ais523> ick is responsible for pointing them all at the right target
18:30:49 <AnMaster> ais523, you mean you need to code intercal side?
18:31:05 <ais523> AnMaster: no, the remaining stuff is on the glue.c99 side
18:31:15 <ais523> where I have to use magic identifiers to hook into the NEXT targetting code
18:31:55 <AnMaster> RodgerTheGreat, is there any implementation?
18:32:12 <pikhq> No; I plan to write one this weekend.
18:32:22 <pikhq> Should be *ridiculously* simple to compile to assembly.
18:32:23 <RodgerTheGreat> I wrote the original spec, and the two of us are refining it
18:32:49 <AnMaster> RodgerTheGreat, they are coded in the language itself I assume?
18:33:01 <pikhq> Sure, but they don't need to be.
18:33:25 <pikhq> Def-BF on Linux should, in theory, be able to use libc.
18:33:36 <AnMaster> pikhq, well if you will write an OS in it you need raw access to stuff like interrupts
18:33:44 <RodgerTheGreat> and we already have some weak capabilities for doing inline assembly
18:33:52 <AnMaster> you will need inline asm as far as I can see
18:34:05 <pikhq> C doesn't need to be able to do that; it can call external asm functions. ;)
18:34:24 <pikhq> And Def-BF can do likewise.
18:34:30 <RodgerTheGreat> C wrappers are a much cleaner way to do the assembly, but it's still possible without them
18:34:58 <AnMaster> RodgerTheGreat, what about a C -> Def-BF compiler?
18:35:00 <RodgerTheGreat> Def-BF's support is more like "inline machinecode" than inline assembly, really
18:35:16 <RodgerTheGreat> AnMaster: I don't think that'd be terribly easy, but it should be possible
18:35:27 <pikhq> C -> Def-BF would look something like Gregor's CBF.
18:35:33 <AnMaster> RodgerTheGreat, then you could compile linux to it?
18:35:38 <AnMaster> and then compile linux to native
18:35:56 <AnMaster> linux pretty much depends on gcc though
18:36:28 <RodgerTheGreat> I doubt enough of linux is written in portable ANSI-C to count on being able to convert it
18:36:36 <pikhq> I'd be more likely to write a Def-BF backend for GCC.
18:36:52 <RodgerTheGreat> and it'd probably run like molasses without proper optimization
18:37:24 <tusho> RodgerTheGreat: if jsmips can run at acceptable speed...
18:42:27 -!- ais523 has quit ("(1) DO COME FROM ".2~.2"~#1 WHILE :1 <- "'?.1$.2'~'"':1/.1$.2'~#0"$#65535'"$"'"'&.1$.2'~'#0$#65535'"$#0'~#32767$#1"").
18:43:31 <tusho> RodgerTheGreat: jsmips is totally unoptimised
18:43:55 <RodgerTheGreat> there's a difference between running a shell and running the linux kernel, dude.
18:44:08 <tusho> RodgerTheGreat: Nonsense
18:46:02 <pikhq> And there's a huge difference when the Linux kernel is running a shell. ;)
18:46:25 <AnMaster> I got a question: is "real" in D a double or a float?
18:46:47 <Deewiant> or I guess that's the closest equivalent in C, anyway
18:46:51 <AnMaster> Deewiant, well that is x86 specific iirc?
18:47:04 <Deewiant> it's the biggest natively supported floating point type
18:47:05 <Sgeo> iiuc, Def-BF solves the problem that's been bugging me that motivated me to start PSOX
18:47:18 <Deewiant> largest hardware implemented floating point size (Implementation Note: 80 bits for Intel CPUs)
18:47:51 <AnMaster> Deewiant, for x86_64 it would be a double as x86_64 use SSE instead of the "so called legacy" x87
18:48:19 <Deewiant> AnMaster: surely x86-64 supports x87 as well
18:48:25 <Deewiant> but in any case, I don't really care
18:48:27 <AnMaster> Deewiant, it does, but it is marked as legacy
18:48:33 <Deewiant> if you do, run GDC on something and see what comes out
18:48:41 <Sgeo> The reason I started PSOX is because I noticed that "A BF program can do anything another computer program can do" was incorrect
18:48:48 <AnMaster> Deewiant, anyway that isn't the issue here
18:48:51 <tusho> Sgeo: Stunning observation there.
18:48:52 <pikhq> AnMaster: I'd suspect that on SSE-supporting CPUs, GDC and DMD make real SSE-sized.
18:49:07 <AnMaster> Deewiant, can you build ccbi will full debug info?
18:49:22 <pikhq> Sgeo: With Def-BF implemented, that will be true.
18:49:27 <Deewiant> DMD doesn't generate code for MMX or SSE etc. extensions
18:49:27 <AnMaster> I want to figure out something I don't get
18:49:55 <pikhq> Deewiant: Apparently, DMD sucks.
18:49:57 <Deewiant> it'd be a fair bit of trouble for me to build a linux binary now so I'd rather not bother
18:50:02 <AnMaster> Deewiant, I want to trace your and mine TURT to see why mine get margins/scale all fucked up (your get the other stuff fucked up)
18:50:04 <RodgerTheGreat> if nothing else, Def-BF gives BF programmers the ability to modularize and re-use code. When that's combined with interfacing to C, you have a tremendous amount of power, and it becomes quite feasible for systems programming (by esolang standards, anyway)
18:50:11 <AnMaster> Deewiant, and that part of the code shouldn't differ
18:50:19 <AnMaster> and I can't figure out from my code
18:50:19 <pikhq> RodgerTheGreat: It becomes quite feasible by any standards.
18:50:47 <AnMaster> Deewiant, I have and well the logic seems correct but why does it come up at different answer than your?
18:50:57 <RodgerTheGreat> it's a little more obscure than most high-level languages, but pikhq is right- it's astonishingly readable and clear
18:50:59 <Deewiant> well that's what printf is for :-P
18:51:12 <Sgeo> Link to Def-BF?
18:51:15 <pikhq> The big things you need for systems programming is being able to run without an interpreter, the ability to write directly to memory, and the ability to call arbitrary assembly.
18:51:19 <pikhq> http://www.nonlogic.org/dump/text/1215028173.html
18:51:34 <AnMaster> Deewiant, I tried it, and I really want to trace your code, to check whenever the in memory path differ or if it is just the printing stuff that is broken
18:51:51 <RodgerTheGreat> and once again, the example program: http://www.nonlogic.org/dump/text/1215106118.html
18:52:07 <AnMaster> Deewiant, so please make a debug build -O0 -ggdb3 style (well I don't know what your compiler call it)
18:52:20 <pikhq> Just being able to have functions makes the whole thing much, much easier to write in.
18:52:24 <AnMaster> Deewiant, if gdb doesn't work on dmd binaries? maybe gdc?
18:52:40 <pikhq> (kinda like having macros makes PEBBLE much easier to write in than straight Brainfuck)
18:53:10 <AnMaster> pikhq, how does unbalanced [] work?
18:53:19 <AnMaster> does it keep track of where it was?
18:53:24 <Deewiant> AnMaster: try iki.fi/deewiant/ccbi
18:53:37 <Deewiant> no idea what version of the source that is but at least it built :-P
18:53:42 <tusho> AnMaster: dude, do it yourself
18:53:42 <pikhq> in my mind? Unbalanced [] works just the same as it does in Brainfuck.
18:53:45 <RodgerTheGreat> I basically tried to design a minimal extension to BF that made it possible to cleanly provide functions and other abstractions (code reuse, for example), and the side effect of that is that interfacing with other languages starts to become possible
18:53:46 <pikhq> Namely: it doesn't.
18:53:54 <tusho> saying "Hey, you, recompile" isn't very nice
18:54:02 <RodgerTheGreat> AnMaster: you can effectively make GOSUB/RETURN calls now
18:54:19 <Deewiant> I wouldn't have done it but it turns out the machine I'm running irssi on has a copy of the source in a buildable state
18:54:24 <Deewiant> so it wasn't as much work as I thought
18:55:33 <pikhq> RodgerTheGreat: You know, it might be nice to be able to do both pass by value and pass by reference.
18:55:37 <AnMaster> Single stepping until exit from function main,
18:55:38 <AnMaster> which has no line number information.
18:56:12 <Deewiant> maybe I should actually build the object files too and not just link with -g :-P
18:56:14 <pikhq> It'd make calling out to C easier.
18:56:37 <pikhq> printf("%i", foo); wouldn't need a wrapper.
18:57:01 <AnMaster> Deewiant, still no line number info
18:57:11 <pikhq> (as it is, doing var: formatstring "%i", followed by printf[formatstring, foo] would print the pointer to foo)
18:58:00 <pikhq> RodgerTheGreat: I propose just using a $ to indicate that you're passing a value, not a pointer, to the function. . .
18:58:14 <pikhq> So, one could do printf[formatstring, $foo], and voila.
18:58:23 <tusho> pikhq: Why can't you just make it implicit like how C does it?
18:58:30 <pikhq> (or, if you insist on making it C-esque, make that & instead of $)
18:58:48 <tusho> pikhq: That would be better.
18:58:58 <pikhq> tusho: In C, one needs to do & to pass by reference. ;)
18:59:04 <tusho> pikhq: Sounds good to me.
18:59:12 <tusho> I don't like things messing wit mah variblz.
18:59:15 <Deewiant> AnMaster: that one's is the best I can do: "add symbolic debug info, pretend to be C"
18:59:28 <AnMaster> Deewiant, yay it works kind of
18:59:34 <pikhq> Hrm. Now that makes me want to add string literals. :p
18:59:48 <pikhq> But, that's not going to be that easy to add to the language, and it honestly isn't needed.
19:00:20 <tusho> pikhq: But it'd be really convenient
19:00:33 <pikhq> I'm willing to do without.
19:00:52 <pikhq> Much, much easier to implement, after all. ;)
19:00:56 <tusho> pikhq: It'll bite you...
19:01:01 <tusho> It won't be fun :P
19:01:16 <pikhq> It'll be no worse than coding in assembly.
19:01:23 <AnMaster> _D4ccbi12fingerprints8cats_eye4turt12printDrawingFZv
19:01:34 <Deewiant> D has a module system, unlike C. :-P
19:01:36 <tusho> AnMaster: Eagerly awaiting your suggestions on how else to compile an OO languge.
19:01:52 <tusho> pikhq: Assembly has string literals.
19:02:02 <AnMaster> tusho, storing it as meta data in some other way?
19:02:05 <tusho> And what about when you've wrote the base and you're writing some slightly higher stuff?
19:02:11 <tusho> AnMaster: But you need _multiple things_ with the _same name_.
19:02:19 <tusho> AnMaster: And it has to be _fast_ - no performance penalty.
19:02:30 <pikhq> No it doesn't. foo: .asciiz "String here.\n" doesn't count in my mind.
19:02:36 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)).
19:02:43 <tusho> When you're writing slightly higher-level stuff...
19:02:44 -!- Slereah_ has joined.
19:02:45 <pikhq> And that much, Def-BF supports.
19:03:46 <AnMaster> Deewiant, any idea how to access the pic static variable?
19:04:05 <AnMaster> 183 if (turt.movedWithoutDraw && turt.penDown)
19:04:07 <AnMaster> No symbol "turt" in current context.
19:04:37 <Deewiant> print _D4ccbi12fingerprints8cats_eye4turt4turt <the mangled type>
19:04:53 <AnMaster> (gdb) print _D4ccbi12fingerprints8cats_eye4turt4turtS4ccbi12fingerprints8cats_eye4turt6Turtle
19:05:33 <AnMaster> Deewiant, it is the pic variable I want though
19:05:57 <AnMaster> (gdb) print _D4ccbi12fingerprints8cats_eye4turt3picS4ccbi12fingerprints8cats_eye4turt7Drawing
19:06:24 <tusho> AnMaster: It's not C
19:06:36 <AnMaster> tusho, how do I get data from that variable then?
19:06:50 <tusho> AnMaster: Manually look at the memory.
19:07:04 <AnMaster> tusho, well I don't know what internal structure it use
19:07:06 <Deewiant> you might want to look at http://www.dsource.org/projects/gdb-patches
19:07:29 <Deewiant> or use http://www.zero-bugs.com/ instead
19:07:30 <tusho> AnMaster: you're using a C debugger on a non-C prorgam
19:07:34 <tusho> it doesn't wurk!!1
19:07:50 <Deewiant> can't you get a list of variables in scope or something
19:07:59 <AnMaster> tusho, gdb works for C++ so well it was a faulty but reasonable assumption
19:08:09 <Deewiant> ah, but I guess you did anyway
19:08:10 <tusho> AnMaster: c++'s object layout is esoteric, I believe
19:08:24 <Deewiant> C++'s object layout is impl-defined
19:08:41 <Deewiant> http://www.digitalmars.com/d/1.0/abi.html
19:09:05 <tusho> AnMaster: print *dot
19:09:22 <AnMaster> Attempt to dereference a generic pointer.
19:10:05 <Deewiant> so you see more data at once :-P
19:10:16 <AnMaster> Deewiant, still doesn't make sense
19:11:07 <tusho> who's in the mood of being really generous and giving me a domain
19:11:25 <AnMaster> Deewiant, it doesn't match what should be there logically, so I guess metadata
19:11:29 <AnMaster> Error accessing memory address 0x1: Input/output error.
19:11:38 <Deewiant> what should be where logically
19:11:50 <AnMaster> Program received signal SIGSEGV, Segmentation fault.
19:11:51 <AnMaster> 0x080936ef in _D9invariant12_d_invariantFC6ObjectZv ()
19:12:13 <Deewiant> your debugger doesn't support the language being debugged
19:12:14 <AnMaster> Deewiant, what D debugger is there then?
19:12:22 <Deewiant> 2008-07-03 21:07:06 ( Deewiant) you might want to look at http://www.dsource.org/projects/gdb-patches
19:12:25 <Deewiant> 2008-07-03 21:07:29 ( Deewiant) or use http://www.zero-bugs.com/ instead
19:12:38 <AnMaster> Deewiant, that means compiling gdb again which I know is hard
19:12:39 <Deewiant> for windows there's ddbg which is really great
19:13:18 <AnMaster> oh cost money, well gdb patches it is then
19:13:34 <Deewiant> which I suppose you can violate
19:13:45 <AnMaster> Deewiant, what exactly does that do?
19:14:01 <tusho> AnMaster: just use the 15 day trial :-P
19:14:08 <tusho> put your ideology aside for tools which actually work//
19:14:25 <Deewiant> you can look up C# formatting, probably has the best docs on the subject
19:14:35 <Deewiant> unless tango has improved in this area lately
19:15:20 <Deewiant> evidently the API still only offers "
19:15:20 <Deewiant> evidently the API still only offers "The format notation is influenced by that used by the .NET and ICU frameworks, rather than C-style printf or D-style writef notation.
19:15:29 <pikhq> AnMaster: Compiling GDB is hard?!?
19:15:42 <pikhq> What's so hard about ./configure&&make&&make install?
19:16:10 <pikhq> Prefix all those commands with linux32, and you're set.
19:16:16 <Deewiant> http://www.dsource.org/projects/tango/wiki/ChapterConversions#Layoutsformatstring
19:16:21 <pikhq> Or just do linux32 bash, and then compile it.
19:16:26 <AnMaster> Deewiant, is your getDec correct?
19:16:48 <AnMaster> int getInt(tc c) { return (c < 0 ? -c : c) / 1000; }
19:16:49 <AnMaster> uint getDec(tc c) { return abs(cast(int)c) % 1000; }
19:17:22 <AnMaster> Deewiant, well that explains some part
19:17:51 <Deewiant> I was thinking about the padding but no
19:18:13 <AnMaster> well that explains *one* part of my problem
19:18:31 <AnMaster> Deewiant, also you use a turt.min but no turt.max?
19:18:53 <AnMaster> I must have misunderstood it's meaning if there should only be the turt.min
19:19:14 <Deewiant> it looks like Turtle only contains a min
19:19:21 <AnMaster> Deewiant, yes and I wonder why
19:20:37 <pikhq> RodgerTheGreat: I don't think the import: feature is strictly needed.
19:20:51 <pikhq> I'm imagining this thing just calling out to the linker, you see. . .
19:21:36 <pikhq> And it's not like you really have prototypes in Def-BF. . .
19:21:41 <AnMaster> Deewiant, look at lines 299-307 in turt.d
19:22:02 <Deewiant> or wait, where does min come from
19:22:12 <AnMaster> Deewiant, min is set in newDraw()
19:22:15 <Deewiant> whenever something is drawn, yes
19:22:20 <Deewiant> so it really is the minimum point
19:22:37 <AnMaster> Deewiant, you can have negative coordinates after all
19:22:56 <AnMaster> should min be smallest not largest?
19:24:21 <AnMaster> I can draw something non-symetrical
19:24:26 <Deewiant> so that we center in the middle
19:25:22 <Deewiant> that comes out to (-20,-20) and (40,40), hmm
19:27:00 <Deewiant> needs a partial or complete rewrite
19:27:09 <Deewiant> which I'll try and do on the weekend
19:29:04 <Deewiant> but yeah, min = -max doesn't work because as you said if somebody draws only from 0 to -20 then the image should be (-20,-20) to (0,0) not (-20,-20) (20,20), the centre is wrong
19:29:15 <Deewiant> and I can't see what the * 2 is about
19:34:12 <AnMaster> so you need 2xmargins for width and such
19:34:18 <Deewiant> I thought it was minx, miny, maxx, maxy
19:34:26 <AnMaster> Deewiant, anyway your margins were still messed up
19:34:35 <Deewiant> and yeah, like said above it's not smart
19:34:52 <AnMaster> Deewiant, I do it with min/max now
19:35:24 <AnMaster> Deewiant, try this: http://rafb.net/p/OFwhCX47.html
19:35:32 <AnMaster> unlike some of ccbi's it won't crash your browser
19:35:49 <AnMaster> (well rather ccbi locked up both firefox and konqueror)
19:35:59 <Deewiant> so how does yours do on the quine now
19:36:41 <AnMaster> there are still some other issues to fix
19:38:22 <Deewiant> stroke-width:0.00005px; --> I can't see any of what those paths draw as my monitor only supports 1-pixel pixels :-P
19:38:35 <tusho> Deewiant: hahahahahahah
19:38:45 <tusho> dude we've all moved onto fractional pixels
19:38:52 <tusho> (what about my behind?)
19:39:14 <AnMaster> Deewiant, it is to prevent filling and such
19:39:26 <Deewiant> fill:none;fill-opacity:0.75;fill-rule:evenodd;
19:39:29 <AnMaster> Deewiant, ccbi's path are filled by default
19:39:36 <Deewiant> it seems to me that the latter two are pointless
19:39:36 <AnMaster> Deewiant, that was copied from inkscape
19:39:51 <Deewiant> don't copy from inkscape, read the standard
19:40:05 <AnMaster> Deewiant, well that didn't do you any good
19:40:22 <AnMaster> Deewiant, I can get ccbi to generate invalid xml
19:40:24 <Deewiant> it doesn't do me any good any more, though
19:40:39 <Deewiant> since I can't remember what I read and what I read of course influenced the code :-)
19:41:05 <tusho> Deewiant: surely you used a proper xml production library
19:41:41 <tusho> AnMaster: do NOT produce xml that way
19:41:53 <tusho> just truthfully, honestly, don't
19:41:59 <AnMaster> Deewiant, http://rafb.net/p/uavl3h33.html
19:42:26 <Deewiant> tusho: if you're doing something that simple you can
19:42:34 <tusho> Deewiant: genx is trivial
19:42:39 <tusho> AnMaster: because you ARE getting it wrong
19:42:42 <tusho> it's not even conditional
19:42:53 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)).
19:42:58 <tusho> AnMaster: no, but it is almost certainly trivial to make it produce an invalid file
19:43:03 -!- Slereah_ has joined.
19:43:05 <tusho> AnMaster: no, but it is almost certainly trivial to make it produce an invalid file
19:43:18 <AnMaster> tusho, yes maybe for <path>, that needs more debugging
19:43:31 <tusho> AnMaster: http://www.tbray.org/ongoing/genx/docs/Guide.html
19:43:32 <AnMaster> however <circle> is written atomically
19:43:38 <Deewiant> if you can make it produce an invalid file, chances are that if you were using an XML library you can make it produce a valid file with incorrect contents
19:43:48 <Deewiant> so an invalid file may even be better
19:43:49 <tusho> AnMaster: i believe so
19:43:56 <tusho> http://www.tbray.org/ongoing/genx/
19:44:08 <tusho> one lib and one auxillary lib that it uses
19:44:19 <tusho> and quite a lot of software uses it
19:44:27 <tusho> AnMaster: http://www.tbray.org/ongoing/genx/COPYING
19:44:29 <AnMaster> so I can just drop the source file into cfunge
19:44:35 <AnMaster> I'm NOT going to depend on it being installed
19:44:39 <Deewiant> tusho: and I suppose if you don't call genxEndDocument() then it can catch the error and complain loudly?
19:44:53 <tusho> Deewiant: if you don't call endDocument it won't output anything
19:45:12 <Deewiant> so it buffers everything in-memory until the whole thing is done?
19:45:14 <AnMaster> tusho, is it debugged with valgrind?
19:45:17 <Deewiant> AnMaster's going to love this ;-)
19:45:19 <AnMaster> Deewiant, yes that seems horrible
19:45:27 <tusho> that's what every DOM lib does
19:45:30 <tusho> your browser does it, for instance
19:45:42 <tusho> and I imagine it'll work fine with valgrind, AnMaster
19:45:47 <Deewiant> so, we do not want a DOM lib. :-)
19:46:01 <tusho> i'm not sure if it stores it in memory
19:46:04 <tusho> still, just use it
19:46:09 <tusho> it's trivial, fast, and memory-efficient
19:46:11 <tusho> and tons of stuff uses it
19:46:19 <tusho> and Tim Bray made it, I'm pretty sure he knows xml pretty well
19:46:23 <AnMaster> tusho, it is not even in portage or freebsd ports
19:46:34 <tusho> AnMaster: because you should just drop it in to your app
19:46:54 <AnMaster> <tusho> AnMaster: http://www.tbray.org/ongoing/genx/COPYING <-- is that GPL compatible or not?
19:47:01 <tusho> AnMaster: it's the MIT license
19:47:23 <tusho> it was explicitly designed so you could just drop a few files into your app and use it, AnMaster
19:47:27 <AnMaster> "Writing XML or <!DOCTYPE> declarations. Of course, you could squeeze these into the output stream yourself before any Genx calls that generate output."
19:47:29 <tusho> thus the license & 3-fileness, etc
19:47:33 <AnMaster> well I guess I have to do that then
19:47:40 <tusho> AnMaster: well yes, that's just:
19:47:46 <tusho> <?xml version="1.0" encoding="UTF-8"?>
19:47:48 <AnMaster> tusho, BUT CAN I BE TRUSTED WITH THAT!?
19:47:53 <tusho> AnMaster: yes. yes you can.
19:48:02 <tusho> it's when variable data comes in that the problem arouses
19:48:20 <AnMaster> tusho, so can I print fixed point numbers with it?
19:48:27 <AnMaster> I don't feel like creating buffers for them
19:48:34 <tusho> AnMaster: i haven't used genx that extensively.
19:48:41 <tusho> but I have seen many uses of it
19:49:00 <AnMaster> viewbox=\"%s%d.%04u %s%d.%04u %s%d.%04u %s%d.%04u\"
19:51:18 -!- pikhq has left (?).
20:01:14 <AnMaster> I will be away to Norway for parts of next week
20:12:24 -!- RedDak has joined.
20:26:11 <tusho> the place he was at closed
20:26:43 <lament> how would you store the notes for a homophonic tune?
20:26:51 <AnMaster> tusho, I thought it was open until midnight?
20:26:57 <tusho> not that place, evidently
20:27:10 <oklopol> lament: a list of (len,pitch) tuples?
20:27:11 <tusho> lament: homophonic? sounds suited to #esoteric
20:27:48 <AnMaster> I would store normal tunes as (len,pitch,data for how hard the string was hit)
20:28:07 <lament> what if there's a pause
20:28:27 <lament> and it makes it difficult to calculate the absolute position of notes
20:28:31 <AnMaster> time,len,pitch,data for how the instrument was played)
20:28:40 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)).
20:28:49 <AnMaster> lament, I would simply use midi
20:28:54 -!- Slereah_ has joined.
20:28:56 <AnMaster> instead of reinventing the wheel
20:29:04 <AnMaster> lament, doesn't that seem saner?
20:29:18 <lament> isn't midi overcomplicated and a bitch to parse
20:29:42 <tusho> are there good midi libs?
20:29:45 <tusho> if not I might write one in C
20:29:48 <tusho> and bind it to stuff
20:29:48 <lament> thankfully midi doesn't do what i need, anyway
20:30:04 <AnMaster> tusho, I never tried to use midi that way
20:30:07 <lament> AnMaster: it doesn't store anything about ties, slurs, stem direction, etc.
20:30:36 <tusho> xml might actually be sane for this...
20:30:49 <lament> i'm not asking how to serialize stuff
20:30:56 <lament> i'm asking how to represent it
20:31:02 <tusho> lament: a C structure?
20:31:05 <lament> serialization isn't important
20:31:39 <AnMaster> lament, well you need absolute point in time of note,length + data for how hard the person hit the key on he piano or whatever
20:32:18 <AnMaster> just notes? then store it as (type of entry,position in current clef,other data)
20:33:39 -!- Deformalite has joined.
20:36:18 <AnMaster> Deformalite, running out of memory?
20:37:16 <AnMaster> Deformalite, well with ackermann's function that is easy to do
20:37:20 <Deformalite> But I do sortof wish I would have compiled to some sort of intermediate code instead of interpreting.
20:37:59 <AnMaster> Deformalite, well compile it to C
20:40:44 <Deformalite> It would be much easier to compile to assembly.
20:42:48 -!- pikhq has joined.
20:43:58 <AnMaster> Deformalite, I'm not on x86 so I hate x86 asm
20:44:29 -!- sebbu2 has joined.
20:44:32 <AnMaster> Deformalite, well x86_64 here mostly
20:44:46 <pikhq> AnMaster: Even on x86, most people hate x86 assembly.
20:45:03 <pikhq> My opinion is "It gets the job *done*, sure, but it's fairly kludgy."
20:45:15 <tusho> My opinion is "KITTENS"
20:45:27 <pikhq> tusho: Good opinion, if you like lolcats.
20:45:37 <tusho> With the quotes and uppercase.
20:46:39 * pikhq huggles self-modifying code, as well
20:47:15 <Deformalite> Self modifying code is terribly interesting, and very esoteric. :)
20:47:38 <pikhq> You want interesting, though?
20:47:42 <pikhq> Self-modifying C code.
20:48:58 <Deformalite> You can make a function for each instruction or procedure, then just utilize higher order functions.
20:49:11 <Deformalite> It is essentially just making a cheap interpreter.
20:51:21 <pikhq> I didn't say it was impossible. Merely that it is ridiculously diabolical.
20:51:40 <pikhq> Some IOCCC entries use it; what does that tell you? :p
20:52:17 <tusho> pikhq: And all IOCCC entries use C.
20:52:24 <tusho> C is esoteric and obfuscated!
20:52:28 <tusho> ... wait, yeah, it is
20:52:47 <pikhq> I, of course, meant the 'self-modifying code' bit.
20:52:53 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)).
20:52:56 <pikhq> C actually isn't terribly obfuscated.
20:53:04 -!- Slereah_ has joined.
20:53:13 <pikhq> It's not the *greatest* language, but it's got a few things in its favor.
20:53:20 <pikhq> First, it's a fairly simple language.
20:53:37 <pikhq> Second, it's good for systems programming.
20:53:43 <pikhq> Third, it is ubiquitous.
20:54:15 <pikhq> It's that bit about being ubiquitous that makes it handy.
20:54:41 <pikhq> Well, makes it insanely handy.
20:57:02 -!- sebbu has quit (No route to host).
20:57:03 -!- sebbu2 has changed nick to sebbu.
20:58:22 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)).
20:58:31 -!- Slereah_ has joined.
21:00:25 <AnMaster> * Deformalite huggles self modifying code.
21:02:40 <AnMaster> but you don't consider it a clean language?
21:03:54 <AnMaster> tusho, also you can write obfuscated python
21:03:56 <tusho> i know very clean obfuscated languages
21:04:09 <tusho> oklopol's python code is lovely
21:04:13 <AnMaster> Deewiant, D is a pain to get working (compiler and such)
21:04:26 <pikhq> dsss makes it a bit easier.
21:04:40 <tusho> oklopol doesn't piss around for days indenting crap and making it all go fast and modularized and stuff
21:04:42 <Deewiant> suggestion: go to tango's web site and get the package they offer
21:04:42 <AnMaster> Deformalite, I couldn't get tango to compile
21:04:44 <tusho> he just writes something really awful
21:04:47 <tusho> but it's fun and works
21:05:00 <pikhq> AnMaster: x86_64 is a bitch with D.
21:05:01 <AnMaster> Deformalite, well the app I needed to use used it
21:05:03 <Deewiant> he needs tango because I use it. :-)
21:05:06 <pikhq> Tango just doesn't build there.
21:05:16 <tusho> Deformalite: phobos is a bug
21:05:36 <AnMaster> pikhq, well I'm anti tango if it doesn't build on x86_64
21:05:45 <tusho> Deformalite: Who gives a shit about a standard that 3 people use?
21:05:48 <AnMaster> pikhq, once it works properly I may be interested
21:05:54 <tusho> It's more trivial.
21:05:58 <tusho> And less well-designed.
21:06:09 <Deewiant> AnMaster: can't you just build it as 32-bit code
21:06:16 <tusho> Deformalite: Very javaish?
21:06:20 <tusho> We're using a different Tango here...
21:06:24 <AnMaster> Deewiant, then I need a 32-bit chroot to get that working for gdc
21:06:57 <oklopol> Deformalite: are you Deformative?
21:07:03 <AnMaster> once it works on x86_64 and is in portage I may be interested
21:07:07 <oklopol> all these d guys are scary
21:07:35 <Deformalite> AnMaster: You do not need chroot to get gdc working...
21:07:35 <tusho> yeah, i doubt that
21:07:47 * tusho plays with the idea of writing a RubyCocoa gmail client
21:07:48 <AnMaster> Deformalite, I need it working with tango in x86_64
21:08:02 <AnMaster> until that is possible out of box I consider D non-mature
21:08:08 <Deewiant> AnMaster: your fault for running a 64-bit OS without support for 32-bit ;-)
21:08:25 <tusho> Tango works fine on 64-bit afaik
21:08:44 <Deformalite> Yeah, I have never heard of such problems.
21:08:48 <Deewiant> http://www.dsource.org/projects/tango/ticket/1097
21:08:50 <Deewiant> http://www.dsource.org/projects/tango/ticket/865
21:08:56 <Deewiant> http://www.dsource.org/projects/tango/ticket/1082
21:09:00 <Deewiant> http://www.dsource.org/projects/tango/ticket/1071
21:09:07 <tusho> Never said without issues, Deewiant
21:09:13 <tusho> But I'm pretty sure, with dsss, you can 'net install
21:09:16 <tusho> ' tango pretty easily
21:09:21 <Deewiant> "works fine" means "without issues" to me :-)
21:09:38 <tusho> Then no software works fine my dear Deewiant.
21:09:49 * Deformalite is tired of tango discussion. Back to my work. :P
21:10:16 <Deewiant> but yeah, depends on your definition of 'issue'
21:10:21 <Deewiant> I consider segfaults an issue :-P
21:10:22 <Deformalite> oklopol: Before I leave, yeah, I am Deformative, not Deewiant.
21:10:31 <tusho> Deewiant: I bet gnu 'true' has bugs - have you ever read it?
21:10:33 <tusho> It's crazily bloated
21:10:47 <Deewiant> but it hasn't segfaulted on me yet
21:11:00 <Deewiant> and it works upwards of 99% of the time
21:11:07 <oklopol> Deformalite: no one sane thought you might be Deewiant, i was just afraid you might be another De... guy
21:11:25 <Deewiant> who's that one guy that's here sometimes, Dewi or something?
21:11:28 <tusho> 'D' at the start of the name signifies a D user.
21:11:32 <oklopol> Deformative and Deformalite in the same room would probably collapse into singularity
21:11:40 <tusho> 'De' means 'Deewiformative clan'
21:11:45 <tusho> Dewi is not Deewiant
21:11:52 <tusho> Dewi is so Deewiant
21:11:58 <AnMaster> Deewiant, dewi is in this channel
21:12:00 <Deformalite> Eh, if De is grouped together, I need to change my nick.
21:12:02 <oklopol> Dewi is a whole another guy
21:12:30 <tusho> Austarlia is right next to Canadia
21:12:31 <Deewiant> this is the part where I go to bed. :-P
21:12:46 <Deewiant> but first I'll leave some reading with you.
21:12:46 <Deewiant> http://www.math.sfu.ca/~cbm/errh/101_analysis_bedtime_stories_(epsilon_red_riding_hood).pdf
21:12:50 <tusho> I wanna be called tasho so I can have t@sho.org
21:13:36 <tusho> timezones make me go :/
21:14:27 <tusho> timezones make me go ':/'
21:14:30 <tusho> you went 'not yet :/'
21:14:40 <tusho> obviously it was night where Deewiant is
21:15:32 <tusho> 22:15 is totally night, AnMaster
21:15:57 <AnMaster> tusho, anyway it would be 23:* for him
21:18:26 <Deformalite> What other helloworldies are there? Hello world, factorial, ackermann, and what else? I am going to do a turing machine soon, but if there are any others it would be nice to test before I go on to the turing machine.
21:19:56 -!- Slereah_ has quit (Read error: 110 (Connection timed out)).
21:20:20 <tusho> Deformalite: open a terminal
21:21:02 <Deformalite> All that does is prove use of streams and file io.
21:21:19 <AnMaster> <Deewiant> http://www.math.sfu.ca/~cbm/errh/101_analysis_bedtime_stories_(epsilon_red_riding_hood).pdf <-- that was fun
21:21:23 <Deformalite> I need something that tests language features a bit more, recursion/iteration and stuff.
21:22:22 <AnMaster> Deewiant, write a brainfuck interpreter in it?
21:22:47 <AnMaster> of course that is the turing test
21:23:30 <tusho> Deformalite: Y combinator
21:26:32 <tusho> does anyone have a transparent-background version of the gmail envelope?
21:37:09 <tusho> AnMaster: tried that
21:38:29 <tusho> they're a bigcorp and it's copyrighted
21:39:06 <tusho> it's for my personal use
21:39:09 <tusho> but think about it
21:39:14 <tusho> most of their emails probably go straight to /dev/null
21:39:20 <tusho> they'll get 1k+ emails every day
21:39:27 <tusho> and here I am, asking them for a high-res version of their logo, just like that?
21:39:49 <AnMaster> tusho, say you are from new york times or something :P
21:55:26 <tusho> anyone in a domain-buying mood? <.<
22:53:28 -!- olsner has joined.
23:03:19 -!- RedDak has quit (Read error: 104 (Connection reset by peer)).
23:09:05 -!- Deformalite has quit (Remote closed the connection).
23:16:23 -!- timotiis has quit (Read error: 110 (Connection timed out)).
23:30:46 <pikhq> RodgerTheGreat: God, Def-BF will kick ass.
23:38:30 <GregorR> Enter the Hymen Store, two men are scorched and burned, kite me a sign.
23:39:02 <GregorR> Don't worry Bill is dead, there lies the toy opened, Indians are high.
23:41:17 <GregorR> http://www.youtube.com/watch?v=jH8gtrD4_C4
23:44:46 <GregorR> tusho: If you want your domain so badly, why don't you buy it?
23:45:48 <tusho> GregorR: I already own ONE domain :'(
23:46:23 <GregorR> I own five, cry me a river.
23:46:34 <tusho> :'''''''''''''''''(
23:46:37 <tusho> :'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(
23:46:39 <tusho> :''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(
23:46:44 <tusho> :''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(
23:46:46 <tusho> :'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
23:46:48 <tusho> :'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
23:46:54 <tusho> :'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
23:47:00 <tusho> :'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
23:48:11 <tusho> GregorR: Buy me a domain and I shall help!
23:49:16 -!- Judofyr has quit (Read error: 104 (Connection reset by peer)).
23:51:53 <GregorR> tusho: If you already own ONE domain, what's one more? :P
23:52:34 -!- olsner has quit.
23:53:29 <tusho> GregorR: How about. You buy a domain and I'll give you an account on rutian (the machine running eso-std.org) :-P
23:53:32 <tusho> It is completely useless but fun!
23:53:41 <tusho> You shall be dictated to by the two sudoers, me and ais523!
23:54:57 <tusho> GregorR: AWSUM DEAL RITE