[erlang-questions] Erlang basic doubts about String, message passing and context switching overhead
Dan Gudmundsson
dgud@REDACTED
Sun Jan 15 11:17:17 CET 2017
On Sun, Jan 15, 2017 at 10:48 AM Loïc Hoguin <essen@REDACTED> 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 <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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20170115/f0864ce9/attachment.htm>
More information about the erlang-questions
mailing list