Symflower Newsletter March 2023 - TreeSitter update, performance improvements, and new blog posts!

Symflower Newsletter March 2023 - TreeSitter update, performance improvements, and new blog posts!

Hello ??!

Guess what? March has just rolled past, meaning it’s time for the latest edition of our newsletter. Before we jump in, let us just drop a quick reminder that?we’re looking for software engineers to join Symflower!

This month, we’ve focused on improving our internal infrastructure to enhance the performance of Symflower. With the switch to Go 1.20, Symflower now uses less memory and can generate tests faster. We’ve also replaced JavaParser with TreeSitter, enabling us to speed up source code parsing by over 20x on average! ?? See our blog post about the switch to TreeSitter and a list of the most important updates to Symflower below.

On the blog, you’ll find part 2 of our guide to writing JUnit tests with some advanced techniques. We’ve also published a step-by-step guide to running JUnit 5 tests with Gradle, and a collection of our favorite IntelliJ IDEA productivity plugins. Happy reading!


No alt text provided for this image

Join our team

Symflower is looking for Software Engineers and Algorithm Developers. Come join our team and help us take developer productivity to the next level!


No alt text provided for this image

What’s new in Symflower? ??

A ton of updates to Spring controller handling??? Symflower now:

  • Inherits content types of parent types in Spring controller templates
  • Handles content types as method parameters for Spring controller tests
  • Uses JSON as the default for Spring controllers when either “RestController” or “ResponseBody” is used in case there is no explicit content type
  • Generates context-aware content type assertions for Spring controller templates.

Transpiling all Java annotations??? For better tests and test templates with more specific analysis and more inferred data, we now transpile all (rather than just specific) Java annotations.

TreeSitter migration for faster parsing??? By?switching from JavaParser to TreeSitter, we have been able to speed up parsing by 20x on average, and parsing common files takes as much as 99% less time now!

No Java binary needed??? We can now analyze source code without the need for a Java binary, enabling Symflower to analyze source code and generate tests out of the box in more environments.

Faster & more consistent tests using LLVM’s Clang on Windows???? By switching from GCC to LLVM’s Clang, we now use the same compiler on all OSs, leading to more consistent test generation results and enabling further performance optimizations.

Upgrade to Go 1.20??? Symflower is now compiled with Go 1.20, leading to 5% less memory usage and 3% faster execution on long-running test generations.

Better logs for debugging??? To help you identify and debug problems faster, we now print more detailed information on initialization into the log.


Interesting reads

TreeSitter - the holy grail of parsing source code

Wondering how we sped up source code parsing by a factor of 36x? ?? Read our post detailing how we made the switch to TreeSitter ??


The best IntelliJ IDEA productivity plugins for Java developers

Looking to boost your productivity? Pimp that vanilla install with these must-have IntelliJ IDEA plugins! ??


How to write JUnit test cases: advanced techniques

Advanced JUnit5 techniques ?? Learn some pro tips in part 2 of our tutorial on writing JUnit tests!


Running JUnit 5 tests with Gradle

Looking to run JUnit tests with Gradle? ?? We put together a step-by-step guide to help you get started.

要查看或添加评论,请登录

社区洞察

其他会员也浏览了