時の羅針盤@blog
オランダの生活、自身が行っているSagittarius Schemeの開発日誌、
その他雑多なことをつづってます。
Let's start Scheme
(Move to ...)
(はじめよう Scheme 0)
(はじめよう Scheme 1)
(はじめよう Scheme 2)
(はじめよう Scheme 3)
(はじめよう Scheme 4)
(はじめよう Scheme 5)
(はじめよう Scheme 6)
(はじめよう Scheme 7)
(はじめよう Scheme 8)
▼
2018-08-28
JSON Schema
›
JSON Schemaというものがある。これはみんな大好きJSONにXSDよろしく型をつけようというものだ。XSDより簡単っぽいのでとりあえず実装してみた。こんな感じで使える。 // product.schema.json { "$schema": ...
2018-08-22
キャッシュバグと手続きの同一性
›
こんなバグに遭遇した。 ASSERT failure /home/takashi/projects/sagittarius/src/closure.c:50: SG_CODE_BUILDERP(code) C assertなので、いかんともしがたいやつである。 再現コード...
2018-08-15
YAMLパーサー
›
個人的にはYAMLは好きではないのだが、世の中の流れはYAMLに行っているのは明白かなぁと思っている。ということで、SagittariusにはYAMLのサポートを入れることにした。こんな感じで使える。 # test.yaml %YAML 1.2 --- receipt: ...
2018-07-19
パイプライン アイデア編(2)
›
前回何となく書いたパイプラインのアイデアをもう少し進めてみた。 例えばこんな感じで使えるとうれしいだろうか? (import (rnrs) (util concurrent)) (define-pipeline-catalogue pipeline-cat...
2018-07-16
【備忘録】Windows 10 上である程度まともな開発環境を作る
›
今月から新しい職場になったのだが、前職と違い開発環境がWindowsであった。噂にはMacが与えられる予定だったらしいのだが、偉いさんの鶴の一声で却下されたとか…まぁ、大企業あるあるだと思って前向きに考えることにした。っで、今日環境がWindows 7からWindows 10にア...
2018-06-07
パイプライン アイデア編
›
MongoDBバインディングの使用例を書いている際に、アクターを繋げてパイプライン的に動かすようなのを書いたのだが、これうまくやるとパターンにできないかなぁと思えてきた。 イメージとしては以下のようなブロックをつなげていくような感じ +==============p...
2018-06-04
MongoDBバインディング
›
ここ数週間R6RSな処理系で動くMongoDBバインディングを作っていたのだが、なんとなくお披露目してもいいかなぁという感じの出来になってきたのでお披露目してみる。 リポジトリは ここ 。 こんな感じで使える。 (import (rnrs) (mongod...
2018-05-16
あるソフトウェア開発者の転職経験記
›
オランダ在住かつマーケット以上の給料をもらっているという前提条件があるので、あまり参考にならないかもしれないが、こんな感じでやったら成功したというのを一応記録しておく。 【条件設定】 転職する際にはなぜ転職したいのかを明確にしておくとゴールが設定しやすい。僕の場合は以下が...
2018-05-07
ライブラリの依存性
›
Scheme でライブラリを書いていると巨大なファイルになることがままある。最近だと このファイル 。まだ未完成なのだが既に1000行近くある(まだ1000行とも言えるが、個人的にファイル内の移動が既に辛い)。辛いなら分ければいいじゃない?という話なのだが、怠け者根性と分け方で迷...
2018-04-26
あなたがSchemeを使うべきではないn個の理由
›
ちょっと前にこんなことを呟いた。 I often see this type of dis about Scheme or LISP in general but which standardised programming language has, say, socke...
2018-03-30
Ephemeron を使ってみる
›
Ephemeron は SRFI-124で定義されているがどういったものなのか、どういう挙動が期待されるのかというのはなかなかに想像しづらい。ということで、ちょっと触りつつ解説してみる。 まず、 ephemeron とは何か?ものすごく簡単に言えば循環構造を許す弱対といえる。...
2018-03-23
Generatorの勧め
›
Schemeでリスト処理を書いていると中間リスト(処理の最中に作成されて捨てられるリスト)の存在が気にならないだろうか?ClojureにはTransducersがあるのにSchemeにはないのだろうか?そこでGeneratorである。 Generatorは元もとGaucheに...
2018-03-09
右回り
›
スタックオーバーフローにこんなのがあった。 Rotating a list to the right in scheme 真面目に実装するのはだるいなぁと思ったのでこんな風に書いてみた。 (import (rnrs) (srfi :1)) (define...
2018-03-02
ファイルタイムスタンプとChicken Scheme
›
Sagittariusではファイルのタイムスタンプを変更する方法を用意していなかった。それが問題になったことがなかったというのが一番の理由である。が、先日これが問題になったので追加したという話。 問題になったもの Scheme EnvでChickenのインストーラを作成して...
2018-02-26
多言語を扱う際のメンタルモデル
›
NetflixでDeath Noteを見ていた際に「L is dead」というメッセージが見えた。Lが実際に死んでからしばらく時間が立っているので、実は他にも「L is alive」等のメッセージが存在し現在のLの状況を伝えたという感じだったのだろうか。 「Death」「di...
2018-02-24
MSYS2サポート 2
›
前回 の続きと僕なりの回答。 前回MSYS2上でのシンボリックリンクの話とSagittarius上でどうするかというのを書いた。書いた後に助言やMSYSがどのようにシンボリックリンクを扱っているかというののヒント(調べた結果Qiitaの記事が古いのか現状の挙動と違った)をもら...
6 comments:
2018-02-16
MSYS2サポート
›
Sagittarius 0.9.0からはMSYS2が実験的にサポートされる。実験的と書いているのは単にまだ安定しないのと、他のPOSIX環境と多少挙動が異なる点があるというところからである。挙動に関しては積極的に変えていく可能性があるので、WindowsかつMSYS2を使っている...
2018-02-09
TLS実装2(完)
›
Sagittarius上にビルトインなTLSを実装し終えた。POSIXな環境(Linux、OSX)ではOpenSSLをWindowsな環境ではSchennal、CygwinとMSYS2上ではあればOpenSSL、なければSchannelを使うという感じになっている。 今までP...
2018-02-01
TLS実装
›
Scheme環境ツール でTLS実装をOpenSSLかSSPIに切り替えると書いて、実際にそうしているのだが、SSPI(正確にはSchannel)の実装が辛い。何が辛いか? ドキュメントが飛び飛び MSDNにAPIの説明はあるんだけど、フローの説明がない 例えばX.50...
2018-01-26
Mingwサポート
›
Ubuntu上でもWindows用のコードをコンパイルしたいと思いMingwのサポートをしてみた。実際にMingwでコンパイルされたバイナリを動かしていないのでコンパイルできる以上の意味を今のところ持っていない(そのうちCIでは回すようにしたいが、優先度的には多少低め)。 と...
‹
›
Home
View web version