<feed xmlns='http://www.w3.org/2005/Atom'>
<title>otp.git/erts/preloaded/src/Makefile, branch master</title>
<subtitle>Mirror of Erlang/OTP repository.
</subtitle>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/'/>
<entry>
<title>[esock] Dialyzer related cleanup</title>
<updated>2019-07-24T16:03:19+00:00</updated>
<author>
<name>Micael Karlberg</name>
<email>bmk@erlang.org</email>
</author>
<published>2019-07-24T16:03:19+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=ae6eb243f95d4fb1bdc83d31613a36c53323b9ee'/>
<id>ae6eb243f95d4fb1bdc83d31613a36c53323b9ee</id>
<content type='text'>
Removed unnecessary spec's causing dialyzer warnings.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Removed unnecessary spec's causing dialyzer warnings.
</pre>
</div>
</content>
</entry>
<entry>
<title>[esock,kernel] net -&gt; prim_net and add (new) net</title>
<updated>2019-06-14T10:32:44+00:00</updated>
<author>
<name>Micael Karlberg</name>
<email>bmk@erlang.org</email>
</author>
<published>2019-05-20T13:23:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=2c08787a53d30bb60d2b604eedb19389dc5a0d9e'/>
<id>2c08787a53d30bb60d2b604eedb19389dc5a0d9e</id>
<content type='text'>
Renamed the current preloaded net module to prim_net
and removed the deprecated functions (call, cast, ...).
Introduce a "new" net module (in kernel) as an interface
module to the (preloaded) prim_net. This one also contains
the deprecated functions (call, cast, ...).

OTP-15765
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Renamed the current preloaded net module to prim_net
and removed the deprecated functions (call, cast, ...).
Introduce a "new" net module (in kernel) as an interface
module to the (preloaded) prim_net. This one also contains
the deprecated functions (call, cast, ...).

OTP-15765
</pre>
</div>
</content>
</entry>
<entry>
<title>[socket] Preloaded (erts) app file</title>
<updated>2019-04-30T08:58:16+00:00</updated>
<author>
<name>Micael Karlberg</name>
<email>bmk@erlang.org</email>
</author>
<published>2019-03-07T17:14:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=953f39ad8ce262d1104bd7e29338e43153bbd123'/>
<id>953f39ad8ce262d1104bd7e29338e43153bbd123</id>
<content type='text'>
The optional socket module is now not included in
the app file if esock is not enabled.

OTP-15658
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The optional socket module is now not included in
the app file if esock is not enabled.

OTP-15658
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'bmk/20180918/nififying_inet/OTP-14831' into bmk/20190204/socket_as_nif/OTP-14831</title>
<updated>2019-02-04T13:47:48+00:00</updated>
<author>
<name>Micael Karlberg</name>
<email>bmk@erlang.org</email>
</author>
<published>2019-02-04T13:47:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=ad0beca8fb612fa33dabcfb3592796a92e858684'/>
<id>ad0beca8fb612fa33dabcfb3592796a92e858684</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'maint'</title>
<updated>2018-11-15T15:04:39+00:00</updated>
<author>
<name>Sverker Eriksson</name>
<email>sverker@erlang.org</email>
</author>
<published>2018-11-15T15:04:39+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=58076e7db30a9f35df729c7e58ebcbe48003bb14'/>
<id>58076e7db30a9f35df729c7e58ebcbe48003bb14</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>erts: Add new module 'counters'</title>
<updated>2018-11-15T14:24:44+00:00</updated>
<author>
<name>Sverker Eriksson</name>
<email>sverker@erlang.org</email>
</author>
<published>2018-09-25T11:34:52+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=fefb5d039e87ff7137e78b3d5f2eaf01e498ec4d'/>
<id>fefb5d039e87ff7137e78b3d5f2eaf01e498ec4d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>erts: Add new module 'atomics'</title>
<updated>2018-11-15T14:24:32+00:00</updated>
<author>
<name>Sverker Eriksson</name>
<email>sverker@erlang.org</email>
</author>
<published>2018-11-15T14:24:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=1315c6457e49595fdd3f91693c0506964416c9f0'/>
<id>1315c6457e49595fdd3f91693c0506964416c9f0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'maint'</title>
<updated>2018-11-06T11:06:32+00:00</updated>
<author>
<name>Björn Gustavsson</name>
<email>bjorn@erlang.org</email>
</author>
<published>2018-11-06T11:06:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=abde22933f5a617376d7db9fd91690e901c996ef'/>
<id>abde22933f5a617376d7db9fd91690e901c996ef</id>
<content type='text'>
* maint:
  Implement a tab for persistent terms in crashdump viewer
  Add tests of persistent terms for crashdump_viewer
  Add a persistent term storage
  Refactor releasing of literals
  Extend the sharing-preserving routines to optionally copy literals

Conflicts:
	erts/emulator/Makefile.in
	erts/emulator/beam/erl_process_dump.c
	erts/preloaded/ebin/erts_internal.beam
	erts/preloaded/ebin/init.beam
	lib/sasl/src/systools_make.erl
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* maint:
  Implement a tab for persistent terms in crashdump viewer
  Add tests of persistent terms for crashdump_viewer
  Add a persistent term storage
  Refactor releasing of literals
  Extend the sharing-preserving routines to optionally copy literals

