aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2010-03-16Add functions to create and extract escriptsHåkan Mattsson
Both reltool and rebar needs to parse escripts. They are currently using an undocumented function called escript:foldl/3. It folds a function over all files in the body of an escript. If the body contains source code the function compiles it and the gives debug compiled beam code to the fold fun. If the body is an archive the fun is applied for all files in the archive. Instead of making the undocumented function public, the new functions escript:create/2 and escript:extract/2 has been introduced. Together with the new zip:foldl/3 function they have the same functionality as escript:foldl/3 in a more flexible and generic way. escript:foldl/3 should be removed as soon as reltool and rebar has been adopted to use the new functions. The simplest way for reltool and rebar to do this is to just copy the code from escript_SUITE:escript_foldl/3, which happens to provide a future compatible implementation of an emulated escript:foldl/3 function. I was quite hesitant when I introduced the compile_source option. It feels that it does not belong there but the alternative felt worse. The rationale for the compile_source option is that it is a bit cumbersome to compile the source code, as the source in most cases is partial. In order to do compile the source you need to know about some internals in escript. Without compile_source I think that these internals should be documented. Further you need to duplicate parts of the code. Without the compile_source option you need to first parse the source to forms, using an undocumented function in epp with an extended format of predefined macros which also is undocumented. Then you need to investigate the forms to see if you need to add an export form for main. When that is done you can run the rest of the compiler passes as usual. It is not so much code (60 lines or so) to write, but I do not want to urge people to write it. I actually wrote the code (see escript_SUITE:escript_foldl/3) before I decided to introduce the compile_source option.
2010-03-16Add function zip:foldl/3 to iterate over zip archivesHåkan Mattsson
This is the public interface of prim_zip:open/3, which has been used in earlier releases by both erl_prim_loader and escript. The new function can be used as a replacement for the undocumented function escript:foldl/3 that is likely to be removed without further notice. The error handling of prim_zip:open/3 (and prim_zip:foldl/3) has been improved in order to better suite a public interface. For example it could happen that a file or a zlib port could be left open in some errors cases. The documentation of the FileSpec parameter to zip:create/3 has been updated to show that file info can be explicitly specified. A FileSpec may contain {Filename, binary(), #file_info{}} elements. The function zip:create/3 was already prepared to partly support this, but now after a few minor fixes it is fully supported.
2010-03-16Remove stray code supporting 'cond'Björn Gustavsson
'cond' is an experimental feature that was never completed.
2010-03-16Remove stray code supporting constant/1Björn Gustavsson
The guard test constant/1 was removed in R13B.
2010-03-16Merge branch 'bg/asn1-tests' into devErlang/OTP
* bg/asn1-tests: asn1 tests: Let ts:run() build the tests asn1 tests: No longer tolerate compilation warnings asn1 tests: Eliminate use of deprecated concat_binary/1 asn1 tests: Eliminate warning for an unused variable asn1 tests: Modernize guard tests asn1 tests: Clean up comments asn1 tests: Don't refer to $ERL_TOP in compiler options OTP-8520 bg/asn1-tests
2010-03-15Merge branch 'bg/efficiency-guide' into devErlang/OTP
* bg/efficiency-guide: Efficiency Guide: Recommend external funs over tuple funs Efficiency Guide: The maximum number of atoms can be configured Efficiency Guide: Fix typos OTP-8515 bg/efficiency-guide
2010-03-15Corrected spellingNiclas Eklund
2010-03-15Update copyright headersBjörn Gustavsson
2010-03-11asn1 tests: Let ts:run() build the testsBjörn Gustavsson
Only release the source code and an Emakefile, so that ts:run() can build the tests just before running them. The main advantage of building the tests suite like that is that the turn-around time for developing new test cases are much faster: just edit the appropriate file and do ts:run().
2010-03-11asn1 tests: No longer tolerate compilation warningsBjörn Gustavsson
2010-03-11asn1 tests: Eliminate use of deprecated concat_binary/1Björn Gustavsson
2010-03-11asn1 tests: Eliminate warning for an unused variableBjörn Gustavsson
2010-03-11asn1 tests: Modernize guard testsBjörn Gustavsson
2010-03-11asn1 tests: Clean up commentsBjörn Gustavsson
Two modules were clearly copied and adapted from the megaco test suite. Change the name of the application being tested in a comment to "asn1" and also remove out-commented code that refers to "megaco".
2010-03-11asn1 tests: Don't refer to $ERL_TOP in compiler optionsBjörn Gustavsson
On Windows, $ERL_TOP contains a cygwin-style pathname that can be used in Makefiles to (for instance) include other Makefiles, but must not be passed to non-cygwin programs such as "erlc". Therefore, using compiler options such as "-I $(ERL_TOP)/lib/test_server/include" will not work on Windows. Fix this problem by include "test_server.hrl" using -include_lib() instead of -include(). That works because -include_lib() searches for include files in the code path without the need for any -I options.
2010-03-11OTP-8516 asn1: clean up test suiteBjörn Gustavsson
2010-03-10Merge branch 'bg/sasl-infinity' into devErlang/OTP
* bg/sasl-infinity: Prepare patch release sasl: Use gen_server:call/3 with infinity timeout OTP-8506 bg/sasl-infinity Use an infinity timeout in all calls to gen_server:call() in the sasl application.
2010-03-10cerl: Work around missing source frame in when running gdb in emacsPatrik Nyblom
This problems occurs in some recent versions of Emacs.
2010-03-10OTP-8475 status lock needed when looking up ioq from async threadsRickard Green
Driver threads, such as async threads, using <seealso marker="erl_driver#ErlDrvPDL">port data locks</seealso> peeked at the port status field without proper locking when looking up the driver queue.
2010-03-10OTP-8502 os:cmd hangRickard Green
A race condition in os:cmd/1 could cause the caller to get stuck in os:cmd/1 forever.
2010-03-10OTP-8487 unregister/1 on a port can cause the non-smp runtime to crashRickard Green
A call to the BIF unregister(RegName) when a port had the name RegName registered in the runtime system without SMP support caused a runtime system crash. (Thanks to Per Hedeland for the bugfix and test case.)
2010-03-10Fix a crash when using an undefined record name as a typeKostis Sagonas
2010-03-09OTP-7452 Support for SQL_WCHAR, SQL_WVARCHAR and strings as binariesIngela Anderton Andin
ODBC now handles the types SQL_WCHAR and SQL_WVARCHAR. ODBC also has a new connection option to return all strings as binaries and also expect strings to be binaries in the param_query function. This provides some but not a full unicode support.
2010-03-09OTP-8503 stdlib: records with no fields is considered typed by eppHans Bolinder
The empty record (no fields) is now considered typed. It is more consistent than before; the base case is the logical one. A record is typed iff all its fields are typed. A record is tagged 'typed' iff it is typed.
2010-03-09OTP-8501 stdlib: erl_pp no longer quotes atoms in typesHans Bolinder
The erlang pretty printer (erl_pp) no longer quotes atoms in types.
2010-03-09Merge branch 'ks/types' into devErlang/OTP
* ks/types: file.hrl: Move out type declarations kernel: Add types and specs OTP-8494 ks/types
2010-03-08Prepare patch releaseBjörn Gustavsson
2010-03-08sasl: Use gen_server:call/3 with infinity timeoutBjörn Gustavsson
gen_server:call/2,3 now sets up a monitor to make sure that it will be noticed if the called process dies. Therefore, there is almost never a good reason to use gen_server:call/2 with its default 5 seconds timeout. Use gen_server:call/3 with the 'infinity' timeout instead. To make sure we use the 'infinity' timeout every time, wrap the to call gen_server:call/3 in a local call/1 function in each module.
2010-03-07file.hrl: Move out type declarationsKostis Sagonas
Having various type declarations in the file.hrl file was once upon a time necessary since the system could not really handle remote types. Now it can and these declarations should not be there but appear in file.erl instead. This means that files that need to use these types can refer to them using a remote type reference, and not having to include file.hrl - at least not for this reason.
2010-03-07kernel: Add types and specsKostis Sagonas
2010-03-05Added missing bracketNiclas Eklund
2010-03-05OTP-8486 parsetools: yecc bugHans Bolinder
A bug introduced in Parsetools 1.4.4 (R12B-2) has been fixed. (Thanks to Manolis Papadakis.)
2010-03-03Fix small confusion/buglet in the handling of 'or'Kostis Sagonas
2010-03-03OTP-8483 parsetools: yecc bugHans Bolinder
Yecc failed to report reduce/reduce conflicts where one of the reductions involved the root symbol. This bug has been fixed. (Thanks to Manolis Papadakis.)
2010-03-03OTP-8472 tools: xref: re/regexpHans Bolinder
Xref has been updated to use the re module instead of the deprecated regexp module.
2010-03-02Merge from dev branch: OTP-8480 & OTP-8481.Micael Karlberg
2010-03-02OTP-8473 stdlib: erl_pp bugfix abstract type 'fun'Hans Bolinder
The abstract type 'fun' could not be printed. This bug has been fixed.
2010-03-02OTP-8471 kernel: race in disk_log_SUITEHans Bolinder
2010-03-02OTP-8470 stdlib: epp bugHans Bolinder
The Erlang code preprocessor (epp) sent extra messages on the form {eof,Location} to the client when parsing the file attribute. This bug, introduced in R11B, has been fixed.
2010-03-02OTP-8469 tools: race in CoverHans Bolinder
A race condition affecting Cover has been removed.
2010-02-28Efficiency Guide: Recommend external funs over tuple funsBjörn Gustavsson
2010-02-28Efficiency Guide: The maximum number of atoms can be configuredBjörn Gustavsson
2010-02-28Efficiency Guide: Fix typosBjörn Gustavsson
2010-02-26asn1 tests: use consistent line endingsBjörn Gustavsson
Some files used by the asn1 test suite had mixed DOS and Unix line endings. Noticed-by: Richard Carlsson
2010-02-26Reference manual: include is_boolean/1 in the list of guard BIFsBjörn Gustavsson
is_boolean/1 was introduced in R10B, so this is a little bit late...
2010-02-24Update version for R14ARickard Green
2010-02-19The R13B04 releaseOTP_R13B04Erlang/OTP
2010-02-22OTP-8466: Fix ei to build on vxworksBjörn-Egil Dahlberg
2010-02-22OTP-8395, OTP-8433 & OTP-8442.Micael Karlberg
2010-02-22Update copyrightRickard Green