Articles tagged #ooc

ooc generics and flawed designs

ooc is perhaps one of my proudest achievements, but at the same time it's one of the most annoying thorns in my side.

The main reason is that its design is flawed, and some things can't be easily fixed at this point. Now don't get me wrong: every design is flawed to some extent. Design, either when done by a lone coder, or by a committee, never comes out "perfect" — ignoring the fact there is no universal/objective measure of "perfectness".

Fast font packing for fun and profit

Being creative is hard work, let's go optimizing instead! My graphics engine dye was pretty naive about displaying text, and it was wasteful. Let's see how I made it all better with this one weird tip.

Disclaimer: Even after a few years I'm still very much an OpenGL newbie. Please don't hit me with crowbars.

Once upon a time, OpenGL was easy to use - and also falling out of relevancy as far as high-performance 3D graphics were concerned. But it wasn't all bad! You could basically pick up any library out there and integrate it with your existing GL project. Not that it's a good idea, but it usually just worked.

The quest for ooc.vim

I've spent the past few weeks after rock 0.9.8's release working on some of the neglected aspects of ooc, namely tooling support and performance.

My kingdom for a vim plug-in!

Well, technically, ooc.vim is a few years old, and it was even updated a few times to match new ooc features. But unfortunately, so far, it was limited to syntax highlighting.

rock 0.9.8 is out

A little less than two months after the previous release, I'm happy to announce that the ooc compiler rock 0.9.8, codename columbia is now out.

The impatients can readily skip to the release notes, but for those who prefer a narrative, let me tell you why I'm excited about this release.

String interpolation

We've thrown around this idea a lot since the early versions of rock since we have a few rubyists in our ranks, but only recently took matters into his own hands and just implemented the fuck out of it.

And then there were fewer bugs

Intro

This deals with rock internals, so fasten your seatbelts and expect many weird things along the way. I'm not necessarily proud of the state of the implementation, I'm just rolling with it and trying to improve it gradually rather than throw everything away.

An error out of nowhere

While working on my current game, John Q. Adamant, I was looking to extract a class into another module - this is routine refactoring and shouldn't be too hard.

rock 0.9.7 + new website

This is going to be a short one.

Basically, since February, both shamanas, fredreichbier and I have putting way too much work into the latest iteration of rock, an ooc compiler written in ooc.

I have the pleasure to announce that version 0.9.7, codename pacino is now out, as you can plainly see on the new website: https://ooc-lang.github.io

You can read the to learn what has changed, but basically expect a lot of fixes, some new APIs, and awesome backtraces.

oocdoc, Part 4 — sourcepath

In , We've built a nagaqueen-based tool that can parse one ooc file, detect class declarations and print its doc strings. Today, we're making a bit of infrastructure for our app to support more sizable projects.

Source path and lib folders

Parsing a single file was a nice milestone, but it's not nearly enough. We want to generate documentation for a whole project at a time: and since we'll want to cross-link the various bits of documentation we generate, we'll also need to parse the various dependencies (such as the ooc sdk, and any used library) so that we can resolve argument types and link them properly.

sam 0.2.0 released

Today I decided to release sam 0.2.0. There are only a handful of new features in there but it's still releaseworthy! See the for more information on the tool itself.

Source path and lib folders

Let's take a look at what sam tells us when launching it.

sam version 0.2.0

Usage: sam [update|get|status|promote]

Commands
  * update: update sam's grimoir of formulas
  * get [USEFILE]: clone and/or pull all dependencies
  * status [USEFILE]: display short git status of all dependencies
  * promote [USEFILE]: replace read-only github url with a read-write one for given use file
  * clone [--no-deps] [REPONAME]: clone a repository by its formula name

Note: All USEFILE arguments are optional. By default, the
first .use file of the current directory is used

Copyleft 2013 Amos Wenger aka @nddrylliog

Go back to the homepage.