[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