Wed Aug 23 15:44:52 CEST 2000
Sean Hinde wrote:
> It may be useful to share some of our findings here at One2One on using
> Erlang for some reasonably complex jobs..
> Most common causes of bugs not found until runtime:
> 1. Referring to a non existent external function.
> 2. Mistyping (i.e. fingers not Type!) of atoms used as tags in either
> receive clauses or case clauses.
> 3. Printing Strings. The io[_lib]:format commands require you to know that a
> string is a string type before using %s to print it without double quotes,
> otherwise it crashes. In a weakly typed language with no efficient
> is_string/1 this is a royal PITA.
> These cause problems most in weird error capture cases which may have not
> been executed during testing (surely not). My personal favourite is
> We have not tended to have problems with adding Integers to Atoms or other
> such things which type systems protect against.
> One could think of possible solutions to these three which do not involve a
> full type system.
> 1. A tool to go through a system and root out external reference problems
> (admittedly difficult to deal with apply(M,F,A)) would help. It would also
> be nice when loading a piece of code into a running system to get a result
> which included some indication of whether all the external references were
> resolved, or even an option which would only load the new code if this was
> 2. I guess any solution to finger trouble in atoms is getting towards a
> proper type system. Maybe something which could be declared at the start of
> a module which restricted the set of atoms which could be defined in the
> source for that file would do 80% of the job. Language Guru help needed!
Another solution for this one is to use macros instead of atoms
This way any mistypes are spotted by the compiler, very usefull in genservers with a lot
of state atoms
> 3. Well, a string type would help!! Barring that to implement something like
> in Java (ironically strongly typed) where you can send any rubbish into a
> System.out.println and it will do its best to format it in a nice readable
> form without adding extraneous " for example. The current C derived mini
> typed language %d%s is to me something of an anachronism.
> Having said all that we have had two large systems in service now for
> several months and not had a single outage.
> > -----Original Message-----
> > From: Thomas Arts [mailto:thomas@REDACTED]
> > Sent: 23 August 2000 07:44
> > To: James Hague
> > Cc: erlang-questions@REDACTED
> > Subject: Re: typing
> > James Hague wrote:
> > >
> > > >are there already some feedback on that approach ? is it
> > "academic" or
> > > frozen ?
> > > >used in projects?
> > >
> > > I asked this not too long ago. The response was that the
> > type system was a
> > > cancelled project.
> > Well, the projects that tried the typesystem were canceled,
> > that's what I
> > wrote. The typesystem self is more in a frozen phase. Some experiments
> > are going on, but on a low priority level. The problem is
> > that Erlang has
> > not been designed with a type system in mind. Adding one
> > later is possible,
> > but at a certain cost w.r.t. the freedom of programming. We
> > are investigating
> > whether we can find an acceptable compromise for things to give up.
> > However, I can recommend everyone to start using teh SpecWeb
> > software in
> > order to make the datatype specifications. This is useful even without
> > a checking program.
> > Regards
> > Thomas
> NOTICE AND DISCLAIMER:
> This email (including attachments) is confidential. If you have received
> this email in error please notify the sender immediately and delete this
> email from your system without copying or disseminating it or placing any
> reliance upon its contents. We cannot accept liability for any breaches of
> confidence arising through use of email. Any opinions expressed in this
> email (including attachments) are those of the author and do not necessarily
> reflect our opinions. We will not accept responsibility for any commitments
> made by our employees outside the scope of our business. We do not warrant
> the accuracy or completeness of such information.
Tony Pedley mailto:tonyp@REDACTED
Ericsson Intracom Ltd. Intranet : http://intracom.ericsson.se
1 Bede Island Internet : http://www.ericsson.co.uk/datacom/index.htm
Leicester memoID : ECOM.CBERAM
England Tel : +44 (0)116 2 542 400
LE2 7EU Fax : +44 (0)116 2 046 111
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the erlang-questions