Skip to content

Commit e0a43bd

Browse files
Update Changelog.md
basic roadmap
1 parent 300212b commit e0a43bd

File tree

1 file changed

+15
-4
lines changed

1 file changed

+15
-4
lines changed

Changelog.md

+15-4
Original file line numberDiff line numberDiff line change
@@ -236,13 +236,13 @@ What was added:<br>
236236
* ImportsProvider now implements caching for Imports.
237237
* ParserRegistry now implements DataParser allowing for easier creation of more complex (context-free) languages.
238238
* NumberConverter was refactored, now providing all in one parsing numberOf function that is on average 12x faster than the old implementation.
239-
* New numberOf function supports octadecimal number and has improved handling of E-notation.
239+
* New numberOf function supports octadecimal numbers and has improved handling of E-notation.
240240
* Java integer caching is now in place.
241241
* DecimalFormater was dumped in favor of the more customizable overridable format method.
242242
* BooleanConverter and NullConverter were slightly refactored allowing for near O(1) complexity of parsing.
243243
* ObjectConverter got a significant refactor!
244244
* It was separated into 2 separate classes across 2 modules. Now it is ProtocolConverter that is extended by ObjectConverter.
245-
* Static member invocation is now only allowed on a small carefully selected group of classes, fixing the major security exploit that would an attacker to call any static function in a hypothetical REST implementation.
245+
* Static member invocation is now only allowed on a small carefully selected group of classes, fixing the major security (arbitrary code execution) exploit that would allow an attacker to call any static function of any class in a hypothetical REST implementation scenario. Note that this is only a mitigation that allows you to whitelist the specific classes for static member invocation so the maximal caution is still advised when doing so.
246246
* Both ObjectConverter and ProtocolConverter were slightly optimized.
247247
* StringConverter was slightly optimized by introducing caching. It is disabled by default, by enabling it the same String instance will be returned for the same strings during parsing.
248248
* Static variables were made instance-specific allowing for more flexibility.
@@ -252,7 +252,7 @@ What was added:<br>
252252
* Mode of SerializationProtocol is now implemented with 64 int (long) bit-packing which allows for chaining of multiple modes which can now be understood as protocol types. This trades an overall number of unique modes for greater utility.
253253
* Serializer (and core high-level changes):
254254
* The concept of scope parent variable inheritance was abandoned due to being unacceptable and inefficient (both time and space-wise...), quite error-prone and tedious to work with as well as and potentially dangerous. Not mentioning the fact that the only reason for its existence was to allow you to access variables declared in the parent scope, for which it suboptimal solution to say at least...
255-
* In a similar fashion, the notion of each parser having to return the new instance of respective object for every parsed string was abandoned as well and is no longer required, allowing for more flexibility and concepts such as already mentioned caching!
255+
* In a similar fashion, the notion of each parser having to return the new instance of the respective object for every parsed string was abandoned as well and is no longer required, allowing for more flexibility and concepts such as already mentioned caching!
256256
* OOP NULL was abandoned as well as it was a biproduct of sub-optimal decisions mentioned above and therefore conceptually flawed. It is deprecated and should not be used!
257257
* All static utility functions (for instance string analyses and processing functions) were separated into new Utils class, in order to achieve better separation of concerns...
258258
* All string analyses and processing utility functions (for example indexOfNotInObj or splitValues) were rewritten into more "finite state machine"-like form which slightly increases their performance...
@@ -269,7 +269,7 @@ What was added:<br>
269269

270270
&nbsp;
271271
* Operators class was added, which is used for injecting all operator parsers into the specific registry.
272-
* Almost every operator parser was refactored, resulting in simpler, shorter and therefore more optimized code. The most notable ones are:
272+
* Almost every operator parser was refactored, resulting in shorter, far simpler and therefore more optimized code. The most notable ones are:
273273
* ArithmeticOperators which now also allows you to declare your own arithmetic operators and/or specify their precedence.
274274
* Due to refactoring, ResultWrapper is no longer needed and will be removed, this extends to LogicalOperators as well.
275275
* NegationOperator now supports separate handling of logical negation (! operator) and mathematical negation (- operator), however by default their behavior is the same.
@@ -281,3 +281,14 @@ What was added:<br>
281281
* Besides the changes mentioned above, countless smaller improvements including numerous bug fixes, performance improvements, API enhancements or Javadoc specifications were added across the whole library.
282282
* Some functions were slightly renamed but it is usually documented but deprecated functions were removed!
283283
#
284+
285+
# SerialX 1.3.9+
286+
287+
Release date: UNKNOWN
288+
289+
### Roadmap of potential changes:
290+
* Separating From/Into API from Scope and Serializer into the standalone classes making it more flexible and customizable.
291+
* ? Implementing Register in such a way that it will be possible to specify the underlying data structure.
292+
* Optimizing deserialization process in JussSerializer (unification of "those 2 methods" and getting rid of that stinky legacy spaghetti code they have).
293+
* ? Optimizations - Introducing char/class-based direct dispatch hashing algorithm for selecting the best fitting data converter for the string/object. (This is likely not going to be possible to fully implement due to internal dependencies between parsers and other legacy reasons...)
294+

0 commit comments

Comments
 (0)