Browse code

improve dox

Nat! authored on 20-10-2016 20:15:02
Showing 3 changed files
... ...
@@ -2,7 +2,18 @@
2 2
 
3 3
 Release on [github](//github.com/mulle-nat/mulle-vararg): [![Build Status](https://travis-ci.org/mulle-nat/mulle-allocator.svg?branch=release)](https://travis-ci.org/mulle-nat/mulle-allocator)
4 4
 
5
-A variable argument passing scheme written in C (C11).
5
+A variable argument passing scheme written in C (C11). It's an alternative
6
+to [stdarg](//en.wikipedia.org/wiki/Stdarg.h) or [varargs](//pubs.opengroup.org/onlinepubs/7908799/xsh/varargs.h.html), but not compatible with either.
7
+
8
+#### Advantages
9
+
10
+* possibility of non-compiler construction/deconstruction at runtime. You don't
11
+need [libffi](//sourceware.org/libffi/) or some such.
12
+* cheap forwarding to other functions.
13
+
14
+#### Disadvantages
15
+
16
+* no compiler support
6 17
 
7 18
 
8 19
 ## How it works
... ...
@@ -17,9 +28,9 @@ observed though.
17 28
 > 2. float to double
18 29
 >
19 30
 
20
-Let's assume there is a compiler that does not use `<stdarg.h>` variable
21
-arguments but **mulle-vararg** instead. It collects all arguments and packs
22
-them into a struct, then passes this struct to the function.
31
+Let's assume there is a compiler that uses **mulle-vararg** for variable
32
+arguments. It collects **all** function parameters and packs them into a struct,
33
+then passes this struct to the function.
23 34
 
24 35
 A **printf** function being being called like this:
25 36
 
... ...
@@ -27,7 +38,7 @@ A **printf** function being being called like this:
27 38
 printf( "%d %f %lld\n", (char) 'x', (float) 0.2, 1848LL;
28 39
 ```
29 40
 
30
-would access the arguments, as if they were embedded in a struct like this
41
+would get its arguments embedded in a struct like this
31 42
 
32 43
 ```
33 44
 struct
... ...
@@ -45,6 +56,7 @@ struct
45 56
 **mulle-vararg** provides the necessary functions to read such a struct. It has
46 57
 no code to create it.
47 58
 
59
+
48 60
 ## API
49 61
 
50 62
 * [API](dox/API_VARARG.md)
... ...
@@ -1,4 +1,4 @@
1
-0.5.1-0.5.4
1
+0.5.1-0.5.5
2 2
 ===
3 3
 
4 4
 * improve release script and documentation
... ...
@@ -11,7 +11,7 @@
11 11
 
12 12
 #include "mulle_align.h"
13 13
 
14
-#define MULLE_VARARG_VERSION  ((0 << 20) | (5 << 8) | 4)
14
+#define MULLE_VARARG_VERSION  ((0 << 20) | (5 << 8) | 5)
15 15
 
16 16
 
17 17
 /*