# Changelog All notable changes to this project will be documented in this file starting from `2.0.0`. The format was adapted from [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). The following shorthand will be used, in this order: `+` - New feature (`_.X._`) `/` - Breaking Change (`X._._`) `-` - Removal (`X._._`) `~` - Misc. Change (Any, really) `!` - Bug-Fix (`_._.X`) This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [2.0.0] - Unreleased This update intends to fix mistakes made during the 1.0.0 version with regards to code style and naming. It also intends to overhaul the `Span` and `Notification` systems to better integrate with grammars built off of Alkale. Other miscellaneous changes have similar goals— making Alkale work better as an integrated stage wtihin a larger compiler/grammar. `+` Added `Spanned`, a replacement for previous instances of `(T, Span)`. `+` Added `Spannable`, indicating a type can be converted into a `Spanned`. (All types implement this) `+` Added `NotificationBuilder`, a way to construct generic notifications. `+` Added `NotificationAcceptor`, indicating types that can aggregate built-in `Notification`s. `+` Added `NotificationSeverity`, used for `Notification`s. `+` Added `NotificationList`. `+` Added `SourceCodeScanner`, a replacement for `TokenizerContext`. `+` Added `FinalizedLexerResult`, a replacement for `LexerResult`. `+` Added `common` feature to enable/disable commonlib. `/` `Notification`s are no longer a trait, instead they serve as a default error type. `/` Notifications in `TokenizerContext` are no longer stored as dynamic references. `/` `Span` type no longer stores line and column position. `/` All instances of "tokenizer" replaced with "lexer" for correctness. `/` `TokenizerContext` now uses `NotificationList` instead of `Vec`. `/` Lexers now take strings instead of char arrays. `/` `LexerResult` now handles accumulating notifications and tokens. `-` Removed direct iterator results from `TokenizerContext` due to complicating parsing for little benefit. `-` Removed `TokenizerContext`, use `SourceCodeScanner` instead. `~` `Span` type now stores index positioning with a length instead of ending index. `~` No longer dependent on `utf8-chars`.