<div dir="ltr">Hi Ronie,<br><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Feb 13, 2014 at 11:47 AM, Ronie Salgado <span dir="ltr"><<a href="mailto:roniesalg@gmail.com" target="_blank">roniesalg@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div><div><div><div><div><div>I am proposing the following as a student:<br>
<br>Project idea<br><br></div>Name: Unified Foreign Function Interface<br></div>Skill level: Advanced<br></div>Possible Mentors: Igor Stasenko / Esteban Lorenzano<br>
</div>Name of the Student: Ronie Salgado<br><br></div>Description:<br><br></div><div>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.<br>
<br>Full Description Document: <a href="http://users.dcc.uchile.cl/~rsalgado/uffi-fourth-draft.pdf" target="_blank">http://users.dcc.uchile.cl/~rsalgado/uffi-fourth-draft.pdf</a></div></div></blockquote><div><br></div><div>
This is interesting but I take issue with a couple of things. First of all</div><div><br></div><div> "The old Squeak FFI has problems with portability, callbacks and speed."</div><div><br></div><div> 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.</div>
<div><br></div><div>But my major objection is to this:</div><div><br></div><div>"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."</div>
<div><br></div><div>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.</div>
<div><br></div><div>Note the synergy with Clément and my work on speculative inlining which will extend the Cog JIT.</div><div><br></div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div>2014-02-13 12:21 GMT-03:00 <a href="mailto:tesonep@gmail.com" target="_blank">tesonep@gmail.com</a> <span dir="ltr"><<a href="mailto:tesonep@gmail.com" target="_blank">tesonep@gmail.com</a>></span>:<br>
</div></div><div class="gmail_extra"><div class="gmail_quote"><div><div class="h5"><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div dir="ltr"><div>Project idea</div><div><br></div><div>Description: Enhance refactorings with type information</div><div>Skill level: Advance</div><div>Possible Mentors: Guillermo Polito / Esteban Lorenzano / Santiago Bragagnolo</div>
<div>Name of the Student: Pablo Tesone</div><div>Keywords: tools, refactoring, code completion, type inference.</div><div><br></div><div>Description:</div><div><br></div><div>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. </div>
<div>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.</div><div>The idea of this project is to add type inference mechanisms to try to provide more information to the refactoring and code completion tools. </div>
<div>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.</div><div><br></div></div><div class="gmail_extra"><div><div><br><br>
<div class="gmail_quote">
On Thu, Feb 13, 2014 at 12:06 PM, Usman Bhatti <span dir="ltr"><<a href="mailto:usman.bhatti@gmail.com" target="_blank">usman.bhatti@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div dir="ltr"><div>[Anne Etien could not post this msg on the mentors list I m forwarding it on her behalf].</div><div><br></div><span style="font-family:arial,sans-serif;font-size:13px">Title: FAST JavaScript model</span><br style="font-family:arial,sans-serif;font-size:13px">
<br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">Level: advanced</span><br style="font-family:arial,sans-serif;font-size:13px"><br style="font-family:arial,sans-serif;font-size:13px">
<span style="font-family:arial,sans-serif;font-size:13px">Possible mentor: Anne Etien</span><br style="font-family:arial,sans-serif;font-size:13px"><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">Possible second mentor: Nicolas Anquetil or Yuriy Tymchuk</span><br style="font-family:arial,sans-serif;font-size:13px">
<br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">Description:</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">For in depth source code analysis a support of abstract syntax trees is</span><br style="font-family:arial,sans-serif;font-size:13px">
<span style="font-family:arial,sans-serif;font-size:13px">required. FAST is an abstract syntax tree extension for FAMIX meta-model</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">that is used by Moose technology. The goal of this project is to create</span><br style="font-family:arial,sans-serif;font-size:13px">
<span style="font-family:arial,sans-serif;font-size:13px">a JavaScript version of FAST.</span><br style="font-family:arial,sans-serif;font-size:13px"><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">Technical Details:</span><br style="font-family:arial,sans-serif;font-size:13px">
<span style="font-family:arial,sans-serif;font-size:13px">As programming languages are different, their AST representations are</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">different too. FAST model aims for creation of as generic as possible</span><br style="font-family:arial,sans-serif;font-size:13px">
<span style="font-family:arial,sans-serif;font-size:13px">core that can be extended for different languages. Also the structure of</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">a model allows creation of generic algorithms like symbol resolution,</span><br style="font-family:arial,sans-serif;font-size:13px">
<span style="font-family:arial,sans-serif;font-size:13px">metrics calculation and rule checking that will work for any language.</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">Prototypes of FAST for Smalltalk and Java are already implemented.</span><br style="font-family:arial,sans-serif;font-size:13px">
<span style="font-family:arial,sans-serif;font-size:13px">During the project a student will implement the JavaScript model. More</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">detailed information about FAST is provided in the Moose day</span><br style="font-family:arial,sans-serif;font-size:13px">
<span style="font-family:arial,sans-serif;font-size:13px">presentation: </span><a href="http://youtu.be/dRr3WHOD3x4" style="font-family:arial,sans-serif;font-size:13px" target="_blank">http://youtu.be/dRr3WHOD3x4</a><br style="font-family:arial,sans-serif;font-size:13px">
<br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">Benefits to the Student:</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">The student will gain a deep understanding of a JavaScript syntax and</span><br style="font-family:arial,sans-serif;font-size:13px">
<span style="font-family:arial,sans-serif;font-size:13px">abstract syntax tree model. He will also learn about PetitParser</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">framework, and gain knowledge about software modeling and analysis.</span><br style="font-family:arial,sans-serif;font-size:13px">
<br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">Benefits to the Community:</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">Community will get a FAST model for JavaScript that can be used for</span><br style="font-family:arial,sans-serif;font-size:13px">
<span style="font-family:arial,sans-serif;font-size:13px">software assessment with Moose. Also this model can be used later in PhD</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">projects such as automation of source code translation. With this third</span><br style="font-family:arial,sans-serif;font-size:13px">
<span style="font-family:arial,sans-serif;font-size:13px">model, the community will have raw material to real think and improve</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">generic algorithms based on AST.</span></div>
<div class="gmail_extra"><br><br><div class="gmail_quote"><div>On Tue, Feb 11, 2014 at 10:42 AM, Damien Cassou <span dir="ltr"><<a href="mailto:damien.cassou@gmail.com" target="_blank">damien.cassou@gmail.com</a>></span> wrote:<br>
</div><div><div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Hi fellow Pharo hackers,<br>
<br>
ESUG, the European Smalltalk User Group, is applying for this<br>
year's Google Summer of Code. As you probably know, the Summer<br>
of Code provides the opportunity to fund students to work during<br>
the summer on Pharo. Please reply to this<br>
email (be sure to use "Reply to all") if you have ideas you<br>
would like to propose.<br>
<br>
Please include a summary of the project and links to web pages<br>
that can help prospective students to write their application.<br>
Please also include the following information:<br>
<br>
- if applicable, other dialects that you would be willing to<br>
mentor this project for<br>
<br>
- the skill level<br>
<br>
- name of the mentor(s), email addresses, and possibly any IRC<br>
network/channel/nickname where they can be found.<br>
<br>
Thanks for contributing to ESUG's Summer of Code application!<br>
<span><font color="#888888"><br>
--<br>
Damien Cassou<br>
<a href="http://damiencassou.seasidehosting.st" target="_blank">http://damiencassou.seasidehosting.st</a><br>
<br>
"Success is the ability to go from one failure to another without<br>
losing enthusiasm."<br>
Winston Churchill<br>
<br>
--<br>
You received this message because you are subscribed to the Google Groups "Smalltalk GSoC mentors" group.<br>
To unsubscribe from this group and stop receiving emails from it, send an email to <a href="mailto:smalltalk-gsoc-mentors%2Bunsubscribe@googlegroups.com" target="_blank">smalltalk-gsoc-mentors+unsubscribe@googlegroups.com</a>.<br>
For more options, visit <a href="https://groups.google.com/groups/opt_out" target="_blank">https://groups.google.com/groups/opt_out</a>.<br>
</font></span></blockquote></div></div></div><br></div><div><div>
<p></p>
-- <br>
You received this message because you are subscribed to the Google Groups "Smalltalk GSoC mentors" group.<br>
To unsubscribe from this group and stop receiving emails from it, send an email to <a href="mailto:smalltalk-gsoc-mentors%2Bunsubscribe@googlegroups.com" target="_blank">smalltalk-gsoc-mentors+unsubscribe@googlegroups.com</a>.<br>
For more options, visit <a href="https://groups.google.com/groups/opt_out" target="_blank">https://groups.google.com/groups/opt_out</a>.<br>
</div></div></blockquote></div><br><br clear="all"><div><br></div></div></div><span><font color="#888888">-- <br>Pablo Tesone.<br><a href="mailto:tesonep@gmail.com" target="_blank">tesonep@gmail.com</a>
</font></span></div>
</blockquote></div></div></div><br></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>best,<div>Eliot</div>
</div></div>