今日は出勤時に雨だったわけですが。
いましたねー傘差し自転車。
どのくらい周知されてんだろか違反扱い云々の話。
access 2007 ルックアップウィザード ルックアップ列
ゲームプログラマのためのコーディング技術
パラパラと眺めてみたけど、最後の章がコードのメトリクス関連なのは面白いと思った。
お、kindle版ももうある?
ゲームプログラマのためのコーディング技術
Introduction to J Programming Language (2004) | Hacker News
2004とかあるけど、実際元記事見たら日付はこの5月だったり?
Introduction to J Programming Language [2004]
それはともかく、
By the way, APL is sometimes called “a Chinese BASIC” due to its symbols.
ちゃいにーずべーしっく……
PyPy 2.6.0登場 - Pythonより7倍高速化 | マイナビニュース
PyPy 2.6.0登場 - Pythonより7倍高速化 | マイナビニュース
PyPy 2.6.0の主な特徴は次のとおり。
JIT最適化の促進。CPythonと比較して7倍を超える高速性を実現
zlibおよびbz2モジュールにおける入出力パフォーマンスの向上
JITパフォーマンスを引き上げるためのリファクタリングとクリーンナップの実施
フレームサイズの改善
JITコードのプロファイリングを実施することを目的とした新しい軽量のスタティックプロファイラ「vmprof」を導入(実験段階)
TLS 1.1および1.2のサポート改善
毎度のことだけどこういう「n倍高速」って書き方は誤解招くんじゃないかなあと思いつつ
(JavaとC++の比較みたいに限定的な状況でとか前提条件ありそうだし)
それっぽい英文記事を探すと
PyPy Status Blog: PyPy 2.6.0 release
PyPy Status Blog: PyPy 2.6.0 release
Performance improvements:
Slight improvement in frame sizes, improving some benchmarks
Internal refactoring and cleanups leading to improved JIT performance
Improved IO performance of zlib and bz2 modules
We continue to improve the JIT’s optimizations. Our benchmark suite is now over 7 times faster than cpython
確かにover 7 times faster than cpython
とある。
んで、Our benchmark suite
というのが前にくっついているので
どんなベンチマークなんJAROねと……(続く?)
Python (で書いたプログラム)の高速化云々といえばこういうのもちょっと前にあって。
Optimizing Python With Cython - DoubleMap Engineering
Optimizing Python With Cython - DoubleMap Engineering
Python is slow. It’s still faster than a lot of other languages, but describing Python code as “fast” will
probably get some weird looks from people who use compiled or JITted languages.
Still, I love Python for its design and speed at which I can write good code. Most of the time, when writing
Python for distributed or web applications, it doesn’t matter. Your runtime is usually dominated by network
traffic or data accesses than it is by raw computational speed. In those cases, the correct optimization is
often reducing network requests or indexing your data.
Sometimes—just occasionally—we actually do need fast computation. Traditional Python wisdom has been to profile
your code (perhaps using cProfile), identify the hot spot, and rewrite it in C as a Python extension. I’ve
had to do that before for a handwriting recognition algorithm with great success (it turned a 2–3 second
computation into a practically real-time one), but writing C code and then figuring out the FFI was a pain.
I had to rewrite the algorithm in C, verify that my C version was correct and didn’t have memory errors, and
then figure out the right incantations to get it to cooperate with Python.
Let’s try something different this time.
確かに高速化のためにCで書き直すのは面倒…という気持ちは分かる。
でもここで Cyhon 持ってこれるものなんだねえ。
Cython といえば翻訳本出ますな。
Pyhon の次は Perl で。
Perl 5.22がリリースされました - 数学関連の機能強化、メソッドのパフォーマンスの改善、正規表現の改善 - サンプルコードによるPerl入門 - 安定と信頼のPerlを学ぶ
で紹介されてるもの以外にも興味を惹かれた新機能やらがあって。
perldelta - what is new for perl v5.22.0 - metacpan.org
perldelta - what is new for perl v5.22.0 - metacpan.org
Core Enhancements
New bitwise operators
New double-diamond operator
New \b boundaries in regular expressions
qr/\b{gcb}/
qr/\b{wb}/
qr/\b{sb}/
Non-Capturing Regular Expression Flag
use re 'strict'
Unicode 7.0 (with correction) is now supported
use locale can restrict which locale categories are affected
Perl now supports POSIX 2008 locale currency additions
Better heuristics on older platforms for determining locale UTF-8ness
Aliasing via reference
prototype with no arguments
New :const subroutine attribute
fileno now works on directory handles
List form of pipe open implemented for Win32
Assignment to list repetition
Infinity and NaN (not-a-number) handling improved
Floating point parsing has been improved
Packing infinity or not-a-number into a character is now fatal
Experimental C Backtrace API
Security
Perl is now compiled with -fstack-protector-strong if available
The Safe module could allow outside packages to be replaced
Perl is now always compiled with -D_FORTIFY_SOURCE=2 if available
Incompatible Changes
Subroutine signatures moved before attributes
& and \& prototypes accepts only subs
use encoding is now lexical
List slices returning empty lists
\N{} with a sequence of multiple spaces is now a fatal error
use UNIVERSAL '...' is now a fatal error
In double-quotish \cX, X must now be a printable ASCII character
Splitting the tokens (? and (* in regular expressions is now a fatal compilation error.
qr/foo/x now ignores all Unicode pattern white space
Comment lines within (?[ ]) are now ended only by a \n
(?[...]) operators now follow standard Perl precedence
Omitting % and @ on hash and array names is no longer permitted
"$!" text is now in English outside the scope of use locale
"$!" text will be returned in UTF-8 when appropriate
Support for ?PATTERN? without explicit operator has been removed
defined(@array) and defined(%hash) are now fatal errors
Using a hash or an array as a reference are now fatal errors
Changes to the * prototype
(略)
Documentation
New Documentation
perlunicook
略
↑見出しはこんな感じ。お、a2p なくなった?
New bitwise operators
A new experimental facility has been added that makes the four standard bitwise operators (& | ^ ~) treat
their operands consistently as numbers, and introduces four new dotted operators (&. |. ^. ~.) that
treat their operands consistently as strings. The same applies to the assignment variants (&= |= ^= &.= |.= ^.=).
文字列対象の bitwise operetor ってのがピンとこないけど(対応する)一文字ずつ操作する?
New \b boundaries in regular expressions
qr/\b{gcb}/
gcb stands for Grapheme Cluster Boundary. It is a Unicode property that finds the boundary between sequences of
characters that look like a single character to a native speaker of a language. Perl has long had the ability
to deal with these through the \X regular escape sequence. Now, there is an alternative way of handling these.
See "\b{}, \b, \B{}, \B" in perlrebackslash for details.
qr/\b{wb}/
wb stands for Word Boundary. It is a Unicode property that finds the boundary between words. This is similar to
the plain \b (without braces) but is more suitable for natural language processing. It knows, for example,
that apostrophes can occur in the middle of words. See "\b{}, \b, \B{}, \B" in perlrebackslash for
details.
qr/\b{sb}/
sb stands for Sentence Boundary. It is a Unicode property to aid in parsing natural language sentences.
See "\b{}, \b, \B{}, \B" in perlrebackslash for details.
ふむ。
Use of multiple /x regexp modifiers
It is now deprecated to say something like any of the following:
qr/foo/xx;
/(?xax:foo)/;
use re qw(/amxx);
That is, now x should only occur once in any string of contiguous regular expression pattern modifiers. We do not
believe there are any occurrences of this in all of CPAN. This is in preparation for a future Perl release
having /xx permit white-space for readability in bracketed character classes (those enclosed in square
brackets: [...]).
これか /xx 。
New Documentation
perlunicook
This document, by Tom Christiansen, provides examples of handling Unicode in Perl.
unicook という名前からすると、 Unicode に関連したもの?