summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* erts: Share printable_return_address with erl_bif_infoJohn Högberg2019-09-164-37/+9
|
* erts: Let call_bif/call_nif take arguments instead of hardcoding themJohn Högberg2019-09-168-23/+26
|
* erts: Use local trap exports for list functionsJohn Högberg2019-09-164-15/+59
| | | | | | | | | This prevents trapping from showing up in tracing, fixing certain tests that assume the old and erroneous trace behavior for BIFs. Note that this does not fix bogus arguments showing up on exceptions as many of these functions still pass the remainder of of the list to themselves when trapping.
* erts: Rename apply_bif to call_bif, matching NIFsJohn Högberg2019-09-167-13/+13
|
* erts: Rename NifExport to ErtsNativeFuncJohn Högberg2019-09-1611-135/+138
| | | | | All it does is wrap a native function for scheduling, and it no longer has anything to do with exports.
* erts: Crash if a module doesn't have stubs for all its BIFsJohn Högberg2019-09-161-0/+22
|
* erts: Refactor BIF tracingJohn Högberg2019-09-1627-1078/+731
| | | | | | | | | | | | | | | This commit replaces our current BIF-specific tracing functionality with the general function/export tracing used for everything else, fixing a few longstanding issues: * BIFs that trapped to themselves, for example lists:reverse/2, would generate a call trace message for each trap but only a single return trace message. * BIFs that trapped elsewhere, like erlang:delete_module/1, would lose their return trace messages altogether. * Return/exception trace messages on tail calls would point at the function "above" the caller. * Call count tracing simply didn't work.
* erts: Replace ad-hoc export->beam[] wrangling with unionsJohn Högberg2019-09-1611-143/+227
|
* erts: Add operator stubs to erlang.erlJohn Högberg2019-09-112-0/+116
|
* erts: Fix undefined behavior in $DISPATCHX()John Högberg2019-09-116-167/+137
| | | | | | | | | | | | | | | | Some call instructions kept the export entry outside of Arg(0) for better argument packing, so the $DISPATCHX() macro faked a new instruction pointer starting at "one behind" the given argument. Some of these saved the argument on the C stack and passed that onwards to this macro, which could provoke undefined behavior if we were to jump out of the block, for example if we needed to save_calls. This commit fixes the issue by letting the macro take an argument directly, and removing the jump on save_calls. I've also taken the opportunity to move all dispatch-related macros to macros.tab as it's a pinch cleaner to gather everything there.
* beam_makeops: Instructions marked -no_next must not fall throughJohn Högberg2019-09-091-2/+4
|
* compiler: Honor stack frames when calling exit BIFsJohn Högberg2019-09-098-223/+311
| | | | | | | | | | | | Since exit BIFs were known not to return nor touch the stack, we allowed them to be called regardless of how the stack looked. This was a pretty small improvement which turned out to be a annoying hindrance to the new BIF tracing, as we'd overwrite the return address if we turned the specialized BIF call to an ordinary call. This commit removes that optimization. Modules compiled before OTP 23 will still work, but exit BIFs that are traced will produce incorrect stack traces.
* Merge pull request #2368 from HansN/hans/ssh/client_sup/OTP-16026Hans Nilsson2019-09-0513-148/+248
|\ | | | | Supervisor tree for SSH client side
| * ssh: Fixup! Removed unnecessary stop_subsystem for clientsHans Nilsson2019-09-031-2/+1
| |
| * ssh: Cleaner return values from start_channelHans Nilsson2019-08-304-31/+27
| |
| * ssh: Fix system stopping problems when a client's connection is closedHans Nilsson2019-08-304-14/+64
| |
| * ssh: Use supervisors also for client channelsHans Nilsson2019-08-304-27/+52
| |
| * ssh: Rename ssh_server_channel_sup -> ssh_channel_supHans Nilsson2019-08-306-16/+19
| |
| * ssh: Restructure channel starting with channel supervisorHans Nilsson2019-08-303-37/+41
| | | | | | | | Prepare for renaming of the supervisor and introducing supervised channel processes
| * ssh: simplify connection startHans Nilsson2019-08-302-52/+52
| | | | | | | | that is, unify all the ways client and server starts
| * ssh: Introduce supervisor in clientsHans Nilsson2019-08-305-25/+48
| |
| * ssh: Update sshc testcase with the new expected supervisorsHans Nilsson2019-08-301-4/+4
| |
* | Merge branch 'maint'Ingela Anderton Andin2019-09-051-0/+3
|\ \
| * \ Merge branch 'ingela/ssl/cuddle-tests' into maintIngela Anderton Andin2019-09-051-0/+3
| |\ \ | | | | | | | | | | | | | | | | * ingela/ssl/cuddle-tests: ssl: LibreSSL-2.* s_server renegotion appears to be broken
| | * | ssl: LibreSSL-2.* s_server renegotion appears to be brokenIngela Anderton Andin2019-09-051-0/+3
| |/ /
* | | Merge branch 'maint'Björn Gustavsson2019-09-041-7/+6
|\ \ \ | |/ / | | | | | | | | | * maint: erlc: Tolerate that erlc is installed in a dir with space in its name
| * | Merge branch 'bjorn/erlc-server/OTP-15738' into maintBjörn Gustavsson2019-09-041-7/+6
| |\ \ | | | | | | | | | | | | | | | | * bjorn/erlc-server/OTP-15738: erlc: Tolerate that erlc is installed in a dir with space in its name
| | * | erlc: Tolerate that erlc is installed in a dir with space in its nameBjörn Gustavsson2019-09-021-7/+6
| | | | | | | | | | | | | | | | | | | | 3e9cba0f0b4f broke erlc when OTP was installed in a directory with space in its name.
* | | | Merge branch 'maint'Micael Karlberg2019-09-041-3/+17
|\ \ \ \ | |/ / /
| * | | Merge branch 'bmk/erts/esock/20190903/skipping_on_old_fedora16' into maintMicael Karlberg2019-09-041-3/+17
| |\ \ \
| | * | | [esock|test] Attempt to skip on old fedoraMicael Karlberg2019-09-031-3/+17
| | | | |
* | | | | Merge branch 'maint'Lukas Larsson2019-09-042-20/+28
|\ \ \ \ \ | |/ / / /
| * | | | Merge pull request #2372 from ↵Lukas Larsson2019-09-042-20/+28
| |\ \ \ \ | | |/ / / | |/| | | | | | | | | | | | | garazdawi/lukas/runtime_tools/stop_clear_events/OTP-16044 Fix dbg:stop_clear to remove trace events as well
| | * | | runtime_tools: dbg:stop_clear should clear trace pattern eventsLukas Larsson2019-09-032-20/+28
| | | | | | | | | | | | | | | | | | | | | | | | | Also make sure that the dbg_SUITE cleans up after itself so that it does not interfere with the lttng suite coming next.
* | | | | Merge branch 'maint'Micael Karlberg2019-09-031-3/+3
|\ \ \ \ \ | |/ / / /
| * | | | Merge pull request #2259 from essen/fix-inet-getstat-docMicael Karlberg2019-09-031-3/+3
| |\ \ \ \ | | | | | | | | | | | | inet: Remove non-existing send_dvi; document send_pend
| | * | | | inet: Remove non-existing send_dvi; document send_pendLoïc Hoguin2019-05-271-3/+3
| | | | | |
* | | | | | Merge pull request #2302 from josevalim/patch-12/OTP-16008Lukas Larsson2019-09-032-9/+37
|\ \ \ \ \ \ | | | | | | | | | | | | | | Do not crash/warn in group_history during disk_log shutdown
| * | | | | | Do not crash/warn in group_history during disk_log shutdownJosé Valim2019-08-232-9/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Because the disk_log is started after the `user` process, there is a chance for race conditions on shutdown, where disk_log will terminate before `group`, which will fail to log. Furthermore, if disk_log terminates BEFORE the shell starts, then the whole shell will fail to start, which will trigger another shell recursively, until the system finally shuts down. This can be reproduced with this command: $ erl -kernel shell_history true -s init restart
* | | | | | | Merge pull request #2228 from deathaxe/pr/fix-megaco-testMicael Karlberg2019-09-031-2/+2
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | Fix syntax error in megaco test file
| * | | | | | | Fix syntax error in megaco test fileDeathAxe2019-05-101-2/+2
| | | | | | | |
* | | | | | | | Merge branch 'maint'Sverker Eriksson2019-09-031-0/+2
|\ \ \ \ \ \ \ \ | | |_|/ / / / / | |/| | | | | |
| * | | | | | | Merge branch 'sverker/erts/persistent_term-kill-updater-bug/OTP-16041' into ↵Sverker Eriksson2019-09-031-0/+2
| |\ \ \ \ \ \ \ | | |_|_|_|/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | maint * sverker/erts/persistent_term-kill-updater-bug/OTP-16041: erts: Fix persistent_term bug when process killed during update
| | * | | | | | erts: Fix persistent_term bug when process killed during updateSverker Eriksson2019-09-021-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bug found by valgrind and testcase killed_while_trapping_erase Bump refc on updating process when suspending it, otherwise we may try to resume a (killed and) deallocated process.
* | | | | | | | Merge branch 'maint'Lukas Larsson2019-09-031-14/+11
|\ \ \ \ \ \ \ \ | |/ / / / / / /
| * | | | | | | Merge pull request #2371 from garazdawi/lukas/erts/crashdump_units/OTP-16042Lukas Larsson2019-09-031-14/+11
| |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | Add units to all crash dump doc memory slogans
| | * | | | | | | erts: Add units to all crash dump doc memory slogansLukas Larsson2019-09-031-14/+11
| |/ / / / / / /
* | | | | | | | Merge branch 'maint'Lukas Larsson2019-09-022-14/+24
|\ \ \ \ \ \ \ \ | |/ / / / / / /
| * | | | | | | Merge branch 'lukas/hipe/disable-without-glibc/OTP-16037' into maintLukas Larsson2019-09-022-14/+24
| |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lukas/hipe/disable-without-glibc/OTP-16037: erts: Do not check for ic in configure if not present hipe: Disable if non-glibc libc is detected
| | * | | | | | | erts: Do not check for ic in configure if not presentLukas Larsson2019-09-021-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since ic was removed from the repo we only want to check for the java for ic if it is in the repo.