source: project/wiki/wish-list @ 33285

Last change on this file since 33285 was 33285, checked in by Mario Domenech Goulart, 5 years ago

wish-list (wiki): add link to work-in-progress (really?) bindings for the zenity command line tool

File size: 5.5 KB
Line 
1== "And I want a pony!"
2
3''This page is intended to hold a "wish-list" of things that would be nice to have. There are no limits - go wild.''
4
5---
6
7=== Core system
8
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 [[https://github.com/OSSystems/meta-chicken|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]])
22* Live coding with hot-reload of compiled modules.
23* Alternative build system for eggs and programs based on CMake.
24* Monolith static builds with all eggs and dependencies.
25* Core using libuv instead of custom C implementation, thread scheduler based on libuv.
26* Built-in macros for current file name and line number (like C preprocessor directives __FILE__ __LINE__).
27* Simplified exception handling (try/catch/throw, dunno do something with all those condition properties)
28* color / syntax highlighting in the stack traces
29
30
31=== Eggs
32
33* An IMAP Egg + ssl support
34* A sawfish-like window manager ([[https://github.com/mario-goulart/nsfwm|work in slow progress here]])
35* Awful-based implementation of the IPython Notebook
36* CHICKEN-based Unix shell
37* Complete MIME support (parsing+generating)
38* Data lens (bidirectional transformations or parsing+unparsing from a single grammar specification)
39* Bindings for photography and image manipulation related libraries: gphoto, libraw, lensfun, imagemagick, etc.
40* Multithreaded FUSE support (http://wiki.call-cc.org/eggref/4/fuse is now available)
41* More spatial tree data structures: BK tree, MVP tree, etc.
42* A framework for convenient manipulation of pools of Unix worker processes
43* CHICKEN-based issue tracking and version control :-)
44* RDF library (possibly just a simple port of the Gauche RDF library)
45* A really clever high-level declarative DSL for creating WebKit GUIs
46* A pandoc-style library
47* SSAX-style queries for JSON data structures
48* Better XML processing tools
49* Something like [[http://pythonhosted.org/Whoosh/intro.html|Whoosh]] (a search engine library based on the [[http://en.wikipedia.org/wiki/Okapi_BM25|Okapi BM25F]] ranking function)
50* A Scheme implementation of [[http://en.wikipedia.org/wiki/Expect|expect]] (like e.g., [[https://github.com/pexpect/pexpect|pexpect]] for Python)
51* Bindings for [[http://linuxcontainers.org/|LXC]] (there are bindings for Python and Lua in the git repository)
52* [[http://en.wikipedia.org/wiki/SPDY|SPDY]] support (web stuff)
53* Bindings for [[http://www.vips.ecs.soton.ac.uk/|VIPS]] (a free image processing system)
54* A symbolic algebra system
55* Recursion schemes, groups and categories, [[http://hackage.haskell.org/package/category-extras|just like Haskell]]
56* An [[http://asciidoctor.org/docs/what-is-asciidoc|AsciiDoc]] parser and SXML emitter.
57* Port [[https://github.com/scheme/edwin48|edwin]] to CHICKEN
58* A Scheme->awk compiler (like [[/egg/spock|spock]], but targeting awk).
59* Bindings for [[https://github.com/ocornut/imgui|imgui]]
60* CHICKEN wrapper around [[http://code.google.com/p/miniz/|miniz]]
61* A client for [[https://telegram.org/|Telegram]]
62* Something like [[http://www.linuxjournal.com/content/make-your-scripts-user-friendly-zenity|zenity]] (library and maybe command line tool) (hackish bindings for the command line tool here: [[https://github.com/mario-goulart/henity|https://github.com/mario-goulart/henity]])
63* Bindings for [[https://github.com/jordansissel/xdotool|libxdo]]
64* Integrate CHICKEN with [[https://github.com/probonopd/AppImageKit|AppImageKit]]
65
66=== Documentation
67
68* 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.
69* 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.