I'm about to rewrite major parts of one of my projects (currently
written in C); because of that rewrite I'm thinking about using
perl6 for the most parts, and write only the most performance
sensitive parts in C.
I was just on #perl6, and got the tip to write a feature request
So, what I would need:
1) Some way to get a single executable (ELF) from mixed-source.
That's because of the startup speed - which is important, as
this will be a commandline program, and be called often.
It's ok (and will be needed) to load shared libraries; having bytecode
in it is no problem, too.
I think that most startup overhead is from reading/parsing the perl
sources, and that's what I need to avoid.
(I got the tip to look for pbc_to_exe.)
2) C structure usage.
As this will handle a big amount of data (lower end 1M structures in
a tree, with (on 32bit) each ~240 bytes in C) I'd like to use some
kind of C structure for storage - as opposed to a hash.
Well, in Perl5 there are some classes for structure storage and so on;
I'd need some easy way to generate a class in Perl6 for these.
It will get some other functions, too, but accessing the members
should be fast, and so shouldn't be done with pack()/unpack().
3) Calling C functions from the Perl6 sources.
That would be no problem, I think ... and if my own (optimized)
C functions are put in a shared object the linking is easily done, too.
Is there some automated way to get the perl6/parrot translation code
from C headers?
If it takes a year for Perl6/Parrot/Rakudo to get there,
I wouldn't mind ... because I'll have to re-write my code anyway.
Although, in order to actually *write* that code, it would be nice
to be able to test it, too ;-)
Would you think that I should start now in Perl6, or that this will be
a dead end?
Versioning your /etc, /home or even your whole installation?
Try fsvs (fsvs.tigris.org)!