aboutsummaryrefslogtreecommitdiffstats
path: root/lib/hipe/cerl
AgeCommit message (Collapse)Author
2014-02-23Deprecate pre-defined built-in typesHans Bolinder
The types array(), dict(), digraph(), gb_set(), gb_tree(), queue(), set(), and tid() have been deprecated. They will be removed in OTP 18.0. Instead the types array:array(), dict:dict(), digraph:graph(), gb_set:set(), gb_tree:tree(), queue:queue(), sets:set(), and ets:tid() can be used. (Note: it has always been necessary to use ets:tid().) It is allowed in OTP 17.0 to locally re-define the types array(), dict(), and so on. New types array:array/1, dict:dict/2, gb_sets:set/1, gb_trees:tree/2, queue:queue/1, and sets:set/1 have been added.
2014-02-22Introduce parameterized opaque typesHans Bolinder
Handle immediate opaque types as aliases: A declaration of dict/0 -opaque dict() :: dict(_, _). -opaque dict(Key, Value) :: ... is handled as an alias, that is, when using dict() it is immediately replaced by dict(_, _). This is a means to avoid having to handle equivalent opaque types later. To be changed if it doesn't work well.
2014-02-22Fix a bug concerning parameterized typesHans Bolinder
This should fix a problem with variables in parameterized types. In particular it concerns parameterized opaque types and records.
2014-02-22Solve remote types in parametersHans Bolinder
2014-01-29hipe: Fixup update cerl pretty printerBjörn-Egil Dahlberg
2014-01-29hipe: Update cerl pretty printerBjörn-Egil Dahlberg
2014-01-28dialyzer,hipe,stdlib: Add Maps understanding to DialyzerBjörn-Egil Dahlberg
2014-01-21[dialyzer] Re-work the handling of opaque typesHans Bolinder
It is now OK to inspect and modify the internals of opaque types within the scope of the module. The contracts are used for decorating types with opaqueness when it is harmless to do so. The opaqueness is propagated by the typesig module and also by the dataflow module. A lot of details have been fixed or updated. In particular the modules erl_types and erl_bif_types have been modified extensively. The version in vsn.mk has been updated to 2.7. The reason is a modification of #opaque{} in erl_types. Dialyzer seems to be about five percent slower than it used to be.
2013-10-09Fix crash when using remote types in the tail of list typesKostis Sagonas
Hans Bolider reported a dialyzer crash when using a remote type in the tail position of a maybe_improper_list() declaration. A test was created (by extending an existing module of the testsuite) and erl_types was modified to expand the remote type and not pass it unexpanded to subsequent phases in the processing.
2013-03-10Add type info for hipe_bifs:nstack_used_size/0Kostis Sagonas
2013-02-20Merge branch 'ks/hipe_bif-remove_refs_from/OTP-10851'Fredrik Gustafsson
* ks/hipe_bif-remove_refs_from/OTP-10851: Fixed test to allow for lists:foreach/2 call Change the return value of hipe_bifs:remove_refs_from/1
2013-02-20Merge branch 'sa/dialyzer-types-arity/OTP-10861'Fredrik Gustafsson
* sa/dialyzer-types-arity/OTP-10861: Minor refactoring Update Dialyzer's documentation Support for types with the same name and different arity
2013-02-19Merge branch 'ks/type-doc-cleanup/OTP-10850'Fredrik Gustafsson
* ks/type-doc-cleanup/OTP-10850: Add support for printing <<_:_*1>> as bitstring() Clean up of documentation of type language
2013-02-15Support for types with the same name and different arityStavros Aronis
2013-02-14Add new binary conversion bifsLukas Larsson
Added: binary_to_integer/1,2, integer_to_binary/1,2
2013-02-13Change the return value of hipe_bifs:remove_refs_from/1Kostis Sagonas
In order to avoid an ummatched return warning in erts and make the code more sane, the return value of the bif was changed from [] to 'ok'. (Probably more hipe_bifs need such changes but they will have to wait.) While at it, the code of various functions in hipe_unified_loader was shortened by using lists:foreach/1 instead of explicit recursion.
2013-02-11Add support for printing <<_:_*1>> as bitstring()Kostis Sagonas
2013-01-28Fix wording of error messageStavros Aronis
2013-01-25Extend char() to Unicode charactersHans Bolinder
The code related to the introduction of unicode_string() and unicode_char() has been removed. The types char() and string() have been extended to include Unicode characters. In fact char() was changed some time ago; this commit is about cleaning up the documentation and introduce better names for some functions.
2013-01-23Properly support functions with arbitrary arity in type specs.Stavros Aronis
Dialyzer now understands the "fun(...)" syntax in type specs.
2013-01-21[hipe, kernel, stdlib] Correct a few typesHans Bolinder
The type ascii_string() in the base64 module has been corrected. The type file:file_info() has been cleaned up. The type file:fd() has been made opaque in the documentation. The type nodes() has been removed from erl_bif_types.erl.
2013-01-15Merge branch 'sa/dialyzer-record-field-type/OTP-10681'Fredrik Gustafsson
* sa/dialyzer-record-field-type/OTP-10681: Fix precision of record creation violation warnings
2012-12-07Merge branch 'rickard/port-optimizations/OTP-10336' into ↵Rickard Green
rickard/r16/port-optimizations/OTP-10336 * rickard/port-optimizations/OTP-10336: Change annotate level for emacs-22 in cerl Update etp-commands Add documentation on communication in Erlang Add support for busy port message queue Add driver callback epilogue Implement true asynchronous signaling between processes and ports Add erl_drv_[send|output]_term Move busy port flag Use rwlock for driver list Optimize management of port tasks Improve configuration of process and port tables Remove R9 compatibility features Use ptab functionality also for ports Prepare for use of ptab functionality also for ports Atomic port state Generalize process table implementation Implement functionality for delaying thread progress from unmanaged threads Conflicts: erts/doc/src/erl_driver.xml erts/doc/src/erlang.xml erts/emulator/beam/beam_bif_load.c erts/emulator/beam/beam_bp.c erts/emulator/beam/beam_emu.c erts/emulator/beam/bif.c erts/emulator/beam/copy.c erts/emulator/beam/erl_alloc.c erts/emulator/beam/erl_alloc.types erts/emulator/beam/erl_bif_info.c erts/emulator/beam/erl_bif_port.c erts/emulator/beam/erl_bif_trace.c erts/emulator/beam/erl_init.c erts/emulator/beam/erl_message.c erts/emulator/beam/erl_port_task.c erts/emulator/beam/erl_process.c erts/emulator/beam/erl_process.h erts/emulator/beam/erl_process_lock.c erts/emulator/beam/erl_trace.c erts/emulator/beam/export.h erts/emulator/beam/global.h erts/emulator/beam/io.c erts/emulator/sys/unix/sys.c erts/emulator/sys/vxworks/sys.c erts/emulator/test/port_SUITE.erl erts/etc/unix/cerl.src erts/preloaded/ebin/erlang.beam erts/preloaded/ebin/prim_inet.beam erts/preloaded/src/prim_inet.erl lib/hipe/cerl/erl_bif_types.erl lib/kernel/doc/src/inet.xml lib/kernel/src/inet.erl
2012-12-07Implement true asynchronous signaling between processes and portsRickard Green
2012-11-17Fix precision of record creation violation warningsStavros Aronis
Before patch Dialyzer was reporting all the fields that were not subtypes of the declared ones as incorrect. The correct violations are for the fields whose intersection with the declared ones is empty.
2012-10-03Merge branch 'maint'Henrik Nord
2012-09-26Fix handling of tuple set remote types appearing in tuple setsStavros Aronis
Originally reported by Joseph Wayne Norton, simplified testcase provided by Hans Bolinder.
2012-08-29Merge branch 'maint'Sverker Eriksson
Conflicts: lib/hipe/cerl/erl_bif_types.erl
2012-08-29Merge branch 'sverk/dialyzer-warnings' into maintSverker Eriksson
* sverk/dialyzer-warnings: Fix dialyzer warning for erlang:statistics(scheduler_wall_time) Fix dialyzer warning for system_flag(scheduler_wall_time) Fix dialyzer warning for hipe_bifs:remove_refs_from(all)
2012-08-28Fix dialyzer warning for erlang:statistics(scheduler_wall_time)Sverker Eriksson
2012-08-28Fix dialyzer warning for system_flag(scheduler_wall_time)Sverker Eriksson
2012-08-28Merge branch 'maint'Fredrik Gustafsson
2012-08-27Fix dialyzer warning for hipe_bifs:remove_refs_from(all)Sverker Eriksson
2012-08-24Add a missing tag in a type declarationKostis Sagonas
2012-08-21Merge branch 'maint'Hans Bolinder
* maint: Let t_inf() substitute any() for variables in a few more cases Fix a bug in dialyzer_dataflow
2012-08-21Let t_inf() substitute any() for variables in a few more casesHans Bolinder
The clauses handling opaque types haven't been fixed here.
2012-07-19hipe: Remove VxWorksBjörn-Egil Dahlberg
2012-06-08Merge branch 'maint'Lukas Larsson
* maint: Update to work with space in include path Update to work with whitespace in exec path
2012-06-08Merge branch 'lukas/otp/install_with_whitespace/OTP-10107' into maintLukas Larsson
* lukas/otp/install_with_whitespace/OTP-10107: Update to work with space in include path Update to work with whitespace in exec path
2012-06-05Update to work with whitespace in exec pathLukas Larsson
OTP-10106 OTP-10107
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