きりかノート 3冊め

おあそびプログラミング

rubycocoa

RubyCocoaをふつーのgemにしたい

だいぶ前から考えてた、RubyCocoaをふつーのgemにすることに挑戦してみた。アプリ用の.frameworkはまだ手を付けてないけど、拡張ライブラリのほうは`rake test`が全部通るとこまできた。 "[WIP] make rubycocoa to a gem by kimuraw · Pull Request #12" -現…

RubyCocoa今週のコミット 2017-06-12..17

新しいmacOSのbetaでてたので試してみた。案の定いろいろ問題あったんだけど、それ以前に10.12で動いてないことにいまさら気付いた… librubyに静的リンクしたRubyCocoaの生成を可能に すっごい前にプルリクもらってたのをマージ。なんかいろいろな変更が混ざ…

RubyCocoa 今日のコミット 2015-09-26

以前に見つかっていたバグがよくわからないけど直った。ひさしぶりにぜんぶテストが通るようになったぜ。。 NSArrayController#arragendObjects#eachするとruby-2.xだけNSGenericExceptionが起きるのを修正(beca6d4) rubycocoa issue#2に書いたとおりなんだ…

RubyCocoa 今日のコミット 2015-09-19

10.11GM上で10.10と同じようにテスト通る(既知の1F)まで持ってきた。作業はビルドまわりとテストスクリプト側の修正でコアの方は手をいれてない。 10.11ではRubyCocoa.frameworkは@excecutable_pathなしをデフォルトに。 (ceb7962) 上述のDYLD_環境変数の件…

RubyCocoa 今日のコミット 2015-06-12

新しいOS Xのbetaが出たので検証中、っていうかSEGVしてテスト走らないじゃん。。だいたいこういうレベルでおかしいときは、コンパイル時に警告出てたりするものなので確認。 In file included from /Users/kimuraw/proj/rubycocoa/framework/src/objc/Overr…

RubyCocoa 今日のコミット 2015-05-31

