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 (first timers)
For users unfamiliar with Eclipse, we currently provide three versions of a bundle Eclipse distribution including GeCoS, CDT and Xtext. If you don't want to mess with Eclipse update sites, this is definitely the way to go.
- Linux versions
- Mac version
Installation (regular users)
Follow this link to get more information
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
Getting sources for gecos tutorials
We provide a tools to help beginners to involve in gecos environnement. A new button has appeared in the menu bar :
By clicking on the button or in the menu bar Gecos > Create project with gecos tutorials, a new project named fr.irisa.cairn.gecos.tutorial will be created in your workspace. The sources provided does not yet correspond exactly to the following tutorials. We need a little more time to update them.
Be carefull : Pushing this button one more time will erase previous version of the tutorials. Do not forget to save your files in an other project before clicking again on this button.
Note : Actually only available on mac or linux distribution with an svn client installed !
Gecos tutorials
Below, we provide an introduction to the Gecos source to source framework, which is splitted into 5 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.

