On Wed, May 23, 2012 at 2:47 PM, David Rajchenbach-Teller <
dtel...@mozilla.com> wrote:

> Actually, one of the conclusions of our previous discussion is that
> Java/C++/ML-style exceptions are probably not what we want for Rust. I
> seem to remember that we also concluded that using failures as
> exceptions was probably not the right course.
>
> Hence this new thread :)
>
> Let me put together what I believe are a few desirable qualities of an
> "issue management system". For the moment, let's not wonder whether that
> system is a language feature, a library or a coding guideline.
>
>
As a whole, this looks very good to me, I just have one quick question:


> * The system _must_ not prevent developers from calling C code from Rust.
> * The system _must_ not prevent developers from passing a pointer to a
> Rust function to C code that will call back to it.
> * The system _must_ not prevent, some day, developers from calling Rust
> from JavaScript.
> * The system _must_ not prevent, some day, developers from calling
> JavaScript from Rust.
> * Issues _must_ not be restricted to integers (or to one single type).
>

Could you explain what you mean by this ?

I suppose this is a direct jab at the horror that is errno and more in the
direction of being able to "throw" anything (possibly at the condition it
implements a given interface) ?


> * The default behavior in case of untreated issue _should_ be to
> gracefully kill the task or the application.
> * Whenever an untreated issue kills a task/application, it _should_
> produces a report usable by the developer for fixing the issue.
> * It _should_ be possible to deactivate that killing behavior. There
> _may_ be limitations.
> * It _should_ be possible to deactivate that killing behavior
> conditionally (i.e. only for some errors).
> * The system _should_ eventually have a low runtime cost – in
> particular, the case in which no killing happens should be very fast.
>
>
> Do we agree on this base?
>
> Cheers,
>  David
>
> On 5/22/12 4:56 AM, Bennie Kloosteman wrote:
> > Are exceptions a good model for systems programming ?
> >
> > - legacy C programs cant call you without a wrapper which translates
> > all possible exceptions
> > - unwinding a stack is probably not a good idea in a kernel or when
> > you transition into protected/user mode.( I know of very few kernels
> > that use exceptions ).
> > - Its not just legacy , Winrt uses C++ classes but returns error codes
> > tor low level APIs.
> >
> > However its very nice for user programs . These days these different
> > worlds works quite well , c libs which Is mainly used for system
> > programming don't use them  and C++ apps are more user programs and
> > they do  , C++ calls C , C rarely calls C++. Obviously if you write a
> > kernel or shared library  you cannot use exceptions if  c programs
> > call your code and there is a lot of c out there.... While not really
> > an issue for the language ( just dont use exceptions) it means a
> > standard lib that throws an exception would be a pain for such work
> > and you would need a different standard lib , which is an issue .
> >
> > BTW could Rust use tasks as a substitute for exception scopes ? Tasks
> > have error bubbling , hiding  , "stack unwinding"  , throw ( fail) and
> > should have integrated logging . You could put a sugar syntax around
> > it but it would still work when being called by c.  Also with tasks
> > you can cancel or do timeouts giving asynronous exceptions  which are
> > really needed ( eg in most systems cancel a long running task is very
> > anoying very long pause). and which most trivial exception
> > implementations don't do ..Not sure if this is the right way but there
> > seems a lot of overlap and it would work with C and systems
> > programming,.
> >
> > Ben
> > _______________________________________________
> > Rust-dev mailing list
> > Rust-dev@mozilla.org
> > https://mail.mozilla.org/listinfo/rust-dev
>
>
> --
> David Rajchenbach-Teller, PhD
>  Performance Team, Mozilla
>
>
> _______________________________________________
> Rust-dev mailing list
> Rust-dev@mozilla.org
> https://mail.mozilla.org/listinfo/rust-dev
>
>
_______________________________________________
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to