Monday, January 15, 2007
Per App Build Config
I have added the ability to configure the build directives for an application on a per app basis. This should make it much easier to do custom builds. Of course, for those of apps that don't need per app info it can be left off. This is a big deal and one of the bigger requests I have gotten.
Config Refactoring Complete!
I just finished refactoring the config support in sinan using the new ktuo package. It works really well and makes the config much more readable.
Original config with erlang terms
new, more readable, config
Well, I think its more readable and more maintainable with the nested namespaces.
Original config with erlang terms
[{repositories, ["http://repo.metadrift.net/repo"]},
{build_dir, "_build"},
{ignore_dirs, ["_", "."]},
{ignore_apps, []},
{default_task, build},
{tasks, [{discover,
[{handler, sin_discover}]},
{verify, [{depends, [discover]},
{handler, sin_verify}]},
{build, [{depends, [verify]},
{handler, sin_erl_builder}]},
{doc, [{depends, [build]},
{handler, sin_edoc}]},
{tar, [{depends, [build]},
{handler, sin_tar}]}]}].
new, more readable, config
repositories : ["http://repo.metadrift.net/repo"],
build_dir : _build,
ignore_dirs : ["_",
"."],
ignore_apps : [],
default_task : build,
tasks : {
discover : {
handler : sin_discover
},
verify : {
depends : [discover],
handler : sin_verify
},
build : {
depends : [verify],
handler : sin_erl_builder
},
doc : {
depends : [build],
handler : sin_edoc
},
tar : {
depends : [build],
handler : sin_tar
}
}
Well, I think its more readable and more maintainable with the nested namespaces.
Thursday, January 11, 2007
Ktuo Error Reporting
I have vastly increased the usefulness of error reporting in ktuo. Before it just failed with badmatch if an error occurred. Now it gives a useful error message along with the line and column number of the problem. Now that I am using the library as a config parsing lib in a couple of places it made sense that it report error usefully.
Wednesday, January 10, 2007
JSON Parser
In the course of developing tercio I built a fast little json parser/encoder. Well I decided to use it in sinan as well so I moved it to its own project. The project, ktuo, is hosted in the usual place. It outputs strict json, but it parses a small superset of json. It allows single words as atoms in the json string as an alternative to a single word enclosed in quotes. This allows the lib to be used as a config parser. It makes the config much more readable. In any case, the library is usable and available now.
Sinan Build System
I have been working on a build system for erlang for some time. I have a working version that I have used. However, it has a couple of shortcomings that rendered it difficult to use. I done some significant work towards version two. I decided to make the source available via google code hosting anyway. There is a large amount of proprietary software and systems going on in the community right now and I wanted to be in the open from the start.
the source is here.
Its named after Ḳoca Mi‘mār Sinān Āġā one of the great architects and builders of the Ottoman Empire. I thought it appropriate to name a build system after him.
the source is here.
Its named after Ḳoca Mi‘mār Sinān Āġā one of the great architects and builders of the Ottoman Empire. I thought it appropriate to name a build system after him.
Friday, January 5, 2007
JsPkg Discarded, Package Support in Place
I decided to not use jspkg. The code there needs a massive refactoring and it approaches the problem from a viewpoint that is very different from my own. In stead, I wrote a simple packager that doesn't do loading. So for now I have good namespacing support and stubs for package loading. Once I get a better understanding of the semantics of the applications built on this platform I will start filling out the loading stubs.
Monday, January 1, 2007
Into the Client
Well I have moved into client side code. To save a little time I am building the client side code on top of jspkg. It needs quite a bit of refactoring as well as some conversion to work on top of prototype. However, it should fill my needs nicely. Once the package stuff is in place I can build up a nice messaging layer.
Subscribe to:
Posts (Atom)
