=================================================================== Voici les corrections et les extensions de la nouvelle diffusion de Le-Lisp version 15.21 date'e du 25 De'cembre 1987. Interpre`te et fonctions pre'de'finies : ======================================== - (#:SYSTEM:MAPALLVECTOR fnt) (#:SYSTEM:MAPALLSTRING fnt) applique <fnt> sur tous les vecteurs (chaines) presents dans le syste`me. - (GCINFO T) retourne les tailles au lancement du syste`me dans le me↑me format que GCINFO. - Fixe du bug des calculs d'adresse avec #$8000 - Ajout de la fonction PRATOM - Ajout des fonctions IMIN, IMAX, FMIN, FMAX LLCP: ==== - Un effet de bord dans le 2eme argument de NEWR ne pose plus de proble`me. COMPLICE : ========== [15/09/87] Erreur de compilation signale par T Banel (CEDIAG) Mauvaise compilation de la recursivite terminale des Nsubrs faisant une liaison d'arbre. Reperable par : (defun foo ((a . b) c d e) (when b (flush) (f b c d e))) (foo '(1 2) 3 4 5) -> Erreur de la machine Modification de cp2. [17/09/87] feature signale par M Devin (ILOG) On ne signale les fonctions externes au module si la fonction est une macro du compilateur (macro-openp <f>). Ceci evite d'avoir une longue liste de message lors des defstructs... [21/09/87] On ne charge les includes qu'une seule fois. [23/09/87] Erreur de compilation signale par F Morain (INRIA) Mauvaise allocation des registres pour la fonction REPEAT Reperable par: (defun foo (a b) (repeat 0 (setq b (cons 1 1))) b ) qui ramene la valeur de a. Modification de cpfnt [14/10/87] Mauvaise macroexpansion de NEWR signale' par P. Parquier (CEDIAG) Le deuxie`me argument doit e↑tre evalue' avant la variable comme dans l'interpre`te. Modification de ~/llib/cpmac.ll par ILOG [28/10/87] Bug signale par F. Morain [INRIA] 'time' etait filtree par la premiere passe du compilateur alors qu'elle est une macro du compilateur. Modification de cp1.ll [28/10/87] bug signale pas P. Robert [ECRC] Mauvaise compilation de SETQ dans certains cas. Reperable par (defun foo (v n) (flush) (setq n (vref (vref v n) n)) n ) Setq passe maintenant toujours par un registre intermediaire. Modification de cpfnt.ll Bibliothe`que standard : ======================== - STARTUP : la variable #:SYSTEM:UNIXP, indicateur de pre'sence d'un syste`me UN*X. - STARTUP : la variable #:SYSTEM:SAVE-STD-GCINFO-LIST contient la liste des GCINFO a` chaque SAVE-STD. - STARTUP : la variable #:SYSTEM:INITTY-AFTER-RESTORE-FLAG est interpre'te'e dans CORE-INIT-STD - STARTUP : la variable #:SYSTEM:INIBITMAP-AFTER-RESTORE-FLAG est interpre'te'e dans CORE-INIT-STD - Les abre'viations sont incluses en standard. - MicroCeyx est inclus en standard. - La plupart des messages d'erreur sont bilingues. - LOADMODULE est case-sensitive. - Les arrondis vers les dizaines sont correctes dans FORMAT. - EDLIN : les ame'liorations de J. Duthen de l'IRCAM ont e'te' inte'gre'es. - TRACE/STEP : redirige les E/S sur le canal terminal. - BitMap Virtuel a atteint l'a↑ge adulte. TESTS : ====== Les tests ont e'te' conside'rablement augmente's et ame'liore's. Voici l'ensemble du jeu de tests standard : ../lltest/testextern.ll ../lltest/testlap.ll ../lltest/testprint.ll ../lltest/testfloat.ll ../lltest/testdata.ll ../lltest/testmcx.ll ../lltest/testgenr.ll ../lltest/testpeep.ll ../lltest/testsched.ll ../lltest/testfib.ll ../lltest/testtrace.ll ../lltest/testread.ll ../lltest/testratio.ll ../lltest/testcomplex.ll ../lltest/testtty.ll ../lltest/testcpl.ll ../lltest/testformat.ll ../lltest/testcp.ll ../lltest/testcomm.ll ../lltest/testfn.ll ../lltest/testbitmap.ll ../lltest/testbvcomm.ll ../lltest/testgraph.ll ../lltest/testmodes.ll MAC68K et LAP68K : ================== - Indicateur MC68020 dans mac68k traite : [ADD/SUB]Q sur les registres Ax adressage indexe sur mots HPxMOVx - Pour les CVALQ/FVALQ le LAP utilise l'adressage indirect indexe' sur RNIL. - Enle`ve l'indicateur TABLGC (la table est toujours pre'sente mais occupe 2 fois moins de place!) - Les registres peuvent e↑tre alloue's diffe'remment dans MAC et LAP. - Les flottants 64 bits occupent vraiment 64 bits (et non plus 96bits) - Deux nouveaux traits ont e'te' ajoute's dans les versions 680x0 : 31BITFLOATS ou 64BITFLOATS MC68881 - Les flottants 31/64 bits avec/sans MC68881 sont DANS TOUS LES CAS correctement traite's. Il y a donc 4 binaires liables pour les images me'moires : lesoft31bin.o lesoft64bin.o lefpu31bin.o avec mc68881 lefpu64bin.o avec mc68881 Le de'faut est lesoft31bin.o (qui correspond a` l'ancien lelispbin.o). - Optimisation du GC IBM RT/PC : =========== est disponible!