Prolog er en generell logikk programmeringsspråk som ble sluppet tilbake i 1972, med svært få oppdateringer siden.
Logtalk ble opprettet for å legge til mer moderne funksjoner til Prolog, hovedsakelig ytelsesforbedringer, lambda uttrykk, grammatiske regler, bedre kompilator feil og advarsel rapporteringen.
På toppen av disse, legge til et enklere installasjonsprosessen og Prolog kompilatoren kompatibilitetsoppdateringer.
Dette gjør Logtalk en bedre, mer egnet alternativ til Prolog i dagens moderne AI og datalingvistikk scenarier, en mye mer kraftig multi-paradigmet språk, egnet for hendelsesdrevet og høyt nivå multi-threading programmering.
Foreløpig Logtalk syntaks utvider standard Prolog syntaks og du kan kjøre Logtalk på følgende Prolog kompilatorer:
B-Prolog
CxProlog
Eclipse
GNU Prolog
Lean Prolog
Qu-Prolog
SICStus Prolog
SWI Prolog
XSB
YAP
Hva er nytt i denne versjonen:
- FORBEDRET:
- Endringer i begrepet kodene som brukes når du skriver kompilert kode for å minimere størrelsen på genererte mellom Prolog filer som bruker disse kodene til å bestemme når man skal pynte samlet enighet med kilden lokasjonsdata (for tiden, tar bare SWI-Prolog nytte av posisjonsdata).
- Fikset:
- En fil kan ha mer enn én forelder fil.
Hva er nytt i versjon 3.02.2:
- FORBEDRET:
- Endringer i begrepet kodene som brukes når du skriver kompilert kode for å minimere størrelsen på genererte mellom Prolog filer som bruker disse kodene til å bestemme når man skal pynte samlet enighet med kilden lokasjonsdata (for tiden, tar bare SWI-Prolog nytte av posisjonsdata).
- Fikset:
- En fil kan ha mer enn én forelder fil.
Hva er nytt i versjon 3.02.1:
- FORBEDRET:
- Endringer i begrepet kodene som brukes når du skriver kompilert kode for å minimere størrelsen på genererte mellom Prolog filer som bruker disse kodene til å bestemme når man skal pynte samlet enighet med kilden lokasjonsdata (for tiden, tar bare SWI-Prolog nytte av posisjonsdata).
- Fikset:
- En fil kan ha mer enn én forelder fil.
Hva er nytt i versjon 3.00.4:
- FORBEDRET:
- Endringer i begrepet kodene som brukes når du skriver kompilert kode for å minimere størrelsen på genererte mellom Prolog filer som bruker disse kodene til å bestemme når man skal pynte samlet enighet med kilden lokasjonsdata (for tiden, tar bare SWI-Prolog nytte av posisjonsdata).
- Fikset:
- En fil kan ha mer enn én forelder fil.
Hva er nytt i versjon 3.00.2:
- FORBEDRET:
- Endringer i begrepet kodene som brukes når du skriver kompilert kode for å minimere størrelsen på genererte mellom Prolog filer som bruker disse kodene til å bestemme når man skal pynte samlet enighet med kilden lokasjonsdata (for tiden, tar bare SWI-Prolog nytte av posisjonsdata).
- Fikset:
- En fil kan ha mer enn én forelder fil.
Hva er nytt i versjon 3.00.1:
- FORBEDRET:
- Endringer i begrepet kodene som brukes når du skriver kompilert kode for å minimere størrelsen på genererte mellom Prolog filer som bruker disse kodene til å bestemme når man skal pynte samlet enighet med kilden lokasjonsdata (for tiden, tar bare SWI-Prolog nytte av posisjonsdata).
- Fikset:
- En fil kan ha mer enn én forelder fil.
Hva er nytt i versjon 2.44.1:
- Rettet en feil i sammenstillingen av meta_non_terminal / 1 direktiv der bare den første meta-argument ville være riktig behandlet.
- Oppdatert Eclipse konfigurasjonsfilen til å oppdage når du kjører Windows 64 bits systemer og å ignorere ikke-predikat og ikke-operatør eksporten når pre-prosessering lib / 1 direktiver .
- Oppdatert enheten test rammeverk for å skrive ut mer informative meldinger for mislykkede enhet tester.
- Lagt predikat delt / 4 (for å splitte en liste til underlister med en gitt lengde) til & quot; listp & quot ;, & quot; liste & quot ;, og & quot; difflist & quot; bibliotek enheter.
- Oppdatert den & quot; cc & quot; eksempel med en definisjon for shell / 2 predikat for CxProlog.
- Endret navn på objektene i & quot; mi & quot; eksempel for å unngå en navnekonflikt når du kjører eksempel enheten testene.
- Rettet en feil i Windows Installer som hindret påvisning av YAP 64 bits versjoner. Takk til Stepan Ipatov som feilrapport.
Hva er nytt i versjon 2.44.0:
- Denne utgivelsen endrer semantikk utfyller kategorier, slik at bruken til lappe eksisterende objektkode, fikser to bugs i behandlingen av metasamtaler, kan åpne lister over terminaler i kroppen av DCG regler, legger til to nye eksempler, og bedre støtte for Vim teksteditor og for Overstrømmende ctags.
Hva er nytt i versjon 2.43.3:
- Rettet en feil i Logtalk kompilatoren runtime handler der den ikke klarte å dekompilere interne foretakets identifikatorer når du kaster enhet eksistens unntak.
- Oppdatert Lean Prolog config fil, og legger til indeks / 1 direktiver for noen av de dynamiske predikater som brukes av de interne Logtalk runtime tabeller.
- Oppdaterte SWI-Prolog integrasjons filer å teste for tilgjengeligheten av indeksen / 1-direktiv, som er frarådet av den nye eksperimentelle SWI-Prolog støtte for just-in-time multi-argument indeksering.
- Lagd predikater subsequence / 4 (for å generere sekvenser av en liste med en gitt lengde), erstatte / 4 (for å erstatte elementer i en liste), og hamming_distance / 3 til biblioteket & quot; listp & quot; og & quot; liste & quot; enheter.
- Lagt euclidean_norm / 2, chebyshev_norm / 2, manhattan_norm / 2, euclidean_distance / 3, chebyshev_distance / 3, manhattan_distance / 3, og scalar_product / 3 predikater til biblioteket & quot; numberlistp & quot; og & quot; numberlist & quot; enheter.
- Korrigert noen dumme feil i definisjonen av & quot; tegnet & quot; bibliotekobjekt predikater is_bin_digit / 1, is_octal_digit / 1, is_dec_digit / 1, og is_hex_digit / 1 .
- Oppdatert biblioteket & quot; all_loader.lgt & quot; loader filen til også laste & quot; meta_compiler_loader.lgt & quot; loader filen.
Hva er nytt i versjon 2.43.2:
- Optimalisert behandling av operatør erklæringer når kompilering kildefiler og dynamisk skape nye virksomheter.
- Oppdatert den Logtalk kompilatoren å bruke & quot; moduler & quot; kompilator flagg ved testing for Prolog modulen støtte, og dermed unngå kompilering problemer med back-end Prolog kompilatorer som ikke støtter et modulsystem, men likevel define (:). / 2 som en innebygd kontroll konstruere eller predikat
- Fjernet støtte for & quot; startup_message & quot; kompilatoren flagg & quot; flagg (kompakt) & quot; og & quot; flagg (ordrik) & quot; verdier, erstattet av en enkelt verdi, & quot; flagg & quot ;, som tilsvarer den gamle & quot; flagg (kompakt) & quot; verdi.
- Korrigert en feil når du bruker op / 3 direktiver med create_protocol / 3, create_object / 4, og create_category / 4 innebygde predikater hvor de lokale operatør erklæringer ville være synlig utenfor de nye enhetene.
- Rettet en feil der å skape en ny dynamisk enhet under kjøring ville definere en ikke lenger brukes bokføring dynamisk predikat som ikke ville bli avskaffet når enheten blir avskaffet.
- Korrigert en kompilator feil der en & quot; super & quot; kalle innenfra et objekt som bare instantiates seg selv og ikke spesialisere ethvert objekt ville kaste et unntak i stedet for å mislykkes.
- Oppdatert den & quot; benchmarks & quot; eksempel, for å beskytte mot aritmetiske unntak ved beregning det totale antall samtaler per sekund for hver test. Redusert antall ytelsestest repetisjoner når du kjører enheten testene for å unngå langvarige databehandling ganger med treg back-end Prolog kompilatorer.
Hva er nytt i versjon 2.43.1:
- Endret kompilatoren for å ta hensyn til bruk / 2-direktiv når kompilering samtaler til databasen innebygde metoder. Denne endringen utvider semantikken i bruk / 2-direktiv og tillater enklere migrering fra vanlig Prolog søknader til Logtalk.
- Lagt eksperimentell støtte for å bruke et predikat mal som argument til coinductive / 1-direktiv. Denne malen gjør at spesifisering av hvilke argumenter er meningsfulle for coinductive suksess. Basert på lignende funksjonalitet funnet på på Feliks Kluzniak sin DRA meta-tolk.
- Forbedret støtte for debugging coinductive predikater ved bruk av Logtalk innebygd debugger.
- Fjernet coinduction støtte for CxProlog. Den nåværende versjonen av denne kompilatoren mangler en myk snitt innebygd predikatet eller kontroll konstruksjon, som nå kreves av den eksperimentelle coinduction gjennomføring.
- Løftet en langvarig begrensning som hindret brukeren definisjonen av wrapper predikater for bagof / 3 og setof / 3 innebygde metoder når målet argumentet kan bruke ^ / 2 eksistensiell quantifier.
- Lagt til støtte for & quot; ^ & quot; meta-predikat meta-argument modus Specifier foreslått av Jan Wielemaker og funnet på SWI-Prolog 5.11.25. Denne modusen Specifier er nyttig når du definerer wrappers for bagof / 3 og setof / 3 innebygde metoder når målet argumentet kan bruke ^ / 2 eksistensiell quantifier.
- Lagd & quot; prolog_compiler & quot; og & quot; prolog_loader & quot; kompilatoren flagg, som tillater pasningsalternativer til back-end Prolog kompilatoren innebygde predikater som kompilere til disk og laste en (samlet) Prolog flagg. Standardverdien for begge flagg er tom liste.
- Korrigert en feil når kompilering samtaler til Prolog proprietær innebygd meta-predikater der Logtalk kompilatoren kan forsøke å behandle ikke meta-argumenter som mål. Denne feilen bare manifestert seg med noen back-end Prolog kompilatorer som Eclipse.
- Rettet en feil i behandlingen av betinget kompilering direktiver.
- Rettet en feil som hindret passerer alias / 3 direktiver på samtaler til create_object / 4, create_category / 4, og create_protocol / 3 innebygde predikater.
- Fjernet fra den innebygde objekt & quot; logtalk & quot; de decompile_predicate_head / 4 og decompile_predicate_indicator / 4 nedgraderte metoder.
- fjernet støtte for lenge frarådet Logtalk metapredicate / 1 direktiv.
- Korrigert en ytelse bug når caching samtaler til kategori predikater hvor de lagrede oppføringer kan være mer spesifikk enn nødvendig når du arbeider med para kategorier.
- Forbedret caching av & quot; super & quot; kaller innenfra prototyper. Tidligere ville alle bufrede oppføringer være spesialisert på verdien av & quot; selv & quot; for å riktig håndtere de spesielle tilfeller hvor et objekt både instantiates og spesialiserer seg andre gjenstander.
- Oppdatert den Logtalk kompilatoren for å aktivere eventuelle operatør erklæringer som finnes på underliggende omfang direktiver ved oppstillingen av enhetene som inneholder direktivene.
- Forbedret ytelsen coinductive predikater ved bruk av back-end Prolog kompilatorer som SICStus Prolog som ikke gir den myke snitt kontroll konstruere, men gir den myke snitt innebygd meta-predikat (hvis / 3).
- Rettet en feil der en falsk rapport om kompilering / laste advarsler kan skrives ut når en kilde fil ble kompilert / lastet med kompilatoren flagg & quot; rapporten & quot; slått av.
- Lagt til en & quot; streamvars & quot; bibliotekobjekt, avledet fra det eksisterende & quot; assignvars & quot; bibliotek kategori, med støtte for å legge til og hente vilkår (som kan være variabler) fra en & quot; stream & quot; variabel.
- Oppdatert den & quot; coinduction & quot; eksempel, drar nytte av den forbedrede coinductive / 1 direktiv og utvide antall individuelle eksempler som kan kjøres ved hjelp SICStus Prolog. Lagt til en modell sjekke eksempel bruker coinduction, coroutining og begrensninger.
- Oppdatert den & quot; metapredicates & quot; eksempel med eksempelkode som illustrerer hvordan man definerer wrappers for bagof / 3 og setof / 3 innebygde metoder når meta-argumentet kan inneholde eksistensielt kvalifiserte variabler.
- Oppdatert den & quot; cc & quot; eksempel korrigere underliggende definisjoner for flere back-end Prolog kompilatorer og legge noen grunnleggende enhet tester.
- Oppdatert den & quot; kodinger & quot; eksempel med begrenset støtte for Lean Prolog.
- Lagt manglende oppføringer for meta_non_terminal / 1-direktiv og for samtalen // N non-terminal til & quot; Hjelp & quot; eksempel.
- Lagt til en parser for PDDL 3,0 filer, bidratt med Robert sasak.
- Lagt kode folding støtte til SubEthaEdit tekst editor. Lagt kode folding støtte for betinget kompilering blokker til Kate, Vim, og Textmate tekstredigeringsprogrammer.
- Oppdatert integrerings skript for å laste inn biblioteket stier filen før du legger i Logtalk kompilatoren / runtime. Denne endringen har som mål å forenkle lasting av bibliotek og eksempelfiler fra innstillingsfiler. I tillegg også se etter Logtalk installasjonsmappen i $ HOME / aksje når LOGTALKHOME miljøvariabelen ikke er definert.
- Oppdatert Windows-installereren for å støtte Lean Prolog og oppdage YAP 64 bits versjoner.
Hva er nytt i versjon 2.43.0.
- Lagt eksperimentell støtte for Lean Prolog
- Fjernet Logtalk kompilatoren begrensning som tvang discontiguous / 1 og dynamiske / 1 direktiver å gå foran samtaler til de erklærte predikater.
- Forbedret Logtalk kompilatoren rapporten fra misspelt samtaler til ikke-terminaler i grammatiske regler.
- Tillat bruk av:. / En kontroll konstruere på kroppen av grammatiske regler
- Når debugging meldinger angitt i bruker / 2 direktiver, meldingen er nå trykt implisitt kvalifisert som i kildekoden er skrevet av brukeren.
- Endret interne predikater som brukes i gjennomføringen av den innebygde multi-threading predikater for å lette integreringen med høyt nivå debugging verktøy som krever dekompilering av den genererte Prolog koden.
- Rettet en feil i biblioteket støtte for enhet tester, & quot;. Lgtunit & quot ;, der testing for unntakene ville akseptere noe unntak sikt som samsvarer med enhetstestspesifikasjoner
- Oppdatert den & quot; cc & quot; eksempel med feilrettinger og forbedringer for Eclipse bidratt med Joachim Schimpf, med en bug fiks for SWI-Prolog gjennomføring av expand_path / 2 predikat (som følge av de siste endringene i SWI-Prolog absolute_file_name / 3 innebygd predikat), og med en definisjon for command_line_arguments / 1 predikat for B-Prolog.
- Oppdatert den & quot; coinduction & quot; eksempel legge noen flere enkelteksempler.
- Oppdatert den & quot; xml_parser & quot; bidrag for å omgå portabilitet problemer med GNU Prolog.
- Rett opp en feil i noen skall-skript der & quot; # / bin / bash & quot; ble brukt i stedet for & quot; #! / bin / bash & quot ;. Takk til Yiorgos Adamopoulos som feilrapport.
- Oppdatert den Inno Setup GUI Windows installasjonsskript for å tillate full installasjon av ikke-admin brukere.
- Lagt syntaks coloring støtte for ISO Prolog direktiv inkludere / 1 til alle støttede tekst redaktører og syntaks highlighters .
- Korrigert noen feil i kategorien utløser for Gedit Logtalk snutter som hindret deres bruk.
- Endret tilbake til å bruke XEP istedenfor FOP ved generering av PDF-versjoner av brukeren og referansehåndbøkene som FOP avkorter innholdet i noen av sidene.
Hva er nytt i versjon 2.42.4:
- Lagt til et entity_prefix / 2 predikat og to sett med verktøyet predikater, decompile_predicate_heads / 2-4 og decompile_predicate_indicators / 2-4, i & quot; logtalk & quot; innebygd objekt. Merket. decompile_predicate_head / 4 og decompile_predicate_indicator / 4 som frarådes
- Lagt til støtte for å bevare omfanget informasjon for operatører erklært hjelp omfang direktiver under kompilering. Lagt til informasjon om foretaket erklært operatører til XML dokumentere filer. Oppdatert tekst, PDF, og (X) HTML konvertering skript for å skrive ut operatøren.
- Applied flere lavnivå optimaliseringer til Logtalk kompilatoren / runtime.
- Flyttet de interne predikater som konstruerer og få tilgang til predikatet henrettelsen sammenheng fra kompilatoren til Prolog config filer for å støtte fin ytelse tuning som er Prolog kompilatoren avhengig.
- Oppdatert gjennomføringen av den gjengede / en multi-threading innebygd predikat for å bruke en liten ytelsesoptimalisering basert på term_variables / 2 innebygde underliggende slått av Timon Van Overveldt. Dette optimalisering mål å redusere unødvendige kopier og samlingen av vilkår. I tillegg erstatte bruk av setup_call_cleanup / 3 innebygde predikat med fangsten / 3 innebygde predikatet ved å forenkle håndteringen av både master og slave tråder, som også forbedrer ytelsen.
- Rettet en feil i gjennomføringen av den gjengede / en multi-threading innebygd predikatet der svikt av brukeren for å angi uavhengige mål når du prøver å bruke uavhengig og-parallellitet ville resultere i zombie tråder.
- Mer informasjon unntaksvilkår når du forsøker å erklære en synkronisert predikat som dynamisk eller en dynamisk predikat som synkroniseres.
- Oppdatert den XSB konfigurasjonsfilen for å støtte utarbeidelsen av moduler som objekter. Lagt til en definisjon for den manglende setup_call_catcher_cleanup / 4 innebygde predikat. XSB 3.3 (eller en nyere versjon) er nå nødvendig for kompatibilitet med Logtalk.
- Oppdatert den SWI-Prolog config fil for å gi begrenset støtte for arithmetic_function / en proprietær direktivet (aritmetiske funksjoner kompilere som global stedet for som lokale til objekter eller kategorier som definerer dem).
- Oppdatert den YAP konfigurasjonsfilen for å ignorere style_check / 1 direktiv og å tolke yap_flag / 2-direktiv som set_prolog_flag / 2-direktiv.
- Endret standard XSL-FO-prosessor (som brukes til å generere PDF-versjoner av brukeren og referansebøker) fra XEP til FOP.
- Oppdatert den & quot; xml_parser & quot; bidrag for å omgå portabilitet problemer med Qu-Prolog, SICStus Prolog, og XSB.
- Oppdatert den & quot; kodinger & quot; eksempel, for å sikre at det ikke er noen tomrom før koding / 1 direktiv.
- Oppdatert den & quot; attvars & quot; eksempel for å støtte B-Prolog og XSB. Også lagt til støtte for bruk av variabler tilskrives innen Logtalk para gjenstander og para kategorier. Takk til Jan Wielemaker, vator Santos Costa, og Bart Demoen for tilbakemeldinger og implementerings forslag.
- Oppdatert den & quot; profilerings & quot; eksempel med foreløpig støtte for endringene i utførelsen profilering i SICStus Prolog 4,2 versjon.
- Oppdatert den & quot; utvidelse & quot; eksempel med flere eksempelkode på hvordan du kan kombinere term- og mål-utvidelses definisjoner fra ulike kroker stedene.
- Oppdatert den & quot; coinduction & quot; eksempel legge en eksperimentell keysort / 2 coinductive predikat. Takk til Jan Burse for forslaget.
- Oppdatert den & quot; Tak & quot; multi-threading eksempel der en manglende kutt vil føre til raskt utmattende lokal bunken når du bruker SWI-Prolog på grunn av etableringen av et svært stort antall unødvendige valg poeng.
- Oppdatert den & quot; mtbatch & quot; multi-threading eksempel for å gi utvidet benchmarking av & quot; Tak & quot; eksempel.
- Oppdatert den MacPorts portfile og scriptet som oppdaterer den for å fjerne beregning av MD5 sjekksum, som fases ut av MacPorts.
- Oppdatert den Inno Setup GUI Windows installasjonsskript for å omgå en feil på SWI-Prolog Windows installatører hvor avinstalleringen ikke klarer å slette SWI-Prolog nøkler fra Windows-registret.
Hva er nytt i versjon 2.42.3:
- Tillat dynamiske predikater deklarert i en kategori for å bli kalt i & quot; dette & quot; fra innenfor kategorien. I tidligere versjoner, vil slike samtaler resultere i en samle-tid feil, tvinger disse predikater å bli kalt inn & quot; selv & quot; (Ved hjelp av :: / en sending av melding kontroll konstruere).
- Lagd Logtalk kompilatoren støtte for pre-kompilert klausul hoder (med {} / en kontroll konstruksjon). Denne funksjonen er mest nyttig når du bruker begrepet-ekspansjonsmekanisme.
- Rettet en feil på koden som forenkler predikatet klausuler som genereres ved utarbeidelsen av grammatiske regler. Koden ville loop når en grammatikk regel inneholdt en meta-variabel, som Logtalk kompilatoren bør (men foreløpig ikke) rapport som ulovlig (call / en kontroll konstruksjonen bør brukes i stedet på denne saken).
- Forenklet utarbeidelsen av samtaler i sammenheng med den pseudo-objekt & quot; bruker & quot;.
- Lagt til en debugger kommandoen & quot; p & quot; til Logtalk innebygd debugger. Denne kommandoen skriver dagens mål med print / 1 predikat når det er tilgjengelig. Omdøpt debugger kommandoen & quot; q & quot; til & quot; Q & quot ;. Korrigert en feil der debugger kommandoen & quot; w & quot; ville ikke bli gjenkjent. Endret debugger kommandoen & quot; d & quot; for å sitere det gjelder når det er nødvendig.
- Lagt til en delvis gjennomføring av ISO Prolog predicate_property / 2 predikat til Eclipse config fil.
- Oppdatert den SWI-Prolog config fil for å fjerne den feilaktige erklæring av bibliotek meta-predikater dde_register_service / 2, gang / 1, og når / 2 som innebygd meta-predikater.
- Anvendt en bug fix til & quot; flagg & quot; bidrag gjort tilgjengelig av dets forfatter Theofrastos Mantadelis. Omgå et kompatibilitetsproblem med GNU Prolog.
- Lagt til en memberchk / 2 predikat til biblioteket & quot; setp & quot; protokoll og & quot; sette & quot; gjenstand. Lagt inn predikater is_control / 1, is_newline / 1, og is_end_of_line / 1 til biblioteket & quot; characterp & quot; og & quot; tegnet & quot; enheter.
- Lagt et eksperimentelt eksempel på bruk tilskrives variabler innenfor Logtalk objekter og kategorier. Foreløpig krever bruk av YAP eller SWI-Prolog som back-end Prolog kompilatoren.
- Lagt til støtte for indexicals til & quot; begrensninger / sicstus & quot; eksempel.
- Utvidet & quot; delegater & quot; eksempel med en prøve implementering av en delegator ved hjelp av en parametrisk objekt.
- Utvidet & quot; dynpred & quot; eksempel for å illustrere hvordan man skal definere kategori predikater som håndterer dynamiske predikater i sammenheng med & quot; dette & quot; og i sammenheng med & quot; selv & quot;.
- Lagt til en wall_time / 1 predikat til & quot; cc & quot; eksempel.
- Oppdatert den syntax highlighting testfiler, legge mangler sanne / 0 og mislykkes / 0 kontroll konstruksjoner.
Hva er nytt i versjon 2.42.2:
- Oppdatert den Logtalk kompilatoren for å tillate å se etter modulen underliggende eiendommer uten å kreve å importere predikater i & quot; bruker & quot; (Merk imidlertid at modulen må fortsatt være lastet før sammenstilling av kildefilene ringer modul predikater).
- Oppdatert den Logtalk kompilatoren for å sjekke kompilere-time startes nedleggelse argumenter på samtale / 2-N mål for vanlige programmeringsfeil.
- Oppdatert den Logtalk kompilatoren for å generere advarsler for lambda uttrykk med variabler som ikke er deklarert som frie variabler eller lambda parametere eller med variabler som er erklært som både gratis variabler og lambda parametere. Takk til Jan Burse for å foreslå disse feilsjekkene.
- Oppdatert den Logtalk runtime for å støtte bruk av & # X3c; & # X3c; / 2 kontroll konstruere i lukke meta-argumenter av meta-predikater .
- Lagt til støtte for kompilering Gratis / Goal lambda uttrykk samtaler (ved automatisk generering av et hjelpe predikat når det er mulig).
- Lagt til en compile_aux_clauses / en offentlig metode, basert på et predikat med samme navn i SWI-Prolog, til den innebygde objekt & quot; logtalk & quot ;. Denne metoden kalles vanligvis fra goal_expansion / 2 kroker for å kompilere hjelpe klausuler som genereres for å støtte en utvidet mål.
- Lagt meta-predikatet ignorere / 1, iverksatt av noen Prolog kompilatorer som en innebygd predikat, som Logtalk innebygd metode.
- Oppdatert den SWI-Prolog config fil for å hindre automatisk lasting av modul-biblioteker ved spørring underliggende eiendommer fra Logtalk.
- Oppdatert den Qu-Prolog, SICStus Prolog, og XSB config filer for å gjøre tilgjengelig predikatet term_variables / 2 som en ISO innebygd predikat.
- Oppdaterte Qu-Prolog integrasjon skript for å doble størrelsen på minne verdi for å samle den Logtalk kompilatoren / runtime, løse en oppstart krasj.
- Restaurert MacOS X kommando-fil for GNU Prolog (flyttet opp fra & quot; scripts / macosx / command_files / støttes & quot; mappe).
- Lagd predikater findall_member / 4-5 til biblioteket objektet & quot; meta & quot; (Basert på Richard O'Keefe utkast Prolog bibliotek forslag). Fjernet erklæring og definisjon av predikater callable / 1 og ignorere / 1 fra biblioteket enheter & quot; metap & quot; og & quot; meta & quot; (Oppsigelige / 1 er et innebygd predikat i alle støttede Prolog kompilatorer, ignorere / 1 er nå en Logtalk innebygd metode) .
- Lagt til en bibliotekobjekt, & quot; meta_compiler & quot ;, som kan brukes som en krok objekt å utvide samtaler til meta-predikater definert i bibliotekobjekt & quot; meta & quot; for å unngå de meta-samtale kostnader. På de tilfeller hvor meta-predikatet samtalen ikke kan optimaliseres, standarddefinisjonen på & quot; meta & quot; objektet brukes. Ved hjelp av kontroll konstruksjoner som meta-argumenter er ikke (ennå) støttes. Varer i arbeid.
- Lagt til en protokoll, & quot; loggingp & quot ;, og kategori og objekt implementeringer, & quot; logging & quot; og & quot;. logger & quot ;, erklære og definere grunnleggende funksjonalitet for å registrere hendelser til filer til biblioteket
- Lagt til en protokoll, & quot; intervalp & quot ;, og et objekt, & quot; intervall & quot ;, erklære og definerer grunnleggende timeintervall relasjoner til biblioteket (basert på James F. Allen Intervall Algebra arbeid) .
- Lagt til en kategori implementere navngitte heltall tellere, & quot;. Tellere & quot ;, til biblioteket
- Lagd predikater proper_prefix / 2 og proper_suffix / 2 til biblioteket enheter & quot; listp & quot ;, & quot; liste & quot ;, og & quot; difflist & quot;.
- Lagt predikat transponere / 2 til biblioteket objektet & quot; parene & quot;.
- Lagt to pseudo-eksempler for testformål, & quot; lambdas_compiled & quot; og & quot; metapredicates_compiled & quot ;, som gjør bruk av den nye bibliotekobjekt
- & quot; meta_compiler & quot;.
- Oppdatert den & quot; utvidelse & quot; eksempel for å illustrere hvordan man skal definere og kombinere krok stedene.
- Lagt til støtte for bruk av SyntaxHighlighter pakken (versjon 3.0.83 eller senere) av Alex Gorbatsjov med Logtalk kildekoden.
- Lagt savnede syntaks farging av annet / 0 betinget kompilering direktiv til GNU Source-høydepunkt merkepenn støtte .
- Lagt et notat på Logtalk tekstredigering støtte tilgjengelig på gratis MacOS X Kod tekst editor.
- Lagt syntaks coloring støtte for den nye ignorere / en innebygd metode for alle støttede tekst redaktører og syntaks highlighters.
Hva er nytt i versjon 2.42.1:
- Lagt støtte til Logtalk kompilatoren for å oppdage og rapportere mangler dynamiske / 1 og discontiguous / en underliggende direktiver.
- Lagt til en ny lo flagg, & quot; missing_directives & quot ;, med en standardverdi på & quot; advarsel & quot ;, til alle config filer. Dette flagget muliggjør utskrift av kompilatoren advarsler for manglende dynamiske / 1, discontiguous / 1, og multifile / en underliggende direktiver.
- Lagt til støtte for nye meta-predikat mal modus indikatorer: (/) for et predikat indikator, [/] for en liste over underliggende indikatorer, og [0] for en liste over mål.
- Rettet en feil i Logtalk kompilatoren når du sjekker meta-predikatleddet hoder for feil der & quot; :: & quot; meta-argument modusindikatoren fremdeles ble tolket som & quot; 0 & quot;.
- Rettet en feil i håndteringen av nedleggelser (i meta-samtaler) som brukes til å konstruere samtaler for å kontrollere konstruksjoner eller innebygde predikater som kan resultere i å kalle noen meta-argumenter i feil sammenheng. Takk til Ulrich Neumerkel for å illustrere eksempelet på mailinglisten SWI-Prolog.
- Oppdatert den Logtalk kompilatoren for å unngå utskrifts advarsler om manglende referanser til & quot; utvide & quot; og & quot; overvåking & quot; innebygde protokoller når kompilering moduler som objekter.
- Tilbakestilte endringene i versjon 2.39.2 som tillot pseudo-objekt & quot; bruker & quot; til praktisk talt inneholde definisjonen av alle Prolog innebygde predikater. Dette kan føre til ulike resultater avhengig av back-end Prolog kompilator, spesielt når du ringer meta predikater i sammenheng med & quot; bruker & quot;.
- Rettet en feil i SWI-Prolog & quot; swihooks.lgt & quot; fil som resulterte i en falsk feilmelding om ugyldig Logtalk flagg når konsultere en Prolog-fil når det er en Logtalk kilde fil med samme navn i samme mappe.
- Lagt manglende støtte for proprietære innebygd meta-predikater til B-Prolog, SICStus Prolog, SWI-Prolog, XSB, og YAP config filer.
- Oppdatert den SICStus Prolog, SWI-Prolog, og YAP config filer for å overstyre meta-predikat maler for kontakt / 1 og load_files / 2 innebygde predikater.
- Lagt en implementering av et map_reduce / 5 meta-predikat til biblioteket objektet & quot; meta & quot;.
- Lagt en implementering av en command_line_arguments / 1 predikat til & quot; cc & quot; eksempel.
- Oppdatert den & quot; lambdaene & quot; og & quot; metapredicates & quot; eksempler, som illustrerer hvordan man skal beregne Fibonacci tallene ved hjelp av en fold venstre meta-predikat. Oppdatert & quot; metapredicates & quot; eksempel med en bruk eksempel på map_reduce / 5 meta-predikat.
- Oppdatert den & quot; problog & quot; eksempel legge foreløpig støtte for den nye kommenterte motsetninger syntaks.
- Lagt til en & quot; magi & quot; element til Logtalk mime-type fil for freedesktop.org delt mime-info database.
Hva er nytt i versjon 2.42.0.
- Lagt en implementering av vedvarende objekt flagg
- Lagt til en nytt par innebygde predikater, conforms_to_protocol / 2-3, implementere transitive nedleggelse av protokollen gjennomføringen forhold.
- Lagt en eksperimentell direktiv, merknader / 1, for å støtte Logtalk integrasjon med andre språk som ProbLog og CHR.
Kommentarer ikke funnet