Jule 0.1.7
Language
- add: module names
- add: the tilde
~operator - add the
nilptrargument to thedisabledirective - add:
uintptrcasting support for functions (low-level programming purposes) - runtime: channels are optimized for high-frequency messaging
- remove:
&,|,^,<,<=,>=and>operators for enums - update: the new
buildcommand compiles a program instead of implicit compile commands
Compiler
- fix: define ordering may iterate infinitely when bind dependency exist
- fix: context data pointer is missing for entry point call when entry point used as anonymous function
- fix: the
--opt-mathoptimizations does not play well with complex numbers - fix: the
mod initcommand overwrites existing module file - rename: the
julenvcommand asenv - improve: the
helpcommand - update: compiler generates output with name
mainby default - parser: fix constant bind variables allowed
- sema: fix variable shadowing analysis
- sema: improve missing return statement analysis for select statements
- sema: improve and fix missing return statement analysis for goto statements
Standard Library
- runtime: add channel type support to the built-in
capfunction - runtime: add map type support to the built-in
makefunction - runtime: fix bind type may cause compile errors when used in built-in string conversion
- runtime: fix reserved Str function will not be handled if value is nil when using built-in string conversion
- std/io: add
ReadAtLeast, andReadFull - std/jule/constant: reimplement API
- std/jule/constant: fix
Const.Divdoes not reports false for divide-by-zero on complex numbers - std/net: add
IPAddr,ParseIP,Resolver,DefaultResolver, andDNSError - std/net: add DNS and port resolve to
TCPAddr.ResolveandUDPAddr.Resolve - (windows) std/net: fix timeout support of
TCPConnandUDPConn - std/net: timeout precision is milliseconds and limited with 40 days for
TCPConnandUDPConn - std/os: add
Hostname - std/slices: add
SortStableFunc - std/sync/atomic:
CompareAndSwaptakes separate memory ordering for success and fail - syd/sync/atomic: add
CompareAndSwapWeak - (macOS) std/sys: fix
GetsockoptandSetsockoptsyscalls - (linux) std/sys: fix
Setsockoptsyscall - std/time: add
Time.UnixMilli,Time.UnixMicro,Time.UnixNano
API
- reimplement
jule::Str: fix string equality comparison for strings with zero-bytesjule::Ptr: fix reference-counting
Legacy Support
This version is incompatible with source code written for previous versions. Older compiler versions cannot compile this version’s standard library and existing source code may need to be adapted for the new version.
The most common potential issues:
- Renaming and reimplementations on the standard library
- New API