Child pages
  • What's new in MPS 2018.3 (draft)

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Importing from solution to build script tips & tricks by pointing to solution and generated xml from MPSTipsAndTricks concept:

Fully compiled datatypes

Moving forward to fully compiled languages we've made datatypes to be completely generated. All generated information regarding datatypes is now available from SModel API.

New generation facilities for BaseLanguage extensions

BaseLanguage is intended to be customized with lots of extensions. However, for some extensions, it is tricky to implement proper generator especially when you have to consider that there are some other independent extensions can be instantiated in a model. Now BaseLanguage provides new several generation-time concepts to make writing extensions' generators easier for some cases.

Generating of lvalue-expressions. Lvalue expressions are such expressions that are evaluated to variables which can be read or written with some value. For some cases generation of lvalue-expression become hard since it might depend on in what context the expression is used. Now new `generic lvalue-expression` generation-time concept can be utilized to make a generator simpler and context-unaware.

Image Added

Transform lvalues to references. Some expressions aggregate other lvalue-expressions to make compound operations with a variable that is produced from aggregated expression (e.g. plus assignment or increment and get expressions). Introducing new expressions with such semantics had been unfeasible since it is hard to write a proper generator for such constructions. Fortunately, in new release you can wrap arbitrary lvalue-expression with `@byRef` expression so then baseLanguage generator will transform wrapped expression into expression of type `Reference<T>` that provides get and set operations over a wrapped variable.

Image Added

Both introduced generation-time concepts have described in this article.