fastutil-core.8.5.6.source-code.split.sh Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of fastutil-core Show documentation
Show all versions of fastutil-core Show documentation
fastutil extends the Java Collections Framework by providing type-specific maps, sets, lists, and queues with a small memory footprint and fast operations; it provides also big (64-bit) arrays, sets, and lists, sorting algorithms, fast, practical I/O classes for binary and text files, and facilities for memory mapping large files. This jar (fastutil-core.jar) contains data structures based on integers, longs, doubles, and objects, only; fastutil.jar contains all classes. If you have both jars in your dependencies, this jar should be excluded.
#!/bin/bash -e
TMPFILE=$(mktemp)
\ls -1 build/it/unimi/dsi/fastutil/*.class build/it/unimi/dsi/fastutil/io/*.class | cut -d/ -f2- >$TMPFILE
find build/it/unimi/dsi/fastutil/* -type f -iname \*.class -not -iname \*Short\* -not -iname \*Char\* -not -iname \*Boolean\* -not -iname \*Byte\* -not -iname \*Float\* -not -iname \*Reference\* | cut -d/ -f2- >>$TMPFILE
# Expand direct dependencies until stability
export N=0
while [[ $N != $(sort -u $TMPFILE | wc -l) ]]; do
N=$(sort -u $TMPFILE | wc -l)
jdeps -v -R -e 'it\.unimi\.dsi\.fastutil($|.*)' -classpath build $(sort -u $TMPFILE | while read F; do echo "build/$F"; done) | awk '/build -> build/ {exit} { if (NF == 4) print gensub(/\./, "/", "g", $3) ".class" }' >>$TMPFILE
done
sort -u $TMPFILE >fastutil-core.txt
echo "Classes in build:" $(find build -iname \*.class | wc -l)
echo "Classes in core:" $(wc -l fastutil-core.txt)
while read CLASS; do SOURCE=${CLASS%.class}.java; if [ -f src/$SOURCE ]; then echo $SOURCE; fi; done < fastutil-core.txt > fastutil-src-core.txt
echo "Source files in src:" $(find src -iname \*.java | wc -l)
echo "Source files in core:" $(wc -l fastutil-src-core.txt)