Git Product home page Git Product logo

squirrel-lang's Introduction

"General-Purpose Squirrel" project

This branch of a repository (or tarball is you got such) implements Squirrel
core specific changes for "Squirrel as General-Purpose Language" RFC:
http://forum.squirrel-lang.org/mainsite/forums/default.aspx?g=posts&t=3116

Changes to the core are expected to be concise, to faciliate future merging
with upstream (no too big refactors), and stay compatible with original
Squirrel. Of course, changes may introduce new features which, if being
used, no longer will be compatible with original interpreter (fixing
warts is the whole purpose of this branch in the first place). Besides
concise, changes are also should be few, again, to facilitate merging
with upstream (or submission to upstream, assuming it is interested). If
something can be NOT changed, it rather be not. Anything which can go
to extension module, should rather go there.

Big part of "General-Purpose Squirrel" project is module library. Actually,
if you're interested in the project, you should rather checkout
squirrel-modules repository - it includes this branch as a git submodule
and will build you an interpreter with module imported capabilities
(which are not available in this branch proper - see above: anything not
belonging to the core, should be an extension). Feel free to proceed to
https://github.com/pfalcon/squirrel-modules

List of changes done in this branch:

1. Usage of "<-" operator is optional. Instead, you can use "=" operator
as in most other languages. All existing Squirrel code will continue to
work.
RFC and discussion:
http://forum.squirrel-lang.org/mainsite/forums/default.aspx?g=posts&t=3113
Reference: Python, many other languages.

2. readblob() fixed to work with streams, not just files (can use
with stdin for example).

3. "stream" base class got readline() method for reading next textual
line. It is implemented for file objects, currently not implemented
for blobs. Reference: Python.

4. "stream" base class got read(size) and write(str) methods. Reference:
Python.

5. blob.tostring() method added for consistency and ease of use.

6. Treat "", [], {} as false values in boolean context (like Python).
This allows for simpler checks in container processing algorithms.

7. If runtime error happened in the script, interpreter exits with
return code 253 (was 0, i.e. success, previously).

8. Interactive interpreter prints intro text with helpful hints at start.

9. Improve build system: more easy to use makefile, allow to build in
arbitrary static modules (using override makefile), helper script to
assess interpreter binary size when built with different options.

10. In vargv[] as passed to top-level script function, vargv[0] is now
name of the script itself. Reference: Unix shell conventions.


Original README content follows:
=================================================================

The programming language SQUIRREL 3.1 stable

--------------------------------------------------
This project has successfully been compiled and run on
 * Windows (x86 and amd64)
 * Linux (x86, amd64 and ARM)
 * Illumos (x86 and amd64)

The following compilers have been confirmed to be working:
    MS Visual C++  6.0 (all on x86 and amd64)
                   7.0   |
                   7.1   v
                   8.0
                   9.0
                  10.0 
                  12.0  ---
    MinGW gcc 3.2 (mingw special 20020817-1)
    Cygnus gcc 3.2
    Linux gcc 3.2.3
              4.0.0 (x86 and amd64)
              5.3.1 (amd64)
    Illumos gcc 4.0.0 (x86 and amd64)
    ARM Linux gcc 4.6.3 (Raspberry Pi Model B)


Feedback and suggestions are appreciated
project page - http://www.squirrel-lang.org
community forums - http://forum.squirrel-lang.org
wiki - http://wiki.squirrel-lang.org
author - [email protected]

END OF README

squirrel-lang's People

Contributors

pfalcon avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.