Migration from 2014.r2.4 to 2015.r1

Overview of the most important changes and notes for the migration from 2014.r2.4 to 2015.r1.

Processing

  • Casting: In the new version a cast on an operation determines not only the result size, but also the operation to use. Example: word(word+integer): Previously: int32 addition with result long, now: Explicit word addition.
  • Functions: The former internally built-in dump- and string-functions have been outsourced as an external standard library (automatically included). With Dump therefore changes the syntax of example „dump vars“ to „dump.vars“. The automatically integrated standard libraries are now placed in the new folder „LibraryStd“.
  • Optimimizing: Integrated library elements are now completely excluded from the optimization, as this could lead to errors.

New/Changed

  • Bits read/write - Now also available for structural elements.
  • InitialValue - In dim and Methods - parameters, a default value can now be set, eg „dim a as byte = 123“ or Methods „mymethod (a as byte, b as integer = 1234)“.
  • Method-Assignment - By specifying the keyword Assigns the last parameter of a method in the source code assigns a value. Example: „mymethod (a as byte, assigns b as integer)“.
  • Method-Overloading - There are now several methods are created with the same name but different parameters / return values (including libraries). The call then determines which of the methods used. For example, a method „Value ()“ function and once again as a Procedure.
  • Inline-Methods - Methods can be now defined es inline-methods (like C++), the code is then placed directly on the call position.
  • Instantiable object libraries - There are two new variants of a library called „.type“ and „.object“. With these types of libraries can be at Luna code directly usable own data types and/or instantiated to create objects. See the examples for sample libraries „xstring.object“ and „uint64.type“ in „/Library/Example/“.
  • Structures: - Structure declarations are now also used by the class name. A double declaration of a structure such as inside and outside of a class is now no longer necessary.
  • Macros: - You can now define and use macros in luna code, like the macros in Luna-Assembler.
  • Library:
    • The library „FastFourier.interface“ is outdated/faulty, It was replaced by the new library „FFT.interface“ with faster, more accurate and better processing.
    • The library documentations are now placed directly in the library and the library editor are extended witch a Doku Editor.
    • The former internally available Graphics-Object was outsourced as an external library.
  • Controller: It added new controller: Attiny441/841, atmega165/325/645/a/pa/v
  • IDE control from the source code: The statement #ide controlles the IDE.