aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2011-11-17Add restart_new_emulator instruction to kernel, stdlib and sasl appupsSiri Hansen
The appup files for kernel, stdlib and sasl did not contain any UpFromVsn and DownToVsn. This means that it was not possible to create a relup file with systool:make_relup if any of these applications had changed. This commit adds entries in the appup files for a maximum of two major releases back - all with only one upgrade instruction: restart_new_emulator. The point is to allow relups to be generated, but ensure that no soft upgrade is done for these three applications - i.e. they will always cause a restart of the emulator prior to all other upgrade instructions from other applications. Test cases (appup_test) are added to kernel_SUITE, stdlib_SUITE and sasl_SUITE. These all check that expected versions are matched in the appups, and illegal versions (older than two major releases, or in any other way illegal) do not match. The test is written in a general way where it is assumed that the version of these applications are stepped according the the rule that major releases step the second number, maintenance releases step the third number and patches step the fourth number.
2011-11-17Distinguish restart_new_emulator from restart_emulator in upgrade instructionsSiri Hansen
Earlier, there was only one valid instruction to restart the emulator in an appup/relup script, 'restart_new_emulator'. A new instuction, 'restart_emulator', is now added, and the meaning is as follows: 'restart_new_emulator' is mainly for the core applications (erts, kernel, stdlib and sasl), and it indicates that there is new core functionality in the release and the emulator needs to be restarted before executing the upgrade scripts. If this instruction exists, a temporary release will be created which consists of the new version erts, kernel, stdlib and sasl, and the old versions of all other applications. After restarting the emulator with this temporary release, the rest of the upgrade instructions are executed, including loading of new versions. 'restart_emulator' can be used by any application if a restart of the emulator is needed after the upgrade instructions have been executed. In this case, the emulator will be restarted with the new release (i.e. not a tempoarary one) after all other upgrade instructions for all applications have been excecuted.
2011-11-17Upgrade erts: merge sys.config for tmp release instead of using oldSiri Hansen
The sys.config file used for the temporary release in an erts upgrade is now a hybrid where kernel, stdlib and sasl configuration is taken from the new release, and other configuration is taken from the old release. I.e. similar to how the temporary boot file is created.
2011-11-17Allow regexp for version in .appupSiri Hansen
In order to avoid duplication of upgrade instructions in .appup files, we now allow regular expressions to specify the UpFrom and DownTo versions. To be considered a regular expression, the version identifier must be specified as a binary, e.g. <<"2\\.1\\.[0-9]+">> will match versions 2.1.x, where x is any number.
2011-11-17Restart emulator before running upgrade script when erts is upgradedSiri Hansen
If the version of erts differs between two releases, the release handler automatically adds a 'restart_new_emulator' instruction to the upgrade script (relup). Earlier, this instruction was always added at the end of the upgrade script, causing the following sequence of operations during an upgrade (a bit simplified): 1. suspend processes 2. load new code 3. execute code_change functions 4. resume processes 5. restart emulator with new erts version Obviously, this caused the new code to be loaded into the old emulator and this would fail if the beam format had been changed in the new version of the emulator. To overcome this problem, this commit changes the order of the instructions, so for upgrade with changed erts version we now have: 1. restart emulator with new erts, kernel, stdlib and sasl versions, but old versions of all other applications. 2. suspend processes 3. load new code 4. execute code_change functions 5. resume processes This is implemented by creating a temporary release, including new erts, kernel, stdlib and sasl from the new release and all other applications from the old release. A new boot file for this temporary release is created, which includes a new 'apply' instruction to run release_handler:new_emulator_upgrade/2. Then the emulator is restarted using this boot file - and release_handler:new_emulator_upgrade/2 executes the rest of the upgrade script. For downgrade, the order will be as before: 1. suspend processes 2. execute code_change functions with 'down'-indication 3. load old code 4. resume processes 5. restart emulator with old erts version
2011-10-21Merge branch 'anders/diameter/make/OTP-9638'Anders Svensson
* anders/diameter/make/OTP-9638: Dumb down release target to Solaris /usr/ucb/install Dumb down opt/release targets to make 3.80 Minor tweaks and cleanup Need absolute -pa for bootstrap build Simpler release targets for src subdirectories Use secondary expansion for src subdirectory rules One makefile for src build instead of recursion Remove app dependency on compiler to avoid forced recompilation Move diameter_exprecs to compiler directory
2011-10-21Merge branch 'anders/diameter/dictionaries/OTP-9641'Anders Svensson
* anders/diameter/dictionaries/OTP-9641: Add diameter_make as compilation interface Update documentation Don't require -i directory to exist Allow @inherits to be set/cleared with diameterc Allow @name/@prefix to be set with diameterc Dependency fix Move dictionaries into own directory and rename Whitespace fixes @result_code -> @define in dictionary files
2011-10-21Merge branch 'hb/stdlib/fix_testsuites/OTP-9637'Hans Bolinder
* hb/stdlib/fix_testsuites/OTP-9637: Fix a few tests that used to fail on the HiPE platform
2011-10-21Fix a few tests that used to fail on the HiPE platformHans Bolinder
2011-10-20Merge branch 'rc/epp-include-path-fix'Henrik Nord
* rc/epp-include-path-fix: Make epp search directory of current file first when including another file OTP-9645
2011-10-20Merge branch 'hl/fix-ms_transform-scope-warn'Henrik Nord
* hl/fix-ms_transform-scope-warn: ms_transform: Fix incorrect `variable shadowed' warnings OTP-9646
2011-10-20Merge branch 'cf/simple_one_for_one_shutdown'Henrik Nord
* cf/simple_one_for_one_shutdown: Explain how dynamic child processes are stopped Stack errors when dynamic children are stopped Explicitly kill dynamic children in supervisors Conflicts: lib/stdlib/doc/src/supervisor.xml OTP-9647
2011-10-20Merge branch 'cf/supervisor_shutdown_infinity'Henrik Nord
* cf/supervisor_shutdown_infinity: Add a warning to docs about workers' shutdown strategy Allow an infinite timeout to shutdown worker processes OTP-9648
2011-10-20Merge branch 'bjorn/unicode-noncharacters/OTP-9624'Björn Gustavsson
* bjorn/unicode-noncharacters/OTP-9624: Allow noncharacter code points in unicode encoding and decoding
2011-10-20Merge branch 'bjorn/parallel-make/OTP-9451'Björn Gustavsson
* bjorn/parallel-make/OTP-9451: corba applications: Fix broken 'make clean' ic documentation: Support parallel make Revert "ic documentation: Support parallel make"
2011-10-19Dumb down release target to Solaris /usr/ucb/installAnders Svensson
2011-10-19Dumb down opt/release targets to make 3.80Anders Svensson
2011-10-19Minor tweaks and cleanupAnders Svensson
Tweak some comments and variable names, move things around a bit (default src target is now opt, not debug), only clean what's built, use +warn_export_vars.
2011-10-19Merge branch 'maint-r14'Lars Thorsen
* maint-r14: Fix match bug
2011-10-19Fix erroneous merge resolutionRickard Green
Previously removed code erroneously reappeared in a merge to the master branch (ec36499d7e329b4dc69a1a3be3422eac7907c260).
2011-10-18Merge branch 'fm/enif_is_number'Henrik Nord
* fm/enif_is_number: Add NIF function enif_is_number Conflicts: erts/emulator/beam/erl_nif_api_funcs.h OTP-9629
2011-10-18Merge branch 'sverker/random-improved-algo'Sverker Eriksson
* sverker/random-improved-algo: Improve algorithm in module random. Fix a bug in the implementation of the pseudo-random number generator OTP-8713
2011-10-18Merge branch 'pg/des-cfb-functions'Sverker Eriksson
* pg/des-cfb-functions: [crypto] Remove swedish characters from test code [crypto] Add DES and Triple DES cipher feedback (CFB) mode functions OTP-9640
2011-10-18Need absolute -pa for bootstrap buildAnders Svensson
Otherwise include_lib will fail.
2011-10-18Simpler release targets for src subdirectoriesAnders Svensson
2011-10-18[crypto] Remove swedish characters from test codeSverker Eriksson
2011-10-18[crypto] Add DES and Triple DES cipher feedback (CFB) mode functionsPaul Guyot
2011-10-17Make epp search directory of current file first when including another fileRichard Carlsson
The expected behaviour of a C-style preprocessor (such as Erlang's epp) is to allow a header file to include another header file in the same directory even though that directory is not explicitly in the include path, and even if the actual include path might reference another directory containing a file with the same name. For example, if src/foo.erl explicitly includes "../include/foo.hrl", then foo.hrl should be able to include "bar.hrl" in that same directory even though "../include" might not be in the search path, and even if another file named bar.hrl could be found using the search path it should not override the one in the same directory as foo.hrl. In Erlang, the most common situation is that a user of an installed application includes a main public header file using include_lib ("appname/include/foo.hrl") and that file includes a secondary header file "bar.hrl". However, if it does this using include_lib, it causes a bootstrapping problem - in the build environment for the application itself, the application is not necessarily found by name. On the other hand, if foo.hrl uses a plain include, then bar.hrl might be found when the application is built (if explicit paths are set in the makefils) but not later on when a user includes the main header file of the installed application via include_lib. By making -include always look in the directory of the current file before it uses the search path, this problem is remedied, and include directives behave in a more intuitive way. This completes a partial fix in R11 that only worked for include_lib().
2011-10-17Use secondary expansion for src subdirectory rulesAnders Svensson
Makes for a quieter rule with no recursion.
2011-10-17One makefile for src build instead of recursionAnders Svensson
Simpler, no duplication of similar makefiles and makes for better dependencies. (Aka, recursive make considered harmful.)
2011-10-17Remove app dependency on compiler to avoid forced recompilationAnders Svensson
2011-10-17Move diameter_exprecs to compiler directoryAnders Svensson
2011-10-17Add diameter_make as compilation interfaceAnders Svensson
As a module-based alternative to the escript diameterc.
2011-10-17Update documentationAnders Svensson
2011-10-17Don't require -i directory to existAnders Svensson
2011-10-17Allow @inherits to be set/cleared with diametercAnders Svensson
This is to enable dictionaries compiled with --name/--prefix to be inherited using --inherits.
2011-10-17Allow @name/@prefix to be set with diametercAnders Svensson
2011-10-17Dependency fixAnders Svensson
Has to follow the release_targets include for make not to think that a misspelled dictionary is up to date just because the exprecs dependency is.
2011-10-17Move dictionaries into own directory and renameAnders Svensson
Generated files are unchanged but the separation will be especially pleasant when more dictionary files are added as examples. It is still only the rfc3588 and relay dictionaries that are known to the diameter implementation.
2011-10-17Whitespace fixesAnders Svensson
2011-10-17@result_code -> @define in dictionary filesAnders Svensson
The section simply results in generated macros and has nothing specifically to do with result codes. It's still not documented, and neither are the macros generated from @enum, since the generated names are typically so long as to be impractical/unreadable in source. Better to use numeric values with a comment or define your own shorter macros as the need arises.
2011-10-17Merge branch 'anders/diameter/testsuites/OTP-9620'Anders Svensson
* anders/diameter/testsuites/OTP-9620: Add failover suite Use util to simplify connection establishment in suites Move certificate generation into own testcase Add beam target to makefile Add util functions for managing connections Use tcp/sctp port resolution from testsuites
2011-10-17Merge branch 'anders/diameter/port_resolution/OTP-9623'Anders Svensson
* anders/diameter/port_resolution/OTP-9623: Register tcp listener before transport start return Add port resolution interface to transport modules
2011-10-17Merge branch 'hb/stdlib/dets_repair/OTP-9607'Hans Bolinder
* hb/stdlib/dets_repair/OTP-9607: Fix a bug in Dets concerning repair of almost full tables
2011-10-17Fix a bug in Dets concerning repair of almost full tablesHans Bolinder
A Dets table with sufficiently large buckets could not always be repaired. (Reported by Gordon Guthrie.) The format of Dets files has been modified. When downgrading tables created with the new system will be repaired. Otherwise the modification should not be noticeable.
2011-10-17Merge branch 'hb/doc_fixes/OTP-9616'Hans Bolinder
* hb/doc_fixes/OTP-9616: Correct the docs
2011-10-17Merge branch 'hb/erl_docgen/man_fixes/OTP-9614'Hans Bolinder
* hb/erl_docgen/man_fixes/OTP-9614: Fix bugs in the generation of manpages
2011-10-17Correct the docsHans Bolinder
2011-10-17Fix bugs in the generation of manpagesHans Bolinder
The indentation of the <d> tag has been corrected, as has the corresponding tag used for Erlang specs. The contents of the <v> was not properly processed.
2011-10-13Allow noncharacter code points in unicode encoding and decodingBjörn Gustavsson
The two noncharacter code points 16#FFFE and 16#FFFF were not allowed to be encoded or decoded using the unicode module or bit syntax. That causes an inconsistency, since the noncharacters 16#FDD0 to 16#FDEF could be encoded/decoded. There is two ways to fix that inconsistency. We have chosen to allow 16#FFFE and 16#FFFF to be encoded and decoded, because the noncharacters could be useful internally within an application and it will make encoding and decoding slightly faster. Reported-by: Alisdair Sullivan