[erlang-questions] Erlang basic doubts about String, message passing and context switching overhead

Dan Gudmundsson <>
Sun Jan 15 11:17:17 CET 2017


On Sun, Jan 15, 2017 at 10:48 AM Loïc Hoguin <> wrote:

> Great work!
>

You have not seen it yet :-)


>
> Does this include (some) support for locales? As far as I recall they
> are necessary to do uppercasing and lowercasing properly.
>
>
No not currently I have taken the elixir approach of a basic unicode
support without locale handling, that is another can of worm which I guess
can be opened later if there is need.
But we don't have locale support anywhere else and I don't want start with
adding that first,
then will we never get any unicode support.
>From my understanding for uppercase and lowercase there very few cases
which need
the locale to correctly transform them.

/Dan


> If this includes support for locales, or would in the future, may I
> suggest 'text' for the module name? Otherwise something else. :-)
>
> On 01/15/2017 10:01 AM, Dan Gudmundsson wrote:
> > We have started to work on a new string module, we will make a PR when
> > we have decided directions of how the api should look like.
> >
> > Basic stuff like uppercase, lowercase, to_nfc, to _nfd and gc
> > (grapheme_clusters) are implemented for unicode:chardata() input, I have
> > used elixir's module as inspiration.
> >
> > That is the easy part, writing a nice api on top of that is the hard
> > part and naming the module
> > something different than string.
> >
> > /Dan
> >
> > On Sun, Jan 15, 2017 at 3:25 AM Michael Truog <
> > <mailto:>> wrote:
> >
> >     ||This thread started to talk about the need for unicode
> >     functionality in Erlang and how it exists currently in Elixir but
> >     not in Erlang.  I created a repository with the Elixir functions
> >     created as Erlang functions in an Erlang module as an example of
> >     what I want at https://github.com/okeuday/unicode_data/
> >
> >     The generated module (unicode_data) only includes functions from the
> >     first Erlang module contained in unicode.ex (Elixir.String.Unicode)
> >     though it does bring up some important topics:
> >     1) Add the unicode version to the Erlang module version.  The
> >     generated unicode_data module has a timestamp suffix, so we know
> >     both the unicode version and the timestamp when the unicode_data
> >     module was generated.
> >     2) Use only lists, not binaries, to make sure all temporary data
> >     stays on the heap of the Erlang process.  That should be best for
> >     performance, though I haven't proved that with any performance
> testing.
> >
> >     I haven't added tests, though I have compared the unicode_data
> >     Erlang module, to the Elixir.String.Unicode module and the data
> >     looks correct.  Mainly thought this would help the discussion.
> >
> >     Best Regards,
> >     Michael
> >
> >
> >     On 01/10/2017 10:58 AM, Bhag Chandra wrote:
> >>     Hello,
> >>
> >>     I have been coding in Erlang for 2 years.  A wonderful language
> >>     but not very big community, so I cant discuss my questions with
> >>     programmers around me (Java, Python guys). I found out about this
> >>     list today.
> >>
> >>     I have some fundamental doubts about the Erlang. It would be great
> >>     if someone can help me clarify them.
> >>
> >>
> >>     1) "Strings in Erlang are internally treated as a list of integers
> >>     of each character's ASCII values, this representation of string
> >>     makes operations faster. For example, string concatenation is
> >>     constant time operation in Erlang."  Can someone explain why?
> >>
> >>     2) "It makes sense to use Erlang only where system's availability
> >>     is very high".  Is it not a very general requirement of most of
> >>     the systems? Whatsapp to Google to FB to Amazon to Paypal to
> >>     Barclays etc they all are high availability systems, so we can use
> >>     Erlang in all of them?
> >>
> >>     3) "Every message which is sent to a process, goes to the mailbox
> >>     of that process. When process is free, it consumes that message
> >>     from mailbox". So how exactly does process ask from the mailbox
> >>     for that message? Is there a mechanism in a process' memory which
> >>     keeps polling its mailbox. I basically want to understand how
> >>     message is sent from mailbox to my code in process.
> >>
> >>     4) We say that a message is passed from process A to process B by
> >>     simply using a bang (!) character, but what happens behind the
> >>     scenes to pass this message? Do both processes establish a tcp
> >>     connection first and then pass message or what?
> >>
> >>     5) At 30:25 in this video ( https://youtu.be/YaUPdgtUYko?t=1825 )
> >>     Mr. Armstrong is talking about the difference between the context
> >>     switching overhead between OS threads and Erlang processes. He
> >>     says, thread context switching is of order 700 words but Erlang
> >>     process context switching is ... ?
> >>     I cant understand what he said, if someone could tell.
> >>
> >>
> >>     P.S. Please excuse for any grammatical errors, English is not my
> >>     first language.
> >>
> >>
> >>     _______________________________________________
> >>     erlang-questions mailing list
> >>      <mailto:>
> >>     http://erlang.org/mailman/listinfo/erlang-questions
> >
> >     _______________________________________________
> >     erlang-questions mailing list
> >      <mailto:>
> >     http://erlang.org/mailman/listinfo/erlang-questions
> >
> >
> >
> > _______________________________________________
> > erlang-questions mailing list
> > 
> > http://erlang.org/mailman/listinfo/erlang-questions
> >
>
> --
> Loïc Hoguin
> https://ninenines.eu
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20170115/f0864ce9/attachment-0001.html>


More information about the erlang-questions mailing list