Skip to content

Releases: sneha-afk/KeplerKV

v1.1

07 Sep 07:00
77a7d2c
Compare
Choose a tag to compare

Full Changelog: v1.0...v1.1

changelog

  • Revamp ASTNode and StoreValue setup: #1

v1.0

19 Aug 02:10
Compare
Choose a tag to compare

version 1.0

Exciting, this will mark version 1.0 of KeplerKV! I'm proud of the codebase I've created thus far and hope to add more features to the project. Some of my aspirations are listed in the planning doc.

changelog

Full Changelog: v0.4.0-alpha...v1.0

  • Added new commands for data manipulation: INCR and DECR for integer types, APPEND and PREPEND for list types
  • Added a new STATS command with some basic statistics
  • Bug fix for RESOLVE: not going down identifiers that reference lists (thus not detecting some circular references)
  • Revamped the layout of the manual doc

v0.4.0-alpha: Testing

11 Aug 01:27
Compare
Choose a tag to compare
Pre-release

Full Changelog: v0.3.0-alpha...v0.4.0-alpha

changelog

  • Introduced testing through a system of simple input and output files: see the tests directory
  • Easy to expand test input cases, just add the corresponding _out file to the outputs directory
  • New command: RENAME for renaming keys, confirms with user if an overwrite of an existing key is possible

v0.3.0-alpha : Save states

30 Jul 00:22
Compare
Choose a tag to compare
Pre-release

Full Changelog: v0.2.0-alpha...v0.3.0-alpha

changes

  • Introduced saving and loading from .kep files denoted as being a valid save file.
  • File saves currently in the same directory the executable is contained in
  • New commands: SAVE, LOAD, CLEAR for clearing the terminal screen
  • Extra: a Makefile at the top of the repo

v0.2.0-alpha: recursive definitions

19 Jul 01:31
Compare
Choose a tag to compare
Pre-release

Full Changelog: v0.1.0-alpha...v0.2.0-alpha

changes

  • Recursive keys are now supported, with the feature of catching circular references. Comprehensive coverage of this is covered in the manual
  • New commands: LIST, RESOLVE
  • Moved error messages to a header file, removed static const std::runtime_error and opted for macro strings instead
  • Bugs associated with multidimensional lists were fixed in the parser
  • Program exits are handled through main.cpp when prompted by handler.cpp

Baseline reached for KeplerKV

10 Jul 23:53
Compare
Choose a tag to compare
Pre-release

pre-release: v0.1.0-alpha

current features

The current form of the project has reached the baseline requirements I set to do.

  • Basic user CLI setup for five basic commands: quit, set, get, delete, and update
  • Volatile storage of some basic types: integers, floats, strings, and lists (including multi-dimensional)
  • Validation of user input during parsing

challenges

By far the most difficult part of getting the project running was understanding the parsing. The tokenization of user input was straightforward, but I had to restructure the format of my abstract syntax nodes continuously as I stumbled across errors with recursive definitions (for lists) and overcomplexity in the evaluator stage when dealing with values. For now, I settled on a basic model where nodes are either commands or values for commands.

next steps

The next steps for the project include:

  • Ideally, finding an easier definition for ValueNode and StoreValue that would reduce redundancy and added overhead
  • Lazy evaluation of identifiers whose values are set to other identifiers
  • Serialization so data can be non-volatile and persist