Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus / 2000-04

Troll Tech and Inprise/Borland Collaborate on LinuxGUI

17 messages · 8 people ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Curtis White
to Michael Van Canneyt: This is known stuff; only know they have a paper to prove it :-) We should try and get…

I am a little confused about this issue. Unless we are compiling and linking to the C++ source code, why it is necessary to support C++? Couldn't the QT header files just be converted to Pascal the same way the GTK header files were? Once the code is compiled, it just makes calls to the binary objects at the binary level, right? Or not? And Pascal already supports most of the same things as C++ except multiple inheritance and maybe a couple of others. So I would think that the header files could be converted without too much trouble. There might be a few challenges to work through (like multiple inheritance), but I would think it wouldn't be all that hard.

Unless I am wrong about how all this stuff works at a lower level, I don't see any reason that the compiler should need to support C++. Can someone explain to me what I am missing here?

How hard would it be to add that support to the compiler if it is needed?

Curtis

Michael Van Canneyt wrote 13 lines
On Fri, 28 Apr 2000, Curtis White wrote: > Kylix GUI Components to be Built Upon Popular Qt Crossplatform Linux > Framework > http://biz.yahoo.com/prnews/000427/ca_troll_t_1.html This is known stuff; only know they have a paper to prove it :-) We should try and get the C++ support working in the compiler, so we can interface to native Qt libs, not using a wrapper... Michael.

Reply by email

Florian Klaempfl
to Michael Van Canneyt: This is known stuff; only know they have a paper to prove it :-) We should try and get…
Curtis White wrote 15 lines
I am a little confused about this issue. Unless we are compiling and linking to the C++ source code, why it is necessary to support C++? Couldn't the QT header files just be converted to Pascal the same way the GTK header files were? Once the code is compiled, it just makes calls to the binary objects at the binary level, right? Or not? And Pascal already supports most of the same things as C++ except multiple inheritance and maybe a couple of others. So I would think that the header files could be converted without too much trouble. There might be a few challenges to work through (like multiple inheritance), but I would think it wouldn't be all that hard. Unless I am wrong about how all this stuff works at a lower level, I don't see any reason that the compiler should need to support C++. Can someone explain to me what I am missing here?

A lot, the low level stuff works completly different:
- Qt uses C++ classes but the FPC class modell isn't compatible with that one used by egcs (and that one used by egcs isn't compatible with that of gcc :()
- MI requires a lot of changes (syntactical and semantical)
- C++ uses a complete different exception handling model

How hard would it be to add that support to the compiler if it is needed?

It IS hard but I'am working on it :)

Reply by email

Florian Klaempfl
to Curtis White: Kylix GUI Components to be Built Upon Popular Qt Crossplatform Linux Framework…
Curtis White wrote 20 lines
"Michael A. Hess" wrote: > Interesting. Cliff is already there. Since it talks about licenses. > > "As a result of the agreement, Inprise/Borland can leverage Qt in its > forthcoming Delphi(TM) and C/C++ rapid application development (RAD) > environment for Linux code named Kylix(TM). Financial terms of the deal > were not disclosed." > > Does this mean that since money changed hands that it might not be open > source????? > I was wondering this myself. I still don't see how they are going to provide support for Open Source without releasing the VCL source code as Open Source. How could a person possibly build an Open Source application based on the VCL without the VCL being Open Source? I'm a little curious to see how they will manage that...

Using shared libs.

Reply by email

Curtis White
to Curtis White: Kylix GUI Components to be Built Upon Popular Qt Crossplatform Linux Framework…
"Michael A. Hess" wrote 10 lines
Interesting. Cliff is already there. Since it talks about licenses. "As a result of the agreement, Inprise/Borland can leverage Qt in its forthcoming Delphi(TM) and C/C++ rapid application development (RAD) environment for Linux code named Kylix(TM). Financial terms of the deal were not disclosed." Does this mean that since money changed hands that it might not be open source?????

I was wondering this myself. I still don't see how they are going to provide support for Open Source without releasing the VCL source code as Open Source. How could a person possibly build an Open Source application based on the VCL without the VCL being Open Source? I'm a little curious to see how they will manage that...

