Friday, October 21, 2016

Crack 0.13.1 Released

We are pleased to announce the release of Crack 0.13.1.

This is a patch release that fixes a couple of test failures on 32-bit.  It also adds some nice features to "crackdoc".  Enjoy :-)

Wednesday, September 28, 2016

Crack 0.13 Released

We are pleased to announce the release of 0.13 of the Crack programming language.  Download here.

In addition to several prominent bug fixes, the primary feature of 0.13 is a complete restructuring of the HTTP server modules. As part of this, we include the #crack.http.auth# module which facilitates the implementation of complete HTTP application servers in the language.

The language environment is currently robust enough to merit a "1.0" label. However, since we aim to guarantee backwards compatibility for all 1.x versions after 1.0, the current plan is to stick with major version 0 until there is more demand for a stable interface.

Enjoy :-)

Friday, July 1, 2016

Crack 0.12 Released

I'm happy to announce the release of Crack 0.12.  Download the source from here.

Release notes:

  • Added full support for special documentation comments, created the model builder which knows how to extract them and created the "crackdoc" documentation tool.
  • Greatly improved http server support, moved it to crack.http
  • NML extensibility enhancements.
  • Convert buffer sizes from uint to uintz
  • Change alias serialization to deal with ordering issues in nested aliases.
  • Added SHA256 hashing module.
  • Added POSIX signal handling, display stack traces for fatal signals.
  • Many more small enhancements and bug fixes.
This release has been almost a year in coming, which is way too long.  I had planned to make this a 1.0 release, but since no one is clamoring for API stability I've decided to retain the 0.x versioning so I can continue to evolve the language and modules.

Tuesday, June 28, 2016

New Website!

I've finally take the time to create a real website for Crack:

Unsurprisingly, the site is generated by a crack script.  In the process of doing this, I've enhanced NML (the markup language that the Crack manual is written in) in order to support syntax highlighting.  At some point I'll regenerate the manual to fit in with the new theme.

Sunday, November 1, 2015

SSL Ciphers

I just checked in support for doing encryption/decryption through OpenSSL.  Crack provides a wrapper library (crack.crypt.ssl.cipher) that allows you to encrypt/decrypt using a writer, so for example to encrypt:

     import crack.crypt.ssl EVP_aes_256_cbc, EncryptWriter;

     backing := (cwd/'outfile').writer();
     out := EncryptWriter(EVP_aes_256_cbc(), key, backing);
     for (data :=
     out.close();   # You must explicitly close (or make them go out of scope).

There were a few ciphers (specifically the AES CCM and GCM ciphers) that didn't pass a round-trip test.  These require some special setup that I don't feel motivated to figure out.

Wednesday, July 22, 2015

Crack 0.11 Released

I am pleased to announce the release of Crack 0.11.  Enhancements include:

  • Allow importing crack.compiler outside of an annotation.
  • Fixed casting so we can now correctly cast from secondary bases and even cast across bases.
  • Added crack.protobuf.ann, which provides an annotation to allow you to expand inline protobuf messages into generated code.
  • Streamline generic serialization (only serialize file name and line number when they change).
  • Enhancements to jack and alsa modules, made alsa extension more OO.
  • Lots of smaller fixes and enhancements.


Thursday, July 16, 2015

Moving to github

Sadly, googlecode is shutting down and we needed to find a new home for Crack.

I've been a long time fan of Mercurial (I think I was using it before git existed) but I seem to be in the minority in that.  Most Crack contributors appear to prefer git.  There's also a huge community that's developed around github.  So, given that our current project hosting is going away, this seemed to be a good time to convert entirely to git and relocate to github.

In truth, I've been running the project out of git for over two months now.  I migrate changes to the mercurial repo on googlecode whenever I push, and I expect I will continue to do so for the foreseeable future, but the repository in github (crack-lang/crack) should now be regarded as canonical.  Patches to the codebase should be sent as pull requests or as git patches generated by "format-patch".  We will no longer accept requests to pull from a mercurial repository.

Hopefully we'll get around to replacing our home page before googlecode disappears entirely.