←2006-01-31 2006-02-01 2006-02-02→ ↑2006 ↑all
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:28 <GregorR> :P
01:38:34 <Keymaker> i mean, try getting this program to brainfuck.. while((a-1!)==A || (b/3234.134900)>500.2){ ...
01:38:36 <Keymaker> :)
01:38:48 <Keymaker> *oops
01:39:04 <Keymaker> there should be 1)!= instead
01:39:28 <Keymaker> and || should be &&
01:40:35 <Keymaker> not to mention things like int data[30][20][20][10]; :)
01:40:57 * Keymaker 's head explodes
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:46 <Keymaker> well, we'll see about that XD
01:42:58 <GregorR> Mind you, I still have no intention of writing this any time soon ;P
01:43:04 <Keymaker> :)
01:43:29 <GregorR> Or, you know, ever.
01:43:50 <Keymaker> well, that might be good
01:44:32 <nooga> *and make liberal use of temporary variables*
01:45:00 <GregorR> ?
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:37 <GregorR> My thoughts:
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:21 <GregorR> Hahahaha
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:43 <GregorR> Well ...
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:14 <Keymaker> heh, yeah
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:33 <nooga> c2bf?
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:18 <nooga> what is c2bf?
01:51:32 <GregorR> A hypothetical compiler to compile C code into BF.
01:51:44 <nooga> ah, hypothetical
01:52:14 <nooga> [09:08] <Keymaker> actually by running the original c program through c2bf..
01:52:32 <nooga> by -> i'm :D
01:53:44 <nooga> will it be 32bit?
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:55:22 <nooga> umh
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:08 <nooga> basic hasn't?
01:57:28 <nooga> oO
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:50 <GregorR> Basic to BF
01:57:55 <GregorR> BF to Basic would be trivial :P
01:58:01 <nooga> yep :>
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:00:42 <GregorR> Relevence?
02:01:46 <nooga> hm?
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:02:43 <nooga> gulp
02:02:49 <Keymaker> :D
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:19 <nooga> or C#
02:03:23 <GregorR> If you're an infant, try C# :P
02:03:27 <GregorR> Nah, not an infant ...
02:03:31 <GregorR> Infants are too intelligent ...
02:03:37 <GregorR> If you're an Australopithicene.
02:03:39 <GregorR> Then try C#.
02:03:40 <Keymaker> the original c is enough..
02:03:42 <nooga> M$ gives C# <-> BASIC .NET translation thingy
02:03:52 <Keymaker> "gives"?
02:03:56 <nooga> use it and compare what's nicer
02:03:56 <Keymaker> how much $$?
02:04:04 <nooga> emule :D
02:04:17 <nooga> kidding
02:04:28 <nooga> try C# express
02:04:35 <nooga> or VS 2005 Beta
02:04:35 <GregorR> Mono
02:04:42 <nooga> though it's evil
02:04:44 <GregorR> Idonno about C# <-> BASIC ...
02:04:45 <Keymaker> really not interested :p
02:04:49 <GregorR> But BASIC is so awful.
02:04:52 <GregorR> And so is C#.
02:04:55 <nooga> yepp
02:04:56 <GregorR> So *shrugs*
02:04:56 <Keymaker> to note, i don't use basics
02:05:04 <Keymaker> except brainfuck
02:05:10 <Keymaker> in case you can call it basic
02:05:23 <GregorR> Depends on what you mean.
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:40 <Keymaker> well, i guess BASIC
02:05:43 <GregorR> That capitalization is not for emphasis btw.
02:05:46 <GregorR> It's a trademark.
02:05:52 <nooga> of billy
02:06:40 <Keymaker> so is brainfuck BASIC or not?
02:06:43 <nooga> EvilOS(tm)
02:08:26 <nooga> c2bf would be s breaktrough ;p
02:08:29 <nooga> a*
02:09:26 <GregorR> Keymaker: No, only BASIC is BASIC.
02:09:30 <GregorR> Hence the term "trademark"
02:09:34 <Keymaker> well, ok
02:10:29 <nooga> hehe
02:10:35 * nooga has drawn a comic
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:20 <nooga> guy*
02:13:24 <nooga> gui
02:13:25 <nooga> rotfl
02:13:28 <nooga> NOT*
02:13:33 <nooga> omigosh
02:13:36 <GregorR> That's not English :P
02:13:38 <Keymaker> hah
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:45 <Keymaker> i don't get it :)
02:14:59 <nooga> because you dont know AOD :>
02:15:08 <Keymaker> yep
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:15:34 <nooga> nailed :>
02:16:02 <GregorR> w00t
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:16 <GregorR> And it's in song form.
02:17:22 <GregorR> http://www.codu.org/Kill_Yourself.ogg
02:18:04 <nooga> who should kill himself/
02:18:19 <GregorR> Idonno *shrugs*
02:18:25 <GregorR> Whoever is moved deeply by that song :P
02:19:15 <nooga> hm
02:19:21 <nooga> piano is good
02:19:27 <nooga> and vocals
02:19:36 <nooga> but the rest is ... khem
02:19:57 <GregorR> Umm ..............
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:28 <nooga> ;p
02:25:33 <GregorR> I'm being nitpicky though, I know what you mean ;)
02:25:36 <Keymaker> and "werid" :)
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:26:31 <nooga> :D
02:26:36 <nooga> no wahy, huh?
02:26:41 <nooga> way*
02:26:52 <GregorR> Hmmmm
02:27:02 <GregorR> Spróbuj mówiæ 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:27 <nooga> not talk
02:27:30 <nooga> gosh
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:40 <nooga> pedestrians*
02:29:58 <nooga> pieszy = pedestrian, psy = dogs
02:30:06 <nooga> :D funny, eh?
02:30:32 <GregorR> *eyes glaze over*
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:21 <nooga> yep
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:41:42 <nooga> xD
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:43:52 <nooga> lol
02:43:55 <Keymaker> :)
02:44:01 <nooga> g2g (school)
02:44:04 <Keymaker> ah
02:44:05 <Keymaker> ok
02:44:07 <nooga> bye
02:44:09 <Keymaker> bye
02:44:12 -!- nooga has quit.
03:08:20 <SimonRC> hi
03:08:29 <Keymaker> hey
03:45:55 -!- Keymaker has left (?).
04:32:25 * SimonRC goes to a meeting.
06:13:36 -!- kipple has joined.
06:14:30 <SimonRC> hi
06:15:45 <kipple> hello
07:08:26 * SimonRC goes
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:32:28 <ihope> Yeah.
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
10:44:21 <ihope> !malbolge D
10:44:36 <ihope> Um, muahaha?
10:45:12 <ihope> !ps
10:45:14 <EgoBot> 1 ihope: malbolge
10:45:16 <ihope> !kill 1
10:45:16 <EgoBot> 2 ihope: ps
10:45:18 <EgoBot> Process 1 killed.
11:29:43 -!- jix has joined.
11:30:09 <jix> moin
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:54:42 <calamari> hi
13:58:19 <jix> moin calamari
13:58:54 <calamari> hi jix
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.
15:48:03 <Keymaker> hello, evening
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:03:01 <ihope_> XiRCON won't connect.
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:40:12 <Sgeo> XiRCON?
16:40:14 <Sgeo> Oh
16:40:21 * Sgeo is delayed
16:40:26 <Keymaker> :)
16:40:46 <Keymaker> not more than half an hour
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:46:28 <Keymaker> grhrrrarharh spam!
16:46:37 <Keymaker> in e-mail box, that is
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:07 <calamari> lol
17:04:33 <GregorR> Hmm, apparently saying "calamari" attracted calamari's attention.
17:04:37 <Keymaker> hehe
17:04:41 <calamari> are you referring to the cvs code?
17:04:47 <calamari> yeah it did
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:15 <calamari> yeah on sourceforge
17:05:24 <GregorR> Bloody death kill.
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:05:30 <calamari> bf.sourceforgewt.net I think
17:05:35 <calamari> -wt
17:06:03 <Keymaker> although, i wasn't here then, i'm just reading old logs
17:06:08 <Keymaker> :9
17:06:11 <GregorR> I just googled BFBASIC >_>
17:06:14 -!- Sgeo has joined.
17:07:57 <Keymaker> what is this cvs?
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:09:30 <GregorR> Yeah, this code.
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:34 <GregorR> Ahhhhhh, awesome.
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:12:40 <calamari> for 8-bit
17:12:48 * calamari checks his raven log
17:12:51 <GregorR> HAHAHAHAHA
17:12:54 * GregorR just googled Bison.
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:17 <GregorR> First result: GNU Bison.
17:13:21 <Keymaker> yah
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:31 <Keymaker> *meet
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:14:58 <GregorR> Except to eat.
17:15:00 <kipple> I wouldn't like to meet an angry gnu either
17:15:03 <Keymaker> hehe
17:15:04 <GregorR> Heh
17:15:26 <kipple> and definately not an angry Richard Stallman
17:15:46 <Keymaker> who's stallman? /joke
17:16:08 <GregorR> Stall[m]an *heh*
17:16:12 <GregorR> Not to insult RMS.
17:16:13 <GregorR> Who rocks.
17:16:14 <GregorR> But you know :P
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:19:45 <calamari> then, a goto sets a 1
17:19:49 <calamari> in the correct cell
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:22:18 <calamari> basically
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:26 <calamari> yes
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:25:34 <GregorR> Right.
17:26:28 <kipple> BFBasic is written in java right?
17:28:31 <GregorR> Yeah.
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:29:43 <kipple> BASIC I mean
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:30:38 <calamari> something like [[-] ... ]
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:31:46 * calamari checks his source now
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:19 <GregorR> Quite ^_^
17:36:22 <GregorR> Well.
17:36:25 <GregorR> Depending on the language.
17:36:26 <kipple> often as quick as learning a generic tool too
17:36:28 <GregorR> And type of parser.
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:36:49 <GregorR> Otherwise, yeah.
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:41 <GregorR> Yes, definitely.
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:27 <GregorR> Naturally.
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:50 <calamari> it is also why gosubs are bad
17:39:57 <calamari> that is where the list comes in
17:40:09 <GregorR> Hah
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:42:42 <GregorR> Right
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:15 <GregorR> What do you mean?
17:43:22 <calamari> conver everything to gotos and labels and then figure out what while loops they need
17:43:26 <GregorR> Ohoh.
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:43:56 <calamari> and memory usage
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:45:32 <GregorR> Hah
17:47:45 <calamari> basically if you can write a spaghetti -> bf compiler
17:47:58 <calamari> intelligently
18:28:51 <GregorR> OK
18:28:56 <GregorR> I just wrote a braindump onto paper.
18:28:58 <GregorR> Now I will scan it.
18:29:01 <GregorR> And put it ... somewhere :P
18:32:53 <kipple> braindump?
18:34:23 <GregorR> As in, wrote everything I've thusfar considered about C2BF.
18:34:31 <kipple> ah
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:43:55 <GregorR> No suggestions? :P
18:44:04 <GregorR> *sigh*, guess I'll put it on codu.org
18:44:12 <kipple> yeah, why not?
18:44:20 <GregorR> Because I have very limited space and bandwidth there.
18:44:28 <kipple> ah
18:44:33 <GregorR> Because I'm cheap 8-D
18:44:55 <kipple> is it a large file?
18:45:06 <GregorR> 4.5MB
18:47:46 <GregorR> http://www.codu.org/c2bf.pdf
18:55:44 <kipple> good luck :P
18:56:01 <GregorR> Thanks >_<
18:56:02 * GregorR slaughters.
18:58:51 <GregorR> Hmm.
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:17 <GregorR> OHOHOHO
19:05:19 <GregorR> Unless ...
19:05:23 <GregorR> Ooooh, this is tricky.
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:06 <GregorR> Whoot
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:37:39 <kipple> why not gcc?
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:06 <GregorR> Hmmmm
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:48:54 <GregorR> Bah.
20:49:03 <GregorR> At this rate I'll end up actually writing C2BF.
20:49:04 <GregorR> Grr.
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:55:38 <GregorR> Yes, you heard me.
20:55:41 <GregorR> Actually probably.
20:55:46 * GregorR rocks at English.
20:55:57 * calamari rocks more :(
20:57:11 * GregorR reads "Porting GCC For Dunces"
21:01:48 <GregorR> Hmmmmmmm ......
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:15:07 <calamari> I had registers in bfasm
23:20:58 <GregorR> How?
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:31:33 <lament> efficiency? :)
23:31:35 <lament> brainfuck? :)
23:31:40 <GregorR> Heh
23:33:08 <pgimeno> C code obfuscator: c2bf2c
23:33:18 <GregorR> lol
23:33:55 <GregorR> Also inefficient-izer.
23:34:20 <GregorR> c++: gcc2c-g++ > c2bf
23:36:38 <pgimeno> oh, I didn't know about gcc2c
23:37:50 <GregorR> Sun made it.
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:44:57 <GregorR> Hah
23:44:59 <GregorR> True
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)).
←2006-01-31 2006-02-01 2006-02-02→ ↑2006 ↑all