Skip to content

Releases: INRIA/spoon

Release Spoon 9.1.0

15 Sep 13:38
eccfec9
Compare
Choose a tag to compare

Spoon 9.0.0

18 Mar 14:24
5cd5fa1
Compare
Choose a tag to compare

Changelog #3845

Spoon 8.3.0

26 Oct 15:43
0270983
Compare
Choose a tag to compare

Changelog: #3647

Release of 8.2.0

29 Jul 07:27
7e9b1f3
Compare
Choose a tag to compare

Changelog: #3501

Release 8.1.0

23 Mar 16:10
10be860
Compare
Choose a tag to compare

Changelog: #3310

Release 8.0.0

06 Nov 15:07
Compare
Choose a tag to compare

New features

  • Add new variable refactoring class. (PR: #3162)
  • Add role EMODIFIER for extended modifier. (PR: #3098)
  • CtImportVisitor#visitUnresolvedImport. (PR: #3086)
  • DecompiledResource: Add a SpoonResource that can be used in any launcher. (PR: #3124)
  • SpoonifierVisitor: A visitor that generates the spoon code to recreate a spoon model. (PR: #3105)
  • decompiler: Add support for procyon. (PR: #3123)
  • visualisation
    • Panel added to show Spoon objects' properties. (PR: #3107)
    • Spoon visualiser improvement for accessing JavaDoc. (PR: #3101)
  • spoon-visualisation: Spoon AST visualisation tool. (PR: #3072)

Bug Fixes

  • CreateVariableAssignment now creates a CtVariableWrite. (PR: #3157)
  • Fixes the toString() call on an array. (PR: #3134)
  • CtCompilationUnitImpl: Fix regression after auto-import refactoring. (PR: #3131)
  • Fix regression when rewriting static field access. (PR: #3115)
  • The type of string concatenation is not null. (PR: #3075)
  • (ParentExiter.java): set position for implicit loop body block. (PR: #3084)
  • Fix regression in field accesses of static fields. (PR: #3139)
  • Improve backward compatibility of toString and add toDebugString. (PR: #3099)
  • Don't check modifiers in CtVariable#getDeclaringType. (PR: #3066)
  • Fix regression in pretty printer (default DJPP is fully qualified). (PR: #3132)
  • Fix incorrect model for empty for loop. (PR: #3108)
  • Fix more regressions after auto-import refactoring. (PR: #3127)
  • ToStringWithImports works even with no position. (PR: #3110)
  • Fix regression in auto-import. (PR: #3125)
  • Indeed call the preprocessors in toString/autoimports. (PR: #3103)
  • CtElementImpl#toString: Fix toString for SniperPrinter. (PR: #3147)
  • DefaultJavaPrettyPrinter: Support for inline else if. (PR: #3088)
  • ImportCleaner: Import must be kept when they are used in Javadoc. (PR: #3160)
  • Iterators: Next() first checks hasNext and throws the correct error. (PR: #3164)
  • PositionBuilder: Fix lambda parameters position. (PR: #3137)
  • SourceFragmentContext: Visit field reference in import as well. (PR: #3161)
  • SourceOptions: Close the output stream in SourceOptions. (PR: #3089)
  • TypeNameScope: Order of processing LexicalScope elements of Type. (PR: #3085)
  • core: Parsing a one-line class produces correct line numbers. (PR: #3069)
  • import: Fix regression after import refactoring. (PR: #3149)
  • pom: Update/add license header in poms. (PR: #3143)

Documentation

  • Add API documentation to public methods. (PR: #3152)
  • Add archunit to related work in architecture enforcement. (PR: #3146)
  • Improve documentation while preparing the MadridJUG meetup. (PR: #3141)
  • Improve landing page. (PR: #3128)
  • Minor improvement to example page. (PR: #3100)
  • Add example for snippet filtering. (PR: #3062)
  • ROADMAP.md: Roadmap 100% points to issues. (PR: #3119)
  • launcher.md: Improve decompilation doc. (PR: #3130)
  • visualisation: Mention the visualisation tool on the website. (PR: #3102)

Refactoring

  • Use .equals() when comparing Strings and Boxed types. (PR: #3165)
  • Rename internal method with particularly confusing name. (PR: #3109)
  • Handling of imports in pretty printer. (PR: #2683)
  • Decompiler: Update interface (in preparation for DecompiledResource). (PR: #3122)
  • NoSourcePosition: Applies the null design pattern to compilation units. (PR: #3151)

Authors

Name Nb Commit
Martin Monperrus 30
Nicolas Harrand 14
arno 5
Haris Adzemovic 3
Pavel Vojtechovsky 3
Egor Bredikhin 2
Rhys Compton 1
Muhammet Ali AKBAY 1
Simon Urli 1
Thomas Durieux 1
HectorSM 1
Lionel Seinturier 1

spoon-decompiler release 0.1.0

26 Sep 14:36
Compare
Choose a tag to compare

Initial release of spoon-decompiler

This release contains the following functionalities:

  • JarLauncher
  • DecompiledResource
  • SpoonCLassFileTransformer
  • Wwrapper for two decompilers (CFR and Procyon)

Release 7.5.0

28 Jul 08:18
c8df696
Compare
Choose a tag to compare

Changelog at #3057

Release 7.4.0

13 May 07:21
Compare
Choose a tag to compare

New features

  • Add CtType#toStringWithImports. (PR: #2945)
  • Check if a CtType is an array type. (PR: #2882)
  • CtBFSIterator: Add an iterator that explores a CtElement's children in breadth first order. (PR: #2904)
  • CtElement: Add a method to get all direct children of an element. (PR: #2906)
  • CtCommentImpl: Add _setRawContent to be able to bypass cleanComment. (PR: #2889)

Bug Fixes

  • Handle special cases in CtAnnotationType. (PR: #2947)
  • Test and fix untested method createNewClass(). (PR: #2943)
  • Give appropriate permissions of files in doc folder. (PR: #2949)
  • Improve getCorrespondingRuntimeObject/convertElementToRuntimeObject to handle shadow fields. (PR: #2899)
  • JarLauncher: Fix #2951, Really delete temporary decompiled source directory. (PR: #2952)
  • ContextBuilder: Catch PositionBuilder exception and log it instead of crashing. (PR: #2907)
  • CtCompilationUnitImpl: ToString() no longer throws a NPE. (PR: #2918)
  • position: Type of CtNewClass is implicit without position. (PR: #2834)
  • TypeFactory: Raise an exception for deprecated createTypeParameterReference wildcard. (PR: #2890)

Documentation

  • Add example for CtAssert#setExpressiont #2917. (PR: #2917)
  • Fix links in doc page "Examples of Spoon Usages". (PR: #2932)
  • CONTRIBUTING.md mentions our architectural rules. (PR: #2929)
  • Add & update links in the example page. (PR: #2925)
  • Fix jenkins badge. (PR: #2924)
  • Fix typos in slides. (PR: #2948)
  • Add example for CtAssert#setExpression. (PR: #2917)
  • Fix broken documentation. (PR: #2968)
  • Fix remaining Javadoc issues. (PR: #2910)
  • Fix doc in JavadocDescription.java. (PR: #2909)
  • Improve documentation on AST traversal. (PR: #2905)
  • Add slide decks. (PR: #2937)
  • Release.md: Improve documentation about releasing after release of 7.3.0. (PR: #2881)
  • spoon-control-flow: Fix javadoc errors. (PR: #2916)
  • command_line.md: Remove link to decommissioned Gforge. (PR: #2900)

Refactoring

  • JDTCommentBuilder: Improve error message with position of offending comment. (PR: #2908)

Tests

  • SourcePositionTest: Don't save temporary files in ./src. (PR: #2969)
  • Rename ArchitectureTest into DecompilerArchitectureTest in spoon-decompiler to avoid confusion. (PR: #2930)
  • CtTypeReference: Add test for methods CtTypeReference#unbox() and box(), fix #1842. (PR: #2919)
  • FieldAccessTest: Nested field access, and example for #2884.

Other

  • Exclude GUI from coverage. (PR: #2940)
  • Switch to junit5. (PR: #2939)
  • Add Sonar Quality Gate badge. (PR: #2935)
  • Fix javadoc and reporting config and check it in CI. (PR: #2911)
  • Clean parent pom.xml. (PR: #2883)
  • Bump to 7.4.0-snapshot. (PR: #2874)

Unknown

  • Adopt dual licensing MIT-CECILL-C (#2950). (PR: #2950)
  • Up. (PR: #2941)
  • Update the list of contributors. (PR: #2912)
  • Eclipse` in README. (PR: #2903)

Authors

Name Nb Commit
Martin Monperrus 28
Nicolas Harrand 9
Alexander Shopov 2
Charm 1
Pavel Vojtechovsky 1
GluckZhang 1
Fabien DUMINY 1
Simon Urli 1
Mickael Istria 1

Release 7.3.0

10 Feb 07:06
Compare
Choose a tag to compare

New features

  • Introduce the concept of lexical scope (interface LexicalScope). (PR: #2813)
  • Allow spoon to support duplicate definitions. (PR: #2772)
  • Add module for control-flow analysis. (PR: #2827)

Bug Fixes

  • Fix NPE for multicatch qualified exceptions. (PR: #2862)
  • Reference of CtImport is fully qualified and has no generics. (PR: #2819)
  • IndexOutOfBoundsException in JDTCommentBuilder. (PR: #2840)
  • Fix static type wildcard imports. (PR: #2865)
  • Refactor code->runtime methods so that CtAnnotation#getValueOfObject does not overflow. (PR: #2866)
  • Fix classpath error with surefire. (PR: #2867)
  • Security issue with jackson-databind. (PR: #2856)
  • CompilationUnit has lineSeparatorPositions even for empty class. (PR: #2824)
  • Fix position of type modifier after comment. (PR: #2825)
  • NPE in JDTCommentBuilder. (PR: #2822)
  • PositionBuilder: Prevents exception for incomplete modifiers' position information. (PR: #2848)
  • position
    • Source position of CtFieldReference. (PR: #2830)
    • Position of reference of import and package declaration. (PR: #2832)
    • Fix source position of new ArrayList<>(). (PR: #2833)
  • doc: Fixes#2790 javadoc site deployment, adapting to new modules organization. (PR: #2826)

Documentation

  • Fix broken link. (PR: #2871)
  • Fix unrendered link in doc. (PR: #2851)
  • Fix broken snippet. (PR: #2841)

Refactoring

  • Rename getCurrentNameScope to getCurrentLexicalScope. (PR: #2857)
  • Access to JDK CompilationUnit contents and lineSeparatorPositions. (PR: #2831)
  • Refactor refactoring code :-) in Refactoring#copyType(). (PR: #2820)
  • performance: Optimize incremental launcher. (PR: #2821)

Tests

  • MavenLauncher: Test that system dependencies are resolved in classpath fix #1682. (PR: #2836)

Other

  • pom.xml: Updating commons-io and commons-lang3. (PR: #2853)
  • Moves JUnit dependency to parent pom. (PR: #2828)
  • Clean old Travis scripts. (PR: #2829)

Community

  • Nicolas Harrand becomes integrator. (PR: #2818)

Authors

Name Nb Commit
Pavel Vojtechovsky 10
Martin Monperrus 9
Egor Bredikhin 3
Nicolas Harrand 3
Thomas Durieux 1
Kai Luo 1
Benjamin DANGLOT 1
Lionel Seinturier 1
Simon Urli 1
Clément Fournier 1