PDL::PP-Inlinep - Online în cloud

Aceasta este comanda PDL::PP-Inlinep care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

PROGRAM:

NUME


Inline::Pdlpp - Scrieți subprogramele PDL în linie cu PDL::PP

DESCRIERE


„Inline::Pdlpp” este un modul care vă permite să scrieți subrutine PDL în stilul PDL::PP.
Marele avantaj în comparație cu „PDL::PP” simplu este că puteți scrie aceste definiții în linie
în orice script perl vechi (fără bataia normală de a crea Makefile, construi, etc).
Începând cu versiunea 0.30, modulul Inline acceptă mai multe limbaje de programare și fiecare
limba are propriul modul de suport. Acest document descrie cum să utilizați Inline cu
PDL::PP (sau mai bine zis, va fi odată ce aceste documente sunt complete „;)”.

Pentru mai multe informații despre Inline în general, consultați Inline.

Câteva exemple de scripturi care demonstrează utilizarea „Inline::Pdlpp” pot fi găsite în
Exemplu/InlinePdlpp director.

„Inline::Pdlpp” este în mare parte o fraudă nerușinată a „Inline::C”. Cele mai multe felicitări îi revin lui Brian I.

Folosire


Nu folosiți niciodată „Inline::Pdlpp” direct. Este doar un modul de suport pentru utilizare
„Inline.pm” cu „PDL::PP”. Deci, utilizarea este întotdeauna:

utilizați Inline Pdlpp => ...;

or

bind Inline Pdlpp => ...;

Exemple


În așteptarea disponibilității documentelor complete, câteva exemple rapide care ilustrează utilizarea tipică.

A simplu exemplu
# exemplu de script inlpp.pl
utilizați PDL; # trebuie apelat înainte de (!) apelurile „utilizați Pdlpp în linie”.

utilizați Inline Pdlpp; # codul real se află în blocul __Pdlpp__ de mai jos

$a = succesiunea 10;
print $a->inc,"\n";
print $a->inc->dummy(1,10)->tcumul,"\n";

__DATA__

__Pdlpp__

pp_def('inc',
Pars => 'i();[o] o()',
Cod => '$o() = $i() + 1;',
);

pp_def('tcumul',
Pars => 'in(n);[o] mul()',
Cod => '$mul() = 1;
buclă(n) %{
$mul() *= $in();
%}',
);
# sfârșit exemplu de script

Dacă apelați acest script, ar trebui să genereze rezultate similare cu aceasta:

