[Vm-dev] Re: [Pharo-dev] [Pharo-users] [gsoc-mentors] GSoC: call
for ideas
Eliot Miranda
eliot.miranda at gmail.com
Thu Feb 13 20:22:35 UTC 2014
Hi Ronie,
On Thu, Feb 13, 2014 at 11:47 AM, Ronie Salgado <roniesalg at gmail.com> wrote:
> I am proposing the following as a student:
>
> Project idea
>
> Name: Unified Foreign Function Interface
> Skill level: Advanced
> Possible Mentors: Igor Stasenko / Esteban Lorenzano
> Name of the Student: Ronie Salgado
>
> Description:
>
> Because NativeBoost has problems with portability and cannot be used
> anywhere(iOS), one proposal is making a modular unified foreign function
> interface. This UFFI should support multiples backends, a portable function
> calls specification, portable easy to use callbacks support, and portable
> foreign resources management.
>
> Full Description Document:
> http://users.dcc.uchile.cl/~rsalgado/uffi-fourth-draft.pdf
>
This is interesting but I take issue with a couple of things. First of all
"The old Squeak FFI has problems with portability, callbacks and speed."
I disagree that there are problems with callbacks. In fact, IIRC the only
callback facility we have is that which I implemented which is used both by
Alien and FFI and works well enough that the Newspeak system used it to
implement a native GUI on windows where callbacks are used to receive
Windows events. That counts as working in my book. Also, the architecture
I implemented is portable to other ABIs than x86.
But my major objection is to this:
"One interesting idea is to make a backend that uses LLVM compiler
infrastruc- ture, because it is designed for compiling optimized C function
and it already has multiples JIT backends. This small project is not to
make a full Pharo VM JIT based in LLVM, because LLVM is not designed for
that and it would require a lot of patching of LLVM."
IMO that's a very poor choice. LLVM is large, having a footprint of about
a couple of megabytes. The Cog JIT is in contrast about 330k at its
largest (Newspeak, support for two instruction sets, plus primitives, plus
GC interface, etc, etc). If we as a community put effort into extending
this we'll have a smaller footprint, a better JIT, and less dependencies.
There's insignificant opportunity for using LLVM's optimizer when
engineering call-outs and call-backs; they're too simple. So there's
nothing to be gained other than bloat and dependency. And not putting
effort into our own infrastructure is IMO a very bad idea.
Note the synergy with Clément and my work on speculative inlining which
will extend the Cog JIT.
2014-02-13 12:21 GMT-03:00 tesonep at gmail.com <tesonep at gmail.com>:
>
> Project idea
>>
>> Description: Enhance refactorings with type information
>> Skill level: Advance
>> Possible Mentors: Guillermo Polito / Esteban Lorenzano / Santiago
>> Bragagnolo
>> Name of the Student: Pablo Tesone
>> Keywords: tools, refactoring, code completion, type inference.
>>
>> Description:
>>
>> During the development of a program in any programming language, the IDE
>> has a very important role. It will never replace the knowledge of the
>> programmer but it can make his life easier.
>> As Smalltalk doesn't have explicit type information, the IDE can not
>> perform the same mechanisms that are present in IDE like Eclipse or
>> Intellij IDEA. These mechanisms can be very useful.
>> The idea of this project is to add type inference mechanisms to try to
>> provide more information to the refactoring and code completion tools.
>> It is important to say that the idea is not to check types or correct the
>> program, but to allow the programmer to have more information.
>>
>>
>>
>> On Thu, Feb 13, 2014 at 12:06 PM, Usman Bhatti <usman.bhatti at gmail.com>wrote:
>>
>>> [Anne Etien could not post this msg on the mentors list I m forwarding
>>> it on her behalf].
>>>
>>> Title: FAST JavaScript model
>>>
>>> Level: advanced
>>>
>>> Possible mentor: Anne Etien
>>>
>>> Possible second mentor: Nicolas Anquetil or Yuriy Tymchuk
>>>
>>> Description:
>>> For in depth source code analysis a support of abstract syntax trees is
>>> required. FAST is an abstract syntax tree extension for FAMIX meta-model
>>> that is used by Moose technology. The goal of this project is to create
>>> a JavaScript version of FAST.
>>>
>>> Technical Details:
>>> As programming languages are different, their AST representations are
>>> different too. FAST model aims for creation of as generic as possible
>>> core that can be extended for different languages. Also the structure of
>>> a model allows creation of generic algorithms like symbol resolution,
>>> metrics calculation and rule checking that will work for any language.
>>> Prototypes of FAST for Smalltalk and Java are already implemented.
>>> During the project a student will implement the JavaScript model. More
>>> detailed information about FAST is provided in the Moose day
>>> presentation: http://youtu.be/dRr3WHOD3x4
>>>
>>> Benefits to the Student:
>>> The student will gain a deep understanding of a JavaScript syntax and
>>> abstract syntax tree model. He will also learn about PetitParser
>>> framework, and gain knowledge about software modeling and analysis.
>>>
>>> Benefits to the Community:
>>> Community will get a FAST model for JavaScript that can be used for
>>> software assessment with Moose. Also this model can be used later in PhD
>>> projects such as automation of source code translation. With this third
>>> model, the community will have raw material to real think and improve
>>> generic algorithms based on AST.
>>>
>>>
>>> On Tue, Feb 11, 2014 at 10:42 AM, Damien Cassou <damien.cassou at gmail.com
>>> > wrote:
>>>
>>>> Hi fellow Pharo hackers,
>>>>
>>>> ESUG, the European Smalltalk User Group, is applying for this
>>>> year's Google Summer of Code. As you probably know, the Summer
>>>> of Code provides the opportunity to fund students to work during
>>>> the summer on Pharo. Please reply to this
>>>> email (be sure to use "Reply to all") if you have ideas you
>>>> would like to propose.
>>>>
>>>> Please include a summary of the project and links to web pages
>>>> that can help prospective students to write their application.
>>>> Please also include the following information:
>>>>
>>>> - if applicable, other dialects that you would be willing to
>>>> mentor this project for
>>>>
>>>> - the skill level
>>>>
>>>> - name of the mentor(s), email addresses, and possibly any IRC
>>>> network/channel/nickname where they can be found.
>>>>
>>>> Thanks for contributing to ESUG's Summer of Code application!
>>>>
>>>> --
>>>> Damien Cassou
>>>> http://damiencassou.seasidehosting.st
>>>>
>>>> "Success is the ability to go from one failure to another without
>>>> losing enthusiasm."
>>>> Winston Churchill
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "Smalltalk GSoC mentors" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to smalltalk-gsoc-mentors+unsubscribe at googlegroups.com.
>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Smalltalk GSoC mentors" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to smalltalk-gsoc-mentors+unsubscribe at googlegroups.com.
>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>
>>
>>
>>
>> --
>> Pablo Tesone.
>> tesonep at gmail.com
>>
>
>
--
best,
Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20140213/7f4e2543/attachment-0001.htm
More information about the Vm-dev
mailing list