aboutsummaryrefslogtreecommitdiffstats
path: root/lib/hipe/cerl
AgeCommit message (Collapse)Author
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-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-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 '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-15Merge branch 'sa/dialyzer-fixes' into maintGustav Simonsson
2012-03-01Fix bug in remote type solvingStavros Aronis
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-13Make dialyzer recognize the process_flag option sensitiveHenrik Nord
add missing specs to documentation
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
2011-09-08Merge branch 'sa/dialyzer-dev' into devHenrik Nord
* sa/dialyzer-dev: Add origin information to #fun_var closures Suppress some warnings about generation of non-returning funs Enhance Dialyzer's inference on comparisons Fix infinite loop in dataflow Minor fix in dead code Update r9c/{inets,mnesia} results in dialyzer's test suite OTP-9529
2011-08-29Enhance Dialyzer's inference on comparisonsStavros Aronis
This patch makes Dialyzer aware of Erlang's total ordering of terms, enabling discrepancy detection in cases where e.g. integer() < tuple() is treated as a comparison that might also return false (when it is certain to always return true).
2011-08-27Add erlang:external_size/2 BIFFilipe David Manana
This BIF's second parameter is a list of options. Currently the only allowed option is {minor_version, Version} where version is either 0 (default) or 1.
2011-08-26Merge branch 'dev' into majorBjörn Gustavsson
* dev: code: Optimize purge/1 and soft_purge/1 using check_old_code/1 Add erlang:check_old_code/1 check_process_code/2: Quickly return 'false' if there is no old code
2011-08-25Add erlang:check_old_code/1Björn Gustavsson
Add erlang:check_old_code/1 to quickly check whether a module has old code. If there is no old code, there is no need to call erlang:check_process_code/2 for all processes, which will save some time if there are many processes.
2011-08-16emulator: Add a fourth element in exception stacktracesBjörn Gustavsson
This commit is a preparation for introducing location information (filename/line number) in stacktraces in exceptions. Currently a stack trace looks like: [{Mod1,Function1,Arity1}, . . . {ModN,FunctionN,ArityN}] Add a forth element to each tuple that can be used indication the filename and line number of the source file: [{Mod1,Function1,Arity1,Location1}, . . . {ModN,FunctionN,ArityN,LocationN}] In this commit, the fourth element will just be an empty list, and we will change all code that look at or manipulate stacktraces.
2011-07-06Remove deprecated concat_binary/1Björn Gustavsson
concat_binary/1 was deprecated in R13B04, but already in the R10B-2 release, the documentation recommends using list_to_binary/1 instead.
2011-06-20Add more specs and typesHans Bolinder
An incorrect spec, rpc:yield/1, has been fixed.
2011-05-23Fix erroneous definition of t_binary_compiled_pattern()Kostis Sagonas
While at it: 1. Moved types in their proper place 2. Did minor cleanups and 3. Took out an unused function
2011-05-02Fix handling of <<_:N,_:_*M>> type expressionsKostis Sagonas
2011-05-02Fix the argument of erlang:list_to_bitstring/1Kostis Sagonas
2011-05-02Move function to its proper placeKostis Sagonas
2011-05-02Remove unneeded function 'sequence/2'Stavros Aronis
Same functionality provided by string:join/2.
2011-03-04Merge branch 'ks/process_status' into devNiclas Axelsson
* ks/process_status: Document exiting and garbage_collecting process statuses OTP-9102
2011-03-02Document exiting and garbage_collecting process statusesKostis Sagonas