Language
- add: channels
- add: select statements
- add: mutability responsiveness for functions
- add: thread management runtime
- update: all keywords can used as identifier for bind defines
- update: only constant expressions allowed for default value of struct fields
- comptime: add slice literal support for comptime range iterations
Compiler
- fix: global variable initialization ordering
- fix: exceptional optimizations of
--opt-exceptional
flag - fix: output of the
help
command, thanks @lareii for the fix (#118) - fix: code generation for anonymous function calls
- fix: code generation for anonymous functions and other implicit analysis productions
- fix: code generation for empty slice literal
- fix: boundary size variable analysis of the
--opt-access
optimizations - fix: boundary exhibit variable analysis of the
--opt-access
optimizations - parser: fix statement separations and insertions
- parser: fix variable parsing invalid syntax error logging
- parser: fix empty case expression detection
- parser: fix
co
keyword allowed without any expression - parser: fix semicolon terminated empty statements may cause crash
- sema: fix map type analysis for cycles
- sema: fix import path analysis may crash when analysis standard library paths
- sema: fix function type string representation conversion
- sema: fix parsing of unicode code points in string literals
- sema: fix collection of variable dependencies for global variables
- sema: fix use declaration to root module may cause crash
- sema: fix cycle analysis of type aliases
- sema: caught initialization cycles for global variables
- sema: generate errors for invalid escape sequences
- sema: improve map type key constraint analysis
- sema: add responsiveness for the key and value pairs of the map literals
- sema: add built-in panic call support for exception handler scopes with no required use statement
Standard Library
- std/bufio: add the
FinalToken
- std/bufio: remove the
ScannerCfg
struct - std/bufio: remove the
NewCfg
static method of theScanner
- std/bufio: add the
Split
, andBuffer
methods to theScanner
- std/bufio: rename the
SplitLines
function asScanLines
- std/bufio: update
SplitFunc
andScanner
behavior (add final token support) - std/bytes: reimplemented
- std/comptime: add the
Chan
field toKind
- std/comptime: add the channel support to the
Elem
method ofcomptimeTypeInfo
- std/encoding: add the
JSONEncoder
,JSONDecoder
,TextEncoder
, andTextDecoder
traits - std/encoding/json: fix string literal validation
- std/encoding/json: add the
EncodeJSON
field toEncodeError
- std/encoding/json: add the custom encoder and decoder method support
- std/fmt: use
io::Writer
instead ofos::File
for theFprint
,Fprintln
, andFprintf
functions - std/jule: rename the
InitFn
asInitFunc
- std/jule/ast: add the
CanSend
,ChanRecv
,ChanType
, andSelect
structs - std/jule/ast: rename the
MatchCase
asMatch
- std/jule/ast: rename the
VarDecl
asVar
- std/jule/ast: rename the
TypeDecl
asType
- std/jule/ast: rename the
TypeDeclKind
asTypeKind
- std/jule/ast: rename the
IdentTypeDecl
asIdentType
- std/jule/ast: rename the
SubIdentTypeDecl
asSubIdentType
- std/jule/ast: rename the
NamespaceTypeDecl
asNamespaceType
- std/jule/ast: rename the
SptrTypeDecl
asSptrType
- std/jule/ast: rename the
SlcTypeDecl
asSliceType
- std/jule/ast: rename the
TupleTypeDecl
asTupleType
- std/jule/ast: rename the
PtrTypeDecl
asPtrType
- std/jule/ast: rename the
ArrTypeDecl
asArrayType
- std/jule/ast: rename the
MapTypeDecl
asMapType
- std/jule/ast: rename the
RetTypeDecl
asRetType
- std/jule/ast: rename the
EnumDecl
asEnum
- std/jule/ast: rename the
TypeEnumDecl
asTypeEnum
- std/jule/ast: rename the
EnumItemDecl
asEnumItem
- std/jule/ast: rename the
TypeEnumItemDecl
asTypeEnumItem
- std/jule/ast: rename the
TypeAliasDecl
asTypeAlias
- std/jule/ast: rename the
TraitDecl
asTrait
- std/jule/ast: rename the
StructDecl
asStruct
- std/jule/ast: rename the
FnDecl
asFunc
- std/jule/ast: rename the
FnCallExpr
asFuncCallExpr
- std/jule/ast: rename the
GenericDecl
asGeneric
- std/jule/ast: rename the
UseDecl
asUse
- std/jule/ast: rename the
ParamDecl
asParam
- std/jule/ast: rename the
FieldDecl
asField
- std/jule/ast: rename the
FallSt
asFall
- std/jule/ast: rename the
GotoSt
asGoto
- std/jule/ast: rename the
LabelSt
asLabel
- std/jule/ast: rename the
ContSt
asContinue
- std/jule/ast: rename the
AssignSt
asAssign
- std/jule/constant/lit: add the
Error
struct - std/jule/parser: rename the
Ast
field asAST
ofFileInfo
- std/jule/sema: add the
Select
,ChanSend
,ChanRecv
, andBuiltinCloseCallExpr
structs - std/jule/sema: add the
CaseOwner
enum - std/jule/sema: add the
ExprToken
field toRangeIter
- std/jule/sema: update the type of the
Owner
field ofCase
asCaseOwner
- std/jule/sema: update type of the
Elems
field ofArrayExpr
andSliceExpr
- std/jule/sema: rename the
FnCallExpr
asFuncCallExpr
- std/jule/sema: rename the
FallSt
asFall
- std/jule/sema: rename the
GotoSt
asGoto
- std/jule/sema: rename the
ContSt
asContinue
- std/jule/sema: rename the
Slc
asSlice
- std/jule/sema: rename the
Array
asArray
- std/jule/sema: rename the
Fn
asFunc
- std/jule/sema: rename the
FnIns
asFuncIns
- std/jule/sema: rename the
AnonFnExpr
asAnonFuncExpr
- std/jule/sema: rename the
Slc
method ofType
asSlice
- std/jule/sema: rename the
Arr
method ofType
asArray
- std/jule/sema: rename the
Fn
method ofType
asFunc
- std/jule/sema: rename the
Tup
method ofType
asTuple
- std/jule/sema: rename the
FindFn
method ofLookup
asFindFunc
- std/jule/sema: rename the
Mtch
field ofBreak
asMatch
- std/math/big: fix
Int.Parse
returns zero integer with not exception even if all value have not been consumed - std/math/big: add the
InvalidFormat
field toConvError
- std/os: add the
LookupEnv
,Getenv
, andSetenv
functions - std/runtime: add the
NumCPU
function - std/strings: reimplemented
- std/sync: add the
Locker
trait - std/sync: add the
Cond
struct - std/sync/atomic: reimplemented
- std/time: add the
ParseError
enum - std/time: add the
Month
, andWeekday
type aliases - std/time: add the
January
,February
,March
,April
,May
,June
,July
,August
,September
,October
,November
,December
,Sunday
,Monday
,Tuesday
,Wednesday
,Thursday
,Friday
,Saturday
,Layout
,ANSIC
,UnixDate
,RubyDate
,RFC822
,RFC822Z
,RFC850
,RFC1123
,RFC1123Z
,RFC3339
,RFC3339Nano
,Kitchen
,Stamp
,StampMilli
,StampMicro
,StampNano
,DateTime
,DateOnly
, andTimeOnly
constants - std/time: add the
UTC
, andLocal
globals - std/time: add the
Now
,Unix
,UnixAbs
,Since
,Until
,LoadLocationFromTZData
,FixedZone
,Parse
,ParseInLocation
, andParseDuration
functions - std/time: reimplement the
Time
andAbsTime
- std/time: add the
Location
struct
Legacy Support
Due to renaming in the standard library, some reimplementations and language update, code from older versions may not compile with the new version. Consequently, you may need to update your code to according to the new version.