Open nicolas-cellier-aka-nice opened 5 months ago
And an Inspector should not be using it either way.
On 2024-02-08, at 11:37 AM, Nicolas Cellier @.***> wrote:
storeString is for simple objects at best with simple graphs, it's simplistic nature is otherwise a failure.
An inspector aiming at some robustness shall not invoke storeString.
tim Rowledge; @.***; http://www.rowledge.org/tim Spell checkers at maximum! Fire!
My motivation to use storeString here was that you can directly copy it into the "inspect element ..." prompt where you have to provide a key, or use it in a manual self at: ...
expression. I get the disadvantages of this approach though ...
On 2024-02-08, at 3:12 PM, Christoph Thiede @.***> wrote:
My motivation to use storeString here was that you can directly copy it into the "inspect element ..." prompt where you have to provide a key, or use it in a manual self at: ... expression. I get the disadvantages of this approach though ...
A fair point, but I think we've seen that a better solution would be very much desired. After all, surely if you have a reference to an object so you can send it #storeString you can also just open an inspector directly on it? Or create a carrier-morph to let you drag it somewhere to torture later?
tim Rowledge; @.***; http://www.rowledge.org/tim Strange OpCodes: VMB: Verify, then Make Bad
Recipe for a disaster:
What happens?
storeString
If we user-interrupted soon enough, debugging the problem is already a challenge.
Even if we use debugIt instead of doIt in the above code snippet, Morphic stepping will freeze the UI soon after setting the
selectionIndex
inst. var. of theInspector
.What are the problem with
storeString
?storeString
on aMCWorkingCopy
, even if not a cyclic graph (I hope), is not a thing to do, because it can consume several Gbytes just with the business of printing the ancestry.storeString
of complex objects cannot be evaluated because of intrinsic limitations of the language (number of literals in a single method, execution stack depth, ...).instVarAt:put:
instructions.storeString
is for simple objects at best with simple graphs, its simplistic nature is otherwise a failure.An inspector aiming at some robustness shall not invoke
storeString
.