00:00:00 --- log: started forth/03.05.03 00:35:56 --- quit: njd ("praetorian") 00:37:04 --- quit: divgrad (Read error: 54 (Connection reset by peer)) 00:38:49 --- quit: Speuler (Remote closed the connection) 00:55:36 --- join: ramnull (~nicad@12-241-145-39.client.attbi.com) joined #forth 01:50:00 --- quit: ramnull ("This isn't Happy Hour!") 02:52:05 --- part: a7r left #forth 03:35:32 --- join: Speuler (~Speuler@mnch-d9ba449a.pool.mediaWays.net) joined #forth 05:52:43 --- join: ramnull (~nicad@12-241-145-39.client.attbi.com) joined #forth 05:56:08 --- quit: ramnull (Client Quit) 06:19:20 --- join: ramnull (~nicad@12-241-145-39.client.attbi.com) joined #forth 06:19:33 Everyone here lurking? 06:20:28 Yes 06:21:06 Apparently ALMOST everyone. Heh. 06:21:15 Just taking a break. 06:21:39 Got the Framebuffer running under IsForth. 06:22:23 Neat 06:23:04 Problem is, whenever I exit a draw procedure, I dumps my terminal into the deep dark. I gotta reboot in order to get the terminals working again. 06:23:37 i.e. I have to type shutdown -r now blind. 06:24:50 I just got an idea. brb 06:24:52 --- quit: ramnull ("This isn't Happy Hour!") 06:39:35 --- join: PoppaVic (~pfv@s61.waters.gtlakes.com) joined #forth 06:42:48 --- join: sifbot (~sifforth@h000ae66d7c31.ne.client2.attbi.com) joined #forth 06:42:49 Type sifbot: (or /msg sifbot to play in private) 07:04:41 --- join: ASau (~asau@158.250.48.197) joined #forth 07:04:50 Good evening! 07:07:10 --- quit: ASau (Client Quit) 07:13:55 Hello 07:29:24 Hi :) 07:30:07 lo' ;-) 07:53:55 --- join: gilbertdeb (~gilbert@fl-nked-ubr2-c3a-74.dad.adelphia.net) joined #forth 07:55:16 http://home.hccnet.nl/a.w.m.van.der.horst/forthlectureA.html 07:56:11 what on earth is the Stallman convention? 07:56:26 No idea at all - it sounded like bridge, to me 07:58:25 http://home.hccnet.nl/a.w.m.van.der.horst/forthlectureD.html (stallman convention) 07:58:38 ah I found it. 07:58:52 We'll using Stallman's convention for the comment. I have 07:58:52 adapted it to Forth a little bit. 07:58:52 Stallman (me too) is of the "I'm not your dog" type. 07:58:52 That means that only fully formed grammatical sentences are allowed 07:58:52 in the comment. 07:59:36 heh - is that all? 07:59:40 yep. 07:59:49 geezus - People still scare me.. 08:00:33 hehehe. 08:00:53 In other news, Douglas Adams learnt forth. 08:01:01 heheha 08:01:02 he didn't write anything in forth though. 08:01:30 I've been looking around for a couple days now - for a decent set of string words.. It's just amazing how BAD most shit is. 08:01:52 decent set of string words? 08:01:59 you mean a string dialect of sorts? 08:02:26 s/of sorts/kinda thing/ 08:02:27 :D 08:02:41 well, yeah kinda-sorta' 08:03:07 In some cases, I find good 'names' - but the code sucks - and then vice-versa. 08:05:25 ..I do think I'll try to adopt those regex things, and - of course - the bnf.fs file.. But, generally speaking, there just ain't a "good" set of string words - heh.. C has better funcs, actually ;-) 08:05:52 biggest selling point of C isn't it? 08:06:15 not for strings, no: everyone on the planet whines about 'em 08:06:28 whats best for strings then? SNOBOL? 08:06:47 I suspect a lot of folks would holler "Perl", oddly. 08:07:02 ah sed/awk :D 08:07:08 yeah 08:07:40 Well, for "autofoo" - regardless which way it grows - I simply MUST get together a decent string lexicon. 08:08:06 so you'll have to read the perl sources? 08:08:15 no way. 08:08:35 I'd almost prefer to relearn asm than suffer perl 08:09:14 Mostly, I'm thinking of what you'd want to do with a string, why, and then how. 08:09:54 in my usual universe, I can almost always get it all done with fprintf/sscanf and the occaional pointer-loop 08:10:14 eeek. pppoointers 08:10:21 But, of course, when dealing with dirs and files this gets a touch more complicated. 08:10:55 I wonder how snobol'll stack up against perl in string handling. 08:11:07 of course, I know neither language :D 08:11:13 no idea - I can only be happy it's going/gone the way of cobol 08:11:28 cobol is still quite alive and well I believe. 08:11:46 yeah - in very old places & code. 08:12:10 I think its the same sort of hope people express for fortran. neither are going anywhere. 08:12:47 Which is fine with me - as long as I never have to see it again. 08:14:27 --- join: mur (murr@baana-62-165-187-213.phnet.fi) joined #forth 08:14:49 terve mur 08:15:01 terve gilbertdeb! 08:15:21 what's up? 08:15:33 PoppaVic's string headaches. 08:15:46 :) 08:15:53 ;) 08:16:08 Not really "headache" as much as it's just really a noxious situation. 08:16:10 Terve 08:16:49 terve Robert! 08:25:54 --- join: tcn (~tcn@tc1-login18.megatrondata.com) joined #forth 08:25:55 --- quit: sifbot (Read error: 110 (Connection timed out)) 08:26:20 hey, anyone here? 08:27:10 yep 08:28:41 hmm.. you were talking about something interesting the other day 08:30:08 Hmm? Whazat? 08:31:52 good question :) 08:32:04 well, I just released Retro for Linux 08:32:30 I dunno' - I was back & forth into #c all day as well.. Only forth-stuff I have cooking is "autofoo" and such. 08:33:21 retro.. Url? 08:33:31 bespin.org/~tom 08:34:49 ok, lemme try that.. I'll have to use the phone in few, though - but Shall Return ;-) 08:35:03 I hate incomplete urls 08:35:19 heh 08:35:37 Xchat can seriously spoil yah ;-) 08:36:01 tinyirc won't :) 08:36:21 bah ;-) What? no docs visible for this? shame! 08:37:57 OK. Downloaded.. After I make a couple calls, shall return.. Much more cogitation to do on strings and such. 08:38:03 --- quit: PoppaVic ("brb - stay tuned") 09:02:38 hi 09:03:12 hey 09:03:27 gilbertdeb: you read douglas adams ? 09:03:45 * Speuler reading the log 09:09:55 t'is getting more difficult to connect to freenode 09:10:17 seems the ident timeout has been shortened 09:11:10 *** No identd (auth) response 09:11:10 --- Closing Link: (Connection Timed Out) 09:11:10 --- Disconnected (Remote host closed socket). 09:11:17 went on for on hour or so 09:11:43 * Speuler doesn't run identd 09:12:06 went to oftc then 09:12:20 got in straight away 09:14:33 --- join: PoppaVic (~pfv@s132.waters.gtlakes.com) joined #forth 09:14:53 Back in the saddle 09:15:25 tcn: you ever remember whatever it was? ;-) 09:19:14 heh.. i've been looking at the logs.. can't see anything that really jumps out 09:19:23 s'ok ;-) 09:20:24 hm.. forth/c interaction, maybe 09:20:39 ahh.. Yeah, that's always fun. 09:21:28 shit, maybe if I wasn't in such a hurry to this done with and get outside, I could remember what I was thinking :) 09:21:37 heh 09:21:57 just a sec.. gotta fire off a mail to i440r :) 09:21:58 S'ok, I'm taking a break to try working with qcad, myself. 09:23:48 --- join: wossname (wossname@HSE-QuebecCity-ppp80751.qc.sympatico.ca) joined #forth 09:24:51 howdy 09:25:10 allright, done with that email 09:25:22 heh 09:26:09 so you've been talking with i440r, eh? 09:26:28 me? Not much - I refuse to embrace asm 09:26:42 me neither.. but it beats gforth 09:27:19 hmm? GForth works - and has the bonus of sources and some docs - all fairly readable 09:27:39 you think i440r's convinced yet that C is sometimes a good thing? 09:27:49 no - he hates it ;-) 09:28:00 ..and I refuse to suckle-up to asm 09:28:03 heh.. damn 09:28:50 i've picked up some good stuff by working with isforth 09:29:08 oh? forth? asm? 09:29:33 hi Speuler. 09:29:36 well.. it helps w/ interfacing Retroforth to linux, for example.. helps w/ testing. 09:29:44 No, but I just got my first terry pratchett. 09:30:05 heh "kids" ;-) 09:30:11 hoorj 09:30:42 kids? which kids? 09:30:53 gil ;-) 09:31:05 terry pratchett is good. 09:31:28 I rarely read non-fiction... 09:31:41 I rarely read fiction. 09:31:55 its been a while so its my first trip back into fiction . 09:31:59 you rarely read/ 09:32:04 s/non-fiction/fiction/ 09:34:46 poppavic: well at least CRC is sensible about C.. heh.. maybe i440r will see the light when we have a 5k kernel, 5k forth and 20k C compiler, all playing together without Linux :) 09:35:08 bah ;-) I like linux 09:35:22 it could be better 09:35:37 Many things could be 09:35:45 say, was that you talking about namespaces vs. vocabs ? 09:35:58 prolly, I tend to like 'em 09:36:07 both?? 09:36:14 I can't recall - did I dcc a file to you yesterday? 09:36:18 nope 09:36:25 ok - twas another gent.. 09:36:35 btw, this client don't do DCC :) 09:36:39 hehe. another gent. 09:36:43 my stack.fs file uses a 'namespace' sort of lexicon. 09:36:51 it appears there is exactly one female 4thsmith on earth. 09:37:12 I never lift their skirts to find out. 09:37:13 'gent' is a safe assumption around here :) 09:37:38 heh.. "just makin' sure" 09:37:55 * gilbertdeb lifts up his skirt. 09:37:59 Ooops. 09:38:03 :D 09:38:11 But, yes.. I like "namespaces" as well as "vocabularies".. Not too hip to the latest shit, though - or the gforth setup of 'em. 09:38:35 hah! I got to see what was worn under yer kilt! (what was that short lil' thang? ;-) 09:38:55 hehehe. 09:39:12 ..see a doctor - get that boil removed! 09:39:21 namespaces, that'd be a strict hierarchy, right? like forth.stack.push or whatever 09:39:30 hehehe 09:39:56 yeah - it's much like the forth idea of a specialty "lexicon".. But not a lot of fun to implement. 09:40:41 well, i guess we can hang it off the filesystem if we need namespaces in Retro.. sort of like /proc 09:40:46 in C, I'm pretty much to the point I'm starting to define structures mostly containing func-vectors. 09:41:24 yeah, that's the power of C :) 09:41:26 ..writing a new/extra preprocessor would work, too.. 09:42:29 well, I'm not sure why, but Forth simply doesn't do much with 'em.. I really am sorta' disappointed at what has become 'standard' - after leaving for 2 decades. 09:42:31 procfs is kinda stupid though, when you have the kernel translating something to text and a program translates it right back to binary :) 09:43:01 I can't recall ever using the proc/ stuff - except interactive from console. 09:43:40 i'd use /proc like a dictionary, with the "CFA" in the inode slot.. 09:43:55 nahh.. Voodoo like that is just nasty 09:44:12 oh - you mean as forth words? 09:44:27 not exactly sure yet.. 09:44:48 I can't even really puzzle out how the dictionary stuff works anymore - everyone seems to have gone off in insane directions. 09:44:58 yeah 09:45:07 vocabularies and crap 09:45:32 FIG was ok, f-83 was ok, and F-pc worked great.. I leave, come back - and no one seems to want to make a sensible stand. 09:45:40 in Retro there's just 'forth' and 'macros'.. macros are always 'immediate' 09:46:04 heh - I added wil badens macro thinge to my files.. Never used it yet, though 09:46:28 i've looked at F83 a bit.. if only we had a standard or "model" like that for today.. 09:46:53 yeah, I know *sigh* I can't understand wtf the standards morons thought they were doing. 09:47:32 abstract specs instead of realistic models 09:48:21 Well, within limits.. 09:48:34 you know, /proc causes some problems.. if you try to 'cp -R' it'll hang up on /proc/mem or something :) 09:48:41 The nice thing about C is that generally, you can learn your limits.h & shit. 09:49:20 ..in forth, it appears ANS is half-assed, and everyones implementation is at least as half-assed.. It's sorta' depressing. 09:49:46 PoppaVic: too many synonyms I think. 09:50:00 gilbertdeb: how do you mean? 09:50:25 I think i'd put all this 'pseudo-filesystem' shit one level above the fs.. so you have /kernel /drivers /forth /dev and /fs at the top.. and /fs being '/' as far as open() is concerned. 09:50:55 I simply can't see forth-as-linux, tcn ;-) 09:51:04 PoppaVic: I mean people only hal-assedly write ans-forth's because the little they do contains enough of forth. 09:51:08 oh yeah, THAT's where i440r is smart.. he says, fuck ANS :) 09:51:51 I can agree with "Fuck ANS" - but not unless you have a new standard you propose that makes as much sense as fig or fpc 09:52:15 FIG-32 09:52:33 gilbertdeb: yeah, everytime I look at the ANS stuff my guts churn - but everones attempt to sorta'-maybe-kinda' comply is at least worse 09:53:01 they should be looking at F83 instead 09:53:07 PoppaVic: if _anyone_ ever agrees to a minimal forth environment from which all the other words can be generated... 09:53:15 perhaps the minimal env, CAN become the standard? 09:53:21 I should think it's really time to cobble up a new std & fuck the comittee's 09:53:52 yea. meet in here, set up a mailing list (or CC lis).. 09:53:59 gilbertdeb: yes, sorta'.. I've been looking at the ans-shit, and gforth, pfe, etc trying to see what NEED be, SHOULD be and CAN be.. 09:54:35 did you see how few words are in Retro? 09:54:47 I"ve never actually seen retro. 09:54:51 no - I grabbed it, but ain't been into the tgz yet. 09:54:56 but I've seen its haiku :D 09:56:08 I believe it may be - finally - time to admit that the datastack really can't contain floats and shit, unless we can identify such.. *sigh* It's really rather irksome. 09:56:18 i was thinking about some minimal forth too. only, i tend to call it "common forth" as it is not the intention to just offer a minimal word set, but a word set common to several standards 09:56:36 and some standard-specific extensions files 09:56:41 Speuler: exact same thing I think of in 'minimal'. 09:56:50 it's got a minimal set of asm words, just enough to compile everything else from forth.. stuff like * is done with machine code using C, :) 09:56:50 Well, you need to start with basic concepts first - I think that's where ANS blew it. 09:56:50 perhaps common is better :) 09:56:59 CommonForth, CommonLisp. why not? 09:57:24 But, I agree - the standard should be as minimal as 'sh' - with a clear set of minimal tools. 09:57:37 the name transports the meaning of "standard independance" quite well 09:58:21 I'd also suspect we'd want clear "extensions" rules - folks are just rehacking the same shit over & over - for 20+ years.. It's maddening. 09:58:38 hmm.. modularity? 09:58:45 would be lovely 09:58:46 forward references 09:58:49 heh 09:58:52 * Speuler ducks 09:58:56 hmm 09:59:04 there's a reason for those ... 09:59:09 no reason not to make them deferred words, sure. 09:59:13 binding to library words 09:59:27 include library at end of compilation 09:59:36 jsut resolve what has been referenced 09:59:59 I really had high hopes when I downloaded FICL, but.. *sigh* Man... it looks like a real pain to deal with. 10:00:22 Better standardize a tiny core Forth first.. i dunno if you'll ever get anyone to agree on the rest of it. 10:00:30 problem arises when using a compile-time defined word with forward references during compile time 10:00:47 but, i could imagine resolving against library several times 10:00:57 Well, I'd HOPE the goal would be a core, then extensions - but all such that a rommable-copy could be generated as well as interactive or compiled-native-code 10:01:28 for example. when a compile-time defined word with unresolved references is executed at compile time 10:01:48 Speuler: yes.. I've noticed all sortsa' state/mode voodoo - almost suggesting a third mode is waiting to be born. 10:01:56 haha 10:02:02 that's not really a third mode 10:02:14 no - but I believe there IS a 3rd.. 10:02:22 i've been experimenting with automatic forward references resolving a bit 10:02:34 interpret is easy.. compile is fine... meta? 10:02:42 most problematic thing was. typos 10:03:09 Speuler: example? Sorta' lost me there 10:03:25 What if you think of Forth as just a prototyping language? Just one tool in the toolbox.. Does that help? 10:03:40 : foo 10 0 do grr . loop ; 10:03:48 grr builds a fwd ref 10:04:02 : grrr 100 rnd ; 10:04:04 tcn: forth is a language for writing dialects. 10:04:12 grrr was meant to resolve grr 10:04:15 so there needn't be THAT much provided in the commonforth no? 10:04:18 but it doesn't 10:04:20 typo 10:04:47 gil: So it's no surprise there are a million different versions 10:04:52 i "solved" it by color-reversing the prompt if there were any unresolved refs left 10:05:13 tcn but they all really should have a common denominator, so that compatibility issues won't be _that_ severe. 10:05:17 fwd ref headers where placed in an own voc 10:05:29 thus, unresolved words showed me those 10:05:49 tcn: well, as I said - I'm working on "AutoFoo" - but that's supposed to be for bypassing the GNU autoshit learning-curve/verbosity. 10:05:51 gil: yeah, just so it sorta makes sense from one to the next. 10:05:57 i was helped by the unusual header structure i used 10:06:18 because i could easiily remove headers, regardless of order 10:06:25 No.. I'd rather see a deferred word than that forward. 10:06:44 PoppaVic: you wouldn't want to defer all words you use 10:06:45 speuler: makes sense.. I was gonna do forward refs that way in my assembler, in 1 pass.. 10:06:54 i think of resolving words against a library 10:07:12 so that just the required words are compiled into the program 10:07:20 OK, let's sidestep for a moment... How would we deal with namespaces, lexicons & vocabularies? I suspect that 20 years is long enough to suggest some thoughts. 10:07:54 i keep headers seperated, and no pointer from body to header 10:08:05 just a pointer from header to body 10:08:06 "word word word[ word...]" is all fine & dandy, but.. sheesh 10:08:32 that allows me to rearrange headers, including their storage format, however i like 10:08:45 i can put them into a btree, for example 10:08:48 just by loading a source file 10:08:58 hmm... well, a way to get to nfa from cfa is still nice - interactively/interpretive. 10:09:04 no need to patch up the bodies 10:09:15 but. i can 10:09:28 i just search word list until cfa i'm looking for is matched 10:09:34 that's slow, admitted 10:09:45 I certainly preferred the old f83/fpc sep of headers & bodies - it was to use segments & 640K mem, but.. applicable to ram/rom, too 10:09:47 but ref'ing headers doesn't need to be quick 10:09:51 poppavic: i440r puts a NFA pointer at CFA-4 10:09:59 sure. 10:10:10 tcn: that fixes your header to its address 10:10:17 can't move header anymore 10:10:21 or need to patch up body 10:10:27 can be done 10:10:32 Certainly. 10:10:36 i can just move headers around, no patching required 10:11:04 [ [HEADER] SPACE...] [ [ BODY] SPACE.... ] 10:11:13 and I personally don't give a damn about finding the NFA 10:11:16 tcn this looks interesting: -> http://www.cc.gatech.edu/fac/Olin.Shivers/ll.ps 10:11:18 for the penalty that "debug" or "see" takes a bit longer to produce the name of a word 10:11:29 title was A universal scripting framework 10:11:55 tcn: for an interactive app, it matters.. For a "turnkey" or "native-compiled" app, it wouldn't if no interpretation was needed. 10:12:20 there are not many cases where you need header from cfa 10:12:26 I don't use forth for "big programs" 10:12:31 some diagnostics 10:12:33 debugging/patching 10:12:53 where it doesn't matter that it is slightly slower 10:12:56 tcn what do you use for "big programs"? Small-c? 10:12:56 tcn: as it is now, I can understand why 10:12:58 I say, the simpler the better.. don't need debugging aids for little calculations 10:13:23 gil: yeah, some form of plain old C 10:13:28 No.. If I sit down to an interpretive environment, I want to be able to do whatever I need to do. 10:13:40 i basically use "find" for body-to-header lookup 10:13:53 ..otherwise, I might as well use perl or some schreck - which I refuse to do. 10:13:54 , better, find uses "header" 10:14:04 and ">name" uses "headers" too 10:14:20 Speuler: fine - this runs the voclinks/nodes looking for an address match? 10:14:26 "headers" gets an xt, and executes it for each header 10:14:36 PoppaVic: exactly 10:14:45 * PoppaVic HATES all these newish body/field names.. 10:14:55 looks for the header which matches the cfa, passed as parameter 10:15:16 poppavic: you mean 'xt'? 10:15:17 fine.. For debugging/interactive the delay is not significant - can live with such. 10:15:30 that's what i found too 10:15:35 tcn: that and some others, yeah - makes me nuts looking thru my old books & docs 10:15:52 after all, the interpreter uses a very similar lookup all the time 10:15:56 CFA, NFA, that's old right? 10:15:57 OK, so let's back up a sec.. 10:16:02 tcn: right 10:16:19 We sorta' agree a "commonforth" would be nifty.. 10:16:34 i could agree with that 10:16:43 which means a lot :) 10:16:46 How much of such a beast needs to be machine-mentality "defined"? 10:17:05 primitives ? 10:17:09 no... 10:17:23 terminology.. CFa, NFA, return stack, data stack.. 10:17:31 I mean - how much oh the actual data-structures/access need to be codified.. 10:17:35 oh/of 10:17:42 none 10:17:46 tcn: YES, please ;-) 10:18:00 I miss cfa/pfa/nfa, etc 10:18:21 as close the implementation matches the cpu (register use for example), as better its performance 10:18:22 well, ok - can it be written akin to C & limits.h + sizeof(), etc? 10:18:48 speuler: Forth is not a performance language! it's a SIMPLE language! 10:18:50 --- join: kc5tja (~kc5tja@ip68-8-206-137.sd.sd.cox.net) joined #forth 10:18:53 no good to emulate a stack and stack pointer as variable if there's as stack available 10:19:21 OK.. Wait - I am not now, nor next week, going to write in asm - I just hate it.. So, you see this raises the next set of questions - about machine, lang, access, platform, etc. 10:19:28 but you do need to codify a dictionary structure to define CFA, NFA, PFA 10:19:40 Right. 10:20:01 ..and - preferably - in such a way that the CommonForth, asm & C could all deal with the same damn structures 10:20:12 tcn: no, not necessarily 10:20:18 no need to define 10:20:20 Yes. 10:20:30 you can be flexible with that 10:20:42 even to the point of being able to change it while the system is running 10:20:46 The FORMAT needs to be understandable, or you'll never see it used in embedded devices or in a "major app". 10:21:11 i tend to "pack" headers when saving the system 10:21:29 well, the initial code has to know a precise layout, I agree however that the USERS can use words to reach whatever - IF they are proerly written. 10:21:34 just (flags) (len( (header) (flags) (len) (header) ... 10:21:54 so.. LFA, CFA, PFA, and variable length NFA as the last thing in the header.. that's acceptable to C.. 10:22:03 i relocate those down to here 10:22:10 yeah, "byte, byte, byte.." doesn't bother me.. The alignment crap can drive you up a wall, though 10:22:15 --- join: crc (crc@AC8D918B.ipt.aol.com) joined #forth 10:22:21 we're not talking about your forth, speuler..we're talking Common forth :) 10:22:39 hello crc 10:22:41 tcn: if you don't appreciate my input, i can shut up 10:22:45 hello tcn 10:22:46 Personally, I don't EVER want to have to decide IF or WHEN to pad/align - that's not my job as a human. 10:23:37 Speuler: show me an url, I can DL & look at it - the talk can continue, but.. I'm trying to see how this "CommonForth" thing should branch away from the ANS and everyone-for-himself free-for-all. 10:23:38 speuler: i get what your doing.. let's not go off on tangents now.. 10:24:16 I'm pretty sure there are a lot of snippet/ideas out there to hijack - but when, why and how matter, too 10:24:20 crc: we're talking about a "Common Forth" core model/standard to replace ANS :) 10:24:38 PoppaVic: the code containing those vocs, along with binding to libs from fwd refs, is not on the net. i could upload it though 10:25:19 best thing to run it under a "conventional" os would be msdos ... 10:25:32 no linux support in there 10:25:35 A replacement standard for ANS? It's about time. 10:25:38 mainly i/o 10:25:53 and binary image format 10:26:01 linux is easy to deal with, actually 10:26:26 Speuler: well, if the source is uploaded, please let me know - Bog knows, I must have like 15 forths in ./legacy at the moment 10:26:41 PoppaVic: all right 10:26:58 linux is nice & easy.. trying to stay at "posix" is even nicer - then the *bsd folks should also benefit. 10:27:15 how do you mean? 10:27:24 bsd folks benefit from what? 10:27:29 tcn: you done anything much with dlopen/sym/plugins/libs? 10:27:35 not yet 10:27:42 gilbertdeb: the Commonforth thing - and platforms 10:27:52 it's on my todo list :) 10:27:57 I've done a very, very small amount of it. 10:28:07 PoppaVic: I have (in C). It's pretty easy to use, but I dislike their error reporting mechanism. 10:28:18 Yeah, it did look a little whacko 10:28:57 --- quit: mur ("i might be back later") 10:29:09 hmm.. how would Commonforth deal with 16, 32, 64-bit CPUs? a slightly different standard for each, instead of one size fits all? 10:29:15 Hmm... you know.. It also occurs to me that 'types' are possible, too. 10:29:39 * kc5tja used it pretty heavily in writing GCOM, a generic COM implementation for Linux. The project never went anywhere on SourceForge, but the system works great for local (e.g., in-process) objects wonderfully well. 10:29:39 tcn: yeah, I have been thinking about that... GCC seems to deal, though. 10:29:43 for 64 bit and > cpus, one might consider byte tokenized forth 10:30:25 hmm, didn't I mail you a doc awhile ago, Speuler - about that? 10:30:26 regarding types: http://bespin.org/~tom/writings/retro.addendum.txt 10:30:37 it's short 10:30:39 but it may be a bad idea to fix the threading model in the commonforth specs 10:30:49 agreed 10:30:50 hmm.. shit - Xchat wouldn't pick that up... 10:30:58 PoppaVic: i have started a byte token implementation 10:30:59 got it 10:31:10 it is on www.forthfreak.net 10:31:13 yeah, I too agree 10:31:46 Do like FIG, implement working Commonforth models on a bunch of platforms/OS's 10:32:05 however... I believe that we can all agree that our ACCESS to the shit all needs to be codified - but, that the binary-arragement is not the job of the std, right? 10:32:14 Right. 10:32:29 no. do like ans, specify what words are doing, not how they are implemented 10:32:37 and the header format, that's for purposes of explaining CFA, NFA, etc.. not set in stone 10:32:40 ok, note: RTTI is more a C++ thing.. 10:32:57 Perhaps the binary standard could be an adjunct standard? That is, split the access standard from the binary standard, so that implementations MUST implement the access standard, and the binary implementation is optional? 10:33:07 hmm.. 10:33:22 I bring it up because there are certain advantages to have a common binary standard too (e.g., COM gives an example of this). 10:33:23 specify as little as possible :) 10:33:31 kc5tja: how would that work, then - between cpu's, OS, and embedded PC-type comps? 10:33:45 oh.. No - not that - we ain't there yet ;-) 10:34:10 No, I meant the load & run binary.. Libs and such, yes - should be on the agenda ;-) 10:34:14 Well, FIG-Forth specified a pretty portable binary standard in that it specified the use of indirect threading, how the colon-definitions appeared in memory, etc. 10:34:21 right 10:34:47 I don't have 100% experience with FIG, so I don't know to what extent its standard went. 10:34:52 kc5tja: what about compilers, for example, could they ever comply with such a standard ? 10:35:05 that was one of the problem of f83 10:35:11 standard too tight 10:35:26 Speuler: I assume by compilers, you mean native-code compilers? 10:35:32 not allowing forth systems, deviating from the f83 concept 10:35:33 well, the FIG std/source worked about everywhere - the major reason being that they wrote only a fist of primitives in asm, and all else was 2ndys 10:35:35 kc5tja: yes 10:36:00 right, f83 was only OK - to me - when I was using F-PC anyway 10:36:05 there was f.e. no way to implement a 32 bit system, complying with f83 10:36:12 right 10:36:33 but the rough outline of it makes good sense 10:36:35 I like stuff like 'cell' and 'cells' in gforth (ans?) too 10:36:39 Speuler: We could always go with how Lisp emits efficient code -- human-provided hints on how to generate code. E.g., instead of writing : FOO blah ;, we could write OPT: FOO Blah ; to generate native code (e.g., FOO is placed in the dictionary as a primitive) 10:37:00 CELL/CELLS is ANSI Forth. 10:37:05 CELL+ too. 10:37:08 cool 10:37:31 There's also CHAR/CHARS/CHAR+ too, for those systems where a character (perhaps Unicode) differs in size from a byte. 10:37:36 i think CELL is too long for the number of times you type it 10:37:40 hmm... tcn: I looked at the doc - another solution you missed was a parallel-stack ;-) And, of course, abstracted types 10:37:42 kc5tja: one could, but that would require editing all words when intending to target compile the whole source 10:37:48 tcn: I rarely use the word. :) 10:38:15 poppavic: parallel stacks, probably the best thing for 'classic' forth (untyped) 10:38:22 I dunno - four letters is trivial - I just think of GTK+ and all my worries vaporize ;-) 10:38:44 tc: I meant with the value on data, and the ID on the parallel. 10:38:46 heh.. 10:38:58 is not symmetric. character in stack diagram is "c" 10:39:04 pv: oh, right.. runtime typing? 10:39:05 I agree 10:39:10 right ;-) 10:39:16 singed/unsigned cells are n u x 10:39:25 I suspect it wouldn't matter in the least to a turnkey/app program 10:39:26 x allot 10:40:25 I also like the locals extensions, for forth - it almost makes all the bouncing around tolerable. 10:40:54 I guess CHAR and CELL are acceptable.. I always alias them to B and W (for byte and word) 10:40:58 as those are "extensions" there's no need to integrate them into commonforth 10:41:03 ..now, if we could also dump some of those half-witted veriables that everyone can see, but really "belong" to a func or two.. 10:41:17 I agree - they are not "core" 10:41:18 those can stay an extension 10:41:37 tcn: Assuming they map to a byte and word, that makes sense. However, ANS is actually ambiguous about the meaning of CHAR -- some parts assume a CHAR is a byte (e.g., COUNT), while others are permissive of Unicode character set. 10:41:45 or we end up with a common forth core wordlist, bigger than ans :) 10:41:56 yes, I can also tolerate C, B, W, DW, or something similar 10:41:59 kc: this is for my personal use.. W+ is fine.. 10:42:11 kc5tja: ans says, count uses a char 10:42:11 Which reminds me: please eliminate any ambiguity about how big a character is in CommonForth. 10:42:20 kc5tja: yeah, I noticed that stupidity.. 10:42:22 and char can be several bytes 10:42:41 kc5tja: it actually makes sense 10:42:57 kc5tja: you can count the count char, and then thorugh the chars of the string 10:42:57 Speuler: There was a huge, huge discussion on comp.lang.forth about how big a character was in ANSI Forth, and something like that shouldn't deserve a month's worth of solid bickering between the ANS committee and its users. 10:43:04 kc5tja: well, hmm - good idea - been eating me for weeks, too.. Can we simply define byte++ and then use a limits.h-like def for "character"? 10:43:24 kc5tja: i understood, a char has 1 chars bytes 10:43:41 except when it's unicode or utf-8/16 10:43:48 hint, hint.. 10:43:56 but a byte is always 8 bits.. 10:44:00 bingo 10:44:01 in case of unicode, 1 chars gives 2 10:44:05 byte, char, and cell 10:44:07 Well, CHARS is supposed to be defined as 2* or 2* 2* in those cases, so 1 CHARS bytes still makes sense. 10:44:27 ahh, but HOW those magic "macros" are defined is up to us ;-) 10:44:31 and count reads 2 bytes, incrementing addr to access next 16 bits 10:44:34 not ALL cpus are byte-addressed. just "damn near all" 10:44:35 The problem is that the ANS standard, according to many, is heavily geared towards a 1-byte-per-character implementation. 10:45:03 Speuler: In my local gforth implementation, COUNT reads one byte, not two. :) 10:45:03 1 byte can be a problem when used as address increment 10:45:09 isn't the whole point of common-forth to redo this whole mess kc5tja? 10:45:15 kc5tja: maybe your gforth is not unicode enabled 10:45:22 tcn: I am not in the least concerned about cpu's that feel a 'byte' is 7 or 10 bits 10:45:24 gilbertdeb: I'm just saying to not ignore the issue; make it explicit. 10:45:30 not all cpus use 8 bits per addressing unit 10:45:31 gilbertdeb: And then be consistent throughout the whole spec. 10:45:35 --- join: ramnull (~nicad@12-241-145-39.client.attbi.com) joined #forth 10:45:41 ah gotcha 10:45:45 right. 10:45:54 add 8 bytes + would be bad 10:46:00 Hows it going? 10:46:09 Speuler: I'm familiar with 80x86, 680x0, 65xx(x), 68xx, PowerPC, MIPS, and Sparc architectures. Lecturing me about the basic addressing unit isn't necessary. 10:46:09 addr ... 10:46:18 I forever irk the 'octet' contingent in #c - I hate that term.. I say 'byte' and mean it. 10:46:26 heheh 10:46:37 kc5tja: how would you deal with that problem, then ? 10:46:41 Octet makes sense in telecommunications, because the definition of a byte is ambiguous there. 10:46:41 hi ramnull: we are beginning to design "CommonFOrth" ;-) Was that code useful yesterday? 10:46:58 Yeah. 10:47:11 I finally got all this offset and struct stuff figured out. 10:47:13 all I know is I wanna' bitchslap those 'octet' twits across a room.. 10:47:20 Cool ;-) Glad it helped! 10:47:30 I got the Framebuffer running under Isforth. 10:47:31 Speuler: Depends. How long of a string do you want? 10:47:34 (max length that is) 10:47:36 terrific ;-) 10:47:50 "abstract type" 10:48:07 kc5tja: max string len, size of addressable memory 10:48:12 nope 10:48:20 Problem is, it tends to dump all my terminals into the deep dark. Gotta reboot to fix it. 10:48:23 Speuler: Then it's processor architecture dependent. 10:48:25 C itself would blow a gasket on that, Speuler 10:48:34 If you have 16-bit chars, a string could be 2^16 10:48:45 bummer - so there is some bug/glitch still to be resolved is all? 10:48:46 define it in your 'limits.h' equivalent 10:48:47 tcn: Too limiting. 10:48:59 PoppaVic: yeah, probably because the need to scan for end of string 10:49:22 Did some primitive line drawing routines. Looks like a fucked up Logo on crack rock. 10:49:36 i use cell size string len in my string stack implementation 10:49:42 I'd suggest we retain "counted strings" ([len][cccccc]) and consider as well "measured strings", but the whole point is moot if we control the internal format and don't expose it. 10:49:43 Sorry. No sleep. 10:50:02 Speuler: That makes sense to me. That's what I use too. 10:50:10 Although I don't have a string stack -- considered it though. 10:50:17 We should offer some *useful* string handling 10:50:17 yeah, I noted ciforth did the same 10:50:25 kc5tja: www.forthfreak.net/stringstack 10:50:32 I agre, tcn - that's what I've been looking for the last few days. 10:50:47 no - NOT the stack - a stack and a string are not the same. 10:51:06 * kc5tja doesn't like counted strings. Once I used (caddr u) tuples for a string reference, I found I didn't want to go back. 10:51:15 Frankly, I dont like the idea of a Forth with a bunch of crap tossed in. I'm gonna use linux threads and forks to have IsForth spawn a seperate Graphics Forth. 10:51:40 tcn: as part of the "core", I'd use KISS Principle - but, provide extensions we can immediately load - one guy wants strings, another wants freaky-math. 10:51:41 kc5tja: in lisp? 10:51:51 gilbertdeb: In forth, silly. :) 10:52:00 poppavic: yeah 10:52:01 ah. caddr had me going thee.. 10:52:10 there... and the () as well. 10:52:19 kc5tja: umm.. you mean retaining them as 2 distinct values at all times? 10:52:20 gilbertdeb: heh 10:52:21 Look, guys, is this a bare wires Forth, or one intended to run on a host OS? 10:52:27 of course, Forth isn't the greatest text processing language.. 10:52:40 ramnull: I'm not leaving linux for the forseeable future 10:52:49 whatever limits or sizes are used, source code needs a way to find out about them 10:52:51 ramnull: the core could be either, though. 10:52:58 absolutely, Speuler 10:53:11 PoppaVic: Yeah. I have accessor words like $@ and $!, but otherwise I prefer to have my string address and count on the stack. It makes scanning through strings and manipulating strings in-place really easy for me. 10:53:19 OK - riddle me this, asm-folk: do you guys have/use the same sorta' #includes C does? 10:53:25 right! 10:53:27 kc5tja: me too 10:53:52 poppavic: right.. so? 10:54:00 kc5tja: yes, I've been just considering an 'object', myself - but yes. 10:54:01 PoppaVic: depends on implementation of asm. 10:54:01 PoppaVic: Depends on the environment. AmigaOS had one assembly include file for each matching C header file. Windows is similar, IIRC, though they're not exactly the same. 10:54:09 Like what I'm saying, why not have a core Forth process running, to coordinate seperate spawns. One for graphics, one for peripherals, one for heavy duty text processing, etc... 10:54:40 tcn: well, if everyone can use the same headers (metacompiler??), then all we do is codify therein, and compile as required. 10:54:55 PoppaVic: I've been moving more and more into the object realm as well. I posted a few messages on a region-based memory management system in Forth a while ago on c.l.f which makes object-based stuff really easy and fast. 10:55:09 i think, header format is very transparent to source code 10:55:14 hmm - have you an url, kc5tja? 10:55:30 PoppaVic: Not really. This was on usenet. Google should have it. Let me check. 10:55:31 poppavic: one 'limits' file for Forth, C, Asm? not a bad idea :) 10:55:49 Oh, the region-based memory management originally came from real-time ML research. I have a URL for that. 10:55:52 If I want OOP, I'll use OCaml or Eiffel. Heh. 10:55:57 ramnull: well, I'd be quite satisfied if anywhere you can find gcc/autoshit, you could run CommonForth - the same words, doing the same shit - for everyone. 10:56:35 kc5tja: well, if you have any source around showing what-all you mean, I'd appreciate a download.. 10:56:36 PoppaVic: Well, now that you mention it... 10:56:57 hmm? 10:57:30 PoppaVic: At the theoretical level one could design an on the fly linker to auto-hook the modules you need. 10:57:56 right - I know guys have talked about it.. Seems like you need mmap-voodoo, though 10:58:09 http://citeseer.nj.nec.com/tofte97regionbased.html <-- revision of the original paper; haven't read this, but this should still be as good. 10:58:09 that's a royal pain 10:58:17 No source. 10:58:22 ok, loading 10:58:24 I haven't implemented anything yet. 10:58:30 tcn: yeah, I think so too 10:58:48 kc5tja: heh - let's think it over for CommonForth ;-) 10:59:08 I was messing with mmap to try a "session manager" idea I had, but it's just too difficult. I'll wait till I can try it in Retro. 10:59:09 Well, all the binary would need is an accompanying spec file. 10:59:22 Yeah, that's what I said when I first saw it. "Gee, this is almost exactly like having multiple dictionaries." ;) 10:59:52 yeah.. I tend to think of libs, and then cogitate API's and then ponder "plugins". 10:59:54 Then I thought about how Chuck used ALLOT and , (and friends) at run-time to basically manage his memory exactly the same way, though more rigid. It all just clicked. 11:00:04 cogitate? 11:00:24 think-over/mull "cerebreate" 11:00:26 Personally, I'd spawn seperate Forths/Dictionaries, with a shared memory segment for communication. 11:00:54 kc5tja: didn't you use such a fancy word recently? ;) 11:01:14 I like vocs, but that topic is still in the air - I suspect most of us would prefer to see a better mechanism than what is around now.. Namespaces, lexicons & dictionaires are slick. 11:01:14 gilbertdeb: Not I, no. :) 11:01:16 i.e. Each Forth gets a local memory space, and also links to the global space for all the Forths. 11:01:40 well "each forth" - in my universe - would be a process/fork 11:02:08 Check out Oberon on the conceptual level. 11:02:19 --- join: tcn2 (~tcn@tc1-login43.megatrondata.com) joined #forth 11:02:21 the idea of using shmem for the core, and maybe a special form of loadable-lib, makes me grin ;-) 11:02:28 ramnull: Oberon is a single-address-space (SAS) operating system. 11:02:33 --- quit: tcn (Read error: 54 (Connection reset by peer)) 11:02:41 no - I saw oberon - and eiffel - and I don't want to ever see 'em again. 11:02:41 It even says so in the concept document. :) 11:02:58 kc5tja: It's also a language. 11:03:02 * kc5tja loves Oberon. 11:03:05 ramnull: Yes, it is. 11:03:28 PoppaVic: so we have oberon, eiffel, and asm on the list of big no-nos :) 11:03:29 I try to use Oberon whenever possible for my local programming needs. 11:03:32 I have no interest in writing a whole new OS - BUT, this is not to say we can't plan it such that CommonForth can be so enhanced, no? 11:03:59 gilbertdeb: don't forget - sh, perl, and awk, lex & yacc ;-) 11:04:13 hehehe. appended. 11:04:25 kc5tja: I'm an Ada hacker, and Ada does seem to have an easy time of it in this area. 11:04:31 typically, when I get pissed off, I just write a C program I can throw away. 11:04:38 ramnull: So does Oberon. :) 11:05:07 * kc5tja was strongly considering writing Dolphin in Oberon, actually, with the Oberon ABI environment written in Forth. 11:05:09 ..and sometimes, the throw-away evolves into a few funcs.. and those evolve into members of my lib. 11:05:45 hmm.. 11:06:03 Yeah, vocs bug me.. Not exactly sure why, but they do. 11:06:06 Anyways, the Ada concurrency model is about the most reliable I've seen anywhere. 11:06:22 ..they SHOULD be slick as hell, but they just act soooo "futzy". 11:06:25 ramnull: better than erlang's? 11:06:38 I was thinking a Forth system could re-mold some of those ideas into it's own. 11:06:47 yep. 11:07:07 gilbertdeb: From what I've seen. 11:07:24 well, if you can show me what/why/how in general, maybe I can do something - or you can I'm still wrapping my head around the glowing CommonForth idea ;-) 11:08:11 PoppaVic: A Common Forth is a good idea. The question is about how it should be designed. 11:08:50 * kc5tja laughs -- ramnull: That's what has been discussed since I joined, at least. :) 11:09:02 yeah.. 11:09:05 PoppaVic: I'm envisioning a virtual OS on top of an OS. 11:09:20 what about a commonforth proposal thing? 11:09:20 hmm.. yah, maybe 11:09:28 gilbertdeb ? 11:09:38 in a small, halfpage paper so that PoppaVic can read them all :D 11:09:44 ahh.. 11:10:01 with folks ideas as discussed, yeah. 11:10:12 The Core handles scheduling and comms, and splits the workload off into other Forths for Graphics, Filesystem, Shell, ect... 11:10:25 heh - ewwww 11:10:26 Microkernel. 11:10:36 * kc5tja much prefers exokernel architecture. 11:10:43 exokernel? 11:10:51 i see the words exo and kernel. 11:10:55 What the hell is an exokernel? 11:11:06 a skeletal framework? 11:11:07 A kernel philosophy which lets each process have direct or near-direct access to the hardware resources. 11:11:14 I'm thinking about an "app" - our lovely interactive-development-environment. 11:11:17 The kernel is responsible only for privileges and permissions. 11:11:33 kc5tja: isn't that quite a bit of work per hello world? 11:11:42 * Speuler goes into PhoodPhrenzy mode 11:11:50 I'm seeing an app ON a platform - that can access other apps, but tries to isolate itself 11:11:53 Hmmm...Okay, a Microkernel brain, and an exokernel brawn? 11:11:58 gilbertdeb: Depends. I can write a pretty tiny hello-world app that talks directly to the hardware. 11:12:25 ramnull: You can place a microkernel above an exokernel if you so desire. I see no real advantage for it though. 11:12:33 nor I 11:12:58 How well would that work in an SMP environment? 11:13:00 The whole point to the exokernel was to keep the modularity of a microkernel, but NOT lose the performance of a monolithic kernel. 11:13:02 and, reinventing the wheel to displace the OS is just silly. 11:13:15 ramnull: About as well as it'd work in a microkernel environment. 11:13:18 * kc5tja finds a URL. 11:13:45 Yeah, exokernels rely *heavily* on shared libraries. The "OS" itself, in fact, is a .so file that you link against. 11:14:00 hmm... I just recalled ficl.... Static and dynamic lib "core". 11:14:03 http://www.pdos.lcs.mit.edu/exo.html 11:14:09 Aaaaah. Dependencies! 11:14:21 ramnull: There are always dependencies. 11:14:26 "leverage" is the term you want. 11:14:26 ramnull: You cannot escape them. 11:14:33 I thought I had seen that image before. 11:14:41 Yeah, but there are limits. 11:14:41 its linked on the tunes review page I think. 11:14:49 everything has limits 11:15:05 I was put off by 'emacs exos' 11:15:06 :D 11:15:19 ramnull: What limits? In Forth, your code depends on the Forth run-time. So what's changed? 11:15:20 argh - me too! 11:15:37 We don't have to repeat their structure. 11:15:38 Some of this GUI shit I see just irritates the fuck outta me with its 273 circular dependencies. 11:15:41 The IDEA is what I'm getting at. 11:15:44 hehe 11:15:59 ramnull: Then you're not factoring your code well. 11:16:20 kc5tja: It's not my code, I can tell you that. 11:16:23 Hehe 11:16:51 If I gotta go download more than three libs to get it to run, I dont bother with it. 11:17:03 well, I don't much care to write drivers and fs - that's why I let linux do whatever.. Which is NOT to say that one couldn't write the apropos asm/c and stuff actual drivers/interfaces into the Commonforth 'wrappers' 11:17:06 kc5tja: I like the look of this exokernel thing. 11:17:11 ramnull: Not much you or I can do about that; but I can tell you it is possible to implement a highly factored GUI -- GEM is an example. You have a VDI, the video driver interface, which is 100% independent of the AES (Application Environment Services), which is again 100% isolated from the application itself. 11:17:36 * PoppaVic just smiles and hugs his X desktop ;-) 11:17:39 --- join: tcn (~tcn@tc2-login39.megatrondata.com) joined #forth 11:18:01 Well, i've gotta get outside.. will read logs later.. 11:18:08 later, tcn 11:18:12 kc5tja: I dont doubt that. But I'm being pragmatic. If more people write for it, you WILL get fucked up dependencies. 11:18:14 RAW xlib is another good example of decent factoring. However, the ICCCCCCCCCCCCCMP (pun intended) is total shit, and just serves to slow the whole system down. 11:18:21 * ramnull snickers 11:18:24 --- quit: tcn2 (Read error: 54 (Connection reset by peer)) 11:19:02 ram, if you are thinking of the Gnomes as an example, I can't but agree: their entire naming/order shit is completely insane. 11:19:20 --- quit: gilbertdeb ("Monk has left the building") 11:19:30 PoppaVic: Hmmm. Maybe I am having a visceral reaction to Gnome. 11:19:30 PoppaVic: It was cleaned up pretty severely in Gnome 2; doesn't go far enough, but it was a nice attempt. 11:19:41 However, I will also say I LIKE libs, and I like small API's. 11:19:49 Absolutely. 11:20:17 kc5tja: well, I avoid the '2' stuff entirely - it munged my last install.. They can all dry up & blow away. 11:20:40 --- quit: tcn (Client Quit) 11:20:54 I don't use Gnome 2 at all just yet, but I'm waiting to re-install all of LInux first. Hell, for that matter, I'm still using Debial Slink. 11:20:56 --- quit: crc ("Leaving...") 11:20:56 Well, if an exokernel is as you say it is, then an Oberon/Ada95 type package system could really save some headaches. 11:21:01 kc5tja: my lib keeps growing, but what it has is all the silly-little api's I've come up with as time goes on.. 11:21:37 --- quit: wossname ("AFKZORd") 11:21:38 ramnull: Yes. 11:22:09 Ada95 is the industrial strength Oberon. Heh. 11:22:12 ramnull: From what I can gather, Oberon's runtime environment isn't hard to implement. The garbage collector would be the hardest part. 11:23:08 Ada is in a world unto itself, if you ask me. That language is **SO** damn complex as to make it virtually useless. NOBODY I've talked to who's written in Ada ever wanted to do it again, and these are folks who like Modula-2 and Pascal. 11:23:09 kc5tja: Dont implement Oberon's runtime. Just pick out the ideas you like and implement them in Forth. 11:23:21 ramnull: Which is basically, Oberon's runtime. 11:23:31 ramnull: That includes the garbage collector. 11:23:41 uh oh -- screen door incident. 11:23:42 bbiab 11:23:48 kc5tja: They've never programmed for submarines and jet fighters. Heh. 11:24:14 ramnull: Only because the DOD requires it by law. 11:24:24 kc5tja: Look at the Ravenscar Profile. That simplifies it quite a bit. 11:24:26 For everything else, you'll find they use good old-fashioned C. 11:24:32 modula-2 was - like C - able to compile itself, though... But, yeah - she sure was verbose. 11:24:50 Oberon is much, much simpler than Modula-2. I agree -- Modula-2 was a pig. :) 11:24:52 kc5tja: They require it so thier shit wont blow up or stall in the water. Heh. 11:25:02 ramnull: Bull. 11:25:09 ramnull: They THOUGHT they needed it, so they put it in. 11:25:16 right: ADA is "required" - so folks write C. 11:25:21 But in reality, Ada code needs debugging just like everything else. 11:25:39 Garbage in, garbage out. If you don't provide good specifications, good tests, etc. the code will fail. 11:25:45 yep 11:25:48 The compiler can NEVER replace the human operator. 11:25:49 Never! 11:25:56 I agree 11:26:03 kc5tja: Ada is the only language where you can statically trace, from the source code, every branch your code will ever possibly take. 11:26:12 That's why I do extreme programming -- I write up to 10 to 15 unit tests per function some times, and I never rely on a debugger anymore. 11:26:16 And this is with C! 11:26:29 I really dislike that term.. 11:26:38 kc5tja: Your a damn good C coder. 11:26:47 ramnull: Google -- it's been proven that you can never statically trace the outcome of a program, because of the human factor. 11:27:01 hmm 11:27:22 ramnull: I told you many times how and why I do the things I do. Everytime I'm chastised. It's not my problem. 11:27:28 human-inputs are a lost cause.. Mechanical inputs are a solvable issue, though. 11:27:39 Aaaarg. Google -- it's been proven that you can. sparkada.com 11:27:55 Machine to Machine interfaces. 11:27:57 You showed me that site before, and I simply don't believe it. 11:28:06 kc5tja: Alright then. 11:28:11 Well, formal methods can be used to verify machine-to-machine interfaces. 11:28:20 Big-whoop. 11:28:23 Even Oberon has that down pat. 11:28:36 Oberon's type system has THREE loop-holes (and only three). 11:28:41 sensors & feedback, right - machines can fail, but you can pretty much identify how that effects something.. Humans? brrrr - pass - let it core. 11:28:42 Wonder how Forth holds up. 11:28:52 And all three are known to require explicit programmer work to take advantage of. 11:29:15 ramnull: I'm still working on a unit test package for FOrth that I'm happy with. 11:29:26 Howso? 11:29:28 ramnull: But I've done some limited XP with Forth, and it's absolutely fantastic. 11:29:32 kc5tja: Schweet. 11:29:44 PoppaVic: Howso referring to what? 11:29:53 "unit test package" 11:30:36 as in a mechanized, codified suite? 11:30:40 Yes. 11:30:43 Goddamn. This graphics stuff is turning my brain to jelly. 11:30:50 ahh.. OK. 11:31:44 Working my way up from Blitting and Pixel Pushing. 11:31:46 Good XP practice requires you to run the unit test suite with every change you make, to ensure nothing breaks. 11:32:07 Real-world XP practice requires you to run the unit test suite with every compilable change you make. :) 11:32:26 A failed compilation is itself a unit-test, so there's no need to run your codified unit-tests if that one fails. :) 11:33:08 "Rigorous" seems a better term.. I see "eXtreme" and I think of haqueers on skateboards 11:33:09 Also, I write my tests first, compile them, make sure they fail. They usually do, but I've had two instances where they didn't (at least, not failed as expected). 11:33:30 We could document it with this ... http://www.sandroid.org/birdsproject/ 11:33:36 Sounds like painful amounts of effort, though 11:33:42 PoppaVic: That was where the name came from; Jeff Beck wanted that whole earring-through-the-nose image. I agree it's a stupid name for it today, but the name's stuck. 11:33:51 It's really not. 11:34:05 Writing the unit test has the benefit of explicitly codifying how the interface to a function or subsystem will work. 11:34:16 Think of it as an "example" of how to use the function. 11:34:48 right.. I generally run a testbed program to try my api-stuff. 11:34:59 According to CMMI certification rules, XP's unit tests do qualify as technical documentation. 11:35:08 ugh 11:35:22 kc5tja: You wanna have fun with it, have it automatically initialize every uninitialized variable to an illegal value. 11:35:25 Test-first or test-after; as long as you test. If you're thorough, the end result will be the same. 11:35:39 I prefer test-first, because I like to see that it fails first, then I make it work. :) 11:35:58 ramnull: For some things, that's actually part of a unit test. 11:35:59 well, you can't write a test until you know what yer args & returns are.. after that, yeah - both have to adapt. 11:36:24 Writing the test forces you to set the inputs and outputs. 11:36:24 Hmm.. I may have to go sit back with a legal-pad and all those damned CommonForth ideas.. 11:36:40 Another name for test-first is "test driven design," because it does actually help design the software. 11:37:03 yah - but the api is then developed from the other side. 11:37:17 That's where refactoring comes into play. 11:37:21 right 11:37:26 XP also requires heavy refactoring. :) 11:37:27 You guys remember that old graphics language we had back in grade school, Logo? 11:37:34 but, boy - working in tag-teams, it could make yah bonkers 11:37:37 ramnull: Yes 11:37:41 With the turtle that walked around. 11:37:46 I recall it, never ran it ;-) 11:37:59 That's what this framebuffer thing is looking like now. 11:38:13 My sympathies, ramnull ;-) 11:38:23 errr...was looking like. The terminal just took a shit. 11:38:30 heheha 11:38:53 write it in ada & oberon - that'll fix it ;-) 11:39:59 Actually, most of it's in Assembler at the moment. 11:40:35 Ah. Found the bug. 11:41:19 I'm gonna do a few demos once I get the kinks worked out. You know. Fire, Plasma. Typical hijinks. 11:41:32 Be back later. Gotta finish up some work here. 11:42:00 --- quit: ramnull ("This isn't Happy Hour!") 11:43:42 * kc5tja did pair-programming, and to be honest, I don't want to go back. I view programming as a chore otherwise. :D 11:44:07 I should go too. I have some nasty frigging English homework to take care of. :( 11:44:31 tag-teaming? Yeah.. It only seems to work if each guy gets a spec-thingie and is unleashed. 11:44:49 A user-story is assigned to the pair, not to an individual person. 11:45:03 "user story"? 11:45:06 The real problem is when the pair ends up not getting along. 11:45:13 I can imagine 11:45:18 A user story is like a fragment of a specification 11:45:27 ahh 11:45:57 I've never seen any decent docs of that nature, myself - I usually start with a legal-pad and maybe stubs. 11:46:14 XP uses 3x5 index cards. :D 11:46:48 DOGGONE IT! Now it's POURING outside. 11:46:56 heh 11:47:00 As if my day couldn't get any worse. 11:47:12 don't EVER say that - it can.. 11:47:23 Oh well. I better jet. First food, then homework, then (if I have time) D&D. 11:47:28 Oh, I know it can. :) 11:47:29 laters 11:47:42 --- quit: kc5tja ("THX QSO ES 73 DE KC5TJA/6 CL ES QRT AR SK") 12:04:15 http://cygwin.com/faq/faq_3.html#SEC22 12:53:25 re 12:53:35 lo. 12:53:52 * PoppaVic is jotting notes on this CommonForth idea-thingie.. 12:58:05 the idea of resolving fwd refs from lib included at the end of the source i have pinched from cforth 12:58:24 oh? high or primitive support? 12:58:28 later known as 4thcmp 12:58:35 both 12:59:06 cforth is a native-code compiler 12:59:38 eruh? 12:59:40 makes no sense to carry the whole dev environment in the object code 12:59:45 What's THAT cost & run on? 13:00:15 as cforth, about 150$, compiling for cp/m and msdos. 4thcmp was shareware, i think 50 $ 13:00:20 ahh 13:00:27 ok, that figures 13:01:31 it provided u: which compiled the following word only if used, and unresolved 13:01:56 "used and.." ..? 13:02:00 oh.. 13:02:06 a double half-assed defer 13:02:22 the trick was to organize the libs in such a way that the bottom-level words were at the end 13:02:37 yeah, it's almost too whacky to bother with. 13:02:42 that way, the lib itself created forward refs 13:03:03 and the resulting object contained just the code it actually needed 13:03:05 I'd almost prefer every single word to be akin to deferred words 13:04:05 defer count defer ?do defer emit defer loop : foo 0 ?do count emit loop drop ; 13:04:11 hmm 13:04:54 all these words were really included from lib 13:05:08 0 wasn't, drop wasn't 13:05:21 what the heck are you talking about? I missed something. 13:05:34 fwd refs vs deferred words 13:05:43 oh. 13:06:02 KISS Principle, man. 13:06:45 there are several kinds of simple 13:06:56 (also, several kinds of stupids:) 13:07:09 no. There is "simple", there is "elegant", and there is "Not C" 13:07:15 --- join: jdamisch (~chatzilla@207.191.240.165) joined #forth 13:07:21 simple interpreter/compiler point of view, simple from source code view 13:07:43 dude, when I say simple, you know what I mean. 13:08:06 fwd refs, and resolving, is pretty simple, actually 13:09:20 cforth supported header files to. those containing prototypes, to allow the compiler to optimize linkage code to the not-yet-known fwd references 13:09:53 nothing bad about that. 13:10:05 looked like 0 0 need nop 1 2 need count 13:10:14 I've long been a header/API source/code person. 13:10:43 was optional, though. just produced tighter and faster code 13:12:09 simple, elegant and not c ... sounds good. 13:13:13 --- quit: jdamisch () 13:13:13 I'll stick to C, thanks. 13:14:46 not tempted by "simple" and "elegant" ? 13:15:43 Not on your terms, no. Not in my lifetime. 13:18:00 yes, i agree. i got the same feeling when looking at c code, that life is too short for that. 14:14:51 --- join: TheBlueWizard (TheBlueWiz@pc4edn1d.ppp.fcc.net) joined #forth 14:14:55 hiya all 14:15:02 lo 14:15:14 hiya PoppaVic 14:17:52 Hi :) 14:18:58 hiya Robert....no sifbot here? 14:19:05 no lack at all 14:19:38 no lack at all? 14:19:51 It's nothing but a noisy pile of junk 14:20:24 hmm...if you say so 15:08:20 --- quit: Speuler ("NO CARRIER") 15:35:07 gotta go...bye 15:35:26 --- part: TheBlueWizard left #forth 15:45:50 --- join: crc (crc@AC8EE361.ipt.aol.com) joined #forth 15:48:15 Scary... I was in #FIGUK. It's like a desert, one or two hours of life each month :) Totally empty the rest of the time. 15:48:39 yeah. 15:48:51 I have no idea how to reach it, but I wasn't really worried 15:49:41 I have to wonder though - if the damned ANS committee might have had deliberate, ulterior-motives for the stupid standards.. It sure seems to have crippled forth 15:52:42 Probably they just want to take over the world and kill the pope. 15:53:29 Yeah, that's so sensible. 15:53:49 I think it's nice with a standard, even though I don't use it. If someone wants it, why not let him have it? Just don't use it... 16:38:06 Yeah, it's ridiculous the propaganda the got spread because of the ANS standard... Overall it is a decent forth specification. Chuck Moore is jealous that he doesn't have complete control over it any more... 16:38:20 And hasn't for decades... 16:39:07 I have plenty of respect for what he DID, and.. well I'm sorry - I don't see 20 years of "advancement" anywhere. 16:39:43 ..plus, the whole "colorforth" thing makes me smile. 16:39:52 Standards aren't about advancement. 16:40:31 Right. The FIG standard is fine. 16:40:48 They're about solidifying a consensus... The ANS forth standard was pretty much a consensus between all aspects of the community, save chuck moore. 16:41:02 umm.. sure. 16:41:42 Tell me... What is so much better about the FIG standard than the ANS standard? 16:42:13 The ANS standard allows an implementation to be more minimal, and allows greater flexibility in implementation. 16:42:30 Standards aren't about advancement. 16:43:03 * PoppaVic passes Fractal his petard back, and returns to editing. 16:43:29 Well standards are necessary for advancement, but aren't in the business of advancing whatever they're standardizing. 16:43:43 No, tell me why you prefer the FIG standard over the ANS standard please... 16:44:44 I simply see the ANS shit as shit - it didn't do anything that I see as all that valubale - and everyone is STILL "porting" shit from forth-to-forth. 16:44:58 If that's "better", I'll stick to C 16:46:06 Well people do a lot less porting between ANS standard forths. Don't forget that people port between C implementations... 16:46:36 Actually, I've ported C - and it's always a platform issue - files or utmp or something similar 16:47:36 Yeah that's mostly the case with forth too, except forth has a much more diversified set of environments than C does. 16:47:36 ..then too, there are prolly terabytes of C around to work from or use an example. Forth is a LOT tougher to come by. 16:49:10 I can remember FIG-forth on my t/s-1000, then the C-64, and then CP/M, and then my DOS-286 system.. Almost invariably, the differences were minutes of work. 16:49:38 Nowadays, it looks to me like the cause is totally lost. 16:51:53 --- join: jdamisch (~chatzilla@207.191.240.94) joined #forth 16:52:10 So let me get this straight... You don't like ANS because you feel that forth is dead? 16:52:43 I feel ANS helped it's demise, anyway 16:52:55 Otherwise, we'd be seeing a lot more use & such. 16:53:44 That's nonsense. ANS had nothing to do with forth falling out of fashion. I feel forth would be completely dead without a comprehensive, peer reviewed specification like ANS. 16:53:55 That's nice. 16:54:46 no one person owns Forth, and i think that helps 16:55:02 there can be lots of different kinds of Forth as far as I'm concerned 16:55:26 Well sorry if that sounds harsh, but you have no grounds for such an attack on ANS like that, especially since you seem to have no reason to prefer (the allegedly better) FIG standards. 16:56:03 Doesn't bother me a bit. 16:56:32 Heh, ok good. 16:56:45 maybe it depends more on the individual forth implimentation itself, and not what standard it is 16:56:58 as to the likeability of a Forth 16:57:20 jdamisch : Ya, I agree... 16:57:55 I can live with "platform differences" - the rest is just nuts. 16:59:48 Well part of C's portability comes from the fact that it doesn't try to specify any implementation factors of the language, leaving all that as implementation specific. 17:00:32 Forth, on the other hand, mandates a sequential dictionary, means to access the runtime and compiletime stacks and their pointers, etc, etc. 17:01:20 If you code non-system applications in forth, they will be nearly as portable between forth compilers as C is. 17:02:14 --- quit: crc ("Leaving...") 17:08:01 ok, here is a question 17:08:26 suppose i want to control a panel of lights from my computer, what is the easiest way to do it from Forth 17:08:43 just as some sort of simple light display 17:08:48 for the heck of it 17:09:21 A bunch of LEDs stuck in your parallel port. :) 17:10:05 you can just stick them in there without any supporting components? 17:10:36 More or less, ya. Some people recommend a few resistors, but no, you can just plug them right in. 17:11:38 ok, thanks 17:22:15 i was at figuk today 17:25:26 * onetom is tryin 2 implement TILEs 9primitives minimal 4th vm on menuetos 8] 17:26:14 I didn't know that there was such a thing as a 9 primitive minimal 4th kernel . yikes 17:29:32 its a terribly stupid thing, but the most easiest 1 2 port 17:30:01 interesting 17:30:22 http://savannah.nongnu.org/download/tile-forth/ 17:30:43 i clicked on it 17:30:48 tst/minimal.f83 17:30:56 its gnu isn't it 17:31:04 roughly :) 17:31:24 but i dont know its exact history 17:31:41 if i use it, then i need to give everybody the source that i come up with, right? 17:32:59 dunno what exactly GPL1 means 17:33:17 gnu public licence1 17:33:33 i should probably read all about it sometine 17:33:34 nnaaah... 17:34:12 i didnt say i didnt know where does the abbrev come from, 17:34:29 but what does that license mean 17:34:36 right 17:34:46 i'd have to read up on it to know more 17:35:05 the minimal.f83 is much more interesting... 17:35:30 its just 9657bytes long (src size) 17:35:39 i see http://savannah.nongnu.org/download/tile-forth/tile-forth-2.1.tar.gz 17:35:47 is the f83 in that file? 17:35:51 sure 17:36:01 in the tst dir 17:36:12 ok 17:38:06 i need to leave 17:38:13 i like to come and chat once in ahilw 17:38:16 i like to come and chat once in awhile 17:38:23 well, some other time 17:38:25 take care 17:38:42 --- quit: jdamisch () 18:04:14 --- quit: PoppaVic ("tootles") 18:43:05 --- join: gilbertdeb (~gilbert@fl-nked-ubr2-c3a-74.dad.adelphia.net) joined #forth 18:43:21 --- part: gilbertdeb left #forth 20:37:06 --- join: fridge (meldrum@zeus.zipworld.com.au) joined #forth 21:43:55 --- join: ramnull (~nicad@12-241-145-39.client.attbi.com) joined #forth 21:53:11 --- quit: ramnull ("This isn't Happy Hour!") 23:59:59 --- log: ended forth/03.05.03