OCaml4.02.2の変更点 このページは最後に更新されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。 last mod. 2015-06-20 (土) 12:04:38 http://caml.inria.fr/pub/distrib/ocaml-4.02/notes/Changes を元にしています。 OCaml 4.02.2 の変更点 既存のプログラムを壊す可能性のある変更点には * をつけてある。 ↑ 言語機能 PR#6583: メソッド呼び出しと同じ優先順位を持つ二項演算子の分類を追加。これらの演算子は # で始まり、演算子に使える記号を1つ以上続けたものである（例えば、 #+ や #!? 等）。さらに、（例えば ## や #+# のように） # を演算子の一部に使うこともできる。 # を含む演算子は型検査ではじかれるが、 ppx による書き換え等には使うことができる。

(Alain Frisch, request by Gabriel Radanne)

(Alain Frisch, request by Gabriel Radanne) * PR#6016: 型宣言に nonrec キーワードを追加

(Jérémie Dimino) ↑ コンパイラ PR#6600: printing map をインクリメンタルに作成するようにして -short-paths を高速化

(Jacques Garrigue)

(Jacques Garrigue) PR#6642: -ccopt の引数内の $CAMLORIGIN を cma や cmxa のパスに置き換える。

(Peter Zotov, Gabriel Scherer, review by Damien Doligez)

(Peter Zotov, Gabriel Scherer, review by Damien Doligez) PR#6797: ランタイムや自動リンクされるオブジェクトファイルも出力する -output-complete-obj オプションを追加

(Peter Zotov)

(Peter Zotov) PR#6845: ocamlc にプリミティブの存在をチェックしない -no-check-prims オプションを追加

(Alain Frisch)

(Alain Frisch) GPR#149: Parsetree にドキュメンテーションコメントの情報を付与する。

(Leo White)

(Leo White) GPR#159: structure/signature の位置情報を改善

(Leo White) ↑ トップレベルとデバッガ PR#5958: #install_printer を汎化して多相的な表示関数を受け付けるように

(Pierre Chambart and Grégoire Henry) ↑ OCamlbuild PR#6237: menhir の --infer の有効/無効を制御するための infer タグを追加

(Hugo Heuzard)

(Hugo Heuzard) PR#6625: -output-obj で作成したファイルに -linkpkg を渡す

(Peter Zotov)

(Peter Zotov) PR#6702: linkpkg, dontlink(foo) フラグを追加

(Peter Zotov, Gabriel Scherer)

(Peter Zotov, Gabriel Scherer) PR#6712: 一般的なVCSのディレクトリを無視する

(Peter Zotov)

(Peter Zotov) PR#6720: debug タグが設定されている場合は C コンパイラに -g フラグを渡す

(Peter Zotov, Gabriel Scherer)

(Peter Zotov, Gabriel Scherer) PR#6733: -output-obj -cclib -shared に .byte.so, .native.so ターゲットを追加

(Peter Zotov)

(Peter Zotov) PR#6733: -runtime-variant X オプションを渡すための "runtime_variant(X)" フラグを追加

(Peter Zotov)

(Peter Zotov) PR#6774: menhir 用に only_tokens, external_tokens(Foo) フラグを追加

(François Pottier) ↑ ライブラリ PR#6285: Unix.stat() でナノ秒精度をサポート

(Jérémie Dimino, report by user 'gfxmonk')

(Jérémie Dimino, report by user 'gfxmonk') PR#6781: Unix.termios により大きなボーレートを追加

(Damien Doligez, report by Berke Durak)

(Damien Doligez, report by Berke Durak) PR#6834: Obj.{first,last}_non_constant_constructor_tag を追加

(Mark Shinwell, request by Gabriel Scherer) ↑ ランタイム PR#6078: caml_dlopen を呼ぶときにランタイムシステムを release する

(Jérémie Dimino)

(Jérémie Dimino) PR#6675: GC 関連の C コールバックを追加

(Damien Doligez and Roshan James) ↑ ビルドシステム PR#5418 (comments): gcc ではなく $(CC) で依存関係を生成する

(Damien Doligez and Michael Grünewald)

(Damien Doligez and Michael Grünewald) PR#6266: iOS, Android 等のクロスコンパイル

(Peter Zotov, review by Damien Doligez and Mark Shinwell) ↑ インストール方法 x86-64 PIC モードと POWER アーキテクチャのビルド方法の説明を更新