Conflicts:
	erts/emulator/Makefile.in
	erts/emulator/beam/erl_process_dump.c
	erts/preloaded/ebin/erts_internal.beam
	erts/preloaded/ebin/init.beam
	lib/sasl/src/systools_make.erl
</pre>
</div>
</content>
</entry>
<entry>
<title>Add a persistent term storage</title>
<updated>2018-11-06T09:01:23+00:00</updated>
<author>
<name>Björn Gustavsson</name>
<email>bjorn@erlang.org</email>
</author>
<published>2018-10-04T08:30:05+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=805748eb668d5562fe17f3172cdae07a86166c3f'/>
<id>805748eb668d5562fe17f3172cdae07a86166c3f</id>
<content type='text'>
Persistent terms are useful for storing Erlang terms that are never
or infrequently updated. They have the following advantages:

* Constant time access. A persistent term is not copied when it is
  looked up. The constant factor is lower than for ETS, and no locks
  are taken when looking up a term.

* Persistent terms are not copied in garbage collections.

* There is only ever one copy of a persistent term (until it is
  deleted). That makes them useful for storing configuration data
  that needs to be easily accessible by all processes.

Persistent terms have the following drawbacks:

* Updates are expensive. The hash table holding the keys for the
  persistent terms are updated whenever a persistent term is added,
  updated or deleted.

* Updating or deleting a persistent term triggers a "global GC", which
  will schedule a heap scan of all processes to search the heap of all
  processes for the deleted term. If a process still holds a reference
  to the deleted term, the process will be garbage collected and the
  term copied to the heap of the process. This global GC can make the
  system less responsive for some time.

Three BIFs (implemented in C in the emulator) is the entire
interface to the persistent term functionality:

* put(Key, Value) to store a persistent term.

* get(Key) to look up a persistent term.

* erase(Key) to delete a persistent term.

There are also two additional BIFs to obtain information about
persistent terms:

* info() to return a map with information about persistent terms.

* get() to return a list of a {Key,Value} tuples for all persistent
  terms. (The values are not copied.)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Persistent terms are useful for storing Erlang terms that are never
or infrequently updated. They have the following advantages:

* Constant time access. A persistent term is not copied when it is
  looked up. The constant factor is lower than for ETS, and no locks
  are taken when looking up a term.

* Persistent terms are not copied in garbage collections.

* There is only ever one copy of a persistent term (until it is
  deleted). That makes them useful for storing configuration data
  that needs to be easily accessible by all processes.

Persistent terms have the following drawbacks:

* Updates are expensive. The hash table holding the keys for the
  persistent terms are updated whenever a persistent term is added,
  updated or deleted.

* Updating or deleting a persistent term triggers a "global GC", which
  will schedule a heap scan of all processes to search the heap of all
  processes for the deleted term. If a process still holds a reference
  to the deleted term, the process will be garbage collected and the
  term copied to the heap of the process. This global GC can make the
  system less responsive for some time.

Three BIFs (implemented in C in the emulator) is the entire
interface to the persistent term functionality:

* put(Key, Value) to store a persistent term.

* get(Key) to look up a persistent term.

* erase(Key) to delete a persistent term.

There are also two additional BIFs to obtain information about
persistent terms:

* info() to return a map with information about persistent terms.

* get() to return a list of a {Key,Value} tuples for all persistent
  terms. (The values are not copied.)
</pre>
</div>
</content>
</entry>
<entry>
<title>[socket-nif] CMsgHdr and various doc related changes</title>
<updated>2018-09-18T12:50:18+00:00</updated>
<author>
<name>Micael Karlberg</name>
<email>bmk@erlang.org</email>
</author>
<published>2018-09-13T13:44:21+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=929ae46220f402d6f36072c46fe27ba39ad48d1b'/>
<id>929ae46220f402d6f36072c46fe27ba39ad48d1b</id>
<content type='text'>
Updated the (send) cmsghdr type and the handling of it
(in the nif code). Still not tested!
Removed the is_loaded nif function.
Tried to get fix the doc build problem (socket.erl *i think*),
which causes socket.html generation to fail with:

    "cannot find module exporting type"

To solve this I tried to run dialyzer on preloaded, and ran into
problems with enc_setopt_value. Update various specs and types
to "solve" this (which did not work).
Updated the nif-stub functions to make dialyzer happy.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Updated the (send) cmsghdr type and the handling of it
(in the nif code). Still not tested!
Removed the is_loaded nif function.
Tried to get fix the doc build problem (socket.erl *i think*),
which causes socket.html generation to fail with:

    "cannot find module exporting type"

To solve this I tried to run dialyzer on preloaded, and ran into
problems with enc_setopt_value. Update various specs and types
to "solve" this (which did not work).
Updated the nif-stub functions to make dialyzer happy.
</pre>
</div>
</content>
</entry>
</feed>
