20
I Use This!
Activity Not Available

News

Posted over 12 years ago
The JDK 8 Developer Preview (a.k.a. Milestone 8) builds are now available! This milestone is intended for broad testing by developers. We’ve run all tests on all Oracle-supported platforms and haven’t found any glaring issues. We’ve also fixed many ... [More] of the bugs discovered since we reached the Feature Complete milestone back in June. The principal feature of this release is Project Lambda (JSR 335), which aims to make it easier to write code for multicore processors. It adds lambda expressions, default methods, and method references to the Java programming language, and extends the libraries to support parallelizable operations upon streamed data. There are, of course, many other new features, including a new Date and Time API (JSR 310), Compact Profiles, the Nashorn JavaScript Engine, and even some anti-features such as the removal of the Permanent Generation from the HotSpot virtual machine. A complete list of new features is available on the JDK 8 Features page. If you’ve been watching JDK 8 evolve from afar then now is an excellent time to download a build and try it out—the sooner the better! Let us know if your existing code doesn’t compile and run correctly on JDK 8, if it runs slower than before, if it crashes the JVM, or if there are any remaining design issues in the new language and API features. We’ll do our best to read, evaluate, and act on all feedback received via the usual bug-reporting channel between now and the end of October. After that we’ll gradually ramp down the rate of change in order to stabilize the code, so bugs reported later on might not get fixed in time for the GA release. [Less]
Posted over 12 years ago
The IcedTea project provides a harness to build the source code from OpenJDK using Free Software build tools, along with additional features such as a PulseAudio sound driver, the ability to build against system libraries and support for alternative ... [More] virtual machines and architectures beyond those supported by OpenJDK. This release updates our OpenJDK 6 support in the 1.11.x series with a number of bug fixes. If you find an issue with the release, please report it to our bug database under the appropriate component. Development discussion takes place on the distro-pkg-dev OpenJDK mailing list and patches are always welcome. Full details of the release can be found below. What’s New? New in release 1.11.13 (2013-09-06) Backports S4893408: JPEGReader throws IllegalArgException when setting the destination to BYTE_GRAY S6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles) S6631559: Registration of ImageIO plugins should not cause loading of jpeg.dlli and cmm.dll S6636331: ConcurrentModificationException in AppContext code S6636370: minor corrections and simplification of code in AppContext S6729772: 64-bit build with SS12 compiler: SIGSEGV (0xb) at pc=0×0000000000000048, pid=14826, tid=2 S6791502: IIOException “Invalid icc profile” on jpeg after update from JDK5 to JDK6 S6793818: JpegImageReader is too greedy creating color profiles S6799141: Build with –hash-style=both so that binaries can work on SuSE 10 S6816311: Changes to allow builds with latest Windows SDK 6.1 on 64bit Windows 2003 S6840152: JVM crashes when heavyweight monitors are used S6888215: memory leak in jpeg plugin S6974017: Upgrade required Solaris Studio compilers to 5.10 (12 update 1 + patches) S6980281: SWAT: SwingSet2 got core dumped in Solaris-AMD64 using b107 swat build S6989760: cmm native compiler warnings S6989774: imageio compiler warnings in native code S7000225: Sanity check on sane-alsa-headers is broken S7013519: [parfait] Integer overflows in 2D code S7018912: [parfait] potential buffer overruns in imageio jpeg S7022999: Can’t build with FORCE_TIERED=0 S7038711: Fix CC_VER checks for compiler options, fix use of -Wno-clobber S7196533: TimeZone.getDefault() slow due to synchronization bottleneck S8005194: [parfait] #353 sun/awt/image/jpeg/imageioJPEG.c Memory leak of pointer ‘scale’ allocated with calloc() S8014469: (tz) Support tzdata2013c S8020054: (tz) Support tzdata2013d S8020983, RH976897: OutOfMemoryError caused by non garbage collected JPEGImageWriter Instances Bug fixes PR1188: ASM Interpreter and Thumb2 JIT javac miscompile modulo reminder on armel. RH995488: Java thinks that the default timezone is Busingen instead of Zurich The tarball can be downloaded from: http://icedtea.classpath.org/download/source/icedtea6-1.11.13.tar.gz or: http://icedtea.classpath.org/download/source/icedtea6-1.11.13.tar.xz For the first time, we provide both gzip and xz tarballs, so that those who are able to make use of the smaller tarball produced by xz may do so. The tarballs are accompanied by digital signatures available at: http://icedtea.classpath.org/download/source/icedtea-2.3.12.tar.gz.sig http://icedtea.classpath.org/download/source/icedtea-2.3.12.tar.xz.sig These are produced using my public key. See details below. PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 SHA256 checksums: 3101efa8dd7c0470c375e41cd2adbaae63f6fb65d357b2033069f4f468b3ea08 icedtea6-1.11.13.tar.gz 4a92970ffba01374982e0cadb7bd8b4c125d628574294218810fa93db803df1d icedtea6-1.11.13.tar.gz.sig 3508f7e3b6560ab138e591f56be541f7b6050f33f25bdede1faa2eb0aff68324 icedtea6-1.11.13.tar.xz df4bc78ba9024770a468180a045182e92ee0005bed7159dcd40976f79f4b3467 icedtea6-1.11.13.tar.xz.sig The following people helped with these releases: Andrew Hughes (all backports and fixes except those below & release management) Omair Majid (initial version of RH995488) Xerxes Rånby (PR1188 ARM fix) We would also like to thank the bug reporters and testers! To get started: $ tar xzf icedtea6-1.11.13.tar.gz or: $ tar xzf icedtea6-1.11.13.tar.xz then: $ mkdir icedtea-build $ cd icedtea-build $ ../icedtea6-1.11.13/configure $ make Full build requirements and instructions are available in the INSTALL file. Happy hacking! [Less]
Posted over 12 years ago
I'll be joining Paul Sandoz on Monday evening (September 9th) for the first Java Magazin Lambda Tour event in Hamburg.See you there!
Posted over 12 years ago
For the last couple of days, my Galaxy Nexus S has been going to sleep and not waking up again (restarting required either removing the battery, or plugging in and removing the charger, which is not so convenient). Then I noticed that when the phone ... [More] is on, I cannot switch it off. It turns out the ON/OFF switch has failed and I am not alone. The point of this post is just to say, this video has provided a tolerable workaround to the problem so thanks to Ryan Lowe for going to the trouble of posting it. [Less]
Posted over 12 years ago
The JavaOne 2013 content catalog is now live. As in the previous years, I took the opportunity to look for the talks and BOFs with OpenJDK in their title, or abstract, and pull them together in a list:OpenJDK and JCP: Success Through Contribution - ... [More] Sunday, Sep 22, 4:45 PM - 5:45 PMIn January 2013, JUGCologne adopted Contexts and Dependency Injection (CDI) 1.1 and JavaServer Faces (JSF) 2.2 and started working with the community on both JSRs. This session highlights the ups and downs of its decision, how people participated, how others reacted to it, and the results after eight months of participation. The presentation focuses on the Java Community Process (JCP) process and contributions from the community and includes a discussion of the OpenJDK community process.Jump-starting Lambda Programming - Monday, Sep 23, 10:00 AM - 12:00 PMYou’ve probably heard about the new lambda feature that’s going to be in Java 8. What might not be obvious is why lambda is important and how you can use it effectively. This tutorial begins by taking apart some familiar programming examples and putting them together in a new, idiomatic style, employing lambda expressions. The tutorial then introduces the new Stream library that is also being introduced in Java 8. This new library is entirely based on lambda. The tutorial describes various Stream operations that can be composed into a pipeline and provides working examples of pipelines using lambda that are concise and fluent and facilitate parallel computation.It Takes a Community - Monday, Sep 23, 10:00 AM - 11:00 AMCreating the future of Java is a community effort. This session reviews the global participation in OpenJDK. Starting with OpenJDK bugathons and extending to AdoptJSR and AdoptOpenJDK efforts, it showcases the community of developers and projects that support and make up the larger OpenJDK ecosystem.Meet the Oracle Java Client and JavaFX Teams - Monday, Sep 23, 4:30 PM - 5:15 PMThis BOF is an excellent opportunity to meet development engineers from the Oracle JavaFX, AWT/Swing, Java 2D, and i18n teams. It’s expected to be a lively discussion about the development process, progress over the past year, and future plans for the Java UI. Likely topics include new JavaFX 8 features, Mac OS X support in AWT/Swing/Java 2D and JavaFX, and involvement in OpenJDK and OpenJFX projects.HotSpot Internals: How to Explore and Debug the OpenJDK VM at the OS Level - Monday, Sep 23, 4:30 PM - 5:15 PMOne of the little-known advantages of having a complete open source Java VM such as OpenJDK is that you can easily build a debug version of the VM. Such a debug VM offers a multitude of tracing, logging, introspection, and configuration possibilities that are not available in the normal product builds. This interactive session demonstrates how you can easily build a debug version of Oracle’s OpenJDK HotSpot VM and how it can be used to see, for example, which bytecode the VM is currently executing, which assembler code the JIT compiler is generating, and if your favorite optimization is really optimizing your code in the expected way.Infrequently Asked OpenJDK Questions - Monday, Sep 23, 6:30 PM - 7:15 PMOn the Web, just as in OpenJDK BOF sessions at JavaOne, some questions about OpenJDK such as “What is the difference between Oracle’s JDK and OpenJDK?” and “Why does OpenJDK use Mercurial rather then Git?” show up often enough that this session covers a little bit of everything somebody on the internet always wanted to know about OpenJDK and dared to ask.Using Java to Build Java: Revealing the Power of Open Java Technologies - Monday, Sep 23, 8:30 PM - 9:15 PMLearn how modern Java-based technologies such as Jenkins, Maven, Play2, and Ant (not to mention JAX-RS, JAX-WS, and other Java EE and Java SE technologies) are being harnessed by the OpenJDK community to create an open build and test infrastructure that is being used to build the Java runtime itself. This session discusses the technical, business, and personal challenges involved in creating a new type of “social” Website where developers from all walks of life can work together on their common passion: helping keep Java great. Building and testing code is something all developers understand. The presentation uses that common understanding of the challenges involved to help demonstrate the design and implementation of a unique system built for Java by Java developers.JDK 8 Compact Profiles for Embedded and Oracle ADF Mobile on iOS Devices - Tuesday, Sep 24, 11:30 AM - 12:30 PMJDK 8 has introduced a new Compact Profiles feature that allows for three JDK 8 spec–compliant subsets of Java SE 8 APIs. Compact Profiles will enable the creation of JDK 8 Java runtimes that will be able to support configurations that previously were possible only with the CDC version of J2ME based on the Java SE 1.4.2 language and APIs. This session describes the contents of Compact Profiles, how to build and use them, and the details of the Oracle-provided OpenJDK and binary implementations for Java Embedded and the Oracle ADF Mobile feature of Oracle Application Development Framework (Oracle ADF). It also discusses Compact Profile use cases such as Java Embedded, Oracle ADF Mobile for iOS, and Android platforms and application store packaging.Implement a High-Level Parallel API in JDK - Tuesday, Sep 24, 1:00 PM - 2:00 PMThis session discusses how to implement a high-level parallel API (such as parallel_for, parallel_while, or parallel_scan) and math calculation based on a thread pool and task in OpenJDK that aligns with the development of multicores and parallel computing. At present, programmers have to use a schedule strategy statically in code instead of choosing it dynamically based on the core number and load balance on the computer with the current Java concurrent package. In the design presented in the session, the function parallel_for(array, task) is a high-level API that can divide the task range dynamically, based on the condition of and load on different computers.Wholly Graal: Accelerating GPU Offload for Java - Tuesday, Sep 24, 3:00 PM - 4:00 PMGPU offload is an essential technique for accelerating complex parallelizable programs, but unfortunately it has been slow to penetrate the Java space because production JVMs lack support for GPU code generation. This session discusses a joint effort of the Sumatra OpenJDK project and the Graal OpenJDK project to prototype this support on top of Oracle’s HotSpot VM. The presentation includes an overview of Graal and its status, discusses the technical approach of adding a new compiler back end for GPU architectures, and includes a demonstration of producing and running HSAIL code with Graal. OpenJDK Porting Experiences: The Good, the Bad, and the Downright Ugly - Tuesday, Sep 24, 4:30 PM - 5:15 PM The work to port OpenJDK to Linux PowerPC and AIX PowerPC is coming to an end. It’s been an interesting road with many twists and turns, bumps and crashes—even the occasional straight run. The PPC/AIX porting project has been a trailblazer for future porting projects. This session discusses the technical aspects of porting OpenJDK to a new architecture as well as the community and process challenges that have been addressed in making the project a success. It covers the salient points of how to start an OpenJDK porting project, provides an overview of the design of Oracle’s HotSpot from a porting point of view, and explores the wider OpenJDK processes that need to be understood in a porting project.Where Next with OpenJDK Community Build and Test? - Wednesday, Sep 25, 8:30 AM - 9:30 AMIn this panel session, learn about the work done so far to provide an open, community-accessible build and test system for developers who want to contribute to OpenJDK. It’s a hard problem, but progress is being made. Come hear the participants from various organizations talk about what is happening and what else is needed. A lively debate with many opinions: guaranteed!Lambda Programming Laboratory - Wednesday, Sep 25, 12:30 PM - 2:30 PMInterested in trying out the new lambda feature in Java 8? If so, this “higher-order lab” is for you. Participants will use a recent JDK 8 development build and a recent NetBeans build that support the lambda feature and will take part in exercises intended to teach them about the new lambda feature of the Java programming language and the new Streams Library API. The exercises start off very simply, so that beginners can learn the fundamentals. Additional exercises covering grouping and parallel reduction aim to challenge more-advanced participants. Participants need not have any prior knowledge of Java’s lambda feature, although having attended a prior JavaOne lambda session or tutorial will be helpful.Retro Gaming with Lambdas - Wednesday, Sep 25, 4:30 PM - 5:30 PMLambda expressions, coming in Java 8, will dramatically change the programming model. They enable new functional programming patterns that were not possible before, increasing the expressiveness and power of the Java language. In this presentation, you will learn how to take advantage of the new lambda-enabled Java 8 APIs by building out a retro video game in JavaFX. Among the Java 8 features you will learn about are enhanced collections, functional interfaces, simplified event handlers, and the new stream API. Start using these in your application today, leveraging the latest OpenJDK builds so you can prepare for the future Java 8 release.That's a total of 14 sessions this year. With sessions presented by speakers from AMD, IBM, JClarity, Oracle, SAP and other organizations JavaOne remains the best place this year to learn about the progress made in the OpenJDK community. [Less]
Posted over 12 years ago
This week again brought a new Early Access builds of JDK 8: Build b104 is now available for testing.This build updates HotSpot in JDK 8 to HotSpot 25 build 46, which fixes compilation issues when building the Zero interpreter engine, as well as the ... [More] dreaded 'stat64 is deprecated' warning when building HotSpot on OS X, along with a few other HotSpot-specific bug fixes.An extensive list of changes since the previous build is linked off the download site.Happy testing! [Less]
Posted over 12 years ago
Last week I mentioned a few videos and and podcasts featuring Milton Smith, Sr. Principal Security PM at Oracle. I had a chance to meet Milton last week when he was in Hamburg for the OWASP AppSec EU conference, but I didn't have a chance to attend ... [More] his presentation. Fortunately, the video team of the AppSec EU conference has published the video recordings of the conference presentations already - you can find a recodring of Milton's here.Speaking of interesting conference videos, as the news of JVM Language Summit videos starting to show up on the Oracle Media Network broke on Twitter, ensuring an excitedly sleepless night for some, I compiled a quick list of more or less OpenJDK-specific talks that have been uploaded so far:Java 8 for Compiler Writers - Daniel SmithNashorn War Stories - Marcus LagergrenJVM Benchmarking - Aleksey ShipilevOpenJDK at Google - Jeremy MansonData Parallel Programming - John RoseFitting Nashorn on the JVM - Attila SzegediOne VM to Rule Them All - Christian Wimmer and Chris SeatonLambda Performance - Sergey KuksenkoGraal and GPU Offload - Thomas Wuerthinger and Vasanth VenkatachalamProject Sumatra - Eric CaspoleWelcome from Oracle - Georges SaabAnd last but not least, two new recordings of presentations from the JUG.RU OpenJDK Test Fest have been published on the JUG.RU YouTube channel:Aleksey Shipilev — OpenJDK frameworks: jmh & jcstressAlexandre Iline - OpenJDK Test BaseEnjoy! [Less]
Posted over 12 years ago
I’ve been trying to figure out how to get information about libraries loaded with dlmopen out of glibc‘s runtime linker and into GDB. The current interface uses a structure called r_debug that’s defined in link.h. If the executable’s dynamic section ... [More] has a DT_DEBUG element, the runtime linker sets that element’s value to the address where this structure can be found. I tried to discover where this interface originated, but I didn’t get very far. The only mention of it I found anywhere in any standard is in the System V Application Binary Interface, where it says: If an object file participates in dynamic linking, its program header table will have an element of type PT_DYNAMIC. This “segment” contains the .dynamic section. A special symbol, _DYNAMIC, labels the section… and later: DT_DEBUG This member is used for debugging. Its contents are not specified for the ABI; programs that access this entry are not ABI-conforming. No help there then. In glibc, r_debug looks like this: struct r_debug { int r_version; /* Version number for this protocol. */ struct link_map *r_map; /* Head of the chain of loaded objects. */ /* This is the address of a function internal to the run-time linker, that will always be called when the linker begins to map in a library or unmap it, and again when the mapping change is complete. The debugger can set a breakpoint at this address if it wants to notice shared object mapping changes. */ ElfW(Addr) r_brk; enum { /* This state value describes the mapping change taking place when the `r_brk' address is called. */ RT_CONSISTENT, /* Mapping change is complete. */ RT_ADD, /* Beginning to add a new object. */ RT_DELETE /* Beginning to remove an object mapping. */ } r_state; ElfW(Addr) r_ldbase; /* Base address the linker is loaded at. */ }; With glibc, r_version == 1. At least some versions of Solaris have r_version == 2, and when this is the case there are three extra fields, r_ldsomap, r_rdevent, r_flags. GDB uses r_ldsomap if r_version == 2; the other two seem to be the interface with librtld_db. That’s not documented anywhere to my knowledge, and may not even be fixed: applications are supposed to use the external interface to librtld_db as documented here. Here is the problem: r_debug, as it stands, has no way to access more than one namespace. The objects in r_map are the default namespace, directly linked, or opened with dlopen, or opened with dlmopen with lmid set to LM_ID_BASE. The r_ldsomap field in Solaris’s r_debug gives access to the linker’s namespace, opened with dlmopen with lmid set to LM_ID_LDSO, but you still can’t see any other namespaces. glibc uses multiple r_debug structures internally, one per namespace. It would be trivial to add a “next r_debug” link to r_debug if it were possible to extend the structure, but to do this you’d need to set r_version > 2. Applications could arguably expect a runtime linker with r_version > 2 to support the version 2 interface in full, but it wouldn’t be possible to do that in glibc without reverse engineering Solaris’s implementation. glibc is therefore stuck at r_version == 1, and the r_debug structure is effectively immutable for all time. [Less]
Posted over 12 years ago
Since earlier today the CACAO Doxygen Manual is online: http://c1.complang.tuwien.ac.at:8010/doxygen/ The manual is intended for CACAO developers and everyone who is interested in CACAO internals. Most comments are not yet Doxygen ready but things ... [More] are improving with every commit. In the end publishing this manual should also have the side-effect of making developers aware and care about Doxygen documentation ;). The pages are regenerated nightly by our Buildbot using the latest sources from the staging repository. [Less]
Posted over 12 years ago
I finally got around to updating my XBMC box. Fedora 19 installed nicely and in the years since my previous installation the kernel has grown the ability to communicate with my MCE IR remote without LIRC. This means no futzing with lircd.conf which ... [More] is nice but it did require me to learn about rc_keymaps and friends. I’m writing this so that I’ll remember what I did in the future and so that there’s some content out there that is more solution than “how do I get this to work?”. Using the following I didn’t have to do anything special in ~/.xbmc and the keys I care about on my MCE remote function as I want them to. I actually have a Harmony remote masquerading as an MCE remote but that’s neither here nor there. YMMV. The built-in keymap (/lib/udev/rc_keymaps/rc6_mce provided by v4l-utils) quite sensibly uses KEY_OK for the central OK button on my remote but XBMC doesn’t know about KEY_OK. So I remapped it to KEY_ENTER. I did the same for Info->i and Pause->Play-Pause. One thing that surprised me was that the keymap files shipped by v4l-utils have comments as the first line but the comments trip up ir-keytable -w. In the end I did something like the following. Heads up for the WordPress-inserted space between the two ‘< ' characters; it shouldn't be there. $ su # cp /lib/udev/rc_keymaps/rc6_mce /etc/rc_keymaps/ # cd /etc/rc_keymaps # patch -p3 < < _EOF_ --- /lib/udev/rc_keymaps/rc6_mce 2013-08-03 11:29:41.000000000 -0400 +++ /etc/rc_keymaps/rc6_mce 2013-08-23 13:55:57.731228028 -0400 @@ -1,4 +1,3 @@ -# table rc6_mce, type: RC6_MCE 0x800f0400 KEY_NUMERIC_0 0x800f0401 KEY_NUMERIC_1 0x800f0402 KEY_NUMERIC_2 @@ -14,7 +13,7 @@ 0x800f040c KEY_SLEEP 0x800f040d KEY_MEDIA 0x800f040e KEY_MUTE -0x800f040f KEY_INFO +0x800f040f KEY_I 0x800f0410 KEY_VOLUMEUP 0x800f0411 KEY_VOLUMEDOWN 0x800f0412 KEY_CHANNELUP @@ -23,7 +22,7 @@ 0x800f0415 KEY_REWIND 0x800f0416 KEY_PLAY 0x800f0417 KEY_RECORD -0x800f0418 KEY_PAUSE +0x800f0418 KEY_PLAYPAUSE 0x800f0419 KEY_STOP 0x800f041a KEY_NEXT 0x800f041b KEY_PREVIOUS @@ -33,7 +32,7 @@ 0x800f041f KEY_DOWN 0x800f0420 KEY_LEFT 0x800f0421 KEY_RIGHT -0x800f0422 KEY_OK +0x800f0422 KEY_ENTER 0x800f0423 KEY_EXIT 0x800f0424 KEY_DVD 0x800f0425 KEY_TUNER _EOF_ /etc/rc_maps.cfg will use the file in /etc/rc_keymaps in place of the one in /lib/udev/rc_keymaps after a reboot … or maybe a module unload/reload but I just rebooted . [Less]