SlideShare a Scribd company logo
Ring Documentation, Release 1.5.1
8.13 Better Documentation
Ring 1.1 documentation (800 pages) is better than Ring 1.0 documentation (340 pages)
Many chapters are added for providing better information about the language like
• Language Reference
• Scope Rules
• FAQ
And more!
8.13. Better Documentation 105
CHAPTER
NINE
BUILDING FROM SOURCE CODE
The Ring programming language is a free open source product (MIT License).
You can build Ring using CMake or using Scripts (Batch Files or Shell Scripts).
The next steps explains building using scripts.
9.1 Building using Microsoft Windows
Get the source code
git clone http://github.com/ring-lang/ring.git
Build Ring (Compiler/VM)
cd ring/src
buildvc.bat
buildvcw.bat
Build RingODBC
cd ../extensions/ringodbc
buildvc.bat
Build RingMySQL
cd ../extensions/ringmysql
buildvc.bat
Build RingSQLite
cd ../extensions/ringsqlite
buildvc.bat
Build RingOpenSSL
cd ../extensions/ringopenssl
buildvc.bat
Build RingInternet
cd ../extensions/ringinternet
buildvc.bat
Generate RingAllegro Source Code and Build
106
Ring Documentation, Release 1.5.1
cd ../extensions/ringallegro
gencode.bat
buildvc.bat
Generate RingLibCurl Source Code and Build
cd ../extensions/ringcurl
gencode.bat
buildvc.bat
Generate RingZip Source Code and Build
cd ../extensions/ringzip
gencode.bat
buildvc.bat
Generate RingFreeGLUT Source Code and Build
cd ../extensions/ringfreeglut
gencode.bat
buildvc.bat
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.bat
buildvc.bat
Install Qt 5.5 : https://download.qt.io/archive/qt/5.5/5.5.1/
Generate RingQt Source Code and Build
cd ../extensions/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:RingBin
Run Ring Notepad
cd applications/rnote
ring rnote.ring
9.1. Building using Microsoft Windows 107
Ring Documentation, Release 1.5.1
9.2 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 ./buildgcc.sh
Build RingODBC
cd ../extensions/ringodbc
./buildgcc.sh
Build RingMySQL
cd ../extensions/ringmysql
./buildgcc.sh
Build RingSQLite
cd ../extensions/ringsqlite
./buildgcc.sh
Build RingOpenSSL
cd ../extensions/ringopenssl
./buildgcc.sh
Build RingInternet
cd ../extensions/ringinternet
./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 RingFreeGLUT Source Code and Build
9.2. Building using Ubuntu Linux 108
Ring Documentation, Release 1.5.1
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
cd ../extensions/ringopengl/opengl21
gencode.sh
buildgcc.sh
Generate RingQt Source Code and Build
cd ../extensions/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
ring rnote.ring
9.3 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 RingODBC
cd ../extensions/ringodbc
./buildclang.sh
Build RingMySQL
cd ../extensions/ringmysql
./buildclang.sh
Build RingSQLite
cd ../extensions/ringsqlite
./buildclang.sh
9.3. Building using MacOS X 109
Ring Documentation, Release 1.5.1
Build RingOpenSSL
cd ../extensions/ringopenssl
./buildclang.sh
Build RingInternet
cd ../extensions/ringinternet
./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 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
cd ../../bin
sudo ./install.sh
Run Ring Notepad
cd applications/rnote
sudo ring rnote.ring
9.3. Building using MacOS X 110
Ring Documentation, Release 1.5.1
9.4 Building using CMake
Install libraries (MySQL Client, OpenSSL, LibCurl, Allegro 5 and Qt 5.5)
cmake .
make
9.4. Building using CMake 111
CHAPTER
TEN
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
10.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
10.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/
10.3 Testing
You can write new tests in this folder
https://github.com/ring-lang/ring/tree/master/tests/scripts
112
Ring Documentation, Release 1.5.1
10.4 Samples
You can add new samples to this folder
https://github.com/ring-lang/ring/tree/master/samples/other
10.5 Applications
You can add new applications to this folder
https://github.com/ring-lang/ring/tree/master/applications
10.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
10.7 Libraries in Ring
You can update and add libraries to this folder
https://github.com/ring-lang/ring/tree/master/ringlibs
10.8 Extensions in C/C++
You can add and update extensions in this folder
https://github.com/ring-lang/ring/tree/master/extensions
10.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
10.10 Ideas and suggestions
You can share your ideas, suggestions and questions in this group
https://groups.google.com/forum/#!forum/ring-lang
10.4. Samples 113
CHAPTER
ELEVEN
GETTING STARTED - FIRST STYLE
11.1 Hello World
The next program prints the Hello World message on the screen (std-out).
see "Hello World"
11.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 the ring interpreter
ring hello.ring
11.3 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"
11.4 Multi-Line literals
Using Ring we can write multi-line literal, see the next example
See "
Hello
Welcome to the Ring programming language
How are you?
"
Also you can use the nl constant to insert new line and you can use the + operator to concatenate strings
114