Curtis

Reply by email

Andreas Kostyrka
to Michael Van Canneyt: This is known stuff; only know they have a paper to prove it :-) We should try and get…
Curtis White wrote
Florian Klaempfl wrote: So if I compile a .so file with gcc and then I compile a .so file with FPC, do those two .so files work differently internally? This is really confusing to

Well, this is called ABI: Application Binary Interface.

The basic stuff is defined by Intel (which made some errors, like aligning doubles at every 4th byte, instead of 8th byte, which slows double using programs on anything after a Pentium), but the higher level conventions come from the compiler.

C++ needs much more infrastructure then C, so there are a number of conventions built into the compilers. On Windows it's a well known thing that all parts (DLLs) must come from the same C++ compiler. On Linux this has been less of a problem, because almost all compilers are derived from gcc/egcs backend, and as such use the gcc/egcs conventions. FPC OTOH, is a standalone compiler.

Show quoted text 5 lines
me because I had thought an executable was the same no matter which compiler it was compiled with. I always thought the compiler just took the source code and made it into assembly and then the linker turned it into binary code. I didn't know that the binary code was different depending on which compiler you use. That is interesting.

Well, it's a number of thing: Calling conventions, Name Mangling, error and exception handling, and struct(RECORD) layout stuff.

What about on Windows? Is an .exe or .dll file that is compiled with FPC different than an .exe or .dll file compiled with Borland C++ Builder or MS Visual C++ or Delphi?

Jep, it is.

Andreas

Andreas Kostyrka | phone: +43/1/7070750 | phone: +43/676/4091256 MTG Handelsges.m.b.H. | fax: +43/1/7065299 Raiffeisenstr. 16/9 | 2320 Zwoelfaxing AUSTRIA http://www.euro.cauce.org/ | http://www.cauce.org/

Reply by email

Curtis White
to Michael Van Canneyt: This is known stuff; only know they have a paper to prove it :-) We should try and get…
Florian Klaempfl wrote 11 lines
> Unless I am wrong about how all this stuff works at a lower level, I > don't see any reason that the compiler should need to support C++. Can > someone explain to me what I am missing here? A lot, the low level stuff works completly different: - Qt uses C++ classes but the FPC class modell isn't compatible with that one used by egcs (and that one used by egcs isn't compatible with that of gcc :() - MI requires a lot of changes (syntactical and semantical) - C++ uses a complete different exception handling model

So if I compile a .so file with gcc and then I compile a .so file with FPC, do those two .so files work differently internally? This is really confusing to me because I had thought an executable was the same no matter which compiler it was compiled with. I always thought the compiler just took the source code and made it into assembly and then the linker turned it into binary code. I didn't know that the binary code was different depending on which compiler you use. That is interesting.

What about on Windows? Is an .exe or .dll file that is compiled with FPC different than an .exe or .dll file compiled with Borland C++ Builder or MS Visual C++ or Delphi?

Show quoted text 7 lines
> > How hard would it be to add that support to the compiler if it is needed? > It IS hard but I'am working on it :)

Great! Is it planned for version 1.0 or later?

Curtis

Reply by email

Baeseman, Cliff

Yea you can build a open source app on it but you cannot distribute the VCL which is the model they will most likely take.

Cliff

Earlier message 35 lines
-----Original Message----- From: Curtis White Sent: Friday, April 28, 2000 2:54 PM To: Subject: Re: [Lazarus] Troll Tech and Inprise/Borland Collaborate on Linux GUI "Michael A. Hess" wrote: > Interesting. Cliff is already there. Since it talks about licenses. > > "As a result of the agreement, Inprise/Borland can leverage Qt in its > forthcoming Delphi(TM) and C/C++ rapid application development (RAD) > environment for Linux code named Kylix(TM). Financial terms of the deal > were not disclosed." > > Does this mean that since money changed hands that it might not be open > source????? > I was wondering this myself. I still don't see how they are going to provide support for Open Source without releasing the VCL source code as Open Source. How could a person possibly build an Open Source application based on the VCL without the VCL being Open Source? I'm a little curious to see how they will manage that... Curtis _________________________________________________________________ To unsubscribe: mail with "unsubscribe" as the Subject archives at http://www.miraclec.com/list_archives/lazarus

Reply by email

Marc Weustink
to Michael Van Canneyt: This is known stuff; only know they have a paper to prove it :-) We should try and get…
Curtis White wrote 11 lines
So if I compile a .so file with gcc and then I compile a .so file with FPC, do those two .so files work differently internally? This is really confusing to me because I had thought an executable was the same no matter which compiler it was compiled with. I always thought the compiler just took the source code and made it into assembly and then the linker turned it into binary code. I didn't know that the binary code was different depending on which compiler you use. That is interesting. What about on Windows? Is an .exe or .dll file that is compiled with FPC different than an .exe or .dll file compiled with Borland C++ Builder or MS Visual C++ or Delphi?

