I know that this is a little late, but having just read this document, I have a few additional comments:
I’m curious if there is a Guile Scheme version available? Not to disparage indentation reliant languages (I worked as a Python developer for many years), but I find them difficult to parse reliably, and would actually prefer S-expressions. I had the hardest time copying the code correctly to my guile terminal. For example, my mind kept missing the $ symbol as a relevant piece of code, assuming it was the command prompt! Anyways, just a suggestion.
Secondly, I was wondering throughout when there would be a proof of how Object Capabilities actually achieves it’s claims. An addendum on how this is achieved would be appreciated!
Whoops, I thought I had responded to this already!
Thanks @frandallfarmer, I was able to get through the paper using wisp alone, it was just a suggestion that scheme might be more pleasant for some, so the option to view the document with either language might be of some use (say a toggle on the source field). In the least, a link to that translation procedure would be helpful.
Sorry, not sure if I am posting in the right place. I was reading about HOS, Pola, Goblins and such …
Complexity is not anybodies friend. I can just about comprehend what you are doing. Using/learning yet another language, editing procedure etc. Too hard and time-consuming for me. [shrug]
Some years ago (see link) I created a template for different levels of interaction. It may be relevant. As may other similar projects/ideas that were never implemented.
A project that comes to mind is veilid.com (I probably mentioned that already). I find it interesting that you ask to NOT reveal details of the project. [shrug] It seems a perfect but never to be implemented back burner project is occurring? I hope I am wrong!
I think you’re running into a gesier bug which is the exception you’re getting. For now you can work around this by following the live hacking “fix” in the Goblins manual.
Goblins will print to standard out anytime a object raises an error when sent a message (with <- or <-np). This is expected behaviour, usually helpful when debugging Goblins code. if you continue with the promise pipelining example you posted, you’ll see the error being propagated through the promises and caught below by the on (occasionally the error obscures the guile prompt in Geiser/REPL, you can just hit enter if you don’t see it).
Your english is great, no need to apologies Hopefully that helps. If that explanation didn’t make sense or you run into further issues, please follow up and ask again.
As a suggestion, it would be cool to have this described at the paper, something like:
In a (Geiser) REPL the exception will be catch, printing:
Goblins exception:
In message to #<local-object ^borked-car-factory>:
(make-car “Exploder” “red”)
ice-9/boot-9.scm:1685:16: In procedure raise-exception:
Your car exploded on the factory floor! Ooops!
In goblins/core.scm:
1021:7 2 (syscaller-$ _ #<local-object ^borked-car-factory> (make-car “Exploder” “red”))
In …
But, as the exception wasn’t handled, it will be propagated to the next operation: