Skip to content

Releases: digikar99/py4cl2

v2.9.3

26 Apr 10:27
Compare
Choose a tag to compare

Fixes:

  • Handle multithreading in python: add locks for send_value and LispCallbackObject
  • Launch python with :sharing :lock. This is used on CCL and has enabled (with-python-output ...) on CCL.

v2.9.2

20 Apr 06:08
Compare
Choose a tag to compare

Additions: Run additional code after python startup using *additional-init-codes*.

v2.9.1

20 Dec 10:50
Compare
Choose a tag to compare

Fixes:

  • Infinities and NaNs should be handled better through float-features.
  • Calling python from multiple threads should no longer lead to race conditions
  • Windows: mysterious freezes should no longer be a problem

v2.9.0

04 Nov 19:22
Compare
Choose a tag to compare

Breaking Change:

  • get-unique-symbol is now also called for classes; this was necessary because certain python packages like meep have classes named both by camelCase as well as by snake_case, leading to name collisions.

Additions:

  • Add *pythonizers* and with-pythonizers to control how lisp objects are converted to python. This is complementary to *lispifiers* and with-lispifiers that control how python objects are converted to lisp. All of these are still declared to be experimental though.
  • Add *print-python-object* to decide if str representation of python objects is printed in the cases when handle is returned.
  • Add print-python-traceback as a config-var to decide if the traceback is printed along with the python errors.

Fixes:

  • Resolve "stream is private to process" issue on CCL (thanks to this stackoverflow thread!)
  • raw-pyeval now provides a raw-pyexec restart as a potential way to "fix" syntax errors.

v2.8.0

27 Jun 19:41
Compare
Choose a tag to compare

Breaking Additions:

  • Remove *arrayfiers* and *array-type*: replace with *lispifiers* and with-lispifiers; note about instability of these symbols has been added

Potentially non-breaking additions:

  • Add :cache and :recompile-on-change option to defpymodule to allow non-cached versions as well as better handle cached versions (see #13 for an elaborate discussion)
  • Use :py4cl2 package in load-config instead of *package*
  • Do away with some asdf:load-system warnings
  • defpymodule should now work correctly with *print-case* bound to :downcase

v2.7.0

07 Feb 09:05
Compare
Choose a tag to compare

Breaking Fixes:

  • Use a better method instead of kludges for importing arguments. Thanks to rpgoldman for pointing out! However, this at least breaks matplotlib.pyplot.
  • No reports have been obtained for ABCL so far; so, support for ABCL has been dropped; instead developer time would be spent on ensuring things work on Windows; ABCL support will be added back in case someone reports an issue

Other Fixes and Additions:

  • Locally enable UTF8 support for Windows
  • Add (setf pyslot-value)

py4cl2-tests: https://github.com/digikar99/py4cl2-tests/releases/tag/v2.7.0

v2.6.0

19 Dec 08:14
Compare
Choose a tag to compare

Possibly Breaking Change:

  • Addition of *internal-features* and *warn-on-unavailable-feature-usage*: the latter has a default value of T since I think signalling a warning is beneficial for new users. Old users simply need to set this to nil.

Other fixes and improvements:

  • Now signals python-eof-but-alive and python-eof-and-dead errors instead of the simple but mysterious cl:end-of-file.
  • Tests are separated into a separate repository to aid quicklisp
  • Added python-setattr from bendudson/py4cl
  • Applied fix concerning scope of exec from bendudson/py4cl
  • Except arrays, works without numpy

v2.5.0

08 Nov 21:44
Compare
Choose a tag to compare

Possibly breaking change:

  • To be able to load networkx required argument symbols to be ensure-uniqued

Other fixes:

  • surround defpyfun form with continue-ignoring-errors restart on non-ECL
  • fix control stack exhaustion due to recursive calls between delete-freed-python-objects and pyexec

v2.4.1

06 Sep 07:54
Compare
Choose a tag to compare

User-facing fixes:

  • allow lispfication of numpy.dtype('object') - so multidimensional arrays with element-type t should work again
  • should work on Windows (thanks to Jason Chandler for the follow-ups!); however, embedding-into-image is not yet possible; no support for process interrupts either; these are mentioned in the docs
  • some hacky fixes to with-python-output to make it a bit more "robust"
  • it should now be okay for the pathname of the py4cl2 directory to contain "(", ")", "`"

v2.4.0

22 Jul 12:19
Compare
Choose a tag to compare

Breaking Changes

  • Remove "py4cl2+numcl" system with the more general *arrayfiers* and *array-type*: symbols use-numcl-arrays and with-numcl-arrays are removed. You should not face any problems with this if you are upgrading from v2.2.2 or before.

Possibly Breaking Changes/Fixes

  • vectors of element-type t will be converted to python lists; others will be converted to numpy
  • Preserve Array and Number Types: compulsorily requires numpy
    • single-float maps to numpy.float32; double-float maps to python's usual float
    • specialized arrays with support for type ((un)signed-byte XX) where XX can be (08 16 32 64); single-float, double-float or bit.

Non breaking Fixes

  • Improve error reporting of python-process-startup-error
  • Fix #3 - maintain consistency in pycall, pymethod and pyslot-value