Replies: 10 comments 26 replies
-
If you can get the FSF to consider the inclusion of the cm3 compiler in GCC, I don't know who would resist. The libraries are still released under their original copyrights here, so it would really only affect the compiler. The problem is, Richard Stallman was dead set against including the Modula-3 front-end way back when. He took issue with the way the SRC folks had architected the compiler around gcc and blocked the inclusion. This was over 20 years ago and maybe times have changed, and whoever controls GCC might be open to it today. The issue is still there, though, that you can't just take DEC's code and re-release it under GPL. You still need a release from whoever owns it today to do so. Or alternatively, write a compiler front-end from scratch. P.S. The reason RMS was against Modula-3 was because the architecture of our compiler is "too clean"---at least as I've heard the story. CM3 defines an intermediate language that is targeted by the CM3 front end and gets code-generated to it by cm3cg. cm3cg is based on GCC, so it's GPL. CM3's front-end (m3build/cm3) is not subject to GPL (FSF hates/hated this). Also, the Modula-3 IL would be sufficient to implement many other programming languages, and that means you could write a proprietary front-end (for some new programming language XL) in front of the GPL'd Modula-3 cm3cg and sell a proprietary compiler XLc that just requires you to download the GPL'd gcc+m3 compiler to use as your back-end. Someone please fill us in if I forgot any details here. |
Beta Was this translation helpful? Give feedback.
-
Not possible for different reasons, mostly licensing.
A very old story from DEC SRC times. I probably do not remember it all, but FSF demanded all source code of compiler to be GPLed and it was unacceptable for DEC. Bill Kalsow found a roundabout, m3cc was born. But then GCC started to change their IR spec… thus “when will m3cc work iwth GCC xx?”, “what with m3gdb” etc.
Best forget this. Freedom has many flavours but FSF accepts only theirs own.
… On 29. 12. 2022., at 19:17, tn1997tn ***@***.***> wrote:
For the build system, quake, it could be in any license you want. It's because you integrated the build system into the frontend (m3build/cm3) that caused a mess.
—
Reply to this email directly, view it on GitHub <#1128 (reply in thread)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AA5ZBWHPTC5NN3PCLX7JWUTWPXIUNANCNFSM6AAAAAATL3S3DI>.
You are receiving this because you are subscribed to this thread.
|
Beta Was this translation helpful? Give feedback.
-
Being right is in the eye of beholder, obviously.
Companies do not have such freedom and companies like to keep right to make money out of their investments, even in ways (oh, blasphemy!!!) not approved by RMS.
IMO, this was exercise of RMS's pettyiness. Changes in IR practically killed Modula-3 potential and while FSF was fighting this particular RMS’s war, LLVM came to wide open market once dominated by GCC. LLVM opened and standardized their IR, opened all things GCC was using to shanghai developers…
In the end, RMS did good thing (irony alert!) - he enabled demonopolization of free compiler offering. In fast, stupid thing they did but it is probably only me thinking that :).
… On 30. 12. 2022., at 14:46, tn1997tn ***@***.***> wrote:
The FSF was right. If you want to be under their umbrella, then you have to follow their rules. Defining an intermediate language and have the GCC frontend to process input in this intermediate language instead, so you are able to keep the frontend that process Modula-3 code into this intermediate language not in GPL. This is cheating. Don't try to be clever. The FSF is not stupid. I know CM3 is created long before LLVM, but LLVM is a perfect match for you if you want to play this intermediate language game.
—
Reply to this email directly, view it on GitHub <#1128 (reply in thread)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AA5ZBWCFZTPAVEYHMMLFMUDWP3RT7ANCNFSM6AAAAAATL3S3DI>.
You are receiving this because you commented.
|
Beta Was this translation helpful? Give feedback.
-
On 12/29/22 12:14, tn1997tn wrote:
Of course, everything must be in GPL. From what you presented I think you are cheating on the GPL (GPL violation). Your frontend is a GPL derived work,
I believe nothing in the front end or the RTS is GPL licensed. Nor is any of it
linked into the GCC-derived code generator.
… so it must be in GPL. Defining an intermediate language and have the GCC frontend to process input in this intermediate language instead, so you are able to keep the frontend that process Modula-3 code into this intermediate language not in GPL. It's definitely cheating. This architecture is not "too clean", it's cheating. That intermediate language must be abolished, two frontends merged into only one frontend that process Modula-3 code and use GCC's backend to generate binaries. For the build system, quake, it could be in any license you want. It's because you integrated the build system into the frontend that caused such a mess. This is a problem you created for yourselves and I think the FSF was right.
p/s: I know CM3 is created long before LLVM, but LLVM is a perfect match for you if you want to play this intermediate language game.
—
Reply to this email directly, view it on GitHub <#1128 (reply in thread)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/ABSVZNFDVUIESF47LWFVVULWPXIG3ANCNFSM6AAAAAATL3S3DI>.
You are receiving this because you are subscribed to this thread.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
My mistake to even start talking to a guy using “cheat” and similar.
IR was there. SRC people created inerface to it, an “assembly” if you like.
Thank you for your participation. Now direct your energy into cm3.
… On 31. 12. 2022., at 08:55, tn1997tn ***@***.***> wrote:
You cheat by creating an intermediate language. People not stupid. They see your cheat.
—
Reply to this email directly, view it on GitHub <#1128 (reply in thread)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AA5ZBWB333ONSQAJAKR4BZ3WP7RI7ANCNFSM6AAAAAATL3S3DI>.
You are receiving this because you commented.
|
Beta Was this translation helpful? Give feedback.
-
On 12/31/22 08:02, Mika Nyström wrote:
I think you are missing the point a bit here. The issue is not really about Modula-3.
The GPL (of that era too) is very specific about what you can and can't do with their code without infecting your own code with GPL. What you can't do is /link/ to GPL code and then not live with the fact that your linked code becomes GPL.
SRC M3, and PM3, and CM3, don't do that. They don't violate the GPL. End of story.
What you have to remember is that the SRC M3 license was developed by some corporate lawyers in the mid-90s, long before corporate America had a real understanding of how to engage with free software. As a result, the license is "oddball". That is why I think it would be effective to get it re-released as MIT or BSD---because I think if DEC had released the code in today's world, it /would have been/ under an MIT or BSD type license.
Now if we continue the hypothetical that CM3 were released under MIT or BSD license (it's not, so this is hypothetical for the moment at least), there is nothing stopping you (or the FSF, or anyone else) from re-releasing the CM3 code under the GPL. MIT and University of California licenses are in that sense "compatible" with the GPL (and the FSF recognizes this).
But you still have a problem, and this is where RMS's posturing comes in. The architecture of CM3 is such that a text-based IL from m3front, which is not GPL (in my hypothetical it is say MIT). The back-end which /is/ GPL takes the text-based IL and compiles it to object code. You can now re-release GM3 where all of it is GPL. Fine! But.... another actor can now come along, let's say a company called Macrohard, they make a front-end for another language, Macrohard C++, and their compiler mhc++ is naturally an expensive commercial product, which produces GM3 IL as /its/ output. You've effectively allowed Macrohard to build a proprietary compiler using GCC as its back end. That I think is what upset RMS about SRC's approach to their M3 compiler.
Hmm, I didn''t realize this. So if I understand correctly, FSF's objection is not so
much about the SRC M3 front end not being GPL'd, but rather SRC's creation of cm3cg,
automatically GPL'd because it's derived from FSF's own GCC, athus providing an opening
for other, fully proprietary, front ends, using SRC's IR. Of course, such folks could
also create their own cm3cg, it would just be a bit more work.
Of course Macrohard (and CM3) can also sidestep all this by producing C or C++ output and compiling that to object code using gcc or g++... which is the route Jay has taken with his work. That also sidesteps the GPL, and it's really not something FSF can do anything about since they do claim to distribute a conforming C/C++ compiler.
And thus the opening was already there anyway, if with a less convenient IR.
Do I correctly understand, also, that GCC's IR is in-memory data structure, not
a sequential file? Which to be used in such a way would have to be linked in
to GCC, thus GPL-infected.
I don't know first hand, but I have heard the criticism that FSF intentionally
avoided documenting GCC's IR, to make it more work to splice on front ends.
… I think you also have to understand a bit about how big American corporations work, as dragisha said. But I don't think it's necessarily as simple as "they try to make money off their investments." There are reasons for a company to distribute software for free in order to make money. But also, there's a much simpler reason a lot of open-source software is produced within corporations: We who work for the corporations also have goals and motivations, and it's well understood that our personal goals and motivations are /not/ entirely aligned with the corporations. I, as an engineer, may well want to spend some time and effort to write code to give away.
But whether it is my own personal motivation or my employer's strategic plans for some reason that makes open-source happen in my corporation, the one thing most big companies will /not/ do is subject themselves to unnecessary cost or risk. GPL is absolutely hated in the corporate world for this reason: not that it forces us to give software away (we do that all the time anyhow), but that it forces us to build a distribution infrastructure for source code that tracks all the specific versions used in specific products (we would have to know precisely what version of everything was used to build a specific product), OR ELSE, (or ALSO...) we expose ourselves to legal risk for .. .giving something away....! Legal just hates that. I can sit in my little silo in the company, distribute some code under GPL that no one else knows about, then the whole company gets sued for using that software in some inappropriate way... meanwhile I and everyone else that knows anything about the
software, the product, or anything related, has long since moved on, new projects, maybe left the company, retired, etc etc etc. GPL is seen as a black hole--it may be a bit exaggerated but I think there is some justification to it, since the intent of GPL is exactly to set up that sort of dynamic. You may get a corporation that engages with GPL on a very important product, but to do it for some engineer's or some small team's side project or even main project... not gonna happen. We'll just distribute our code MIT or BSD and let someone else repackage it under GPL if that's really important. In my company, we distribute products that need GPL code to work without that code and let people download it from the Internet.
(Note I am stating my personal opinion here, these are not official statements of my employer. I am just an engineer.)
—
Reply to this email directly, view it on GitHub <#1128 (reply in thread)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/ABSVZNHYKTYM6AVDIFRFCOLWQA4I5ANCNFSM6AAAAAATL3S3DI>.
You are receiving this because you commented.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
On 12/29/22 07:15, Mika Nyström wrote:
If you can get the FSF to consider the inclusion of the cm3 compiler in GCC, I don't know who would resist.
The libraries are still released under their original copyrights here, so it would really only affect the compiler.
I didn't realize this. So reimplementing without the licensing problems would entail
only doing the front end, not the RTS?
… The problem is, Richard Stallman was dead set against including the Modula-3 front-end way back when. He took issue with the way the SRC folks had architected the compiler around gcc and blocked the inclusion. This was over 20 years ago and maybe times have changed, and whoever controls GCC might be open to it today.
The issue is still there, though, that you can't just take DEC's code and re-release it under GPL. You still need a release from whoever owns it today to do so. Or alternatively, write a compiler front-end from scratch.
P.S. The reason RMS was against Modula-3 was because the architecture of our compiler is "too clean"---at least as I've heard the story. CM3 defines an intermediate language that is targeted by the CM3 front end and gets code-generated to it by cm3cg. cm3cg is based on GCC, so it's GPL. CM3's front-end (m3build/cm3) is not subject to GPL (FSF hates/hated this). Also, the Modula-3 IL would be sufficient to implement many other programming languages, and that means you could write a proprietary front-end (for some new programming language XL) in front of the GPL'd Modula-3 cm3cg and sell a proprietary compiler XLc that just requires you to download the GPL'd gcc+m3 compiler to use as your back-end. Someone please fill us in if I forgot any details here.
—
Reply to this email directly, view it on GitHub <#1128 (comment)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/ABSVZNE7JMGT2SG2IE5NLG3WPWFITANCNFSM6AAAAAATL3S3DI>.
You are receiving this because you are subscribed to this thread.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
I do not think they bought ownership of SRC Modula-3. It had a lot of various DEC work in it, bought by Compaq which was bought by (very alive) HP. They had rights to continue work, publish etc while respecting existing licenses… Just like pm3 did, or anybody doing derivative work. Those BSD guys, for example.
cm3’s stake there is code they rewrote/added. Someone may try to identify it. Personally, I do not see practical value in GPLing Modula-3. Just look how much time Gaius was pushing GNU Modula-2, and think about time and work needed.
LLVM, C backend… Maybe GNU Modula-2 backend...
… On 2. 1. 2023., at 04:40, peter mckinna ***@***.***> wrote:
Who exactly owns the IP? I thought Critical Mass bought it all from DEC or their successors Compaq. But since CM is defunct who
obtained the copyright? The creditors of the company? Or maybe the state. There is a vague concept of unknown ownership in
English law not well tested in US courts. For individuals copyright extends from the death of the creator for 70 years or so. For companies what is the law? It's all a bit murky.
—
Reply to this email directly, view it on GitHub <#1128 (reply in thread)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AA5ZBWEH3VVV6CL4EMEXE6DWQJE2RANCNFSM6AAAAAATL3S3DI>.
You are receiving this because you commented.
|
Beta Was this translation helpful? Give feedback.
-
Given what you said, who will ever want to use CM3 I wonder? With the current ambiguous licensing, using CM3 is pretty much shooting yourself in the foot. I know another project in a somewhat similar situation, but at least they have some progresses albeit very slow: |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
This is old news but GNU Modula-2 was merged into GCC-13:
https://www.phoronix.com/news/Module-2-GCC-Merged
This make me wonder if it's better for Modula-3 to be just become GNU Modula-3 and merged into GCC? Being part of GCC means your code will be GPL licensed and will be copyrighted by the FSF (an unfortunately side effect though). Any parts of the code not GPL compatible will be removed and reimplemented. This will clear any problems with the current ambiguous licensing of many parts of the code, and will very likely help the adoption of the Modula-3 language.
Beta Was this translation helpful? Give feedback.
All reactions