Correct me if I'm wrong but I think using .so is similar to using .dll Both are binary libraries. I think a .so / .dll generated by fpc dousnt differ from one genrated by an other app.
Point here is the way these libs are called. If the lib contains flat functions you have a calling convention on how the parameters are passed. To call gtk libs, we use the cdecl convention. If you want to use functions from a dll you use the stdcall convention.
For objects being passed between libs, you need more than a calling convention, you also need to support the same objectmodel. IE, how are methods called and how do I look them up in the VMT. On the project I'm currently working on I use Interfaces to interface between the delphi objectrs and say for instance VC objects.

Marc

Reply by email

Florian Klaempfl
to Michael Van Canneyt: This is known stuff; only know they have a paper to prove it :-) We should try and get…
Curtis White wrote 15 lines
I am a little confused about this issue. Unless we are compiling and linking to the C++ source code, why it is necessary to support C++? Couldn't the QT header files just be converted to Pascal the same way the GTK header files were? Once the code is compiled, it just makes calls to the binary objects at the binary level, right? Or not? And Pascal already supports most of the same things as C++ except multiple inheritance and maybe a couple of others. So I would think that the header files could be converted without too much trouble. There might be a few challenges to work through (like multiple inheritance), but I would think it wouldn't be all that hard. Unless I am wrong about how all this stuff works at a lower level, I don't see any reason that the compiler should need to support C++. Can someone explain to me what I am missing here?

A lot, the low level stuff works completly different:
- Qt uses C++ classes but the FPC class modell isn't compatible with that one used by egcs (and that one used by egcs isn't compatible with that of gcc :()
- MI requires a lot of changes (syntactical and semantical)
- C++ uses a complete different exception handling model

How hard would it be to add that support to the compiler if it is needed?

It IS hard but I'am working on it :)

Reply by email

Mary Baeseman

Probably used my code ;) He He

Cliff

Earlier message 35 lines
-----Original Message----- From: Michael A. Hess To: Date: Friday, April 28, 2000 11:54 AM Subject: Re: [Lazarus] Troll Tech and Inprise/Borland Collaborate on Linux GUI >Curtis White wrote: >> >> Kylix GUI Components to be Built Upon Popular Qt Crossplatform Linux >> Framework >> http://biz.yahoo.com/prnews/000427/ca_troll_t_1.html > >Interesting. Cliff is already there. Since it talks about licenses. > >"As a result of the agreement, Inprise/Borland can leverage Qt in its >forthcoming Delphi(TM) and C/C++ rapid application development (RAD) >environment for Linux code named Kylix(TM). Financial terms of the deal >were not disclosed." > >Does this mean that since money changed hands that it might not be open >source????? > >-- >==== Programming my first best destiny! ==== > >Michael A. Hess Miracle Concepts, Inc. > http://www.miraclec.com > >_________________________________________________________________ > To unsubscribe: mail with > "unsubscribe" as the Subject > archives at http://www.miraclec.com/list_archives/lazarus >

Reply by email

Michael A. Hess
to Curtis White: Kylix GUI Components to be Built Upon Popular Qt Crossplatform Linux Framework…
Curtis White wrote
Kylix GUI Components to be Built Upon Popular Qt Crossplatform Linux Framework http://biz.yahoo.com/prnews/000427/ca_troll_t_1.html

