Skip to content
Jack edited this page Mar 28, 2017 · 3 revisions

JCRL Wiki

Welcome to the JCRL wiki!

This wiki is mainly used as an informal documentation base until the main documentation arrives (soon, I promise).

What?

JCRL is a reference library of fundamental algorithms and data structures written in C. It's compiled under the C11 standard and aims to be as portable and as generic as possible.

When?

I have attempted something like JCRL for quite a while now - the first of JCRL's ancestors is cref, which I started in April 2016. There was a previous iteration of JCRL by the same name, although it bears little resemblance to the actual JCRL of today.

As for JCRL itself, 17 July 2016 is when development started.

Why?

C is one of the most popular programming languages in the history of computing. It achieved this status for a number of reasons, but one of the major ones is that C is minimalistic. While I personally love this about C, it can be painful when commonly used algorithms and data structures - that other higher level languages take for granted - need to be reimplemented. The main premise behind JCRL is that a common library built on solid principles would make development both quicker and easier for everyone.

Furthermore, the project serves a more personal purpose: to learn about the fundamental algorithms and data structures of computer science in the most effective way possible: implementing them myself.

While there are other solutions that are more battle hardened than JCRL, I hope it provides at least some utility.

How?

JCRL originally started development on Windows 7 with MinGW32 environment and Git. Development very recently switched to a more *nix development environment with major improvements to the build system. Now modern memory debugging and checking tools are integrated into the buildchain, allowing JCRL to be more secure and standards compliant.

See the README or this wiki page for build instructions.

Clone this wiki locally