Skip to content
This repository has been archived by the owner on Mar 8, 2020. It is now read-only.

v2.0.2

Compare
Choose a tag to compare
@ncordon ncordon released this 28 Aug 18:39
· 40 commits to master since this release

Summary

  • Solves several memory leaks and SIGSEVs in the client.
  • Bumps libuast version. Changes include new supported orders for traversing a tree: AnyOrder (we do not give assurances on this order, only that it traverses all the nodes) and ChildrenOrder (to traverse only the immediate children for a node from left to right) and solve memory leaks.
  • Adds plugins to ease development: sbt-git to take the version to release automatically from the git history and sbt-jni to ease development with JNI.
  • v2.0.1 did not make it to Maven due to difficulties with build process for macOs and this release supersedes it (#123). This version includes the fix for a linking error with CGO libraries (#119)

Fixed memory leaks

  • Leaks included in former versions of libuast.
  • Improves objects management in the native code, taking better care of global references (some of them were not deleted) and improving the caching strategy which could generate memory leaks (#113, #116).
  • ContextExt did not free native memory.
  • BblfshClient.decode method used a lot of native memory (due to a nio direct buffer used inside, which uses normal heap space) which was not freed until JVM heap was full and GC (Garbage Collector) was triggered.
  • If we used a ctx : ContextExt and got a NodeExt or UastIterExt from it and the GC ctx, we could provoke SIGSEVs.

Known issues

  • There are some linking problems with older macOS versions (probably 10.11 backwards) due to the need to adjust backward compatibility when compiling libuast (libuast#111)
  • As noted in previous versions, pending improvements for v2.1.0.