aboutsummaryrefslogtreecommitdiffstats
path: root/lib
AgeCommit message (Collapse)Author
2016-04-25Merge branch 'bjorn/compiler/remove-timestamps/OTP-13504'Björn Gustavsson
* bjorn/compiler/remove-timestamps/OTP-13504: Remove timestamps from BEAM files
2016-04-25Remove timestamps from BEAM filesBjörn Gustavsson
As long as anyone can remember, the compilation time has been included in BEAM files (and can be retrieved using Mod:module_info(compile)). The timestamp has caused problems for anyone using tools such as 'cmp' to compare BEAM files or for package managers: http://erlang.org/pipermail/erlang-questions/2016-April/088717.html Rarely has the timestamp been of any use. Yes, sometimes the timestamp could help to figuring out which version of a module was used, but nowadays a better way is to use Mod:module_info(md5). To get rid of this problem, remove the timestamp from BEAM files in OTP 19. Don't add an option to include timestamps. Utilities that depend on the timestamp will need to be modified. For example: http://erlang.org/pipermail/erlang-questions/2016-April/088730.html Instead of using the compilation time, the MD5 for the BEAM code can be used. Example: 1> c:module_info(md5). <<79,26,188,243,168,60,58,45,34,69,19,222,138,190,214,118>> 2> beam_lib:md5(code:which(c)). {ok,{c,<<79,26,188,243,168,60,58,45,34,69,19,222,138,190,214,118>>}} 3>
2016-04-25Merge branch 'bjorn/compiler/core-erlang-fixes'Björn Gustavsson
* bjorn/compiler/core-erlang-fixes: Add compile_SUITE:core_roundtrip/1 v3_core: Construct {badmap,Map} as literal if possible core_pp: Print {file,File} annotations more compactly core_pp: Add format_all/1 that prints all annotations core_parse: Don't sort map patterns core_parse: Handle annotations in more contexts cerl_trees: Correct handling of maps in label/2 cerl: Add missing API function is_c_map_pattern/1
2016-04-22Windows: Skip tests that requires admin privilegesDan Gudmundsson
Windows 8 and later have stronger admin checks which requires erlang to run in privileged shells, ignore for now.
2016-04-22observer: add debug info to ttb_SUITEDan Gudmundsson
2016-04-22mnesia: add debug printoutsDan Gudmundsson
and increase some timeouts for very slow machines (arm)
2016-04-22wx: add object set/check funcionsDan Gudmundsson
Needed functionality, to avoid abusing opauqe objects.
2016-04-22wx test: Setup timetrapsDan Gudmundsson
and avoid large logs when tests succed
2016-04-22wx: Fix callback problemsDan Gudmundsson
Commands could be executed twice, if the command was dispatched from a callback and caused a recursive invocation of command loop. Solution is to mark op as -1 before calling wxWidgets. Also commands could be missed when idle processing was done inside while executing a recursive callback, solved be always resetting peak index after idle processing is done.
2016-04-21eunit: Remove -dialyzer attributesHans Bolinder
2016-04-21Add compile_SUITE:core_roundtrip/1Björn Gustavsson
When debugging, it is important that we can trust the Core Erlang pretty printer and Core Erlang parser.
2016-04-21v3_core: Construct {badmap,Map} as literal if possibleBjörn Gustavsson
2016-04-21core_pp: Print {file,File} annotations more compactlyBjörn Gustavsson
This will speed up test cases that print all annotations.
2016-04-21core_pp: Add format_all/1 that prints all annotationsBjörn Gustavsson
2016-04-21core_parse: Don't sort map patternsBjörn Gustavsson
If we pretty print to a file and read it back in, we expect to get the same cerl data structures back.
2016-04-21core_parse: Handle annotations in more contextsBjörn Gustavsson
Annotations would not be accepted for all constructs.
2016-04-21cerl_trees: Correct handling of maps in label/2Björn Gustavsson
Make sure that we don't convert a map pattern to a map expression.
2016-04-21Avoid dialyzer warnings for unreachable code in assertsRichard Carlsson
Dialyzer would warn about uses of the ?assert(BoolExpr) macro in assert.hrl if the argument was known to be boolean-only.
2016-04-21Make assert macro implementations uniformRichard Carlsson
2016-04-21cerl: Add missing API function is_c_map_pattern/1Björn Gustavsson
2016-04-20Eliminate Dialyzer warnings for unmatched returnsBjörn Gustavsson
2016-04-20Merge branch 'bjorn/debugger/cuddle-with-tests'Björn Gustavsson
* bjorn/debugger/cuddle-with-tests: Remove ?line macros Replace "%" with "%%" at the beginning of a line Eliminate doc and suite clauses Eliminate use of the ?t macro Eliminate use of test_server:format() Eliminate use of test_server:fail/{0,1} Use proplists:get_value/2 instead of ?config() Modernize use of timetraps int_SUITE: Fix interpretable/1 in a non-installed system int_SUITE: Fix interpretable/1 on cross-compiled platforms
2016-04-19stdlib: Fix warningsHans Bolinder
2016-04-18Merge branch 'mururu/crypto/aes-gcm-tag-len.PR-998.OTP-13483'Sverker Eriksson
2016-04-18stdlib: The type map() is built-inHans Bolinder
2016-04-18Merge branch 'bjorn/compiler/misc-opt'Björn Gustavsson
* bjorn/compiler/misc-opt: v3_kernel: Construct literal lists properly Use the register map in %live in beam_utils:is_killed_block/2 Teach beam_utils to check liveness for put_map instructions beam_peep: Help out beam_jump
2016-04-18Remove ?line macrosBjörn Gustavsson
While we are it, also re-ident the files.
2016-04-18Replace "%" with "%%" at the beginning of a lineBjörn Gustavsson
We want to re-ident the source files after having taken out all ?line macros. When re-indenting using Emacs, it's important that comments that should be at the beginning of a line (or follow the indentation of statements around it) must start with "%%".
2016-04-18Eliminate doc and suite clausesBjörn Gustavsson
2016-04-18Eliminate use of the ?t macroBjörn Gustavsson
2016-04-18Eliminate use of test_server:format()Björn Gustavsson
2016-04-18Eliminate use of test_server:fail/{0,1}Björn Gustavsson
2016-04-18Use proplists:get_value/2 instead of ?config()Björn Gustavsson
2016-04-18Modernize use of timetrapsBjörn Gustavsson
Either rely on the default 30 minutes timetrap, or set the timeout using the supported methods in common_test.
2016-04-18int_SUITE: Fix interpretable/1 in a non-installed systemBjörn Gustavsson
interpretable/1 tests (among other things) that we are not allowed to interpret modules in certain applications (such as kernel and stdlib). int:interpretable/1 as currently implement enforces the restriction only in an installed system (the applications must have versions, such as kernel-1.2.3). We could modify int:interpretable/1 to enforce the restriction, but it could sometimes be useful to be able to debug (for example) erl_lint or other library modules that can safely be reloaded without crashing the run-time system. Therefore, assume that anyone working in a non-installed system knows what they are doing and fix the test case so that it stop failing in a non-installed system.
2016-04-18int_SUITE: Fix interpretable/1 on cross-compiled platformsBjörn Gustavsson
c7e82c6b406b teached the debugger to use the 'source' key in Mod:module_info/1 to help locate the source code corresponding to a BEAM file. The new test that was added at the same time will fail if the test suites were cross-compiled on another computer (i.e., the 'source' key would not point to the source file on the target computer). Avoid the problem by letting int_SUITE:init_per_suite/1 compile the BEAM files. That will ensure that 'source' keys points to the actual source file.
2016-04-15erts: Document erlang:match_spec_test/3Lukas Larsson
OTP-13501
2016-04-15runtime_tools: Make dbg work with erl_tracer modulesLukas Larsson
OTP-13500
2016-04-15runtime_rools: Allow new timestamp trace flagsLukas Larsson
OTP-13502
2016-04-15runtime_tools: Lots of dbg docs updatesLukas Larsson
2016-04-15eprof: Fix tests after tracer module incompatabilitiesLukas Larsson
2016-04-15fprof: update to work with new spawned trace eventLukas Larsson
OTP-13499
2016-04-15observer: Update ttb to work with tracing on portsLukas Larsson
OTP-13500
2016-04-15runtime_tools: Update dbg to work with tracing on portsLukas Larsson
OTP-13500
2016-04-15erts: Extend process and port tracingLukas Larsson
This commit completes the tracing for processes so that all messages sent by a process (via nifs or otherwise) will be traced. The commit also adds tracing of all types of events from ports. When enabling tracing using erlang:trace, the 'all' flag now also enables tracing on all ports. OTP-13496
2016-04-15erts: Implement tracer modulesLukas Larsson
Add the possibility to use modules as trace data receivers. The functions in the module have to be nifs as otherwise complex trace probes will be very hard to handle (complex means trace probes for ports for example). This commit changes the way that the ptab->tracer field works from always being an immediate, to now be NIL if no tracer is present or else be the tuple {TracerModule, TracerState} where TracerModule is an atom that is later used to lookup the appropriate tracer callbacks to call and TracerState is just passed to the tracer callback. The default process and port tracers have been rewritten to use the new API. This commit also changes the order which trace messages are delivered to the potential tracer process. Any enif_send done in a tracer module may be delayed indefinitely because of lock order issues. If a message is delayed any other trace message send from that process is also delayed so that order is preserved for each traced entity. This means that for some trace events (i.e. send/receive) the events may come in an unintuitive order (receive before send) to the trace receiver. Timestamps are taken when the trace message is generated so trace messages from differented processes may arrive with the timestamp out of order. Both the erlang:trace and seq_trace:set_system_tracer accept the new tracer module tracers and also the backwards compatible arguments. OTP-10267
2016-04-15Merge branch 'paulgray/inet_db_fix/PR-949/OTP-13470'Raimo Niskanen
* paulgray/inet_db_fix/PR-949/OTP-13470: Fix start timestamp instead of time check Allow to refresh resolver settings on startup
2016-04-14v3_kernel: Construct literal lists properlyBjörn Gustavsson
Use cerl:make_list/1 instead of a home-made make_list/1 to ensure that literal lists are constructed as literals. In a future release, we would like to forbid in the loader construction of literal lists using instructions like: put_list {atom,a} [] Dst The proper way is: move {literal,[a]} {x,0} Also update the comment about "put_list Const [] Dst" in ops.tab.
2016-04-14Use the register map in %live in beam_utils:is_killed_block/2Björn Gustavsson
In 1f0ae04d374, a complete register map was introduced in the %live instructions thar are added by beam_utils:live_opt/1. Use the register map to improve beam_utils:is_killed_block/2.
2016-04-13runtime_tools: Skip dyntrace test if LTTng is enabledBjörn-Egil Dahlberg