guys... some of my code doesn't run when pre-processed. I never use encap to pre-process it, I always run pre-rebol manually. The result of this doesn't execute without errors.
My version of pre-rebol even had MOLD replaced with MOLD/ALL and that created new bugs. only using my string version of pre-processor, has the original code been able to be linked into one source without having execution bugs.
I also had to workaround the encap issue which automatically calls a pre-process on my linked file .
Why is everyone trying to tell me I'm not having these issues.
I'm simply letting you guys know that block-based pre-processors mangle the data in some cases, and that string-based pre-propressing is safer (and much more flexible). Note that my pre-processor uses load/next when it finds some keywords.
The prebol preprocessor was designed to use MOLD. Just switching it to use MOLD/all isn't enough, you have to design it to use MOLD/all, the way Ladislav's include is. Also, even if you make your own MOLD/all safe prebol, the encapper still runs your code through the non-safe regular prebol as part of the encapping process, so it doesn't help. It is definitely possible to make a complex MOLD/all safe preprocessor, but I can't be sure that is what you did. The fact that you had bugs created by your preprocessor suggests not.
my preprocessor wraps the code into a string so that the encapper's internal prebol can't touch it.
in effect the result of my engine is listed just above in the Sept 2 post :-)
I guess, Max, that you never tried INCLUDE, did you?
I actually did look at it. I didn't go too far because the fact that what I saw it was loading the code, it woudn't have worked in the end. parts of my code don't survive any kind of combination of LOAD/MOLD with or without /ALL .
just doing so manually and trying to do the code results in error... part of pre-processing toolchain or not.
nevermind, I am not the one pushing you to try it. However, there are many potential users who don't even know they could use it, and only once they tried, they found out what the benefits were.
I am sure its far superior to prebol in many ways. It just doesn't provide extra features beyond what I already have in my toolchain. note that the pre-processing bugs I have are with code which isn't using my normal toolchain.
its a 2 year mess of very complex code re-written and merged with prototypes, over and over (I've been working almost full time for a year simply cleaning it and organising it , without adding any new real features).
However, giving up on LOAD and MOLD(/all) you are actually losing one of the REBOL advantages - the metacircularity.
"It just doesn't provide extra features beyond what I already have in my toolchain." - I am pretty sure it does, you just don't know them
I do use it, but curtailed and under control with LOAD/next only on the parts I need it to.
For example, does your toolchain offer you user-definable directives?
well, my distribution manager is linked and runs within a rebol script, so I can actually perform any rebol trick on the source.
(in INCLUDE, all directives are "user-defined" in a sense)
but anyhow... I have a different application model than most rebolers... so I don't require the exact same kind of toolchain as others.
Yes, that is a part of REBOL flexibility, you can use anything you like.
The ability to build our own tools in a pretty small timeframe is one of REBOL's main features.
However, regarding the toolchain - I seriously recommend all users to try INCLUDE, otherwise they don't even know what they are missing.
and I agree with this.
I know for a fact how hard you worked for it to be non-intrusive to other toolchains.