About ChaiScript

ChaiScript is the first and only scripting language designed from the ground up with C++ compatibility in mind. It is an ECMAScript-inspired, embedded functional-like language.

ChaiScript is licensed under the BSD license.

Download

Version: 2.3.3 Released: 5/15/2010

Source
Windows
Linux

ChaiScript Updates

Revision 541: Clean up reflection a bit, and how we do pretty printing of ast nodes. Registere

SVN Updates - Mon, 08/30/2010 - 07:37
Changed Paths:
    Modify    /trunk/include/chaiscript/language/chaiscript_common.hpp
    Modify    /trunk/include/chaiscript/language/chaiscript_engine.hpp
    Modify    /trunk/include/chaiscript/language/chaiscript_parser.hpp
    Modify    /trunk/src/reflection.cpp

Clean up reflection a bit, and how we do pretty printing of ast nodes. Registered new internal_to_string in reflection module so that we can have automatic pretty printing of ast nodes during repl eval.
Categories: ChaiScript Updates

Revision 540: Commenting out of previous node value caching scheme. This allows us to profile

SVN Updates - Sun, 08/29/2010 - 15:33
Changed Paths:
    Modify    /trunk/include/chaiscript/language/chaiscript_common.hpp
    Modify    /trunk/include/chaiscript/language/chaiscript_eval.hpp

Commenting out of previous node value caching scheme. This allows us to profile later, without having these smaller optimizations clutter up the flow. This also allows us to pass the reflection test.
Categories: ChaiScript Updates

Revision 539: Fix to the method/array dispatch issue

SVN Updates - Sun, 08/29/2010 - 13:49
Changed Paths:
    Modify    /trunk/include/chaiscript/language/chaiscript_eval.hpp

Fix to the method/array dispatch issue
Categories: ChaiScript Updates

Revision 538: Add some unit tests for reflection and recently discovered array lookup returned

SVN Updates - Sat, 08/28/2010 - 16:55
Changed Paths:
    Modify    /trunk/src/main.cpp
    Add    /trunk/unittests/deep_array_lookup.chai
    Add    /trunk/unittests/reflection_test.chai

Add some unit tests for reflection and recently discovered array lookup returned from a method problem
Categories: ChaiScript Updates

Revision 537: Fix to parsing of single-line comments where the comment at the end of a line wa

SVN Updates - Sat, 08/28/2010 - 16:14
Changed Paths:
    Modify    /trunk/include/chaiscript/language/chaiscript_parser.hpp

Fix to parsing of single-line comments where the comment at the end of a line was merging statements separated by a single line comment
Categories: ChaiScript Updates

Revision 536: Register AST_Node and Parser, overloaded eval for AST_Node and some const correc

SVN Updates - Sat, 08/28/2010 - 15:48
Changed Paths:
    Modify    /trunk/include/chaiscript/language/chaiscript_common.hpp
    Modify    /trunk/include/chaiscript/language/chaiscript_engine.hpp
    Modify    /trunk/include/chaiscript/language/chaiscript_parser.hpp
    Modify    /trunk/include/chaiscript/utility/utility.hpp
    Modify    /trunk/src/main.cpp
    Modify    /trunk/src/reflection.cpp

Register AST_Node and Parser, overloaded eval for AST_Node and some const correctness fixes
Categories: ChaiScript Updates

Revision 535: Rename of Token to AST_Node to be more correct

SVN Updates - Sat, 08/28/2010 - 12:38
Changed Paths:
    Modify    /trunk/include/chaiscript/language/chaiscript_common.hpp
    Modify    /trunk/include/chaiscript/language/chaiscript_engine.hpp
    Modify    /trunk/include/chaiscript/language/chaiscript_eval.hpp
    Modify    /trunk/include/chaiscript/language/chaiscript_parser.hpp

Rename of Token to AST_Node to be more correct
Categories: ChaiScript Updates

Revision 534: Stub out the reflection module

SVN Updates - Sat, 08/28/2010 - 12:29
Changed Paths:
    Modify    /trunk/CMakeLists.txt
    Add    /trunk/src/reflection.cpp

Stub out the reflection module
Categories: ChaiScript Updates

Revision 533: Fix warnings discovered on macos

SVN Updates - Sat, 08/28/2010 - 11:58
Changed Paths:
    Modify    /trunk/CMakeLists.txt
    Modify    /trunk/include/chaiscript/language/chaiscript_parser.hpp

Fix warnings discovered on macos
Categories: ChaiScript Updates

Issue 98 created: "error: call of overloaded `logical_complimen t(chaiscript::ModulePtr&)' is ambiguous"

