NEWS 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622
  1. *** Changes in GCC 4.1:
  2. Core library (libgcj) updates based on GNU Classpath 0.15 - 0.19+
  3. - Networking
  4. * The java.net.HttpURLConnection implementation no longer buffers the
  5. entire response body in memory. This means that response bodies
  6. larger than available memory can now be handled.
  7. - (N)IO
  8. * NIO FileChannel.map implementation, fast bulk put implementation for
  9. DirectByteBuffer (speeds up this method 10x).
  10. * FileChannel.lock() and FileChannel.force() implemented.
  11. - XML
  12. * gnu.xml fix for nodes created outside a namespace context.
  13. * Add support for output indenting and cdata-section-elements output
  14. instruction in xml.transform.
  15. * xml.xpath corrections for cases where elements/attributes might have
  16. been created in non-namespace-aware mode. Corrections to handling of
  17. XSL variables and minor conformance updates.
  18. - AWT
  19. * Qt4 configury switches for OS-X. Additional to the --enable-qt-peer, OS-X
  20. users with a Qt4 installation can build the qt-peers with the argument
  21. --with-qt4dir=<Qt4-installation-dir>.
  22. * GNU JAWT implementation, the AWT Native Interface, which allows direct
  23. access to native screen resources from within a Canvas's paint method.
  24. GNU Classpath Examples comes with a Demo,
  25. see libjava/classpath/examples/README.
  26. * awt.datatransfer updated to 1.5 with supports for FlavorEvents.
  27. The gtk+ awt peers now allow copy/paste of text, images, uris/files
  28. and serialized objects with other applications and tracking
  29. clipboard change events with gtk+ 2.6 (for gtk+ 2.4 only text and
  30. serialized objects are supported). A GNU Classpath Examples
  31. datatransfer Demo was added to show the new functionality.
  32. * Split gtk+ awt peers event handling in two threads and improve gdk lock
  33. handling (solves several AWT lock ups).
  34. * Speed up awt Image loading.
  35. * Better GTK scrollbar peer implementation when using GTK >= 2.6.
  36. * Handle image loading errors correctly for gdkpixbuf and MediaTracker.
  37. * Better handle GDK lock. Properly prefix gtkpeer native functions (cp_gtk).
  38. * GdkGraphics2D has been updated to use Cairo 0.5.x APIs.
  39. * BufferedImage and GtkImage rewrites. All image drawing operations
  40. should now work correctly (flipping requires gtk+ >= 2.6)
  41. * Future Graphics2D, Image and Text work is documented at:
  42. http://developer.classpath.org/mediation/ClasspathGraphicsImagesText
  43. * When gtk+ 2.6 or higher is installed the default log handler will produce
  44. stack traces whenever a WARNING, CRITICAL or ERROR message is produced.
  45. - Free Swing
  46. * The Swing RepaintManager has been reworked for more efficient painting,
  47. especially for large GUIs.
  48. * The Swing layout manager OverlayLayout has been implemented, the BoxLayout
  49. has been rewritten to make use of the SizeRequirements utility class and
  50. caching for more efficient layout.
  51. * Improved accessibility support for Swing.
  52. * Significant progress has been made in the implementation of the
  53. javax.swing.plaf.metal.* package, with most UI delegates in a working state
  54. now. Please test this with your own applications and provide feedback that
  55. will help us to improve this package.
  56. * The GUI demo (gnu.classpath.examples.swing.Demo) has been extended to
  57. highlight various features in our free-swing implementation. And includes
  58. a look and feel switcher (Metal default, Ocean or GNU).
  59. * The javax.swing.plaf.multi.* package is now implemented.
  60. * Editing and several key actions for JTree and JTable were implemented.
  61. * Lots of icons and look and feel improvements for Free Swing basic and
  62. metal themes were added. Try running the GNU Classpath Swing Demo in
  63. examples (gnu.classpath.examples.swing.Demo) with:
  64. -Dswing.defaultlaf=javax.swing.plaf.basic.BasicLookAndFeel
  65. -Dswing.defaultlaf=javax.swing.plaf.metal.MetalLookAndFeel
  66. * Start of styled text capabilites for java.swing.text.
  67. * DefaultMutableTreeNode preorder, postorder, depthFirst and breadthFirst
  68. traversal enumerations implemented.
  69. * JInternalFrame colors and titlebar draw properly.
  70. * JTree is working up to par (icons, selection and keyboard traversal).
  71. * JMenus were made more compatible in visual and programmatic behavior.
  72. * JTable changeSelection and multiple selections implemented.
  73. * JButton and JToggleButton change states work properly now.
  74. * JFileChooser fixes.
  75. * revalidate and repaint fixes which make Free Swing much more responsive.
  76. * MetalIconFactory implemented.
  77. * Free Swing Top-Level Compatibility. JFrame, JDialog, JApplet,
  78. JInternalFrame, and JWindow are now 1.5 compatible in the sense that you
  79. can call add() and setLayout() directly on them, which will have the same
  80. effect as calling getContentPane().add() and getContentPane().setLayout().
  81. * The JTree interface has been completed. JTrees now recognizes mouse clicks
  82. and selections work, but the visual implementation is not yet complete.
  83. Work on expansion and collapsing of the tree nodes is being implemented.
  84. * BoxLayout works properly now.
  85. * Fixed GrayFilter to actually work.
  86. * Metal SplitPane implemented.
  87. * Lots of free swing text and editor stuff work now.
  88. - Free RMI and Corba
  89. * The Andrew Watson, Vice President and Technical Director of the Object
  90. Management Group, has officially assigned us 20 bit Vendor Minor Code Id:
  91. 0x47430 ("GC") that will mark remote Classpath - specific system exceptions.
  92. Obtaining the VMCID means that GNU Classpath now is a recogniseable type of
  93. node in a highly interoperable CORBA world.
  94. * Classpath now includes the first working draft to support the RMI over
  95. IIOP protocol. The current implementation is capable for remote invocations,
  96. transferring various Serializables and Externalizables via RMI-IIOP protocol.
  97. It can flatten graphs and, at least for the simple cases, is interoperable
  98. with Sun's jdk 1.5.
  99. * org.omg.PortableInterceptor and related functionality in other packages
  100. is now implemented:
  101. - The sever and client interceptors work as required since 1.4.
  102. - The IOR interceptor works as needed for 1.5.
  103. * The org.omg.DynamicAny package is completed and passes the prepared tests.
  104. * The Portable Object Adapter should now support the output of the
  105. recent IDL to java compilers. These compilers now generate servants and
  106. not CORBA objects as before, making the output depended on the existing
  107. POA implementation. Completing POA means that such code can already be
  108. tried to run on Classpath. Our POA is tested for the following usager
  109. scenarios:
  110. - POA converts servant to the CORBA object.
  111. - Servant provides to the CORBA object.
  112. - POA activates new CORBA object with the given Object Id (byte array)
  113. that is later accessible for the servant.
  114. - During the first call, the ServantActivator provides servant for this
  115. and all subsequent calls on the current object.
  116. - During each call, the ServantLocator provides servant for this call
  117. only.
  118. - ServantLocator or ServantActivator forwards call to another server.
  119. - POA has a single servant, responsible for all objects.
  120. - POA has a default servant, but some objects are explicitly connected
  121. to they specific servants.
  122. The POA is verified using tests from the former cost.omg.org.
  123. * The CORBA implementation is now a working prototype that should support
  124. features up till 1.3 inclusive.
  125. We would invite groups writing CORBA dependent applications to
  126. try Classpath implementation, reporting any possible bugs.
  127. The CORBA prototype is interoperable with Sun's implementation v 1.4,
  128. transferring object references, primitive types, narrow and wide
  129. strings, arrays, structures, trees, abstract interfaces and
  130. value types (feature of CORBA 2.3) between these two platforms.
  131. The remote exceptions are transferred and handled correctly.
  132. The stringified object references (IORs) from various sources are
  133. parsed as required.
  134. The transient (for current session) and permanent (till jre restart)
  135. redirections work.
  136. Both Little and Big Endian encoded messages are accepted.
  137. The implementation is verified using tests from the former cost.omg.org.
  138. The current release includes working examples (see the examples directory),
  139. demonstrating the client-server communication, using either CORBA Request
  140. or IDL-based stub (usually generated by a IDL to java compiler).
  141. These examples also show how to use the Classpath CORBA naming service.
  142. The IDL to java compiler is not yet written, but as our library must be
  143. compatible, it naturally accepts the output of other idlj implementations.
  144. - Misc
  145. * Updated TimeZone data against Olson tzdata2005l.
  146. * Make zip and jar UTF-8 "clean".
  147. * "native" code builds and compiles (warning free) on Darwin and Solaris.
  148. * java.util.logging.FileHandler now rotates files.
  149. * Start of a generic JDWP framework in gnu/classpath/jdwp.
  150. This is unfinished, but feedback (at classpath@gnu.org) from runtime
  151. hackers is greatly appreciated. Although most of the work is currently
  152. being done around gcj/gij we want this framework to be as VM neutral as
  153. possible. Early design is described in:
  154. http://gcc.gnu.org/ml/java/2005-05/msg00260.html
  155. * QT4 AWT peers, enable by giving configure --enable-qt-peer.
  156. Included, but not ready for production yet. They are explicitly
  157. disabled and not supported. But if you want to help with the
  158. development of these new features we are interested in feedback. You
  159. will have to explicitly enable them to try them out
  160. (and they will most likely contain bugs).
  161. * Documentation fixes all over the place.
  162. See http://developer.classpath.org/doc/
  163. Thanks! The following people helped with the above new features, bug
  164. reports, testing and integration:
  165. Aaron Luchko (JDWP updates and documentation fixes) Andreas Jaeger
  166. (mprec updates) Andreas Tobler (Darwin and Solaris testing and fixing,
  167. Qt4 support for Darwin/OSX, Graphics2D support, gtk+ updates.) Andrew
  168. Haley (Serialization and URLClassLoader fixes, gcj build speedups)
  169. Andrew John Hughes (Locale and net fixes, URI RFC2986 updates,
  170. Serialization fixes, Properties XML support and generic branch work,
  171. VMIntegration guide update) Andrew Overholt (File locking) Anthony
  172. Balkissoon (JList, Free Swing 1.5 updates and mouse event fixes, Lots
  173. of Free Swing work including JTable editing) Anthony Green (MIDI
  174. framework, ALSA and DSSI providers) Archie Cobbs (Build fixes, VM
  175. interface updates, URLClassLoader updates) Audrius Meskauskas (Lots of
  176. Free Corba, RMI and HTML work plus testing and documenting) Bastiaan
  177. Huisman (TimeZone bug fixing) Bryce McKinlay (RMI work) Casey Marshall
  178. (Crypto algorithm fixes, FileChannel lock, SystemLogger and
  179. FileHandler rotate impl, NIO FileChannel.map support, security and
  180. policy updates) Chris Burdess (Lots of gnu.xml and http protocol
  181. fixes, StAX and dom xml:id support) Christian Schlichtherle (Zip fixes
  182. and cleanups) Christian Thalinger (64-bit cleanups, Configuration and
  183. VM interface fixes and CACAO integration, fdlibm updates) Dalibor
  184. Topic (Better DEBUG support, Build cleanups and Kaffe integration. Qt4
  185. build infrastructure, SHA1PRNG and GdkPixbugDecoder updates) Daniel
  186. Bonniot (Serialization fixes) David Daney (BitSet bugfixes,
  187. HttpURLConnection rewrite and improvements) David Gilbert (Basic and
  188. Metal icon and plaf and lots of documenting, Lots of Free Swing and
  189. metal theme additions. MetalIconFactory implementation) David
  190. Lichteblau (JCL support library global/local reference cleanups) Gael
  191. Thomas (VMClassLoader boot packages support sugestions) Gary Benson
  192. (MessageFormat fixes) Goffredo Baroncelli (HTTPURLConnection fixes)
  193. Guilhem Lavaux (Configuration, thread and channel fixes and Kaffe
  194. integration. JCL native Pointer updates. Logger bug fixes) Ingo
  195. Proetel (Image, Logger and URLClassLoader updates) Ito Kazumitsu
  196. (NetworkInterfaces implementation and updates) Jan Roehrich
  197. (BasicTreeUI and JTree fixes) Jeroen Frijters (ClassLoader and nio
  198. cleanups, Serialization fixes, better Proxy support, bug fixes and
  199. IKVM integration) Julian Scheid (Documentation updates and gjdoc
  200. support) Ka-Hing Cheung (TreePath and TreeSelection fixes) Kalle Olavi
  201. Niemitalo (Build fixes) Keith Seitz (Lots of JDWP work) Kelley Cook
  202. (Build fixes) Kim Ho (JFileChooser implementation) Lillian Angel
  203. (JTree implementation and lots Free Swing additions and bug fixes)
  204. Mark Wielaard (Bug fixes, packaging and release management, Clipboard
  205. implementation, System call interrupts and network timeouts and
  206. GdkPixpufDecoder fixes) Martin Cordova (Suggestions for better
  207. SocketTimeoutException) Michael Koch (Configuration fixes. Locale
  208. updates, bug and build fixes) Nicolas Geoffray (VMClassLoader and
  209. AccessController improvements) Olga Rodimina (MenuSelectionManager)
  210. Paul Jenner (Better -Werror support) Rainer Orth (Build fixes) Robert
  211. Schuster (Documentation updates and beans fixes, TreeNode enumerations
  212. and ActionCommand and various fixes, XML and URL, AWT and Free Swing
  213. bug fixes) Roman Kennke (BoxLayout, GrayFilter and SplitPane, plus
  214. bugfixes all over. Lots of Free Swing work including styled text)
  215. Santiago Gala (AccessControlContext fixes) Simon Kitching (String
  216. cleanups and optimization suggestions) Stuart Ballard (RMI constant
  217. fixes) Sven de Marothy (BMP imageio support, CSS and TextLayout
  218. fixes. GtkImage rewrite, 2D, awt, free swing and date/time fixes, Qt4
  219. peers) Thomas Fitzsimmons (Lot of upgrades to the gtk+ AWT and cairo
  220. 2D support. Lots of imageio framework additions, lots of AWT and Free
  221. Swing bug fixes) Tom Tromey (Eclipse integration, generics work, lots
  222. of bug fixes and gcj integration including coordinating The Big Merge)
  223. Wolfgang Baer (GapContent bug fixes) Ziga Mahkovec (Graphics2D
  224. upgraded to cairo 0.5 and new regex features)
  225. *** Changes in GCC 4.0:
  226. * Character encoders and decoders have been added for: iso-8859-6
  227. (arabic), iso-8859-7 (greek), iso-8859-8 (hebrew), iso-8859-9
  228. (latin-5), iso-8859-13, iso-8859-15 (latin-9), cp1047 (ebcdic),
  229. ebcdic-xml-us,ascii, windows-1250, windows-1252, UTF-16BE (Big Endian),
  230. UTF-16LE (Little Endian), UTF-32BE (Big Endian), UTF-32LE (Little
  231. Endian).
  232. * Lots of Calendar bug fixes.
  233. * The http url protocol handler has been replaced with a full HTTP/1.1
  234. version from GNU inetlib.
  235. * A new ftp url protocol handler has been added also from GNU inetlib.
  236. * java.beans has been updated to 1.4 including support for XMLEncoder
  237. and XMLDecoder.
  238. * Added implementations of javax.xml (JAXP 1.3), org.xml.sax (SAX2)
  239. and org.w3c.dom (DOM Level 3) interfaces. It is possible to switch
  240. between different implementations AElfred2, GNU DOM, GNU XSL, libxmlj
  241. SAX, libxmlj DOM and libxmlj XSL by setting different system
  242. properties. Also provided is a preliminary XPath 1.0
  243. implementation. The libxmlj versions are build around libxml2 and
  244. libxslt and have to be enabled during build time by the --enable-xmlj
  245. configure flag. The current support is equal to the last released GNU
  246. JAXP 1.3 release. These packages will be maintained as part of the GNU
  247. Classpath core classes in the future. For more information,
  248. conformance results and documentation on selecting different
  249. implementations see doc/README.jaxp.
  250. * Much fuller collection documentation.
  251. * libgcj can now load service providers that are described via
  252. META-INF/services/* resources in extension JARs. This is useful for
  253. implementing the various APIs that are supposed to be extensible via
  254. custom plugins. For details, please see the documentation of
  255. gnu.classpath.ServiceFactory.
  256. * GNU Classpath's JAR implementation now has preliminary support for
  257. signed entries, for so called "signed JAR" file support. Signed JAR
  258. files are one of the key security features of managed runtimes, and
  259. allows code to run privileged given unforgeable proofs of identity.
  260. * A much improved version of X.509 certificates has been added,
  261. including a robust certificate path checking algorithm. Also included
  262. is an implementation of the RSA signature scheme.
  263. * New javax.crypto, javax.crypto.interfaces, javax.crypto.spec,
  264. javax.net, javax.net.ssl, javax.security.auth,
  265. javax.security.auth.callback, javax.security.auth.login,
  266. javax.security.auth.x500, javax.security.sasl and org.ietf.jgss
  267. packages are now officially part of GNU Classpath. Extra crypto
  268. algorithms can be obtained from the GNU Crypto project, a full TLS
  269. implementation is provided by the Jessie project.
  270. http://www.gnu.org/software/gnu-crypto/
  271. http://www.nongnu.org/jessie/
  272. * java.security.AccessController has been implemented.
  273. * The default java.lang.SecurityManager now uses AccessController.
  274. * Lookahead support for regular expressions.
  275. * java.util.regexp implementation through gnu.regexp wrappers.
  276. * Serialization object stream fixes for multiple ClassLoader scenarios.
  277. * java.net.URL now uses application classloader to load
  278. URLStreamHandlers and reuses URLStreamHandlers when URL is reset (but
  279. protocol isn't changed).
  280. * java.io.File.deleteOnExit() implementation.
  281. * java.io is now implemented by delegating most tasks directly to
  282. java.nio.
  283. * Reworked/Optimized implementations of java.nio.Buffer and subclasses.
  284. * BufferedReader speed improvements.
  285. * Multiple java.net.InetAdress fixes and java.rmi fixes.
  286. * ServerSocket.accept() now restarts listening when system call
  287. interrupted.
  288. * java.net.URI implementation.
  289. * New javax.print, javax.print.attribute[.standard] and
  290. javax.print.event packages and classes.
  291. * java.text multiple new features and bug fixes (only 2 out of the
  292. 1000+ java.text Mauve tests now fail).
  293. * java.text attributed iterators support.
  294. * Improved useabilty of java.text implementation for several
  295. applications.
  296. * More AWT accessible support.
  297. * AWT gtk+ peers component layout, dialog placement, keyboard focus
  298. handling and text positioning have been improved.
  299. * ImageIO interfaces are more complete.
  300. * JList, JTable and JTree have been hugely improved.
  301. * java.awt.Robot support with GdkRobot in the gtk+ awt peers. Needs
  302. XTest Extension (libXtst) XServer support.
  303. * Full java.awt.color implementation, with all standard ICC profiles,
  304. except for PhotoYCC color space.
  305. * java.awt.image support updated to 1.4.
  306. * Big-endian (PowerPC) fixes for native awt GTK+ peers.
  307. * Better AWT focus management fro GTK+ peers.
  308. * Much faster and better fonts support (for both gdk Graphics and cairo
  309. Graphics2D)
  310. * AWT Choice fixes for hidden components.
  311. * More javax.imageio support.
  312. * Better AWT Help MenuBar support.
  313. * Swing TabbedPane, ColorChooser and ComboBox improvements.
  314. * Start of JTree functionality.
  315. * javax.swing.Spring and SpringLayout support.
  316. * Added pluggable look and feel support for BasicTextFieldUI and
  317. BasicToolBarSeparatorUI.
  318. * java.swing.text support for (Default and Layered) Highlighter,
  319. FieldView, PlainView, TabExpander and TabableView added.
  320. * Start of JTable and JTree implementation.
  321. * Internal Swing frames work.
  322. * JMenu and JPopupMenu work.
  323. * New gtk+ AWT FileDialog peer now based on gtk+2.4 or higher.
  324. * java.awt.image LookupTables and kernel support.
  325. * Improved java.awt.image.BufferedImage support.
  326. * AWT 1.0 event model support.
  327. * Frame.setIconImage() support.
  328. * AWT GDKGraphics scaling.
  329. * New configure flag --enable-gtk-cairo to build Graphics2D
  330. implementation build on cairo and pangoft2. Enabled at runtime by
  331. defining the system property gnu.java.awt.peer.gtk.Graphics=Graphics2D.
  332. * javax.swing.JSpinner implemented.
  333. * java.awt.geom completed. Area, Arc2D, Ellipse2D and Line2D
  334. implemented.
  335. * JColorChooser, JComboBox and JTextField implemented, including
  336. example uses in GNU Classpath Examples swing Demo.
  337. * Better (non-black) default AWT System colors.
  338. * AWT lists use GTK treeviews.
  339. * Proper AWT focus management has been implemented.
  340. * Swing menus and scrollpanes are beginning to work.
  341. * Swing splitpanes, dialogs and internal frames were added.
  342. * Swing repainting / double buffering was redone.
  343. * Font management and Pango DPI conversion fixes.
  344. * A lot of AWT imaging and event bugs have been picked out.
  345. * More of javax.swing.text has been implemented.
  346. * javax.swing.Timer has been reimplemented.
  347. * The gnu.java.awt.EmbeddedWindow class has been improved, and now
  348. supports embedding AWT windows in other top-level X windows. This
  349. functionality is required by gcjwebplugin.
  350. * New javax.imageio, javax.imageio.event and javax.imageio.spi packages
  351. and classes.
  352. * Working implementation of javax.swing.undo.
  353. * java.awt.geom.CubicCurve2D/QuadCurve2D: Can now solve cubic and
  354. quadratic equations; implementation adapted from the GNU Scientific
  355. Library.
  356. * Lots of java.awt and gtk+ peer improvements. Also more Swing work.
  357. Start of EmbeddedWindow support.
  358. *** Changes in GCC 3.4:
  359. * Compiling a .jar file will now cause non-.class entries to be automatically
  360. compiled as resources.
  361. * libgcj has been ported to Darwin.
  362. * Jeff Sturm has adapted Jan Hubicka's call graph optimization code to gcj.
  363. * libgcj has a new gcjlib URL type; this lets URLClassLoader load code from
  364. shared libraries.
  365. * libgcj has been much more completely merged with GNU Classpath.
  366. * Class loading is now much more correct; in particular the caller's class
  367. loader is now used when that is required.
  368. * Eclipse 2.x will run out of the box using gij.
  369. * Parts of java.nio have been implemented. Direct and indirect buffers work,
  370. as do fundamental file and socket operations.
  371. * java.awt has been improved, though it is still not ready for general use.
  372. * The HTTP protocol handler now uses HTTP/1.1 and can handle the POST method.
  373. * The MinGW port has matured. Enhancements include socket timeout support,
  374. thread interruption, improved Runtime.exec() handling and support for
  375. accented characters in filenames.
  376. *** Changes in GCC 3.3:
  377. * The java.sql and javax.sql packages now implement the JDBC 3.0 (JDK 1.4)
  378. API.
  379. * The JDK 1.4 assert facility has been implemented.
  380. * The bytecode interpreter is now direct threaded and thus faster.
  381. *** Changes in GCC 3.1:
  382. * libgcj now includes RMI, java.lang.ref.*, javax.naming, and
  383. javax.transaction.
  384. * Property files and other system resources can be compiled into executables
  385. which use libgcj using the new gcj --resource feature.
  386. * libgcj has been ported to more platforms. In particular there is now a
  387. mostly-functional mingw32 (Windows) target port.
  388. * JNI and CNI invocation interfaces were implemented, so gcj-compiled Java
  389. code can now be called from a C/C++ application.
  390. * gcj can now use builtin functions for certain known methods, for instance
  391. Math.cos.
  392. * gcj can now automatically remove redundant array-store checks in some common
  393. cases.
  394. * The --no-store-checks optimization option was added. This can be used to
  395. omit runtime store checks for code which is known not to throw
  396. ArrayStoreException
  397. * The following third party interface standards were added to libgcj:
  398. org.w3c.dom and org.xml.sax.
  399. * java.security has been merged with GNU Classpath. The new package is now
  400. JDK 1.2 compliant, and much more complete.
  401. * A bytecode verifier was added to the libgcj interpreter.
  402. * java.lang.Character was rewritten to comply with the Unicode 3.0 standard,
  403. and improve performance.
  404. * Partial support for many more locales was added to libgcj.
  405. * Socket timeouts have been implemented.
  406. * libgcj has been merged into a single shared library. There are no longer
  407. separate shared libraries for the garbage collector and zlib.
  408. * Several performance improvements were made to gcj and libgcj:
  409. o Hash synchronization (thin locks)
  410. o A special allocation path for finalizer-free objects
  411. o Thread-local allocation
  412. o Parallel GC, and other GC tweaks
  413. *** Changes in GCC 3.0:
  414. * libgcj now includes a bytecode interpreter. If a compiled version of a class
  415. is not found in the application binary or linked shared libraries, the
  416. class loader will search for a bytecode version in the CLASSPATH and execute
  417. it using the interpreter. A new front end that behaves like the traditional
  418. `java' command is also provided: `gij'.
  419. * Support for specifying java system properties. Properties can either be set
  420. at runtime via the GCJ_PROPERTIES environment variable in the format
  421. "<name>=<value> ..."'; or can be compiled into an application binary using
  422. -D<name>=<value>.
  423. * Support for setjmp/longjmp (sjlj) exception handling has been added, as an
  424. alternative to the existing range-table based mechanism. sjlj is the default
  425. on non-sparc, non-x86 targets, or can be specified with the
  426. `--enable-sjlj-exceptions' configure parameter.
  427. * Complete JDK 1.1 reflection support, including invocation.
  428. * Throwable.printStackTrace() has been implemented.
  429. * Runtime.loadLibrary() has been implemented.
  430. * Class.forName() will now try to load a series of shared objects in order
  431. to find the requested class. If a class `gnu.quux.whatever' is requested,
  432. libgcj will search the system shared library path (eg LD_LIBRARY_PATH) for
  433. `gnu-quux-whatever.so', then `gnu-quux.so', and finally `gnu.so'.
  434. * A pure-java implementation of java.math.BigInteger.
  435. New in libgcj 2.95:
  436. * First public release