Interesting. Cliff is already there. Since it talks about licenses.

"As a result of the agreement, Inprise/Borland can leverage Qt in its forthcoming Delphi(TM) and C/C++ rapid application development (RAD) environment for Linux code named Kylix(TM). Financial terms of the deal were not disclosed."

Does this mean that since money changed hands that it might not be open source?????

==== Programming my first best destiny! ==== Michael A. Hess Miracle Concepts, Inc. http://www.miraclec.com

Reply by email

Mary Baeseman

Not with the native name space mangling and such.

Cliff

Earlier message 50 lines
-----Original Message----- From: Curtis White To: Date: Friday, April 28, 2000 12:57 PM Subject: Re: [Lazarus] Troll Tech and Inprise/Borland Collaborate on LinuxGUI >I am a little confused about this issue. Unless we are compiling and >linking to the C++ source code, why it is necessary to support C++? >Couldn't the QT header files just be converted to Pascal the same way the >GTK header files were? Once the code is compiled, it just makes calls to >the binary objects at the binary level, right? Or not? And Pascal >already supports most of the same things as C++ except multiple >inheritance and maybe a couple of others. So I would think that the >header files could be converted without too much trouble. There might be >a few challenges to work through (like multiple inheritance), but I would >think it wouldn't be all that hard. > >Unless I am wrong about how all this stuff works at a lower level, I >don't see any reason that the compiler should need to support C++. Can >someone explain to me what I am missing here? > >How hard would it be to add that support to the compiler if it is needed? > > > >Curtis > >Michael Van Canneyt wrote: > >> On Fri, 28 Apr 2000, Curtis White wrote: >> >> > Kylix GUI Components to be Built Upon Popular Qt Crossplatform Linux >> > Framework >> > http://biz.yahoo.com/prnews/000427/ca_troll_t_1.html >> >> This is known stuff; only know they have a paper to prove it :-) >> >> We should try and get the C++ support working in the compiler, so >> we can interface to native Qt libs, not using a wrapper... >> >> Michael. >> > >_________________________________________________________________ > To unsubscribe: mail with > "unsubscribe" as the Subject > archives at http://www.miraclec.com/list_archives/lazarus >

Reply by email

Baeseman, Cliff

Linux PR just picked up on the Lazarus Story

www.linuxpr.com

Cliff

Earlier message 18 lines
-----Original Message----- From: Curtis White Sent: Friday, April 28, 2000 12:14 PM To: Lazarus Subject: [Lazarus] Troll Tech and Inprise/Borland Collaborate on Linux GUI Kylix GUI Components to be Built Upon Popular Qt Crossplatform Linux Framework http://biz.yahoo.com/prnews/000427/ca_troll_t_1.html _________________________________________________________________ To unsubscribe: mail with "unsubscribe" as the Subject archives at http://www.miraclec.com/list_archives/lazarus

Reply by email

Florian Klaempfl
to Michael Van Canneyt: This is known stuff; only know they have a paper to prove it :-) We should try and get…
Marc Weustink wrote 24 lines
At 18:30 28-04-2000 -0700, Curtis White wrote: >So if I compile a .so file with gcc and then I compile a .so file with >FPC, do those two .so files work differently internally? This is really >confusing to me because I had thought an executable was the same no matter >which compiler it was compiled with. I always thought the compiler just >took the source code and made it into assembly and then the linker turned >it into binary code. I didn't know that the binary code was different >depending on which compiler you use. That is interesting. > >What about on Windows? Is an .exe or .dll file that is compiled with FPC >different than an .exe or .dll file compiled with Borland C++ Builder or MS >Visual C++ or Delphi? Correct me if I'm wrong but I think using .so is similar to using .dll Both are binary libraries. I think a .so / .dll generated by fpc dousnt differ from one genrated by an other app. Point here is the way these libs are called. If the lib contains flat functions you have a calling convention on how the parameters are passed. To call gtk libs, we use the cdecl convention. If you want to use functions from a dll you use the stdcall convention. For objects being passed between libs, you need more than a calling convention, you also need to support the same objectmodel. IE, how are methods called and how do I look them up in the VMT.

Yep, that's the point.

Reply by email