[zeromq-dev] OpenPGM Roadmap
Steven McCoy
steven.mccoy at miru.hk
Mon Aug 1 06:28:33 CEST 2011
Present plans as follows:
5.1 - Stable build, r115 for POSIX and 64-bit Windows, r117 for 32-bit
Windows
5.2 - Stability changes:
Building:
- Rename pre-processor definitions to Autoconf standards, i.e.
CONFIG_HAVE_* to HAVE_*.
- Move pre-processor definitions from command line to config.h.
- Wrap Autoconf in SCons for developer builds.
- Hardcode path for new ICC layout in SCons, distro's have not backported
any upstream updates.
- Add support for EkoPath 4 compiler.
- Remove support for Debian 4.
- Remove support for Wine 1.2, Wine 1.3 now adds or fixes the majority of
the required APIs. Noteworthy is still the lack of IPv6 interface
enumeration. Parity with Windows XP API is expected and so lack of support
for Vista+ APIs is not a concern.
- Force Windows XP minimum build for IPv6 API compatibility. Builds on
newer platforms will bring in additional functionality automatically, i.e.
WSAPoll, Slim locks, Condition variables, interface enumeration prefixes,
IGMPv3 and MLDv2 final-state-base multicast programming.
- Add compatibility definition of struct group_filter for OSX.
- Add support for Vista+ comedy API ConvertLengthToIpv4Mask(), note there
is no IPv6 equivalent.
- Add support for MSVC intrinsic __popcnt().
- Update Windows compatibility header winint.h to match MSVC 2010's
version that promotes 16-bit integers to 32-bit. Note that header reports
the actual data types range for int_fast16_t unlike the Windows SDK which is
presumed a defect.
- On MSVC 2010 now use system stdint.h, earlier compilers will use
compatibility winint.h.
Runtime:
- Increase default interface enumeration buffer on Windows to 15KB as per
MSDN recommendations.
- Implement workaround for IPv6 defect in Windows 7 SP1 for prefix length
determination of Teredo tunnels.
- Update Windows WSARecvMsg error notice informing removed support for
Wine 1.2 and no support for Windows 2000.
- Detect Windows IPv4 link-local adapters as having 16-bit network
prefix.
- Detect Windows non-"operationally up" interfaces as having null network
prefixes.
- Detect and ignore Windows IPv6 default routing network prefix which
breaks XP compatibility on Windows 7.
- Update IP configuration dump output to see full adapter name under
Windows and to simplify display of interface flags and network prefix length
and scope identifiers.
- Display TSC frequency in kilohertz for platforms with lower timer
clocks which appears prevalent among Core Duos and Wine execution.
- Move Windows QPC based timer to PGM_TIMER=QPC instead of PGM_TIMER=TSC.
- Add support for native RDTSC on Windows via PGM_TIMER=TSC.
- Add support for Windows low resolution timers via PGM_TIMER=MMTIME to
match performance improvements from the SQL Server development team blog due
to QPC overheads.
- Default timer API choice to high level APIs for better out-of-box
compatibility and stability.
Application development:
- Detect poll() and epoll() API availability in public headers via
standard pre-processor definitions, remove requirement for applications to
define CONFIG_HAVE_POLL or CONFIG_HAVE_EPOLL.
- Resolved conflicts in stdint.h usage in C++ applications under MSVC
2010 due to conflicting system defintions.
Testing:
- Migrating *Check* unit tests to Google Test and Google Mock frameworks.
- Updating core code to build in C++ for testing frameworks.
6.0 - Performance release.
- Investigate replacing RX windows with a single multiple publisher
window.
- Investigate long term allocated SKBs for windows at expense of
zero-copy. Targets performance improvement and suitability for embedded
platforms with tighter memory limits.
- Investigate single-thread-locked library for optimised 0MQ usage.
- Investigate Windows rate limiting via QoS API to remove burden of
Windows timer resolution in user-space.
- Investigate checksum & copy performance on modern Intel cores,
characteristics are now different to single core Xeon performance as memcpy
API speed has significantly improved and warrants changes.
--
Steve-o
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20110801/a31187b3/attachment.htm>
More information about the zeromq-dev
mailing list