So now all I'd like in Erlang is...

Bjorn Gustavsson bjorn@REDACTED
Wed Feb 18 09:09:39 CET 2004

James Hague <jamesh@REDACTED> writes:

> Joe Armstrong wrote:
> >So now all I'd like in Erlang is:
> >
> >1) Higher order code
> Could you elaborate?
> >2) *Proper* structs
> Has any progress been made toward this one?  At least some internal
> political discussion at Ericsson? :)

Yes, we have discussed it.

Joe's ideas for structs are good, but we are very careful with actually
starting to implementing it, because we must essentially get everything
right the first time. People will start using struct immediately and it
will be very hard to go back and change anything.

The issues that I see with structs are that they will be slower than
records, at least for read access. Therefore, they may not be usuable in
all circumstances where records are used today.

> >3) !!
> >4) Higher order receive
> >5) A *tiny* implementation (written 99% in Erlang and 1% in ANSI standard
> C)
> How tiny do you want to go?

I don't see the point with having a tiny implementation.

Most important for our customers are stability and speed. If that makes
the implementation more complex (and it does), that's OK.

However, we don't want NEEDLESS complexity. Some things are still too
complicated, and we are working on reducing needless complexity and removing
options that are not used. Unfortunately, having to be backwards compatible
prevents us from making all changes we want.

> If nothing else, I'd like to see most of the BEAM opcode combination
> stuff in beam_load.c be rolled into the compiler.  This would be a
> big win in terms of reducing complexity.

I doubt that.

The Beam loader is certainly complex, but it is complexity isolated in
a single place.

Having the loader there keeps the compiler simpler, and allows us to keep
the beam file format compatible. Essentially, the format is the same from
R5B up to R10B and beyond. (In practice, a few minor details prevent you from
loading and running most R5B modules in R9B and higher, but you can always run
code compiled several releases back.)

Björn Gustavsson, Erlang/OTP, Ericsson AB

This communication is confidential and intended solely for the addressee(s). Any unauthorized review, use, disclosure or distribution is prohibited. If you believe this message has been sent to you in error, please notify the sender by replying to this transmission and delete the message without disclosing it. Thank you.

E-mail including attachments is susceptible to data corruption, interruption, unauthorized amendment, tampering and viruses, and we only send and receive e-mails on the basis that we are not liable for any such corruption, interception, amendment, tampering or viruses or any consequences thereof.

More information about the erlang-questions mailing list