Releases: GrayJack/janetrs
Releases · GrayJack/janetrs
JanetRS v0.8.0
Changes
- Breaking Refactor: Rename
JanetArgs::get_unwrappedtoJanetArgs::try_get - Breaking Refactor: Rename
JanetArgs::get_panictoJanetArgs::get_or_panic - Breaking Refactor: Turn
JanetConversionErrorinto a enum - Breaking Refactor: Refactor
CFunOptionsto useCStrinstead ofstr - Breaking Refactor: Use
usizefor length/index/capacity in collections - Breaking Refactor: Make
IsJanetAbstractan unsafe trait - Breaking Feat: Make
amalgationfeature enabled by default - Breaking Feat: Make
#[janet_fn]maintain the high-level function in scope - Feat: Add
Janet::dynamic_from_cstrconstructor - Feat: Add
JanetArgs::get_valueandJanetArgs::get_taggedtrait methods - Feat: Add
JanetArgs::get_or_defaulttrait method - Feat: Add
JanetArgs::get_or_elsetrait method - Feat: Add
JanetArgs::get_matchesandJanetArgs::get_tagged_matches - Feat: Add
JanetArray::pop_ifmethod - Feat: Add
JanetArray::push_within_capacitymethod - Feat: Add
JanetArray::extract_ifmethod - Feat: Add
JanetArray::split_offmethod - Feat: Add
JanetArray::swap_uncheckedmethod - Feat: Add
JanetArray::retainandJanetArray::retain_mutmethods - Feat: Add
JanetArray::get_range,JanetArray::get_range_mut,JanetArray::get_range_uncheckedand ,JanetArray::get_range_unchecked_mutmethods - Feat: Add
JanetArray::weakandJanetArray::weak_with_capacityconstructors - Feat: Add
JanetBuffer::push_janet_stringmethod - Feat: Add
assert_deep_eq!macro - Feat: Add
assert_deep_ne!macro - Feat: Add
env::set_dynamicfunction - Feat: Implement
JanetArgsfor[Janet; N] - Feat: Add conversion from
Janettoisizeandusize - Feat: Add conversion from
isize/usizetoJanet - Feat: Make conversion from
Janettoi64andu64accept when Janet is Number - Feat: Make conversion from
Janettoi64,u64,usize,isizeaccept when Janet is String - Feat: Always have
#[no_std]and import std whenstdfeature is activated - Perf: Avoid allocation in
Janet::dynamicif the passed argument is already null terminated - Refactor: Use default implementation on
JanetArgstrait for most methods - Refactor: Simplify
jpanic!macro - Refactor: janetrs_macros 0.7.0 — Update
syncrate to 2.0 - Refactor: Use
core::error - Fix: janetrs_macros 0.7.1 — Fix
janet_fnattribute macro not generating Janet docstring correctly - Fix: janetrs_version — Add missed feature flag
inline-more - Fix: Fix conversion from
Janetto 32 bit integers - Fix: Fix bounds checking for
JanetArray::insert - Fix: Fix adding C functions to environment/client with namespace
JanetRS v0.7.0
Changes
- BREAKING: Refactor: Rename
JanetArgs::get_unwrapedtoJanetArgs::get_unwrapped - BREAKING: Refactor: Rename
FileFlags::is_serializebletoFileFlags::is_serializable - Feat: Add
JanetAbstract::takemethod - Feat: Add
JanetAbstract::into_innermethod - Feat: Add
JanetTuple::{sourcemap, set_sourcemap}methods - Refactor: Simplify
JanetAbstract::new - Fix: Fix undefined behavior in
JanetArray::as_{ref,mut}methods - Fix: Fix clippy lints
- docs: Update a few documentation comments
JanetRS v0.6.0
Changes
- BREAKING: Feat: Conditionally expose
JanetFile"piped" flag (PIPED was removed in Janet 1.22.0) - BREAKING: Refactor: Changed definition of
IsJanetAbstracttrait - BREAKING: Refactor: Changed the return type of
JanetAbstract::get{_mut, _unchecked, _unchecked_mut} - BREAKING: Feat: Move everything possible to
C-unwind - BREAKING: Up Minimum Rust version to 1.71.0
- Feat: Add additional implementation of
Fromimplementation for
JanetBuffer,JanetArrayandJanetTable - Feat: Expose
JanetBuffermethods that useCStron no_std environment - Feat: Expose
JanetFile"update" flag - Feat: Expose more of the String-like types API on no_std environment
- Feat: Add method
can_resumeforJanetFiber - Refactor: Simplify the
tuple!andstructs!macros - Refactor: Simplify a few
PartialEqimplementations - Refactor: Simplify
JanetStructimplementation ofClone - Refactor: Adapt lifetimes to changes on bstr crate
- Refactor: Modernize format strings
- Fix: Fix compilation when
unicodefeature os off - Fix: Fix
check_mut_refonjanet_fnattribute macro - Fix: Fix linking on non x86_64 targets
- Docs: Improve documentation flags
- Docs: Simplify links
- CI: Many CI improvements
JanetRS v0.5.0
Changes
- BREAKING: Rename
JanetClient::with_default_env->
JanetClient::load_env_default - BREAKING: Rename
JanetClient::with_replacements->
JanetClient::load_env_replacements - Add
catcharg tojanet_fnattribute macro that adds code to catch Rust
panics and transform them into Janet panics - Add two new functions to initialize
JanetClient:
JanetClient::init_with_replacementsandJanetClient::init_with_default_env - Add
JanetFile::temp - Fix
tuple::{IntoIter, Iter}::size_hintimplementation - Migrate to Rust 2021
v0.4.1
Changes
- Add the trait
JanetArgsthat extend functionality of[Janet]used in Rust
defined Janet functions - Add the trait
JanetTypeNamethat defines the name of the types displayed
janet messages - Add
bad_slot!macro to shorten and help developing Rust defined Janet
functions
v0.4.0
Changes
- BREAKING: Make
JanetGc::collectan unsafe function - BREAKING: Remove
JanetEnvironment::add_def_with_doc,
JanetEnvironment::add_var_with_doc,JanetEnvironment::add_c_func_with_doc
andJanetClientfunctions with the same names - BREAKING: Remove
util::def,util::var,util::c_func - BREAKING: Rename
JanetEnviornment::add_c_functo
JanetEnvironment::add_c_fnJanetEnvironment::add_c_fn - Add
JanetFiletype - Add
JanetRngtype - Add
JanetTable::try_insertand related error type - Add
DefOptions,VarOptions,CFunOptionsto interact with the Janet
environment - Add
declare_janet_modmacro to generate the machinery that Janet requires do
create a Janet native module- It satisfies the same purpose as
janet_mod, but it can get the
documentation string from the function doc-comments and, for Janet versions
above 1.17.0, it also add source map information for Janet
- It satisfies the same purpose as
- Add
janet_abstract::registerfunction to register an abstract type. - Add option to
janet_fnattribute macro to include arity checks - Add
Janet::unwrap_or,Janet::unwrap_or_elseandJanet::unwrap_or_default - Implement
DisplayforTaggedJanetand defer theJanetdisplay
implementation to that - Refactor the
janet_fnattribute macro parameter parsing - Refactor the
JanetEnvironmentandJanetClientAPI janet_fnnow emits code with the function documentation and source map
information as constants to be used by another macrodeclare_janet_mod
FIxes
- Improve error report of attribute macros
- Fix compilation when no_std and with unicode feature enabled
0.3.2
0.3.1
0.3.0
Changes
- BREAKING: Rename
as_ptr_muttoas_mut_ptr - BREAKING: Rename
as_raw_muttoas_mut_raw - BREAKING:
JanetAbstract::newnow takes a value - BREAKING: Make the
janetrs::typesmodule private and export everything inside it in the upper module - BREAKING: Modify
From<&str>forJanetto return a Janet keyword if&strstarts with: - BREAKING: Modify
CallError::stacktracefunction. - Add ability to change some Janet behavior using the
amalgationfeature using environment variables - Add
DeepEqtrait - Add
dedup,dedup_byanddedup_by_keyforJanetArray - Add
get_uncheckedandget_unchecked_mutforJanetArray - Add
get_uncheckedforJanetTuple - Add
get_methodandhas_methodtoJanet - Add
prototype,set_prototypeandwith_prototypemethods forJanetTable - Add
get_key_value_proto{_mut}andget_proto{_mut}methods forJanetTable - Add
JanetGcandJanetGcLockGuardtypes to access some Janet GC operations - Add
JanetGcRootGuardand the functionsJanetGc::rootandJanetGc::unrootto root a Janet object to the GC - Add functions to get reference to a
JanetAbstractdata safely - Add
JanetAbstract::is - Add
Janet::int64 - Add
Janet::uint64 - Create
janetrs_versioncrate to use as common code used byjanet_versionmacro andjanetrs::utilmodule - Implement
DeepEqfor most types - Implement
DebugandDisplayforJanetSymbol - Implement
DebugandDisplayforJanetKeyword - Implement
IsJanetAbstractfor i64 and u64 - Implement
PartialEq,Eq,PartialOrdandOrdforJanetAbstract - Implement
PartialEq,Eq,PartialOrdandOrdforJanetFunction - Implement
PartialOrdandOrdforJanetFiber - Implement
FromandTryFrombetweeni64andJanet - Implement
FromandTryFrombetweenu64andJanet - Include "@" before the debug representation of Janet mutable types
- Refactor
Debugimplementation ofJanettype - Refactor
Displayimplementation ofJanettype - Refactor some implementations of
FromandTryFromrelated toJanettype - Reduce code duplication in
JanetAbstractfunctions
Fixes
- BREAKING: Change definition of
IsJanetAbstracttrait - Expose
jcatch!macro only if Janet version supports the underlying mechanism - Fix some clippy lints
- Fix compilation on no_std environment.
- Make some functions const if using a recent enough Rust version
0.2.0
Changes
- BREAKING: Add
Janet::unwrapthat returnTaggedJanet - BREAKING: Rename
Janet::unwraptoJanet::try_unwrap - Add
JanetEnvironmenttype - Add
janet_version/cjvgattribute macros for conditional compilation of Janet versions - Add split iterator for
JanetBufferandJanetString - Add
jcatchdeclarative macro - Refactor
JanetClientin terms ofJanetEnvironment - Implement
TaggetJanettype - Implement
JanetAbstracttype - Implement
JanetPointertype - Implement
JanetTryStatefor Janet "exception" recovery - Implement
PartialEq,Eq,PartialOrdandOrdfor several Janet types janet_fnnow can accept a parametercheck_mut_refthat checks if the function received more than one*mutpointer as parameter (not the default because Janet types are like interior mutability types)- More methods added for several types and improvements to the docs
Bug Fixes
- Fix change in behavior in
JanetBuffersince Janet 1.13.0 and also enforce that on earlier versions