# Playing with pgloader's new Common Lisp implementation

DevFeed: [Playing with pgloader's new Common Lisp implementation](<https://devfeed.tech/articles/playing-with-pgloader-34495.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2013/02/playing-with-pgloader/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2013-02-12T10:17:00Z

Content type: article

Language: en

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [Common Lisp](<https://devfeed.tech/topics/common-lisp.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Development](<https://devfeed.tech/topics/development.md>), [Concurrent Programming](<https://devfeed.tech/topics/concurrent-programming.md>), [Database](<https://devfeed.tech/topics/database.md>)

Tags: [database](<https://devfeed.tech/tags/database.md>), [development](<https://devfeed.tech/tags/development.md>), [lisp](<https://devfeed.tech/tags/lisp.md>), [programming](<https://devfeed.tech/tags/programming.md>), [programming-language](<https://devfeed.tech/tags/programming-language.md>), [queue](<https://devfeed.tech/tags/queue.md>)

## AI overview

The article shares preliminary results from developing a new version of pgloader in Common Lisp. It discusses interactive development, object and condition systems, and a multithreaded design using workers and queues to process data from files or MySQL.

## Source excerpt

While making progress with both Event Triggers and Extension Templates, I needed to make a little break. My current keeping sane mental exercise seems to mainly involve using Common Lisp, a programming language that ships with about all the building blocks you need. *Yes, that old language brings so much on the table* When using Common Lisp, you have an awesome interactive development environment where you can redefine function and objects while testing them. That means you don't have to quit the interpreter, reload the new version of the code and put the interactive test case together all over again after a change. Just evaluate the change in the interactive environement: functions are compiled incrementally over their previous definition, objects whose classes have changed are migrated live.