Update to the oldest supported release of go v1.22 at this time.
Update golangci-lint to 1.61.0 and address all issues.
Update actions to the latest versions.
Enable more linters, address the issues and do a major naming refactor
to use golang lower camelCase identifiers for types, functions, methods
and variable names.
Also:
* Clean up inline generation so it doesn't rely on temporary variables.
* Remove unused functions generated by inline.pl.
Leverage github actions for tests and linting.
This includes fixing a bunch of issues highlighted by golangci
including:
* Dead code.
* Ineffectual assigns.
* Goto warnings.
* Nil return err.
* Reused literal strings.
* Test parameter order.
Also:
* Setup clog.
This change adds two types of tests:
1. First some regular Test* tests that functionally
ensure the test cases are correct.
2. A few Benchmark* tests that then allow us to
measure Otto's performance under various functional scenarios.
The basic tests are just sorting, but I'm planning over time
to bring in more advanced tests (like the CryptoAES) from
popular benchmarking suites (JetStream for instance.)
I intend to run profiler on these tests to find any
ottlenecks or low-hanging fruit that can help speed up
Otto for real-world use-cases.
Next up after this is to add some heavy underscorejs
benchmarks.
Responding to PR comments