contents
- 2012年04月21日(土) K*BUG 研究会について
- 凡例
- Squeak回りの最近の話題
- Virtual Machine (VM)
- Squeak VM 4.0
- ライセンス変更
- CogVM
- [Squeak-ja] Roar VM
- Image
- [Squeak-ja] Squeak image
- [Squeak-ja] Etoys
- Pharo
- [Squeak-ja] Cuis
- Scratch
- Squeak 最新VM 4.4.7
- http://squeakvm.org/ 本家版 4.4.7
- 標準的なbuild方法
- 4.4.7VM 本家版の問題点 (?)
- lang/squeak を更新できなかった言い訳すると…
- Subverion 2357 vs 2375 vs 2383
- わかりましたか? 2357 vs 2375 vs 2383
- 本家チェンジログ from 2357 to 2375
- Good job Ian(_o_)
- FreeBSD port lang/squeak 4.4.7-2375更新 (Squeak 最新VM 4.4.7:5 ) (cont'd)
- 更新方針
- FreeBSD Squeak VM更新の歴史
- FreeBSDのRELEASE と Squeak VM バージョン
- 拡大図 ~ FreeBSDのRELEASE と Squeak VM バージョン
- lang/squeak 誕生前後
- 遅いながらも更新期
- 黒歴史
- 復活なるか!?
- 今後の展望
- 参考文献
- FreeBSD port
- Other BSD
- Squeak
- Scratch
- Scratch Plugin
- Release date
- Logo
FreeBSD port lang/squeak4.4.7-2375への道
- by 武藤武士 <mutoh@610t.org> or @610t
@
2012年04月21日(土) K*BUG 研究会について
- K*BUG2012年4月勉強会: イベント告知 & 参加登録 & 資料リンク
- K*BUG 2012/04/21の記録: tweet (準備、当日、後日談)
凡例
- [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
ライセンス変更
- 全ての著者に確認をとった
- 旧ライセンスApple Computer, Inc. Software License
- Apple提供分などはApache License, Version 2.0へ
- 4.0 移行追加分のライセンスはMIT License
- これで(Debianに入れられる)オープンソースとなる
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
- [本家
- Many core対応を目指すVM
Image
[Squeak-ja] Squeak image
- [本家] ftp://ftp.squeak.org/
- 最近のイメージ (4.x) は、教育的な顔を見せずに、そっけない感じ
- 「Squeak界のSlackware化」
[Squeak-ja] Etoys
- もうすぐ5.0 (4.1.1: 2012/04/24現在)
- 目玉はScratchと相互接続できる ScratchConnect
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
- 参考文献
- [Smalltalk勉強会] Pharo Smalltalkの紹介 @ Smalltalk合同勉強会@名古屋
- [Smalltalk勉強会] A clean, innovative, open-source Smalltalk Pharo @ 第32回Smalltalk勉強会
[Squeak-ja] Cuis
- [本家] http://www.jvuletich.org/Cuis/Index.html
- Simple
- Small
- Clean
- [Squeak-ja] 余計なものを捨ててシンプルにした上で機能を追加
Scratch
- 2012/05/19 に Scratch Day!!
- 新たな教育用環境 from MIT
- タイルスクリプティングをより使いやすくしている
- 作った作品はJavaプラグインでブラウザベースで動作
- 色々な環境で動きます
- ハードウエアで物理世界とのインタラクションもできる
- WeDO :
- PicoBoard
- なのぼ〜ど NanoBoard , V1.2: 安価なPicoBoard互換ボード
- Kinnect2Scratch : Kinnectも使えるらしいです
- [Squeak-ja] ScratchからSqueakに降りてSmalltalkをいじることも
Squeak 最新VM 4.4.7
http://squeakvm.org/ 本家版 4.4.7
- http://squeakvm.org/unix/
- Ian Piumarta さんが作成
- VirtualBox上で作成
標準的な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 バージョンが違う
Subverion 2357 vs 2375 vs 2383
わかりましたか? 2357 vs 2375 vs 2383
- 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 バージョン
拡大図 ~ FreeBSDのRELEASE と Squeak VM バージョン
lang/squeak 誕生前後
- 2002/10/10 FreeBSD 4.7R
- 2003/04/03 FreeBSD 4.8R
- 2003/10/14 Squeak-3.6-0.i386-freebsd4.7
- 2004/04/02 Squeak-3.6-3.i386-freebsd4.8
- 2004/05/27 FreeBSD 4.10R
- 2004/06/03 port lang/squeak登場 (VM 3.6)
- 2005/01/25 FreeBSD 4.11R
- 2005/03/19 Squeak-3.7-7.i386-freebsd4.10
遅いながらも更新期
- 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)
黒歴史
- 2009/05/04 FreeBSD 7.2R
- 2009/08/01 Squeak-3.10-6.i386-freebsd7.2
- 2009/09/16 Squeak-3.11.3.2135-freebsd7.2
- 2010/03/16 VM 4.0: Squeak-3.10-6.src
- 2010/04/18: VM 4.1; Squeak-4.0.3.2202-src
- All in One ( Windows / Mac / Linux ) を提供開始
- 2011/02/24 FreeBSD 8.2R
- 2011/03/30 Squeak-4.4.7.2374-freebsd8.2
復活なるか!?
- 2012/01/12 FreeBSD 9.0R
- 2011/01/23 VM 4.4: Squeak-4.4.7.2357-src
- 2011/08/25 Squeak-4.4.7.2383-freebsd8.2_amd64
- 2012/04/15 VM 4.4.7-2375; FreeBSD lang/squeak send-pr ports/166959 (from 3.9)
- Special thanks to umq!! : https://gist.github.com/2415569
今後の展望
- 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
- FreeBSD Porter's Handbook: http://www.freebsd.org/doc/en/books/porters-handbook/book.html
- My road: FreeBSD port lang/squeak: http://www.freebsd.org/cgi/cvsweb.cgi/ports/lang/squeak/
- ports/166959
- Special thanks to umq!! : https://gist.github.com/2415569
- patch-unix-plugins-SerialPlugin-sqUnixSerial.c: Force using USB tty (/dev/ttyU0) except normal serial.
Other BSD
- NetBSD pkgsrc
- lang/squeak-vm: http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/lang/squeak-vm/
- lang/squeak: http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/lang/squeak/
Squeak
- Squeak: http://www.squeak.org/
- Squeak VM本家: : http://squeakvm.org/index.html
- Squeak VM svn repository: http://www.squeakvm.com/cgi-bin/viewcvs.cgi/trunk/
- Squeak + Gainer: http://www.yengawa.com/squeak_gainer
Scratch
- Scratch: http://scratch.mit.edu/
Scratch Plugin
- Scratch plugin source: http://info.scratch.mit.edu/Scratch_Source_Code_Licensed_Code
- Linux Camera Plug-In Information http://info.scratch.mit.edu/Linux_installer/Linux_Camera_Plug-in
Release date
- FreeBSD News Flash: http://www.freebsd.org/news/newsflash.html
- Release Information: http://www.freebsd.org/releases/index.html
- Squeak unix VM: http://squeakvm.org/unix/release/
- Squek ftp: ftp://ftp.squeak.org/
- 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
- FreeBSD Logo http://www.freebsd.org/logo.html
- Squeak original Logo: http://www.rowledge.org/tim/squeak/index.html
- Squeak logo variation: http://wiki.squeak.org/squeak/2170
- squeakBSD.xcf: Squeak logo + FreeBSD logo for gimp
- kbug-sacra.svg: K*BUG daemon Sacra version for inkscape