Skip to content
Snippets Groups Projects
  1. Feb 14, 2020
  2. Jan 07, 2020
  3. Nov 21, 2019
    • xentrac's avatar
      Get JNI shared library to build with SCons · 2fd2a1d8
      xentrac authored
      This was a real adventure since I didn’t know anything about SCons, and
      I can’t say that I’m fond of scons after it, but it does seem to work.
      There were two obstacles.
      
      First, the ConfigureJNI module doesn’t successfully configure the JNI on
      my system because it was expecting to find `JAVA_HOME` in .., so I added
      a little code to notice if it’s failing to find a place where `jni.h`
      exists.  (And on my system I did `export
      JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64` before running it, but your
      pathnames will vary.)  There was a hardcoded pathname in SConscript,
      presumably as an interim debugging measure, which I removed.  A
      reasonable default to try on Debian-derived systems such as Ubuntu and
      LinuxMint might be `/usr/lib/jvm/default-java`, but I didn’t implement
      that.
      
      Second, in SConscript, the JNI include directories were being stuck into
      a `javaenv` SCons environment object, which was used to build the Java
      classes providing the Java interfaces to Hammer, but not the C files
      containing the native methods themselves.  Consequently the compiler
      couldn’t find the JDK JNI headers when it tried to compile the C code
      into a shared library.  It might make sense to use `javaenv` to compile
      that shared library, but in case it doesn’t, I cloned the default
      environment with an extra include directory.
      
      I hope this is soon enough to be helpful!
      2fd2a1d8
  4. Nov 19, 2019
  5. May 10, 2019
    • Alex Willmer's avatar
      Use byte literals in examples and unit tests · 59ba68ef
      Alex Willmer authored
      In Python 2.x an unprefixed string literal produces a byte string.
      In Python 3.x an unprefixed string literal produces a textual string.
      
      To produce a byte string in both a b prefix is needed, e.g. b'foo'.
      Since I believe Hammer works predominantly with byte strings I have used
      b prefixes throughout.
      59ba68ef
    • Alex Willmer's avatar
      Use PyBytes_* Python CAPI functions · 8b4b8ddc
      Alex Willmer authored
      This removes any doubts about what type of string is in use.
      8b4b8ddc
    • Alex Willmer's avatar
      Allow Python interpreter to be specified during build · c8239094
      Alex Willmer authored
      This allows the library to be built and tested with a non-default
      version of CPython, e.g.
      
      scons bindings=python python=python3.6
      scons bindings=python python=python3.6 testpython
      c8239094
    • Alex Willmer's avatar
      Fix uses of retired builtins and builtin methods · 287f71d5
      Alex Willmer authored
      In Python 3.x
      
      - int and long types are unified. The unified type is called int.
      - the text string type (unicode) is renamed to str.
      - the byte string type (str) is renamed to bytes.
      - chr returns a text string (i.e. str)
      - xrange is renamed to range.
      - dict.has_key() is removed
      -
      287f71d5
    • Alex Willmer's avatar
      Enable absolute imports, true division, & print() · 0f3cadcc
      Alex Willmer authored
      These have no effect in Python 3.x, they are the default. Enabling them
      in Python 2.x, enabling them in Python 2.x allows single source
      compatiblity.
      0f3cadcc
  6. Nov 06, 2016
  7. Oct 25, 2016
  8. Sep 11, 2016
  9. Sep 09, 2016
  10. Feb 25, 2016
  11. Aug 09, 2015
  12. Aug 02, 2015
  13. Mar 19, 2015
  14. Mar 18, 2015
  15. Mar 17, 2015
  16. Jan 16, 2014
Loading