This is nothing new though: all wireshark plugins must be GPL, since the API itself they rely on is GPL.
233 karma · joined June 21, 2013
This is nothing new though: all wireshark plugins must be GPL, since the API itself they rely on is GPL.
I experimented with a key/value approach on the syntax itself (something like `{ src_port = u16 }` or `{ src_port = 16 }`), which was nicer, but the problem was that, in lua, table literals are unordered. The current approach uses the method syntax (`a:b()`) as a nice workaround, but this mandates the use of parenthesis after the type and other specifiers. This is fine though since a lot of the provided types are parameterized (e.g. `bytes(n)` which takes a number of octets)
rst2ansi is a more generic document renderer, that may be used in another program to render document parts. It doesn't convert the document to an intermediate man page, nor specifically formats the document as, well, documentation.
This software is still in alpha, and lacks in both handling some reST features and style extensibility, but is still pretty much functional.
I made this for another project of mine where I needed to render some document parts over the terminal, and decided to give reST a go.
As always, suggestions are welcome.
An implementation of this for rendering tables as rst-style ascii is available here: https://github.com/Snaipe/table2ascii
As always, suggestions are welcome.
First, you'd have to wrap your header inclusions in `extern "C"` to disable mangling, then you would have to make sure you static_cast all your pointers where normally `void*` conversions would have done its job.
Furthermore, all interfaces relying on designated initializers and compound literals are broken unless you decide to compile in nonstandard GNU C++.
And there are more incompatibilities, such as using `static` or `const` in array parameter declarations or using VLA in macros which are not recognized by C++.
It's all about using the right tool for the right job, ultimately.
Otherwise, you can't (yet!) test if the code exits with a specific value nor simply redirect input/output, but I'll be sure to take these suggestions into account, thanks!
Both will be implemented quite soon.
It also uses some very platform specific stuff, so windows & os x are out, too.
Very well made nonetheless.
I made this unit testing framework out of frustrations I had (and still have) with other C frameworks like CUnit or Check.
I wanted to make something much more simple, yet as powerful, and I think (and hope) I nailed it pretty much after a few months of work.
If you have any questions or suggestions, feel free to ask :)
What this brings on the table compared to other frameworks is a very simple way to write tests, while giving the programmer enough liberty to do what he wants.
Criterion achieves that by implementing a xUnit structure with automatic test registration using a declarative syntax -- which means you can be very expressive with the way you declare your tests and suite in a few lines of code. The rest is handled by criterion itself and the default main it provides.
Samples: https://github.com/Snaipe/Criterion/blob/bleeding/samples
Documentation: http://criterion.readthedocs.org/en/latest/
The library is currently supported on Linux and Mac OS X.
AMA.
* I implemented smalloc and sfree to respectively allocate and deallocate a memory block with prepended metadata
* I use a GNU variable attribute called cleanup to run sfree when the variable goes out of scope
* I made some macros to have some syntactic sugar on top of that
C, as a language, is indeed low level, but that does not mean that programs and libraries shouldn't build abstractions on top of the low level interface.
Now I realize that the comparison I made isn't fair since unique_ptr<T> is standard C++ (and hence, polished), and mine isn't and will never be standard C, but abstraction here is not that much of a threat to understanding -- in the end, it's still syntactic sugar on top of smalloc/sfree.
As a last word, I'll say that this is mostly a toy project, and I probably won't have the occasion to fully use it. This is just a proof of concept to say that it is possible to have modern idioms in C.