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

Loïc Hoguin essen@REDACTED
Sun Jan 15 10:48:19 CET 2017


Great work!

Does this include (some) support for locales? As far as I recall they 
are necessary to do uppercasing and lowercasing properly.

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 <mjtruog@REDACTED
> <mailto:mjtruog@REDACTED>> 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
>>     erlang-questions@REDACTED <mailto:erlang-questions@REDACTED>
>>     http://erlang.org/mailman/listinfo/erlang-questions
>
>     _______________________________________________
>     erlang-questions mailing list
>     erlang-questions@REDACTED <mailto:erlang-questions@REDACTED>
>     http://erlang.org/mailman/listinfo/erlang-questions
>
>
>
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions
>

-- 
Loïc Hoguin
https://ninenines.eu



More information about the erlang-questions mailing list