C C# C++ Other
Switch branches/tags
Clone or download
Pull request Compare This branch is 93 commits behind apidev.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin
build
docs
dotnet
examples
ext
jni
lib
obj
src
tests
.gitignore
.travis.yml
CHANGELOG.md
CMakeLists.txt
LICENSE
README.md
core.mk
makefile

README.md

SGScript v1.4.1

Usage

  • MinGW/GNU Make/GCC/Clang users:
    • compile the makefile (add mode=release to get the release build)
    • include src/sgscript.h and link with -lsgscript from the bin/ directory (-Lbin)
    • to get a static library, use static=1 and link to lib/libsgscript.a (-Llib -lsgscript)
  • VC10+ users: project file is in build/vc10/SGScript
  • XCode users: project file is in build/xcode
  • Android NDK users: include jni/Android.mk into your makefile

Sample Code and Documentation

Look in examples/, tests/ and docs/ directories.

To build local HTML5 documentation, use "make docs".

More sample code can be found in documentation: http://www.sgscript.org/docs/sgscript.docs/code-samples-sgscript

Features

  • A C-like syntax
  • The usual stuff (while/do-while/for/foreach, expressions, variables etc.)
  • Highly optimized, register-based virtual machine
  • Mixed memory management (ref.counting + GC)
  • Extensive native debugging features
  • Coroutines, threads, advanced sync features
  • Interactive debug inspector add-on
  • Function/instruction execution time and memory usage profiler add-on
  • 10 data types (with lots of space for extensions):
    • null, bool, int, real, string, function, C function, object, pointer, thread
  • Tests:
    • testing framework is in ext/sgstest.c => bin/sgstest ("make test" to run)
    • API testing framework is in ext/sgsapitest.c => bin/sgsapitest ("make apitest" to run)
    • C++/BC testing framework is in ext/sgscppbctest.cpp/h => bin/sgscppbctest ("make cppbctest" or "make cppbctest11" to run)
  • Object-oriented constructs (dict, class, closure, "compatible call", overloadable operators)

Bindings

  • .NET 2.0+ bindings are at dotnet/SGS.NET (currently only tested on Windows - standalone VM and Unity)

Bugs

  • Development branch status: Travis CI Build Status AppVeyor Build Status

If you think you've found a bug, please create a new issue on GitHub.

Don't forget to include a test sample, as small as possible!

Future plans

  • full state serialization
  • got a suggestion? write some sample code (in the form of a test) and send it here

Community

Credits