8257 interfacing 2 in microprocessor for btech students
The Ring programming language version 1.8 book - Part 20 of 202
1. Ring Documentation, Release 1.8
Build RingInternet
cd ../extensions/ringinternet
./buildgcc.sh
Build RingMurmurHash
cd ../extensions/ringmurmurhash
./buildgcc.sh
Generate RingConsoleColors Source Code and Build
cd ../extensions/ringconsolecolors
./gencode.sh
./buildgcc.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 RingZip Source Code and Build
cd ../extensions/ringzip
./gencode.sh
./buildgcc.sh
Generate RingLibuv Source Code and Build
We will build Libuv first
cd ../extensions/ringlibuv/libuv
sudo dnf install libtool m4 autoconf automake
sh autogen.sh
./configure
make
make check
sudo make install
Then we will build RingLibuv
cd ..
./gencode.sh
./buildgcc.sh
Generate RingFreeGLUT Source Code and Build
cd ../extensions/ringfreeglut
./gencode.sh
./buildgcc.sh
Generate RingOpenGL Source Code and Build
The ringopengl folder contains many sub folders for different OpenGL versions
Starting from OpenGL 1.1 to OpenGL 4.6
12.3. Building using Fedora Linux 161
2. Ring Documentation, Release 1.8
cd ../extensions/ringopengl/opengl21
gencode.sh
buildgcc.sh
Generate RingQt Source Code and Build
cd ../extensions/ringqt
./gencode.sh
./buildgccfedora.sh
To be able to call ring from any folder
cd ../../bin
sudo ./install.sh
Run Ring Notepad
cd applications/rnote
ring rnote.ring
12.4 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
cd ring/src
./installdepmac.sh
Build Ring (Compiler/VM)
./buildclang.sh
Build Ring2EXE
cd ../ring2exe
sudo ./buildring2exe.sh
Build RingODBC
cd ../extensions/ringodbc
./buildclang.sh
Build RingMySQL
cd ../extensions/ringmysql
./buildclang.sh
Build RingSQLite
cd ../extensions/ringsqlite
./buildclang.sh
Build RingOpenSSL
cd ../extensions/ringopenssl
./buildclang.sh
12.4. Building using MacOS X 162
3. Ring Documentation, Release 1.8
Build RingInternet
cd ../extensions/ringinternet
./buildclang.sh
Build RingMurmurHash
cd ../extensions/ringmurmurhash
./buildclang.sh
Generate RingConsoleColors Source Code and Build
cd ../extensions/ringconsolecolors
./gencode.sh
./buildclang.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 RingZip Source Code and Build
cd ../extensions/ringzip
./gencode.sh
./buildclang.sh
Generate RingLibuv Source Code and Build
cd ../extensions/ringlibuv
./gencode.sh
./buildclang.sh
Generate RingFreeGLUT Source Code and Build
cd ../extensions/ringfreeglut
./gencode.sh
./buildclang.sh
Generate RingOpenGL Source Code and Build
The ringopengl folder contains many sub folders for different OpenGL versions Starting from OpenGL 1.1 to OpenGL
4.6
cd ../extensions/ringopengl/opengl21
./gencode.sh
./buildclang.sh
Generate RingQt Source Code and Build
cd ../extensions/ringqt
./gencode.sh
./buildclang.sh
To be able to call ring from any folder
12.4. Building using MacOS X 163
4. Ring Documentation, Release 1.8
cd ../../bin
sudo ./install.sh
Run Ring Notepad
cd applications/rnote
sudo ring rnote.ring
12.5 Building using CMake
Install libraries (MySQL Client, OpenSSL, LibCurl, Allegro 5 and Qt 5.5)
cmake .
make
12.5. Building using CMake 164
5. CHAPTER
THIRTEEN
HOW TO CONTRIBUTE?
Ring is a free-open source project, Everyone is welcome to contribute to Ring.
Project Home : https://github.com/ring-lang/ring
You can help in many parts in the project
• Documentation
• Testing
• Samples
• Applications
• Editors Support
• Libraries in Ring
• Extensions in C/C++
• Compiler and Virtual Machine (VM)
• Ideas and suggestions
13.1 Special thanks to contributors
Throughout the creation of this project, Ring relied heavily on contributions from experts along with college students.
Their input was invaluable, and we want to take a moment to thank them and recognize them for all of their hard work.
Ring Team: http://ring-lang.sf.net/team.html
13.2 Documentation
You can modify anything in the documentation, by updating the text files (*.txt) in this folder : https://github.com/ring-
lang/ring/tree/master/docs/source
The documentation is created using Sphinx : http://www.sphinx-doc.org/en/stable/
13.3 Testing
You can write new tests in this folder
https://github.com/ring-lang/ring/tree/master/tests/scripts
165
6. Ring Documentation, Release 1.8
13.4 Samples
You can add new samples to this folder
https://github.com/ring-lang/ring/tree/master/samples/other
13.5 Applications
You can add new applications to this folder
https://github.com/ring-lang/ring/tree/master/applications
13.6 Editors Support
You can help in supporting Ring in different code editors
Check the next folder
https://github.com/ring-lang/ring/tree/master/editor
13.7 Libraries in Ring
You can update and add libraries to this folder
https://github.com/ring-lang/ring/tree/master/ringlibs
13.8 Extensions in C/C++
You can add and update extensions in this folder
https://github.com/ring-lang/ring/tree/master/extensions
13.9 Compiler and Virtual Machine (VM)
• Source Code (C Language) : https://github.com/ring-lang/ring/tree/master/src
• Visual Source (PWCT) : https://github.com/ring-lang/ring/tree/master/visualsrc
13.10 Ideas and suggestions
You can share your ideas, suggestions and questions in this group
https://groups.google.com/forum/#!forum/ring-lang
13.4. Samples 166
7. CHAPTER
FOURTEEN
GETTING STARTED - FIRST STYLE
14.1 Hello World
The next program prints the Hello World message on the screen (std-out).
see "Hello World"
14.2 Run the program
to run the program, save the code in a file, for example : hello.ring then from the command line or terminal, run it
using Ring
ring hello.ring
14.3 Create Executable File
Using Ring2EXE we can create executable file for our application
ring2exe hello.ring -static
14.4 Not Case-Sensitive
Since the Ring language is not case-sensitive, the same program can be written in different styles
Tip: It’s better to select one style and use it in all of the program source code
SEE "Hello World"
See "Hello World"
14.5 Multi-Line literals
Using Ring we can write multi-line literal, see the next example
167
8. Ring Documentation, Release 1.8
See "
Hello
Welcome to the Ring programming language
How are you?
"
Also you can use the nl variable to insert new line and you can use the + operator to concatenate strings
As we have NL for new lines, we have Tab and CR (Carriage return) too!
Note: nl value means a new line and the actual codes that represent a newline is different between operating systems
See "Hello" + nl + "Welcome to the Ring programming language" +
nl + "How are you?"
14.6 Getting Input
You can get the input from the user using the give command
See "What is your name? "
Give cName
See "Hello " + cName
14.7 No Explicit End For Statements
You don’t need to use ‘;’ or press ENTER to separate statements. The previous program can be written in one line.
See "What is your name? " give cName see "Hello " + cName
14.8 Using ? to print expression then new line
It’s common to print new line after printing an expression, We can use the ? operator to do that!
Example:
? "Hello, World!"
for x = 1 to 10
? x
next
Output:
Hello, World!
1
2
3
4
5
6
7
8
14.6. Getting Input 168
9. Ring Documentation, Release 1.8
9
10
14.9 Writing Comments
We can write one line comments and multi-line comments
The comment starts with # or //
Multi-lines comments are written between /* and */
/*
Program Name : My first program using Ring
Date : 2016.09.09
Author : Mahmoud Fayed
*/
See "What is your name? " # print message on screen
give cName # get input from the user
see "Hello " + cName # say hello!
// See "Bye!"
Note: Using // to comment a lines of code is just a code style.
14.9. Writing Comments 169
10. CHAPTER
FIFTEEN
GETTING STARTED - SECOND STYLE
15.1 Hello World
The next program prints the Hello World message on the screen (std-out).
put "Hello World"
15.2 Run the program
to run the program, save the code in a file, for example : hello.ring then from the command line or terminal, run it
using Ring
ring hello.ring
15.3 Create Executable File
Using Ring2EXE we can create executable file for our application
ring2exe hello.ring -static
15.4 Not Case-Sensitive
Since the Ring language is not case-sensitive, the same program can be written in different styles
Tip: It’s better to select one style and use it in all of the program source code
PUT "Hello World"
Put "Hello World"
15.5 Multi-Line literals
Using Ring we can write multi-line literal, see the next example
170