00:00:00 --- log: started forth/06.08.21 00:15:33 morning 00:43:08 --- quit: uiuiuiu (sterling.freenode.net irc.freenode.net) 00:43:09 --- quit: Quartus (sterling.freenode.net irc.freenode.net) 00:43:09 --- quit: michaelw (sterling.freenode.net irc.freenode.net) 00:43:09 --- quit: cods (sterling.freenode.net irc.freenode.net) 00:43:09 --- quit: madwork (sterling.freenode.net irc.freenode.net) 00:43:09 --- quit: ccfg (sterling.freenode.net irc.freenode.net) 00:43:11 --- quit: madgarden (sterling.freenode.net irc.freenode.net) 00:43:11 --- quit: Quiznos (sterling.freenode.net irc.freenode.net) 00:43:11 --- quit: fission (sterling.freenode.net irc.freenode.net) 00:43:12 --- quit: astecp (sterling.freenode.net irc.freenode.net) 00:43:19 --- join: michaelw (n=michaelw@lambda.foldr.org) joined #forth 00:43:26 --- join: astecp (n=aspect@210.8.131.1) joined #forth 00:44:35 --- join: Quiznos (i=1000@69-168-231-199.bflony.adelphia.net) joined #forth 00:44:47 re 00:46:21 --- join: Quartus (n=trailer@CPE0001023f6e4f-CM013349902843.cpe.net.cable.rogers.com) joined #forth 00:46:22 --- mode: ChanServ set +o Quartus 00:48:08 --- join: ccfg (n=ccfg@dsl-roigw1-fe8ade00-21.dhcp.inet.fi) joined #forth 00:48:09 --- join: fission (n=fission@69.60.114.33) joined #forth 00:48:11 --- join: uiuiuiu (i=ian@dslb-084-056-234-056.pools.arcor-ip.net) joined #forth 00:48:12 --- join: cods (n=cods@tuxee.net) joined #forth 00:48:15 wb 00:52:17 --- quit: Quiznos (sterling.freenode.net irc.freenode.net) 00:52:18 --- quit: k4jcw (sterling.freenode.net irc.freenode.net) 00:52:18 --- quit: ohub (sterling.freenode.net irc.freenode.net) 00:52:20 --- join: Quiznos (i=1000@69-168-231-199.bflony.adelphia.net) joined #forth 00:52:59 --- join: k4jcw (n=jcw@adsl-065-006-151-062.sip.asm.bellsouth.net) joined #forth 00:56:46 --- join: AI_coder (n=AI@ip-209-124-242-76.dynamic.eatel.net) joined #forth 00:57:22 Is there a word that converts an xt to a string or simply prints the name of the xt? 00:57:46 Not standard. 00:57:52 gforth? 00:57:54 what does xt point to? 00:58:00 the name of a word? 00:58:10 or xt >name> 00:58:13 oops 00:58:18 or xt >name 00:58:22 Example: ' + showxtname + ok 00:58:46 .id is the usual word that prints a word's name 00:58:58 duno if .id is ANS tho 00:58:59 ai_coder - yes, not standard. I wrote one recently that worked well with internal gforth words, and applied only to colon definitions. 00:59:45 Quartus what field does an xt point to? 00:59:54 ' words >name .name will display 'words' in gforth. 01:00:05 kk 01:00:30 Quartus: Thanks that works nicely. 01:00:43 An xt is a value that can be passed to execute to run the word. It has no definition in terms of pointing at a field. In a native-code system, it very likely points directly at the executable code. In other kinds of threading models, it may differ. The standard allows implementation freedom. 01:01:12 ok, so it would be the equivalent of the CFA 01:01:35 since that's the start of the body of a word 01:01:51 It may be anything at all that suits the implemenation. It could be an index into a bytecode table. It could be the header itself. It's up to the implementation. 01:02:00 sure 01:02:42 xts aren't necessarily unique; more than one word may have the same xt. 01:03:06 wouldnt that be the defining-word that is shared? 01:03:42 That question implies a specific implementation model. It actually has no meaning for a number of types of implementation. 01:03:52 Quartus: You're good, that was pretty impressive how you pulled that one off the top of your head, when I look through the manual it's there word for word, but it is so hard to remember all of the manual at once or do an intelligent query of the manual. 01:04:07 AI, glad it helped. 01:06:03 --- join: Cheery (n=Cheery@a81-197-19-23.elisa-laajakaista.fi) joined #forth 01:12:20 --- join: ohub (n=oherrala@sikw1.oulu.fi) joined #forth 01:39:01 --- join: nighty (n=nighty@sushi.rural-networks.com) joined #forth 01:46:59 --- quit: nighty (Read error: 104 (Connection reset by peer)) 01:48:36 Functional languages use pattern matching to select the appropriate form of a function, like f n = 0; f n = n * f(n - 1) is this style of programming possible in forth? 01:49:09 i'd guess at a higher-level bc that's one direction i'm heading 01:49:23 Joy does fp i think 01:49:27 a kind of fp 01:50:23 I just go crazy when I make if else conditional then statements in forth, I can't read them. 01:50:53 It's probably just me though. 01:50:58 then break to a newline after the keyword 01:51:04 with indenting 01:51:15 ie, 01:51:17 Yeah white space does help. 01:51:18 test if 01:51:24 \t truepart 01:51:29 else 01:51:31 \t falsepart 01:51:35 fi 01:51:43 fi? 01:51:50 oops, a bashism 01:52:06 economy of characters 01:52:28 Indeed, I would prefer a fi. 01:52:35 then alias it 01:52:38 How? 01:52:39 ' then is fi 01:52:45 or something that way 01:52:55 or, : fi compile then ; 01:52:57 or something that way 01:53:02 1 ALLOT ?Not building 01:53:02 1 ALLOT<-- 01:53:06 bloody hell 01:53:21 stop poking the forth 01:53:21 :) 01:53:25 heh 01:53:31 * fission pokes it inquisitively 01:53:51 you b0rkd it already 01:53:55 give it a rest :) 01:54:05 so I figured that I can stuff things in random memory locations with ! and grab it back with @, only I have no idea how to actually allocate memory heh 01:54:23 hehe 01:54:24 ranmdom pokage is not good 01:54:30 but it seems so right! 01:54:34 lol 01:54:47 allot 01:54:56 or allocate 01:55:17 do you know how many cells you need? 01:56:06 well allot just says ?Not building 01:56:18 Your machine may not be 1 au aligned, you may need to address at 4 au aligns. 01:56:31 how big are your cells? 01:56:32 4 ALLOT ?Not building 01:56:32 4 ALLOT<-- 01:56:32 What type of hardware are you on? 01:56:37 AI_coder: pdp-10 01:56:38 :P 01:56:38 bytes/cell? 01:56:47 uh 01:56:48 that's the twenex system? 01:56:51 36-bits per word 01:56:51 fission, at a guess it's sufficiently broken to allow allot only after create. 01:56:56 heh 01:56:59 Quartus: there's no create 01:57:12 oh, right. The equivalent from back then... let me check. 01:57:13 or if there is a create, it's not called create 01:57:19 build> iirc 01:57:28 it's a FIG forth, isnt it? 01:57:38 beats me heh 01:57:46 man i dont know where my fig books are at this hour 01:58:11 Does cells work? 01:58:16 1 cells allot 01:58:18 there's no cells 01:58:20 there are no cells in fig 01:58:34 try : foo ; 01:58:45 AI_coder have you found src for that binary yet? 01:58:51 I've figured out that SW,,AP seems to : FOO ; Ok 01:58:55 --- quit: segher (Read error: 60 (Operation timed out)) 01:58:56 oops heh 01:59:01 : FOO ; Ok 01:59:08 then foo bar 01:59:10 Quiznos: What src? 01:59:17 for the fig you're on 01:59:18 foo bar Ok 01:59:21 then foo . 01:59:23 holy crap 01:59:24 sorry 01:59:26 then bar . 01:59:31 --- join: segher (n=segher@dslb-084-056-159-011.pools.arcor-ip.net) joined #forth 01:59:31 bar .8992 Ok 01:59:51 So bar is now a word that returns the address of four ... bytes? words? of memory. 02:00:10 heh probably 4 36-bit words 02:00:18 or 4 18-bit half-words 02:00:29 a vector of four words 02:00:30 but who knows, really? 02:00:35 the [0] of that vector 02:00:37 Maybe. Anyway, that's the deal. The system you've got there refuses to allot unless it's against wow 02:00:55 so FOO is now a general-purpose allocator for a 4-bit word? 02:00:58 er no 02:01:03 a 4-something 02:01:05 we don't know what 02:01:06 If you do foo zot and then zot . you'll get a somewhat more incremented address. 02:01:23 foo zot Ok 02:01:23 zot .9000 Ok 02:01:37 So that's working. 02:01:46 my guess is that it's in half-words 02:01:58 so that was 4 36-bit words, or 8 halfwords 02:02:07 Experiment should reveal that. 02:02:41 right 02:02:51 you should really be applying your brain to learning & using a Forth that works. :) 02:02:58 ahahaha 02:03:01 but this is so cool! 02:03:07 Yeah, unless using old computers is uber. 02:03:13 Yes, but it's hurting me to remember this ancient and sad crap. 02:03:31 send me your FIG books plz kthx :P 02:03:55 umm 02:04:02 i cant 02:04:04 i love books 02:04:11 i have law books 02:04:19 but i'd like a little remuneration for them :) 02:04:19 ahaha 02:05:00 you can find a zipfile of fig and other docs online tho; mayhaps Taygeta has them 02:05:17 I will only pay good money for one book: "Finer Points in the Spacing & Arrangement of Type", by Geoffrey Dowding 02:05:20 i know taygeta has them 02:05:33 ok I'll check that out 02:05:39 this forth is hurting my face 02:05:49 stop kissing the crt 02:05:56 ahahahaha 02:05:58 * fission disengages 02:09:10 A traditional FIG Forth wouldn't care if you were doing a yeah it's the bastard sword of forth 02:10:10 Not what I meant. 02:10:14 ahahaha 02:10:40 but you have to admit that making it do anything useful at all without completely thrashing itself is fun 02:10:59 Not especially fun for me. I'd sooner be helping you with something useful and current. 02:11:29 tell ya what, if I figure out the return stack on this thing, I'll switch to pforth or gforth or something and make something useful 02:11:47 coward :) 02:11:48 lol 02:12:03 buck the trend, be original, use FIGforth 02:12:06 lol 02:12:15 ok....... : zap 3 5 >r . r> . ; 02:12:22 actually, ciforth is a figgy forth 02:12:42 there's no data at . 02:13:19 >r >R? 02:13:29 >r r> two different words 02:13:31 it doesn't know that one 02:13:38 r> R>? 02:13:41 or that one 02:13:56 oh. Ok, it's lost without a map. That's a FIG word, so the damaged author has left it out. 02:14:02 ahaha 02:14:14 Maybe send me the vlist in a msg. 02:14:14 <-,, SW,,AP ,,-> 02:14:17 ok 02:23:01 * fission yawns 02:23:15 damn I think it's officially too late for me to go to bed 02:29:41 --- quit: AI_coder (Client Quit) 03:06:44 heh wow this really is a 36-bit forth 03:06:55 cool 03:07:12 34359738367 2 + .-34359738367 Ok 03:07:24 signed too 03:07:26 yeah 03:07:29 try u. 03:07:31 check this out though: 03:07:51 34359738367 1+ . --,-+')-(-*( Ok 03:07:53 heh 03:07:59 there's no u. 03:08:16 is it an upcase forth? 03:08:28 you can define a u, 03:08:30 u. 03:08:36 upcase? 03:08:42 uppercase 03:08:42 it's case insensitive 03:08:45 k 03:08:50 I think it toupperizes everything though 03:08:53 yea 03:09:05 haha I just typed 'see .u' in bc 03:09:13 you need to browse taygeta.com now for fig code and docs 03:09:32 oh! 03:09:39 actually 03:09:45 this might work, one sec 03:09:51 ignore the system names when looking for fig files 03:10:02 like, dos, amiga, 68k, linux, etc 03:10:42 --- join: nighty (n=nighty@sushi.rural-networks.com) joined #forth 03:11:00 see (ud.) 03:11:00 ( 808DCD0 ) <# #S #> ; 03:11:09 ok 03:11:15 (that's on pforth) 03:11:18 k 03:11:26 but it doesn't work on this one heh 03:11:32 what does it do? 03:11:50 --- join: neceve (n=claudiu@unaffiliated/neceve) joined #forth 03:12:22 well on pforth it's: 03:12:26 see u. 03:12:26 ( 808DD70 ) 0 UD. ; 03:12:30 see ud. 03:12:30 ( 808DCE0 ) (UD.) TYPE SPACE ; 03:12:45 k 03:12:45 then it's that ud above 03:13:00 so I guess I'm supposed to put a 0 on the stack first? 03:13:13 i dont remember 03:13:38 try it 03:13:44 -1 Ok 03:13:44 0 <# #S #> . 0 Ok 03:13:46 it's forth 03:14:22 I don't even have a clue what <# or #S or #> does 03:14:39 <# peels one digit out of the tos 03:15:01 #s continues the conversion appending the resulting digit to the string being built 03:15:09 #> ends the convsion 03:15:37 tay-geta tay-geta tay-geta tay-geta 03:15:40 heh 03:16:06 hmm I dunno why I get 0 03:16:13 i think it's the remainder 03:16:16 1191182766 03:16:17 oh I see 03:17:13 hmmm I wonder where that number came from 03:58:32 Ok I give up 03:58:42 this thing can't even print unsigned numbers without a fuss 04:31:55 --- join: vatic (n=chatzill@pool-162-83-254-201.ny5030.east.verizon.net) joined #forth 04:41:46 --- join: PoppaVic (n=pete@0-1pool72-89.nas24.chicago4.il.us.da.qwest.net) joined #forth 04:51:57 fission just learn what the words do. unsigned printing is NOT a problem, it's just your lackage of knowing the words 04:52:29 hmm? 04:53:24 fission is tryin to u. and the fig he's on wont 04:53:46 fig-forth?? 04:53:48 It should 04:53:50 36bit cells 04:53:56 i know, that' what i'm tellin him 04:54:09 he doesnt know the meaning of the forth words 04:54:26 mind you, w/o the info-file for Gforth (and before that PFE), I'd have been horribly lost as well. 04:54:40 he's not using gforth 04:55:29 --- join: virl (n=virl@chello062178085149.1.12.vie.surfer.at) joined #forth 04:55:30 well, the point is the same: you need the info/man pages 04:55:38 true 04:55:49 ..I don't think _anyone_ uses "view fields" anymore, do they? 04:55:51 i encouraged him to scour taygeta for fig info 04:56:08 yep, w/o some docs - he's toast. 04:56:25 well, no, he can still spermint 04:56:33 but it will take longer 04:56:55 Depends on what he's trying to learn.. Certainly the FIG source is easier than some systems. 04:57:06 the whole i spose 04:57:09 ..trying to peruse gforth source makes you want to cry 04:57:28 yea, i wont even ftp gforth 04:57:46 but if i do, it might be to grab forth source from it 04:57:52 well, once it's installed, it's handy 04:58:03 perhaps 04:58:35 it's like a cross between a shell and bc, etc 04:58:45 k 04:59:25 I blip into it and use 'see' and bases and printing quite a bit.. Beats trying to find my calculator, it's manual and all the other noise. 04:59:56 true 05:00:03 makes better sense to me than bc or dc 05:00:27 well, bc CAN be handy, but I like doodling with forth 05:00:39 yea 05:01:01 and, of course, like C: if I do something the same a few times, I can just write a secondary. 05:01:22 yep 05:02:46 hmm.. 05:03:15 I'm glaring at my Klasses and trying to get my head together, so's I can beging to THINK about implementing. 05:04:23 I believe at some point I got a trifle disoriented, and atop that - in some cases I seem to have gotten confuzzled. 05:05:22 For example.. I can't seem to admit to myself that arrays should be "growable" 05:06:44 Seems to me that arrays are just that - and if they want "growth", then they need some other sort of container. 05:08:18 well, for growable vectors you're gonna need a vector ** type of object 05:08:22 or even *** 05:08:40 so that you have atleast one stable pointer to use 05:10:24 I'm still not 100% on if they _should_ grow. An "array" seems nice and simple to me - if they want a list or tree or stack or something, then that's what they should use. 05:10:41 what about a queue then? 05:10:59 same as the latter choices, of course 05:11:10 are you just filling out your kernel or going somewhere with grown vectors? 05:11:19 instance is an item; an array is a limited-set of item 05:11:38 just trying to coordinate basic "core" classes 05:12:23 k and k 05:12:29 aamof, I also been glaring at the idea of "array" - and it occurs to me that (in our objectified universe), I don't even need to force a class of elements. 05:12:58 k 05:12:59 ..as long as they are all "objects", they may all be shoved into the "array" 05:13:10 ..or, so it seems 05:13:14 they're all pointers ultimately 05:13:19 yeppers 05:13:38 ..and I do NOT plan to expose ptrs to uses. 05:13:40 users 05:13:46 k 05:13:59 but that's just a contrivance; the user will figer it out :) 05:14:11 dont use too much wool :) 05:14:51 if they want to dip into the interface, and write themselves some C or asm, fine. BUT, the idea of unleashing C's ptrs on the stacks and for users is just not thrill-making 05:15:15 I know they WILL be around, but call them XT's or some damned thing 05:15:38 i think you're tryin to hard 05:15:44 ..otherwise, some idjit will trying poking and proding areas they should avoid 05:15:49 heh 05:38:05 --- quit: vatic ("*poof*") 06:12:07 found an tarball of f83 ported to 68k; it's old and i now need to see if it can be ported 06:12:17 heh 06:12:18 to intel platform 06:12:44 Umm, I did F83 (notice case) for my DOS machine years ago 06:13:33 I'd expect the asm - anywhere but DOS or whatever - is the prime issue 06:14:47 Quiznos: How would to define/contrast [un]{ordered,sorted}? 06:15:12 http://www.forth.org/library/eforth_SOC/eforth_SOC_source/f83/f83v2-ms.lzh 06:15:18 Why are you reinventing the wheel? 06:15:27 F83 for x86 06:24:46 damn.. to/you 06:29:57 Google. It's almost like magic. 06:42:44 ahhh 06:50:37 PoppaVic there is order (rank, sequence, a stepping) to everything, even if the the order is unrecognised or unknown. c++ ``bags'' are seen as unordered but they could be temporally-sorted as to when the elements (groceries) were placed in the bag 06:50:57 that's how i see it 06:51:15 yep... That was the feeling I got from a short search of google and ##C debate 06:51:21 ok 06:51:30 i'll bbl. 06:51:34 sure 06:52:07 on the flip side, there is no real "chaos" because that requires confusion and conputers dont do that :) 06:52:10 lol 06:52:32 no, people 06:52:38 true chaos exists only within a bureaucracy. 06:54:44 brb, guys - need the horn... 06:54:46 --- quit: PoppaVic ("Pulls the pin...") 06:59:50 --- join: madwork (n=foo@derby.metrics.com) joined #forth 07:02:05 Quiznos: I can't tell whether you were being deliberately rude or just lack tact 07:09:36 fission - 'deliberately direct'. Best not to speculate about tact. 07:28:18 --- join: PoppaVic (n=pete@0-1pool64-131.nas22.chicago4.il.us.da.qwest.net) joined #forth 07:53:46 --- join: I440r (n=mark4@63.163.143.188) joined #forth 08:02:27 ayrnieu: haha clever -- I'll keep that in mind 08:03:01 Quiznos: just to clarify: yes, I know that I need to know what the words mean -- if this forth had "see", that would not be a problem 08:03:21 Quiznos: I have poked around taygeta but didn't really see anything useful 08:04:04 Quiznos: I can't see words to manipulate a return stack, and <# #S #> seems not to know about double-length numbers 08:04:27 but, as I said, I'm giving up on a forth without documentation and missing chunks of words that I'm used to and fond of 08:05:40 FIG forths are complete. They predate most everything except C and lisp 08:06:00 I'm not saying that FIG forths aren't complete 08:06:11 I'm saying that this particular implementation appears to be incomplete 08:06:14 meanwhile, you can't live w/p source and docs - even if the docs *are* the source 08:06:31 yeah there's no docs, no source 08:06:44 there is no "incomplete" to FIG - there are just extensions you do not recognize 08:06:47 so I'm basically typing words to see what they do and inferring what its behaviour is 08:06:57 fission, isforth has see :) 08:07:15 so does Gforth - and prolly Pfe 08:07:28 PoppaVic: so there's no basic set of words that a FIG forth should implement? 08:07:36 I'll probably use pforth 08:07:37 neither of which counts as a real forth to me 08:07:42 both are written in c 08:07:54 fission: depends on yer context: ANS specifies some, FIG does as well 08:07:54 I440r: heh so what forth do you recommend? 08:08:07 PoppaVic: where can I see the FIG spec? 08:08:27 I440r: yeah, asm is god - until the asm is not apropos for the cpu or os 08:08:27 isforth.clss.net - a work in progress 08:08:35 but then im biased heh 08:08:39 there IS no "FIG 'spec'" 08:08:57 ok so what I'm hearing is that there is no requirement for any word in a FIG forth 08:08:58 there is FIG - and there are others 08:09:08 PoppaVic, and portable code is a myth and asm is damned SIMPLE to port 08:09:14 so wheres the problem 08:09:21 forth is "the world most unsupported language" 08:09:43 I440r: assumptions are the mother of fuckups 08:09:53 the whole thing seems really silly anyhow 08:10:14 fission: sure, depending on yer assumptions and viewpoints 08:10:17 --- mode: ChanServ set +o I440r 08:10:24 I say "this forth is incomplete" and you (without ever having used it, I assume) say "that couldn't possibly be" 08:10:34 so when I ask how that is, you say there is no spec? 08:10:35 ... 08:10:36 what? 08:10:49 "incomplete" to one clone is "flexible" to another - so what? 08:11:41 basically you're talking a lot but not saying much 08:11:42 that's what 08:12:03 FIG was designed for 8080, 6502 and 6510, and then Z80's - SO WHAT? Ohhh... yer freaked on the OS 08:12:38 --- quit: madwork ("?OUT OF DATA ERROR") 08:12:46 forth-purists indicate they feel every forth is unique and nonportable. 08:13:21 --- join: madwork (n=foo@derby.metrics.com) joined #forth 08:13:31 Seems silly to me, as there are basic assumptions everywhere. 08:13:43 PoppaVic: "yer freaked on the OS" ? 08:14:11 fission: every OS and platform offers "challenges" - and then has to mesh 08:16:09 I get folks pissed in ##C and #forth and even #asm - because there are basic expectations, then solutions or assumptions - both. And no one wants to admit they are above the OS and the kernel and bios and interpreting - one way or another. 08:16:56 ..the only OTHER alternative is: you just became the kernel and OS 08:17:24 ..and they STILL have to talk-with or learn-from the BIOS 08:17:45 ..let alone the cpu 08:18:39 I've long suspected every language could be forthish-based. But, the proofs are hard to find. 08:19:09 linus t has a friend thats developing a dual stack c compiler 08:19:26 linus himself has done forth coding but he doesnt like forth because it has no data types 08:19:43 which are a crutch for poor programmers anyway (chuck moore) 08:21:27 --- quit: I440r ("brb - restarting x") 08:21:43 chuck started getting whachy post FIG.. I don't much care 08:22:27 --- join: I440r (n=mark4@63.163.143.188) joined #forth 08:22:41 Chuck esposes Color-Forth - which made me laugh no end 08:23:48 btw did anyone here notice the new joke at isforth.clss.net ??? :) 08:23:54 I don't care what you write in: structures, unions; methods and funcs and procedures are still your "issue" 08:24:49 --- mode: ChanServ set +o I440r 08:24:59 I get a laugh with most ASM, because - by themselves - they still have the same issues even libc and vars/structs offer 08:25:57 so, (once again), we need a generic macro-assembler, plus preprocessing - and Forths offer mode and state anyway 08:26:34 PoppaVic, not everyone thinks you need 500 gigs of library glue code to write programs 08:26:45 I440r: that's nice. 08:26:50 chuck moore doesnt give a damn about writing code that is portable 08:26:58 meanwhile, that code exists 08:27:18 I440r: yes, and thus: I'm not much interested 08:27:34 we know 08:27:38 ..I watch for the "issues" - and the rest is dross 08:28:18 PoppaVic, in forth, the overhead for writing something from scratch is NEGLIGABLE !!!!!!! 08:28:38 I440r: I would hope so. I disagre with a lot of folks, and I don't much care whome disagrees - the WHY is more amusing 08:29:09 PoppaVic, sometimes us lesser mortals have difficulty understanding you lol 08:29:11 I440r: yer silly... Yer thinking of interp, not compile or object or share. 08:29:40 I440r: I keep looking at does and what and whom and then WHY 08:29:59 ? 08:30:04 yeah 08:30:07 say again in english ? 08:30:09 I thought so 08:30:40 can someone check if isforth.clss.net is up ? 08:30:47 registers are no more than "fast variables", so - forget regs offhand. 08:31:46 "asm" is always machine and symantic based - now, discard that as well. 08:32:20 and now your left with nothing 08:32:26 yer left with pseudocode and pretend 08:32:33 so what? 08:32:54 stop expecting a true "assembly" 08:33:15 if you want "true" - use machinecode (MC) 08:33:46 meanwhile, everything else is "interpreted" to do what forths have done for years. 08:34:52 interpret(symbol); compile(symbol); execute(symbol) 08:36:06 hell, you don't even know if what is interpreted is compiled, let alone if what is compiled is executed. Think about it. 08:36:41 where as in c you dont know what was compiled, where it was compiled or WHY it was compiled 08:36:41 Folks think about TOOLS 08:36:59 a includes b, b includes d e and f. add infinitum 08:37:07 don't care: in C: you get something a later call can use. 08:37:12 in forth you know exactlhy what was compiled and where and WHY 08:37:16 ahh, preprocessing 08:38:28 I440r: again, I recommend thinking it over... It's not obvious but IS an "epiphany" 08:39:20 Stop pretending every machine is the same, or the "assembler" is the same - because most are not... THey are variants and tainted. 08:39:56 hell, most folks can't see "interpreter" versus "compiler" - forthers can 08:40:16 wrong 08:40:22 * PoppaVic sighs 08:40:38 PoppaVic, and c has invented a new way of programming - they thunked it up all by themselves too!!!! 08:40:39 Yeah, they are as dull as I am used to elsewhere 08:40:44 they call it metaprogramming 08:40:54 I440r: no 08:40:56 i.e. executing part of your compiled code AT COMPILE TIME !!!!! 08:41:02 wow. why didnt we think of that 08:41:07 again, no 08:41:38 Yer also mixing target/source and timeslices 08:41:54 c has to INVENT new, complex ways of doing things that forth does naturally 08:42:34 I don't even mandate C - I simply treat C as a "universal assembler" - and it's got flaws all over 08:43:17 I440r: yer comparing the skin of the fruit to the fruit, again 08:43:30 brb 08:43:30 no 08:43:58 this is why XML heads and SQL folks all get together and laugh - and they too are wrong. 08:43:58 --- quit: madwork (Read error: 104 (Connection reset by peer)) 08:44:07 there is no skin. there is only the fruit. you cannot take the skin or the fruit away and have the WHOLE 08:44:15 sorry 08:44:19 hey now. i'm an xml/C person. ;P 08:44:20 there is no user space. there is no system space. theres just SPACE 08:44:21 yer wrong again 08:44:40 --- join: madwork (n=foo@derby.metrics.com) joined #forth 08:48:32 This is why #asm assumes some form of x86 assembler, and c'ers assume sizes/order - and no one can assume much more without posisx and whatnot - and everyone hates their alternates and variants. 08:49:14 But, that's ok... I've seen it for several decades. I don't expect any solution soon 08:49:51 ..and the way folks abuse lisp, C, and forth - I'd not be suprised that we never solve it. 08:50:25 so your point is? 08:50:58 virl: I suspect yer project has more guts than anything else. 08:51:46 virl: it's almost too-much "head-wrapping" for most folks. 08:53:38 'more guts than anything else'? why do you come to that assumption? 08:53:52 I've suffered too much cp/m, dos and assorted *nix to have many preconceptions anymore. But, it seems to be personal epiphanies.. You can't spin folks up to speed like a gyro. 08:54:57 virl: I think yer whole mess is a touch lower than I'd go, but I can see the point: folks expect too much too often in too many places 08:56:46 aha, you expect that my 'mess' too low? 08:57:20 could be - it seems a lot of forthers think "asm" and they are no more correct than C users 08:58:17 neither seem to understand OS/platform/expectations well 08:58:42 Even #asm folks make a lot of assumptions 08:59:59 hell, I've seen similar assumptions/expectations from the whole ascii vs unishit bunch. 09:01:26 I'd have to admit: I live in ASCII, but utf8 would work too, if we could EXPECT it. 09:03:09 is the assumption that a byte means 8 bits, too much? 09:04:05 Some platforms don't have bytes. Take the Seaforth 24's, for example. 09:05:02 virl: very likely, but someone MUST make such an assumption 09:05:42 I prefer to think of BYTES like all neuvo-volken think of "octets" 09:06:09 well a byte sometimes isn't a useful measure either 09:06:20 on a 36-bit machine, usually you deal in words (36 bits) and halfwords (18 bits) 09:06:28 8 bits is a byte, four is a nybble, and more or less need other terms - and PLEASE tell me of them ;-) 09:07:22 NYTES: nine-bit chunks on 18-bit word sized machines :-) 09:07:31 This is where I note "reporting" is lame (currently) - the executable "sysctl" is marginal 09:08:14 TreyB: that'd be fine, if you could learn of them and sizes. You usually CAN'T 09:08:49 it's like C asking for CHAR_BIT and sizeof() 09:09:26 C defines those things as platform/architecture dependant. 09:09:37 no 09:10:01 C does not mandate 8bits == 1 one byte. 09:10:12 Stop merging CPP with C and COMPILEtime versus INTERPRETtime and RUNtime 09:10:17 filters 09:10:59 under forths, we get some states/times - under others, it's moot 09:11:32 TreyB, but you can have 8bits and that's the only thing that counts 09:11:36 C mandates that a "char" have *at least* a certain range. You can inquire as to the range with macros. 09:12:26 This is the same sorta' issue we see in .c and .o and .o/.so/,dll/.plugin, etc 09:13:03 TreyB: poorly.. It's not all interpret-time 09:13:22 sizeof, for example, is NOT interpret-time 09:13:39 offsetof is much the same 09:13:49 I haven't seen any todays chip which hasn't at least 8bit per memory unit and I call that a byte. 09:13:49 When I go to code for a new platform, I find out about the environmental dependencies. I have to do this reguardless of the langauge. 09:14:27 virl: You can call it whatever you want :-) 09:14:43 TreyB: sure, NOW. So what? What about them is similar? different? I still think we are talking about a forthish _shell_ 09:15:11 * TreyB must have not figured out the context. 09:15:29 on each system you have at least one byte, that's not a big assumption. 09:15:30 This is why I often have to agree and whatch folks talk about Lisp 09:16:06 virl: no, it becomes an issue if they _redefine_ a "byte" 09:16:46 if they think "quarter/half-register" - yeah, THEY made the issue. 09:17:43 trust me, this crap takes years to absorb 09:18:06 ...and folks make it more and more spastic, w/o much reason 09:18:42 crap. as is: I would expect 'bit' to redefined any time now 09:20:37 To me, (and this is likely conditioning), a BIT is binary, a Nybble is base 4, and a byte is 2 nybble or 8 bits. ANd "sign" is not remotely involved. 09:21:04 shifting powers and size 09:21:47 The day we add "trinary", yeah: shit is going straight to hell 09:23:34 virl: basically, what we'd all like is some sorta' engine - that is portable - and can understand basic terms, objects, and expectations that deal with basic returns 09:24:21 so, at the LEAST, we want a portable engine that can thereafter talk in terms we can ALL use. 09:24:51 ..this is not an assembler, a compiler or an interpreter - but has to handle all those cases 09:25:10 Ain't this fun?? 09:25:47 anyway... I need to deal with dinner and take a snooze... Stay well, folks. 09:25:51 --- quit: PoppaVic ("Pulls the pin...") 09:48:03 well, I don't redefine a byte a byte is always 8bits. 09:50:01 that much is certain 09:51:05 and one bit means on or off. 09:52:37 and oh yeah.. when now think in a complex high-drug way then a byte is a number in the range of 0-255 anything else isn't a byte. 09:52:57 I get angry out of such brain damaged discussions. 09:54:25 which result only out of the fact that the topic of the discussion isn't well defined so that really any participants can understand it really clearly. 09:55:51 hmm 'really clearly'? is that ok or should 'really clear' do the thing? 10:00:19 really clearly isn't grammatically correct 10:00:34 "understand it well" would probably be best 10:00:51 personally I had no idea what he was talking about at all 10:01:48 hmm maybe really clearly is grammatically ok... but it doesn't sound good haha 10:02:09 fission, that's why I asked.. 10:03:38 08:10 < fission> basically you're talking a lot but not saying much 10:03:50 I think that pretty much sums up how I felt about that haha 10:05:13 yeah, that's right. that's pop.. 10:10:18 --- quit: I440r ("brb - restarting X again") 10:11:09 btw. how far is he with his (fantastic) project? 10:13:22 ? 10:19:12 'metabuilder' 10:23:04 --- join: I440r (n=mark4@63.163.143.188) joined #forth 10:23:04 --- quit: I440r (Client Quit) 10:23:22 --- join: I440r (n=mark4@63.163.143.188) joined #forth 10:23:55 hi I440r 10:24:07 btw. how is isforth going? 10:25:25 hi 10:25:41 ive not worked on it in the past cpl of weeks, ineed to fix a problem in her tho 10:26:07 the shebang script stuff doesnt work any more because the file that handles that HAS to be the very last one included and it no longer is 10:26:15 and when i move it to the end ./isforth segfaults lol 10:26:52 --- join: ravenEx (n=a@87.252.242.16) joined #forth 10:27:46 ravenEx, is in .ru ? 10:27:58 nearby 10:28:04 .by actually 10:28:22 :) 10:28:40 we got a russian guy here - his nickname is vova heh 10:28:58 he says its a term of endearment that a mother would use for a small child... he doesnt like the name lol 10:29:03 but he is stuck with it 10:29:13 sound like real name 10:29:43 his name is vladamere borisov ... hrm does that sound russian ? heh 10:29:45 no, it is shortcut, like Bill 10:30:46 aha 10:30:48 if you were Vladimir friends would call you Vova 10:30:59 aha got it 10:31:08 he described it differently :) 10:32:01 anyway im at work and i gotta get with it :) 10:32:06 semi afk... 10:35:26 --- join: saon (i=1000@c-71-199-235-144.hsd1.fl.comcast.net) joined #forth 10:40:02 --- join: rabbitwhite (n=trip_n_s@204.52.131.22) joined #forth 10:40:22 hello 10:42:27 hi 10:42:34 you new in here ? 10:42:38 i dont recognize the nickname heh 10:42:45 new is good... 10:43:07 no, and i don't reckognize yours either 10:43:39 heh i started the channel but ive been away for a while 10:43:43 its NOT my channel. its everyones 10:43:54 had to say that :) 10:44:01 so are you a forth coder ? 10:44:35 yeah, i wrote a forth for the Gamecube 10:45:19 cool! 10:45:30 im stalled on doing one for the gba/ds 10:45:41 i need to write an arm assembler for isforth (my main project) 10:45:59 what platform is isforth for? 10:46:15 linux x86 10:46:27 theres an older fbsd version thats not been updated yet 10:46:35 i have a volunteer to do that ehh 10:46:51 theres also a linux ppc port that tathi (afk) did but he isnt going to be updating it further 10:49:09 unfortunatly isforth.clss.net seems to be down :( 10:49:12 really, a powerpc port? 10:49:16 gamecube is ppc 10:49:22 heh 10:49:28 i'd be interested in being able to look at the code for that one 10:49:40 well if isforth.clss.net were up you could grab the ppc version 10:49:50 oh, bummer 10:50:00 ya. im sure they will fix it eventually :) 10:50:11 ok, i will bookmark it 10:50:11 is there a linux for gamecube ? 10:50:50 yes 10:51:02 although linux is not really my scene 10:51:13 i was able to download the ppc port 10:52:26 is this compiled with gcc? 10:54:15 no 10:54:16 erm 10:54:17 yes 10:54:19 lol gas 10:54:33 its coded in assembler. it uses linux syscalls for all i/o 10:54:41 no external libraries are referenced at all 10:55:02 the x86 version is assembled with nasm not gas 10:55:13 gas is a pile of shit but its the only option on ppc 10:55:40 i have a standalone assembler 10:56:00 pasm, its buggy but its functional 10:56:17 this forth is alot more complex than mine 10:56:33 :) 10:56:42 im not exactly a minimalist but im not into bloat either 10:56:51 to me, this is bloated, but alright 10:57:28 ya. others have said so. and it is to a degree. when i can metacompile alot thats built into the kernel can be stripped out 10:57:36 but i will need an x86 assembler first 10:57:44 and i dont like 5 # ax mov type crap 10:57:57 I440r, so no gui apps at all.. 10:58:22 no. i need to learn the x protocol first. 10:58:28 and thats going to take years lol 10:58:48 if more ppl were working on isforth it might go faster :) 10:58:57 I440r, I tried that and you get ill. 10:59:08 lol 10:59:13 i wont use xlib 10:59:32 using the xlib is more friendly to the nerves than doing it through the protocol. 10:59:33 xlib is like libc - obfuscated. 11:00:16 when you get an app working then you could say me what I did all the time wrong. 11:00:29 heh 11:00:36 why is x support so important ? 11:01:30 well... because todays all used apps are gui things? because most people get horny when they hear 'gui'? 11:02:13 lol 11:02:15 and because I would like to do gfx games. 11:02:27 and not text console things.. 11:02:30 ya - how about using the fb ? 11:02:42 ugh.. 11:03:11 when it would be better implemented so that I won't get headaches then yes but it's not. 11:03:28 in fact fb is a construction area. 11:04:24 it's ugly but the truth the only really working thing in gfx at the moment on unix systems is X 11:04:36 and X has an ugly protocol.. 11:04:43 with horrible long messages. 11:04:56 (that's why it's ugly) 11:05:18 my gamecube forth provides access to a flat framebuffer 11:05:53 I440r, if you want I could post you my test C programs which try to do something with the X protocol, perhaps you have more air than I to run the rest of this marathon 11:06:24 rabbitwhite, which pixel format must you use btw? 11:06:50 does it matter? 11:07:05 well, for me, yes 11:08:04 well, right now, it's in YCbYCr. but it's possible to use an RGB texture in any format as a software framebuffer, just have to write the code to do it :) 11:08:21 i have a routine to convert RGB to YCbYCr 11:09:17 is that the native format? so of the hw? 11:09:35 its what the video component uses, yes 11:09:48 the accelerator is much more flexible, but i haven't unlocked it yet 11:09:59 --- quit: ravenEx (sterling.freenode.net irc.freenode.net) 11:09:59 --- quit: Snoopy42 (sterling.freenode.net irc.freenode.net) 11:10:24 --- join: ravenEx (n=a@87.252.242.16) joined #forth 11:10:24 --- join: Snoopy42 (i=snoopy_1@dslb-084-058-144-156.pools.arcor-ip.net) joined #forth 11:10:33 YCbYCr - do they have all the same amounts of bits? so the same size? 11:11:13 yes, each component is a byte 11:11:59 --- join: arvenEx (n=a@87.252.242.16) joined #forth 11:12:13 --- join: aggieben (n=bc@63.98.86.62) joined #forth 11:12:17 ah.. that's a pretty format then. 11:12:32 yeah. it has some perks and quirks. 11:12:33 I hate other formats with different sizes. 11:12:43 you seem to hate alot of things :) 11:12:56 virl yea you can email me those sources :) 11:12:56 anyone know what's going on with intellasys? Their website says downloads of their compiler and simulator tools would be available starting June 30, but since then, there have been no changes to their site. 11:13:07 ok, I dislike them, 'hate' is shoter.. 11:13:10 shorter 11:13:26 haha, that's good forth 11:13:29 shorter names 11:13:55 aggieben, I said that a couple of weeks in this channel too. 11:14:19 virl: and nobody has heard anything? 11:14:58 virl, if you really want to dive into graphics games, get a cube and i could set you up :) i have a feeling you'd feel spoiled by what i'm working with. 11:15:29 I've tried emailing them and calling them and have received _zero_ responses. 11:16:31 and that's really something I hate(in the sense of hate), when a company act so stupid like intellasys at the moment. 11:16:50 --- join: EsotericMoniker (n=Esoteric@207.226.175.168) joined #forth 11:19:42 rabbitwhite, when I see a cheap one.. 11:20:00 ebay, $50 11:20:04 puh, then I have 11 computers in my room.. when I get this gc.. oh my god... 11:20:31 motivation to put a couple of them in storage? 11:20:35 --- quit: ravenEx (Connection timed out) 11:20:38 you use all of them? 11:21:16 no... not all perhaps 4 of them more often. 11:21:36 i can't believe you have 11 computers :P 11:21:38 yesterday I bought an old c64 11:21:47 sweet 11:21:57 i have one :) 11:23:19 well, in the meantime, maybe i'll have rgb fb support by the time you get around to wanting to try the forth. it's a neat and helpful thing that the gamecube's main memory is actually also its video memory. 11:24:10 well, I have: one laptope, 5 pcs one of them in a suitcase, one ps2, a xgs, a sega mega drive, a gameboy and the c64 11:24:12 anywhere in main mem can be video mem ? 11:24:51 virl: oh, so you count consoles as computers :) in that case i might have more than you 11:24:53 ups, 12 I have forgotten my lego rcx 11:25:10 I4404 for the external framebuffers yes 11:25:14 oops 11:25:23 i mean for the external framebuffers NO. for textures and vertex data yes 11:25:29 ok, then list your hw ;-) 11:27:12 2 pc's, 2 laptops, c64, nes, snes, gc, gba, psx, ps2, dreamcast, atari 2600, c128 11:27:28 most of my things are neatly tucked away though, i dont have everything out 11:28:01 no ds ? 11:28:11 not yet, waiting for the navy blue one to come out in the US :) 11:28:17 lol 11:28:19 my gba is a pos 11:28:24 its so worn 11:28:28 i thought i saw them on sale at wally mart 11:28:37 really? 11:28:46 its been a while since i checked for it 11:28:48 might be wrong but i believe so 11:29:14 sorry, i meant the navy blue DS Lite 11:30:07 ;-) 11:31:24 wish games were cheaper 11:37:39 --- quit: aggieben ("leaving") 11:38:49 brb, gotta connect laptop to something here at work :) 11:38:51 --- quit: I440r ("bbl") 11:52:12 --- quit: arvenEx (Read error: 145 (Connection timed out)) 12:13:51 --- join: I440r (n=mark4@63.163.143.188) joined #forth 12:14:30 ok isforth.clss.net now resolves but it loads the main aurora internet web site so they are probably working on it as we speak :) 12:19:45 --- quit: rabbitwhite (Read error: 110 (Connection timed out)) 13:02:07 --- join: snoopy_1711 (i=snoopy_1@dslb-084-058-186-142.pools.arcor-ip.net) joined #forth 13:02:34 --- quit: Snoopy42 (Nick collision from services.) 13:03:01 --- nick: snoopy_1711 -> Snoopy42 13:09:05 back. 13:09:25 * Quiznos opens his monthly bag-o-presents from daddy in heaven. 13:28:12 --- quit: Cheery ("Download Gaim: http://gaim.sourceforge.net/") 13:41:37 --- join: vatic (n=chatzill@pool-162-83-254-201.ny5030.east.verizon.net) joined #forth 13:43:57 --- quit: EsotericMoniker (Read error: 104 (Connection reset by peer)) 13:44:04 --- join: EsotericMoniker (n=Esoteric@207.226.175.168) joined #forth 13:59:34 --- quit: I440r ("brb - going home to idle there instead") 14:02:25 --- join: mbishop (n=martin@unaffiliated/mbishop) joined #forth 14:17:30 Latest RetroForth ANS layer, with expanded docs: http://retroforth.net/paste/?id=149 14:27:58 --- quit: Quiznos (Read error: 110 (Connection timed out)) 14:32:33 --- join: slava (n=slava@CPE0080ad77a020-CM000e5cdfda14.cpe.net.cable.rogers.com) joined #forth 14:32:33 --- mode: ChanServ set +o slava 14:36:24 Quartus: man! you're a daemon! 14:36:44 heh. Does that mean I run detached and in the background? 14:36:48 vatic, haeh? 14:36:51 hi 14:36:58 hi slava 14:37:22 oh.. that ans compat urg 14:37:33 vatic, you are right, man. 14:38:18 It's coming along quite well. It's possible that crc's upcoming revisions will let me bridge the remaining small gap. 14:39:30 Quartus: actually front and center... ;-) 14:39:34 hopefully crc's new code brings some fundamental changes, so that this ans crap doesn't work. 14:39:50 vatic: :) 14:41:44 Quartus: do you have a 200x proposal you're working on? 14:41:55 vatic, I don't. I see Pelc just produced about 9000 of them. 14:42:12 ugh.. poor retroforth 14:44:30 why poor retroforth? 14:44:37 vatic, I built the 200x defer proposal into Quartus Forth, and will likely adopt a few others. 14:45:11 I can't recall if prefixed numbers is a 200x proposal; I think it is, and I offer those optionally. 14:47:09 virl: do you need some Tumms? 14:47:53 virl: i don't see how an ans library can hurt retroforth 14:48:28 what are Tumms? 14:48:35 Writing it I've managed to uncover a few retro bugs, which is also good. 14:48:48 http://www.tums.com/ 14:49:04 virl: Amurcan over-the-counter pills for stomach upset... 14:49:56 aha.. ok.. I'm not from the .us 14:50:26 virl: sadly I am... :-) 14:51:26 you poor 14:51:43 "Gestid", I think, would be similar. 14:53:04 well I think I have an ans allergy 14:53:15 o/' you poor, unfortunate soul... 14:53:15 why? 14:53:38 --- quit: neceve (Remote closed the connection) 14:54:02 --- quit: slava () 14:55:15 --- part: mbishop left #forth 14:55:18 virl: Murcans aren't poor, it's just their credit is overextended... 14:55:47 --- join: slava (n=slava@CPE0080ad77a020-CM000e5cdfda14.cpe.net.cable.rogers.com) joined #forth 14:56:02 vatic, yeah.. 14:56:42 --- mode: ChanServ set +o slava 14:56:46 well I think I don't like the similiarity of ans forth with lisp is what hits me. 14:56:54 with lisp? what are you smoking? 14:58:53 well, I don't smoke anything 15:00:50 being ans allows an implementation to have access to a large amount of existing code 15:03:54 it's so oldskool 15:04:06 forth is old school in general 15:05:03 type systems are almost universally accepted, except in forth 15:06:31 With reason, of course. 15:12:00 The retro ANS layer does more than just provide ANS words -- it also gives retro multiple wordlists, exception handling, double-cell number support, and compiler security. 15:12:10 compiler security? 15:12:39 : foo if ; <- Exception: control structure mismatch 15:13:50 or : foo loop ; or : foo begin while ; or any other incomplete construct you can think of. 15:14:17 ok 15:14:17 Quartus: you key off of CS depth? 15:14:31 TreyB, no, except to determine that there are enough stack items. 15:14:49 with factor i don't explicitly do any checks in parsing words. if something is input wrong, it raises a type error 15:15:25 These aren't parsing words, as such. 15:15:34 Well, : is. 15:16:31 TreyB, : leaves a colon-sys tag on the stack, and also records HERE in a top-of-word variable. ; confirms the tag and that it matches top-of-word. 15:16:47 Then, every control structure confirms that it has a valid orig or dest. 15:17:11 An orig has to be a memory address within the bounds of the definition, and contain a sentinel 0. 15:17:39 A dest has to simply be within the bounds of the definition. 15:18:06 Well, and not contain a sentinel 0, to avoid confusing dest with orig. 15:18:49 Have a look at the source, if you like, it's actually easier to read than to describe. :) 15:19:09 Scroll down to: section: \ Compiler security: 15:21:51 Thanks. 15:22:21 And as usual, upon review I find something to change. There's a redundant dest? in until. 15:25:09 --- join: segher_ (n=segher@dslb-084-056-138-186.pools.arcor-ip.net) joined #forth 15:33:39 --- quit: segher (Read error: 110 (Connection timed out)) 15:47:03 --- join: Quartus__ (n=Quartus_@209.167.5.1) joined #forth 15:49:56 --- join: crc (n=crc@pool-70-110-129-33.phil.east.verizon.net) joined #forth 16:25:52 --- quit: ianp (Read error: 60 (Operation timed out)) 17:32:27 --- quit: slava () 18:08:47 --- quit: virl (Remote closed the connection) 18:09:57 are most OSS Forth implementations slower than the commercial ones? 18:10:41 really I'm trying to compare Forth to C but I don't know what version is representative of modern forth 18:10:54 EsotericMoniker, less hard-core optimization work goes into most free ones. Pelc's VFX has a strong optimizer. 18:11:01 (It's not free.) 18:11:23 so I would assume basing an OSS VM off the free forth's would not be ideal vs a C based VM 18:11:35 where speed is one of the most important concerns I mean 18:11:36 Are you thinking of building a VM on top of a Forth? 18:12:11 I'm not sure I know enough about forth to answer that 18:12:20 I was thinking I would build a binary using forth 18:12:27 Just trying to understand what you mean by "basing an OSS VM off the free forth's" 18:12:42 using Forth to implement the bytecodes of the VM, etc. 18:13:02 it seems particularly well suited to such tasks 18:13:29 I'm really looking for a good alternative to C 18:13:36 That strikes me as an odd choice. But anyway I'd anticipate a VM being, first and foremost, a specification of the virtual machine, with details on each instruction it supports. Then the implementation language is determined by best-fit. 18:13:49 yes, indeed 18:14:11 If I were building a VM I might bang it together in Forth to work out the ideas -- Forth shines for that -- and to build a reference implementation for testing. 18:14:28 But the goal would be to produce the documentation. 18:14:33 what would you use for implementation 18:14:46 If speed matters, hand-coded assembler. 18:15:03 heh, it's portability then speed 18:15:08 and assembler is simply too much work 18:15:14 I'm looking to get C speed without using C 18:15:21 in my little idealistic world over here 18:15:22 If I were determined to keep using the Forth implementation, I'd find the best Forth compiler, and I'd look to VFX first. 18:16:11 I wouldn't think assembler would be too much work for a VM, especially if using Forth as an assembler. 18:16:58 If you're looking for Forth systems that approximate C speeds (as compiled, by, say gcc), look for native-code implementations. 18:17:31 like the forth-2-c converters? 18:18:09 No! That's a horse of a different colour. Native-code Forths are just regular Forths, interactive, etc. but they work by laying down actual optimized machine-code. 18:18:47 VFX is one such. Not that I mean to sound like an ad for VFX. Quartus Forth on the Palm is another such. 18:19:01 I don't understand what "laying down" means, is it just hand coded for that platform in something like C? 18:19:06 or is it JIT'd or such? 18:19:23 Neither. Consider a word such as : foo 42 . ; 18:19:32 Type that into any Forth, then foo -> 42 18:20:17 Now, in a threaded-code system, that compiles as sort of a p-code, a list of calls to other words -- in this case, it would lay down something like [address-of-literal] [42] [address-of-dot] [next] 18:20:50 That is then executed by walking the list of addresses and running the appropriate routines. Think of an array of function pointers in C. 18:21:01 ok 18:21:36 In a native-code system, you'd get something like move #42,-(SP); call _dot; rts assembled directly into memory as machine-code instructions. 18:21:56 An optimizing native-code system might even do move #42,(-SP); jmp _dot; 18:22:23 so it goes from forth syntax all the way down to binary instead of stopping off as p-code 18:22:25 I'm using random pseudo-code here, in case the instructions aren't familiar, but hopefully you get the idea. 18:22:34 er, not binary but asm 18:22:53 Almost right. Threaded Forths stop at making p-code. Native-code Forths go straight to machine-code (binary). 18:23:21 do you lose your interactivity from going native or can you dynaically recompile? 18:23:42 No interactivity is lost. From the console a threaded Forth looks just like a native-code Forth. 18:23:52 ok 18:23:53 But the native-code systems are faster. 18:24:58 are there any OSS native-code compilers? 18:24:58 Or, they can be. RetroForth, for instance, is a native-code Forth, but has some internal overheads that make it slower than Gforth, which is threaded. But in theory, native-code systems should be able to dramatically outdistance threaded systems. 18:26:07 Win32Forth has a native-code version in the works, I believe, though I don't know if it's out yet. Haven't checked. 18:26:30 RetroForth is native-code, but presently lacks the optimization to make it a speed-demon. 18:27:37 You might check in on some of the RetroForth spin-offs. HerkForth comes to mind, it has a Standard Forth version. I'm not sure how much additional optimization any of them do. 18:27:54 What platform are you on? 18:28:21 OSX 18:28:29 but the VM needs to run on Win/Linux/OSX 18:28:47 So that's why you want to write it in a portable high-level language. 18:28:54 yeah 18:29:34 So you want to stick with Standard Forth, so you can easily port it to whatever standard Forth is fastest for a given environment. 18:29:57 ok 18:30:14 is there a standard lib for forth? 18:30:23 I'm not telling you, I'm asking -- unless you want to write your own portable compiler as well. 18:30:42 hehe 18:30:44 There's a standard for Forth that defines what a standard system provides. What do you mean by 'lib'? 18:30:48 no I don't want to write the compiler 18:31:26 I didn't know how far the standard system definition went 18:31:49 like, is there a body of useful code such as the STL in C++ for standard forth? 18:31:53 It stops before FFI. What is the goal of your VM? 18:32:16 the goal of the vm is to enable others to implement a dynamic language on top easily 18:32:41 So you're starting with a perfectly good dynamic language, and writing a VM in that so you can write another dynamic language on top? 18:32:49 yes 18:33:01 Why not simply write your new dynamic language in Forth? It is a VM. 18:33:30 I suppose that would be possible 18:34:07 I'm not writing the new language here though, I'm building tools for others 18:34:50 It just strikes me as bizarre to write a VM for a new dynamic language using a dynamic language that embodies a VM. 18:34:51 that is, a toolkit for easily getting your cool neat-o language up and running fast by just writing some grammar files and feeding that to the built in parser/lexer 18:35:31 so do you believe I could say port over perl or ruby or python or such onto forth without running into any big issues? 18:35:35 If you want the usual mess of parsers and lexers, those are available already for Forth. gray.fs is one effort i know of. 18:35:49 As far as I know, perl is written in C. I don't know what ruby or python are written in. 18:35:55 they are in C 18:36:04 So what do you mean by 'port over'? 18:36:06 perhaps port is a poor choice of words 18:36:15 I mean, implement a Ruby/Python/Perl VM 18:36:25 The VM itself? Like parrot for Perl? 18:36:29 that is, one that can read in the source/bytecode and run it 18:36:30 yes 18:36:44 As far as I know, you could write parrot in Forth. I haven't tried this, mind you. 18:36:50 hehe 18:37:02 But that doesn't give you a parser for Perl. Totally different animal. 18:37:08 right 18:37:14 It doesn't give you cross-platform FFI. 18:37:15 that's part of the toolkit I would be writing 18:37:28 different forths do FFI differently? 18:37:36 Yes, as do different platforms. 18:37:42 Linux, Windows, and OSX all do FFI differently. 18:38:04 Different libs, different parameters, different methods of access. 18:38:16 sure 18:38:53 At this point, you're looking to undertake a huge task wherein the end result is a platform that can generate a new Perl -- I'd say the speed of the VM implementation is the absolute last thing on the list to worry about. 18:39:55 well my work wouldn't extend up to the perl level 18:40:06 I would build the tools someone could use to implement perl on my vm easily 18:40:17 that is, a nice lexer/parser, library support, etc. 18:40:25 Clearly define your goals and your rationales for why you're building something new instead of using something that already exists, and you'll know where your boundaries are and you can better decide what tools to use to achieve them. 18:40:28 implement the standard stuff like a growable array, etc. 18:41:49 If you look in the gforth distro, you'll find test.min, a program written in 'mini', a small language that uses 'gray.fs' (also there) to parse and compile. 18:42:02 'mini' looks a lot like Pascal. 18:42:25 I'll check it out 18:42:31 gray.fs is a recursive descent parser generator. 18:43:27 So in that case, the language is being compiled down to Forth, and Forth is the vm. 18:45:31 Bear in mind Forth is an extensible VM, so you can add any primitives to it that you think will help. 18:46:42 would you say GForth (the only forth I seem to see in benchmarks) is at the fast/middle/slow end of the implementation spectrum? 18:47:25 It's not the fastest, but it's not bad considering it's built on C. It ships with gforth-fast, I don't know if that's the build they use to bench. 18:55:13 well thank you for your time 18:55:19 I'm going to do a bit more digging around now 18:55:19 Sure, no problem. 18:56:47 --- part: EsotericMoniker left #forth 19:01:23 Anyone else who is planning to build a cross-platform portable VM and implementation on which will be built a complete recursive descent parser generator with the eventual target of creating languages like Perl, Ruby, and Python, but who doesn't know any Forth? :) 19:03:00 Isn't that kind of what Java was meant to be, anyway? 19:03:27 And there are a number of compilers for different languages that target the Java VM. 19:03:35 Quartus: who the heck does he think his customers would be? 19:03:49 vatic, I have no idea. He certainly reaches well beyond his grasp, though. 19:05:42 haha 19:13:11 --- quit: uiuiuiu (Remote closed the connection) 19:13:13 --- join: uiuiuiu (i=ian@dslb-084-056-229-070.pools.arcor-ip.net) joined #forth 19:54:38 fission, given up on FORTH-10 yet? 19:54:51 --- quit: Quartus__ ("used jmIrc") 20:11:40 Quartus: hehe yes 20:11:57 Quartus: it was fun to play with, but not very practical 20:12:13 --- join: rabbitwhite (n=trip_n_s@pool-151-196-244-5.balt.east.verizon.net) joined #forth 20:12:32 --- quit: vatic ("*poof*") 20:19:14 anyone there? 20:23:04 nope 20:23:13 well i am but i'm a #forth lurker 20:27:49 HEH 20:28:04 oops you can tell I'm using an ancient OS when I forget capslock is on 20:28:05 --- quit: rabbitwhite (Read error: 104 (Connection reset by peer)) 20:28:16 heh 20:31:29 Good, that means I don't have to dig up any more antiquated craptastic Forth syntax. :) 20:33:04 Some minor changes: http://retroforth.net/paste/?id=150 20:34:16 ahahaha 20:34:29 yeah I don't miss 20:34:29 ancient OS like what? Windows 3.11? 20:34:41 Good lord no. TWENEX or something. 20:34:42 k4jcw: TOPS-20 20:34:50 ahm, TOPS-20. I remember that well. 20:34:57 Unfortunately. 20:35:02 heh if you think win311 is ancient, you must be quite young :D 20:35:11 No, I just think Win311 sucks. 20:35:13 And it wasn't a good Forth, wouldn't have been good if it was written for Linux today. 20:35:34 well, it may have just been unfinished 20:35:43 TOPS-20 is nice 20:35:44 I almost had me a PDP-11/44 today, with 4 fixed drives, 1 removable, and 2 8" flops. 20:35:44 Badly started. 20:35:47 too bad it's not around anymore 20:36:02 Quartus: hehe, that too 20:36:04 But it was just too damn large to transport and to fit in my basement with all the other crap. 20:36:15 heh 20:36:19 I miss my MicroVAX 20:36:32 k4jcw: how heavy is the PDP-11/44? 20:36:36 And I *really* want a PDP-11 system, although I would prefer something with a real front panel. 20:37:10 Heavy? Not sure of the exact weight, but the cabinets were 3' deep, 4' tall, and ~6' wide. 20:37:23 It was on casters, and it took some effort to budge. 20:37:38 three phase? 20:38:01 Not sure. I meant to check, and forgot. I doubt it, but it wouldn't surprise me if it was 220. 20:38:18 yeah I'd almost expect 220 20:38:42 3 phase 220 is 480v, IIRC. And that's fairly atypical power. 20:38:46 I wonder if I can score a DECsystem 2020 20:38:59 well, I meant either three-phase, or 220 heh 20:39:35 It was the control system for a Genrad test system. It came from Rockwell Missile Systems Division here in Atlanta, and was either used in the manufacturing or development department of Hellfire missiles. 20:39:45 hah wow 20:39:52 tell me they wiped the drives first :P 20:40:06 No idea. It hasn't been fired up in 3 years, from what I understand. 20:40:52 He did have the tracker head for a Hellfire there. Apparently his dad worked for RMSD, and they bought a huge lot when RMSD closed a facility. 20:41:02 my microvax had a medical insurance database... I couldn't believe they didn't wipe the drives first 20:41:40 heh wow 20:42:10 To be honest, I would not be surprised if this system wasn't wiped. Except for the test vectors, most of the Genrad stuff is generic. I didn't see any removable packs laying around, so the test vectors may have been on those. 20:43:06 http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&ih=011&item=320017707724 picture 20:44:09 A PDP-11/44 is also a very mid-line system. You can do a lot, but I think it only addresses 2MW 20:46:37 I think I'd prefer just to emulate one 20:46:48 then you get the PDP architecture but at a faster speed heh 20:47:20 2MW isn't bad 20:47:49 You can do a lot with it, yea. but the later models had a much expanded address range. 20:49:09 I have a couple SIMH images here I play with now and again. PDP-11 running BSD 2.11. PDP-8 running OS/8. Altair running CP/M. 21:15:41 man, where do these rumors come from 21:15:59 What rumors are those? 21:16:05 first at some forth presentation (at svfig I think) somebody says that retroforth came from herkforth 21:16:21 now someone says that herkforth came from retroforth 21:16:27 the two have nothing to do with eachother 21:16:44 Hey, I'm going by the retroforth page, it claims it as a descendent. I may have misread -- I'll check. 21:17:08 crc incorperated at least one word I made up into retroforth 21:17:31 also herkforth won't parse text files at all 21:17:34 only keyboard input 21:17:43 Oh my mistake. HelForth. I doubt I added to that guy's confusion, though, I think he was at max. 21:17:52 hehe 21:18:03 no matter 21:18:11 Sorry for the misinfo there. 21:18:12 herkforth is dead anyway, I'm replacing it 21:18:34 although the new is mostly similar 21:19:14 In other unrelated news, I've just ported a 386 assembler over to RetroForth under the ANS layer. 21:19:18 486, actually. 21:20:15 so code 1+ ax inc end-code works like a charm. 21:20:28 Not that I needed a new 1+ :) 21:22:27 This assembler is from late '93, so that's pretty neat. 21:26:48 heh CP/M 21:27:50 reminds me of my Commodore 128 22:23:18 --- quit: madwork (Read error: 110 (Connection timed out)) 23:15:13 --- join: AI_coder (n=AI@ip-209-124-242-76.dynamic.eatel.net) joined #forth 23:15:47 Is this the preferred way of creating an array 10 cells wide that is initialized to all zeros? create var-a 10 cells allot var-a 10 cells erase 23:17:32 That works. Some systems have a 0allot, which you could write easily. 23:18:16 Give it a shot. 23:20:18 Success? 23:20:20 gforth doesn't... bummer 23:20:29 It's a very short definition. Try your hand at it. 23:25:17 Myself I'd do create var-a 10 cells here swap dup allot erase (though I'd try to find a better array name than var-a, probably) 23:26:59 : 0allot here over cells erase allot ; 23:27:03 ?? 23:27:47 That won't work (stack-order problems), and you wouldn't want cells in there at any rate. But it's in the general ballpark. 23:28:03 Hint; look at what I wrote above. 23:30:19 You also want to allot before you erase, as on some systems the memory at here may not be there until the allot finishes. 23:30:49 Why wouldn't this work? Is there something fundamentally wrong? : 0allot here over erase allot ; 23:31:22 See what you're doing: here ( n -- n here ) 23:31:30 over ( n here -- n here n ) 23:31:48 erase ( n here -- n here ) \ possibly trying to erase nonexistent memory, but a minor issue 23:32:07 allot ( n here -- n ) you're now trying to allot 'here' bytes. 23:32:15 Ah 23:33:23 I thought erase was erase ( addr u -- ) 23:33:35 So here ( n -- n here ) 23:33:42 over ( n here -- n here n ) 23:33:44 it is. What did I get wrong? Let me see. Sorry, late here for me. 23:33:49 erase ( n ) 23:34:00 allot ( n -- ) 23:35:04 Sorry, got allot and erase confused in my mind. Probably because you really should do the allot first and then the erase. 23:35:14 Oh ok 23:36:34 As I say, I prefer : 0allot here swap dup allot erase ; but in fact I just write here swap dup allot erase whenever I need it, it's idiomatic and rarely happens anyway. I prefer programmatic initializations. 23:37:50 For me it's so hard to see what's happening with programmatic anything so I try to word it and call the word because I spend a lot of time making sure the words work as-is. 23:38:16 It's unfortunate you couldn't get some experience working with simple Forth before starting on your development project. 23:56:57 : 0allot 0 ?do 0 c, loop ; \ do not actually use this. 23:57:21 It would only work when the char-width was also the address-width anyway, and it's ungodly slow. 23:59:59 --- log: ended forth/06.08.21