<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">&lt;<a href="mailto:roniesalg@gmail.com" target="_blank">roniesalg@gmail.com</a>&gt;</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. &nbsp;First of all</div><div><br></div><div>&nbsp; &nbsp; &quot;The old Squeak FFI has problems with portability, callbacks and speed.&quot;</div><div><br></div><div>&nbsp;I disagree that there are problems with callbacks. &nbsp;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. &nbsp;That counts as working in my book. &nbsp;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>&quot;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.&quot;</div>
<div><br></div><div>IMO that&#39;s a very poor choice. &nbsp;LLVM is large, having a footprint of about a couple of megabytes. &nbsp;The Cog JIT is in contrast about 330k at its largest (Newspeak, support for two instruction sets, plus primitives, plus GC interface, etc, etc). &nbsp;If we as a community put effort into extending this we&#39;ll have a smaller footprint, a better JIT, and less dependencies. &nbsp;There&#39;s insignificant opportunity for using LLVM&#39;s optimizer when engineering call-outs and call-backs; they&#39;re too simple. &nbsp;So there&#39;s nothing to be gained other than bloat and dependency. &nbsp;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">&lt;<a href="mailto:tesonep@gmail.com" target="_blank">tesonep@gmail.com</a>&gt;</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.&nbsp;</div>


<div>As Smalltalk doesn&rsquo;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.&nbsp;</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">&lt;<a href="mailto:usman.bhatti@gmail.com" target="_blank">usman.bhatti@gmail.com</a>&gt;</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:&nbsp;</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">&lt;<a href="mailto:damien.cassou@gmail.com" target="_blank">damien.cassou@gmail.com</a>&gt;</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>
&nbsp; &nbsp; &nbsp; &nbsp; ESUG, the European Smalltalk User Group, is applying for this<br>
&nbsp; &nbsp; &nbsp; &nbsp; year&#39;s Google Summer of Code. &nbsp;As you probably know, the Summer<br>
&nbsp; &nbsp; &nbsp; &nbsp; of Code provides the opportunity to fund students to work during<br>
&nbsp; &nbsp; &nbsp; &nbsp; the summer on Pharo. &nbsp;Please reply to this<br>
&nbsp; &nbsp; &nbsp; &nbsp; email (be sure to use &quot;Reply to all&quot;) if you have ideas you<br>
&nbsp; &nbsp; &nbsp; &nbsp; would like to propose.<br>
<br>
&nbsp; &nbsp; &nbsp; &nbsp; Please include a summary of the project and links to web pages<br>
&nbsp; &nbsp; &nbsp; &nbsp; that can help prospective students to write their application.<br>
&nbsp; &nbsp; &nbsp; &nbsp; Please also include the following information:<br>
<br>
&nbsp; &nbsp; &nbsp; &nbsp; - if applicable, other dialects that you would be willing to<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; mentor this project for<br>
<br>
&nbsp; &nbsp; &nbsp; &nbsp; - the skill level<br>
<br>
&nbsp; &nbsp; &nbsp; &nbsp; - name of the mentor(s), email addresses, and possibly any IRC<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; network/channel/nickname where they can be found.<br>
<br>
&nbsp; &nbsp; &nbsp; &nbsp; Thanks for contributing to ESUG&#39;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>
&quot;Success is the ability to go from one failure to another without<br>
losing enthusiasm.&quot;<br>
Winston Churchill<br>
<br>
--<br>
You received this message because you are subscribed to the Google Groups &quot;Smalltalk GSoC mentors&quot; 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 &quot;Smalltalk GSoC mentors&quot; 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>