Show HN: Symbolica – Try our symbolic code executor in the browser https://ift.tt/3yRjRGf
Show HN: Symbolica – Try our symbolic code executor in the browser We're a couple of software engineers who believe that to build great software you need to write good tests, but we also sympathise when engineers say things like: - "Writing tests was too time consuming on my tight schedule", or - "Unit tests don't catch enough bugs, so they're useless", or - "I've inherited a legacy code base without tests and have no idea where to start" To tackle this we're building Symbolica (https://ift.tt/3DTiHO3), a symbolic code executor [1], that lets you run your code for all possible inputs. This means you can do things like: - Assert properties about your code and check that they hold for every conceivable input. - Check that two implementations of the same function/method/program are equivalent, which is really useful if you're refactoring a legacy codebase without tests. - Find out if your code will hit any undefined behaviours, e.g. divide by zero or out of bounds array access. We're still really early in the development of this product, but we're excited to have built a working prototype of the symbolic executor for C programs. We wanted to get some feedback from potential early adopters so we've put up a code playground (https://ift.tt/3DTeOIO) where you can try out Symbolica on C programs in the browser for free. We'd love people to give it a go and give us their thoughts. Our plan is to build this out into a hosted cloud service that you can integrate into your DevOps pipeline (e.g. GitHub actions) so that you can run these symbolic tests on every CI build. Further down the line we plan to add support for other languages too. We've currently got proof of concept implementations for Lisp and Python and will be looking into C++, Rust and .NET after. Of course we're always willing to prioritise a particular language if there's strong demand. If you're interested in what we're building then please either message us at dev@symbolica.dev or join the alpha waiting list if you want to get first access to our full offering once we launch that. For those curious about how the executor works the core part of it is open source on GitHub (https://ift.tt/3BFFrzc) [1] https://en.wikipedia.org/wiki/Symbolic\_execution September 7, 2021 at 12:55PM
No comments