Le poulet est une application de compilateur libre et open source pour le langage de programmation Scheme. Il est compatible avec le système d'exploitation Linux / UNIX.
Poulet produit efficace et portable C, et il prend en charge un grand nombre de la norme de langage de schéma actuel (voir la liste ci-dessous pour plus de détails).
Il fournit des out-of-the-box soutien à la DDR supplémentaire 0 (cond-expand), la DDR supplémentaire 1 (bibliothèque de liste), la DDR supplémentaire 2 (et laisser *), la DDR supplémentaire 4 (types de données vectorielles numériques homogène), Srfl 6 (ports de chaînes de base ), la DDR supplémentaire 8 (réception), Srfl 9 (types de disques), la DDR supplémentaire 10 (#, forme extérieure), la DDR supplémentaire 13 (bibliothèque String), la DDR supplémentaire 14 (Jeu de caractères bibliothèque), la DDR supplémentaire 16 (cas lambda), la DDR supplémentaire 17 ( ensemble généralisé!), la DDR supplémentaire 18 (support Multithreading), la DDR supplémentaire 23 (erreur), Srfl 25 (primitives de tableau multidimensionnel), la DDR supplémentaire 26 (coupe, mignon), la DDR supplémentaire 28 (format), Srfl 30 (commentaires de bloc), la DDR supplémentaire 37 ( l'argument du programme du processeur), la DDR supplémentaire 38 (représentation externe pour les données avec une structure partagée), la DDR supplémentaire 39 (Paramètres), la DDR supplémentaire 40 (bibliothèque de flux), la DDR supplémentaire 42 (compréhensions Eager), la DDR supplémentaire 43 (bibliothèque Vector) et la DDR supplémentaire 55 (nécessite-extension ).
Ce qui est nouveau dans cette version:
- Cette version inclut plusieurs correctifs de sécurité et de collision importants, après une récente frénésie chasseurs de bugs par nos pirates de base.
Ce qui est nouveau dans la version 4.8.0.5:
- Cette version inclut plusieurs correctifs de sécurité et de collision importants, après une récente frénésie chasseurs de bugs par nos pirates de base.
Ce qui est nouveau dans la version 4.8.0.3:
- Cette version corrige principalement un bug sous Linux et Solaris qui provoque une utilisation élevée du CPU lors de l'attente pour le processus de l'enfant E / S.
Ce qui est nouveau dans la version 4.8.0.2:
- Interprète:
- régression dans Fix, d pour les procédures, ce qui a entraîné une erreur de sprintf.
- Compiler:
- Correction des sauts de ligne (réécriture ~~) dans printf.
- Durée:
- Laissez & gt; 4GB tas sur les systèmes 64 bits (# 974).
- bibliothèque manquante Ajouté (-lrt) sur Solaris pour les appels nanosleep (# 970).
- Construire système:
- Utilisez -f de test au lieu de -e de test dans identify.sh pour apaiser Solaris.
Ce qui est nouveau dans la version 4.8.0.1:
- Les corrections de sécurité:
- Utiliser POSIX poll () sur les systèmes où disponibles. Cela évite un défaut de conception dans select (); il supporte pas plus de descripteurs FD_SETSIZE.
- Bibliothèques de base:
- EINTR fixe la manipulation dans les processus d'attente et lors de la lecture à partir des ports de fichiers.
- Correction pour irregex (# 686). Remarque:. Irregex.scm bien dit désormais la version 0.9.2, la version 0.8.3 est en fait plus quelques correctifs rétroportés
- Correction d'un problème dans le «faire-chemin" qui a renvoyé un chemin absolu si on leur donne un caractère relatif sans argument de répertoire.
- Sur les systèmes 64 bits identifiant la fonction "64bit" est inscrit.
- Compiler:
- Correction de divers bogues dans la base de données de type.
- Correction de bugs et des améliorations dans le scrutateur.
- Dans le flux passe-analyse, de type correspondant de combinaisons de "liste" / "liste-des" types a été rendue plus fiable.
- Syntaxe extension:
- Faire définit macro-organismes commencent rebaptisé en modules (à l'intérieur) visibles à des formes plus tard. (# 944).
- Durée:
- code incorrect fixe dans la conversion de l'argument étrangère pour "unsigned-integer64" (# 955).
- les outils de base:
- Le chemin de l'exécution de liaison pour les exécutables compilés n'a pas été réglé correctement sur les systèmes FreeBSD.
- Correction d'installer extension bris lorsque le second argument contient des paires (SRC DST).
- Construire système:
- Prévenir la reconstruction de buildversion.scm sur chaque faire (1) sur Windows.
système
Ce qui est nouveau dans la version 4.8.0:
- interfaces et functors ont été ajoutés au système de module.
- Le système de type a été étendu.
- Un grand nombre de corrections de bogues et nettoyage général ont été faites dans le compilateur, système d'exécution, les bibliothèques de base, et la syntaxe d'extension.
Ce qui est nouveau dans la version 4.6.0:
- Quelques optimisations du compilateur ont été considérablement améliorée.
- Plusieurs procédures intégrés et l'allocation des procédures pour les listes, des vecteurs et des structures génèrent un code plus rapide.
- Unités DDR supplémentaire-4 et la DDR supplémentaire-18 ont été fortement nettoyé et optimisé.
- Plusieurs bugs ont été corrigés dans l'ordonnanceur de threads.
- poulet installer a été étendu, et son support de compilation croisée a été considérablement amélioré.
- Le système de construction prend désormais en charge plusieurs plates-formes et des compilateurs.
- Les différents scripts d'infrastructure ont été révisés pour tenir compte de la structure de la nouvelle infrastructure de site Web.
Ce qui est nouveau dans la version 4.4.0:
- le système peut maintenant être construit avec llvm-gcc et / ou "clang" (compilateur LLVM C la qui ne pas utiliser le frontend GNU C)
- a ajouté une nouvelle option `-trunk 'à` poulet-installer', qui bâtiment des forces et l'installation de la version de développement d'extensions en combinaison avec `-t local»
- a ajouté une nouvelle option `-Déployez 'à` poulet-installer', qui construit l'extension pour une utilisation dans les applications "déployés" (voir ci-dessous)
- Ajout de l'option `-Déployez 'à` csc », le pilote du compilateur. Avec cette option `csc 'peut construire entièrement des kits d'applications autonomes et des applications à double cliquable Macintosh GUI; voir le "déploiement" chapitre du manuel pour plus d'informations
- le répertoire donné à la «possibilité de` poulet-installer '`-prefix pourrait maintenant être un chemin relatif.
- enlevé bibliothèque d'exécution spécifique à l'interface graphique (`libchicken-gui») à partir de Windows construire
- directrices et non-GUI utilisent désormais la même bibliothèque d'exécution
- des formes particulières de l'interface fonction étrangère ont été remplacés par une forme interne et la syntaxe pour permettre de renommer et de l'observation de ces formes
- la nouvelle option 'dans `csc'` -salle-référentiel compile exécutables avec le chemin de l'extension-répertoire créé dans le répertoire à partir duquel le programme a été lancé
- `csc ': DECONSEILLE` -W' et `-Windows de options, ajoute` -gui 'comme un remplacement de la plate-forme indépendante
- `exiger extension '/` utilisation »accepte désormais importation-spécifications
- définis par l'utilisateur extension-prescripteurs et `set-extension-prescripteur! ' ont été enlevés
- `delete-file [*] ',` renommer fichier', `créer répertoire ',` de copie de fichier', `file-move ',` delete-répertoire' et `changement répertoire« retourner leur argumentation / fichier de destination sur le succès
- ajouté la procédure manquant `état-nom-variable» à la DDR supplémentaire 18-unité de bibliothèque (Merci à Joerg Wittenberger)
- la `glob? fonction à partir de l'expression rationnelle 'unité `a été désapprouvée
- ajouté la procédure `scan-lignes d'entrée» pour les `utils unité bibliothèque
- Ajout d'une option nouvelle de l'exécution `-: g 'qui permet GC sortie de débogage
- la valorisation des symboles non utilisés en mode "symbole-gc" (`-: w ') maintenant seulement a lieu pour les symboles avec une propriété liste vide
- sur Windows chargement de code compilé avec [non-] bibliothèques GUI d'exécution vont échouer et produire un message d'erreur lorsque l'exécutable de chargement est lié à un système d'exécution différente
- sur Windows, bibliothèques GUI ont été pas correctement reliée par `csc '
- unité POSIX: setter ajoutée pour `file-modification-temps»
- la bannière montre la branchname de la construction, sauf si elle est «maître»
- l'option 'à `poulet-installer'` -no-installer est ignoré lors de la construction / installation de dépendances
- `poulet désinstallation 'prend une boule au lieu d'une expression régulière comme argument
- le renommer et comparer les fonctions de bas niveau macro-définitions acceptent maintenant arbitraire s-expressions et renomme / les compare de manière récursive
- `number- & gt; chaîne 'gère négatifs numéros avec des bases différentes de 10 correctement (merci à Peter Danenberg)
- enlevé obsolète `setup-install-drapeau 'et` setup-verbose-drapeau' à partir du module `setup-api '
- a ajouté une nouvelle option `-repository 'à` poulet-install' (Merci à Christian Kellermann)
- enlevé `programme stub poulet-setup '
- correctif pour `csc 'utiliser la bibliothèque correcte lors de la fixation des chemins de charge dynamique (Merci à Derrell Piper)
- documentation html retiré de la distribution (le manuel wiki va maintenant être installé)
- Correction d'un bug dans `réexportation» qui a causé la syntaxe de ne pas être correctement réexportés
- affectations antérieures à une variable de premier niveau qui sont séparés par des expressions libres d'effets secondaires sont retirés
- version Windows fixe de `find-files '(merci à Jim Ursetto)
- la documentation pour les extensions est pas installé automatiquement par `poulet-install 'plus
- changé version binaire de «4» à «5», parce que les nouvelles bibliothèques d'exécution ne sont pas compatibles au niveau binaire avec les versions précédentes; Cela signifie que tous les oeufs doivent être réinstallés et les programmes existants être recompilé!
- ajouté passe unboxing de compilateur qui se traduit par des améliorations de performance partiellement dramatiques pour dangereuse Code virgule flottante-intensive; unboxing est activé sur les niveaux d'optimisation 4 et 5
- enlevé optimisation reste argument vecteur car il pourrait entrer en conflit avec inline (grâce à Sven Hartrumpf)
- rebaptisé `pointeur offset 'à` pointeur +' et `obsolète pointeur offset '
- missions de premier niveau qui ne disposent pas d'autres effets secondaires peuvent être éliminés si l'on peut démontrer que la valeur est pas utilisé (le compilateur génère un avertissement dans ce cas)
- 'option `poulet» retiré obsolète `-quiet programme
- enlevé obsolète temps-macros exécuter déclaration »`
- enlevé obsolète `-v2 'et` -V3' options de programme `csc '
- retiré obsolète `liste-de« fonction (il est exclusivement disponible dans `liste-des? 'maintenant)
- enlevé obsolète `stat '-... fonctions dans l'unité de la bibliothèque POSIX
- enlevé obsolète `for-each-line 'et` pour-chaque-argv ligne «procédures en utils unité bibliothèque
- ajouté `fpinteger? et `fpabs '
- obsolète `définir-syntaxe compilé '
- ajouté de nouvelles virgule flottante primitives `fpsin ',` fpcos', `fptan ',` fpasin', `fpacos ',` fpatan', `fpatan2 ',` fpexp', `fplog ',` fpexpt' et ` fpsqrt '
- nettoyage lourde des fonctions mathématiques flottante qui donne de bien meilleures performances, en particulier pour le code compilé en mode non sécurisé
- appelant `assert 'avec un seul argument montre l'expression testé en cas d'échec
- diverses corrections de bogues et de nettoyage
applications
Ce qui est nouveau dans la version 4.2.0:
- poulet installer a été modifié pour trier les dépendances de la bibliothèque dans l'ordre topologique, et d'essayer de serveurs de remplacement si un serveur d'oeuf répond avec une erreur.
- La pile exécutable dans les modules de code d'assemblage est désactivé par défaut.
- De nombreux bugs ont été corrigés dans la construction MinGW.
- Plusieurs nouvelles options ont été ajoutées au compilateur et interprète.
Ce qui est nouveau dans la version 3.4.0:
- Le compilateur prend désormais en charge le profilage de procédure sélective.
- Toutes les procédures liées aux fichiers ont été déplacés vers les nouveaux fichiers unité.
- Il ya eu de nombreux correctifs à la Cygwin et MinGW construit.
- PCRE livré avec poulet a été mis à jour.
Commentaires non trouvées