Skip to content

Latest commit

 

History

History
25 lines (21 loc) · 1.76 KB

CHANGELOG.md

File metadata and controls

25 lines (21 loc) · 1.76 KB

Changelog

vNEXT

Highlights 🎉

  • The JVM interface to Python has been completely rewritten from scratch to share all of its logic with the Scala Native backend by binding directly to CPython with JNA. This means that moving forward, ScalaPy JVM and Native will always have the same features and use near-identical logic for talking to Python libraries
  • Readers and Writers have been simplified to always work in terms of Python interpreter values, simplifying the implementation and reducing intermediate allocations

Breaking Changes ⚠️

  • The CPythonInterpreter object should now be used to access low-level interpreter functions instead of py.interpreter

Bug Fixes 🐛

  • Various reference count manipulation bugs have been fixed to ensure that Python values are not being leaked
  • Fix a segfault in Scala Native when the interpreter is initialized outside of a py.local { ... } block
  • Correctly handle reading a list-like object (such as a NumPy array) into a Seq

v0.3.0

Highlights 🎉

  • ScalaPy now has a website! Check it out at scalapy.dev
  • The py"" interpolator now makes it possible to interpret bits of Python code with references to Scala values

Breaking Changes ⚠️

  • py.Any is now the default type taken in and returned by operations
  • The apply method of py.Object to interpret abritrary strings has been replaced by the eval() method.
  • py.DynamicObject has been renamed to py.Dynamic to better match the Scala.js naming scheme
  • Casting to DynamicObject with .asInstanceOf[DynamicObject] has been replaced by just calling .as[Dynamic]
  • Facades are now declared as @py.native trait MyFacade extends Object { ... } instead of a class that extends ObjectFacade (which has been removed)