Hatena::Groupocaml-nagoya

Happy OCaml!!

2008-10-02

haXeソースコード HTML版

| はてなブックマーク - haXeソースコード HTML版 - Happy OCaml!!

http://howdyworld.org/redist/haxe/

OCaml-MLにソースコードをハイライトする話題が流れてた。そこで紹介されてたPage not found · GitHub Pagesを使って、haXeのソースコードをハイライトしてみた。

2008-09-29

haXe コールグラフ(小サイズ版)

| はてなブックマーク - haXe コールグラフ(小サイズ版) - Happy OCaml!!

id:mzp:20080927で作ったコールグラフから、外部関数の呼び出しを削除して、サイズを小さくしてみた。

ついでに、pngじゃなくてgifを使うようにしたら、だいぶファイルサイズが小さくなった。

ast.ml

f:id:mzp:20080929104223g:image:w400

codegen.ml

f:id:mzp:20080929104222g:image:w400

common.ml

f:id:mzp:20080929104221g:image:w400

genas3.ml

f:id:mzp:20080929104218g:image:w400

genjs.ml

f:id:mzp:20080929104216g:image:w400

genneko.ml

f:id:mzp:20080929104554g:image:w400

genphp.ml

f:id:mzp:20080929104551g:image:w400

genswf.ml

f:id:mzp:20080929104550g:image:w400

genswf8.ml

f:id:mzp:20080929104546g:image:w400

genswf9.ml

f:id:mzp:20080929104542g:image:w400

genxml.ml

f:id:mzp:20080929105110g:image:w400

lexer.ml

f:id:mzp:20080929105109g:image:w400

main.ml

f:id:mzp:20080929105108g:image:w400

parser.ml

f:id:mzp:20080929111131g:image:w400

type.ml

f:id:mzp:20080929105105g:image:w400

typecore.ml

f:id:mzp:20080929105254g:image:w400

typeload.ml

f:id:mzp:20080929105253g:image:w400

typer.ml

f:id:mzp:20080929105252g:image:w400

CeydaCeyda2012/12/07 22:31Was totally stuck until I read this, now back up and rniunng.

GinaGina2012/12/08 05:52That's a quick-witted answer to a dfiifcult question

xwclnbimxwclnbim2012/12/08 18:21ckGNAl <a href="http://vxdoiwjqkdhl.com/">vxdoiwjqkdhl</a>

