Language

XP Language and compiler, 1.10.2-RELEASE

at 2013-05-20 in ReleasesLanguage by friebe

We are proud to announce the immediate availability of XP Language and compiler, version 1.10.2. This release contains a bugfix for fatal error during compilation of the following:

  class Test {
public
static [:ChangeLogParser] $changeLogs= [
'ChangeLog.md' : new MarkdownChangeLogParser(),
'ChangeLog' : new DefaultChangeLogParser()
];
}
Upgrade using xpi upgrade xp-framework/xp-language.



XP Language and compiler, 1.10.1-RELEASE: xcc -e

at 2013-05-14 in ReleasesLanguage by friebe

We are proud to announce the immediate availability of XP Language and compiler, version 1.10.1. This release includes:

  • RFC #0249: Exponentiation operator. See here for details.
  • RFC #0238: xcc -e and xcc -w (command line code evaluation). See here for details.
  • Various bugfixes for PHP syntax
  • A command line option -q which will show only compilation errors
Upgrading / installation is done via XPI.



XP Language and compiler, 1.10.0-RELEASE: Compact syntax

at 2013-05-12 in ReleasesLanguage by friebe

After the release candidate two days ago, the XP group is proud to announce the immediate availability of the XP Language and compiler, version 1.10.0. This release includes:

  • Compact method, assignment and fluent interface syntax (the implementations of RFC #0240, #0241 and #0252. For details, see here
  • A dependency on XP 5.9.1 due to the usage of parameterized unittests. See the release announcement
  • Bugfixes for errors resolving abstract enums, problems with PHP 5.3

Furthermore, the complete code base has been converted to PHP 5.3 namespaces and the new coding standards.

Upgrading / installation is done via XPI. Enjoy:-)



RFC #0238: xcc -e

at 2013-05-12 in RFCsLanguage by friebe

Scope of Change
In conjunction with xp -e and unittest -e, this RFC proposes to add xcc -e.

Rationale
Support what both of the other runners already do, evaluate sourcecode directly as the fastest way to discover "what something does".

Read the full RFC here



RFC #0250: Static import syntax change

at 2013-05-12 in LanguageRFCs by friebe

Scope of Change
The XP language's static import syntax will be changed to be consistent with static member access and use the double colon operator ::

Rationale
Consistency

Read the full RFC here



RFC #0249: Exponentiation operator (XP Language)

at 2013-05-12 in RFCsLanguage by friebe

Scope of Change
A new operator for exponentiation will be added and will replace the pow() function.

Rationale
Better transportability to any platform.

Read the full RFC here



XP Language and compiler, 1.10.0RC1: Compact syntax

at 2013-05-10 in ReleasesPHP5Language5.9-SERIES by friebe

After releasing version 1.9.0 last week, we've finally pushed forward the long-planned "compact syntax" feature which allows you to write value objects more concisely.

  public class Person {
protected string
$name;

public __construct
($this.name) { }
public void setName
($this.name) { }
public this withName
($this.name) { }
public string getName
() -> $this.name;
}
For details, see this pull request.

Upgrading / installation is done via XPI.



XP Compiler, 1.9.0

at 2013-05-05 in ReleasesLanguageAnnouncements5.9-SERIES by friebe

The XP group is proud to announce the immediate availability of XP Compiler, r1.9.0. This release is the first release to depend on XP 5.9.0 (hence we use the .9.0 in the version to give a hint) and the first in the now-separated release cycle. Besides this infrastrure change, this release includes support for the self keyword in parameters and return types and a bugfix for uniqid() no longer generating unique ids.

XP Language is available as an "xpi"-installable module named xp-framework/xp-language.



XP Compiler on Travis

at 2013-05-05 in UnittestsLanguage by friebe

TravisOn a short note: Just like any part of XP Technologies, the XP Language and its compiler are unittested. And since today, these tests are also run on Travis-CI.



Happy 5th birthday, XP Language

at 2013-01-03 in Language by friebe

Happy birthdayWhile changing the default branch to XP 5.9 today and in the same course separating compiler and framework versions, I performed some research on the compiler in old SVN checkouts, extracting the information from SVN commit messages in order to reconstruct the ChangeLog.

While doing so, I found out that XP Language turns 5 years old! On the date today, a prototype and a proof of concept was committed to the experiments directory. Happy birthday!

The idea goes back a while farther though: In 2004, Alex and me worked on what we then called "The patch". The patch was a fork of PHP, with namespaces, enums, annotations, operator overloading, and more, written in C and maintained as "diff" against "php-src". Later in 2005, this was discontinued due to the immense efforts it was causing to upkeep a patch which would cleanly apply. In 2006, efforts were reinstated in form of RFC #0052, with the goal of writing a compiler which would compile to PHP. It took two more years to actually get started (we were busy with changing over to PHP 5 at that time), but then we restarted on what nowaday's ChangeLog lists as version 0.0.1.

From there on, it took us an instructional but in the long term failed detour into the to realm of bytecode compilation to complete the first version, which we then released together with XP 5.8.0 in 2011.

There's more to come - now that framework and language release cycles have been separated, the compiler can be developed in larger steps more quickly. Some of the features to look out for are a series of compact syntax features.



Subscribe

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


Categories

News
General
PHP5
Announcements
RFCs
Further reading
Examples
Editorial
EASC
Experiments
Unittests
Databases
5.8-SERIES
Unicode
Language
5.9-SERIES