-
Notifications
You must be signed in to change notification settings - Fork 0
ivankelly/sqeme-proto
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Nick's Sqeme Prototype * Getting started To build and run the webkit example, run 'make' at the top-level and run: LD_LIBRARY_PATH=. ./browser * What works - Basic hand-written bindings into C++, enough to have a working webkit example. - Basic support for connecting Qt slots to Scheme lambdas. Only no-argument slots are supported at the moment, though support for argument slots should be ready before too long. - tiny-clos wrappers over the bindings into C++. All Qt classes are represented as tiny-clos classes, and all Qt methods are tiny-clos generic methods. * What needs to be done The roadmap is roughly as follows: 1. Write a source code generator using ivank's Scheme smoke bindings. 2. Implement memory management. Currently we never free Qt instances, and tiny-clos instances can't be freed (this is how tiny-clos was designed). Additionally, a system is needed to track ownership of Qt objects. 3. Port Qt's scribble example to Scheme. This should put the system under something of a heavy load, and will show me if I got memory management right. 4. At this point an official project repository will be made and all further work will be done there. 5. Research how to integrate Gambit's thread system, Qt's thread system, and continuations. 6. Port Qt's mandelbrot example to Scheme. This should also put the system under a heavy load, and additionally, will test Sqeme's thread support. ?. Full support for signals and slots. Pieces of the system will probably be added as I go. For more information, see: http://sqeme.sourceforge.net/cgi-bin/moin.cgi/Todo * Tree layout src/sqeme - Bindings into C++ and wrappers over them for CLOS. src/examples - Example Qt programs written in Scheme. src/tiny-clos - Modified version of tiny-clos. * Build system tiny-clos and sqeme are built as shared libraries at the top-level. The examples are built as binaries linked against them at the top-level. Set LD_LIBRARY_PATH to . to run the binaries from the top-level. The build system is implemented as recursive Makefiles. The build is incremental. Important make variables, like $(GSC) and $(CXXFLAGS), can be found in Makefile.defs at the top-level of the tree. It is included by all Makefiles which perform compilation. Note that we do not use gsc to build C files generated by gsc, as the gambit manual suggests. gsc calls gcc with many flags intended to optimize the compiled code, which makes debugging with gdb difficult. Also, as Gambit's C files are almost entirely macros, we use gcc's -gdwarf-2 flag so that macro information is available to the debugger. * tiny-clos modifications A sort function has been added as Gambit seems to lack one. It came from The Scheme Programming Language, so I'm not sure I'm licensed to use it. It will eventually be replaced with a FOSS quick-sort function. %instance? seemed to always return #t for some reason. I believe this is a problem with Gambit, so it was re-written and now works as expected. Support for user-defined primitive types. make-primitive-class has been modified to accept a class name and a predicate which will return true when an object should be considered an instance of that class by e.g. class-of. * Thanks Thanks to df for many great ideas and suggestions. * Contact Web site: http://sqeme.sf.net Mailing list: https://sourceforge.net/mail/?group_id=270291 Email me at nicktastic at gmail dot com. I can usually be found on Freenode IRC on #minno.
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published