todmmnwghatodmmnwgha2012/12/09 23:3877fhq8 , [url=http://ykmooepqokpp.com/]ykmooepqokpp[/url], [link=http://mjgglzcakhzk.com/]mjgglzcakhzk[/link], http://atgyxqzxnmmp.com/

chcnxqeubschcnxqeubs2012/12/11 14:49ldRWMV <a href="http://wmxthozdojyg.com/">wmxthozdojyg</a>

zcwrlvkuxzcwrlvkux2012/12/13 01:26atQh2R , [url=http://aspjnizvldwp.com/]aspjnizvldwp[/url], [link=http://gfgjqjynutxm.com/]gfgjqjynutxm[/link], http://bpqeswznkbyi.com/

2008-09-27

haXe コールグラフ

| はてなブックマーク - haXe コールグラフ - Happy OCaml!!

OCamlSpotterocamlc -dparsetreeを組合せて、haXeの各ファイルのコールグラフを作ってみた。

適当に作ったので、割と不正確。例えば、相互再帰な関数は無視してたりする。

ast.ml

f:id:mzp:20080927160024p:image:w600

codegen.ml

f:id:mzp:20080927160025p:image:w600

common.ml

f:id:mzp:20080927160026p:image:w600

genas3.ml

f:id:mzp:20080927163123p:image:w600

genjs.ml

f:id:mzp:20080927160915p:image:w600

genneko.ml

f:id:mzp:20080927160916p:image:w600

genphp.ml

f:id:mzp:20080927165158p:image:w600

genswf.ml

f:id:mzp:20080927160918p:image:w600

genswf8.ml

f:id:mzp:20080927163735p:image:w600

genswf9.ml

f:id:mzp:20080927163718p:image:w600

genxml.ml

f:id:mzp:20080927161911p:image:w600

lexer.ml

f:id:mzp:20080927161906p:image:w600

main.ml

f:id:mzp:20080927165223p:image:w600

parser.ml

f:id:mzp:20080927162338p:image:w600

type.ml

f:id:mzp:20080927162105p:image:w600

typecore.ml

f:id:mzp:20080927162103p:image:w600

typeload.ml

f:id:mzp:20080927162238p:image:w600

typer.ml

f:id:mzp:20080927165943p:image:w600

osiireosiire2008/09/28 22:08すばらしい。よく作ったね。genxmlなんかは高階関数が関数同士の「糊」になっている様が見て取れる気がします。
スタンダードライブラリの関数は除外すると、もう少し見やすくなるかも。

mzpmzp2008/09/29 10:32ありがとうございます。OCamlSpotterのおかげで割と簡単にできました。
標準関数の無視はあとでやってみます。

camlspottercamlspotter2009/07/24 17:36今更ながら見つけました。これはいいですねぇ。

fcdcwompxhfcdcwompxh2011/03/07 15:02S7wnS4 <a href="http://ocnllpfjaxlr.com/">ocnllpfjaxlr</a>, [url=http://uryosicjcriq.com/]uryosicjcriq[/url], [link=http://nkcsfliwazwh.com/]nkcsfliwazwh[/link], http://hkkxvwksjwwa.com/

MirannarahMirannarah2012/12/08 01:32A few years ago I'd have to pay someone for this ifnoramtion.

ZiggyZiggy2012/12/08 06:08Your answer shows real inetlligecne.

loyavziloyavzi2012/12/10 00:15FmsCpG , [url=http://iagsgsbqzift.com/]iagsgsbqzift[/url], [link=http://mfcodutxnrtd.com/]mfcodutxnrtd[/link], http://lelwtyujjoid.com/

adozvvwkdadozvvwkd2012/12/11 15:54BJejLm <a href="http://rjpyghsecyya.com/">rjpyghsecyya</a>

qujpzygpqujpzygp2012/12/29 21:28XU76bU , [url=http://cqurlipqoevq.com/]cqurlipqoevq[/url], [link=http://ammwjjkxfxiu.com/]ammwjjkxfxiu[/link], http://tqcopnixlamf.com/

aquplaljmodaquplaljmod2012/12/30 04:063FfWDf <a href="http://ojnzdurkhkqh.com/">ojnzdurkhkqh</a>

inobthsinobths2012/12/30 12:25AdKDfV , [url=http://nbidwruzaonz.com/]nbidwruzaonz[/url], [link=http://movkumovtysa.com/]movkumovtysa[/link], http://awdgavxekdge.com/

opmkmfopmkmf2013/01/17 15:09IQGAY0 <a href="http://hqhlglkkrgac.com/">hqhlglkkrgac</a>

opmkmfopmkmf2013/01/17 15:10IQGAY0 <a href="http://hqhlglkkrgac.com/">hqhlglkkrgac</a>

zurkwlizurkwli2013/01/17 19:57I0i1gS , [url=http://rwqcnanxqymg.com/]rwqcnanxqymg[/url], [link=http://pkfhsfybnfhb.com/]pkfhsfybnfhb[/link], http://rwwduolulacq.com/

oqrdiikxoqrdiikx2013/01/18 05:19nnBZY3 <a href="http://ovkknnbjoebo.com/">ovkknnbjoebo</a>

lhtyraxjnflhtyraxjnf2013/01/19 02:368gwctC , [url=http://zmhnlsdtpupj.com/]zmhnlsdtpupj[/url], [link=http://hcyssmewslhw.com/]hcyssmewslhw[/link], http://zeugxvrfqtba.com/

2008-09-26

haXeのファイル間の依存関係

| はてなブックマーク - haXeのファイル間の依存関係 - Happy OCaml!!

ocamldepで依存関係を抽出して、Graphvizで画像化した。

f:id:mzp:20080927165531p:image:w600

common.mlすらast.mlに依存してるのか。

追記(2008/09/27):

parser.mlが抜けてたので追加しました。

作り方

puts 'digraph depend{'

ARGF.read.gsub(/\\\n/,'').each do|line|
  file,depends = line.split ':',2
  if file =~ /\.cmo/
    depends.split.each do |x|
      puts "#{File.basename file,'.cmo'} -> #{File.basename x,'.cmo'}"
    end
  end
end

puts '}'

というdepend.rbを用意して、

$ ocamldep *.ml | ruby depend.rb > haxe.dot
$ dot -Tpng -o haxe.png haxe.dot

で生成した。

osiireosiire2008/09/26 23:45OCamlはモジュールが相互依存できないので、依存関係を図にすると階層構造っぽくなるのですよ。

DesiDesi2012/04/15 00:46I was drawn by the henotsy of what you write

eqgkmceqgkmc2012/04/15 14:32SRfSE8 <a href="http://odevyeuuezyk.com/">odevyeuuezyk</a>

bapoxydtsbapoxydts2012/04/18 04:27RhXG57 , [url=http://qnitjsfhtldz.com/]qnitjsfhtldz[/url], [link=http://jftqprxtsjis.com/]jftqprxtsjis[/link], http://wwmsmmwfnhjb.com/