| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
Use (and modify) wxWidgets doc input to generate documenation for erlang.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Using perf dump is superior to using perf map as we are
able to use `perf annotate` which means we can view which
x86 assembly instruction was using the most CPU.
perf record -k mono erl +JPperf true
perf inject --jit -i perf.data -o perf.jitted.data
perf report -M intel -i perf.jitted.data
The implementation was inspired from the mono repo:
https://github.com/mono/mono/blob/master/mono/mini/mini-runtime.c
It should be easy to add support for Erlang source file and
line mapping if we want to do that.
|
|\
| |
| |
| |
| | |
* maint:
Update config scripts to compile for Apple Silicon (arm64)
|
| |
| |
| |
| |
| | |
Detect Apple Silicon (arm64) during configuration for compilation
on macOS 11.0 (beta at this time).
|
|/ |
|
|
|
|
|
|
| |
It turns out that disabling only the Core Erlang optimizations
but running all other passes exposes new bugs in the SSA
optimization passes.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A long time ago binary patterns were extended to allow using a matched
out variable as a size of another segment. For example:
<<Size:32,Data:Size/binary>> = Binary
This extension was carried over to Core Erlang, which made it much
more complicated to correctly optimize Core Erlang, since a variable
in a pattern could be both new and used.
This commit rewrites matching of binaries to split up patterns that
match out a variable and uses it in the same pattern. Here is an
example:
foo(X) ->
case X of
<<Size:32,Bin:Size/binary>> ->
{ok,Bin};
_ ->
error
end.
This function will now be translated to Core Erlang like this:
'foo'/1 =
fun (X) ->
( letrec
'second_clause'/0 =
fun () ->
'error'
in case X of
<#{#<Size>(32,1,'integer',['unsigned'|['big']]),
#<Tail>('all',1,'binary',['unsigned'|['big']])}#> when 'true' ->
case Tail of
<#{#<Bin>(Size,8,'binary',['unsigned'|['big']])}#> when 'true' ->
{'ok',Bin}
Other when 'true' ->
apply 'second_clause'/0()
end
Other when 'true' ->
apply 'second_clause'/0()
end
-| ['letrec_goto'] )
Note that when compiling using `from_core`, it is an error to bind
and use a variable in the same pattern. Compilers that generate
Core Erlang code must split such patterns into nested cases.
The mechanism added in this commit to split clauses should also be
possible to use to handle, for example, expressions in binary
patterns. Of the compiler passes after the front end, only `v3_core`
would have to worry about handling the size expressions.
One potential issue with the new way of translating to Core Erlang
is that the pattern matching compiler in `v3_kernel` does not see
all clauses at once and may generate worse code, that is, evaluating
the clauses sequentially instead of in parallel. Here is an example:
bar(a) -> a;
bar(<<Size:32,Bin:Size/binary>>) -> Bin;
bar(c) -> c.
Here `v3_kernel` will first generate code for the first two clauses
and then for the last clause. It will not be able to combine the
matching of the two atom clauses to a single select instruction.
However, in this simple case, the SSA code optimizations will be able
combine the matching of the two atoms to a select_val instruction.
We will probably have to make the pattern matching compiler smarter
at handling nested cases to avoid producing worse code than in
OTP 22. Alternatively we could add additional optimization of
the SSA code.
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* dgud/build-WSL:
Add missing files to gitignore
Make build installer work from WSL
Fix deps generation on Windows
Support ssl-1.1.1 on windows when building crypto
Setup VC env in otp_build
Add wsl config as an environment to otp build tools
|
| |
| |
| |
| | |
Add config caches and temporary helper files
|
|\ \
| | |
| | |
| | |
| | | |
JeromeDeBretagne/jdb/fix-Android-compilation-with-newer-NDK-versions/OTP-16264
Update and fix Android cross compilation to support newer Android NDK versions
|
| | | |
|
|\ \ \
| |/ /
|/| | |
|
| |/
| |
| |
| |
| | |
New fop versions have changed where they put this
intermediate file.
|
|/ |
|
| |
|
|\
| |
| | |
Remove asn1/test items from .gitignore
|
| |
| |
| |
| | |
be ignored
|
|/
|
|
|
| |
This also imply testing of processes as distribution controllers
using the erlang:dist_ctrl_* BIFs.
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* rickard/make-fixes-21/OTP-15551:
Fix install phase in build system
- Install of (mainly) documentation caused rebuild and
modification of the source tree even when the source
previously had been built. Also otp_patch_apply
modified the source tree when updating documentation.
This messed up the installation if installation was
performed by another user than the user that originally
built the system which not is an uncommon scenario.
- Some documentation was installed by copying files
instead of installing the files which caused faulty
access rights on files.
- The documentation was not properly updated when
applying a patch using otp_patch_apply.
|
| |\
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* rickard/make-fixes-20/OTP-15551:
Fix install phase in build system
- Install of (mainly) documentation caused rebuild and
modification of the source tree even when the source
previously had been built. Also otp_patch_apply
modified the source tree when updating documentation.
This messed up the installation if installation was
performed by another user than the user that originally
built the system which not is an uncommon scenario.
- Some documentation was installed by copying files
instead of installing the files which caused faulty
access rights on files.
- The documentation was not properly updated when
applying a patch using otp_patch_apply.
|
| | |\
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
* rickard/make-fixes-19/OTP-15551:
Fix install phase in build system
- Install of (mainly) documentation caused rebuild and
modification of the source tree even when the source
previously had been built. Also otp_patch_apply
modified the source tree when updating documentation.
This messed up the installation if installation was
performed by another user than the user that originally
built the system which not is an uncommon scenario.
- Some documentation was installed by copying files
instead of installing the files which caused faulty
access rights on files.
- The documentation was not properly updated when
applying a patch using otp_patch_apply.
|
| | | |\
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
* rickard/make-fixes-18/OTP-15551:
Fix install phase in build system
- Install of (mainly) documentation caused rebuild and
modification of the source tree even when the source
previously had been built. Also otp_patch_apply
modified the source tree when updating documentation.
This messed up the installation if installation was
performed by another user than the user that originally
built the system which not is an uncommon scenario.
- Some documentation was installed by copying files
instead of installing the files which caused faulty
access rights on files.
- The documentation was not properly updated when
applying a patch using otp_patch_apply.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
- Install of (mainly) documentation caused rebuild and
modification of the source tree even when the source
previously had been built. Also otp_patch_apply
modified the source tree when updating documentation.
This messed up the installation if installation was
performed by another user than the user that originally
built the system which not is an uncommon scenario.
- Some documentation was installed by copying files
instead of installing the files which caused faulty
access rights on files.
- The documentation was not properly updated when
applying a patch using otp_patch_apply.
|
|\ \ \ \ \ |
|
| |\ \ \ \ \
| | | | | | |
| | | | | | |
| | | | | | | |
bmk/20190204/socket_as_nif/OTP-14831
|
| | | | | | | |
|
| | | | | | | |
|
|/ / / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This makes sure that the SSA optimizations are not essential and
may help to cover more code in beam_ssa_pre_codegen and
beam_ssa_codegen.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This serves as a base for the upcoming module-level type
optimization, but may come in handy for other passes like
beam_ssa_funs and beam_ssa_bsm that have their own ad-hoc
implementations.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
hipe_llvm_main: fix tmpfs dir on FreeBSD
|
| |/ / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Upstream this patch from FreeBSD Ports:
https://svnweb.freebsd.org/ports/head/lang/erlang-runtime21/files/patch-lib_hipe_llvm_hipe__llvm__main.erl?revision=473434&view=markup
|
|/ / / / /
| | | | |
| | | | |
| | | | |
| | | | | |
We forgot to do this in the BSM optimization branch, and this is
as good a time as any to get it fixed.
|
|\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
* rickard/crypto-configure/OTP-15129:
Move configuration of crypto to crypto application from erts
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
In order to be able to handle runtime library path in crypto
also DED parts was broken out into a macro.
|
|\ \ \ \ \ \
| |/ / / / /
| | / / / /
| |/ / / /
|/| | | |
| | | | | |
* rickard/parallel-configure/OTP-14625:
Parallel configure
Remove undocumented and unused lazy configure
|
| | | | | |
|
|/ / / / |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
All corba applications are moved to a separate repository.
E.g. orber, ic, cosEvent, cosEventDomain, cosNotifications
cosTime, cosTransactions, cosProperty and cosFileTransfer.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
In order to get line numbers into the ghlink we have to add a post
processing step for all xml files.
|
|\ \ \ \
| |/ / / |
|
| | | | |
|
|/ / /
| | |
| | |
| | | |
(cherry picked from commit 5a772d417173dee881e9c80113bbba441c939a83)
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This module was used when the OTP documentation was written in SGML.
It's now replaced by code in erl_docgen and therefor removed.
The option trigging the call of this module has also been removed
from the script edoc_generate.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Works with unicode:chardata() as input as was decided on OTP board
meeting as response to EEP-35 a long time ago.
Works on graphemes clusters as base, with a few exceptions, does not
handle classic (nor nfd'ified) Hangul nor the extended grapheme
clusters such as the prepend class. That would make handling binaries
as input/output very slow.
List input => list output, binary input => binary output and
mixed input => mixed output for all find/split functions.
So that results can be post-processed without the need to invoke
unicode:characters_to_list|binary for intermediate data.
pad functions return lists of unicode:chardata() for performance.
|
|/ / |
|
| |
| |
| |
| | |
Ignore make/make_emakefile
|