squirrel-modules is a project to provide clean, flexible and extensible module import system for Squirrel programming language (http://squirrel-lang.org/), as well as few basic modules which would be of interest to many users. It's not intended to be vast collection of modules, but rather, set of technologies and best practices allowing users to provide quality modules on their own, aiming towards distributed community-supported module repositories as available for many popular languages (CPAN for Perl, PyPi for Python, etc.) Quick start: 1. Check out repository using "git clone --recursive". This will also checkout modified Squirrel code as a git submodule. If you already cloned without --recursive, run "git submodule update". 2. Install prerequisites. This includes: C++ compiler (GCC), GNU Make and libffi (libffi-dev package on Debian systems). 3. "make; make install". This will build "sqrl" interpreter with module import support, and included modules, and will install them within your home directory (in ~/bin/ for binaries and scripts and in ~/.squirrel/ for modules). 4. "export PATH=~/bin:$PATH", then run "sqrl". squirrel-modules consists of the following components: binmodule Support for dynamically loadable binary (i.e. compiled C/C++ code) modules. This code also provides means to support both static and dynamic using the same source code, as well as transparently support Squirrel source, Squirrel bytecode, and binary module loading. Summing up, binmodule provides low-level module import framework. import High-level import framework. This uses binmodule facilities underneath. Import framework is modeled after Python's import functionality and provides import() and import_from() functions for flexible namespace and symbol management. simple Example of trivial C module written using binmodule framework. ffi Foreign Function Interface (FFI) module, allowing to call arbitrary functions from dynamic libraries. This module can be used to interface with arbitrary software written in compiled languages (usually C/C++). os, socket Modules to wrap basic POSIX OS and socket functionality using FFI. osstream Implementaton of popen stream object (read/write from/to a child process via pipe) and fdopen stream object (wrap POSIX file descriptors in a stream object, useful for sockets and many other things). To use squirrel-modules, you need Squirrel with the patches to address some language misfeatures or lack of builtin functionality: https://github.com/pfalcon/squirrel-lang/tree/squirrel3-genpurpose (git clone --recursive pulls it automatically as a submodule). For more information about squirrel-modules ideas, see RFC on Squirrel forum: http://forum.squirrel-lang.org/mainsite/forums/default.aspx?g=posts&t=3122
pfalcon/squirrel-modules
General-purpose Squirrel language project. Includes collection of basic modules (including module loading infrastructure)
C++NOASSERTION