Version française
Home     About     Download     Resources     Contact us    
Browse thread
[Caml-list] assertions or exceptions?
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Brian Hurt <bhurt@s...>
Subject: [Caml-list] Unboxing options, was RE: assertions or exceptions?

One of the problems with returning error conditions instead of throwing 
exceptions is the cost of boxing a 'a option.  I'd like to advocate for 
the idea of unboxing 'a options.

The idea works like this: None, rather than being represented internally 
as an integer value, would instead be an invalid pointer- either the NULL 
pointer or a pointer to a specially allocated object in a memory space 
that is never collected.  But the key idea is that None is a value that 
can never be a valid variable value.  Once that is the case, we don't need 
to box Some 'a, we can unbox it.

I can see two disadvantages with this proposal.  The first is that it 
breaks backwards compatibility.  Code compiled to work the new way won't 
work with code compiled to work the old way.  C code would have to be 
changed (although the difference would be pretty easy to manage with some 
preprocessor work).  The second problem is that Some(None) isn't 
representable- that'd just be None.

Thoughts?

-- 
"Usenet is like a herd of performing elephants with diarrhea -- massive,
difficult to redirect, awe-inspiring, entertaining, and a source of
mind-boggling amounts of excrement when you least expect it."
                                - Gene Spafford 
Brian

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners