﻿<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Tom @ Gil</title>
		<link>http://www.thomasgil.com</link>
		<description>Site Web de la société thomasgil.com</description>
		<language>fr-FR</language>
		<atom:link href="http://www.thomasgil.com/rss.xml" rel="self" type="application/rss+xml" />
		<lastBuildDate>Thu, 29 Dec 2011 22:59:20 +0100</lastBuildDate>
		<item> 
			<title>
		Meilleurs voeux
	</title>
			<description>&lt;p&gt;days[-4] = &quot;Joyeux Noël&quot;&lt;/p&gt;
	&lt;p&gt;days[+2] = &quot;Bonne année 2012&quot;&lt;/p&gt;
	&lt;p&gt;Rumeur: en 2012, T@G proposerait une nouvelle offre de services...&lt;/p&gt;</description>
			<pubDate>Thu, 29 Dec 2011 00:00:00 +0100</pubDate>
			<guid>http://www.thomasgil.com/1325113200</guid>
			<link>http://www.thomasgil.com/index.html</link> 
		</item>		<item> 
			<title> 
		GT 3.4 
		Templates++
	</title>
			<description>&lt;p&gt;Le corps des méthodes de templates peut dorénavant être conditionné par le type d'un paramètre de template.&lt;/p&gt;
	&lt;p&gt;#if ${T=int} ... #endif pour n'exécuter le code que si le paramètre T prend la valeur int.&lt;/p&gt;
	&lt;p&gt;#if ${T=*} ... #endif dans le cas où T est un pointeur (vers n'importe quel type)&lt;/p&gt;</description>
			<pubDate>Sun, 24 Jul 2011 00:00:00 +0200</pubDate>
			<guid>http://www.thomasgil.com/1311458400</guid>
			<link>http://www.thomasgil.com/index.html</link> 
		</item>		<item> 
			<title> 
		GT 3.3 
		New World Order
	</title>
			<description>&lt;p&gt;L'ordre naturel de déclaration des types et d'importation de fichiers externes est maintenant respecté. 
		Ceci permet à nouveau de composer certains types plutôt que de les aggréger. malloc--, free--&lt;/p&gt;</description>
			<pubDate>Tue, 19 Jul 2011 00:00:00 +0200</pubDate>
			<guid>http://www.thomasgil.com/1311026400</guid>
			<link>http://www.thomasgil.com/index.html</link> 
		</item>		<item> 
			<title> 
		GT 3.2 
		Fix
	</title>
			<description>&lt;p&gt;GT refusait les invocations de méthodes dont la liste d'arguments débutait par un retour charriot.
		Ce n'est plus le cas.&lt;/p&gt;</description>
			<pubDate>Mon, 18 Jul 2011 00:00:00 +0200</pubDate>
			<guid>http://www.thomasgil.com/1310940000</guid>
			<link>http://www.thomasgil.com/index.html</link> 
		</item>		<item> 
			<title> 
		GT 3.1 
		Fatal Error
	</title>
			<description>&lt;p&gt;Les messages d'erreur comprennent maintenant le numéro de colonne.&lt;/p&gt;
	&lt;p&gt;Ceci permet à certains éditeurs de se rendre directement à l'emplacement 
		(et non la ligne) d'origine du problème.&lt;/p&gt;</description>
			<pubDate>Thu, 14 Jul 2011 00:00:00 +0200</pubDate>
			<guid>http://www.thomasgil.com/1310594400</guid>
			<link>http://www.thomasgil.com/index.html</link> 
		</item>		<item> 
			<title> 
		GT 3.0 
		Enums, templates
	</title>
			<description>&lt;p&gt;Les types énumérés sont supportés&lt;/p&gt;
	&lt;p&gt;La substitution de noms s'est améliorée: si un type T est affecté à la valeur int*,  
	${T} donnera effectivement int* mais ${$T} donnera int_. Cela permet d'élaborer des 
	templates plus complexes.&lt;/p&gt;</description>
			<pubDate>Tue, 12 Jul 2011 00:00:00 +0200</pubDate>
			<guid>http://www.thomasgil.com/1310421600</guid>
			<link>http://www.thomasgil.com/index.html</link> 
		</item>		<item> 
			<title> 
		GT 2.9 
		Varargs
	</title>
			<description>&lt;p&gt;GT supporte maintenant les méthodes à nombre paramètres variable.&lt;/p&gt;</description>
			<pubDate>Fri, 08 Jul 2011 00:00:00 +0200</pubDate>
			<guid>http://www.thomasgil.com/1310076000</guid>
			<link>http://www.thomasgil.com/index.html</link> 
		</item>		<item> 
			<title> 
		GT 2.8 
		Classes statiques
	</title>
			<description>&lt;p&gt;Une classe statique regroupe attributs et méthodes statiques. 
		Elle n'induit aucune structure dans le code généré 
		(un -pedantic warning de moins, un code généré plus léger)&lt;/p&gt;
	&lt;p&gt;GT produit des pragmas #line à la demande&lt;/p&gt;
	&lt;p&gt;Refactoring: la fusion entre classes et instances de templates a été optimisée&lt;/p&gt;</description>
			<pubDate>Thu, 07 Jul 2011 00:00:00 +0200</pubDate>
			<guid>http://www.thomasgil.com/1309989600</guid>
			<link>http://www.thomasgil.com/index.html</link> 
		</item>		<item> 
			<title> 
		GT 2.7 
		Composition
	</title>
			<description>&lt;p&gt;Un attribut peut maintenant être du type 
		&lt;ul&gt;
			&lt;li&gt;d'une classe définie précédemment&lt;/li&gt;
			&lt;li&gt;d'un template instancié avant ou dans la classe englobant l'attribut&lt;/li&gt;
		&lt;/ul&gt;
	&lt;/p&gt;
	&lt;p&gt;Les versions précédentes de GT obligeaient les attributs à être de type pointeur, 
		excluant ainsi toute possibilité de composition.&lt;/p&gt;</description>
			<pubDate>Tue, 05 Jul 2011 00:00:00 +0200</pubDate>
			<guid>http://www.thomasgil.com/1309816800</guid>
			<link>http://www.thomasgil.com/index.html</link> 
		</item>		<item> 
			<title> 
		GT 2.6 
		Constness
	</title>
			<description>&lt;p&gt;Attributs, paramètres et [objets cibles des] méthodes peuvent être définis &lt;em&gt;const&lt;/em&gt;.&lt;/p&gt;</description>
			<pubDate>Mon, 04 Jul 2011 00:00:00 +0200</pubDate>
			<guid>http://www.thomasgil.com/1309730400</guid>
			<link>http://www.thomasgil.com/index.html</link> 
		</item>		<item> 
			<title> 
		GT 2.5 
		Templates refactoring
	</title>
			<description>&lt;p&gt;L'expérience montre que la séquence de fin de templates &quot;}&amp;gt;&quot; est incompatible avec la propagation
	des paramètres desdits templates.&lt;/p&gt;
	&lt;p&gt;La séquence de fin devient donc &quot;}&amp;lt;&amp;gt;&quot;.&lt;/p&gt;
	&lt;p&gt;&lt;pre&gt;
