Hi,
My current diff to the svn is below (as in the chain of mails). Now i get
it to wrap my library in both 2.7, 3.5 and 3.6.
/Regards
Index: jcc2/__init__.py
===================================================================
--- jcc2/__init__.py (revision 1789413)
+++ jcc2/__init__.py (working copy)
@@ -20,7 +20,7 @@
from windows import add_jvm_dll_directory_to_path
add_jvm_dll_directory_to_path()
- from jcc2.config import SHARED
+ from jcc.config import SHARED
if SHARED:
path = os.environ['Path'].split(os.pathsep)
eggpath =
os.path.abspath(os.path.dirname(os.path.dirname(__file__)))
Index: jcc3/sources/functions.cpp
===================================================================
--- jcc3/sources/functions.cpp (revision 1789413)
+++ jcc3/sources/functions.cpp (working copy)
@@ -300,7 +300,7 @@
#if defined(_MSC_VER) || defined(__SUNPRO_CC)
int __parseArgs(PyObject *args, char *types, ...)
{
- int count = PY_SIZE((PyTupleObject *) args);
+ int count = Py_SIZE((PyTupleObject *) args); //WAS PY_SIZE
va_list list, check;
va_start(list, types);
Index: jcc3/sources/jcc.cpp
===================================================================
--- jcc3/sources/jcc.cpp (revision 1789413)
+++ jcc3/sources/jcc.cpp (working copy)
@@ -195,11 +195,11 @@
static PyObject *t_jccenv_strhash(PyObject *self, PyObject *arg)
{
- static const size_t hexdig = sizeof(uintmax_t) * 2;
- uintmax_t hash = (uintmax_t) PyObject_Hash(arg);
+ unsigned long long hash = (unsigned long long) PyObject_Hash(arg);
+ static const size_t hexdig = sizeof(hash) * 2;
char buffer[hexdig + 1];
- sprintf(buffer, "%0*"PRIxMAX, (int) hexdig, hash);
+ sprintf(buffer, "%0*llx", (int) hexdig, hash);
return PyUnicode_FromStringAndSize(buffer, hexdig);
}
Index: setup.py
===================================================================
--- setup.py (revision 1789413)
+++ setup.py (working copy)
@@ -158,7 +158,7 @@
'sunos5': ['-L%(sunos5)s/jre/lib/i386' %(JDK), '-ljava',
'-L%(sunos5)s/jre/lib/i386/client' %(JDK), '-ljvm',
'-R%(sunos5)s/jre/lib/i386:%(sunos5)s/jre/lib/i386/client'
%(JDK)],
- 'win32': ['/LIBPATH:%(win32)s/lib' %(JDK), 'Ws2_32.lib', 'jvm.lib'],
+ 'win32': ['/LIBPATH:%(win32)s/lib' %(JDK), 'Ws2_32.lib',
'jvm.lib','/DLL'],
'mingw32': ['-L%(mingw32)s/lib' %(JDK), '-ljvm'],
'freebsd7': ['-L%(freebsd7)s/jre/lib/i386' %(JDK), '-ljava',
'-lverify',
'-L%(freebsd7)s/jre/lib/i386/client' %(JDK), '-ljvm',
On Thu, Mar 30, 2017 at 5:36 PM, Petrus Hyvönen <[email protected]>
wrote:
> Hi,
>
> I was trying the python 2.7 build and I think the line 23 in
> jcc2/__init__.py should be:
>
> from jcc.config import SHARED
>
> (instead of from jcc2.config import..)
>
> Regards
> /Petrus
>
>
> On Thu, Mar 30, 2017 at 9:10 AM, Petrus Hyvönen <[email protected]>
> wrote:
>
>> Hi,
>>
>> With this version of of t_jccenv_strhash I can build both JCC and wrap
>> the library I'm using!
>>
>> Regards
>> /Petrus
>>
>>
>>
>>>
>>>
>>>> static PyObject *t_jccenv_strhash(PyObject *self, PyObject *arg)
>>>> {
>>>> unsigned long long hash = (unsigned long long) PyObject_Hash(arg);
>>>> static const size_t hexdig = sizeof(hash) * 2;
>>>> char buffer[hexdig + 1];
>>>>
>>>> sprintf(buffer, "%0*llx", (int) hexdig, hash);
>>>> return PyUnicode_FromStringAndSize(buffer, hexdig);
>>>> }
>>>>
>>>> BTW this function should be also copied to the py2 directory where we
>>>> still use int allthough PyObject_Hash returns already long on python
>>>>
>>>>> 2.x.
>>>>>
>>>>
>>>> cu,
>>>> Rudi
>>>>
>>>>
>>>>
>>
>>
>> --
>> _____________________________________________
>> Petrus Hyvönen, Uppsala, Sweden
>> Mobile Phone/SMS:+46 73 803 19 00 <073-803%2019%2000>
>>
>
>
>
> --
> _____________________________________________
> Petrus Hyvönen, Uppsala, Sweden
> Mobile Phone/SMS:+46 73 803 19 00 <073-803%2019%2000>
>
--
_____________________________________________
Petrus Hyvönen, Uppsala, Sweden
Mobile Phone/SMS:+46 73 803 19 00