1. eugtk history
- Posted by ne1uno Aug 11, 2015
- 2681 views
I can understand not having a favorable experience with a GUI toolkit and maybe venting frustration but editing a wiki page to remove an OS because you couldn't get it working?
I may be taking out of turn here as I haven't tried the new version and so won't edit the wiki page. last time I did try most things worked. you can get a windows package very easily from some windows blender page. and note: gtk does require more setup and more package downloading than most toolkits.
if the newest version is no longer building for windows, then adding a newer version and older version page may have been a better edit than removing windows information altogether.
http://openeuphoria.org/wiki/history/eugtk.wc
feel free to tell me I haven't had my coffee yet. though I already know this.
2. Re: eugtk history
- Posted by euphoric (admin) Aug 11, 2015
- 2670 views
I thought it was odd too, but I trust Pete. Maybe I shouldn't anymore. He's gawn craaaaazyyyyyy
jk, pete!
3. Re: eugtk history
- Posted by petelomax Aug 11, 2015
- 2657 views
Maybe I have gone crazy. I was obviously very tired and very frustrated. I just thought it might be helpful to reflect the truth. It does not work, there is no support, and as far as I know nobody can get it to work.
Obviously I assume someone can and probably will undo those changes with a click of a button, but they'll be defending a lie.
Pete
PS For me, it just terminates with exit code #C0000005, at least according to procmon. No error message, no address, no ex.err, no core dump.
4. Re: eugtk history
- Posted by jimcbrown (admin) Aug 11, 2015
- 2741 views
Maybe I have gone crazy. I was obviously very tired and very frustrated. I just thought it might be helpful to reflect the truth. It does not work, there is no support, and as far as I know nobody can get it to work.
It has worked in the past. At least for simple demos.
Still, the lack of support on Windoze is definitely an issue.
Obviously I assume someone can and probably will undo those changes with a click of a button, but they'll be defending a lie.
Pete
Although it appears to currently be broken, it worked in the past and has code to nominally support Windoze today. I think the most accurate statement would be to say that in additon to nix, it claims to support that other platform - but as of today's date that functionality appears to be broken and there's no one actively supporting that platform.
PS For me, it just terminates with exit code #C0000005, at least according to procmon. No error message, no address, no ex.err, no core dump.
I looked this up, and it seems like it's a GTK on Windoze issue.
https://mail.gnome.org/archives/gtk-app-devel-list/2012-April/msg00064.html
https://github.com/mattn/go-gtk/issues/219
It's also possible that this is the fault of a bug in OE itself....
I recall that at one point in time EuGTK had a shim C shared object that wrapped a few things, similar to wxEuphoria. I don't believe that is the case today, however.
5. Re: eugtk history
- Posted by andi49 Aug 11, 2015
- 2855 views
Hi
Maybe I have gone crazy. I was obviously very tired and very frustrated. I just thought it might be helpful to reflect the truth. It does not work, there is no support, and as far as I know nobody can get it to work.
Obviously I assume someone can and probably will undo those changes with a click of a button, but they'll be defending a lie.
Pete
PS For me, it just terminates with exit code #C0000005, at least according to procmon. No error message, no address, no ex.err, no core dump.
Also i'am not a GTK-fanboy.
Try this: In GtkEngine.e around line 9074
---------------------------------------------------------------------------------------- export function define_proc(object name, object params={}) ---------------------------------------------------------------------------------------- atom x name='+'&name -- cdecl (remember it's not Windows so dll's may not use stdcall! [...]
-------------------------------------------------------------------- export function define_func(object name, object params={}, object values=P) -------------------------------------------------------------------- atom x name='+'&name -- cdecl (remember it's not Windows so dll's may not use stdcall! [...]
Worked for me with an old GTK 3.4.2 setup from 2012 or so.
Hope this helps
Andreas
[Edit: Talking about 32bit dll's maybe it is different with 64bit dll's]
[Edit2: and this is how it looks on Win 10 http://euphoria.indonesianet.de/eugtk_win10.jpg]
6. Re: eugtk history
- Posted by andi49 Aug 13, 2015
- 2621 views
Hi
with the simple changes from my last post and downloading the big http://win32builder.gnome.org/gtk+-bundle_3.6.4-20130921_win32.zip
also GTK 3.6.4 with EuGtk 4.9.9 will work on Windows (32bit) (tested on Win10).
The Wikipage should be changed back to 'at least basiclly working with Windows' or something like this.
I will not do any more testing, and i have not tested the 64bit Version.
But i think changing a Wikipage without real proving is not okay!
Keep in mind GTK3 is not uptodate on Windows and it is not really supported by the GTK team.
Andreas
7. Re: eugtk history
- Posted by ryanj Aug 14, 2015
- 2604 views
Hi
with the simple changes from my last post and downloading the big http://win32builder.gnome.org/gtk+-bundle_3.6.4-20130921_win32.zip
also GTK 3.6.4 with EuGtk 4.9.9 will work on Windows (32bit) (tested on Win10).
The Wikipage should be changed back to 'at least basiclly working with Windows' or something like this.
I will not do any more testing, and i have not tested the 64bit Version.
But i think changing a Wikipage without real proving is not okay!
Keep in mind GTK3 is not uptodate on Windows and it is not really supported by the GTK team.
Andreas
I haven't really kept up on EuGtk, but i agree with andi49. I think if windows support is having issues, the wiki page should be updated to explain that. What is the point of the wiki pages? To give really basic and useless info, or to give details of something so other people can know the whole truth of the status of something so they can learn what's going on with euphoria projects and make an informed decision on whether or not to use something or help to come up with a solution for it? Food for thought.
By the way, perhaps a little off topic, but, i have always been a little bit annoyed about how little information the wiki pages have about stuff. If people would spend some time working on wiki pages that give useful information about the projects they are creating with euphoria, that could be very useful. I feel like i'm the only one who does that with my Redy project and related applications, like i try too hard to market my incomplete software. It makes me wonder if i'm weird or something. But i wish other people would try to convince others why they should try their euphoria library or application. Maybe what i'm trying to say is i wish the euphoria community would do more to "market" their stuff, not just put it out there. That goes for euphoria itself, as well as libraries and applications, and even ideas about how to improve things in the euphoria community.
8. Re: eugtk history
- Posted by euphoric (admin) Aug 21, 2015
- 2574 views
Just tried setting up GTK and EuGTK on my Windows 8 PC and it does nothing.
GTK is installed properly, apparently, as their demo works. But I can't get any EuGTK to run. There isn't even an ex.err file generated.
Any clues as to what I should do to help test?
ADDED: Oh, my version of Windows 8 is 64-bit, but I'm using the 32-bit GTK DLLs.
9. Re: eugtk history
- Posted by euphoric (admin) Aug 21, 2015
- 2693 views
Try this: In GtkEngine.e around line 9074
name='+'&name -- cdecl (remember it's not Windows so dll's may not use stdcall!
This fix works for me, EXCEPT, I'm getting a console window popping up with this message:
FIXME Windows GtkEngine.e line 146...151
What is that?
10. Re: eugtk history
- Posted by petelomax Aug 21, 2015
- 2465 views
This fix works for me, EXCEPT, I'm getting a console window popping up with this message:
FIXME Windows GtkEngine.e line 146...151
What is that?
constant os_info = os:uname() localhost = "127.0.0.1", ifdef UNIX then export constant os_architecture = os_info[5], -- e.g: x86_64 os_shell = getenv("SHELL"), -- e.g: /bin/bash host_addr = inet_address() end ifdef ifdef WINDOWS then -- FIXME display("FIXME Windows GtkEngine.e line 146..151") -- *** here be that message! *** export constant os_architecture = "unknown", os_shell = "cmd.com", host_addr = localhost end ifdef object os_term = getenv("TERM") if atom(os_term) then os_term = "none" end if ifdef WINDOWS then os_term = "CMD.COM" end ifdef
Clearly a few of those values are untested on windows.
In the first place std/os.e/uname() returns wildly different things for Linux and Windows...
I might suggest os_shell could be set from getenv("COMSPEC") but I ain't offering to test that idea.
I cannot usefully comment on host_addr or localhost (inet_address() is missing any windows specific code), nor can I be sure whether a few more settings are also suspect.
I would treat it as a warning that architecture/shell/ip address related things may not be quite right on Windows, but it is pretty clear that much testing of pretty much everything is warranted anyway.
HTH, though I am only repeating what anyone can see, Pete
11. Re: eugtk history
- Posted by euphoric (admin) Aug 21, 2015
- 2442 views
This fix works for me, EXCEPT, I'm getting a console window popping up with this message:
FIXME Windows GtkEngine.e line 146...151
What is that?
constant os_info = os:uname() localhost = "127.0.0.1", ifdef UNIX then export constant os_architecture = os_info[5], -- e.g: x86_64 os_shell = getenv("SHELL"), -- e.g: /bin/bash host_addr = inet_address() end ifdef ifdef WINDOWS then -- FIXME display("FIXME Windows GtkEngine.e line 146..151") -- *** here be that message! *** export constant os_architecture = "unknown", os_shell = "cmd.com", host_addr = localhost end ifdef object os_term = getenv("TERM") if atom(os_term) then os_term = "none" end if ifdef WINDOWS then os_term = "CMD.COM" end ifdef
Clearly a few of those values are untested on windows.
I have Euphoria code that identifies the Windows OS for another program I use. Do I need to plug it in here to fix this? Seems like that's what this needs, eh?
Thanks for the heads up, Pete!
Actually, Euphoria needs to know what OS it's running on. Doesn't it know that already?!?!
12. Re: eugtk history
- Posted by andi49 Aug 22, 2015
- 2482 views
This fix works for me, EXCEPT, I'm getting a console window popping up with this message:
FIXME Windows GtkEngine.e line 146...151
What is that?
constant os_info = os:uname() localhost = "127.0.0.1", ifdef UNIX then export constant os_architecture = os_info[5], -- e.g: x86_64 os_shell = getenv("SHELL"), -- e.g: /bin/bash host_addr = inet_address() end ifdef ifdef WINDOWS then -- FIXME display("FIXME Windows GtkEngine.e line 146..151") -- *** here be that message! *** export constant os_architecture = "unknown", os_shell = "cmd.com", host_addr = localhost end ifdef object os_term = getenv("TERM") if atom(os_term) then os_term = "none" end if ifdef WINDOWS then os_term = "CMD.COM" end ifdef
Clearly a few of those values are untested on windows.
I have Euphoria code that identifies the Windows OS for another program I use. Do I need to plug it in here to fix this? Seems like that's what this needs, eh?
Thanks for the heads up, Pete!
Actually, Euphoria needs to know what OS it's running on. Doesn't it know that already?!?!
Hi
Something like this, it's only for 32bit and not really tested.
include std/net/dns.e include std/console.e include std/dll.e include std/machine.e -- PROCESSOR_ARCHITECTURE_AMD64=9 -- PROCESSOR_ARCHITECTURE_ARM=5 -- PROCESSOR_ARCHITECTURE_IA64=6 -- PROCESSOR_ARCHITECTURE_INTEL=0 -- PROCESSOR_ARCHITECTURE_UNKNOWN=0xffff sequence addr constant kernel=open_dll("kernel32.dll") constant GetSystemInfo=define_c_proc(kernel,"GetSystemInfo",{C_POINTER}) function GetArch() sequence arch="Unknown" atom SYSTEM_INFO=allocate(36) c_proc(GetSystemInfo,{SYSTEM_INFO}) if equal(peek2u(SYSTEM_INFO),0) then arch="x86" elsif equal(peek2u(SYSTEM_INFO),9) then arch="AMD64" end if free(SYSTEM_INFO) return arch end function function GetShell() return getenv("COMSPEC") end function function GetLocalIp() addr=host_by_addr("127.0.0.1") addr=host_by_name(addr[1]) return(addr[3][1]) end function puts(1,GetArch()&"\n") puts(1,GetShell()&"\n") puts(1,GetLocalIp()&"\n") any_key()
Andreas
[EDIT]
After thinking about the above code i decided that GetArch() can be simply replaced by this code:
function GetArch() sequence arch ifdef BITS64 then arch="AMD64" elsedef arch="x86" end ifdef return arch end function
Architecture IA64 and ARM are not supported by Euphoria, also i do not see a need for 'Unknown'.
A 64bit program simply does not work on 32bit, so if the program works it has to be AMD64.
A 32bit program does not need to know if it is working on a 64bit host, it lives in 32bit world with 32bit dll's etc.
And so the function allways return x86 for this program.
(Maybe, a Setup Program (that is used to install both 32bit and 64bit versions) written as a 32bit Program needs to know the host architecture)
Andreas
13. Re: eugtk history
- Posted by andi49 Aug 24, 2015
- 2402 views
Hi
does the fix work for anybody else? Except 'euphoric'?
Do the provided solutions for the 'FIXME' work on other machines (except mine)?
I just wan't to know. Becouse i personally do not use GTK3(Windows), and i do not like to waste time debugging it if nobody cares.
Andreas
14. Re: eugtk history
- Posted by euphoric (admin) Aug 24, 2015
- 2347 views
Would this be helpful? It's what I use to determine what version of Windows my users are running:
include std/dll.e include std/machine.e function getWinOSVersion() atom kernel32, OSVersion, ptOS, junk, major, minor, build, platf sequence OS = "" kernel32 = open_dll("kernel32.dll") OSVersion = define_c_func(kernel32, "GetVersionExA", {C_POINTER}, C_INT) ptOS = allocate( 148 ) poke4(ptOS,148) if OSVersion > 0 then junk = c_func(OSVersion, { ptOS } ) major = peek4u(ptOS+4) minor = peek4u(ptOS+8) build = peek4u(ptOS+12) platf = peek4u(ptOS+16) if major = 3 then --NT3.51 OS = "Windows NT 3.51" elsif major = 4 then --95,98,ME,NT4 if minor = 0 then if platf = 0 then OS = "Windows 95" elsif platf = 2 then OS = "Windows NT 4.0" end if elsif minor = 10 then OS = "Windows 98" elsif minor = 90 then OS = "Windows ME" end if elsif major = 5 then --2k,XP,.Net Server if minor = 0 then OS = "Windows 2000" elsif minor = 1 then OS = "Windows XP or .Net Server" elsif minor = 2 then OS = "Windows XP Professional" end if elsif major = 6 then -- Vista if minor = 1 then OS = "Windows 7" elsif minor=2 then OS = "Windows 8" elsif minor = 0 then OS = "Windows Vista" end if end if end if if length(OS) = 0 then OS = "Unable to determine OS!" ?major ?minor ?build ?platf end if free(ptOS) return OS end function -- usage example: --puts(1,"\n" & getWinOSVersion())
15. Re: eugtk history
- Posted by andi49 Aug 24, 2015
- 2421 views
Hi
your code wan't work on Win8+ without this kind of manifest.xml
<exe>.manifest <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3"> <assemblyIdentity type="win32" name=SXS_ASSEMBLY_NAME version=SXS_ASSEMBLY_VERSION processorArchitecture=SXS_PROCESSOR_ARCHITECTURE /> <description> my foo exe </description> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> <security> <requestedPrivileges> <requestedExecutionLevel level="asInvoker" uiAccess="false" /> </requestedPrivileges> </security> </trustInfo> <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> <application> <!-- Windows 10 --> <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/> <!-- Windows 8.1 --> <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/> <!-- Windows Vista --> <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/> <!-- Windows 7 --> <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/> <!-- Windows 8 --> <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/> </application> </compatibility> </assembly>Checkout https://msdn.microsoft.com/en-us/library/windows/desktop/dn481241%28v=vs.85%29.aspx
For Euphoria Scripts euiw.exe or eui.exe needs to be compiled with this kind of manifest.xml. But it seems no one takes care about this since WInXP.
You may follow this old thread. http://openeuphoria.org/forum/124650.wc#124650
Andreas