aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/test/code_SUITE_data/literals.erl
AgeCommit message (Collapse)Author
2016-03-15update copyright-yearHenrik Nord
2015-11-17Add copy_literals testcaseBjörn-Egil Dahlberg
Repeatedly reload a literals module while sending the references literals around in a process ring. This will smoke test the non-copying literals message sending does not corrupt code unloading.
2015-06-18Change license text to APLv2Bruce Yinhe
2011-12-09Update copyright yearsBjörn-Egil Dahlberg
2011-11-17Allow refc binaries in literal poolsBjörn Gustavsson
To simplify the implementation of literal pools (constant pools) for the R12 release, a shortcut was taken regarding binaries -- all binaries would be stored as heap binaries regardless of size. To allow a module containing literals to be unloaded, literal terms are copied when sent to another process. That means that huge literal binaries will also be copied if they are sent to another process, which could be surprising. Another problem is that the arity field in the header for the heap object may not be wide enough to handle big binaries. Therefore, bite the bullet and allow refc binaries to be stored in literal pools. In short, the following need to be changed: * Each loaded module needs a MSO list, linking all refc binaries in the literal pool. * When check_process_code/2 copies literals to a process heap, it must link each referenced binary into the MSO list for the process and increment the reference counter for the binary. * purge_module/1 must decrement the reference counter for each refc binary in the literal pool.
2009-11-20The R13B03 release.OTP_R13B03Erlang/OTP