Portál AbcLinuxu, 13. května 2025 23:48

Dotaz: Perl6 (Rakudo) - adresáře s moduly

31.8.2017 12:12 RM
Perl6 (Rakudo) - adresáře s moduly
Přečteno: 273×
Odpovědět | Admin
Marně pátrám po adresáři s moduly, který potřebuji pro nastavení Vimu. Moduly instaluji pomocí skriptu panda a vše nasvědčuje tomu, že by se měly ukládat do ~/.perl6/lib (panda info modul). Já tam ale žádný adresář lib nemám a ani prohledáváním celého disku jsem nenašel nic jako Print.pm6, což je soubor, který by se měl nainstalovat po instalaci modulu Terminal::Print. Soubor jsem našel až v ~/.perl6/source, kde má název nějakého hrozného klíče. Zajímalo by mi, jestli je tohle opravdu ten soubor, který Perl6 používá jako modul nebo je uložen ještě někde jinde. Program, který modul používá funguje, takže nainstalovaný ten modul je. -- A jak je možné nastavit path v editoru vim, abych měl správnou cestu do inklůdnutého modulu a mohl pomocí gf ten modul načíst do bufferu. Také jsem si všiml, že v souboru perl6.vim je zřejmě už nefunkční oneliner pro získání seznamu adresářů používající proměnnou perlu @INC. Mělo by tam být @REPO. A vůbec, start Vimu 7.4 v případě souborů Perlu 6 je podezřele pomalej. Máte s tím už někdo nějaké zkušenosti?

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

wamba avatar 31.8.2017 14:50 wamba | skóre: 38 | blog: wamba
Rozbalit Rozbalit vše Re: Perl6 (Rakudo) - adresáře s moduly
Odpovědět | | Sbalit | Link | Blokovat | Admin
Skutečně asi nikde nejsou knihovny pod čitelným jménem a ke zdrojovému kódu je potřeba se dostávat přes ten klíč v source. V p6doc hledají příslušný soubor nasledovně:
sub locate-curli-module($module) {
    my $cu = $*REPO.need(CompUnit::DependencySpecification.new(:short-name($module)));
    return ~ $cu.repo.prefix.child('sources/' ~ $cu.repo-id);
}

say locate-curli-module('Terminal::Print');
This would have been so hard to fix when you don't know that there is in fact an easy fix.
31.8.2017 17:26 RM
Rozbalit Rozbalit vše Re: Perl6 (Rakudo) - adresáře s moduly
To není do začátku zrovna jednoduché :). Nebyl by nějaký tip, jak vygenerovat seznam všech nainstalovaných klíčů vždy s patřičným celým názvem souboru?
31.8.2017 23:45 RM
Rozbalit Rozbalit vše Re: Perl6 (Rakudo) - adresáře s moduly
Trochu jsem to zkoumal a nakonec jsem zakotvil u jednoduchého řešení: skript s xargs a grep, který projde soubory v ~/.perl6/source/* pak sort a uniq, protože některé moduly tam jsou několikrát. V souboru vim74/ftpluing/perl6.vim zakomentovat nefunkční oneliner s @INC a vložit někam výraz, který přemapuje gf tak, aby se spustil skript a odfiltroval potřebný název souboru, který patří k modulu pod kurzorem. -- Vim už startuje okamžitě, problém byl ten oneliner, který byl pomalý a stejně vrátil chybu.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.