Wrapping a C library in lisp (part 2)

Once the library has been defined and loaded into the Lisp image, work can begin on defining C routines in Lisp. Read more…

Jul 3rd, 2007 | Filed under Programming
Tags: , ,

Wrapping a C library in lisp (part 1)

One of the more significant difficulties I face when developing Lisp applications is the apparent lack of generally compatable database libraries for the various lisp dialects. CLSQL is a nice solution, but it does not get along well on OSX, my development OS, or with CLISP, which is the primary lisp dialect I have available on my host. Read more…

Jul 2nd, 2007 | Filed under Programming
Tags: , ,

Nested contexts in newLISP

newLisp does not have nested contexts. This is because contexts are not OO-style objects, although they can be used to prototype other contexts. In fact, contexts are name spaces that can be manually created as needed. However, since they create efficient hashes that can be used for many of the same purposes as objects (such as data modeling), it would be handy if there were a way to create contexts inside of other contexts. Read more…

Jun 21st, 2007 | Filed under Programming
Tags:

Validating parameter format

newLisp is a loosely-typed language. However, if you are developing a library or module that other projects may mix into their own code, it is useful to give helpful errors when a function receives incorrect input. Especially if your documentation is lax (which we know it never is), throwing usable errors when a function is misused will make the lives of developers using your code that much easier. Read more…

Jun 19th, 2007 | Filed under Programming
Tags:

Simple error handling in newLISP

When I first began to program newLisp, I was concerned that it lacked the structured error handling syntax of the imperative languages I was used to. As my software begins to mature and I add more sophisticated error handling, I find that newLisp’s simple functions result in cleaner, more expressive code. Read more…

Jun 12th, 2007 | Filed under Programming
Tags: