Wollok Version: 3.2.7
- 👉 Fix report current line on the frame for stack traces
⤴️ Fix usingsuper
inside a closure- 📁 Fix imports for chained files
- 🔄 Fix #cyclic const instance initialization
- ⛵ Moving function utils for navigation
- ❌ Error handling enhancements
- Better error messages from
lang
(andnative
methods) - Add return of
void
value - Sanitize stack trace
- Better error messages from
Wollok Version: 3.2.6
- ❌ Hot fix for validation messages
Wollok Version: 3.2.6
- 🌎 Migrate validation messages
Wollok Version: 3.2.5
- 👾 Fix REPL constants in sub-folder files for dynamic diagram
Wollok Version: 3.2.5
- 🖨️ Fix comments for empty bodies in formatter
- 👾 Fix REPL constants for dynamic diagram
- 1️⃣ Cache float numbers
Wollok Version: 3.2.5
- 〰️ Support dashes
-
in file name - 🌐 Changes in
import
resolution - 👾 REPL support
- Interpret a line
- Dynamic diagram generator
- Stack overflow while sending bad message to object in closure
Wollok Version: 3.2.4
- 🪟 Fix new parsing on Windows
Wollok Version: 3.2.4
- 👾 Refactors for wollok game
- Tests for errors on game events
- onCollide performance
- 🚧 Parser fixes for comments and whitespaces
Wollok Version: 3.2.3
- 🚧 Fix
import
on collisions between.wlk
and.wtest
files - 🔤 Add validation for special characters in file names
- 🧰 Add a lot of util functions (see
extensions
helpers
) - ✍️ Support
only
keyword on printer - 👁️🗨️ Fix unused variable and uninitialized attributes for wko validations
- 👾 Fix Wollok Game performance issues
Wollok Version: 3.2.2
- 🚧 Refactor: Revamp the API
- 🛠 export utils used on Validations
- 📚 more utilities for Model & Linker
Wollok Version: 3.2.1
- 🐛 Fix Type System with empty
if
- 🐞 Fix some Validations
- 🚧 Error handling for recursive attribute initialization
Wollok Version: 3.2.0
- 🐛 Fix Type System in order to ignore Wollok internal code
- 🐞 Fix Formatter for Prefix operators
- 🚧 Error handling for print
- 🛠 Fix for imports with duplicate names (now you can import an object pepita inside a file pepita)
Wollok Version: 3.2.0
- New Type System 🎉 - based on the Xtext's implementation.
- Fixed instantiation of
List
andSet
classes usingnew
. - Some validations changed:
- Take care about the
SourceMap
for reporting. - Avoid tests with the same name.
- Avoid override validation at
initialize()
method.
- Take care about the
Wollok Version: 3.1.9
- New Formatter / Printer 🎉
- Validate concrete class on instantiation.
- Validate uninitialized consts.
Wollok Version: 3.1.9
- Update Wollok version.
- Fixed #159 and #164 - Singleton abstract methods validation
- Fixed #172 - Filtering wollok base frames from stack trace & adding constants
Wollok Version: 3.1.8
- Update Wollok version.
- Fixed validation
shouldNotDuplicateEntities
for programs and globals. #157 - Fixed
malformedSentence
error for return methods. #162 - Split validation
shouldInitializeAllAttributes
in two. #161
Wollok Version: 3.1.7
- Update Wollok version.
- Fixed linking packages with the same name.
Wollok Version: 3.1.6
- Update Wollok version.
- Fixed buggy validations over incomplete AST.
Wollok Version: 3.1.3
- Adding mechanism to get possibly uninitialized lazy values without raising.
- Cleaned up uses of lazy fields to handle the posibility of the field not being there when reasonable (such as
parent
infullyQualifiedName
) - Improving type exclussion for models with the same structural definition.
Wollok Version: 3.1.3
- Updated TypeScript version to
4.9
- String-based Kinds and Categories were replaced with TypeScript classes and mixins (class constructor functions). All related methods were updated accordingly.
match
method in Nodes replaced in favor of genericmatch
function.- Several non-breakable, no-argument methods where replaced with computed properties.
- Dropped
isNode
function in favor ofinstanceof Node
notation. cached
decorator now supports properties as well as methods.- Dropped exposed
Node
methods that asumed a sibling order. - Added methods in
Literal
node to check value type. - Dropped
defaultFieldValues
in favor of the cleanerdefaultValueFor
method. - Renamed
Variable.isGlobal
to the more accurateisAtPackageLevel
.
- Recover from malformed sentence on parse.
- Fixed some validations:
- Reassign constant values
- Missing references
- Changed
kindName
primitive method implementation. - Fixed re-link Envirionment algorithm.
- Moved local game code to language project.
- Fixed bug where closures where unable to retain self reference when nested inside other closures.
- Updated to official Wollok Language 3.1.1 version.
- Fully qualified references to singletons are now valid expressions.
- Linker now has a new operation to link a stand-alone sentence.
- Added error recovery to File parser.
- General improvement to error recovery patterns.
- Package constructor now accepts fully qualified names and build the whole hierarchy.
- Added
getNodeOrUndefinedByFQN
and ``getNodeOrUndefinedByQN` methods for retrieving nodes by name without raising an error if not found. - Fixed linking error where imports where lost after merge.
- Fixed
shouldHaveAssertInTest
validation bug
- Fixed bug where validator would skip nested linker and parser errors
- Fixed broken import in index
- Annotations.
- Lazy operators are now handled in runtime instead of being filled in the parser.
- Anonymous Singleton expressions are no longer container within a Literal node.
- Fixed bug where imports would resolve on local definitions.
- Fixed bug where methods with bodies would return the last expression, even without a
return
clause. - Fixed linearization to properly avoid repetitions in hierarchy.
- Added options parameter to lookupMethod (allow abstract method to be included, lookup start FQN module moved into this parameter).
- Added validation functions based on @Expect annotation.
- SourceMaps are now custom classes with better string conversion logic.
- Better string conversion logic for nodes (short and verbose labels).
- Changed Node's
environment
andparent
to be fields instead of methods. - Linker no longer relies on the standard cache.
- Added
@lazy
decorator for readonly node fields that are eventually initialized during the pipeline. - Cache is now decoupled from nodes.
- Updated to official Wollok Language 3.0.3 version.
- Updated to official Wollok Language 3.0.2 version.
- Executions now admit to have
void
return type, to avoid forcing unnecesary return ofundefined
. - Evaluation
list
andset
methods now have varargs. - Evaluation
invoke
method is now split intoinvoke
for methods andsend
for messages. - RuntimeObjects now have a series of messages to retrieve their inner values by type
- New Interpreter interface
- Evaluation can now retrieve WKO with the
object
message. - Frames are now contexts themselves and contain more debugging info.
- Exceptions now delegate on inner Wollok Exception instances to get the stack trace.
- Updated to official Wollok Language 3.0.0 version.
- Only anonymous object literals and closures will be bound to their original context from now on.
- Number and String uniqueness will be maintained with weak references from now on.
- Dropped float number uniqueness.
- Methods now have
isConcrete
andisNative
methods.
- Implemented Wollok 3.0.0 support
- Removed Constructors
- Removed instantiation with unnamed arguments
- Removed anonymous class instantiation in favor of unnamed object literals
- Removed Fixtures
- New homogeneous linearization syntax
- Describes are now Modules and have Fields instead of Variables
- Fields and Variables' attribute
isReadOnly
has been renamed toisConstant
- Replaced bytecode compiler with (a little slower, but easier to maintain) pure AST interpreter
- Fixed filenames in node's source: Now is the whole filename, with extension and dirs
- The source's file is now defined as a
fileName
property in Package so it doesn't need to be saved in each node - New
isSynthetic
method for all nodes
- Fixing building process in bad release
- Removed Stages from model so TypeScript stops crashing :(
- Replaced model builders with better constructors
- Discarded unnecesary Filler pipeline stage (filling is now handled in the constructors)
-
Masive reification. Most concepts previously represented by Ids are now reified into instances.
- Operand Stacks are now filled with Runtime Objects instead of ids.
createInstance
now returns RuntimeObjects.- Runtime Objects are now their own context.
- Contexts now have a rich interface and their parents are now Contexts themselves instead of ids.
- Reified Stacks into a class with rich interface.
- Context Table is no more.
-
Refactored the Interpreter abstractions to make them more cohesive and improve discoverability.
- Cleaner exported interface for Interpreter module.
- Cleaner interface for Evaluation.
- Cleaner Frames.
- RuntimeObject now has factory methods to retrieve/create them.
- Numbers, Strings, and Booleans are now retrieved instead of created.
- Replaced
Evaluation.sendMessage
with the more usefulEvaluation.invoke
. - Dropped
runTest
andrunProgram
functions from the Interpreter. The plan is to create a nicer, separate facade for end users to perform this sort of single-time operations, that can hide the complexities (we will do this eventually).
-
Plenty of improvements in interpreter algorithm.
- Cleaner lazy initialization.
- Cleaner raise of exceptions.
- Waaay faster.
-
Some quality of life changes.
- Evaluation receives the root context as argument.
- Automatically stepping initialization on Evaluation creation.
- Added
log
as an attribute of Evaluation to allow non-global configuration. - Added
natives
as an attribute of Evaluation to avoid passing them as parameters all the time. - Evaluations can now safely deep-copy themself.
-
Complete test overhaul.
- Cleaner descriptions, easier to maintain that are based on describing the expected deltas instead of the before/after scenarios.
- New assertions and cleaner mocks.
- Here be dragons.