1. std/dos/memory.e and std/dos/safe.e
- Posted by RStowasser May 22, 2009
- 1020 views
Hello,
I am afraid I cannot report correctly to the bug tracking system. So I do it this way again.
Trying to create Euphoria (r2092) with safe.e I added in std/machine.e at about line 232:
...
with define SAFE
ifdef SAFE then
...
when running wmake -f makefile.wat I get this error:
...
------- DOSALL -----------
wmake -h -f makefile.wat dos DEBUG= MANAGED_MEM=1 CONFIG=config.wat MANAGED_MEM=1
------- DOS -----------
wmake -h -f makefile.wat C:\EUPHORIA\SOURCE\dosobj\main-.c EX=C:\EUPHORIA\bin\eu
i.exe EU_TARGET=int. OBJDIR=dosobj DEBUG= MANAGED_MEM=1 CONFIG=config.wat DEBUG=
MANAGED_MEM=1 OS=DOS
del /Q C:\EUPHORIA\SOURCE\dosobj\back\*.*
del /Q C:\EUPHORIA\SOURCE\dosobj\*.*
cd C:\EUPHORIA\SOURCE\dosobj
C:\EUPHORIA\bin\eui.exe -i C:\EUPHORIA\include C:\EUPHORIA\source\ec.ex -nobuil
d -wat -plat DOS -D EU_MANAGED_MEM -i C:\EUPHORIA\include C:\EUPHORIA\source\int.ex
Using Debug Version of machine.e
C:\EUPHORIA\source\pathopen.e:33
A namespace qualifier is needed to resolve 'allocate_low'
because 'allocate_low' is declared as a global/public symbol in:
C:\EUPHORIA\include\std\dos\memory.e
C:\EUPHORIA\include\std\dos\safe.e
fc_table=allocate_low(5)
^
Error(E42): Last command making (C:\EUPHORIA\SOURCE\dosobj\main-.c) returned a bad status
Error(E02): Make execution terminated
Error(E42): Last command making (dos) returned a bad status
Error(E02): Make execution terminated
Error(E42): Last command making (dosall) returned a bad status
Error(E02): Make execution terminated
Error(E42): Last command making (all) returned a bad status
Error(E02): Make execution terminated
Drücken Sie eine beliebige Taste . . .
Is there a workaround for this namespace error? The idea was to see if running eui /euiw /euid -h would produce an error message. In the moment I can only see this message with eui -h:
C:\Euphoria\bin>eui -h The instruction at 0x004e2fc1 referenced memory at 0xfffffff8. The memory could not be read. ...Roland
2. Re: std/dos/memory.e and std/dos/safe.e
- Posted by ne1uno May 23, 2009
- 1038 views
Trying to create Euphoria (r2092) with safe.e I added in std/machine.e at about line 232: {{{ ... with define SAFE ifdef SAFE then ...
when running wmake -f makefile.wat I get this error:
...
good idea, must admit, never though to try it and I run SAFE all the time when there is a problem.
std/sockets.e has an include std/memory.e instead of std/machine.e not sure that gets pulled in for DOS, but it might. source/pathopen.e does it wrong too.
bottom line, if you must include memory.e directly protect it with ifdef SAFE like is done in machine.e or mmem.e so running with -D SAFE or with define SAFE works.
3. Re: std/dos/memory.e and std/dos/safe.e
- Posted by RStowasser May 23, 2009
- 1010 views
std/sockets.e has an include std/memory.e instead of std/machine.e not sure that gets pulled in for DOS, but it might. source/pathopen.e does it wrong too.
bottom line, if you must include memory.e directly protect it with ifdef SAFE like is done in machine.e or mmem.e so running with -D SAFE or with define SAFE works.
as a temporary solution I commented out allocate_low and free_low in std/dos/memory.e. But of course this is only a crook. It seems to me that using safe.e for creating the eubins is not very helpful , but it was only an experiment.
I did another test using "with define SAFE" in std/machine.e running the test framework with the original eui.exe (r2092).
I will get 3 errors:
eui ..\source\eutest.ex -log
...
interpreting t_wildcard.e:
Using Debug Version of machine.e
Test results summary:
FAIL: t_memory.e
FAIL: t_pipeio.e
FAIL: t_socket.e
Files run: 85, failed: 3 (96.5% success)
C:\EUPHORIA\tests>pause
Drücken Sie eine beliebige Taste . . .
I do not know if this is of some importance. Running the test units with the original machine.e will show no error on my system.
Roland

