aboutsummaryrefslogtreecommitdiffstats
path: root/lib/stdlib
AgeCommit message (Collapse)Author
2013-08-27Fix variable usage tracking in some record errorsAnthony Ramine
When reporting a field redefinition in a record, erl_lint can forget about some old unused variables. f() -> X = 1, #r{a=foo,a=bar,a=qux}.
2013-08-27Fix unsafe variable tracking in try expressionsAnthony Ramine
Variables used in the body of a try expression were marked as unsafe *and* used, which makes no sense as an unsafe variable can't be used. Function vtsubtract/2 is used to forget usage of such unsafe variables. Reported-by: Paul Davis
2013-08-27Fix variable usage tracking in erl_lintAnthony Ramine
When analyzing complex expressions (i.e. comprehensions, cases, tries, ifs and receives), erl_lint does not forget about old unused variables when returning the updated variable table. This causes a bug where old unused variables are not recorded as such: t(X, Y) -> #r{a=[ K || K <- Y ],b=[ K || K <- Y ]}. As erl_lint uses vtmerge_pat/2 to merge the results of the analysis of the two list comprehensions, X is marked as used and the warning is not emitted. The function vtmerge_pat/2 is used instead of the similar vtmerge/2 which does not mark multiple occurrences of a variable as usage to handle cases like the following one: t(X, Y) -> #r{a=A=X,b=A=Y}. Other simpler expressions like conses, tuples and external fun references do not correctly follow this behaviour, e.g. A is not marked as used in the following code: t(X, Y) -> {A=X,A=Y}. This commit fixes both issues and makes erl_lint not return old unused variables in updated tables and makes all compound expressions use vtmerge_pat/2. Reported-by: Anders Ramsell
2013-08-26Merge branch 'sze/edlin_understand_keys/OTP-11251' into maintFredrik Gustafsson
* sze/edlin_understand_keys/OTP-11251: Added primary bootstrap erts: fixed documentation regarding tty and arrow keys make edlin understand a few important control keys
2013-08-26Merge branch 'alexrp/export_edge/OTP-11266' into maintFredrik Gustafsson
* alexrp/export_edge/OTP-11266: Export the edge/0 type from the digraph module
2013-08-21Correct the specifications of io_lib:fread/2,3Hans Bolinder
Thanks to Chris King and Kostis Sagonas for pinpointing the bug.
2013-08-21Merge branch 'hb/stdlib/dets_bugfix/OTP-11245' into maintHans Bolinder
* hb/stdlib/dets_bugfix/OTP-11245: Fix a Dets bug concerning traversal of tables
2013-08-20Fix a bug in the linter regarding the 'fun M:F/A' constructHans Bolinder
If the fun M:F/A construct was used erroneously the linter could crash. Thanks to Mikhail Sobolev for reporting the bug.
2013-08-19Fix a Dets bug concerning traversal of tablesHans Bolinder
The bug was introduced in R16B. Thanks to Manuel Durán Aguete.
2013-08-08stdlib: Include file:all datatypes in filelibLukas Larsson
2013-08-07Export the edge/0 type from the digraph moduleAlex Rønne Petersen
2013-08-07make edlin understand a few important control keysStefan Zegenhagen
Hi Fredrik, > I've gotten some feedback from your review, > You need to add documentation under Erts-> "User's Guide" -> "tty - A > command line interface" > > You need to add testcase in interactive_shell_SUITE a simplified > example of how this testcase could look like; > ctrl_w_and_ctrl_u(_Conf) -> > rtnode([{putline,""}, {putline, "2."}, {getline, "2"}, > {putline,"xxx yy"++[$\^w]++"."}, {getline,"xxx"}, {putline,"xxx > yy"++[$\^u]++"z."}, {getline,"z"}],[]). Please find an updated version of the patch attached to this e-mail. I hope that you still accept it via e-mail because the former patch was sent the same way ;-). I have extended the documentation to list the new key combinations and added tests to make sure they work. Kind regards, -- Dr. Stefan Zegenhagen arcutronix GmbH Garbsener Landstr. 10 30419 Hannover Germany Tel: +49 511 277-2734 Fax: +49 511 277-2709 Email: [email protected] Web: www.arcutronix.com *Synchronize the Ethernet* General Managers: Dipl. Ing. Juergen Schroeder, Dr. Josef Gfrerer - Legal Form: GmbH, Registered office: Hannover, HRB 202442, Amtsgericht Hannover; Ust-Id: DE257551767. Please consider the environment before printing this message. >From ce4b827c78d18f39bb1146fd2959ffd7ae2b4bb6 Mon Sep 17 00:00:00 2001 From: Stefan Zegenhagen <[email protected]> Date: Mon, 6 May 2013 14:39:07 +0200 Subject: [PATCH] [EDLIN] support a few more control keys Add support for the following control keys that many users have become accustomed to: - <CTRL>+W : backward kill word - <CTRL>+U : backward kill line - <HOME> : goto start of line - <END> : goto end of line - <CTRL>+<LEFT> : backward word - <CTRL>+<RIGHT> : forward word It seems that the <CTRL>+<LEFT|RIGHT> control key sequences are different between terminal emulators, therefore a few possible combinations were added (similar to how libreadline is configured). Documentation and tests are extended to reflect the new functionality.
2013-08-01Fix typo in abcast() function commentJohannes Weißl
2013-07-24Merge branch 'jv/update-io_prompt-type/OTP-11208' into maintBjörn-Egil Dahlberg
* jv/update-io_prompt-type/OTP-11208: Update io:prompt() type
2013-07-21Update filelib.erl typespecsJosé Valim
Most functions in filelib support binaries as arguments but that was not reflected in the typespecs. The types filename_all() and dirname_all() were introduced to mimic file:name_all().
2013-07-21Update io:prompt() typeJosé Valim
Functions that expect an io:prompt() also accept binaries and iolists as arguments. Therefore its type has been updated to reflect the same types accepted by other io functions.
2013-07-11Fix supervisor typogoofansu
`I` should be `If`
2013-07-09Merge branch 'genrich/stdlib/gen_server_typo/OTP-11200' into maintFredrik Gustafsson
* genrich/stdlib/gen_server_typo/OTP-11200: handle_info Info type possible typo
2013-06-19Update version numbers for R16B02 developmentMagnus Lidén
2013-06-17Prepare releaseOTP_R16B01Erlang/OTP
2013-06-12Update copyright yearsBjörn-Egil Dahlberg
2013-06-08handle_info Info type possible typogenrich
Should it be 'timeout' instead of timeout(), as in doc: http://www.erlang.org/doc/man/gen_server.html#Module:handle_info-2?
2013-06-05Merge branch 'pan/unicode_error_wrong_offset' into maintPatrik Nyblom
* pan/unicode_error_wrong_offset: Fix faulty rest on error in unicode:characters_to_list OTP-11080
2013-06-05Merge branch 'jv/erl_lint-default_types/OTP-11143' into maintFredrik Gustafsson
* jv/erl_lint-default_types/OTP-11143: Updated primary bootstrap stdlib: re-factored erl_lint.erl Improve erl_lint performance
2013-06-04Merge branch 'rickard-sverker/carrier-migration/OTP-10279' into maintRickard Green
* rickard-sverker/carrier-migration/OTP-10279: stdlib: Fix ets_SUITE memory tests
2013-06-04stdlib: Fix ets_SUITE memory testsRickard Green
Need to take 'mbcs_pool' into account.
2013-06-04Merge branch 'nox/erl_pp-callback/OTP-11140' into maintFredrik Gustafsson
* nox/erl_pp-callback/OTP-11140: Update primary bootstrap Support callback attributes in erl_pp
2013-06-04Merge branch 'rickard-sverker/carrier-migration/OTP-10279' into maintRickard Green
* rickard-sverker/carrier-migration/OTP-10279: erts: Document the +M<S>acul command line argument erts: Carrier pool information in allocator information erts: Use carrier pool for migration of carriers erts: Implement test case for carrier pool erts: Implement carrier pool erts: Fix type errors in info functions erts: Use Uint64 for call counts erts: Fix failing testcase alloc_SUITE:rbtree erts: Rename allocator aoffcbf to aoffcaobf erts: Remove unnecessary flag arguments in allocators erts: Remove SBMBC allocator erts: Add test for add_mbc and remove_mbc callbacks erts: Fix deallocation in removed carrier erts: Change naive list to rb-tree of carriers in AOFF allocator erts: Prepare aoff allocator for carrier migration erts: Make carrier header sizes customizable erts: Add "bestfit within carrier" for aoff allocator (aoffcbf)
2013-06-04beam_lib: Correct wrong type specificationBjörn Gustavsson
The function was updated in 5805b576, but not the type specificatin.
2013-06-03Merge branch 'bmk/snmp/snmp424_integration/r16' into maintMicael Karlberg
2013-06-03Merge branch 'nox/erl_eval-receive/OTP-11137' into maintFredrik Gustafsson
* nox/erl_eval-receive/OTP-11137: Updated primary bootstrap for erl_eval Added preloaded prim_eval Fix receive support in erl_eval with a BEAM module
2013-06-03erts: Remove SBMBC allocatorSverker Eriksson
2013-05-29Merge branch 'bjorn/stdlib/improve-ls/OTP-11108' into maintBjörn Gustavsson
* bjorn/stdlib/improve-ls/OTP-11108: Teach c:ls/1 to show non-directory files
2013-05-28Merge branch 'bmk/snmp/agent/mib_storage_behaviour/OTP-11107' into ↵Micael Karlberg
bmk/snmp/snmp424_integration/r16 Conflicts: lib/snmp/doc/src/notes.xml
2013-05-28Support callback attributes in erl_ppAnthony Ramine
2013-05-28stdlib: re-factored erl_lint.erlFredrik Gustafsson
2013-05-28Improve erl_lint performanceJosé Valim
The default_types() in erl_lint returned a dictionary with all default types. However, calculating this dict was expensive and we actually didn't use the default values in this dictionary. This patch replaces the dictionary use for one function that checks if the type is a default type or not, and remove the bits that checked explicitly for those default types when iterating the dictionary.
2013-05-28[stdlib] Updated for snmp deprecationsMicael Karlberg
2013-05-28Fix receive support in erl_eval with a BEAM moduleAnthony Ramine
Using the low-level BEAM instructions, we can loop over each message in the process queue and removes the first message that matches, without receiving them all to later send them back to itself. The function prim_eval:'receive'/2 is equivalent to the following pseudo-code: 'receive'(F, T) -> RESET MESSAGE QUEUE POINTER, LOOP: case PEEK CURRENT MESSAGE WITH TIMEOUT T of {ok,Msg} -> case F(Msg) of nomatch -> DECREMENT TIMEOUT T, ADVANCE MESSAGE QUEUE POINTER, GOTO LOOP; Result -> RESET MESSAGE QUEUE POINTER, Result end; timeout -> RESET MESSAGE QUEUE POINTER, timeout end. To not break Dialyzer and other tools, we use a stub Erlang module which abstract code is forcefully inserted into prim_inet.erl afterwards compilation.
2013-05-22Teach c:ls/1 to show non-directory filesBjörn Gustavsson
In an email to erlang-questions, Bengt Kleberg wrote: When I use c:ls/1 it reminds me so much of Unix "ls" that I expect c:ls("filename") to work. The resulting error surprises me every time (not the same day). While teaching c:ls/1 to show non-directory files, update the error handling to make use of the POSIX error codes from file:list_dir/1 and file:format_error/1 (which had not been invented when the c module was first implemented). Suggested-by: Bengt Kleberg Test-suite-by: Bengt Kleberg
2013-05-20beam_lib, compile: Replace use of deprecated crypto functionsBjörn Gustavsson
Since both the STDLIB and compiler applications turn warnings into errors, we must stop using the old deprecated crypto functions. While we are at it, generalize the format of the key tuple returned by beam_lib:make_crypto_key/2 to facilitate introducing new crypto methods in the future. Change the format to: {Type,Key,IV,BlockSize} where Type, Key, and IV are the first three arguments for either crypto:block_encrypt4/ or crypto:block_decrypt/4, and BlockSize is the block size for the crypto algorithm (it is needed to properly pad the plaintext blocks before encryption).
2013-05-20crypto: Correct deprecated informationIngela Anderton Andin
2013-05-17Merge branch 'siri/cuddle-with-tests' into maintSiri Hansen
* siri/cuddle-with-tests: Fix gen_server_SUITE:call_with_huge_message_queue Fix zip_SUITE:borderline test
2013-05-16[stdlib] Fix pretty printing of invalid formsHans Bolinder
Thanks to Tomáš Janoušek.
2013-05-08ssl & crypto: Generalize the remaining crypto APIIngela Anderton Andin
2013-05-08crypto: New API for ciphersIngela Anderton Andin
2013-05-08crypto: Deprecate functions, update doc and specsIngela Anderton Andin
2013-05-06Merge branch 'sverk/ets-test-cuddle' into maintSverker Eriksson
* sverk/ets-test-cuddle: stdlib: Make memcheck in ets_SUITE less sensitive
2013-05-03Merge branch 'nox/fix-epp-file-attrs/OTP-11079' into maintFredrik Gustafsson
* nox/fix-epp-file-attrs/OTP-11079: Fix an inconsistent state in epp
2013-05-03Fix gen_server_SUITE:call_with_huge_message_queueSiri Hansen
This test always fails when gen is native compiled, since the optmization is not implemented then. The test is now skipped when running with hipe. The test does also quite often fail on one of the test hosts which runs in a virtual machine. The reason is that the clock runs "in bursts" on this host, which is outside of the control of the erlang VM and probably due to the fact that the host runs as a virtual machine. To overcome this problem, the echo message is now sent 10000 times instead of 10 times - i.e. the test run is prolonged in order to even out the effect of the bursts.