(Mark Shinwell) ↑ バグ修正 PR#5271: Location.prerr_warning が Format.err_formatter を使うようハードコードされている

(Damien Doligez, report by Rolf Rolles)

(Damien Doligez, report by Rolf Rolles) PR#5395: OCamlbuild が相対シンボリックリンクと include パスの扱いを間違えている

(Damien Doligez, report by Didier Le Botlan)

(Damien Doligez, report by Didier Le Botlan) PR#5822: Windows 上で Options.ext_dll の値が間違っている

(Damien Doligez and Daniel Weil)

(Damien Doligez and Daniel Weil) PR#5836, PR#6684: ocamldebug 内で lazy な値を表示すると segfault することがある

(Gabriel Scherer, request by the Coq team)

(Gabriel Scherer, request by the Coq team) PR#5887: ヘッダファイルの名前の衝突を避けるため byterun/*.h を byterun/caml/*.h に移動

(Jérôme Vouillon and Adrien Nader and Peter Zotov)

(Jérôme Vouillon and Adrien Nader and Peter Zotov) PR#6281: Windows 上の Graphics ライブラリがダブルクリックの2回目のクリックのイベントを無視する

(Kyle Headley)

(Kyle Headley) PR#6490: gdb で AArch64 と 32-bit ARM のバックトレースが正しくない

(Mark Shinwell)

(Mark Shinwell) PR#6573: systhreads/threads.h に extern "C" を追加

(Mickaël Delahaye)

(Mickaël Delahaye) PR#6575: Array.init が必要ないときに callback を呼ぶ

(Alain Frisch, report by Gerd Stolpmann)

(Alain Frisch, report by Gerd Stolpmann) PR#6607: OCAMLRUNPARAM=v の 0x200 フラグのことがマニュアルに書かれていない

(Alain Frisch)

(Alain Frisch) PR#6616: -custom なしの -use-runtime を許す

PR#6617: pthread付きのAndroidビルドができるように（SDK r10c以降）

(Peter Zotov)

(Peter Zotov) PR#6626: cygwin 上の ocamlbuild が ocamlfind を見つけられない

(Gergely Szilvasy)

(Gergely Szilvasy) PR#6628: configure スクリプトが合法な引数を受け付けない

(Michael Grünewald, Damien Doligez)

(Michael Grünewald, Damien Doligez) PR#6630: tests/prim-bigstring/{big,}string.ml がビッグエンディアンアーキテクチャで失敗する

(Pierre Chambart, testing by Mark Shinwell)

(Pierre Chambart, testing by Mark Shinwell) PR#6640: ocamlbuild がまちがって Warning: the tag "precious" is not used in any flag declaration と言う

(report by user 'william')

(report by user 'william') PR#6652: ocamlbuild -clean slが出力のあとに改行しない

