Sign in Join

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

Mailing lists / fpc-pascal / 2017-01

FPC clean room project

31 messages · 16 people · –

Reply by email Subscribe to this list Your subscription

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

Mr Bee

Hi all,
There's someone accusing that Free Pascal (and some parts of Lazarus) is just a reverse engineering of Delphi. Even he said some codes of FPC/Laz are taken from Delphi (and Kylix). This is a serious allegation. I know that isn't true. Or is it? ;)
Can anybody elaborate on this? I'd like to debunk the allegation but I don't know where to start and the evidence for it. Thank you.
Regards, 
–Mr Bee

Reply by email

Jürgen Hestermann
to Mr Bee
Mr Bee wrote
There's someone accusing that Free Pascal (and some parts of Lazarus) is just a reverse engineering of Delphi. Even he said some codes of FPC/Laz are taken from Delphi (and Kylix). This is a serious allegation. I know that isn't true. Or is it? ;) Can anybody elaborate on this? I'd like to debunk the allegation but I don't know where to start and the evidence for it.

I think the first "evidence" would be that Borland/Embarcadero did not initate any legal proceedings against FPC. They would surely have done this in case it is true.

Reply by email

Mattias Gaertner
to Mr Bee: There's someone accusing that Free Pascal (and some parts of Lazarus) is just a reverse…
Hi all, There's someone accusing that Free Pascal (and some parts of Lazarus) is just a reverse engineering of Delphi.

FPC runs on 80 platforms. Delphi only runs on MS Windows 32/64 and can cross compile to a few more.
FPC supports Delphi syntax and several more, including two of its own.

Even he said some codes of FPC/Laz are taken from Delphi (and Kylix). This is a serious allegation.

Yes, and the FPC and Lazarus team treat them seriously. I don't know of such code, but if you find such code in FPC/Laz please report it, so it can be removed/replaced.

I know that isn't true. Or is it? ;) Can anybody elaborate on this? I'd like to debunk the allegation but I don't know where to start and the evidence for it.

Ask the accusers what part is taken, then look at the code and the commit history.

Just for your interest:
FPC/Lazarus is a volunteer project, which get a lot of patches from the community. Sometimes patches look like (altered) Delphi code and they get rejected. But nobody is perfect, and so some years ago some doubtful procedures were found. They had been replaced.

Many such allegations were not about FPC/Laz, but about projects using FPC/Laz. Some accusers don't know the difference or don't care.

Mattias

Reply by email

Marco van de Voort
to Mr Bee: There's someone accusing that Free Pascal (and some parts of Lazarus) is just a reverse…

In our previous episode, Mr Bee said:

There's someone accusing that Free Pascal (and some parts of Lazarus) is just a reverse engineering of Delphi. Even he said some codes of FPC/Laz are taken from Delphi (and Kylix). This is a serious allegation. I know that isn't true. Or is it? ;)

Yes, so study the evidence closely.

Can anybody elaborate on this?

Other than that it is patently wrong, no, since we don't have his accusations.

I'd like to debunk the allegation but I don't know where to start and the evidence for it.

Debunk is evidence to the contrary. If he hasn't provide evidence, challenge him to do so.

Reply by email

geneb
to Mr Bee: There's someone accusing that Free Pascal (and some parts of Lazarus) is just a reverse…
Mr Bee wrote
Hi all, There's someone accusing that Free Pascal (and some parts of Lazarus) is just a reverse engineering of Delphi. Even he said some codes of FPC/Laz are taken from Delphi (and Kylix). This is a serious allegation. I know that isn't true. Or is it? ;) Can anybody elaborate on this? I'd like to debunk the allegation but I don't know where to start and the evidence for it.

Tell the person to either prove it, or shut up about it.

g.

Proud owner of F-15C 80-0007 http://www.f15sim.com - The only one of its kind. http://www.diy-cockpits.org/coll - Go Collimated or Go Home. Some people collect things for a hobby. Geeks collect hobbies. ScarletDME - The red hot Data Management Environment A Multi-Value database for the masses, not the classes. http://scarlet.deltasoft.com - Get it _today_!

Reply by email

Snorkl e
to Mr Bee: There's someone accusing that Free Pascal (and some parts of Lazarus) is just a reverse…

