Age | Commit message (Collapse) | Author |
|
To simplify the implementation of literal pools (constant pools)
for the R12 release, a shortcut was taken regarding binaries --
all binaries would be stored as heap binaries regardless of size.
To allow a module containing literals to be unloaded, literal
terms are copied when sent to another process. That means that
huge literal binaries will also be copied if they are sent to
another process, which could be surprising.
Another problem is that the arity field in the header for the heap
object may not be wide enough to handle big binaries.
Therefore, bite the bullet and allow refc binaries to be stored
in literal pools. In short, the following need to be changed:
* Each loaded module needs a MSO list, linking all refc binaries
in the literal pool.
* When check_process_code/2 copies literals to a process heap,
it must link each referenced binary into the MSO list for the
process and increment the reference counter for the binary.
* purge_module/1 must decrement the reference counter for each
refc binary in the literal pool.
|
|
|
|
* bjorn/erts/code-loading/OTP-9720:
BEAM loader: Don't stop other schedulers until truly needed
BEAM loader: Refactor code loading into separate functions
beam_load.c: Factor out cleaning up of the loader state into free_state()
BEAM loader: Clean up handling of error reasons
Remove the useless -l option
beam_load.c: Simplify handling of the bs_put_string_II instruction
beam_load.c: Remove the unused struct LoadedCode
|
|
The erlang:module_load/2 BIF will stop all other schedulers
before it starts to process the BEAM file. That is not a problem
when starting the Erlang/OTP system, since the start-up is mostly
sequential. It is a problem, however, when big BEAM files are
loaded in an already running system.
After the refactoring in the previous commits, we can now do most
of the processing of the BEAM file before we stop the other schedulers,
so that we can minimize the time when only one scheduler will be
running.
Suggested-by: Bob Ippolito
|
|
* anders/diameter/release_R15A:
Version -> 0.11, update appup, minor app suite fix
|
|
* anders/diameter/app_suite_vs_sasl/OTP-9704:
Add sasl to app testcases to placate systools
|
|
* fm/process_info_doc_fix:
Fix documentation for erlang:process_flag/2
OTP-9714
|
|
* rj/fix-net_kernel-doc:
Fixes net_kernel:get_net_ticktime() doc
OTP-9713
|
|
* siri/stdlib/improve-doc-restart-strategy/OTP-9381:
Improve documentation on supervisor restart strategy
|
|
|
|
|
|
|
|
* ia/ssl/ets-next-problem/OTP-9703:
Replaced ets:next traversal with ets:foldl and throw
|
|
* ia/public_key/prepare-for-release:
Prepare for release
|
|
* ia/ssl/badarith/OTP-9696:
Improved session cleanup handling
Fix badarith in ssl_session:validate_session/2
|
|
|
|
|
|
* hb/stdlib/gen_call_improvement/OTP-9212:
Remove the undocumented function global:safe_whereis_name/1
Remove all use of global:safe_whereis_name/1
Fix a minor race in gen_fsm
|
|
* ia/ssl/test-maintenance:
Removed compiler warnings
Work around bug in openss-1.0.0e
Use ERL_FLAGS in plain_verify_options test
Adjustment to work with hipe
Avoid openssl processes surviving after test case has finished
Add better error message
Skip ssl_dist_SUITE if cover run, as the test server node can not communicate with the ssl nodes with erlang distribution
Fine tuning of test suites
|
|
|
|
Conflicts:
lib/inets/doc/src/notes.xml
lib/inets/src/http_lib/http_uri.erl
lib/inets/src/inets_app/inets.appup.src
lib/inets/vsn.mk
|
|
|
|
|
|
Windows do not handle long commands and would crash if
many ssl arguments are passed on the command prompt
|
|
process_info(Pid, current_function) may return {current_function, undefined}
in some cases but will not in the importante one!
|
|
If the server process is always closed first shutdown of
the openssl process will be gracious
|
|
|
|
communicate with the ssl nodes with erlang distribution
|
|
|
|
E.g OpenBSD's (5.0) patched named does not allow itself to be
started without privilige separation, which is only allowed
for the superuser so test suites can not use that named.
Fix the shell script that starts named to detect early exit
from named and inform the Erlang code test suite what happened.
|
|
Common file target.mk now passes the TARGET value through config.sub
for canonification.
Toplevel Makefile now calls target.mk so it handles TARGET like
all sub-makefiles.
Build script otp_build no longer creates a target specific directory
that a long time ago was used for target specific configure cache file.
|
|
|
|
ets:next needs an explicit safe_fixtable call to be safe, we
rather use ets:foldl and throw to get out of it when we find the
correct entry.
|
|
Added session status "new" to mark sessions that are
in the session database to reserve the session id
but not resumable yet and that we want to separate from
sessions that has been invalidated for further reuse.
|
|
The time_stamp filed is now initated in the connection process
init function, so that invalidations of sessions due to handshake failiures,
will not cause sessions in the session table to have
an uninitiated time_stamp field.
|
|
|
|
* ia/ssl/prepare-for-relese:
Prepare version and appup for release
|
|
* ia/public_key/ssl/crypto/PKCS-8/OTP-9312:
Add clause for expected input to pubkey:pseudo_random_function/2 when ASN-1 compiler is fixed.
Clean up of public_key code adding specs and documentation
Added PKCS-8 support in ssl
Additions to crypto and public_key needed for full PKCS-8 support
Add PKCS-8 support to public_key
|
|
* bjorn/erts/erlc-do-not-bind:
erlc: Do not bind schedulers when invoking "erl"
|
|
|
|
|
|
* sa/dialyzer-wunderspecs:
Fix false warning about closure application
Change category of 'might also return' warnings
OTP-9707
|
|
If parallel make is used, several instance of 'erlc' is likely to
be invoked at once. Therefore, the default binding of schedulers
to CPU cores will do no good. (With this change, the build of
Erlang/OTP with six threads finished in about 7 minutes; without in
about 11 minutes.)
|
|
Break apart code loading into the three functions:
erts_alloc_loader_state()
erts_prepare_loading()
erts_finish_loading()
The erts_alloc_loader_state() and erts_prepare_loading() can be
executed with all schedulers running. Only erts_finish_loading()
needs to be run in a single-scheduling system.
|
|
|
|
There is no reason to have erts_load_module() return integer values,
only to have the caller convert the values to atoms. Return the
appropriate atom directly from the place where the error is generated
instead. Return NIL if the module was successfully loaded.
|
|
maint-r14
* bmk/snmp/20111108/bad_gc_timer_deactivation/OTP-9690:
Bad note store GC timer deactivation. Wrong field in the state record was set (timeout instead active). Stefan Grundmann OTP-9690
|
|
* egil/reallocating-catches/OTP-9692:
erts: Teach VM to reallocate beam catch table
|
|
|
|
Calls to global:whereis_name/1 have been substituted for calls to
global:safe_whereis_name/1 since the latter is not safe at all.
The reason for not doing this earlier is that setting a global lock
masked out a bug concerning the restart of supervised children. The
bug has now been fixed by a modification of global:whereis_name/1.
(Thanks to Ulf Wiger for code contribution.)
|