Skip to content

archo5/sgscript

Folders and files

NameName
Last commit message
Last commit date

Latest commit

980a513 · Jun 29, 2018
Dec 31, 2012
Apr 27, 2017
Jun 29, 2018
Jun 29, 2018
May 4, 2017
Jun 29, 2018
Aug 30, 2016
Dec 31, 2012
Dec 31, 2012
Jun 29, 2018
Sep 12, 2017
Sep 18, 2016
Sep 20, 2016
Jun 11, 2017
May 19, 2016
Jan 20, 2016
Sep 20, 2016
Sep 1, 2016
Jun 11, 2017

Repository files navigation

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