My question is why does this person even care to make such accusations? For one some of the routines in the run time are extremely generic and could easily be written exactly the same way and only way to prove it is if comments made by original coder are still in place. Sounds like a waste of time witch hunt to even entertain such thoughts without definitive proof and if said person holds back on such information that means they are interested in bottom feeder litigation..... Shameful if you ask me.

"Mr Bee" wrote 23 lines
Hi all, There's someone accusing that Free Pascal (and some parts of Lazarus) is just a reverse engineering of Delphi. Even he said some codes of FPC/Laz are taken from Delphi (and Kylix). This is a serious allegation. I know that isn't true. Or is it? ;) Can anybody elaborate on this? I'd like to debunk the allegation but I don't know where to start and the evidence for it. Thank you. Regards, –Mr Bee _______________________________________________ fpc-pascal maillist - http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply by email

Santiago A.
to Mr Bee: There's someone accusing that Free Pascal (and some parts of Lazarus) is just a reverse…
Mr Bee wrote 10 lines
Hi all, There's someone accusing that Free Pascal (and some parts of Lazarus) is just a reverse engineering of Delphi. Even he said some codes of FPC/Laz are taken from Delphi (and Kylix). This is a serious allegation. I know that isn't true. Or is it? ;) Can anybody elaborate on this? I'd like to debunk the allegation but I don't know where to start and the evidence for it.

Well, I think it's evident that Freepascal and lazarus tries to be delphi compatible, and that means that must look close to delphi to imitate it's behavior and syntax.

Is that reverse engineering? Well, I'm not a lawyer, I don't know where "finding a similar solution for the same problem" ends and "Reverse engineering" starts.
Nowadays it looks like painting a line is patented.

Nevertheless, as someone has pointed, Embarcadero hasn't make any legal movement. Maybe because it thinks there is no legal base; or maybe because it doesn't care that much and thinks it's not worth the bad publicity.

Saludos Santiago A.

Reply by email

