Perlテックブログ

Perlゼミのはてな出張所。Perlの新着情報、Perlイベントなどの紹介

PHPのP++構想と同じものがPerlのSPVMプロジェクトだ

PHPのP++構想と同じものがPerlのSPVMプロジェクトである。PHPから静的型のP++を呼び出そうとしているというのが、P++プロジェクトだ。 P++: 銀河に平和をもたらすための奇策と決着 P++: 静的型付けをめざすPHP PHPから後方互換性を除いた「P++」が提案される…

2019年Perl入学式東京 第四回 リファレンス偏 講義内容を公開中

2019年Perl入学式東京 第四回 リファレンス偏 講義内容を公開中 github.com今ちょうど、Perl入学式にたどり着きました。参加予定者の方は、14人。ちょうど、午後1時からPerl入学式が始まりそうです。Perl入学式東京 始まりました サポーター紹介サポーター紹…

Perlには、真偽値型も、真偽値リテラルも、存在しません。

Perlの真偽値に反応して書き書き。Perlには、真偽値型はないPerlは、動的型言語ですから、もちろん、真偽値型というものは、ありません。内部的にはSVデータ型として、データを保存していますが、これも、真偽値型という概念を持っていません。Perlには、真…

GitのインストールにはPerlが必要

Git 1.7.4以降ではPerl 5.8が必須となっています。 なお、Git 1.7.4以降ではPerl 5.8が必須となっているが、FedoraやRed Hat Enterprise Linux、CentOSなどのプラットフォームではPerlの一部のコアモジュールがデフォルトでは提供されていないため、追加のモ…

Imagerを使って六角形を作って塗りつぶす

