Welcome!

This wiki is still undergoing renaming, updating, and reorganization. There are still many references to the old name (MiniD) strewn about, as well as some outdated library docs and some broken links. But most of it should work.

What's Croc?

Croc is a small, dynamically-typed language most closely related to Lua, with C-style syntax. Its semantics are borrowed mainly from Lua, D, Squirrel, and Io, though many other languages served as inspirations. It aims to be somewhat unique among dynamically-typed languages by making it as difficult as possible for you, the programmer, to make mistakes. It also tries to be fast and to make memory allocation the exception rather than the norm. Lastly, it is meant to be a language that is perfectly capable on its own, but which can be seamlessly integrated into and/or extended by a host language.

It used to be called  MiniD.

It was conceived, written, and is maintained by Jarrett Billingsley.

For a more in-depth explanation of where it came from and why it exists, read the Introduction.

Why isn't this on GitHub?

Croc's source code and issues are hosted  on GitHub. But I've chosen to put the wiki here on my own site because I already had a huge amount of wiki material written in the Trac syntax (which doesn't seem to map nicely onto any of the wiki syntaxes provided by GitHub), and also because GitHub doesn't have the appropriate syntax highlighter for Croc source. At least not yet. I'll try to get the Croc lexer into Pygments, and once GitHub gets a version that has it, it'll be supported. But for now, hosting the wiki myself is the only way to do it.

Communication

If you have questions or comments, you can use the  Croc Forum for that. Yes, you have to register; no, it's not hard. Maybe I'll be able to set up OpenID logins for it.

If you want to suggest a change, or have a bug to report, or if you want to submit patches, use the  Croc GitHub Page. You can use the Issues system to report bugs and feature requests, or if you're more ambitious, you can fork the repository, implement a change yourself, and then initiate a pull request.

Lastly there's the IRC channel, #croc on  freenode.net. There's not a lot of people there yet. Please go!

Let's get started

The documentation is split into five parts, which are explained here, and which you can also quickly jump to at any time by using the Quick Nav links right below the banner. You can also use the Search box below the banner to search the wiki.

  • Installation and Downloads - Getting the Croc binaries and library source, as well as some additional downloads like syntax highlighters for code editors.
  • Language Tutorials - An informal hands-on introduction to the language. You can follow along by getting the Croc interpreter from the Installation page.
  • Croc Standard Libraries - Documentation for the libraries that come with Croc.
  • Croc Language Specification - The long, formal specification for Croc. ALL the features are documented here, and if you want a deeper understanding of the language, you should read this.
  • Croc Native API - Documentation and tutorials for using the native API for the reference implementation of Croc in D. If you want to embed Croc in a D app, this is what you need to read.