-
Fix memory leak with str(list) (#169).
mknkmyza
-
Fix SEGV occured on Ruby process finalization.
-
Fix for supporting Ruby >= 3.3.
-
Fix for supporting Python >= 3.2.
-
Fix memory leak in rich compare methods (#167, #168).
mknkmyza
-
Fix to prevent distutils deprecation warning (#159)
Christopher Dilks
-
Drop Python 2.7 support
-
Fix memory leak of Python objects. (#129) This should fixes #128 and maybe also fixes #164.
mknkmyza
- Add supports of unary operators:
+@,-@,~ - Fix
without_gvlfor exceptions occurred in the given block - Add PyCall.setattr and PyCall.delattr
- Fix SEGV occurred on Windows
- Add PyCall.iterable
- Explicitly states that Windows is not supported yet in README
- Add PyCall.same?
- Improve conda support
- Fat gem is no longer supported
- Use WeakMap for caching PyPtr instances
-
Stop using
&procidiom to prevent warningsKenta Murata
-
Add
PyCall.without_gvlfor explicitly releasing the RubyVM GVL -
Fix for missing if in PyObjectWrapper
Kouhei Sutou
-
Fix for Anaconda environment
Ryo MATSUMIYA
-
Fix against
unknown symbol "PyInt_AsSsize_t"(Fiddle::DLError)Kouhei Sutou
-
Fix for
TypeError: Compared with non class/moduleArchonic
- Prevent circular require in pycall/iruby.rb
-
Add
PyCall::Tuple#to_aryNaoto Takai
-
Release GVL while the Python interpreter is running
-
Drop support Ruby 2.2.x and 2.1.x
-
Release GVL while the Python interpreter is running [Fix #45]
-
Add public header file
-
Use PyPtr.none? instead of removed PyCall.none?
Kouhei Sutou
-
Export PyObject convert functions
Kouhei Sutou
-
Support multiple candidates of Python command in
PyCall.init -
Now,
PyCall.inittriespython3command beforepythonin default -
Drop Ruby 2.2 and 2.1 supports
-
Add
PyCall::PyTypeObjectWrapper#<asClass#< -
Support class inheritance in python type mapping
- Fix anaconda support to define the environment variable
PYTHONHOME. #37
- Fix the bug that a large Python string is broken when it converted to Ruby string #32
- Add PyTypeObject#===.
-
#[]and#[]=accept aRangeand anEnumerable, which is genated byRange#step, as a slice. -
Rewrite almost all fundamental parts of PyCall as C extension.
-
PyCall now calls
Py_DecRefin the finalizer ofPyCall::PyPtr. -
Change the system of object mapping between Python and Ruby, drastically. Now PyCall does not have
PyObjectclass for wrapper objects. Instead, PyCall generally makesObjectinstances and extends them byPyObjectWrappermodule. But for Python module objects, PyCall makes anonymousModuleinstances that are extended byPyObjectWrappermodule. Moreover for Python type objects, PyCall makesClassinstances and extends them byPyTypeObjectWrappermodule. -
Change
PyCall.evalto be a wrapper of__builtins__.evalin Python. This means thatfilename:andinput_type:parameters are dropped. Instead, two new parametersglobals:andlocals:are introduced.globals:is used for specifying a dictionary that is the global namespace referred by the evaluated expression.locals:is used for specifying a mapping object that is the local namespace referred by the evaluated expression. -
Add
PyCall.execfor the replacement of the formerPyCall.evalwithinput_type: :file. It hasglobals:andlocals:parameters for the same meaning as the newPyCall.evaldescribed above. -
Drop
PyCall.wrap_ruby_callableandPyCall.wrap_ruby_objectalways craetes a callable Python object taht has an ID of the given Ruby object.