Releases: Kray-G/kinx
Releases · Kray-G/kinx
v1.1.1
v1.1.0
Updates from v1.0.0 to v1.1.0.
- New Features
- Improvements/Enhancements
- #261: Separated binary modules in extlib to another repository & reduced a repository size.
- #255: Improved the
operator[]
inRange
. - #264: Supported to change directory.
- #265: Supported
$pwd
for getting a current directory. - #272: Supported a binary mode in HTTP.
- #273: Supported
read
/write
inFile
. - #290: Supported
chmod
inFile
. - #308: Improvement of the stack usage.
- #316: Changed a specification of a label to be with 2 colons.
- #332: Supported any radix on the
Integer.toString()
method. - #343: Supported an exponent representation for a real number literal.
- #346: Supported an assignment of inherit class instance to the variable having the base class type.
- Small improvements and enhancements as follows without managing by issues.
- Supported SemanticVersion class with
using SemanticVersion;
. - Supported putting a comma at the end of an argument's list for both declaration and calling.
- Added operators of
==
and!=
in Boolean class. - Supported
String#isIntegerString
. - Shared an implementation of conversion for a string, an integer, and a double.
- Improved type analysis for the language server.
- SpecTest: Made a space wider of Test case number.
- Improved Array.keySet() for
Array
itself. - Improved a type check a little in assignment.
- Supported SemanticVersion class with
- Bug Fixed
- #235: Crash when using
_
outside a function. - #236: Can't specify the class as a return type of function.
- #237: Comparing between variables having a string is failed.
- #256: Comparison operator will be failed with an integer on LHS and a variable(double) on RHS.
- #257: Fails a destructuring assignment when declaration with const.
- #258: There is a case that the bytecode is not outputted.
- #267: Can't use a variable name using an upper case in debugger.
- #269: Object item is removed by flatten().
- #274: No error for multiple
const
declaration for the same variable. - #284: Fixed a segmentation fault problem on Linux.
- #288: Incorrect message is displayed when
File.open
failed. - #289:
File.setFiledate
does not work correctly. - #293: Fixed a problem of a stack overflow with
=~
or!~
. - #301: Fixed a prblem of using
ctx
after cleanup. - #302: Fixed a prblem of the string optimization.
- #305: Fixed a prblem of no POPC in try.
- #314: Fixed a crash when accessing uninitialized object in native.
- #331: Fixed an incorrect handling of a big integer literal in lexer.
- #341: Fixed a problem that it crashes in destructuring assignment.
- #342: Fixed a problem that a pin operator in not avaiable at 2nd item or later in array.
- #345: Fixed to block the unsupported type conversion in native.
- #235: Crash when using
v1.0.3
This is a minor update to fix some bugs or improvements.
- Improvements
- #308: Improvement of the stack usage.
- Some feedbacks from V1.1.0.
- Supported putting a comma at the end of an argument's list for both declaration and calling.
- Bug Fixed
v1.0.2
v1.0.1
Updates from v1.0.0
- Improvements
- Bug Fixed
- #235: Crash when using
_
outside a function. - #236: Can't specify the class as a return type of function.
- #237: Comparing between variables having a string is failed.
- #256: Comparison operator will be failed with an integer on LHS and a variable(double) on RHS.
- #257: Fails a destructuring assignment when declaration with const.
- #258: There is a case that the bytecode is not outputted.
- #267: Can't use a variable name using an upper case in debugger.
- #269: Object item is removed by flatten().
- #235: Crash when using
v1.0.0
This is a 1st official release version.
- See Kinx Specification for a specification.
Small updates from v0.22.0
- Updated
- Updated
Functional
.- See Functional for details.
- Supported String Color methods with Escape Sequence.
- See String for details.
- Updated Documentation & SpecTest.
- Some bug fixes and improvements.
- Updated
v0.22.0
Updates from v0.21.0
- Updated
- Supported a pipeline and a function compoition operator.
See a pipeline, a function composition, and a library of Functional for details.- Supported a pipeline operator of
a |> b
which is just same asb(a)
. - Supported a pipeline operator of
a <| b
which is just same asa(b)
. - Supported a function composition operator of
a +> b
which is like{ => b(a(_1)) }
. - Supported a function composition operator of
a <+ b
which is like{ => a(b(_1)) }
.
- Supported a pipeline operator of
- Supported to read/write from/to Clipboard.
- By
var cb = new Clipboard();
, then you can:- Use
cb.write(str)
to writestr
to clipboard, or - Use
cb.read()
to read a text from clipboard.
- Use
- By
- Documentation & SpecTest complete.
- The documents which was planned was prepared at least, although the quality should be increased.
- Some bug fixes and improvements.
- Supported a pipeline and a function compoition operator.
v0.21.0
Updates from v0.20.1
- Updated
- Obsoleted a dot style of string literal like
.abc
which means"abc"
.- This is changed to another feature.
- Newly
.abc
is a function object which means{ => _1.abc.isFunction ? _1.abc() : _1.abc }
. - And also
.is***
like.isFunction
to check a type is a function object which means{ => _1.is*** }
. - This feature will care for the purpose below.
- As a call back method for methods of Array such as
Array#map
,Array#filter
, and so on. - As a function object placed at a
when
clause incase-when
.
- As a call back method for methods of Array such as
- Updated
case-when
features.- Supported
^
as a pin operator. - Supported an lvalue of array with index at
when
condition. - Supported
|
operator for multiple conditions called as alternative pattern atwhen
condition. - Supported putting a function object to check the result by function call at
when
condition. - Changed to make it error when the length of array is mismatched.
_
means to ignore binding a value atwhen
condition.
- Supported
- Introduced a
when
label inswitch
statement.- This can be used a substitute of a
case
label, and it will dobreak
automatically by default. - When specifying
fallthrough;
at the last statement of awhen
clause, it will be fallthrough. - The label instead of
default:
iselse:
which will dobreak
automatically at the end of statements. - The
fallthrough
keyword in acase
is meaningless and it will be ignored. - You can mix a
case
label and awhen
label, but it is not recommended. switch-when
is a statement and it is same asswitch-case
except a behavior ofbreak
andfallthrough
.
- This can be used a substitute of a
- Updated some type system.
- For type check in a language server.
- Making a compile error when it is unknown type or type mismatch in assignment.
- I am very sorry but, after a reconsideration I desided to change a syntax for a return type of native again.
Instead, It was possible to add a syntax that you can specify a return type also for a normal function.
However note that a return type for a normal function is currently just an information to the language server.- OLD
native:int
- NEW/ADD
native funcname(args):int
function funcname(args):int
public funcname(args):int
private funcname(args):int
- OLD
- Some bug fixes and improvements.
- Obsoleted a dot style of string literal like
v0.20.1
Updates from v0.19.3
- Updated
- Added the same directory as a current parsing file to a search path for
using
. - Introduced
File#getUtf8Char()
to get directly UTF8 character from a File object including$stdin
. - Introduced newly
case-when
expression for trial.- See case-when for details.
- Supported a different variable name from an object key in assignment, declaration, and function arguments.
var { x: a, y: b } = { x: 10, y: 100 }
meansa = 10, b = 100
.
- Supported a pattern matching syntax in assignment, declaration, and function arguments.
var { x: a, y: 100 } = { x: 10, y: m }
meansa = 10
ifm == 100
, otherwise an exception occurs.
- Supported an object key style also with an assignment.
{ x, y } = { x: 10, y: 100 }
meansx = 10, y = 100
.
- Relocation of build environment.
- Created a
build
directory and moved files needed at building to thebuild
directory.
- Created a
- Some bug fixes and improvement.
- Added the same directory as a current parsing file to a search path for
v0.19.3
Updates from v0.18.0
- Updated
- Added some features to use a language server.
- Added a debugger mode for debugging.
- Please see the debugger document to know how to use it.
- Removed KiTyy files to reduce a repository size.
- KiTTy needs a lot of big files like a font.
- KiTTy was moved to https://github.com/Kray-G/kinx-tiny-typesetting.
- Updated Copyright.
- Some bug fixes and improvement.
NEWS!
- By moving KiTTy, the archived zip file size of a source code has been reduced from 106MB to 24MB. (77.4% off!)
- A tiny and simple debugger is supported from this version. Please see details in the debugger document.