Skip to content

Latest commit

 

History

History
144 lines (102 loc) · 4.34 KB

CHANGELOG.md

File metadata and controls

144 lines (102 loc) · 4.34 KB

Cycept changelog


🚀 0.0.6 — 2023-07-20

🤖 Tests

  • Added test_leibniz to performance test suite.
  • Fixed problem with test_wallis for 32-bit systems.

🐛 Bugs fixed

  • Fixed double popping of '__cycept__' from call.module_dict (#1).

👌 Other changes

  • Safer version detection.

Commits since 0.0.5




🚀 0.0.5 — 2023-05-14

✨ Features

  • Support for Unicode variable names.

🤖 Tests

  • Proper silencing of unwanted output in performance test suite.
  • Added test_trapz to performance test suite.
  • Added test_nbody to performance test suite.
  • Added test_array_1 to performance test suite.

👌 Other changes

  • Better support for closures and classes.

Commits since 0.0.4




🚀 0.0.4 — 2023-04-19

✨ Features

  • Added cycept.check() for quickly checking whether Cycept functions correctly.
  • Functions can now be re-jitted (g = jit(f); h = jit(f)).

⚡ Optimizations

  • Improved array attribute lookup.
  • Improved proof system for array scalar indexing.

🤖 Tests

  • More correct, efficient and elegant performance test suite.
  • Added test_mandelbrot to performance test suite.

👌 Other changes

  • Safer context managers throughout.

Commits since 0.0.3




🚀 0.0.3 — 2023-04-16

✨ Features

  • It is now possible to transpile to C++ rather than C (the c_lang option of @jit).

⚡ Optimizations

  • Improved system for compiler optimizations.
  • Now generates optimal code for chained array indexing.

🔧 Portability

  • Now uses setuptools and Cython.Distutils instead of distutils.
  • Improved packaging.

🤖 Tests

  • Added performance test suite.
  • Added more unit tests.

Commits since 0.0.2




🚀 0.0.2 — 2023-04-12

✨ Features

  • More array/memoryview operations allowed:
    • Comparisons (arrays).
    • Scalar indexing (memoryviews).
  • New @jit options integral, floating and floating_complex for overwriting the default Cython types used for the Python types int, float and complex.
  • Compilation times are now measured and stored as FunctionCall.time.

🔧 Portability

  • Support for Windows.
  • Better support for macOS.
  • Better support for Python 3.9.
  • Available NumPy types now checked at runtime.
  • Support using tomli and toml if tomllib is missing (Python < 3.11).

🐛 Bugs fixed

  • NumPy Boolean arrays now correctly translated to Cython memoryviews.

👌 Other changes

  • Compiler error messages are now also suppressed when running silently.

Commits since 0.0.1




🚀 0.0.1 — 2023-04-11

✨ Features

  • @jit decorator powered by Cython.
  • Automatic type inference
    • Python types (str, list, dict, ...)
    • C/Cython types (cython.Py_ssize_t, cython.double, ...).
  • Manual type annotations using PEP 484 and PEP 526.
  • NumPy arrays treated as memoryviews when possible, while still supporting NumPy array operations.
  • Source code extraction possible for lambda functions.
  • Jitting of closures supported.
  • Easy viewing of generated code in the browser via func.__cycept__().
  • Available options to jit:
    • compile: Used to disable the jitting.
    • silent: Used to display compilation text.
    • checks: Used to enable certain runtime checks.
    • clike: Used to change certain Python semantics to C semantics.
    • array_args: Used to allow using memoryviews as function arguments.
    • directives: Used to specify Cython directives.
    • optimizations: Used to set C compiler optimizations.
  • Test suite.