<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt; color:#000000; background-color:#FFFFFF; font-family:Calibri,Arial,Helvetica,sans-serif">
<div><span style="font-size: 12pt;">Hi, everyone</span><br>
</div>
<div><span style="font-size: 12pt;"><br>
</span></div>
<div>This proposal covers the OpenProjects idea ‘Port the Bigloo Scheme compiler, from Manuel Serrano at INRIA Sophia-Antipolis, to output LLVM bytecode.’ There is not a popular functional language frontend yet on LLVM. To my knowledge, this is mostly because
LLVM is lack of runtime support for the functional language needs, and C foreign function interface calls are relatively hard since LLVM leaves memory management to be handled by program. Bigloo is a high performance(according to [1] ) scheme implementation
and it designed to be mostly R5RS compatible. It uses Boehm GC(also used in llvm-gcc) to manage C FFI calls memory. Therefore bigloo is a proper choice for the scheme frontend of LLVM. On the other hand, compile scheme to LLVM IR will make use of LLVM’s optimization
techniques. The LLVM backend will boost the performance of bigloo. In this summer, I would like to build a robust, high-performance scheme frontend for LLVM.</div>
<div><br>
</div>
<div>About Me:</div>
<div>I am Zhengyang, a M.S. candidate at Beijing University of Posts and Telecomunications working in the area of static program analysis. My CV can be found in [2] . Most of my works are based on Clang. I have contributed to Static Analysis Suite(SAS) from
CERN PH-SFT as Google Summer of Code 2015 project. About the preparation for this proposal, I have studied the source codes, serveral research papers and user manual of bigloo. I am interested in working with LLVM community, and hoping to contribute to LLVM. </div>
<div><br>
</div>
<div>Proposed Work:</div>
<div>(Before GSoC’16 start) Add support for calling LLVM IR API on bigloo.</div>
<div>(Week 1-3) Create a new LLVM backend for bigloo scheme to make bigloo produce LLVM IR.</div>
<div>(Week 4-6) Integrate Boehm garbage collector to the runtime.</div>
<div>(Week 7) Create project build/test infrastructure. </div>
<div>(Week 8-9) Run benchmarks and analysis the performance on the new scheme compiler.</div>
<div><br>
</div>
<div>I have some questions for this idea:</div>
<div>1) Is this a good idea for a GSoC project ?</div>
<div>2) If any one is available to mentor me for this ?</div>
<div><br>
</div>
<div>Please let me know your comments on this proposal as a GSoC project. Any comments on how to refine this proposal are welcome. I will be very grateful if someone puts me in the right direction for the project.</div>
<div><br>
</div>
<div><br>
</div>
<div>Thanks,</div>
<div>Zhengyang Liu,</div>
<div>Beijing University of Posts and Telecommunications,</div>
<div>zhengyang-liu@hotmail.com.</div>
<div><br>
</div>
<div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 16px;">
[1] http://www.cs.utah.edu/~mflatt/benchmarks-20100126/log1/Gambit_20benchmarks.html</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 16px;">
[2] http://zhengyangl.com/cv.pdf</div>
</div>
</div>
</body>
</html>