source: project/wiki/wish-list @ 32832

Last change on this file since 32832 was 32832, checked in by svnwiki, 5 years ago

Anonymous wiki edit for IP []:

File size: 5.1 KB
1== "And I want a pony!"
3''This page is intended to hold a "wish-list" of things that would be nice to have. There are no limits - go wild.''
7=== Core system
9* Make it smaller
10* Make the source a human-readable paragon of software development brilliance
11* Make it easy to target foreign architectures (cross-compiling) - ''cross-compilation is already supported pretty well, see [[man/4/Cross compilation]] for more information (felix)''. ''See also [[|the meta-chicken layer for Yocto/OpenEmbedded]] for a practical application of that feature (mario)''
12** Make it easy to create monoliths with no run-time demands to run on targets without chicken
13* Provide hooks in the scheduler to enable extensions to implement native threading
14** Provide hooks in the garbage collector to implement native threading
15* Allow for less copying when dealing with blobs, particularly when transferring to/from the FFI. I'd like to be able to take a void*+size_t pair from C and wrap it as a chicken blob that I can then view as a string or as an SRFI-4 vector with a make-.../shared call - and have a finalizer so that an arbitrary C callback (such a free) is invoked when the blob is GCed. This will make blob-shuffling apps such as Ugarit use less CPU and RAM.
16* Add a compatibility module for the core of scsh. - ''There's support for scsh's SRE syntax in core and support for its process forms and most process-related procedures in the [[/egg/scsh-process|scsh-process egg]] (sjamaan)''
17* Weak References
18* An better escape for C compiler options on the csc command line: Most configure scripts like ''sdl-config'' will output more flags than are currently recognised by csc as compiler flags. A more general approach could use '''--''' as a separator for C compiler/linker flags:
19 csc -O5 -s file.scm  -- `sdl-config --libs`
20See the [[egg:sdl|sdl egg]] for an ugly example of a kludge to dodge this issue.
21* Threading: Make srfi-18 / scheduler use pthreads (instead of its current green threads) (already answered in the [[man/4/faq#does-chicken-support-native-threads|FAQ]])
23* Debugger!
24* Live coding with hot-reload of compiled modules.
25* Alternative build system for eggs and programs based on CMake.
26* Monolith static builds with all eggs and dependencies.
27* Core using libuv instead of custom C implementation, thread scheduler based on libuv.
28* Built-in macros for current file name and line number (like C preprocessor directives __FILE__ __LINE__).
29* Simplified exception handling (try/catch/throw, dunno do something with all those condition properties)
33=== Eggs
35* An IMAP Egg + ssl support
36* A sawfish-like window manager ([[|work in slow progress here]])
37* Awful-based implementation of the IPython Notebook
38* CHICKEN-based Unix shell
39* Complete MIME support (parsing+generating)
40* Data lens (bidirectional transformations or parsing+unparsing from a single grammar specification)
41* Bindings for photography and image manipulation related libraries: gphoto, libraw, lensfun, imagemagick, etc.
42* Multithreaded FUSE support ( is now available)
43* More spatial tree data structures: BK tree, MVP tree, etc.
44* A framework for convenient manipulation of pools of Unix worker processes
45* CHICKEN-based issue tracking and version control :-)
46* RDF library (possibly just a simple port of the Gauche RDF library)
47* A really clever high-level declarative DSL for creating WebKit GUIs
48* A pandoc-style library
49* SSAX-style queries for JSON data structures
50* Better XML processing tools
51* Something like [[|Whoosh]] (a search engine library based on the [[|Okapi BM25F]] ranking function)
52* A Scheme implementation of [[|expect]] (like e.g., [[|pexpect]] for Python)
53* Bindings for [[|LXC]] (there are bindings for Python and Lua in the git repository)
54* [[|SPDY]] support (web stuff)
55* Bindings for [[|VIPS]] (a free image processing system)
56* Source-level debugger
57* A symbolic algebra system
58* Recursion schemes, groups and categories, [[|just like Haskell]]
59* An [[|AsciiDoc]] parser and SXML emitter.
60* Port [[|edwin]] to CHICKEN
61* A Scheme->awk compiler (like [[/egg/spock|spock]], but targeting awk).
62* Bindings for [[|imgui]]
63* CHICKEN wrapper around [[|miniz]]
64* A client for [[|Telegram]]
67=== Documentation
69* Develop a production pipeline that turns the wiki manual pages into a manual that is easy to search online, downloadable as a single file so that it can be consulted offline, and, when printed,  produces a beautifully formatted, indexed user manual.
70* Turn the existing pages on internals into a detailed developer guide that is also easy-to-search, available in a single file, and printable as a beautiful document.
Note: See TracBrowser for help on using the repository browser.