Re: Euphoria 3.0.0 Released! - what about Openwatcom?

new topic     » topic index » view thread      » older message » newer message

schrott wrote:
> just trying to build my own exw.exe, no translator.
> I had to change one line to make it compile (matherr header).
> 
> I dont think running "exw.exe sieve8k.exw" uses calls 
> to C DLL routines or multitasking? Still, it's hanging at 
> the "end for" in line 42.
> 
> And that disassembling stuff really is a bit cryptic blink

There's a WATCOM bug that pops up occasionally in some places
in be_execute.c. It might happen if you use a different version 
of WATCOM. In be_execute.c I use the thread() machine-language 
macro to insert JMP [ECX] in many places. This causes a quick,
single machine instruction, jump to the next IL opcode. It's faster 
than using BREAK; but in rare cases WATCOM will stupidly move
a machine instruction that should be executed *before* thread(),
to just *after* thread(), where it won't be executed, causing
a failure. You might want to use wdis to examine the assembly
code that you are getting for ENDFOR_INT_UP etc. If you see
a problem, use BREAK; instead. You might also define INT_CODES,
but that will slow the interpreter down quite a bit. A third alternative,
is to simply shuffle the code around a bit, or add some pointless,
no-effect code. Sometimes that makes WATCOM do the right thing.
This is a big headache, but once it's fixed it won't happen
again unless you make major changes to be_execute.c or
switch WATCOM compiler versions. If you fix it, let me know 
what you did and I'll probably add it to the official source.

Regards,
   Rob Craig
   Rapid Deployment Software
   http://www.RapidEuphoria.com

new topic     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu