octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Possible GSoC Project: AOT "bytecode" compiler for octave


From: Lasse Schuirmann
Subject: Possible GSoC Project: AOT "bytecode" compiler for octave
Date: Wed, 12 Feb 2014 15:01:34 +0100

Hello,

after placing some measurements to octaves source code measuring the
parser and evaluator there was a clear tendency that the parser takes
multiple times of the time the evaluator needs. (You can try it out
easily with this patch https://savannah.gnu.org/patch/?8267 setting
the VERBOSE macro in ./liboctave/util/debug_message_settings.h to
PARSE_MEASURE | EVAL_MEASURE.)

This problem may be adressed in various ways. I think a first step
would be to binary serialize the parsed object and deserialize it to a
preparsed octave file. Instead of parsing the file each time one could
just deserialize it from file right into the binary representation the
evaluator needs (which would be the tree_statement_list). It is a kind
of AOT "bytecode" Compiler.

I think this would be useful for the most used files, especially the
ones lying in ./scripts .

I have done a few prove-of-concept studies for myself - I also have
successfully serialized a tree_statement_list that contained a comment
with some rather generic methods I wrote. I am relatively sure that
this would work well with the JIT compiler since this is on the
evaluation side only. This would not involve any external library like
boost but I am thinking about turning my growing "collection" of
generic serialization functions to an own library.

I would like to participate on the google summer of code with this project
if you think that would be useful. I am a student of Computer Science
and Engineering at the TUHH in germany.
(https://www.tuhh.de/alt/tuhh/education/degree-courses/bachelors-programs/informatik-ingenieurwesen.html)

Please let me know what you think about this and if you have any questions.

Greetings,

Lasse Schuirmann


reply via email to

[Prev in Thread] Current Thread [Next in Thread]