Introduction
The Gecos (Generic Compiler Suite) project is an open source compiler infrastructure developed in the CAIRN group since 2004. Gecos was initially designed so as to address part of the shortcomings of existing C/C++ infrastructures such as SUIF. Its main characteristics are high-lighted below:
- Gecos is a C compiler infrastructure entirely written in Java following Model Driven Engineering design principles. In particular Gecos leverage on the Eclipse Modeling Framework (EMF) and uses Eclipse as an underlying infrastructure and thus take benefits of its plugin mechanism to be easily extensible.
- Gecos is targeted to Application Specific Processors (ASIPs) design and Custom Hardware Accelerator Synthesis. It includes partial C++ support to accommodate with bit-accurate datatypes (our front-end support Mentor Graphic Algorithmic C Datatypes C++ templates).
- Gecos can be used as a Source to Source compiler (see the S2S4HLS project) or as a standalone flow with a complete retargetable compiler back-end (customizable BURG based instruction selection, a flexible register allocator,) and support for hardware synthesis (see the LOMITA framework).
Gecos is an open source software and is hosted on Inria GForge.
Installation
Installing Eclipse Indigo with Modeling tools
The current Gecos distribution requires the Eclipse Helios (3.6) release, and uses many features from the Eclipse Modeling Framework. As a consequence, unless you are very familiar with the Eclipse plugin mecanism, we strongly advise you to start from a fresh Eclipse 3.6 install, as explained below.
To install the right version of Eclipse go on the Eclipse Modeling Tools webpage and pick-up the Eclipse Modeling Tools version suited to your platform. Then extract the archive somewhere on you local hard drive, and run the eclipse executable.
Note : if you plan to do some development using Gecos, it is strongly advised to install a full featured Eclipse distribution .
Note : Do not hesitate to update your Eclipse distribution before going further (Help / Check for Updates).
Installing Eclipse Helios with Modeling tools
The current Gecos distribution requires the Eclipse Helios (3.6) release, and uses many features from the Eclipse Modeling Framework. As a consequence, unless you are very familiar with the Eclipse plugin mecanism, we strongly advise you to start from a fresh Eclipse 3.6 install, as explained below.
To install the right version of Eclipse go on the Eclipse Modeling Tools webpage and pick-up the Eclipse Modeling Tools version suited to your platform. Then extract the archive somewhere on you local hard drive, and run the eclipse executable.
Note : if you plan to do some development using Gecos, it is strongly advised to install a full featured Eclipse distribution .
Note : Do not hesitate to update your Eclipse distribution before going further (Help / Check for Updates).
Downloading the Gecos all-in-one bundle
Download the following archive, unzip it into your local Eclipse dropins directory, and restart Eclipse.
Note: This method is a quick and dirty approach, which may have side affects in the long rune. It therefore advised to use the update site as described below.
Installing Gecos from its update site
We advise you to install the following plugin :
- C Developpment Toolkit (for Indigo) plugin for displaying C code with highlithing in eclipse
Installing Gecos from update site is really easy now.
You have to use the “Install New Software” button available in the following menu : Help→Install New Software
A pop-up will appear and in the Work with entry put the following update site :
http://gecos.gforge.inria.fr/fullupdates/stable/
If you are audacious, you can try this update site for the latest version :
http://gecos.gforge.inria.fr/updates/indigo/snapshot/
The pop-up should look like this :
This update site will allow you to choose each feature you want to download. If you know which tool(s) you want to install, I let you choose. Otherwise push the “Select All” Button. If you select all the features, this will download and install all Gecos tools actually available, all tools provided by cairn and the Tom Eclipse plugin plugin.
Optionnal tools
- Graphviz and the Installing Xdot viewer
Installing and compiling Gecos from sources
If you want to compiler the source by yourself, you can follow detailled installation instruction for downloading and compiling Gecos sources by yourself.
Tutorials & Documentation
This section provides links to a few tutorials, targeted to beginers to advancd users. As Gecos is a rapidly changing software, some tutorials may contains bugs or have incinstencies w.r.t current implementation. Sometimes you may also find the tutorial unclear or just simply wrong. In that case please report the problems that you encoutered either on the gecos-user mailing lists or report a bug on the bug tracking page
Gecos tutorials
Below, we provide an introduction to the Gecos source to source framework, which is splitted into 4 tutorials :
There are also more advanced tutorials for users who want to implement their own Gecos transformation passes :
Gecos/Lomita tutorial
Below, we provide an introduction to Lomita :
SVN documentation
Some documentation to help in managing SVN :
Miscellaneous
- OpenMP Verifier page : A tool (set of gecos plugins) to check for legality of
#pragma omp for parallel
Frequently Asked Questions
- I have an error
error while evaluating 'script.cs':whenever I try to run a .cs file. - I can't see the
run gecos scriptcommand in the context menu when I want to run a Gecos script. - How can I trace Exeptions ride during a script execution débogguage lors d'une exception Java ?
- How can I add a new fonction de script to Gecos ?
- How to check/query a Procedure Set with OCL ?
Private Section
Continuous Integration
In the goal of improving the strength and the stability of Gecos, it was decided to use the continuous integration.
The continuous integration is done by a server which will run tests provided by Gecos plugins when desired (each hour, day, week, every commit, …). Due to the fact that it is mainly based on Maven, each Gecos plugin must have the Maven nature (a plugin which can be identified as a Maven plugin). The following links will explain you how to install maven in your eclipse environment and then how to convert an eclipse project (maybe based on several plugin) to a Maven project.
Test
Maven
Bug reports & mailing lists
In that case please report the problems that you encoutered either on the gecos-user mailing lists or report a bug on the bug tracking page
1. Mailing lists
There are several mailing lists, wich can be found here
2. Reporting a bug
To help us being more repsonvise w.r.t to bugs, we have set up a detailed bug submission procedure, and need you to strictly follow these guidelines :
- Write a 10-15 lines description of the bug
- Prepare a C file and an Gecos script file that will allow us to reproduce the bug
Then, if you are just a Gecos user, go on the Gecos bug tracking page and start by providing a precise and detailled description of the problem that you encoutered. Whenever possible, please attach the script file (.cs) and a simple source code example that will help us reproduce the bug.
Otherwise if you are a registered Gecos developpers (i.e. with write access to the SVN), you need to commit the script file and source file to the fr.irisa.cairn.gecos.bugs in the following SVN folder https://scm.gforge.inria.fr/svn/gecos/trunk/test/fr.irisa.cairn.gecos.bugs, using the following convention.
- use the bug number to create a folder (say
bug-123) - put you script file and the source code in that folder. Make sure the script still works before commiting back to the SVN.

