SqPlus compiles and runs on Win32, Linux, Mac OS-X, Sony PSP; should work with any modern C++ compiler. Unicode is supported. Can be downloaded, compiled and run in under 5 minutes (.zip includes all necessary files (build files for *nix and VS8 ( Visual Studio 2005 Express Editions are free ))). Code::Blocks project files also included.
VS7.1 project files: now included in main distribution (since VS8 now has free editions, VS7.1 will only be supported while source changes are minimal)
Added support for SquirrelObject as a function argument and return value. Tables and arrays can be directly accessed without using the stack. This also makes it possible to return tables, arrays, classes, and closures for later use at runtime, saving look-up overhead
Added GetRet() for SquirrelFunction<> to ensure proper stack behavior
Added additional error return info to help with debugging
Removed unused code
Documentation
See the following examples for getting started with SqPlus
Stepping through the examples with the debugger will provide insight into how the system works
Forum questions are typically answered by adding a test case to testSqPlus2.cpp
SqPlus is being used for a game in development. Updates are posted after changes during game development and/or to answer forum post questions
Using the Wiki system is very easy: those wishing to add examples and/or documentation, feel free to make contributions
The template design will not cause the compiler to slow down or cause symbol bloat with debug builds
Lightweight interfacing code: as fast as possible
Relatively easy to understand and trace through
Call system derived from LuaPlusCD: stable and tested design for many shipped PC and console games
DXSquirrel MACRO type registration and utility classes and functions supported
Relatively simple template usage: should work with any modern C/C++ compiler; VS.NET 2003 solutions and projects included
Automatic type checking
Automatic argument marshaling between script and C/C++
boost::python/luabind/squadd style class registration: simple, concise syntax
Function arguments
Fixed
Variable
Class constructor arguments
Fixed
Variable
Function return values
Fixed
Variable
Multiple values of arbitratry type returned on stack
Static support
Class static variables and functions
Any global variable or function can be registered in a class namespace
Variables
int, float, bool, string
Fast+simple fixed length strings
Can be registered as read-only in script
New types can be created as classes and passed by value or address
Easy to pass class instances between script and C++
Constants
int, float, bool, constant string types supported
enums are registered as int
All constants are read-only
Class binding
No proxy classes required
Proxy/wrapper classes can be used if desired
Automatic constructor/destructor creation
Custom constructor/destructor support
Static/global custom constructor/destructor can be used to prevent modification of original class
Class inheritance
Squirrel-style class inheritance supported
C++ classes can inherit from Squirrel classes
Squirrel classes can inherit from C++ classes
Tables
Simplified access and manipulation of Squirrel Tables
Arrays
Simplified access and manipulation of Squirrel Arrays
Namespaces
Can be created with tables, classes, or instances
Experimental
There is an experimental version of SqPlus available at http://www.tactile3d.com/bucket/squirrel/squirrel.php that implements Squirrel virtual machines as proper objects. If you want to have more than one VM running, you simply construct more than one VM object. This modification is currently experimental. Comments in the forum are appreciated.
Note the tripling of productivity and improved disposition.
SquirrelWiki is a collaborative web site for squirrel's community
4/28/2008 2:28:42 PM - -90.224.58.148
An easy to use binding system for Squirrel
4/12/2008 11:18:11 PM - 220.211.114.22
add a one or paragraph summary or description of what's discussed here; put yours after 'Summary:'
10/4/2007 5:44:10 PM - -208.116.31.12
Click to read this topic
10/4/2007 7:21:01 PM - -59.151.53.100
Click to read this topic
10/4/2007 7:21:01 PM - -59.151.53.100
Click to read this topic
10/4/2007 7:21:01 PM - -59.151.53.100
Click to read this topic
10/4/2007 7:21:01 PM - -59.151.53.100
Click to read this topic
10/4/2007 7:21:01 PM - -59.151.53.100
Click to read this topic
10/4/2007 7:21:01 PM - -59.151.53.100
An easy to use binding system for Squirrel
4/12/2008 11:18:11 PM - 220.211.114.22
Click to read this topic
10/4/2007 7:21:01 PM - -59.151.53.100
An easy to use binding system for Squirrel
4/12/2008 11:18:11 PM - 220.211.114.22
An easy to use binding system for Squirrel
4/12/2008 11:18:11 PM - 220.211.114.22
Before you compile the minimal example, here's what you should pay attention to.
6/30/2007 5:11:58 AM - -84.49.122.229
A minimal example and a simple class registration example. Optional remote debugger code is also shown.
10/3/2007 1:49:02 PM - -85.221.136.242
Passing class instances by address or as ""SQUserPointer"".
6/30/2007 1:02:01 PM - ad-remover-84.49.122.229
How to register preallocated member functions and member variables.
7/10/2007 3:44:28 PM - ad-remover-84.49.122.139
Passing class instances to Squirrel and instance assigment.
4/13/2008 10:03:23 PM - -203.127.30.82
Creating and managing multiple ""VMs"".
6/7/2007 1:17:30 PM - -84.49.122.175
Source file for testing each usage case.
4/5/2008 5:20:07 AM - 58.76.176.120
An easy to use binding system for Squirrel
4/12/2008 11:18:11 PM - 220.211.114.22
Click to read this topic
7/1/2007 7:41:08 AM - -220.211.116.217
Click to read this topic
7/27/2007 5:06:12 AM - ad-remover-84.49.122.204
Place example code that reproduces bug behavior and any suggested code fixes in the section below. Double click this page to edit, then paste code over // Place code here.