01:38:18 -!- clog has joined.
01:38:18 -!- clog has joined.
01:38:24 <GregorR> Like I said, I'm still avoiding actually doing it.
01:38:34 <Keymaker> i mean, try getting this program to brainfuck.. while((a-1!)==A || (b/3234.134900)>500.2){ ...
01:40:35 <Keymaker> not to mention things like int data[30][20][20][10]; :)
01:42:12 <Keymaker> heh, not to mention error routines..
01:42:32 <GregorR> If you divide up the parse tree enough and make liberal use of temporary variables, it shouldn't be such a huge problem.
01:42:58 <GregorR> Mind you, I still have no intention of writing this any time soon ;P
01:44:32 <nooga> *and make liberal use of temporary variables*
01:45:11 <Keymaker> yeah, just remember that there is only one tape.. it's not going to be that easy to move everything around :)
01:45:35 <GregorR> Not much moving around is involved.
01:45:44 <GregorR> The tape is divided into groups of four.
01:46:10 <Keymaker> oops, sorry, i thought accidentally that you're writing the whole thing in brainfuck
01:46:11 <GregorR> {stack} {heap} {stack-location-store (0 for beginning/end, to make looping easy)} {walk}
01:46:25 <Keymaker> and meant that temporary values aren't that easy to get there :9
01:47:14 <Keymaker> i wonder what i was thinking.. :)
01:47:47 <GregorR> Presumably, if I wrote it in C...
01:47:54 <GregorR> Eventually it could be ported to C2BF syntax.
01:48:39 <Keymaker> actually by running the original c program through c2bf..
01:49:00 <Keymaker> or well, not if the c2bf syntax is something different
01:50:39 <GregorR> Well, the syntax would ideally be exactly the same.
01:50:44 <GregorR> The main problem is our good friend libc.
01:50:49 <GregorR> And the lack of file I/O :)
01:51:32 <GregorR> A hypothetical compiler to compile C code into BF.
01:52:14 <nooga> [09:08] <Keymaker> actually by running the original c program through c2bf..
01:55:06 <GregorR> That's not something you can predict in the compiler.
01:55:14 <GregorR> I was thinking int == 2 cells
01:56:18 <nooga> theres bfbasic, so why not C...
01:56:53 <GregorR> Because C has a much more complicated syntax, local variables, recursion ...
01:57:40 <nooga> i knew that language is shit
01:57:41 <GregorR> I don't know about BFBASIC (I think it supports gosub, and that might support recursion ...)
01:57:44 <puzzlet> does bfbasic compile basic to bf, or vice versa?
01:57:55 <GregorR> BF to Basic would be trivial :P
01:58:51 <nooga> bootstraping c2bf would be funny
01:58:58 <nooga> compiling the compiler
01:59:13 <nooga> and then c2bf compiler would be in bf xD
01:59:31 <GregorR> "You must have egobfi16 installed to run c2bf (That's right, it has to be EgoBF. Hahaha)"
02:00:12 <nooga> i think 3k cells is too few
02:02:17 <Keymaker> i think basics are a lot better than languages like c.. brainfuck is a basic
02:02:39 -!- mtve has joined.
02:02:39 <GregorR> Hmm ... if I parsed that statement properly ... I hate you.
02:03:01 <nooga> Keymaker: try C++ ;p
02:03:09 <Keymaker> well, you don't need functions or such anywhere :p
02:03:09 <GregorR> If you're a pansy, try Java.
02:03:23 <GregorR> If you're an infant, try C# :P
02:03:31 <GregorR> Infants are too intelligent ...
02:03:37 <GregorR> If you're an Australopithicene.
02:03:42 <nooga> M$ gives C# <-> BASIC .NET translation thingy
02:03:56 <nooga> use it and compare what's nicer
02:04:44 <GregorR> Idonno about C# <-> BASIC ...
02:05:28 <GregorR> By "basic" do you mean simple ...
02:05:31 <nooga> i've got $30 in my pocket ;D
02:05:32 <GregorR> Or by "basic" do you mean BASIC
02:05:43 <GregorR> That capitalization is not for emphasis btw.
02:08:26 <nooga> c2bf would be s breaktrough ;p
02:09:26 <GregorR> Keymaker: No, only BASIC is BASIC.
02:09:30 <GregorR> Hence the term "trademark"
02:12:56 <GregorR> Yeah yeah, mock everybody else's pathetic drawing abilities why doncha ;P
02:12:56 <nooga> but it's hard to understand for uninitiated :>
02:13:05 <nooga> http://agentj.kewlnet.int.pl/wysypisko/uploads/strip1.gif
02:13:16 <nooga> note that gui is *NET* Jesus
02:13:40 <nooga> i'm computer pervert :D
02:14:28 <nooga> "Hi AOD! What are you doing?" - "a... i'm resting" :)
02:14:59 <nooga> because you dont know AOD :>
02:15:16 <GregorR> Keep in mind that he's resting on a cross :P
02:15:23 <GregorR> Is he nailed in properly or just tied?
02:16:25 <nooga> aod says that the cross should be turned upside-down
02:17:14 <GregorR> I have only one response to that.
02:17:22 <GregorR> http://www.codu.org/Kill_Yourself.ogg
02:18:04 <nooga> who should kill himself/
02:18:25 <GregorR> Whoever is moved deeply by that song :P
02:19:36 <nooga> but the rest is ... khem
02:19:57 <nooga> you should sing with a real band ;p
02:20:07 <GregorR> Except that my voice is incredibly annoying.
02:20:18 <nooga> better than mine ;p
02:20:37 <nooga> but i play guitar in prog rock band and not singing :D
02:23:08 <nooga> damn... idk english
02:24:37 <nooga> last days I'm screwing up almost every sentence, wrong tenses, werid words...
02:25:15 <GregorR> For example, "last days I'm" ;)
02:25:33 <GregorR> I'm being nitpicky though, I know what you mean ;)
02:25:53 <GregorR> Well, weird is a weird enough word as is.
02:26:14 <nooga> ha... but try to talk Polish
02:26:28 <nooga> ha.. sprbuj mwi po Polsku
02:27:07 <GregorR> I even typed that, not copy/paste 8-D
02:27:13 <GregorR> See, I can speak Polish :P
02:27:17 <nooga> lol... i mean't speak
02:27:51 <nooga> and u sounds the same but there's a difference in writing
02:28:14 <nooga> dpa = ass is incorrect, dupa is :>
02:29:11 <nooga> piesi = pedestrian, pies = dog :>
02:29:58 <nooga> pieszy = pedestrian, psy = dogs
02:32:45 <nooga> http://www.pantadeusz.com/poemat/tekst/ksiega-04.html
02:33:19 <nooga> fragment of our national epopee ;p
02:37:09 <nooga> but Finnish is better :D
02:40:13 <Keymaker> so it's something like epic poem?
02:40:50 <Keymaker> there's at least one good painting of our epic poem kalevala; http://en.wikipedia.org/wiki/Image:Gallen_Kallela_The_Aino_Triptych.jpg
02:43:02 <nooga> http://images.google.pl/imgres?imgurl=http://www.zascianek.pl/users/PanTadeusz/An3_2m.JPG&imgrefurl=http://www.zascianek.pl/users/PanTadeusz/PT3_2.htm&h=550&w=445&sz=37&tbnid=nVG2uNCERZ-98M:&tbnh=130&tbnw=105&hl=pl&start=4&prev=/images%3Fq%3Dpan%2Btadeusz%26svnum%3D10%26hl%3Dpl%26lr%3D%26client%3Dfirefox-a%26rls%3Dorg.mozilla:pl-PL:official%26sa%3DG
02:43:30 <nooga> http://www.literatura.zapis.net.pl/pan_tadeusz/gfx5.jpg
02:44:12 -!- nooga has quit.
03:45:55 -!- Keymaker has left (?).
06:13:36 -!- kipple has joined.
07:24:36 -!- jix has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:38:54 <{^Raven^}> GregorR: Grab the BFBASIC 1.50 source from CVS. It has got better line number support than 1.30
08:39:46 <{^Raven^}> The old version maxed out at 256 lines but the new code supports unlimited line numbers and is much faster
08:54:56 <{^Raven^}> GregorR: BASIC is not a trademark, it's an acromym of Beginners All Purpose Symbolic Instruction Code
08:55:38 <{^Raven^}> keymaker: BF is directly similiar to the machine language your average processor might execute
08:56:29 * {^Raven^} finishes replying to a conversation that happened last night :P
08:57:23 -!- jix has quit ("This computer has gone to sleep").
10:22:36 -!- SimonRC_ has joined.
10:23:14 -!- SimonRC has quit (Read error: 104 (Connection reset by peer)).
10:24:36 -!- SimonRC_ has changed nick to SimonRC.
10:32:00 -!- ihope has joined.
10:32:07 <ihope> Weird error message: d34D|o(K: /\/\AiN t|-|r3AD bl0CkED iN A $TRan93 WAY
10:32:26 <ihope> Well, not really, I mean, um...
10:33:48 <ihope> Urk! Inventing strangely-kinded void TyCon: ZCt{tc a2AN} (* -> *) -> * -> *
10:42:17 <SimonRC> Sorry, Uni completely fell off the net.
10:43:46 <ihope> @malbolge Syntax error!
10:44:07 <ihope> !malbolge Syntax error!
10:44:11 <EgoBot> invalid character in source file
11:29:43 -!- jix has joined.
11:40:33 -!- GregorR has quit (Read error: 110 (Connection timed out)).
11:58:36 -!- GregorR has joined.
12:01:08 -!- GregorR has quit (Read error: 104 (Connection reset by peer)).
13:54:29 -!- calamari has joined.
13:58:19 <jix> moin calamari
14:33:07 -!- Sgeo has joined.
15:09:13 -!- ChanServ has quit (ACK! SIGSEGV!).
15:11:59 -!- ChanServ has joined.
15:11:59 -!- irc.freenode.net has set channel mode: +o ChanServ.
15:40:19 -!- GregorR has joined.
15:47:45 -!- Keymaker has joined.
16:01:07 -!- ihope_ has joined.
16:01:57 <ihope_> What would happen if I popped in with XiRCON?
16:02:30 -!- CXII has joined.
16:17:03 -!- ihope has quit (Read error: 110 (Connection timed out)).
16:20:52 -!- CXI has quit (Success).
16:35:40 -!- CXII has quit (Read error: 104 (Connection reset by peer)).
16:36:58 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
16:43:38 <GregorR> I'll come back in three hours and ask what XiRCON is.
16:44:01 <Keymaker> i'll start writing the answer.. may take a few months
16:47:56 -!- CXI has joined.
17:01:40 <Keymaker> nothing happens here! except this kind of complaining lines! :p
17:03:37 <GregorR> I don't think I can figure out the "line numbering" concept from this code.
17:03:50 <GregorR> I think we need to force calamari to write it out as a paper.
17:03:53 -!- Sgeo has quit (Remote closed the connection).
17:04:33 <GregorR> Hmm, apparently saying "calamari" attracted calamari's attention.
17:04:41 <calamari> are you referring to the cvs code?
17:05:00 <calamari> brought me back from the dead.. err reading wikipedia
17:05:03 <GregorR> There's a BFBASIC CVS repository? X-P
17:05:26 <Keymaker> once in a while there was interesting things like dbc's message to aliens: http://meme.b9.com/cview.html?channel=esoteric&date=030207..
17:06:03 <Keymaker> although, i wasn't here then, i'm just reading old logs
17:06:11 <GregorR> I just googled BFBASIC >_>
17:06:14 -!- Sgeo has joined.
17:08:23 <calamari> one min, I think I have a bookmark to it
17:09:21 <calamari> http://cvs.sourceforge.net/viewcvs.py/brainfuck/
17:10:09 <calamari> isn't it a wonderful example of source that should never have been released?
17:11:02 <GregorR> So, no way we're going to convince you to explain your "line numbering" concept outside the realm of BFBASIC code? :P
17:11:21 <calamari> well, the problem is that I have a terrible memory
17:11:29 <calamari> and I've honestly forgotten the new scheme
17:11:35 <calamari> although I remember the old one
17:11:42 <GregorR> Not the good kind of awesome ;)
17:11:56 <calamari> the old one worked quite well, but was limited to 255 line numbers
17:12:12 <calamari> the new one did not have a limit, if I remember correctly
17:12:24 <GregorR> Hmm, 255 no-matter-what, or 255 for 8-bit BF?
17:12:34 <calamari> it's possible that Raven remembers it better than I do, because I explained it to him at the time
17:13:04 <GregorR> And I thought "Oh, whoops, I'm not going to get GNU Bison"
17:13:12 <GregorR> "I needed to put GNU in the search string"
17:13:23 <GregorR> WHOOOOOOOO! SOFTWARE BEATS NATURE!
17:13:45 <GregorR> I'll bet it has a .y file for C.
17:14:22 <Keymaker> hm, wouldn't like to meen an angry bison in nature
17:14:50 <GregorR> From the experiences I've had with bison, I have no idea how you'd make them angry.
17:14:54 <GregorR> Or, you know, make them move at all.
17:15:00 <kipple> I wouldn't like to meet an angry gnu either
17:15:26 <kipple> and definately not an angry Richard Stallman
17:18:44 <calamari> wow, what a cool idea.. wish I would have thought of it.. hmm, I did!
17:18:55 <calamari> okay here is the new line # scheme
17:19:30 <calamari> it uses an array of cells, one cell per linenumber
17:20:36 <calamari> right now it just does a linear search, but binary search could be done as well
17:21:29 <GregorR> Ohhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
17:21:52 <GregorR> So am I to understand that it has a sort of main loop that checks "what function should I be calling" and then goes to that code?
17:23:06 <calamari> I'm still reading, I may have improved it
17:23:07 <GregorR> So then, for a structural language like C, there would have to be a "line number" created for every function, every label, and everywhere a function can return to.
17:23:43 <GregorR> And assuming that we just divide the tape one more time (groups of five instead of four), there's no reason why there couldn't be infinite-many.
17:24:05 <GregorR> {stack} {heap} {func-to-call} {pos-in-stack} {walk}
17:25:16 <calamari> anyhow, since its being compiled, it knows how many line numbers there are so it can allocate memory appropriately
17:26:28 <kipple> BFBasic is written in java right?
17:29:15 -!- CXI has quit (Read error: 104 (Connection reset by peer)).
17:29:35 <kipple> is the BASUC parser written from scratch, or does it use an available library?
17:30:05 -!- CXI has joined.
17:30:11 <calamari> here is my original description of it
17:30:35 <GregorR> kipple: From scratch AFAICT
17:30:38 <calamari> Mar 12 23:45:17 <calamari> if each jump destination has its own memory location reserved for the test then it's a much simpler test
17:30:38 <calamari> Mar 12 23:47:43 <calamari> so to jump to label 101, you set the 101th memory element to 1. then a section of code looks
17:31:00 <calamari> Mar 12 23:50:03 <{^Raven^}> it looks like it could simplify things hugely, doing a simple check for a 1 in a memory location will definately be a lot more efficient
17:31:00 <calamari> Mar 12 23:50:22 <calamari> not even a 1.. just non-zero
17:34:35 <kipple> I'm thinking of implementing my new BASIC inspired esolang in java, but I guess I'll write the parser from scratch too. Shouldn't be too hard
17:35:22 <GregorR> What's with people not using parser generators :P
17:35:39 <GregorR> (Gregor says, having not used a parser generator for Glass or ORK :P )
17:36:04 <calamari> its fun writing your own parser, isnt it
17:36:25 <GregorR> Depending on the language.
17:36:26 <kipple> often as quick as learning a generic tool too
17:36:38 <GregorR> A) It wouldn't be fun to write a parser for, say C++.
17:36:45 <GregorR> B) It wouldn't be fun to write a bottom-up parser.
17:36:48 <calamari> okay, well, at least I feel a little better now :)
17:37:07 <calamari> hate it when I can't remember things
17:37:35 <calamari> does my description give you enough to go on?
17:37:45 <GregorR> Not that I'll go mind you.
17:37:49 <GregorR> Still a vague ambition ^_^
17:37:54 <calamari> the line "numbers" are pretty simple themselves
17:38:11 <calamari> because they just go to the appropriate cell and see if its non zero
17:38:21 <calamari> this is all inline throughout the code
17:38:41 <calamari> there isn't a central function that checks
17:39:24 <calamari> that is what I got wrong in my original description of it
17:39:36 <calamari> since it can just do a > and check the next cell
17:39:57 <calamari> that is where the list comes in
17:40:19 <GregorR> They'll be all over the place in C2BF (was it ever to be written) :P
17:40:52 <GregorR> The more I think about it, the more I think that blocks will have to be divided as such >_>
17:41:30 <GregorR> Though hopefully I'm wrong ^_^''
17:41:46 <calamari> well, its like a bunch of if's back to back
17:42:04 <calamari> same oncept as my original, but the test is much simpler in the array version
17:42:23 <calamari> since before I had to do an = comparison
17:42:32 -!- Keymaker has left (?).
17:43:00 <GregorR> And since we can assume that the tape is infinite, there's no issue with space :P
17:43:03 <calamari> of course, the best way to do things would be to re-compile the code
17:43:22 <calamari> conver everything to gotos and labels and then figure out what while loops they need
17:43:41 <GregorR> Well, that's essentially what has to be done anyway *shrugs*
17:43:41 <calamari> that would be the ultimate solution in terms of speed
17:44:26 <calamari> it's a complicated problem to solve, tho
17:44:49 <calamari> maybe you can solve it and you write the paper :)
17:47:45 <calamari> basically if you can write a spaghetti -> bf compiler
18:28:56 <GregorR> I just wrote a braindump onto paper.
18:29:01 <GregorR> And put it ... somewhere :P
18:34:23 <GregorR> As in, wrote everything I've thusfar considered about C2BF.
18:38:06 <GregorR> Any suggestions where I should upload this ...?
18:39:01 -!- CXI has quit (Read error: 131 (Connection reset by peer)).
18:39:56 -!- CXI has joined.
18:44:04 <GregorR> *sigh*, guess I'll put it on codu.org
18:44:20 <GregorR> Because I have very limited space and bandwidth there.
18:47:46 <GregorR> http://www.codu.org/c2bf.pdf
18:59:36 <GregorR> There's one problem that will make C2BF incapable of being more than a subset of C: Functions are pointers in C. Code has no memory location in C2BF.
19:05:02 <GregorR> Anybody else have any comments? :P
19:05:43 <GregorR> The goto table could actually be in the stack.
19:05:54 <GregorR> Then, a function pointer would be a pointer to that location in the stack.
19:05:58 <GregorR> And a call would be "set this to one"
19:29:24 -!- CXI has quit (Read error: 145 (Connection timed out)).
19:37:15 <GregorR> There's a C parser in YACC in GCC (naturally)
20:09:31 -!- ihope_ has quit (Read error: 110 (Connection timed out)).
20:36:11 <GregorR> Grrr ... I need to find a good compiler to rip the tokenizer and parser out of.
20:38:13 <GregorR> I think adding a backend to GCC would probably be more of a PITA than rolling my own XD
20:38:53 <kipple> but can't you rip the parser out of it?
20:39:49 <GregorR> I've been trying, but it seems to be very, very integrated.
20:40:31 <kipple> surely there must be some usable open source C-parser out there...
20:41:05 <GregorR> Actually, lemme be a bit more explicit.
20:41:09 <GregorR> This is what makes it so difficult.
20:41:18 <GregorR> Parser /and semantic checker/ :)
20:41:33 <GregorR> Semantic checkers are what make them so tied to the compiler.
20:46:12 <GregorR> Sun wrote a backend for GCC that compiles to C.
20:46:19 <GregorR> So it ought to be possible to write a BF backend ...
20:46:23 <GregorR> Maybe I ought to bark up that tree.
20:49:03 <GregorR> At this rate I'll end up actually writing C2BF.
20:54:05 <calamari> I forget what you are actually trying to do
20:54:29 <calamari> I think it has something to do with bf :)
20:54:53 <calamari> why don't you make a glass backend for gcc and get the feel for things :)
20:55:34 <GregorR> Because Glass would actually probably be /more/ difficult.
20:57:11 * GregorR reads "Porting GCC For Dunces"
21:01:58 <GregorR> I could emulate "registers" by carefully carrying them with me ...
21:02:02 <GregorR> But it would suck horribly ..........
21:02:09 <GregorR> In other words: GCC is probably not an option :P
21:08:49 * GregorR updates c2bf.pdf to have info on function pointers
21:41:40 -!- CXI has joined.
21:45:26 -!- Arrogant has joined.
21:56:08 -!- fungebob has joined.
22:00:05 -!- kipple has quit (Read error: 110 (Connection timed out)).
22:26:38 <GregorR> Anybody have any interest or care to make any comments on c2bf.pdf? :P
22:26:54 <GregorR> (I suppose, if I actually FINISHED c2bf, then suddenly interest levels would spike :P )
22:33:25 <GregorR> Hmm, since when can you not repeat enumerator names in different enums >_<
22:36:47 -!- lirtzy has quit ("\n").
22:37:19 -!- lirtzy has joined.
23:08:24 -!- Sgeo has quit.
23:21:11 <GregorR> Err, hmm - now that I think about it, a TOTALLY different implementation could do registers easily ^^
23:21:20 <GregorR> But I'll bet pointer dereferencing wasn't all that efficient?
23:36:38 <pgimeno> oh, I didn't know about gcc2c
23:43:59 <pgimeno> "gcc2c represents every local variable as an integer and type-casts it when it is used."
23:44:26 <pgimeno> maybe you can even forget about the c2bf2c step
23:45:06 <GregorR> It does come out of GCC2C pretty terribly :)
23:45:33 -!- Arrogant has quit (Read error: 113 (No route to host)).