問題タブ [visualworks]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
smalltalk - OpenBSD で VisualWorks を実行するにはどうすればよいですか?
VisualWorks を OpenBSD で動かした人はいますか? これは公式にサポートされているプラットフォームではありませんが、Cincom 関係者の 1 人が、Linux 互換モードで実行できるはずだと言っていました。どのように設定しましたか?
私はすでに Squeak を問題なく実行しているので、代替手段を探しているわけではありません。プロジェクトで特に VisualWorks の Web Velocity を実行する必要があります。
ありがとう、
model-view-controller - squeak で GUI を書く
Squeak で GIU を書くにはどうすればよいですか? 私は Smalltalk の初心者で、現在 Cincom の VisualWorks を使用していますが、Squeak を試してみたいと思います。Squeak にはグラフィック用の Morphic があるようですが、私の人生では、MVC ベースの GUI を作成するためのパッケージが見つからないようです。
smalltalk - VW 3.1d および ENVY でアンマネージ コードを削除する方法
アンマネージ コードとしてロードされたパーセルを含む古い VW3/ENVY イメージがあります (マスタリング ENVY/DEVELOPERが警告する状況とまったく同じです)。残念ながら、この問題はかなり前に発生しており、小包が読み込まれていない画像に「戻る」だけでは遅すぎます。
どうやら、この問題を解決する方法があります (これが解決された 1 つの開発イメージがあり、管理されていない区画とまったく同じコードを含む通常の構成マップがありますが、それらはロードできません)。その方法は長い間忘れられていました (そして、その特定の開発イメージを新しいランタイム イメージのベースとして使用することにはいくつかの問題があるため、もう一度行う方法を見つける必要があります)。
理論的には、パーセルを削除して構成マップからコードをリロードできるはずです。実際には、通常の方法 (ParcelBrowser を使用するか、UnmanagedCode>>remove を直接呼び出す) はすべて失敗します。問題のあるセレクターをメソッド ディクショナリから手動で削除しようとしましたが、特定のポイント (#primBecome: の呼び出しを含む) を過ぎると、イメージ全体が完全にハングします (デバッガーにドロップすることさえできません)。クラスとメソッドのインスタンスのハッキングを開始しました。ENVY をだまして、これらの特定のメソッドが通常のバージョン管理されたコードであると認識させようとしたのですが、まだ成功していません。
ポインタを提供するのに十分なVW 3をまだ覚えている、スモールトーク/羨望の達人が周りにいますか?
ステータスの更新 問題を解決しようとして 1 週間が経過した後、少なくとも部分的には解決できました。
まず、umnanaged コードのファイル ポインターを修正する必要がありました (そうしないと、メソッドにアクセスしようとしたすべてのものが例外をスローしてしまいます)。ENVY はパーセルを拡張しているように見えるので、理論的には、void
ロード時にすべての整数ファイル ポインターが ENVY のファイル ポインターに変更されますが、私の場合は手動で行う必要がありました (パーセルは、定義するすべてのセレクターの列挙を提供します)。コードを微調整する別の方法もありfilePointer
ますが、必要なすべての画像で自動的に行うのは簡単ではありません。
その後、小包を破棄できます。これにより、小包の情報は削除されますが、コードは保持されます。公式の「破棄」メカニズムには、有効な変更ファイル (envy は使用しないため、手動で設定し、後でリセットする必要があります) とパーセル ソース (幸運にもそれがありました) が必要です。
メソッドを (手動で、または ENVY からアプリケーションまたはクラスをロードすることによって) 変更できるようにするには、管理されていない状態を取り除く必要があります。これは、手動で微調整することで実行できますTheClass>>applicationAssocs
(タイムスタンプなどの UnmanagedCode のクラスへのすべての参照も削除し、破棄された区画への参照も削除しました)。実は上司からここまでの行き方を教えてもらったのですが、自分でほぼ理解するまで指示を理解できませんでした。
これにより、クラスを含むすべてのアプリケーションをロードして再ロードできるようになりました。理論的には。実際には、アプリケーションの新しいバージョン (以前は区画に含まれていたコード) をロードしようとすると、イメージは完全にハングアップしました。
クラッシュはコードが管理されていないこととはまったく関係がないことが判明しましたが、問題の区画が変更されたという事実があり、InputState>>process:
クラス変数の欠落および/または初期化されていないために例外が発生しました (InputState>>initialize
メソッドが呼び出されませんでした新しいprocess:
方法が導入されるまで)。Notifier
何が起こっているのかを調べるために、すべての例外をファイルにダンプするようにクラスを変更する必要がありました。クラス変数をクラスのソースに追加し (リフレクション経由で追加するのではなく)、入力処理スレッドを一時停止toBeLoadedCode
してメソッドで再起動しloaded
、新しいバージョンのアプリケーションを作成することで、この問題も解決しました。
これで、理論的にはすべてが機能します。WindowSystem または VisualworksBase アプリケーションをリロードすると初期化ブロックが実行され、フォントとフォント サイズ、ウィンドウの色、UI 設定など、多くの設定がデフォルトにリセットされるため、実際にはまだ使用できません。設定をファイルに保存して後で読み込むか、すべての設定を確認するだけの方法のようです (公式の [設定] メニューにすべてが表示されないか、大幅に調整された画像があります...ゼロから再構築するのはこれで十分です)。しかし、それはまったく別の質問です。
string - Smalltalk-テキストオブジェクトを文字列に変換する
こんにちは私はテキストオブジェクトを返すsmalltalk(ビジュアルワークス)のテキストエディタウィジェットを持っていますが、返されたテキストを文字列オブジェクトとして処理したいと思います。
テキストオブジェクトを文字列としてどのように解析しますか?
smalltalk - Smalltalk、OrderedCollection を List ウィジェットに表示
こんにちは、リストウィジェットに表示しようとしている文字列の順序付きコレクションがあります。私は次のことを行います:
ここで、displayWidget はリスト ウィジェットで、coll は文字列を含む OrderedCollection です。表示されますが、1行で表示されます。
得る代わりに
私は得る:
ビジュアル作品を使用しています。
string - Smalltalk - 2 つの文字列が等しいかどうかを比較する
Smalltalk で 2 つの文字列を比較しようとしていますが、何か間違っているようです。
このエラーが発生し続けます:
未処理の例外: ブール値以外の受信者です。真実を求めて進みます。
私が間違っていることは何か分かりますか?
dvcs - VisualWorks Smalltalk の分散ソース管理
Smalltalk の厄介な点の 1 つは、ソース コードを管理する方法のために、(通常) 独自の VCS が必要なことです。Squeak と Gemstone (少なくとも GLASS バージョンでは) には、まずまずうまく機能する Monticello という DVCS があります。私が知る限り、VisualWorks のメイン VCS である StORE は、昔ながらの集中モードでしか機能しません。VisualWorks で利用できる Monticello に似たシステムはありますか? または、StorE の正しい使用方法を誤解していますか?
smalltalk - SmalltalkでSymbolを使用する「ベストプラクティス」のポータブルな方法は何ですか?
ポータブルな方法で Smalltalk でシンボルを使用するための「ベストプラクティス」ルールは何ですか? 私は主に squeak と pharo を使用していますが、他の Smalltalk では許可されていないのに、両方とも 'foo' = #foo と #foo = 'foo' を許可していることを知っています。シンボルは識別用であり、文字列の代わりに使用すべきではないことを理解しています。しかし、シンボル オブジェクトが、copyWith: や do: のようなメッセージを送信できるコレクションであると想定することは、少なくとも安全でしょうか? それとも、最初に何らかのコレクションに変換する必要がありますか?
アドバイスをいただければ幸いです。
smalltalk - Smalltalkで2次元配列を管理するには?
ポイントのリストがあり、侵食/膨張操作を行う必要があります。一種の 2D 配列が必要ですが、VisualWorks で行う方法が見つかりません (Squeak に Array2d クラスがあることは知っていますが、VW を使用する必要があります)。
smalltalk - smalltalkでリストを再描画する方法
smalltalkアプリケーションに、ユーザーイベントによって更新されるリストがあります。リストは正しく更新されますが、ウィンドウが強制的に再描画されるたびに、再描画、再描画、または更新されるだけです。そのため、想定どおりに表示されますが、ウィンドウを非表示にしてから再表示するか、画面からドラッグしてから元に戻す場合に限ります。
リストが更新されるたびにアプリウィンドウを自動的に再描画するにはどうすればよいですか?