Code Monkey home page Code Monkey logo

blizkost's Introduction

=head1 Blizkost

Blizkost exposes Perl 5 in Parrot and make it accessible through the standard
HLLCompiler interface. It does this by embedding Perl 5, and then building out
from there.

=head2 How?

First build and install (requires an installed parrot,
including C<make install-dev> or C<apt-get install libperl-dev>):

  perl Configure.pl --parrot-config=... # path to installed parrot_config
  make
  make install

If you do this, you will be able to use it from Rakudo (just make sure you
use the same parrot_config as Rakudo did).

If you want to get at it from other Parrot programs, it's as easy as:

  load_language 'perl5'
  $P0 = compreg 'perl5'
  $P1 = $P0.'compile'('print "chces ist na pivo?\n"')
  $P1()

You can also do:

  make blizkost.exe # drop the .exe if not using Windows

And you get an executable with a REPL that lets you run Perl 5 code.

=head2 Status

Blizkost has only just got started! Right now, it supports enough for you to
eval a string of Perl 5 code - and that is about it. Other languages that
implement eval-style functionality by using load_language and compreg should
find it will somewhat work for them. In Rakudo, we already have it working
enough to do:

  C:\Consulting\rakudo>perl6
  > eval('print "hello from perl 5\n";', :lang<perl5>)
  hello from perl 5

=head2 The Plan From Here

The next step is to try and do enough so that values returned from eval can
be accessed in the calling language.

Beyond that, I think it'll be a case of trying to implement the bits of
the HLLCompiler interface so we might be able to do things in Rakudo like:

  use Thingy :from<perl5>;

However, getting that working could well be a huge amount of effort. So...

=head2 Help!

While I'm pretty happy with Parrot guts, Perl 5 guts are still something of an
unknown to me. Thus all help on this project from those in the know, or who
want to explore, will be very, very welcome. If you want a commit bit, just
message me or catch me on #parrot (on irc.parrot.org) or #perl6 (on freenode)
and note your interest in contributing.

I'm also developing on Windows primarily, so if you find the build busted on
your platform, please help fix it.

=head2 Oh, and why the name?

Blizkost is the Slovak word that, according to my Slovak to English dictionary,
means things like "closeness", "contiguity" and "familiar". Since we're trying
to build support between contiguous versions of the Perl programming language,
version 5 of which is familiar, and our aim is to increase their closeness (that
is, bring Perl 5 closer to the Perl 6 world so you can use Perl 5 code from Perl
6), it seemed rather fitting. :-)

=head2 You do know that the "t" is actually a soft consonant, right?

Ano, viem...

=head2 Who's to blame?

Jonathan Worthington C<[email protected]> started the Blizkost project. He hopes
others will join the fun too.

Blizkost is destributed under the same terms as Parrot itself.  See the file
named LICENSE in the source root for details.

blizkost's People

Contributors

sorear avatar leto avatar jnthn avatar fperrad avatar cognominal avatar moritz avatar notfound avatar avar avatar

Stargazers

Øystein Torget avatar

Watchers

Øystein Torget avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.