Skip to content

LitterBox v1.12

Latest

Choose a tag to compare

@b-fein b-fein released this 07 Mar 10:37
· 1 commit to master since this release
v1.12
ea23025

New features

  • The check subcommand can now export the analysis results to a HTML file using the -o report-file.html option.
    • This report works for single or multiple projects and contains the bugs/smells/perfumes of the project, its metrics, and a visual representation of the abstract syntax tree and control flow graph.
  • Restructure export commands.
    • Export to ScratchBlocks and Leila is now part of the new export subcommand.
    • new: Export project to Goboscript.
    • new: Export project to PyStage.
  • EmbeddedKittens
    • Code embeddings are used in machine learning to map source code into a dense vector space. Various models have been proposed to learn this mapping. They use different information from the code (eg just tokens, AST, control/data flow, …) as model input. EmbeddedKittens can be used to extract this information from Scratch projects and transform it into the required format to be used as input for the machine learning model (e.g. code2vec, code2seq, ASTNN, GGNN, Transformers, LLMs).
  • New diff subcommand that compares two versions of a program, or a JSON file resulting from check with a new program version, and outputs what are new bugs, fixed bugs, removed bugs, or remaining bugs.
    • Removes fix heuristics from the check subcommand.
  • Bug injectors: An injector for a bug pattern creates all possible buggy versions of a given input program.
    • inject subcommand.
  • Add Dutch translations.
  • Update Spanish translations.
  • Can now load QScratch projects.

Improvements

  • Improve InterruptedLoopSensing in case of wait until blocks
  • UselessBlocks has been renamed to InvalidActorBlocks. It is now a bug rather than a smell.
  • The question generation is now a separate subcommand questions. They are no longer included in the results of the check command.
  • Better error handling in case of common LLM API errors (network timeout, unknown model, rate limit, API key invalid).
  • Fix some edge-cases in the serialisation of the LitterBox AST into Scratch project.jsons.