a DSL for writing rules for Xtext languages
Header

Xsemantics 1.6.1

October 27th, 2014 | Posted by lorenzo in News - (Comments Off)

Xsemantics 1.6.1 built using the new Xtext 2.7.2 has been released (these issues were addressed: https://github.com/LorenzoBettini/xsemantics/issues?q=milestone%3A1.6.1+is%3Aclosed+):

Version 1.6.x (requires Xtext >= 2.7.0 and Xcore >= 1.2.1)

  • With mirrors: http://sourceforge.net/projects/xsemantics/files/updates/releases/1.6
  • Main site: http://master.dl.sourceforge.net/project/xsemantics/updates/releases/1.6

BACKPORTS (Temporary): Version 1.6.x (requires Xtext >= 2.6.2)

  • With mirrors: http://sourceforge.net/projects/xsemantics/files/temp-backports/1.6
  • Main site: http://master.dl.sourceforge.net/project/xsemantics/temp-backports/1.6

Note that these are only temporary backports of all the features in version 1.6 compiled against Xtext 2.6.2. These backports are not meant to be maintained in the long term. IMPORTANT: please have a look at the API breaking changes in the following.

ATTENTION: there are some breaking changes in the runtime with respect to version 1.5.x:
  • a recompilation of .xsemantics files is required;
  • some classes in the runtime subpackages have been moved to the main runtime package (e.g., cache related classes and TraceUtils); if you were using such classes in your program a simple “Organize Imports” should fix the references.
Be Sociable, Share!

Xsemantics 1.6.0 for Xtext 2.7.2

September 30th, 2014 | Posted by lorenzo in News - (Comments Off)

Xsemantics 1.6 built using the new Xtext 2.7.2 has been released:

Version 1.6.x (requires Xtext >= 2.7.0 and Xcore >= 1.2.1)

  • With mirrors: http://sourceforge.net/projects/xsemantics/files/updates/releases/1.6
  • Main site: http://master.dl.sourceforge.net/project/xsemantics/updates/releases/1.6

ATTENTION: there are some breaking changes in the runtime:

  • a recompilation of .xsemantics files is required
  • some classes in the runtime subpackages have been moved to the main runtime package (e.g., cache related classes and TraceUtils); if you were using such classes in your program a simple “Organize Imports” should fix the references
  • RuleFailedException now extends RuntimeException so it is not a checked expression anymore (see https://github.com/LorenzoBettini/xsemantics/issues/36)

These are the issues that were also addressed: https://github.com/LorenzoBettini/xsemantics/issues?q=milestone%3A1.6.0+is%3Aclosed

Be Sociable, Share!

Snapshots for Xsemantics 1.6 for Xtext 2.7

September 11th, 2014 | Posted by lorenzo in News - (Comments Off)

Xsemantics 1.6 built using the new Xtext 2.7 hasn’t been released yet, but snapshots are available using this (probably temporary) update site:

http://master.dl.sourceforge.net/project/xsemantics/temp-snapshots

ATTENTION: there are some breaking changes in the runtime:

  • a recompilation of .xsemantics files is required
  • some classes in the runtime subpackages have been moved to the main runtime package (e.g., cache related classes and TraceUtils); if you were using such classes in your program a simple “Organize Imports” should fix the references
  • RuleFailedException now extends RuntimeException so it is not a checked expression anymore (see https://github.com/LorenzoBettini/xsemantics/issues/36)

These are the issues that were also addressed: https://github.com/LorenzoBettini/xsemantics/issues?q=milestone%3A1.6.0+is%3Aclosed

Be Sociable, Share!

Xsemantics 1.5 for Xtext 2.6.0

May 24th, 2014 | Posted by lorenzo in News - (Comments Off)

Xsemantics 1.5 has been released.  It is built against Xtext 2.6.0 (and it features ‘caching’ mechanism, see the fjcached example). See the download section for details.

Be Sociable, Share!

Xsemantics 1.4.3

February 23rd, 2014 | Posted by lorenzo in News - (Comments Off)

Some bugs were fixed in this release: https://github.com/LorenzoBettini/xsemantics/issues?milestone=1&page=1&state=closed

This was built using Xtext 2.5.2

Be Sociable, Share!

Xsemantics 1.4.0 for Xtext 2.5.0

December 11th, 2013 | Posted by lorenzo in News - (Comments Off)

Xtext 2.5.0 will be released tomorrow, but a version of Xsemantics for Xtext 2.5.0 is already available (many thanks to Sebastian Zarnekow for porting Xsemantics to Xtext 2.5.0).

Version 1.4.x (requires Xtext >= 2.5.0)

  • With mirrors: http://sourceforge.net/projects/xsemantics/files/updates/releases/1.4
  • Main site: http://master.dl.sourceforge.net/project/xsemantics/updates/releases/1.4
Be Sociable, Share!

Git repository moved to Github

October 22nd, 2013 | Posted by lorenzo in News - (Comments Off)

Xsemantics source repository has been moved to Github: https://github.com/LorenzoBettini/xsemantics

Be Sociable, Share!

Xsemantics 1.3.0 for Xtext 2.4.3

September 4th, 2013 | Posted by lorenzo in News - (Comments Off)

Xsemantics is finally available for Xtext 2.4.3.

Existing Xsemantics files should not need any modifications (though I experienced some problems with some particular lambda expressions where the correct parameter’s type could not be inferred). Of course, the generated Java code corresponding to your Xsemantics input files will be regenerated when you open the files with the new version of Xsemantics; that is the only thing that should be required.

See the Download section for updates.

Be Sociable, Share!

Xsemantics moving to Xtext 2.4

March 21st, 2013 | Posted by lorenzo in Uncategorized - (Comments Off)

Xtext 2.4 was released yesterday!

However, Xsemantics is still not ready for it (i.e., not compatible with it).

I’ve started the moving to Xtext 2.4, hope it will be ready soon :)

Be Sociable, Share!

Xsemantics 1.2.0

October 9th, 2012 | Posted by lorenzo in Uncategorized - (Comments Off)

In this new release there are some new features

Injected fields

It is now possible to define injected fields in the system; these will correspond to @Inject fields in the generated Java code. These fields will then be usable in the rules of the system

validatorExtends clause

When defining the system, one can specify the base class of the generated validator; this allows the generated abstract declarative validator to be used directly in your DSL (since it inherits all the basic settings required by a declarative validator). The idea is that you should specify as the base validator the one that Xtext generated for you in the src-gen folder.

System Extension

It is now possible to specify that a system extends another Xsemantics system (in the generated code this will correspond to class inheritance); with this feature is then possible to reuse all the judgments and rules of the base system, and also to override judgments and rules (besides specifying new rules for a judgment with more specific parameters)

When overriding a judgment, one can specify different error specifications (but the parameters types cannot be changed)

Auxiliary Functions

Besides judgments and rules, it is now possible to define auxiliary descriptions and the corresponding auxiliary functions, which can then be used in the system as standard Java methods.

Here’s an example of auxiliary descriptions

Once the auxiliary descriptions are provided you can define auxiliary functions implementations

Of course, for the same auxiliary description, multiple auxiliary functions implementations for different parameters can be provided

 

You can find all the details of these new features in the documentation (and in the examples).

Be Sociable, Share!