Beta 0.0.4 released! #48
Locked
mertcandav
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Beta 0.0.4 Release
Beta 0.0.4 is the most stable and reliable Jule release yet. This release, which solves many problems, does not have any bugs that we are not aware of for now. Many bug fixes, improvements, and expansions are in this version.
Of course, for the best experience, we recommend upgrading to the latest version, Beta 0.0.4.
Featured Improvements
Add
namespace
directiveThe
namespace
directive facilitates access to C++ definitions located in the namespace. Before, you had to write a wrapper for them. Now this obligation has decreased even more and namespace support has added. This feature can also be used to access static definitions of structures.See manual page for more information.
For example:
Compiler Optimization Improvements
Noticeable bugs in compiler optimizations have been fixed. This is accompanied by a few minor improvements.
The
--opt-math
optimization flag added for math operations. When this optimization is enabled, cost optimization is performed by skipping the division-by-zero condition check in division and modulo operations, if it can be checked at compile-time.The
--opt-access
optimization flag added for memory accesses. When this optimization is enabled, cost optimization is performed by skipping bounds checking for array accesses, if it can be checked at compile-time.The
--opt-append
optimization flag added for built-inappend
function. When this optimization is enabled, cost optimization is performed by avoid slice allocations. If it possible, appends elements one-by-one without allocating a temporary slice for variadic append elements.Improved Compiler Messages
Compiler messages have been improved. Now you can get a better idea of what to do by getting a suggestion when possible and see the location of the error marked on the relevant line.
For example:
Add Alias Support for Use Declarations
For Use declaration, it became possible to add a short nickname. This is now the first use declation method we recommend.
See manual page for more information.
For example:
Implement Unicode Library
The
std::unicode
library has been implemented. Thus, processing unicode characters has become much more comfortable and possible with Pure Jule.See manual page for more information.
For example:
Unicode Identifier Support
With the implementation of the
std::unicode
library, which has been waiting to be implemented since Beta 0.0.1, Jule has gained significant support in processing unicode characters. In addition, support for identifiers that can use unicode characters has been added to the compiler. Identifiers can now contain unicode characters.For example:
Add Destructors
We added the built-in
Dispose
trait. When applied, this trait applies a destructor to structures. Since it is a trait, it also provides a common interface for all structures with destructors.See manual page for more information.
For example:
Library for Integrated Jule
For integrated Jule, we added the
std::jule::integrated
library, which simplifies and standardizes things. This library is designed to speed up, simplify and standardize your work within Jule when working with integrated Jule. Contains tools and C-linked definitions.See manual page for more information.
For example:
Add Formatting Library
We added the
std::fmt
library for formatting. This library will develop even more in the future. String interpolation etc. It can be considered as an important alternative for those looking for it.See manual page for more information.
For example:
Reimplement IO Library
We implemented it from scratch by destroying the
std::io
library. We made it more functional and usable. Stream processing is now easier and makes working with the file system more comfortable. In addition, it offers a common usage interface by adding file interfaces for stdin, stdout and stderr.See manual page for more information.
For example:
Changes
/=
—opt-append
,—opt-access
, and—opt-math
options—opt-append
,—opt-access
, and—opt-math
for—opt L1
Compiler Packages
namespace
directive for cpp-links whenever possibleTypeKind
structany
typeout
, andoutln
functionsAPI
Error
trait maskdiv
,mod
,unsafe_div
, andunsafe_mod
functionsstd::ostream
operator tojule::I8
andjule::U8
types as integer by defaultStandard Library
Heap[T]
structVector[T]
Dispose
traitNamespace
field toDirective
enumBUILTIN_TRAIT_DISPOSE
globalcpp_linked
field ofTypeKind
structcpp_linked
,lvalue
,mutable
,nil_compatible
,supports_cloning
, andvariadicable
methods toTypeKind
structis_void
method asvoid
ofTypeKind
structis_cpp_linked
method ascpp_linked
ofTypeKind
structdirectives
field toVar
structdirectives
filed toVarDecl
structBuiltinAppendCallExprModel
structERRORS
globalLogMsg
enumerrorf
function aslogf
Log
structnew
static method toReferenceStack
structpush_front
andremove
methods ofReferenceStack
structnew
static method toFile
structFile
structAtomicInt
,AtomicUint
, andAtomicUintptr
typeschar_ptr_to_str
,u16_ptr_to_str
,utf16_to_str
, andutf16_from_str
functions tostd::jule::integrated
write_console
, andread_console
functions for Windowsget_console_mode
, andset_console_mode
functions for WindowsBeta Was this translation helpful? Give feedback.
All reactions