More Related Content

PDF
The Ring programming language version 1.10 book - Part 23 of 212
PDF
The Ring programming language version 1.5.2 book - Part 15 of 181
PDF
The Ring programming language version 1.7 book - Part 18 of 196
PDF
Docker on Windows
PPTX
Git & G
ODP
Dockerized ROS Package
PDF
いつやるの?Git入門
PDF
Security of go modules and vulnerability scanning in GoCenter
The Ring programming language version 1.10 book - Part 23 of 212
The Ring programming language version 1.5.2 book - Part 15 of 181
The Ring programming language version 1.7 book - Part 18 of 196
Docker on Windows
Git & G
Dockerized ROS Package
いつやるの?Git入門
Security of go modules and vulnerability scanning in GoCenter

What's hot (17)

ODP
about Debian "squeeze" @201002 OSC Tokyospring
PPTX
Basic Git Tutorial
PPT
FFMPEG on android
PDF
Lets isolate a process with no container like docker
PDF
Open Video Conference: HTML and the video tag
ODP
One year of FusionInventory
PDF
PHP QA Tools
PDF
Software Heritage: let's build together the universal archive of our software...
PPTX
More developers on DevOps with Docker orchestration
PDF
Security of Go Modules - SF Meetup
PDF
TYPO3 8 is here - how we keep EXT:solr uptodate with the TYPO3 core
PDF
Install Nagios Core On CentOS 7
PPTX
Easy contributable internationalization process with Sphinx @ pyconsg2015
PDF
Containers from scratch
PDF
Apache Solr for TYPO3 Components & Review 2016
PDF
2014 10-14: GitHub plus FOSS == 1 million SPDX
PDF
The Ring programming language version 1.2 book - Part 7 of 84
about Debian "squeeze" @201002 OSC Tokyospring
Basic Git Tutorial
FFMPEG on android
Lets isolate a process with no container like docker
Open Video Conference: HTML and the video tag
One year of FusionInventory
PHP QA Tools
Software Heritage: let's build together the universal archive of our software...
More developers on DevOps with Docker orchestration
Security of Go Modules - SF Meetup
TYPO3 8 is here - how we keep EXT:solr uptodate with the TYPO3 core
Install Nagios Core On CentOS 7
Easy contributable internationalization process with Sphinx @ pyconsg2015
Containers from scratch
Apache Solr for TYPO3 Components & Review 2016
2014 10-14: GitHub plus FOSS == 1 million SPDX
The Ring programming language version 1.2 book - Part 7 of 84
Ad

Similar to The Ring programming language version 1.5.1 book - Part 14 of 180 (20)

PDF
The Ring programming language version 1.6 book - Part 17 of 189
PDF
The Ring programming language version 1.9 book - Part 22 of 210
PDF
The Ring programming language version 1.3 book - Part 8 of 88
PDF
The Ring programming language version 1.8 book - Part 85 of 202
PDF
The Ring programming language version 1.8 book - Part 20 of 202
PDF
The Ring programming language version 1.10 book - Part 91 of 212
PDF
The Ring programming language version 1.5.4 book - Part 16 of 185
PDF
The Ring programming language version 1.9 book - Part 89 of 210
PDF
The Ring programming language version 1.6 book - Part 7 of 189
PDF
The Ring programming language version 1.6 book - Part 80 of 189
PDF
The Ring programming language version 1.5.4 book - Part 15 of 185
PDF
The Ring programming language version 1.4.1 book - Part 4 of 31
PDF
The Ring programming language version 1.5.3 book - Part 16 of 184
PDF
The Ring programming language version 1.10 book - Part 13 of 212
PDF
The Ring programming language version 1.9 book - Part 12 of 210
PDF
The Ring programming language version 1.7 book - Part 8 of 196
PDF
The Ring programming language version 1.10 book - Part 9 of 212
PPTX
Fullstack workshop
PDF
The Ring programming language version 1.10 book - Part 18 of 212
PPTX
Linux Survival Kit for Proof of Concept & Proof of Technology
The Ring programming language version 1.6 book - Part 17 of 189
The Ring programming language version 1.9 book - Part 22 of 210
The Ring programming language version 1.3 book - Part 8 of 88
The Ring programming language version 1.8 book - Part 85 of 202
The Ring programming language version 1.8 book - Part 20 of 202
The Ring programming language version 1.10 book - Part 91 of 212
The Ring programming language version 1.5.4 book - Part 16 of 185
The Ring programming language version 1.9 book - Part 89 of 210
The Ring programming language version 1.6 book - Part 7 of 189
The Ring programming language version 1.6 book - Part 80 of 189
The Ring programming language version 1.5.4 book - Part 15 of 185
The Ring programming language version 1.4.1 book - Part 4 of 31
The Ring programming language version 1.5.3 book - Part 16 of 184
The Ring programming language version 1.10 book - Part 13 of 212
The Ring programming language version 1.9 book - Part 12 of 210
The Ring programming language version 1.7 book - Part 8 of 196
The Ring programming language version 1.10 book - Part 9 of 212
Fullstack workshop
The Ring programming language version 1.10 book - Part 18 of 212
Linux Survival Kit for Proof of Concept & Proof of Technology
Ad

