GNU Compiler for Java: Difference between revisions

Content deleted Content added
m Task 70: Update syntaxhighlight tags - remove use of deprecated <source> tags
Monkbot (talk | contribs)
m Task 18 (cosmetic): eval 13 templates: del empty params (2×); hyphenate params (7×);
Line 16:
| website = {{URL|https://gcc.gnu.org}}
}}
The '''GNU Compiler for Java''' ('''GCJ''') is a [[Free software|free]] [[compiler]] for the [[Java (programming language)|Java programming language]]. It was part of the [[GNU Compiler Collection]] for over ten years but as of 2017 it is no longer maintained and will not be part of future releases.<ref>{{cite web |url=https://gcc.gnu.org/java/ |title=Archived copy |accessdateaccess-date=2010-04-22 |url-status=dead |archiveurlarchive-url=https://web.archive.org/web/20070509055923/http://gcc.gnu.org/java/ |archivedatearchive-date=2007-05-09 }}</ref><ref>{{cite book |last=Campbell |first=Bill |date=2013 |title=Introduction to Compiler Construction in a Java World |url=https://books.google.com/books?id=-b8WjLY2eKEC&pg=PA277 |___location= |publisher=CRC Press Taylor & Francis Group |isbn=978-1-4398-6088-5 |accessdateaccess-date=2014-02-06}}</ref>
 
GCJ compiles Java [[source code]] to [[Java Virtual Machine]] [[bytecode]] or to [[machine code]] for a number of [[CPU architecture]]s. It could also compile [[Class (file format)|class files]] and whole [[JAR (file format)|JARs]] that contain bytecode into machine code.<ref>https://www.linuxjournal.com/article/4860</ref><ref>http://freecode.com/projects/gcj</ref>
Line 22:
==History==
The GCJ runtime-libraries original source is from [[GNU Classpath]] project, but there is a code difference between the <code>libgcj</code> libraries. GCJ 4.3 uses the [[Eclipse (software)|Eclipse]] Compiler for Java as a front-end.<ref>
{{cite web | title = gcj to use Eclipse compiler as a front end | url = https://gcc.gnu.org/java/ | date = 2007-01-08 | accessdateaccess-date = 2007-05-20 | url-status = dead | archiveurlarchive-url = https://web.archive.org/web/20070509055923/http://gcc.gnu.org/java/ | archivedatearchive-date = 2007-05-09 }}
</ref>
 
In 2007, a lot of work was done to implement support for Java's two graphical [[application programming interface|API]]s in [[GNU Classpath]]: [[Abstract Window Toolkit|AWT]] and [[Swing (Java)|Swing]]. Software support for [[Abstract Window Toolkit|AWT]] is still in development.<!--Note, "Optional SWT support" also available for micro-libgcj (that is a subset - not maintained, not sure if this SWT support also applies to GCJ)--> "Once AWT support is working then Swing support can be considered. There is at least one free-software partial implementations of [[Swing Application Framework|Swing]] that may be usable.".<ref>[https://gcc.gnu.org/java/faq.html#2_4 The GCJ FAQ]</ref> The GNU CLASSPATH was never completed to even Java 1.2 status and now appears to have been abandoned completely.
 
<!--Not sure if this non-development for years contradicts above "AWT is still in development" as that is not a compiler (but would appear in "News"?)-->As of 2015, there were no new developments announced from GCJ and the product was in [[maintenance mode]], with open-source Java toolchain development mostly happening within [[OpenJDK]].<ref>[https://www.phoronix.com/scan.php?page=news_item&px=MTUwOTA GCC Looks To Turn Off Java, Replace With Go Or ADA]</ref> GCJ was removed from the GCC [[Trunk (software)|trunk]] on September 30, 2016.<ref>{{cite web|url=https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=240661|title=[gcc] Revision 240661|date=September 30, 2016|author=Andrew Haley}}</ref><ref>{{Cite web|url=https://tromey.com/blog/?p=911|title=The Deletion of gcj|last=Tromey|first=Tom|date=October 2, 2016|website=The Cliffs of Inanity|publisher=|access-date=October 3, 2016}}</ref> Announcement of its removal was made with the release of the GCC 7.1, which does not contain it.<ref>{{cite web|url=https://gcc.gnu.org/gcc-7/changes.html|title=GCC 7 Release Series: Changes, New Features, and Fixes|access-date=May 9, 2017}}</ref> GCJ remains part of GCC 6.
 
==Performance==