(Damien Doligez, report by Andi McClure ?

(Damien Doligez, report by Andi PR#6658: クロスコンパイラ: バージョンチェックが OSX で動いていない

(Gerd Stolpmann)

(Gerd Stolpmann) PR#6665: tests/asmcomp が sparc で失敗する

(Stéphane Glondu)

(Stéphane Glondu) PR#6667: ARM64 の %bswap16 の実装が間違っている

(Xavier Leroy)

(Xavier Leroy) PR#6669: 4.02 でトップレベルの lazy な値の表示がリグレッションしていたのを修正

(Leo White, review by Gabriel Scherer)

(Leo White, review by Gabriel Scherer) PR#6671: Windows: 環境変数 'TZ' が Unix.gettimeofday に影響を与えてしまう

(Mickael Delahaye and Damien Doligez)

(Mickael Delahaye and Damien Doligez) PR#6680: 多相バリアント値の警告に括弧が足りない

(Jacques Garrigue and Gabriel Scherer, report by Philippe Veber)

(Jacques Garrigue and Gabriel Scherer, report by Philippe Veber) PR#6686: subst_boxed_number のバグ

(Jérémie Dimino, Mark Shinwell)

(Jérémie Dimino, Mark Shinwell) PR#6690: 局所抽象型を書くべきところに（間違った）ワイルドカードや型変数を書くとコンパイラが Fatal error: exception Not_found で落ちる

(Jacques Garrigue, report by Mikhail Mandrykin)

(Jacques Garrigue, report by Mikhail Mandrykin) PR#6693 (part two): x86-64 ランタイムで relocation type が不正

(Peter Zotov, review by Jacques-Henri Jourdan, Xavier Leroy and Mark Shinwell)

(Peter Zotov, review by Jacques-Henri Jourdan, Xavier Leroy and Mark Shinwell) PR#6717: Pprintast が let-pattern の属性を表示しない

(Gabriel Scherer, report by Peter Zotov)

(Gabriel Scherer, report by Peter Zotov) PR#6727: Printf.sprintf "%F" の挙動がまちがっている

(Benoît Vaugon, report by Vassili Karpov)

(Benoît Vaugon, report by Vassili Karpov) PR#6747: ocamlobjinfo: OSX で caml_plugin_header を見付けられない

(Damien Doligez, Maverick Woo)

(Damien Doligez, Maverick Woo) PR#6749: ocamlopt で n mod 1 が0ではなく n を返す

(Mark Shinwell and Jérémie Dimino)

(Mark Shinwell and Jérémie Dimino) PR#6753: Num.quo_num と Num.mod_num が負数に対して正しくない結果を返すことがある

(Xavier Leroy)

(Xavier Leroy) PR#6758: Ocamldoc が "analyse_module: parsetree and typedtree don't match" で失敗する

(Damien Doligez, report by user 'maro')

(Damien Doligez, report by user 'maro') PR#6759: big_int_of_string が十六進数リテラルのパースを間違うことがある

(Damien Doligez, report by Pierre-yves Strub)

(Damien Doligez, report by Pierre-yves Strub) PR#6763: -short-paths を付けたても #show が最短のパスを表示しない

(Jacques Garrigue, report by David Sheets)

(Jacques Garrigue, report by David Sheets) PR#6768: 循環的な型で型検査器がスタックオーバーフローする

(Jacques Garrigue, report by user 'darktenaibre')

(Jacques Garrigue, report by user 'darktenaibre') PR#6772: asmrun/signals_asm.c が NetBSD/i386 でコンパイルできない

(Kenji Tokudome)

(Kenji Tokudome) PR#6775: Digest.file がエラー時にファイルディスクリプタをリークする

PR#6779: クロスコンパイラが独自のプリミティブを使ったバイトコードをリンクできない

(Damien Doligez, request by Peter Zotov)

(Damien Doligez, request by Peter Zotov) PR#6787: 多相バリアントの健全性に関するバグ

(Jacques Garrigue, with help from Leo White and Grégoire Henry, report by Michael O'Connor)

(Jacques Garrigue, with help from Leo White and Grégoire Henry, report by Michael O'Connor) PR#6790: otherlibs を -g 付きでビルドする

(Damien Doligez, report by Peter Zotov)

(Damien Doligez, report by Peter Zotov) PR#6791: Scanf の "%s@[", "%s@{" にリグレッション

(Benoît Vaugon)

(Benoît Vaugon) PR#6793: ocamlbuild が menhir に滅茶苦茶な "-ocamlc ..." コマンドを渡す

PR#6799: unixsupport.h 等々にインクルードガードが抜けている

(Andreas Hauptmann)

(Andreas Hauptmann) PR#6810: Bigarray.Genarray.map_file のドキュメントを改善

(Mark Shinwell and Daniel Bünzli)

(Mark Shinwell and Daniel Bünzli) PR#6812: -short-paths と -no-alias-deps を組み合わせると inconsistent assumption エラーになることがある

(Jacques Garrigue, report by Valentin Gatien-Baron)

(Jacques Garrigue, report by Valentin Gatien-Baron) PR#6817: モジュールと組み合わせると GADT の網羅性チェックが壊れる

(Leo White, report by Pierre Chambart)

(Leo White, report by Pierre Chambart) PR#6824: Format.asprintf を部分適用するとバッファの共有で不思議なことが起こる

(Gabriel Scherer, report by Alain Frisch)

(Gabriel Scherer, report by Alain Frisch) PR#6831: Solaris 系の OS で configure -aspp "gcc -c" なビルドが壊れている

(John Tibble)

(John Tibble) PR#6836: -short-paths を使うと assert に失敗する

(Jacques Garrigue, report by David Sheets)

(Jacques Garrigue, report by David Sheets) PR#6837: FreeBSD と NetBSD x86-64 でもライブラリにプロファイリング情報を付ける

(Mark Shinwell, report by Michael Grünewald)

(Mark Shinwell, report by Michael Grünewald) PR#6841: -o で翻訳単位の名前を変えると ocamldebug が壊れる

(Jacques Garrigue, report by Jordan Walke)

(Jacques Garrigue, report by Jordan Walke) PR#6843: .cmi がない場合でも弱い依存関係を記録する

(Leo White, Gabriel Scherer)

(Leo White, Gabriel Scherer) PR#6849: パターンマッチのエラーメッセージが逆転している

(Jacques Garrigue, report by Leo White)

(Jacques Garrigue, report by Leo White) PR#6857: -o を使うと __MODULE__ で現在のモジュール名が得られない

(Jacques Garrigue, report by Valentin Gatien-Baron)

(Jacques Garrigue, report by Valentin Gatien-Baron) PR#6862: クラス構築子の引数部分で網羅性チェックが効かない

(Jacques Garrigue)

(Jacques Garrigue) PR#6869: Hashtbl.hash_param のコメントを改善

(Mark Shinwell, report by Jun Furuse)

(Mark Shinwell, report by Jun Furuse) PR#6870: -rectypes が縮小的でない型を検出できず健全性が壊れる

(Jacques Garrigue, report by Stephen Dolan)

(Jacques Garrigue, report by Stephen Dolan) PR#6872: 型によって区別ができる場合でも、バリアント構成子でも例外構成子でもあるような値に警告が出る

(Jacques Garrigue, report by Romain Beauxis)

(Jacques Garrigue, report by Romain Beauxis) PR#6878: AArch64 バックエンドが不正なアセンブリを吐き、 conditional branch out of range エラーになる

(Mark Shinwell, report by Richard Jones, testing by Richard Jones and Xavier Leroy, code review by Xavier Leroy and Thomas Refis)

(Mark Shinwell, report by Richard Jones, testing by Richard Jones and Xavier Leroy, code review by Xavier Leroy and Thomas Refis) PR#6879: 1 mod n に誤った最適化がされる

(Mark Shinwell, report by Jean-Christophe Filliâtre)

(Mark Shinwell, report by Jean-Christophe Filliâtre) PR#6884: __CYGWIN32__ の #define を __CYGWIN__ で置き換える

(Adrien Nader)

(Adrien Nader) PR#6886: -no-alias-deps を使うと自己参照的な翻訳単位がビルドできてしまう

(Jacques Garrigue, report by Valentin Gatien-Baron)

(Jacques Garrigue, report by Valentin Gatien-Baron) PR#6889: ast_mapper でクラスの属性を書き換えることができない

(Sébastien Briais)

(Sébastien Briais) PR#6893: ocamlbuild: (p)dep を使うと "tag not used" という警告が出る

(Gabriel Scherer, report by Christiano Haesbaert)

(Gabriel Scherer, report by Christiano Haesbaert) GPR#143: ブール値のオプションに対する getsockopt の振舞いを修正

(Anil Madhavapeddy and Andrew Ray)

(Anil Madhavapeddy and Andrew Ray) GPR#190: pervasives に typo

(Guillaume Bury)

(Guillaume Bury) major_gc.c 内の no-naked-pointers モードのときの assertion の位置が間違っている

(Stephen Dolan, Mark Shinwell) ↑ 機能追加の要望 PR#6452, GPR#140: 独自の書式指定をサポートするための内部機能を追加

(Jérémie Dimino)

(Jérémie Dimino) PR#6641: ocamlmklib に -g, -ocamlcflags, -ocamloptflags オプションを追加

(Peter Zotov)

(Peter Zotov) PR#6693: libasmrun_shared.so と lib{asm,caml}run_pic.a もビルドする

(Peter Zotov, review by Mark Shinwell)

(Peter Zotov, review by Mark Shinwell) PR#6842: Typemod.modtype_of_package を公開する

(Jacques Garrigue, request by Jun Furuse)

(Jacques Garrigue, request by Jun Furuse) GPR#139: Emacs の caml-types.el で .annot ファイルの場所をより細やかに指定できるように

(Christophe Troestler, review by Damien Doligez)

(Christophe Troestler, review by Damien Doligez) GPR#157: リンク時に cmo のパスをデバッグセクションに保存する

(Hugo Heuzard, review by Damien Doligez)

(Hugo Heuzard, review by Damien Doligez) GPR#191: memory.h の一部と gc.h をパブリックに

(Thomas Refis)