More from Mahmoud Samir Fayed (20)

PDF
The Ring programming language version 1.10 book - Part 212 of 212
PDF
The Ring programming language version 1.10 book - Part 211 of 212
PDF
The Ring programming language version 1.10 book - Part 210 of 212
PDF
The Ring programming language version 1.10 book - Part 208 of 212
PDF
The Ring programming language version 1.10 book - Part 207 of 212
PDF
The Ring programming language version 1.10 book - Part 205 of 212
PDF
The Ring programming language version 1.10 book - Part 206 of 212
PDF
The Ring programming language version 1.10 book - Part 204 of 212
PDF
The Ring programming language version 1.10 book - Part 203 of 212
PDF
The Ring programming language version 1.10 book - Part 202 of 212
PDF
The Ring programming language version 1.10 book - Part 201 of 212
PDF
The Ring programming language version 1.10 book - Part 200 of 212
PDF
The Ring programming language version 1.10 book - Part 199 of 212
PDF
The Ring programming language version 1.10 book - Part 198 of 212
PDF
The Ring programming language version 1.10 book - Part 197 of 212
PDF
The Ring programming language version 1.10 book - Part 196 of 212
PDF
The Ring programming language version 1.10 book - Part 195 of 212
PDF
The Ring programming language version 1.10 book - Part 194 of 212
PDF
The Ring programming language version 1.10 book - Part 193 of 212
PDF
The Ring programming language version 1.10 book - Part 192 of 212
The Ring programming language version 1.10 book - Part 212 of 212
The Ring programming language version 1.10 book - Part 211 of 212
The Ring programming language version 1.10 book - Part 210 of 212
The Ring programming language version 1.10 book - Part 208 of 212
The Ring programming language version 1.10 book - Part 207 of 212
The Ring programming language version 1.10 book - Part 205 of 212
The Ring programming language version 1.10 book - Part 206 of 212
The Ring programming language version 1.10 book - Part 204 of 212
The Ring programming language version 1.10 book - Part 203 of 212
The Ring programming language version 1.10 book - Part 202 of 212
The Ring programming language version 1.10 book - Part 201 of 212
The Ring programming language version 1.10 book - Part 200 of 212
The Ring programming language version 1.10 book - Part 199 of 212
The Ring programming language version 1.10 book - Part 198 of 212
The Ring programming language version 1.10 book - Part 197 of 212
The Ring programming language version 1.10 book - Part 196 of 212
The Ring programming language version 1.10 book - Part 195 of 212
The Ring programming language version 1.10 book - Part 194 of 212
The Ring programming language version 1.10 book - Part 193 of 212
The Ring programming language version 1.10 book - Part 192 of 212

Recently uploaded (20)

PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Empathic Computing: Creating Shared Understanding
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Machine learning based COVID-19 study performance prediction
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Modernizing your data center with Dell and AMD
PPTX
Cloud computing and distributed systems.
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
KodekX | Application Modernization Development
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
The Rise and Fall of 3GPP – Time for a Sabbatical?
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Understanding_Digital_Forensics_Presentation.pptx
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Empathic Computing: Creating Shared Understanding
Reach Out and Touch Someone: Haptics and Empathic Computing
Machine learning based COVID-19 study performance prediction
Review of recent advances in non-invasive hemoglobin estimation
Modernizing your data center with Dell and AMD
Cloud computing and distributed systems.
Spectral efficient network and resource selection model in 5G networks
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Mobile App Security Testing_ A Comprehensive Guide.pdf
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
KodekX | Application Modernization Development
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Network Security Unit 5.pdf for BCA BBA.
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Build a system with the filesystem maintained by OSTree @ COSCUP 2025

