C HTML C++ Shell Makefile Roff Other
Permalink
Failed to load latest commit information.
android Update Ring For Android. Feb 17, 2017
applications Update Form Designer - Set the Form Back Color - using properties - c… Feb 19, 2017
bin Add libcurl.ring Oct 12, 2016
docs Update Documentation - What is new in Ring 1.3? Feb 17, 2017
editor Update README.md Feb 9, 2017
extensions Update Form Designer - Add Scrollbars to the Form Region. Feb 19, 2017
graphics Add Ring Book Cover. Sep 30, 2016
include Update Ring VM - Better support for nested calls to ring_vm_runcode()… Feb 4, 2017
lib Update README.md Mar 29, 2016
libdepwin Adding libraries required to build Ring for Microsoft Windows. Sep 30, 2016
presentation Add Ring Presentation (PowerPoint) Oct 26, 2016
ringlibs Update stdlib.ring - Add the SplitMany() Function Feb 11, 2017
samples Add Sample : usingqcompleter.ring Feb 11, 2017
sound Update README.md Mar 29, 2016
src Update Ring VM - Fix a problem in List2Str() - Remove extra new line … Feb 19, 2017
tests Update Ring VM - Fix a problem in List2Str() - Remove extra new line … Feb 19, 2017
visualsrc Update Ring VM - Fix a problem in List2Str() - Remove extra new line … Feb 19, 2017
website Update Ring Website - Resources Section - Add Movie : Fgetpos() Funct… Feb 18, 2017
.gitattributes Update .gitattributes Sep 4, 2016
.travis.yml Update .travis.yml - Linux Test. Jan 23, 2017
CMakeLists.txt Add RingODBC to extensions folder. Aug 28, 2016
License.txt Update License.txt - Increase release number from Ring 1.1 to Ring 1.2 Jan 25, 2017
README.md Update README.md Jan 27, 2017
Start.bat Update Start.bat Oct 7, 2016

README.md

Ring

Ring Programming Language

Innovative and practical general-purpose multi-paradigm language

Resources Operating System Status
Download Download MacOS X (Compiler: gcc C) Build Status
Help Help Ubuntu Linux (Compiler: gcc C) Build Status
Try Try MacOS X (Compiler: clang C) Build Status
Support Support Ubuntu Linux (Compiler: clang C) Build Status

Description

The Ring is an Innovative and practical general-purpose multi-paradigm scripting language that can be embedded in C/C++ projects, extended using C/C++ code and/or used as standalone language. The supported programming paradigms are Imperative, Procedural, Object-Oriented, Functional, Meta programming, Declarative programming using nested structures, and Natural programming. The language is portable (Windows, Linux, Mac OS X, Android, etc.) and can be used to create Console, GUI, Web, Games and Mobile applications. The language is designed to be Simple, Small, Flexible and Fast. Its Dynamic Language (Dynamic Typing and Weakly Typed) that compile the source code to byte code then execute it by the Ring Virtual Machine, which is integrated with the Ring Compiler in one program. Read more!

Building from source code

You can build Ring using CMake or using Scripts (Batch Files or Shell Scripts).

The next steps explains building using scripts.

Building using Microsoft Windows

Get the source code

git clone http://github.com/ring-lang/ring.git

Build Ring (Compiler/VM)

cd ring/src
buildvccomplete.bat

Generate RingAllegro Source Code and Build

cd ../extensions/ringallegro
gencode.bat
buildvc.bat

Generate RingLibCurl Source Code and Build

cd ../extensions/ringcurl
gencode.bat
buildvc.bat

Generate RingQt Source Code and Build

Install Qt 5.5 : https://download.qt.io/archive/qt/5.5/5.5.1/

cd ../ringqt
gencode.bat
buildmingw32.bat

To be able to call ring from any folder

cd ../../bin
install.bat

Add Ring/bin to System path

Hit "windows key".
Type "Edit the System environment variables"
Select "Advanced" tab.
Click on "Enviroment Variables..."
Double click on "Path"
Add at the end the new path separated by semicolon. 
    ;C:\Ring\Bin

Run Ring Notepad

cd applications/rnote
ring rnote.ring

Building using Ubuntu Linux

Get the source code

git clone http://github.com/ring-lang/ring.git

Install Libraries

cd ring/src
./installdep.sh 

Build Ring (Compiler/VM)

sudo ./buildgcccomplete.sh

Generate RingAllegro Source Code and Build

cd ../extensions/ringallegro
./gencode.sh
./buildgcc.sh

Generate RingLibCurl Source Code and Build

cd ../extensions/ringcurl
./gencode.sh
./buildgcc.sh

Generate RingQt Source Code and Build

cd ../ringqt
./gencode.sh
./buildgcc.sh

To be able to call ring from any folder

cd ../../bin
sudo ./install.sh

Run Ring Notepad

cd applications/rnote
sudo ring rnote.ring

Building using MacOS X

Get the source code

git clone http://github.com/ring-lang/ring.git

Install homebrew (follow the directions on homebrew's homepage).

Install Libraries

brew install unixodbc mysql-connector-c allegro openssl homebrew/versions/qt55
brew link --force qt55

Build Ring (Compiler/VM)

cd ring/src
./buildclangcomplete.sh

Generate RingAllegro Source Code and Build

cd ../extensions/ringallegro
./gencode.sh
./buildclang.sh

Generate RingLibCurl Source Code and Build

cd ../extensions/ringcurl
./gencode.sh
./buildclang.sh

Generate RingQt Source Code and Build

cd ../ringqt
./gencode.sh
./buildclang.sh

To be able to call ring from any folder

cd ../../bin
sudo ./install.sh

Run Ring Notepad

cd applications/rnote
sudo ring rnote.ring

Building using CMake

Install libraries (MySQL Client, OpenSSL, LibCurl, Allegro 5 and Qt 5.5)

cmake .
make