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 Python, though many other languages served as inspirations. It tries to fill a niche somewhere between Lua and Python by being more fully-featured and "batteries included" than Lua but not as heavy-weight as Python. It also tries to alleviate some of the pain of developing in a dynamic language by being more strict about things like global accesses, out-of-bounds errors, and typing than many other dynamic languages are. 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. The GitHub wiki is not all that customizable and is missing some features I really like (like tables of contents on pages). It's also visually cluttered with non-wiki things. So I'll just keep the spec and stuff here.

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.

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.

There is an IRC channel, #croc on  freenode.net, but I haven't had the time to hang out on IRC in a while :\

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.