PDL::PP-Inlinep - Dalam Talian di Awan

Ini ialah arahan PDL::PP-Inlinep yang boleh dijalankan dalam penyedia pengehosan percuma OnWorks menggunakan salah satu daripada berbilang stesen kerja dalam talian percuma kami seperti Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS.

JADUAL:

NAMA


Sebaris::Pdlpp - Tulis Subrutin PDL sebaris dengan PDL::PP

DESCRIPTION


"Inline::Pdlpp" ialah modul yang membolehkan anda menulis subrutin PDL dalam gaya PDL::PP.
Faedah besar berbanding "PDL::PP" biasa ialah anda boleh menulis takrifan ini sebaris
dalam mana-mana skrip perl lama (tanpa kerumitan biasa untuk mencipta Makefiles, membina, dll).
Sejak versi 0.30 modul Inline menyokong berbilang bahasa pengaturcaraan dan setiap satu
bahasa mempunyai modul sokongannya sendiri. Dokumen ini menerangkan cara menggunakan Sebaris dengan
PDL::PP (atau lebih tepat lagi, ia akan selesai apabila dokumen ini lengkap ";)".

Untuk maklumat lanjut tentang Inline secara umum, lihat Inline.

Beberapa contoh skrip yang menunjukkan penggunaan "Sebaris::Pdlpp" boleh didapati dalam
Contoh/InlinePdlpp direktori.

"Inline::Pdlpp" kebanyakannya adalah rip-off yang tidak tahu malu "Inline::C". Setinggi-tinggi Kudos ditujukan kepada Brian I.

Penggunaan


Anda tidak pernah menggunakan "Inline::Pdlpp" secara langsung. Ia hanyalah modul sokongan untuk digunakan
"Inline.pm" dengan "PDL::PP". Jadi penggunaannya sentiasa:

gunakan Inline Pdlpp => ...;

or

ikat Sebaris Pdlpp => ...;

Contoh


Menunggu ketersediaan dokumen penuh beberapa contoh pantas yang menggambarkan penggunaan biasa.

A mudah contoh
# contoh skrip inlpp.pl
gunakan PDL; # mesti dipanggil sebelum (!) 'use Inline Pdlpp' panggilan

gunakan Inline Pdlpp; # kod sebenar adalah dalam blok __Pdlpp__ di bawah

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

__DATA__

__Pdlpp__

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

pp_def('tcumul',
Pars => 'in(n);[o] mul()',
Kod => '$mul() = 1;
gelung(n) %{
$mul() *= $in();
%}',
);
# skrip contoh akhir

Jika anda memanggil skrip ini, ia harus menghasilkan output yang serupa dengan ini:

gesaan> perl inlpp.pl
Sebaris menjalankan PDL::PP versi 2.2...
[1 2 3 4 5 6 7 8 9 10.
[3628800 3628800 3628800 3628800 3628800 3628800 3628800 3628800 3628800 3628800.

Penggunaan "Sebaris::Pdlpp" secara umum adalah serupa dengan "Sebaris::C". Dalam ketiadaan penuh
docs untuk "Inline::Pdlpp" anda mungkin mahu membandingkan Inline::C.

Kod Bahawa menggunakan luar perpustakaan, dan lain-lain
Skrip di bawah agak rumit kerana ia menggunakan kod daripada luaran
perpustakaan (di sini dari Numerical Recipes). Semua maklumat berkaitan termasuk
fail, perpustakaan dan kod but dinyatakan dalam panggilan konfigurasi kepada "Sebaris". Untuk lebih
penggodam Perl yang berpengalaman mungkin berguna untuk mengetahui bahawa formatnya serupa dengan itu
digunakan dengan ExtUtils::MakeMaker. Kata kunci sebahagian besarnya bersamaan dengan kata kunci yang digunakan
"Sebaris::C". Sila lihat di bawah untuk butiran lanjut tentang penggunaan "INC", "LIBS",
"AUTO_INCLUDE" dan "BOOT".

gunakan PDL; # ini mesti dipanggil sebelum (!) 'gunakan panggilan Inline Pdlpp'

gunakan Inline Pdlpp => Config =>
INC => "-I$ENV{HOME}/include",
LIBS => "-L$ENV{HOME}/ lib -lnr -lm",
# kod untuk disertakan dalam XS yang dijana
AUTO_INCLUDE => <<'EOINC',
#sertakan
#include "nr.h" /* untuk poidev */
#include "nrutil.h" /* untuk err_handler */

kekosongan statik nr_barf(char *err_txt)
{
fprintf(stderr,"Sekarang memanggil croak...\n");
croak("Ralat masa jalan NR: %s",err_txt);
}
EOINC
# pasang pengendali ralat kami semasa memuatkan kod Inline::Pdlpp
BOOT => 'set_nr_err_handler(nr_barf);';

gunakan Inline Pdlpp; # kod sebenar adalah dalam blok __Pdlpp__ di bawah

$a = sifar(10) + 30;;
cetak $a->poidev(5),"\n";

__DATA__

__Pdlpp__

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

Pdlpp konfigurasi Pilihan


Untuk maklumat tentang cara untuk menentukan pilihan konfigurasi Sebaris, lihat Sebaris. Bahagian ini
menerangkan setiap pilihan konfigurasi yang tersedia untuk Pdlpp. Kebanyakan pilihan
sepadan sama ada dengan pilihan MakeMaker atau XS dengan nama yang sama. Lihat ExtUtils::MakeMaker dan
perlxs.

AUTO_INCLUDE
Menentukan penyata tambahan untuk disertakan secara automatik. Mereka akan ditambah ke dalam
lalai. Aksara baris baharu akan ditambahkan secara automatik. Pada dasarnya sama seperti panggilan
kepada "pp_addhdr". Untuk bit pendek kod "AUTO_INCLUDE" mungkin lebih bagus dari segi sintaksis.

gunakan Inline Pdlpp => Config => AUTO_INCLUDE => '#include "yourheader.h"';

MEMBERKATI
Sama seperti arahan "pp_bless". Menentukan pakej (iaitu kelas) yang baharu anda pp_defed
kaedah akan ditambah. Lalai kepada "PDL" jika ditinggalkan.

gunakan Inline Pdlpp => Config => BLESS => 'PDL::Complex';

but
Menentukan kod C untuk dilaksanakan dalam bahagian XS BOOT. Sepadan dengan parameter XS.
Melakukan perkara yang sama seperti arahan "pp_add_boot". Selalunya digunakan untuk melaksanakan kod sekali sahaja semasa dimuatkan
masa modul, cth. panggilan permulaan perpustakaan.

CC
Nyatakan pengkompil yang hendak digunakan.

CCFLAGS
Tentukan bendera pengkompil tambahan.

INC
Menentukan laluan sertakan untuk digunakan. Sepadan dengan parameter MakeMaker.

gunakan Inline Pdlpp => Config => INC => '-I/inc/path';

LD
Tentukan pemaut yang hendak digunakan.

LDDLFLAGS
Tentukan bendera pemaut yang hendak digunakan.

NOTA: Bendera ini akan menggantikan bendera sedia ada sepenuhnya, bukannya hanya menambah
mereka. Jadi jika anda perlu menggunakannya juga, anda mesti menyatakannya di sini.

LIBS
Menentukan perpustakaan luaran yang harus dipautkan ke dalam kod anda. Sesuai dengan
Parameter MakeMaker.

gunakan Inline Pdlpp => Config => LIBS => '-lyourlib';

or

gunakan Inline Pdlpp => Config => LIBS => '-L/your/path -lyourlib';

JADIKAN
Nyatakan nama utiliti 'buat' untuk digunakan.

MYEXTLIB
Menentukan objek yang disusun pengguna yang harus dipautkan masuk. Sepadan dengan MakeMaker
parameter.

gunakan Inline Pdlpp => Config => MYEXTLIB => '/your/path/yourmodule.so';

OPTIMASI
Ini mengawal tetapan MakeMaker OPTIMIZE. Dengan menetapkan nilai ini kepada '-g', anda boleh bertukar
pada sokongan penyahpepijatan untuk sambungan Dalam Talian anda. Ini akan membolehkan anda dapat menetapkan
titik putus dalam kod C anda menggunakan penyahpepijat seperti gdb.

PETA JENIS
Menentukan fail peta taip tambahan untuk digunakan. Sepadan dengan parameter MakeMaker.

gunakan Inline Pdlpp => Config => TYPEMAPS => '/your/path/typemap';

BISING
Tunjukkan output sebarang kompilasi yang berlaku di belakang tabir. Menggunakan "tee" yang semestinya
tersedia pada komputer anda. Lalai dimatikan.

Gunakan PDL::PP-Inlinep dalam talian menggunakan perkhidmatan onworks.net



Program dalam talian Linux & Windows terkini