chicken-hackers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Chicken-hackers] Made a start with CHICKEN 5 proposal


From: Oleg Kolosov
Subject: Re: [Chicken-hackers] Made a start with CHICKEN 5 proposal
Date: Sat, 23 Aug 2014 23:35:26 +0400
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.0

On 08/23/14 19:35, Peter Bex wrote:
> Hello hackers!
> 
> I've made a start on the wiki, at what we'd like CHICKEN 5 to be about.
> Please, do not make this into another "pony page", only add things that
> we really need to look at which require a rework in core which may be
> backwards-incompatible.
> 
> http://wiki.call-cc.org/chicken-5-roadmap
> 
> I already fear I may have gone a bit overboard with adding too many
> things I'd really like to see myself :)
> 
> I'd especially appreciate feedback on the core library names and
> the things to kill from core.  I will be expanding this page over the
> next few days/weeks.
> 
> Cheers,
> Peter
> 

Thanks for the write up, it looks really promising.

While at it I would like to propose changing build system to CMake with
the following considerations:

  * Build files (CMakeLists) are cleaner and smaller (IMHO) than the
current Makefiles.
  * Much faster build times, especially for larger projects (parallel
compilation and separate build directories are fully supported).
  * Supports testing natively - with dependency based rebuilding and
rerunning by regex match etc. - this can come really handy during
development. Tests are also portable - no more ugly bash hacks.
  * Native Windows support - works fine with a few small core patches
(alas due to egg incompatibilities I've not tried on any serious projects).
  * Native MacOSX - I've not tested it much myself, but got reports that
it's working.
  * Can figure out many things about host system automatically - this
can be leveraged to generate larger chicken.h and simplify files module
for example. Also we can use it's knowledge to generate library files
and native executables to simplify command line build tools (csc et al.).
  * Cross-compiling works.
  * Can generate project files for popular IDEs.

With some help from the compiler (namely extracting module dependencies)
it can be even better. Current implementation is quite hackish in this
regard.

By dropping some backward compatibility requirements it can be
implemented cleaner, so CHICKEN 5 branch looks like a good place for that.

------------

It would be great to clean up chicken.h and runtime.c somewhat,
currently they look quite messy to me. Let's move some ifdefed code
around or break them to few separate files. Maybe drop support for some
rare platforms - I know, CHICKEN compatibility list looks impressive,
but I doubt that all of it actually works due to bitrot. The support can
be added back later to the smaller and modular core. Also let's move all
inline C from .scm to separate files .c - this will make indexing and
searching easier and the mess more apparent.

Is swig stuff in the core really used?

I also would like to see extended C interface for introspecting
scheme-objects's for example - no concrete proposals - still investigating.

------------

I'm working on the process-stuff - basically wrapping posix_spawn, it
also looks quite compatible with the Windows version. But I need to make
this really fail-safe which turned out to be harder than I imagined.

-- 
Regards, Oleg



reply via email to

[Prev in Thread] Current Thread [Next in Thread]