Updates
- Improvement: JSCTL now takes args without flags in sensible places for quality of life.
- Improvement: Better Error reporting all around
- New Feature: APIs for manipulating actions
- New Feature: Hotloading jaseci action modules
- Update: New action creation methodology and architecture
- New Feature: Decorator interface for creating jaseci action modules
- New Feature: New profiling flag added to run walker api for performance profiling
- New Feature: Direct jac file building, test, and run from in JSCTL
- New Language Feature: Tests and testing features as first order language semantics
- New Lang Feature: Asserts!
- Fix: Simplified and optimized global abilities
- New Support Feature: Started vs code for JAC extension first beta
- New Lang Feature: Multifile codebase support and import keyword and semantic added
- New Lang Feature: Try-else blocks introduced for exception handling
- New Lang Feature: Added new `&` reference and `*` dereference semantic for getting psuedo-pointers to node, edges, etc
- New Lang Feature: Massively expanded functionality with destroy and list slice management
- New Lang Feature: can now explicitly reference and dereference graph elements (nodes, edges, etc)
- New Lang Feature: Field filtering for dictionaries, particularly useful for context, info, details
- New Lang Feature: Type checking primitives, and type casting primitives
- New Lang Feature: String library finally present
Notes
- Various flags are now args for `jsctl` i.e., `walker run -name init` is now `walker run init` as name is now the standard arg. If you wanted to specify a node the flag would be used as per `walker run init -nd {uuid}`
- Reports back from walker is now dictionary of form `{'report': list(report)}` instead of currnet `list(report)`
- `std.sort_by_col` tweaked to make last paramter a boolean for reverse (instead of string)
- Format of `walker get -mode key` api changed from {key:namespace} to {namespace:key}
- `test` is now a keyword with added test capabilities in jaseci
- Type, int, float, str, list, dict, bool, are now keywords, if you used these as variable names in legacy code, must make updates.
- The destroy built-in is totally revised `lst.destroy(idx)` on lists should be changed to `destroy lst[idx]`.
- Get_uuid standard library function is deprecated since we have string manipulation
- Internal representation of element now `jac:uuid:` format, should not be visible to coder, `&` references still produce `urn:uuid:` as strings. To dereference use new `*` dereference operators.
- Standard, output and logging now will print proper values (e.g. json values for null, true, and false)