QLOOKアクセス解析

Lisp Interpreter by Python の歴史

過去のバージョンの更新履歴とダウンロードが行えます。

1つのソフトウェアがどのようにして生まれ、どのように成長して行ったのか。このページでは、過去のバージョンの Lisp Interpreter by Python の更新履歴とダウンロードが行えます。時には過去を振り返ることも大切なのです。

ソフトウェアの発生を残すことは非常に大切です。このソフトウェアが生まれた時はこんなにちっぽけだったのかと驚くことだと思います。Lisp Interpreter by Python も始めはCUIで動くちっぽけなLispだったのですから。

約20行ほどの1つのプログラムから始まり、90行、300行、1000行、3000行ほどのプログラムにまで成長するのです。時間が許すかぎり、ごゆっくりお楽しみ下さい。(※注 2000行ほどlexが生成してます)



2013/11/20 Lisp_0_0

Lisp作ろうプロジェクト発足 Lispをどうやって作ろうかしばらく調べものする。とりあえず、Python使いたい。




2013/11/25 Lisp_0_1

Pythonで、Lispのインタープリタを実装する。Lispがターミナル上で動いた。




2013/12/02 Lisp_0_2

PythonのTkinterを使いテキストエディタを実装。コンパイルすると、実行結果がテキストエディタに描かれる。




2013/12/12 Lisp_1_0

エディタ部とコンソール部を実装。それぞれ領域を可変することができます。その他、標準機能を実装。今後のエディタ実装の基盤となるバージョンアップでした。Tkinterと最も格闘した期間。大きく変わったため、Ver 0.x から Ver 1.x に変更。




2013/12/21 Lisp_1_1

ScrolledTextをインポートすれば使えることが判明 -> (Text -> ScrolledTextに変更)メインウィンドウ下のボタンエリアがウィンドウの大きさが変わっても違和感なくなるように変更。エディタのバッファを実装 (スレッド)。自動コンパイルの機構を実装 ON/OFF (スレッド)。




2013/12/26 Lisp_1_2

シンタックスハイライトを実装するために必要なLexerを作成。シンタックスハイライトの機能を実装 -> 自動的に色を塗り替えを行ってくれる -> エディタ部を直接書き換えるため、動作が重くなる/異常動作。(上書き問題発生中) -> 自動コンパイルもONにしていると、相性が更に悪くなる。ハイライト機能を作るの大変。




2013/12/29 Lisp_1_3

ハイライトされた後に、挿入カーソルが最終行に移動してしまう不具合を修正 -> 挿入カーソルは元の位置を保持する。ハイライトしてはいけないものをハイライトしていた不具合修正 -> carをハイライトするが、carrやcardもハイライトしていた。-> 正規表現での一致は廃止(carrやcardは判定できない)。defunで定義した関数についてもハイライトするように実装




2013/12/31 Lisp_1_4

最終行の空白を勝手に消してしまう不具合を修正 -> 明らかにおかしな挙動をしていた原因解決 -> スレッドの書き込みと、こちらからのタイミングが重なると、書き込んだ文字がおかしな位置に移動するのは未解決。この問題については上からスレッドが書き換えているため、タイミングが悪いと変な位置になってしまう。




2014/01/02 Lisp_1_5

行番号の機能を実装 -> Text, ScrolledTextの代わりにCustomTextクラスを作成custom_textをimportすることで、使用する -> プログラム中で使用していた関数をラップする形でそれぞれの関数を実装し、移植の手間を削減。行数が多くなった場合に、書き換えのたびに位置が大きく変わる問題を確認 -> 編集した位置がウィンドウ内に納まるように修正。




2014/01/07 Lisp_1_6

lisp.pyを改良 -> 空行などがあっても動作するようになりました -> エラー出力をしてくれるようになりました -> それに合わせて、今まで動いていたが、本来は間違っていた構文が動かなくなります -> 再帰のオーバーフローなども防げるようになりました -> 全体的に性能が上がっています。それに合わせて、consoleへの出力を修正




2014/01/09 Lisp_2_0

lisp.pyのエディタの適応が終了 -> 新規関数、動作の変更など。 コメント文の機能、空行にも対応 -> 今までは空行があると、その位置でコンパイルが止まってしまっていた。lexerを改良 -> 関数名に今までなかった文字が増えたため、前バージョンのlexerは対応していなかった。大幅に言語処理系が進化したため、 バージョンを 1.x から 2.x に変更しました。




2014/01/10 Lisp_2_1

関数名を一部変更 -> Common Lisp と Scheme の関数名がごっちゃになってました。(結局ごっちゃになってますが) -> まだ、マシになったんですね・・・。その他、もろもろ修正。基本的には関数名修正と、小さなバグを修正。関数名があまりにも混在しているといつも使っている関数がどちらのものを使えば良いかすぐに判断できないと思ったため。




2014/01/13 Lisp_2_2

undo/redo機能を追加 -> code_bufferが悪いことしてて、なかなか実装するのに苦労した。ハイライトする時に、文字列に色を付くようになりました -> 前バージョンでは、” list is Good!!”みたいなことを書くと、””の中で部分的にハイライトされしまう -> “で括られているものは、文字列として、色付けすることにしました。メソッドウィンドウのサイズ変更を禁止しました。ファイル保存でのバグ修正 -> ファイル名に.lisp.txtがついていない場合はつけるように改良。




2014/01/18 Lisp_2_3

ハイライト機能のon/off機能追加 -> スペックが足りないパソコンでも快適に動作させるための機能。ハイライト機能は処理負荷が重くなるため、それらを緩和させるための機能。MakefileやMANIFEST.inなどの不備を修正 -> make sdistで頒布用のファイル生成が可能になりました。その他、設定の不備を修正。ライセンスを明記しました。アイコンがおしゃれになりました。細かいところが凝ってますよ。




20xx/xx/xx Lisp_2_x

次のアップデートは未定です。