Path: utzoo!attcan!uunet!know!zaphod.mps.ohio-state.edu!ncar!gatech!rutgers!rochester!pt.cs.cmu.edu!dsl.pitt.edu!pitt!willett!ForthNet From: ForthNet@willett.pgh.pa.us (ForthNet articles from GEnie) Newsgroups: comp.lang.forth Subject: Metacompilation Message-ID: <1890.UUL1.3#5129@willett.pgh.pa.us> Date: 21 Oct 90 01:58:46 GMT Organization: String, Scotch tape, and Paperclips. (in Pgh, PA) Lines: 47 To: SHANNON VANCE Refer#: 1776 From: RAY DUNCAN Read: NO Subj: METACOMPILER Status: PUBLIC MESSAGE 1. Have you tried the file ROMFORGE.ZIP in conference 5? As far as I know this version of Forget is "good." 2. The metacompiler doesn't do any magic hidden things at the end of the compile. All changes to the image are explicit and are in the target's source file (e.g. HERE INIT-DP ! and so on). You just need to calculate the checksum AFTER these interpreted actions at the end of the compilation. Or am I missing something here? 3. This is reasonable and we plan to do it. However there are some funny implications by the fact that the Metacompiler makes 2 passes and forward references are allowed. You might not get exactly what you expect if you aren't careful to avoid forward references. 4. A nonzero return code, by convention, means an error has occurred. This is pretty standard behavior for compilers and other utilities. How could we preserve this (thereby allowing people (including ourselves) to use the Metacompiler with a MAKE utility) and still give you the ability to set ANY return code you want at the end of compilation? 5. The metacompiler currently puts the output files wherever it found the input files. It seems reasonable to me to specify a different path for the output; I'll look at this. 6. Using an environment variable as part of a path sounds reasonable to me, and shouldn't be too hard to add. 7. I'm curious about what sort of DOS command you would want to spawn during a metacompile (which is not an interactive process). There is very little memory around when the metacompiler is running; I doubt if there is enough to run any problem of reasonable size. We use just about all of it for symbol tables & stuff that we don't want to page in and out from disk (the only thing that we page is the image file). 8. Testing environment variables for .IF statements should be possible. But I'm not sure I'm ready to commit to this sort of thing. This would lead us into trying to make all the string operators "interpretable" at metacompile time and has other hidden ramifications. 32. If you are using control-Break to terminate a metacompile run, I can't tell you anything except the behavior of Control-Break varies from one ROM BIOS to another. It works ok on my machines, and we have special code in there to handle various ROM BIOS peculiarities, but we can't check all possible machines. Perhaps we'll just have to disable the control-break capability altogether during metacompilation and monitor the keyboard for entry of some other character (e.g. Control-C). NET/Mail : LMI Forth Board, Los Angeles, CA (213) 306-3530 ----- This message came from GEnie via willett through a semi-automated process. Report problems to: dwp@willett.pgh.pa.us or uunet!willett!dwp