e001_version_0_8_6.rst 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. 2009-12-21 Version 0.8.6 released
  2. =================================
  3. .. container:: metadata
  4. Posted by Andreas Rumpf on 21/12/2009
  5. The version jump from 0.8.2 to 0.8.6 acknowledges the fact that all development
  6. of the compiler is now done in Nimrod.
  7. Bugfixes
  8. --------
  9. - The pragmas ``hint[X]:off`` and ``warning[X]:off`` now work.
  10. - Method call syntax for iterators works again (``for x in lines.split()``).
  11. - Fixed a typo in ``removeDir`` for POSIX that lead to an infinite recursion.
  12. - The compiler now checks that module filenames are valid identifiers.
  13. - Empty patterns for the ``dynlib`` pragma are now possible.
  14. - ``os.parseCmdLine`` returned wrong results for trailing whitespace.
  15. - Inconsequent tuple usage (using the same tuple with and without named fields)
  16. does not crash the code generator anymore.
  17. - A better error message is provided when the loading of a proc within a
  18. dynamic lib fails.
  19. Additions
  20. ---------
  21. - Added ``system.contains`` for open arrays.
  22. - The PEG module now supports the *search loop operator* ``@``.
  23. - Grammar/parser: ``SAD|IND`` is allowed before any kind of closing bracket.
  24. This allows for more flexible source code formating.
  25. - The compiler now uses a *bind* table for symbol lookup within a ``bind``
  26. context. (See `<manual.html#templates>`_ for details.)
  27. - ``discard """my long comment"""`` is now optimized away.
  28. - New ``--floatChecks: on|off`` switches and pragmas for better debugging
  29. of floating point operations. (See
  30. `<manual.html#pre-defined-floating-point-types>`_ for details.)
  31. - The manual has been improved. (Many thanks to Philippe Lhoste!)
  32. Changes affecting backwards compatibility
  33. -----------------------------------------
  34. - The compiler does not skip the linking step anymore even if no file
  35. has changed.
  36. - ``os.splitFile(".xyz")`` now returns ``("", ".xyz", "")`` instead of
  37. ``("", "", ".xyz")``. So filenames starting with a dot are handled
  38. differently.
  39. - ``strutils.split(s: string, seps: set[char])`` never yields the empty string
  40. anymore. This behaviour is probably more appropriate for whitespace splitting.
  41. - The compiler now stops after the ``--version`` command line switch.
  42. - Removed support for enum inheritance in the parser; enum inheritance has
  43. never been documented anyway.
  44. - The ``msg`` field of ``system.E_base`` has now the type ``string``, instead
  45. of ``cstring``. This improves memory safety.