librelist archives

« back to archive

This year's plans

This year's plans

From:
Cyril Adrian
Date:
2010-08-05 @ 09:10
Hi all,

Since my holidays are almost over, I'd like to start discussing this year's
plans for Liberty.

Here are the two most important goals I want to reach this year:

   - Improve the *interpreter* (and *REPL*): AFAIR the last remaining big
   problem is agents. I'm not sure how well they behave. (a month-long pause
   does not help my memory either ;-) )
   - Start the proper *compiler*: this is quite important to at last free
   ourselves from SmartEiffel (that's commonly known as "bootstrap").


Paolo's tool "*wrappers-generator*" remains as important as ever, along with
some foundation libraries (i.e. used by Liberty itself):

   - *llvm* (for the compiler)
   - *readline* (for the interpreter's debugger / REPL)
   - *ffi* (for the interpreter's plug-in call mechanism)
   - *zmq* (for future work on parallel programming i.e. SCOOP)


And one more general goal: *promotion* (see
http://lwn.net/SubscriberLink/397441/3b67c7af8578bdf3/):

   - getting more people involved
   - getting known


Some thoughts?
-- 
Cyril *ADRIAN*

*http://www.cadrian.net/cyril*

*http://www.viadeo.com/invitation/cyril.adrian*<http://www.viadeo.com/invitation/cyril.adrian>

Re: [libertyeiffel] This year's plans

From:
Paolo Redaelli
Date:
2010-08-06 @ 16:08
Il giorno gio, 05/08/2010 alle 11.10 +0200, Cyril ADRIAN ha scritto:

> Hi all,
> 
> Since my holidays are almost over, I'd like to start discussing this
> year's plans for Liberty.
> 
> Here are the two most important goals I want to reach this year: 
>       * Improve the interpreter (and REPL): AFAIR the last remaining
>         big problem is agents. I'm not sure how well they behave. (a
>         month-long pause does not help my memory either ;-) ) 
>       * Start the proper compiler: this is quite important to at last
>         free ourselves from SmartEiffel (that's commonly known as
>         "bootstrap"). 

The main issue that I've been thinking about is memory layout of
objects, especially of multiple-inheritance classes. 
I guess that the relative big binaries SmartEiffel produce for
wrappers-generator comes from its flat-object layout which requires a
substantial lengthening of the features calls of that class. I'm now
investigating how other languages with MI dealt with it; such a issue
also interact deeply with dynamic libraries.


> Paolo's tool "wrappers-generator" remains as important as ever, along
> with some foundation libraries (i.e. used by Liberty itself): 
>       * llvm (for the compiler) 
>       * readline (for the interpreter's debugger / REPL) 
>       * ffi (for the interpreter's plug-in call mechanism) 
>       * zmq (for future work on parallel programming i.e. SCOOP) 


I'll try to keep them operational. I checked now and I see that in my
tree wrappers-generator is not clean; as I will leave tomorrow evening
for more than 2 weeks I will try hard to make sure that wrappers and
wrappers-generator in main tree are in good shape.


> And one more general goal: promotion (see
> http://lwn.net/SubscriberLink/397441/3b67c7af8578bdf3/): 
>       * getting more people involved 
>       * getting known 
> 
> Some thoughts?
> 

Packaging

I would suggest to target a wider audience than those who already know
Eiffel... it's a too small potential user-base. 
My personal idea is that a really paramount promotion target is
packaging: Liberty shall be packaged from day one both as a debian
package and as an RPM and we shall put them into the repositories of the
major distributions: Ubuntu and Debian, Fedora, Mandriva and openSUSE. I
guess that those using other distributions are smart enought to compile
it from the sources. Windows user... well Windows users would require an
IDE to consider Liberty as a language; see below about it.
Packages will make easier for newbies to grasp it.

Liberty has history and solid roots

Having read the article you point out I think it is useful to stress out
that Eiffel is actually older than C++ but it never went mainstream
because it lacked a company or a free-as-in-freedom community behind
them to promote it. It would be good to point out the dozens of concepts
native to Eiffel that newer languages are painfully trying to mimic or
backport: design-by-contract, true-genericity are the first two I recall
now. Another one is the query-command separation... I find myself
writing many, many getters in C++ those days.
An IDE written in Liberty is a nice application for junior developers.
Let me be a little superstitious for 30 seconds: look at those who tried
- elj and the Eclipse plugin; both didn't met their targets; those are
not good omen for such an approach. Let's keep it for a foreseeable
future when we have attracted more people.

Books and documentation

Some documentation is required for Liberty to become widespread: 

     I. "Programming in Liberty" targeted to programmers; I would
        liberally take inspiration from the approach Meyer used in his
        "Object Oriented Software Construction", where he said "how
        shall the perfect language be made", "what about this construct?
        what's its pro and cons", using a meta-syntax which at the end
        will be unveiled as the Liberty language.
    II. "Learning programming (in Liberty)" for people new to
        programming; teaching them good, pure OO techniques;
   III. for children a "Programming fun in Liberty" could also be
        foreseeable. 




PS: I won't be completely offline during those weeks but my mobile plan
binds me at 250Mb/week; perhaps I'll found an unbound wireless spot....
otherwise I'll read mails.
PPS: my educated guess is that git protocol is not a network hog.. do
you know it's overhead? 

Re: [libertyeiffel] This year's plans

From:
Cyril Adrian
Date:
2010-08-06 @ 18:16
On Fri, Aug 6, 2010 at 18:08, Paolo Redaelli <paolo.redaelli@gmail.com>wrote:

>  Il giorno gio, 05/08/2010 alle 11.10 +0200, Cyril ADRIAN ha scritto:
>
>  Hi all,
>
> Since my holidays are almost over, I'd like to start discussing this year's
> plans for Liberty.
>
> Here are the two most important goals I want to reach this year:
>
>    - Improve the *interpreter* (and *REPL*): AFAIR the last remaining big
>    problem is agents. I'm not sure how well they behave. (a month-long pause
>    does not help my memory either ;-) )
>    - Start the proper *compiler*: this is quite important to at last free
>    ourselves from SmartEiffel (that's commonly known as "bootstrap").
>
>  The main issue that I've been thinking about is memory layout of objects,
> especially of multiple-inheritance classes.
> I guess that the relative big binaries SmartEiffel produce for
> wrappers-generator comes from its flat-object layout which requires a
> substantial lengthening of the features calls of that class. I'm now
> investigating how other languages with MI dealt with it; such a issue also
> interact deeply with dynamic libraries.
>

Be careful, you mix up the size of the code and the size of the data.

Large code may be a problem, but less so than large data.

SmartEiffel is quite smart in keeping the size of the structs (=> data)
quite small (dead attributes elimination and so on). Liberty will de the
same.

As for the code, I agree that type specialization may induce a lot of almost
duplicated features. There are ways to reduce that quasi-duplication.

 Paolo's tool "*wrappers-generator*" remains as important as ever, along
> with some foundation libraries (i.e. used by Liberty itself):
>
>    - *llvm* (for the compiler)
>    - *readline* (for the interpreter's debugger / REPL)
>    - *ffi* (for the interpreter's plug-in call mechanism)
>    - *zmq* (for future work on parallel programming i.e. SCOOP)
>
>
> I'll try to keep them operational. I checked now and I see that in my tree
> wrappers-generator is not clean; as I will leave tomorrow evening for more
> than 2 weeks I will try hard to make sure that wrappers and
> wrappers-generator in main tree are in good shape.
>

Thanks :-)


>  Packaging I would suggest to target a wider audience than those who
> already know Eiffel... it's a too small potential user-base.
> My personal idea is that a really paramount promotion target is packaging:
> Liberty shall be packaged from day one both as a debian package and as an
> RPM and we shall put them into the repositories of the major distributions:
> Ubuntu and Debian, Fedora, Mandriva and openSUSE. I guess that those using
> other distributions are smart enought to compile it from the sources.
> Windows user... well Windows users would require an IDE to consider Liberty
> as a language; see below about it.
> Packages will make easier for newbies to grasp it.
>

Yes.

> Liberty has history and solid roots Having read the article you point out
> I think it is useful to stress out that Eiffel is actually older than C++
> but it never went mainstream because it lacked a company or a
> free-as-in-freedom community behind them to promote it. It would be good to
> point out the dozens of concepts native to Eiffel that newer languages are
> painfully trying to mimic or backport: design-by-contract, true-genericity
> are the first two I recall now. Another one is the query-command
> separation... I find myself writing many, many getters in C++ those days.
> An IDE written in Liberty is a nice application for junior developers. Let
> me be a little superstitious for 30 seconds: look at those who tried - elj
> and the Eclipse plugin; both didn't met their targets; those are not good
> omen for such an approach. Let's keep it for a foreseeable future when we
> have attracted more people.
>

Yes.

Books and documentation Some documentation is required for Liberty to become
> widespread:
>
>    - "Programming in Liberty" targeted to programmers; I would liberally
>    take inspiration from the approach Meyer used in his "Object Oriented
>    Software Construction", where he said "how shall the perfect language be
>    made", "what about this construct? what's its pro and cons", using a
>    meta-syntax which at the end will be unveiled as the Liberty language.
>    - "Learning programming (in Liberty)" for people new to programming;
>    teaching them good, pure OO techniques;
>    - for children a "Programming fun in Liberty" could also be
>    foreseeable.
>
> OK with me, but we will have to find people who are good writers. I know I
am not.

 PS: I won't be completely offline during those weeks but my mobile plan
> binds me at 250Mb/week; perhaps I'll found an unbound wireless spot....
> otherwise I'll read mails.
>

No problem. Anyway, take some time away from the keyboard, it's good for the
neurons too ;-)


> PPS: my educated guess is that git protocol is not a network hog.. do you
> know it's overhead?
>

AFAIK, it's quite minimal.

Cheers,
-- 
Cyril *ADRIAN*

*http://www.cadrian.net/cyril*

*http://www.viadeo.com/invitation/cyril.adrian*<http://www.viadeo.com/invitation/cyril.adrian>