- シムーン DVD 1c
- シムーン 4PS2 異薔薇戦争 封印のリ・マージョン
「コール・テンペストは正式に廃止されることになった.シヴュラの方々には泉に行ってもらう.政はすべて嶺国のシヴュラが受け継ぐことになります」 © 司兵院.
SmalltalkImage current snapshot: true andQuit: true とは直接の関係はないはずなんだが,ガベコレが走りまくっとる.パラさま,カイム,アルティ,モリナス,ロードレアモン,ヴューラ,フロエと,今回でほとんどスキャヴェンジされちゃいましたな.老獪なオナシアの手に掛かったウブなユンは,オナシアがまくしたてる戯れ言にころりと騙されてその気になってオールド・スペース入り.したように見えるだろ.違うんだよ.イリーガル・アクセス監視プロセスを回すのに飽き飽きしたオナシアが,そのセンダをすり替えたというか成りすましを求めたというか.だから,柿の蔕が三代目の贋阿闍梨滓見白を絞め殺して四代目の位に昇ったのと同じように見えるのは逆.一方,パーム・スペースに入ったのはリモネとドミヌーラ,そしておそらくアムリア.アーエルとネヴィリルはその賭場口にいる.う〜ん,ほんまにそうか.何かこう違和感があるんだよな. 1) 前二者 (あるいは三者) が無垢な状態で「不測の事態」的に意志なくしてパーム・スペース入りしたのに対し,この二人には明らさまな下心がある. 2) 「意図された逸脱」に対応する「他の構成員の全員一致の認可」が見られる.ならばこの二人は排除項なのかというと,単一性を欠く「二人」という点が難点.あくまでこの二人を一つのものだとする方向で進めると.う〜ん,生物学的な成長のプロセス.機能による特化の過程.んじゃマミーナは? アポトーシス (笑).ってぇ比喩も思い付くが,ネヴィリルが最初はアムリア,次にアーエルという具合につねに「パル」を必要とし,単体では存在できないとすれば.う〜ん,やっぱまだしっくり来ん.
オブジェクト・メモリの例えだと,マミーナをどこに置けば佳いか悩む.なので,マミーナの特異点を拾い出すと,真っ先に出てくるのが物理的な屍体であるということ.つまり,エデンである (笑).いや〜,むしろ vm のソースコードとかプラグインのようなもんかも知れんけど.
オナシア -> ユンに引き継がれた監視プロセス,そんなに嫌なら StartUpList から remove すりゃエエのにとも思うけど,性悪説の立場に立つ『シムーン』ではそうもいかん.無闇矢鱈にタイム・ワープされたら困るのである.なぜなら,翠玉のリマージョンは禁断の become: (becomeForward:) だからなのである (笑).
以下, Squeak3.8.1-6744 の場合.
ProtoObject>>become: otherObject "Primitive. Swap the object pointers of the receiver and the argument. All variables in the entire system that used to point to the receiver now point to the argument, and vice-versa. Fails if either object is a SmallInteger" (Array with: self) elementsExchangeIdentityWith: (Array with: otherObject)
Array>>elementsExchangeIdentityWith: otherArray "This primitive performs a bulk mutation, causing all pointers to the elements of this array to be replaced by pointers to the corresponding elements of otherArray. At the same time, all pointers to the elements of otherArray are replaced by pointers to the corresponding elements of this array. The identityHashes remain with the pointers rather than with the objects so that objects in hashed structures should still be properly indexed after the mutation." <primitive: 128> otherArray class == Array ifFalse: [^ self error: 'arg must be array']. self size = otherArray size ifFalse: [^ self error: 'arrays must be same size']. (self anySatisfy: [:obj | obj class == SmallInteger]) ifTrue: [^ self error: 'can''t become SmallIntegers']. (otherArray anySatisfy: [:obj | obj class == SmallInteger]) ifTrue: [^ self error: 'can''t become SmallIntegers']. self with: otherArray do: [:a :b | a == b ifTrue: [^ self error: 'can''t become yourself']]. "Must have failed because not enough space in forwarding table (see ObjectMemory-prepareForwardingTableForBecoming:with:twoWay:). Do GC and try again only once" (Smalltalk bytesLeft: true) = Smalltalk primitiveGarbageCollect ifTrue: [^ self primitiveFailed]. ^ self elementsExchangeIdentityWith: otherArray
Object>>becomeForward: otherObject は elementsForwardIdentityTo: を呼んでる.
SmalltalkImage current snapshot: true andQuit: true が走ってんのなら,ガベコレの比喩よりも,むしろ外部資源の解放の方が正しいんじゃないの? あ!
0 件のコメント:
コメントを投稿