今年、一発目のリリースになります。
ちょっと間が開いたせいでもないですが、結構な修正が入りました。
・Mac OS X 対応
Mac OS X上で、platfome述語は"MAC OS X"の文字列を返す。
・eval,sandbox述語の追加
文字列のコンパイル実行(eval)
コンパイル実行を制限モードで行う(sandbox)
・一括取得の述語、selecta,sqla述語の追加
結果を全て取得する場合、selectやsqlよりメモリ効率がよい。
・goal節の開始の,(カンマ)が不要になった。
・Linux上でのpipe述語のパフォーマンス改善
大きなところで、Mac OS Xの対応があります。
今年の初売りでMac Book Airを買ったのですが、しばらく放置していましたが、もったいないので少しずつ使うようになりました。
OS Xですが、開発環境構築に結構苦労しました。以下、愚痴がてら簡単な覚書ということで、
私が使ったのは現在の最新の開発環境Xcode4.3とMacPortsの組み合わせなのですが、Xcode4.3をApple Store経由でインストールしたのですが、コマンドラインツールに関しては別途インストールする必要があり、ネットを探し回って、
このページにたどり着きました。
要するにXcodeの統合開発環境からPreferencesをたどり、Command Line ToolsをダウンロードすればOKとのことでした。
ネットをみる限りMacの開発環境はよく変わっているらしくそれはそれで良いのでしょうが、コンパイル環境に関して変更するのも如何なものかと思います。ちなみにWindowsの場合、Visual C/C++はコマンドラインツールに関して言えばDOS時代から変わっていませんし、Linuxにしてもgccを使う上では同様かと思います。
また、Xcode4.3の付属のコンパイラはLLVM-GCCと呼ばれるもので、GCCとは別のコンパイラになります。ADPのコンパイル程度でしたら結構互換性は高いようですが、1点苦労したのが、TLS(Thread Local Storage)が未サポートということで自分で、pthread_setspecificを使って実装しました。
『いや・・・オレもTLS使うのはじめてだが、TLSって20世紀から存在したかと思うのだが・・・gccといいながらunsupported target とか言われても・・・。』
と愚痴りながらpthread_setspecificのマニュアルと格闘しました。いやgccなら __thread 一発で終わるのに・・・。
その他、ADPは、unixODBCを使っているのですが、とりあえずバージョン0.79ではMacPortsからunixODBCをインストールしています。
ただ、MAC OS Xの場合、iODBCを使用しているらしくこのあたりはひょっとしたら将来変更があるかもしれません。
MAC OS Xの場合、32ビットOSでも64ビットバイナリが動作可能のようで、実際に試したところ32ビットOS上で64ビットのバイナリが動作したので、64ビットバイナリのみ用意しています。これについては他のプラットフォームにはない長所ですごいと思いました(どうやっているんだろうという疑問があるのですが・・・)。
とまぁこんな感じでまだまだ実験的にサポートした感は否めませんが取り合えず OS Xもサポートするようになりました。
忙しさにかまけてブログの更新をおろそかにしておりました……いい加減「あけましておめでとう」もないので更新します。
嫁がハンター語をマスターしていたとか、ADPの1月のアップをサボっていたとか、でも2月はVer0.79をリリースできそうだとか、安物の保護シートのiPhoneの画面を指でなぞると指先が痛いときがあるとか(肌が弱い)、まぁネタには尽きないのですが、最近、微妙にホットな放送大学のお話でも。
話は単純で、
このページにありますとおり、自称有名大教授が放送大学を本当の大学でないとTwitter上で非難して、放送大学の学長が登場し、自称有名大教授が退散した。というシンプルな話です。
ちなみに私は放送大学卒なので、この自称有名大学教授に言わせれば『放送大学を卒業してプログラミング言語を開発している人がいるけど、これってありですか?』と言われそうというお約束のネタはおいて置いて、実は以前に本を出したときに2chで微妙にネタにされたりしてます。
このスレの643のコメントに
『はじめてのVine Linuxサーバ―「コンパクト」「軽量」な日本語ディストリビューションを使う!
こんな題名の本が出ていてびっくりした。
著者が「放送大学卒」だったのにも驚いた。 』
とまぁ、これだけなので微妙なのですが……ちなみに自作自演ではないですよ。
自称大学教授に言われるまでもなく、通信制の大学ということである種の引け目ようなものを感じなくもなかったですが、学長の毅然とした態度に、改めて私も卒業生としてがんばろうと思った次第です。
2012年も6日が過ぎようとしていますが、いまさらながらあけましておめでとうございます。
初売りのMac Book Airを買ったり、ニッチンを大人買いしたり、色々書くことはあるのですが、ADP関連の報告を。
去年、だじゃれクラウド開発していたメンバから『今年はADPを広めましょう』ということで、今年は少し活動の幅を広げます。
■ ロゴ
ロゴを作って頂きました。
新しいロゴは、
になります。個人的には結構気に入っております。
というわけで、ADPの正式名称は、大文字でも小文字でも良いということになりました。
■ SNSの作成
露出度を上げる為にtwitterとfacebookに登録しました。
・ twitterアカウント
http://twitter.com/#!/adp_la
・ facebookページ
https://www.facebook.com/adp.la
■ sandoboxプロジェクト(仮)
今年の目玉の1つですが、ADPが使えるフリーのレンタルサーバーを立ち上げます。
とにかく使ってもらわなければ意味がないので、ADPを試す機会を増やそうということでやってみます。
■ 分散環境対応
これは元々ロードマップにあったものですが、去年の年末頃にVer1.0ではやめにしたのですが、別の人から『分散コンピューティング環境が欲しい』との要望を受けてやっぱり開発をしようかと思いました。
利用者が付いて貰えるのはありがたいので、こちらもなるべく実現するようにがんばります。
iPhoneを買ったとか、T1028のメモリ4GB計画は失敗したとか、書くことはあるのですが、
ADPの0.78をリリースしましたのでその告知を。
今回のリリースですが、env述語のバグFIXのみで、今までの中でもっとも変更点が少ないリリースになります。
公にはしていませんでしたが、月1でリリースしようと決めていましたので、1点だけの変更ですがリリースします。
ちなみに、今回のリリースでは間に合いませんでしたが、対応マシン(コンパイル済みのバイナリ)にMAC(intel Mac)を追加しようかと思っています。iPhoneも買ったことだしこれで私も一人前のAppleユーザとして旅立とうかと思とります。
また、とある人から『はやくバージョン1を出せ。」と言われましたので、若干ですが方針変更をします。今まではマルチスレッド対応を優先しようかと思っていましたが、リソース開放機能を優先して開発します。で、このリソース開放機能の実装をもって バージョン1.0としようかと思ってます。
まぁ、バージョン番号自体にこだわりは無かったので、ユーザというかプロジェクト関係者というか関わる人が増えたのでその意向を取り入れる形になってます。ちなみにリソース開放機能についてはADPの構文が変更になる可能性があるのでこれについては外せないということで実装します。
先日、液晶パネルを交換してみたT1028ですが、今度はハードディスクをSSDに置き換えてみました。
新規にSSDを購入しようかとも思ったのですが、T1028のスペックを確認しますとチップセットが945系のモバイル用ということで、どうやらシリアルATAの初期版のようで、転送速度が頭打ちする可能性があるので、メインマシンで使っていた X25-M にしました。
メインマシンには前から使っていたG-MONSTERを使うようにしました。なぜ、G-MONSTERをT1028で使わないのかですが、G-MONSTERはプチフリで有名な初期のSSDでこれでT1028は厳しいということでややこしい入れ替えとなりました。
作業は、
1.メインマシンのSSDの交換
2.T1028のハードディスク→SSD
でした。
Windows 7ですが、OSでハードディスクの交換に対応しており、バックアップメニューから、『システムイメージの作成』、『システム修復ディスクの作成』を行い、ディスクの交換後、システム修復ディスクから起動し、作成したシステムイメージを使って新しいSSDにシステムを復元すればOKです。
もっとも、G-MONSTERはプチフリがするということで2台でRAID(ストライプ)で使ってたので今回もそうしようと、RAIDを組みました関係で、ICH10のATAモードが、旧システムはAHCIで、新システムがRAIDになり、普通では起動しなくなります。
マイクロソフトさんも、そこらへんは解っておられるようで、
このページからドライバが入手できますので、システムイメージの作成前にドライバをインストールしておきます。
これで、メインマシンの換装はおわりましたので、同じことを行えばT1028は晴れてSSDに換装となるかと思います。
T1028側ですが今回は、フリーのバックアップツールの、
EaseUs Todo Backupを使ってみました。これはT1028に載っているリカバリエリアを含めてコピーを行う為ですが、コピーした後に判りましたが、リカバリ領域を含めて正しくコピーを行うには、
このページによると同一のディスクである必要があるらしい。実際に私の場合も起動時に、no_xpr というエラーが出て起動しなくなりました。
リカバリ領域をあきらめるなら、このまま、
回復コンソール(あらかじめT1028で修復ディスクを作成しそこから起動する)を起動し、
このページにあるように
bootrec /fixboot
bootrec /fixmbr
とすると今度は、起動時に『BOOTMGR is missing 』というメッセージが出るようになるので今度は、
このページのとおりに、
bcdboot c:\windows
とすると無事に起動するようになります。
ややこしいですが、次回の換装時はT1028でも、システムイメージの作成&修復で試してみます。
実際にどのくらいパフォーマンスが上がったかですが、以下のようになりました。
■換装前(購入直後のベンチマーク)
★ ★ ★ HDBENCH Ver 3.40 beta 6 (C)EP82改/かず ★ ★ ★
M/B Name
Processor 1662.68MHz[GenuineIntel family 6 model C step 2]
Processor 1662.72MHz[GenuineIntel family 6 model C step 2]
VideoCard RDPDD Chained DD
Resolution 1024x600 (16Bit color)
Memory 2086,872 KByte
OS Windows NT 6.1 (Build: 7600)
ALL Integer Float MemoryR MemoryW MemoryRW DirectDraw
40526 89909 63345 49731 50124 88444 12
Rectangle Text Ellipse BitBlt Read Write RRead RWrite Drive
3908 3744 2052 284 71259 70572 13047 25937 C:\100MB
■換装後(液晶・SSD換装後のベンチマーク)
★ ★ ★ HDBENCH Ver 3.40 beta 6 (C)EP82改/かず ★ ★ ★
M/B Name
Processor 1662.68MHz[GenuineIntel family 6 model C step 2]
Processor 1662.68MHz[GenuineIntel family 6 model C step 2]
VideoCard RDPDD Chained DD
Resolution 1366x768 (16Bit color)
Memory 2086,872 KByte
OS Windows NT 6.1 (Build: 7601) Service Pack 1
ALL Integer Float MemoryR MemoryW MemoryRW DirectDraw
60509 82944 60433 49981 50396 88820 13
Rectangle Text Ellipse BitBlt Read Write RRead RWrite Drive
24200 24563 2075 168 126108 79012 85191 38597 C:\100MB
なぜかグラフィック系のRectangleとTextのスコアが換装後の方が伸びているが、これはグラフィックドライバの設定が影響しています。
ディスクは、Read、Write、RRead、RWriteの項目になりますが、Readは、X25-Mの性能からいうとチップセットの転送速度の影響で頭打ちになっているようです。また、Writeはあまり性能が上がっていませんが、これはX25-M のもともとの性能になります。この辺りは最近の安いSSDの方がトータル性能が上がるような気がしますので、更に限界に挑戦すべくお金とヒマがあればロマンを求めたいところです。
RRead(ランダムリード)の伸びが大きく、確かに起動時間の体感速度も速くなっています。
SSDに換装したので消費電力の面でも有利かと思いますが、休止を行うと全メモリをSSDに吐き出すので、寿命の面からいうとなるべく休止は使わないように(ふたを閉じたときはスリープにするように)しています。
この辺りはしばらく様子みということで。
ちなみに、この一連の作業(計、6時間)をみていたヨメはあきれ返ったようでなにも言いませんでした。