&lt;b&gt;Exemple&lt;/b&gt; 
template List&amp;lt;T&amp;gt;{
	using Node_${T} = Node&amp;lt;${T}&amp;gt;
}&amp;lt;&amp;gt;
	&lt;/pre&gt;&lt;/p&gt;</description>
			<pubDate>Sun, 03 Jul 2011 00:00:00 +0200</pubDate>
			<guid>http://www.thomasgil.com/1309644000</guid>
			<link>http://www.thomasgil.com/index.html</link> 
		</item>		<item> 
			<title> 
		GT 2.4 
		Light Template meta-programming 
	</title>
			<description>&lt;p&gt;GT permet d'instancier une template non seulement en dehors de toute classe, 
	mais aussi au sein d'une classe.&lt;/p&gt;
	&lt;p&gt;Effet de bord: comme une Template devient une classe à l'instanciation, GT peut donc
	instancier une Template depuis une autre Template.&lt;/p&gt;
	&lt;p&gt;Inconvénient: GT a pris du poids et pèse maintenant 87 Ko.&lt;/p&gt;</description>
			<pubDate>Wed, 29 Jun 2011 00:00:00 +0200</pubDate>
			<guid>http://www.thomasgil.com/1309298400</guid>
			<link>http://www.thomasgil.com/index.html</link> 
		</item>		<item> 
			<title>GT en Anglais</title>
			<description>&lt;p&gt;La page de présentation du langage GT et de son compilateur est maintenant disponible 
	en &lt;a href=&quot;gt.html&quot;&gt;Français&lt;/a&gt; comme en &lt;a href=&quot;gt.en.html&quot;&gt;Anglais&lt;/a&gt;.&lt;/p&gt;</description>
			<pubDate>Sun, 26 Jun 2011 00:00:00 +0200</pubDate>
			<guid>http://www.thomasgil.com/1309039200</guid>
			<link>http://www.thomasgil.com/index.html</link> 
		</item>		<item> 
			<title>Maintenance: GT 2.3</title>
			<description>&lt;p&gt;Suppression d'une lourdeur inutile héritée du temps où la surcharge était supportée.&lt;/p&gt;</description>
			<pubDate>Tue, 21 Jun 2011 00:00:00 +0200</pubDate>
			<guid>http://www.thomasgil.com/1308607200</guid>
			<link>http://www.thomasgil.com/index.html</link> 
		</item>		<item> 
			<title>Intégration continue: GT 2.2</title>
			<description>&lt;p&gt;Automatisation de la production d'exécutable et de lancement des tests.&lt;/p&gt;</description>
			<pubDate>Sun, 19 Jun 2011 00:00:00 +0200</pubDate>
			<guid>http://www.thomasgil.com/1308434400</guid>
			<link>http://www.thomasgil.com/index.html</link> 
		</item>		<item> 
			<title>Optimisation: GT 2.1</title>
			<description>&lt;p&gt;Suppression d'une lourdeur inutile héritée du temps où la surcharge était supportée.&lt;/p&gt;
	&lt;p&gt;GT 2.1 est disponible &lt;a href=&quot;gt.html&quot;&gt;ici&lt;/a&gt;&lt;/p&gt;</description>
			<pubDate>Fri, 17 Jun 2011 00:00:00 +0200</pubDate>
			<guid>http://www.thomasgil.com/1308261600</guid>
			<link>http://www.thomasgil.com/index.html</link> 
		</item>		<item> 
			<title>Maintenance: GT 2.0</title>
			<description>&lt;p&gt;Templates et commentaires ne faisaient pas bon ménage. Corrigé.&lt;/p&gt;
	&lt;p&gt;GT 2.0 est disponible &lt;a href=&quot;gt.html&quot;&gt;ici&lt;/a&gt;&lt;/p&gt;</description>
			<pubDate>Wed, 15 Jun 2011 00:00:00 +0200</pubDate>
			<guid>http://www.thomasgil.com/1308088800</guid>
			<link>http://www.thomasgil.com/index.html</link> 
		</item>		<item> 
			<title>Evolution: GT 1.9</title>
			<description>&lt;p&gt;Les templates peuvent dorénavant hériter d'une classe&lt;/p&gt;
	&lt;p&gt;Dédoublonnage: l'inclusion multiple &quot;accidentelle&quot; d'un fichier se réduit à une inclusion simple&lt;/p&gt;
	&lt;p&gt;GT 1.9 est disponible &lt;a href=&quot;gt.html&quot;&gt;ici&lt;/a&gt;&lt;/p&gt;</description>
			<pubDate>Tue, 14 Jun 2011 00:00:00 +0200</pubDate>
			<guid>http://www.thomasgil.com/1308002400</guid>
			<link>http://www.thomasgil.com/index.html</link> 
		</item>		<item> 
			<title>Evolution: GT 1.8</title>
			<description>&lt;p&gt;Toutes les classes sont maintenant partielles au sens C# du terme&lt;/p&gt;
	&lt;p&gt;Optimisation (dans la recherche des types référencés)&lt;/p&gt;
	&lt;p&gt;Aide au codage (indication en cas d'oubli de 'this.' pour référencer un attribut)&lt;/p&gt;
	&lt;p&gt;GT 1.8 est disponible &lt;a href=&quot;gt.html&quot;&gt;ici&lt;/a&gt;&lt;/p&gt;</description>
			<pubDate>Sat, 11 Jun 2011 00:00:00 +0200</pubDate>
			<guid>http://www.thomasgil.com/1307743200</guid>
			<link>http://www.thomasgil.com/index.html</link> 
		</item>		<item> 
			<title>Refactoring: GT 1.7</title>
			<description>&lt;p&gt;Refactoring interne: macros/fonctions, règles de nommage&lt;/p&gt;
	&lt;p&gt;Documentation du code source&lt;/p&gt;
	&lt;p&gt;GT 1.7 est disponible &lt;a href=&quot;gt.html&quot;&gt;ici&lt;/a&gt;&lt;/p&gt;</description>
			<pubDate>Fri, 10 Jun 2011 00:00:00 +0200</pubDate>
			<guid>http://www.thomasgil.com/1307656800</guid>
			<link>http://www.thomasgil.com/index.html</link> 
		</item>		<item> 
			<title>Tout est objet: GT 1.6</title>
			<description>&lt;p&gt;Invocation de méthodes sur types primitifs et assimilés (int, char, char*, int), même litéraux&lt;/p&gt;
	&lt;p&gt;Correction d'un bug (du parser) lors de l'invocation de fonctions externes sans paramètres.&lt;/p&gt;
	&lt;p&gt;GT 1.6 est disponible &lt;a href=&quot;gt.html&quot;&gt;ici&lt;/a&gt;&lt;/p&gt;</description>
			<pubDate>Thu, 09 Jun 2011 00:00:00 +0200</pubDate>
			<guid>http://www.thomasgil.com/1307570400</guid>
			<link>http://www.thomasgil.com/index.html</link> 
		</item>		<item> 
			<title>Optimisation: GT 1.5</title>
			<description>&lt;p&gt;Optimisation de recherche d'éléments syntaxiques&lt;/p&gt;
	&lt;p&gt;Remplacement d'une méthode de recherche finie (de types primitifs) par une nouvelle machine à états.&lt;/p&gt;
	&lt;p&gt;GT 1.5 est disponible &lt;a href=&quot;gt.html&quot;&gt;ici&lt;/a&gt;&lt;/p&gt;</description>
			<pubDate>Wed, 08 Jun 2011 00:00:00 +0200</pubDate>
			<guid>http://www.thomasgil.com/1307484000</guid>
			<link>http://www.thomasgil.com/index.html</link> 
		</item>		<item> 
			<title>Evolution: GT 1.4</title>
			<description>&lt;p&gt;La notion de surcharge de méthodes implique lourdeur et choix arbitraires dans l'implémentation d'un compilateur. GT se voulant une surcharge légère du C, décider de l'intégrer tout de même a été une erreur. GT 1.4 est donc &quot;débarrassé&quot; de cette notion.&lt;/p&gt;
	&lt;p&gt;Un certain nombre d'optimisations deviennent possibles et seront réalisés ces prochaines semaines.&lt;/p&gt;
	&lt;p&gt;GT 1.4 est disponible &lt;a href=&quot;gt.html&quot;&gt;ici&lt;/a&gt;&lt;/p&gt;</description>
			<pubDate>Tue, 07 Jun 2011 00:00:00 +0200</pubDate>
			<guid>http://www.thomasgil.com/1307397600</guid>
			<link>http://www.thomasgil.com/index.html</link> 
		</item>		<item> 
			<title>Edition de Noël: GT 1.3</title>
			<description>&lt;p&gt;Cette version est le résultat d'un refactoring interne. Le compilateur GT est maintenant doté de quelques tests unitaires.&lt;/p&gt;
	&lt;p&gt;GT 1.3 est disponible &lt;a href=&quot;gt.html&quot;&gt;ici&lt;/a&gt;&lt;/p&gt;</description>
			<pubDate>Sat, 25 Dec 2010 00:00:00 +0100</pubDate>
			<guid>http://www.thomasgil.com/1293231600</guid>
			<link>http://www.thomasgil.com/index.html</link> 
		</item>		<item> 
			<title>Nouvelle release: GT 1.2</title>
			<description>&lt;p&gt;Cette version corrige certaines imperfections sur la gestion des instructions dans un block.&lt;/p&gt;
	&lt;p&gt;GT 1.2 est disponible &lt;a href=&quot;gt.html&quot;&gt;ici&lt;/a&gt;&lt;/p&gt;</description>
			<pubDate>Fri, 10 Dec 2010 00:00:00 +0100</pubDate>
			<guid>http://www.thomasgil.com/1291935600</guid>
			<link>http://www.thomasgil.com/index.html</link> 
		</item>		<item> 
			<title>Nouvelle release: GT 1.1</title>
			<description>&lt;p&gt;Cette version supporte toutes les structures de contrôle classiques (for/while/switch/if). Elle permet également la déclaration de multiples variables en une instruction et l'initialisation directe de tableaux ou de structures (int tab[][]= {{1, 2}, {4, 5}}).&lt;/p&gt;
	&lt;p&gt;GT 1.1 est disponible &lt;a href=&quot;gt.html&quot;&gt;ici&lt;/a&gt;&lt;/p&gt;</description>
			<pubDate>Wed, 08 Dec 2010 00:00:00 +0100</pubDate>
			<guid>http://www.thomasgil.com/1291762800</guid>
			<link>http://www.thomasgil.com/index.html</link> 
		</item>		<item> 
			<title>Nouvelle release: GT 1.0</title>
			<description>&lt;p&gt;Cette version permet un nombre de blocs imbriqués arbitraire. Elle apporte également une nouvelle optimisation du temps de compilation.&lt;/p&gt;
	&lt;p&gt;GT 1.0 est disponible &lt;a href=&quot;gt.html&quot;&gt;ici&lt;/a&gt;&lt;/p&gt;</description>
			<pubDate>Tue, 07 Dec 2010 00:00:00 +0100</pubDate>
			<guid>http://www.thomasgil.com/1291676400</guid>
			<link>http://www.thomasgil.com/index.html</link> 
		</item>		<item> 
			<title>Nouvelle release: GT 0.9</title>
			<description>&lt;p&gt;Cette version corrige un bug sur l'accès aux attributs statiques et sur les expressions parenthésées imbriquées. Elle apporte également une optimisation (du temps de compilation) sur l'invocation de méthodes statiques.&lt;/p&gt;
	&lt;p&gt;GT 0.9 est disponible &lt;a href=&quot;gt.html&quot;&gt;ici&lt;/a&gt;&lt;/p&gt;</description>
			<pubDate>Mon, 06 Dec 2010 00:00:00 +0100</pubDate>
			<guid>http://www.thomasgil.com/1291590000</guid>
			<link>http://www.thomasgil.com/index.html</link> 
		</item>		<item> 
			<title> Sortie officielle: GT 0.8</title>
			<description>&lt;p&gt;Le compilateur du langage GT est disponible (sous Windows 32 bits pour le moment). Cette première version officielle étend le langage C avec les notions de classes, méthodes, attributs, héritage, surcharge de méthodes et templates.&lt;/p&gt;
	&lt;p&gt;Les détails sont à lire &lt;a href=&quot;gt.html&quot;&gt;ici&lt;/a&gt;&lt;/p&gt;</description>
			<pubDate>Sat, 04 Dec 2010 00:00:00 +0100</pubDate>
			<guid>http://www.thomasgil.com/1291417200</guid>
			<link>http://www.thomasgil.com/index.html</link> 
		</item>		<item> 
			<title> Refactoring: G devient GT</title>
			<description>&lt;p&gt;Avant que mon petit langage ne soit publié, je procède à un changement de nom. En effet, G était déjà le nom du langage de programmation de l'environnement LabView, ainsi que celui d'une initiative personnelle de 2008 à laquelle on n'a semble-t-il pas donné suite.&lt;/p&gt;
	&lt;p&gt;Dans la brève précédente, il faut donc lire &quot;Nouveau langage de programmation: le &lt;em&gt;GT&lt;/em&gt;&quot;.&lt;/p&gt;</description>
			<pubDate>Tue, 26 Oct 2010 00:00:00 +0200</pubDate>
			<guid>http://www.thomasgil.com/1288044000</guid>
			<link>http://www.thomasgil.com/index.html</link> 
		</item>		<item> 
			<title> Nouveau langage de programmation : le G</title>
			<description>&lt;p&gt;De récents projets m'ont redonné le goût des langages de programmation système. Le C est un régal depuis l'existence du &lt;a href=&quot;http://bellard.org/tcc/&quot;&gt;Tiny C Compiler&lt;/a&gt; initié par &lt;a href=&quot;http://bellard.org/&quot;&gt;Fabrice Bellard&lt;/a&gt;, mais sa syntaxe est peu adaptée au codage objet. Le C++ est parfait sur ce plan mais aucun compilateur (trop lents) ou interpréteur (incomplets) n'offre la même interactivité que TCC en C++.&lt;/p&gt;
	&lt;p&gt;J'ai donc décidé de concevoir G, un langage de programmation objet d'une syntaxe proche de Java/C#/C++. Après plusieurs prototypes fonctionnels peu satisfaisants (précompilateur C, utilisation intensive de macros génériques C), j'ai dû me résoudre à implémenter un compilateur G et qui produira dans un premier temps du code source C.&lt;/p&gt;
	&lt;p&gt;Les maîtres mots de G: rapidité de compilation, qualité du code produit, moindre surprise et simplicité de codage.&lt;/p&gt;
	&lt;p&gt;Plusieurs langages ayant grosso-modo ces intentions ont été élaborés ces dernières années: D, Genie, Vala, Go!. L'ambition de G est plus modeste mais son compilateur tâchera d'être plus léger et plus rapide que ces derniers.&lt;/p&gt;
	&lt;p&gt;Je n'ai pas encore pris de décision sur la licence à appliquer à ce nouveau projet (libre, open source, commerciale, dual), mais je devrais le publier courant 2011.&lt;/p&gt;</description>
			<pubDate>Sat, 23 Oct 2010 00:00:00 +0200</pubDate>
			<guid>http://www.thomasgil.com/1287784800</guid>
			<link>http://www.thomasgil.com/index.html</link> 
		</item>
	</channel>
</rss>
