v4.0.00 - Major Update - Support for BWK
Jawk 4 Compatible with BWK
Starting with version 4.0.00, Jawk supports all features and most unit tests from BWK!
Improvements & Bug Fixes
- Improve Jawk documentation by @bertysentry in #186
- Add JSR-223 ScriptEngine by @bertysentry in #187
- Add helper run methods to Awk by @bertysentry in #207
- Improve docs for new Awk helpers by @bertysentry in #208
- Fix test compability by @bertysentry in #217
- Fix return assignment in RuntimeStack.setVariable by @bertysentry in #240
- Allow getline without lvalue by @bertysentry in #260
- Fix for-loop newline and pow assignment by @bertysentry in #258
- Use BigDecimal to validate numeric strings by @bertysentry in #263
- Fix numeric detection when printing fields by @bertysentry in #262
- Fix array comparator by @bertysentry in #266
- Fix log builtin error message by @bertysentry in #265
- Handle exit code for bwk t scripts by @bertysentry in #264
- Fix array deletion with numeric keys by @bertysentry in #268
- Add AssocArray unit tests by @bertysentry in #267
- Fix dynamic field number handling by @bertysentry in #269
- Fix pattern negation handling in interpreter by @bertysentry in #270
- Fix early exit logic by @bertysentry in #271
- Fix FS parsing for empty lines by @bertysentry in #272
- Fix post-decrement initialization bug by @bertysentry in #273
- Fix condition pair evaluation by @bertysentry in #275
- Fix pipe output handling by @bertysentry in #274
- Fix post-increment on $ fields by @bertysentry in #276
- Fix print arg handling by @bertysentry in #277
- Fix split count and whitespace regex handling by @bertysentry in #278
- Fix ORS flushing in AVM by @bertysentry in #279
- Fix deterministic rand() sequence by @bertysentry in #280
- Fix ternary parsing inside print statements by @bertysentry in #282
- Fix numeric conversion log spam by @bertysentry in #281
- Fix array iteration for insertion order by @bertysentry in #283
- Ensure process output flushed on close by @bertysentry in #284
- Ensure NF tracks field count correctly by @bertysentry in #285
- Fix process spawn & printf test by @bertysentry in #286
Code Style Improvement
PMD
- Fix property name in AwkParameters Javadoc by @bertysentry in #172
- Address some PMD warnings by @bertysentry in #175
- Fix PMD issue in CoreExtension by @bertysentry in #176
- Fix PMD violations in JRT by @bertysentry in #179
- Fix PMD warnings in AssocArray by @bertysentry in #178
- Fix PMD warning in BlockManager by @bertysentry in #177
- Fix PMD issues in DataPump by @bertysentry in #180
- Fix PMD warnings in CoreExtension by @bertysentry in #181
- Fix PMD issues in AwkParser by @bertysentry in #184
- Fix SUBSEP handling by @bertysentry in #185
- Fix PMD warnings by @bertysentry in #209
SpotBugs
- Fix SpotBugs issue in Awk by @bertysentry in #188
- Fix SpotBugs issues in Main by @bertysentry in #189
- Fix default encoding in ScriptFileSource by @bertysentry in #190
- Ensure DestDirClassLoader closes streams by @bertysentry in #191
- Fix EI_EXPOSE_REP2 warning by @bertysentry in #194
- Fix BlockManager wait loop and error handling by @bertysentry in #195
- Use entrySet iteration in mapString by @bertysentry in #196
- Update StdinExtension handling by @bertysentry in #199
- Fix mutable field handling in AwkParser by @bertysentry in #198
- Fix SpotBugs EI_EXPOSE_REP in AwkSettings by @bertysentry in #203
- Fix DM_DEFAULT_ENCODING warnings by @bertysentry in #204
- Suppress FB warnings around output stream by @bertysentry in #205
- Fix SpotBugs warning in AbstractExtension by @bertysentry in #206
- Fix SpotBugs exposure warnings by @bertysentry in #210
- Fix floating point comparisons using isActuallyLong by @bertysentry in #211
- Ignore EI_EXPOSE_REP warnings by @bertysentry in #215
- Fix SpotBugs CT_CONSTRUCTOR_THROW warnings by @bertysentry in #219
Checkstyle
- Fix comments in CoreExtension by @bertysentry in #224
- Add private constructor for AwkLogger by @bertysentry in #220
- Fix Main utility class by @bertysentry in #221
- Refactor JRT names by @bertysentry in #222
- Fix extension init parameter by @bertysentry in #223
- Refactor AVM runtime stack by @bertysentry in #226
- Fix parameter shadowing in AbstractExtension by @bertysentry in #225
- Fix checkstyle issues in AwkTuples by @bertysentry in #228
- Fix checkstyle issues in AVM by @bertysentry in #229
- Make AwkLogger final by @bertysentry in #230
- Fix parameter hiding in AwkTuples by @bertysentry in #232
- Rename fmt_arg to fmtArg by @bertysentry in #231
- Remove underscores from opcode names by @bertysentry in #233
- Refactor variable names to camelCase by @bertysentry in #234
- Refactor lexer returns by @bertysentry in #235
- Fix comment about intermediate files by @bertysentry in #241
- Refactor parser to limit checkstyle suppression by @bertysentry in #242
- Rename lexer token constants by @bertysentry in #243
- Fix HiddenFieldCheck violations by @bertysentry in #250
- Encapsulate AST structure fields by @bertysentry in #249
- Rename parser newline helpers by @bertysentry in #248
- Fix special variable constant name by @bertysentry in #251
- Fix AST class naming by @bertysentry in #252
- Refactor AwkParser fields to camelCase by @bertysentry in #253
- Fix Checkstyle parameter names by @bertysentry in #254
- Rename parser variables by @bertysentry in #255
- Refactor map creation assignments by @bertysentry in #256
- Fix checkstyle issues by @bertysentry in #257
- Fix Javadoc param name in JRT by @bertysentry in #261
Chores
- Release v3.3.05 and prepare v3.3.06-SNAPSHOT by @github-actions[bot] in #168
- Fix README contributing link typo by @bertysentry in #170
- Add Maven wrapper by @bertysentry in #171
- Bump org.metricshub:oss-parent from 2 to 3 by @dependabot[bot] in #169
- Bump org.slf4j:slf4j-simple from 2.0.16 to 2.0.17 by @dependabot[bot] in #164
- Bump org.slf4j:slf4j-api from 2.0.16 to 2.0.17 by @dependabot[bot] in #163
- Added prettier and reformatted following pretty formatting fules by @bertysentry in #182
- Fixed prettier configuration for codex by @bertysentry in #183
- Add eclipse formatter by @bertysentry in #202
- Add Surefire report to Maven site by @bertysentry in #212
- Enable BWK tests for site build by @bertysentry in #213
- Enable checkstyle on all sources by @bertysentry in #214
- Fix license header by @bertysentry in #227
- Add ManifestResourceTransformer by @bertysentry in #259
- Skip cat-based tests on Windows by @bertysentry in #287
- Bump com.github.spotbugs:spotbugs-maven-plugin from 4.9.3.0 to 4.9.3.2 by @dependabot[bot] in #292
- Bump org.apache.maven.plugins:maven-pmd-plugin from 3.26.0 to 3.27.0 by @dependabot[bot] in #291
- Bump net.revelc.code.formatter:formatter-maven-plugin from 2.26.0 to 2.27.0 by @dependabot[bot] in #290
- Bump org.codehaus.mojo:license-maven-plugin from 2.5.0 to 2.6.0 by @dependabot[bot] in #288
- Removed pom.xml from automatic formatting (and check!) by @bertysentry in #293
Full Changelog: v3.3.05...v4.0.00