Euphoria
Ticket #753:
windows demos failing in 4.0.4
-
Reported by
SDPringle
Mar 08, 2012
Windows demos are failing in the development version of 4.0.4.
winwire.exw, taskwire.ex. The fail in moveToEx functions.
I built an installer based on the 4.0 mercurial sources. I got rid of my other EUPHORIA tool chains and now these demos do not work.
Details
1. Comment by ne1uno
Mar 09, 2012
I'm not seeing this with a just now rebuilt eui 4.0.4, minGW gcc 4.5.2
I tracked a similar problem a few months ago to -eudir on command line being ignored and the system set EUDIR pointing to eu41 includes.
2. Comment by mattlewis
Mar 09, 2012
I just built a fresh Watcom version and both demos look OK to me.
3. Comment by SDPringle
Mar 10, 2012
This is a problem with eu41 includes as well.
4. Comment by DerekParnell
Mar 10, 2012
I just built 4.0.4 with GCC and all the demos in the win32 folder worked without any errors.
C:\Projects\eu_proj\HGProj\euphoria\demo\win32>eui -v
Euphoria Interpreter v4.0.4 development
Windows, Using System Memory
Revision Date: 2012-02-17 18:25:35, Id: 5504:349991adf7ee
5. Comment by mattlewis
Mar 10, 2012
The problem is with using the 4.1 std/dll.e instead of the 4.0 version. The constants as defined and used in 4.0 are non-portable. For instance, C_POINTER is the same as C_UINT. The C_* constants were updated for 4.1 to make them correctly portable. This also required updates to the euphoria backend, of course.
4.0 programs will be source compatible with 4.1 (assuming that you use 4.1 binaries and the 4.1 std library), but careless definitions of C linkages may need to be updated to make the code portable.
6. Comment by ne1uno
Mar 10, 2012
note also, the 4.1 demos haven't been merged with the newer C_TYPES, so they can fail on eui 4.1 build with some minGW gcc on some versions of windows.
bad paths in eu.cfg are easily possible too. for anyone trying to keep an old version working. should there be:
in eu41/include/std/dll.e, machine maybe a few others
ifdef EU_4_0 then
crash("wrong version of euphoria")
end ifdef