1. eugtk history

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.

new topic     » topic index » view message » categorize

2. Re: eugtk history

I thought it was odd too, but I trust Pete. Maybe I shouldn't anymore. He's gawn craaaaazyyyyyy

jk, pete! smile

new topic     » goto parent     » topic index » view message » categorize

3. Re: eugtk history

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.

new topic     » goto parent     » topic index » view message » categorize

4. Re: eugtk history

petelomax said...

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.

petelomax said...

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.

petelomax said...

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.

new topic     » goto parent     » topic index » view message » categorize

5. Re: eugtk history

Hi

petelomax said...

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]

new topic     » goto parent     » topic index » view message » categorize

6. Re: eugtk history

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

new topic     » goto parent     » topic index » view message » categorize

7. Re: eugtk history

andi49 said...

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.

new topic     » goto parent     » topic index » view message » categorize

8. Re: eugtk history

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.

new topic     » goto parent     » topic index » view message » categorize

9. Re: eugtk history

andi49 said...

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? grin

new topic     » goto parent     » topic index » view message » categorize

10. Re: eugtk history

euphoric said...

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? grin

GtkEngine.e said...
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

new topic     » goto parent     » topic index » view message » categorize

11. Re: eugtk history

petelomax said...
euphoric said...

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? grin

GtkEngine.e said...
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?!?!

new topic     » goto parent     » topic index » view message » categorize

12. Re: eugtk history

euphoric said...
petelomax said...
euphoric said...

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? grin

GtkEngine.e said...
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

new topic     » goto parent     » topic index » view message » categorize

13. Re: eugtk history

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

new topic     » goto parent     » topic index » view message » categorize

14. Re: eugtk history

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()) 
new topic     » goto parent     » topic index » view message » categorize

15. Re: eugtk history

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

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu