chicken-hackers
[Top][All Lists]
Advanced

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

Re: [Chicken-hackers] [PATCH] Add initial version of (chicken base)


From: Evan Hanson
Subject: Re: [Chicken-hackers] [PATCH] Add initial version of (chicken base)
Date: Mon, 18 Sep 2017 22:00:00 +1200

Hi folks,

On 2017-09-17 12:13, Peter Bex wrote:
On Sun, Sep 17, 2017 at 11:44:09AM +0200, address@hidden wrote:
> > It should be possible to link with units, but I guess that can be done via 
"declare".
> > If that is still possible then "require-library" may indeed go.
>
> Yeah, I think that's still possible.

What it does is allowing runtime-linking to a compiled unit that is compiled
into a library (not a loadable .so). The expansion (using '##core#require')
is a bit too involved for user code. We should investigate and compare
the remaining loading/linking forms and make every possible case is handled:
loadable .so (module), static library, dynamically loadable library (also a .so,
confusingly), source code, etc.

Let's discuss this in person at the meetup.  In any case, this doesn't
need to hold up further development on the chicken-5 branch.

I'm reasonably confident all the different ways to load code are
supported nowadays, and also that 'require-library' can go. In fact,
most things ought to "just work" with only 'import', 'require' (for
runtime loading) or 'declare' (for compile-time, but this is also done
automatically for the user in common cases).

A couple of the "axes" and the associated "values" they can have when
loading code, off the top of my head, are:

- Locations:
  - Working directory
  - Repository path
  - Include path
- Type of source:
  - No module
  - One module
  - Multiple modules
- Type of compiled code:
  - No unit
  - One unit
  - Multiple unit
- Type of loadable "thing":
  - Source
  - Compiled shared object
  - Compiled static object
  - Compiled archive (effectively a static object containing multiple
    units, so probably doesn't deserve to be a separate item...)

Anyway, if there's a specific situation you're wondering about just ask
and I can summarise the state of things -- it's most likely I've simply
forgotten it on this list and less likely that it isn't supported
*somehow*.

Cheers,

Evan



reply via email to

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