This repository was archived by the owner on Mar 8, 2020. It is now read-only.
v2.0.2
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) andChildrenOrder(to traverse only the immediate children for a node from left to right) and solve memory leaks. - Adds plugins to ease development:
sbt-gitto take the version to release automatically from the git history andsbt-jnito 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).
ContextExtdid not free native memory.BblfshClient.decodemethod used a lot of native memory (due to aniodirect 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 : ContextExtand got aNodeExtorUastIterExtfrom it and the GCctx, 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.