Prolog è un linguaggio di programmazione logica di uso generale che è stato rilasciato nel 1972, con pochissimi aggiornamenti da allora.
Logtalk è stato creato per aggiungere funzionalità più moderne a Prolog, soprattutto miglioramenti delle prestazioni, le espressioni lambda, regole grammaticali, errori di compilazione migliorate e la segnalazione di avvertimento.
In cima a questi, aggiungere un processo di installazione più facile e aggiornamenti di compatibilità compilatore Prolog.
Questo rende Logtalk una migliore, più valida alternativa al Prolog nel giorno moderno AI e linguistica informatica scenari, una molto più potente linguaggio multi-paradigma, adatto per event-driven e di alto livello multi-threading di programmazione.
sintassi Attualmente Logtalk estende la sintassi standard Prolog ed è possibile eseguire Logtalk su questi compilatori Prolog:
B-Prolog
CxProlog
Eclipse
GNU Prolog
magra Prolog
Qu-Prolog
SICStus Prolog
SWI Prolog
XSB
YAP
Cosa c'è di nuovo in questa versione:
- MIGLIORATA:
- Le modifiche ai tag termine usato quando la scrittura di codice compilato per ridurre al minimo le dimensioni dei file Prolog intermedi generati che utilizzano questi tag per decidere quando decorare termini compilato con dati di localizzazione fonte (attualmente, solo SWI-Prolog si avvale della dati di localizzazione).
- FISSO:
- Un file può avere più di un file principale.
Cosa c'è di nuovo nella versione 3.02.2:
- MIGLIORATA:
- Le modifiche ai tag termine usato quando la scrittura di codice compilato per ridurre al minimo le dimensioni dei file Prolog intermedi generati che utilizzano questi tag per decidere quando decorare termini compilato con dati di localizzazione fonte (attualmente, solo SWI-Prolog si avvale della dati di localizzazione).
- FISSO:
- Un file può avere più di un file principale.
Cosa c'è di nuovo nella versione 3.02.1:
- MIGLIORATA:
- Le modifiche ai tag termine usato quando la scrittura di codice compilato per ridurre al minimo le dimensioni dei file Prolog intermedi generati che utilizzano questi tag per decidere quando decorare termini compilato con dati di localizzazione fonte (attualmente, solo SWI-Prolog si avvale della dati di localizzazione).
- FISSO:
- Un file può avere più di un file principale.
Cosa c'è di nuovo nella versione 3.00.4:
- MIGLIORATA:
- Le modifiche ai tag termine usato quando la scrittura di codice compilato per ridurre al minimo le dimensioni dei file Prolog intermedi generati che utilizzano questi tag per decidere quando decorare termini compilato con dati di localizzazione fonte (attualmente, solo SWI-Prolog si avvale della dati di localizzazione).
- FISSO:
- Un file può avere più di un file principale.
Cosa c'è di nuovo nella versione 3.00.2:
- MIGLIORATA:
- Le modifiche ai tag termine usato quando la scrittura di codice compilato per ridurre al minimo le dimensioni dei file Prolog intermedi generati che utilizzano questi tag per decidere quando decorare termini compilato con dati di localizzazione fonte (attualmente, solo SWI-Prolog si avvale della dati di localizzazione).
- FISSO:
- Un file può avere più di un file principale.
Cosa c'è di nuovo nella versione 3.00.1:
- MIGLIORATA:
- Le modifiche ai tag termine usato quando la scrittura di codice compilato per ridurre al minimo le dimensioni dei file Prolog intermedi generati che utilizzano questi tag per decidere quando decorare termini compilato con dati di localizzazione fonte (attualmente, solo SWI-Prolog si avvale della dati di localizzazione).
- FISSO:
- Un file può avere più di un file principale.
Cosa c'è di nuovo nella versione 2.44.1:
- Corretto un bug nella compilazione del meta_non_terminal / 1 la direttiva in cui solo il primo meta-argomento verrà elaborato in modo corretto.
- Aggiornato il file di configurazione di Eclipse per rilevare quando in esecuzione su Windows 64 bit e sistemi di ignorare non predicato e non operatore esportazioni quando pre-elaborazione lib / 1 direttive.
- Aggiornato il quadro unit test per stampare i messaggi più informativi per i test unitari falliti.
- predicato Aggiunto Split / 4 (per suddividere l'elenco in sottoliste con una data lunghezza) per il & quot; listp & quot ;, & quot; elenco & quot ;, e & quot; difflist & quot; entità della biblioteca.
- Aggiornato il & quot; cc & quot; ad esempio con una definizione per la shell / 2 predicato per CxProlog.
- cambiato i nomi degli oggetti del & quot; Mi & quot; ad esempio per evitare un conflitto di nomi durante l'esecuzione dei test di esempio di unità.
- Corretto un bug nel programma di installazione di Windows che impediva il rilevamento di YAP 64 bit versioni. Grazie a Stepan Ipatov per la segnalazione di bug.
Cosa c'è di nuovo nella versione 2.44.0:
- Questa versione cambia la semantica di integrare categorie, permettendo il suo uso di patch codice oggetto esistente, corregge due bug nel trattamento dei meta-chiamate, permette di liste aperte di terminali nel corpo di regole DCG, aggiunge due nuovi esempi, e migliora il supporto per l'editor di testo Vim e per ctags esuberante.
Cosa c'è di nuovo nella versione 2.43.3:
- Corretto un bug nel gestore Logtalk compilatore runtime dove non è riuscito a decompilare identificatori di entità interne quando generare eccezioni entità esistenza.
- Aggiornato il file di configurazione Prolog Lean, aggiungendo indice / 1 direttive per alcuni dei predicati dinamici utilizzati dalle tabelle Logtalk runtime interni.
- Aggiornamento dei file di integrazione SWI-Prolog per verificare la disponibilità della direttiva dell'indice / 1, che è deprecato dal nuovo supporto sperimentale SWI-Prolog per just-in-time multi-argomento indicizzazione.
- Aggiunto predicati subsequence / 4 (per la generazione di sottosequenze di un elenco con una data lunghezza), sostituire / 4 (per la sostituzione di elementi in una lista), e hamming_distance / 3 alla biblioteca & quot; listp & quot; e & quot; elenco & quot; entità.
- euclidean_norm Aggiunta / 2, chebyshev_norm / 2, manhattan_norm / 2, euclidean_distance / 3, chebyshev_distance / 3, manhattan_distance / 3, e scalar_product / 3 predicati alla biblioteca & quot; numberlistp & quot; e & quot; numberlist & quot; entità.
- Corretti alcuni bug stupide nella definizione del & quot; carattere & quot; oggetto della biblioteca predicati is_bin_digit / 1, is_octal_digit / 1, is_dec_digit / 1, e is_hex_digit / 1.
- Aggiornata la libreria & quot; all_loader.lgt & quot; file del caricatore per caricare anche il & quot; meta_compiler_loader.lgt & quot; file del caricatore.
Cosa c'è di nuovo nella versione 2.43.2:
- Ottimizzato il trattamento delle dichiarazioni dell'operatore durante la compilazione i file sorgente e la creazione di nuove entità dinamicamente.
- Aggiornato il compilatore Logtalk di usare i & quot; moduli & quot; compilatore bandiera durante il test per il supporto dei moduli Prolog, quindi evitare problemi di compilazione con back-end Prolog compilatori che non supportano un sistema di moduli, ma ancora definire (:). / 2 come un built-in costrutto di controllo o predicato
- Rimosso supporto per il & quot; startup_message & quot; compilatore bandiera & quot; flag (compatte) & quot; e & quot; flag (verbose) & quot; valori, sostituiti da un singolo valore, & quot; bandiere & quot ;, che corrisponde alla vecchia & quot; flag (compatte) & quot; valore.
- Corretto un bug quando si utilizza op 3 direttive / i / 4 predicati built-in create_protocol / 3, create_object / 4, e Create_category dove le dichiarazioni degli operatori locali sarebbero visibili al di fuori delle nuove entità.
- Corretto un bug in cui la creazione di una nuova entità dinamica in fase di esecuzione potrebbe definire un predicato dinamico contabilità non più utilizzati che non sarebbe stato abolito quando l'entità viene abolita.
- Corretto un bug del compilatore in cui un & quot; Super & quot; chiamare dall'interno di un oggetto che solo se stessa un'istanza e non si specializzano qualsiasi oggetto sarebbe un'eccezione, invece di fallire.
- Aggiornato il & quot; & quot parametri di riferimento; esempio per proteggere eccezioni aritmetiche quando si calcola il numero totale di chiamate al secondo per ciascuna prova. Ridotto il numero di ripetizioni di test di benchmark durante l'esecuzione dei test di unità per evitare tempi di calcolo lunghi con lenti di back-end Prolog compilatori.
Cosa c'è di nuovo nella versione 2.43.1:
- Cambiato il compilatore di tener conto degli usi / 2 direttiva quando si compila chiamate ai metodi built-in database. Questo cambiamento si estende la semantica della direttiva usi / 2 e consente la migrazione più facile da applicazioni semplici Prolog per Logtalk.
- Aggiunto il supporto sperimentale per l'utilizzo di un modello predicato come argomento al coinduttiva direttiva / 1. Questo modello permette di specificare quali argomenti sono significativi per il successo coinduttiva. Sulla base di una funzionalità simile trovato il DRA su meta-interprete di Feliks kluzniak.
- Migliorato il supporto per il debug predicati coinduttive quando si utilizza il Logtalk debugger incorporato.
- Supporto coinduzione Rimosso per CxProlog. La versione corrente di questo compilatore manca di un soft-cut built-in predicato o di controllo costrutto, che ora è richiesto dalla realizzazione sperimentale coinduzione.
- Sollevato una limitazione di lunga data che ha impedito la definizione utente di predicati wrapper per la bagof / 3 e setof / 3 built-in metodi ogni volta che l'argomento obiettivo può utilizzare il quantificatore esistenziale ^ / 2.
- Aggiunto il supporto per il & quot; ^ & quot; modalità meta-argomento specificatore meta-predicato suggerito da Jan Wielemaker e trovato su SWI-Prolog 5.11.25. Questa specificazione modalità è utile quando si definisce wrapper per le / 3 e setof / 3 metodi built-in bagof ogni volta che l'argomento obiettivo può utilizzare il quantificatore esistenziale ^ / 2.
- Aggiunto & quot; prolog_compiler & quot; e & quot; prolog_loader & quot; flag di compilazione, che consentono il passaggio delle opzioni al back-end Prolog compilatore predicati built-in che compilano su disco e caricare un (compilato) Prolog bandiera. Il valore predefinito per entrambe le bandiere è la lista vuota.
- Corretto un bug quando si compila le chiamate verso Prolog proprietaria built-in meta-predicati in cui il compilatore Logtalk potrebbe tentare di elaborare meta-argomenti non come obiettivi. Questo bug si manifesta solo con alcuni di back-end Prolog compilatori come Eclipse.
- Corretto un bug nella lavorazione delle direttive di compilazione condizionale.
- Corretto un bug che impediva il passaggio alias 3 direttive / a chiamate al create_object / 4, Create_category / 4, e create_protocol / 3 predicati built-in.
- Rimosso dal built-in oggetto & quot; Logtalk & quot; i metodi obsoleti decompile_predicate_head / 4 e decompile_predicate_indicator / 4.
- Rimosso supporto per il lungo deprecato Logtalk metapredicate direttiva / 1.
- Corretto un bug prestazioni quando la memorizzazione nella cache le chiamate a categoria predicati in cui le voci memorizzate nella cache potrebbe essere più preciso del necessario quando si lavora con le categorie parametriche.
- caching di & quot migliorata; Super & quot; chiamate dall'interno di prototipi. In precedenza, tutte le voci memorizzate nella cache potrebbero essere specializzati per il valore di & quot; auto & quot; al fine di affrontare adeguatamente i casi speciali in cui un oggetto sia un'istanza ed è specializzata altri oggetti.
- Aggiornato il compilatore Logtalk per attivare tutte le dichiarazioni degli operatori presenti sul direttive portata predicato durante la compilazione delle entità che contengono le direttive.
- migliorato le prestazioni dei predicati coinduttive quando si utilizza di back-end Prolog compilatori quali SICStus Prolog che non forniscono il controllo costrutto soft-taglio, ma forniscono il soft-cut built-in meta-predicato (se / 3).
- Corretto un bug in cui un rapporto spurio di avvertimenti di compilazione / caricamento potrebbe essere stampata quando un file sorgente è stato compilato / caricato con il flag di compilazione & quot; rapporto & quot; disattivato.
- ha aggiunto un & quot; streamvars & quot; oggetto della libreria, derivato dal quot esistente &; assignvars & quot; categoria biblioteca, con il supporto per l'aggiunta e il recupero dei termini (che possono essere variabili) da un & quot; flusso & quot; variabile.
- Aggiornato il & quot; coinduzione & quot; esempio, approfittando del coinduttiva direttiva / 1 rafforzata e ampliare il numero di singoli esempi che possono essere eseguiti utilizzando SICStus Prolog. Aggiunto un esempio modello controllo, utilizzando coinduzione, coroutining e vincoli.
- Aggiornato il & quot; metapredicates & quot; Esempio con il codice di esempio che illustra come definire wrapper per le / 3 e setof / 3 metodi incorporati bagof quando la meta-argomento può contenere variabili esistenzialmente qualificati.
- Aggiornato il & quot; cc & quot; esempio, correggendo le definizioni predicato per diversi back-end Prolog compilatori e l'aggiunta di alcuni test di unità di base.
- Aggiornato il & quot; codifiche & quot; Esempio con supporto limitato per magra Prolog.
- Aggiunto voci mancanti per la meta_non_terminal direttiva / 1 e per la chiamata // N non terminale al & quot; aiuto & quot; esempio.
- Aggiunto un parser per PDDL 3.0 file, contribuito da Robert Sasak.
- codice Aggiunto pieghevole supporto per l'editor di testo SubEthaEdit. codice Aggiunto il supporto per i blocchi di compilazione condizionale alle editor di testo Kate, Vim e TextMate pieghevole.
- Aggiornamento degli script di integrazione per caricare il file percorsi di libreria prima di caricare il Logtalk compilatore / runtime. Questo cambiamento mira a semplificare il caricamento di file di libreria e di esempio dai file di impostazioni. Inoltre, anche cercare la directory di installazione Logtalk in $ HOME / share quando la variabile di ambiente LOGTALKHOME non è definita.
- Aggiornato il programma di installazione di Windows al fine di sostenere magra Prolog e rilevare YAP 64 bit versioni.
Cosa c'è di nuovo nella versione 2.43.0:.
- Aggiunto il supporto sperimentale per magra Prolog
- Rimosso la restrizione Logtalk compilatore che ha costretto contigui / 1 e dinamiche / 1 direttive precedere le chiamate verso i predicati dichiarati.
- Migliorata la relazione Logtalk compilatore di chiamate errori di ortografia per i non-terminali regole grammaticali.
- Consentire l'utilizzo del:. Controllo / 1 costruire sul corpo di regole grammaticali
- Quando il debug di messaggi di cui al usi / 2 direttive, il messaggio viene ora stampato implicitamente qualificato come nel codice sorgente scritto dall'utente.
- cambiato i predicati interni utilizzati nella realizzazione del built-in predicati multi-threading, al fine di facilitare l'integrazione con strumenti di debug di alto livello che richiedono la decompilazione del codice Prolog generato.
- Corretto un bug nella libreria di supporto per i test unitari, & quot;. Lgtunit & quot ;, dove i test per le eccezioni avrebbero accettato qualsiasi termine eccezione in quanto conforme alle specifiche di prova Unità
- Aggiornato il & quot; cc & quot; esempio con correzioni di bug e miglioramenti per Eclipse contribuito da Joachim Schimpf, con una correzione di bug per l'attuazione SWI-Prolog del expand_path 2 predicato / (derivanti dalle recenti modifiche apportate al SWI-Prolog absolute_file_name / 3 predicato built-in), e con una definizione per la command_line_arguments / 1 predicato per B-Prolog.
- Aggiornato il & quot; coinduzione & quot; ad esempio, l'aggiunta di alcuni altri singoli esempi.
- Aggiornato il & quot; xml_parser & quot; contributo al fine di aggirare problemi di portabilità con GNU Prolog.
- Corretto un bug in alcuni script di shell in cui & quot; #! / Bin / bash & quot; è stato utilizzato al posto di & quot; #! / bin / bash & quot ;. Grazie a Yiorgos Adamopoulos per la segnalazione di bug.
- Aggiornato lo script di installazione GUI di Windows Inno Setup al fine di consentire l'installazione completa dagli utenti non-admin.
- Aggiunto il supporto colorazione della sintassi per la direttiva ISO Prolog includono / 1 a tutti gli editor di testo supportati e evidenziatori di sintassi.
- Corretti alcuni bug nella scheda trigger per i frammenti Gedit Logtalk che hanno impedito il loro uso.
- Ritorna ad utilizzare XEP invece di FOP durante la generazione delle versioni PDF dei manuali utente e di riferimento come FOP tronca il contenuto di alcune delle pagine.
Cosa c'è di nuovo nella versione 2.42.4:
- Aggiunta una entity_prefix / 2 predicato e due serie di predicati utilità, decompile_predicate_heads / 2-4 e decompile_predicate_indicators / 2-4, per il & quot; Logtalk & quot; incorporato in oggetto. Contrassegnato il decompile_predicate_head / 4 e decompile_predicate_indicator / 4 come deprecato.
- Aggiunto il supporto per conservare le informazioni possibilità di operatori ha dichiarato l'uso di direttive di portata durante la fase di compilazione. Aggiunta di informazioni su entità dichiarato agli operatori di XML che documenta i file. Aggiornato il testo, PDF, e gli script di conversione (X) HTML per stampare le informazioni all'operatore.
- Applied diverse ottimizzazioni di basso livello al Logtalk compilatore / runtime.
- Spostato i predicati interne che costruiscono e accedono al contesto di esecuzione predicato dal compilatore di file di configurazione Prolog, al fine di sostenere la messa a punto delle prestazioni che è Prolog compilatore dipendente.
- aggiornato l'attuazione del / 1 multi-threading predicato incorporato filettato per utilizzare un'ottimizzazione piccola prestazioni ottenute secondo i term_variables / 2 predicato built-in suggeriti da Timon Van Overveldt. Questa ottimizzazione mira a ridurre la copia inutile e unificazione dei termini. Inoltre, sostituire l'uso del / 3 predicato setup_call_cleanup built-in con il / 3 predicato built-in di cattura da semplificare la gestione di entrambi i master e slave thread, che migliora anche le prestazioni.
- Corretto un bug nell'implementazione del / 1 multi-threading predicato threaded built-in in caso di guasto dall'utente per specificare gli obiettivi indipendenti quando si tenta di usare indipendente e parallelismo si tradurrebbe in discussioni zombie.
- termini eccezione più informativi quando si tenta di dichiarare un predicato sincronizzato come dinamico o un predicato dinamico come sincronizzato.
- Aggiornato il file di configurazione XSB al fine di sostenere la compilazione di moduli come oggetti. Aggiunta una definizione per l'/ 4 predicato built-in setup_call_catcher_cleanup mancante. XSB 3.3 (o versione successiva) è ora richiesto per la compatibilità con Logtalk.
- Aggiornato il file di configurazione SWI-Prolog al fine di fornire un supporto limitato per la arithmetic_function / 1 direttiva proprietario (funzioni aritmetiche vengono compilano come globale anziché come locale per gli oggetti o le categorie che definiscono loro).
- Aggiornato il file di configurazione YAP al fine di ignorare l'/ direttiva style_check 1 e di interpretare la direttiva yap_flag / 2 come una direttiva set_prolog_flag / 2.
- Modificato il processore XSL-FO default (usato per generare le versioni PDF dei manuali utente e di riferimento) da XEP di FOP.
- Aggiornato il & quot; xml_parser & quot; contributo al fine di aggirare problemi di portabilità con Qu-Prolog, SICStus Prolog, e XSB.
- Aggiornato il & quot; codifiche & quot; esempio per garantire che la non vi è spazio prima della codifica direttiva / 1.
- Aggiornato il & quot; attvars & quot; ad esempio al fine di sostenere B-Prolog e XSB. Anche aggiunto il supporto per l'utilizzo di variabili attribuite all'interno degli oggetti parametrici Logtalk e categorie parametrici. Grazie a Jan Wielemaker, vator Santos Costa, e Bart Demoen per il feedback e suggerimenti di implementazione.
- Aggiornato il & quot; profiler & quot; esempio con il supporto preliminare per le modifiche ai profili di esecuzione nel 4.2 versione SICStus Prolog.
- Aggiornato il & quot; espansione & quot; Esempio con più codice di esempio su come combinare TERM- e definizioni obiettivi di espansione da diversi oggetti ganci.
- Aggiornato il & quot; coinduzione & quot; ad esempio, l'aggiunta di un sperimentale keysort / 2 coinduttiva predicato. Grazie a Jan Burse per il suggerimento.
- Aggiornato il & quot; Tak & quot; multi-filettatura esempio in cui un taglio mancanti comporterebbe esaurire rapidamente stack locale quando si usa SWI-Prolog causa della creazione di un gran numero di punti di scelta non necessari.
- Aggiornato il & quot; mtbatch & quot; ad esempio multi-threading, al fine di fornire analisi comparativa espansa del & quot; Tak & quot; esempio.
- Aggiornato il portfile MacPorts e lo script che aggiorna al fine di rimuovere il calcolo il checksum MD5, che è in fase di esaurimento da MacPorts.
- Aggiornato lo script di installazione GUI di Windows Inno Setup, al fine di aggirare un bug su gli installatori SWI-Prolog Windows in cui la procedura di disinstallazione non riescono a eliminare le chiavi di SWI-Prolog dal Registro di sistema di Windows.
Cosa c'è di nuovo nella versione 2.42.3:
- Consenti predicati dinamici dichiarati in una categoria a essere chiamato in & quot; questo & quot; all'interno della categoria. Nelle versioni precedenti, tali chiamate si tradurrebbe in un errore di compilazione, costringendo questi predicati di essere chiamato in & quot; auto & quot; (Utilizzando il messaggio :: / 1 invio di controllo costrutto).
- supporto del compilatore Aggiunto Logtalk per teste clausola precompilati (utilizzando il {} / 1 controllo costrutto). Questa funzione è particolarmente utile quando si utilizza il meccanismo termine-espansione.
- Corretto un bug sul codice che semplifica le clausole predicato generati dalla compilazione di regole grammaticali. Il codice sarebbe ciclo quando una regola grammaticale conteneva una meta-variabile, che il compilatore Logtalk dovrebbe (ma attualmente non) rapporto come illegale (il costrutto chiamata / 1 di controllo deve essere usato al posto in questo caso).
- semplificata la compilazione delle chiamate nel contesto dello pseudo-oggetto & quot; utente & quot;.
- Aggiunto un comando del debugger & quot; p & quot; al debugger incorporato Logtalk. Questo comando stampa l'obiettivo attuale utilizzando la stampa / 1 predicato quando disponibile. Rinominato il comando del debugger & quot; q & quot; & quot; D & quot ;. Corretto un bug in cui il comando del debugger & quot; w & quot; Non sarebbe stato riconosciuto. Cambiato il comando & quot debugger; d & quot; per citare i termini in caso di necessità.
- Aggiunta una parziale attuazione della norma ISO Prolog predicate_property / 2 predicato al file di configurazione di Eclipse.
- Aggiornato il file di configurazione SWI-Prolog al fine di rimuovere la dichiarazione erronea della biblioteca meta-predicati dde_register_service / 2, il tempo / 1, e quando / 2 come built-in meta-predicati.
- applicata una correzione di bug per i & quot; bandiere & quot; contributo messo a disposizione dal suo autore, Theofrastos Mantadelis. Per risolvere il problema un problema di compatibilità con GNU Prolog.
- Aggiunto un memberchk / 2 predicato alla biblioteca & quot; setp & quot; Protocollo e & quot; set & quot; oggetto. predicati aggiunti is_control / 1, is_newline / 1, e is_end_of_line / 1 alla biblioteca & quot; characterp & quot; e & quot; carattere & quot; entità.
- Aggiunto un esempio sperimentale di utilizzo di variabili attribuite all'interno di oggetti e categorie Logtalk. Attualmente richiede l'uso di YAP o SWI-Prolog come il back-end Prolog compilatore.
- Aggiunto il supporto per indessicali alla & quot; vincoli / SICStus & quot; esempio.
- estesa la & quot; delegati & quot; esempio con un esempio di implementazione di un delegante utilizzando un oggetto parametrico.
- estesa la & quot; dynpred & quot; esempio per illustrare come definire categoria predicati che gestiscono predicati dinamici nel contesto del & quot; questo & quot; e nel contesto di & quot; auto & quot;.
- Aggiunto un wall_time / 1 predicato al & quot; cc & quot; esempio.
- Aggiornato l'evidenziazione della sintassi file di test, aggiungendo mancano veri / 0 e fail / 0 costrutti di controllo.
Cosa c'è di nuovo nella versione 2.42.2:
- Aggiornato il compilatore Logtalk al fine di consentire il controllo di proprietà del modulo predicato senza richiedere l'importazione dei predicati in & quot; utente & quot; (Si noti, tuttavia, che il modulo deve ancora essere caricato prima della compilazione dei file di origine chiamando i predicati modulo).
- Aggiornato il compilatore Logtalk al fine di verificare a tempo di compilazione argomenti di chiusura istanziati su chiamata / 2-N obiettivi per gli errori di programmazione comuni.
- Aggiornato il compilatore Logtalk al fine di generare avvisi per le espressioni lambda con variabili che non sono dichiarate sia come variabili libere o parametri lambda o con variabili dichiarate sia come variabili libere e parametri lambda. Grazie a Jan Burse per suggerire questi controlli di integrità.
- Aggiornato il runtime Logtalk al fine di sostenere con il & # x3c; & # x3c; / 2 di controllo costrutto in chiusura meta-argomenti di meta-predicati .
- Aggiunto il supporto per la compilazione chiamate espressione lambda libero / Goal (generando automaticamente un predicato ausiliario, quando possibile).
- Aggiunto un compile_aux_clauses / 1 metodo pubblico, sulla base di un predicato con lo stesso nome in SWI-Prolog, per il built-in oggetto & quot; Logtalk & quot ;. Questo metodo viene chiamato di solito da goal_expansion / 2 ganci per compilare le clausole ausiliari generati per sostenere un obiettivo ampliato.
- Aggiunta la meta-predicato ignorare / 1, attuato da alcuni compilatori Prolog come predicato built-in, come un metodo incorporato Logtalk.
- Aggiornato il file di configurazione SWI-Prolog, al fine di evitare che l'auto-caricamento delle librerie di moduli quando l'interrogazione di proprietà di predicato da Logtalk.
- Aggiornato il file di configurazione XSB Qu-Prolog, SICStus Prolog, e al fine di rendere disponibile il predicato term_variables / 2 come un predicato built-in ISO.
- Aggiornato gli script di integrazione Qu-Prolog, al fine di raddoppiare il valore della dimensione heap per la compilazione del Logtalk compilatore / runtime, risolvendo un crash di avvio.
- ripristinato il comando file MacOS X per GNU Prolog (salito dal & quot; scripts / MacOSX / command_files / non supportato & quot; cartella).
- Aggiunto predicati findall_member / 4-5 all'oggetto biblioteca & quot; meta & quot; (Basata sul progetto Prolog proposta biblioteca di Richard O'Keefe). Rimosso dichiarazione e definizione dei predicati callable / 1 e ignorare / 1 dalla biblioteca entità & quot; METAP & quot; e & quot; meta & quot; (Callable / 1 è un predicato built-in in tutti i compilatori Prolog supportati; ignorare / 1 ora è un metodo incorporato Logtalk) .
- Aggiunto un oggetto libreria, & quot; meta_compiler & quot ;, che può essere utilizzato come un oggetto gancio per espandere le chiamate ai meta-predicati definiti nella libreria di oggetti di & quot; meta & quot; al fine di evitare le spese generali meta-chiamata. Per questi casi in cui la chiamata meta-predicato non può essere ottimizzato, la definizione di default sul & quot; meta & quot; oggetto viene utilizzato. Utilizzando strutture di controllo come meta-argomenti non è (ancora) supportata. Lavori in corso.
- Aggiunta di un protocollo, & quot; loggingp & quot ;, e di categoria e degli oggetti implementazioni, & quot; logging & quot; e & quot;. logger & quot ;, dichiarare e definire funzionalità di base per la registrazione degli eventi per i file alla biblioteca
- Aggiunta di un protocollo, & quot; intervalp & quot ;, e un oggetto, & quot; intervallo & quot ;, dichiarare e definire le relazioni intervalli temporali di base per la libreria (basato sul lavoro di James F. Allen Intervallo Algebra) .
- Aggiunta di una categoria attuazione contatori chiamati interi, & quot;. Contatori & quot ;, alla biblioteca
- predicati Aggiunto proper_prefix / 2 e proper_suffix / 2 alla biblioteca entità & quot; listp & quot ;, & quot; elenco & quot ;, e & quot; difflist & quot;.
- predicato Aggiunto recepire / 2 per l'oggetto della biblioteca & quot; pairs & quot;.
- aggiunto due pseudo-esempi per scopi di test, & quot; lambdas_compiled & quot; e & quot; metapredicates_compiled & quot ;, che fanno uso del nuovo oggetto della biblioteca
- & quot; meta_compiler & quot;.
- Aggiornato il & quot; espansione & quot; esempio per illustrare come definire e combinare oggetti gancio.
- Aggiunto il supporto per l'utilizzo del pacchetto di SyntaxHighlighter (versione 3.0.83 o successiva) da Alex Gorbatchev con il codice sorgente Logtalk.
- Aggiunta la colorazione della sintassi mancante del resto / 0 condizionato direttiva di compilazione al supporto GNU Source-highlight highlighter.
- Aggiunta una nota sul supporto modifica del testo Logtalk disponibili sul editor di testo MacOS X Kod gratuito.
- Aggiunto il supporto colorazione della sintassi per il nuovo ignorare / 1 metodo incorporato per tutti gli editor di testo supportati e evidenziatori di sintassi.
Cosa c'è di nuovo nella versione 2.42.1:
- Aggiunto il supporto al compilatore Logtalk per il rilevamento e la segnalazione mancante / 1 e discontinui direttive dinamici / 1 predicato.
- Aggiunta una nuova bandiera niente, & quot; missing_directives & quot ;, con un valore predefinito di & quot; allarme & quot ;, a tutti i file di configurazione. Questo flag consente la stampa di avvisi del compilatore mancanti / 1, / 1, e multifile / 1 predicato direttive non contigue dinamici.
- Supporto di nuovi indicatori di modalità modello meta-predicato: (/) per un indicatore predicato, [/] per un elenco di indicatori predicato, e [0] per una lista di obiettivi .
- Corretto un bug nel compilatore Logtalk al momento del check teste clausola meta-predicati per gli errori in cui il & quot; :: & quot; Indicatore della modalità di meta-argomento è stato ancora interpretato come & quot; 0 & quot;.
- Corretto un bug nella gestione delle chiusure (in meta-chiamate) che vengono utilizzati per costruire le chiamate per controllare costrutti o predicati built-in che potrebbero causare chiamare alcuni meta-argomenti nel contesto sbagliato. Grazie a Ulrich Neumerkel per l'esempio che illustra nella mailing list SWI-Prolog.
- Aggiornato il compilatore Logtalk al fine di evitare gli avvisi di stampa sui riferimenti alla & quot mancante; quot espansione &; e & quot; monitoraggio & quot; built-in protocolli durante la compilazione dei moduli come oggetti.
- per conversione le novità della versione 2.39.2 che hanno permesso la pseudo-oggetto & quot; utente & quot; praticamente a contenere la definizione di tutti i predicati built-in Prolog. Questo potrebbe portare a risultati diversi a seconda del back-end Prolog compilatore, specialmente quando si chiama meta-predicati nel contesto di & quot; utente & quot;.
- Corretto un bug nel SWI-Prolog & quot; swihooks.lgt & quot; di file che ha provocato un messaggio di errore fasullo su una bandiera Logtalk non valida quando si consulta un file Prolog quando vi è un file sorgente Logtalk con lo stesso nome nella stessa directory.
- Aggiunto il supporto mancante per proprietari built-in meta-predicati ai file di configurazione YAP B-Prolog, SICStus Prolog, SWI-Prolog, XSB, e.
- Aggiornato il SICStus Prolog, SWI-Prolog, ei file di configurazione YAP al fine di sovrascrivere i template meta-predicato per la consultazione / 1 e load_files / 2 predicati built-in.
- Aggiunta l'implementazione di un map_reduce / 5 meta-predicato all'oggetto biblioteca & quot; meta & quot;.
- Aggiunta l'implementazione di un command_line_arguments / 1 predicato al & quot; cc & quot; esempio.
- Aggiornato il & quot; lambda & quot; e & quot; metapredicates & quot; esempi, che illustrano come calcolare i numeri di Fibonacci con una piega a sinistra meta-predicato. Aggiornato il & quot; metapredicates & quot; Esempio con un esempio di utilizzo del map_reduce / 5 meta-predicato.
- Aggiornato il & quot; problog & quot; esempio, aggiungendo il supporto preliminare per la nuova sintassi disgiunzioni annotati.
- Aggiunto un & quot; magia & quot; elemento per il file mime-type Logtalk per la freedesktop.org condiviso database MIME-info.
Cosa c'è di nuovo nella versione 2.42.0:.
- Aggiunto un'implementazione di bandiere di oggetti persistenti
- Aggiunta una nuova coppia di predicati built-in, conforms_to_protocol / 2-3, l'attuazione della chiusura transitiva della relazione implementazione del protocollo.
- Aggiunta una direttiva sperimentale, l'annotazione / 1, per sostenere l'integrazione Logtalk con altre lingue come ProbLog e CHR.
esempio.
esempio.
I commenti non trovato