From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10985 invoked by alias); 13 Mar 2017 22:11:38 -0000 Mailing-List: contact kawa-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: kawa-owner@sourceware.org Received: (qmail 10976 invoked by uid 89); 13 Mar 2017 22:11:38 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 spammy=Game, skill, sk:orange-, sk:orange X-HELO: aibo.runbox.com Received: from aibo.runbox.com (HELO aibo.runbox.com) (91.220.196.211) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 13 Mar 2017 22:11:35 +0000 Received: from [10.9.9.212] (helo=mailfront12.runbox.com) by mailtransmit02.runbox with esmtp (Exim 4.86_2) (envelope-from ) id 1cnYBh-0008KY-2Y; Mon, 13 Mar 2017 23:11:33 +0100 Received: from 70-36-239-163.dsl.dynamic.fusionbroadband.com ([70.36.239.163] helo=localhost.localdomain) by mailfront12.runbox.com with esmtpsa (uid:757155 ) (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.82) id 1cnYBT-00025M-FX; Mon, 13 Mar 2017 23:11:19 +0100 Subject: Re: Self introduction, GSoC 2017 To: Vasantha Ganesh , kawa@sourceware.org References: From: Per Bothner Message-ID: Date: Mon, 13 Mar 2017 22:11:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes X-SW-Source: 2017-q1/txt/msg00071.txt.bz2 On 03/13/2017 12:58 PM, Vasantha Ganesh wrote: > Hello all, > I am Vasantha Ganesh Kanniappan. I am a free software enthusiast. I > am doing my Bachelors in Computer Science Engineering from Amrita > School of Engineering, Coimbatore, Tamil Nadu, India. Welcome! > I am interested in working on `Easier Access to Native Libraries using JNA/JNR'. Cool. Note I haven't used JNA or JNI myself, so we'd have to learn it together. > Appropriate skill set: > I am a languages guy. I have tried to write a parser for subset python > with bison and flex (https://github.com/vasanthaganeshk/pymirchi). I > have written a toy JVM. I used Javassist for parsing the bytecode. The > JVM supported 26 op-codes and I used reflection library for calling > builtin functions. The JVM was capable of doing some basic arithmetic > and some printing. I did it as a learning exercise. The code is here > (https://github.com/vasanthaganeshk/orange-virtual-machine). I took > SICP course from my school and learnt scheme on the way. I used Guile > scheme for solving the exercises. I learnt Java while writing the JVM. > I'm a functional programmer, I started out with Scheme and then jumped > to Haskell and I've used it for some time. I've taken a course in > Operating systems and I familiarized myself with some syscalls while > working on a Game Engine for an AI-Challenge > (https://github.com/arrow-/phoenix) for my University. That seems good. > > What I've done: > -> I forked and cloned Kawa. > -> I compiled it from source and ran the tests (master branch) > -> I tried to setup CI for Kawa and I'm getting some errors with make Oops. I checked in a fix for this. > (I learnt to use Docker for one of my projects and that was useful for > setting up CI). > -> I wrote hello world program in Kawa > -> I cloned the jnr-posix repo and generated docs(I've not read them yet). > -> I read the TODO page. > > Things that I have to learn: > -> To use ant. > -> To use Autotools (I've written Makefiles for my previous projects though) > -> Writing docs with texi (I've been using MarkDown for everything) You don't necessarily need to learn all of these to work on Kawa :-) > -> To read docs for JNA and JNR. > -> To read Kawa docs. > > Please help me with the following: > > I encountered some errors while trying to run `make' > (https://gitlab.com/vasanthaganeshk/Kawa/builds/12132613) Fixed. > I need some docs telling what each directory contains and some > interesting files that I have to read. Probably I've missed it here > (https://www.gnu.org/software/kawa/ToC.html). Kawa is big and sprawling, based on 20+ years of development, and not everything is in a logical place. > Before writing the proposal I would like to make contributions to get > familiarized with the repo. That makes sense. > > From the TODO page `Remove pretty-print implementation in slib.' > seemed like the easiest. I do not know if this issue still exists but > if it does then it should exist in `Kawa/gnu/kawa/slib/testing.scm'. I'm not sure how useful this is i terms of leaning the code-base, but it's a start. There is a non-trivial amount of work in terms of learning the slib implementation, the native PrettyWriter.java implementation, and how to re-implement the slib function using PrettyWriter.java. > I think I can also work on this `Compiler should use class-file > reading instead of reflection', but I have to read the docs for that. > If that is solved to, please suggest me some trivial tasks to get > started with. It's probably to big for a familiarization exercise, plus I'm not sure how useful it is. One mini-project to consider is "Optional strict typing along with an explicit dynamic type" if viewed as more exploration than a project. Basically you'd add a --strict-typing flag, and have that change the behavior of the checkType method InlineCalls. Basically: if ((isStrictTyping() ? cmp <= 0 : cmp < 0) ... and then see what happens. Perhaps write a blog article about what you find. You may need to to change the type default type (for parameters and other declarations that don't have TYPE_SPECIFIED) from Type.objectType to LangObjType.dynamicType. I don't know how workable or useful a --strict-typing flag would be, but would be an interesting experiment, a good learning experience, and without requiring too much time or knowledge. I hope. -- --Per Bothner per@bothner.com http://per.bothner.com/