leftibot
c3aa9ee6d5
Fix #146 : Add configuration options to selectively disable built-in functions
...
Add new Options enum values (No_Stdlib, No_IO, No_Prelude, No_JSON) that
allow users to control which parts of the standard library are registered.
Std_Lib::library() now accepts an options vector, and the ChaiScript
convenience class forwards its options to the library builder. This enables
use cases where only custom functions should be exposed to script users.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 22:50:28 -06:00
Clemens Terasa
681104b68f
dispatchkit: boxed_value: Fix noexcept warning for Data ctor
...
Using gcc 13.3.0 I get many warnings like the following:
```
In file included from .../include/c++/13.3.0/bits/stl_iterator.h:85,
from .../include/c++/13.3.0/bits/stl_algobase.h:67,
from .../include/c++/13.3.0/bits/stl_tree.h:63,
from .../include/c++/13.3.0/map:62,
from .../ChaiScript/static_libs/../include/chaiscript/chaiscript_stdlib.hpp:10,
from .../ChaiScript/static_libs/chaiscript_stdlib.cpp:1:
.../include/c++/13.3.0/bits/stl_construct.h: In instantiation of ‘constexpr decltype (::new(void*(0)) _Tp) std::construct_at(_Tp*, _Args&& ...) [with _Tp = chaiscript::Boxed_Value::Data; _Args = {chaiscript::Type_Info, chaiscript::detail::Any, bool, std::nullptr_t, bool&}; decltype (::new(void*(0)) _Tp) = chaiscript::Boxed_Value::Data*]’:
.../include/c++/13.3.0/bits/stl_construct.h:115:21: required from ‘constexpr void std::_Construct(_Tp*, _Args&& ...) [with _Tp = chaiscript::Boxed_Value::Data; _Args = {chaiscript::Type_Info, chaiscript::detail::Any, bool, std::nullptr_t, bool&}]’
.../include/c++/13.3.0/bits/alloc_traits.h:661:19: required from ‘static constexpr void std::allocator_traits<std::allocator<void> >::construct(allocator_type&, _Up*, _Args&& ...) [with _Up = chaiscript::Boxed_Value::Data; _Args = {chaiscript::Type_Info, chaiscript::detail::Any, bool, std::nullptr_t, bool&}; allocator_type = std::allocator<void>]’
.../include/c++/13.3.0/bits/shared_ptr_base.h:604:39: required from ‘std::_Sp_counted_ptr_inplace<_Tp, _Alloc, _Lp>::_Sp_counted_ptr_inplace(_Alloc, _Args&& ...) [with _Args = {chaiscript::Type_Info, chaiscript::detail::Any, bool, std::nullptr_t, bool&}; _Tp = chaiscript::Boxed_Value::Data; _Alloc = std::allocator<void>; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]’
.../include/c++/13.3.0/bits/shared_ptr_base.h:971:16: required from ‘std::__shared_count<_Lp>::__shared_count(_Tp*&, std::_Sp_alloc_shared_tag<_Alloc>, _Args&& ...) [with _Tp = chaiscript::Boxed_Value::Data; _Alloc = std::allocator<void>; _Args = {chaiscript::Type_Info, chaiscript::detail::Any, bool, std::nullptr_t, bool&}; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]’
.../include/c++/13.3.0/bits/shared_ptr_base.h:1712:14: required from ‘std::__shared_ptr<_Tp, _Lp>::__shared_ptr(std::_Sp_alloc_shared_tag<_Tp>, _Args&& ...) [with _Alloc = std::allocator<void>; _Args = {chaiscript::Type_Info, chaiscript::detail::Any, bool, std::nullptr_t, bool&}; _Tp = chaiscript::Boxed_Value::Data; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]’
.../include/c++/13.3.0/bits/shared_ptr.h:464:59: required from ‘std::shared_ptr<_Tp>::shared_ptr(std::_Sp_alloc_shared_tag<_Tp>, _Args&& ...) [with _Alloc = std::allocator<void>; _Args = {chaiscript::Type_Info, chaiscript::detail::Any, bool, std::nullptr_t, bool&}; _Tp = chaiscript::Boxed_Value::Data]’
.../include/c++/13.3.0/bits/shared_ptr.h:1009:14: required from ‘std::shared_ptr<std::_NonArray<_Tp> > std::make_shared(_Args&& ...) [with _Tp = chaiscript::Boxed_Value::Data; _Args = {chaiscript::Type_Info, chaiscript::detail::Any, bool, std::nullptr_t, bool&}; _NonArray<_Tp> = chaiscript::Boxed_Value::Data]’
.../ChaiScript/static_libs/../include/chaiscript/language/../dispatchkit/boxed_value.hpp:74:38: required from here
.../include/c++/13.3.0/bits/stl_construct.h:95:14: warning: noexcept-expression evaluates to ‘false’ because of a call to ‘chaiscript::Boxed_Value::Data::Data(const chaiscript::Type_Info&, chaiscript::detail::Any, bool, const void*, bool)’ [-Wnoexcept]
95 | noexcept(noexcept(::new((void*)0) _Tp(std::declval<_Args>()...)))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from .../ChaiScript/static_libs/../include/chaiscript/language/chaiscript_common.hpp:21,
from .../ChaiScript/static_libs/../include/chaiscript/chaiscript_stdlib.hpp:17:
.../ChaiScript/static_libs/../include/chaiscript/language/../dispatchkit/boxed_value.hpp:34:7: note: but ‘chaiscript::Boxed_Value::Data::Data(const chaiscript::Type_Info&, chaiscript::detail::Any, bool, const void*, bool)’ does not throw; perhaps it should be declared ‘noexcept’
34 | Data(const Type_Info &ti, chaiscript::detail::Any to, bool is_ref, const void *t_void_ptr, bool t_return_value)
| ^~~~
/
```
Fix this by adding a noexcept like the warning suggests.
2025-02-19 20:04:17 +01:00
Glen Fraser
5722a5177d
Fix crash with out of bounds index (issue #572 )
2021-07-08 18:55:36 +02:00
Bernd Amend
cff6a0aced
change .clang-format and reformat code with clang-format 11
...
I initially tried to use the existing .clang-format file,
but it does not match the code style (at least with clang-format 11)
and the formatting is not consistent across files.
Therefore, I decided to rewrite the .clang-format with some personal
preferences.
Used command
find . -iname "*.hpp" -o -iname "*.cpp" | xargs clang-format -i -style=file
2021-05-24 10:44:15 +02:00
Bernd Amend
82ef037912
fix vs2019 build
2021-05-22 23:53:31 +02:00
Bernd Amend
8ee033cf89
remove not required ()
2021-05-22 18:45:12 +02:00
Bernd Amend
14e9ec6e97
fix implicit conversion warnings by making them explicit
2021-05-22 18:45:12 +02:00
Bernd Amend
1302e28e32
replace the deprecated is_pod_v with is_trivial_v
...
is_pod_v was deprecated in C++20, is_pod_v can be
replaced with is_trivial_v && is_standard_layout_v.
I don't see any benefit from is_standard_layout_v,
but I could have missed something.
2021-05-22 18:45:12 +02:00
Bernd Amend
cf7821cb1e
fix ChaiScript#537
2021-05-22 18:45:12 +02:00
Bernd Amend
19929be684
don't default implicitly deleted operator=/ctor ChaiScript#527
2021-05-22 18:44:54 +02:00
Bernd Amend
c4e1e1965e
remove not required ";"
2021-05-22 14:09:24 +02:00
Bernd Amend
1e6263976f
don't return voids
2021-05-22 14:05:52 +02:00
Bernd Amend
2b3bddb02d
replace typedef with using
2021-05-22 14:04:04 +02:00
Bernd Amend
684522a8b7
fix -Wcovered-switch-default warnings
2021-05-22 14:01:39 +02:00
Bernd Amend
e62f0d3296
drop useless statics and/or add [[nodiscard]]
2021-05-22 13:50:57 +02:00
Bernd Amend
c47b9e3b0d
replace const std::string_view with std::string_view
2021-05-22 13:40:32 +02:00
frysch
ab691f687d
map_conversion: copy forced for loop var p (incompatible ref type)
...
The underlying pair that is dereferenced from the iterator has always `const` qualified `first` member (key type). Therefore, an unnecessary temporary was created and bounded to the const ref to the pair. This could be also fixed with `for (const auto &p : from_map)`.
2021-01-15 09:14:49 +01:00
Rob Loach
d7832661e7
Merge pull request #503 from SG-Skril/develop
...
Fix for lambdas returning booleans
References #481
2020-12-11 14:46:50 -05:00
Glen Fraser
259f130a60
Fix build warnings from unused enums in switch; unused function arg
2020-10-16 11:56:07 +02:00
Glen Fraser
f355d27aea
Fix GCC build error "explicit specialization in non-namespace scope"
...
- other compilers don't complain, but for GCC needed to move the
template constructor specialization (array of size 0) outside the
class declaration.
2020-09-04 13:52:25 +02:00
Glen Fraser
350acbf254
Fix compile errors on VS2019 (C++17) with Function_Params
...
- needed to disambiguate between chaiscript::Function_Params and
chaiscript::dispatch::detail::Function_Params in several places.
2020-09-04 12:57:49 +02:00
Glen Fraser
dd69230f19
Fix issues with Function_Params constructors (array and vector args)
...
- code (on MSVC) was asserting due to trying to dereference invalid
pointers (dereferencing the end iterator, even if only to get its
address!).
- when a Function_Params is constructed with an empty vector, you
can't return the address of the vec.front() -- instead we use
nullptr for the m_begin and m_end pointers.
2020-09-04 11:27:52 +02:00
SG-Skril
0e243b006a
Potential fix for issue ChaiScript#481
...
(bool cannot be stored in Boxed_Number)
2019-11-10 18:07:47 +01:00
Jason Turner
27072a77e6
Get VS compiling
2019-04-20 12:26:12 -06:00
Jason Turner
b7e26b9076
Attempt to get C++17 work compiling for VS 2019
2019-04-20 12:09:24 -06:00
Jason Turner
c737f2419b
Merge pull request #453 from AlekMosingiewicz/error_on_double_conversion
...
Error on double conversion
2018-08-15 13:33:13 -06:00
Jason Turner
5db87a9175
Merge branch 'release-6.x' into develop
2018-08-15 13:13:44 -06:00
Jason Turner
44dab4d45c
Deal with returning of & to * types
2018-08-15 13:10:23 -06:00
Alek Mosingiewicz
9f9436e741
Remove newlines.
2018-08-13 21:19:15 +02:00
Alek Mosingiewicz
b9741d9433
Make conversion_error inherit from bad_boxed_cast.
2018-08-13 18:25:43 +02:00
Alek Mosingiewicz
eb3ee28cee
Some better naming for test.
2018-08-13 17:56:49 +02:00
Alek Mosingiewicz
80f11de41e
Make information on source and target types in Type Conversion
...
Exception public.
2018-08-10 17:57:15 +02:00
Alek Mosingiewicz
27bee4a266
Bypass the mutex problem when looking for conversion, automatic
...
test.
2018-08-10 17:29:46 +02:00
Alek Mosingiewicz
ecd6000d54
Throw conversion error when conversion already exists.
2018-08-07 18:00:58 +02:00
Jason Turner
a880319db8
Merge branch 'develop' into best_practices
2018-05-30 08:30:29 -06:00
Jason Turner
c19705da5d
Merge remote-tracking branch 'origin/c++17' into develop
2018-05-29 13:21:09 -06:00
Jason Turner
2d762c8be3
Update copyrights to 2018
2018-05-29 11:51:15 -06:00
Jason Turner
dae0f3dd62
Merge pull request #411 from stephenberry/develop
...
Critical fix of type_info ordering (less than operator)
2018-05-25 16:27:56 -06:00
Jason Turner
805e7c0917
Fix up some error handling
2018-05-25 14:33:17 -06:00
Stephen Berry
d24743370a
Merge branch 'develop' of https://github.com/ChaiScript/ChaiScript into develop
2018-05-24 12:21:35 -05:00
Jason Turner
0520bb178c
Fix capture error
2018-05-20 20:36:33 -06:00
Jason Turner
c14d9dfb6e
Fix some new clang related warnings
2018-05-08 10:05:10 -06:00
Jason Turner
f695a24e1b
Fix clang warning for undefined msvc symbol check
2018-05-08 09:46:01 -06:00
Jason Turner
a48f358555
Better error reporting on missing type info
2018-04-01 11:06:48 -06:00
Stephen Berry
0ad4f83366
Removed constexpr for Visual Studio compilation. Xcode (LLVM) works with constexpr on the before function, but Visual Studio (2015) does not.
2018-02-15 09:10:11 -06:00
Stephen Berry
2dbfdfe111
Critical type_info ordering fix. Was using a less than comparison on pointers, which sometimes resulted in differing behavior between compilations.
2018-02-15 08:59:20 -06:00
Jason Turner
6c41ac90d8
Add to_int(int) and similar overloads
...
* This is so that `to_int` `to_char` `to_long` and similar work not
only with strings but also with built-in types
2018-02-02 20:35:32 -07:00
Jason Turner
695fa0b371
Proper fix for noexcept/msvc2017
...
From @StephanTLavavej
2018-01-19 11:54:19 -07:00
Jason Turner
eb93760f1b
Fix building on MSVC in C++17 mode
...
Closes #403 #396 #395
2018-01-19 10:26:31 -07:00
Jason Turner
db72ab626f
Consolidate hand-rolled flat maps
2017-11-24 22:20:52 -07:00