server into a router, but to allow engineers to control their BGP (rfc4271)
network easily. Think of it as Software Defined Networking for people with
"commodity" routers.
ExaBGP transform BGP (rfc4271) messages into friendly plain text or JSON
which can be easily manipulate by scripts.
It allows the creation of tools such as:
* advanced looking glass graphically display the routing of prefix
* high availability tool which automatically isolate broken services
* DDOS mitigation
* an anycasted server
Contributed by Imre Vadasz on pkgsrc-users (slightly adapted).
Changes in Poly/ML Version 5.5.1
Major New Features and Changes
* The intermediate code optimiser has been largely rewritten.
The optimiser now detects various additional cases where a
closures or tuples can be stored on the stack rather than
requiring heap storage
* The match compiler that processes a sequence of patterns in a
case or fun-binding has been reworked. This now handles
complex matches that used to result in a code blow-up
* A"polyc" script has been added to aid compiling and linking
ML code to produce a stand-alone binary. This is intended as
an analogue of cc and gcc. The easiest way to build a binary
is now to put the ML code into a file (foo.ML) with a
function "main" that is the entry point to the code. Then run
polyc -o foo foo.ML
The script takes care of any libraries that may be required.
It does require that the poly binary and libraries have been
installed to the location that was specified in the configure
script.
* Set the default in the configure script not to build a shared
library. This can be overidden with --enable-shared. The
advantage of this is that binaries created from Poly/ML,
including poly itself, do not require libpolyml at run-time.
* Additions and changes to the command-line options when
starting the ML top-level
+ The --eval option can be followed by a string which is
compiled and executed before the top-level is entered
+ The --script option can be used to allow ML code to be
run as a script (a "shell script") in Unix. It reads the
file name given as the last option, skipping the first
line if it begins #!. Implies -q option. Note: because of
the way scripts pass their options if used this must be
the only option. To use ML as a script put the ML code
into a file, put
#! /usr/local/bin/poly --script
as the first line, modifying the path depending on where
poly is installed, and set the file to have execute
permission.
+ The -q option now sets the print depth to zero as well as
suppressing the start-up message
+ The input prompt (> or #) is only produced if the input
is a terminal. The -i option should be used to cause the
prompt to be produced if, for example, the input is from
a pipe.
Minor Additions and Changes
* The -H option now sets the initial heap size rather than
being a synonym for --minheap
* Add large file support
* When printing the fields a record print them in alphabetical
order rather than the system order used in the compiler
* Convert the representation of the statistics to use ASN1
encoding. This is byte-order and word-length independent and
allows 32-bit Poly/ML to read the statistics of 64-bit Poly/
ML on the same machine and vice-versa.
* Add a substructure Exception to the PolyML structure to hold
all the functions related to exceptions.
* The default for --gc-threads is now the number of independent
physical processors. Hyperthreaded cores are counted as
single cores rather than dual cores.
* Improve the GC and allocation code for very large arrays
* Improve handling of OS.Process.system in Cygwin
* Improved versions of Word32 and Word64. These are used for
SystemWord and LargeWord.
Bug Fixes
* Fix Word32.fromLargeInt which could return values outside the
range of Word32
* Fix segfault in PolyML.stackTrace
* Fix errors in conversion of string to real values
* Fix segfault when a thread created in foreign code called an
ML callback
* Fix profiler which could often report UNKNOWN function
* Fix bug with overlapped areas in ArraySlice.copy
* Fix InternalError exception with ML code where a fixed record
type could not be found
* Fix bug with equality on BoolVector.vector
* Raise the correct exception (Size) for negative lengths in
canInput and inputN
* Fix Real.fromInt with an argument that was an arbitrary
precision number in the long form
* Fix error in the timing information printed with
PolyML.timing true in Windows.
* Fix occasional problem with input/output as a result of the
stream token being represented by an immutable value but then
being checked for equality
* Fix bug in X86-64 code-generator with literal constants that
do not fit in 32-bits. It could result in an "InternalError:
gen32s: invalid word" exception. Includes regression test.
* Fix LargWord.fromInt which was wrong for large negative
values
* Fix bug in power-of-two function in code-generator. This
caused an infinite loop with Word.* when multiplying by a
constant with the highest bit set and not a power of two.
* Fix bug in structure matching code
* Use ELF_Rela relocation structures for all relocations in
X86-64. Some systems e.g. Solaris require this.
Upstream changes:
0.30 Wed Sep 18 09:21:00 2013
- No code changes.
- Add t/intersection.*.pl as part of the expanded discussion of methods such as intersection().
This code was developed in conjunction with Joern Behre, to help clear up confusion over
the issue of the uniqueness of items returned from various methods.
- Add an FAQ with an item discussing this issue.
- Expand the discussion of overloaded operators to recommend testing of the output of various methods
before production use, and that unique() may need to be called, since unique() is not called
automatically during a call to, say, intersection().
- Include docs for bag(), difference(), intersection(), is_equal() and not_equal() explicitly among
all other methods, besides their original mention under 'OVERLOADED (COMPARISON) OPERATORS'.
- Include docs for new() as well.
0.29 Wed Jul 3 16:20:00 2013
- No code changes.
- Rename CHANGES to Changes as per CPAN::Changes::SPEC.
- Recreate META.* files so they say licence is artistic_2 rather than artistic_1.
Build.PL and Makefile.PL already said artistic_2, but the META.* files didn't.
There is no reference to licences in the source of the module itself.
This was requested by Christopher Meng who packages stuff for Fedora.
0.28 Wed Dec 19 08:50:00 2012
- Extend fix for RT#81971 to add ^ in the regexps used in index() and rindex(), so they are now
/^\Q$value\E$/ and not just /\Q$value\E$/. This issue was also reported by Henrik Hald N鴕gaard.
- Update docs for rindex() is say undef is returned - as with index() - if the value is not found.
- Extend t/rt.81971.t to check rindex() returns undef when searching for the suffix of a value.
0.27 Sat Dec 15 07:19:00 2012
- Fix RT#81971, kindly reported by Henrik Hald N鴕gaard.
When special chars, as used in regexps, are set members, or used to find set members, they
must be quoted with \Q$value\E inside regexps.
This fix was applied to count(), delete(), exists(), index() and rindex().
- Add t/rt.81971.t to exercise the new code.
- While examining the code for this fix, I found a couple of other bugs: In index() and rindex(),
the value searched for was compared with each set member using this regexp, /$value/,
instead of this regexp, /$value$/. The missing, trailing, $ meant that the member could match just
the prefix of $value, rather than match the value exactly. So in those 2 methods the tests are now
/\Q$value\E$/. The other 3 methods mentioned above already used /$value$/.
Changelog:
New in NSS 3.15.3.1
New Functionality
No new major functionality is introduced in this release. This is
a patch release to revoke trust of a subordinate CA certificate
that was mis-used to generate a certificate used by a network
appliance.
Bugs fixed in NSS 3.15.3.1
Bug 946351 - Misissued Google certificates from DCSSI
A complete list of all bugs resolved in this release can be obtained
at
https://bugzilla.mozilla.org/buglist.cgi?resolution=FIXED&classification=Components&query_format=advanced&target_milestone=3.15.3.1&product=NSS
Compatibility
NSS 3.15.3.1 shared libraries are backward compatible with all
older NSS 3.x shared libraries. A program linked with older NSS
3.x shared libraries will work with NSS 3.15.3.1 shared libraries
without recompiling or relinking. Furthermore, applications that
restrict their use of NSS APIs to the functions listed in NSS Public
Functions will remain compatible with future versions of the NSS
shared libraries.