The Ring programming language version 1.5.1 book - Part 14 of 180

  • 1. Ring Documentation, Release 1.5.1 8.13 Better Documentation Ring 1.1 documentation (800 pages) is better than Ring 1.0 documentation (340 pages) Many chapters are added for providing better information about the language like • Language Reference • Scope Rules • FAQ And more! 8.13. Better Documentation 105
  • 2. CHAPTER NINE BUILDING FROM SOURCE CODE The Ring programming language is a free open source product (MIT License). You can build Ring using CMake or using Scripts (Batch Files or Shell Scripts). The next steps explains building using scripts. 9.1 Building using Microsoft Windows Get the source code git clone http://github.com/ring-lang/ring.git Build Ring (Compiler/VM) cd ring/src buildvc.bat buildvcw.bat Build RingODBC cd ../extensions/ringodbc buildvc.bat Build RingMySQL cd ../extensions/ringmysql buildvc.bat Build RingSQLite cd ../extensions/ringsqlite buildvc.bat Build RingOpenSSL cd ../extensions/ringopenssl buildvc.bat Build RingInternet cd ../extensions/ringinternet buildvc.bat Generate RingAllegro Source Code and Build 106
  • 3. Ring Documentation, Release 1.5.1 cd ../extensions/ringallegro gencode.bat buildvc.bat Generate RingLibCurl Source Code and Build cd ../extensions/ringcurl gencode.bat buildvc.bat Generate RingZip Source Code and Build cd ../extensions/ringzip gencode.bat buildvc.bat Generate RingFreeGLUT Source Code and Build cd ../extensions/ringfreeglut gencode.bat buildvc.bat 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.bat buildvc.bat Install Qt 5.5 : https://download.qt.io/archive/qt/5.5/5.5.1/ Generate RingQt Source Code and Build cd ../extensions/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:RingBin Run Ring Notepad cd applications/rnote ring rnote.ring 9.1. Building using Microsoft Windows 107
  • 4. Ring Documentation, Release 1.5.1 9.2 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 ./buildgcc.sh Build RingODBC cd ../extensions/ringodbc ./buildgcc.sh Build RingMySQL cd ../extensions/ringmysql ./buildgcc.sh Build RingSQLite cd ../extensions/ringsqlite ./buildgcc.sh Build RingOpenSSL cd ../extensions/ringopenssl ./buildgcc.sh Build RingInternet cd ../extensions/ringinternet ./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 RingFreeGLUT Source Code and Build 9.2. Building using Ubuntu Linux 108
  • 5. Ring Documentation, Release 1.5.1 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 cd ../extensions/ringopengl/opengl21 gencode.sh buildgcc.sh Generate RingQt Source Code and Build cd ../extensions/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 ring rnote.ring 9.3 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 RingODBC cd ../extensions/ringodbc ./buildclang.sh Build RingMySQL cd ../extensions/ringmysql ./buildclang.sh Build RingSQLite cd ../extensions/ringsqlite ./buildclang.sh 9.3. Building using MacOS X 109
  • 6. Ring Documentation, Release 1.5.1 Build RingOpenSSL cd ../extensions/ringopenssl ./buildclang.sh Build RingInternet cd ../extensions/ringinternet ./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 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 cd ../../bin sudo ./install.sh Run Ring Notepad cd applications/rnote sudo ring rnote.ring 9.3. Building using MacOS X 110
  • 7. Ring Documentation, Release 1.5.1 9.4 Building using CMake Install libraries (MySQL Client, OpenSSL, LibCurl, Allegro 5 and Qt 5.5) cmake . make 9.4. Building using CMake 111
  • 8. CHAPTER TEN 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 10.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 10.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/ 10.3 Testing You can write new tests in this folder https://github.com/ring-lang/ring/tree/master/tests/scripts 112
  • 9. Ring Documentation, Release 1.5.1 10.4 Samples You can add new samples to this folder https://github.com/ring-lang/ring/tree/master/samples/other 10.5 Applications You can add new applications to this folder https://github.com/ring-lang/ring/tree/master/applications 10.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 10.7 Libraries in Ring You can update and add libraries to this folder https://github.com/ring-lang/ring/tree/master/ringlibs 10.8 Extensions in C/C++ You can add and update extensions in this folder https://github.com/ring-lang/ring/tree/master/extensions 10.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 10.10 Ideas and suggestions You can share your ideas, suggestions and questions in this group https://groups.google.com/forum/#!forum/ring-lang 10.4. Samples 113
  • 10. CHAPTER ELEVEN GETTING STARTED - FIRST STYLE 11.1 Hello World The next program prints the Hello World message on the screen (std-out). see "Hello World" 11.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 the ring interpreter ring hello.ring 11.3 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" 11.4 Multi-Line literals Using Ring we can write multi-line literal, see the next example See " Hello Welcome to the Ring programming language How are you? " Also you can use the nl constant to insert new line and you can use the + operator to concatenate strings 114