1. Eu4.1 64Bit on Win8 not working
- Posted by andi49 Mar 11, 2013
- 2154 views
Forked from Re: EU4.1 Struct Branch eubw.exe missing
Hi
after a while i found some sparetime to work with Euphoria.
Euphoria Interpreter v4.1.0 development 64-bit Windows, Using System Memory Revision Date: 2013-03-05 22:42:31, Id: 6025:b526e962eb61 ERROR: Must specify the file to be interpreted on the command line
But i was not able to run any of the demos with this interpreter. Nothing happend, no console output, no ex.err. eui.exe or euiw.exe seems to run and then return to the command prompt.
The interpreter seems at least basicly to work, i was able to run a program like this.
puts(1,"Hallo Welt")
I played a little with some of the demos and find out that there is maybe a problem with std/console.e and std/io.e, or maybe the underlying functions.
The output of my little Hello World program disapears if i include one of these. Even when no function is used.
And, yes i tried one of the nightlybuilts, with the same result. This one:
Euphoria Interpreter v4.1.0 development 64-bit Windows, Using System Memory Revision Date: 2013-02-15 14:10:08, Id: 5984:1a35013eb40e ERROR: Must specify the file to be interpreted on the command line
I'am using Win 8 Pro 64bit. The 32bit 4.1 seems to work.
Andreas
Edit:
I tried to use gdb (first time, so I'am not really sure what I'am doing ;)
C:\e64>gdb --args c:\e64\bin\eui.exe "c:\e64\demo\ascii.ex" GNU gdb (GDB) 7.5 Copyright (C) 2012 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-w64-mingw32". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>... Reading symbols from c:\e64\bin\eui.exe...done. (gdb) start Temporary breakpoint 1 at 0x5c4be0: file c:/crossdev/src/mingw-w64-svn/mingw-w64 -crt/crt/crt0_c.c, line 17. Starting program: c:\e64\bin\eui.exe c:\e64\demo\ascii.ex [New Thread 3180.0xd04] Temporary breakpoint 1, main (flags=2, cmdline=0x361560, inst=0x361ab0) at c:/crossdev/src/mingw-w64-svn/mingw-w64-crt/crt/crt0_c.c:17 17 c:/crossdev/src/mingw-w64-svn/mingw-w64-crt/crt/crt0_c.c: No such file o r directory. (gdb) cont Continuing. Program received signal SIGSEGV, Segmentation fault. 0x000000000054cc62 in _62my_sscanf () (gdb) cont Continuing. Program received signal SIGSEGV, Segmentation fault. 0x000000000054cc62 in _62my_sscanf () (gdb) cont Continuing. [Inferior 1 (process 3180) exited with code 0377] (gdb)
Edit:
I built a version with debug info after this.
This lead me to line 1211 in scanner.e
-- I changed the line from while c >= '0' and c <= '9' do --to while c >= '0' and c <= '9' and (length(yytext)<=i) do
the following error lead me to line 164 in std/datetime.e
-- i changed the line from + floor(greg00/400+.25) -- to + floor(greg00/400+0.25)
The result is, i now have at least a eui.exe (64bit) that is able to run ed.ex.
No further testing right now.
Hope this helps.
Thank you
Andreas
2. Re: Eu4.1 64Bit on Win8 not working
- Posted by andi49 Mar 16, 2013
- 2020 views
Hallo
it seems that my last post was mostly nonsense (execpt that the Eu4.1 64bit was not working on Win8) maybe i sit a hour too long in front of the screen ;)
Okay, new try. This time it seems to work really.
Just one change in scanner.e
-- line 1213 frac = frac * 10 + (c - '0') -- to frac = frac * 10.0 + (c - '0')
Can someone explain this to me? I don't understand it.
As it seems that in this function (my_sscanf())mostly '10.0' is used instead of '10' and why makes it only a difference in 64bit. And does this also effect Linux 64bit and other 64bit Windows Versions or only Windows 8?
Thank you
Andreas
3. Re: Eu4.1 64Bit on Win8 not working
- Posted by jimcbrown (admin) Mar 16, 2013
- 2007 views
As it seems that in this function (my_sscanf())mostly '10.0' is used instead of '10' and why makes it only a difference in 64bit. And does this also effect Linux 64bit and other 64bit Windows Versions or only Windows 8?
It doesn't affect 64bit Linux/GNU and it shouldn't affect other 64bit Windoze systems...
I'm not sure why you are seeing this at all on Windows 8.
4. Re: Eu4.1 64Bit on Win8 not working
- Posted by andi49 Mar 16, 2013
- 2032 views
As it seems that in this function (my_sscanf())mostly '10.0' is used instead of '10' and why makes it only a difference in 64bit. And does this also effect Linux 64bit and other 64bit Windows Versions or only Windows 8?
It doesn't affect 64bit Linux/GNU and it shouldn't affect other 64bit Windoze systems...
I'm not sure why you are seeing this at all on Windows 8.
Hallo
thank you for your fast answer.
You say it 'shouldn't' effect other 64bit Windows systems, does this mean you have tested it on any other Windows 64bit System?
As the problem appears hear on my System with Pre-Built binaries (from http://openeuphoria.org/eubins/) and with local built binaries.
Could, please, someone confirm that he uses a Eu4.1 64bit on a real Windows machine without problems?
If so, i will directly accept this. And the bug is on my side (maybe Win8 or my setup).
I just want to know. Becouse i really do not know where i have to look for the failure, on my machine or in Eu4.1
Thank you Andreas