Diagram as Code6 different ways to turn code into beautiful architecture diagrams
Diagram as Code6 different ways to turn code into beautiful architecture diagrams
注意事項 おそらくCRuby (いわゆるMRI) 限定です。3.1.2で確認しています。 環境構築が面倒だったため、実際には32bit環境でテストしていません。意図通りに動かなかったらすみません…… 以下解説 doキーワードの多重性 RubyではLRパーサージェネレーターであるBisonを使いながらも、LR(1)とは思えない高度な構文をパースさせるために、字句解析器が非常に複雑な状態管理を行っています。見た目が同じトークンでも、Bisonに渡すときには状態に応じて異なるトークンとして認識させることがあります。 doキーワードもそのような多重性をもつトークンの例で、構文解析器からは以下の5種類のトークンとしてあらわれます: 通常の識別子 foo.do ラムダ式のdo-endブロック -> do end 真のdo-endブロック f g do end 偽のdo-endブロック f do end
Cycloneとは CycloneはRustのリージョン推論の原型のひとつになった実験的なプログラミング言語です。 現在はメンテナンスされていませんが、歴史的な意義があることからCycloneのビルド環境を整備してみました。 (完結するかは未定) ソースの取得 CycloneのWebサイトは生きているので、ソースはCycloneのDownloadページから取得できます。しかしここに不穏な文言があります。 If you use gcc 4, you must get the latest version of Cyclone from SVN (see below). 最新安定版よりも新しい版があること、またgccのバージョンに依存して壊れることが読み取れます。そしてSubversionと書いてあることから嫌な予感がした人もいると思いますが、このリポジトリは既に動いていません。 というわけで
1.はじめに 膨大な量の電子データから目的となるデータを取得・抽出する情報検索。その技術は広く普及し、多くの人々が、様々な場面でその恩恵を受けています。GoogleやBingをはじめとした、世の中に大きなインパクトを与えるWeb検索がその代表例ですが、物件検索や論文検索、メール検索などその応用は様々です。 さて、今回取り組んだのは、Goによる転置インデックスを用いた全文検索エンジンのスクラッチ実装です。研究で自然言語処理を学んだことをきっかけに、情報検索や転置インデックスといったトピックに強い興味が湧いたので、Elasticsearch等には頼らず、ゼロから実装を行いました。以下、リポジトリになります。 本記事では、Omochiの設計・実装に関する説明を行なっていきます。 2.転置インデックス型・全文検索エンジンOmochi リポジトリのREADME.mdにも記載がありますが、今回実装した
Rust を使ってみたくなり、勉強のために簡単な CLI ツールを作ってみました。 そして無謀にも「どうせなら並列処理も試してみよう」と挑戦してみたのですが、ワーカースレッドを複数にするとガクっと遅くなってしまいました。 図 1 経過時間の比較 # ワーカースレッドが 1 の場合 $ time ./target/x86_64-unknown-linux-musl/release/xquo -w 1 < tmp/tmp_large.txt > /dev/null real 0m25.902s user 0m30.587s sys 0m1.637s # ワーカースレッドが 2 の場合 $ time ./target/x86_64-unknown-linux-musl/release/xquo -w 2 < tmp/tmp_large.txt > /dev/null real 0m45.006s
We have all used Box<T> before in our Rust code. It’s a glorious type, with great ergonomics and flexibility. We can use it to put our values on the heap, but it can do even more than that! struct Fields { a: String, b: String, } let fields = Box::new(Fields { a: "a".to_string(), b: "b".to_string() }); let a = fields.a; let b = fields.b; This kind of partial deref move is just one of the spectacul
July 23, 2022 This blog post is about hypher, a fast hyphenation library for Rust. I’m currently working on a pure-rust LaTeX alternative called Typst. To obtain justification results on par with LaTeX, Typst needs support for hyphenation. A quick search on docs.rs showed that there’s only really one hyphenation library, fittingly called hyphenation. All other crates I’ve found were small variatio
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く