20
I Use This!
Activity Not Available

News

Posted over 11 years ago
DataBasin, the clean-room impelmentation of a data extraction tool for SalesForce.com available for GNUstep and Mac just made a big leap forward!If you have ever done a SELECT in salesforce.com, you might have noticed that the results are not ordered ... [More] and that semi-joined fields ("." notation) are handled strange because a whole object is returned.DataBasin extracts the  columns of the CSV file by checking the first row of the dataset and recursing on the field names of salesforce's response. The effects in DataBasin are the following:The field order is not preservedIf a sub-object is queried, all those fields are grouped together in that objectIf more than one field is queried on a sub-object and on certain record this object is missing, the number of columns between records is inconsistent: salesforce.com doesn't return the whole object and DataBasin iterates record after record in the sub-object, but if it it is totally missing, only one empty column will be written, not as many as neededCapitalization of the column names doesn't get preserved (compared to the above issues, something really minor)I added a new option available in write out fields in the order of the query.This feature implies a more complex under the hood. For each record gotten in the response, the field names are reconstructed as before (e.g. by recursing inside sub-objects) and put in a Dictionary.The original SOQL query is parsed and the field names extracted, then these names are used as keys for each record dictionary and written out.Order preserved, also with sub-objectsFields preserved and empty values are written even if whole sub-objects are missingCase is preservedThis approach looks fine and comes with a relatively small performance penalty, however it is delicate because during parsing of the query, many naming subtleties of Salesforce.com needs to be inferred, that is, DataBasin tries to infer how the name in the Response will be:field aliasesaggregate names with no alias, which are called progressively Expr0, Expr1idiosyncrasies with aggregate functions. A field in a sub-objects is called Object__c.Field__c when in a regular query, but when used in an aggregate query, only Field__c is used, disregarding the join-depthCOUNT() vs.COUNT(Id)I hope I have not missed any! in any case, enjoy!This feature is available now both in Select and Select-Identify, since it is a problem of the CSV Write backend and enhances DataBasin operation usability greatly, bringing it on par with DataLoader.Since DataLoader performces similar transformation and sometimes produces wrong results, I left this feature as optional with the flag "Write fields in query order". [Less]
Posted over 11 years ago
We are pleased to announce the release of IcedTea 2.5.0, “POWER to the People”! The IcedTea project provides a harness to build the source code from OpenJDK using Free Software build tools, along with additional features such as the ability to build ... [More] against system libraries and support for alternative virtual machines and architectures beyond those supported by OpenJDK. This release updates our OpenJDK 7 support with the first release of the 2.5.x series, based on OpenJDK u60. It is the first release to include the PPC64 & AIX port work from SAP & IBM, and also the first not to include the PulseAudio provider, which will now be part of IcedTea-Sound. 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 2.5.0 (2014-06-13) OpenJDK S5049299: (process) Use posix_spawn, not fork, on S10 to avoid swap exhaustion S6412968: CMS: Long initial mark pauses S6571600: JNI use results in UnsatisfiedLinkError looking for libmawt.so S6889597: TEST_BUG: javax/management/remote/mandatory/URLTest.java test should be updated in jdk7 Workspace S6900441: PlatformEvent.park(millis) on Linux could still be affected by changes to the time-of-day clock S6989981: jstack causes “fatal error: ExceptionMark destructor expects no pending exceptions” S7074436: (sc) SocketChannel can do short gathering writes when channel configured blocking (win) S7123493: (proxy) Proxy.getProxyClass doesn’t scale under high load S7124232: [TEST_BUG] [macosx] JSplitPane has wrong divider location S7124314: [TEST_BUG] [macosx] Aqua LAF: JTree doesn’t select element by keyboards left and right keys S7124320: [TEST_BUG] [macosx] JComboBox doesn’t change selection on mouse over S7124338: [macosx] Selection lost if a selected item removed from a java.awt.List S7129133: [macosx] Accelerators are displayed as Meta instead of the Command symbol S7131153: GetDC called way too many times – causes bad performance. S7133122: SA throws sun.jvm.hotspot.debugger.UnmappedAddressException when it should not S7133146: [macosx] closed/javax/swing/JInternalFrame/4193219/IconCoord fails on MacOS S7133154: [TEST_BUG] [macosx] closed/javax/swing/JInternalFrame/4251301/bug4251301.java fails on MacOS S7145569: G1: optimize nmethods scanning S7147084: (process) appA hangs when read output stream of appB which starts appC that runs forever S7171591: getDefaultScopeID() in src/solaris/native/java/net/net_util_md.c should return a value S7173464: Clipboard.getAvailableDataFlavors: Comparison method violates contract S7176574: sun/security/krb5/auto/TcpTimeout.java failed with solaris-i586 S7186887: Test T6567415.java can fail on a slow machine S7187554: JSR 292: JVMTI PopFrame needs to handle appendix arguments S7190349: [macosx] Text (Label) is incorrectly drawn with a rotated g2d S7191817: -XX:+UseSerialGC -XX:+UseLargePages crashes with SIGFPE on MacOS X S7194607: VerifyLocalVariableTableOnRetransformTest.sh fails after JSR-292 merge S7197210: java/lang/invoke/CallSiteTest.java failing on armsflt. S7199674: (props) user.home property does not return an accessible location in sandboxed environment [macosx] S8003253: TEST_BUG: java/nio/channels/AsynchronousChannelGroup/Unbounded.java hang intermittently [win] S8003262: reverse translation required changes in xalan resource bundles S8003285: TEST_BUG: java/nio/channels/AsynchronousChannelGroup/Unbounded.java fails again [macosx] S8003895: java/nio/channels/AsynchronousChannelGroup/Unbounded.java failing again [win64] S8004032: [TEST_BUG] [macosx] There is no effect when double clicking on the Icon, after right clicking on the Icon and the Icon disappear S8004051: assert(_oprs_len[mode] < maxNumberOfOperands) failed: array overflow S8004476: XSLT Extension Functions Don’t Work in WebStart S8005128: JSR 292: the mlvm redefineClassInBootstrap test crashes in ConstantPool::compare_entry_to S8006395: Race in async socket close on Linux S8006542: JSR 292: the VM_RedefineClasses::append_entry() must support invokedynamic entry kinds S8006546: JSR 292: typos in the ConstantPool::copy_cp_impl() S8006628: NEED_TEST for JDK-8002870 S8006731: JSR 292: the VM_RedefineClasses::rewrite_cp_refs_in_method() must support invokedynamic S8007037: JSR 292: the VM_RedefineClasses::append_entry() should do cross-checks with indy operands S8007454: (process) SetHandleInformation parameters DWORD (not BOOLEAN) S8008118: (process) Possible null pointer dereference in jdk/src/solaris/native/java/lang/UNIXProcess_md.c S8008511: JSR 292: MemberName vmtarget refs to methods must be updated at class redefinition S8008733: Psr:perf:osb performance regression (18%) in wss_bodyenc S8009062: poor performance of JNI AttachCurrentThread after fix for 7017193 S8009213: sun/management/jdp/JdpTest.sh fails with exit code 1 S8009222: java.lang.IllegalArgumentException: not invocable, no method type when attempting to get getter method handle for a static field S8011194: Apps launched via double-clicked .jars have file.encoding value of US-ASCII on Mac OS X S8011343: Add new flag for verifying the heap during startup S8011944: Sort fails with ArrayIndexOutOfBoundsException S8011955: Lunar screen reader crashes intermittently in WindowsAccessBridge-32.DLL S8012244: java/net/Socket/asyncClose/Race.java fails intermittently on Windows S8012326: Deadlock occurs when Charset.availableCharsets() is called by several threads at the same time S8012615: Realm.getRealmsList returns realms list in wrong S8012925: [parfait] Missing return value in jdk/src/macosx/native/sun/awt/AWTEvent.m S8013132: Add a flag to turn off the output of the verbose verification code S8013895: G1: G1SummarizeRSetStats output on Linux needs improvement S8013945: CMS fatal error: must own lock MemberNameTable_lock S8014052: JSR292: assert(end_offset == next_offset) failed: matched ending S8014078: G1: improve remembered set summary information by providing per region type information S8014240: G1: Add remembered set size information to output of G1PrintRegionLivenessInfo S8014288: perf regression in nashorn JDK-8008448.js test after 8008511 changes S8014394: (fs) WatchService failing when watching \\server\$d S8014460: Need to check for non-empty EXT_LIBS_PATH before using it S8014555: G1: Memory ordering problem with Conc refinement and card marking S8015092: SchemaFactory cannot parse schema if whitespace added within patterns in Selector XPath expression S8015243: SchemaFactory does not catch enum. value that is not in the value space of the base type, anyURI S8015244: G1: Verification after a full GC is incorrectly placed. S8015599: [TEST_BUG] [macosx] Test closed/javax/swing/Popup/TaskbarPositionTest.java fails since JDK 8 b75 on MacOSX S8015600: [TEST_BUG] [macosx] Test closed/javax/swing/plaf/basic/BasicMenuUI/4983388/bug4983388.java fails since JDK 8 b75 on MacOSX S8016018: Typo in AbstractStringBuilder#indexOf and #lastIndexOf descriptions S8016110: Japanese char (MS932) 0x5C cannot be used as an argument when quoted S8016271: wsimport -clientjar does not create portable jars on Windows due to hardcoded backslash S8016328: Regression : Javadoc i18n regression caused by fix for 8012375 S8016500: Unlocalized warnings. S8017180: [macosx] [TEST_BUG] alt-key doesn’t work on macos for menu S8017195: Introduce option to setKeepAlive parameter on CORBA sockets S8017456: [TEST_BUG] java/awt/DataFlavor/MissedHtmlAndRtfBug/MissedHtmlAndRtfBug.html: test frames remain after test execution S8017498: JVM crashes when native code calls sigaction(sig) where sig>=0×20 S8017779: java/net/Authenticator/B4769350.java fails S8019184: MethodHandles.catchException() fails when methods have 8 args + varargs S8019389: SA-JDI JSR292: sun.jvm.hotspot.jdi.StackFrame.thisObject() throws sun.jvm.hotspot.utilities.AssertionFailure: sanity check S8019396: SA-JDI: OSThread class initialization throws an exception S8019853: Break logging and AWT circular dependency S8020123: Test gc/g1/TestPrintRegionRememberedSetInfo.java fails with “test result: Error. No action after @build” S8020191: System.getProperty(“os.name”) returns “Windows NT (unknown)” on Windows 8.1 S8020530: Non heap memory size calculated incorrectly S8020791: [TESTBUG] runtime/jsig/Test8017498.sh failed to compile native code S8021296: [TESTBUG] Test8017498.sh fails to find “gcc” and fails to compile on some Linux releases S8021368: Launch of Java Web Start app fails with ClassCircularityError exception in 7u25 S8021898: Broken JIT compiler optimization for loop unswitching S8021943: FileDialog getFile returns corrupted string after previous setFile S8022213: Intermittent test failures in java/net/URLClassLoader S8022452: Hotspot needs to know about Windows 8.1 and Windows Server 2012 R2 S8022507: SIGSEGV at ParMarkBitMap::verify_clear() S8022584: Memory leak in some NetworkInterface methods S8022585: VM crashes when ran with -XX:+PrintInlining S8022993: Convert MAX_UNROLL constant to LoopMaxUnroll C2 flag S8023004: JSR 292: java.lang.RuntimeException: Original target method was called. S8023130: (process) ProcessBuilder#inheritIO does not work on Windows S8023145: G1: G1CollectedHeap::mark_strong_code_roots() needs to handle ParallelGCThreads=0 S8023472: C2 optimization breaks with G1 S8023580: Add jtreg test for 8004051 and 8005722 S8023720: (hotspot) setjmp/longjmp changes the process signal mask on OS X S8023786: (jdk) setjmp/longjmp changes the process signal mask on OS X S8023881: IDN.USE_STD3_ASCII_RULES option is too strict to use Unicode in IDN.toASCII S8023956: Provide a work-around to broken Linux 32 bit “Exec Shield” using CS for NX emulation (crashing with SI_KERNEL) S8024027: Test sun/misc/IoTrace/IoTraceSocketReadWrite.java crashes VM S8024163: [macosx] NullPointerException at javax.swing.TransferHandler$DropHandler.handleDrag since jdk8b93, 7u40b28 S8024521: (process) Async close issues with Process InputStream S8024648: 7141246 & 8016131 break Zero port S8024707: TransformerException : item() return null with node list of length != 1 S8024788: (fs) Files.readAllBytes uses FileChannel which may not be supported by all providers S8024830: SEGV in org.apache.lucene.codecs.compressing.CompressingTermVectorsReader.get S8024861: Incomplete token triggers GSS-API NullPointerException S8024876: [TEST_BUG] javax/xml/jaxp/parsers/8022548/XOMParserTest.java failed when testbase dir has read only permissions S8024952: ClassCastException in PlainSocketImpl.accept() when using custom socketImpl S8025145: [macosx]: java 7 does not recognize tiff image on clipboard S8025204: Intermittent test failure: javax/management/remote/mandatory/connection/IdleTimeoutTest.java S8025205: Intermittent test failure: javax/management/remote/mandatory/connection/BrokenConnectionTest.java S8025206: Intermittent test failure: javax/management/monitor/NullAttributeValueTest.java S8025207: Intermittent test failure: javax/management/monitor/CounterMonitorThresholdTest.java S8025305: Cleanup CardTableModRefBS usage in G1 S8025512: NPE with logging while launching webstart on jre7u40 if logging is disabled S8025541: G1: assert “assert(thread < _num_vtimes) failed: just checking” fails when G1ConcRefinementThreads > ParallelGCThreads S8025588: [macosx] Frozen AppKit thread in 7u40 S8025713: Syncing indendation/comment/copyright year differences with upstream projects S8025775: JNI warnings in TryXShmAttach S8025860: new hotspot build – hs24.60-b02 S8025861: Set minor version for hotspot in 7u60 to 60 and build number to b01 S8025920: webrev.ksh does not provide any details about changes in zip files S8026293: Schedule part of G1 pre-barrier late S8026404: Logging in Applet can trigger ACE: access denied (“java.lang.RuntimePermission” “modifyThreadGroup”) S8026405: javax/xml/ws/clientjar/TestWsImport.java failing on JDK 8 nightly aurora test runs S8026486: Significant slowdown due to transparent huge pages S8026502: java/lang/invoke/MethodHandleConstants.java fails on all platforms S8026705: [TEST_BUG] java/beans/Introspector/TestTypeResolver.java failed S8026794: Test tools/pack200/TimeStamp.java fails while opening golden.jar.native.IST on linux-ppc(v2) S8026848: -XX:+G1SummarizeRSetStats can result in wrong exit code and crash S8027066: XMLDecoder in java 7 cannot properly deserialize object arrays S8027172: new hotspot build – hs24.60-b03 S8027196: Increment minor version of HSx for 7u55 and initialize the build number S8027351: (ref) Private finalize method invoked in preference to protected superclass method S8027426: String.toLowerCase incorrectly increases length, if string contains \u0130 char S8027454: Do not traverse string table during G1 remark when treating them as strong roots during initial mark S8027476: Improve performance of Stringtable unlink S8027579: new hotspot build – hs24.60-b04 S8027756: assert(!hr->isHumongous()) failed: code root in humongous region? S8027839: C1 crashes in Weblogic with G1 enabled S8027840: C2 allows safepoint checks to leak into G1 pre-barriers S8027860: [TEST_BUG] File not closed in javax/xml/jaxp/parsers/8022548/XOMParserTest.java S8027973: javax/xml/jaxp/transform/jdk8004476/XSLTExFuncTest.java hangs (win) S8027997: G1: SPECjbb2013 crashes due to a broken object reference S8028054: com.sun.beans.finder.MethodFinder has unsynchronized access to a static Map S8028208: (aio) Assertion in clearPendingIoMap when closing at around time file lock is acquired immediately (win) S8028351: JWS doesn’t get authenticated when using kerberos auth proxy S8028391: Make the Min/MaxHeapFreeRatio flags manageable S8028412: AsyncGetCallTrace() is broken on x86 in JDK 7u40 S8028520: JVM should not throw VerifyError when a private method overrides a final method S8028583: Add helper methods to test libraries S8028814: new hotspot build – hs24.60-b06 S8029281: Synchronization issues in Logger and LogManager S8029304: JFR broken in 7u train for JDK Linux for ARM or OpenJDK S8029318: Native Windows ccache still reads DES tickets S8029366: ShouldNotReachHere error when creating an array with component type of void S8029599: JVM crashes on solaris-i586 with -Xverify:all if stack overflow happens during recursive reflective call S8029903: Add a type safe alternative for working with counter based data S8030061: new hotspot build – hs24.60-b05 S8030070: Test java/io/File/CheckPermission.java fails due to unfinished recursion (java.lang.StackOverflowError) when JIT’ed code (-client,-server) is running S8030655: Regression: 14_01 Security fix 8024306 causes test failures S8030698: Several GUI labels in jconsole need correction S8030813: Signed applet fails to load when CRLs are stored in an LDAP directory S8030822: (tz) Support tzdata2013i S8031050: (thread) Change Thread initialization so that thread name is set before invoking SecurityManager S8031394: (sl) Fix exception handling in ServiceLoader S8031462: Fonts with morx tables are broken with latest ICU fixes S8031787: Remove fix JDK-8026887 from 7u60 S8031980: Add new j.u.l deadlock test for JDK-8027670 and JDK-8029281 S8032013: new hotspot build – hs24.60-b08 S8032207: C2: assert(VerifyOops || MachNode::size(ra_) <= (3+1)*4) failed: bad fixed size S8032740: Need to create SE Embedded Source Bundles in 7 Release S8032771: The flag VerifySilently misses a test case S8032960: Running forms URL throws NullPointerException in Javaconsole. S8032986: new hotspot build – hs24.60-b09 S8033294: javac, spurious warning for instanceof operator S8033443: Test8000311 fails after latest changes to parallelize string and symbol table unlink S8033487: Improve GC option handling S8034181: SIGBUS in SctpChannelImpl receive S8034772: JDK-8028795 brought a specification change to 7u55 release and caused JCK7 signature test failure S8035283: Second phase of branch shortening doesn’t account for loop alignment S8035618: Four api/org_omg/CORBA TCK tests fail under plugin only S8035893: JVM_GetVersionInfo fails to zero structure S8035897: Better memory allocation for file descriptors greater than 1024 on macosx S8035963: The failed Kerberos tests due to timeouts S8035988: 7u60 l10n resource file translation update 1 S8036027: Increment hsx 24.51 build to b04 for 7u51-b34 S8036147: Increment hsx 24.55 build to b02 for 7u55-b11 S8036584: Review comments from 8035897 S8036837: Increment hsx 24.55 build to b03 for 7u55-b12 S8036861: Application can’t be loaded fine,the save dialog can’t show up. S8037012: (tz) Support tzdata2014a S8037340: Linux semaphores to use CLOCK_REALTIME S8037510: CMM Testing: Min/MaxHeapFreeRatio flags should be manageable through the API S8038306: (tz) Support tzdata2014b S8039097: Some tests fail with NPE since 7u60 b12 Backports S7103549: Remove dependencies on libjava and libjvm from security libraries S8000204: Memory leak in com/sun/security/auth/module/Unix.c S8000476: Memory Leaks and uninitialized memory access in PKCS11 and other native code S8001579: Cleanup warnings in security native code S8007607: security native code doesn’t always use malloc, realloc, and calloc correctly S8008509: 6588413 changed JNIEXPORT visibility for GCC on HSX, jdk’s jni_md.h needs similar change S8012224: AWT_TopLevels/TopLevelEvents/Automated/WindowIconifyDeiconifyEventsTest02 fails on Ubuntu 12.04 Unity shell S8014307: Memory leak … security/jgss/wrapper/GSSLibStub.c S8038392, RH1064383: Generating prelink cache breaks JAVA ‘jinfo’ utility normal behavior Bug fixes Fix implicit function declarations in j2secmod_md.c introduced by 7103549. PR1617: Include defs.make in vm.make so zeroshark.make is included Remove binary files and unlicensed generated files PR1655: Don’t add IcedTea-Web jars to bootclasspath Enable CC_INTERP on ppc64 Fix Zero following integration of PPC port PR1660: Allow use of system PCSC PR1661: Cleanup COMPILE_AGAINST_SYSCALLS option and allow it to be set false PR1661: Cleanup COMPRESS_JARS option and allow it to be set false PR1661: Cleanup SYSTEM_CUPS option and allow it to be set false PR1661: Cleanup SYSTEM_FONTCONFIG option and allow it to be set false PR1661: Cleanup SYSTEM_GIF option and allow it to be set false PR1661: Cleanup SYSTEM_GIO option and allow it to be set false PR1661: Cleanup SYSTEM_GTK option and allow it to be set false PR1661: Cleanup SYSTEM_JPEG option and allow it to be set false PR1661: Cleanup SYSTEM_LCMS option and allow it to be set false PR1661: Cleanup SYSTEM_PCSC option and allow it to be set false PR1661: Cleanup SYSTEM_PNG option and allow it to be set false PR1664: Ensure all SYSTEM_* options are in jdk_generic_profile.sh Only get CFLAGS/LIBS for libpcsclite if installed Add lost #endif Add new files from 8019229 Remove duplicate ElfFuncDescTable code in elfSymbolTable.cpp Remove duplicate ElfFuncDescTable code in elfSymbolTable.hpp PR1699: Support building the SunEC provider with system NSS PR1393: JPEG support in build is broken on non-system-libjpeg builds Fix merge duplication in com.sun.script.javascript.RhinoTopLevel S8041658: Use of -fdevirtualize on macroAssembler_x86.o (via -O2) with gcc 4.9.0 creates broken VM Extend 8041658 to all files in the HotSpot build. Correct placement of S8041658 fix PR1753: Ant does not respect JAVA_HOME/jdk.home setting PR1757: register_method usage in sharkCompiler.cpp needs to be adjusted following S7196199 PR1781: NSS PKCS11 provider fails to handle multipart AES encryption RH1059925: RFE: Version Java libraries to allow using multiple Java versions with Linux capabilities enabled RH905128: [CRASH] OpenJDK-1.7.0 while using NSS security provider and kerberos PR1742: Allow SunEC provider to be built with changes in NSS >= 3.16.1 PR1762: Undefined references when building with NSS 3.16.1 PR1737: Support prefixed variants of GNU tools used on *BSD systems PR1756: Bootstrap with IcedTea broken PR1758: Support PPC64 JIT on ppc64le PR1763: ppc64 JIT doesn’t support class data sharing PR1765: Boot JDK on ppc64le uses differently named arch directory to final build PR1807: Support Debian/Ubuntu 7 OpenJDK Install as Boot JDK PR1365: Replace hgforest support PR1814: HotSpot URL should be used with –enable-hg PR1371: Provide option to build without debugging PR1827: Support AM_MAINTAINER_MODE PR1830: Drop version requirement for LCMS 2 PR1833, RH1022017: Report elliptic curves supported by NSS, not the SunEC library PR1741: Break PulseAudio provider out into IcedTea-Sound PR1736: AWT loads gtk3 in all the look and feel configurations PR1808: Type-punning Warnings in Demos on PPC PR1835: Missing file in backport of ppc64le JIT support PR1839, G478960: Provide Infinality Support via fontconfig PR729: GTKLookAndFeel should be the system look&feel on all GNU/Linux desktops PR1843: Fail early if there is no native HotSpot JIT & all other options are disabled PR1848: Removal of project support leaves trailing ‘-’ in version PPC & AIX port Add AIX-specific build instructions to README-ppc.html Added AIX as testing platform for more jtreg tests written in shell-script Added AIX specific build defs file Added AIX to list of operating systems to include in static jli build Added AIX version of classlist Added enumIPv4Interfaces, enumIPv6Interfaces and getMacAddress implementation for AIX. Added initial AIX version of UNIXProcess.java copied from existing Solaris one Added missing B_FALSE and B_TRUE definitions for AIX when building ec component. Added missing Dlinfo structure for SAP version of hprof_md.c Added section about problems with pre-installed ANT and our bootstrap JDK on Linux and how to solve them Added UnixOperatingSystem.getTotalPhysicalMemorySize and getFreePhysicalMemorySize implementation for AIX by facilitating perfstat APIs. add “<jrepath>/lib/<arch>/jli/” to the runtime library path in the java launcher for AIX because AIX ld doesn’t support $ORIGIN and libjli.so isn’t found otherwise Add libmawt linking for libfontmanager on AIX platform Add memory limit requirements (ulimit) for AIX to README-ppc.html Addon for merge 5851:b717d0d99407 – add missing file AixNativeDispatcher.c Add OS and Compiler information to the VM version string on AIX Add section about the necessity of ‘GNU tar’ during the build process Add some AIX-specific files which were missing from changeset 5101:a06818b39f7c adlc: do safe call to constant_offset() in debug coding aix: add macros AIX_ONLY and NOT_AIX aix: AIX platform files as required to start up the interpreter. AIX changes to build the complete OpenJDK on a vanilla AIX system aix: fix disclaiming memory. Aix port: add file globalDefinitions_xlc.hpp. aix: remove warnings about memory allocation asm: fix DelayedConstant Basic AIX adaption. With this change the VM can successfully run ‘HelloWorld’ on AIX Build “fdlibm” without optimizations and with -qfloat=nomaf on AIX C argument in register AND stack slot. Check consistency of the PPC-specific flag ‘UseSIGTRAP’ with ‘ImplicitRangeChecks’ and ‘ImplicitNullChecks’ C-interpreter: add biased locking support C-interpreter: basic fixes C-interpreter: Fix for OSR. C-interpreter: implement bytecode profiling. C-interpreter: implement G1 support C-interpreter: implement support for compressed Oops. C++ interpreter: implement support for early return C-interpreter: improve memory ordering implementation. C-interpreter: memory ordering as required for platforms with weak memory ordering (PPC) C-interpreter: some diffs I missed before C-interpreter: support for method handles. Corrected incorrect use of ps -e on AIX Disable sctp support for now on AIX platform Disable use of sys/swap.h when building UnixOperatingSystem_md.c on AIX dlopen() on AIX does not support RTLD_NOLOAD, so use RTLD_LZAY to workaround. Enable AWT/Swing on AIX Enable awt to build on AIX Enable building jaas library on AIX platform Enabled SoundDefs to build on AIX Enable jdi script based tests to run on AIX. (fixed issue with uname -s result not being understood by tests) Enable mannual and Javadoc on AIX platform Enable medialib to build on AIX Enable the build of HotSpot ‘CORE’ targets from the top-level makefile by setting CORE_BUILD=true. Enable Tls operations in jdwp socket transport module for AIX platform Expand conditional include in several more source files to not include Expanded check for which wait.h to use. Changed so on AIX sys/wait.h is used. Expanded platform choice logic to include AIX when deciding to create the MB macro. Explicitly defined ARCH_DATA_MODEL for AIX to be 64 Export ‘USE_PTHREADS’ on Linux trough CPPFLAGS to fix the build because java_md_solinux.c now only relies on ‘USE_PTHREADS’ beeing defined. Extended BSD remapping of special 64 bit directory function names to generic versions to now apply to AIX. Extended decision to use pthreads in java_md_solinux to include specific use of USE_PTHREADS define Extended existing ifdef to cover AIX so that npt does not include link.h Extended find zone info functionaility to compile on AIX Extend existing Solaris behaviour to cover AIX and treat empty TZ envvar same as no TZ envvar Extend Load and Store nodes to know about memory ordering. fastdebug build: images step fails building installer binaries Fix aix build error. Fix broken AIX build Fix build on Linux with 64kb default page size Fix build with gcc 4.7 Fix calls to the LoadLNode constructor with the Load semantics argument in the wrong position. Fixed from 8 port moved to 7. Fixed JTreg failure from java/util/ResourceBundle/Control/ExpirationTest.sh Fixed memory handling/bookkeeping of mmaped memory on AIX Fixed sun/nio/ch implementation on AIX Fix handling of scalar replaced objects. Fix IA64 preprocessor conditionals on AIX!!! Fix iconv encoding problem on AIX < 7.1 in SplashConvertStringAlloc Fix JTreg failure from java/nio/charset/Charset/NIOCharsetAvailabilityTest.java Fix JTreg failure from java/nio/charset/spi/basic.sh Fix native multicast sockets implementation on AIX Fix native stack traces in hs_err files on Linux/PPC64 Fix setting of SO_REUSEADDR socket option on AIX (where the socket option is called SO_REUSEPORT) Fix small mistake introduced by the port which breaks the Windows build Fix typo in change ‘Fix native stack traces in hs_err files..’ Fix usage of feature detection on ppc for fsqrt instruction. Also guarantee no wrong instructions are used. Fix -Xcheck:jni on AIX Fix Xrender backend on 64-bit Big-endian architectures Further format fixes after removing ppc_ prefixes. G1: Fix problem with nonvolatile field G1: Port C-interpreter to support G1. gethostbyname_r and gethostbyaddr_r have got different syntax on AIX, this patch added the support of host entry getting. Implement AttachListener for AIX Implemented a no-op version of getPlatformTimeZoneID() for AIX Implemented os::thread_cpu_time for AIX Implement printing CodeComments in stubs. Implement printing CodeComments in stubs: fix product build. Implement support for the “System V Print Subsystem” on AIX Implement workaround for I/O cancellation on AIX (by using the Linux wrappers from “linux_close.c”) Improve adlc usability. Improve handling of memory ordering in taskqueue.hpp. Include dlfcn.h since link.h is not available on AIX Include files needed for PPC C2 build. Initial AIX build config files primarily based on changes from SAP. This is to preserve any Hotspot speciific settings Initial Aix-Port checkin. Initial PPC-Port checkin link.h not required (and does not exist) on AIX. Expanded conditional include to cover AIX linux: extend signal handler to catch SIGTRAP on ppc. Make hsdis build and work on Linux/PPC64 make: Implement aix ppc64 build. make: Implement linux ppc64 support in makefiles. Make nio module to build on AIX make: Reenable CORE build Memory ordering as required for platforms with weak memory ordering (PPC) Memory ordering: introduce functions to specify platform properties. method handles: some smaller fixes and extensions for ppc New files for template interpreter New HS24 JSR292 implementation for PPC64 opto: adapt assertion in postaloc.cpp for ppc. opto: Basic fixes for the ppc C2 port opto: Do not relocate in scratch emit. opto: explicit specification of rematerialization in ad file. opto: Extend adlc to generate fields into nodes. opto: Extend ImplicitNullCheck optimizations. opto: Extend Load and Store nodes to know about memory ordering. Opto: extend MachConstantNode functionality to ins_encode statements. opto: hook to postprocess matcher output platform dependent. opto: initialize _node_regs_max_index Opto: introduce phase lateExpand to expand nodes after register allocation. opto: issue more memory barriers as neede on PPC. opto: Move static _in_dump_cnt to Compile object. opto: Pass output stream to more debug routines. opto/ppc: trap based null and range checks opto / regalloc: Fix problem with rematerialization opto,rt: Support for C calling conventions that require 64-bit ints. opto: specify offset of IC load in java_to_interp stub. Opto: Support for constants in stub code. opto: support for constants on ppc opto: switch off OptimizeFill on PPC as it causes errors. opto: Trampoline relocations opto: trap based null and range checks Part assembler and macroassembler into two files. posix: fix build errors on aix 7.1 and sparc posix: Implement methods giving infos about signals. ppc/aix: Adaptions needed for recent update. ppc/aix: Fixes for recent update PPC assembler and register definitions. PPC assembly needed to start up the interpreter. ppc: compiler fixes & enable OSR PPC: Continue C2 port: now jvm98 runs with compiler ppc: enable better implicit null check recognition with cOops ppc: fix cOops problem on aix ppc: fix gcc 4.3.4 build ppc: Fix issue in trap based null check optimization ppc: Fix register usage in GetAndAdd & friends. ppc: fix safepoint node. ppc: fix trap based range checks. ppc: Implement card mark emitter for concurrentMarkSweep. PPC: Initial C2 compiler port. ppc: Initial C2 compiler port, ppc files ppc: port method handles support (hs21-hs23 version) ppc: PPC platform files as required to start up the interpreter. ppc: Relax load aquire and various minor changes ppc: SIGTRAP based checks PPC specific C2 flags: add macro PD_C2_FLAGS to global flag definitions. PPC specific flags: add macro PD_FLAGS to global flag definitions. ppc: support for g1, cOops PPC64: Support for ABI_ELFv2. Propagate HOTSPOT_BUILD_JOBS and PARALLEL_COMPILE_JOBS from the top-level make to the corresponding sub-makes. Recent changes to ppc files, especially to ppc.ad file. Recent improvements by SAP. Removed unused DL_info declaration in java_md_solinux.c that caused AIX compiler failure Remove ppc_ prefixes in ppc files. Remove some unnecessary diffs to Oracle coding. rt: add fence to taskqueue to fix probelms showing in torture tests rt: C argument in register AND stack slot. rt: extend ELF-decoder to ppc function descriptor tables rt: Use stubs to implement safefetch. S7177701: error: Filling jar message during javax/imageio/metadata/IIOMetadataFormatImpl compilation S8003850 opto: introduce phase lateExpand to expand nodes after register allocation. S8003850: add support for constants in stub code S8003853 opto: specify offset of IC load in java_to_interp stub. S8005055: pass outputStream to more opto debug routines S8006971 rt: Improve handling of memory ordering in taskqueue.hpp. S8016491: PPC64 (part 2): Clean up PPC defines. S8016586: PPC64 (part 3): basic changes for PPC64 S8016696: PPC64 (part 4): add relocation for trampoline stubs S8017313: PPC64 (part 6): stack handling improvements S8017317: PPC64 (part 7): cppInterpreter: implement support for biased locking S8019517: PPC64 (part 102): cppInterpreter: implement G1 support S8019929: PPC64 (part 107): Extend ELF-decoder to support PPC64 function descriptor tables S8019973: PPC64 (part 11): Fix IA64 preprocessor conditionals on AIX. S8024344: PPC64 (part 112): C argument in register AND stack slot. S8024468: PPC64 (part 201): cppInterpreter: implement bytecode profiling S8033168: PPC64: gcc 4.8 warning in output_c.cpp S8035396: Introduce accessor for tmp_oop in frame. S8036767: PPC64: Support for little endian execution model S8036976: PPC64: implement the template interpreter S8037915: PPC64/AIX: Several smaller fixes S8042309: Some bugfixes for the ppc64 port Several NIO fixes for AIX to pass JCK tests shared assembler: fix DelayedConstant. shared: Basic non-functional fixes needed for the ppc port. shared: Fix IA64 preprocessor conditionals on AIX. shared: introduce functions to specify memory ordering properties of platforms. shared: Make adapter_code_size a function. shared: Make hotspot build with gcc 4.7.2 and newer shared: Make hsdis build and work on Linux/PPC64 shared: Memory ordering as required for platforms with weak memory ordering (PPC) shared: ordering of Independent Reads of Independent Writes Some basic AIX changes to let the VM bootstrap itself and run JVM98. Support for C calling conventions that require 64-bit ints. Switched LD path setup for freetype version check so AIX can be covered by the ‘everything else’ part Switch off Compressed Oops on AIX until we fix them Temporarily disable ‘EnableInvokeDynamic’ while working on the new HS24 indy implementation Temporarily switch off ‘TrapBasedRangeChecks’ Trampoline relocations. Trampoline relocations. Add some more functionality. Turned off ImplicitNullChecks on AIX by default because it requires UseSIGTRAP which isn’t currently implemented on AIX Updated conditional handling for AIX when BLOCK_SOURCE enabled. Resolved Undefined symbol: .isSourceFilterSupported Updated Defs-versions to understand about using xlc compiler on AIX Updated genUnixConstants.c to compile on AIX. Made location of fcntl.h file platform specific and added a default value for O_NOFOLLOW as not supported on AIX Updated hprof demo to build on AIX. Added SAP changes to fake out DLinfo etc Updated hprof_md.c to include AIX as platform without hires timer Updated location of bootstrap JDKs Updated Platform.gmk to set PLATFORM=aix when uname is AIX Updated README-ppc.html to reflect the current project status Updated README to reflect the current status of the project (mainly the availability of a mixed-mode VM on Linux and AIX) Updated test scripts to understand AIX os environment Updated using pthreads in java_md_solinux.c to just rely on USE_PTHREADS. Removed the superflous __linux__ as USE_PTHREADS is already explictly turned on for linux builds Use fork() to provide FORK() as Linux Use LIBPATH in the launcher on AIX insted of LD_LIBRARY_PATH Use macosx’s BsdVirtualMachine implementation to provide tools/attach on AIX platform. Use stubs to implement safefetch. Use the solaris’ approach of doing IsXRenderAvailable check for AIX ARM port Fix accidental reversion of PR1188 for armel JamVM JVM_NewMultiArray: element class may be an array jtreg test java/lang/reflect/Array/ExceedMaxDim OpenJDK: Fix Local/Anonymous class checks classlibMarkThreadTerminated should return Object* Fix race-condition in constant-pool resolution code JSR292: MethodHandle constant-pool refs may be resolved JSR292: bootstrap method args error handling JSR292: correct intrinsic cache COMPARE function Race condition in setting up imethod table GC: Minor performance improvement The tarballs can be downloaded from: http://icedtea.classpath.org/download/source/icedtea-2.5.0.tar.gz http://icedtea.classpath.org/download/source/icedtea-2.5.0.tar.xz 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.5.0.tar.gz.sig http://icedtea.classpath.org/download/source/icedtea-2.5.0.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: 4e369e35dbf37a5fcc1a837861a74609bf907d3d0b9be7ac98d4f9c99dba7100 icedtea-2.5.0.tar.gz 018858b2de3e40bbd0e6e7ad2dd35ed54a51fc5b25c56dbcd7158ee5963c6c28 icedtea-2.5.0.tar.gz.sig 4bf6cf8c64679343623032de07ebfb78d8977005ee04d660c0c90d7b8e0ed8a3 icedtea-2.5.0.tar.xz f36464bcb4fcd59fee8e4db511ad817a3124e988417ea7e5c2628b75c9e572b9 icedtea-2.5.0.tar.xz.sig The checksums can be downloaded from: http://icedtea.classpath.org/download/source/icedtea-2.5.0.sha256 The following people helped with these releases: Aleksandar Antok (infinality patch) Tiago Sturmer Daitx (ppc64le support) Andrew John Hughes (upstream, AArch64 & PPC port imports, all other bugs & release management) Radim Kolar (*BSD support) Trustin Lee (infinality patch) Robert Lougher (JamVM support) Xerxes Rånby (JamVM support) Yasumasa Suenaga (SystemTap jstack support) We would also like to thank the bug reporters and testers! To get started: $ tar xzf icedtea-2.5.0.tar.gz or: $ tar x -I xz -f icedtea-2.5.0.tar.xz then: $ mkdir icedtea-build $ cd icedtea-build $ ../icedtea-2.5.0/configure $ make Full build requirements and instructions are available in the INSTALL file. Happy hacking! [Less]
Posted over 11 years ago
There’s an interesting spectrum of events in the technical space. Conferences are the mainstay obviously; usually very intense and high-calibre thanks to the hard work of papers committees and of course the presenters themselves. You become ... [More] invigorated hearing the experiences and results of other people, sharing ideas in the hallway, and of course the opportunity to vehemently explain why vi is better than emacs over drinks in the bar later is essential to the progress of science. For a given community, though, conferences are relatively infrequent; often only once a year for a given country (linux.conf.au, Australia’s annual Linux conference, say) and sometimes only once a year globally (ICFP, the international functional programming conference with numerous collocated symposiums and events taking advantage of the fact it’s the one event everyone turns up at is a notable example in computing). More locally, those in major cities are able to organize monthly meetups, networking events, user groups, and the like. Which are fun; lovely to see friends and continue to build relationships with people you’d otherwise only see once a year. Finally there are hackfests, often on the order of a weekend in duration. The tend to draw people in from a wide area, and sometimes are in an unusual milieu; Peter Miller’s CodeCon camping and hacking weekends are infamous in the Sydney Linux community; rent a small quiet generator, find a state forest, set up tents and hack on whatever code you want to for a few days. Blissful. The local monthly events are the most common, though. Typically two or three people offer to give presentations to an audience of 30-50 people. And while hearing talks on a range of topics is invaluable, the fact that so many smart people are in the room passively seems a lost opportunity. For a while now I’ve been musing whether perhaps there is something between meetups and hackfests. Wouldn’t it be cool to get a bunch of people together, put a problem on the board, and then for an hour go around the room and have a debate about whether the problem is even the right question to be asking, and different approaches to tackling the issue? Something short, relatively focused, and pragmatic; rather than being a presentation of results a consideration of approaches. If we do it in a bit of rotation, each time one person being tasked with framing the question, then over time participants each have the benefit of bringing the collective firepower of the group to bear on one of the problems they’re working. Needs a name. Seminar? No, that’s what university departments do. Symposium? Too grand. Something more informal, impromptu, but organized. You know, like a jazz jam session. Ah, there we go: gonna call these sessions. It might be nice to complement the monthly functional programming meetup (fp-syd) that happens in Sydney with something a little more interactive and Haskell focused. And as I’m looking to improve the depth of experience with Haskell in the Engineering group at Anchor, this seemed like a nice fit. So we’re holding the first of the Haskell Sessions tomorrow 2pm, at Anchor’s office in Sydney. Here’s one to start us off: Industrial code has to interact with the outside world, and not just the I/O of being in main :: IO (), but database access, filesystem operations, and network traffic. When building tests, however, you tend to want to restrict the layer you’re testing, and not rely on the actual presence of a shared storage system or whatever; carrying around a virtual machine with an entire Ceph cluster in it just to run your test suite is tedious. Easy enough to say “just abstract it over a monad that encapsulates the different back-end behaviours” but that implies propagating that information throughout your entire application, and tends to make a mess. We’re supposed to find clean abstractions, not further ways to pollute code… I know we’re not the first ones to blunder in to this; I’ve heard plenty of people discussing it. So I’m going to hand around a single page with the type signatures of the functions involved at various points, freshly sharpen some whiteboard markers, and we’ll see what ideas come to light! If you’re interested in coming, drop me a line. AfC [Less]
Posted over 11 years ago
While scanning the Java 8 version of the JVM spec for changes, I noticed this new text: Names of methods, fields, local variables, and formal parameters are stored as unqualified names. An unqualified name must ... [More] contain at least one Unicode code point and must not contain any of the ASCII characters . ; [ / (that is, period or semicolon or left square bracket or forward slash). As per usual, the spec and HotSpot implementation don't agree on the details. In particular the text says that a name must contain at least one Unicode code point. At this point it becomes important what a Unicode code point actually is. Suffice it to say that a single UTF-16 code unit in the surrogate range is not a valid Unicode code point and that such names are accepted by HotSpot without any complaint. The spec, of course, is also incomplete as it does not address what should happen in case of malformed UTF-16 in general. Or maybe it should just be changed to say "... UTF-16 code unit ..." to match the current behavior and not worry about surrogates at all. On the .NET side, the strings that aren't string literals in the code are stored as UTF-8 and the ECMA CLI spec requires valid UTF-8, but this is only partially enforced which poses its own set of problems. After discovering all this, I felt compelled to fix IKVM.NET to behave similarly to HotSpot in this regard and added support for escaping malformed UTF-16 strings when writing metadata and unescaping them when reading it back in. Finally, let's end with a C# example that shows some of the weirdness on the .NET side: using System; using System.ComponentModel; [DisplayName("\uD800")] class Surrogate {   static void Main() {     var attr = (DisplayNameAttribute)typeof(Surrogate)                  .GetCustomAttributes(false)[0];     Console.WriteLine(attr.DisplayName == "\uD800");   } } [Less]
Posted over 11 years ago
I implemented Type Annotation reflection and fixed a couple of bugs. Changes: Implemented type annotation reflection. Bug fix. Process exec should support quotes ... [More] around filename for VFS executables. Bug fix. Process exec should eagerly close the redirected in/outputs when an exception occurs or immediately after the process exits. Bug fix. ProtectionDomain stack walk should ignore "HideFromStackWalk" frames. Include some missing resources. Added security attributes needed for .NET 4 build. Binaries available here: ikvmbin-8.0.5274.zip Sources: ikvmsrc-8.0.5274.zip and openjdk-8-b132-stripped.zip [Less]
Posted over 11 years ago
More progress on the OpenJDK 8 integration and a couple of unrelated fixes. I fixed an incompatibility with Mono (and other ECMA compliant tools that parse custom attributes). When I changed package manifest handling ... [More] in 7.4 to handle reading the manifest from the right jar I unknowingly chose a custom attribute encoding that works on the CLR, but isn't actually ECMA compliant. Mono has since added support for this encoding. Another somewhat interesting change is that I added an (internal only) feature to make it easier to replace sun.misc.Unsafe.compareAndSet() with Interlocked.CompareExchange. The trigger was the new reflection data caching in java.lang.Class. Here's an example of what it looks like: @ikvm.internal.InterlockedCompareAndSet("reflectionData") static native boolean casReflectionData(Class<?> clazz,                                         SoftReference<ReflectionData<T>> oldData,                                         SoftReference<ReflectionData<T>> newData); The ikvmc compiler will generate a method body that uses Interlocked.CompareExchange<T>() to update the reflectionData field in Class. In other places where I previously used Interlocked methods (e.g. java.util.concurrent.AtomicReferenceArray) I implemented the method body in map.xml using MSIL instructions, but here the generic version of CompareExchange is needed and I didn't want to invent a syntax for instantiating a generic method in map.xml. Oracle is working on adding atomic operations to Java and I suggested this annotation based approach, but it was rejected because "we don't add language semantics through annotations". Changes: Implemented method parameter reflection. Compile class library with javac -parameters option to get parameter names for abstract and native methods. Added (undocumented) -noparameterreflection option ikvmc to disable emitting method parameter reflection metadata Enabled MethodParameter attribute in runtime stub generator. Support round tripping malformed MethodParameter attribute in stub generator. Fixed PackageListAttribute to be ECMA compliant. Added support for defining abstract methods in remap file. Implemented sun.nio.ch.Net.poll() native method. Replaced sun.misc.Unsafe cas operations in java.lang.Class with Interlocked.CompareExchange(). Replaced AtomicReference[Array].getAndSet() implementations with Interlocked.Exchange() based implementations. Fixed Linux build. Thanks to Joan Karadimov for reporting this. Prevent unfocable windows from being activated by mouse click. (Based on patch by Maria Papendieck of pure-systems.) Fixed clipboard access to use the right thread. (Based on patch by Maria Papendieck of pure-systems.) IKVM.Reflection: Added UniverseOptions.DecodeVersionInfoAttributeBlobs to support decoding CustomAttributeBuilder with blob to extract version info fields. Binaries available here: ikvmbin-8.0.5268.zip Sources: ikvmsrc-8.0.5268.zip and openjdk-8-b132-stripped.zip [Less]
Posted over 11 years ago
Another company is refusing to issue a Java RIA code signing certificate for individual. Even if they openly declare they do in they website. Even after I provided the notary-confirmed copies of all documents they requested and they have had two phone interviews with me. Seems really the end of the project. Dalibor, are you reading this?
Posted over 11 years ago
Overview Here at Object Refinery we have built two products, JFreeChart and Orson Charts, that rely heavily on Java2D, specifically the Graphics2D API. Java2D is a great technology that isn't going away but, as everyone knows, the future of Java ... [More] desktop development is JavaFX. For our clients already making the move to JavaFX, we want to make it as easy as possible for them to continue using JFreeChart and Orson Charts, and avoid having to significantly rework their code that produces charts and reports...but how? There exists a JavaFX Canvas component which can be used to "draw" vector output in the same way as you do with Java2D but, unfortunately, Oracle chose not to provide a Graphics2D API for this component, instead opting for an API that is roughly equivalent to that used by the HTML5 Canvas. We decided to fix that. Read on to find out how we did it, and in the process future-proofed JFreeChart and Orson Charts (and maybe your code too). FXGraphics2D We've previously implemented the Graphics2D API targetting SVG output (JFreeSVG) and PDF (OrsonPDF) with great results, so we decided that a new Graphics2D implementation targetting the JavaFX Canvas would very likely solve our problem, minimising the disruption to our code, our clients' code, and also the cost of supporting both Java2D/Swing and JavaFX going forward. FXGraphics2D is our shiny new bridge class that maps Java2D drawing calls directly to the equivalent JavaFX Canvas API methods. The code is small, fast, free (under a very liberal BSD-style license), and available now on GitHub. So far in our testing, the code performs well and generates high-quality output. Now with our first public release, we are looking forward to feedback from a diverse range of users. Demos There are a couple of demos included with the project on GitHub (one for JFreeChart and one for Orson Charts). The screenshot from the JFreeChart demo (with source code here) appears above. The Orson Charts demo is larger and more interactive than what we have for JFreeChart so far. Here is a screenshot (we encourage you to download the code and try it out live, particularly to see the tooltip and mouse event support): Summary Faced with the problem of supporting JFreeChart and Orson Charts users wishing to migrate to JavaFX, we've created FXGraphics2D, a small, fast, elegant and free solution that bridges the divide between Java2D and JavaFX. The original source version of this blog entry is at http://www.object-refinery.com/blog/blog-20140526.html. [Less]
Posted over 11 years ago
More progress on the OpenJDK 8 integration. Changes: Integrated Nashorn. Added workaround for bug in .NET 2.0 implementation of ModuleBuilder.GetMethodToken() ... [More] exposed by Nashorn. Bug fix. A .NET type should always have access to its nested types. Fixed javap build. Bug fix. The MethodHandle code requires the volatile field accessors in Unsafe for volatile field access. Bug fix. Handle more than 8 parameters in invokedynamic. Bug fix. DynamicMethod's ILGenerator doesn't like unbaked array types. Bug fix. MethodHandle.invoke[Exact] methods should have VarArgs flag set. Added workaround for javac MethodHandle.invoke[Exact] detection bug. Moved cldrdata and localedata into separate assemblies. Implemented native methods for HostLocaleProviderAdapterImpl. The system property "java.locale.providers" can now be set to "HOST" to use the .NET locale implementation. Binaries available here: ikvmbin-8.0.5259.zip Sources: ikvmsrc-8.0.5259.zip and openjdk-8-b132-stripped.zip [Less]
Posted over 11 years ago
I finished the first major step for integrating OpenJDK 8. The class libraries are now built from the OpenJDK 8 sources. Not all new functionality is implemented yet (both in the class library and in the VM). ... [More] Lambda's work, but they are not yet optimized, so they are very slow. This will be fixed in a future development snapshot. Another area that still needs a lot of work is the assembly partitioning of the class libraries. Currently IKVM.OpenJDK.Core.dll has grown to 13MB. That's clearly not a good thing. Also, a bunch of work has gone into OpenJDK 8 to better factor it and to support making parts of the class libaries optional, so that should be exposed as well. Finally, there is no Nashorn support yet. Changes: Enabled Java 8 class file support by default. Several fixes for Java 8 static, private and default interface methods. Allow classes defined by Unsafe.defineAnonymousClass() access to private methods of their host class. Add ExtensionAttribute to IKVM.OpenJDK.Core assembly, because Roslyn requires that for the extension methods to be visible. Bug fix. Unsafe.park(false, 0) means infinite wait timeout, contrary to LockSupport.parkNanos(0). Bug fix. Miranda method override stubs should be handled by the normal code, because a Miranda method can implement multiple interface methods. Bug fix. Bridge method names should not include prefix in stack trace. Fixed handling of ghost array types in remapped type methods. Fixed class file validation of method and field names to disallow '[' character. Fixed class file validation to disallow zero length bytecode stream. Bug fix. Exceptions in bootstrap method arguments should not be wrapped in BootstrapMethodError. Fixed ikvmc to emit fatal error instead of crashing when a field referenced in remap file isn't found. Added ikvmc option -assemblyattributes: to explicitly specify the assembly attribute container class and deprecated the previous behavior. Bug fix. If ikvmc -warnaserror is used, "warnings" should not be suppressed after an error was emitted. IKVM.Reflection: Fixed several bugs in Type.GetInterfaceMap(). IKVM.Reflection: It is legal for a MethodBuilder to not have a signature, in that case it defaults to returning void with no parameters. Binaries available here: ikvmbin-8.0.5252.zip Sources: ikvmsrc-8.0.5252.zip and openjdk-8-b132-stripped.zip [Less]