97 lines
3.6 KiB
Plaintext
Executable File

LOOP 2.3 Release Notes
____________
CLASS MODELS
[All Models]
- New operation 'memberof(class, name)' that gets the value of a member defined
by a class.
_____________
CLASS LIBRARY
[New Classes]
- loop.collection.UnorderedArraySet
- loop.compiler.Arguments
- loop.object.Publisher
[loop.collection.MapWithArrayOfKeys]
- Bugfix when mapping key values to 'false'.
[loop.collection.OrderedSet]
- Bugfixes to deal with 'nil' parameters and 'false' elements properly.
[loop.debug.Inspector]
- Improvement to support commands 'step', 'step "in"' and 'step "out"'.
- Improvement to support definition of break points.
- Improvement to support command 'lua' to retrieve values from the Lua global
environment, i.e. _G.
[loop.debug.Matcher]
- Improvement to hold the values being compared at indexes 0 (second parameter)
and 1 (first parameter) to be able to provide better error messages.
[loop.debug.Verbose]
- Bugfix when default inspection (self.inspect = true) was used.
- Bugfix to use a specific Viewer instance to avoid changing the behavior of the
class 'loop.debug.Viewer'.
[loop.object.Exception]
- Bugfix to allow subclasses to work with the inherited '__concat'
metamethod.
[loop.serial.FileStreamer]
- Bugfix when multiple values were serialized into a file using different 'put'
calls.
[loop.serial.Serializer]
- Bugfix for proper serialization of global non-serializable functions.
- Bugfix to show a proper error message when attempting to serialize a userdata
without custom serialization metamethod.
- Bugfix so all fields of loaded packages that have unique values (i.e.
tables, functions, threads or userdata) are serialized as package fields
instead of ordinary serializable values.
- Improvement so serialized code generated by redefined serialization functions
for specific Lua types does not have to follow any protocol anymore. However,
to avoid future serialization of the same value the a value retrieval code
must be registered in the serializer using the serialized value as key.
[loop.thread.CoSocket]
- Bugfix when operation 'receive' yielded due to a full buffer.
- Bugfix in 'select' to prevent wrong socket selection.
- Bugfix in 'select' when executed without yielding and returned sockets instead
of socket wrappers.
- Improvement by use of package 'socket.core' instead of 'socket' package.
- Improvement by addition of 'cosocket' verbose tag as a new level of verbose in
'loop.thread.Scheduler' verbose.
[loop.thread.IOScheduler]
- Bugfix to prevent duplicated verbose message already printed by the super
class.
[loop.thread.Scheduler]
- Bugfix in 'remove(coroutine)' when coroutine == self.currentkey;
- Bugfix in constructor that created instances that shared data structures used
by the class. The new constructor also allows objects that already are
instance of the class to be constructed again perserving its state.
- Bugfix when coroutine-safe pcall executed C functions.
- Improvement in 'remove' to return the removed coroutine plus the time it
should wake up if it was suspended.
- Improvement by addition of method 'halt' that stops the scheduling performed
by method 'run'.
[loop.thread.Timer]
- Bugfix that prevents the timer thread to end after first execution.
- Bugfix when timer was disabled.
_________________
GENERAL UTILITIES
[loop.table]
- Bugfix in function 'clear(table)' when table contained a 'false' key.
- Improvement in function 'copy(table [, destiny])' that now performs a raw
copy, i.e. using 'rawset'.
[precompiler.lua]
[preloader.lua]
- These scripts now require class 'loop.compiler.Arguments' to handle command
line options.