00:00:00 --- log: started forth/05.09.12 00:51:32 --- quit: derv0 (Read error: 110 (Connection timed out)) 00:52:33 --- join: derv0 (n=derv0@proxy1.nscl.msu.edu) joined #forth 03:03:48 --- quit: derv0 (Read error: 110 (Connection timed out)) 03:05:17 --- join: derv0 (n=derv0@proxy1.nscl.msu.edu) joined #forth 03:37:09 --- quit: Pepe_Le_Pew (Read error: 104 (Connection reset by peer)) 03:39:40 --- join: Pepe_Le_Pew (n=User@201008249014.user.veloxzone.com.br) joined #forth 04:54:24 --- quit: crc (Read error: 110 (Connection timed out)) 05:15:22 --- quit: aum () 05:38:38 --- join: amca (n=plump@as-bri-4-1-169.ozonline.com.au) joined #forth 06:01:59 --- join: aardvarx (n=folajimi@shell3.sea5.speakeasy.net) joined #forth 06:02:23 I440r, morning. 06:02:56 Quartus, greetings. 06:09:18 I just learned about "reverse Polish" notation last week; Will I have to comprehend this notation before I can use Forth? 06:09:47 Pretty much. It is how everything is expressed in Forth 06:10:58 I guess I understand how operations can be performed on two numbers; what if multiple items need to be operated on? 06:11:31 Like adding 3 numbers? 06:11:45 --- join: Ray_work (n=vircuser@adsl-65-68-201-174.dsl.rcsntx.swbell.net) joined #forth 06:11:51 --- join: madwork (n=foo@derby.metrics.com) joined #forth 06:12:26 Yes. 06:12:40 In fact, I'm looking at http://www.calculator.org/rpn.html right now. 06:12:42 morning :) 06:12:54 2 3 4 + + would add three numbers 06:13:01 Ray_work: Good evening! 06:13:11 3 2 1 + x 06:13:23 That just looks soooo wrong! 06:13:50 as in 3 2 1 + * ? 06:13:55 Yes. 06:14:22 Well it only looks wrong because you are used to infix, not postfix. It is just a different way of looking at things, no more ore less valid than infix. 06:14:30 It looks like something I could be arrested for. 06:14:33 :P 06:15:04 So that's what postfix means! 06:15:35 I've seen it for years now (especially when I'm compiling code for Linux systems, but I never really thought much of it. 06:15:39 (1 + 3) infix, (+ 1 3) prefix, (1 3 +) postfix notations 06:16:09 Let me guess, prefix is used in some cases? 06:16:24 Languages like lisp use prefix notation. Forth and Postscript use postfix, algebra and arithmetic you learn at school is infix. 06:17:48 Is any of the three better than the others? 06:18:04 Nope 06:18:26 Like I said before, they are different. 06:18:46 Although postfix notation is particularly more useful when parsing computer languages apparently 06:19:10 I guess it's a "choose your weapon" or "pick your poison" issue. 06:19:30 Mainly because unlike infix notation, pre- and postfix notation never require brackets 06:19:32 I see it that way. 06:20:49 Mathematically, I think post/prefix is more elgant, but infix is easier to deaal with because of cultual conditioning. 06:21:35 According to the Forth Interest Group (FIG), Forth is present in many forms; dare I say ubiquitous? 06:22:21 Apparently, FreeBSD uses it for the initial stage of the boot process. 06:23:07 I wouldnt say ubiquitous. Im only a Forth newbie, but it seems to me like Forth is more of a niche language. Designed for small memory programs rather than large monolithic gui applications. 06:23:31 If that is the case, does that mean it is closer to assembly language than most other languages? 06:23:45 In my opinion, definately 06:24:30 Do you know about Forth's single most prominant feature being that it is a stack based language/virtual machine? 06:25:37 I did not know that. 06:26:14 Ah 06:26:57 use it is a stack based language, postfix notation is particularly appropriate for it. You understand postfix more if you have an idea what the stack is doing 06:28:35 eg with 1 2 3 + +, '1' pushes the number 1 onto the stack, as similarly '2' and '3' pushes those number onto the stack. 06:29:29 I keep hearing about the "stack notation" part; 06:29:30 '+' which is referred to as a 'word', rather than 'function' like in other languages, then operates on the top two items on the stack, adding them, and then pushes the result back onto the stack 06:30:06 + ( n n -- n ) 06:30:07 Your example is rather similar to the one at the link I referred to earlier. 06:30:22 * amca nods 06:30:26 Ray_work, now that is just wrong! 06:30:41 :) 06:30:45 :P 06:31:01 then the second '+' pops that result off of the stack, and then the '1' and adds them, then pushes the result back onto the stack. 06:31:11 no, it's the correct stack map for `+' 06:31:30 + takes 2 numbers and leaves one on the top of the stack. 06:32:13 aardvarx: Have you seen http://home.iae.nl/users/mhx/sf.html ? 06:32:33 I guess it's simple enough when you're repeating the same operation; what I am really interested in is what happens when you have to deal with operations when you need to have some operations take precedence over others. 06:32:53 amca, nope. I will right now, though. 06:33:17 aardvarx: The thing about postfix and prefix is that there is no such thing as operator precedencs to worry about. 06:33:37 Operator precedence is like a hack or kludge in infix notation so that it works 06:34:27 Ray_work: How goes it? 06:34:50 For instance, 1 + 2 * 3 06:34:59 amca: it goes well, how's by you? 06:35:26 Ray_work: Ive been slack and self indulgent lately >.> 06:35:34 2 3 * 1 + 06:35:42 or 1 2 3 * + 06:36:31 ya, live your bliss :) 06:36:44 actually, I think 1 2 3 + * 06:37:04 nope, that is (2 + 3) * 1 06:37:30 Mea culpa. 06:37:44 + pops 2 and 3 off the stack and multiplies them. 5 is then pushed onto the stack, and then 5 is multiplied by 1 06:39:10 + pops 2 and 3 off the stack and.... ? 06:39:12 :) 06:39:42 erm...adds them 06:39:47 whoops lmao 06:40:24 or is it that + takes the number pointed to by the stack pointer and adds it into the number that is in EAX which is the "top of the stack". 06:40:39 then adusts the stack pointer down 1 06:40:59 Ray_work: I think that that is waaay to advanced for aardvarx to worry about :P 06:41:11 hehe 06:41:24 sorry, also way to advanced for moi 06:41:42 Too advanced for you? 06:42:05 I think getting ones head around the stack and postfix notation are heavy enough for a newbie to post/prefix langs. 06:42:16 It is a shame we learn infix in school 06:42:39 imagine algebra or calculus in post/prefix 06:43:03 gives ya the shivers :) 06:43:41 gives me excited shivers. After all, infix/postfix/prefix - iut is all just cultural conditioning. 06:44:06 that dang cultural conditioning. 06:44:15 always getting in the way. 06:44:31 Yeah, it stops me from being able to wear my GFs bras to work ;) 06:45:23 It is well more than I can comprehend at this point. 06:45:45 hehe 06:45:51 aardvarx: you will consume more forth. 06:45:58 eat a bra. 06:46:15 infix those nipples 06:46:16 Ray_work: o-kay.... :) 06:46:18 lol 06:47:06 Too bad working with Forth requires this preparation; I was hoping I could just "dive in" like with C. 06:47:30 you just dove into `c'? how brilliant are you? 06:47:37 It is a completely different paradigm. 06:47:56 Ray_work: C - easy to get started in, hard to be expert in? 06:48:02 you cannot recall the awful struggle you had triing to figure out how to input text or something? 06:48:31 brain has the capacity to mask out horror. 06:48:40 hehe. Like C? ;P 06:48:42 you only remember the good times 06:48:57 Ray_work, it was neither a breeze nor torture. 06:49:02 I only remember the fu...good times, yeah... 06:49:46 I remember a little mama, face like a keyboard but boy could she interpret and compile. 06:49:54 Now Forth... is a completely different story. 06:50:35 Talk about a paradigm shift! 06:50:53 it's the most natural way a computer works 06:51:02 think from the computers perspective 06:51:15 1+2*3 06:51:59 Does the computer take in all the numbers before trying to decipher which operation comes first? 06:52:15 a computer doesn't handle that expression naturaly, having to store the 1 will it waits for the 2 06:52:20 yes 06:52:25 yes it absolutely does. 06:52:39 it puts these numbers in seperate registers. 06:52:44 infact 06:53:41 1 goes on the return stack, then + which pops 1 into eax ( say ) and then the + waits for the next number to put in another register before it calls itself. 06:54:04 --- join: JasonWoof (n=jason@pdpc/supporter/student/Herkamire) joined #forth 06:54:04 --- mode: ChanServ set +o JasonWoof 06:54:19 it does exacly what forth does, save that forth exposes that whole mechanism to you . 06:54:22 hi JasonWoof :) 06:54:41 According to amca, precedence DNE for postfix or prefix. 06:54:58 hi Ray_work :) 06:55:00 DNE? 06:55:09 Does Not Exist 06:55:15 hows your vm comming JasonWoof ? 06:55:31 the vm is pretty much finished 06:55:40 I'll just need to add some sort of persistance to it at some point 06:55:55 well, in postfix the presidence is what ever operator you happen to have next in line. 06:56:22 forth has no precedence, or any possible way to have it 06:56:36 the stuff on the left executes first 06:56:38 Ray_work, no cheating. 06:56:48 operator organizing precidence where you are the operator. 06:56:55 not because of precedence, but because the stuff to the right hasn't been parsed yet 06:56:59 Let me ask JasonWoof the same question I asked you earlier. 06:57:06 --- quit: derv0 (Read error: 110 (Connection timed out)) 06:57:51 JasonWoof, how would Forth handle 1 + 2 * 3 as an operation? 06:58:13 --- join: derv0 (n=derv0@proxy1.nscl.msu.edu) joined #forth 06:59:08 2 3 * 1 + 06:59:26 How about 3 2 1 * + ? 06:59:27 crc: might use the word `later' to make that infix work. 06:59:41 aardvarx: that's harder to read/debug. 06:59:47 Aha! 06:59:51 aardvarx: good example though... because you got it wrong 06:59:52 : later pop pop swap push push : 07:00:09 right JasonWoof = 6 07:00:17 I got it wrong? 07:00:26 sorry JasonWoof = 7 07:00:30 aardvarx = 6 07:00:30 yes. you multiplyied 2 by 1 07:00:43 Sounds more like I sucker-punched Forth. 07:00:47 math operators work on the newest stuff on the stack 07:00:54 "top" of stack 07:00:59 I see. 07:01:17 JasonWoof is that EAX? 07:01:20 with my notation, you can easily chunk it 07:01:31 I don't know x86 asm, sorry. I'm a ppc dude 07:02:13 with this: 2 3 * 1 + you can chuck it into meaningful parts easily: 07:02:16 aardvarx: If you worry about registers at this stage, you are just gonna get confused. And different implementation smay use registers different ways. 07:02:17 "2" take the number 2 07:02:22 "3 *" multiply by three 07:02:28 "1 +" add one 07:02:59 forth was not designed for register machines 07:03:00 amca, thanks for pointing that out. So, I guess I just need to stick with understanding RPN at this stage? 07:03:17 heh 07:03:20 don't think about rpn 07:03:22 there's no syntax 07:03:33 forth just reads into the next space, and executes/compiles whatever it finds 07:03:40 then does it again 07:03:55 when you see a number , think put that plate on the stack, then when you see an operator, think, what is the stack diagram for that operation and what is the results. 07:04:00 it ends up mostly looking like rpn, but does not actually work that way 07:04:01 --- join: PoppaVic (n=pete@0-2pool238-43.nas24.chicago4.il.us.da.qwest.net) joined #forth 07:04:15 PoppaVic ! 07:04:24 G'day 07:04:38 so far... 07:05:00 PoppaVic, morning. 07:05:01 is there some way to get a bunch of files from a tarbal, and create a tarbal of just those files? 07:05:02 Gday 07:05:07 Howdy 07:05:11 PoppaVic: YOu from Victoria? 07:05:12 (without unpacking them to the HD first) 07:05:15 JasonWoof: sure 07:05:19 oh. 07:05:35 hmm.. you mean a inter-tar transfer? Never heard of one 07:05:41 ok 07:05:47 hex editor :) 07:05:53 lol 07:05:57 would be useful 07:05:59 you COULD create a subtar for a supertar 07:06:04 because tar preserves creators 07:06:13 sure, do it all the time 07:06:15 cool. 07:06:26 learn a new thing everyday. 07:06:43 you might be able to extract to stdout andpipe it around 07:06:59 yeah, I saw that option, and wondered if it would be useful 07:07:09 but I think you just get a cat of the file contents 07:07:22 I'm partial to dirs and midnight-commander ;-) 07:07:24 Forth: Looks like RPM, Walks like RPN, Talks like RPN; but is not RPN. 07:07:32 Is that a fair assessment? 07:07:41 oh well, I can just spew out the files and then tar and delete 07:07:58 aardvarx: well, there's some stuff that's not rpn 07:08:04 like : create variable constant 07:08:19 Hmm. 07:08:33 and you can certainly create more 07:08:36 * aardvarx needs to get a reliable resource on Forth. 07:09:05 I'm just saying that RPN is a description of what it looks like, not the mechanism by which it works 07:09:18 That's much clearer. 07:09:31 and given that the mechanism by which it really does work is soooooo simple, I prefer to think in terms of how it really does work 07:10:02 JasonWoof: How do you visualise it working? 07:10:07 --- join: PoppaVic_ (n=pete@0-1pool72-48.nas24.chicago4.il.us.da.qwest.net) joined #forth 07:10:11 1) read into the next space 07:10:15 2) execute/compile it 07:10:17 --- quit: PoppaVic (Nick collision from services.) 07:10:21 3) repeat 07:10:21 --- nick: PoppaVic_ -> PoppaVic 07:10:22 hehe 07:10:29 goddamned isp 07:10:30 4) Underflow! 07:10:32 ;) 07:10:40 sorry, did I miss something? 07:10:55 So, when you said that I "got it wrong" earlier... you mean I am responsible for feeding the operands correctly? 07:11:02 yes 07:11:10 yes, forth is even more free-style than C 07:11:17 3 * 2 + 1 is not the same as 1 + 2 * 3 then. 07:11:20 aardvarx: you put the arguments/operations in the wrong order 07:11:27 it'll bliethely let you blow yer DICK off, in _addition_ to your foot. 07:12:11 No wonder the Wikipedia article was so negative about it. 07:12:20 you can do: 2 3 * 1 + ---or--- 1 2 3 * + 07:12:23 no, amca - from NA;CONUS;MI 07:12:33 aardvarx: Most applicationsa for it are foe embedded devices. 07:12:42 but: 3 2 1 * + will give you a different result 07:12:56 PoppaVic: Ah, tnx 07:13:07 oh.. so forth is now a "negative language"? 07:13:32 what's a negative language? 07:13:38 aardvarx: if yer lookin' for cutesy, hand-holding languages: forth is nowhere near the top of the list. 07:14:00 * JasonWoof thinks forth is cute 07:15:00 PoppaVic, just a sec. 07:15:04 : FORTH BEGIN LATHER RINSE REPEAT ; 07:15:37 : lather bl word find ; 07:15:45 aardvarx: If you wanna worry about hardware implementations of forth, look at www.ece.cmu.edu/~koopman/stack_computers/ 07:16:14 It used to be that forth was usually the first language on new micros. 07:16:15 : rinse if state if execute else compile then exit then do-number ; 07:16:24 ..anymore, this is sorta' moot 07:16:28 One result has been a proliferation of nonstandard Forth systems by hobbyists, often of indifferent quality and with poor documentation. A newcomer to the language may download a free version from the net, have problems and dismiss the language without further consideration, mistaking a poor implementation for a fundamentally flawed language. 07:16:55 there is no "standard 'Forth'" - never was. 07:17:03 FIG was about the closest. 07:17:12 Not that the languages is negative, but that there is no hand holding. 07:17:21 *language* 07:17:28 F79 was never liked, F83 was ok, and then ANS got involved. 07:18:20 aardvarx: to the quote from the article: I'd suggest the author was either wrong, pedantic or a lisper. 07:18:38 It sounds like handing someone whose never handled a firearm an Eight-guage shotgun. 07:18:55 "intifferent quality" is a strange term. 07:19:09 Odds are the individual will end up in the ICU, or the morgue. 07:19:13 hmm, you mean the post sounded extremely-biased and twisted? yes. 07:19:21 I'm not sure about this hand-holding business 07:19:25 forth is extremely easy to learn 07:19:29 it's a bit confusing 07:19:33 but doesn't take long 07:19:57 JasonWoof, exactly my point. 07:20:04 JasonWoof: "hand-holding" is what I refer to for folks that have no idea what a ptr, an int ot a string are - and can't imagine tracking malloc/free, etc. 07:20:11 dang, I forget the numbers, but I think Forth ink said they spent about an hour training new employees to use forth, and after a day they were really productive with it 07:20:14 'Tis easy to pull the trigger. 07:20:30 what do you mean by "tracking malloc/free"? 07:20:52 amca, I think allocating/deallocating memory. 07:21:02 recall though: Places like FOrth, Inc. are going to have all the usual tools... Compilers, linkers, loaders, etc. 07:21:25 right: forth and C expect the programmer to take responsibility. 07:21:57 I think the reason forth is not terribly popular is that it doesn't appear to be the "tool for the job" to many people 07:22:03 prolly 07:22:05 eg perl and php are what you should learn to do web scripting 07:22:12 " There's a place for us... somewhere a place for us..." 07:22:14 C to write unix and windoze apps 07:22:17 etc 07:22:30 What is a scripting language? 07:22:33 but nobody says "oh you want to do X, well then you should learn forth" 07:22:41 python = scripting lang 07:23:04 an "interpreter" - BASIC or sh or whatever - this is an "interpreter" 07:23:11 I knew that; I guess I don't understand what the "scripting" means. 07:23:22 PoppaVic, whoa there! 07:23:36 I thought HTML is an interpreted language? 07:23:38 colorforth = scriping lang for OKADII 07:23:42 scripting means you write text and it stays text - just interpreted over and over 07:23:53 I'd say forth is kinda in the bin with python in that I can't think of a particular application that is the normal language to use for 07:24:03 aardvarx: No. HTML is just a mark-up language - it only says what should be there, not how it should act. 07:24:08 html is not a programming language 07:24:08 WYSIWYG, no compiler needed, right? 07:24:10 JasonWoof: Poscript 07:24:37 PoppaVic: what about Postscript? 07:24:44 forth HAS an interpreter, and a compiler, and a code-interpreter, etc. 07:24:52 JasonWoof: it's a forth-variant, is all 07:25:08 there is also some cad/cam thingie that uses a variant 07:25:09 aardvarx: html is a document format. like jpeg, PNG, .doc etc 07:25:25 Hmm. 07:25:27 All postfix stack languages by their nature are Forth variants 07:25:29 Interesting. 07:25:41 amca: mostly-true, not entirely 07:26:00 PoppaVic: Can you think of examples where it isnt true? 07:26:04 forth is merely the easiest to get a grip on and spin like mad 07:26:38 amca: maybe lispers can. And, of course, the PF SL stuff doesn't HAVE to look & feel like forth 07:27:03 PoppaVic: LISP is prefix, not postfix 07:27:17 I think forth is also not terribly popular right now because it does not match the latest buzzwords and programming paradigms that people are obsessed about nowadays like OOP 07:27:25 amca: dunno. I don't lisp. Maybe it is, or maybe it's a layer over it? 07:27:36 JasonWoof: always true 07:27:39 people come in and ask if it does OOP and continuations and XXX 07:27:56 they do the same in C - daily 07:27:56 LISP is a prefix, recursive (as opposed to iterative like Forth) language 07:27:58 forth says "you don't need that crap, but if you really want you could write it" 07:28:04 and they think forth sucks and move on 07:28:27 I think its a language whose time has not yet come. 07:28:39 woh! who said forth was iterative and not recursive? 07:29:03 it's time has come and gone, mostly because people want bells&whistles and hand-holding. 07:29:08 I do more recursion than looping in forth 07:29:33 I always felt the Gforth team dropped the ball as hard as the gcc folks did. 07:29:36 The more I think of it, the worse scripting languages look. 07:29:52 PoppaVic: Imn what sense? 07:30:00 aardvarx: what sort of languages? 07:30:18 aardvarx: you mean like bash? 07:30:32 JasonWoof and Perl. 07:30:49 Well, they got an opportunity.. and they neglected both a simple ABI header/file/doc for both, and the inability for Gforth to create/use objects/libs likee gcc 07:30:51 The worst offender: Tcl/Tk 07:31:12 I've heard the term "glue code" 07:31:12 * amca nods 07:31:17 yeppers 07:31:32 everything uses glue or "wrappers" anymore 07:31:34 dont' get any on ya 07:31:48 Who said arlier that they do PPC? 07:31:49 i'll get a towel 07:31:55 JasonWoof 07:32:13 JasonWoof: You ever played with the Open Firmware Forth interface? 07:32:55 amca: yeah 07:33:00 Scripting Language == Government Bureaucracy?? 07:33:01 PoppaVic: What Forth flavours do you like? 07:33:01 wrote a little OS on top of it 07:33:13 JasonWoof: sweet. How do you find it? 07:33:30 didn't do a whole lot with it. it's pretty much just designed for looking at the device tree and getting your bootloader started 07:33:37 Is that a fair assessment? 07:33:48 aardvarx: no 07:33:48 aardvarx: No. 07:34:05 Okay. 07:34:08 aardvarx: More that ppl like easily accessable stuff 07:34:12 aardvarx: scripting languages tend to be quite useful for some things 07:34:18 amca: well, I've a couple installed. Gforth is prolly the best for help (see) and docs; PFE is also sort of fun. 07:34:26 aardvarx: eg bash is very good for writing little shell scripts to call your favorite programms just so 07:34:31 JasonWoof: I dont suppose you have the code for the OS still? 07:34:45 little things like this: exec w3m http://herkamire.com/jason/`echo "$*" | sed 's/[^a-zA-Z0-9._]/_/g'` 07:35:04 amca: yeah 07:35:08 JasonWoof: yeah, one-shot tasks reusing useful programs 07:35:23 amca: I had most of it. I just had to hack the i/o routines, and work something up to save directly to the HD 07:35:48 JasonWoof: Would you mind if I had a look at it? 07:36:11 I gotta' somehow reorganize these damned headers better. *sigh* 07:36:27 PoppaVic: Headers? 07:36:35 I440r seems to be MIA; does anyone know how I can get a Forth environment on my system? 07:36:38 yeah, for my vm. 07:36:39 As in the crop harvesting thing? 07:36:45 ah 07:36:54 Speaking of vm... 07:36:56 aardvarx: get at least gforth 07:36:57 PoppaVic: What lang? 07:37:04 amca: http://herkamire.com/jason/herkforth 07:37:12 JasonWoof: tnx 07:37:20 amca: I live in C, and am shooting for a forthish-vm for a variety of tasks 07:37:29 That's right 07:37:42 amca mentioned earlier that Forth is a vm... 07:37:50 sorry about the slugish server, I'm running a backup atm 07:37:50 Is that like VMware? 07:37:51 sure 07:38:01 aardvarx: dunno' the context 07:38:17 amca: oh, sorry, looks like there's no bootable version on the site 07:38:39 the tool I want, written in C, would allow multiple programs to run an "extensible, interpretative-compiler" 07:38:53 06:13 < amca> Do you know about Forth's single most prominant feature being 07:38:58 that it is a stack based language/virtual machine? 07:39:08 JasonWoof: That's okay. I dont have a PPC machine :( 07:39:14 PoppaVic, does that help? 07:39:16 amca: do you have linux ? 07:39:21 yep 07:39:23 ahh 07:39:30 amca: herkforth-bin run's quite well under qemu 07:39:34 * aardvarx does 'emerge gforth' ... :) 07:39:41 yeah, ok - I think I track again... Yeah, it'd be VMware by that def 07:39:45 * JasonWoof waves the gentoo flag 07:39:55 Wow, that was quick! 07:40:09 aardvarx: gforth is mostly written in gforth 07:40:12 I think... 07:40:22 s/'// 07:40:25 JasonWoof, that doesn't even make any sense! 07:40:31 I'd like my C to obviate asm - and the vm to obviate, but enable C "extension" is all. 07:40:31 JasonWoof: I think it compiles from C then bootstraps itself 07:40:41 aardvarx: what? 07:40:51 gforth is mostly written in gforth 07:40:56 amca: get the binary 07:40:57 O_o 07:41:07 amca: it does use gcc, and it does metacompile the forth-image 07:41:07 amca: herkforth-bin it comes with a script to run under qemu 07:41:18 What sort of heresy is that? 07:41:34 Chicken or egg: which came first? 07:41:52 gforth's tarball ./configures and builds fine 07:42:05 herkforth is going through major major changes 07:42:16 JasonWoof: tnx 07:42:16 ..and frankly, you'll want to spend time glaring at assorted source for it anyway 07:42:23 PoppaVic: That's what I said :P 07:42:30 haven't released a version in a while because I keep braking/rewriting things 07:42:44 aardvarx: Machine language, then assembly, then HLLs 07:43:10 I've just started rewriting herkforth for a virtual machine tathi and I made up 07:43:10 hehe 07:43:12 don't forget cross-compilers or meta-compilers 07:43:18 There's another mystery that has never been explained. 07:43:33 aardvarx: Virtual machines? 07:43:37 How did the first compiler come into existence? 07:43:45 hand 07:43:50 JasonWoof: How far along are you with tathi? 07:43:52 aardvarx: someone coded a LOT of mc 07:43:54 eeew! 07:44:13 amca: huh? tathi implemented the virtual machine. I'm just starting to port to it 07:44:13 Say it ain't so! 07:44:21 PoppaVic: Surely the first compiler was in asm? 07:44:35 hehe - I can remember going to shops in A2 - as a kid - and seeing stuff like IMSAI kits ;-) 07:44:41 amca: impossible 07:44:48 I'm looking at projects like LinuxFromScratch... 07:44:56 PoppaVic: How so? 07:45:00 The system needs a pre-existing system to be created. 07:45:08 wozniak wrote his interger basic by hand 07:45:12 on a piece of paper 07:45:14 amca: envision it: no editors, no screens - just switches. 07:45:25 * aardvarx shudders... 07:45:43 just imagine the mental debugging 07:45:52 I can't 07:45:58 I WONT!!! 07:45:59 then, you can get a bit more advanced and imagine teletypes, tape-punch and card-punch. 07:46:02 PoppaVic: I know about that, but Im pretty sure ASM was around when HLLs came along 07:46:20 amca: sure - and the first of them had to be mc hand-encoded 07:46:41 PoppaVic: Why mc coded? Why not asm? 07:46:58 Whoa, whoa, whoa!!! 07:47:05 as mentioned above: MC underlies and predates assemblers - and there is such thing as "asm". 07:47:21 PoppaVic, you said mc/MC as in Machine Code? 07:47:26 yes 07:47:27 yeppers 07:47:35 switches and latches and maybe LEDS 07:47:39 PoppaVic, as in 01111000000011101011111000000000000000111111111111 07:47:41 asm == assembler, right? 07:47:50 aardvarx: indeed 07:48:02 PoppaVic: Ever played with Altair 8080 blikenlight ver? 07:48:05 amca: folks say "asm" like it is a language 07:48:22 amca: ahh, imsai and altair - no, never had the money in those years 07:48:28 PoppaVic: I dont call asm a lang/HLL, but I dont call it machine code either 07:48:41 PoppaVic: I mean *now*, the emulator 07:48:58 amca: *sigh* It isn't it wasn't. 07:49:19 yes "asm" is short for "assembly language" 07:49:20 'asm' was shorthand for "assembler" - and there are umpty types and cpus 07:49:51 ..it gets worse, because it's NOT an "emulator" or even a "compiler" - it's an assembler. 07:49:58 From my understanding, the first asm's were hand coded machine code, and the first higher level languages were coded in assembly? 07:50:04 yes 07:50:18 But you said the HLLs were hand mc'd. 07:50:30 you misread what I was trying to say 07:50:33 OK 07:51:04 please... Just beware the mindset of "it's in 'asm'" 07:51:21 PoppaVic: How do you mean? 07:51:48 As in be aware there are individual versions of asm for each machine? 07:52:16 I tend to mentally think of asm as a macro for mc 07:52:18 It's worse misused in #asm, but - some folks act like there is "One true & holy language: it's name is 'ASM'" - and they sorta' forget authors, versions, platforms, OS, and cpus. 07:52:53 ah 07:52:53 yes 07:54:08 What is the closest equivelant to the altair/blinkenlights system that one can buy today? the binary clock? 07:54:27 Now... Mind you, there SHOULD be some sorta' way to make it more "universal", but you'll get nothing except arguments from folks. 07:55:00 PoppaVic: Isnt Forth kinda a "universal asm"? 07:55:04 no idea.. I'm sure there are still retired imsai/altairs around - and there are kits you can still buy for ucpu and such, of course 07:55:13 no, not really.. 07:55:22 Forth and C are more similar 07:55:27 ok 07:56:14 forth CAN lay-down asmish "code", but to what point? C itself cannot, but gcc MIGHT - it's just a confuzzled mess at this point. 07:57:20 Id like a cheap pocket blinkenlights computer that I can program when Im bored on the bus. Maybe I ought to learn electronics and build one. 07:57:34 oh, they are not that small, iirc 07:58:09 PoppaVic: I know the original ones werent, but with todays technology and micro-controllers, couldnt it be done? 07:58:13 they usually use 110VAC and are just a bit smaller than my powerbook - or about 2-3x the size of a decent calc. 07:58:32 ucpu's? Or altairs? 07:58:38 the only ones I've seen in a decade are little breadboard suckers for experimenting 07:58:52 ucpus. 8 bitters of assorted types 07:59:19 ah 07:59:20 PoppaVic, that seems rather outlandish to compare Forth and C; from what you all have mentioned so far, Forth seems to be much closer to the "bare metal" than C is. 07:59:41 historically, they'd never be of use to me: I can solder and schematic beautifully, but designs melt when I try. 07:59:50 as in microprocessors, with the initial u in ucpu representling the greek letter mu? 07:59:55 aardvarx: sure, I'll buy that 08:00:04 micro 08:00:13 yah 08:00:55 aardvarx: remember this - almost no forth we have at hand can really compile/link in the realm of C and ASM and such - so, yeah. It's a messy universe 08:01:23 mind you, tathi seemed interested in such an idea - but it could STILL be years away 08:02:00 afaik, the only forths that will play in the .o/.so/etc realm are commercial-products 08:02:26 Hmm. Too low? 08:02:33 PoppaVic: I found out that PFE has a dynamic library interface 08:02:34 hmm? 08:02:45 amca: yeah, I thought I recalled that 08:02:58 I plan to add some code to do the same in my vm 08:03:28 Is it that the forth that exists right now does not need .o/.so/etc. because it is much "closer to the metal"? 08:03:35 *Forth* 08:03:42 amca: but, iirc: it only links a dll - it still won't "assemble" or "compile" to a .o and use linkers, right? 08:04:10 As far as I know, yes 08:04:13 aardvarx: I honestly have no idea. I think it's because, traditionally, forth was more OS than just tool. 08:04:13 As far as I know, yes 08:04:38 AAR, I have installed gforth; now what? 08:04:41 JasonWoof: Is the VM online somewhere? 08:04:51 * aardvarx jumps up and down out of excitement. 08:05:01 just run gforth, you can do "see word" or test or whatever 08:05:26 aardvarx: type 'gforth' and get used to postfix notation and the stack. gforth has a tutorial in info too 08:05:38 on my system, from shell, I can also do "info Gforth" 08:06:17 for fun and fast testing/etc: gforth is just handy to leave around. 08:06:51 amca, thanks! 08:07:22 np 08:07:27 :) 08:07:42 Well it is bedtime for poor little me. 08:07:46 the 'see' decompiler-word of gforth is just handy as shit 08:07:47 Ill see you all later 08:07:50 laters, amca 08:07:56 --- quit: amca ("d34d") 08:08:52 PoppaVic, when I do info Gforth in the gforth environment, it throws exceptions" 08:08:59 it would 08:09:02 I've always wanted to say that. 08:09:03 :P 08:09:07 'info' is a systems program 08:10:12 I'm still not sure, but I really dislike exceptions. I'd like to say "hate". And, while I thought to add them to my vm, I may just ignore 'em. 08:11:22 oops 08:11:38 vm is only in a repository on tathi's computer, which is not always on 08:11:44 Uhh.. 08:11:49 I think I have it here 08:11:54 It's teaching me how to crash my own system. 08:11:58 but I pasted the list of opcodes up here: http://herkamire.com/jason/paste 08:11:59 lemme peek 08:11:59 What's up with that? 08:12:04 oh, nm then 08:12:56 How can I exit from gforth? 08:13:08 --- join: virl (n=hmpf@chello062178085149.1.12.vie.surfer.at) joined #forth 08:13:09 type bye or hit ^D 08:13:28 Thanks. 08:14:37 I'm still not sure what 'next' (nexti?) is supposed to do, let alone how a simple code-layout would look. 08:16:08 ...it seems more and more likely that 'next' is supposed to execute to please assembly (somehow). 08:16:47 stupid gforth 08:17:01 I hacked the sources so it'll exit from normal things 08:17:20 PoppaVic: nexti is noop 08:17:35 PoppaVic: it just tells the system to load the next instruction-word 08:17:56 not an instruction you'd actually use 08:18:00 just part of the system design 08:18:24 ahhh? 08:18:36 just to test for the master-loop?? 08:18:40 instead of the vm implementation keeping track of how many instructions out of the word it has executed, it just executes until it gets a null (opcode for nexti) and that tells it to load the next one 08:18:42 like NIL/NULL? 08:18:51 ahhhhhh 08:19:14 ok, so it IS a "list terminator" 08:19:45 I thought I saw that, but it seemed so darn iffy 08:21:07 JasonWoof: ok, how does that work with something like ": foo ." hi" cr does> .s cr ;" ? 08:21:31 no idea 08:21:35 ahh 08:21:39 it's low level 08:21:43 has nothing to do with that sort of stuff 08:21:52 it just makes it so you can pack as many opcodes into a word as you want 08:22:01 and leave the rest of the bits zero 08:22:15 well.... Yes & no. Oh, ok - it's pretty well essential to the packing-issue then? 08:22:26 yep 08:22:38 ahh 08:25:19 http://rafb.net/paste/results/W9Iozg18.html 08:33:56 what's that? 08:34:08 the opcodes I been beating 08:43:45 beating? 08:43:50 yep 08:44:01 as in flogging? or victory? 08:44:03 trying to see where the opcodes lead me and the vm 08:45:12 I've this serious gut-feeling that we can benefit from a variety of core-support that can run platform-specific code, before we ever hit colon-defs. 08:45:38 ..just trying to see the best variety that trades off size/speed and portability. 09:30:46 --- quit: PoppaVic ("Pulls the pin...") 09:32:33 --- join: PoppaVic (n=pete@0-1pool47-7.nas30.chicago4.il.us.da.qwest.net) joined #forth 09:32:40 what characters are illegal in windoze filenames? 09:43:34 Is ANS Forth == gforth? 09:43:52 I think it is ANS compliant, but I could care less 09:43:59 Why is that? 09:44:21 because I feel ANS blows worse than C-standards 09:44:24 Is ANS the same as ANSI? 09:44:29 nope 09:44:37 they are related, however 09:44:47 \/:*?"<>| 09:44:52 So, it is a standard. 09:45:03 it's more shit akin to "we are sorta' THE 'standard' - listen and pay us!" 09:46:04 Oh. Now that's just nasty. 09:46:19 yeppers - welcome to the "World of the 'Real'" 09:46:38 While on the subject, are you familiar with POSIX? 09:46:55 sorta' - I have to either expect or ignore it 09:47:11 hmm. 09:47:21 meanwhile, there are several POSIX stds and they are never fully adopted anywhere 09:47:30 ..they get adopted piecemeal 09:47:43 Cost-prohibitive, perhaps? 09:47:48 nonsense 09:47:58 who is aardvarx? 09:48:05 POSIX is a joke layered upon ANSI or ANS 09:48:12 new in #forth? 09:48:13 Am I trolling? 09:48:26 huh? no 09:48:37 * aardvarx heaves a sigh of relief. 09:49:29 PoppaVic, is it fair to say that you have no interest in the development of standars? 09:49:31 POSIX is a mess - and nobody ever complies to either/any standard fully. ANSI can't access dirs/files/devices well w/o posix - it's just an unholy mess. 09:49:36 *standards* 09:49:45 nope, that'd be inaccurate 09:50:09 Please clarify. 09:50:31 ..more accurate is: they ain't gonna' listen, and "de-facto standards are doomed". The best I can ever hope for is to shake up folks with ideas and tools/apis 09:50:59 Hmm. 09:51:18 I've neither the resources of a big degree, job or corporation. 09:51:47 all I can do is what I do at home, and what I share with folks online. 09:51:48 PoppaVic, you say that for days, weeks, months and probably years, but that doesn't change the situation. 09:52:08 I've heard people complain about Linux using GNU-specific options (e.g *BSD users); I was wondering if POSIX was supposed to remedy that situation. 09:52:17 no 09:52:37 posix is just an attempt to convince systems and compilers to accept some essentials 09:52:55 In other words, just another layer of cruft? 09:53:08 ..I don't plan to kowtow to posix, but I use it where I can. 09:53:24 Why bother? 09:53:59 aardvarx: well, no. Not really. It's a really stupid attempt to endrun the simple task of mandating how libc and systems/platforms should minimially conform. 09:54:44 I think I understand where you are coming from with the idea of uniformity; the problem is that you have these people who are so detached from reality setting idealistic standards. 09:54:54 Right? 09:55:25 So, like you said earlier, it becomes "an unholy mess" to work with. 09:56:51 Very little pragmatism involved; it would be useless to adhere to a standard that sacrifices useability for uniformity. 09:56:59 back 09:57:13 yes, mostly 09:57:22 what do you think would be a good standard? 09:58:15 you get "asm" folks that write THEIR asm, and C programmers writing THEIR C, and it propogates all along - and meanwhile, the most basic idea of "host" and "target" is made an assumption, not an element. 09:59:41 In other words, you get a hodge-podge? 09:59:47 a what? 10:00:14 At this point in time, I'm prettywell sure that we would need to alter: cpp, gcc, asm - and maybe add a tool or two (if not a file or three) to get a desired, propogated result. 10:01:05 yes, aardvarx - and recall, even after you BUILD a new kernel for your own host - there is no simple header/lib/syscalls to illuminate "those that must follow" 10:01:24 header or config-file, even 10:02:26 if you change gcc no one want's to use it. 10:03:17 PoppaVic, but it sounds as though you are suggesting that "a standard to rule them all" is the viable solution. 10:03:22 only another holy mess, 10:03:26 * PoppaVic sighs 10:04:18 I believe yes, that there are ways to "standardize". But, it entails a clear, clean, systemic method for learning about the host - and all subsequent targets. 10:04:19 so is reality. 10:05:28 in my universe, ascii - followed by utf8 - is the foremost information-system. 10:05:58 one problem of your thought is, that to solve it whole _running_ systems need to get smashed. 10:06:07 in C, (and ignoring autoshit), cpp feeds gcc which feeds gas. 10:06:08 no one would use it. 10:07:03 autoconf goes here a way which isn't the best but it shows why it got so popular. 10:08:32 funny how ascii permeates the universe and net 10:09:17 PoppaVic, correct me if I am wrong, but I think ASCII and UTF-8 only deal with text formatting. 10:09:43 yep. and utf8 is merely an ascii-variant to approach unicode 10:09:45 Are you just pointing to what a proper standard should be? 10:09:56 text is universal. 10:10:13 however, folks can't seem to grasp it. 10:10:14 UTF-8 == internationalized version of ASCII 10:10:20 Right? 10:10:46 similar, yeah - non-ascii codes are unicodish. the same NIL marks and shit exist. 10:11:18 I've never worked WITH utf8, but then - the ascii I always expected worked. 10:12:43 the only BAD part I can see is that you need to insure you GENERATE utf8 for output, but need to burn space internally for the wchar_t unicodish crap. 10:12:57 So, what is it about these standards that *exactly* are worth emulating by the Forth community? 10:12:59 (output: to file) 10:13:17 forth is a really lose-community - same as all the other issues. 10:13:46 aardvarx: I see mostly that host and target 'building' is just sloppy. 10:14:12 ..maybe "inconsiderate" is a better term. 10:14:33 ..and, really - trust me - I could easily live w/o unishit 10:14:52 BUT, strings are just a symptom 10:16:22 aardvarx: classically, 'Forth' is an interpreter, a pcode-compiler/executor. Extensible. But, as is - with the variety of platforms and such, forth is as useless (generically) as lisp. 10:16:43 PoppaVic, I am quite aware that the Forth community is rather loose-knit. 10:17:12 yeah - multiple-variants, and everyone and his cousin has their own "format" or "image" 10:17:30 Does this mean it would be a bad idea to build command-line tools or applications with Forth? 10:17:41 no. 10:18:10 it just means that the forth must run the forth, and still rely on outside code - as-is. 10:18:28 no worse than tcl, perl, python, php, etc 10:18:54 Wait a minute... 10:19:04 heh 10:19:08 those are *ALL* scripting languages... 10:19:14 What's up with that? 10:19:14 * PoppaVic looks for lightbulbs 10:19:23 hehehe - NOW yer cluing in 10:19:42 hmmm... 10:20:21 as tathi and I touched one day: there is no 'compiler' for forth, and forth can't - currently - stand the idea of link&load 10:20:59 from forth, we need a compiler. *TO* forth, it'd be a target-compiler or "metacompiler" 10:21:27 !seen tathi 10:21:30 yes, there *are* ways to have some forths generate a "turnkey" 10:21:40 No bots here? 10:21:56 Pardon the interruption, but who is tathi? 10:21:57 but the 'turnkey' result is generally not what you'd desire 10:22:04 tathi is offline for now 10:22:23 he's the one helped JasonWoof with the C-vm and such 10:22:31 Okay. 10:23:17 you are, I presume, aware that gcc is more a "metacompiler" than just C? 10:23:39 You mean like g++ and gcj ? 10:24:23 gcc has a real abundance of insane 'attributes' and such that only matter to the compiler and targets. They ain't C-as-a-standard. 10:25:12 between gcc their integrated cpp, they can cross-compile their compiler and tools to a LOT of platforms. 10:25:51 ..but, near as I can tell: there is never a host or target "config" that is remotely consistently readable/usable. 10:26:31 also, recall: neither C or GCC are really "extensible" as forthers think of it. 10:26:33 Jack of all trades? 10:26:51 nah, immense reliance on autoshit tricks 10:27:25 autotools are not used by *BSD, I presume? 10:27:38 they are used all OVER - and still suck 10:27:46 lol 10:27:52 ..to suffer most, but the goat-book 10:28:24 I can suffer installing autoshit on every box, but I refuse to play into their scheme with my own code. 10:29:14 How do you "work around" this issue? 10:30:42 I try to ignore it and write decent gcc and makefiles. 10:31:04 What? 10:31:17 Recall: autoshit is predicated on m4, sh, make, pkg-config, sed, grep, awk, and I dunno what all else 10:31:26 You mean they came into existence because of laziness? 10:31:38 Please say it ain't so! 10:31:40 somewhat 10:31:52 Awww, naw! 10:32:30 autoshit seems to be a conglomerative-whore predicated on "we can't just write a good, portable shell-like gizmo and std file-syntax" 10:33:07 thus, my pending-project (Metabuilder) which is on hold while I work on this forthish-vm. 10:33:32 I can't believe there is actually a "Goat Book!" 10:33:34 Frankly, I get so damned much resistance I doubt it'll ever be completed 10:33:40 I thought you were kidding. 10:33:41 O 10:33:49 O'Reilly press, yeah 10:34:05 -- bought it, tried to read it - and I was ready to scream in 2 days 10:34:15 This Metabuilder you speak of... what is it supposed to do? 10:34:59 My theory is this: we need a portable - or cross-compiled - shell, some config-infofiles, and a forthish "compiler" and engine. 10:35:37 lots of fun PoppaVic 10:36:27 During the last few years, and more the last few months: I've pretty well concluded that forth seems to semi-parallel cpp+gcc+sh+make - it's just a bit twisted and torqued. 10:36:55 crc just added some C support to retro, yesterday 10:37:14 too many similarities to ignore, and damn near too many to isolate. BUT, I am almost positive I need a portable vm. 10:37:42 docl: crc is a good lad, I will eventually look to his code again. I get too busy, usually. 10:38:19 yeah, it's some cool stuff 10:38:46 I just can't stay atop his code, my code, and the assorted familial issues. 10:38:49 PoppaVic, I may be ignorant on this... 10:39:02 I don't know it is't up to link and load, but it looks like you can compile some C stuff into the forth dictionary 10:39:04 docl: mostly, I need about 3 clones 10:39:08 hehe 10:39:20 but when I hear "cross-compiler" I think "all the trouble there is." 10:39:34 ..I'd suffer 4 regular, interested-parties. 10:40:30 aardvarx: no. Trust me: I tried to BUILD gcc as such, aand it is a whore. BUT, "cross-compiler" should mean little more than "I built data here, and now I write a file to run elsewhere" 10:40:49 ..at least, that's the THEORY 10:41:18 but, to do EITHER - you need to have the essential ABI data for host and targets, and a translator. 10:41:46 PoppaVic, you're talking about portability, right? 10:42:12 aardvarx: if you want to get majorly depressed: get the gcc source and see how they consider platforms and cpu - and how they NEVER seem to share info the same way 10:42:34 hmm.. "portability" is based on a clear abi 10:42:40 From what I gather, portability usually does not come for free. 10:42:58 example: if I send you a source-file, the ABI is "ascii-file" 10:43:12 so fucking WHAT? 10:43:21 PoppaVic, I believe what you say about the GCC inconsistency. 10:43:41 I guess it is the lesser of two evils. 10:43:50 if code is 'portable', no rule in the universe sez a local tool cannot convert to non-portable, supra-optimized foo-code 10:44:36 my problem is that we are not seeing the 'portable' source, let alone the supra-foo tools 10:44:44 lol 10:45:11 No-one can "show you the beef." 10:45:11 ..and remember, on the whole: forth is size-optimal - or damn well should be 10:45:13 :P 10:45:20 ..not speed-optimized 10:45:45 It's like folks that want to argue tests/branching 10:46:10 theres any FORTH BNF around ? 10:46:17 it would make my life easier 10:46:30 there are only so many ways to *DO* it, but they argue for "optimal" when they are nowhere near ready. 10:47:09 Pepe_Le_Pew: I don't believe so. THe ANS std/doc is prolly closest - or the FIG-forth/F83/FPC source 10:47:40 Pepe_Le_Pew: remember: forth is not lexer-based (as is) 10:47:54 all you have is "whitespace-delimited-words" 10:48:03 Pepe_Le_Pew, what do you want? 10:48:14 i am writing my own forth interpreter 10:48:26 for embebbeding into Freepascal applications 10:48:28 hehehaha 10:48:37 but im not a good forth programmer 10:48:40 neither pascal one :P 10:48:54 see, there is that word 'embedded' and 'interpreter' again! ;-) 10:49:38 PoppaVic, do you have problems with them? 10:50:40 i dont like the way forth uses control words 10:50:43 like while, do, for 10:50:44 etc 10:50:56 theres an alternative ? 10:51:39 why is that bad for you? 10:52:13 get yerself the gforth source tarball; configure, build and install. Look into interpreter versus compiler logical. 10:53:03 eh? 10:53:06 i feel constrained, in that departament, classical procedural languages are much better 10:53:16 aardvarx: oh, lord no. This is all very new, and my 'home' is subject to change as soon as this ISP's fee runs out. I can aim you at old code, but this is all a new mess. 10:53:23 it does a lot of metacompiling, any problem with that? 10:53:27 Pepe_Le_Pew: life sucks 10:53:36 :P 10:53:42 heresy 10:53:47 heresy detected 10:53:54 I'd also point out that C can't interpret itself 10:54:28 here- oh.. Yeah. I'm a polite agnostic, and I live in C 10:55:06 PoppaVic, the journey of a thousand miles... 10:55:14 ..course - I was also building and tweaking fig-forth for 8080's and z80's before most folks could walk 10:55:15 thinfu would say that you are too unforthish 10:55:55 I just wish the FIG membership was cheaper and their articles and rag was better. 10:56:31 but, of course, you can't compete with "experts" and "academics" 10:57:23 aardvarx: I even plan to recycle the ancient FIG idea of "a macro", because I simply disagree with most folks. 10:59:07 ..I don't see "immediate words" as 'macros' - I see them as "preprocessor directives" 10:59:08 PoppaVic: are you starting a crusade ? 10:59:26 Pepe_Le_Pew: started it years and years ago 11:00:18 what you want to achieve ? 11:00:39 Pepe_Le_Pew: the big part is that more and more folks are just (finally) beginning to see a glimmer 11:01:35 achieve? Hmm.. First and foremost, "portability" and encapsulating "non-portable" and "inconsistent code" in replacement-traps. 11:02:33 maybe it's due to too many years of jotting "pseudo-code" 11:02:47 pseudo-code ?! 11:02:50 heresy ! heresy ! 11:02:54 let's burn the witch 11:02:55 What can I say? I hear "macro" I think "bad" 11:03:28 Ihear "macro" and think "changed input-source" or "substitutions" 11:03:58 :P 11:04:30 I guess this has nothing to do with MS macros :P 11:04:30 #define CELL uint_32 11:04:48 typdef union cell_ CELL; 11:05:02 yep, M$ is a buboe 11:05:48 as I said early today, I need to beat this header up HARD 11:06:23 http://rafb.net/paste/results/Lwji6037.html 11:06:36 http://rafb.net/paste/results/n46eOw93.html 11:06:49 http://rafb.net/paste/results/JCHDFF44.html 11:06:53 above is heresy 11:07:11 Back to the Metabuilder... what does the "forthish vm" you mentioned earlier have to do with anything? 11:07:33 a basis for building and extensions 11:07:49 sh itself is not even universal 11:09:20 Some of your Google logs mention kernel-related issues, but are unclear... can you speak to that? 11:17:31 sorry. Back. 11:17:32 The silence... is deafening. 11:18:11 hey, I lugged up laundry for ma' and helped her setup her bed, sheesh - my bad ;-) 11:18:51 aardvarx: the kernel-related is partially "standards" and partially "platforms", and all definitely ABI 11:19:28 look at the diffs between linux and bsd and other *nix, then doze - and then toss libc at it. 11:19:54 I don't know if that is relevant. 11:20:01 it impinges 11:20:06 I read that Forth does not need an OS. 11:20:24 I think that is absurd... but what do I know? 11:20:27 it's like "Men in Black" - "..your first, only and last Line of Defense.." 11:20:57 forth was never DESIGNED to play well with an OS - I've said that repeatdly ;-) 11:21:42 Are you saying that you could drape it over cold, bare metal and watch it come alive? 11:21:47 otoh, so what? Everyone shoots off in all directions spouting alternatives ;-) 11:22:09 aardvarx: forth? FIG did - with no more than a bios. 11:22:22 WHAT??? 11:22:35 where you been for 20 years? ;-) 11:23:10 I ran FIG-forth on my cp/m-kaypro and a _variant_ on my C64, very long ago 11:23:17 * aardvarx nods in disbelief. 11:23:27 check out the FIG home site 11:23:46 How hard is it to build one? 11:24:11 one what? 11:24:53 forth? Except for a zx1000 cassette-tape and a c64-cartridge, I've ALWAYS built my forths from source 11:25:38 retroforth isn't listed there, I don't think. 11:25:46 This is why I'm working with a C-based vm right now. If you can accept some speed-issues, so what. 11:26:10 How long does it take (and how hard is it) to build a Forth-based system? 11:26:14 docl: yeah, I doubt it is - maybe on "the ring"? FIG lost my support decades ago 11:26:34 well, the first prob is "forth-based" 11:26:42 there is no such animal 11:26:56 forth is more a collection of ideas than a system 11:27:08 O_o 11:27:26 "Linux is not UNIX?" 11:27:28 actually, it's akin to saying "I can write object/context C and use vtables" 11:27:34 yeah 11:28:26 When I was into FIG-forth, charlie-moore had gone to "FORTH, Inc" - and their compilers and systems still remain softa. 11:28:59 True or False: It is possible to flush a hard drive of whatever OS is on it, and replace it with Forth? 11:29:06 The thing that seems to matter most is: yeah, you can run a 'forthish' system nearly anywhere. 11:29:18 aardvarx: I wouldn't 11:29:31 Why? 11:29:36 It's hypothetical. 11:29:38 ..not unless you master plug&play and all the other devices shit 11:30:19 OTOH, so what? Either you have an OS of essentials; or you want to write for a new platform. 11:30:50 This is just hypothetical; I would not sneeze at the thought, though. 11:31:01 of course (and not) 11:31:23 I found out last week that an OS exists today that is written entirely in assembly. 11:31:29 Do you know what that is? 11:31:35 doable, of course - the #openbios folks know more than I ever will about devices and shit 11:31:53 asm? wtf would I be interested in such for? 11:32:11 I did not think it was possible, but it does exist. 11:32:17 duh 11:32:29 CP/M was written 100% in asm 11:32:35 I also found out that it works like a dream. 11:32:38 ..and you had to BUY the source 11:33:04 so, sure - the possibility exists - and I curse the idea 11:34:24 Why? 11:34:25 aardvarx, which one? there are a lot of assembler oses out there... menuetOS? 11:34:35 OpenVMS 11:34:40 there is no acceptable excuse for writing an OS in 100% asm, and I feel the same about apps/tools. Now, I will also 200% agree that translators from FOO to 'asm' are a damn-fine idea. 11:35:16 PoppaVic, I am *dying* to hear why it is inexcusable. 11:35:47 why the HELL would an idiot spend at least a man-year on writing asm for one platform when he could write code once or once with-alternatives, and translate it/compile it to a target? 11:36:07 nm, I know the answer 11:36:27 ...too silly to write a tool or use them or see the issues. NM. I give. 11:36:50 Well, I see your point. 11:37:04 PoppaVic, you are our good, we should build you a tower or something like that. 11:37:24 Every system eventually needs an upgrade; asm makes it much more difficult to do so. 11:37:31 Right? 11:37:33 yep 11:37:35 or to port 11:37:44 Done. 11:38:05 now, I have no qualms about LINKING asm 11:38:22 you just keep the code small and with a clear API 11:40:10 both the asm and "the code" use the same ABI, and the 'asm' has to play, but can be for assorted assemblers. 11:45:23 You never did answer the T/F question. 11:47:40 what? who? where? Im in three places at once 11:49:10 oh.. flush? 11:49:23 it's a lib/driver/filesystem issue 11:49:43 I can flush output anywhere, I can't "flush" input 11:49:46 True or False: It is possible to flush a hard drive of whatever OS is on it, and replace it with Forth? 11:50:02 an OS is not "flushed", you replace it 11:50:23 drives and diskettes have a "boot-sector" 11:50:36 How about a brand new drive? 11:50:39 the voodoo involved is more HW than software 11:50:47 Interesting. 11:51:11 personally, yeah: I've often done fdd shit and wiped drives 11:51:43 So, can you install Forth on a brand new drive? 11:51:53 I can't recall what the current *nix tools are 11:51:59 dd 11:52:09 fdisk 11:52:22 Sure, you'd bootstrap into some Forth-variant that acted like a complete OS 11:52:43 Does that *really* exist? 11:52:51 it'd be 100% platform and cpu dependent 11:53:18 variants? No idea. I'd find it to be painful and irksome. 11:53:35 I mean, what FreeBSD does is weird, but it works. What you are talking about seems to go much further, no pun intended. 11:54:07 to me, I write C to generate asm for a host - I never bothered with cross-compiling. 11:54:38 I thought that was the idea behind Metabuilder? 11:54:40 sure, if you replace an entire OS with "hello world" - that's *THE* program 11:54:45 lol 11:54:48 no. 11:55:55 with Metabuilder, I'm thinking "fuck autoshit for my code" and trying to imagine how to migrate, permeate and "grandfather-clause" into reality. 11:56:53 What exactly *is* the hold-up at this point? 11:57:20 whew! I finally caught up. :) 11:57:37 and now I have a truck at the dock. so this entry is just a place keeper. 11:57:40 Umm... That I am one guy? And, I spend maybe 6 hours on it daily - on a good day? And interest is almost invisible? 11:58:32 Well, like I said, 11:58:38 Also, that very few folks can cogitate ABI and "textfile" or header or tool? I dunno. I'm working within the space I see and toward goals I can see 11:58:41 "the journey of a thousand miles..." 11:59:25 yeah, like they say: "Forth: the worldest most unsupported language" - and then multiple by "C is ***" 11:59:54 It would be nice to at least have a blog. 12:00:03 I mean, I'm new here. 12:00:13 I'd have a lot more respect for all the "rugged individualists" if they were. 12:00:30 Can you prove to me that you've done *anything* at all on the project this year? 12:00:44 Dude, I run off a modem and a 'blog' is a dumbassed term coined in the last few years that hold no interest for me. 12:01:12 I hear you; but do you see my point? 12:01:21 Slow progress > no progress 12:02:11 No progress = 0 12:02:21 umm... #1) I'm sitting in a termwin and subdir of my project; #2) I see absolutely no need anymore to "prove" to anyone that I code and visit daily No offense, but I meet a lot more rugrats than I meet programmers - and worse, all the programmers get conveniently "busy". 12:03:01 If I learned how to use Forth, would it matter? 12:03:18 meanwhile Comments and debate and rafb-shares are prolly more useful anymore than pretending I'm in "a group" 12:03:26 If I have the time to volunteer, would it make any difference? 12:03:33 not really 12:03:42 Why is that? 12:03:59 forth is a mindset, then mechanics. And, frankly: promises no longer interest me. 12:04:03 Wait a minute... rafb-shares 12:04:12 Somebody can see that! 12:04:30 So, it's not as if you're hoarding the code. 12:04:42 see rafb ala' ##C topic - the home/wiki has a nice perl-script to simplify uploading 12:04:44 That *does* matter. 12:04:50 right, I never hoard code 12:05:01 That's all I was talking about. 12:05:10 It's not hearsay. 12:05:14 I just no longer rely on folks 12:05:27 I admit, I did forget that you shared some links earlier. 12:05:55 the three urls I posted awhile back where /rafb right from my /DEV/Metabuilder/fovm subdir 12:06:12 That is probably part of the problem. 12:06:24 I doubt it 12:06:41 I tried to enlist help awhile back with "commonForth" 12:06:44 http://www.hypercon.net/~pfv/ 12:06:46 I'm willing to be that took much longer to conceieve than it took me to look at it. 12:06:54 *bet* 12:07:02 what I got was arguments and then "I am too busy" 12:07:24 Which means that you are probably much further along than you first mentioned. 12:07:25 so, that tarball died and I just about gave up. 12:07:31 no 12:08:17 I am mostly ignoring what I learned from commonForth and balancing ideas and concepts against headers and old code - and the bit of feedback I get 12:09:17 What is the licence? 12:09:19 Basically, I've concluded that I will never, EVER suffer autoshit for my own code again. Nor start coding without some goals in mind. Headers I tinker 12:10:10 Are the goals secret, or can you share? 12:10:13 license?? oh, for cripes sakes.. "This code costs if you use it commercially, to link-to and use at home, see GNU and BSD" 12:10:35 Hey, I'm just making sure, man. 12:10:38 "...y; ..." 12:10:58 What? 12:11:02 I've written years of PD, and only got paranoid as M$ and GNU got involved 12:11:15 PD ? 12:11:24 public domain 12:11:50 I'm leery of BSD. 12:11:53 my goal - of late - is a portable vm 12:12:01 It sounds like Miranda. 12:12:14 THE goal is Metabuilder and never again suffering autoshit for my own code. 12:12:42 sounds like a lot of things: autoshit, scons, cons, pmake, etc. 12:12:54 * aardvarx scrolls back for the need for a portable vm... 12:12:58 prob is. None seem to grasp the intagibles 12:13:27 "intangibles" 12:13:35 What intangibles? 12:13:47 Heck vm sounds pretty intangible to me! 12:13:48 :P 12:14:02 the idea of ABI, API, extensible, relocatable - and do NOT say "ELF" 12:14:30 make yer life easy: think of the vm as a "universal CPU" 12:14:52 is ABI below API? 12:14:59 right 12:15:21 as in "what regs do we have? which are free? what's a stack-frame? etc" 12:16:27 If you are referring to TCP/IP stack-frame... 12:16:27 written for a vm, 98% of the code can eventually become "portable" - and (worst case) a few binary files - including text - are cross-compiled. 12:16:39 * PoppaVic chair2 aardvarx 12:16:55 * PoppaVic sighs 12:16:59 damn 12:17:13 I'm wrong, aren't I. 12:17:15 :( 12:17:31 lower level I think 12:17:32 * PoppaVic beats aardvarx with The Chair (hertz? donut?) 12:17:37 HAH! that was the code 12:17:40 yeah 12:18:09 stack-frame ala' x86 or emulation-weirdness elsewhere 12:18:12 what's a stack-frams anyway? 12:18:22 frames are not a major issue today anyway 12:18:31 you need a stack frame to make locals 12:18:36 k 12:18:43 every time you enter a proc you create a new stack frame 12:18:46 docl: usually return-address, args and local-args 12:19:00 so the older locals are pushed and new ones created 12:19:03 localization routine? 12:19:18 trust me in that ppc/apple and macosx do NOT reflect x86 12:19:35 docl: more like parameterized func 'call foo' 12:19:44 PoppaVic, I think I'll get it. 12:19:50 you need stack frames to allow locals AND recursion 12:19:53 but, THAT is the "abi" 12:19:57 or else your locals would become static locals 12:20:01 http://en.wikipedia.org/wiki/Stack_frame 12:20:08 aardvarx: cool - it's a mindfuck, I agree 12:20:34 Pepe_Le_Pew: "context" to include returns and args and locals 12:20:51 yeah 12:20:59 but it hurts more in the local vars 12:21:01 aardvarx: I know, I'm trying to stay cool 12:21:19 aardvarx: it's not YOU - it's the teachings and mindsets. 12:21:55 well, yeah 'context' would be "my universe" - add locals to make the pot swirl more wildly 12:22:42 now, atop alllll the stuff I've said. 12:23:43 ..add this: you CAN save-context for "the universe" and run a NEW "universe". SLowly. but the INTERFACE. the ABI is now broken down to complete tasks/jobs/processes. 12:24:15 As I said, it's a complete mindfuck 12:26:33 a lame visualization is: put a workbench next to a desk and a library... Now, jump back and forth between them to do - and what the HELL is ""? 12:26:41 you have to be allowed to save context and super-context? 12:26:58 oh, yeah.. Someone does 12:26:58 what are the gender of the angels ? 12:27:04 indeed 12:27:04 what is the gender of the angels ? 12:27:16 Pepe_Le_Pew: as a rule, hermaphroditic 12:27:44 gender? uh male I guess 12:28:02 docl: 'super' depends (as usual) upon the 'context' 12:28:32 I'd be satisfied if we could just think of *nix processes 12:28:33 byzantine priests would discuss the gender of the angels the whole day 12:29:15 Pepe_Le_Pew: well, I ain't suprised: they gave up pussy and lacked Penthouse and Gallery and Playboy 12:29:48 gossip and "who did who" are far older than print 12:30:00 well, whatever box you make someone will want to think outside of it 12:30:33 context is a box, and you have to store it to use a different box 12:30:42 docl: at the outset, imagine a nix-like executing a "process" 12:30:46 (lame analogy time :P ) 12:30:56 the vm is "a process" 12:31:10 ok 12:31:12 ..it doesn't matter what cpu or os at this point. 12:31:43 (with luck, it never matters until DEEP WITHIN the core code) 12:33:46 but, honestly... I've thought about this for several years - although more recently - and, (no matter how you slice it), it seems to suggest an extensible-preprocessor (immediate, cpp) and a compiler (forth/C+asm) 12:33:58 ..a linker and loader external are also not a bad bet 12:35:10 mind you: linking and loading, as programs and file-forms, have NOTHING to do (on the surface) with final machine-code 12:35:23 what suggests this? 12:35:32 the process model? 12:35:56 examine forth, perl, java, others, C, gcc, linux, etc 12:36:09 which suggestion puzzles ytou? 12:36:26 * docl thinks hard 12:36:56 ok you're saying they all have in common a preprocessor and compiler, etc? 12:37:21 or they need one to be portable? 12:38:19 the need for portable 12:38:32 well I guess they are all sorta like preprocessors and compilers. heck most apps are in a sense 12:39:01 on the whole: do we CARE what reg is used when we make a colon-def? 12:39:08 ..or a C func-call? 12:39:18 hmm ok 12:39:27 so the asm contrast 12:39:34 ahh 12:39:51 does asm care? 12:39:56 on the whole, do we care how an external lib is linked or a plugin is connected? 12:40:08 as long as it works 12:40:27 right - and as long as our code still builds and runs, right? 12:40:53 (and isn't bloated, slow, buggy, inflexible) 12:41:27 I should also caveat: we'd LOVE our code to be in a form that is portable and even recompilable/assemblable and optimzied, right? 12:41:41 yeah 12:41:46 indeed 12:42:13 forth pcode could do this, with the advent of a few tools. and maybe a few datafiles. 12:42:15 All programming deals in abstractions. Being "closer to the metal" or "further away" is nothing more than a different set of abstractions. 12:42:25 Quartus: right 12:42:44 Quartus: but don't try to tell too many folks that - they freak and get violent 12:43:02 Yet you're hostile toward standardization efforts. 12:43:25 docl: our furthest "abstraction" is plain old ascii 12:43:34 lets program in vhdl 12:43:37 what the heck 12:43:57 Quartus: no, I'm hostile to half-assed, semi-solutions or questionable value and portability. 12:44:25 plain old ascii, eh? 12:44:39 i.e. english? 12:44:41 docl: the NEXT level of "abstraction" is some sorta' pcode/byte-code. 12:44:51 (it's been thru a grinder) 12:45:39 english -> pseudocode -> preprocessor code -> executable code 12:45:42 docl: envision : hello ." Hello!" cr ; 12:46:13 docl: where you can view pseudocode as pcode, yer close. 12:46:28 switch #2 and #3 12:46:56 pcode/byte-code is an implementation method, and is by definition a kind of object code, albeit one for a VM. 12:47:26 "english":= preprocessing directives/extensions+language 12:47:41 Quartus: damn, yer handy ;-) 12:48:33 ok. pcode is non-specific enough to be portable, but definite enough to process into binary code, or interpret with a vm 12:49:02 docl: yer further ahead thinking of: "input=preprocessing(extensible)+language" 12:49:24 Most languages are just expressions plus a syntax parser plus libraries. Forth isn't; it doesn't fit into this 'preprocessor' model you're suggesting. 12:49:33 yes, pcode is sorta' like "this is the best *I* (I who?) can do." 12:49:48 Quartus: ohhhh, but it does 12:50:00 think "immediate words" 12:50:15 Isn't pre-processing; occurs at compile-time. 12:50:17 "the best this generic system can do" 12:50:38 The more and more I glare and test, preprocessing should-be and immediate could-have-been 12:51:09 ok your sentances need some preprocessing 12:51:43 Quartus: the prob with "immediate" is: it's stuck in the "compiled universe" and "cpp 'preprocessing'" is stuck in the "I do this or nothing" 12:52:35 I'm afraid that we're at the point where you're dealing with your own private definitions for these categories you're naming; I don't know what you mean. 12:52:38 docl: it's entirely an artifact of thinking 100% in "interpret versus compile" 12:52:58 Quartus: np, I know.. I hurt myself getting past it 12:54:26 there is "interpret", and there is "compile" and there is "extend interpret" - but that twist helps only when you can see interpret/extend as "preprocessor" or compile/extend as "compiler" 12:54:40 I can't parse that. 12:54:51 gad.. I knew this would happen 12:54:57 my apologies 12:55:15 It's just that it took me weeks to _SEE_ it 12:55:33 OK. What are "immediate" words? 12:56:07 As defined by the Standard, words whose execution semantics are the same while interpreting and compiling. 12:56:16 they got compiled, but when we hit them we are SUPPOSED to execute them "right now", right? 12:56:37 : test ." hello" ; immediate 12:57:20 'test' is sorta' akin to C #warning 'hello', right? 12:57:40 I don't think it is. 12:57:48 ahhhh 12:57:58 it's a viewpoint for you. 12:58:32 I think it's objectively different. You happen to have defined 'test' as doing nothing more than coughing up a text message at compile time; it can, however, do anything. 12:58:34 see [IF] 12:58:34 : [IF] 12:58:34 0= 12:58:34 IF countif off lookup @ 152612 ! [struct]-voc lookup ! 12:58:34 THEN ; immediate ok 12:58:39 #warning can only do one thing. 12:59:01 What perverse system implements [IF] like that? 12:59:05 is not [IF] akin to C's '#if' ? 12:59:10 ahhhh 12:59:53 this is my installed, ood Gforth 13:00:07 [IF], [ELSE], and [THEN] implement conditional compilation, but not in a pre-processor sense. 13:00:08 has no bearing: it's an immediate word 13:00:32 IMMEDIATE words can do vastly more than you can do with cpp. 13:00:32 and, yes, it IS acting like a preprocessor 13:00:40 There's nothing pre- about the processing. 13:00:42 Quartus: I never doubted that 13:00:48 * PoppaVic sighs 13:01:05 we can argue semantics all afternoon - I'd rather take a nap. 13:01:17 As you like. 13:01:23 ok 13:03:19 Your entire position is about semantics; you're using terms in ways not commonly agreed-upon. 13:03:36 I've no doubt it ends up like that 13:03:46 It ends up like that because it starts like that. 13:03:50 nope 13:04:03 It's similar to some issues we see in ##C 13:04:17 Are we coming to the point where you call me an asm-head or something? 13:04:56 your expectations and contexts are are just blocking us. Hmm? Why, do you want - or are you expecting - an insult? 13:05:18 I rarely insult folks gratuitously. 13:05:33 Who is 'us' that I am blocking? 13:05:37 ..and never when I find them useful. 13:05:52 us - you and I. 13:06:24 I'm never sure if it's age, exposures, or education. I've seen it before. 13:06:38 It just may be that you're not communicating your ideas effectively. 13:06:42 ..hell, used to suffer it with Dad in the 'long ago' 13:07:17 Quartus: it's sorta' tough, since you seek a common context. 13:07:27 There's no communcation without a common context. 13:08:02 Anyway, I don't think we are disagreeing.. I think our context and vocs are skewed, is all. 13:08:09 If you put forward that Forth's immediate mode words represent a pre-processor, the very best I can do is say "well, sort of, in a kind of way", because it's only slightly similar. 13:08:18 nono 13:09:20 I'm trying to say that the 'immediates' are generally treated as a cross between preproc-words/expansions and extentions to THAT as well as the language itself. 13:10:25 The fact that you can emulate CPP-style expansions and such using immediate mode words is a testimonial to the strength of the concept; it doesn't equate the two things except in so far as they overlap, which is only a little. 13:10:30 forth is no more equal-to-C than c++ is equal-to-C.. But, boyyyyy there are similarities that suggest repositioning views 13:10:45 Quartus: no major arg 13:11:18 I think 99% of it is the way we think of "parsing" 13:11:42 In a Forth group, I expect the understanding of parsing is considerably different than in, say, a C group. 13:11:46 I'm not sure if its underused, abused, or misunderstod. 13:12:34 Quartus: dude, I regularly mention I live in ##C and have liked forth for several decades. If that's objectionable, I apologize - but it validates neither view. 13:13:15 I'm not finding mention of C objectionable, nor suggesting either view is more valid. 13:13:34 well, that's an improvement... of sorts ;-) 13:13:41 Improvement over what? 13:14:10 PASS - anything I say at that point is liable to be taken badly. 13:14:51 anyway, yeah... I think forthish interpreting/exec|compile is a damn interesting idea 13:15:07 We've had no previous conversation in which I suggested C or the discussion of C was objectionable, nor that either was more 'valid', though I wonder what that means to you. 13:17:13 Quartus: suffice to say I've been burned too often. 13:17:37 Not by me. 13:17:52 I try to keep an open-mind and stick to familiar grounds where I can, but I've had folks get totally freaked. 13:18:10 Quartus: no, I assure you I have fun with you and most forthers. 13:18:36 I'm not freaked, nor do I expect to be should the day ever come that I know what it is you're trying to freak me out about! 13:18:42 if it wasn't fun, I'd just not visit. I think a cross-sectional view is often quite useful. 13:18:46 Quartus, greetings. 13:18:59 Hi aardvarx. 13:19:57 PoppaVic, you lost me about an hour ago; could you just tell me how your idea of a vm is different from VMware/XEN? 13:19:58 Quartus: oh, my - not baiting.. Just tossing out ideas. ;-( Anyway, I'm ready to snooze a bit. Please forgive my abandonment... aardvarx is possibly worth coaxing-along, I commend 'im. 13:20:15 Ok. 13:20:37 aardvarx: I'll leave you to Quartus for now. I gotta' get a few zz's before I hear the dinner bell. We can pick up tomorrow! 13:20:41 --- quit: PoppaVic ("Pulls the pin...") 13:21:14 aardvarx, what I've been able to figure out so far is that PoppaVic is in some way unhappy with the current programming landscape. His dissatisfaction has something to with portability, and VMs may play some kind of role in solving that. 13:21:25 Beyond that I'm as lost as you are! 13:21:56 He seems to think he's had some kind of epiphany about the relationship of different concepts to each other, but can't state it in a way I can follow. 13:22:05 I know lots of people now consider VMs the Second Coming... what's the big deal? 13:22:20 aardvarx, I'm with you on that one. 13:22:45 I hope my concepts of a vm are a bit more understandable than PoppaVic's 13:22:50 I'm not trying to know his ideas, I just need to understand where he's coming from. 13:22:56 aardvarx, me too. No luck so far. 13:22:59 *knock* (not know) 13:23:28 Quartus, at least you seem more knowledgeable about the subject matter than I am. 13:24:08 I've had enough multiple-language and multiple-system experience to know when he's not making sense, which is unfortunately a lot of the time. 13:24:22 * aardvarx snickers. 13:24:52 He may have a useful idea in there somewhere, and he seems very anxious to communicate about it, but so far it's not coming through the static . 13:24:54 It sounds like a your experience is anything *but* shallow. 13:25:12 (omit 'a') 13:25:27 What is it with me and my lousy typing today??? 13:25:50 I'm an enthusiast, certainly. What I lack in specialization I hope I compensate for in breadth. 13:26:03 Anyway, I don't know if I should say this, but this language seems to be fun. 13:26:15 I wouldn't be interested in it if it weren't fun! :) 13:26:59 I don't know if this is asking too much, but I think if he wrote his ideas down in twelve lines or less... 13:27:08 it would make all the difference. 13:27:15 I've suggested to him that he set up a wiki page. 13:27:23 What did he say? 13:27:31 That he was having trouble verbalizing his concepts. 13:27:36 lol 13:27:47 Well, I hope he works with you. 13:28:00 We'll see! 13:28:27 I don't believe there's a silver bullet solution, and I don't think there needs to be. 13:28:34 FWIW, it's not everyday that you see someone with your expertise offering assistance gratis! 13:28:58 I appreciate that, aardvarx. With PoppaVic it's not so much assistance as an effort to decipher. 13:30:08 ah, yeah. PoppaVic. 13:30:43 I would really like to discusse some Xell design patterns. 13:30:49 Quartus, I don't doubt his smarts. 13:31:01 aardvarx, I haven't known him long enough to say. 13:31:30 What is Xell? 13:32:06 However, I have read that one of the reasons Linux is so successful is due to Mr. Torvalds' communications skills. 13:32:22 He was able to communicate his ideas to others. 13:32:31 Linus communicates pretty well, yes. 13:32:53 I would like to think that the people who helped out were able to 'flesh out' the ideas, as it were. 13:33:42 The most successful projects, in my experience, are the ones that are contained in their entirety in one mind, regardless of who does the actual legwork. 13:35:12 Xell is my forthish concept for a vm for bytecode based general purpose applications. 13:35:48 YAVM? (Yet Another VM?) 13:36:07 I don't think so... 13:36:17 how do you define YAVM? 13:36:39 Well, what distinguishes yours from others? What's better about it? 13:36:39 http://www.yxi.com/xell.htm 13:37:12 virl, that's not your URL, is it? 13:39:34 Quartus, I have no idea. 13:40:49 not really 13:41:25 That is like being "...a little pregnant..." 13:41:34 Either it is, or it isn't. 13:41:48 I think, it's not. 13:41:53 virl, are you pregnant? :) 13:43:04 do I look like a women? no the hell!. 13:43:22 Well, you look like a stream of ASCII from here. Hard to determine gender. 13:43:47 whatever.. 13:44:39 What distinguishes your VM from others? What's better/different about it? 13:44:40 Xell, is a vm concept about streaming, special purpose solutions, small programs and flexible design. 13:45:16 O_o 13:45:19 Marketing terms. What are the technical advantages? 13:45:32 * aardvarx was going to say "buzzwords" 13:46:13 Quartus, what are the odds of a "stack overflow" with Forth? 13:46:40 ehm, two personal advantages for me: 1) fun for me 2) I like it more than java 13:47:32 advantages for you, puh.. if I say something about that you would disagree or not. 13:48:13 aardvarx, it happens generally in consequence of a bug in the code. 13:48:34 --- quit: OrngeTide (Read error: 110 (Connection timed out)) 13:48:45 Incremental development & testing prevents it. 13:48:58 ah, yeah, no stack under or overflows is one feature of it. 13:49:04 or every time Ray-work codes :) 13:49:19 Heh. 13:49:19 sup my forth-ies? 13:49:35 How ya been, Quartus? 13:49:41 What's new virl? 13:49:46 All's well, Ray. You? 13:49:51 * Ray_work been talking to aardvarx :) 13:50:03 Working ~~~~ 13:50:15 Ray_work: in what case? 13:50:19 busy, we're a man down. 13:50:53 virl, in the case of the `xell' world, what's new, or is that what 'snew? 13:51:46 * Ray_work re-invents the wheel, yet again. Twice this week and it's only Monday. 13:51:48 no, no stack overflows is an old feature of xell. 13:51:55 hehehe 13:51:59 funny 13:52:45 Stack underflow/overflow is a very good debugging aid. 13:53:28 Yes, especially on a system that always shows the stack. You get a pair of co-ords pop up on the stack, you know you didn't consume them properly. 13:53:59 that's true, but I prefer fixed size stacks :) 13:54:12 From what I am reading, the stack is so deep, an overflow should never happen. 13:54:27 Unless the programmer has been *very* bad. 13:54:44 Underflows, on the other hand... 13:54:52 aardvarx, if things are piling up on the stack, there's a problem even if it doesn't result in a crash. 13:55:03 in that case a programmer damages the data on the stack. 13:55:07 Quartus, like memory loss? 13:55:16 I'm sorry; I'm using the wrong term. 13:55:22 A flaw in the program design. A bug. 13:55:36 Like *not* cleaning up with malloc in C? 13:55:51 Not the same result, but the same kind of bug, yes. 13:56:10 and I think it's good on machines with not much memory. 13:57:18 aardvarx, an error of omission. Good Forth deals in perhaps one, two, three, or sometimes four items on the stack at once (there are exceptions, of course, but that's the rule-of-thumb). If you have three and only use two and forget about the third, you've made an error. 13:57:32 The error was either putting it there in the first place, or not removing it afterward. 13:58:08 Does it remain even after "bye" ? 13:58:15 aardvarx: I remember what i wanted to tell you. Yesterday I put "Programming Forth" into a "I'm feeling lucky " google box and the new PDF book "Programming Forth" just popped up and read itself to me :) 13:58:36 Oh, joy! 13:58:38 :) 13:59:19 that and `Starting Forth' and `Thinking Forth' are all available on the web now. 13:59:38 Starting Forth is, unfortunately, extremely dated and specific to a now-antique model of Forth. 13:59:59 Thinking Forth has useful ideas in it, though. A good book. 14:00:13 * aardvarx wonders if that's the same thing I've been reading all day at http://www.amresearch.com/starting_forth/sf1/sf1.html 14:01:06 That's the version I've seen on the web. 14:01:10 I'm confused with the problem set at the end of the chapter, though. 14:02:16 Confused how? 14:02:30 I'm just new to the problems, that's all. 14:02:37 YES! 14:02:42 Maybe I will figure it out later. 14:03:28 "Starting Forth" is much-heralded, especially in days gone by. I don't mean to criticize Brodie, it's a great effort to write such a book, but I'm not sure it's the best approach to learning the language. 14:03:40 How come? 14:04:35 It isn't systematic; he starts at a random spot and kind of wanders in various directions. 14:05:08 Fair enough. 14:05:15 I certainly wouldn't start a beginner out with '42 emit'. That raises more questions than it answers. 14:05:24 No doubt. 14:05:39 * virl would like to see a book about retroforth. with some of good code examples 14:06:28 The then-current version that at least makes a bit more sense was : star ascii * emit ; 14:06:39 Far less arcane. 14:06:46 were I'm the only one who doesn't rised such questions about '42 emit'? 14:07:00 virl, you were perhaps already familiar with ASCII. 14:07:15 --- join: OrngeTid1 (i=orange@orangetide.com) joined #forth 14:07:22 ? 14:07:25 yes, I live in ASCII. 14:07:34 What happened to OrngeTide ? 14:07:46 * aardvarx shrugs. 14:07:57 ok, I learned lots of another languages, so I think I can't call me beginner. 14:08:02 A new-to-programming beginner is likely not going to be familiar with ASCII, and that kind of beginner was the audience for Starting Forth. 14:08:26 oh.. really? 14:08:35 Quartus, are there any resources you could recommend? 14:09:05 temporary- Moore- brain transplant 14:09:24 O_o 14:09:30 ROFL 14:09:52 or is that a body-transplant? 14:09:59 yes - body-transplant 14:10:00 aardvarx, I haven't read Pelc's new "Programming Forth" in any depth. It might be useful, I can't say. 14:10:30 * Ray_work only half-way thru second chapter-- still introduction really , so far its good. 14:11:16 Ray_work, thank you for the information. 14:12:45 Thank you for using Ray-find. You still have credits, do you require another search? 14:12:50 The downside of the currently-available Forth books is, in my view, that they delve into internals (such as dictionary header structure) that do little more than confuse newcomers. 14:12:57 And which are not universally applicable. 14:13:07 lol 14:13:17 The upside is, they are the onlything available. 14:13:22 lol 14:13:39 I'll take it!!! 14:13:43 Ray-find timed out! 14:14:04 less than an hour to mine this salt. 14:14:14 Thanks again, all. I have to jet. Hope to talk to you soon again. 14:14:23 bye aardvarx :) 14:14:31 nice to meet with you today! 14:14:31 --- quit: aardvarx ("Cheers") 14:14:31 For instance, a Standard Forth system supplies a dictionary -- it's an associative array keyed by name and (optionally) wordlist, each item containing an xt and IMMEDIATE flag. That's it; that's all you can rely on. No lfa, cfa, nfa, parameter field; no other information. 14:31:57 ( we get busy, it comes in spurts) what did I miss? 14:33:22 Sounds like a secret mission. You have x data ( see Quartus last post) , you need a fully functional wiz-bang-boom-on-a-stick/digital, GO! 14:33:40 Heh. :) 14:51:25 oh oh gotta get an important quote out... 14:52:16 " 14:54:18 HEHE 14:54:31 oops/ old system requires caps always :) 14:54:40 I SEE. HOW'S THIS? 14:56:44 ah, just like work :) 14:58:27 brings a little tear to the eye... 15:00:08 Time to balance the money receipts. Be back on when I get home in about an hour or so. Arn't ya just thrilled to know those facts. :) 15:01:05 You bet. 15:08:52 --- join: crc (i=crc@pool-151-197-16-87.phil.east.verizon.net) joined #forth 15:11:32 crc :) 15:11:58 --- quit: Raystm2 (Read error: 104 (Connection reset by peer)) 15:12:16 hi Ray_work 15:12:18 --- join: Raystm2 (n=Raystm2@adsl-68-95-254-73.dsl.rcsntx.swbell.net) joined #forth 15:41:07 --- quit: derv0 ("Client exiting") 16:39:01 --- join: madgarden (n=madgarde@London-HSE-ppp3545852.sympatico.ca) joined #forth 16:46:54 A quick reference for Standard Forth: http://quartus.net/files/PalmOS/Forth/Docs/stdref.pdf 16:47:08 Four sheets. Printed 4-up it makes a single-page reference (if you have good eyes). 16:49:27 ooh, i could make something like this for factor 16:50:19 It was a challenge squeezing it in. 16:57:08 --- quit: docl (Read error: 110 (Connection timed out)) 16:59:51 Made a minor update to the formatting. 17:25:50 --- join: docl (n=docl@67-138-198-36.bras01.mcl.id.frontiernet.net) joined #forth 17:35:47 --- join: crc2 (i=crc@pool-151-197-16-87.phil.east.verizon.net) joined #forth 17:35:54 --- quit: crc (Read error: 104 (Connection reset by peer)) 17:36:07 --- nick: crc2 -> crc 17:36:09 --- mode: ChanServ set +o crc 18:07:40 Any comments on the quick reference? 18:09:21 Quartus? 18:10:31 Yes? 18:20:37 Earth to Raystm2 18:20:56 --- quit: Raystm2 (zelazny.freenode.net irc.freenode.net) 18:20:57 --- quit: madwork (zelazny.freenode.net irc.freenode.net) 18:20:57 --- quit: Ray_work (zelazny.freenode.net irc.freenode.net) 18:20:59 --- quit: slava (zelazny.freenode.net irc.freenode.net) 18:22:13 --- join: Raystm2 (n=Raystm2@adsl-68-95-254-73.dsl.rcsntx.swbell.net) joined #forth 18:22:13 --- join: madwork (n=foo@derby.metrics.com) joined #forth 18:22:13 --- join: Ray_work (n=vircuser@adsl-65-68-201-174.dsl.rcsntx.swbell.net) joined #forth 18:22:13 --- join: slava (n=slava@24.43.80.35) joined #forth 18:22:48 ah okay scrolled up :) 18:22:51 :) 18:23:52 * Raystm2 getting my hand held as crc tests bugs in retro 19:00:39 --- nick: Pepe_Le_Pew -> Pepe_Le_Off 19:00:39 yikes not getting my hand-held, some one is holding my hand while... disabiguity post. 19:00:39 --- quit: thinfu (Remote closed the connection) 19:00:39 --- join: thinfu (i=thin@bespin.org) joined #forth 19:00:39 --- mode: ChanServ set +o thinfu 19:57:19 --- join: snoopy_16 (i=snoopy_1@dsl-084-058-131-169.arcor-ip.net) joined #forth 19:57:49 --- quit: Snoopy42 (Nick collision from services.) 19:58:17 --- nick: snoopy_16 -> Snoopy42 20:02:44 --- quit: crc (Read error: 110 (Connection timed out)) 20:38:34 --- quit: virl (Remote closed the connection) 20:40:58 --- join: Raystm2_ (n=Raystm2@adsl-68-95-254-73.dsl.rcsntx.swbell.net) joined #forth 20:41:05 --- quit: Raystm2 (Read error: 104 (Connection reset by peer)) 20:41:57 --- nick: Raystm2_ -> Raystm2 21:13:55 what are the most basic operations i should implement on a interpreter ? 21:23:27 PUSH POP DUP DROP ROL ROR SWAP OVER TOP ADD SUB MUL DIV MOD SHR SHL AND OR XOR NOT EQU GT SM EQUGT EQUSM DIFF 21:23:37 that is what i implement in my interpreter 21:23:51 (Push is implicit) 21:24:51 Pop is only used internally 21:25:04 what i need more ? 21:50:33 This is for a vm? 21:51:45 yep 21:54:20 "need" is relative. You can build all the logical operators from NAND, for instance. 21:54:43 SUB can be -1 * ADD. 21:55:21 Is this a Forth vm? Two-stacks? 21:55:22 ok 21:55:39 i will try to do a TPostscriptCanvas 21:55:44 for Pascal 21:55:53 I'm not familiar with that. 21:56:01 but the root forth 21:56:05 ops 21:56:07 but the root is forth 21:56:13 I don't see a ! and @. 21:56:20 Pepe_Le_Off: what are these: ROL TOP DIFF 21:56:27 Rotate Left 21:56:41 I'm guessing SM stands for "less than" but I can't figure out the acronym 21:56:42 TOP returns the top of the stack without changing anything (this is for internal use) 21:56:52 SMaller 21:56:55 ahh 21:57:07 DIFF = different (my english is poor, sorry) 21:57:13 <> 21:57:16 yep 21:57:37 i will use + - / * explicit 21:57:43 < can be defined as SWAP > 21:57:45 you will probably want >r and r> (unless that's what push and pop are) 21:57:45 but implicit (in pascal) i need to use words 21:57:54 So it depends on your goal. If it's minimalism, it can be much smaller. 21:57:56 Do you have a ! and @? 21:58:04 not yet 21:58:29 i'm just writing the math stacks (i started this project today) 21:58:43 so i need a basic starting point 21:58:46 And you're building a VM in Pascal in order to build a PostScript? 21:58:53 hehe 21:58:55 thats the goal 21:59:19 unfortunately Postscript channel is allways empty 21:59:37 Pepe_Le_Off: perhaps you'd like to look at the opcodes we choose for our forth vm: http://herkamire.com/jason/paste 21:59:50 ok 21:59:50 we're doing 6-bit opcodes, so we choose 64 22:00:10 many could be easily removed, but we decided to fill the 64 22:00:37 btw nexti simply signals the vm to load the next instruction word 22:00:57 oh, it's called next in that doc, and commented... 22:01:35 JasonWoof, that formats bizarrely here, down around opcode 23 and onward. 22:01:53 Quartus: oh, why so it does, thanks 22:01:57 here too 22:02:29 fixed 22:02:49 oh, I get it 22:02:53 hmm 22:02:54 not here -- opcode 25 is a < 22:03:06 how to deal with signed shif left and right ? 22:03:10 *shift 22:03:28 this will be dog slow in software 22:03:29 fixed really 22:03:37 Pepe_Le_Off, if you're building a VM in Pascal for PostScript, you're not aiming for efficiency anyway. 22:03:47 wow, that's the first time I've pasted text into my wiki that actually contained the end tag 22:03:50 <> 22:04:18 Looks ok now. 22:04:25 ok, fixed all the there's a signed shift right s>> 22:05:17 signed left shift is a figment of your imagination... there's no such thing 22:05:30 i read wrong 22:05:40 or rather... it's the same as unsigned shift left 22:05:44 35 s>> \ signed shift right 22:06:23 I messed up on the wiki syntax 22:06:33 in my wiki the only special character is < 22:06:40 and I forgot to escape it 22:17:43 Happens. :) 22:19:29 I've just re-implemented [if] [else] and [then] for Quartus Forth. 22:20:07 [if] disables the interpreter's FIND, so it can only see [if] [else] and [then]. 22:20:52 This works quite well, and is more effective than the previous implementation that only worked from source stored in the Palm MemoPad. 22:37:33 --- quit: JasonWoof ("off to bed") 23:44:22 --- quit: saon_ ("Lost terminal") 23:46:01 --- join: saon_ (i=1000@c-24-129-89-116.hsd1.fl.comcast.net) joined #forth 23:59:59 --- log: ended forth/05.09.12