Hi Darshan
Thanks for your interest in our project. As you might see from our
mailing list, there is quite a bit of interest. It's going to be very
important that you demonstrate your skills in advance of the application
deadline, and also provide a good plan of your work.
For this project, the aim is to eliminate the C++ layer in the ASCEND
code. This layer is big and heavy, even though it doesn't do any of the
computationally-intensive work. I think that a far cleaner approach is
possible through Python bindings implemented in pure C that make use of
the SWIG features that essentially make suitably-designed C code behave
like object oriented code in Python-land. An example that shows how this
is done is present in the FPROPS code (models/johnpye/fprops), which has
its own separate bindings to Python. I would like to reproduce that
approach but with libascend. The place to start with this problem is the
'instance' structures. You can see the ascxx/instance.cpp file and the
associated wrapper code in ascxx/ascpy.i. Try experimenting with ways to
wrap these little classes, and you will really get a good feeling for
how to progress.
I want to emphasise, given your limited coding background, that it is
really *essential* to adhere to good software engineering principles
here. The code must be neat, well written, well documented, and easily
maintained. Hacking something together is not what we are looking for.
Complex software requires an organised approach. Attempting this
re-write is also about raising the standards of software engineering in
ASCEND, compared to the first Python bindings which grew somewhat
organically. We are now at a point where we can do the job more cleanly
and more efficiently. Also, we don't want to get half a re-write: the
whole API needs to be replaced in order for this code to be useful.
Hopefully this helps you to get started! Let me know if you need more
suggestions from me.
Cheers
JP
On 11/03/15 05:45, Darshan agarwal wrote:
>
> Hi,
>
> I am Darshan, a computer science undergraduate from India. I am
> pursuing my Bachelors of Technology in Computer Science and
> Engineering from IIIT Hyderabad.
>
> I want to express my interest in working on 'Python bindings rewrite'
> for GSoC.
>
> I have the required skills and prior experience with C++(~1k LOC),
> Python(~1K LOC), and swig.
>
> If possible, I would like to discuss more specifically about the
> project, so that I can build a clear timeline for the project for the
> purpose of my proposal.
>
> Thanks,
>
> Darshan Agarwal
>
>
------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Ascend-sim-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ascend-sim-users