Ticket #1869 (closed deprecation: fixed)

Opened 3 years ago

Last modified 2 years ago

Move Parrot::Embed into its own repo

Reported by: whiteknight Owned by: whiteknight
Priority: minor Milestone: 3.3
Component: Parrot::Interpreter Version: master
Severity: low Keywords:
Cc: chromatic, dukeleto Language:
Patch status: Platform: all

Description

The Parrot::Embed module for Perl5 is included in the main Parrot repository. There are some advantages to this in terms of proximity and testing. However, I think it should be moved out into it's own repository. I suggest this for several reasons:

  • More visibility for it, if it were a top-level project of it's own
  • It would be less likely to be lost in the shuffle from being wedged into the repo of a larger project
  • There would be more symmetry with other Perl5 modules on CPAN, which are their own repos

I suggest we move the Parrot::Embed code out into a repo at github.com/parrot/Parrot-Embed, and set it up with all the necessary infrastructure (it's own tests/harness, it's own section on smolder for reports, etc).

I mentioned this idea yesterday at #parrotsketch and got unanimous support for it. We can keep snapshots of it in the ext/ folder of the Parrot repo, to avoid issues with deprecations.

Attachments

parrot.embed.build.log Download (7.7 KB) - added by jkeenan 3 years ago.
failed attempt at building Parrot::Embed with a Parrot installed in non-system location

Change History

  Changed 3 years ago by coke

  • summary changed from Move Parrot::Embed into it's own repo to Move Parrot::Embed into its own repo

  Changed 3 years ago by whiteknight

I have split out a copy of Parrot-Embed into it's own repository here:

 https://github.com/Whiteknight/Parrot-Embed

We can move that into the parrot organization on Github when we are ready for this move to become "official".

  Changed 3 years ago by whiteknight

  • priority changed from normal to minor
  • severity changed from medium to low
  • milestone changed from 2.11 to 3.1

  Changed 3 years ago by whiteknight

  • status changed from new to assigned

  Changed 3 years ago by gerd

  • milestone changed from 3.1 to 3.2

  Changed 3 years ago by gerd

  • milestone changed from 3.2 to 3.3

follow-up: ↓ 8   Changed 3 years ago by dukeleto

Let's make it official:

 https://github.com/parrot/parrot-embed

I added IRC notifications and even fixed a bug in Build.PL

Should this get released as a CPAN module now? It was part of old parrot releases on CPAN, but doesn't exist as it's own entity on CPAN.

in reply to: ↑ 7 ; follow-up: ↓ 9   Changed 3 years ago by jkeenan

  • cc chromatic, dukeleto added

Replying to dukeleto:

Should this get released as a CPAN module now?

At the very least, we have to address the distribution's current documentation. The README starts out like this:

Parrot::Embed
-------------

This is an embedding interface to use Parrot from Perl 5.

Be afraid.

Not an auspicious sign. If there are things to be afraid of, we have to identify them and address them before pushing this to CPAN.

I have not attempted to use this distribution, but some of the questions we will have to answer include:

* How stable is the interface to libparrot?

* How stable are the functions exported from libparrot?

My hunch is that anyone making serious use of this distribution will want stability, because such a person wants to 'do Perl 5' rather than 'doing Parrot'.

Thank you very much.

kid51

in reply to: ↑ 8   Changed 3 years ago by jkeenan

Replying to jkeenan:

My hunch is that anyone making serious use of this distribution will want stability, because such a person wants to 'do Perl 5' rather than 'doing Parrot'.

A further hunch: I suspect that anyone wanting to experiment with this distribution will first want to build and install Parrot in a 'non-system' location. In other words, they will want to configure with a --prefix=/home/user/experimental option.

But when I configured Parrot with a --prefix underneath my home directory and installed Parrot there, I got this:

[embed] 562 $ ./Build
Building Parrot-Embed
cc -I/Users/jimk/gitwork/embed/../../include 
  -I/usr/local/lib/perl5/5.12.0/darwin-2level/CORE -DXS_VERSION="20081006" 
  -DVERSION="20081006" -c -fno-common -DPERL_DARWIN -no-cpp-precomp 
  -fno-strict-aliasing -pipe -I/usr/local/include -I/opt/local/include 
  -O3 -o lib/Parrot/Embed.o lib/Parrot/Embed.c
lib/Parrot/Embed.xs:2:27: error: parrot/parrot.h: No such file or directory
lib/Parrot/Embed.xs:3:26: error: parrot/embed.h: No such file or directory
lib/Parrot/Embed.xs:4:27: error: parrot/extend.h: No such file or directory
lib/Parrot/Embed.xs:11: error: parse error before 'Parrot_Interpreter'
lib/Parrot/Embed.xs:11: warning: data definition has no type or storage class
...
lib/Parrot/Embed.xs:246: error: 'interp' undeclared (first use in this function)
lib/Parrot/Embed.xs:246: error: parse error before ')' token
error building lib/Parrot/Embed.o from 'lib/Parrot/Embed.c' 
  at /usr/local/lib/perl5/5.12.0/ExtUtils/CBuilder/Base.pm line 112.

See attachment for full output of ./Build.

Thank you very much.

kid51

Changed 3 years ago by jkeenan

failed attempt at building Parrot::Embed with a Parrot installed in non-system location

  Changed 2 years ago by whiteknight

  • status changed from assigned to closed
  • resolution set to fixed

I think Parrot::Embed has been removed from the repo. I don't know where it moved to or (considering its current condition) whether it was moved anywhere at all. I'm closing this ticket.

Note: See TracTickets for help on using tickets.