This repository has been 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-git
to take the version to release automatically from the git history andsbt-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 anio
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 aNodeExt
orUastIterExt
from 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.