Age | Commit message (Collapse) | Author |
|
* bjorn/asn1/optimizations/OTP-11573:
Optimize code surrounding calls to complete/1
asn1ct_imm: Add the intermediate instruction {list,List,Dst}
Generate intermediate code that is easier to optimize
asn1ct_imm: Add the {set,{var,Src},{var,Dst}} instruction
Keep type information in the apply intermediate instruction
asn1ct_imm: Add a field for intermediate code for call_gen
Introduce asn1ct_gen:open_output_file/1
Factor out printing of verbose messages
Improve optimization of alignment for encoding
Improve construction of {cons,H,T} instructions
Teach asn1ct_func:call_gen/4 to quote the generated function name
Test open types that may need more than 128 bytes
|
|
* dgud/test_unicode/OTP-10877:
sasl test: Quote executable paths (can contain spaces)
rt_tools: Handle unicode chars in printouts
kernel: code_SUITE fix unicode option
Fix (unicode) debug info in test cases
stdlib: Fix format if module resides in a unicode directory
Fix testing with unicode paths
test_server: Fix ts write unicode in config files
|
|
|
|
|
|
|
|
|
|
* nox/fix-OTP-11506:
Smoke test erl_syntax:revert/1
Fix reverting of local implicit funs in erl_syntax
|
|
This tries to make bugs like 87156887b7d82a2db53f60441a4af87034cb8789 not
happen again.
The new test takes each file in the stdlib app, passes their forms through the
erl_syntax representation, reverts them and compiles them.
|
|
This partially reverts 290dc2b08a2f92157ac5358fba815f4dbb32f8f2 in which
implicit funs were mistakenly thought to be using abstract terms for their name
and arity.
|
|
|
|
|
|
* lars/xmerl/new-doc-in-same-buffer-bug/OTP-11551:
[xmerl] Fix problem with header of next XML document is in the buffer when using xmerl_sax_parser:stream/2 function.
[xmerl] Fix bug in SAX parser when next doc start in the same buffer
|
|
when using xmerl_sax_parser:stream/2 function.
|
|
|
|
|
|
|
|
|
|
|
|
* dgud/wx/more-fixes/OTP-11444:
wx: Fix hanging wx calls
Update wx build instsructions for Darwin
wx: Remove compiler option -fomit-frame-pointer on Darwin
wx: Fix crash when garbage collect event handlers (debugger caused seg fault)
wx: Fix LDFLAGS for Mac
|
|
* ia/ssl/openssl-reneogtiation-bug:
ssl: Add versions to check for sane OpenSSL version for renegotiation
|
|
|
|
* ia/inets/httpd-manager-improvments/OTP-11557:
inets: Prepare for release
inets: Remove log message as it causes more harm than use at the moment
inets: Mend broken max_clients check
inets: Start CT'ify httpd_SUITE
inets: Remove use of default gen_server timeout
|
|
|
|
* ia/odbc/configure/OTP-11574:
odbc: Fix configure check to work proparly on windows
|
|
|
|
* ia/ssl/ECC-curve-selection/OTP-11575:
ssl: Prepare for release
ssl: fix elliptic curve selection in server mode
|
|
'ia/ssl/server-name-indication-missing-option-validation/OTP-11567' into maint
* ia/ssl/server-name-indication-missing-option-validation/OTP-11567:
ssl: Prepare for release
ssl: Add missing options validation of server_name_indication
|
|
* hawk/reltool_undefined_regexp:
Add missing default value for regexps in reltool It caused a function clause in lists:sort/1:
OTP-11591
OTP-11592
|
|
* hawk/reltool_test_server:
Adapted reltool test server to common test usage of tc_status
|
|
* djc/tinfo-ncurses:
Add support for the separate tinfo library from ncurses
OTP-11590
|
|
* josevalim/jv-console-i:
Handle binary input in console helpers
OTP-11589
|
|
|
|
|
|
|
|
|
|
|
|
re needs unicode option
|
|
|
|
* sverk/term2bin-simplify:
erts: Refactor ESTACK & WSTACK to use a struct easy to "export"
erts: Fix benign ESTACK/WSTACK typo
erts: Fix compiler warnings for NO_JUMP_TABLE
erts: Run binary_SUITE:trapping even for 32bit
erts: Extend binary_SUITE:ttb_trap to also cover binary_to_term
erts: Remove the extra_root feature from the process structure
erts: Simplify term_to_binary by removing saved ESTACK from root set
|
|
* rickard/consume_timeslice-testcase-fix:
Fix testcase driver_SUITE:consume_timeslice
|
|
|
|
* sverk/jinterface/unicode-test-bug:
jinterface: Fix unicode bug in test code
|
|
OTP-11585
* sverk/bin2term-int-size-estimation-bug:
erts: Fix useless comparisons in binary_SUITE:external_size
erts: Reduce heap usage for binary_SUITE:deep
erts: Remove overestimation of heap space in binary_to_term
|
|
complete/1 is used when encoding open types (as well as in the
encode/2 function in a generated module).
The use of complete/1 for encoding open types used to be optimized
in two different places.
One place was in the alignment optimization pass, where we attempted
to replace the call to complete/1 with a call to iolist_to_binary/1.
That optimization was taken out in a previous commit that introduced
the {list,_,_} intermediate instruction.
The other place was when creating the intermediate representation
for the encoding of the open type. When attempting to wrap primitive
types in an open type, we would attempt to optimize the encoding of
the length decscriptor. We will remove that optimization in this
commit.
Since the previous two optimizations did not optimize encoding of
open types as much as we would want, we will introduce a new
optimization in a separate pass that will go further than the
previous optimizations.
|
|
The {list,List,Dst} instruction gives us as general way to
capture the building of something into a variable. That will make
inlining of intermediate code much easier.
It also allows us to eliminate the versions of the apply, call_gen,
and cond instructions that takes a target variable.
Also remove the optimization in the alignment optimization pass
that attempts to replace calls to complete/1 with calls to
iolist_to_binary/1. That optimization will not work anymore without
rewriting, so we will remove it in this commit and introcude a
more powerful optimization in a future commit.
|
|
Instead of generating:
{assign,Dst,"element(2, Val)"}
generate:
{call,erlang,element,[2,{var,"Val"}],Dst}
The latter expression is easier to understand since there is no
need to parse a string which may contain an arbitrary expression.
While at it, also discontinue the practice to treat "naked"
atoms as variables. A variable must always be given as {var,String}.
|
|
The {assign,Dst,Src} instruction is difficult to cope with when
doing advanced optimizations, since its source argument is a string
which may contain any expression.
Instead of changing how {assign,_,_} works, we will introduce new
instructions that can be used instead of {assign,_}, and remove
{assign,_,_} in a later commit when it is no longer used.
The first new instruction we will introduce is:
{set,{var,Src},{var,Dst}}
It is useful for common sub-expression elemination among other things.
For the moment, we will only allow a variable as a source argument,
but we could extend it in the future to allow constants as well.
|
|
To facilitate inlining of apply calls in the intermediate format.
|
|
It will greatly facilitate further optimizations if we include the
intermediate code (if available) in the call_gen tuple.
|
|
|