aboutsummaryrefslogtreecommitdiffstats
path: root/lib/hipe
AgeCommit message (Collapse)Author
2010-12-13Fix native code compiler infinite loop and update type info for 're'Kostis Sagonas
The introduction of filenames being unicode binaries revealed a problem in the type analysis of the native code compiler which resulted in an infinite loop when compiling the 'filename' module. In addition, the hard-coded type information for the built-in functions of the 're' module was out-of-date, which resulted in erroneous type information for 'filelib' functions being stored in the PLT.
2010-12-06Prepare releaseErlang/OTP
2010-12-03Merge branch 'ks/erl_bif_types-cleanup/OTP-8961' into devPatrik Nyblom
* ks/erl_bif_types-cleanup/OTP-8961: Fix type information of 'file' and 'code' modules Conflicts: lib/hipe/cerl/erl_bif_types.erl
2010-12-03Merge branch 'pan/unicode-filenames/OTP-8887' into devPatrik Nyblom
* pan/unicode-filenames/OTP-8887: (27 commits) Test and correct filelib and filename Add documentation to erlang.xml and slight correction to unicode_usage.xml Add section about Unicode file names to stdlib users guide Correct bug in file_name_SUITE making it fail on Unix instead of Windows7 Add documentation about raw filenames and Unicode file name translation mode Make filelib not crash on re codepoints beyond 255 in re when filename is raw Mend on_load_embedded testcase which did not handle windows links Correct testcase regarding windows versions supporting soft links. Teach filelib to use re in unicode mode when filenames are not raw Treat soft links on Windows correctly in file_name_SUITE Adapt new soft and hard link routines on Windos to Unicode Corrected testcases broken by unicode filenames Update preloaded prim_file Teach prim_file not to accept atoms and not to throw exceptions Adapt inet_drv to Visual Studio 2008 Teach spawn_executable about Unicode Convert filenames read on MacOSX to canonical form Teach file to accept codepoints beyond 255. Add testcases Correct shell utilities to handle unicode and possibly binaries ...
2010-12-01Merge branch 'lukas/hipe/decode_packet_type' into devLukas Larsson
* lukas/hipe/decode_packet_type: Update httppacket type to return both strings and binaries
2010-11-30Corrected testcases broken by unicode filenamesPatrik Nyblom
Also corrected type-info for bifs
2010-11-29Fix type information of 'file' and 'code' modulesKostis Sagonas
Dialyzer for a long time now has had hard-coded type information about key functions of the 'file' and 'code' modules in 'erl_bif_types'. Some of this information was not up-to-date according to the published Erlang/OTP documentation, while some other part contained small errors. Now that specs are available, this information should be moved to the corresponding files, not be hard-coded in erl_bif_types. This change takes out all information for the 'file' module and fixes some small errors in type information for the 'code' module.
2010-11-22Merge branch 'ks/file_open-mode' into devBjörn Gustavsson
* ks/file_open-mode: Add the {encoding, _} options to file:open/2's modes
2010-11-22Merge branch 'ks/hipe-patches' into devBjörn Gustavsson
* ks/hipe-patches: hipe: Update types and specs
2010-11-22hipe: Update types and specsKostis Sagonas
2010-11-22erl_types: Fix pretty rare crashes and an infinite loopKostis Sagonas
- Fixed pretty rare crash when taking the infimum of two tuple_sets (initial fix by Kostis Sagonas but then a better fix was provided by Stavros Aronis and this is the one adopted). - Fixed pretty rare crash when using parameterized types containing unbound variables (thanks to Nicolas Trangez for reporting it). - Fixed pretty rare infinite loop when refining the types of an SCC whose functions all returned none() (thanks to Stavros Aronis).
2010-10-29Merge branch 'ks/rec-erl_types' into devBjörn Gustavsson
* ks/rec-erl_types: Deeper unfolding of recursive types
2010-10-29Deeper unfolding of recursive typesKostis Sagonas
The change of taking out some hard-coded information about the file module uncovered that the unfolding of recursive types was probably too shallow. This has been fixed by unfolding it until a deeper limit (REC_TYPE_LIMIT). While at erl_types.erl also did some cleanup changes and fixed an erroneous io:format message.
2010-10-20hipe: Add translation of BIFs with arity threeKostis Sagonas
2010-10-15Update httppacket type to return both strings and binariesLukas Larsson
2010-10-14Add the {encoding, _} options to file:open/2's modesKostis Sagonas
Although the {encoding, encoding()} set of options is documented in the manual page of the 'file' module, they do not appear in the Mode description on that page nor in the mode() type declaration. The patch adds this information in both the code of the module and the documentation of the module. To avoid duplication, the declaration of the encoding() type is added to the 'unicode' module where it most probably belongs. While at it, added a proper declaration for posix(), took out the now superfluous information about the types of file:open/2 from the erl_bif_types module, and corrected the return type of file:open/2 so that it corresponds to the published documentation.
2010-10-06Merge branch 'ks/ets-update-counter' into devBjörn Gustavsson
* ks/ets-update-counter: Fix type of ets:update_counter/3 to correspond with the documentation
2010-10-02Fix type of ets:update_counter/3 to correspond with the documentationKostis Sagonas
2010-09-30Merge branch 'ks/dialyzer-fixes' into devBjörn Gustavsson
* ks/dialyzer-fixes: Fix two errors in dialyzer
2010-09-24Fix two errors in dialyzerKostis Sagonas
Changes which fix some problems reported by dialyzer users: 1. The handling of nested opaque types 2. The handling of remote types in record expressions used as types While at it, updated dialyzer's RELEASE_NOTES to reflect these fixes and did some cleanups to dialyzer_utils.erl so that it gets in sync with dialyzer's main development branch.
2010-09-24Cleanup and small fixes in hipe filesKostis Sagonas
2010-09-15hipe: Do not auto-import min/2 and max/2Tuncer Ayaz
Resolve name clash with auto-imported BIFs min/2 and max/2.
2010-09-13Prepare releaseOTP_R14BErlang/OTP
2010-09-01Merge branch 'pg/fix-hipe-load' into devBjörn Gustavsson
* pg/fix-hipe-load: Fix hipe:load/1 OTP-8802
2010-08-30fix crash in hipe_icode_exceptionsMikael Pettersson
This fixes a problem in the HiPE compiler's BEAM-to-Icode pass where it can crash due to the BEAM compiler's merging of identical basic blocks with different exception handling contexts. This bug has been latent, but is now exposed by what appears to be more aggressive optimizations in BEAM. The added comment explains things in more detail.
2010-08-27Fix hipe:load/1Paul Guyot
hipe:load/1 (and unexported hipe:load/2) just did not work. Calling it would fail with a badmatch because only the hipe chunk was passed to do_load/3's third parameter called WholeModule. Since this parameter is then passed to beam_lib:all_chunks/1 which accepts the whole module as a binary as well as a path to the beam file, and since a path is exactly what we have in load/2, the fix consists in letting do_load/3 accept a path and passing it from load/2.
2010-08-17erts: Remove broken elib_mallocBjörn Gustavsson
elib_malloc is an alternate memory allocator that is no longer possible to build.
2010-07-20One off-heap list, to eliminate two words per ETS object.Sverker Eriksson
Merging the three off-heap lists (binaries, funs and externals) into one list. This reduces memory consumption by two words (pointers) per ETS object.
2010-07-07Fix a bug in the type of lists:flatmap/2.Kostis Sagonas
The code handling this BIF did not take into account that the fun in the first argument that could return [] and therefore the return value of the BIF could also be [].
2010-06-11Update release notesBjörn Gustavsson
2010-06-11Merge branch 'egil/eprof' into devErlang/OTP
* egil/eprof: Fix eprof to handle error cases Dialyzer cleanup for eprof Fix fprof_SUITE to use new eprof API Switch pattern API for eprof profile with mfa Update eprof documentation Update eprof_SUITE with more basic tests Rename sorting choices for eprof Teach eprof to align text output Add dump functionality to eprof Add log functionality to eprof Update eprof tests to reflect new eprof Add start timestamp to eprof profiling Teach eprof to use the new breakpoints OTP-8706 egil/eprof eprof has been reimplemented with support in the Erlang virtual machine and is now both faster (i.e. slows down the code being measured less) and scales much better. In measurements we saw speed-ups compared to the old eprof ranging from 6 times (for sequential code that only uses one scheduler/core) up to 84 times (for parallel code that uses 8 cores).
2010-06-10Update version numbersBjörn Gustavsson
2010-06-09Dialyzer cleanup for eprofBjörn-Egil Dahlberg
2010-06-09Merge branch 'ks/dialyzer-R14-fixes' into devErlang/OTP
* ks/dialyzer-R14-fixes: Various changes to dialyzer-related files for R14. OTP-8699 ks/dialyzer-R14-fixes Various changes to dialyzer-related files for R14. - Dialyzer properly supports the new attribute -export_type and checks that remote types only refer to exported types. A warning is produced if some files/applications refer to types defined in modules which are neither in the PLT nor in the analyzed applications. - Support for detecting data races involving whereis/1 and unregister/1. - More precise identification of the reason(s) why a record construction violates the types declared for its fields. - Fixed bug in the handling of the 'or' guard. - Better handling of the erlang:element/2 BIF. - Complete handling of Erlang BIFs.
2010-06-08Various changes to dialyzer-related files for R14.Kostis Sagonas
Bumped version number and wrote RELEASE_NOTES. Included all changes described in release notes. Some spec-related changes to some files in lib/hipe/cerl.
2010-06-08Merge branch 'bg/bif-types' into devErlang/OTP
* bg/bif-types: Add type information for erlang:garbage_collect_message_area/0 Add type information for erts_debug:* BIFs Add type information for erlang:port_call/2 Add type information for erlang:display* BIFs Add type information for the BIFs in the binary module Introduce and use the t_endian() helper Add type information for erlang:binary_part/2,3 Add type info for erlang:append/2 and erlang:subtract/2 Add type information for the erlang:adler32* BIFs Add ppc64 return for erlang:system_info(hipe_architecture) Test that all BIFs have known types erl_types: Export is_erl_type/1
2010-06-08Merge branch 'bg/nif_error' into devErlang/OTP
* commit 'bg/nif_error': crypto: Add type specs for all documented functions crypto: Use erlang:nif_error/1 to squelch false Dialyzer warnings Add erlang:nif_error/1,2
2010-06-07Add type information for erlang:garbage_collect_message_area/0Björn Gustavsson
erlang:garbage_collect_message_area/0 is undocumented and unsupported.
2010-06-07Add type information for erts_debug:* BIFsBjörn Gustavsson
2010-06-07Add type information for erlang:port_call/2Björn Gustavsson
(erlang:port_call/2 is undocumented.)
2010-06-07Add type information for erlang:display* BIFsBjörn Gustavsson
2010-06-07Add type information for the BIFs in the binary moduleBjörn Gustavsson
2010-06-07Introduce and use the t_endian() helperBjörn Gustavsson
2010-06-07Add type information for erlang:binary_part/2,3Björn Gustavsson
2010-06-07Add type info for erlang:append/2 and erlang:subtract/2Kostis Sagonas
These are aliases for '++'/2 and '--'/2.
2010-06-07Add type information for the erlang:adler32* BIFsKostis Sagonas
While at it, introduce a new type for adler32 and crc32 and use it consistently within the file.
2010-06-07Add ppc64 return for erlang:system_info(hipe_architecture)Kostis Sagonas
2010-06-06erl_types: Export is_erl_type/1Björn Gustavsson
It is useful for testing.
2010-06-04Merge branch 'ks/dialyzer' into devErlang/OTP
* ks/dialyzer: dialyzer: Build the PLT even if there are unresolved remote types proplists: Export the type property() erl_lint: Issue warnings for undefined exported types Minor fix in a print message Add handling of unknown types Add declaration for exported types Add types and specs; performed some cleanups also erl_scan: Add declarations for exported types stdlib: Add declarations for exported types hipe: Add declarations for exported types compiler: Add declarations for exported types syntax_tools: Add declarations for exported types kernel: Add declaration for exported types Support -export_type() in dialyzer and erl_types Add infrastructure for the -export_type() attribute OTP-8678 ks/dialyzer
2010-06-03dialyzer: Build the PLT even if there are unresolved remote typesKostis Sagonas