prompt> perl inlpp.pl
Rulează în linie PDL::PP versiunea 2.2...
[1 2 3 4 5 6 7 8 9 10 XNUMX XNUMX XNUMX
[3628800 3628800 3628800 3628800 3628800 3628800 3628800 3628800 3628800 3628800 XNUMX XNUMX XNUMX

Utilizarea „Inline::Pdlpp” în general este similară cu „Inline::C”. În lipsa completului
documente pentru „Inline::Pdlpp” poate doriți să comparați Inline::C.

Cod acea utilizări extern biblioteci, etc
Scriptul de mai jos este ceva mai complicat prin faptul că folosește cod de la un extern
bibliotecă (aici de la Rețete numerice). Toate informațiile relevante cu privire la includ
fișierele, bibliotecile și codul de pornire sunt specificate într-un apel de configurare la „Inline”. Pentru mai mult
hackeri experimentați Perl ar putea fi util să știți că formatul este similar cu acesta
folosit cu ExtUtils::MakeMaker. Cuvintele cheie sunt în mare măsură echivalente cu cele folosite cu
„Inline::C”. Consultați mai jos pentru mai multe detalii despre utilizarea „INC”, „LIBS”,
„AUTO_INCLUDE” și „BOOT”.

utilizați PDL; # acesta trebuie apelat înainte de (!) apelurile „utilizați Inline Pdlpp”.

utilizați Inline Pdlpp => Config =>
INC => "-I$ENV{HOME}/include",
LIBS => "-L$ENV{HOME}/ lib -lnr -lm",
# cod care urmează să fie inclus în XS generat
AUTO_INCLUDE => <<'EOINC',
#include
#include "nr.h" /* pentru poidev */
#include "nrutil.h" /* pentru err_handler */

static void nr_barf(char *err_txt)
{
fprintf(stderr,"Acum apelăm croak...\n");
croak("Eroare de rulare NR: %s",err_txt);
}
EOINC
# instalați handlerul nostru de erori când încărcați codul Inline::Pdlpp
BOOT => 'set_nr_err_handler(nr_barf);';

utilizați Inline Pdlpp; # codul real se află în blocul __Pdlpp__ de mai jos

$a = zero-uri(10) + 30;;
imprima $a->poidev(5),"\n";

__DATA__

__Pdlpp__

pp_def('poidev',
Pars => 'xm(); [o] pd()',
GenericTypes => [L,F,D],
OtherPars => 'idum lung',
Cod => '$pd() = poidev((float) $xm(), &$COMP(idum));',
);

Pdlpp Configuraţie Opţiuni


Pentru informații despre cum să specificați opțiunile de configurare Inline, consultați Inline. Aceasta sectiune
descrie fiecare dintre opțiunile de configurare disponibile pentru Pdlpp. Majoritatea opțiunilor
corespund fie opțiunilor MakeMaker, fie XS cu același nume. Consultați ExtUtils::MakeMaker și
perlxs.

AUTO_INCLUDE
Specifică instrucțiuni suplimentare pentru a fi incluse automat. Ele vor fi adăugate pe
implicite. Un caracter de linie nouă va fi adăugat automat. În esență, face același lucru cu un apel
la „pp_addhdr”. Pentru biți scurti de cod, „AUTO_INCLUDE” este probabil mai frumos din punct de vedere sintactic.

utilizați Inline Pdlpp => Config => AUTO_INCLUDE => '#include "yourheader.h"';

BINECUVÂNTA
La fel ca și comanda „pp_bless”. Specifică pachetul (adică clasa) la care este nou pp_defed
vor fi adăugate metode. Setarea implicită la „PDL” dacă este omis.

utilizați Inline Pdlpp => Config => BLESS => 'PDL::Complex';

BOOTĂ
Specifică codul C care urmează să fie executat în secțiunea XS BOOT. Corespunde parametrului XS.
Face același lucru cu comanda „pp_add_boot”. Adesea folosit pentru a executa cod o singură dată la încărcare
timpul modulului, de exemplu un apel de inițializare a bibliotecii.

CC
Specificați ce compilator să utilizați.

CCFLAGS
Specificați steaguri suplimentare pentru compilator.

INC
Specifică o cale de includere de utilizat. Corespunde parametrului MakeMaker.

utilizați Inline Pdlpp => Config => INC => '-I/inc/path';

LD
Specificați ce linker să utilizați.

LDDLFLAGS
Specificați ce steaguri de linker să utilizați.

NOTĂ: Aceste steaguri vor suprascrie complet steaguri existente, în loc să se adauge doar la
lor. Deci, dacă trebuie să le folosiți și pe acestea, trebuie să le respecificați aici.

LIBS
Specifică bibliotecile externe care ar trebui să fie legate în codul tău. Corespunde la
parametrul MakeMaker.

utilizați Inline Pdlpp => Config => LIBS => '-lyourlib';

or

utilizați Inline Pdlpp => Config => LIBS => '-L/your/path -lyourlib';

FACE
Specificați numele utilitarului „make” de utilizat.

MYEXTLIB
Specifică un obiect compilat de utilizator care ar trebui să fie conectat. Corespunde MakeMaker
parametru.

utilizați Inline Pdlpp => Config => MYEXTLIB => '/your/path/yourmodule.so';

OPTIMIZAREA
Aceasta controlează setarea MakeMaker OPTIMIZE. Setând această valoare la „-g”, puteți întoarce
privind suportul de depanare pentru extensiile dvs. Inline. Acest lucru vă va permite să puteți seta
puncte de întrerupere în codul dvs. C folosind un depanator precum gdb.

TYPEMAPS
Specifică fișiere suplimentare tip mapmap de utilizat. Corespunde parametrului MakeMaker.

utilizați Inline Pdlpp => Config => TYPEMAPS => '/your/path/typemap';

ZGOMOTOS
Afișați rezultatul oricăror compilații care se desfășoară în culise. Folosește „tee” care trebuie să fie
disponibil pe computerul dvs. Setarea implicită este dezactivată.

Utilizați PDL::PP-Inlinep online folosind serviciile onworks.net



Cele mai recente programe online Linux și Windows