-
Notifications
You must be signed in to change notification settings - Fork 26
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Dereferencing pony_actor_t* — type inference bug? #20
Comments
To get the fields of the current actor, use
|
The "bug" you're seeing is because pony actors are opaque. You are not supposed to read the fields of active objects (even less write to them) unless the reference is |
Yes and no. I was thinking the same thing. OTOH, allowing reading and actor's fields seems like the performative thing to do… I am happy to disallow it for now, though. |
But I also agree that I would have been a lot less surprised if the type checker had informed me of what I was doing… |
Yeah, that's one terrible error message. We're waiting on encore semantics developments here. |
Typechecker complains when accessing fields of active objects (that are not |
This should be a big No-no. It breaks the actor abstraction, which is the core of all things good. Sent from my iPhone On 23/07/2014, at 16:19, TobiasWrigstad notifications@github.com wrote:
Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm |
Not necessarily. There are cases in which this is safe, Performance first, not safety first! |
Abstraction first, then performance, then safety. Otherwise, why not just use C. On 23 Jul 2014, at 16:49, TobiasWrigstad notifications@github.com wrote:
Dave.Clarke@cs.kuleuven.be Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm |
Performance first, then abstract! |
Abstract performance? On 23 Jul 2014, at 16:56, TobiasWrigstad notifications@github.com wrote:
Dave.Clarke@cs.kuleuven.be Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm |
The following code:
generates
The text was updated successfully, but these errors were encountered: