Si tratta di un'implementazione del linguaggio ML, basata sul dialetto Caml luce estesa con un sistema a oggetti basato su classi completo e un potente sistema di moduli nello stile di ML standard.
Obiettivo Caml comprende due compilatori. Uno genera bytecode che viene poi interpretato da un programma C.
Questo compilatore corre rapidamente, è portabile su qualsiasi piattaforma Unix essenzialmente 32 o 64 bit e genera codice compatto con requisiti di memoria moderati.
Prestazioni di programmi generati è abbastanza buono per una implementazione bytecode.
Questo compilatore può essere utilizzato sia come stand-alone, compilatore batch-oriented che produce programmi autonomi, o come un sistema interattivo, toplevel-based.
L'altro compilatore genera alte prestazioni codice nativo per un numero
di processori.
Compilazione richiede più tempo e genera codice più grande, ma i programmi generati offrire ottime prestazioni, pur mantenendo i requisiti di memoria moderati del compilatore bytecode.
Obiettivo Caml è la variante più popolare del linguaggio Caml.
Dal punto di vista della lingua, estende il nucleo del linguaggio Caml con uno strato orientato agli oggetti a pieno titolo, nonché un sistema di moduli potente, tutti collegati da un suono, sistema di tipo polimorfico con inferenza.
Il sistema Caml obiettivo è un'implementazione di livello industriale di questa lingua, con un compilatore di codice nativo ad alte prestazioni (ocamlopt) per 9 architetture di processori (IA32, PowerPC, AMD64, Alpha, Sparc, Mips, IA64, HPPA, StrongArm), nonché un compilatore bytecode (ocamlc) e un ciclo leggi-valuta-stampa interattiva (ocaml) per sviluppo rapido e portabilità.
La distribuzione Obiettivo Caml include una libreria standard globale, un debugger riproduzione (ocamldebug), lexer (ocamllex) e parser (ocamlyacc) generatori, un pre-processore pretty-stampante (camlp4) e un generatore di documentazione (ocamldoc).
Cosa c'è di nuovo in questa versione:
- Aggiornamento di Tcl / Tk 8.6.
- Rifiuta dichiarazioni multiple dello stesso metodo o variabile di istanza in un oggetto.
- propagare le informazioni di tipo verso pattern-matching, anche in presenza di varianti polimorfiche.
Cosa c'è di nuovo nella versione 4.02.1:
- Aggiornamento di Tcl / Tk 8.6.
- Rifiuta dichiarazioni multiple dello stesso metodo o variabile di istanza in un oggetto.
- propagare le informazioni di tipo verso pattern-matching, anche in presenza di varianti polimorfiche.
Cosa c'è di nuovo nella versione 3.12.1:
- germogli fisso:
- variabili inutilizzate non rilevati in "comprendono (struct .. fine)"
- camlp4 rivisto stampa sintassi bug nel livello superiore (riferito caml-list)
- configure: non definire _WIN32 sotto Cygwin
- indurito confronto generico nel caso in cui due blocchi personalizzati vengono confrontate e hanno diverse serie di operazioni personalizzate.
- temprato confronto tra bigarrays nel caso in cui i due bigarrays hanno diversi tipi.
- fissi rilevamento automatico sbagliato di expm1 () e log1p ().
- Non aggiungere il suffisso .exe quando si installa lo script di shell ocamlmktop
- ocamldoc: correzioni minori relativi alla visualizzazione delle opzioni ocamldoc
- bug con valori enormi in OCAMLRUNPARAM
- Mancata corrispondenza tra la dichiarazione e la definizione di caml_major_collection_slice
- desideri Caratteristica:
- Aggiunto '-ml-sinonimo' e le opzioni '-mli-sinonimo «a ocamldep
- Aggiunto '-ocamldoc' opzione per ocamlbuild
- Aggiunta la possibilità di aggiungere le opzioni per ocamlbuild
- Aggiunto l'accesso al parser camlp4 attuali e stampanti
- Migliorata la selezione di istruzioni per le operazioni di galleggiante su amd64
- Aggiunta la funzione 'usage_string' a Arg
- Consenti con i vincoli di aggiungere una equazione di tipo a una definizione di tipo di dati
- Consenti per unire 'before' tag come altri quelli
- Consenti dipendenza file "_oasis"
- Altre modifiche:
- predefinito cambiato dimensione heap minore da 32k a 256k parole.
- nuova operazione Aggiunto 'compare_ext' a blocchi personalizzati, chiamati quando si confrontano un valore di blocco personalizzato con un numero intero unboxed.
Cosa c'è di nuovo nella versione 3.12.0:
- modelli record di forma {LBL = pat; _} Per contrassegnare che non tutte le etichette sono elencati, volutamente.
- Avvisi sono ora numerata e può essere attivato e disattivato individualmente. Il vecchio sistema con le lettere si riferiscono a gruppi di avvertimenti è ancora supportato.
- Aggiunta l'opzione '-strict-sequenza' per forzare parte della mano sinistra della sequenza di avere unità tipo.
- Mappa:. implementare funzioni dal set che hanno senso per Carta li>
- Aggiungi il supporto per dynlink nativo.
- La semantica di avvertimento 7 (codice 'M', metodo di sostituzione) sono cambiati (che ora rileva tutte le modifiche, non solo Definizioni ripetuti all'interno dello stesso corpo della classe), ed è ora inattivo per impostazione predefinita.
Cosa c'è di nuovo nella versione 3.11.2:
- Una migliore documentazione per min e max w.r.t. NaN
- ocamlbuild utilizza compilatore sbagliato per i file C
- ocamlbuild non utilizza correttamente la configurazione informazioni
- In alcune installazioni di Windows, i tempi elevati di start-up per Unix lib
- problema con scanf e CRLF
- problema ocamlmklib sotto Windows
- BSD problema con indirizzi socket, per esempio in Unix.getnameinfo
- Problema con l'analisi di letterali galleggiante per l'assembler GNU
- Problema con moduli e tipi di privati
Requisiti :
- GNU C compiler - gcc
I commenti non trovato