Issues Updates - Thu, 08/19/2010 - 23:13
What steps will reproduce the problem? 1. Compile a minimal Chaiscript project using mingw (gcc version 3.4.5) What is the expected output? What do you see instead? Program doesn't compile, cannot resolve ambiguous functions. c:\Users\ben\Projects\tests\chai>make g++ -I"C:\\lib\chaiscript 2.3.3\\include" -IC:\lib\boost_1_40_0 -o basic basic.cpp In file included from C://lib/chaiscript 2.3.3//include/chaiscript/dispatchkit/dispatchkit.hpp:24, from C://lib/chaiscript 2.3.3//include/chaiscript/chaiscript.hpp:20, from basic.cpp:1: C://lib/chaiscript 2.3.3//include/chaiscript/dispatchkit/proxy_functions.hpp: In constructor `chaiscript::Bound_Function ::Bound_Function(const chaiscript::Const_Proxy_Function&, const std::vector<chaiscript::Boxed_Value, std::allocator<chai script::Boxed_Value> >&)': C://lib/chaiscript 2.3.3//include/chaiscript/dispatchkit/proxy_functions.hpp:279: warning: converting of negative value `-0x000000001' to `unsigned int' In file included from C://lib/chaiscript 2.3.3//include/chaiscript/chaiscript.hpp:21, from basic.cpp:1: C://lib/chaiscript 2.3.3//include/chaiscript/dispatchkit/bootstrap.hpp: In static member function `static chaiscript::Mo dulePtr chaiscript::bootstrap::Bootstrap::bootstrap(chaiscript::ModulePtr)': C://lib/chaiscript 2.3.3//include/chaiscript/dispatchkit/bootstrap.hpp:569: error: call of overloaded `logical_complimen t(chaiscript::ModulePtr&)' is ambiguous C://lib/chaiscript 2.3.3//include/chaiscript/dispatchkit/operators.hpp:118: note: candidates are: Ret chaiscript::operat ors::logical_compliment(L) [with Ret = bool, L = boost::shared_ptr<chaiscript::Module>] C://lib/chaiscript 2.3.3//include/chaiscript/dispatchkit/operators.hpp:337: note: chaiscript::ModulePtr chaiscript::operators::logical_compliment(chaiscript::ModulePtr) [with T = bool] C://lib/chaiscript 2.3.3//include/chaiscript/dispatchkit/bootstrap.hpp: In function `chaiscript::ModulePtr chaiscript::b ootstrap::opers_float_arithmetic(chaiscript::ModulePtr) [with T = double]': C://lib/chaiscript 2.3.3//include/chaiscript/dispatchkit/bootstrap.hpp:351: instantiated from `chaiscript::ModulePtr c haiscript::bootstrap::bootstrap_float_type(const std::string&, chaiscript::ModulePtr) [with T = double]' C://lib/chaiscript 2.3.3//include/chaiscript/dispatchkit/bootstrap.hpp:563: instantiated from here What version of the product are you using? On what operating system? 2.3.3 on Windows Vista using Mingw (gcc version 3.4.5)
Categories: ChaiScript Updates

Revision 532: A little cleanup of logical and/or since those are now separate evals.

SVN Updates - Thu, 08/19/2010 - 08:42
Changed Paths:
    Modify    /trunk/include/chaiscript/language/chaiscript_eval.hpp

A little cleanup of logical and/or since those are now separate evals.
Categories: ChaiScript Updates

Revision 531: More refactoring of parser to use the token children types directly instead of u

SVN Updates - Sat, 08/14/2010 - 20:04
Changed Paths:
    Modify    /trunk/include/chaiscript/language/chaiscript_common.hpp
    Modify    /trunk/include/chaiscript/language/chaiscript_engine.hpp
    Modify    /trunk/include/chaiscript/language/chaiscript_parser.hpp
    Modify    /trunk/src/main.cpp

More refactoring of parser to use the token children types directly instead of using a giant switch statement during build_match.
Categories: ChaiScript Updates

Revision 530: Updated email addresses in copyright information.

