newspeaklanguage / newspeak

Newspeak is a live object-capability language in the Smalltalk tradition
https://newspeaklanguage.org/
Other
132 stars 11 forks source link

Complete Exemplar support #95

Open gbracha opened 3 years ago

gbracha commented 3 years ago

Class presenters now support exemplars, but we need to:

a. Add metadata for most classes. b. Automatically generate exemplars for classes with unary factory selectors. c. Add exemplar support for methods.

gbracha commented 3 years ago

Item (b) above, "Automatically generate exemplars for classes with unary factory selectors." fixed in bceb5560da21a91dc54db53c29124dd33fb9c555

gbracha commented 3 years ago

Added support for (c) above, methods now use exemplar data to enable debugger entry. A lot more UI polish needed, as well as more metadata, and automatic generation of exemplars in unary methods, and in other contexts where we have an exemplar, for example in an arbitrary object inspector.

gbracha commented 3 years ago

WIP. Exemplar methods allow evaluation in the method body. However, live evaluation is broken. In assorted method presenters (such as search results, or senders/implementers) eval results are not displayed.

gbracha commented 2 years ago

Fixes ongoing. Exemplars mostly work, including in tests, search, sender/implementors. There are some bugs - for example, if we are deriving the exemplar by virtue of a surrounding object presenter, and not because we have either real exemplar metadata or a built-in rule for deriving an exemplar (e.g., unary factory, known factory selector etc.) then upon any model update we lose the evaluator display (but not the debug button). I believe I understand the cause, fixes will take a little longer.

Also, factory methods do not yet support exemplars. We really need to support separate metadata for calling the factory and for creating an instance in cases where exemplar instances are not specified as factory calls.