E 'fini della programmazione logica utili, l'intelligenza artificiale e linguistica computazionale
Cosa c'è di nuovo in questa versione:.
- Il nuovo tipo dict e la sintassi fornisce entrambe le mappe tempo e dello spazio efficiente nome-valore con una sintassi piacevole.
- Di conseguenza, è stato necessario sostituire costruttore lista (H, T) dalla (anche in uso da mercurio) '[|]'. (H, T). Che può sembrare drastico, ma in pratica colpisce soltanto alcuni programmi, in particolare facendo funtore (Term, F, A) su liste e quindi selezionando l'ulteriore elaborazione su F == '.', A == 2. Per trasformare più liste in una costrutto speciale, [] è ancora la lista vuota, ma non è più lo stesso di '[]', vale a dire, [] non è atomo.
- La sintassi & quot; ... & quot; è ora mappato alle stringhe. Le stringhe sono compatibili con Eclipse (grazie a Joachim Schimpf per tutte le discussioni). Code-list tradizionali sono costruiti utilizzando .... Le bandiere double_quotes e back_quotes controllano questo comportamento.
- Grazie a Torbjorn Lager, abbiamo & quot; & quot ;, Pengines motori Prolog sul web. Ciò fornisce un'API generica per parlare comodamente a un server Prolog da JavaScript e altre istanze Prolog. E 'abilitata SWISH, SWI-Prolog nel tuo browser (http://swish.swi-prolog.org), così come http://lpn.swi-prolog.org (Per saperne di Prolog Now! Con SWISH incorporato).
- Markus Triska aggiunto CLP (b), il risolutore vincolo booleana, ha migliorato il suo CLP (FD) ed è stato prima di diversi miglioramenti al livello superiore che fare con i vincoli.
- Grazie a Matt Lilley e Mike Elston, c'è CQL, un DSL (Domain Specific Language) per trattare con SQL. CQL si sviluppa in un ambiente in cui i database SQL complesse sono la norma e supporta quindi un grande sottoinsieme di SQL e possono occuparsi di tabelle con migliaia di colonne e altre cose che l'utente SQL ocasional non si aspetta.
- Matt Lilley migliorato supporto di rete in modo significativo, tra cui un supporto molto migliore per SSL e supporto generale per entrambi HTTP e server proxy SOCKS.
- Molte persone hanno fornito componenti aggiuntivi (pacchetti) che si basano su SWI-Prolog versione 7.
Cosa c'è di nuovo nella versione 7.2.1 / 7.3.3-dev:
- Il nuovo tipo dict e la sintassi fornisce sia mappe di tempo e di spazio efficiente nome-valore con una sintassi piacevole.
- Di conseguenza, è stato necessario sostituire costruttore lista (H, T) dalla (anche in uso da mercurio) '[|]'. (H, T). Che può sembrare drastico, ma in pratica colpisce soltanto alcuni programmi, in particolare facendo funtore (Term, F, A) su liste e quindi selezionando l'ulteriore elaborazione su F == '.', A == 2. Per trasformare più liste in una costrutto speciale, [] è ancora la lista vuota, ma non è più lo stesso di '[]', vale a dire, [] non è atomo.
- La sintassi & quot; ... & quot; è ora mappato alle stringhe. Le stringhe sono compatibili con Eclipse (grazie a Joachim Schimpf per tutte le discussioni). Code-list tradizionali sono costruiti utilizzando .... Le bandiere double_quotes e back_quotes controllano questo comportamento.
- Grazie a Torbjorn Lager, abbiamo & quot; & quot ;, Pengines motori Prolog sul web. Ciò fornisce un'API generica per parlare comodamente a un server Prolog da JavaScript e altre istanze Prolog. E 'abilitata SWISH, SWI-Prolog nel tuo browser (http://swish.swi-prolog.org), così come http://lpn.swi-prolog.org (Per saperne di Prolog Now! Con SWISH incorporato).
- Markus Triska aggiunto CLP (b), il risolutore vincolo booleana, ha migliorato il suo CLP (FD) ed è stato prima di diversi miglioramenti al livello superiore che fare con i vincoli.
- Grazie a Matt Lilley e Mike Elston, c'è CQL, un DSL (Domain Specific Language) per trattare con SQL. CQL si sviluppa in un ambiente in cui i database SQL complesse sono la norma e supporta quindi un grande sottoinsieme di SQL e possono occuparsi di tabelle con migliaia di colonne e altre cose che l'utente SQL ocasional non si aspetta.
- Matt Lilley migliorato supporto di rete in modo significativo, tra cui un supporto molto migliore per SSL e supporto generale per entrambi HTTP e server proxy SOCKS.
- Molte persone hanno fornito componenti aggiuntivi (pacchetti) che si basano su SWI-Prolog versione 7.
Cosa c'è di nuovo nella versione 7.2.0 / 7.3.1-dev:
- Il nuovo tipo dict e la sintassi fornisce sia mappe di tempo e di spazio efficiente nome-valore con una sintassi piacevole.
- Di conseguenza, è stato necessario sostituire costruttore lista (H, T) dalla (anche in uso da mercurio) '[|]'. (H, T). Che può sembrare drastico, ma in pratica colpisce soltanto alcuni programmi, in particolare facendo funtore (Term, F, A) su liste e quindi selezionando l'ulteriore elaborazione su F == '.', A == 2. Per trasformare più liste in una costrutto speciale, [] è ancora la lista vuota, ma non è più lo stesso di '[]', vale a dire, [] non è atomo.
- La sintassi & quot; ... & quot; è ora mappato alle stringhe. Le stringhe sono compatibili con Eclipse (grazie a Joachim Schimpf per tutte le discussioni). Code-list tradizionali sono costruiti utilizzando .... Le bandiere double_quotes e back_quotes controllano questo comportamento.
- Grazie a Torbjorn Lager, abbiamo & quot; & quot ;, Pengines motori Prolog sul web. Ciò fornisce un'API generica per parlare comodamente a un server Prolog da JavaScript e altre istanze Prolog. E 'abilitata SWISH, SWI-Prolog nel tuo browser (http://swish.swi-prolog.org), così come http://lpn.swi-prolog.org (Per saperne di Prolog Now! Con SWISH incorporato).
- Markus Triska aggiunto CLP (b), il risolutore vincolo booleana, ha migliorato il suo CLP (FD) ed è stato prima di diversi miglioramenti al livello superiore che fare con i vincoli.
- Grazie a Matt Lilley e Mike Elston, c'è CQL, un DSL (Domain Specific Language) per trattare con SQL. CQL si sviluppa in un ambiente in cui i database SQL complesse sono la norma e supporta quindi un grande sottoinsieme di SQL e possono occuparsi di tabelle con migliaia di colonne e altre cose che l'utente SQL ocasional non si aspetta.
- Matt Lilley migliorato supporto di rete in modo significativo, tra cui un supporto molto migliore per SSL e supporto generale per entrambi HTTP e server proxy SOCKS.
- Molte persone hanno fornito componenti aggiuntivi (pacchetti) che si basano su SWI-Prolog versione 7.
Cosa c'è di nuovo nella versione 6.6.6 / 7.1.37:
- Lavorazione dei # !, vincolante un file a un interprete in Unix non cerca di essere intelligenti su opzioni di elaborazione per l'interprete. L'effetto di questo cambiamento dipende dalle versioni Unix:. Alcuni solo passare la prima opzione, altri imballare tutte le opzioni in un unico e altri ancora passano le opzioni dopo la rottura di loro
- La bandiera argv Prolog prevede solo argomenti che non sono stati elaborati da Prolog.
- Il file di inizializzazione .plrc (pl.ini in Windows) non è più cercato nella directory di lavoro per ragioni di sicurezza.
Cosa c'è di nuovo nella versione 6.6.6 / 7.1.31:
- Lavorazione dei # !, vincolante un file a un interprete in Unix non cerca di essere intelligenti su opzioni di elaborazione per l'interprete. L'effetto di questo cambiamento dipende dalle versioni Unix:. Alcuni solo passare la prima opzione, altri imballare tutte le opzioni in un unico e altri ancora passano le opzioni dopo la rottura di loro
- La bandiera argv Prolog prevede solo argomenti che non sono stati elaborati da Prolog.
- Il file di inizializzazione .plrc (pl.ini in Windows) non è più cercato nella directory di lavoro per ragioni di sicurezza.
Cosa c'è di nuovo nella versione 6.4.0:
- Aggiornata la libreria RDF alla versione 3. Chiunque prende cura su RDF era probabilmente già utilizzando la versione di sviluppo per questo motivo. Parser veloci aggiunto per ntriples, formati Turtle e Trig.
- Introduzione di quotazione quasi per l'inclusione regolare e sicuro di frammenti linguistici esterni
- Aggiornamento di PlDoc ad accettare i costrutti di riduzione dei prezzi comune.
- Molti miglioramenti agli strumenti di sviluppo, librerie HTTP, il pacchetto clib. ecc Migliorato il supporto per i processi daemon Unix (syslog, UID / GID gestione, ecc.)
- Un inizio per la gestione locale (che supporta il formato / 3, in particolare la scrittura locale specifica grandi interi.
- Un sacco di roba stabilità: si blocca. fisse, le patch di portabilità, costruire miglioramenti del sistema, ecc
Cosa c'è di nuovo nella versione 6.2.0:
- Versione iniziale del pacchetto 'direttore `pacchetto
- Migliore gestione file sorgente, in particolare WRT. : - Includere (file) .
- Molte correzioni al debugger, migliorando maneggevolezza sorgente e la logica che decide su quali porte sono nascoste.
- versione di Windows ora costruire utilizzando il progetto compilatore MinGW, con conseguente aumento di velocità 10-20%. Miglioramenti a swipl-win.exe console:. Copia / incolla e il supporto del colore
Cosa c'è di nuovo nella versione 6.0.0:
- Dinamico indicizzazione just-in-time su più argomenti .
- Sottratto molte delle API di sviluppo, sostenendo l'IDE PDT.
- Un sacco di pulizia, correzioni di bug, ecc.
Cosa c'è di nuovo nella versione 5.11.20:.
- Riduzione utilizzo sentiero-stack
- Fornire garbage collection generazionale.
Cosa c'è di nuovo nella versione 5.11.10:
- Ridurre l'utilizzo trail-stack. (in parte)
- Fornire garbage collection generazionale.
Cosa c'è di nuovo nella versione 5.11.9:
- Ridurre l'utilizzo trail-stack. (in parte)
- Fornire garbage collection generazionale.
Cosa c'è di nuovo nella versione 5.10.0:
- Tutte le piattaforme ora usano denominazione coerente. L'eseguibile SWI-Prolog è chiamato swipl, il linker swipl-ld e il direttore resouce file swipl-rc.
- Nuova memoria gestione dello stack che si basa su una pila di cambiata piuttosto che allocare le cataste scarsamente nell'indirizzo-spazio virtuale. Questa modifica consente di molto migliore scalabilità del numero di thread, così abbiamo anche rimosso il vecchio limite filo-count di 100. I limiti di stack possono essere sollevate e ridotto in fase di esecuzione utilizzando set_prolog_stack / 2.
- Il default dello stack-size-limiti sono ora 128Mb per ogni stack a 32 bit e 256 MB su hardware a 64 bit.
- Ampia perdita e prove di stress hanno fissato una serie di fughe di notizie e condizioni di gara, rendendo il sistema molto più robusto di configurazione del server 24x7.
- Un inizio è stato fatto per evitare di utilizzare il C-stack per recursing in termini. Questo permette di elaborazione molto più profondamente nidificate termini e fornisce un'eccezione pulito se ci sono risorse insufficienti per attraversare il termine. C'è ancora molto da fare in questo settore.
- SWI-Prolog 5.10.0 introduce riferimenti sicuri per termini di database (assertz / 2, recordz / 3) e corsi d'acqua (aperto / 3).
- Il numero di variabili in clausole è ora limitata a 1.000 milioni; questo era 65535. Inoltre, il sistema fornisce eccezioni graziosi quando incontra risorse errori o cercando di far valere termini illegali come termini ciclici.
- Compatibilità sia YAP e SICStus è migliorata.
Cosa c'è di nuovo nella versione 5.8.2:
- PULIZIA: Attuazione e documentazione dell'interfaccia di segnalazione.
- FIXED:. Utilizzare --nopce / - pce per (dis) che permette grafica
- FISSO: GC-bug; omettere strippaggio uwrite bit da stack degli argomenti
- MODIFICATO: Rimosso il prologo di bandiera abort_with_exception; essa non è più utilizzato.
- FISSO: Evitare di stallo durante il tentativo di uscire dopo un errore fatale .
- MODIFICATO: is_set / 1 ora utilizza sorta / 2. Di conseguenza, le variabili non condivise vengono considerati diversi elementi; l'ordine è log N * (N) e il predicato può restituire una risorsa di errori.
- FISSO: After: -.. modulo (x), eseguire obiettivi di espansione rispetto al modulo x
- PULIZIA: Articolo # 547:. correttamente citare predicati indefiniti e alternative
- DOC: Chiarire current_arithmetic_function / 1 .
- DOC: Fornire disponibilità snippit per funzioni C
- FISSO: semplificazione Precedente corrotto amministratore variabile del compilatore. Anche aggiunto test-case.
- FISSO: bug # 436: unificando una variabile con sé crea un ciclo di riferimento .
Ciò che è nuovo nella versione 5.7.14:
- FISSO: cross-referencer distinguere: da 0 nelle dichiarazioni meta-predicato
- PULIZIA: Usa meta_predicate per predsort / 3
- MODIFICATO: fare / 0 ora solo le scansioni per i riferimenti ai predicati non definiti nei moduli che li contengono. Il list_undefined / 0 ancora ricerche a livello globale.
- ENHANCED: CLP (FD):. Arc-coerente global_cardinality / 2 se le coppie sono inizialmente terra
- FISSO: Maniglia (fascicolo) predicati per i quali alcune clausole hanno il loro corpo in un altro modulo e un po 'lo stesso. Matt Lilley.
- AGGIUNTO:% [& # x3c; n & # X3e;] formato f a format_time / 3 a trattare con le frazioni di secondo. Utilizzato da nuove estensioni di debug.
- AGGIUNTO: debug_message_context (+ | -Context) per specificare contesto aggiuntivo per i messaggi di debug (come un time-stamp) .
- FISSO: Fai apply_macros fare la sua espansione obiettivo nel contesto del modulo di sistema
- ENHANCED: CLP (FD): Faster global_cardinality / 2 se le coppie chiave-Num sono terra .
- FIXED: il comando a manovella con priorità nella stampa risposta. Markus Triska.
- ENHANCED: utilizzare le opzioni di stampa di primo livello per obiettivi residue, l'implementazione di pulizia
- ENHANCED: Fai term_variables e term_attvars efficiente se viene specificata una lista (in particolare term_attvars (Term, [])) .
- ENHANCED: Fai la base di dati registrato utilizzare il nuovo codice termine-walker
- ENHANCED: prima messa a punto di uno scheletro per attraversare i termini con un ciclo semplice piuttosto che una procedura ricorsiva. Ora in uso per term_variables / 2 e predicati correlati. Lo schema appare adeguato, ma il codice pila segmentato deve essere ottimizzata notevolmente. Come è, term_variables / 2 è leggermente più lento (5%), ma è in grado di gestire termini profondamente nidificate con molta meno memoria e senza overflow dello stack.
- AGGIUNTO: term_attvars / 2 per un miglior supporto di copy_term / 3. Dopo la discussione con Markus Triska.
- AGGIUNTO: del_attrs / 1 * per cancellare tutti gli attributi *. Semplifica copy_term / 3.
Cosa c'è di nuovo nella versione 5.7.12:
- Miglioramento delle prestazioni dei programmi più grandi è compresa tra 10 e 40 %, a seconda dello stile di programmazione. In particolare i risolutori di vincoli profitto significativo. Piccoli programmi a volte mostrano incrementi nella velocità ben più grandi.
- Da 5.7.4, sistema di modulo aggiornato
- Un sacco di pulizia in denominazione e modularizzazione del codice di base.
I commenti non trovato