aboutsummaryrefslogtreecommitdiffstats
path: root/lib/stdlib/src
AgeCommit message (Collapse)Author
2011-08-16compiler: Don't create filenames starting with "./"Björn Gustavsson
In the location information tables in the run-time system, source filenames that are the same as the module name plus ".erl" extension are not stored explicitly, thus saving memory. To take advantage of that optimization, avoid complicating the names of files in the current working directory; specifically, make sure that "./" is not prepended to the name.
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-08-16Fix binary matching in the debuggerBjörn Gustavsson
'eval_bits' is a common utility module used for evaluting binary construction and matching. The functions that do matching (match_bits/{6,7} and bin_gen/6) are supposed to treat the bindings as an abstract data type, but they assume that the bindings have the same representation as in the erl_eval module. That may cause binary matching to fail in the debugger, because the debugger represents the bindings as an unordered list of two-tuples, while the erl_eval modules uses an ordered list of two-tuple (an ordset). One way to fix the problem would be to let the debugger to use ordered lists to represent the bindings. Unfortunately, that would also change how the bindings are presented in the user interface. Currently, the variable have most been recently assigned is shown first, which is convenient. Fix the matching problem by mending the leaky abstraction in eval_bits. The matching functions needs to be passed two additional operations: one for looking up a variable in the bindings and one for adding a binding. Those operations could be passed as two more funs (in addition to the evaluation and match fun already passed), but the functions already have too many arguments. Therefore, change the meaning of the match fun, so that the first argument is the operation to perform ('match', 'binding', or 'add_binding') and second argument is a tuple with arguments for the operation.
2011-08-01Remove all modules relating to drivers and make all functions obsolete.Lukas Larsson
2011-07-22Merge branch 'dev' into majorRaimo Niskanen
2011-07-21Code cleanup, unduplicate test for whitespaceRaimo Niskanen
2011-07-21EOF before first field is only ok for first character in io:freadRaimo Niskanen
2011-07-21At end of input ask for more also for for literal format charactersRaimo Niskanen
2011-07-07Merge branch 'dev' into majorHans Bolinder
* dev: Modify the contracts of the queue module
2011-07-07Merge branch 'hb/stdlib/queue_contracts/OTP-9418' into devHans Bolinder
* hb/stdlib/queue_contracts/OTP-9418: Modify the contracts of the queue module
2011-07-07Merge branch 'bjorn/remove-concat-binary/OTP-9421' into majorBjörn Gustavsson
* bjorn/remove-concat-binary/OTP-9421: Update preloaded modules Remove deprecated concat_binary/1
2011-07-07Merge branch 'dev' into majorHans Bolinder
* dev: Fix a bug in erl_scan:set_attribute/3
2011-07-07Modify the contracts of the queue moduleHans Bolinder
The contracts of the queue module have been re-written as to avoid some issues concerning Dialyzer and opaque types.
2011-07-06Fix a bug in erl_scan:set_attribute/3Hans Bolinder
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-07-06Merge branch 'dev' into majorHans Bolinder
* dev: Correct the contract of io_lib:fread/2,3
2011-07-05Correct the contract of io_lib:fread/2,3Hans Bolinder
2011-06-21Merge branch 'dev' into majorPatrik Nyblom
2011-06-20Add more specs and typesHans Bolinder
An incorrect spec, rpc:yield/1, has been fixed.
2011-06-17Handle exit reason {shutdown,Term} as shutdown for children of supervisorSiri Hansen
In R13B proc_lib, gen_server and gen_fsm were all changed to handle exit reason {shutdown,Term} in the same way as exit reason 'shutdown', i.e. no crash reports are generated. This is an update of supervisor to do the same, i.e. handle these two exit reasons in the same way. This means that for children with restart type 'transient' there will be no attempt to restart the process if it terminates with reason {shutdown,Term}, and there will be no supervisor report.
2011-06-14Allow erl_tar to create directories inside directory with no read accessSiri Hansen
erl_tar:extract earlier failed when unpacking inside a directory which had some parent directory to which the user had no read access. This is corrected.
2011-05-23Fix a spec and a typeHans Bolinder
A specification that could cause problems for Dialyzer has been fixed. An opaque type in erl_eval has been turned in to a ordinary type. This is a temporary fix.
2011-05-18Fixup of re doc and specsPatrik Nyblom
2011-05-16OTP-9022: Fixed endode/decode of values of type Counter32.Micael Karlberg
OTP-9088: [agent] Added support for sending traps to IPv6 targets. OTP-9119: [agent] To be able to handle multiple engine-id(s) when sending trap(s), the function snmp_community_mib:add_community/6 has been added. OTP-9162: [manager] The API for snmp requests has been augmented to allow the caller to override some configuration. OTP-9174: [manager] The old API functions (for get and set requests) are now officially deprecated. OTP-9183: [agent] Pass extra info through the agent to the net-if process when sending notifications. OTP-9208: Added type specs for functions that do not return. Kostis Sagonas Merge branch 'bmk/snmp/snmp420_integration' into dev
2011-05-13Merge branch 'hb/stdlib/dets_tablenames/OTP-9282' into devHans Bolinder
* hb/stdlib/dets_tablenames/OTP-9282: Allow Dets tablenames to be arbitrary terms Conflicts: lib/stdlib/src/dets.erl
2011-05-12Types and specifications have been modified and addedHans Bolinder
2011-05-11Allow Dets tablenames to be arbitrary termsHans Bolinder
2011-05-04Change list to set in supervisor for saving pids of dynamic temprary childrenSiri Hansen
Since initial arguments of temporary children under simple_one_for_one supervisors are not saved, only a list of pids was stored in such supervisors. When adding/deleting many children, this would scale badly. To avoid this the list is now changed to a set.
2011-04-28Merge branch ↵Siri Hansen
'siri/stdlib/supervisor-terminate_child-simple_one_for_one/OTP-9201' into dev * siri/stdlib/supervisor-terminate_child-simple_one_for_one/OTP-9201: Add terminate_child(Sup, Pid) for simple_one_for_one Allow supervisor:terminate_child(SupRef,Pid) for simple_one_for_one
2011-04-28Merge branch 'km/pool_connect-to-running-nodes' into devHenrik Nord
* km/pool_connect-to-running-nodes: Change pool module to attempt to attach to nodes that are already running OTP-9244
2011-04-15Merge branch 'dev' into bmk/snmp/snmp420_integrationMicael Karlberg
2011-04-12Allow supervisor:terminate_child(SupRef,Pid) for simple_one_for_oneSiri Hansen
supervisor:terminate_child/2 was not allowed if the supervisor used restart strategy simple_one_for_one. This is now changed so that children of this type of supervisors can be terminated by specifying the child's Pid.
2011-04-12Merge branch 'gc/gen-format-status-improvements' into devHenrik Nord
* gc/gen-format-status-improvements: Fix format_status bug for unregistered gen_event processes Conflicts: lib/stdlib/test/gen_event_SUITE.erl OTP-9218
2011-04-08Merge branch 'dev' into bmk/snmp/snmp420_integrationMicael Karlberg
2011-04-04Completed bug fix "temporary child specs should not be kept when childIngela Anderton Andin
terminates" and improved test suite The bug fix supplied by Filipe David Manana <[email protected]> did not cover all possible ways that a process may be terminated as for instance with supervisor:terminate_child. Also there was a bug in the base case of the patch returning a list of a list instead of only the list. Added a timeout for the test cases, eliminated unnecessary sleeps, improved code.
2011-04-04Fix issue with temporary children introduced by OTP-9064Filipe David Manana
The temporary child specs are never removed from the supervisor's state, and have they're MFA component set to {M, F, undefined} instead of the MFA passed in the supervisor:start_child/2 call. Subsequent calls to supervisor:restart_child/2 may crash. Stack trace example: {badarg,[{erlang,apply,[gen_server,start_link,undefined]}, {supervisor,do_start_child,2},{supervisor,handle_call,3}, {gen_server,handle_msg,5}, {proc_lib,init_p_do_apply,3}]}
2011-03-31Deprecated old manager API (set and get) request functions.Micael Karlberg
2011-03-28Merge branch 'siri/stdlib/log_mf_h-write-index-atomically/OTP-9148' into devSiri Hansen
* siri/stdlib/log_mf_h-write-index-atomically/OTP-9148: Update index file atomically
2011-03-23Update index file atomicallySiri Hansen
Since the log_mf_h index file might be read by other processes than the error handler (e.g. by the rb tool), this file should be updated atomically. This will avoid hitting the time gap between opening the file in write mode (and thus emptying the file) and the actual update with the new contents. To do this, a temporary file is written, and the file:rename/1 used to replace the real index file.
2011-03-22Fix a bug concerning record field typesHans Bolinder
The default value 'undefined' was added to records field types in such a way that the result was not always a well-formed type. This bug has been fixed. --- erl_pp has since OTP-8150 formatted types so that 'undefined' was removed from union types assigned to record fields. Since one cannot distinguish between 'undefined' added by the parser or supplied by the user, a side effect was that user supplied 'undefined's were also removed. Now the pretty printer shows 'undefined' even if added by the parser. This is a minor issue.
2011-03-11Update copyright yearsBjörn-Egil Dahlberg
2011-03-10Fix ~F.Fs bug, add testcase and improve documentationRaimo Niskanen
2011-03-10io_lib_format string precision fixAli Yakout
2011-03-07CleanupKostis Sagonas
2011-03-02Add ISO week number calculation functions to the calendar module in stdlibImre Horvath
This new feature adds the missing week number function to the calendar module of the stdlib application. The implementation conforms to the ISO 8601 standard. The new feature has been implemented tested and documented.
2011-02-28Merge branch 'lukas/stdlib/native_escript/OTP-9076' into devLukas Larsson
* lukas/stdlib/native_escript/OTP-9076: Update escrips to allow the -n or -compile(native) flag, which compiles the code within the escript with the +native flag. You need an HiPE enabled emulator for this to work.
2011-02-22Added test case do_not_save_start_parameters_for_temporary_children and fixedIngela Anderton Andin
dialyzer spec.
2011-02-22Do not save parameter list for any temporary processesIngela Anderton Andin
Previous commit changed the supervisor to not save parameter lists for temporary processes supervised by simple-one-for-one supervisors. But it is unnecessary to save them for any temporary processes as they should not be restarted. Proably the biggest gain is in the simple-one-for-one case. Also changed the test case count_children_memory so it does not test that which_children will produce garbage that must be reclaimed later. This is a strange thing to test and it is no longer true for all invocations of which_children.
2011-02-22Do not save initial arguments for dynamic temporary processesIngela Anderton Andin
2011-02-15Merge branch 'egil/io-badarg/OTP-9045' into devBjörn-Egil Dahlberg
* egil/io-badarg/OTP-9045: Fix exception generation in the io module