Short term goals
Fix the issues from the tracker
Improve current CLX backend (visually and internally)
Identify utilities used in all
util.lispfiles and if applicable replace them with the counterparts from the
Provide more learning material for the new users
Revise the manual draft and the documentation
Identify which features from the "traditional" GUI libraries McCLIM users miss and implement them as an extension
Check feasibility of implementing asynchronous usage from the outside of event and command loops (for instance from the
Long term goals (may change)
Create a new reference backend on top of the frame buffer (providing glue code for particular platforms will be easy)
The new reference backend should follow the material design guidelines
Write a reference guide for creating new backends (necessary to achieve native look and feel or to utilize some platform-specific gains)
Create a portable Common Lisp IDE
Finish the manual
How to contribute
McCLIM project is hosted on GitHub repository and cooperation is very similar to other open source projects hosted there. The canonical address is:
- Submitting an issue (or feature request) on the issue tracker
- Forking the repository (aka creating a remote branch)
- Solving a problem or implementing new feature
- Issuing pull request to the main repository
Some issues on the tracker may have assigned bounties to them. This means, that a person who successfully solves the problem (and this solution is accepted by merging it to the master branch in the main repository and closing the corresponding issue) may claim the bounty on the bountysource platform.
While we have no written code standards, contributors have to follow the conventions adopted by the Common Lisp community and the style used in the repository. Some common sense is necessary.
Frequently asked questions
How can I support the McCLIM development?
Use McCLIM to write applications, report issues and suggest improvements. Helping other users to overcome problems with developing CLIM applications and writing about McCLIM on the web will help growing the community and increase the awareness about the project.
Another possibility is to fix issues and improve the implementation by writing the code. We encourage you to join #clim IRC channel to hang out with other developers and users, but it's not obligatory.
Is McCLIM the only graphical toolkit for Common Lisp?
No, there are various other options. Here are some highlights:
CLIM – another alternative CLIM II implementation for LispWorks. It is proprietary and "provided primarily to support legacy applications"
Common Graphics – proprietary GUI toolkit for Allegro CL
CAPI – proprietary GUI toolkit for LispWorks
Ceramic – web application wrapper to run it on a desktop
Can McCLIM and CLIM2 implementations join efforts?
We have checked that possibility when CLIM2 was opensourced. It happens that McCLIM and CLIM2 differ too much to reuse the code. On the other hand, any application written for CLIM II (specification) should work on both and this is a big win.
Does McCLIM work on Windows? What about Linux, Unix and OSX?
Right now the only backend supported by McCLIM is CLX, which ties it to the Xserver on the host system. Any platform capable of running Xserver may run McCLIM applications. That said, writing a more portable backend is one of our goals.
I want to write a backend – where should I start?
Unfortunately we don't have an official backend-writing guide yet. Our main focus at the moment is targeted at improving the current reference backend CLX, although some information is provided in the issue #64 on GitHub.