Releases: bahmanm/bjforth
v0.0.5
Besides a couple of minor improvements to the launcher and test coverage, the highlight of this feature is the addition of the primitive WORDS
which is part of the self-documenting system (alongside SEE
).
BTW, to test out the quality of bjForth, I used this version to implement the 1st chapter of StockPerson and the result was quite pleasing: https://github.com/bahmanm/stockperson-bjForth 🎉
What's Changed
- Create a launcher by @bahmanm in #302
- Implement QTRUE and QFALSE primitives by @bahmanm in #303
- Update dependency org.assertj:assertj-core to v3.27.1 by @renovate in #304
- Implement the WORDS primitive by @bahmanm in #305
- Pass arguments (Forth sources) to the launcher by @bahmanm in #306
Full Changelog: v0.0.4...v0.0.5
v0.0.4
Besides implementing :ANON
and CASE...ENDCASE
words, this release is mostly a bug fix release around Java inter-op.
A notable change is how you may launch bjForth using the included bjForth
BASH script.
What's Changed
- Include documentation in the release tarball. by @bahmanm in #291
- Implement the CASE..ENDCASE construct by @bahmanm in #292
- Implement the SEE primitive by @bahmanm in #295
- Encode word length in dictionary by @bahmanm in #296
- Implement :ANON and ['] words by @bahmanm in #298
- Update the docs by @bahmanm in #299
- Java inter-op: Support array arguments by @bahmanm in #301
Full Changelog: v0.0.3...v0.0.4
v0.0.3
🎉 A good deal of words and primitives were introduced in this release along improving the user-friendliness of bjForth.
✔️ Some prominent changes include:
- Looping construct (
WHILE
,UNTIL
,AGAIN
) - Conditionals (
IF
,UNLESS
) - Debugging facilities (
DUMP
) - Printing numbers (
.
,NUM->STR
)
💡 Don't forget to check out the docs
directory included in the distribution.
As always, make sure you have OpenJDK 21 installed.
cat bjForth.forth - | java -jar bjForth-v0.0.3.jar
What's Changed
- Implement the main loop by @bahmanm in #180
- Use shadowJar to generate a fat executable JAR. by @bahmanm in #189
- Configure CircleCI to create a release upon a tag push by @bahmanm in #190
- Create a distinct workflow for release by @bahmanm in #191
- Install Go (required by release workflow) by @bahmanm in #192
- Fix a typo in CircleCI config by @bahmanm in #193
- Use CircleCI env var to access the tag name by @bahmanm in #194
- Install Java before creating a release by @bahmanm in #195
- Install ghr in a separate step by @bahmanm in #196
- Set GOPATH to /usr/local by @bahmanm in #197
- Provide the path to the artefact to be uploaded by @bahmanm in #198
- Improve WORD primitive by @bahmanm in #201
- Make dictionary search case-insensitive by @bahmanm in #202
- Write E2E tests to check the sanity of changes by @bahmanm in #204
- Revert changes RE parentheses by @bahmanm in #205
- Update all non-major dependencies to v5.11.4 by @renovate in #203
- Implement the TICK primitive by @bahmanm in #207
- implement PRINT and PRINTLN primitives by @bahmanm in #210
- Implement the HIDE primitive by @bahmanm in #211
- Use the word address to look it up by @bahmanm in #212
- Support character entry with '. by @bahmanm in #214
- Ignore TAB by @bahmanm in #215
- Accept Character as the word name by @bahmanm in #216
- Implement the DOT primitive by @bahmanm in #218
- Improve WORD and INTERPRET by @bahmanm in #219
- Support string literals by @bahmanm in #222
- Java inter-op experiments by @bahmanm in #224
- Implement the DOTDOUBLEQUOTE primitive by @bahmanm in #227
- Prepare release v0.0.2 by @bahmanm in #230
- Fix E2E tests by @bahmanm in #232
- Update dependency org.assertj:assertj-core to v3.27.0 by @renovate in #231
- Add the downloads badge by @bahmanm in #233
- Adjust downloads badge color by @bahmanm in #234
- Support string literals by @bahmanm in #235
- Display "null" for null values by @bahmanm in #237
- Update dependency gradle to v8.12 by @renovate in #238
- Create the initial library
bjForth.forth
by @bahmanm in #236 - Build an archive of bjForth JAR file and Forth libraries by @bahmanm in #241
- DOTDOUBLEQUOTE: Support both compiling and immediate modes by @bahmanm in #243
- Modify
KEY
to useString
overchar
by @bahmanm in #245 - Implement the BASESTORE primitive by @bahmanm in #248
- Support variadic methods by @bahmanm in #251
- Document Java inter-op by @bahmanm in #253
- Rename
.
to.S
(DOTSTACK) by @bahmanm in #250 - Include Java interop primitives by @bahmanm in #255
- Include E2E tests in the PR pipeline by @bahmanm in #256
- Implement the !BASE primitive by @bahmanm in #257
- Java inter-op mark
.<
,,<
and@<
and as immediate by @bahmanm in #260 - Redefine words by @bahmanm in #262
- Write tests for reverse lookup and getting all the items by @bahmanm in #264
- Write tests by @bahmanm in #265
- Extend the bjForth.forth library by @bahmanm in #246
- Include bjForth library in E2E tests by @bahmanm in #267
- Rewrite NUM->STR in terms of itself by @bahmanm in #268
- Document the library words by @bahmanm in #271
- Implement the QNULL primitive by @bahmanm in #275
- Implement the NULL primitive by @bahmanm in #277
- Include basic file operations in the library by @bahmanm in #274
- Write essential words to deal with files. by @bahmanm in #278
- Programmatically extract the library docs by @bahmanm in #279
- Attempt at taming exceptions by @bahmanm in #280
- Remove angle brackets when displaying objects by @bahmanm in #281
- Directly print instead of relying on PRINTLN by @bahmanm in #282
- Extend the forth library by @bahmanm in #283
- Implement the STOREHERE primitive by @bahmanm in #284
- Extend the forth library by @bahmanm in #285
- Implement ALLOT and VARIABLE by @bahmanm in #286
- Implement the IDDOT primitive by @bahmanm in #287
- Implement the FORGET primitive by @bahmanm in #288
- Implement bitwise primitives by @bahmanm in #289
- Implement the DUMP primitive by @bahmanm in #290
Full Changelog: v0.0.1...v0.0.3
v0.0.2
The first ever release 🎉
The fruit of 2 years worth of work, v0.0.2 packs a good bunch of features including initial Java inter-op. You can view the list of all the words included in the library.
### Call instance method
." Hello, world ". isEmpty/0 ..
.
java.lang.Boolean<false>
### Create a new object (constructor)
." bjForth-v0.0.2.jar ". new/1 java.io.File @@
.
java.io.File<bjForth-v0.0.2.jar>
### Call an instance method
getAbsolutePath/0 ..
.
java.lang.String</home/bahman/workspace/forth/bjforth/bjforth/build/libs/bjForth-v0.0.2.jar>
### Call a static method
listRoots/0 java.io.File ,,
.
java.io.File[]<[Ljava.io.File;@3c679bde>
What's Changed
- Implement the main loop by @bahmanm in #180
- Use shadowJar to generate a fat executable JAR. by @bahmanm in #189
- Configure CircleCI to create a release upon a tag push by @bahmanm in #190
- Create a distinct workflow for release by @bahmanm in #191
- Install Go (required by release workflow) by @bahmanm in #192
- Fix a typo in CircleCI config by @bahmanm in #193
- Use CircleCI env var to access the tag name by @bahmanm in #194
- Install Java before creating a release by @bahmanm in #195
- Install ghr in a separate step by @bahmanm in #196
- Set GOPATH to /usr/local by @bahmanm in #197
- Provide the path to the artefact to be uploaded by @bahmanm in #198
- Improve WORD primitive by @bahmanm in #201
- Make dictionary search case-insensitive by @bahmanm in #202
- Write E2E tests to check the sanity of changes by @bahmanm in #204
- Revert changes RE parentheses by @bahmanm in #205
- Update all non-major dependencies to v5.11.4 by @renovate in #203
- Implement the TICK primitive by @bahmanm in #207
- implement PRINT and PRINTLN primitives by @bahmanm in #210
- Implement the HIDE primitive by @bahmanm in #211
- Use the word address to look it up by @bahmanm in #212
- Support character entry with '. by @bahmanm in #214
- Ignore TAB by @bahmanm in #215
- Accept Character as the word name by @bahmanm in #216
- Implement the DOT primitive by @bahmanm in #218
- Improve WORD and INTERPRET by @bahmanm in #219
- Support string literals by @bahmanm in #222
- Java inter-op experiments by @bahmanm in #224
- Implement the DOTDOUBLEQUOTE primitive by @bahmanm in #227
- Prepare release v0.0.2 by @bahmanm in #230
Full Changelog: v0.0.1...v0.0.2