00:00:00 --- log: started forth/05.05.09 03:48:58 --- quit: Robert ("<3") 03:53:43 --- quit: bbls () 06:07:24 --- join: tathi (~josh@pcp01375108pcs.milfrd01.pa.comcast.net) joined #forth 06:12:00 --- quit: swalters (Ping timeout: 14400 seconds) 06:40:38 --- quit: Frek ("Client exiting") 06:42:53 --- join: Frek (~anvil@h68n2fls31o815.telia.com) joined #forth 06:54:03 --- quit: Frek ("Client exiting") 06:58:38 --- quit: KB1FYR (Read error: 110 (Connection timed out)) 06:59:56 --- quit: tathi ("rebooting") 07:12:18 --- join: Frek (~anvil@h68n2fls31o815.telia.com) joined #forth 07:13:54 --- join: Herkamire (~jason@c-24-218-95-147.hsd1.ma.comcast.net) joined #forth 07:13:54 --- mode: ChanServ set +o Herkamire 07:20:14 --- join: PoppaVic (~pete@0-1pool110-228.nas12.pittsfield-township2.mi.us.da.qwest.net) joined #forth 07:20:35 Any lifesigns? 07:21:09 I'm in a conceptual-quandry 07:21:30 'morning 07:21:36 hiya ;-) 07:21:47 :) 07:21:50 what can I ponder with you? 07:22:07 Here's my dilemma... I got peeved with lex/yacc.. SO, I began cogitating an interface layer. 07:22:42 I saw and see no reason NOT to have an extensible "dictionary" of 'words' composed of heads and bodies 07:23:15 however, I am getting mindfucked when I try to consider headers to the code, because of conceptual issues. 07:23:17 fancy macro processor? 07:23:50 actually, I'm writing a minish(ell) and that will be used by my "metabuilder" - because gnu autoshit makes me sick 07:24:32 I'm not farmilliar with minishell 07:24:41 So, in the end I'll have at least 2 programs, with their own dictionaries, which then can work in lexer-time, parser-time and pcode-time 07:25:23 oh, I was thinking tex. lex is something entirely different isn't it 07:25:25 np - "minish" is my own non-"general purpose" shell program. Does the minimum needed to get access from C out to 'shell', etc. 07:25:38 yeah, lexers/scanners, parsers/rules 07:25:45 right 07:26:10 I decided to dive in because I was just TIRED of writing my own parsing-systems for decades 07:26:12 are you parsing anything in particular? 07:26:21 ascii-text. 07:26:30 Primarily line-oriented. 07:26:34 or do you want to make a general parser, that you can easily explain syntax to? 07:26:41 right 07:27:15 ok, I got the big picture 07:27:20 the .l lexer-source sorta' codifies my feelings for captializations/cases and such. SO, we can steer where we go and how 07:27:40 BUT, here is where I start to bog down... 07:29:59 lost me. 07:30:06 In trying to best-use memory, I am decomposing structures like a madman... Even names can be isolated, so.. I have heads that can point at names & bodies; bodies can point at heads; and bodies can have payloads AND a virtual-table of funcs. Now.. My prob is, it LOOKS like the "dictionary" must be a global, program-wide ptr/var, but it seems like the next level more specific is a "script"? 07:30:09 ahh 07:31:24 I know from my ancient forth and ever-C, that the NAME of a thing - living in a thesaurus - is often the first, best step.. So, I'm trying to clarify my own head ;-) 07:32:28 right 07:32:32 what about "script"? 07:32:34 FICL is an interesting idea, but that FORCES the RPN we use in forth. I'm trying to genericize the whole shebang 07:32:56 yeah, forth dictionary is looked up by name 07:33:17 the dictionary can be devided into sections, and you can choose what sections (vocabularies) you search 07:33:29 that's my prob. 'script' almost makes sense - since you can mean terms/statements or the whole textfile. I'm leaning that direction because 'vm' doesn't make sense. 07:33:46 so you could make a seperate one for the symbols/functions in the parsed language, and only search that 07:33:53 right, absolutely - I plan to incorporate the only/also namespace-solution 07:34:57 in fact, the way I have the prior generation of source, the lookup is an array of balanced-tree roots based on ascii-value 07:35:24 right 07:35:56 forth dictionaries are usually very simple (just arrays or linked lists) 07:36:06 I also suffer from another brainfart.. I'm seriously tempted to use opaque-types as much as possible, because I already know the users can be spastics 07:36:08 partly because they must be searched in reverse order 07:36:45 right, the balanced-tree approach isoverkill for simple vocs/dict, but I am trying to think of containers and such as well 07:36:51 terminology... opaque-types means they have to specify type, or they don't have to know? 07:36:58 the latter 07:37:20 typically, you define a struct in the header - and they can see and tinker all of it. 07:37:27 I still don't understand the script problem. 07:37:47 to be honest, the 'script' term is just a mind-boggle. 07:38:32 I think of script as meaning a programming language that isn't compiled native 07:38:35 what is it we would call a c-like macro in Forth, or a colon-word? I think 'script' or 'pcode' is about the closest we get. 07:38:41 often designed primarily for calling other things 07:38:44 --- join: bbls (~bbls@80.97.121.4) joined #forth 07:38:48 exactly 07:38:53 hello 07:38:57 lo 07:38:59 hi bbls 07:39:10 hi Herkamire 07:39:15 hi PoppaVic 07:39:58 you're talking about propreccessor/macro stuff? 07:40:04 like #define in c? 07:40:12 Herkamire: interestingly, the idea of at least 1 vtable of func-ptrs per 'word' is sorta'-kinda' like defered-words and lookups 07:40:45 not sure that helps 07:40:46 Herkamire how would you choose the word to call? 07:41:04 bbls: what context? 07:41:06 Herkamire: that's my point, I guess.. Yeah. minish will allow for preprocesser-commands and keywords, and then - based on rules - filenames, etc. 07:41:19 Herkamire "the idea of at least 1 vtable of func-ptrs per 'word' " 07:41:30 bbls: my code ;-) 07:41:43 PoppaVic ah :) 07:41:50 short paste... 07:41:54 typedef int (*Tau_Lexer) (VM *vm, cchar *s, cchar *ss); 07:41:54 typedef char* (*Tau_Rules) (VM *vm, int argc, ...); 07:41:54 typedef int (*Tau_Pcode) (VM *vm); 07:41:58 PoppaVic: interesting problem :) 07:42:04 VM is the wrong term, of course 07:42:27 Herkamire: yeah, tis why I beenspending weeks on it before finishing the 'shell' 07:42:39 ok, now I get what you're saying about script. this adds a whole nother layer, or sometimes pass through the sources 07:42:47 riiiight 07:43:11 ..and don't forget: we live with the malloc/free universe ;-) 07:43:16 it's hard to solve the general problem, since there is no such thing 07:43:46 lots of forth have allocate/free 07:43:52 yeah, if I peer too hard at forth I paint myself into a corner 45 degrees from peering too hard at C ;-) 07:44:11 i'm trying to implement lisp operations in forth 07:44:51 bbls: what sort of lisp operations? 07:45:20 cons, car, etc 07:45:25 Herkamire: so, what I have makes a modicum of sense then? I am not completely mind-melted? Just issues of newness? 07:45:28 and lists 07:45:33 bbls: lists :) 07:45:51 so it will be a kind of lisp in forth 07:46:03 something similar to factor 07:46:04 PoppaVic: seems to me you're still at the stage of working out how it will go about doing things 07:46:12 Yeah, assuredly 07:46:15 PoppaVic: at least that's as far as my understanding has reached 07:46:37 I felt I'd share though, seeing if some mind could pierce my own fog ;-) 07:46:38 seems like now you have to make a model of how languages are parsed 07:46:51 bbls: cool 07:47:09 bbls: how are you implementing lists? 07:47:13 Herkamire: not really... lexers, parser or forth words - should make no diff 07:47:30 Herkamire internally? or you are asking about syntax? 07:47:36 they need to "read and feed" to do "feed and read" 07:47:40 bbls: internally 07:47:41 PoppaVic if you find it interesting, i have a stack of parsers 07:47:58 PoppaVic each time a word is not found, the stack of parsers is consulted 07:48:04 bbls: thanks, working in between lex/yacc for the nonce 07:48:18 right - as it should 07:48:23 PoppaVic: I mean like how you will handle macros. will you do two passes? C macros are handled in the first pass, and output source code. 07:48:27 PoppaVic so you can implement things like floating point, strings in libraries 07:48:35 Herkamire: exactly. 07:48:37 PoppaVic: forth macros go in the same pass, and output machine code, or do anything 07:48:44 I know 07:48:50 Herkamire using the classic lisp cells, with two pointers car and cdr 07:49:43 bbls: you doing dynamic allocation of any kind? 07:50:53 Herkamire yes, sure 07:51:36 bbls: cool. you must have a 'type' field in there too right 07:51:38 is there a decent here/embed/growth system somewhere? 07:51:50 bbls: because list elements can be numbers, strings, lists etc 07:52:12 PoppaVic: a what? what's it do? 07:52:22 Herkamire yes 07:52:32 merging the malloc/free usinverse with here, comma, etc 07:53:08 Seems likely I'll need to subvert such a beast 07:53:46 oh 07:53:54 not that I know of. sounds easy enough to make though 07:54:09 yeah, very, very dangerous and messy,though 07:54:15 want a word like c, that put's a byte into the last allocated mem chunk? 07:54:24 terrifically wasy to lose a ptr, or leak 07:54:38 same idea, yeah 07:55:07 seems to me it would be pretty simle and everything so long as the mem chunks don't need to grow 07:55:18 I'm thinking that I'll work in like a 4K buffer and then do a realloc() and reset on 'done' 07:55:49 I think you'll have to manage memory a bit by hand anyway 07:56:02 one thing I'm nearly solid on: no forget/mark-type stuff 07:56:04 if you design the memory management really well, your program will be very nice 07:56:10 thanks. 07:56:29 while it's handy to have much of your memory manadement done for you 07:56:31 ... 07:56:36 Yeah, I am cogitating wrappers to track our need-to-free universe 07:56:43 it often leads to slow and or crappy programs 07:56:55 I gotta run to the bank. bbiab 07:57:00 laters 08:30:20 hmm, brainfarts... Sometimes, you NEARLY andalmost get an idea.. 08:35:57 --- join: ecraven (nex@A-036.AHL.Uni-Linz.AC.AT) joined #forth 08:36:17 hey #forth :) 08:36:56 would anyone of you here know of papers dealing with compilation of lisp/scheme to a stack machine? 09:02:24 not I 09:05:38 --- join: snoopy_1711 (snoopy_161@p54A7EF64.dip.t-dialin.net) joined #forth 09:19:21 --- quit: PoppaVic ("Pulls the pin...") 09:20:00 --- join: Robert (~snofs@c-f778e055.17-1-64736c10.cust.bredbandsbolaget.se) joined #forth 09:20:43 --- join: Topaz (~top@sown-85.ecs.soton.ac.uk) joined #forth 09:29:36 --- quit: Snoopy42 (Read error: 110 (Connection timed out)) 09:29:55 --- nick: snoopy_1711 -> Snoopy42 09:36:36 --- join: KB1FYR (~Alex@196-220.suscom-maine.net) joined #forth 10:12:45 --- join: arke_school (apache@84.218.23.160) joined #forth 10:19:36 --- join: madwork (~madgarden@derby.metrics.com) joined #forth 10:19:54 teh hies 10:20:07 tehy heloes 10:20:46 :) 10:20:51 whats teh upz0r4g3? 10:21:10 im teh wroknig!!!11 :(((((9 10:21:21 Hey madwork 10:21:27 Hi Robert! 10:21:32 ltnsm8etc 10:21:57 TEH HIES ROBTROB!!1111opnjoneoneoe 10:22:46 --- quit: arke_school ("CGI:IRC (EOF)") 10:23:32 How tired I am of !!!111oneoneone 10:24:19 What's !!!111oneoneone? 10:25:27 Silly. 10:27:34 : !!!111oneoneone Silly. ; 10:27:39 Ah, I understand now. 10:28:06 Congratulations :) 10:28:14 So, what kept you away for so long? 10:28:23 --- part: ecraven left #forth 10:29:00 --- join: bbls1 (~bbls@80.97.121.4) joined #forth 10:29:38 I've just forgot to /join #forth when i connect. :) Usually I just idle in #c4th-ot 10:30:03 Aha. 10:30:23 * Robert recently decided to get an autoconnect list again. 10:32:51 * madwork should do that too. 10:34:17 But today I'm happy, because the teacher said my Java project passed! 10:34:43 If I didn't know he's too lazy to actually read the code, I would have been worried. 10:35:03 :D 10:35:07 What was it? 10:38:15 A rocket simulation game, you're supposed to write control software for the on-board computer... 10:38:42 I wrote 5% of the code, and the overall game pretty much sucked. 10:40:23 Heh. 10:41:00 At least we didn't make a semi-interactive thing using 90% ripped Warcraft 2 material, like another group. 10:41:21 Like Warcraft: Myst or something? 10:41:26 Anyway, the moral of the story is - avoid Java and Java teachers. 10:41:32 Hm? No idea what that is. 10:41:39 I've been avoiding Java with all of my heart. 10:41:52 Good for you. 10:41:56 --- quit: bbls (Read error: 113 (No route to host)) 10:42:00 In highschool, my big project was a game too. It was a side-view dungeon platformer thingy. 10:42:22 Written in C. 10:42:23 I made a Forth OS for the high school project, that was a lot more fun. 10:42:29 On QNX 10:42:36 Yes, that would be fun of course. 10:42:45 I didn't know anything about Forth back then, nor could I have. 10:42:53 pre-internet and all. ;) 10:43:03 Oh, you're one of those ancient beings.. 10:43:06 Yea. 10:43:12 I'm 33. 10:43:15 Er, 32. 10:43:21 33 in November. 10:45:06 I would like to do a remake of that dungeon game. It was actually fun. 10:45:58 So, tell me about the Forth OS you made. 10:53:43 Uhm, not much to say.. it kind of sucked. 10:54:00 http://robos.org/f/index.html 10:55:04 * Robert is working on a space adventure game (well, actually I'm not sure what kind of game it will be, but anything where you can enter a planet's atmosphere and land must be good. 11:05:57 --- join: AlexF (~Alex@196-220.suscom-maine.net) joined #forth 11:08:43 Robert, yes I've often thought of doing something along those lines as well. Great concept. 11:09:06 hello 11:09:14 i've started a blog 11:09:20 anyone wants to read it? 11:09:24 http://ifarcas.blogspot.com/ 11:11:46 --- nick: bbls1 -> bbls 11:22:54 --- quit: KB1FYR (Read error: 113 (No route to host)) 11:23:09 --- join: tathi (~josh@pcp01375108pcs.milfrd01.pa.comcast.net) joined #forth 11:34:09 --- quit: Topaz (Read error: 113 (No route to host)) 11:40:23 --- quit: AlexF (Read error: 113 (No route to host)) 11:46:41 --- join: bbls1 (~bbls@80.97.121.4) joined #forth 11:49:53 --- nick: bbls1 -> bbls|eat 11:53:16 --- join: I440r (~mark4@216-110-82-203.gen.twtelecom.net) joined #forth 11:53:16 --- quit: I440r (Remote closed the connection) 11:54:19 --- join: I440r (~mark4@216-110-82-203.gen.twtelecom.net) joined #forth 12:04:21 --- nick: bbls|eat -> bbls1 12:05:07 --- quit: bbls (Read error: 110 (Connection timed out)) 12:05:13 --- nick: bbls1 -> bbls 12:27:57 --- quit: bbls () 12:34:59 --- join: arke (f2@bespin.org) joined #forth 13:18:03 --- join: KB1FYR (~Alex@196-220.suscom-maine.net) joined #forth 14:33:09 --- join: slava (~slava@CPE00096ba44261-CM000e5cdfda14.cpe.net.cable.rogers.com) joined #forth 14:33:18 Hi. 14:33:31 did you ever finish that optimizing forth compiler of yours? :) 14:34:28 No, been busy with other things (school-enforced Java :( and a game), but I was just thinking about continuing working on it. 14:34:47 my compiler is faster than gforth-fast now :) 14:34:54 but gforth-fast ain't that fast, really 14:35:10 Hehe. 14:35:27 Do you compile to native x86 code? 14:35:38 yes 14:36:03 386 compatible, or with modern extentions? 14:36:17 extensions 14:36:19 soon i'll be compiling floating point and i don't want to use x87 floating point 14:36:28 sse is better :) 14:36:45 :) 14:36:58 Hm, I'm not into post-80s x86. 14:37:25 What's your compiler written in? 14:37:28 lol 14:37:28 C 14:37:28 factor 14:37:29 :) 14:37:31 no 14:37:32 oh? 14:37:32 nice 14:37:55 hardly anything is in C 14:38:11 Cool. 14:38:31 arke, there's 63 primitives, written in assembly :) 14:38:39 on powerpc its still all calling C code though, i have to fix that soon :) 14:38:43 Thats almost 64! 14:38:47 :-P 14:38:50 :) 14:39:04 so i just noticed kc5 is developing fts/forth agian 14:39:11 but its based on retro this time 14:39:16 nope 14:39:18 not anymore 14:39:19 :) 14:39:20 i remember last time it was self hosting, i wonder why he ditched that 14:39:43 it will 14:39:53 but right now hes working on a research operating system 14:39:54 ls l4 any good? 14:39:57 its written in c++ 14:40:00 he thinks its the world. 14:40:17 well, i value his opinion more than most people's... but my first reaction is: eew c++ :) 14:40:30 how do you call c++ from forth? 14:40:31 Hehe. 14:40:39 does it have a sane api with interrupts and stuff? 14:40:43 or just c++ libraries 14:40:44 its not using any features from C++ 14:40:50 and the api is called with call gates 14:40:54 The original L4 is in asm, isn't it? 14:41:06 I think so. 14:41:12 STOP IT. 14:41:18 * arke only knows a bit about l4::pistachio, thats all. 14:41:19 ?? 14:41:22 what? 14:41:30 Robert is having a freakout, its ok 14:41:44 Hrmpf. 14:41:46 * arke slaps Robert :) 14:42:07 slava: Does your compiler do any exotic optimizations? 14:42:34 Robert, it does partial evaluation, but this needs more work 14:42:37 yeah, l4 has a sane api 14:45:22 sse2 is as fast as x87 floating point, except it always works on groups of 4 values 14:45:38 this means there's a lot of optimization potential 14:46:35 Sounds nice. 14:46:57 Too bad most computers don't support it ;) 14:48:19 ;) 14:48:20 SSE also has integer instructions. if you load 128 bits into a MMX register, you can use PSHUFW to shuffle them in an arbitrary way in one instruction 14:48:29 i mean, that's *designed* for stack languages :) 14:48:42 neat. 14:48:42 a '2swap' in one cycle? 14:48:53 well, or any stack operation, with enough trickery 14:49:18 hrm, that would be neat. 14:49:31 if you know you're running on SSE2 compatible machine, you can make a HELLA fast forth 14:49:34 :) 14:50:11 Which fits well within the L1 cache. 14:50:25 what i'm going to do is just disable the optimizations unless sse2 is present 14:52:14 * Robert uses his second goto in this C program. 14:52:49 hehe 14:53:46 slava: thats horrible, lol 14:53:53 arke, what? 14:54:24 --- join: Raystm2_ (~vircuser@adsl-69-149-43-32.dsl.rcsntx.swbell.net) joined #forth 14:54:29 --- quit: Raystm2_ (Remote closed the connection) 14:54:56 slava: no optimizations without sSE2 14:55:10 arke, i didn't say *no* optimizations without SSE2 14:55:16 arke, no *SSE2* optimizations with SSE2 14:55:17 that's logical 14:55:20 oh. 14:55:22 gaah. 14:55:23 :) 14:55:34 --- nick: Raystm2 -> tiff 15:37:47 --- join: crc (crc@pool-70-16-152-81.phil.east.verizon.net) joined #forth 15:37:47 --- mode: ChanServ set +o crc 15:51:00 --- quit: arke ("chris dot r dot walton at gmail dot com") 16:16:58 --- nick: tiff -> Raystm2 17:05:20 --- join: Sonarman (~cleetus@adsl-64-169-94-119.dsl.snfc21.pacbell.net) joined #forth 17:34:34 --- quit: tathi ("leaving") 18:05:32 --- join: swalters (~swalters@2416457hfc118.tampabay.res.rr.com) joined #forth 19:30:02 --- join: tgunr (~davecl@vsat-148-65-228-90.c012.g4.mrt.starband.net) joined #forth 20:21:58 --- part: slava left #forth 21:12:11 --- quit: I440r (Ping timeout: 14400 seconds) 21:51:45 --- quit: Sonarman (Read error: 110 (Connection timed out)) 22:35:11 --- join: bbls (~bbls@80.97.121.4) joined #forth 23:28:33 --- quit: Herkamire ("off to bed") 23:42:25 --- quit: madwork (Read error: 110 (Connection timed out)) 23:59:59 --- log: ended forth/05.05.09