kubo39's blog

ただの雑記です。

crystal

Faster command line tool in Crystal?

http://dlang.org/blog/2017/05/24/faster-command-line-tools-in-d/ https://nim-lang.org/blog/2017/05/25/faster-command-line-tools-in-nim.html https://users.rust-lang.org/t/faster-command-line-tools-in-d-rust/10992/14 こんな感じで巷ではやって…

Crystalのprofiling的なsomething?

まずは環境。 ( ՞ਊ ՞) :~/dev/crystal $ crystal --version Crystal 0.19.4 [7f82f79] (2016-10-07) ( ՞ਊ ՞) :~/dev/crystal $ cat /etc/issue Ubuntu 16.10 \n \l ( ՞ਊ ՞) :~/dev/crystal $ cat /proc/version Linux version 4.8.0-26-generic (buildd@lgw0…

tinycr

これはCrystal Advent Calendar2015の17日目らしいです。ひ、日付? な、なんのことです…!? だいぶ昔に極小バイナリ作成をやっていたのですが、あれからいくばくか進捗がありまして現在146バイトとなっています。 https://github.com/kubo39/tinycr せっかく…

Crystalでクロージャを呼ぶ

CrystalのProcは関数ポインタとクロージャに対する参照の組になっている。 クロージャへの参照はCallableなので、 def closure(x : ( -> Nil)) fp = pointerof(x) p "fp: #{fp}" # pointer to function clsr = fp + sizeof(Pointer(Int8)) # See Internal p …

laketowncr#1

当日12時半に起床。集合13時からなのでこの時点で遅刻確定。 さらにアクセスを下調べせずに雑に越谷駅に向かってしまったりして結局一時間半ほど遅れて参加。 当日はこんな感じのことをやって話しました。 speakerdeck.com Ary氏にも解説してもらったけど、…

例によってcrystalのソースコードからどのくらい小さいバイナリを作れるか試すということをやった. 暫定的にここまでやった試みとしては、以下のとおり. curl "http://crystal-lang.s3.amazonaws.com/pcl/libpcl-1.12-1-linux-x86_64.tar.gz" | tar xz -C /t…

CrystalとネットワークI/Oとウェブスタックのはなし

某所での議論を見て。 RubyだとUnicronだとかPumaだとかThinだとかウェブサーバ実装たくさんあるけど、Crystalでウェブサーバ実装が乱立するような可能性ってそんなにないんじゃないかなあ、というのが自分の意見です。 CrystalのI/Oの仕組みはネットワークI…

Crystalのスケジューラめも

Crystalは軽量スレッドを切り替えるためのランタイムスケジューラをもってる。少し調べてみた。 OSスレッドはカーネルのスケジューラによって切り替わるが、軽量スレッドはユーザが切り替えの責任をもつ。 spawn で生成した軽量スレッドは sleep を呼ぶこと…