Perlテックブログ

ITエンジニアの成長意欲を刺激する技術考察、モジュール開発の日記。Perlイベントや国内や海外のPerlの記事の紹介。

実行環境とコンパイル環境の分離 - SPVM開発日記

今exeファイルを作ろうと奮闘しているところ。いろいろ調べると、意外と難しい。でも、いけそうな感じもする。先にやらないといけないことは、実行環境で利用するデータとコンパイル環境で利用するデータを分離しなくちゃいけないということ。今は、コンパイ…

「Ansibleは現代のPerl」といったねた元

ちょいと古いけど、Ansibleは現代のPerlというネタ元を拾ってきた。ちょっと、たとえに、無理がある気もしますけどね...。redhat.lookbookhq.com

exeファイルを作り出す - SPVM開発日記

ループ展開は複雑で、難しすぎたので、ひとまずあきらめの心境。難しいことやるまえに、まずは先にベンチやんなきゃね。ビルドツールもSPVMコアには必須ではない気がしてきたので、こちらは将来CPANモジュール化してくれる人が現れるのを期待して、リリース…

コンパイラオプションとリンカオプション | SPVM開発日記

Perlには、ExtUtils::CBuilderというクラスプラットフォームで、C/C++ソースコードのコンパイルと共有ライブラリ作成を助けてくれるモジュールがある。SPVMは、内部的にこのモジュールを利用して、コンパイルと共有ライブラリの作成を行っている。SPVMのひと…

ccflagsの取り扱い | SPVM開発日記

gccを使ってコンパイルするのだけれど、そのオプションを構成する方法について考えている。gccのコマンドラインオプションなので、最終的には出力は空白区切りの文字列になる。でも、プログラムで扱う場合は、配列にしておいてもよい気がするのだけれど、文…

「例えばPerlを書くエンジニアなんて、2020年にはいなくなってますよ。」

求人サイトの@typeというサイトで「SIerって本当にヤバいの? ひろゆきが語る、業界ごと沈まないためのキャリア戦略」というインタビューが掲載されていたので、記念にリンクしておく。 type.jp 「@typeとひろゆきと440人のはてなブックマーカー」の判断が正…

SPVMの文法がほぼ出来上がったので定義を公開 | SPVM開発日記

SPVMの文法がほぼ出来上がったので定義を公開。yaccの文法で書かれています。SPVMは静的型言語ですが、できる限りPerlの文法で記述できるように、工夫されています。1055行で書かれています。 %pure-parser %parse-param { SPVM_COMPILER* compiler } %lex-p…

Learn Languages 2018 in ODC (LL2018) 残り48枠 2018/08/26(日)

Learn Languages 2018がプログラミングのイベント Learn Languages 2018 in ODCが08/26に開催されます。 Perlからは、「Language Update。@charsbarさん。」「最近のパッケージマネージャってどれがお勧め? @takesakoさん @skajiさん, @tokuhiromさん」が、…

SPVMロードマップ 2018年8月 - SPVM開発日記

今週行っていた、リファレンスの実装が完了して、Perl側から数値や複素数を渡して値を更新できるようになった。これで、ポインタを受け取る関数のC言語のバインディングがとてもやりやすくなる。現時点で必要な機能は、残り3つ。この三つを実装した後は、パ…

複素数型のリファレンス - SPVM開発日記

今、SPVMにリファレンス型を実装しているところ。数値型のリファレンスはできて、もうひとつ、値型のリファレンスを実現しなくちゃ。値型というのは、複素数型のように、複数の数値型を持つ型で以下のように定義できる。 package SPVM::Complex_d2 : value_t…

Perlはインフラよりのツールなので、シェルスクリプトの中で受け入れるのも、それはそれでよしよ

この150以上のいいねは「きっとPerlに依存するなよー」という意味のいいねだと思う。GitHubでOSSで公開してるシェルスクリプト、内部でしれっとperl使ってて、いつバレるかなーっておもってたんだけどつい一週間くらい前にとうとう「ねえperl使えない環境の…

リファレンス渡しの実装 - SPVM開発日記

あとループ展開の部分を実装したら、終わりかなぁと考えていて、C言語のバインディングの実際はどんな感じになるんだろうと思ってGSLの実装を見ていたら、意外と数値型のポインタ渡しがかなり多い。 // double型のポインタを受け取る int gsl_poly_solve_qua…

2018年度版 Perlのベストプラクティスをまとめた記事

過去にまとめたものが、まだまだ使えるので、Perlの現在の標準的な書き方について知りたい場合は、よかったらどうぞー。d.hatena.ne.jp

PerlからSPVMにデータを渡す - SPVM開発日記

今ちょうど、PerlからSPVMにデータを渡すところを整備している。SPVMは、SPVMであることを意識せずに、Perlからデータを渡すことができる。 use SPVM 'Foo'; # メソッド呼び出し my $ret = Foo->sum(1, 2); Foo.spvmにFooパッケージとsumを定義すれば、それ…

【記事紹介】Perl 5.28.0でのforループと文字列の連結の速度検証

Perl 5.28では、実際の測定の結果、文字列連結が、ケース1で1.2倍、ケース2で6倍になっているみたい。 概要 Perl 5.28.0がリリースされ、いくつか機能が追加されました。 参考: http://d.hatena.ne.jp/perlcodesample/20180626/1529966283その中で、forルー…

