-
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_gvl
for 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
&proc
idiom to prevent warningsKenta Murata
-
Add
PyCall.without_gvl
for 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/module
Archonic
- Prevent circular require in pycall/iruby.rb
-
Add
PyCall::Tuple#to_ary
Naoto 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.init
triespython3
command beforepython
in 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
. mrkn#37
- Fix the bug that a large Python string is broken when it converted to Ruby string mrkn#32
- Add PyTypeObject#===.
-
#[]
and#[]=
accept aRange
and anEnumerable
, which is genated byRange#step
, as a slice. -
Rewrite almost all fundamental parts of PyCall as C extension.
-
PyCall now calls
Py_DecRef
in the finalizer ofPyCall::PyPtr
. -
Change the system of object mapping between Python and Ruby, drastically. Now PyCall does not have
PyObject
class for wrapper objects. Instead, PyCall generally makesObject
instances and extends them byPyObjectWrapper
module. But for Python module objects, PyCall makes anonymousModule
instances that are extended byPyObjectWrapper
module. Moreover for Python type objects, PyCall makesClass
instances and extends them byPyTypeObjectWrapper
module. -
Change
PyCall.eval
to be a wrapper of__builtins__.eval
in 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.exec
for the replacement of the formerPyCall.eval
withinput_type: :file
. It hasglobals:
andlocals:
parameters for the same meaning as the newPyCall.eval
described above. -
Drop
PyCall.wrap_ruby_callable
andPyCall.wrap_ruby_object
always craetes a callable Python object taht has an ID of the given Ruby object.