Linux 64bit branch

Jacob Carlborg doob at me.com
Sun Jan 12 03:42:30 PST 2014


On 2014-01-12 08:19, Jesse Phillips wrote:
> I wanted to mention that I have a branch for the base and gtk
> repositories which compile under 64bit.
>
> https://github.com/JesseKPhillips/base/tree/64bit
> https://github.com/JesseKPhillips/org.eclipse.swt.gtk.linux.x86/tree/64bit

Thanks, that's great.

> I don't know if changes are correct, in the since that I don't have a
> grasp on the boundaries with the gtk libraries. They shouldn't affect
> 32bit though (it also compiles)

I had a look at the changes. I noticed a couple things:

* Most changes seems to be related to changing "int" to "size_t" or 
"ptrdiff_t". "int" was used because that's what the Java API uses. Java 
doesn't even have unsigned types. Is the changes really necessary? Does 
it require a lot of casts otherwise?

The place where it is correct to change the type is when the SWT scource 
code look something like this: "(int)/*64*/". That is a hint to a tool 
SWT uses to automatically translate between 32 and 64bit. These cases 
should always be replaced with the native type. Be it either a pointer 
type, size_t or something else.

* Currently DWT is compatible with both D1 and D2. Could you please use 
"to!(T)(args)" instead and import "tango.util.Convert" when Tango is 
used to make it compatible with D1 as well. I do intend to drop the 
support for D1 at some point, either when I merge in DWT-Cocoa or when 
there is a significant large change making it not practical to do the 
change both for D1 and D2. Anyway, I want to drop the support in a 
controlled way, making a D1 branch, make an announcement and so on. I 
don't think this is a significant large change to break the D1 support. 
It's easy to make it compatible with both D1 and D2.

* I see that you have used "auto". I prefer we try to avoid using "auto" 
at all. My experience with using "auto" in DWT is that it's easier to 
make a mistake when porting. When not using "auto" both the return type 
of a function and in the expression where it's used need to have the 
correct type. Also, "auto" doesn't exist in Java and we want to stay as 
close to the Java source code to make it easier to merge future versions.

> As I have not built a working example yet I won't be creating a pull
> request, the compiler message for snippet 107:
>
> -------
> (org-eclipse-swt-program-Program.o): undefined reference to symbol
> 'gnome_vfs_init'
> //usr/lib/x86_64-linux-gnu/libgnomevfs-2.so.0: error adding symbols: DSO
> missing from command line
> -------
>
> Which could be an issue with ordering[1] or missing a library. I don't
> know if I'll get anything working, but wanted to provide information
> that there is a compiling lib for 64bit out there.

Ok, I see. Have you verified that you have all the necessary libraries 
installed? They're listed here: 
https://github.com/d-widget-toolkit/dwt#linux

-- 
/Jacob Carlborg


More information about the Digitalmars-d-dwt mailing list