Menu

wallaroo / Blog: Recent posts

Syntax design: decisions, as always

As previously announced, the new file syntax for Wallaroo configuration is available in a branch of the git repository.
Being a library, I like to have automatic tests to verify there are no regressions and -- above all -- to be sure everything is fine on every supported platform. Surely, a lexer and a parser are components easily testable in an automatic way (nothing compared with the reactive systems full of asyncronous I/O I'm used to!).
When I was adding one of the test for the grammar (yes: I like to use right names for my classes, so I have a Grammar and a TokenSource classes, instead of the most inflated Parser and Lexer :-) I was so lucky to find immediately a bug in the grammar design. By chance, in the test case I used an input sequence having "load" as an attribute name. The test keeps on failing and I must admit at the beginning I couldn't understand why. My input sequence seems to be right, conforming to the grammar.
After closer examination, I realized that I cannot use "load" as an attribute name (nor as a class or dependency name), because it's a keyword of my language, used to load dynamic libraries.
Well, that's a major problem.
Luckily, currently we have just two keywords: "load" and "new". Of course, "new" cannot be a problem, because is also a C++ keyword, but "load" requires to be fixed.... read more

Posted by Daniele Pallastrelli 2017-05-22 Labels: design

Real-world projects using Wallaroo

Wallaroo library has been used in real-world projects since its early releases, some years ago. Of course, I was the first to use wallaroo to develop industrial projects (i.e., telecommunication software currently running in a large number of devices). But then, I had a lot of feedback from other developers, and I know for sure that wallaroo is running in many embedded devices and custom servers.

Lately, a nice guy from Samsung has been so kind to inform me that a family of their products is using Wallaroo. The Samsung refrigerator Samsung Family Hub has its "Fridge Manager Application" powered by an internal library that uses Wallaroo to manage the dependencies among internal components.... read more

Posted by Daniele Pallastrelli 2017-05-11 Labels: news

New Wallaroo wiring syntax almost ready

The wal syntax for wallaroo wiring files (see the previous post) is almost ready.
In the git repository, you can already find a working implementation on a branch, with the relative test. I also updated the sample shapes to use the new wiring file syntax.

The substitution of a json file with a wal file already brought a couple of obvious advantages.... read more

Posted by Daniele Pallastrelli 2017-05-10 Labels: new_feature_implementation news

Github mirror available

A mirror of wallaroo repository is now available on github at:
http://github.com/daniele77/wallaroo

Posted by Daniele Pallastrelli 2016-11-16 Labels: news

Wallaroo blog

Since the project is still active and the development keeps going on, I think I'll take advantage of the blog to start writing in an informal way some useful things about wallaroo (but not only).

So. What can you find here in the next days? In random order:

  • news and announces about the project
  • ideas for the next steps
  • technical decisions and wallaroo internals
  • critical discussions about code and design
  • dependency injection in general
  • tips on wallaroo usage, with some sample code
  • more code... read more
Posted by Daniele Pallastrelli 2016-11-16 Labels: news

A new syntax for the wiring files

Xml and json wiring files were one of the first features added to wallaroo because, after all, the project was conceived to demostrate that in C++ one can manage object creation and wiring from a configuration file.
Soon enough, however, I realized the xml and json formats are too verbose, and not much readable. I think that happened the very first time I tried to use a xml file to setup a real wallaroo application :-)... read more

Posted by Daniele Pallastrelli 2016-11-02 Labels: new_feature implementation