aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam
AgeCommit message (Collapse)Author
2017-04-27Move enif_hash last to not break WindowsSverker Eriksson
2017-04-24erts: Discontinue salted use of enif_hash/phash2Guilherme Andrade
2017-04-22erts: Allow for easier future enif_hash expansionGuilherme Andrade
Allow for expanding support to 64-bit hashes without breaking the interface.
2017-04-22erts: Support custom salt in enif_hashGuilherme Andrade
2017-04-20erts: Refactor enif_phash2 into enif_hashGuilherme Andrade
A more generic hashing function which can also hash terms based on `make_internal_hash'.
2017-04-20erts: Remove enif_phash2_rangedGuilherme Andrade
2017-04-19erts: Add enif_phash2 and enif_phash2_rangedGuilherme Andrade
These allow one to hash VM terms from NIF code.
2017-04-18Merge pull request #1412 from manuel-rubio/manuel-rubio/add-re-versionRickard Green
Add re:version/0 OTP-14347
2017-04-12Merge branch sverker/remove-latin1-atom-encoding/OTP-14337Sverker Eriksson
* sverker/remove-latin1-atom-encoding: kernel: Fix erl_distribution_wb_SUITE:whitebox kernel: Remove pg2_SUITE:compat erts: Remove fun_r13_SUITE stdlib: Remove test cases for R12 io protocol kernel: Make DFLAG_UTF8_ATOMS mandatory kernel: Rewrite distribution flag verification tools: Update assumptions in lcnt about external atom format stdlib: Tweak beam_lib_SUITE whitebox assumptions orber: Remove hard dependency to external atom format kernel: Try mend disk_log whitebox tests erts: Mark latin1 atom encoding as deprecated jinterface: Do not generate atoms on old latin1 external format erl_interface: Do not generate atoms on old latin1 ext format erts: Do not generate atoms on old latin1 external format erts: Fix faulty ASSERT for failed dec_term
2017-04-12Merge branch 'rickard/ds-fixes'Rickard Green
* rickard/ds-fixes: Fix dirty GC implementation Fix multi-scheduling with only one normal scheduler Fix +SDPcpu
2017-04-11Merge branch 'rickard/pd-hash'Rickard Green
* rickard/pd-hash: Fix type of MAKE_HASH
2017-04-11Merge branch 'rickard/sched_type_tests'Rickard Green
* rickard/sched_type_tests: Fix dirty scheduler type tests
2017-04-11Fix dirty GC implementationRickard Green
2017-04-11Fix multi-scheduling with only one normal schedulerRickard Green
2017-04-11Fix +SDPcpuRickard Green
2017-04-11Merge branch 'rickard/pcre-8.40'Rickard Green
OTP-14331 * rickard/pcre-8.40: Update documentation Update README.pcre_update.md Stack guard for PCRE Adjust for incompatibility between PCRE 8.40 and perl 5.22.1 Generate re replacement and split tests with perl vsn 5.22.1 Fix re_SUITE:pcre_compile_workspace_overflow/1 Skip line with lockout of modifiers in PCRE tests Update tests for PCRE version 8.40 Update PCRE to version 8.40 Conflicts: erts/emulator/beam/beam_debug.c
2017-04-07Stack guard for PCRERickard Green
2017-04-07beam_emu: Slightly optimize the bxor/2 operatorBjörn Gustavsson
bxor is used in the rand module, so even small optimizations could be worthwile. Suggested by Raimo Niskanen.
2017-04-03Merge PR-1076 from g-andrade/feature/ets_conditional_insert OTP-14319Sverker Eriksson
ETS: Allow for conditional insertions
2017-03-31Add re:version/0Manuel Rubio
2017-03-30Merge branch 'goeldeepak/erts/fix_inet_gethost_long/ERL-61/PR-1345/OTP-14310'Lukas Larsson
* goeldeepak/erts/fix_inet_gethost_long/ERL-61/PR-1345/OTP-14310: This patch fixes the issue in which erlang fails to start if the hostname is 64 characters on a linux system.
2017-03-28erts: Fix faulty assert for refs in copy sharingBjörn-Egil Dahlberg
2017-03-28Fix use of uninitialized variable 'ret'Sverker Eriksson
DID_TRAP will read 'ret' even when error is returned. Found by valgrind.
2017-03-28Merge branch 'sverker/hipe-long-lived'Sverker Eriksson
* sverker/hipe-long-lived: Make hipe_bifs:alloc_data/3 pad addr to alignment erts: Change HIPE allocations from sys_alloc
2017-03-28Merge branch 'lukas/erts/fix_enif_inspect_binary_emasculate/OTP-14304'Lukas Larsson
* lukas/erts/fix_enif_inspect_binary_emasculate/OTP-14304: erts: Add enif_inspect_binary emasculation of refc bins
2017-03-24Fix double hit bug of select/3 with bound keySverker Eriksson
2017-03-24Fix dirty scheduler type testsRickard Green
Old test for dirty schedulers didn't work with Visual C++
2017-03-24compiler: Add is_tagged_tuple instructionBjörn-Egil Dahlberg
Rewrite the instruction stream on tagged tuple tests. Tagged tuples means a tuple of any arity with an atom as its first element. Typically records, ok-tuples and error-tuples. from: ... {test,is_tuple,Fail,[Src]}. {test,test_arity,Fail,[Src,Sz]}. ... {get_tuple_element,Src,0,Dst}. ... {test,is_eq_exact,Fail,[Dst,Atom]}. ... to: ... {test,is_tagged_tuple,Fail,[Src,Sz,Atom]}. ...
2017-03-23Merge branch 'egil/erts/fix-no-thread-signal-service'Björn-Egil Dahlberg
* egil/erts/fix-no-thread-signal-service: erts: Don't allocate memory during signal handling erts: Fix erl_async include files for no-threads
2017-03-23Remove redundant variable initializationsGuilherme Andrade
2017-03-22Use ETS table id references on select_replaceGuilherme Andrade
2017-03-22erts: Optimize ets:select_replace to not use heapSverker Eriksson
for temporary matchspec results. ToDo: Would be even nicer if PAM could allocate and build the ETS objects without extra copy_struct needed.
2017-03-22erts: Fix benign bug in match spec machineSverker Eriksson
Looks like this line has truly been dead code as ets has (so far) always been using ERTS_PAM_COPY_RESULT and matchPushExpr is not generated for tracing.
2017-03-22Cleanup some unnecessary variable initializationSverker Eriksson
2017-03-22Add more complete key-safety checkSverker Eriksson
2017-03-22Fix typo that broke debug buildsGuilherme Andrade
2017-03-22Reject unsafe matchspecs on ets:select_replace/2Guilherme Andrade
Preemptively fail operation with badarg if the replacement object might have a different key.
2017-03-22Use magic refs on revamped ETS codeGuilherme Andrade
2017-03-22Deduplicate select* code on ETS hash tablesGuilherme Andrade
Refactor existing solution into a common iteration loop parameterized using stateful callbacks.
2017-03-22Disable ets:select_replace/2 for bagsGuilherme Andrade
The existing implementation presented both semantic inconsistencies and performance issues.
2017-03-22ETS: Allow for matchspec-based replacementGuilherme Andrade
2017-03-22This patch fixes the issue in which erlang fails to startDeepak Goel
if the hostname is 64 characters on a linux system.
2017-03-22Merge branch 'sverker/ets-table-identifiers/OTP-14094'Sverker Eriksson
* sverker/ets-table-identifiers: observer: Polish crashdump viewer for ETS observer: Polish Table Viewer tab stdlib: Remove ets_SUITE:memory_check_summary erts: Improve reduction count during table cleanup erts: Cleanup table status bits erts: Remove now redundant 'id' from DbTableCommon erts: Remove meta_main_tab erts: Pass tid argument down to trapping functions erts: Print table id as ref in crashdump and break menu erts: Replace meta_pid_to{_fixed}_tab with linked lists erts: Correct erl_rbtree comments about yielding erts: Add ERTS_RBT_YIELD_STAT_INIT to erl_rbtree Fix node_container_SUITE list_to_ref/1 Implement ets:all() using scheduler specific data Rename fixation count in ets table to avoid confusion Introduce references as table identifiers
2017-03-22erts: Improve reduction count during table cleanupSverker Eriksson
2017-03-22erts: Cleanup table status bitsSverker Eriksson
2017-03-22erts: Remove now redundant 'id' from DbTableCommonRickard Green
'the_name' keeps name of all tables. 'type' & DB_NAMED_TABLE mark tables as named. table ref id is built from magic bin when needed.
2017-03-22erts: Remove meta_main_tabSverker Eriksson
\o/ O / \ Also removed the body for CHECK_TABLES enabled by HARDDEBUG. Removed quite useless check for hash, but kept dead check code for tree.
2017-03-22erts: Pass tid argument down to trapping functionsSverker Eriksson
to get rid of meta table lookup by integer (tb->common.id)
2017-03-22erts: Print table id as ref in crashdump and break menuSverker Eriksson
2017-03-22erts: Replace meta_pid_to{_fixed}_tab with linked listsSverker Eriksson
from process psd through all owned/fixed tables. As meta_pid_to{_fixed}_tab maps to slot in meta_main_tab which is planned for destruction. In this commit we no longer seize table lock while freeing the table (free_table_cont) as it's not needed and makes the code a bit simpler. Any concurrent operation on the table will only access lock, owner and status and then bail out.