無名サブルーチンの実装 - SPVM開発日記

無名サブルーチンが比較的簡単に実装できそうなので、作ってみる。ほかの言語ではラムダと呼ばれているが、Perlでは無名サブルーチンと呼ばれる。たとえば、sort関数でどのように比較するかを指定する関数を書きたいとする。こういう場合は、無名サブルーチ…

【記事紹介】未知の文字による無意味な文章を自動生成するプログラムを作りました。

古代文明の文字っぽくて、面白い。未知の文字による無意味な文章を自動生成するプログラムを作りました。https://t.co/ifDQLFk2QXこのような試みのことを asemic writing と言うらしい、というのを最近知ったところです。 pic.twitter.com/eUrK78G1A1— FAL @…

複素数と複素数の配列 - SPVM開発日記

SPVMで次に実装するのは、複素数を簡単に記述できる関数。現在、複素数と複素数の配列は次のように表現できる。たとえば、doubleの複素数の場合。 # 複素数 my $z1 = new SPVM::Complex_d2; $z1->{re} = 0.25; $z1->{im} = 1.5; doubleの複素数の配列の場合…

コンパイル時型チェックと実行時型チェック - SPVM開発日記

仕様上必要なSPVMの型がでそろった。 数値型 byte型 short型 int型 long型 float型 double型 オブジェクト型 汎用オブジェクト型 パッケージ型 クラス型 インターフェース型 値型 ポインタ型 配列型 数値型 オブジェクト型 型チェック 型が出そろったので、…

数学関数のインライン展開 - SPVM開発日記

わかりやすく、SPVM開発日記というのを、おしりにつけることにした。今日は、次に実装する予定の数学関数のインライン展開の実装予定について書く。SPVMでは、C99の数学関数を複素数の関数を含めて、すべてサポートする予定だ。ひとつの重要な課題はパフォー…

SPVMの例外の実装

SPVMの目標のひとつは、C/C++を簡単にPerlからバインディングできるようにすることだ。C++の例外についての話を、江添さんがブログで書いておられたので、SPVMの例外の実装についても少し書いておきたくなった。 cpplover.blogspot.com SPVMの例外は内部的に…

渋谷.pmがリアルタイムで配信されています。

渋谷.pmがリアルタイムで配信されています。 www.showroom-live.com SHOWROOMのサーバーはPerl製だそう!

TwitterやGitHubでときどきやりとりしている「ながやすしんや」さんのブログを発見した

C言語の構造体でアラインメントについて調べていると、TwitterやGitHubでときどきやりとりしているC言語の組み込みのエンジニアの「ながやすしんや」さんのブログを発見したので、メモメモ。 組込みエンジニアの思うところ | 組込み技術者が送る初心者から中…

「Perlってプログラミング言語あるじゃん」 「うん」「Perlがあるならダイヤモンドがあってもいいじゃん」

Perlネタで、Twitterがにぎわっていたので、記念にとっておく。 「Perlってプログラミング言語あるじゃん」「うん」「Perlがあるならダイヤモンドがあってもいいじゃん」「それCだよ」_人人人_> 炭素 < ̄Y^Y^Y ̄— 計算 (@K_tech_k) July 3, 2018 Perlツ…

ハイテクではなくローテク起業家が日々のパンを生む

僕の現在の職業は、偶然のことなんだけど、不動産仲介業のシステムエンジニアだ。僕の右の席には、グループ企業を6社くらい経営しているオーナーが、座っている。マネジメントと営業と法律とビジネスモデルを考えるプロフェッショルという感じだ。とここまで…

2018年版 Twitter活用法のまとめ

頻繁にTwitterを使い始めたのは、ここ最近。Twitterをどういう風に活用しているのかをメモ的に記す。 ブログの新着情報をTwitterに投稿する PerlゼミやPerlテックブログを更新したら、それをTwitterに投稿する。Perlゼミの場合は、新着情報ページを使う。注…

values型を実装して複素数を扱えるようにする

SPVMの残っている課題の中に、どうやって複素数と複素数の配列を扱うかというものがある。複素数と一言にいっても、持っている数値型は複数考えられる。int32_t, int64_t, float, double型をフィールドに持つとすると、これで4種類。 参照型が遅い理由 単純…

CレベルAPIにおける関数の安全な呼び出しにはシグニチャが必要になりそうだ

SPVMでは、C言語/C++をバインディングする機能をネイティブインターフェースと呼びます。ネイティブインターフェースでは 配列の作成 配列の要素の取り出し オブジェクトの作成 サブルーチンの呼び出し なんてことができる。 安全にサブルーチンを呼び出すに…

Perlツイートニュースに、Perlに関する話題を投稿しよう

Perlツイートニュースに、Perlに関する話題を投稿しよう。 PerlツイートニュースPerlを含んだツイートを拾って、ニュース形式で表示します。 Perlツイートニュースは、2年くらい前に作ったWebアプリで、Perlの最新のツイートを見ることができます。Twitterで…

スライド紹介「Perl で作る tiny shell」

ついこないだの、北海道.pmのcodehex君のスライドを紹介。木をたどっているよ!!! コマンドを左から順に解釈する仕組み。 speakerdeck.com codehex君「六本木.pmやるぞー」ということなので応援。会場はメルカリなのかな。たぶんメルカリなのかな?