abee さんの「ちょっと待った!」
>とりあえず Self のことは忘れてください。
言語としてのSelfは、ですよね:-) 自明だと思うのですが為念。--abee
もちろんです。で、なければどんなコンテクストでとれますか? Self でも使われる self ?--sumim
偽変数のselfです。さ茂さんは表記上、Selfとselfを分けていないので、単にSelfと書いた場合、誤解される可能性がほんの少しあるかなと。非常に低い確率ですが、nagatedの解読でselfを無視して考えろと取られるかもと思いました。--abee
そうですね。他の読者の方はその危険性がありますね。さ茂さんは関心空間パーソナリティなので、Self、self と言えばこっちになります。ご自身も「sumimさんの空間にもあるプロトタイプ言語のself」を書いておられるのでその危惧はないと判断しました。もっとも続く説明ではいったん self すらも無視するようにとれますので(メソッドの定義の概念を把握していただくためにあえてそうしました)、ご心配もごもっともかとも。--sumim
そうかなと思って、ちょっと躊躇ったのですが。毎度すみません。本文からのリンクを考慮して、ネタばらしにならないように注意して書こうと思います。--abee
いえいえ。いつも的確な突っ込みをありがとうございます。--sumim
>「MessageNotUnderstood: contractTo:」です。
>わたしのSqueakは日本語版の機能限定解除+FileLIst・Scamper改造版です。
>環境が違うからかな?--さ茂 - 2002-06-06, 19:22:57
梅澤さんのdev版で現象確認しました。現在調査中。--abee
私も確認できました。ものによって駄目なときがあるみたいです。お手数おかけします。--sumim
クイックハックですが、これで直ると思います。MultiString-correctAgainst.st でも、急いで当てないほうが良いかも。--abee
すみません。ありがとうございます。もうすぐお食事の時間ですし、このままできるだけやってみます。--sumim
なかなかエキサイティングでした:-) さきほどのstだけでは修正候補が正しく表示されないことがあるので、こちらのパッチをお使いください。correctSelectorPatch.cs.gz--abee
お恥ずかしい(^_^;)。 新しいパッチで、対応できそうです。ウチでは「ひとみ」で出ました(MessageNotUnderstood: contractTo:)が改善されました。出る文字列とそうでないのがあるのがフィックスするのにやっかいそうですね…。--sumim
こちらこそ、あからさまなバグで申し訳ありません。MultiSymbolを導入してみたものの、実際に日本語でプログラムを書くケースがほとんどないので、このような機会は助かります。(それなので、まだまだバグが出てくる可能性があります。予めお詫びしておきます)--abee
>入れて試してみました。『ムーンレイス _ ムーンレイス new』
クラスに代入したので、イメージが壊れたかも。--abee
立ち上げ直しをお勧めします。--abee
了解です。--sumim
>とりあえずこのままでは不安なので、「ムーンレイス _ ディアナ class」として元に戻してあげましょう。--sumim - 2002-06-07, 19:26:49
なるほど、インスタンスがグローバル変数に入っていて良かったです。--abee
まあ、いずれにせよ立ち上げ直したほうがよいですよね?--sumim
これがシステムクラスなら一発でアウトなのですが、こちらで追試した感じでは、行けそうな気もします。でも、今日の作業結果をスナップショットに撮ることを考えると、きりの良いところで上げ直した方が良いと思います。--abee
>サブクラスと同名の変数は作っちゃいけないということですよね? これは凄く怖いのでは?<知らずに踏んでたらどうしよう(^-^;)--さ茂 - 2002-06-07, 20:28:22
便利な世の中になってました。長生きはするものです。システムクラスはガード済。--abee
(Smalltalk associationAt: #ムーンレイス) beReadOnlyBinding
さ茂さんは↑はまだ気にしないでください。すみません。--abee
へぇ…。こんなのがあるんですね。--sumim
ロラン=ディアナ で「Error: multi-byte character is found at unexpected place」と Parser が文句をいいますがこれは正常ですか? ちなみに ロラン=(ディアナ) なら大丈夫です。--sumim
昔は正常だったのですが、今は違います:-) お手数ですが、Scanner-xBinary.stのファイルインをお願いします。本当に助かります(2項セレクタの前後にブランクを入れる習慣なので気付きませんでした)。--abee
>Object subclass: #NameOfSubclass
> instanceVariableNames: ''
> classVariableNames: ''
> poolDictionaries: ''
> category: 'ターンA-ガンダム'
>
>は、同じカテゴリ「ターンA-ガンダム」にクラスを作るときのためのテンプレートなので「ムーンレイス」やその定義とは関係ありません。
ロランとディアナにさ茂さんの疑問がありました。ご参考まで。--abee
>Object subclass: #'ムーンレイス' でサブクラス?'ムーンレイス'を作りました。
>が、ブラウザではこれの上に、Object subclass: #NameOfSubclassが存在します。作ったことないのに?
>ロラン が好きなのは: Argument expected -> ×
単に引数が無いだけではないかと思います。さ茂さんはsetterとgetterの違いがまだつかめていないのかも。(> sumimさん)
なお、セレクタと引数の間に全角スペースを挟むと「subscript is out of bounds」のエラーが起こることが分かりましたが、これは別の問題です。--abee
>復習を兼ねて、前のやりとりを読み返しながら、dev 用もしくは設定を解除した日本語版にムーンレイスのみを定義し終えたところ(具体的にはここいらの直前)まで仮想イメージの状態を戻していただけますか? >さ茂さん。--sumim
さ茂さんと完全にイコールコンディションになっているかどうか不安なので、定義し直してもらったところで、ファイルアウトしたものをアップロードしてもらうのはいかがでしょうか。--abee
そのつもりです。が、日本語のクラス名だと fileOut のファイル名が化けるのでイタイですね(^_^;)。--sumim
たしかに…。せめてプラットホームのOSからは読めるようにということで、今の仕様にしてみたのですが。格好悪いのですが、当座はファイルアウトした後にFinderで英数字にリネームしてもらうということでいかがでしょうか。--abee
| 探す文字列 刺激たち | 探す文字列 _ 'あるムーンレイス'. 刺激たち _ OrderedCollection new. 人間 selectorsDo: [ :刺激名 | ((人間 sourceCodeAt: 刺激名) asString findString: 探す文字列) > 0 ifTrue: [刺激たち add: (MethodReference new setStandardClass: 人間 methodSymbol: 刺激名)]]. Smalltalk browseMessageList: 刺激たち name: 'ソースに「', 探す文字列, '」を含む刺激たち' autoSelect: 探す文字列
| str sels | str _ 'あるムーンレイス'. sels _ OrderedCollection new. 人間 selectorsDo: [ :sel | ((人間 sourceCodeAt: sel) asString findString: str) > 0 ifTrue: [sels add: (MethodReference new setStandardClass: 人間 methodSymbol: sel)]]. Smalltalk browseMessageList: sels name: 'ソースに「', str, '」を含む刺激たち' autoSelect: str
下はいきますが、上はダメみたいです。取り急ぎ。--sumim
こちらのdev版では両方とも大丈夫でした。ダメなときはどのようになるのでしょう。--abee
あ、すみません。再現しませんでしたか。こんな感じです。--sumim
SqueakDebug.log
ありがとうございます。Macでのみ発生しました。こんなところでMacとWindowsの違いもなさそうなものなのですが(エンディアンか?)。ただし、一見正常に見えるWindowsでも、CompiledMethod>>qCompress:, qDecompress:がまともに動いていないので要対応です。申し訳ありませんが、当面一時変数には日本語を使わないということでよろしくお願いします。--abee
あ、痛っ!(^_^;)。さっき、いきなり使ってしまいました。とりあえず、さ茂さんの所謂「バグる」報告があったら説明だけして、実際のは日本語を使わないものに切り換える方針でいきます。ありがとうございます。--sumim
お手数をお掛けします。とりあえず、一時変数名(含むブロック引数)に日本語を含む場合は、t1, t2, ..., tnに変換するようにしてみました。CompiledMethod-qCompress.stのファイルインをお願いします。この変更は内部的なものなので、ワークスペースで実行する式(UndefinedObject>>DoIt)のソースをデバッガで見るとき以外は気が付かないと思います(通常のメソッドの一時変数に日本語を使っても大丈夫です)。--abee
ありがとうございます。動作確認できました。これでレッスン用設定解除プロジェクトの Mac 限定障害も回避できそうです。--sumim
さ茂さんへのコメントです。さ茂さんの使われる「バグる」について少し。「ノーティファイアが開く=バグ」ではないと憶えていたほうが良いと思います。確かに「ノーティファイアが開く=エラー」ではありますが、エラーは意図的に出すこともできますし、それをうまく使った例外処理という仕組みもあります。バグとは、意図しないエラー、さらには明示的にエラーになっていなくても、期待しない挙動を示すこと一般を指します。
なにより、「バグった」を見ると私の心臓に悪いので:-) なお、今回の問題については間違いなくバグです。申し訳ありません。--abee
# 細かなケアありがとうございます。>sumimさん --abee
- いえいえ(^_^;)。いろいろと言いたいことを我慢していただいていると想像に難くないので心苦しいばかりです。--sumim
>なお、セレクタと引数の間に全角スペースを挟むと「subscript is out of bounds」のエラーが起こることが分かりましたが、これは別の問題です。--abee
この問題に対応するパッチです。Scanner-xLetter.stのファイルインをお願いします。現時点での所謂全角スペースの扱いですが、デリミタ(xDelimiter)としての意味は持たせていません。普通の文字(xLetter)と同じです。--abee
ありがとうございます。全角スペースからはじまるクラスやグローバル変数はたぶん作らないと思うので大丈夫かとは思いますが、なにかあるといけませんので助かります。--sumim
昨晩、ネットをさまよっていたら、カヤックとSmalltalkの両方をやられている方のページを見つけました。Noda Home Page 一見、更新が止まっているように見えますが、匿名掲示板はごく最近に作られたようです。--abee
>[ :ある名前 | [(ムーンレイス の: ある名前) が好きな人] value: 'ロラン・セアック'
[ :ある名前 | (ムーンレイス の: ある名前) が好きな人] value: 'ロラン・セアック'
ではないでしょうか。--abee
このページを編集 (9764 bytes)
|
以下の 3 ページから参照されています。 |
This page has been visited 4331 times.