summaryrefslogtreecommitdiff
path: root/lang/erlang-doc
AgeCommit message (Collapse)AuthorFilesLines
2017-03-17Update lang/erlang* to 19.3.fhajny2-6/+7
Some highlights for 19.3: - crypto, ssh: The implementation of the key exchange algorithms diffie-hellman-group-exchange-sha* are optimized, up to a factor of 11 for the slowest ( = biggest and safest) group size. - dialyzer: The peak memory consumption is reduced. Analyzing modules with binary construction with huge strings is now much faster. - erts: A received SIGTERM signal to beam will generate a 'stop' message to the init process and terminate the Erlang VM nicely. This is equivalent to calling init:stop/0. - kernel: The functions in the 'file' module that take a list of paths (e.g. file:path_consult/2) will now continue to search in the path if the path contains something that is not a directory. - public_key: New function pkix_verify_hostname/2,3 Implements certificate hostname checking. See the manual and RFC 6125. - public_key, ssh: The ssh host key fingerprint generation now also takes a list of algorithms and returns a list of corresponding fingerprints. See public_key:ssh_hostkey_fingerprint/2 and the option silently_accept_hosts in ssh:connect. - ssl: Move PEM cache to a dedicated process, to avoid making the SSL manager process a bottleneck. This improves scalability of TLS connections. - stdlib: filename:safe_relative_path/1 to sanitize a relative path has been added. Full release notes: http://erlang.org/download/otp_src_19.3.readme
2017-01-03Update lang/erlang{,-doc,-man} to 19.2.fhajny2-6/+7
Erlang/OTP 19.2 is the second service release for the 19 major release. The service release contains mostly bug fixes and characteristics improvements. Some highlights for 19.2 * STDLIB: The new behaviour gen_statem has been improved with 3 new features: the possibility to use old style non-proxy timeouts for gen_statem:call/2,3, state entry code, and state timeouts. These are backwards compatible. Minor code and documentation improvements has been performed including a borderline semantics correction of timeout zero handling. * SSL: Experimental version of DTLS. It is runnable but not complete and cannot be considered reliable for production usage. To use DTLS add the option {protocol, dtls} to ssl:connect and ssl:listen. * SSH: Extended the option silently_accept_hosts for ssh:connect to make it possible for the client to check the SSH host key fingerprint string. Se the reference manual for SSH. * ~40 contributions since the previous service release OTP 19.1 You can find the README and the full listing of changes for this service release at http://www.erlang.org/download/otp_src_19.2.readme
2016-10-02Update lang/erlang* to 19.1.fhajny2-6/+7
Some highlights of the release are: - erts: Improved dirty scheduler support. A purge of a module will - not have to wait for completion of all ongoing dirty NIF calls. - erts: Improved accuracy of timeouts on MacOS X. - kernel: Add net_kernel:setopts/2 and net_kernel:getopts/2 to - control options for distribution sockets in runtime. - asn1: Compiling multiple ASN.1 modules in the same directory with - parallel make (make -j) should now be safe. - httpd: support for PUT and DELETE in mod_esi - ~30 contributions since 19.0 You can find the Release Notes with more detailed info at http://www.erlang.org/download/otp_src_19.1.readme
2016-08-09Update lang/erlang to 19.0 (R19)fhajny2-46/+16
- compiler, stdlib: - New preprocessor macros ?FUNCTION_NAME, ?FUNCTION_ARITY - New preprocessor directives -error(Term) and -warning(Term) to cause a compilation error or warning, respectively. - gen_statem a new state machine behavior - mnesia_ext: plugin of external storage solutions to mnesia - crypto: uses EVP interface in OpenSSL resulting in generally better performance and support for HW acceleration - ssh: performance improvements, uses the new gen_statem behavior - ssl: enhanced error log messages - dialyzer: the support for maps is very much extended both the type specification syntax and the type analysis. - erts: - erlang:open_port(spawn, ...) 3-5 times faster - tracing, extensive improvements (scalability, speed, match specifications on send/receive, support for lttng, ...) - dirty schedulers improved - per process configurable handling of message_queue - fast loading of multiple modules - max_heap_size process flag - erts/kernel: Experimental support for Unix Domain Sockets Full changelog: http://erlang.org/download/otp_src_19.0.readme
2016-04-21Update lang/erlang* to 18.3.fhajny2-7/+10
Some highlights of the release are: - New statistics info about runnable and active processes & ports. - Time warp improvements: dbg:p/2 and erlang:trace/3 with monotonic_timestamp | strict_monotonic_timestamp. - Introduced a validation callback for heart. - The module overload in sasl has been deprecated. - ~90 contributions since 18.2 Full release notes: http://erlang.org/download/otp_src_18.3.readme
2015-12-31Update lang/erlang to 18.2.1.fhajny2-6/+8
erlang 18.2.1 Due to a bug in the handling of paths on windows none of the following would work with paths containing a space: - ct_run - dialyzer - erlc - escript - typer This also contains a fix for HiPE enabled emulator for FreeBSD. erlang 18.2 - ssl: Add configurable upper limit for session cache. - erts: Add function enif_getenv to read OS environment variables in a portable way from NIFs. - kernel: Add {line_delim, byte()} option to inet:setopts/2 and decode_packet/3 - ssh: The 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384' and 'ecdsa-sha2-nistp521' signature algorithms for ssh are implemented. See RFC 5656. - ssh: The ssh:daemon option dh_gex_groups is extended to read a user provided ssh moduli file with generator-modulus pairs. The file is in openssh format. - Thanks to 41 different contributors!
2015-11-03Add SHA512 digests for distfiles for lang categoryagc1-1/+2
Problems found with existing digests: Package nhc98 distfile nhc98src-1.22.tar.gz a8adc8f22371998ee0657bc0e01058a57d876abc [recorded] 81975fcb5f1dda5efeaabc30ce8c6dceae55e591 [calculated] Problems found locating distfiles: Package gcc-aux: missing distfile ada-bootstrap.i386.dragonfly.36A.tar.bz2 Package gcc-aux: missing distfile ada-bootstrap.i386.freebsd.84.tar.bz2 Package gcc-aux: missing distfile ada-bootstrap.x86_64.dragonfly.36A.tar.bz2 Package gcc-aux: missing distfile ada-bootstrap.x86_64.freebsd.84.tar.bz2 Package gcc-aux: missing distfile ada-bootstrap.x86_64.solaris.511.tar.bz2 Package gcc5-aux: missing distfile ada-bootstrap.i386.dragonfly.36A.tar.bz2 Package gcc5-aux: missing distfile ada-bootstrap.i386.freebsd.84.tar.bz2 Package gcc5-aux: missing distfile ada-bootstrap.x86_64.dragonfly.36A.tar.bz2 Package gcc5-aux: missing distfile ada-bootstrap.x86_64.freebsd.84.tar.bz2 Package gcc5-aux: missing distfile ada-bootstrap.x86_64.solaris.511.tar.bz2 Package ghc7: missing distfile ghc-7.6.3-boot-i386-unknown-freebsd.tar.xz Package icc11: missing distfile l_cproc_p_11.1.080.tgz Package jini: missing distfile jini-1_2_1_001-src.zip Package oo2c: missing distfile oo2c_32-2.0.11.tar.bz2 Package openjdk7: missing distfile openjdk7/bootstrap-jdk-1.7.76-freebsd-10-amd64-20150301.tar.xz Package openjdk7: missing distfile openjdk7/bootstrap-jdk-1.7.76-netbsd-5-i386-20150301.tar.xz Package openjdk7: missing distfile openjdk7/bootstrap-jdk-1.7.76-netbsd-6-i386-20150301.tar.xz Package openjdk7: missing distfile openjdk7/bootstrap-jdk-1.7.76-netbsd-7-earmv6hf-20150306.tar.xz Package openjdk7: missing distfile openjdk7/bootstrap-jdk-1.7.76-netbsd-7-sparc64-20150301.tar.xz Package openjdk7: missing distfile openjdk7/bootstrap-jdk7u60-bin-dragonfly-3.8-amd64-20140719.tar.bz2 Package openjdk8: missing distfile openjdk7/bootstrap-jdk-1.7.76-freebsd-10-amd64-20150301.tar.xz Package openjdk8: missing distfile openjdk7/bootstrap-jdk-1.7.76-netbsd-5-i386-20150301.tar.xz Package openjdk8: missing distfile openjdk7/bootstrap-jdk-1.7.76-netbsd-6-i386-20150301.tar.xz Package openjdk8: missing distfile openjdk7/bootstrap-jdk-1.7.76-netbsd-7-earmv6hf-20150306.tar.xz Package openjdk8: missing distfile openjdk7/bootstrap-jdk-1.7.76-netbsd-7-sparc64-20150301.tar.xz Package openjdk8: missing distfile openjdk7/bootstrap-jdk7u60-bin-dragonfly-3.8-amd64-20140719.tar.bz2 Package oracle-jdk8: missing distfile jdk-8u60-linux-i586.tar.gz Package oracle-jdk8: missing distfile jdk-8u60-solaris-x64.tar.gz Package oracle-jre8: missing distfile jre-8u60-linux-i586.tar.gz Package oracle-jre8: missing distfile jre-8u60-solaris-x64.tar.gz Package sun-jdk6: missing distfile jdk-6u45-linux-i586.bin Package sun-jdk6: missing distfile jdk-6u45-solaris-i586.sh Package sun-jdk7: missing distfile jdk-7u72-linux-i586.tar.gz Package sun-jdk7: missing distfile jdk-7u72-solaris-i586.tar.gz Package sun-jre6: missing distfile jce_policy-6.zip Package sun-jre6: missing distfile jre-6u45-linux-x64.bin Package sun-jre6: missing distfile jre-6u45-solaris-x64.sh Package sun-jre7: missing distfile jre-7u72-linux-i586.tar.gz Package sun-jre7: missing distfile jre-7u72-solaris-i586.tar.gz Otherwise, existing SHA1 digests verified and found to be the same on the machine holding the existing distfiles (morden). All existing SHA1 digests retained for now as an audit trail.
2015-09-25Update lang/erlang to 18.1.fhajny2-6/+8
Some highlights of the release are: - ssl: Add possibility to downgrade an SSL/TLS connection to a tcp connection, and give back the socket control to a user process. - ssh: The following new key exchange algorithms are implemented: 'ecdh-sha2-nistp256', 'ecdh-sha2-nistp384', 'ecdh-sha2-nistp521', 'diffie-hellman-group14-sha1', 'diffie-hellman-group-exchange-sha1' and 'diffie-hellman-group-exchange-sha256'. This raises the security level considerably. - kernel,stdlib,sasl: A mechanism for limiting the amount of text that the built-in error logger events will produce has been introduced. It is useful for limiting both the size of log files and the CPU time used to produce them. Full release notes: http://www.erlang.org/download/otp_src_18.1.readme
2015-07-18Update erlang to 18.0.fhajny2-10/+25
- Starting from 18.0 Erlang/OTP is released under the APL 2.0 - erts: The time functionality has been extended. This includes a new API for time, as well as "time warp" modes which alters the behavior when system time changes. You are strongly encouraged to use the new API instead of the old API based on erlang:now/0. erlang:now/0 has been deprecated since it is a scalability bottleneck. - erts: Beside the API changes and time warp modes a lot of scalability and performance improvements regarding time management has been made - erts: The previously introduced "eager check I/O" feature is now enabled by default. - erts/compiler: enhanced support for maps. Big maps new uses a HAMT (Hash Array Mapped Trie) representation internally which makes them more efficient. There is now also support for variables as map keys. - dialyzer: The -dialyzer() attribute can be used for suppressing warnings in a module by specifying functions or warning options. - ssl: Remove default support for SSL-3.0 and added padding check for TLS-1.0 due to the Poodle vulnerability. - ssl: Remove default support for RC4 cipher suites, as they are consider too weak. - stdlib: Allow maps for supervisor flags and child specs - stdlib: New functions in ets: - take/2. Works the same as ets:delete/2 but also returns the deleted object(s). - ets:update_counter/4 with a default object as argument Full changelog: http://www.erlang.org/download/otp_src_18.0.readme
2015-04-28Update lang/erlang to 17.5.fhajny3-80/+44
erlang-17.5 ================================ Highlights: - ERTS: Added command line argument option for setting the initial size of process dictionaries. - Diameter: configurable incoming_max len and string_decode for diameter messages - Bugfixes and minor small features in applications such as compiler, common_test, crypto, debugger, eldap, erts, hipe, inets, ssh, ssl,... Full changelog: http://www.erlang.org/download/otp_src_17.5.readme erlang-17.4 ================================ Highlights: - eldap: Nearly all TCP options are possible to give in the eldap:open/2 call. - ssh: Added API functions ptty_alloc/3 and ptty_alloc/4, to allocate a pseudo tty. - ssl: Handle servers that may send an empty SNI extension to the client. Full changelog: http://www.erlang.org/download/otp_src_17.4.readme erlang-17.3 ================================ Highlights: - erts: Introduced enif_schedule_nif() which allows a long running NIF to be broken into separate NIF invocations without the help of a wrapper function written in Erlang - common_test: Experimental support for running Quickcheck and PropEr tests from common_test suites is added. Examples of usage in the suites for the ssh and inets applications - Bugfixes and minor new features in applications such as asn1, erts, kernel, stdlib, diameter, ssh, mnesia, ssl, jinterface Full changelog: http://www.erlang.org/download/otp_src_17.3.readme erlang-17.1 ================================ Highlights: - crypto: Add aes_cfb8 cypher to crypto:block_encrypt and block_decrypt. - diameter: Add result code counters for CEA, DWA, and DPA. - erts: The following built in functions in the erlang and binary modules now bump an appropriate amount of reductions and yield when out of reductions: binary_to_list/1, binary_to_list/3, bitstring_to_list/1, list_to_binary/1, iolist_to_binary/1, list_to_bitstring/1, binary:list_to_bin/1 - hipe: Handle Maps instructions get_map_elements, put_map_assoc, put_map_exact in the HiPE native code compiler. - mnesia: The time for inserting locks for a transaction with large number of locks is reduced significantly. - ssh: Option max_sessions added to ssh:daemon/{2,3}. - stdlib: Add maps:get/3 to maps module. The function will return the supplied default value if the key does not exist in the map. Full changelog: http://www.erlang.org/download/otp_src_17.1.readme erlang-17.0 ================================ Highlights: - Erlang/OTP has been ported to the realtime operating system OSE. - Maps, a new dictionary data type (experimental) - A more natural mapping from ASN.1 OCTET STRING and BIT STRING to Erlang types, and other ASN.1 improvements and optimizations - The {active, N} socket option for TCP, UDP, and SCTP - A new (optional) scheduler utilization balancing mechanism - Migration of memory carriers has been enabled by default on all ERTS internal memory allocators - Increased garbage collection tenure rate - Experimental "dirty schedulers" functionality - Funs can now be given names - Miscellaneous unicode support enhancements - A new version scheme for OTP its applications has been introduced Full changelog: http://www.erlang.org/download/otp_src_17.0.readme erlang 16.1.3.1 (R16B03-1) ================================ Highlights: - The ODBC application was missing in the prebuilt Windows installers - 3 corrections in the SSL application: - Add missing validation of the server_name_indication option and test for its explicit use. - Elliptic curve selection in server mode now properly selects a curve suggested by the client, if possible. - The server did not indicate support for secure renegotiation during TLS extension handling. - In the syntax tools application a bug was introduced which broke reverting of local funs. This is now corrected (thanks to Anthony Ramine) - wx - Solved a problem which caused the debugger to crash when closing a window. Fixed static linking on Mac. - xmerl - Fixed a problem in the SAX-parser when the header of the next document was appearing in the buffer when using the xmerl_sax_parser:stream/2 function. Full changelog: http://www.erlang.org/download/otp_src_R16B03-1.readme erlang-16.1.3 (R16B03) ================================ Highlights: - A new memory allocation feature called "super carrier" has been introduced. It can for example be used for pre-allocation of all memory that the runtime system should be able to use. It is enabled by passing the +MMscs (size in MB) command line argument. For more information see the documentation of the +MMsco, +MMscrfsd, +MMscrpm, +MMscs, +MMusac, and, +Mlpm command line arguments in the erts_alloc(3) documentation. - The ldap client eldap now supports the start_tls operation. This upgrades an existing tcp connection to encryption using tls, see eldap:start_tls/2 and /3. - The ftp client (inets application) now supports ftp over tls (ftps). Full changelog: http://www.erlang.org/download/otp_src_R16B03.readme
2013-10-20Update Erlang/OTP to R16B02.asau2-14/+15
R16B02 is the second maintenance release for the R16B major release. You can find the README file for the release at http://www.erlang.org/download/otp_src_R16B02.readme R16B01 is the first maintenance release for the R16B major release. You can find the README file for the release at http://www.erlang.org/download/otp_src_R16B01.readme Highlights for R16B01: OTP-10279 == erts == Support for migration of memory carriers between memory allocator instances has been introduced. By default this feature is not enabled and do not effect the characteristics of the system. When enabled it has the following impact on the characteristics of the system: -- Reduced memory footprint when the memory load is unevenly distributed between scheduler specific allocator instances. -- Depending on the default allocaton strategy used on a specific allocator there might or might not be a slight performance loss. -- When enabled on the fix_alloc allocator, a different strategy for management of fix blocks will be used. -- The information returned from erlang:system_info({allocator, A}), and erlang:system_info({allocator_sizes, A}) will be slightly different when this feature has been enabled. An mbcs_pool tuple will be present giving information about abandoned carriers, and in the fix_alloc case no fix_types tuple will be present. For more information, see the documentation of the +M<S>acul command line argument. OTP-11009 == ssl public_key crypto common_test dialyzer ssh stdlib snmp inets == Integrate elliptic curve contribution from Andreas Schultz In order to be able to support elliptic curve cipher suites in SSL/TLS, additions to handle elliptic curve infrastructure has been added to public_key and crypto. This also has resulted in a rewrite of the crypto API to gain consistency and remove unnecessary overhead. All OTP applications using crypto has been updated to use the new API. Impact: Elliptic curve cryptography (ECC) offers equivalent security with smaller key sizes than other public key algorithms. Smaller key sizes result in savings for power, memory, bandwidth, and computational cost that make ECC especially attractive for constrained environments. OTP-11159 == erts == Lift static limitation (FD_SETSIZE) for file descriptors on Mac OS X. (Thanks to Anthony Ramine)
2013-10-18Fix a common mistake in many different packages: POSIX says that when usingbsiegert1-1/+3
pax -rw, the destination directory must exist. pax in NetBSD creates it if not, pax in MirBSD complains. I read through all pkgsrc Makefiles that use pax and added an entry to INSTALLATION_DIRS, or an INSTALL_DATA_DIR invocation. I did not test all the changes but they should be fairly safe. If you notice any breakage because of this change, please contact me.
2013-06-08Update to Erlang/OTP R16B (designated as 16.1 in pkgsrc).asau2-28/+19
R16B is a major new release of Erlang/OTP. Detailed information on changes can be fetched at http://www.erlang.org/download/otp_src_R16B.readme --- HIGHLIGHTS ---------------------------------------------------------- OTP-7786 == ssh == Added User Guide for the SSH application OTP-9892 == erts == Process optimizations. The most notable: -- New internal process table implementation allowing for both parallel reads as well as writes. Especially read operations have become really cheap. This reduce contention in various situations. For example when, spawning processes, terminating processes, sending messages, etc. -- Optimizations of run queue management reducing contention. -- Optimizations of process state changes reducing contention. These changes imply changes of the characteristics the system. Most notable: changed timing in the system. OTP-9974 == erts == Non-blocking code loading. Earlier when an Erlang module was loaded, all other execution in the VM were halted while the load operation was carried out in single threaded mode. Now modules are loaded without blocking the VM. Processes may continue executing undisturbed in parallel during the entire load operation. The load operation is completed by making the loaded code visible to all processes in a consistent way with one single atomic instruction. Non-blocking code loading will improve realtime characteristics when modules are loaded/upgraded on a running SMP system. OTP-10256 == inets == httpc: The HTTP client now supports HTTPS through proxies OTP-10336 == erts == Major port improvements. The most notable: -- New internal port table implementation allowing for both parallel reads as well as writes. Especially read operations have become really cheap.This reduce contention in various situations. For example when, creating ports, terminating ports, etc. -- Dynamic allocation of port structures. This allow for a much larger maximum amount of ports allowed as a default. The previous default of 1024 has been raised to 65536. Maximum amount of ports can be set using the +Q command line flag of erl(1). The previously used environment variable ERL_MAX_PORTS has been deprecated and scheduled for removal in OTP-R17. -- Major rewrite of scheduling of port tasks. Major benefits of the rewrite are reduced contention on run queue locks, and reduced amount of memory allocation operations needed. The rewrite was also necessary in order to make it possible to schedule signals from processes to ports. -- Improved internal thread progress functionality for easy management of unmanaged threads. This improvement was necessary for the rewrite of the port task scheduling. -- Rewrite of all process to port signal implementations in order to make it possible to schedule those operations. All port operations can now be scheduled which allows for reduced lock contention on the port lock as well as truly asynchronous communication with ports. -- Optimized lookup of port handles from drivers. -- Optimized driver lookup when creating ports. -- Preemptable erlang:ports/0 BIF. -- Improving responsiveness by bumping reductions for a process calling a driver callback directly. These changes imply changes of the characteristics of the system. The most notable: -- Order of signal delivery -- The previous implementation of the VM has delivered signals from processes to ports in a synchronous stricter fashion than required by the language. As of ERTS version 5.10, signals are truly asynchronously delivered. The order of signal delivery still adheres to the requirements of the language, but only to the requirements. That is, some signal sequences that previously always were delivered in one specific order may now from time to time be delivered in different orders. This may cause Erlang programs that have made false assumptions about signal delivery order to fail even though they previously succeeded. For more information about signal ordering guarantees, see the chapter on communication in the ERTS user's guide. The +n command line flag of erl(1) can be helpful when trying to find signaling order bugs in Erlang code that have been exposed by these changes. -- Latency of signals sent from processes to ports -- Signals from processes to ports where previously always delivered immediately. This kept latency for such communication to a minimum, but it could cause lock contention which was very expensive for the system as a whole. In order to keep this latency low also in the future, most signals from processes to ports are by default still delivered immediately as long as no conflicts occur. Such conflicts include not being able to acquire the port lock, but also include other conflicts. When a conflict occur, the signal will be scheduled for delivery at a later time. A scheduled signal delivery may cause a higher latency for this specific communication, but improves the overall performance of the system since it reduce lock contention between schedulers. The default behavior of only scheduling delivery of these signals on conflict can be changed by passing the +spp command line flag to erl(1). The behavior can also be changed on port basis using the parallelism option of the open_port/2 BIF. -- Execution time of the erlang:ports/0 BIF -- Since erlang:ports/0 now can be preempted, the responsiveness of the system as a whole has been improved. A call to erlang:ports/0 may, however, take a much longer time to complete than before. How much longer time heavily depends on the system load. -- Reduction cost of calling driver callbacks -- Calling a driver callback is quite costly. This was previously not reflected in reduction cost at all. Since the reduction cost now has increased, a process performing lots of direct driver calls will be scheduled out more frequently than before. Potential incompatibilities: -- driver_send_term() has been deprecated and has been scheduled for removal in OTP-R17. Replace usage of driver_send_term() with usage of erl_drv_send_term(). -- driver_output_term() has been deprecated and has been scheduled for removal in OTP-R17. Replace usage of driver_output_term() with usage of erl_drv_output_term(). -- The new function erl_drv_busy_msgq_limits() has been added in order to able to control management of port queues. The driver API version has been bumped to 2.1 from 2.0 due to the above changes in the driver API. OTP-10410 == asn1 == The options for the ASN.1 compiler has been drastically simplified. The backend is chosen by using ber, per, or uper. The options optimize, nif, and driver are no longer needed. The old options will still work, but will issue a warning. Another change is that generated encode/2 function will always return a binary (some backends used to return an iolist). OTP-10588 == asn1 == The ASN.1 compiler will now always include necessary run-time functions in the generated Erlang modules (except for asn1rt_nif which is still neeeded). If the option 'inline' is used the ASN.1 compiler will generate a warning. But if '{inline,OutputFile}' is use, the ASN.1 compiler will refuse to compile the file. (Use a .set.asn file if you need to remove the output file.) The 'BIT STRING' type will now be decoded as Erlang bitstrings by default. Use the new legacy_bit_string option to encode as lists of ones and zeroes. (The compact_bit_string option still works as before.) Open types are now always returned as binaries (when there is no information allowing them to be decoded). --- POTENTIAL INCOMPATIBILITIES ----------------------------------------- OTP-9052 == common_test == Removed depricated run_test program, use ct_run instead. OTP-9881 == common_test == It is now possible to let a test specification include other test specifications. Included specs can either be joined with the source spec (and all other joined specs), resulting in one single test run, or they can be executed in separate test runs. Also, a start flag/option, join_specs, has been introduced, to be used in combination with the spec option. With join_specs, Common Test can be told to either join multiple test specifications, or run them separately. Without join_specs, the latter behaviour is default. Note that this is a change compared to earlier versions of Common Test, where specifications could only be joined. More information can be found in the Running Tests chapter in the User's Guide (see the Test Specifications section). OTP-10117 == inviso == The inviso application has been removed. OTP-10170 == erts pman == Tuple funs (deprecated in R15B) are no longer supported. OTP-10195 == edoc == Since EDoc 0.7.7 (R14B02) separate values of union types can be annotated. However, the parser has hitherto chosen not to add the necessary parentheses due to backwards compatibility. From this release on code traversing the output of edoc_parser needs to take care of parentheses around separate values of union types. Examples of such code are layout modules and doclet modules. OTP-10336 == erts == Major port improvements. The most notable: -- New internal port table implementation allowing for both parallel reads as well as writes. Especially read operations have become really cheap.This reduce contention in various situations. For example when, creating ports, terminating ports, etc. -- Dynamic allocation of port structures. This allow for a much larger maximum amount of ports allowed as a default. The previous default of 1024 has been raised to 65536. Maximum amount of ports can be set using the +Q command line flag of erl(1). The previously used environment variable ERL_MAX_PORTS has been deprecated and scheduled for removal in OTP-R17. -- Major rewrite of scheduling of port tasks. Major benefits of the rewrite are reduced contention on run queue locks, and reduced amount of memory allocation operations needed. The rewrite was also necessary in order to make it possible to schedule signals from processes to ports. -- Improved internal thread progress functionality for easy management of unmanaged threads. This improvement was necessary for the rewrite of the port task scheduling. -- Rewrite of all process to port signal implementations in order to make it possible to schedule those operations. All port operations can now be scheduled which allows for reduced lock contention on the port lock as well as truly asynchronous communication with ports. -- Optimized lookup of port handles from drivers. -- Optimized driver lookup when creating ports. -- Preemptable erlang:ports/0 BIF. -- Improving responsiveness by bumping reductions for a process calling a driver callback directly. These changes imply changes of the characteristics of the system. The most notable: -- Order of signal delivery -- The previous implementation of the VM has delivered signals from processes to ports in a synchronous stricter fashion than required by the language. As of ERTS version 5.10, signals are truly asynchronously delivered. The order of signal delivery still adheres to the requirements of the language, but only to the requirements. That is, some signal sequences that previously always were delivered in one specific order may now from time to time be delivered in different orders. This may cause Erlang programs that have made false assumptions about signal delivery order to fail even though they previously succeeded. For more information about signal ordering guarantees, see the chapter on communication in the ERTS user's guide. The +n command line flag of erl(1) can be helpful when trying to find signaling order bugs in Erlang code that have been exposed by these changes. -- Latency of signals sent from processes to ports -- Signals from processes to ports where previously always delivered immediately. This kept latency for such communication to a minimum, but it could cause lock contention which was very expensive for the system as a whole. In order to keep this latency low also in the future, most signals from processes to ports are by default still delivered immediately as long as no conflicts occur. Such conflicts include not being able to acquire the port lock, but also include other conflicts. When a conflict occur, the signal will be scheduled for delivery at a later time. A scheduled signal delivery may cause a higher latency for this specific communication, but improves the overall performance of the system since it reduce lock contention between schedulers. The default behavior of only scheduling delivery of these signals on conflict can be changed by passing the +spp command line flag to erl(1). The behavior can also be changed on port basis using the parallelism option of the open_port/2 BIF. -- Execution time of the erlang:ports/0 BIF -- Since erlang:ports/0 now can be preempted, the responsiveness of the system as a whole has been improved. A call to erlang:ports/0 may, however, take a much longer time to complete than before. How much longer time heavily depends on the system load. -- Reduction cost of calling driver callbacks -- Calling a driver callback is quite costly. This was previously not reflected in reduction cost at all. Since the reduction cost now has increased, a process performing lots of direct driver calls will be scheduled out more frequently than before. Potential incompatibilities: -- driver_send_term() has been deprecated and has been scheduled for removal in OTP-R17. Replace usage of driver_send_term() with usage of erl_drv_send_term(). -- driver_output_term() has been deprecated and has been scheduled for removal in OTP-R17. Replace usage of driver_output_term() with usage of erl_drv_output_term(). -- The new function erl_drv_busy_msgq_limits() has been added in order to able to control management of port queues. The driver API version has been bumped to 2.1 from 2.0 due to the above changes in the driver API. OTP-10410 == asn1 == The options for the ASN.1 compiler has been drastically simplified. The backend is chosen by using ber, per, or uper. The options optimize, nif, and driver are no longer needed. The old options will still work, but will issue a warning. Another change is that generated encode/2 function will always return a binary (some backends used to return an iolist). OTP-10417 == kernel sasl == It is no longer possible to have {Mod,Vsn} in the 'modules' list in a .app file. This was earlier possible, although never documented in the .app file reference manual. It was however visible in the documentation of application:load/[1,2], where the same term as in a .app file can be used as the first argument. The possibility has been removed since the Vsn part was never used. OTP-10451 == ssl == Remove filter mechanisms that made error messages backwards compatible with old ssl but hid information about what actually happened. This does not break the documented API however other reason terms may be returned, so code that matches on the reason part of {error, Reason} may fail. OTP-10490 == stdlib == If a child process fails in its start function, then the error reason was earlier only reported as an error report from the error_handler, and supervisor:start_link would only return {error,shutdown}. This has been changed so the supervisor will now return {error,{shutdown,Reason}}, where Reason identifies the failing child and its error reason. (Thanks to Tomas Pihl) OTP-10523 == tools == A new function, cover:flush(Nodes), is added which will fetch data from remote nodes without stopping cover on those nodes. This is used by test_server and common_test when it is safe to assume that the node will be terminated after the test anyway. The purpose is to avoid processes crashing when re-loading the original beam if the processes is still running old code. Remote nodes will now continue to count code coverage if the connection to the main node is broken. Earlier, a broken connection would cause the cover_server on the remote node to die and thus any still cover compiled modules would cause process crash when trying to insert cover data in ets tables that used to exist on the cover_server. The new functionality also involves synchronization with the main node if the nodes are reconnected. OTP-10588 == asn1 == The ASN.1 compiler will now always include necessary run-time functions in the generated Erlang modules (except for asn1rt_nif which is still neeeded). If the option 'inline' is used the ASN.1 compiler will generate a warning. But if '{inline,OutputFile}' is use, the ASN.1 compiler will refuse to compile the file. (Use a .set.asn file if you need to remove the output file.) The 'BIT STRING' type will now be decoded as Erlang bitstrings by default. Use the new legacy_bit_string option to encode as lists of ones and zeroes. (The compact_bit_string option still works as before.) Open types are now always returned as binaries (when there is no information allowing them to be decoded). OTP-10613 == ssl == Removed deprecated function ssl:pid/0, it has been pointless since R14 but has been keep for backwards compatibility. OTP-10633 == erts == Erlang specification 4.7.3 defines max tuple size to 65535 elements It is now enforced to no more than 16777215 elements (arity 24 bits) Previous edge cases (28 bits) were not validated and could cause undefined behaviour. OTP-10647 == erts == The previous default of a maximum of 32768 simultaneous processes has been raised to 262144. This value can be changed using the the +P command line flag of erl(1). Note that the value passed now is considered as a hint, and that actual value chosen in most cases will be a power of two. OTP-10812 == stdlib == filelib:wildcard("some/relative/path/*.beam", Path) would fail to match any file. That is, filelib:wildcard/2 would not work if the first component of the pattern did not contain any wildcard characters. (A previous attempt to fix the problem in R15B02 seems to have made matters worse.) (Thanks to Samuel Rivas and Tuncer Ayaz.) There is also an incompatible change to the Path argument. It is no longer allowed to be a binary. OTP-10872 == erts == As of ERTS-5.10/OTP-R16A node names passed in the EPMD protocol are required to be encoded in UTF-8. Since EPMD previously accepted latin1 encoded node names this is an incompatibility. However, since Erlang nodes always have required characters in node names to be 7-bit ASCII characters (and still do require this), this incompatibility should not effect anyone using EPMD as an Erlang Port Mapper Daemon.
2013-01-23Update to Erlang/OTP R15B03-1asau2-5/+7
Changes in R15B03-1 After the release of R15B03 a very unfortunate bug in ssl:ssl_accept/2 (accept with timeout) was detected. This bug will have negative impact on a number of popular http servers and server frameworks written in Erlang. The differences from R15B03 are in ssl-5.1.2 and erts-5.9.3.1. Full log at http://www.erlang.org/download/otp_src_R15B03-1.readme Changes in R15B03 Mostly bug fixes and small improvements. Full log at http://www.erlang.org/download/otp_src_R15B03.readme Changes in R15B02 Highlights OTP-8871 == ssl == Experimental support for TLS 1.1 is now available, will be officially supported from OTP-R16. Thanks to Andreas Schultz for implementing the first version. OTP-8872 == ssl == Experimental support for TLS 1.2 is now available, will be officially supported from OTP-R16. Thanks to Andreas Schultz for implementing the first version. OTP-10113 == ssl == Removed some bottlenecks increasing the applications parallelism especially for the client side. Full log at http://www.erlang.org/download/otp_src_R15B02.readme
2012-10-02Drop superfluous PKG_DESTDIR_SUPPORT, "user-destdir" is default these days.asau1-3/+1
2012-09-12Update to Erlang/OTP R15B02asau2-5/+6
Changes in Erlang/OTP R15B01 Highlights: * Dialyzer: The type analysis tool Dialyzer is optimized to be generally faster. - It can now also run in parallel (default) on SMP systems and by this perform the analysis significantly faster (Thanks to Stavros Aronis and Kostis Sagonas) * The SSL application now has experimental support for the TLS 1.1 and 1.2 standards as well (Thanks to Andreas Schultz). * CommonTest: It is now possible to sort the generated html tables. A Netconf client (ct_netconf) which support basic netconf over ssh is added * Diameter: Statistics counters related to Diameter messages can now be retrieved by calling the diameter:service_info/2 function. * Various smaller optimizations in the Erlang VM * This release also contains 66 contributions from users outside the Ericsson team
2012-04-12Update to Erlang/OTP R15B01asau2-29/+43
Presumably fixes PR pkg/46297 Changes in Erlang/OTP R15B01 Highlights: * Added erlang:statistics(scheduler_wall_time) to ensure correct determination of scheduler utilization. Measuring scheduler utilization is strongly preferred over CPU utilization, since CPU utilization gives very poor indications of actual scheduler/vm usage. * Changed ssh implementation to use the public_key application for all public key handling. This is also a first step for enabling a callback API for supplying public keys and handling keys protected with password phrases. Additionally the test suites where improved so that they do not copy the users keys to test server directories as this is a security liability. Also ipv6 and file access issues found in the process has been fixed. * When an escript ends now all printout to standard output and standard error gets out on the terminal. This bug has been corrected by changing the behaviour of erlang:halt/0,1, which should fix the same problem for other escript-like applications, i.e. that data stored in the output port driver buffers got lost when printing on a TTY and exiting through erlang:halt/0,1. The BIF:s erlang:halt/0,1 has gotten improved semantics and there is a new BIF erlang:halt/2 to accomplish something like the old semantics. See the documentation. * The DTrace source patch from Scott Lystig Fritchie is integrated in the source tree. Using an emulator with dtrace probe is still not supported for production use, but may be a valuable debugging tool. * Added Torbjörn Törnkvists LDAP client as a new application called eldap. * Added options for the ssh client to support user keys files that are password protected. Changes in Erlang/OTP R15B Highlights: * Line number and filename information are now included in exception backtraces. This information will be pretty-printed in the shell and used in crash reports etc. In practice it will be much easier to find where something failed. * The driver interface has been changed to enable 64-bit aware drivers. Most importantly the return types for ErlDrvEntry callbacks 'call' and 'control' has been changed which require drivers to be changed. * New in this release is the support for 64 bit Windows. The self extracting installer can be found here. * CommonTest hooks are now in a final supported version. * There is a new GUI tool in the observer application which integrates pman, etop, appmon and tv into one tool. The tool does also contain functions for activating tracing in an easy way. * The Erlang distribution can now be run over the new SSL implementation. Changes in Erlang/OTP R15A Notable changes: OTP-9468 'Line numbers in exceptions' OTP-9451 'Parallel make' OTP-4779 A new GUI for Observer. Integrating pman, etop and tv into observer with tracing facilities. OTP-7775 A number of memory allocation optimizations have been implemented. Most optimizations reduce contention caused by synchronization between threads during allocation and deallocation of memory. Most notably: Synchronization of memory management in scheduler specific allocator instances has been rewritten to use lock-free synchronization. Synchronization of memory management in scheduler specific pre-allocators has been rewritten to use lock-free synchronization. The 'mseg_alloc' memory segment allocator now use scheduler specific instances instead of one instance. Apart from reducing contention this also ensures that memory allocators always create memory segments on the local NUMA node on a NUMA system. OTP-9632 An ERTS internal, generic, many to one, lock-free queue for communication between threads has been introduced. The many to one scenario is very common in ERTS, so it can be used in a lot of places in the future. Currently it is used by scheduling of certain jobs, and the async thread pool, but more uses are planned for the future. Drivers using the driver_async functionality are not automatically locked to the system anymore, and can be unloaded as any dynamically linked in driver. Scheduling of ready async jobs is now also interleaved in between other jobs. Previously all ready async jobs were performed at once. OTP-9631 The ERTS internal system block functionality has been replaced by new functionality for blocking the system. The old system block functionality had contention issues and complexity issues. The new functionality piggy-backs on thread progress tracking functionality needed by newly introduced lock-free synchronization in the runtime system. When the functionality for blocking the system isn't used, there is more or less no overhead at all. This since the functionality for tracking thread progress is there and needed anyway.
2012-01-23Update erlang-doc and erlang-man to R14B04.fhajny2-60/+61
2011-05-26Update Erlang to R14B03asau2-44/+64
Highlights: - Initial release of the diameter application. - Strengthened random number generation. - Some fixes for bugs that caused crashes. Read full announcement at http://www.erlang.org/download/otp_src_R14B03.readme
2011-04-14Update to Erlang/OTP R14B02asau3-97/+162
Highlights composed by Matthew Sporleder. Changes in R14B02 (http://www.erlang.org/download/otp_src_R14B02.readme) - It is now possible to use Erlang specifications and types in EDoc documentation - All tests in Erlang/OTP have been converted to be run with Common Test as the backend instead of Test Server. - From this release, the previously experimental halfword emulator is now official - Dependency generation for Makefiles has been added to the compiler and erlc - Add a --fullpath option to Dialyzer (include version 2.4.2) - Many fixes in erts - Remove hipe constants pool - Partial support for recursive structs and unions - It is now possible to use SSH to sign and verify binary data. - typer has been rewritten Changes R14B01 (http://www.erlang.org/download/otp_src_R14B01.readme) - New ETS option compressed, to enable a more compact storage format at the expence of heavier table operations - There is now a new function inet:getifaddrs/0 modeled after C library function getifaddrs() on BSD and Linux that reports existing interfaces and their addresses on the host - Multiple crashes and infinite loops fixed - AES CTR encryption support in crypto - erl_call: remove get_hostent - The Erlang VM now supports Unicode filenames - New ETS option compressed Changes in R14B (http://www.erlang.org/download/otp_src_R14B.readme) - Large parts of the ethread library have been rewritten. - The changed API of the ethread library has also caused modifications in the Erlang runtime system. - Some Built In Functions (BIFs) are now autoimported - Added erlang:system_info(build_type) - A number of memory leaks in the crypto NIF library have been fixed - erl_call: fix multiple buffer overflows - NIF 64-bit integer support - Removed some potential vulnerabilities from the Erlang Port Mapper Daemon (epmd) - Replaced the old http client api module (http) with the new, httpc in the users guide. - inet6 improvements - ssh fixes - many ssl improvements/fixes - wx crash fix Changes in R14A (http://www.erlang.org/download/otp_src_R14A.readme) - R14A is a major new release of Erlang/OTP. - The module binary from EEP31 (and EEP9) is implemented - It is now possible for the user to provide specific callback modules that handle test configuration data - New NIF features - Receive statements that can only read out a newly created reference are now specially optimized so that it will execute in constant time regardless of the number of messages in the receive queue for the process. - The run_test script has been replaced by a program (with the same name) which can be executed without explicit installation - 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 Changes in R13B04 (http://www.erlang.org/download/otp_src_R13B04.readme) - Many documentation and documentation build improvements - cross-compile/build improvements - buffer overflow fix - telnet keep alive fixes - compiler crash on boolean ifs - -Werror for erlc fixed - macro overloading implemented - the crypto module now supports Blowfish - explicit top directories in archive files are now optional - add lock profiling tool: lcnt - httpd methods "PUT" and "DELETE" now allowed + others fixes to resolver routine - compression supported when copying between mnesia nodes
2009-12-21Fix PLIST.joerg2-3/+4
2009-12-15Deduplicate, move common code into more appropriate place.asau1-7/+1
2009-12-15Follow Erlang/OTP update to R13B03.asau3-1226/+504
While here, simplify PLIST generation.
2009-06-14Replace @exec/@unexec with @pkgdir or drop it.joerg1-2/+1
2009-06-14Remove @dirrm entries from PLISTsjoerg1-125/+1
2008-05-25Explicitly add pax dependency in those Makefiles that use it (or havejoerg1-1/+3
patches to add it). Drop pax from the default USE_TOOLS list. Make bsdtar the default for those places that wanted gtar to extract long links etc, as bsdtar can be built of the tree.
2008-01-04Full DESTDIR support for erlang packages.ghen1-5/+7
2008-01-04Update erlang, erland-doc and erlang-man to 12.0, aka R12B-0.ghen3-463/+518
This builds again on x86_64 platforms, is@ will test further. This release supports new language extensions bitstring and binary comprehensions. Other major changes are listed on <http://www.erlang.org/doc/highlights.html>. See <http://www.erlang.org/download/otp_src_R12B-0.readme> for full detail.
2007-08-03Fix dependency on erlang.joerg1-2/+2
2007-07-28Update erlang to 11.5, aka R11B-5.obache2-34/+144
Pkgsrc changes: * Drop dependency on X11. GS (Graphic System) doesn't use X11 directly, using `wish' command. Wish command will be picked up from PATH, to use GS, install wish command from x11/tk. (closes PR 35373, PR 36418) * FIxed to install crypto library correctly. (closes PR 36616) Changes list is too long. See attached URL for more detail. Bug fix release : otp_src_R11B-5 Build date : 2007-06-12 http://www.erlang.org/download/otp_src_R11B-5.readme Bug fix release : otp_src_R11B-4 Build date : 2007-03-28 http://www.erlang.org/download/otp_src_R11B-4.readme Bug fix release : otp_src_R11B-3 Build date : 2007-01-30 http://www.erlang.org/download/otp_src_R11B-3.readme Bug fix release : otp_src_R11B-2 Build date : 2006-11-07 http://www.erlang.org/download/otp_src_R11B-2.readme Bug fix release : otp_src_R11B-1 Build date : 2006-08-29 http://www.erlang.org/download/otp_src_R11B-1.readme
2006-08-17Update to Erlang R11B-0 (erlang-11.0). Changes since R10B:ghen2-12/+145
=== SMP Support === The major news is the support for SMP (Symmetric MultiProcessing). SMP is supported by most modern operating systems like Linux, Windows, Mac OSx, Solaris and is becoming more important now when dual processors, hyper-threading technology and multi-core systems are a reality. With Erlang, most of the problems which occur in multi-threaded programs have been solved once and for all in the Erlang VM and do not have to be handled by the application programmers. In the SMP version of the Erlang virtual machine, there can be many process schedulers running in separate OS threads. As default there will be as many schedulers as there are processors or processor cores on the system. The SMP support is totally transparent for the Erlang programs. That is, there is no need to change or recompile existing programs. Programs with built-in assumptions about sequential execution must be rewritten in order to take advantage of the SMP support, however. In this release, the Erlang VM supports SMP with focus on stability. There will follow a number of subsequent steps with necessary optimizations and support for more platforms. === Erlang Language and Related Issues === * The andalso and orelse operators are now allowed to be used in guards. That also applies to match specifications. * The BIF is_record/3 can now be used in guards. Also, is_record/3 can now be called without an erlang: module prefix for consistency with the other is_* functions. * The compiler options ignore_try and ignore_cond, which allowed code that used unquoted try or cond as atoms or record tags, has been removed. Old code that depended on the options need to be revised to have occurrences of try or cond as atom or record tags single-quoted. (Note: Although cond is a reserved keyword, there is no cond statement. It might be introduced in a future release.) * (ERTS 5.4.8) The new fun M:F/A construct creates a fun that refers to the latest version of M:F/A. This syntax is meant to replace tuple funs {M,F} which have many problems. * (ERTS 5.4.8) The new type test is_function(Fun, Arity) -- which may be used in guards -- test whether Fun is a fun that can be applied to Arity arguments. === New Applications === Dialyzer Dialyzer is a static analysis tool that identifies software discrepancies such as type errors, unreachable code, unnecessary tests, etc in single Erlang modules or entire (sets of) applications. Inviso The Inviso application, together with some new extensions to Runtime_Tools, is aimed at providing features for efficient tracing of production Erlang/OTP systems: * Distributed tracing - tracing on any number of Erlang nodes. * Autostart - tracing during system start-up. * Overload protection - mechanisms for suspending and later reactivating tracing, should an overload situation occur. * Enhanced use of meta tracing. * Trace cases - predefined specifications of what to trace. * Off-line merging and formatting of log files. Inviso is still under development. An easier-to-use trace tool, using the features listed above, is planned to be released as an R11B patch in Q3/Q4 2006. SSH The SSH application is an Erlang implementation of the secure shell protocol. It is considered to be a beta release, meaning there can be changes made to the API before it reaches 1.0. === Existing Applications === Compiler (Compiler 4.3.6) It is now possible to encrypt the debug information in Beam files. Debugger (Debugger 2.0) The debugger can now handle the try/catch language construct. Inets The Erlang implementation of the TFTP procotcol, tftp, is now documented. Kernel In Kernel 2.10.X, several bug fixes and improvements have been made in global , the global name registration facility. OS_Mon (OS_Mon 2.0) The entire OS_Mon application (code and documentation) has been reviewed and consequently updated with the goal to make the application more robust, homogeneous and easier to configure. STDLIB Added the zip module with functions for reading and creating zip archives.
2006-03-29Import erlang-doc, the documentation for Erlang.ghen4-0/+2176