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)
- * PR#6016: 型宣言に nonrec キーワードを追加
(Jérémie Dimino)
コンパイラ
- PR#6600: printing map をインクリメンタルに作成するようにして -short-paths を高速化
(Jacques Garrigue)
- PR#6642: -ccopt の引数内の $CAMLORIGIN を cma や cmxa のパスに置き換える。
(Peter Zotov, Gabriel Scherer, review by Damien Doligez)
- PR#6797: ランタイムや自動リンクされるオブジェクトファイルも出力する -output-complete-obj オプションを追加
(Peter Zotov)
- PR#6845: ocamlc にプリミティブの存在をチェックしない -no-check-prims オプションを追加
(Alain Frisch)
- GPR#149: Parsetree にドキュメンテーションコメントの情報を付与する。
(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)
- PR#6625: -output-obj で作成したファイルに -linkpkg を渡す
(Peter Zotov)
- PR#6702: linkpkg, dontlink(foo) フラグを追加
(Peter Zotov, Gabriel Scherer)
- PR#6712: 一般的なVCSのディレクトリを無視する
(Peter Zotov)
- PR#6720: debug タグが設定されている場合は C コンパイラに -g フラグを渡す
(Peter Zotov, Gabriel Scherer)
- PR#6733: -output-obj -cclib -shared に .byte.so, .native.so ターゲットを追加
(Peter Zotov)
- PR#6733: -runtime-variant X オプションを渡すための "runtime_variant(X)" フラグを追加
(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')
- PR#6781: Unix.termios により大きなボーレートを追加
(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)
- PR#6675: GC 関連の C コールバックを追加
(Damien Doligez and Roshan James)
ビルドシステム
- PR#5418 (comments): gcc ではなく $(CC) で依存関係を生成する
(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)
- PR#5395: OCamlbuild が相対シンボリックリンクと include パスの扱いを間違えている
(Damien Doligez, report by Didier Le Botlan)
- PR#5822: Windows 上で Options.ext_dll の値が間違っている
(Damien Doligez and Daniel Weil)
- PR#5836, PR#6684: ocamldebug 内で lazy な値を表示すると segfault することがある
(Gabriel Scherer, request by the Coq team)
- PR#5887: ヘッダファイルの名前の衝突を避けるため byterun/*.h を byterun/caml/*.h に移動
(Jérôme Vouillon and Adrien Nader and Peter Zotov)
- PR#6281: Windows 上の Graphics ライブラリがダブルクリックの2回目のクリックのイベントを無視する
(Kyle Headley)
- PR#6490: gdb で AArch64 と 32-bit ARM のバックトレースが正しくない
(Mark Shinwell)
- PR#6573: systhreads/threads.h に extern "C" を追加
(Mickaël Delahaye)
- PR#6575: Array.init が必要ないときに callback を呼ぶ
(Alain Frisch, report by Gerd Stolpmann)
- PR#6607: OCAMLRUNPARAM=v の 0x200 フラグのことがマニュアルに書かれていない
(Alain Frisch)
- PR#6616: -custom なしの -use-runtime を許す
- PR#6617: pthread付きのAndroidビルドができるように(SDK r10c以降)
(Peter Zotov)
- PR#6626: cygwin 上の ocamlbuild が ocamlfind を見つけられない
(Gergely Szilvasy)
- PR#6628: configure スクリプトが合法な引数を受け付けない
(Michael Grünewald, Damien Doligez)
- PR#6630: tests/prim-bigstring/{big,}string.ml がビッグエンディアンアーキテクチャで失敗する
(Pierre Chambart, testing by Mark Shinwell)
- PR#6640: ocamlbuild がまちがって Warning: the tag "precious" is not used in any flag declaration と言う
(report by user 'william')
- PR#6652: ocamlbuild -clean slが出力のあとに改行しない
(Damien Doligez, report by Andi McClure?)
- PR#6658: クロスコンパイラ: バージョンチェックが OSX で動いていない
(Gerd Stolpmann)
- PR#6665: tests/asmcomp が sparc で失敗する
(Stéphane Glondu)
- PR#6667: ARM64 の %bswap16 の実装が間違っている
(Xavier Leroy)
- PR#6669: 4.02 でトップレベルの lazy な値の表示がリグレッションしていたのを修正
(Leo White, review by Gabriel Scherer)
- PR#6671: Windows: 環境変数 'TZ' が Unix.gettimeofday に影響を与えてしまう
(Mickael Delahaye and Damien Doligez)
- PR#6680: 多相バリアント値の警告に括弧が足りない
(Jacques Garrigue and Gabriel Scherer, report by Philippe Veber)
- PR#6686: subst_boxed_number のバグ
(Jérémie Dimino, Mark Shinwell)
- PR#6690: 局所抽象型を書くべきところに(間違った)ワイルドカードや型変数を書くとコンパイラが Fatal error: exception Not_found で落ちる
(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)
- PR#6717: Pprintast が let-pattern の属性を表示しない
(Gabriel Scherer, report by Peter Zotov)
- PR#6727: Printf.sprintf "%F" の挙動がまちがっている
(Benoît Vaugon, report by Vassili Karpov)
- PR#6747: ocamlobjinfo: OSX で caml_plugin_header を見付けられない
(Damien Doligez, Maverick Woo)
- PR#6749: ocamlopt で n mod 1 が0ではなく n を返す
(Mark Shinwell and Jérémie Dimino)
- PR#6753: Num.quo_num と Num.mod_num が負数に対して正しくない結果を返すことがある
(Xavier Leroy)
- PR#6758: Ocamldoc が "analyse_module: parsetree and typedtree don't match" で失敗する
(Damien Doligez, report by user 'maro')
- PR#6759: big_int_of_string が十六進数リテラルのパースを間違うことがある
(Damien Doligez, report by Pierre-yves Strub)
- PR#6763: -short-paths を付けたても #show が最短のパスを表示しない
(Jacques Garrigue, report by David Sheets)
- PR#6768: 循環的な型で型検査器がスタックオーバーフローする
(Jacques Garrigue, report by user 'darktenaibre')
- PR#6772: asmrun/signals_asm.c が NetBSD/i386 でコンパイルできない
(Kenji Tokudome)
- PR#6775: Digest.file がエラー時にファイルディスクリプタをリークする
- PR#6779: クロスコンパイラが独自のプリミティブを使ったバイトコードをリンクできない
(Damien Doligez, request by Peter Zotov)
- PR#6787: 多相バリアントの健全性に関するバグ
(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)
- PR#6791: Scanf の "%s@[", "%s@{" にリグレッション
(Benoît Vaugon)
- PR#6793: ocamlbuild が menhir に滅茶苦茶な "-ocamlc ..." コマンドを渡す
- PR#6799: unixsupport.h 等々にインクルードガードが抜けている
(Andreas Hauptmann)
- PR#6810: Bigarray.Genarray.map_file のドキュメントを改善
(Mark Shinwell and Daniel Bünzli)
- PR#6812: -short-paths と -no-alias-deps を組み合わせると inconsistent assumption エラーになることがある
(Jacques Garrigue, report by Valentin Gatien-Baron)
- PR#6817: モジュールと組み合わせると GADT の網羅性チェックが壊れる
(Leo White, report by Pierre Chambart)
- PR#6824: Format.asprintf を部分適用するとバッファの共有で不思議なことが起こる
(Gabriel Scherer, report by Alain Frisch)
- PR#6831: Solaris 系の OS で configure -aspp "gcc -c" なビルドが壊れている
(John Tibble)
- PR#6836: -short-paths を使うと assert に失敗する
(Jacques Garrigue, report by David Sheets)
- PR#6837: FreeBSD と NetBSD x86-64 でもライブラリにプロファイリング情報を付ける
(Mark Shinwell, report by Michael Grünewald)
- PR#6841: -o で翻訳単位の名前を変えると ocamldebug が壊れる
(Jacques Garrigue, report by Jordan Walke)
- PR#6843: .cmi がない場合でも弱い依存関係を記録する
(Leo White, Gabriel Scherer)
- PR#6849: パターンマッチのエラーメッセージが逆転している
(Jacques Garrigue, report by Leo White)
- PR#6857: -o を使うと __MODULE__ で現在のモジュール名が得られない
(Jacques Garrigue, report by Valentin Gatien-Baron)
- PR#6862: クラス構築子の引数部分で網羅性チェックが効かない
(Jacques Garrigue)
- PR#6869: Hashtbl.hash_param のコメントを改善
(Mark Shinwell, report by Jun Furuse)
- PR#6870: -rectypes が縮小的でない型を検出できず健全性が壊れる
(Jacques Garrigue, report by Stephen Dolan)
- PR#6872: 型によって区別ができる場合でも、バリアント構成子でも例外構成子でもあるような値に警告が出る
(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)
- PR#6879: 1 mod n に誤った最適化がされる
(Mark Shinwell, report by Jean-Christophe Filliâtre)
- PR#6884: __CYGWIN32__ の #define を __CYGWIN__ で置き換える
(Adrien Nader)
- PR#6886: -no-alias-deps を使うと自己参照的な翻訳単位がビルドできてしまう
(Jacques Garrigue, report by Valentin Gatien-Baron)
- PR#6889: ast_mapper でクラスの属性を書き換えることができない
(Sébastien Briais)
- PR#6893: ocamlbuild: (p)dep を使うと "tag not used" という警告が出る
(Gabriel Scherer, report by Christiano Haesbaert)
- GPR#143: ブール値のオプションに対する getsockopt の振舞いを修正
(Anil Madhavapeddy and Andrew Ray)
- GPR#190: pervasives に typo
(Guillaume Bury)
- major_gc.c 内の no-naked-pointers モードのときの assertion の位置が間違っている
(Stephen Dolan, Mark Shinwell)
機能追加の要望
- PR#6452, GPR#140: 独自の書式指定をサポートするための内部機能を追加
(Jérémie Dimino)
- PR#6641: ocamlmklib に -g, -ocamlcflags, -ocamloptflags オプションを追加
(Peter Zotov)
- PR#6693: libasmrun_shared.so と lib{asm,caml}run_pic.a もビルドする
(Peter Zotov, review by Mark Shinwell)
- PR#6842: Typemod.modtype_of_package を公開する
(Jacques Garrigue, request by Jun Furuse)
- GPR#139: Emacs の caml-types.el で .annot ファイルの場所をより細やかに指定できるように
(Christophe Troestler, review by Damien Doligez)
- GPR#157: リンク時に cmo のパスをデバッグセクションに保存する
(Hugo Heuzard, review by Damien Doligez)
- GPR#191: memory.h の一部と gc.h をパブリックに
(Thomas Refis)
|