PDL::PP-Inlinep - ออนไลน์ในคลาวด์

นี่คือคำสั่ง PDL::PP-Inlinep ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้หนึ่งในเวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

โครงการ:

ชื่อ


Inline::Pdlpp - เขียนรูทีนย่อย PDL แบบอินไลน์ด้วย PDL::PP

DESCRIPTION


"Inline::Pdlpp" เป็นโมดูลที่ให้คุณเขียนรูทีนย่อย PDL ในรูปแบบ PDL::PP
ประโยชน์ที่ยิ่งใหญ่เมื่อเทียบกับ "PDL::PP" ธรรมดาคือคุณสามารถเขียนคำจำกัดความเหล่านี้ในบรรทัด
ในสคริปต์ Perl เก่า (โดยไม่ต้องสร้าง Makefiles สร้าง ฯลฯ ให้ยุ่งยาก)
ตั้งแต่เวอร์ชัน 0.30 โมดูลอินไลน์รองรับภาษาการเขียนโปรแกรมหลายภาษาและแต่ละภาษา
ภาษามีโมดูลสนับสนุนของตัวเอง เอกสารนี้อธิบายวิธีการใช้อินไลน์ด้วย
PDL::PP (หรือค่อนข้างจะเป็นเช่นนั้นเมื่อเอกสารเหล่านี้เสร็จสมบูรณ์ ";)"

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับอินไลน์โดยทั่วไป โปรดดูที่อินไลน์

สคริปต์ตัวอย่างบางส่วนที่สาธิตการใช้งาน "Inline::Pdlpp" สามารถพบได้ใน
ตัวอย่าง/InlinePdlpp ไดเรกทอรี

"Inline::Pdlpp" ส่วนใหญ่เป็นการลอกเลียนแบบ "Inline::C" อย่างไร้ยางอาย ความรุ่งโรจน์ส่วนใหญ่ไปที่ Brian I.

การใช้


คุณไม่เคยใช้ "Inline::Pdlpp" โดยตรงเลย เป็นเพียงโมดูลรองรับการใช้งาน
"Inline.pm" กับ "PDL::PP" ดังนั้นการใช้งานจะเป็นดังนี้:

ใช้ Inline Pdlpp => ...;

or

ผูก Inline Pdlpp => ...;

ตัวอย่าง


ตัวอย่างสั้นๆ บางส่วนที่แสดงให้เห็นการใช้งานทั่วไปที่รอดำเนินการอยู่ของเอกสารฉบับเต็ม

A ง่าย ตัวอย่าง
# ตัวอย่างสคริปต์ inlpp.pl
ใช้ PDL; # ต้องถูกเรียกก่อน (!) 'use Inline Pdlpp' โทร

ใช้อินไลน์ Pdlpp; # รหัสจริงอยู่ในบล็อก __Pdlpp__ ด้านล่าง

$a = ลำดับที่ 10;
พิมพ์ $a->inc,"\n";
พิมพ์ $a->inc->dummy(1,10)->tcumul,"\n";

__ข้อมูล__

__โปรดิป__

pp_def('inc',
Pars => 'i();[o] o()',
รหัส => '$o() = $i() + 1;',
);

pp_def('tcumul',
Pars => 'in(n);[o] mul()',
รหัส => '$mul() = 1;
วน (n) %{
$มัล() *= $ใน();
%}',
);
# จบสคริปต์ตัวอย่าง

หากคุณเรียกสคริปต์นี้ มันควรจะสร้างผลลัพธ์ที่คล้ายกับสิ่งนี้:

พรอมต์> perl inlpp.pl
PDL::PP เวอร์ชัน 2.2...
[1 2 3 4 5 6 7 8 9 10]
[3628800 3628800 3628800 3628800 3628800 3628800 3628800 3628800 3628800 3628800]

การใช้ "Inline::Pdlpp" โดยทั่วไปจะคล้ายกับ "Inline::C" ในเมื่อไม่มีเต็ม
เอกสารสำหรับ "Inline::Pdlpp" คุณอาจต้องการเปรียบเทียบ Inline::C

รหัส ที่ ใช้ ภายนอก ห้องสมุด ฯลฯ
สคริปต์ด้านล่างค่อนข้างซับซ้อนกว่าที่ใช้โค้ดจากภายนอก
ห้องสมุด (ที่นี่จากสูตรตัวเลข) ข้อมูลที่เกี่ยวข้องทั้งหมดเกี่ยวกับรวมถึง
ไฟล์ ไลบรารี และรหัสบูตถูกระบุในการเรียก config ไปที่ "Inline" สำหรับข้อมูลเพิ่มเติม
แฮ็กเกอร์ Perl ที่มีประสบการณ์อาจเป็นประโยชน์หากรู้ว่ารูปแบบนั้นคล้ายกัน
ใช้กับ ExtUtils::Maker Maker คำหลักส่วนใหญ่เทียบเท่ากับคำที่ใช้กับ
"อินไลน์::C". โปรดดูรายละเอียดเพิ่มเติมเกี่ยวกับการใช้ "INC", "LIBS" ที่ด้านล่าง
"AUTO_INCLUDE" และ "BOOT"

ใช้ PDL; # สิ่งนี้ต้องถูกเรียกก่อน (!) 'use Inline Pdlpp' โทร

ใช้ Inline Pdlpp => Config =>
INC => "-I$ENV{HOME}/include",
LIBS => "-L$ENV{HOME}/ lib -lnr -lm",
# รหัสที่จะรวมอยู่ในXS .ที่สร้างขึ้น
AUTO_INCLUDE => <<'EOINC',
#รวม
#include "nr.h" /* สำหรับ poidev */
#include "nrutil.h" /* สำหรับ err_handler */

โมฆะคงที่ nr_barf (ถ่าน * err_txt)
{
fprintf(stderr,"ตอนนี้กำลังเรียกบ่น...\n");
croak("ข้อผิดพลาดรันไทม์ NR: %s",err_txt);
}
อีไอเอ็นซี
# ติดตั้งตัวจัดการข้อผิดพลาดของเราเมื่อโหลด Inline::Pdlpp code
BOOT => 'set_nr_err_handler(nr_barf);';

ใช้อินไลน์ Pdlpp; # รหัสจริงอยู่ในบล็อก __Pdlpp__ ด้านล่าง

$a= ศูนย์(10) + 30;;
พิมพ์ $a->พอเดฟ(5),"\n";

__ข้อมูล__

__โปรดิป__

pp_def('ปอยเดฟ',
พาร์ส => 'xm(); [o] pd()',
GenericTypes => [L,F,D],
OtherPars => 'idum ยาว',
รหัส => '$pd() = poidev((float) $xm(), &$COMP(idum));',
);

พปชร องค์ประกอบ Options


สำหรับข้อมูลเกี่ยวกับวิธีการระบุตัวเลือกการกำหนดค่าแบบอินไลน์ โปรดดูที่อินไลน์ ส่วนนี้
อธิบายแต่ละตัวเลือกการกำหนดค่าที่มีให้สำหรับ Pdlpp ตัวเลือกส่วนใหญ่
สอดคล้องกับตัวเลือก MakerMaker หรือ XS ที่มีชื่อเดียวกัน ดู ExtUtils::Maker และ
เพิร์ล

AUTO_รวม
ระบุคำสั่งพิเศษที่จะรวมโดยอัตโนมัติ พวกเขาจะถูกเพิ่มลงใน
ค่าเริ่มต้น อักขระขึ้นบรรทัดใหม่จะถูกเพิ่มโดยอัตโนมัติ โดยพื้นฐานแล้วเหมือนกับการโทร
ไปที่ "pp_addhdr" สำหรับโค้ดสั้นๆ "AUTO_INCLUDE" น่าจะดีกว่าทางวากยสัมพันธ์

ใช้ Inline Pdlpp => Config => AUTO_INCLUDE => '#include "yourheader.h"';

อวยพร
เหมือนกับคำสั่ง "pp_bless" ระบุแพ็คเกจ (เช่นคลาส) ที่ new . ของคุณ pp_defed
จะเพิ่มวิธีการ ค่าเริ่มต้นเป็น "PDL" หากละเว้น

ใช้ Inline Pdlpp => Config => BLESS => 'PDL::Complex';

BOOT
ระบุรหัส C ที่จะดำเนินการในส่วน XS BOOT สอดคล้องกับพารามิเตอร์ XS
ทำเหมือนกับคำสั่ง "pp_add_boot" มักใช้เพื่อรันโค้ดเพียงครั้งเดียวขณะโหลด
เวลาของโมดูล เช่น การเรียกการเริ่มต้นไลบรารี

CC
ระบุคอมไพเลอร์ที่จะใช้

CCFLAGS
ระบุแฟล็กคอมไพเลอร์พิเศษ

INC
ระบุพาธรวมที่จะใช้ สอดคล้องกับพารามิเตอร์ MakeMaker

ใช้ Inline Pdlpp => Config => INC => '-I/inc/path';

LD
ระบุตัวเชื่อมโยงที่จะใช้

LDDLFLAGS
ระบุแฟล็กตัวเชื่อมโยงที่จะใช้

หมายเหตุ: แฟล็กเหล่านี้จะแทนที่แฟล็กที่มีอยู่โดยสมบูรณ์ แทนที่จะเพิ่มไปที่
พวกเขา. ดังนั้น หากคุณต้องการใช้สิ่งเหล่านั้นด้วย คุณต้องระบุใหม่ที่นี่

ลิบส์
ระบุไลบรารีภายนอกที่ควรเชื่อมโยงกับโค้ดของคุณ สอดคล้องกับ
พารามิเตอร์ MakeMaker

ใช้ Inline Pdlpp => Config => LIBS => '-lyourlib';

or

ใช้ Inline Pdlpp => Config => LIBS => '-L/your/path -lyourlib';

MAKE
ระบุชื่อของยูทิลิตี้ 'make' ที่จะใช้

มายเอ็กซ์ตลิบ
ระบุผู้ใช้ที่คอมไพล์ออบเจ็กต์ที่ควรเชื่อมโยง สอดคล้องกับ MakeMaker
พารามิเตอร์.

ใช้ Inline Pdlpp => Config => MYEXTLIB => '/your/path/yourmodule.so';

เพิ่มประสิทธิภาพ
สิ่งนี้ควบคุมการตั้งค่า MakeMaker OPTIMIZE โดยการตั้งค่านี้เป็น '-g' คุณสามารถเปิด
เกี่ยวกับการดีบักการสนับสนุนส่วนขยายอินไลน์ของคุณ ซึ่งจะทำให้คุณสามารถตั้งค่า
เบรกพอยต์ในรหัส C ของคุณโดยใช้ดีบักเกอร์เช่น gdb

แผนที่ประเภท
ระบุไฟล์ typemap พิเศษที่จะใช้ สอดคล้องกับพารามิเตอร์ MakeMaker

ใช้ Inline Pdlpp => Config => TYPEMAPS => '/your/path/typemap';

เสียงดัง
แสดงผลลัพธ์ของการรวบรวมที่เกิดขึ้นเบื้องหลัง ใช้ "ที" ซึ่งต้องเป็น
ได้ในคอมพิวเตอร์ของคุณ ค่าเริ่มต้นคือปิด

ใช้ PDL::PP-Inlinep ออนไลน์โดยใช้บริการ onworks.net



โปรแกรมออนไลน์ Linux และ Windows ล่าสุด