1. std/dos/memory.e and std/dos/safe.e
- Posted by RStowasser May 22, 2009
- 904 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
- 925 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
- 896 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