Steel Bank Common Lisp (sbcl) är en öppen källkod, plattforms och gratis utvecklingsmiljö, en högpresterande kompilator för standard Common Lisp programmeringsspråket ANSI. Den är skriven helt i programspråket Lisp och skräddarsydda för developers.Features på en glanceKey funktioner inkluderar utmärkt stöd för sophämtning, inbyggd kraftfulla makron, stöd för lexikala nedläggningar, stark genomförande dynamisk typning, samt inkrementella sammanställning kapacitet.
Programvaran innehåller också många tillägg, såsom infödda trådar, socket support, en statistisk profiler, programmerbara bäckar, och många andra. Alla dessa förlängning är tillgängliga via en interaktiv och integrerad infödda kompilator, vilket känns som en tolk.
Om du & rsquo; re söker detaljerad information om hur du installerar Steel Bank Common Lisp på din Linux-distributioner eller hur man använder det, tveka inte att kolla in projektet & rsquoen; s hemsida (se länk i slutet av artikeln) .Getting började med Steel Bank Common LispTo använder Steel Bank Common Lisp på din GNU / Linux-distribution, helt enkelt ladda ner den förbyggda binärpaketet konstruerad för 64-bitars hårdvaruplattformar, spara den på en plats som du väljer, packa upp den och öppna ett terminalprogram .
I Terminal app, kör & lsquo; sh run-sbcl.sh & rsquo; kommando för att komma åt dess kommandotolken, där du kommer att kunna skriva kommandot HELP för att visa detaljerad information om tillgängliga alternativ och lära sig att använda compiler.Supported operativsystem och availabilitySteel Bank Common Lisp är unik i att vara ett plattforms infödda Common Lisp kompilator, som fungerar på GNU / Linux, BSD, Mac OS X och Microsoft Windows-operativsystem, bootstraping sig helt från källan.
För din bekvämlighet, förutom den universella källan arkivet, är programvaran distribueras som en förbyggda binärpaket som gör att du kan använda Steel Bank Common Lisp utan att installera det på 64-bitars (x86_64) datorer.
< strong> Vad är nytt i den här versionen:
- förbättring: Serve-EVENTS använder poll () systemanropet i stället för att välja () om OS har det tidigare . Tidigare opinionsundersökning () användes endast om att vänta på exakt ett filbeskrivare.
- förbättring:. Effektiviteten i tillgång till otaggade struktur slots förbättras på x86-64, och ordningen på spåren i minnet är precis som specificeras av defstruct, förenkla användningen av strukturer som argument till utländska samtal
- buggfix: SB-DEBUG: ARG fungerar nu i alla spår alternativ som utvärderar former. (Lp # 1.357.826)
- buggfix:. GC minneskorruption vid interna minneshantering
- buggfix: duplicera effektivt-slot-definition objekt jämfört med EQ på namn kan finnas i CLASS-SLOTS av en klass vars metaklass var struktur-klass eller tillstånd-klassen. (Lp # 1.049.423)
- buggfix: HANDLER-BIND med tomma bindningar fungerar igen; regression i 1.2.5. (Lp # 1.388.707)
- buggfix: ATOMIC-INCF arbetar på struktur slots i tolkats kod. (Lp # 1.381.867)
- buggfix: MAKE-ARRAY hanterar korrekt teckentyper som (eql # a) och (medlems # a # c). (Lp # 1.392.068)
- buggfix: LÄS ibland misstag bevarat ett blanktecken efter en token när den inte borde ha. (Lp # 327.790)
Vad är nytt i version 1.1.13:
- optimering: bättre fördelning av SXHASH över små conses av relaterade värden. (# 309.443)
- andra förbättringar SXHASH:
- använda hela den positiva-fixnum sortiment för SXHASH av fixnums
- förbättring:. Felmeddelandet när du ringer en odefinierad främmande funktion innehåller namnet på den funktion på x86-64
- förbättring: sb-ext: run-programmet stöder nu:. Miljö i Windows
- förbättring: ASDF krävs inte längre att ladda Contribs vid körning. (# 1.132.254)
- förbättring: När kallas med en symbol, FIND-OMSTART inte längre kallar COMPUTE-startas om gör det snabbare och nackdelar mindre (# 769.615)
- förbättring: FIND-OMSTART och beräkna-ÅTER hanterar enorma omstart kluster bättre i vissa fall
- förbättring: VISSA / NÅGRA / andra kvantifiering högre ordningens funktioner inte längre nackdelar. (# 1.070.635)
- buggfix: framåt referenser till klasser i fasls kan nu laddas. (# 746.132)
- buggfix: inte varna på ett interpreted- & gt; samman funktion omdefiniering från samma plats. (Patch av Douglas Katzman, # 1.042.405)
- buggfix: Skapa vektorer ordentlig intern längd när man läser bokstav vektorer från FASLs. (Rapporterad av Jan Moringen)
- buggfix: COMPILE kan nu succefully sammanställa setf funktioner. (Rapporterad av Douglas Katzman)
- buggfix: run-program utför mer korrekt Escaping argument i Windows. (# 1.239.242)
- buggfix: funktions lambda-uttryck på generiska funktioner returnerar verkliga namnet .
- buggfix: (den [typ] [konstant]) nu varnar när [konstant] matchar [typ] utom för antalet värden. (Rapporterad av Nathan Trapuzzano på sbcl-hjälp)
- buggfix: signalfel i erforderliga fall av slot-definition initiering protokoll. (# 309.072)
- buggfix: run-sbcl.sh fungerar bättre i närvaro av symboliska länkar på OS X. (tack vare Stelian Ionescu, # 1.242.643)
- buggfix: när det ges en omstart objekt, FIND-restart kontrollerar om omstart är aktiv och, när ett tillstånd tillförs, huruvida omstart är associerad till en annan tillstånd (# 774410)
Vad är nytt i version 1.1.12:
- förbättring: Lägg sb-BSD-uttag: socket -shutdown, för att ringa avstängning (3). (Tack till Jan Moringen, # 1.207.483)
- förbättring: dokumentera utdrag sekvenser. (Tack till Jan Moringen, # 994.528)
- optimering: LIKA och EQUALP transformationer är smartare. (Tack till Elias Mårtenson, # 1.220.084)
- optimering:. CHAR-Equal är snabbare för konstant och bas-röding argument
- buggfix: prob-filen nu kan få tillgång symboliska länkar till rör och uttag i / proc / pid / fd på Linux. (Rapporteras av Eric Schulte)
- buggfix:. Sbcl kan nu byggas på Solaris x86-64
- buggfix:. Flyttals undantag inte kvarstår på Solaris längre
- buggfix: (. Setf a). Är pprinted korrekt (rapporteras av Douglas Katzman)
- buggfix: hantera kompilatorn-fel i LOAD när den inte körs inifrån EVAL. (# 1.219.601)
- buggfix: SB-GMP: MPZ-POW inte längre segmenteringsfel ges en icke-bignum bas. (Tack till Stephan Frank)
- buggfix: space fördelning av resultat bignums i SB-GMP är mer exakt. (Tack vare Stephan Frank, # 1.206.191)
- buggfix: sb-safepoint kan nu tillförlitligt hantera signalavbrott med utländsk kod. (# 1.133.018)
- buggfix: kompilatorn-macro för MAKE-exempel när avger & quot; ersättande & quot; konstruktörer inte längre underlåter att slå ihop verkliga och standard initargs (tack till Jan Moringen, # 1.179.858)
- buggfix: kompilatorn-macro för MAKE-exempel när avger & quot; ersättande & quot; konstruktörer hanterar icke-KEYWORD initiering argument rättare.
- buggfix: laddar SB-simple-STREAMS bidragit modulen inte längre clobbers FILE-namnsträng. (Tack till Anton Kovalenko, # 884.603)
- buggfix: klassdefinitioner med CPLS oförenliga med deras metaclasses är mindre benägna att förstöra föremålet systemets integritet. (# 309.076)
- buggfix: restart klausul tolkning i OMSTART-CASE är mer i linje med standarden. (# 1.203.585, tack vare Jan Moringen)
- buggfix: tysta ett meddelande från OMSTART-CASE enligt höghastighetståg optimeringsinställningar. (# 1.023.721)
- buggfix: få ordningen på argumenten till SB-MOP: SET-FUNCALLABLE-instance-FUNKTION fel ger en vettig fel snarare än en misslyckad AVER. (Rapporteras av Paul Nathan)
- buggfix: tolkning av & tillval / & nyckel / & vila argument nu aldrig skriver argument under kopiering på x86 och x86-64; Det kan fortfarande hända på andra plattformar när det finns flera fasta argument än stack slots. (Rapporteras av Jan Moringen)
Vad är nytt i version 1.0.52:
- förbättring: AsDF har uppdaterats till version 2.017.
- förbättring:. Den --core kommandoraden alternativet accepterar nu binärer med en inbäddad kärna
- förbättring: när byggdes med: sb-core-komprimering, core-filer (regelbundna eller körbara) kan komprimeras med zlib. Använd:. COMPRESSION argument till SAVE-LISP-AND-DIE att ange en komprimeringsnivå
- förbättring: - [ingen] samman-core-sidor avgör om runtime antyder det operativsystem som identiska kärn sidor mellan sbcl processer bör dela samma fysiska minnet. Standard är att enbart aktivera detta för komprimerade kärnor.
- optimering:. SLEEP inte längre conses
- optimering:. * PRINT-PRETTY * inte längre saktar ner tryckning av strängar eller bit-vektorer vid användning av standarden pretty-print sändning bord
- buggfix: icke-funktions FTYPE deklarationer inte längre orsaka en kompilator-error. (# 738.464)
- buggfix: kompilator-fel orsakar genom MEDLEMStyper i samband med med AREF, CHAR, etc. (# 826.971)
- buggfix: kompilator-fel orsakar genom heltal argument består av flera områden för ARRAY-IN-BOUNDS-P. (# 826.970)
- buggfix:, @ och,. Nu signalerar en läs-tidsfelet för vissa icke-listuttryck. (# 770.184)
- buggfix:. Komplexa enkla float literals är korrekt riktade när används som argument aritmetiska operatorer
- buggfix: den 32-bitars plattformar, är korrekt avrundning av dubbla flottar större än en fixnum. (Rapporteras av Peter Keller)
- buggfix: stray FD-handlers inte längre vänster ligger runt efter spolas av RUN-PROGRAM. (# 840.190, rapporteras av Dominic Pearson, fixa från Max Mikhanosha)
- Bugfix:. Omdefiniera klasser så att slots med anpassade allokering läggs till eller tas bort fungerar igen
Vad är nytt i version 1.0.50:
- förbättring: fel från FD hanterare nu ge en omstart för att ta bort den felande handler.
- förbättring: SB-Introspect:. FIND-DEFINITION-SOURCE fungerar nu på struktur kopiatorer samt
- förbättring: lokalisering av användare eller systeminitieringen fil kan nu enkelt anpassas för sparade kärnor. Se: SB-EXT: * Userinit-PATHNAME-FUNKTION * och SB-EXT:. * Sysinit-PATHNAME-FUNKTION *
- förbättring: SB-EXT: GÖR-GÄNG accepterar en argumentlista beteckning för thunk, som sökord argument:. Argument
- förbättring: villkorspropagering förenklas (och påskyndas) när SAMMANSTÄLLNING-SPEED & gt; SPEED.
- förbättring:. SB-FRÄMMANDE export främmande typ specifikatörer SIZE-T och OFF-T
- förbättring: debugger förstår & FLER argument bättre .
- optimering: extrahera bitar av en enda flyter på x86-64 har optimerats. (# 555.201)
- optimering: MAP och MAP-INTO är effektivare för icke-enkla vektorer, när (& gt; SPEED SPACE) .
- optimering:. Lokalsamtal trampoliner (x86 och x86-64) avges inline
- optimering:. Implicita värde celler för dynamisk-utsträckning slutna över bindningar på x86 och x86-64 kan hålla Unboxed värden samt
- meta-optimering: förbättrad sammanställning hastighet, särskilt för stora funktioner. (# 792.363 och # 394.206)
- buggfix: bundna härledning för flyttalsoperationer är nu mer försiktiga avrundning eventuellt stänga öppna gränser. (# 793.771)
- buggfix: SB-POSIX: syscall-ERROR argument är nu frivilligt. (Oavsiktlig bakåt oförenligt förändring i 1.0.48.27)
- buggfix:. Enstaka debugger fel i när en typ-fel uppstod i en funktion med dynamisk-omfattning och vila lista li>
- buggfix:. & Tillval och & nyckel levereras-p argument i DEFSTRUCT boa-construtors kan användas för att initieras struktur slots
- buggfix: FMAKUNBOUND bort MAKRO FUNKTION, bör man existerar. (# 795.705, regression)
- buggfix: KATALOG fungerar bättre på logiska sökvägar .
- buggfix: RUN-PROGRAM misslyckas inte längre falskt när argument strängar är i storleksordningen ARRAY-TOTAL-SIZE-GRÄNS. (# 787.237)
- buggfix: kompilatorn inte längre konstant veck Nans i Make {enkel, dubbel} -FLOAT. (# 486.812)
- buggfix: FORMAT hanterar nu flyttal avrundning korrekt, t.ex.. (Format noll & quot; ~, 1F & quot; 0,01) = & gt; & Quot; 0.0 & quot; istället för & quot; 0,01 & quot; såsom tidigare. (# 308.961)
- buggfix:. Stil varning under lambda-lista introspektion av generiska funktioner med både frivilliga och nyckel argments
- buggfix: regalloc inte barf på oanvända tematiska nätverk på grund av typ-directed konstant vikning. (# 729.765)
- buggfix:. Fast en off-by-one i MAP-TILLDELATS-föremål som kan ha orsakat oändliga loopar
Vad är nytt i version 1.0.49:
- Massor av förbättringar och korrigeringar gjordes
- En mindre oförenlig ändringen gjordes avseende avbrottshantering i hashtabell kod.
Vad är nytt i version 1.0.46:
- förbättring:. Largefile support på Solaris
- förbättring: SB-PROFIL: RAPPORT stöder nu: LIMIT och: PRINT-NO-CALL-LIST argument (# 710.017)
- förbättring: SB-PCL: + SLOT-OBUNDEN + exporteras, vilket gör det möjligt att skilja obundna instans slots när STANDARD-instance-ACCESS & co. (# 718.039)
- optimering: FEL och CERROR är ungefär fem gånger snabbare .
- optimering: optimerade konstruktörer används för MAKE-instans av klasser med tillämpliga icke-standard (SETF SLOT-VÄRDE-ANVÄNDNING-CLASS), SLOT-BOUNDP-ANVÄNDNING-CLASS och INITIALIZE-instance: RUNT metoder, påskynda instans skapande i dessa fall.
- optimering: aritmetiska operationer med flera ständiga argument i nu har dem minskat vid kompilering. (# 676.414)
- optimering:. Bestämma aktuell teckenposition på string-strömmar för pretty-utskrifter var alltför långsam
- buggfix: lokal svansen samtal till DYNAMIC-MÅN-funktioner kan inte längre orsaka livstidsanalys för att skriva över slutna över variabler (# 681.092) .
- buggfix:. Kodar fel från några multibyte externa format som EUC-JP var inte korrekt (# 713.063) hanteras
- buggfix:. Utskrift waitqueue objekt utan att * PRINT-CIRCLE * till T är nu säkert (# 673.630)
- buggfix: Solaris / x86-64 inte bli byggd med lutex stöd av misstag. (# 667.297).
- buggfix: STÄNDIGT genererade funktioner hade falska lambda-listor. (# 713.626)
- buggfix: RUN-PROGRAM: PTY alternativet var krati på OpenBSD. (# 669.485)
- buggfix: UNINTERN tar en symbol, inte en symbol beteckning - kunde tidigare unintern fel symbolen med samma namn. (# 693.796)
- buggfix: COPY-PPRINT-DISPATCH alltid har tillgång till en ren tabell, vilket gör det möjligt att återställa den ursprungliga tabellen om det har trasslat till. (# 678.409)
Vad är nytt i version 1.0.43:
- oförenliga förändring: FD-strömmar inte längre delta i serven-event event-slinga som standard. (# 316.072)
- Förutom strömmar skapats av explicita samtal till MAKE-FD-STREAM detta påverkar strömmar från CL:. OPEN
- Strömmar från SOCKET-MAKE-STREAM fortfarande delta i tjäna-event som standard, men detta kan komma att förändras: applikationer behöver tjäna-händelse för socket strömmar bör uttryckligen begär det med:. Tjäna-EVENTS T i samtalet
- förbättring: SB-EXT: WORD typen tillhandahålls för användning med SB-EXT:. ATOMIC-INCF & co
- enhancement: CLOS effektiva metoden fungerar och defclass slot typechecking funktion har nu debug namn för användning i bakåtspårningar skapas och profiler .
- förbättring: AsDF har uppdaterats till version 2.004. (# 605260, tack vare Fare Rideau)
- förbättring: symboler skrivas ut med fullständiga namn i flera fel och varningsmeddelanden som ofta förknippas med paketkonflikter eller mixups (# 622.789, tack vare Attila Lendvai)
- buggfix: SB-BSD-uttag: SOCKET-CONNECT var inte trådsäkert. (# 505.497, tack vare Andrew Golding)
- buggfix: läsning / proc filer på Linux fungerar. (# 425.199)
- buggfix: DOTIMES accepterade bokstav icke-heltal reals. (# 619.393, tack vare Roman Marynchak)
- buggfix: SKRIV-TO-STRING kompilator makro bindande speciella variabelnamn, bryta kod som försökte skriva värdet av en kontrollvariabel. (# 581.564, tack vare Stas Boukarev)
- buggfix: SKRIV kompilatorn makro inte hantera utdata ström beteckningar korrekt. (# 598.374, tack vare Stas Boukarev)
- buggfix: bättre tillgång till namnen på utländska funktioner i bakåtspårningar skapas på Linux. (# 626.962, tack vare Stas Boukarev)
- buggfix: scripting och bygga för Solaris och FreeBSD. (# 615.497, # 627.581, tack vare Josh Elsasser och Jim Wise)
- buggfix: bygga korrigeringar för OpenBSD -LÖPANDE och 4.8 (# 615.489, # 615.492, tack vare Josh Elsasser)
- buggfix: använder alias för inbyggt klasser som defmethod specializers utan att lägga DEFTYPEs för dem fungerar. (# 618.387)
- buggfix: timetravel genom getrusage () inte längre orsakar typ-fel under GC. (# 544.421)
- buggfix: rättsligt dynamisk-utsträckning listor och vektorer som används som initiering argument för att göra-ARRAY kan stack fördelas. (# 586.105)
- buggfix: inline-expansionen skapar referenser till döda lambda-variabler (# 454.681, tack vare Alexey Dejneka)
- buggfix: bättre felmeddelande för falska numeriska argument till RANDOM. (# 598.986, tack vare Stas Boukarev)
- bugg fix: kompilatorn ibland infogade referenser från oförenliga miljöer uppstår. (# 308.951)
- buggfix: kompilatorn kastade ett fel när man försöker sammanställa en lokal funktion (etiketter eller flet) kända för att ta en specialiserad komplex argument. (Inte i launchpad, rapporteras av sykopomp i #lispgames)
- buggfix: paket-lås misslyckats med att skydda mot kompilering tidseffekter Defun när symbolen tidigare haft en makrodefinition. (# 576.637)
- buggfix: falska ignorerar varningar ens givna (FÖRKLARA IGNORERA) i metoder när parameter bindningar muterade. (Rapporteras av Fare Rideau, lp # 611.361)
- buggfix: lösning för kompilatorn hänga i Order-UVL-uppsättningar (# 308.914)
- buggfix: utvärdering debugger ERSÄTTER arbetar med den globala sammanhanget då i ramar som inte har tillräcklig debug information .
- buggfix: överstiger FD_SETSIZE gräns nu resulterar i en förnuftig fel (# 316.068)
- buggfix: (SETF DOKUMENTATION) i ett makro fungerar. (# 643.958, tack vare Stas Boukarev)
- buggfix: avbryta tar längre tid än den efterfrågade perioden orsakade SLEEP att hänga på Darwin. (# 640.516, tack till Joe Lebroco för analys)
Vad är nytt i version 1.0.42:
- bygga förändringar
- Kors sammanställning värd anges nu att make.sh att använda kommandoraden argument --xc-värd = & # x3c; kommandot & # x3e; i stället för en positions argument. (Tack till Daniel Sill)
- Installera plats kan anges att make.sh att använda kommandoraden argument --prefix = & # x3c; bana & # x3e ;. (# 550889s, tack vare Daniel Sill)
- optimering: Standard genomföra COMPUTE diskriminerande-funktionen fungerar mycket mindre bortkastad arbete .
- förbättring: Explicit minne barriärverksamhet är nu tillgängliga för användning av flertrådade kod. Se dokumentationen för detaljer.
- förbättring:. Experimentellt stöd för gäng på Linux / PPC
- buggfix: Byt namn-PAKET returnerar paketet. (Tack till Eric Marsden)
- buggfix: EXPT signalerar ett fel om första argumentet är en nolla och andra argumentet är ett flyttal noll. (# 571.581, tack vare Roman Marynchak)
- buggfix: DEFTYPE signalerar ett fel för icke-list lambda-listor. (# 576.594, tack vare Roman Marynchak)
- buggfix: gör ASDF-INSTALL kompatibel med den numera ingår ASDF2. (# 612.998, rapporterat av Phil Hargett, patch från Jim Wise)
Kommentarer hittades inte