cygwinのX serverの使い方が変わった

2015/1/20現在、 これまで startxwin で使えていた、cygwinをXサーバにする方法が変更されて使えなくなった。ログから察するに2014/11/13の更新から。 新しい方法では以下のようにする。 $ run xwin -multiwindow $ xterm xterm> xhost +192.168.xxx.xxx (参…

smlnjlibをSML#に移植した

SML

あけましておめでとうございます。2015年最初の記事です。今年もよろしくお願いします。 smlnjlibというライブラリ集の一部をSML#(2.0.0)用に移植しました。> smlnjlib# 例によって移植と言ってもsmiファイルをひたすら書いただけなので実装を詳細に把握して…

kitlibをSML/NJとSML#に移植

SML

kitlibというSMLライブラリをSML/NJとSML#に移植しました*1。 #全く誰も嬉しくないと思いますが(^^;; kitlibはMLKitという処理系を実装されているElsman先生が作っているSMLライブラリ集です。 元々はMLKitのソースコードと一緒に配布されていましたがライブ…

SMLでDynamic(再び)

SML

この記事は ML Advent Calendar 2014 7日目の記事です。 ここではSMLによるDynamic(あるいはAny)と呼ばれる*1、任意の型の値を保持出来るテクニックを紹介します。任意の型の値を保持可能な型という内容は 以前も紹介したことがあります(2) が、前回紹介した…

MLtonでWin32APIを呼び出す

SML

Cygwin上のMLton*1でWin32APIを使用する簡単な例を紹介します。 以下の2つの例では異なる方法で右図のようなメッセージボックスを表示します。 コード全体はgistに置いてあります。 direct call _import 式でシンボルと型を書くとお手軽に外部関数が使えます…

SML/NJでスタックトレースを表示する

SML

SMLではコード中のほとんどどこからでも例外が投げられるのですが、それがどこから投げられたかを追跡するポータブルな方法は存在しません。ただしSML/NJでは例外が投げられた時にスタックトレースを表示することが出来たので方法を紹介します。 #なお、ドキ…

GCCをクロスビルドする

linux上で「mingw用バイナリを吐くgcc」をビルドする方法を調べた。 #正確には「linux(i386)ホスト上でmingw(32bit)用のバイナリを作る」gccがビルドしたかった 方法を説明したサイトはかなりいろいろあるけど見つけた中で一番簡単だったのはこれ。*1 > http…

SML/NJのvalue restrictionが怪しい気がする

SML

SML/NJに怪しげな振る舞いを見つけました。 コードとエラーメッセージから推察するに value restriction(値多相性制約) 絡みだと思います。 value restriction 多相型が推論されては困る計算*1を弾くために、SMLが型推論に掛ける縛り。 それを踏まえて問題の…

SMLの空レコード型とunit型注釈を付けた時の処理系毎の振る舞い

SML

序 SML#で使用出来る多相レコードは、SMLのレコード間のサブタイプ関係を推論すると考えると良さそうです。 例えば fn {x:int,...}=> hogehoge という関数は x という int 型のフィールドを持つ任意のレコードを引数に取りますが、これを {x:int} のサブタイ…

julia入門で多段階計算

名前だけ知っていた Julia 言語をなんとなく触ってみました。(グラフ(図の方ね)を書く手段を探してたというそれらしい理由もある) #今回使用したのは Julia 0.3.1 mingw32版 です。 Juliaはそれ自身で項を操作でき、任意の式からその項を生成することが出来…

SML/NJのCygwin上でビルドに失敗するバグが修正された

SML

私が以前パッチを書いて報告していた SML/NJのCygwin上でのインストールに失敗するバグ が 110.77(08/22/14) で修正されています。 Here is a list of tracked bugs fixed (or closed) with this release, please see the bug tracker for more details. .. …

ProofSummit2014とJSSST2014に参加

遅めの夏休みを使ってProofSummit2014とJSSST2014に行ってきました。Coqチュートリアルとサマースクール(スパコンの話)に参加し、火曜日のPPLとその他セッションをふらふらしてた感じ。 Coqチュートリアルが主目的で参加したハズなんですが、謎の強烈な眠気…

PolyMLの依存関係管理

Poly/MLはREPLとしてもコンパイラとしても使うことのできるSML処理系です。 64bit環境に対応した処理系でもあるので、そういった意味でお手軽な場合も多そうですね。 ここではPolyMLのREPLでコードを読み込む方法を紹介します。 use とりあえず use は備えて…

GeSHiにSMLのsyntax highlightがマージされた

だいぶ前に書いてpull reqestしておいた、SMLコードのGeSHi用syntax highlight設定が本家にマージされてました。やったー。 support StandardML syntax #6 GeSHiはphpで書かれた汎用syntax highlighterで、言語毎に正規表現(のキモイ拡張)の塊を持っています…

SMLの規格書が公開されていた

SML

気付いてなかったのですが、いつの間にか StandardML'97 の規格書がgithubで公開されています*1 > SMLFamily/sml97 手元のCentOSでビルドところ、ちゃんとroot.pdfが生成されました。 (app (yum install) ["texinfo", "texinfo-tex"]; latexmk(unzip _; ins…

SML/NJで実行ファイルを作る

SML

タイトルはやや詐欺なのだけど。 SML/NJで実行ファイル、というか、型検査とコンパイル*1が終わった状態のファイルが欲しいことがある。 ソフトウェアをバイナリ配布するとか。あるいはベンチマークを取りたい(=パースや型検査の時間を入れたくない)場合が考…

SML#2.0.0リリース

SML

来ました> http://www.pllab.riec.tohoku.ac.jp/smlsharp/ja/?Download大きな変更としてバックエンドが今までの手書きから(?)LLVMに置き換わっています。 多少構文の修正もありそうですが、新機能は特にアナウンスされてません。(というかドキュメントの公開…

build SML/NJ 110.76 on Cygwin 1.7

SML

いつの間にかcygwin上で SML/NJ がビルド出来なくなっていた。(いつからだろう? 具体的には base/runtime/mach-dep/cygwin-fault.c で参照されているヘッダ が消えているのでエラーとなっています。 現時点での最新版を含む SML/NJ 110.7{6,5,4} と cygwin …

aobenchによるSMLベンチマークを書いた

SML

aobenchというのはアンビエントオクルージョン(AO)というアルゴリズムを使用したレンダリングを行う、浮動小数点数計算のベンチマークです。 オリジナルはC言語の400行に満たない小さなプログラムです。これをSMLに移植して実行時間のベンチマークを行いまし…

LPMの紹介

べつに何ベントカレンダーでもありませんが便利なのでLPMについて紹介します。 LPMを使うモチベーション 自分が作業するlinuxサーバに必要なソフトがインストールされてないにも関わらず、root権限が無いことがしばしばあります。 大抵のLinuxディストリビュ…

実数の表示方法によって精度が足りないように見えることがある

プログラマのための数学#2を眺めていました。途中から(あまりにもメジャーな処理系である)SML#とNJをいじり始めて聞いてませんでしたけど…。 で、いきなりバグ見つけて混乱したり。 序 で、本題です。SMLの実数型であるReal.realがIEEE754準拠であることが…

libpcreのSML#バインディングを公開しました

SML

pcre は Perl Compatible Regular Expressions の略で、Perl互換の正規表現ライブラリです。 SML#からこのライブラリを使うラッパーを書いたので公開しました > https://github.com/eldesh/pcre_sharp 基本的なマッチの機能と、subpatternにマッチした部分…

なごや2013(夏)まとめ

8/25,26でなにやらイベントが連続していたので行ってきました。 ProofSummit2013 OCamlMeeting2013 なごやまつり 後続のせいでかなり地味な印象になってしまったけど(^^、聴いて意味があったのは前半。 OCamlSummit 期待していた Generic Pretty Printer は…

圏論勉強会終了!

ワークスアプリケーションズで開催されていた圏論勉強会が終了しました! 私は全13回中第1回を除く全てに参加出来ました。週1なのでおよそ3ヶ月も経ってますねぇ。 資料一覧 推奨教科書 Awodey本 自分なりにはかなり頑張った方ですが講義について行けたとは…

圏論勉強会#10 練習問題回答

一問目だけやりました。2問目が出来ない…。 練習問題 練習として以下の様な事をやってみると良いと思います。 ・二分木などの型函手及び融合則の導出 ・map f∘map g=map (f∘g)などの法則の導出。 http://nineties.github.io/category-seminar/10.html#/38 二…

SML版 factの最小不動点を調べる

SML

圏論勉強会#9 Haskellによるfactの最小不動点の説明 のSML版です。講義中では「Haskellの遅延評価が〜」と何度も繰り返されてましたが、fixを使う前の undefined を使う定義ではSMLでも(この場合は)同様の結果が得られます。 ただし引数を合わせる必要があり…

圏論勉強会@ワークスアプリケーションズ #8 練習問題

第8回は実装の練習問題があったのでSMLで書いてみました。 https://gist.github.com/eldesh/5970931 fact' の実装に自信ないけど他はだいたい合ってるんじゃないでしょうか…。 練習問題 自然数型,リスト型,二分木などのhylomorphismを導出して下さい。 http:…

redmine1.3.xから2.3.xに移行してプラグイン全滅

お亡くなりになったサーバからのredmine移行。これまでは1.3系でしたがそろそろ古すぎる感じなので移行してみました。*1サーバと環境は FreeBSD 9.1-RELEASE-p3 amd64 + apache22 + mysql5.1 + passenger4.0.5 な構成。(以前の/var/db/mysqlを丸々コピーして…

SMLでの時刻の扱い

SML

便乗。さすがにSML/NJだと普通に出来る。 $ rlwrap sml Standard ML of New Jersey v110.72 [built: Tue Aug 24 10:47:04 2010] - Time.now(); val it = TIME {usec=1371522289223904} : Time.time - Date.fromTimeLocal(Time.now()); val it = DATE {day=18…

DeBruijn変換がやっと分かった

算譜工論(DeBrujn変換) を読んでDeBruijn変換をSMLで実装してみました。> https://gist.github.com/eldesh/5714388 文書内の説明がほとんどMLのコードまんまなのでほとんど単なる写経なのですが。 ちなみに、これによってどんな嬉しい性質があるのかはまだ…