SVN Updates - Mon, 08/09/2010 - 23:24
Changed Paths:
    Modify    /trunk/contrib/geshi/chaiscript.php
    Modify    /trunk/contrib/test/callbacktest.cpp
    Modify    /trunk/contrib/test/dispatchkit_test.cpp
    Modify    /trunk/contrib/test/dispatchkit_unittest.cpp
    Modify    /trunk/contrib/test/sensors.cpp
    Modify    /trunk/include/chaiscript/chaiscript.hpp
    Modify    /trunk/include/chaiscript/dispatchkit/bad_boxed_cast.hpp
    Modify    /trunk/include/chaiscript/dispatchkit/bind_first.hpp
    Modify    /trunk/include/chaiscript/dispatchkit/bootstrap.hpp
    Modify    /trunk/include/chaiscript/dispatchkit/bootstrap_stl.hpp
    Modify    /trunk/include/chaiscript/dispatchkit/boxed_cast.hpp
    Modify    /trunk/include/chaiscript/dispatchkit/boxed_cast_helper.hpp
    Modify    /trunk/include/chaiscript/dispatchkit/boxed_pod_value.hpp
    Modify    /trunk/include/chaiscript/dispatchkit/boxed_value.hpp
    Modify    /trunk/include/chaiscript/dispatchkit/dispatchkit.hpp
    Modify    /trunk/include/chaiscript/dispatchkit/function_call.hpp
    Modify    /trunk/include/chaiscript/dispatchkit/function_call_detail.hpp
    Modify    /trunk/include/chaiscript/dispatchkit/handle_return.hpp
    Modify    /trunk/include/chaiscript/dispatchkit/proxy_constructors.hpp
    Modify    /trunk/include/chaiscript/dispatchkit/proxy_functions.hpp
    Modify    /trunk/include/chaiscript/dispatchkit/proxy_functions_detail.hpp
    Modify    /trunk/include/chaiscript/dispatchkit/register_function.hpp
    Modify    /trunk/include/chaiscript/dispatchkit/type_info.hpp
    Modify    /trunk/include/chaiscript/language/chaiscript_common.hpp
    Modify    /trunk/include/chaiscript/language/chaiscript_engine.hpp
    Modify    /trunk/include/chaiscript/language/chaiscript_eval.hpp
    Modify    /trunk/include/chaiscript/language/chaiscript_parser.hpp
    Modify    /trunk/include/chaiscript/language/chaiscript_prelude.hpp
    Modify    /trunk/src/example.cpp
    Modify    /trunk/src/main.cpp
    Modify    /trunk/src/multithreaded.cpp

Updated email addresses in copyright information.
Categories: ChaiScript Updates

@TacticalGrace I look for lightweight embed language often, lua, python, ecl (embeddable common lisp), chaiscript are all I know

ChaiScript Tweets - Mon, 08/09/2010 - 22:52
@TacticalGrace I look for lightweight embed language often, lua, python, ecl (embeddable common lisp), chaiscript are all I know
Categories: ChaiScript Updates

Revision 529: Move structure to being inheritance-based in preparation for reflection infrastr

SVN Updates - Sun, 08/08/2010 - 11:18
Changed Paths:
    Modify    /trunk/include/chaiscript/language/chaiscript_common.hpp
    Modify    /trunk/include/chaiscript/language/chaiscript_engine.hpp
    Modify    /trunk/include/chaiscript/language/chaiscript_eval.hpp
    Modify    /trunk/include/chaiscript/language/chaiscript_parser.hpp
    Modify    /trunk/src/main.cpp

Move structure to being inheritance-based in preparation for reflection infrastructure. This technique relies on the vtable's dynamic dispatch for correct evaluation, and removes the giant switch eval style of previous revisions.
Categories: ChaiScript Updates

Revision 528: Drastically reduce the number of exceptions thrown at runtime (cannot completely

SVN Updates - Sat, 08/07/2010 - 13:27
Changed Paths:
    Modify    /trunk/include/chaiscript/dispatchkit/dynamic_object.hpp
    Modify    /trunk/include/chaiscript/dispatchkit/proxy_functions.hpp

Drastically reduce the number of exceptions thrown at runtime (cannot completely eliminate them all, it's the nature of doing what we are doing with making a runtime interface to a compiled system like we are). profile.chai should see something like a reduction from 35,000 exceptions to about 100.
Categories: ChaiScript Updates

Revision 527: Renaming of helper function char_between. Adding help to check for hitting the

SVN Updates - Fri, 08/06/2010 - 20:18
Changed Paths:
    Modify    /trunk/include/chaiscript/language/chaiscript_parser.hpp

Renaming of helper function char_between. Adding help to check for hitting the end of input.
Categories: ChaiScript Updates

Revision 526: Cleaned up the formatting a bit. Switched parser over to using charBetween, whi

SVN Updates - Fri, 08/06/2010 - 05:17
Changed Paths:
    Modify    /trunk/include/chaiscript/language/chaiscript_common.hpp
    Modify    /trunk/include/chaiscript/language/chaiscript_engine.hpp
    Modify    /trunk/include/chaiscript/language/chaiscript_eval.hpp
    Modify    /trunk/include/chaiscript/language/chaiscript_parser.hpp

Cleaned up the formatting a bit. Switched parser over to using charBetween, which significantly improves readability of the early parsing rules.
Categories: ChaiScript Updates

Issue 97 created: "Consideration for boxed array types"

Issues Updates - Thu, 08/05/2010 - 22:34
Boxing and unboxing should work, but no consideration is made to use array operator delete and new - if that even matters? Something to look into at some point. I think there's some implications at to which boost::shared_ptr invocation should be used as well.
Categories: ChaiScript Updates

Revision 525: Add option for "light" testing, which greatly reduces compile times

SVN Updates - Thu, 08/05/2010 - 07:44
Changed Paths:
    Modify    /trunk/CMakeLists.txt

Add option for "light" testing, which greatly reduces compile times
Categories: ChaiScript Updates
Syndicate content