Skip to content

Commit

Permalink
Deploying to gh-pages from @ 68824bd 🚀
Browse files Browse the repository at this point in the history
  • Loading branch information
colinkiama committed Apr 30, 2024
1 parent d74e0ab commit 8e82156
Show file tree
Hide file tree
Showing 65 changed files with 215 additions and 8,378 deletions.
Binary file added .doctrees/about.doctree
Binary file not shown.
Binary file modified .doctrees/environment.pickle
Binary file not shown.
Binary file modified .doctrees/index.doctree
Binary file not shown.
Binary file added .doctrees/installation-guide.doctree
Binary file not shown.
Binary file removed .doctrees/tutorial/01-00-introduction.doctree
Binary file not shown.
Binary file removed .doctrees/tutorial/02-00-getting-started.doctree
Binary file not shown.
Binary file removed .doctrees/tutorial/02-01-installation.doctree
Binary file not shown.
Binary file removed .doctrees/tutorial/02-02-hello-world.doctree
Binary file not shown.
Binary file removed .doctrees/tutorial/02-03-basic-debugging.doctree
Binary file not shown.
Binary file not shown.
Binary file removed .doctrees/tutorial/03-01-variables.doctree
Binary file not shown.
Binary file removed .doctrees/tutorial/03-02-numbers.doctree
Binary file not shown.
Binary file removed .doctrees/tutorial/03-03-bools-and-ifs.doctree
Binary file not shown.
Binary file not shown.
Binary file removed .doctrees/tutorial/03-05-loops.doctree
Binary file not shown.
Binary file removed .doctrees/tutorial/04-00-parrot-program.doctree
Binary file not shown.
Binary file not shown.
Binary file removed .doctrees/tutorial/04-02-cycle-through-names.doctree
Binary file not shown.
Binary file removed .doctrees/tutorial/05-00-methods.doctree
Binary file not shown.
Binary file removed .doctrees/tutorial/05-01-introducing-methods.doctree
Binary file not shown.
Binary file removed .doctrees/tutorial/05-02-main-method.doctree
Binary file not shown.
Binary file removed .doctrees/tutorial/index.doctree
Binary file not shown.
32 changes: 32 additions & 0 deletions _sources/about.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
About Vala
==========

**valac**, the Vala compiler, is a self-hosting compiler that translates Vala source code into C source and header files. It uses the GObject type system to create classes and interfaces declared in the Vala source code.

`The syntax of Vala <developer-guides/syntax>`_ is similar to C#, modified to better fit the GObject type system. Vala supports modern language features as the following:

* Interfaces
* Properties
* Signals
* Foreach
* Lambda expressions
* Type inference for local variables
* Generics
* Non-null types
* Assisted memory management
* Exception handling
* Type modules (Plugins)

Vala is designed to allow access to existing C libraries, especially GObject-based libraries, without the need for runtime bindings. All that is needed to use a library with Vala is an API file, containing the class and method declarations in Vala syntax. Vala currently comes with bindings for GLib and GTK+ and many others from the GNOME Platform.

Using classes and methods written in Vala from an application written in C is not difficult. The Vala library only has to install the generated header files and C applications may then access the GObject-based API of the Vala library as usual. It should also be easily possible to write a bindings generator for access to Vala libraries from applications written in e.g. C# as the Vala parser is written as a library, so that all compile-time information is available when generating a binding.

Why Vala?
---------

Many developers want to write GNOME applications and libraries in high-level programming languages but can't or don't want to use C# or Java for various reasons, so they are stuck with C without syntax support for the GObject type system. The Vala compiler allows developers to write complex object-oriented code rapidly while maintaining a standard C API and ABI and keeping the memory requirements low.

C# and Java libraries can't be used the same way as native GObject libraries from C and other languages and can't be accepted as part of the GNOME Platform. Managed applications also suffer from usually higher memory requirements which is not acceptable in some situations.

valac produces C source and header files from Vala source files as if you've written your library or application directly in C. Using a Vala library from a C application won't look different than using any other GObject-based library. There won't be a vala runtime library and applications can distribute the generated C code with their tarballs, so there are no additional run- or build-time dependencies for users.

37 changes: 16 additions & 21 deletions _sources/index.rst.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,43 +4,38 @@ Vala Documentation
.. toctree::
:hidden:

Tutorial <tutorial/index>
About <about>
Installation Guide <installation-guide>

Introduction
------------

