Prolog er et sprog generelle formål logik programmering, der blev udgivet tilbage i 1972, med meget få opdateringer siden.
Logtalk blev oprettet for at tilføje mere moderne funktioner til Prolog, primært forbedret ydeevne, lambda udtryk, grammatiske regler, forbedrede compiler fejl og advarsel rapportering.
På toppen af disse, tilføje en lettere installation proces og Prolog compiler kompatibilitet opdateringer.
Dette gør Logtalk en bedre, mere egnet alternativ til Prolog i moderne dag AI og computer lingvistik scenarier, en langt mere kraftfuld multi-paradigme sprog, der er egnet til event-driven og højt niveau multi-threading programmering.
I øjeblikket Logtalk syntaks udvider standard Prolog syntaks og du kan køre Logtalk på disse Prolog compilere:
B-Prolog
CxProlog
Eclipse
GNU Prolog
Lean Prolog
Qu-Prolog
SICSTUS Prolog
SWI Prolog
XSB
YAP
Hvad er nyt i denne udgivelse:
- BEDRE:
- Ændringer udtrykket tags bruges, når du skriver kompileret kode for at minimere størrelsen af de genererede mellemliggende Prolog filer, der bruger disse tags til at beslutte, hvornår de skal dekorere kompileret vilkår med kilde lokaliseringsdata (i øjeblikket, kun SWI-Prolog drager fordel af lokaliseringsdata).
- FAST:
- En fil kan have mere end én forælder fil.
Hvad er nyt i version 3.02.2:
- BEDRE:
- Ændringer udtrykket tags bruges, når du skriver kompileret kode for at minimere størrelsen af de genererede mellemliggende Prolog filer, der bruger disse tags til at beslutte, hvornår de skal dekorere kompileret vilkår med kilde lokaliseringsdata (i øjeblikket, kun SWI-Prolog drager fordel af lokaliseringsdata).
- FAST:
- En fil kan have mere end én forælder fil.
Hvad er nyt i version 3.02.1:
- BEDRE:
- Ændringer udtrykket tags bruges, når du skriver kompileret kode for at minimere størrelsen af de genererede mellemliggende Prolog filer, der bruger disse tags til at beslutte, hvornår de skal dekorere kompileret vilkår med kilde lokaliseringsdata (i øjeblikket, kun SWI-Prolog drager fordel af lokaliseringsdata).
- FAST:
- En fil kan have mere end én forælder fil.
Hvad er nyt i version 3.00.4:
- BEDRE:
- Ændringer udtrykket tags bruges, når du skriver kompileret kode for at minimere størrelsen af de genererede mellemliggende Prolog filer, der bruger disse tags til at beslutte, hvornår de skal dekorere kompileret vilkår med kilde lokaliseringsdata (i øjeblikket, kun SWI-Prolog drager fordel af lokaliseringsdata).
- FAST:
- En fil kan have mere end én forælder fil.
Hvad er nyt i version 3.00.2:
- BEDRE:
- Ændringer udtrykket tags bruges, når du skriver kompileret kode for at minimere størrelsen af de genererede mellemliggende Prolog filer, der bruger disse tags til at beslutte, hvornår de skal dekorere kompileret vilkår med kilde lokaliseringsdata (i øjeblikket, kun SWI-Prolog drager fordel af lokaliseringsdata).
- FAST:
- En fil kan have mere end én forælder fil.
Hvad er nyt i version 3.00.1:
- BEDRE:
- Ændringer udtrykket tags bruges, når du skriver kompileret kode for at minimere størrelsen af de genererede mellemliggende Prolog filer, der bruger disse tags til at beslutte, hvornår de skal dekorere kompileret vilkår med kilde lokaliseringsdata (i øjeblikket, kun SWI-Prolog drager fordel af lokaliseringsdata).
- FAST:
- En fil kan have mere end én forælder fil.
Hvad er nyt i version 2.44.1:
- Rettet en fejl i opgørelsen af meta_non_terminal / 1 direktivet hvor kun den første meta-argument ville være korrekt behandlet.
- Opdateret formørkelsen konfigurationsfil til at opdage, når du kører på Windows 64 bit-systemer og til at ignorere ikke-prædikatforbrydelser og ikke-operatør eksport når forbehandling lib / 1-direktiver.
- Opdateret den unit test rammer til at udskrive mere informative meddelelser for mislykkede unit test.
- Tilføjet prædikat split / 4 (for at opdele en liste i dellister med en given længde) til & quot; listp & quot ;, & quot; liste & quot ;, og & quot; difflist & quot; bibliotek enheder.
- Opdateret & quot; cc & quot; eksempel med en definition for skallen / 2 prædikat for CxProlog.
- Ændret navnene på objekter i & quot; mi & quot; eksempel for at undgå et navn konflikt, når du kører tests for eksempel unit.
- Rettet en fejl i Windows-installationsprogram, forhindrede påvisning af YAP 64 bit versioner. Tak til Stepan Ipatov for fejlrapport.
Hvad er nyt i version 2.44.0:
- Denne udgivelse ændrer semantik supplere kategorier, så dets anvendelse til at lappe eksisterende objekt kode, løser to bugs i behandlingen af meta-opkald, giver åbne lister af terminaler i selve DCG regler, tilføjer to nye eksempler, og forbedrer støtte til Vim teksteditor og for Sprudlende ctags.
Hvad er nyt i version 2.43.3:
- Rettet en fejl i Logtalk compiler runtime handleren hvor det mislykkedes at dekompilere interne enhed identifikatorer, når smide enhed eksistens undtagelser.
- Opdateret Lean Prolog konfigurationsfil, tilføjer indeks / 1 direktiver for nogle af de dynamiske prædikater anvendes af de interne Logtalk runtime tabeller.
- Opdateret den SWI-Prolog integration filer til at teste for tilgængeligheden af indekset / 1 direktiv, der er forældet af den nye eksperimentelle SWI-Prolog støtte til just-in-time multi-argument indeksering.
- Tilføjet prædikater delsekvens / 4 (for at generere undersekvenser af en liste med en given længde), erstatte / 4 (til udskiftning af elementer på en liste), og hamming_distance / 3 til biblioteket & quot; listp & quot; og & quot; liste & quot; enheder.
- Tilføjet euclidean_norm / 2, chebyshev_norm / 2, manhattan_norm / 2, euclidean_distance / 3, chebyshev_distance / 3, manhattan_distance / 3, og scalar_product / 3 prædikater til biblioteket & quot; numberlistp & quot; og & quot; numberlist & quot; enheder.
- Rettet nogle dumme fejl i definitionen af den & quot; tegn & quot; biblioteksobjekt prædikater is_bin_digit / 1, is_octal_digit / 1, is_dec_digit / 1, og is_hex_digit / 1.
- Opdateret biblioteket & quot; all_loader.lgt & quot; loader fil til også indlæse & quot; meta_compiler_loader.lgt & quot; loader fil.
Hvad er nyt i version 2.43.2:
- Optimeret behandling af operatør erklæringer ved udarbejdelsen kildefiler og dynamisk skabe nye enheder.
- Opdateret den Logtalk compiler til at bruge de & quot; moduler & quot; compiler flag ved test for Prolog modul støtte, og dermed undgå kompilering problemer med back-end Prolog compilere, der ikke understøtter et modulsystem, men stadig definere (:). / 2 som en indbygget kontrol konstruktion eller prædikat
- Fjernet støtte til & quot; startup_message & quot; compiler flag & quot; flag (compact) & quot; og & quot; flag (verbose) & quot; værdier, erstattet af en enkelt værdi, & quot; flag & quot ;, som svarer til den gamle & quot; flag (compact) & quot; værdi.
- Rettet en fejl, når du bruger op / 3 direktiver med create_protocol / 3, create_object / 4, og create_category / 4 indbyggede prædikater, hvor de lokale operatør erklæringer ville være synlige uden for de nye enheder.
- Rettet en fejl hvor at skabe en ny dynamisk enhed på runtime ville definere en ikke længere anvendes bogholderi dynamisk prædikat, som ikke ville blive afskaffet, når enheden er afskaffet.
- Rettet en compiler fejl hvor en & quot; super & quot; ringe fra inden et objekt, der kun instantierer selv og ikke specialisere ethvert objekt ville kaste en undtagelse i stedet for at fejle.
- Opdateret & quot; benchmarks & quot; eksempel for at beskytte mod aritmetiske undtagelser når computing det samlede antal opkald per sekund for hver test. Reduceret antallet af benchmarktest gentagelser, når du kører unit test for at undgå langvarige computing gange med langsom back-end Prolog compilere.
Hvad er nyt i version 2.43.1:
- Ændret compileren at tage hensyn til de anvendelser / 2 direktiv ved udarbejdelsen opkald til databasen indbyggede metoder. Denne ændring udvider semantik af anvendelser / 2-direktivet og giver lettere migration fra almindelig Prolog applikationer til Logtalk.
- Tilføjet eksperimentel understøttelse for at bruge et prædikat skabelon som argument til coinductive / 1 direktivet. Denne skabelon tillader specifikation af hvilke argumenter er meningsfulde for coinductive succes. Baseret på lignende funktionalitet fundet på på Feliks Kluzniak s DRA meta-tolk.
- Forbedret støtte til debugging coinductive prædikater, når du bruger Logtalk indbyggede debugger.
- Fjernet coinduction støtte til CxProlog. Den aktuelle version af denne compiler mangler en blød-cut indbygget prædikat eller kontrol konstruktion, som nu kræves af den eksperimentelle coinduction gennemførelse.
- Løftet en mangeårig begrænsning, der forhindrede brugeren definition af wrapper prædikater for bagof / 3 og setof / 3 indbyggede metoder, når målet argument kan bruge ^ / 2 eksistentielle kvantifikator.
- Tilføjet støtte til & quot; ^ & quot; meta-prædikat meta-argument tilstand anvisning foreslået af Jan Wielemaker og fundet på SWI-Prolog 5.11.25. Denne tilstand anvisning er nyttig, når fastlæggelsen indpakning for bagof / 3 og setof / 3 indbyggede metoder, når målet argument kan bruge ^ / 2 eksistentielle kvantifikator.
- Tilføjet & quot; prolog_compiler & quot; og & quot; prolog_loader & quot; oversætterflag, som tillader passerer muligheder for back-end Prolog compiler indbyggede prædikater, der udarbejder til disk og indlæse en (kompileret) Prolog flag. Standardværdien for begge flag er tom liste.
- Rettet en fejl ved udarbejdelsen opkald til Prolog proprietære indbygget meta-prædikater, hvor Logtalk compiler kunne forsøge at behandle ikke-meta-argumenter som mål. Denne fejl kun manifesteret sig med nogle back-end Prolog compilere som Eclipse.
- Rettet en fejl i behandlingen af betinget kompilering direktiver.
- Rettet en fejl, der forhindrede passerer alias / 3 direktiver om opkald til create_object / 4, create_category / 4, og create_protocol / 3 indbyggede prædikater.
- Fjernet fra den indbyggede objekt & quot; logtalk & quot; de decompile_predicate_head / 4 og decompile_predicate_indicator / 4 forældede metoder.
- Fjernet støtte til den lange frarådet Logtalk metapredicate / 1 direktivet.
- Rettet en performance bug når caching opkald til kategori prædikater hvor cachede poster kunne være mere specifik end nødvendigt, når du arbejder med parametriske kategorier.
- Forbedret caching af & quot; super & quot; opkald fra inden prototyper. Tidligere ville alle cachede poster være specialiseret med værdien af & quot; selv & quot; med henblik på korrekt håndtere de særlige tilfælde, hvor et objekt både instantierer og specialiseret andre objekter.
- Opdateret den Logtalk compiler til at aktivere eventuelle operatør erklæringer findes på prædikatforbrydelser omfang direktiver under udarbejdelsen af de enheder, der indeholder direktiverne.
- Forbedret ydeevne coinductive prædikater ved brug af back-end Prolog compilere som SICSTUS Prolog der ikke giver den bløde-cut kontrol konstruktion, men giver den bløde-cut indbygget meta-prædikat (hvis / 3).
- Rettet en fejl, hvor en falsk rapport om kompilering / lastning advarsler kunne udskrives, når en kilde fil blev kompileret / fyldt med compiler flag & quot; rapporten & quot; slukket.
- Tilføjet en & quot; streamvars & quot; bibliotek objekt, der stammer fra den eksisterende & quot; assignvars & quot; bibliotek kategori, og byder på understøttelse til at tilføje og hente vilkår (som kan være variable) fra en & quot; stream & quot; variabel.
- Opdateret & quot; coinduction & quot; eksempel, at drage fordel af den forbedrede coinductive / 1 direktiv og udvidelse af antallet af individuelle eksempler, der kan køres ved hjælp SICSTUS Prolog. Tilføjet en model kontrol eksempel ved hjælp coinduction, coroutining og begrænsninger.
- Opdateret & quot; metapredicates & quot; eksempel med eksempelkode illustrerer, hvordan man definerer indpakning for bagof / 3 og setof / 3 indbyggede metoder, når meta-argument kan indeholde eksistentielt kvalificerede variabler.
- Opdateret & quot; cc & quot; eksempel korrigere prædikatforbrydelser definitioner for flere back-end Prolog compilere og tilføje nogle grundlæggende unit test.
- Opdateret & quot; kodninger & quot; eksempel med begrænset støtte til Lean Prolog.
- Tilføjet manglende poster for meta_non_terminal / 1 direktiv og for opkaldet // N ikke-terminal til & quot; hjælp & quot; eksempel.
- Tilføjet en parser for PDDL 3,0 filer, bidraget af Robert Sasak.
- Tilføjet kode folde støtte til SubEthaEdit teksteditor. Tilføjet kode folde støtte til betinget kompilering blokke til Kate, Vim, og TextMate teksteditorer.
- Opdateret integrationsindsatsen scripts for at indlæse biblioteksstier filen, før du lægger det Logtalk compiler / runtime. Denne ændring har til formål at forenkle lastning af biblioteks- og eksempel filer fra indstillingsfiler. Desuden også kigge efter den Logtalk installationsmappen i $ HOME / aktie, når LOGTALKHOME miljøvariabel er ikke defineret.
- Opdateret Windows installationsprogrammet for at støtte Lean Prolog og opdage YAP 64 bit versioner.
Hvad er nyt i version 2.43.0:.
- Tilføjet eksperimentel understøttelse af Lean Prolog
- Fjernet Logtalk compiler begrænsning, der tvang usammenhængende / 1 og dynamiske / 1 direktiver forud opkald til de erklærede prædikater.
- Forbedret Logtalk compiler rapport misspelt opkald til ikke-terminaler i grammatiske regler.
- Tillad brug af:. / 1 kontrol konstruere på kroppen af grammatiske regler
- Når debugging beskeder er angivet i anvendelser / 2 direktiver, beskeden er nu udskrevet implicit kvalificeret som i kildekoden skrevet af brugeren.
- Ændret interne prædikater, der anvendes i forbindelse med gennemførelsen af den indbyggede multi-threading prædikater for at lette integrationen med højt niveau debugging værktøjer, der kræver dekompilering af den genererede Prolog kode.
- Rettet en fejl i biblioteket støtte til unit tests, & quot;. Lgtunit & quot ;, hvor testning for undtagelser ville acceptere nogen undtagelse sigt opfylder de enhed testspecifikationer
- Opdateret & quot; cc & quot; eksempel med fejlrettelser og forbedringer for Eclipse bidraget med Joachim Schimpf, med en bug fix til SWI-Prolog gennemførelse af expand_path / 2 prædikat (som følge af de seneste ændringer i SWI-Prolog absolute_file_name / 3 indbyggede prædikat), og med en definition for command_line_arguments / 1 prædikat for B-Prolog.
- Opdateret & quot; coinduction & quot; eksempel, at tilføje nogle mere individuelle eksempler.
- Opdateret & quot; XML_PARSER & quot; bidrag for at omgå bærbarhed problemer med GNU Prolog.
- Ret en fejl i nogle shell-scripts, hvor & quot; # / bin / bash & quot; blev anvendt i stedet for & quot;! # / bin / bash & quot ;. Tak til Yiorgos Adamopoulos for fejlrapport.
- Opdateret den Inno Setup GUI Windows installationsprogrammet script for at give fuld installation af ikke-admin brugere.
- Tilføjet syntaxfarvning støtte til ISO Prolog-direktivet omfatter / 1 til alle understøttede tekst redaktører og syntaks highlighters.
- Rettet nogle fejl på fanen udløser for Gedit Logtalk uddrag, der forhindrede deres anvendelse.
- Ændret tilbage til at bruge XEP stedet for FOP, når du genererer PDF versioner af Bruger- og reference manualer som FOP afkorter indholdet af nogle af siderne.
Hvad er nyt i version 2.42.4:
- Tilføjet en entity_prefix / 2 prædikat og to sæt forsyningsvirksomheder prædikater, decompile_predicate_heads / 2-4 og decompile_predicate_indicators / 2-4, til & quot; logtalk & quot; indbygget objekt. Markerede decompile_predicate_head / 4 og decompile_predicate_indicator / 4 som forældet.
- Tilføjet support for at bevare oplysninger mulighed for operatører erklærede hjælp omfang direktiver løbet kompilere tid. Tilføjet information om enhed erklæret operatører til XML dokumenterer filer. Opdateret den tekst, PDF, og (X) HTML konvertering scripts til at udskrive operatør information.
- Applied flere lavt niveau optimeringer til Logtalk compiler / runtime.
- Flyttet de interne prædikater, der konstruerer og få adgang prædikatet udførelse kontekst fra compiler til Prolog config filer for at støtte fine præstationer tuning, der er Prolog compiler afhængig.
- Opdateret gennemførelsen af gevind / 1 multi-threading indbygget prædikat for at bruge en lille performance optimering baseret på term_variables / 2 indbyggede prædikatforbrydelser foreslået af Timon Van Overveldt. Denne optimering har til formål at reducere unødvendige kopi og forening af termer. Desuden erstatte brugen af setup_call_cleanup / 3 indbyggede prædikat med fangsten / 3 indbyggede prædikat ved at forenkle håndteringen af både master og slave tråde, som også forbedrer ydeevnen.
- Rettet en fejl i forbindelse med gennemførelsen af den gevind / 1 multi-threading indbygget prædikatet hvor undladelse af brugeren for at angive uafhængige mål, når du forsøger at bruge uafhængige og-parallelitet ville resultere i zombie tråde.
- Mere informative undtagelse vilkår, når de forsøger at erklære en synkroniseret prædikat som dynamisk eller dynamisk prædikat som synkroniseres.
- Opdateret den XSB konfigurationsfil for at støtte indsamlingen af moduler som objekter. Tilføjet en definition for den manglende setup_call_catcher_cleanup / 4 indbyggede prædikat. XSB 3.3 (eller en nyere version) er nu påkrævet for kompatibilitet med Logtalk.
- Opdateret den SWI-Prolog konfigurationsfil for at yde begrænset støtte til arithmetic_function / 1 proprietære direktiv (aritmetiske funktioner kompilere som global stedet for som lokale til de objekter eller kategorier definerer dem).
- Opdateret den YAP config fil for at ignorere style_check / 1-direktivet, og at fortolke yap_flag / 2 direktiv som en set_prolog_flag / 2 direktiv.
- Ændret standard XSL-FO processor (bruges til at generere PDF-versioner af Bruger- og reference manualer) fra XEP til FOP.
- Opdateret & quot; XML_PARSER & quot; bidrag for at omgå bærbarhed problemer med Qu-Prolog, SICSTUS Prolog, og XSB.
- Opdateret & quot; kodninger & quot; eksempel for at sikre, at der ikke er nogen mellemrum før kodning / 1-direktivet.
- Opdateret & quot; attvars & quot; eksempel for at støtte B-Prolog og XSB. Også tilføjet understøttelse for at bruge tilskrives variable inden Logtalk parametriske objekter og parametriske kategorier. Tak til Jan Wielemaker, vator Santos Costa, og Bart Demoen for feedback og implementering forslag.
- Opdateret & quot; profilers & quot; eksempel med indledende støtte til de ændringer udførelse profilering i SICSTUS Prolog 4.2 version.
- Opdateret & quot; ekspansion & quot; eksempel med mere prøve kode på, hvordan man kombinerer term- og mål udvidelseskoefficient definitioner fra forskellige kroge objekter.
- Opdateret & quot; coinduction & quot; eksempel, tilføjer en eksperimentel keysort / 2 coinductive prædikat. Tak til Jan Burse for forslaget.
- Opdateret & quot; tak & quot; multi-threading eksempel, hvor en manglende snit ville resultere i hurtigt udtømme den lokale stakken ved brug SWI-Prolog grund af skabelsen af et meget stort antal unødvendige choice point.
- Opdateret & quot; mtbatch & quot; multi-threading eksempel for at give udvidet benchmarking af & quot; tak & quot; eksempel.
- Opdateret den macports Portfile og script, der opdaterer det for at fjerne beregningen af MD5 checksum, der er under udfasning af macports.
- Opdateret den Inno Setup GUI Windows installationsprogrammet script for at omgå en fejl på SWI-Prolog Windows Installer hvor afinstallere procedure undlader at slette SWI-Prolog nøgler fra Windows registreringsdatabasen.
Hvad er nyt i version 2.42.3:
- Tillad dynamiske prædikater anmeldt i en kategori for at blive kaldt i & quot; denne & quot; fra inden for kategorien. I tidligere versioner, ville sådanne opkald resultere i en compile-time fejl, tvinger disse prædikater til at blive kaldt in & quot; selv & quot; (Ved hjælp af :: / 1 besked sende kontrol konstruktion).
- Tilføjet Logtalk compiler støtte til præ-kompileret klausul hoveder (ved hjælp af {} / 1 styring konstruktion). Denne funktion er for det meste nyttig, når du bruger udtrykket-ekspansion mekanisme.
- Rettet en fejl på den kode, der forenkler prædikatet klausuler genereret af udarbejdelse af grammatiske regler. Koden ville sløjfe, når en grammatik regel indeholdt en meta-variabel, som Logtalk compiler bør (men i øjeblikket ikke) rapport som ulovlig (opkaldet / 1 styring konstruktion skal bruges i stedet på dette tilfælde).
- Forenklet udarbejdelse af opkald i forbindelse med pseudo-objekt & quot; bruger & quot;.
- Tilføjet en debugger kommando & quot; p & quot; til Logtalk indbyggede debugger. Denne kommando udskriver det aktuelle mål ved hjælp af print / 1 prædikat, når de foreligger. Omdøbt debugger kommandoen & quot; q & quot; til & quot; Q & quot ;. Rettet en fejl, hvor debugger kommandoen & quot; w & quot; ville ikke blive anerkendt. Ændret debugger kommandoen & quot; d & quot; at citere vilkår, når det er nødvendigt.
- Tilføjet en delvis gennemførelse af ISO Prolog predicate_property / 2 prædikat til formørkelsen konfigurationsfilen.
- Opdateret den SWI-Prolog konfigurationsfil for at fjerne den fejlagtige erklæring om bibliotekets meta-prædikater dde_register_service / 2, tid / 1, og når / 2 som indbygget meta-prædikater.
- Anvendt en bug fix til & quot; flag & quot; bidrag stilles til rådighed af sin ophavsretshaver, Theofrastos Mantadelis. Løsning en kompatibilitet problem med GNU Prolog.
- Tilføjet en memberchk / 2 prædikat til biblioteket & quot; setp & quot; protokol og & quot; sæt & quot; objekt. Tilføjet prædikater is_control / 1, is_newline / 1, og is_end_of_line / 1 til biblioteket & quot; characterp & quot; og & quot; tegn & quot; enheder.
- Tilføjet en eksperimentel eksempel på anvendelse tilskrevet variabler i Logtalk objekter og kategorier. kræver øjeblikket brug af YAP eller SWI-Prolog som back-end Prolog compiler.
- Understøttelse af indexicals til & quot; begrænsninger / SICSTUS & quot; eksempel.
- Udvidet & quot; delegerede & quot; eksempel med en prøve implementering af en fuldmagtsgiveren ved hjælp af en parametrisk objekt.
- Udvidet & quot; dynpred & quot; eksempel for at illustrere, hvordan man definerer kategori prædikater, der håndterer dynamiske prædikater i sammenhæng med & quot; dette & quot; og i forbindelse med & quot; selv & quot;.
- Tilføjet en wall_time / 1 prædikat til & quot; cc & quot; eksempel.
- Opdateret syntaksfremhævningssystemet testfiler, tilføjer mangler sande / 0 og undlader / 0 kontrol konstruktioner.
Hvad er nyt i version 2.42.2:
- Opdateret den Logtalk compiler for at tillade kontrol for modul prædikatforbrydelser egenskaber uden at kræve importere prædikater i & quot; bruger & quot; (Bemærk dog, at modulet skal stadig lastes forud for udarbejdelse af kildefiler kalder modulet prædikater).
- Opdateret den Logtalk compiler for at kontrollere kompilere tid instantieres lukning argumenter på opkald / 2-N mål for fælles programmeringsfejl.
- Opdateret den Logtalk compiler for at generere advarsler for lambda udtryk med variable, der ikke er anmeldt som enten frie variabler eller lambda-parametre eller med variable, der er anmeldt som både frie variable og lambda parametre. Tak til Jan Burse til at foreslå disse sundhedstjek.
- Opdateret den Logtalk runtime for at støtte ved brug af & # X3C; & # X3C; / 2 kontrol konstruere i lukning meta-argumenter meta-prædikater .
- Tilføjet support for udarbejdelse Free / Goal lambda udtryk opkald (ved automatisk at generere en ekstra prædikat muligt).
- Tilføjet en compile_aux_clauses / 1 offentlig metode, der bygger på et prædikat med samme navn i SWI-Prolog, til den indbyggede objekt & quot; logtalk & quot ;. Denne metode er normalt kaldes fra goal_expansion / 2 kroge for at kompilere ekstra klausuler genereret til at understøtte en udvidet mål.
- Tilføjet meta-prædikatet ignorerer / 1, gennemført af nogle Prolog compilere som en indbygget prædikatet, som Logtalk indbygget metode.
- Opdateret den SWI-Prolog konfigurationsfil for at forhindre den automatiske indlæsning af modul biblioteker når forespørge prædikatforbrydelser egenskaber fra Logtalk.
- Opdateret den Qu-Prolog, SICSTUS Prolog, og XSB config filer for at stille prædikatet term_variables / 2 som en ISO indbygget prædikat.
- Opdateret den Qu-Prolog integration scripts for at fordoble bunke størrelse værdi for udarbejdelsen af Logtalk compiler / runtime, løse en start nedbrud.
- Restaureret MacOS X kommando-fil til GNU Prolog (flyttet op fra & quot; scripts / MacOSX / command_files / ikke-understøttet & quot; mappe).
- Tilføjet prædikater findall_member / 4-5 til biblioteket objekt & quot; meta & quot; (Baseret på Richard O'Keefe udkast Prolog bibliotek forslag). Fjernet erklæring og definition af de prædikater konverterbare / 1 og ignorere / 1 fra biblioteket enheder & quot; METAP & quot; og & quot; meta & quot; (Konverterbare / 1 er en indbygget prædikat på alle understøttede Prolog compilere, ignorere / 1 er nu en Logtalk indbygget metode) .
- Tilføjet et bibliotek objekt, & quot; meta_compiler & quot ;, der kan bruges som en krog objekt for at udvide opkald til meta-prædikater, der er defineret i biblioteket objekt & quot; meta & quot; for at undgå de faste udgifter meta-opkald. På grundlag af disse tilfælde, hvor meta-prædikat opkald ikke kan optimeres, standard definition på & quot; meta & quot; genstand er brugt. Brug kontrol konstruktioner som meta-argumenter er (endnu) ikke understøttet. Igangværende.
- Tilføjet en protokol, & quot; loggingp & quot ;, og kategori og objekt implementeringer, & quot; logging & quot; og & quot;. logger & quot ;, erklære og definere grundlæggende funktionalitet til at logge begivenheder til filer til biblioteket
- Tilføjet en protokol, & quot; intervalp & quot ;, og en genstand, & quot; interval & quot ;, erklære og definere de væsentlige tidsmæssige interval relationer til biblioteket (baseret på James F. Allen Interval Algebra arbejde) .
- Tilføjet en kategori gennemføre navngivne heltal tællere, & quot;. Tællere & quot ;, til biblioteket
- Tilføjet prædikater proper_prefix / 2 og proper_suffix / 2 til biblioteket enheder & quot; listp & quot ;, & quot; liste & quot ;, og & quot; difflist & quot;.
- Tilføjet prædikat gennemføre / 2 til biblioteket objekt & quot; par & quot;.
- Tilføjet to pseudo-eksempler for testformål, & quot; lambdas_compiled & quot; og & quot; metapredicates_compiled & quot ;, der gør brug af det nye bibliotek objekt
- & quot; meta_compiler & quot;.
- Opdateret & quot; ekspansion & quot; eksempel for at illustrere, hvordan man definerer og kombinere krog objekter.
- Tilføjet support for brug af SyntaxHighlighter pakken (version 3.0.83 eller nyere) af Alex Gorbatchev med Logtalk kildekode.
- Tilføjet manglende syntaks farvning af andet / 0 betinget kompilering direktiv til GNU Source-highlight highlighter support.
- Tilføjet en note om Logtalk tekstredigering støtte til rådighed på det frie MacOS X Kod teksteditor.
- Tilføjet syntaxfarvning støtte til den nye ignorere / 1 indbygget metode til alle understøttede tekst redaktører og syntaks highlighters.
Hvad er nyt i version 2.42.1:
- Tilføjet støtte til Logtalk compiler til detektering og rapportering mangler dynamiske / 1 og usammenhængende / 1 prædikatforbrydelser direktiver.
- Tilføjet en ny fnug flag, & quot; missing_directives & quot ;, med en default værdi på & quot; advarsel & quot ;, for alle config filer. Dette flag muliggør udskrivning af compiler advarsler for manglende dynamiske / 1, usammenhængende / 1, og multifile / 1 prædikatforbrydelser direktiver.
- Tilføjet support for nye indikatorer meta-prædikat skabelon tilstand: (/) for et prædikat indikator, [/] for en liste over prædikatforbrydelser indikatorer, og [0] for en liste over mål .
- Rettet en fejl i Logtalk compiler, når kontrol meta-prædikatforbrydelser klausul hoveder for fejl, hvor & quot; :: & quot; meta-argument indikator tilstand var stadig bliver fortolket som & quot; 0 & quot;.
- Rettet en fejl i håndteringen af lukninger (i meta-opkald), der bruges til at konstruere opkald til kontrol konstruktioner eller indbyggede prædikater som kan resultere i at kalde nogle meta-argumenter i den forkerte sammenhæng. Tak til Ulrich Neumerkel for illustrerer eksempel i SWI-Prolog postliste.
- Opdateret den Logtalk compiler for at undgå udskrivning advarsler om manglende henvisninger til & quot; ekspanderende & quot; og & quot; overvågning & quot; indbyggede protokoller ved udarbejdelsen moduler som objekter.
- Gendannet ændringerne i versionen 2.39.2, der tillod pseudo-objekt & quot; bruger & quot; til stort set indeholder definitionen af alle Prolog indbyggede prædikater. Dette kan føre til forskellige resultater afhængigt af back-end Prolog compiler, specielt når du ringer meta-prædikater i forbindelse med & quot; bruger & quot;.
- Rettet en fejl i SWI-Prolog & quot; swihooks.lgt & quot; fil, der resulterede i en falsk fejlmeddelelse om et ugyldigt Logtalk flag, når konsultere en Prolog fil, når der er en Logtalk kilde fil med det samme navn i samme mappe.
- Tilføjet manglende støtte til proprietære indbygget meta-prædikater til B-Prolog, SICSTUS Prolog, SWI-Prolog, XSB, og YAP config filer.
- Opdateret den SICSTUS Prolog, SWI-Prolog, og YAP config filer for at tilsidesætte de meta-prædikat skabeloner for rådføre / 1 og load_files / 2 indbyggede prædikater.
- Tilføjet en implementering af et map_reduce / 5 meta-prædikat til biblioteket objekt & quot; meta & quot;.
- Tilføjet en implementering af et command_line_arguments / 1 prædikat til & quot; cc & quot; eksempel.
- Opdateret & quot; lambdas & quot; og & quot; metapredicates & quot; eksempler, der illustrerer, hvordan man beregner Fibonacci tal ved hjælp af en fold venstre meta-prædikat. Opdateret & quot; metapredicates & quot; eksempel med et forbrug eksempel på map_reduce / 5 meta-prædikat.
- Opdateret & quot; problog & quot; eksempel, tilføjer indledende støtte til den nye kommenterede udskilte beløb syntaks.
- Tilføjet en & quot; magiske & quot; element til Logtalk mime-filtypen for det freedesktop.org delte mime-info-database.
Hvad er nyt i version 2.42.0:.
- Tilføjet en implementering af vedvarende objekt flag
- Tilføjet et par nye indbyggede prædikater, conforms_to_protocol / 2-3, gennemførelse af transitive lukning af relationen protokolimplementering.
- Tilføjet en eksperimentel direktiv, annotation / 1, til at støtte Logtalk integration med andre sprog som ProbLog og CHR.
Kommentarer ikke fundet