Karoly Balogh (Charlie/SGR
to Santiago A.

Hi,

Santiago A. wrote 7 lines
Well, I think it's evident  that Freepascal and lazarus tries to be delphi compatible, and that means that must look close to delphi to imitate it's behavior and syntax. Is that reverse engineering? Well, I'm not a lawyer, I don't know where "finding a similar solution for the same problem" ends and "Reverse engineering" starts. Nowadays it looks like painting a line is patented.

I'd like to point out, that reverse engineering is not illegal, in most countries. As in, investigate the workings of some software or computer system in general, then document how it works, and then write a replacement based on that. Neither is implementing a documented and well defined API.

Heavily regulated it can be, and there are cases where it has to be done with great care, but just the fact that some information was obtained by some reverse engineering process doesn't make it immediately illegal. For example, writing unit tests to an API and then reimplement the API pass the same unit tests is a form of reverse engineering, but still it's an everyday practice in software engineering. And it has to be, otherwise most software would be illegal, really, especially in OOP where your class just extends the functionality of an object it inherits, and in overriden methods it has to reproduce some functionality... And so on.

Looking at Delphi source code (or it's RTL's source code) and then implement similar feature *by the same person* in FPC would be illegal. But looking at the source cose is not reverse engineering, is it?

So such accusations without any evidence is spreading

Reply by email

Sven Barth
to Santiago A.: Well, I think it's evident that Freepascal and lazarus tries to be delphi compatible,…
"Santiago A." wrote
Nevertheless, as someone has pointed, Embarcadero hasn't make any legal

movement. Maybe because it thinks there is no legal base; or maybe because it doesn't care that much and thinks it's not worth the bad publicity.

Not to mention that for a little while Embarcadero even used Free Pascal for their iOS support before they had their own compiler.

Regards,
Sven

Reply by email

Snorkl e

Maybe it's Niklaus Wirth, could be he's broke and decided it's time to collect license fees like Microsoft does with Android LOL just kidding.

On Jan 2, 2017 4:07 PM, "Sven Barth" wrote:

"Santiago A." wrote
Nevertheless, as someone has pointed, Embarcadero hasn't make any legal

movement. Maybe because it thinks there is no legal base; or maybe because it doesn't care that much and thinks it's not worth the bad publicity.

Not to mention that for a little while Embarcadero even used Free Pascal for their iOS support before they had their own compiler.

Regards,
Sven

Reply by email

Sven Barth
"Dmitriy Pomerantsev" wrote
Doesn't matter since FPC license allowing that.

You don't get the point, do you? I don't think they'd use FPC themselves if they'd sue it the next time around.

Regards,
Sven

Reply by email

Snorkl e
to Sven Barth

They might with a change of ownership, who knows these days, but the fact they did use it in the past would not look good for any litigation from some bottom feeder.

"Sven Barth" wrote 14 lines
Am 03.01.2017 19:02 schrieb "Dmitriy Pomerantsev" : > > Doesn't matter since FPC license allowing that. You don't get the point, do you? I don't think they'd use FPC themselves if they'd sue it the next time around. Regards, Sven _______________________________________________ fpc-pascal maillist - http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply by email

geneb
to Snorkl e
Snorkl e wrote
They might with a change of ownership, who knows these days, but the fact they did use it in the past would not look good for any litigation from some bottom feeder.

It's called "estoppel".

g.

Proud owner of F-15C 80-0007 http://www.f15sim.com - The only one of its kind. http://www.diy-cockpits.org/coll - Go Collimated or Go Home. Some people collect things for a hobby. Geeks collect hobbies. ScarletDME - The red hot Data Management Environment A Multi-Value database for the masses, not the classes. http://scarlet.deltasoft.com - Get it _today_!

Reply by email

Graeme Geldenhuys
to Sven Barth: movement. Maybe because it thinks there is no legal base; or maybe because it doesn't…
Sven Barth wrote
Not to mention that for a little while Embarcadero even used Free Pascal for their iOS support before they had their own compiler.

Exactly, and that probably makes all arguments moot in a court of law.

Nevertheless, we all know FPC and Lazarus take copyrighted code very serious, and prevents using it when found. The FPC project even includes a utility to make such code comparisons and reports the results. Years ago that utility was used to find and clean room implement a few copyrighted functions (or function implementations that was too close for comfort).

I also know from first hand experience that Embarcadero has been made aware of CodeTyphon's copying and distribution of FireMonkey (called Orca or something in CodeTyphon). But then again, FPC and Lazarus has nothing to do with CodeTyphon - so no need to discuss that further here.

Regards,
Graeme

fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp

Reply by email

Lars
to Mr Bee: There's someone accusing that Free Pascal (and some parts of Lazarus) is just a reverse…
Mr Bee wrote 7 lines
Hi all, There's someone accusing that Free Pascal (and some parts of Lazarus) is just a reverse engineering of Delphi. Even he said some codes of FPC/Laz are taken from Delphi (and Kylix). This is a serious allegation. I know that isn't true. Or is it? ;) Can anybody elaborate on this? I'd like to debunk the allegation but I don't know where to start and the evidence for it. Thank you.

Well considering the Borland/Codegear/Embarcadero has actually used FPC in one of their products they likely have the same allegations, just no one makes a fuss about it the other way around...

Reply by email

Lars
to Snorkl e: They might with a change of ownership, who knows these days, but the fact they did use…
Snorkl e wrote
They might with a change of ownership, who knows these days, but the fact they did use it in the past would not look good for any litigation from some bottom feeder.

The fact that they use FPC, means they likely reverse engineer FPC and apply their own hacks to their own compiler for multiple targets based on FPC engineering..

i.e. they don't even need to reverse engineer FPC, they just have to dip their eyes into the source code... And woops, there comes the problem: Delphi is likely stealing from FPC too as their eyes have seen what cannot be undone... they've peered into the FPC source code guaranteed.. I bet.

i.e. when they decide to target multiple platforms they have a nice demo to look into which already does it: fpc.

Now I am not trying to insinuate anything here, but "it goes both ways"

As Michael Van C. once said, why isn't Borland also practicing clean room? who is to say, since their development model is closed source, that their compiler has no violations in it, that rip from FPC? With FPC the code is open so you can tell. With delphi, it's closed development, so you cannot peer into their compiler sources and check to see if there are violations.

Reply by email

Lars
to Graeme Geldenhuys
Graeme Geldenhuys wrote 9 lines
On 2017-01-06 15:49, Lars wrote: > What does this product allow? > CodeTyphon distributes the source code of Embarcadero's FireMonkey predecessor (previously known as VG-Scene or something), but rebranded as "Orca". Neither FireMonkey or its predecessor is/was open source.

LOL..