Vala is a programming language using modern high level abstractions without imposing additional runtime requirements and without using a different ABI compared to applications and libraries written in C. Vala uses the GObject type system and has additional code generation routines that make targeting the GNOME stack simple. Vala has many other uses where native binaries are required.
Vala is a programming language using modern high level abstractions without imposing additional runtime requirements and without using a different ABI compared to applications and libraries written in C.

Vala uses the GObject type system and has additional code generation routines that make targeting the GNOME stack simple. Vala has many other uses where native binaries are required.

`Learn more about Vala <about>`_

Sections
--------

`Install Vala <install>`_

`Tutorials <tutorials>`_

`Tooling <tooling>`_

`Contributor Guide <contributor-guide>`_

`Developer Guides <developer-guides>`_
- `Installation Guide <installation-guide>`_
- `Tutorials <tutorials>`_
- `Tooling <tooling>`_
- `Contributor Guide <contributor-guide>`_
- `Developer Guides <developer-guides>`_

External Resources
------------------

`API References <https://valadoc.org>`_

`Reference Manual <https://gnome.pages.gitlab.gnome.org/vala/manual/index.html>`_

`GNOME Developer Documentation <https://developer.gnome.org/documentation/>`_

`elementary OS Developer Documentation <https://docs.elementary.io/develop>`_

`Vala Website <https://vala.dev>`_
- `API References <https://valadoc.org>`_
- `Reference Manual <https://gnome.pages.gitlab.gnome.org/vala/manual/index.html>`_
- `GNOME Developer Documentation <https://developer.gnome.org/documentation/>`_
- `elementary OS Developer Documentation <https://docs.elementary.io/develop>`_
- `Vala Website <https://vala.dev>`_

Community
---------

`Vala Community Links <https://vala.dev/#community>`_
- `Vala Community Links <https://vala.dev/#community>`_

Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
Installation
============
Installation Guide
==================

Vala is available on multiple operating systems. Follow the isntallation instructions below for your operating system.

.. _linux:
.. _Linux Installation Instructions:

Linux
-----

Vala is available on a large variety of Linux distributions.
Mostly you want to install other development files for libraries, that you want to use with vala.
You can also install other development files for libraries to use with vala.

Fedora
~~~~~~
Expand Down Expand Up @@ -58,20 +58,20 @@ MSYS2
~~~~~

MSYS2 provides a Linux-like environment for Windows. First install `MSYS2 <https://www.msys2.org>`__,
then vala:
then install vala with the following commands:

.. code-block:: console
$ pacman -S mingw-w64-x86_64-gcc
$ pacman -S mingw-w64-x86_64-pkg-config
$ pacman -S mingw-w64-x86_64-vala
You also need to install all libraries you want to use individually.
You also need to install all the libraries that you want to use individually.

Windows Subsystem for Windows (WSL)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Install a Linux distribution in WSL and then go on with the :ref:`installation instructions for Linux <linux>`.
Install a Linux distribution in WSL and then continue with the :ref:`installation instructions for Linux <Linux Installation Instructions>`.

Mac OS X
--------
Expand All @@ -83,33 +83,27 @@ To install Vala on you can use `brew <https://brew.sh>`__, a package manager for
$ brew install vala
Verifying the Installation
--------------------------
--------------------------

If you installed everyting correctly, if enter this line in your terminal:

.. code-block:: console
$ valac --version
A line like this should be printed in the terminal:

.. code-block:: output
Vala x.xx.x
If you don't see any version number and instead see something like along the lines of ``The command 'valac' is not recognised`` or any other error, this means that Vala has not been installed correctly.
If you don't see any version number and instead see something like along the lines of ``The command 'valac' is not recognised`` or any other error, this means that Vala has not been installed correctly.

Please ensure that you've followed the installation instructions above and try again.

.. warning::

The minimum required Vala version for this tutorial is 0.56.0. You must have this version (or a higher version number) of Vala installed after following the instructions below

If not, we can't guarantee that anything we've explained in this tutorial will work on your system.

If you are struggling to either:

- Install Vala
- Meet the minimum required Vala version requirement
- Install the version of Vala that you require

`Try asking the community for help <https://vala.dev/#community>`_.
28 changes: 0 additions & 28 deletions _sources/tutorial/01-00-introduction.rst.txt

This file was deleted.

15 changes: 0 additions & 15 deletions _sources/tutorial/02-00-getting-started.rst.txt

This file was deleted.

150 changes: 0 additions & 150 deletions _sources/tutorial/02-02-hello-world.rst.txt

This file was deleted.

Loading

0 comments on commit 8e82156

Please sign in to comment.