aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2011-10-13make_preload: Don't output a C comment start inside a commentBjörn Gustavsson
We already avoid outputting a comment terminator ("*/") inside a comment to avoid causing a syntax error. Also avoid outputting the start of a comment ("/*") to avoid causing a compiler warning. Noticed-by: Tuncer Ayaz
2011-10-13Merge branch 'hb/stdlib/dets_repair/OTP-9622'Hans Bolinder
* hb/stdlib/dets_repair/OTP-9622: Fix a minor bug in Dets
2011-10-13Merge branch 'ia/ssl-peername-one-should-not-be-removed'Ingela Anderton Andin
* ia/ssl-peername-one-should-not-be-removed: Put back ssl:peercert/1
2011-10-12Merge branch 'bjorn/erts/beam-loader-fixes'Björn Gustavsson
* bjorn/erts/beam-loader-fixes: Print transformtions sorted on the name of the first instruction Share code for call of predicate and transformation functions Simplify transformations of gc_bif[123] instructions Refactor 'too_old_compiler' handling Introduce 'try_me_else_fail' Combine 'store_var' with 'next_arg' Merge 'next_instr' and 'is_op' into 'next_instr' Merge 'new_instr' and 'store_op' into 'new_instr' Combine a 'call' instruction with the following 'end' instruction Remove some unnecessary type constraints in transformations Get rid of redundant 'try_me_else' and 'fail' instructions Add some more information in instruction comments In transformations, don't store variables that are never used Remove redundant 'next_arg' before 'next_instr' Generalize and rename is_set_var_instr() to is_instr() Remove too_old_compiler handling for very old instruction variants Remove the special instructions for the hybrid heap emulator Remove optimization of 'move R R'
2011-10-11Merge branch 'bjorn/some-configure-clean-ups'Björn Gustavsson
* bjorn/some-configure-clean-ups: erts/configure.in: Remove test for reversed setvbuf() arguments erts/configure.in: Remove broken support for System V erts/configure.in: Don't check for the presence of mach-o/dyld.h erts/configure.in: Remove useless --disable-fixalloc option
2011-10-11Print transformtions sorted on the name of the first instructionBjörn Gustavsson
2011-10-11Share code for call of predicate and transformation functionsBjörn Gustavsson
2011-10-11Simplify transformations of gc_bif[123] instructionsBjörn Gustavsson
Each gc_bif[123] instruction must have both a transformation in ops.tab and special code in gen_guard_bif[123](). Rewrite it to do most of the work in gen_guard_bif[123]().
2011-10-11Refactor 'too_old_compiler' handlingBjörn Gustavsson
In the handling of generic instructions, we used to always test whether the instruction was 'too_old_compiler' and abort loading with a special error message. Refactor the code so that we only do test if we an error has occurred. That will allow us to make the test more expensive in the future, allowing us to customize error messages for certain opcode without any cost in the successful case.
2011-10-11Introduce 'try_me_else_fail'Björn Gustavsson
2011-10-11Combine 'store_var' with 'next_arg'Björn Gustavsson
'store_var' is always followed by 'next_arg'.
2011-10-11Merge 'next_instr' and 'is_op' into 'next_instr'Björn Gustavsson
'next_instr' is always followed by 'is_op'.
2011-10-11Merge 'new_instr' and 'store_op' into 'new_instr'Björn Gustavsson
Since the 'new_instr' instruction always occurs before the 'store_op' instruction, we can merge the instructions into one. Also, there is no need to include the arity of the BEAM instruction as an operand, since the arity can be looked up based on the opcode.
2011-10-11Combine a 'call' instruction with the following 'end' instructionBjörn Gustavsson
A 'call' instruction in the loader transformation language is always followed by an 'end' instruction, so we can replace the 'call' instruction with a 'call_end' instruction.
2011-10-11Remove some unnecessary type constraints in transformationsBjörn Gustavsson
We don't need type constraints that essentially are assertions; the wrong type will be detected and loading aborted when no specific instruction can be found.
2011-10-11Get rid of redundant 'try_me_else' and 'fail' instructionsBjörn Gustavsson
If the left part of a transformation will always match, omit the the 'try_me_else' and 'fail' instructions. As part of this optimization, make it an error to have a transformation that can never be reached because of a previous transformation that will always match. (Remove one transformation from ops.tab that was found to be unreachable.)
2011-10-11Add some more information in instruction commentsBjörn Gustavsson
2011-10-11In transformations, don't store variables that are never usedBjörn Gustavsson
This optimization will save some space (in the loader tables) and some loading time.
2011-10-11Remove redundant 'next_arg' before 'next_instr'Björn Gustavsson
Fix the incorrect code that attempted to remove a single 'next_arg' instructions before 'next_instr'.
2011-10-11Put back ssl:peercert/1Ingela Anderton Andin
I accidentally removed a little too much, only peercert/2 was deprecated.
2011-10-11Generalize and rename is_set_var_instr() to is_instr()Björn Gustavsson
It is more useful to have a helper function that can test for any instruction.
2011-10-11Remove too_old_compiler handling for very old instruction variantsBjörn Gustavsson
is_list/2 and other test instructions with a zero label was last generated by the v1 BEAM compiler which was last supported in R6B. Since BEAM modules produced by that compiler will be rejected with a nice error message for other reasons (e.g. by the test for the module_info/0,1 functions), retaining those transformations serves no useful purpose.
2011-10-11Remove the special instructions for the hybrid heap emulatorBjörn Gustavsson
The hybrid-heap emulator is broken since R12, so there is no need to keep those instructions.
2011-10-11Remove optimization of 'move R R'Björn Gustavsson
Ancient versions of BEAM compiler could generate move instruction with the same source and destination registers, so the loader would optimize away such instructions.
2011-10-10Merge branch 'hb/kernel/fix_disk_log/OTP-9508'Hans Bolinder
* hb/kernel/fix_disk_log/OTP-9508: Fix two minor disk_log bugs
2011-10-10Fix a minor bug in DetsHans Bolinder
If a Dets table had been properly closed but the space management data could not been read, it was not possible to repair the file.
2011-10-10Merge branch 'anders/diameter/tls_over_tcp/OTP-9605'Anders Svensson
* anders/diameter/tls_over_tcp/OTP-9605: Move init/end_per_suite into testcases Skip tls testsuite if there's no openssl Clarify that ssl must be started for TLS support Add tls support at connection establishment Add tls testsuite Documentation updates Close transport if tls is requested over sctp Handle tls notification for tcp Lift recursion in tcp message reception up the call chain Add tls support to capabilities exchange
2011-10-10Merge branch 'anders/diameter/testsuite_robustness/OTP-9619'Anders Svensson
* anders/diameter/testsuite_robustness/OTP-9619: Make testsuites more robust in case of init failure
2011-10-10Merge branch 'anders/diameter/eprotonosupport/OTP-9615'Anders Svensson
* anders/diameter/eprotonosupport/OTP-9615: gen_sctp:open/0-2 might return {error, eprotonosupport}
2011-10-10Merge branch 'anders/diameter/doc_dependencies/OTP-9612'Anders Svensson
* anders/diameter/doc_dependencies/OTP-9612: Simplify depend.sed for better compatibility
2011-10-10Move init/end_per_suite into testcasesAnders Svensson
See ac2810603b7aaad24129fadf887d9e8deff31d2f.
2011-10-10gen_sctp:open/0-2 might return {error, eprotonosupport}Anders Svensson
Previously error:badarg was raise if there was no underlying support for SCTP. Handle both new and old failure until OTP-9239 is merged.
2011-10-07Make testsuites more robust in case of init failureAnders Svensson
In particular, move code out of init_per_suite since failure causes end_per_suite to be skipped. Cleanup is simpler if both init and cleanup happen as testcases.
2011-10-07Merge branch 'sa/callback-attr'Henrik Nord
* sa/callback-attr: Add callback specs into 'application' module in kernel Add callback specs to tftp module following internet documentation Add callback specs to inets_service module following possibly deprecated comments Add '-callback' attributes in stdlib's behaviours Update primary bootstrap Update the documentation with information on the callback attribute Automatically generate 'behaviour_info' function from '-callback' attributes Add '-callback' attribute to language syntax OTP-9621
2011-10-07Add callback specs into 'application' module in kernelStavros Aronis
2011-10-07Add callback specs to tftp module following internet documentationStavros Aronis
2011-10-07Add callback specs to inets_service module following possibly deprecated ↵Stavros Aronis
comments
2011-10-07Add '-callback' attributes in stdlib's behavioursStavros Aronis
Replace the behaviour_info(callbacks) export in stdlib's behaviours with -callback' attributes for all the callbacks.
2011-10-07Update primary bootstrapHenrik Nord
2011-10-07Update the documentation with information on the callback attributeStavros Aronis
2011-10-07Automatically generate 'behaviour_info' function from '-callback' attributesStavros Aronis
'behaviour_info(callbacks)' is a special function that is defined in a module which describes a behaviour and returns a list of its callbacks. This function is now automatically generated using the '-callback' specs. An error is returned by lint if user defines both '-callback' attributes and the behaviour_info/1 function. If no type info is needed for a callback use a generic spec for it.
2011-10-07Add '-callback' attribute to language syntaxStavros Aronis
Behaviours may define specs for their callbacks using the familiar spec syntax, replacing the '-spec' keyword with '-callback'. Simple lint checks are performed to ensure that no callbacks are defined twice and all types referred are declared. These attributes can be then used by tools to provide documentation to the behaviour or find discrepancies in the callback definitions in the callback module.
2011-10-07Skip tls testsuite if there's no opensslAnders Svensson
2011-10-07Simplify depend.sed for better compatibilityAnders Svensson
Sed on Solaris doesn't remember matches after branching.
2011-10-06Clarify that ssl must be started for TLS supportAnders Svensson
Also update app testsuite to allow for "undefined" calls from diameter_tcp to ssl.
2011-10-06Add tls support at connection establishmentAnders Svensson
This is the method added in draft-ietf-dime-rfc3588bis, whereby a TLS handshake immediately follows connection establishment and CER/CEA is sent over the secured connection.
2011-10-06Add tls testsuiteAnders Svensson
2011-10-06Documentation updatesAnders Svensson
2011-10-06Close transport if tls is requested over sctpAnders Svensson
RFC 3588 requires that a Diameter server support TLS but in practise this seems to mean TLS over SCTP since there are limitations with running over SCTP: see RFC 6083 (DTLS over SCTP), which is a response to RFC 3436 (TLS over SCTP). The current RFC 3588 draft acknowledges this by equating the Inband-Security-Id value TLS with TLS/TCP and DTLS/SCTP but underlying support for DTLS is still thin on the ground.
2011-10-06Handle tls notification for tcpAnders Svensson
If TLS has been configured on Inband-Security-Id then the transport process receives a message from the peer_fsm process indicating whether or not to upgrade to TLS. The current draft of RFC 3588 deprecates (but retains for backwards compatibility) the use of Inband-Security-Id for negotiating TLS, adding the possibility of TLS having be negotiated before capabilities exchange. This commit handles the deprecated case.