PerlのImagerを使って六角形を作って塗りつぶす。 ソースコードは以下。 use strict; use warnings;use Imager; use Imager::Color; use Imager::Fill;my $xsize = 500; my $ysize = 250;my $img = Imager->new(xsize => $xsize, ysize => $ysize, channels …

Imagerでsinのグラフを書く - 実験編1

Perlで二次元グラフをポータブルに書けないかどうかというのを調べていて、Imagerで何とかなるかもしれないと思い、実験をしています。Cairoは、機能としては、申し分なさそうなんですが、ポータビリティ、環境構築が鬼門ということで、Imagerを調べていて、…

Math::Spline - スプライン曲線の座標を求める

スプライン曲線の座標を求めるにはMath::Splineモジュールを使用します。スプライン曲線とは、与えられた座標を滑らかにつなぐ曲線のことです。 use strict; use warnings;use Math::Spline;my $xs = [1, 3, 8, 10]; my $ys = [1, 2, 3, 4]; my $spline = Ma…

任意のファイルを描画する - Mojolicious入門

Mojoliciousで任意のファイルを描画する方法。publicの下にあれば、reply->staticでOKだけど、任意のファイルってどうやって描画するんでしょうか。実は、アセットを描画する機能があります。以下のように書くと、任意のファイルを描画できます。セキュリテ…

Mojoliciousでファイル拡張子からコンテントタイプを取得する

Mojoliciousでファイル拡張子からコンテントタイプを取得するには、typesからtypeを呼び出します。 my $content_type = $c->app->types->type($ext);ファイル拡張子に応じた、コンテントタイプが取得できるので便利です。

2019年6月15日 Perl入学式 東京 第三回 レポート

本日は雨模様。講義資料が少し変わったらしく。前回の復習と、正規表現のようです。最初の自己紹介で、直近の仕事で、正規表現を活用した例を話しました。正規表現で、日々の作業を楽にしていきましょう。四則演算の復習 13:20前回の復習です。簡単な四則演…

MojoliciousでLet's Encryptのサーバー証明書を取得

ルモーリンさんが、MojoliciousでLet's Encryptのサーバー証明書を取得という記事を書いておられた。Mojoliciousを一般ユーザーで運用するときに、役立ちそうなのでメモ。ホームページに記事を追加しました日本で唯一の記事を書けたと自負しております(こう…

Perlの公式ドキュメントperldocがスマートフォン対応の新しいデザインに

Perlの公式ドキュメントperldocがスマートフォン対応の新しいデザインになりました。5.30.0 Documentation - Perl Language2019年もPerlは、更新・メンテナンスされ続けていきます。

PerlテックブログはPerlゼミ はてな出張所に名称が変わりました

PerlテックブログはPerlゼミ はてな出張所に名称が変わりました。Perlゼミ はてな出張所では、Perlのイベント情報などを、書きこしていこうと思います。

テストページ

テストページ

ネイティブのディレクトリ構成を変えてみる - SPVM開発日記

SPVM言語自体は、仕様が完成に近づいてきた。まだまだ、仕様に未定の部分があるのが、C言語につなげるナイティブな部分。もう少しディレクトリ構成を簡単にできそう。デフォルトのincludeとlibのディレクトリ構成についても、もう少し考えないといけなさそう…

C言語は安全性ではなく完全にパフォーマンスをとる - SPVM開発日記

C言語の設計は、安全なことではなくって、完全にパフォーマンス。「もし、プログラマが、間違った引数を渡したら、セグフォールトしますよ。チェックなんてしません。パフォーマンスが落ちるので」という感じ。メモリセーフな言語は、セグフォールトを許さな…

C言語におけるポインタの引数をどう表現するか

SPVMには、ポインタというものはない。C言語のポインタ引数は、アドレスそのものなので、8bit整数でも、32bit整数でもよいし、配列の先頭を指しても、配列の中間を指してもよいし、なんでもできる。いくつかのアプローチがあるけれど、記述性やパフォーマン…

ファイル入出力のライブラリ - SPVM開発日記

ファイル入出力のライブラリを作成していきます。WindowsとLinux/Unixでソケット通信ができるようになるところが、目的地。

比較演算子の仕様を書いていこう - SPVM開発日記

比較演算子の仕様を書いていこう。

インターフェース型は、サブルーチン型に名称変更したい

インターフェースという名前は、複数の意味がある。一般的は、同じ関数名、引数、戻り値を持つものをインターフェースと呼ぶが、インターフェースという名前が、言語の機能そのものである場合もある。現在策定中のSPVMでは、インターフェース型は、サブルー…

仕様作成で根本的な誤りに気が付く - SPVM開発日記

SPVMの仕様書を書いているのですが、数値演算の仕様を書いているときに、根本的な勘違いに気が付く。それは、数値計算はJavaと同じ仕様にしようと思ったのですが、SPVMは、C言語のラッパーを目指しているので、C言語の仕様になるということ。たとえば、他の…

比較演算子の見直し - SPVM開発日記

比較演算子と論理演算子が戻り値を返せないのは、よくよく考えるとおかしいと思うようになってきた。 my $ret = 2 > 1; my $ret = 2 || 1; ができるようにしなくっちゃ。これは、大変やー。

数値計算の仕様を書いていく - SPVM開発日記

数値計算の仕様を書いていく。数値計算は、めっちゃ苦手な分野。ラウンドトリップとか、浮動小数点演算とか、仕様なのか処理系依存なのか、いろいろなことが、いまだによくわかっていない。

CGIのお問合せフォームをひとつつける

静的HTML構成ツールに、CGIのお問合せフォームをひとつ作ろうと思う。さくらスタンダードならLet's EncryptでSSL化ができそう。ページ構成を静的HTMLにして、お問合せだけ、CGIのフォームを作る。こうすると、サービスや商品を作っている人が、Webで公開して…

giblogのリポジトリを作成した

HTML構成ツール「giblog」のリポジトリを作成した。github.comこれは、PerlゼミやSPVMの情報発信ツールという位置づけです。簡単にブログを作成して、すぐにリリースするということをやりたくって、作り始めています。これは、コマンドラインツールです。GUI…

情報発信用にHTMLの静的構成ツールを作成する

PerlゼミとSPVMの情報発信用に、HTMLの静的構成ツールを、作成したくなってきた。ちょっと作ってみよう。

UTF8とUnicodeコードポイント、UnicodeコードポイントとUTF-16の相互変換 - SPVM開発日記

SPVMの文字コードはUTF-8にしようと考えている。Webの標準的な文字コードはUTF-8である。Windowsの標準文字コードは、日本語環境だとcp932だが、内部的には、UTF-16で処理されているらしい。とすると、UTF-8とUnicodeコードポイント、Unicodeコードポイント…

ASCIIコードを表現するエスケープ - SPVM開発日記

ASCIIコードを表現できるエスケープ表現を追加したい。 "\0D\0A\00";

シングルトンのtrueとfalse - SPVM開発日記

trueとfalseという存在は、プログラムの中で一意にしておいたほうが、メモリやパフォーマンス上よいだろう。シングルトンのtrueとfalseを作ろう。

文字列定数のコンパイル時連結 - SPVM開発日記

"abc" . "def" をコンパイル時に "abcdef" に変換する