Logtalk is een objectgeoriënteerde logische programmeertaal die de meeste Prolog-implementaties als een back-end-compiler kan gebruiken. Als taal voor meerdere paradigma's biedt Logtalk ondersteuning voor zowel prototypen als klassen, protocollen (interfaces), componentgebaseerde programmering door op categorieën gebaseerde compositie, door gebeurtenissen gestuurde programmering en multi-threading programmeren op hoog niveau.
Wat is nieuw in deze release:
* VERBETERD: vermijd oneigenlijke ontbrekende `meta_predicate / 1` richtlijnwaarschuwingen wanneer de daadwerkelijke meta-call geen variabelen deelt met de clausule hoofd.
* VERBETERD: Sta het gebruik van lambda-expressies toe in grammaticaregels zonder een 'call // 1'-wrapper nodig te hebben.
* FIXED: Optimalisatiebug in de compilatie van een sluitingsmeta-argument wanneer het resulterende doel een aanroep is naar een Prolog-ingebouwd predikaat vanwege de inlining van een definitie van gebruikerspredikaten.
* FIXED: bug voor optimalisatie bij het compileren van een meta-argument voor afsluiten wanneer het resulterende doel een aanroep is naar een Prolog `: / 2`-controleconstruct.
Wat is nieuw in versie 3.19:
* TOEGEVOEGD: Ondersteuning voor het definiëren van aanvullende Prolog-ingebouwde predikaten voor lint
controles van doelen die altijd waar of onwaar zijn voor de adapterbestanden met behulp van de
haak predicaat `'$ lgt_candidate_tautology_or_falsehood_goal_hook' / 1`.
* ADDED: Objecteigenschap `module` voor objecten die het gevolg zijn van de compilatie
van Prolog-modules.
* Toegevoegd: Gemaksfout met ingebouwde methoden `syntax_error / 1` en
`System_error / 0 '. Deze methoden werpen standaard `fout / 2` uitzonderingsbepalingen
en zijn gelijkwaardig aan een reeks van `context / 1` en` throw / 1` methodeaanroepen.
* VERWIJDERD: Ondersteuning voor verouderde Logtalk 2.x `calls / 1`,` uses / 1`, en
`alias / 3`-richtlijnen.
* VERWIJDERD: Ondersteuning voor verouderde Logtalk 2.x `: / 1`-controleconstruct.
* VERWIJDERD: Ondersteuning voor verouderde Logtalk 2.x `onbekend`,` singletons`,
`tmpdir` en` version` compilervlaggen.
Wat is nieuw in versie 3.14:
NIEUW: ondersteuning voor _parameter variabelen_ die een alternatief bieden voor de
`parameter / 2` en` this / 1` ingebouwde methoden voor toegang tot entiteitsparameters.
Parametervariabelen zijn variabelen die worden gebruikt in de parametrische entiteitsidentificatie
dat begint en eindigt met een onderstrepingsteken (`_VariableName_`). Elke gebeurtenis
van een parametervariabele in een entiteitsclausule is impliciet verenigd met de
entiteit parameter. Hiermee kunnen entiteitsparameters worden toegevoegd, herschikt of
verwijderd zonder dat er wijzigingen in de clausules nodig zijn die naar hen verwijzen.
Parametervariabelen worden alleen ondersteund voor parametrische entiteiten gedefinieerd in
bronbestanden.
Wat is nieuw in versie 3.13:
NIEUW: Compiler-ondersteuning voor het detecteren van oproepen naar lokale statische predicaten zonder bijpassende clausules (ook bekend als triviaal mislukken ).
Wat is nieuw in versie 3.11.1:
* VERBETERD: Compilerwaarschuwing en foutmeldingen om ze uniformer te maken om het parseren door editors en IDE's te vergemakkelijken en om potentieel grote termen te vermijden.
* VERBETERD: de compiler vereist niet langer oproepen naar de database en reflectievoorspellingen waarbij het eerste argument een door een module gekwalificeerde term is die moet worden ingepakt met behulp van het `{} / 1` compiler-bypassbesturingsconstruct.
* VERBETERD: Compileerfoutcontrole voor database- en reflectiepredicaten waarbij het eerste argument een door een module gekwalificeerde term is.
* VERBETERD: Minimaliseer het aantal bestandsherladen dat wordt geactiveerd door oproepen naar de `logtalk_make / 0-1` predikaten.
* FIXED: Geval waarbij de `logtalk_make / 0-1` predicaten niet zouden lukken om een bestand opnieuw te laden waarvan de compilatie een compileerfout heeft gegenereerd.
Wat is nieuw in versie 3.11:
* CHANGED: het ingebouwde predicaat `current_event / 5` om altijd het eerste argument te instantiëren wanneer het ongebonden is.
* ADDED: Ondersteuning voor het overschrijven van de standaardscheldirectory door te definiëren
de bibliotheek alias `scratch_directory` in een back-end Prolog-initialisatiebestand
(aangenomen dat het geladen is voordat Logtalk werd geladen). Na een discussie met
Douglas R. Miles over het ondersteunen van het installeren van Logtalk in een alleen-lezen map
en tegelijkertijd meerdere logtalk-instanties uitvoeren zonder conflicten.
* Toegevoegd: een `context / 1` ingebouwde contextuitvoeringsmethode om toegang te bieden
naar een context voor het uitvoeren van predicaatsgesprekken. Hoofdzakelijk gebruikt voor het verstrekken van een standaard
foutcontext bij het controleren van predikaatargumenten.
* Toegevoegd: Ondersteuning voor het afdrukken van berichten van soort `debug` en` debug (_) `. Deze
berichten worden standaard alleen afgedrukt als de vlag `debug` is ingeschakeld.
* TOEGEVOEGD: eigenschap `omvat (bestand)` naar de `logtalk :: loaded_file_property / 2`
predicaat om op te nemen, door backtracking, alle bestanden opgenomen door een
geladen bestand (met `include / 1` -richtlijnen).
Wat is nieuw in versie 3.10.7:
* RENAMED: Het `logtalk_make / 1` doel` missing` to `check`.
* Toegevoegd: ondersteuning voor uitbreiding van `logtalk_make / 1`-doelen met door de gebruiker gedefinieerd
acties met het nieuwe multifile predicaat `logtalk_make_target_action / 1`.
* TOEGEVOEGD: Compiler-pluis controleert op tautologie en bedrogdoelstellingen.
Momenteel gecontroleerd zijn oproepen naar Prolog-unificatie, vergelijking en type
testen van ingebouwde predicaten. Voorgesteld door Barry Evans.
Wat is nieuw in versie 3.10.5:
* FIXED: Regressie geïntroduceerd in release 3.10.2 wanneer meta-calling wordt uitgevoerd context ingebouwde methoden.
* FIXED: Compileerfout als gevolg van het toepassen van draagbaarheidscontroles op aanroepen van Prolog ingebouwde predikaten en functies die worden gevonden in hulpclausules (meestal gegenereerd door het termuitbreidingsmechanisme).
Wat is nieuw
sterk> in versie 3.10.3: * VERBETERD: Vereenvoudigde code gegenereerd voor multifile predicaten.
* FIXED: Regressie in vorige release bij het compileren van multifile
predicate-clausules die oproepen doen naar de `:: / 1-2` -besturingsconstructies.
Wat is nieuw in versie 3.09.1:
* ADDED: Ondersteuning voor `number_of_rules / 1` en` number_of_user_rules / 1`-object
en categorie-eigenschappen.
* Toegevoegd: ondersteuning voor `number_of_rules / 1` predicate-eigenschap.
* ADDED: Detectie van `meta_predicate / 1`-richtlijnen die ten onrechte een doel specificeren
meta-argument dat eigenlijk een afsluiting is van het meta-predikaat `call / 2-N`
noemt. Met dank aan Arun Majumdar voor het rapport.
* TOEGEVOEGD: detectie van ontbrekende richtlijnen voor predicaatscope in aanwezigheid van
`modus / 2`-richtlijnen.
Wat is nieuw in versie 3.09.0:
* GEWIJZIGD: instellingenbestanden worden nu ook in de gebruiker opgezocht home directory
wanneer niet gevonden in de opstartdirectory of in de Logtalk-gebruikersdirectory.
Het instellen van de vlag `settings_file` op` beperken` beperkt nu het zoeken naar
een instellingenbestand naar de Logtalk-gebruikersdirectory en de hoofddirectory van de gebruiker.
Deze wijzigingen zijn handig wanneer een team een Logtalk-installatie met beide deelt
de `LOGTALKHOME` en` LOGTALKUSER` omgevingsvariabelen die naar de
dezelfde map. Met dank aan Barry Evans voor de suggestie.
Wat is nieuw in versie 3.08.0:
* GEWIJZIGD: zorg ervoor dat in de compilerfout en waarschuwingsberichten de bestands- en lijninformatie is altijd de laatste regel voor het gemelde probleem.
Wat is nieuw in versie 3.07.0:
* ADDED: een `unicode` alleen-lezen-vlag om de backend Prolog-compiler te beschrijven
ondersteuning voor de Unicode-standaard.
* TOEGEVOEGD: Ondersteuning voor `++` (achtergrond) en `--` (niet-gebonden) argument-instantiatie
modi (aangegeven als prefixoperators) voor gebruik met het `mode / 2` predikaat
richtlijn.
* ADDED: Ondersteuning voor `one_or_error` determinisme-specificatie in` mode / 2`
predicaatrichtlijnen. Handig voor het documenteren van predikaten voor typecontrole.
* VERBETERD: Detecteert pogingen om existentieel gekwantificeerde doelen buiten de
reikwijdte van `bagof / 3` en` setof / 3`-gesprekken.
* FIXED: Maak geen koppelingsclausule voor het compileren van `uses / 2` -richtlijnen
runtime gebruiken voor ingebouwde predikaten in `user` als er geen alias wordt gedefinieerd.
* FIXED: bij het verspreiden van een compilatiefout voor een bestand naar de bovenliggende bestanden,
zorg ervoor dat de bestands-voorouders opnieuw worden geladen, te beginnen met de top-voorouder
door het maakmechanisme.
* FIXED: vermijd redundante bestandsherladen wanneer u `logtalk_make / 0` of
`logtalk_make / 1` met het doel` alles`.
* FIXED: Detectie van ontbrekende predicaten in `^^ / 1`-oproepen tijdens het bellen
`logtalk_make / 1` met het doel` missing`.
* FIXED: bug in de reflectie-API waarbij sommige predikaten als kruisverwijzingen gebruiken
informatie werd niet vastgelegd. Met dank aan Edward Schwartz voor het foutenrapport.
Wat is nieuw in versie 3.06.2:
Deze release gaat verder met het verbeteren van de ontwikkelaarstools onder het sponsorschap van Kyndi, Inc. Het bevat een nieuwe versie van de wrapper-tool voor het overdragen van eenvoudige Prolog-applicaties en verbeteringen en oplossingen voor de lgtunit en diagrammen. Het bevat ook nieuwe eenheidstests, compiler- en documentatie-oplossingen en een compatibiliteitsupdate voor Lean Prolog.
Wat is nieuw in versie 3.04.1:
* FIXED: Compiler-bug waarbij een predicaat dat term-uitgebreid is door de methode `compile_aux_clauses / 1` aan te roepen verkeerd kan worden gemeld als niet-aangrenzend.
* FIXED: oproepen naar het `threaded_notify / 1` ingebouwde predicaat vanuit het` user` pseudo-object mogen geen bound argument vereisen volgens de documentatie.
* FIXED: oproepen naar de `object_property / 2` en category_property / 2` ingebouwde predicaten met` number_of_clauses / 1` of `number_of_user_clauses / 1` eigenschappenargumenten als deterministisch.
Wat is nieuw in versie 3.03.0:
* TOEGEVOEGD: Ondersteuning voor een nieuw `logtalk_make / 1` doel,` missing`, om ontbrekende entiteiten en predicaten te vermelden. Ook beschikbaar via de `{?}` Snelkoppeling.
* TOEGEVOEGD: Ondersteuning voor een nieuw `logtalk_make / 1` doel,` circulair`, om ronde verwijzingen (rekening houdend met doelen voor het verzenden van berichten) tussen paren en trio's van objecten te vermelden. Ook beschikbaar via de snelkoppeling `{@}`.
* VERBETERD: voeg een directory-hash toe aan de tussenliggende Prolog-bestandsnamen om te voorkomen dat bestandsnaam-collisions worden gebruikt bij het verzamelen van alle tussenliggende bestanden in dezelfde directory voor insluiting. Vereist momenteel ECLiPSe, GNU
Prolog, JIProlog, Quintus Prolog, SICStus Prolog, SWI-Prolog, XSB of YAP als de backend-compiler.
* FIXED: Meta-predikaat call optimalisatie bug wanneer een meta-argument ofwel een vooraf gecompileerde afsluiting is of een afsluiting voor een doel genoemd in de context van de
`gebruiker` pseudo-object. Gebruik ook strengere foutcontrole om meta-argumenten te sluiten.
* FIXED: Compleet uitgeprint parametrisch object en parametrische categorie-ID's in fout- en waarschuwingsberichten.
Wat is nieuw in versie 3.02.2:
* FIXED: Fout bij het controleren van fouten in lambda-expressies met behulp van `true / 0` als de lambda
doel. Met dank aan Boris Vassilev voor het bugrapport.
* FIXED: Het predikaat `logtalk_make / 1` zou slagen (na het afdrukken van een waarschuwing
bericht) wanneer deze wordt aangeroepen met een niet-geïnstantieerd of ongeldig argument in plaats van
falende. naar de
gegenereerde tussenliggende Prolog-bestanden met behulp van een multifile predikaat voor een beter
ervaring inbouwen. Het maakt het met name gemakkelijker om incrementeel in te bedden.
* VERBETERD: De make-predikaten laden nu ook de bovenliggende bestanden van bestanden opnieuw
compilatie of laadfouten. Dit zorgt ervoor dat, wanneer een defect bestand de
compilatie van alle bestanden in een loaderbestand, de bestanden die na het defect worden vermeld
bestand zal worden gecompileerd wanneer het defecte bestand wordt hersteld en de make predikaten zijn
genoemd.
Wat is nieuw in versie 3.02.1:
* VERBETERD: de runtime-tabelitems voor geladen bestanden worden nu toegevoegd aan de gegenereerde tussenliggende Prolog-bestanden met behulp van een multifile-predikaat voor een betere inbedbeleving. Het maakt het met name gemakkelijker om incrementeel in te bedden.
* VERBETERD: de make-predikaten laden nu ook de bovenliggende bestanden van bestanden opnieuw met compilatie- of laadfouten. Dit zorgt ervoor dat wanneer een foutief bestand de compilatie van alle bestanden in een loaderbestand afbreekt, de bestanden die achter het defecte bestand worden vermeld, worden gecompileerd wanneer het defecte bestand wordt hersteld en de merkpredicaten worden aangeroepen.
Wat is nieuw in versie 3.01.2:
Deze release voltooit de implementatie van statische bindingen; voegt ondersteuning toe voor het gebruik van bestandsnamen as-is met de compilatie en laden predicaten; lost compiler bugs op; bevat documentatie-updates; verbetert de tools voor foutopsporing, testen en documenteren; voegt een nieuwe set eenheidstests toe voor het controleren van de conformiteit van Prolog met officiële en de facto standaarden; werkt de syntaxiskleuring bij voor alle ondersteunde teksteditors en syntaxismarkers; en bevat compatibiliteitsupdates voor ECLiPSe, JIProlog en YAP.
Eisen
Compatibele Prolog-compiler.
Reacties niet gevonden