サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ドラクエ3
nkon.github.io
CLI(command line interface)ツールはRustでも力を入れてりるターゲット。RustはLLVMをバックエンドとしているし、ライブラリも抽象化されている。GUIを扱わない範囲ではWindows/Linux/Macを対象とした移植性があるCLIツールを書きやすい。さらにGitHubではActionを用いたビルドファーム(テストも)がOSSでは利用可能だ。ソースからビルドではなく、多環境向けのバイナリをGitHub Actionsでビルドしてバイナリ配布するための設定について述べる。 2020冬シーズンの篭もりプロジェクトとしてrcというコマンドラインで動作する関数電卓を作成した。リポジトリはhttps://github.com/nkon/rc-rsに、設計ノートはhttps://github.com/nkon/rc-rs/blob/master/NOTE.mdにて公開し
最近、コンパイラを作ろうとチャレンジしている。コンパイラは基本的にアセンブラコードを出力する。その結果が意図通りに動いてテストに通れば良いが、開発中はそうならない。このアセンブラ出力が意図どおりかどうかをデバッグすることになる。ただし、コンパイラが自作でヘボいので、それが出力するアセンブラは、ソースコードデバッグができない。デバッグ情報が無い実行ファイルをデバッグするのと同じ状況になる。そんな状況でよく使う gdb コマンドをまとめた。あんまり細工していない、素のgdbコマンドを使う助けになると思う。 組み込みRustを書いていた時も、ターゲットにビルドされたバイナリを解析するために、素のgdbを使うことになった。そのような時にも gdb の使い方は役に立つ知識となる。 起動 ターゲットプログラムの実行 (gdb) run ターゲットプログラムを実行する。 (gdb) run arg1 a
ここの記事を更新するのは約1年ぶり。夏の間は遊んでいたり秋からは仕事が忙しくなったりの近況だった。 コロナウィルスで自宅に閉じ込められてしまったので、プログラミングの練習のためにテキストエディタを作ってみた。 得られた知見などを紹介しよう。 目標としている機能・実装 練習・教材用として十分な小ささ。 記事のネタになる。また、作っていて飽きない。ひと篭もりするプロジェクトとして適切なサイズ。 昔から、プログラマなら作ってみたいものとして、(1)コンパイラ (2)OS (3)エディタ、がよく挙げられる。コンパイラについては以前に書いた。今回はエディタにチャレンジしてみることにした。 テキストエディタを作る場合、GUIツールキットを使って作成することも考えられるが、今回はviのようにターミナル上で動作するタイプのものを作る。時間があれば、次の様な発展的な目標も検討したい。 設定変更機能を持つ(そ
最近、コンパイラを書くことが流行っているようだ。流行に乗ってやってみたらいろいろな知見が得られたので紹介したい。 コンパイラを書くと一口に言ってもいろいろなスコープがある。ここではC言語を用いてCコンパイラを書くことを選択した。C言語は言語仕様的にコンパクトで広く知られている。また、ツールとしてのCコンパイラも普及している。その場合、自分が書いたCコンパイラで、自分が書いたCコンパイラのソースコードをコンパイルすることが原理的には可能だ。これをセルフホストという。ひとつの到達目標として非常に興味深い。 当初は冬の間に終わらせる予定だったのだが春まで伸びてしまった。しかし、春になっても寒かったり雨で家に居る日が多く、アウトドアシーズンまでに目標のセルフホストを達成することができた。 昔、Cのインタプリタを書いたことがあったが、コンパイラを書くのは、はじめてである。時代も進んで開発手法が変わっ
この記事では、rust を使ってCortex-Mの上で直接(ベアメタルで)動作するプログラムの作り方を説明する。全部を自前で書くのではなく、STが提供する CubeMX といったツールや HAL を有効活用することを基本方針とする。 環境構築 前提とする環境は次のとおり。ホストについては Ubuntu なら apt-get で入る(なんて楽なんだろう)。CubeMX は ST のサイト(http://www.st.com/ja/development-tools/stm32cubemx.htmlからインストールする。ダウンロードするのにメールアドレスの登録を求められるが、そういった前時代的なものは滅んで欲しいものだ。ターゲットは、日本橋や通販で購入できるだろう。 Host OS: Linux(Ubuntu 16.04LTS 64bit) compiler: gcc-arm-none-eab
GPD Pocket を購入したので設定メモ。Windows10を使うのも初めてということもあり、前半はGPD Pocket 特有の話も書いてあるが、後半はWindows10の環境構築の話がメインになってしまった。 初期設定 Wikihttp://gpd.wiki ができて情報が集約されているので、まずはそちらを参照する。 Windows Update Wifi driverの更新 その他、デバイスマネージャからデバイスドライバの更新(できるものは) 処理能力 マルチタスク的な状況だと重さを感じる。たとえば、ブラウザを起動して複数のページを処理しているときとか、Facebookのウェブページとか。 タスクマネージャで見るとCPU は4つ見える。 既知の不具合と対策 蓋を閉じているのにスリープから覚める→ホールセンサの異常が疑われる。レジストリを編集して設定を出し、蓋を開いたときの動作を「何
このページを最初にブックマークしてみませんか?
『GitHub 出張所 – プログラム関係のブログはここに』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く