半年ぶりくらいですね。。 github移行のもろもろ。 Xcodeのファイルテンプレートのplistが間違ってたのを訂正。(RubyCocoa / Bugs / #67 TemplateInfo.plist in File Templates not working) rbenvでインストールしたrubyを使っているときにrakeが失敗する問…

RubyCocoaプロジェクトをgithubに移行

しました。 https://github.com/rubycocoa/rubycocoa https://rubycocoa.github.io インストーラは最新の1.2.0 (2014年7月)だけgithubにも置きました。それ以前のはSourceForgeからゲットしてください。import.github.com使って、そのまま持ってきたので昔の…

Yosemite用のRubyCocoa 1.2.0インストーラを公開

うん、すっかり忘れてた。Yosemite環境用のインストーラを用意しました。 https://sourceforge.net/projects/rubycocoa/files/RubyCocoa/1.2.0/ ruby-1.8はOS X 10.10には入っていないので、ruby-2.0用のもののみです。1.8で使いたい人は先日の1.8用の一式を…

RubyCocoa with Ruby-1.8 on Yosemite

ちょっとまだruby 2.0対応版に問題があるようなので、とりあえず用意しました。Yosemite GM3上で簡単に動作確認済みです。 https://www.dropbox.com/sh/nojy60iw9gl0j0r/AACqelR-WQzHdFU23qTb-cU3a?dl=0 配布物は次の2つです。 Ruby-1.8-for-RubyCocoa.pkg: …

RubyCocoa 1.2.0 リリース!

しました。ついにRuby 2.0以降に対応しました!(1.9は対応しません) https://sourceforge.net/projects/rubycocoa/files/RubyCocoa/1.2.0/ ちょっとパッケージング失敗したので、日本時間で今日の14:30以前にダウンロードした人は取り直したほうがよいかも…

RubyCocoa 今週のコミット ..2014-07-26 10.6/10.7での初期化エラーを修正

細かいとこではドキュメント更新したり、コンパイル時の警告つぶしたりしてた。大きい作業としては、Snow LeopardやLion環境では"trunkでrequire 'osx/cocoa'しただけで落ちる"という致命的な問題があってその対応をしていた。エラーメッセージはこんなの。 …

RubyCocoa 今日のコミット 2014-07-21 NSData.dataWithRubyString()をdeprecatedに

いちおRC出したのでそんなにいじるつもりはないので、yardのドキュメントをメンテしたり。便利メソッドとしてOSX::NSData.dataWithRubyString(str)というメソッドが昔からあるんだけど、使い道があんまりないなーと思った上に、そもそもエンコーディングなし…

RubyCocoa 1.2.0 RC (Ruby-2.0対応版)を公開

しました。いきなりリリースしてもよかったんだけど、自分だけの確認では不安だったので。 https://sourceforge.net/projects/rubycocoa/files/RubyCocoa/1.2.0-rc/ 動作確認用なのでOS X 10.9用のみです。なにかあればお知らせください。ヤバそうな問題が報…

RubyCocoa 今週のコミット ..2014-07-20 サンプルアプリの動作確認

sample/以下にあるアプリの一覧をつくって、ひたすら確認して直してた。 もともとおかしかったぽい make系のプロジェクトで-framework AppKitが足りない。 import 足しておいた。 ruby-2.0によるもの ruby-2.0でSyntax Errorになるものを直した。 他のアプリ…

RubyCocoa 今日のコミット 2014-07-14 インストーラ作成スクリプトの調整

10.9 Mervericks用はruby-1.8とruby-2.0の両方がOSに付いてるので、それぞれ用のRubyCocoa.frameworkのインストーラをリリースする予定。なのでそのあたりの調整あれこれ。 リリースファイルの名前を自由に指定できるように。 (r2587) パッケージ作成時の設…

RubyCocoa 今日のコミット 2014-07-10 ruby-2.xでThreadがおかしい?件に対応

だいたいruby-2.x対応できたので、samples/以下にあるアプリを動かしたりして動作確認してる。で、どうもrubyのThreadを使ったコードがうまく動かなくって、スレッドが切り替わらなかったりするのを調べてたんだけれどようやくわかった。 Thread.passがひつ…

RubyCocoa 今週のコミット ..2014-07-03 standaloneify.rbのruby-2.x対応

1週間以上前にテスト全部とおるようになったんだけど、実際にアプリ試してみるとダメなところあったりで対処中。今はstandaloneify.rbを対応してるとこ。 ruby-2.xで"$0 not initialized"を修正。(r2581) ruby-2.xでクラッシュするのを修正。(r2582) 簡単に…

RubyCocoa 文字列のエンコーディング (続き)

先週の続き。 if/switchによる変換を、st_tableの変換表に。→実装した。 名前によるエンコーディング変換表の自動作成。→うまくいかなかった。 変換できないエンコーディング。→可能ならUTF-8に。 試しながら考えたや課題など。 st_tableによる変換表 Rubyの…

standaloneify.rb トラブルシューティング

RubyCocoaに添付されてる便利スクリプト、standaloneify.rbで問題が起きたときの対処法。 standaloneify.rbとは 各種ライブラリ(.rb, .bundleなど)を.app内にパッケージして配布しやすくするツール。いつのころからかRubyCocoaに添付されてる。わりと裏技的…

RubyCocoa 今週のコミット 2014-06-13 文字列のエンコーディング

Ruby 1.8と1.9以降のちがいについては、るびま25号の"Rubyist Magazine - Ruby M17N の設計と実装"に詳しい。すげー雑に書くと、 ruby-1.8: Stringはバイト列。文字列処理や正規表現のマッチは$KCODEで制御。 ruby-1.9: 個々のStringインスタンスが自分のエ…

RubyCocoa 今週のコミット ..2014-06-14 ruby-2.x対応

だいたいこんな感じ。 ruby-2.1上のテストの失敗をつぶす。 Ruby StringとNSString間のエンコーディング変換(超暫定)。 OS X 10.5以前用のコードを削除。 APIドキュメントの更新。 開発用のinstall.rbやRakefileの整備。 テストの失敗は(狭義では?)RubyCoc…

RubyCocoa 今日のコミット 2014-06-07 擬似オープンクラスの2.x対応

OSX.objc_classnames()を追加。 (r2530) OSX.ns_import_all()を追加。require_framework時に呼ぶように。 (r2531) テストコードの一部にns_importを追加。 (r2532) ということで、やっとここまできたぜ。。 % ruby2.1 install.rb test : Finished in 2.60618…

RubyCocoa 今日のコミット 2014-06-07 テストコードのruby-2.1対応

ruby-1.8と2.1の非互換でテスト失敗するところの対応あれこれ。 Array#[range] = nil (r2525) ruby-1.8ではrangeの範囲の値削除だったけど、1.9以降ではその位置にnilが入る。doc/ChangeLog-1.9.3に array.c (rb_ary_update): a[n,m]=nil no longer works as…

RubyCocoa 今日のコミット 2014-06-06 `?a`リテラルの修正

ruby-2.x対応に向けて、2月にメモった課題を調べてる。今日はテスト流すと何ヶ所かで"ArgumentError: invalid value for Integer()"って例外がでて失敗するとこがあるのについて。エラーが出てるのはrb_Integer(str)で文字を整数値に変換しようとしていると…

RubyCocoa 今日のコミット 2014-06-05

次のOS Xのバージョンは10.10に決まりましたね。そうならないことを期待していたのに。。 OSのバージョン判定を修正。(r2520) ビルドスクリプトの中で、"バージョン文字列".to_f >= 10.8とかやってるとこがいっぱいあったので直した。ついでに10.5以前用の処…

BridgeSupportファイルにはどのくらいクラス定義があるか

こないだFoundation.bridgesupportにNSEnumeratorがないことがわかったので、実際どんなもんだろと確認してみた。 % ack --hh '^@interface' /System/Library/Frameworks/Foundation.framework/Headers | cut -f2 -d\ | cut -f1 -d\: | sed -e 's/(.*)//g' |…

RubyCocoa 今日のコミット 2014-02-01

やっぱイベントで内職ははかどる。。いや、話もちゃんと聞いてましたよ。ruby-2.0|2.1まわりの作業。未コミットの修正含めれば、ruby-2.0, 2.1でもテストはだいぶ通るようになってきた。 "ruby/st.h"の判定をHAVE_RUBY_RUBY_HからHAVE_RUBY_ST_Hに変更。 (r2…

Interface Builderにカスタムクラスやアウトレットが表示されない

@casualconcさんからmentionで教えてもらった。Xcode 5.0.2の環境で、ruby側で定義したクラスやアウトレットがInterface Builderで表示されないとのこと。ええとまあ、正直よく今まで動いてたなあ…って感じではあるのですが、内部的な仕組みとしてはこんなふ…

RubyCocoa 今日あたりのコミット 2013-11-28

ruby-2.0対応の準備とか。 名前が未定義のときModule#nameがruby-2.0ではnilを、1.8では""を返すという差異によるエラーを修正。to_s入れただけ。(r2509) ruby-1.8.4以前用のコードを削除。(r2510, r2511) ruby-2.0でのエラーを修正。requireとeucなファイル…

RubyCocoa-1.1.0 リリース!

しました。10.7用のdmgは、いるひとがいたら作るので言ってください。 https://sourceforge.net/projects/rubycocoa/files/RubyCocoa/1.1.0/ 今回の主な変更点は、 キャッシュの有効/無効を制御する$RUBYCOCOA_USE_OC2RBCACHEを導入。 standaloneify.rbが動…