contents
    1. 2012年04月21日(土) K*BUG 研究会について
  1. 凡例
  2. Squeak回りの最近の話題
    1. Virtual Machine (VM)
      1. Squeak VM 4.0
        1. ライセンス変更
      2. CogVM
      3. [Squeak-ja] Roar VM
    2. Image
      1. [Squeak-ja] Squeak image
      2. [Squeak-ja] Etoys
      3. Pharo
      4. [Squeak-ja] Cuis
    3. Scratch
  3. Squeak 最新VM 4.4.7
    1. http://squeakvm.org/ 本家版 4.4.7
      1. 標準的なbuild方法
      2. 4.4.7VM 本家版の問題点 (?)
    2. lang/squeak を更新できなかった言い訳すると…
    3. Subverion 2357 vs 2375 vs 2383
      1. わかりましたか? 2357 vs 2375 vs 2383
    4. 本家チェンジログ from 2357 to 2375
      1. Good job Ian(_o_)
    5. FreeBSD port lang/squeak 4.4.7-2375更新 (Squeak 最新VM 4.4.7:5 ) (cont'd)
      1. 更新方針
  4. FreeBSD Squeak VM更新の歴史
    1. FreeBSDのRELEASE と Squeak VM バージョン
      1. 拡大図 ~ FreeBSDのRELEASE と Squeak VM バージョン
    2. lang/squeak 誕生前後
    3. 遅いながらも更新期
    4. 黒歴史
    5. 復活なるか!?
  5. 今後の展望
  6. 参考文献
    1. FreeBSD port
      1. Other BSD
    2. Squeak
      1. Scratch
        1. Scratch Plugin
    3. Release date
    4. Logo

FreeBSD port lang/squeak4.4.7-2375への道

  • by 武藤武士 <mutoh@610t.org> or @610t

squeakBSD.png @ kbug-sacra-mini.png

2012年04月21日(土) K*BUG 研究会について

凡例

  • [Squeak-ja] Squeak-ja MLで教えていただいた情報
    • Squeak-ja: 4634 K*BUG 2012/04/21のむとう発表「FreeBSD port lang/squeak4.4.7-2375への道」について
  • [Smalltalk勉強会] Smalltalk勉強会からの情報
  • [本家] 本家サイトからの引用

Squeak回りの最近の話題

Virtual Machine (VM)

Squeak VM 4.0

  • cmake化
  • なんか、Pluginたくさん増えてますけど…
    • ALSAがあるさ: FreeBSDってどういう対応でしたっけ?
insp700m [ ~ ] % ls /usr/local/lib/squeak/4.4.7-2375
so.AioPlugin                    so.UUIDPlugin
so.B3DAcceleratorPlugin         so.UnixOSProcessPlugin
so.ClipboardExtendedPlugin      so.XDisplayControlPlugin
so.DBusPlugin                   so.vm-display-X11
so.FileCopyPlugin               so.vm-display-custom
so.GStreamerPlugin              so.vm-display-null
so.HostWindowPlugin             so.vm-sound-ALSA
so.KedamaPlugin                 so.vm-sound-NAS
so.KedamaPlugin2                so.vm-sound-OSS
so.MIDIPlugin                   so.vm-sound-custom
so.Mpeg3Plugin                  so.vm-sound-null
so.RomePlugin                   so.vm-sound-pulse
so.Squeak3D                     squeakvm
so.SqueakFFIPrims
ライセンス変更

CogVM

  • [Squeak-ja]
    • JIT + PICで高速化
    • マルチスレッド版Cogで、FFI呼び出しをネイティブスレッド非同期実行が可能
  • [本家] http://www.mirandabanda.org/cogblog/
    • stack-to-register-mapping just-in-time compiler
    • aggressive in-line message cacheing
    • effective optimization of Smalltalk’s first-class activation records

[Squeak-ja] Roar VM

Image

[Squeak-ja] Squeak image

[Squeak-ja] Etoys

  • もうすぐ5.0 (4.1.1: 2012/04/24現在)

Pharo

  • 仕事で使えるSmalltalk
  • [Squeak-ja]
    • Squeakの後方互換性を捨てた
    • よりアグレッシブ
    • ビジネスアプリの開発もできる
  • [本家] http://www.pharo-project.org/home
    • pure object-oriented language
    • runs on all major platforms
    • stable core with large test suite
    • a clean look and feel
    • good developer tools
    • low memory footprint

[Squeak-ja] Cuis

Scratch

Squeak 最新VM 4.4.7

http://squeakvm.org/ 本家版 4.4.7

標準的なbuild方法

insp700m [ Squeak-4.4.7.2375-src ] % mkdir Squeak-4.4.7.2375-src/bld
insp700m [ Squeak-4.4.7.2375-src ] % cd Squeak-4.4.7.2375-src/bld
insp700m [ Squeak-4.4.7.2375-src/bld ] % ../unix/cmake/configure
insp700m [ Squeak-4.4.7.2375-src/bld ] % gmake

4.4.7VM 本家版の問題点 (?)

  • 依存関係は大丈夫?: 動かすために必要なライブラリは?
    • (上とほぼ同じだけど) Plugin本当に動く?
  • ほんの少しFreeBSD RELEASEとズレてる(後述)

lang/squeak を更新できなかった言い訳すると…

  • 作業はやってたんだけども…
  • XIMパッチの更新が大変だった > 自業自得
    • VM 4本体にマージされたり色々と…
  • cmake化されてる…
    • 入っているライブラリは拾いまくる
  • 4.4.7といってもFreeBSD用SVN バージョンが違う
スクリーンショット 2012-04-12 14.37.02.png

Subverion 2357 vs 2375 vs 2383

わかりましたか? 2357 vs 2375 vs 2383

version.png
  • 2375は公式なソース tar ball の提供もありません…

本家チェンジログ from 2357 to 2375

Revision 2375 (Thu Mar 31 01:48:46 2011 UTC) by piumarta 
  Remove reference to undefined symbol "error".
   Resolve symbols eagerly on FreeBSD.
Revision 2374 (Wed Mar 30 08:24:30 2011 UTC) by piumarta 
  Re-enable FloatMathPlugin optimisation.
   Resolve plugin symbols lazily on FreeBSD.
Revision 2364 (Mon Mar 14 05:04:23 2011 UTC) by piumarta 
  close fd if port init fails; cap open ports at 32
Revision 2362 (Wed Feb 16 05:52:50 2011 UTC) by piumarta 
  configure UUID plugin based on available features,
   not on platform type; disable UUID plugin during init if uuid_generate() causes SEGV
Revision 2358 (Thu Jan 27 03:20:17 2011 UTC) by piumarta 
  include generated sources in Mpeg3Plugin

Good job Ian(_o_)

FreeBSD port lang/squeak 4.4.7-2375更新 (Squeak 最新VM 4.4.7:5 ) (cont'd)

更新方針

  • 一からやり直す
    • とりあえずXIMも切る
  • knobsなんて廃止、全部依存
    • knobs復旧は後で

FreeBSD Squeak VM更新の歴史

FreeBSDのRELEASE と Squeak VM バージョン

release.png

拡大図 ~ FreeBSDのRELEASE と Squeak VM バージョン

squeak-release.png

lang/squeak 誕生前後

遅いながらも更新期

  • 2006/05/08 FreeBSD 6.1R
  • 2006/10/05 VM 3.6 ; むとうが maintainership を取得 (XIMパッチをマージ)
  • 2006/10/10 Squeak-3.9-8.i386-freebsd6.1
  • 2007/01/07 VM 3.7; FreeBSD lang/squeak 更新 (from 3.6)
  • 2008/08/25 VM 3.9; FreeBSD lang/squeak 更新 (from 3.7)

黒歴史

復活なるか!?

今後の展望

  • Ianさんと仲良くなろう!!
  • VM 関連
    • amd64 build: 4.4.7-2387なら作れる?
    • CogVM build
  • knobの復活
    • without X11など
    • そも、GStreamerPluginとかvm-sound-pulseとか要るか?
    • cmake configureが勝手に拾うので、明示的にwithout指定が必要
    • pkg-plistもいじらんとアカンよね
  • イメージの別port化 (Squeak ver, Pharo, Scratch, ...)
  • Scratch 対応: なんで動かんようになったん?
    • OSC2011 Kyotoでは動いていた…
    • Extra Plugins: V4LCamera, Scratch, UUID
  • 他のBSDへ
    • NetBSD pkgsrc
xen [ ~ ] % egrep ^SQUEAK_VERSION /usr/pkgsrc/lang/squeak-vm/Makefile
SQUEAK_VERSION= 3.11.3.2135
xen [ ~ ] % egrep ^SQUEAK_VERSION /usr/pkgsrc/lang/squeak/Makefile
SQUEAK_VERSION= 4.0
    • MacPort
mutoubushinokonpyuta-4% port search squeak                                              
squeak @3.9 (lang, squeak)
    Full, portable, Smalltalk-80 system

参考文献

FreeBSD port

Other BSD

Squeak

Scratch

Scratch Plugin

Release date

  • gnuplot
    • release.plt: All data
    • squeak-release.plt: FreeBSD related data
  • release.dat: FreeBSD RELEASE
    • isan-release.dat: FreeBSD RELEASE with Ian's VM
  • squeak.dat: Squeak VM RELEASE
    • ian.dat: Ian's FreeBSD VM version
    • port.dat: FreeBSD port lang/squeak VM version

Logo

  • squeakBSD.xcf: Squeak logo + FreeBSD logo for gimp
  • kbug-sacra.svg: K*BUG daemon Sacra version for inkscape
Last modified: 2012-04-24
Post-it: New Post-it (help)

Text color: [_][_][_][_]

Background: [_][_][_][_][_][_]

Draw Line:

x: y: