to silc-devel mailing list or appear on 'silc' channel on SILCNet.
-General
-=======
-
- o Create apps/tutorial containing various Toolkit API tutorials.
-
- o The Toolkit split. The Toolkit is to be splitted in parts. How many
- parts and what the parts are isn't decided yet. Each part is a separate
- software package. Current thinking is of the following:
-
- SILC Toolkit SILC protocol, client and server library
- SILC Runtime Toolkit runtime library
- SILC Crypto Toolkit crypto, asn1, math, skr, pgp, etc.
-
- The rationale for this is of course that other than SILC projects
- might like to use the various libraries SILC Toolkit provides, but
- naturally they don't want the bloat of SILC protocol related stuff.
-
- The Runtime library in SILC Toolkit is a general purpose runtime library,
- like Glib and APR are. The runtime library is to be developed further
- to provide alternative to Glib and APR.
-
- The Crypto library in SILC Toolkit is a general purpose crypto library
- providing pretty nice APIs compared to many other crypto libraries,
- especially OpenSSL. The Crypto library is to be developed further
- to include support for OpenPGP, X.509 and SSH2.
-
-
Runtime library, lib/silcutil/
==============================
- o Unix socket support to Socket Stream API (local socket stream).
+ o Add SILC Zip API, compression.
- o Simple SILC Rand API for pseudo-random numbers. (***DONE)
+ o Unix socket support to Socket Stream API (local socket stream).
o file removing, chmod, rmmod, etc. chdir, rmdir, stat, etc. to
lib/silcutil/silcfileutil.h.
SILC currently supports SOCKS4 and SOCKS5 but it needs to be compiled
in separately.
+ o Simple SILC Rand API for pseudo-random numbers. (***DONE)
+
o Add directory opening/traversing functions (***DONE, TODO Windows & Symbian)
o regex from /lib/contrib to lib/silcutil, define SILC Regex API. (***DONE)
Add silc_stream_get_root and add get_root stream operation. It
returns the root of the stream or NULL if stream doesn't have root.) maybe
- (o Compression routines are missing. The protocol supports packet
- compression thus it must be implemented. SILC Zip API must be
- defined.) maybe
-
(o SilcIpAddr abstraction. Ipv4 and Ipv6 support to the abstaction.)
maybe
rwlock implementation using atomic operations.) not for now.
+SILC XML Library, lib/silcxml/
+==============================
+
+ o SILC XML API (wrapper to expat). Look at the expat API and simplify
+ it. The SILC XML API should have at most 8-10 API functions. It should
+ be possible to create full XML parser with only one function. And, it
+ should be possible to have a function that is able to parse an entire
+ XML document. It should also have a parser function to be able to
+ parse a stream of XML data (SilcStream). It MUST NOT have operations
+ that require multiple function calls to be able to execute that one
+ operation (like creating parser).
+
+
Windows Support
===============
SILC_CPU_FLAG(sse2, true, AC_DEFINE([SILC_CPU_SSE2], [], [SILC_CPU_SSE2]), [])
SILC_CPU_FLAG(pni, true, AC_DEFINE([SILC_CPU_SSE3], [], [SILC_CPU_SSE3]), [])
SILC_CPU_FLAG(ssse3, true, AC_DEFINE([SILC_CPU_SSSE3], [], [SILC_CPU_SSSE3]), [])
- SILC_CPU_FLAG(sse4, true, AC_DEFINE([SILC_CPU_SSE4], [], [SILC_CPU_SSE4]), [])
+ SILC_CPU_FLAG(sse4a, true, AC_DEFINE([SILC_CPU_SSE4A], [], [SILC_CPU_SSE4A]), [])
+ SILC_CPU_FLAG(sse4_1, true, AC_DEFINE([SILC_CPU_SSE41], [], [SILC_CPU_SSE41]), [])
+ SILC_CPU_FLAG(sse4_2, true, AC_DEFINE([SILC_CPU_SSE42], [], [SILC_CPU_SSE42]), [])
+ SILC_CPU_FLAG(sse5, true, AC_DEFINE([SILC_CPU_SSE5], [], [SILC_CPU_SSE5]), [])
;;
# Intel IA-64, 64-bit CPU (not x86_64 compatible)
ia64)
AC_DEFINE([SILC_IA64], [], [SILC_IA64])
cpu_ia64=true
-
- # Check for specific CPU features
- SILC_CPU_FLAG(mmx, true, AC_DEFINE([SILC_CPU_MMX], [], [SILC_CPU_MMX]), [])
- SILC_CPU_FLAG(sse2, true, AC_DEFINE([SILC_CPU_SSE2], [], [SILC_CPU_SSE2]), [])
- SILC_CPU_FLAG(pni, true, AC_DEFINE([SILC_CPU_SSE3], [], [SILC_CPU_SSE3]), [])
- SILC_CPU_FLAG(ssse3, true, AC_DEFINE([SILC_CPU_SSSE3], [], [SILC_CPU_SSSE3]), [])
- SILC_CPU_FLAG(sse4, true, AC_DEFINE([SILC_CPU_SSE4], [], [SILC_CPU_SSE4]), [])
;;
# AMD/Intel x86_64, 64-bit CPU
SILC_CPU_FLAG(sse2, true, AC_DEFINE([SILC_CPU_SSE2], [], [SILC_CPU_SSE2]), [])
SILC_CPU_FLAG(pni, true, AC_DEFINE([SILC_CPU_SSE3], [], [SILC_CPU_SSE3]), [])
SILC_CPU_FLAG(ssse3, true, AC_DEFINE([SILC_CPU_SSSE3], [], [SILC_CPU_SSSE3]), [])
- SILC_CPU_FLAG(sse4, true, AC_DEFINE([SILC_CPU_SSE4], [], [SILC_CPU_SSE4]), [])
+ SILC_CPU_FLAG(sse4a, true, AC_DEFINE([SILC_CPU_SSE4A], [], [SILC_CPU_SSE4A]), [])
+ SILC_CPU_FLAG(sse4_1, true, AC_DEFINE([SILC_CPU_SSE41], [], [SILC_CPU_SSE41]), [])
+ SILC_CPU_FLAG(sse4_2, true, AC_DEFINE([SILC_CPU_SSE42], [], [SILC_CPU_SSE42]), [])
+ SILC_CPU_FLAG(sse5, true, AC_DEFINE([SILC_CPU_SSE5], [], [SILC_CPU_SSE5]), [])
;;
# PowerPC, 32-bit and 64-bit CPUs
# Set some compiler options based on CPU
if test "x$CC" = "xicc"; then
# ICC flags
- if test x$x_have_cpu_sse4 = xtrue; then
+ if test x$x_have_cpu_sse4_1 = xtrue; then
SILC_ADD_CFLAGS(-axS)
fi
if test x$x_have_cpu_ssse3 = xtrue; then
if test x$x_have_cpu_ssse3 = xtrue; then
SILC_ADD_CFLAGS(-mssse3)
fi
- if test x$x_have_cpu_sse4 = xtrue; then
+ if test x$x_have_cpu_sse4_1 = xtrue; then
SILC_ADD_CFLAGS(-msse4)
fi
fi
# Check for va_copy
va_copy=false
+__SILC_VA_COPY="#define __SILC_VA_COPY(dest, src) dest = src"
AC_MSG_CHECKING(for va_copy)
AC_TRY_COMPILE(
[
}
],
[
- AC_DEFINE([HAVE_VA_COPY], [], [HAVE_VA_COPY])
+ __SILC_VA_COPY="#define __SILC_VA_COPY(dest, src) va_copy(dest, src)"
AC_MSG_RESULT(yes)
va_copy=true
],
}
],
[
- AC_DEFINE([HAVE___VA_COPY], [], [HAVE___VA_COPY])
+ __SILC_VA_COPY="#define __SILC_VA_COPY(dest, src) __va_copy(dest, src)"
AC_MSG_RESULT(yes)
va_copy=true
],
[va_copy=false],
[
AC_DEFINE([SILC_VA_COPY_ARRAY], [], [SILC_VA_COPY_ARRAY])
+ __SILC_VA_COPY="#define __SILC_VA_COPY(dest, src) memmove(dest, src, sizeof(va_list))"
],
[va=copy=false]
)
fi
+AC_SUBST(__SILC_VA_COPY)
# Check for timezone and tm_gmtoff for timezone information
AC_MSG_CHECKING(whether system has timezone)
sed -e "s/SILC_VERSION/$dist_version/" -e "s/SILC_RELEASE/$release/" \
srt.spec.in > srt.spec
+# First configure with debug and stacktrace and run all tests
+./configure --enable-debug --enable-stack-trace
+make clean
+make -j4
+make check -j4
+
+# Then actual configuration and making
./configure
+make clean
+make -j4
+make check -j4
cd doc
make toolkit-ref-html
cd ..
-ln -s ../../ChangeLog doc/runtime/ChangeLog
+cp ChangeLog doc/runtime/ChangeLog
<td align="right">
<a href="index.html">SILC Runtime Toolkit Manual</a><br />
<a href="masterindex.html">Index</a></small></td>
- </td>
</tr>
</table>
</div>
<td align="right">
<a href="index.html">SILC Runtime Toolkit Manual</a><br />
<a href="masterindex.html">Index</a></small></td>
- </td>
</tr>
</table>
</div>
<tr valign="top">
<td>Copyright © 2001 - 2008 SILC Project<br />
<a href="http://silc.fi">SILC Project Website</a></td>
- </td>
</tr>
</table>
</div>
To clone SRT repository give one of the following commands:
<pre>
git clone git://git.silc.fi/runtime
- git clone http://git.silc.fi/runtime
+ git clone http://git.silc.fi/runtime.in
</pre>
</p>
<tr valign="top">
<td>Copyright © 2001 - 2008 SILC Project<br />
<a href="http://silc.fi">SILC Project Website</a></td>
- </td>
</tr>
</table>
</div>
<td align="right">
<a href="index.html">SILC Runtime Toolkit Manual</a><br />
<a href="masterindex.html">Index</a></small></td>
- </td>
</tr>
</table>
</div>
Updated: @DATE@
</p>
<p>
-Welcome to the SILC Runtime Toolkit Reference Manual. The manual is a
-complete developer guide and reference for the application programmer.
-The manual is intended for programmers who would like to use the SILC
+Welcome to the SILC Runtime Toolkit Reference Manual. The manual is a
+complete developer guide and reference for the application programmer.
+The manual is intended for programmers who would like to use the SILC
Runtime Toolkit as their primary runtime in their application.</p>
<p>
The application programming interfaces are automatically generated from the
<td align="right">
<a href="index.html">SILC Runtime Toolkit Manual</a><br />
<a href="masterindex.html">Index</a></small></td>
- </td>
</tr>
</table>
</div>
<td align="right">
<a href="index.html">SILC Runtime Toolkit Manual</a><br />
<a href="masterindex.html">Index</a></small></td>
- </td>
</tr>
</table>
</div>
<big><b>Platform Implementations</b></big>
<br /> <br />
-This document describes the implementation issues with different platforms
-that the SILC Runtime Toolkit support. Some of the supported platforms
-does not support all the features delivered with the Toolkit or they may
+This document describes the implementation issues with different platforms
+that the SILC Runtime Toolkit support. Some of the supported platforms
+does not support all the features delivered with the Toolkit or they may
behave differently from other platforms.
<br />
<b><a name="windows"></a>Windows Implementation</b>
<br /> <br />
-By default all features and components delivered with Toolkit are
-supported on Windows. However, there are some certain issues with the
+By default all features and components delivered with Toolkit are
+supported on Windows. However, there are some certain issues with the
Windows version of the Toolkit.
<br /> <br />
<b><a name="symbian"></a>Symbian OS Implementation</b>
<br /> <br />
-Symbian OS support in Toolkit is still experimental. By default all
-features and components delivered with the Toolkit are supported and
-should work on Symbian. However, there are some issues with the Symbian
+Symbian OS support in Toolkit is still experimental. By default all
+features and components delivered with the Toolkit are supported and
+should work on Symbian. However, there are some issues with the Symbian
version of the Toolkit of what Symbian developers need to be aware.
<ul>
-<li>The function <tt>silc_schedule</tt> on Symbian will allocate new Active
-Scheduler Waiter and will block the calling thread. The caller should
+<li>The function <tt>silc_schedule</tt> on Symbian will allocate new Active
+Scheduler Waiter and will block the calling thread. The caller should
allocate Active Scheduler before calling <tt>silc_schedule</tt>.
-<li>When adding timeout tasks to SILC Scheduler the SILC Scheduler is woken
-up after the timeout task has been added. This allows adding of the
-timeout tasks from Symbian active objects outside the SILC Scheduler loop.
+<li>When adding timeout tasks to SILC Scheduler the SILC Scheduler is woken
+up after the timeout task has been added. This allows adding of the
+timeout tasks from Symbian active objects outside the SILC Scheduler loop.
On other platforms this wakeup operation is not performed.
-<li>Adding fd task to SILC Scheduler will not schedule the fd for any
-operation. Instead, programmer should use SILC Socket Stream API and SILC
-Fd Stream API on Symbian when dealing with file descriptors and sockets.
-These APIs provide asynchronous notification when data is available and can
+<li>Adding fd task to SILC Scheduler will not schedule the fd for any
+operation. Instead, programmer should use SILC Socket Stream API and SILC
+Fd Stream API on Symbian when dealing with file descriptors and sockets.
+These APIs provide asynchronous notification when data is available and can
be written.
-<li>The function <tt>silc_thread_create</tt> on Symbian will install Active
-Scheduler and allocate Cleanup Stack for the new thread. The created
+<li>The function <tt>silc_thread_create</tt> on Symbian will install Active
+Scheduler and allocate Cleanup Stack for the new thread. The created
thread always shares heap with the parent thread.
</ul>
<td align="right">
<a href="index.html">SILC Runtime Toolkit Manual</a><br />
<a href="masterindex.html">Index</a></small></td>
- </td>
</tr>
</table>
</div>
</body>
</html>
-
--- /dev/null
+#!/bin/sh
+
+last="$1"
+new="$2"
+git tag $new
+git log --no-merges $new ^$last > ChangeLog
+echo "" >> ChangeLog
+git diff --stat --summary -M $last $new >> ChangeLog