From: "usa (Usaku NAKAMURA)" Date: 2012-06-11T10:38:05+09:00 Subject: [ruby-dev:45715] [ruby-trunk - Feature #3946] Array#packのqQ指定子に機種依存サイズフラグ!を追加 Issue #3946 has been updated by usa (Usaku NAKAMURA). なんかもう争点がわからないので整理しますが、 * Q!、q!は必要か? →どうやら必要らしい(ユースケースがある) * 問題点はなんぞ? →LONG_LONG(≒long long)がないプラットフォームでどうするか未定 (1) 他のpack内エラーと同様にArgumentErrorでいいんじゃね? (2) 他のpack内エラーと区別するために別の例外であるべき (a) NotImplementedError (b) 新規例外クラス ということのようです。 ぶっちゃけると、LONG_LONGがないコンパイラは現時点でサポートされてる気がしないので本当にどうでもいいのですが、どうせ誰も踏まないなら何でもいいわけなのでNotImplementedErrorで妥協したく思います。 ---------------------------------------- Feature #3946: Array#packのqQ指定子に機種依存サイズフラグ!を追加 https://bugs.ruby-lang.org/issues/3946#change-27150 Author: naruse (Yui NARUSE) Status: Assigned Priority: Normal Assignee: akr (Akira Tanaka) Category: Target version: 2.0.0 =begin Ruby の伏魔殿 Array#pack ですが、機種依存な部分をいじる際にはしばしば強力かつ唯一の手段になる事があります。 具体的には RubySpec 書く時とか。 さて、q/Q は 64bit signed/unsigned int なのですが、機種依存の long long (厳密には LONG_LONG) のサイズが必要な場合、 現状 Ruby レベルから取る手段が一切ありません。 すでに s/S/i/I/l/L (16bit/32bit/32bit) は、! をつけることでその機種の short/int/long のサイズになるため、 これを q/Q に拡張すると唯一の手段が提供される事になります。 というわけで、Array#packのqQ指定子に機種依存サイズフラグ!を追加したいです。 =end -- http://bugs.ruby-lang.org/