Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

masak (6289)

masak
  (email not shown publicly)
http://masak.org/carl

Been programming Perl since 2001. Found Perl 6 somewhere around 2004, and fell in love. Now developing November (a Perl 6 wiki), Druid (a Perl 6 board game), pls (a Perl 6 project installer), GGE (a regex engine), and Yapsi (a Perl 6 implementation). Heavy user of and irregular committer to Rakudo.

Journal of masak (6289)

Friday November 06, 2009
05:53 PM

November 6 2009 -- wait, that's not gold...

[ #39854 ]

65 years ago today, the first industrial batch of plutonium was produced.

Element 94 was first synthesized in 1940 by a team led by Glenn T. Seaborg and Edwin McMillan at the University of California, Berkeley laboratory by bombarding uranium-238 with deuterons. McMillan named the new element after Pluto, and Seaborg suggested the symbol Pu as a joke. [...] The entire plutonium weapon design effort at Los Alamos was soon changed to the more complicated implosion device, code-named "Fat Man." With an implosion weapon, a solid sphere of plutonium is compressed to a high density with explosive lenses—a technically more daunting task than the simple gun-type design, but necessary in order to use plutonium for weapons purposes.

"Fat Man", as you may know, was subsequently dropped on Nagasaki, Japan. Perhaps it contains some revealing truth about mankind, that when we finally make reality out of the alchemical dream to change material from one element to another, we use it not to create beauty or riches, but to wipe cities off the face of the Earth.

Okay, switching to the installed-modules branch. (If you're coming in through non-linear time, you might want to read what I did yesterday first.)

$ ./proto

*** CONFIG FILE TOO OLD ***

Hello, faithful proto user. Since the August 2009 release, Rakudo installs
and runs outside its source directories. It's time for proto to make projects
install Perl 6 projects in a similar way. Rather than spend a lot of effort
trying to guess how to upgrade our userbase from distributed to merged, we'll
just deprecate the old ways and let you do a bit of the work. Hope it's OK!

So here's the thing: we're moving to a model where PERL6LIB becomes optional
or needs to point to only one library base directory. You should probably
reinstall the projects you have already, so that they end up in that place.

Here are your currently installed projects ('legacy' in projects.state):

november html-template druid perl6-examples uri web svg svg-plot maya form pun io-prompt wtop xml statistics-lite json faz http-daemon yarn ppm epoxy epoxy-resin grampa csv perl6-literate perl6-sqlite mwbot

When you're ready to go with the new ways, please remove your old
config.proto and reinstall the above projects.

Ok. Bravely going where no man has gone before. Save for mberends++, and probably viklund++, and moritz++...

I remove config.proto.

$ ./proto

*** CONFIG FILE CREATED ***

Greetings! I have created a file '/Users/masak/gwork/proto/config.proto'
that you may want to review. Next time you run ./proto
these settings will be used to bootstrap your Perl 6 software ecosystem.

If you're new to this, or reluctant to do configuration, you probably want
the default settings anyway. The most important ones are:
Perl 6 executable -> /Users/masak/gwork/rakudo/parrot_install/bin/perl6
Perl 6 library -> /Users/masak/.perl6/lib

Looks good. Proceeding.

$ ./proto
Building proto...done
don't know how to parse the line « state: legacy: /Users/masak/gwork/november», ignoring it
don't know how to parse the line « state: legacy: /Users/masak/gwork/html-template», ignoring it
don't know how to parse the line « state: legacy: /Users/masak/gwork/druid», ignoring it
don't know how to parse the line « state: legacy: /Users/masak/gwork/perl6-examples», ignoring it
don't know how to parse the line « state: legacy: /Users/masak/gwork/uri», ignoring it
don't know how to parse the line « state: legacy: /Users/masak/gwork/web», ignoring it
don't know how to parse the line « state: legacy: /Users/masak/gwork/svg», ignoring it
don't know how to parse the line « state: legacy: /Users/masak/gwork/svg-plot», ignoring it
don't know how to parse the line « state: legacy: /Users/masak/gwork/maya», ignoring it
don't know how to parse the line « state: legacy: /Users/masak/gwork/form», ignoring it
don't know how to parse the line « state: legacy: /Users/masak/gwork/pun», ignoring it
don't know how to parse the line « state: legacy: /Users/masak/gwork/io-prompt», ignoring it
don't know how to parse the line « state: legacy: /Users/masak/gwork/wtop», ignoring it
don't know how to parse the line « state: legacy: /Users/masak/gwork/xml», ignoring it
don't know how to parse the line « state: legacy: /Users/masak/gwork/statistics-lite», ignoring it
don't know how to parse the line « state: legacy: /Users/masak/gwork/json», ignoring it
don't know how to parse the line « state: legacy: /Users/masak/gwork/faz», ignoring it
don't know how to parse the line « state: legacy: /Users/masak/gwork/http-daemon», ignoring it
don't know how to parse the line « state: legacy: /Users/masak/gwork/yarn», ignoring it
don't know how to parse the line « state: legacy: /Users/masak/gwork/ppm», ignoring it
don't know how to parse the line « state: legacy: /Users/masak/gwork/epoxy», ignoring it
don't know how to parse the line « state: legacy: /Users/masak/gwork/epoxy-resin», ignoring it
don't know how to parse the line « state: legacy: /Users/masak/gwork/grampa», ignoring it
don't know how to parse the line « state: legacy: /Users/masak/gwork/csv», ignoring it
don't know how to parse the line « state: legacy: /Users/masak/gwork/perl6-literate», ignoring it
don't know how to parse the line « state: legacy: /Users/masak/gwork/perl6-sqlite», ignoring it
don't know how to parse the line « state: legacy: /Users/masak/gwork/mwbot», ignoring it

Now, that's not very pretty. The error is coming from lib/Ecosystem.pm:126. It's caused by the fake YAML parser not recognizing more than one word after the first colon.

Ah, this is the TODO point recording this piece of data format.

10. Drop the migration plan for existing installations: laziness++ ;)
Just warn the user as long as the old config.proto has not been
upgraded, and record as "state: legacy: /path" in projects.state.
This must be overwritten if the user later re-installs the project.
[DONE]

Need to talk to mberends++ about how to solve this. My guess is that we need to make the fake YAML parser a bit smarter, but even that might come at a cost.

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More | Login | Reply
Loading... please wait.
  • mberends++ and I had a brief meeting on #perl6, and arrived at a solution which didn't involve messing with the parser.

    So, now things work, and are much less noisy.

  • I too briefly tried the installed-modules branch a few weeks ago. I quickly ran away screaming. Still, I'd really like to see it up and running, so if there's anything I can do to help...
    • Well, not running away screaming would be a good start... :)

      Don't know if you've found mberends++' excellent list of TODO points [github.com] in the proto script in the branch. Essentially, making the branch ready for merge comes down to finishing the points on that list.