aboutsummaryrefslogtreecommitdiffstats
path: root/lib/hipe/cerl
AgeCommit message (Collapse)Author
2012-06-04Merge branch 'maint'Lukas Larsson
* maint: Remove stale code for hybrid heap and incremental GC Remove the hipe_bifs:show_message_area/0 BIF Remove support for erlang:system_info(global_heaps_size) Remove the erlang:garbage_collect_message_area/0 BIF Remove workarounds for hybrid and shared heaps in test suites Conflicts: erts/doc/src/erlang.xml erts/emulator/beam/erl_message.c erts/emulator/beam/erl_process.c erts/emulator/beam/erl_process.h erts/emulator/hipe/hipe_bif2.tab lib/hipe/cerl/erl_bif_types.erl
2012-05-10Remove stale code for hybrid heap and incremental GCBjörn Gustavsson
The hybrid heap emulator was last working in the non-SMP R11B run-time system. When the constant pools were introduced in R12B, the hybrid heap emulator was not updated to handle them. At this point, the harm from reduced readability of the code is greater than any potential usefulness of keeping the code.
2012-05-08Merge branch 'maint'Henrik Nord
2012-05-08Merge branch 'sa/dialyzer-contract-variables' into maintHenrik Nord
* sa/dialyzer-contract-variables: Correct handling of type names in contracts Don't rewrite unchanged PLT Fix crash related to contract checking OTP-10083
2012-04-24Fix crash related to contract checkingStavros Aronis
When "collapsing" heads of list elements from a list's tail into the list's head the new head can be different.
2012-04-18Merge branch 'maint'Patrik Nyblom
Conflicts: lib/hipe/cerl/erl_bif_types.erl
2012-04-18Revert "Extend erlang:port_info/1,2 to show the OS pid of a spawned process"Patrik Nyblom
This reverts commit d4667d383964c1550e0a91d64b674e84f6d07e3b. This commit was included by mistake, the correct patch will be merged from maint.
2012-04-17Correct documentation, erl_bif_types and dialyzer testsPatrik Nyblom
2012-04-17Extend erlang:port_info/1,2 to show the OS pid of a spawned processMatthias Lang
When spawning OS (unix) processes with erlang:open_port, store the resulting unix pid so that it can be queried later on using erlang:port_info/1,2.
2012-03-30Merge branch 'maint'Björn-Egil Dahlberg
2012-03-30Update copyright yearsBjörn-Egil Dahlberg
2012-03-22Rename dyntrace BIFs to more suiting namesPatrik Nyblom
2012-03-22Add user tag spreading functionality to VM and use in filePatrik Nyblom
User tags in a dynamic trace enabled VM are spread throughout the system in the same way as seq_trace tokens. This is used by the file module and various other modules to get hold of the tag from the user process without changing the protocol.
2012-03-22Merge branch 'maint'Raimo Niskanen
Conflicts: erts/doc/src/erlang.xml erts/emulator/beam/erl_process.c erts/emulator/beam/erl_process.h erts/emulator/test/bif_SUITE.erl erts/preloaded/ebin/erlang.beam erts/preloaded/src/erlang.erl lib/hipe/cerl/erl_bif_types.erl
2012-03-22Merge branch 'raimo/close-ports-on-halt/OTP-9985' into maintRaimo Niskanen
* raimo/close-ports-on-halt/OTP-9985: erts: Basic test of erlang:halt/0..2 erts: Document erlang:halt/2 and update erlang:halt/0,1 erts: Implement erlang:halt/2 stdlib: Stop working around erlang:halt not flushing erts: Make erlang:halt/0,1 close ports and flush async threads erts: Remove forgotten and unused function erl_exit0 erts: Implement erl_halt erts: Remove unused ntbuild.erl
2012-03-21erts: Implement erlang:halt/2Raimo Niskanen
2012-03-16Extend erlang:port_info/1,2 to show the OS pid of a spawned processMatthias Lang
When spawning OS (unix) processes with erlang:open_port, store the resulting unix pid so that it can be queried later on using erlang:port_info/1,2.
2012-03-15Merge branch 'maint'Gustav Simonsson
2012-03-15Merge branch 'sa/dialyzer-fixes' into maintGustav Simonsson
2012-03-01Fix bug in remote type solvingStavros Aronis
2012-02-28Merge branch 'maint'Patrik Nyblom
2012-02-28Make hipe hipe-compiled w/ --enable-native-libsPatrik Nyblom
2012-02-22Allow t_opaque_structure to handle multiple opaque typesStavros Aronis
2012-02-17hipe,erts: Add DEBUG support with MFA's in stack descriptorsSverker Eriksson
2012-02-13Make dialyzer recognize the process_flag option sensitiveHenrik Nord
add missing specs to documentation
2012-02-09Merge branch 'maint'Björn Gustavsson
* maint: Update primary bootstrap HiPE: Remove support for is_constant/1 erl_lint: Remove handling of constant/1 erl_bif_types: Remove type for is_constant/1 erl_eval: Remove support for is_constant/1 Remove support for is_constant/1 in ms_transform Remove references to is_constant/1 from the match spec documentation Conflicts: lib/hipe/cerl/erl_bif_types.erl Also re-instate the type for erlang:is_boolean/1 which was accidentally omitted in the master branch.
2012-02-07Reintroduce sensitive BIFs in erl_bif_typesPatrik Nyblom
This involves exception BIF's, guar BIF's and some other complicated BIF's Also some minor corrections to documentation and specs in erlang.erl Added comment for each spec in erlang.erl shadowed by erl_bif_types. Dialyzer test should now run well except for one or two cases.
2012-02-07Correct dializer errors in erlang.erl and othersPatrik Nyblom
New errors found when adding specs to erlang.erl and removing them from erl_bif_types are examined and corrected. Some errors was due to faulty specs, while others were actual errors in the code using BIF's.
2012-01-27Move types and specs from erl_bif_types.erl to modulesHans Bolinder
2012-01-26HiPE: Remove support for is_constant/1Björn Gustavsson
2012-01-26erl_bif_types: Remove type for is_constant/1Björn Gustavsson
2011-12-09Merge branch 'hb/hipe/unify_optimization/OTP-9768'Hans Bolinder
* hb/hipe/unify_optimization/OTP-9768: Optimize erl_types:t_unify()
2011-12-08Merge branch 'egil/file-info-opt-utc/OTP-7687'Björn-Egil Dahlberg
* egil/file-info-opt-utc/OTP-7687: (39 commits) Remove time_t specific test in prim_file_SUITE Update prim_file.beam and prim_zip.beam Add types for posixtime_to_universaltime and the reverse Set BASEYEAR to 1902 Set lower limit of years handled to 1601 Emulate localtime, gmtime and mktime to enable negative time_t Document file:*_file_info/2 Fix compiler warning in unix_efile.c Change name of bif universaltime_to_seconds/1 Change options to prim_file:*_file_info/* Remove dead code Catch errors from prim_file:*_file_info Testcase for utc <-> seconds conversion Fix negative time in seconds_to_universaltime/1 Remove OS taint from datetime conversion Add utc <-> seconds conversions bifs Let prim_file validate ctime in file_info Teach #file_info spec unix epochs for file times Add file_info_opt tests in prim_file_SUITE unix_efile: Zero is a valid number in utime ... Conflicts: erts/emulator/beam/erl_time_sup.c erts/emulator/sys/win32/erl_win_sys.h erts/emulator/sys/win32/sys_time.c
2011-12-08Add types for posixtime_to_universaltime and the reversePatrik Nyblom
2011-12-08Optimize erl_types:t_unify()Hans Bolinder
Using a list rather than a dict() for unified variables saves quite some time. In particular Dialyzer is a heavy user of t_unify().
2011-12-05Merge branch 'sa/dialyzer-fixes'Henrik Nord
* sa/dialyzer-fixes: Correct callback spec in application module Refine warning about callback specs with extra ranges Cleanup autoimport compiler directives Fix Dialyzer's warnings in typer Fix Dialyzer's warning for its own code Fix bug in Dialyzer's behaviours analysis Fix crash in Dialyzer OTP-9776
2011-12-01Fix crash in DialyzerStavros Aronis
Variable substitution was not generalizing any unknown variables.
2011-11-30Add type info for erlang:system_info({allocator_sizes,ref(),any()})Björn Gustavsson
2011-09-29Merge branch 'dev' into majorHenrik Nord
2011-09-29Merge branch 'sa/dialyzer-bug-fixes' into devHenrik Nord
* sa/dialyzer-bug-fixes: Fix typer's crash for nonexisting files Remove unused macro Decrease tuple arity limit Fix bug in dataflow OTP-9597
2011-09-27Remove unused macroStavros Aronis
2011-09-27Decrease tuple arity limitStavros Aronis
This fixes a memory related crash.
2011-09-21Merge branch 'dev' into majorHenrik Nord
2011-09-21Merge branch 'ta/typer-quote-atoms' into devHenrik Nord
* ta/typer-quote-atoms: Update Dialyzer's reference results Quote atoms if necessary in types OTP-9560
2011-09-21Merge branch 'dev' into majorBjörn Gustavsson
* dev: erl_bif_types: Fix types for lists:key{search,find,member}/3 Fix build problems on MacOS 10.7 (Lion)
2011-09-21erl_bif_types: Fix types for lists:key{search,find,member}/3Björn Gustavsson
The types for lists:key{search,find,member}/3 was computed under the assumption that the key should be matched (=:=) to the keys in the list, while the actual implementation uses comparison (==). Thus erl_bif_types:types/4 would wrongly report that lists:keyfind(42, 1, [{42.0,a}]) would always return 'false'.
2011-09-16Merge branch 'dev' into majorBjörn-Egil Dahlberg
* dev: Cleanup ETS bif's in hipe:erl_bif_types.erl (for dialyzer) Conflicts: erts/emulator/beam/erl_db.c
2011-09-16Quote atoms if necessary in typesTomas Abrahamsson
Atoms in some occurrences were not correctly quoted when formatted to strings, for instance by the typer program. Example: -module(tb). -export(['UPPERCASE-FUNCTION-NAME'/0, f1/0, f2/0, f3/0]). -record('UPPERCASE-RECORD-NAME', {x}). -record(r2, {'UPPERCASE-FIELD-NAME'}). -type 'UPPERCASE-TYPE-NAME'() :: integer(). 'UPPERCASE-FUNCTION-NAME'() -> ok. f1() -> #'UPPERCASE-RECORD-NAME'{x=1}. f2() -> #r2{'UPPERCASE-FIELD-NAME'=1}. -spec f3() -> 'UPPERCASE-TYPE-NAME'(). f3() -> 1. Given the program above, the output from typer --plt some.plt tb.erl resulted in the following specs being printed: -spec UPPERCASE-FUNCTION-NAME() -> 'ok'. -spec f1() -> #UPPERCASE-RECORD-NAME{x::1}. -spec f2() -> #r2{UPPERCASE-FIELD-NAME::1}. -spec f3() -> UPPERCASE-TYPE-NAME(). This commit changes the output to become the following: -spec 'UPPERCASE-FUNCTION-NAME'() -> 'ok'. -spec f1() -> #'UPPERCASE-RECORD-NAME'{x::1}. -spec f2() -> #r2{'UPPERCASE-FIELD-NAME'::1}. -spec f3() -> 'UPPERCASE-TYPE-NAME'().
2011-09-12Cleanup ETS bif's in hipe:erl_bif_types.erl (for dialyzer)Patrik Nyblom
2011-09-08Merge branch 'dev' into majorHenrik Nord