Okay but what's the point of it? to be able to compile firemonkey like applications without buying delphi?

Reply by email

Lars
to Graeme Geldenhuys
Graeme Geldenhuys wrote 8 lines
On 2017-01-06 16:14, Lars wrote: > Okay but what's the point of it? to be able to compile firemonkey like > applications without buying delphi? Yes, you can build hardware accelerated GUI applications using that toolkit.

Okay. hold on a second. GUI applications, need hardware acceleration... since when? I guess this could be useful for animation based apps that need to be zippy fast...?

AFAICT, gui applications, ever since windows 3.1 days on 33mhz computers, were fast enough and needed no acceleration for basic things like buttons, text, etc.

So does the hardware acceleration come in handy when you need to animate something and make the gui app almost like a video? Scientific demos of particles bouncing around?

What are the use cases for this?

Reply by email

Tomas Hajny

Hello,

Could be potential further discussion about FireMonkey moved to fpc-other, please? I don't think that it's still related to FPC...

Thank you

Tomas
(one of FPC mailing list moderators)

Earlier message 30 lines
---------------------------- Original Message ---------------------------- Subject: Re: [fpc-pascal] FPC clean room project From: "Lars" Date: Fri, January 6, 2017 17:27 To: "FPC-Pascal users discussions" On Fri, January 6, 2017 9:21 am, Graeme Geldenhuys wrote: > On 2017-01-06 16:14, Lars wrote: > >> Okay but what's the point of it? to be able to compile firemonkey like >> applications without buying delphi? > > Yes, you can build hardware accelerated GUI applications using that > toolkit. > Okay. hold on a second. GUI applications, need hardware acceleration... since when? I guess this could be useful for animation based apps that need to be zippy fast...? AFAICT, gui applications, ever since windows 3.1 days on 33mhz computers, were fast enough and needed no acceleration for basic things like buttons, text, etc. So does the hardware acceleration come in handy when you need to animate something and make the gui app almost like a video? Scientific demos of particles bouncing around? What are the use cases for this?

Reply by email

Sven Barth
to Lars: The fact that they use FPC, means they likely reverse engineer FPC and apply their own…
Lars wrote 24 lines
On Tue, January 3, 2017 6:10 pm, Snorkl e wrote: > They might with a change of ownership, who knows these days, but the > fact they did use it in the past would not look good for any litigation > from some bottom feeder. The fact that they use FPC, means they likely reverse engineer FPC and apply their own hacks to their own compiler for multiple targets based on FPC engineering.. i.e. they don't even need to reverse engineer FPC, they just have to dip their eyes into the source code... And woops, there comes the problem: Delphi is likely stealing from FPC too as their eyes have seen what cannot be undone... they've peered into the FPC source code guaranteed.. I bet. i.e. when they decide to target multiple platforms they have a nice demo to look into which already does it: fpc. Now I am not trying to insinuate anything here, but "it goes both ways" As Michael Van C. once said, why isn't Borland also practicing clean room? who is to say, since their development model is closed source, that their compiler has no violations in it, that rip from FPC? With FPC the code is open so you can tell. With delphi, it's closed development, so you cannot peer into their compiler sources and check to see if there are violations.

Ehm... Delphi's compiler is written in C++, not Delphi as far as we know. Also their NEXTGEN compiler is utilizing LLVM, something we won't purely do.

Regards,
Sven

Reply by email

Lars
to Sven Barth: Ehm... Delphi's compiler is written in C++, not Delphi as far as we know. Also their…
Sven Barth wrote
Ehm... Delphi's compiler is written in C++, not Delphi as far as we know. Also their NEXTGEN compiler is utilizing LLVM, something we won't purely do.

Yes the exe signature was c/c++

That does not forgive copyright just because different language is used..

Any fpc code can be easily converted to C code

In fact that hides copyright violations a bit as it masks them by converting to a new language.

But this is just insinuating..

Reply by email

Lars
to Tomas Hajny: Could be potential further discussion about FireMonkey moved to fpc-other, please? I…
Tomas Hajny wrote 12 lines
Hello, Could be potential further discussion about FireMonkey moved to fpc-other, please? I don't think that it's still related to FPC... Thank you Tomas (one of FPC mailing list moderators)

Fine, let me put it this way to keep it 100 percent on topic.

