Heads up: Update your runners!

at 2013-11-23 in 5.9-SERIES6.0-SERIESAnnouncementsUnicode by friebe

Fot the upcoming 6.0-SERIES, the XP Runners on Windows need an update to correctly support Unicode on the command line. As the runners are version agnostic, you can already start the upgrade now even with the 5.9-SERIES. It's as easy as typing xprt-update.bat:


The runners' minimum requirement has been bumped from .NET Framework 3.5 to 4.0. The latter has been around since 2010, so you will most probably have it:-)

XP 6 plans

at 2013-11-09 in 5.9-SERIES6.0-SERIESUnicodeUnittests by friebe

With the release of 5.9.9, we're heading towards the end of the framework's 5.9-SERIES. We've started a meta-RFC to gather all plans for XP 6.0.0, which you can read through (and comment!) over on GitHub.

The essentials:

  • Core only. - the framework's filesystem layout will be reorganized into a new repository, and split into minimal pieces
  • Namespaces - All XP classes will be inside namespaces. Only the most commonly-used classes will receive global namespace aliases.
  • Unicode - Support will be added. All strings are to be considered being utf-8.
Feedback welcome!

Support for Unicode in configfiles

at 2011-06-12 in Unicode by friebe

The feature suggested in issue #20 was implemented today and the XP-Framework's config file API (util.Properties) now supports the Unicode encodings UTF-8, UTF-16LE and UTF-16BE in its ".ini"-files. The character set is determined by inspecting the BOM.

ZIP files now support Unicode filenames

at 2011-01-16 in UnicodeExamples by friebe

The XP Framework's io.archive.zip package allows reading and creating ZIP files and is tested against zip archives created by Info-ZIP 3.0, PHP's Zip class, 7-zip, WinRAR and Windows' "compressed folders".

In SVN head, we have made a couple of adjustments to be able to support files written by Java's java.util.zip package (which is internally used by the jar command):

  • Reading the central directory to find the compressed and uncompressed lengths, Java doesn't write this into the local file header - making it impossible to stream those files
  • Supporting character set detection on extraction - up until JDK7 Build 57, the Java API was incorrectly writing entry names in UTF-8 but not setting the so-called "Language Encoding bit (EFS)".
  • Supporting to write archives with Unicode names - a JDK build downloaded yesterday still chokes on non-Unicode filenames inside ZIP archives when no charset is given (default is "CP437" here).
This way we can now create JAR files, for example.

5.8.0-RELEASE: XP Compiler, Extension methods, Generics revamped, ...

at 2011-01-11 in ReleasesUnicodeAnnouncements5.8-SERIES by friebe

After almost one and a half years of development since the 5.8 branch was created and almost four months the active development branch, SVN trunk, was changed from 5.7 to 5.8, after six release candidates - we finally, and proudly present: XP 5.8, release zero:-)

The most noteable changes are the following:

  • The minimum required PHP version is 5.2.10
  • The XP Compiler is now part of the framework. It compiles XP Language to XP Framework classes and supports syntactically what the framework does with "tricks": Type-safe enums, anonymous classes, finally, to name just a few.
  • Not having the date.timezone setting configured will now yield a startup error. PHP behaves in undefined ways when working with dates in this situation! The installer takes care of detecting it from the operating system on setup.
  • Extension methods have been added - see here for an example
  • Generics have been reworked to support runtime reflection and primitive types, and thus behave more like the C# than like the Java implementation.
  • Reflection API can now access private and protected methods and fields using setAccessible() - regardless of the underlying PHP version!
  • Support for array and hash keys (key[], key[name]) in ini files
  • Several additions to the xml.meta API - showcased in the article Hudson and the xml.meta API
  • The new indexer access functionality, this()
  • Unicode forward compatibility in the io.streams classes TextWriter and TextReader

The complete changelog can be found here:

To test a Unicode-ready version og this release, you can grab and install UnicodeRC2 as follows:
  $ wget http://releases.xp-framework.net/setup/5.8.0~unicodeRC2 -O - | php -- -d ~/bin/

Unicode branch created

at 2010-09-18 in UnicodeAnnouncements by friebe


There have been plans for a long time to support Unicode in the XP Framework - our RFC titled "Unicode" dates back to December, 2007. Now, finally, to kickstart development, we've created a Unicode branch from current trunk, meaning this is an XP 5.8.0-dev with Unicode support. There is no release yet, so to give it a test run, you will need a checkout:

  # Developer
$ svn co svn+ssh://$(USER)@svn.xp-framework.net/home/svn/xp/branches/unicode/

# Anonymous
$ svn co svn://svn.xp-framework.net/xp/branches/unicode
The big changes in this branch are that all stream classes now return lang.types.Bytes instances, and all readers return lang.types.String instances, to be able to separate bytes from characters (in single-byte characters sets such as iso-8859-1, this is the same, in Unicode it isn't.


You can subscribe to the XP framework's news by using RSS syndication.


Further reading