If FPC was able to create hardware accelerated GUI apps (nothing to do with firemonkey... just in general if it was able to), is this useful?

How so?

What advantages do hardware accelerated GUI apps offer?

The way I see it is 99 percent of all GUI apps are fast enough back in windows 3.1 days or the early days of X11 on bsd/linux. There needs no "acceleration".

However, on the other hand: animations, videos, scientific... maybe?

If FPC was able to target hardware accelerated GUI (or if it already does) then what advantages would this offer people? There must be some reason for hardware accelerated GUI apps.

My buttons click fast enough without any accelerations on Windows 3.1... on a 33mhz computer...

But maybe it's to do with flash style animations, video game like interfaces for apps... 3D apps?

Reply by email

Marco van de Voort
to Lars

In our previous episode, Lars said:

Show quoted text 6 lines
> Could be potential further discussion about FireMonkey moved to > fpc-other, please? I don't think that it's still related to FPC... Fine, let me put it this way to keep it 100 percent on topic. If FPC was able to create hardware accelerated GUI apps (nothing to do with firemonkey... just in general if it was able to), is this useful?

Well, first, most GUI applications are already accelerated. So even if the application has no explicit knowledge about it, it might use the GPU.

What advantages do hardware accelerated GUI apps offer?

Aside from that, as an example, I implemented OpenGL support in my (work) application simply to have smooth scrolling of large images without blocking the main thread. Low framerates (5-10, higher are rate limited), but large images. (2Mpx mono till 25mpx RGBA)

FM and some other seem to stress effects and control animations though, like the trend in GUI was before it got win8-10 flat again. Probably that is because it is easier to fixate in the API and requires less enduser ability and effort.

If FPC was able to target hardware accelerated GUI (or if it already does) then what advantages would this offer people? There must be some reason for hardware accelerated GUI apps.

The main reason is to have a widget set that feeds the "real" gui system in a compositive way. IOW if the screen needs to be redrawn, the OS or X environment must be able to render the next scene without additional CPU cycles.

This is important on the desktop (which is compositing since Windows Vista, OS X since (afaik) 10.4), but even more so on mobile, since it simply means that rendering the next image will run on the lower clocked, parallel GPU rather than the higher clock, not so parallel CPU.

But that is less about actually doing stuff in the GPU but having a GPU friendly model/abstraction. You can do old school rendering as long as you pass it to the OS/XServer in a way it can composite it easily without additional events, read: a modern API. If the desktop then creates a new arrangement of windows it doesn't have to call back into the application to render the image again (like e.g. Windows GDI does).

Of course anybody designing any new widgetset will stress this fact, just like anything nowadays should tick CSS and javascript bullets.

But all that requires actual OS/Xserver support.

But maybe it's to do with flash style animations, video game like interfaces for apps... 3D apps?

I think the core desirable principle is to support compositing, as in no application involvement to render the same image, but slightly stretched (e.g. resizing a window) etc. You can of course extend this slightly to animation. Instead of the desktop calling the application to render every new sequence in the application, you pass the animations frames at once, and leave it to the desktop to render it optimally.

This leads too general more responsive GUI, with lower CPU usage (mobile again), even if the elements are reletively hires and complex.

Of course the marketeers want to sell you some hyped up vision of it, but the core concept is ok.

Reply by email

Mark Morgan Lloyd
to Lars: Yes the exe signature was c/c++ That does not forgive copyright just because different…
Lars wrote 15 lines
On Fri, January 6, 2017 12:51 pm, Sven Barth wrote: > Ehm... Delphi's compiler is written in C++, not Delphi as far as we > know. Also their NEXTGEN compiler is utilizing LLVM, something we won't > purely do. Yes the exe signature was c/c++ That does not forgive copyright just because different language is used.. Any fpc code can be easily converted to C code In fact that hides copyright violations a bit as it masks them by converting to a new language.

I don't think that copyright would survive translation. A patent of the algorithms would, but that is opening a whole new can of worms.

Whoever owns Delphi these days might be able to claim a "look and feel" violation, but ultimately Delphi used ideas which had previously been demonstrated viable by MS VB, even if Borland's implementation was vastly improved.

So I don't think we need to give anonymous trolls a platform.

Mark Morgan Lloyd markMLl .AT. telemetry.co .DOT. uk [Opinions above are the author's, not those of his employers or colleagues]

Reply by email