ダウンロード
※ NLUXはフリーソフトウエアであり,無保証です.
個人の責任の上で利用してください.
- NLUX alpha (2024/09/09版)
- 全体の修正
- NLTLを追加(Three-L:Low-Layer Language)
- NLLの修正
- ARRAY/MEMORYでの変数設定エラー(CONST変数に代入しようとするなど)でメモリリークになる問題の修正
- NLUX alpha (2024/07/16版)
- NLLの修正
- CTOI()で文字列全体を扱うように変更
- ISALNUM()/ISALPHA()/ISASCII()/ISCNTRL()/ISDIGIT()/ISGRAPH()/ISLOWER()/ISPRINT()/ISPUNCT()/ISSPACE()/ISUPPER()/ISXDIGIT()を追加
- TOLOWER()/TOUPPER()を追加
- NLUX alpha (2024/07/15版)
- NLLの修正
- ATOI()/INPUTN()の文字列処理を改良(先頭0を8進数とする仕様を廃止,0b/0o/0dによる進数指定を追加)
- nllibcの修正
- strtol()の書式の細かい動作をFreeBSDのstrtol()に合わせる
- NLUX alpha (2024/07/03版)
- NLUX alpha (2024/06/20版)
- NLLの修正
- nllibcの修正
- strtol()で"+"/"-"のような文字列を変換してしまう問題を修正
- NLUX alpha (2024/05/31版)
- NLLの修正
- 行番号にマイナスの値を指定するとメモリリークが発生する問題の修正
- 行番号にマイナスの値を指定可能にする
- NLUX alpha (2024/05/15版)
- NLLの修正
- ATOF()/FTOA()を追加
- キャラクタセットを追加・修正
- NLUX alpha (2024/04/30版)
- NLLの修正
- TYPEOF()を整数値を返すように変更
- TYPENAME()を追加
- LENGTH()をSTRLEN()に変更
- NLUX alpha (2024/04/19版)
- NLLの修正
- NULLARRAYを追加し,NULL配列を可能にする
- 配列に対する演算を追加
- 配列に対するポインタアクセスの動作を変更
(配列をポインタで指したときに,(*P)[0]のようなアクセスができず期待しない動作になることの対処)
- 変数・配列・数式の解放時に値をクリアする動作を廃止
(ポインタで循環リンクとなる場合に,参照カウンタが落ちずメモリ解放洩れが発生する問題の対応だったが,数式の解放時に値がクリアされるとポインタで指している場合に値が消えてしまいダイレクトモードでの動作で値が残らないので廃止する.循環リンクの問題はクリア動作をしたとしても完全には避けられないので,プログラマ側で対応することとする)
- NLUX alpha (2024/04/17版)
- NLLの修正
- GPAINT()で画面外を指定すると無限ループになる問題の修正
- NLUX alpha (2024/04/14版)
- NLLの修正
- ファイルの行単位入力で,行末がバックスラッシュの場合に行を連結する
- 乱数で負の値が返ることがあった問題の修正(0x80000000の場合にコンパイラの最適化によりそのまま返ってしまっていたため)
- 長い行の入力でNLLが終了してしまう問題の修正
- NLUX alpha (2024/04/12版)
- NLUX alpha (2024/04/11版)
- NLLの修正
- NULLSTR/NULLMEM/NULLFUNC/NULLLABELを追加
- NULLをNULLPTRに,UNSETをNULLに変更
- Read Onlyの変数を追加(UNDEFをRead Onlyにする)
- 組み込み変数に対してFIXED高速化が有効になっていなかったバグを修正
- SIZEOF()/CHOMP()を追加,SPLIT()/SPLITS()/FPUTC()/FGETS()/FPUTS()を修正
- 比較演算子(==,!=)を強化(NULL値との比較を追加)
- 論理演算子(&&,||)を強化(異なる型の扱いを追加)
- サイズ演算子(#)をベクトル以外の型に対応
- 条件演算子(?),位置演算子(@),サイズ演算子(#)で範囲外でNULLを返すように修正
- COND()/AT()で範囲外でNULLを返すように修正
- QPOPL()/QPOPF()でキューが空の場合にNULLを返すように修正
- FPUSH()/FPOP()/QPUSHF()/QPOPL()/QPUSHL()/QPOPF()の動作を修正(個数を戻り値/引数とする)
- STOPコマンドに引数を追加(エラーメッセージの出力用)
- キャラクタセットを追加
- NLUX alpha (2024/04/03版)
- NLLの修正
- ポインタで循環リンクとなる場合に,参照カウンタが落ちずメモリ解放洩れが発生する問題の修正(変数・配列・数式の解放時に値をクリアする)
- ポインタで循環リンクとなる場合に,表示が無限ループになる問題の修正
- ラベル/変数のリンクリストに前方ポインタを持たせることで,削除時の検索を廃止する
- 変数名利用かつ文法エラーの際に不正な変数が操作される問題の修正
(字句解析時には変数でなく変数名が設定されており,解析エラーが発生すると不正な変数に対して変数削除が呼び出される.
従来は変数削除時に検索されていたため発現しなかったが,前方ポインタによる修正でダウン現象が発生した.
変数名の種別としてELEMENT_TYPE_SYMBOLを新設した)
- NLUX alpha (2024/03/27版)
- NLLの修正
- NEWの変数に対する動作を値領域のクリアから値領域の解放・獲得に変更
- UNSETを追加
- 参照演算子(@=)で参照のループが設定されないようにチェックを追加
- 配列・メモリ領域・ポインタの値表示を追加
- NLUX alpha (2024/03/15版)
- NLLの修正
- INPUTN()/SPLIT()/SPLITS()を追加
- プリセットのキャラクタの色を調整
- nllibcの修正
- NLUX alpha (2024/03/06版)
- NLLの修正
- G_FLUSHを描画フラグでも有効にする
- GSCREEN()で描画モード未指定で誤動作する問題の修正
- BMP画像のパディング計算誤りにより,アラインメントされていないデータで画像が歪む場合がある問題の修正
- BMP画像の保存時のパレット対応(画像サイズを削減できる)
- NLUX alpha (2024/02/11版)
- NLLの修正
- WindowsでWAITが正常動作しない問題を修正
- プリセットキャラクタを追加
- NLUX alpha (2024/01/24版)
- NLLの修正
- RENAME()/UNLINK()/TRUNCATE()/MKDIR()/RMDIR()/CHDIR()/FTRUNCATE()を追加
- GCHARSET()の戻り値を修正
- プリセットキャラクタを追加修正
- nllibcの修正
- NLUX alpha (2024/01/20版)
- NLLの修正
- キャラクタセット2/3を追加
- GGETCOLOR()/GSETCOLOR()にフォアグラウンド色を追加,GCHARSET()を追加し,GCHAR()/GPRINT()から色の指定を削除
- GPAINT()に指定座標の色範囲の塗りつぶしを追加
- 低階調色(G_ROUGHCOLOR)とグレースケール(G_GRAYCOLOR)を追加
- NLUX alpha (2023/12/19版)
- NLLの修正
- グラフィック無効(USE_GRAPHIC)でのビルドエラーの修正
- NLUX alpha (2023/12/10版)
- NLLの修正
- プリセットキャラクタを追加(llchan)し配置変更
- NLUX alpha (2023/12/07版)
- NLLの修正
- プリセットキャラクタを追加(paichan/ntsensei/nijimasu-kun)
- NLUX alpha (2023/12/06版)
- NLLの修正
- 文字のグラフィック描画を追加(GCHAR()/GPRINT())し,8x8フォント/16x16フォント/プリセットキャラクタを追加
- グラフィックの透過色・背景色等の扱いを変更
- モノクロ色の扱いを追加
- NLUX alpha (2023/11/20版)
- NLLの修正
- GOTO/GOSUBの引数がカッコで括られた単一のベクトル値の場合に,そのまま渡すように修正
- NLUX alpha (2023/11/19版)
- NLLの修正
- 関数コール用スタックを作成し,関数呼び出しなどの引数・戻り値をスタック経由で渡すように修正
- NLCCの修正
- RISC-V対応
- MIPSの関数呼び出しの命令誤りを修正
- NLUX alpha (2023/11/17版)
- NLLの修正
- 条件プレフィックスを「,」→「:」に変更
(従来はラベルの関数呼び出しが「SUBR:()」のような書式だったため,
行頭にあった場合に条件プレフィックスが「:」だと誤認識されるため,
条件プレフィックスを「:」にすることができなかった.
ラベルの変数化によりラベルの関数呼び出しからコロンが廃止されたため,
条件プレフィックスを「:」にすることが可能になった)
- 位置演算子(「@」),条件演算子(「?」)の引数が{}の場合に,すべての要素を評価するようにする
- 関数呼び出しで不正にFIXEDフラグが立つことで結果が正しく得られない問題の修正
- NLUX alpha (2023/11/16版)
- NLLの修正
- ラベル定義の書式を.SUBR:(X)→.SUBR(X)に変更
- ラベル定義をコマンドのラベル型でなく標準コマンドに対して可能にして,ラベル型を廃止(通常コマンドにラベルを付加できるようになった)
- NLUX alpha (2023/11/15版)
- NLLの修正
- ラベルを変数化して処理を統合(ラベルの関数呼び出しの書式をSUBR:()→SUBR()に変更)
- NLUX alpha (2023/11/12版)
- NLUX alpha (2023/11/11版)
- NLLの修正
- 連接演算子(「(I==0) I++」のような,演算子を書かない表記)を廃止(関数・ラベルの変数化の準備)
- &>,|> 演算子がベクトル値でエラーになる場合があった問題の修正
- NLUX alpha (2023/11/06版)
- NLLの修正
- GCOPYIMAGE()をGCOPY()に変更し,コピー元とコピー先が重複している場合の配慮を追加(バッファを経由してコピーする)
- GROTATE()を追加
- GCIRCLE()にG_EVENPOSの対応を追加
- NLUX alpha (2023/10/31版)
- NLLの修正
- LINE()/BOX()で,座標未指定時はカーソル位置とする
- GDOT()/GLINE()/GBOX()/GCIRCLE()/GPAINT()で,座標未指定時は描画の最終座標とする
- NLUX alpha (2023/10/25版)
- NLLの修正
- IF〜ELSE〜ENDIFを追加
- GOTO/GONEXT/RETURNで,DISCARDする数を指定できるようにする(ループやIF〜ENDIFから抜けるときの配慮)
- DUMPにD_POSITIONを追加
- エイリアス演算子を <- から @= に変更(X<-10のような比較が期待通りにならないことの配慮)
- NLUX alpha (2023/10/20版)
- NLLの修正
- GSETCOLOR()にフラグを追加・色の扱いを修正
- GPAINT()の色の扱いを修正
- NLUX alpha (2023/10/18版)
- NLLの修正
- 関数呼び出しで,変数を()無しで記述することで値をそのまま渡せるように修正
- 未加工演算子({})を追加(要素数1のベクトル値を生成できる)
- 関数の引数を未加工で渡すように修正(引数としてベクトル値を渡せるようになる.従来は引数1個の場合はスカラー値扱いとなり,ベクトル値は展開されていた)
- ()の処理を演算子化して共通化
- サブルーチンの関数呼び出しで,()以外の引数を可能にする
- NLUX alpha (2023/10/15版)
- NLLの修正
- DUMP L_CONST で一覧が出ない問題の修正(UNDEF対応の不足)
- NLUX alpha (2023/10/14版)
- NLLの修正
- GSETRANGE()を反転に対応
- GCOPYIMAGE()の幅と高さが負の値の動作を修正
- NLUX alpha (2023/10/12版)
- NLLの修正
- GGETRANGE()/GSETRANGE()を追加
- FPOP()/QPOPF()/QPOPL()で,空の引数でPOPした値を返し,引数指定で引数の古い値を返すように仕様変更
- 未定義定数(UNDEF)を追加
- スタックのサイズを拡張(64→256)
- NLUX alpha (2023/10/10版)
- NLLの修正
- 順序性の無い関数で,引数が定数のみの場合には初回のみ呼び出しを行うことで高速化する(-no-fixedで無効化可能)
- GSCREEN()でウィンドウオープンしていない状態でもイメージの描画が行えるように修正
- SDL1利用時に,ウィンドウの×ボタンでウィンドウがクローズしない問題の修正
- G_BUFFER利用時のパラメータ変更の排他の配慮を追加(_sync()の追加など)
- GCIRCLE()を縦横に対応
- GCOPYIMAGE()を拡大縮小・反転に対応
- GMAINIMAGE()を廃止しGGETMAINIMG()/GSETMAINIMG()/GGETDOTSIZE()/GSETDOTSIZE()を追加
- NLUX alpha (2023/09/30版)
- NLLの修正
- 演算エンジン部分のみ切り出して利用する場合に,やりやすいように改良(ソースコード構成の整理など)
- フレームバッファ機能を無効化できるようにする(USE_FRAMEBUF)
- 定数どうしの演算は初回のみ行うことで高速化する(-no-fixedで無効化可能)
- DUMP L_OPERATOR を追加
- ヘッダファイルのインクルードを見直しして整理
- NLUX alpha (2023/09/26版)
- NLLの修正
- ポインタをベクトル値でなく配列に対して利用可能にする.(ベクトル値を指すことで,構造体へのポインタのような表現を可能にするため)
- 「.」「->」演算子を追加(構造体のメンバアクセスのような表現を可能にするため)
- NLUX alpha (2023/09/24版)
- NLLの修正
- LOADのネストを可能にする(ライブラリ作成方法の強化)
- EVALF, FEVALF()を追加(ライブラリ作成方法の強化)
- NLUX alpha (2023/09/21版)
- NLLの修正
- APLAY()をA_REMAINで実行したときにダウンする問題の修正(演奏情報のコピー時のポインタ配慮もれ)
- APLAY()が演奏データ無しで呼び出された場合に,空の演奏を行うように修正
- APLAY()のMMLを未指定可能にする
- NLUX alpha (2023/09/19版)
- NLLの修正
- WindowsでBMP画像の保存・読み込みとWAVファイルの保存が正常動作していなかった問題の修正(テキストモードでオープンしていたため,改行コードが変換されていた)
- NLUX alpha (2023/09/14版)
- NLLの修正
- 簡易ビルド(Android向け等)時にグラフィックとオーディオを無効にせず,SDLを未使用にする.(グラフィックとオーディオは限定機能で利用可能)
- NLUX alpha (2023/09/09版)
- NLLの修正
- グラフィックのリクエストバッファリングで,バッファフルで自動フラッシュするように改良
- NLUX alpha (2023/09/07版)
- NLLの修正
- ヘルプメッセージ・ドキュメントのコマンド記載不足を修正
- グラフィックにSDL無効時のダミー操作を追加(SDL無効時も,グラフィック操作は可能)
- ラベル名と変数名の処理を共通化(ラベルの関数呼び出しで,扱えない名前がある問題の修正)
- POP演算子(-)の値を,復旧後の値から復旧前の値に変更(関数から戻る際に前の値を返せるようにするため)
- ラベルの関数呼び出し/EVAL/FEVAL()で,RETURN時の戻り値をコピーして保存するように修正(RETURN操作で値が変化した場合に,変化前の値を返すようにするため)
- NLUX alpha (2023/09/05版)
- NLLの修正
- プログラム実行時にARGC/ARGV[]がクリアされていた問題を修正
- 値の属性の表示方法を修正
- 標準入力からのプログラム入力を可能にする(--/stdin)
- RETURNの引数の評価順序を修正
- ファイル操作関数でファイルポインタを0指定で標準入出力が使われない問題の修正
- NLUX alpha (2023/09/04版)
- NLLの修正
- MEMORY()関数をFMEMORY()に変更
- 配列の構造を見直しし,配列の代入を可能にする
- FDIM()を追加
- 配列/メモリ領域のダンプに表示制限を追加する
- 配列/メモリ領域のサイズチェックの強化
- NLUX alpha (2023/09/01版)
- NLLの修正
- ベクトル展開演算子(@)で以前の末尾の値が残るバグを修正
- ラベルの.と名前の間に空白を許す(名前と他行でインデント合わせをしたいときのため)
- NLUX alpha (2023/08/30版)
- NLLの修正
- コマンドのフォーマットチェックを強化
- TYPEOF()/NZERO()/CMP()/REP()/INSERT()/DELETE()/MAX()/MIN()/ABS2SUM()を追加
- PRINTF()/SPRINTF()/FPRINTF()のフォーマット指定に2進数表示(%b)を追加
- NLUX alpha (2023/08/27版)
- NLLの修正
- DFROM/DREAD/DATAコマンドを追加
- キュー関連の関数を追加(QOPEN()/QCLOSE()/QLENGTH/QPUSHF()/QPOPL()/QPUSHL()/QPOPF())
- 展開演算子(%)を追加(ベクトル内ベクトルを展開する)
- 要素数演算子(#)で負の値を指定可能にする
- NLUX alpha (2023/08/24版)
- NLLの修正
- PRINTの出力先をフレームバッファから標準出力に変更(フレームバッファ有効時のデバッグで,出力が見られず混乱するため)
- FLUSH()/CLEAR()に強制フラッシュのフラグを追加
- NLUX alpha (2023/08/23版)
- NLCCの修正
- goto XXX; でセミコロンが2重に付加されていた問題を修正(if (...) goto XXX; else ... のような構文が正常に動作していなかった)
- nllibcの修正
- abort()を追加
- -fstack-protectorに対応(__stack_chk_guard/__stack_chk_fail()を追加)
- 全体の修正
- 静的リンクのオプションの調整
- Makefileの各種調整
- NLUX alpha (2023/08/21版)
- NLLの修正
- 組込み向けに移植しやすくするための配慮(初期化・メイン処理・終了処理のヘッダファイルを独立させ,インクルードしやすくする)
- MinGWでネットワーク機能無効でビルドエラーになっていた問題を修正
- 全体の修正
- NLUX alpha (2023/08/20版)
- nllineの修正
- Ctrl+c,Ctrl+j,Ctrl+t,Ctrl+u,Ctrl+wに対応
- 全体の修正
- Android向けビルド用Makefileで浮動小数演算に対応する
- NLUX alpha (2023/08/19版)
- NLUX alpha (2023/08/18版)
- NLLの修正
- フレームバッファの利用で,終了時に端末制御が回復しない問題を修正
- 全体の修正
- curses/readlineライブラリのディレクトリの指定を追加
- nll/nlshで,nllineとreadline系ライブラリ利用時のCtrl+D/Ctrl+Cの動作を調整
- NLUX alpha (2023/08/17版)
- NLLの修正
- 文字列用のバッファを可変にし,長さの制限を拡大する(256→65536)
- fputs()のエラー処理の誤りを修正
- 乱数系列が32/64bit環境で異なる問題を修正
- ネットワーク関連の関数のnllibc利用時の判断を修正
- ネットワークのサンプルプログラムを追加
- オンラインマニュアルの記述不足を修正
- NLCCの修正
- _Nonnull / _Nullable を追加(clang対応)
- 文字列中のシングルクォートでバックスラッシュの付加を廃止(clang対応)
- nllibcの修正
- リンカスクリプトにプログラムヘッダを追加し,.rodataセクションが.textと同一セグメントになるようにする.(.rodataセクションが独立したセグメントになるとダウンすることがあるため)
- リンカスクリプトにPT_GNU_STACKの定義を追加
- MinGWでのビルドエラーに対応
- ARMの除算用ライブラリを追加(Android対応)
- ARMでmmap()/select()/pselect()の第5引数以降が渡せていなかった問題の修正
- 全体の修正
- Makefileをclang対応し,デフォルトのコンパイラをccにする
- Makefileのクロスコンパイル対応を改良
- MakefileにMinGW/Android用ターゲットを追加
- ドキュメントのフォーマットをEUCからUTF-8に変更
- NLUX alpha (2023/08/04版)
- NLLの修正
- FCLOSE()でファイル管理構造体が解放されていなかった問題の修正
- ファイルポインタ関連の関数のエラー処理を修正
- ネットワーク関連の関数全般を -no-network で利用不可にする
- NLUX alpha (2023/08/03版)
- NLUX alpha (2023/08/02版)
- NLLの修正
- ISREADABLE()/ISWRITABLE()の仕様を変更
- ACCEPT()したソケットがWindowsで正常にクローズされない問題を修正
- O_TEXT/O_BINARYを追加(Windows用)
- SPRINTF()の戻り値を修正(戻り値の文字列を扱いやすいよう,文字列のみにする)
- GETFGCOLOR()/GETBGCOLOR()を追加
- FPRINTF()/FPRINTM()をPRINTF()/PRINTM()に変更し,FPRINTF()を追加
- 要素数演算子(#),ARGNUM()を追加
- テストセットを追加・修正
- NLUX alpha (2023/07/31版)
- NLLの修正
- メモリ読み書きの関数を修正(READ/WRITE/MEMCPY→MREAD/MWRITE/MCOPY)
- OPEN()/CLOSE()/READ()/WRITE()/LSEEK()/ISREADABLE()/ISWRITABLE()
- FDOPEN()/FILENO()/FEOF()/FERROR()/FGETC()/FPUTC()/FSEEK()を追加
- ネットワーク関連のサービス関数を追加しNONETWORK()/-no-networkオプションを追加
- ダンプ等で出力が破棄される場合がある問題を修正
- NLUX alpha (2023/07/29版)
- NLLの修正
- ベクトル値の真偽判定を修正(ゼロベクトルも偽とする)
- 真偽演算子(?),関数BOOLEAN()を追加
- NLUX alpha (2023/07/26版)
- NLLの修正
- 組込み向けに移植しやすくするための配慮
- 拡張関数を登録するためのテンプレートを追加
- NLCCの修正
- 配列の型の比較で片側がサイズ未定(array[])の場合に不一致となる問題の修正
- 値の代入でのNULLチェックもれを修正
- 全体の修正
- NLUX alpha (2023/07/25版)
- NLLの修正
- &>,|> 演算子を追加しベクトル値対応(ベクトル内ベクトルに対応)
- 連接演算子・条件演算子・位置演算子のベクトル値対応
- 定数値の定義をconstval.cに分離
- ベクトル関連(主にベクトル内ベクトル)のテストセットを追加
- NLUX alpha (2023/07/23版)
- NLLの修正
- 演算で,ベクトル値を動的に扱えるように大幅に改修
- ?演算子,@演算子の優先順位を変更
- オーディオ機能で NLL_A_REMAIN で解放済み領域参照になるバグを修正
- NLUX alpha (2023/06/01版)
- NLUX alpha (2023/05/31版)
- NLLの修正
- 全体の修正
- make all でビルドのみ行われるように変更
- make uninstall によるアンインストールを追加
- NLUX alpha (2023/05/29版)
- NLLの修正
- 組み込み変数にARGC/ARGV[]を追加
- コマンドライン引数の処理を修正
- nlcc/nllibc/nllineを利用したテストを追加
- NLUX alpha (2023/05/27版)
- NLLの修正
- オーディオ機能で演奏をスレッド化する
- オーディオ機能で演奏後に演奏データを再利用可能にする(A_REMAIN)
- オーディオ機能でサンプリング周波数の設定/取得を追加
- NLUX alpha (2023/05/16版)
- NLLの修正
- オーディオ機能にテキストファイル出力を追加(波形グラフの描画用)
- NLUX alpha (2023/05/12版)
- NLLの修正
- オーディオ機能にフェードアウト・フェードインのエンベロープを追加
- オーディオ機能で音源ユニットと発信器を分離
- その他,オーディオ関連の細かい修正
- NLUX alpha (2023/05/10版)
- NLLの修正
- オーディオ機能にステレオ出力機能を追加(A_STEREOフラグ)
- オーディオ機能でフィルタ機能を改良
- オーディオ機能で出力の平均化をデフォルトで無効にする
- その他,オーディオ関連の細かい修正
- NLUX alpha (2023/05/04版)
- NLLの修正
- オーディオ機能にフィルタ機能を追加
- その他,オーディオ関連の細かい修正
- NLUX alpha (2023/04/28版)
- NLLの修正
- オーディオ機能でMML中の音色指定を追加(@コマンド)
- オーディオ機能でノイズの周期を指定可能にする
- オーディオ機能で音色のデフォルト指定を追加(AOSCSET())
- オーディオ機能で乱数を調整
- オーディオ機能でサンプルを修正・追加
- その他,オーディオ関連の細かい修正
- NLUX alpha (2023/04/27版)
- NLLの修正
- オーディオ機能のパラメータ指定を1000分率から1024分率に変更
- オーディオ機能で発信器への外部入力を可能にする
- オーディオ機能にパルス波(A_PULSE),出力ゼロ(A_ZERO)を追加
- オーディオ機能にクリッピング機能を追加(A_CLIP)
- オーディオ機能で変調前の出力量を指定可能にする
- オーディオ機能にエンベロープの固定長機能を追加(A_FIXEDENV)
- オーディオ機能にエンベロープのコピーを追加(AENVCOPY())
- オーディオ機能でエンベロープの修正を可能にする
- オーディオ関連のサンプルを追加・修正
- オーディオ関連のドキュメント修正
- その他,オーディオ関連の細かい修正
- NLUX alpha (2023/04/20版)
- NLLの修正
- オーディオ機能の説明ファイルを追加(AUDIOファイル)
- オーディオ機能で波形の解像度を上げる
- オーディオ機能で波形(A_RANDOM/A_LEVEL)・変調方式(A_FREQ/A_VALUE)を追加
- オーディオ機能で周波数などの設定を1000分率にする
- オーディオ機能のサンプルを追加(samples/audio/*.hob)
- オーディオ機能のその他細かい改良
- NLUX alpha (2023/04/18版)
- NLLの修正
- オーディオ機能を改良(レジスタ設定をプールしメモリ削減)
- オペレータセットの最大個数を拡張
- NLUX alpha (2023/04/17版)
- NLUX alpha (2023/03/31版)
- NLLの修正
- オーディオ機能の音声合成機能を強化(複数出力,フィードバック,エンベロープ)
- NLUX alpha (2023/03/30版)
- NLUX alpha (2023/03/02版)
- NLLの修正
- オーディオ機能を追加
- スタック操作の演算し(I+/I-)を追加
- COND()/AT()/FPUSH()/FPOP()で引数の変数値を書き換え可能な仕様を廃止
- VECTOR型を追加し,値のベクトル化と動的な拡張の対応準備で値の扱いを大幅に修正
- nllibcの修正
- FreeBSD/PowerPC対応を追加
- 一部のアーキテクチャで遅延スロットの配慮が無かった問題を修正
- fseek()を追加
- NLUX alpha (2023/01/21版)
- NLLの修正
- 組込み用途向けにメインループを独立させ分離しやすくする
- NLUX alpha (2023/01/19版)
- NLLの修正
- ファイル関連の関数で,エラー時に強制終了せずエラーを返すように修正
- NLUX alpha (2023/01/18版)
- NLLの修正
- GPAINT()の処理を修正
- コマンドヒストリにパース後(小文字→大文字変更後)の行を保存するように変更
- コマンド実行機能(SYSTEM())を追加
- システムコール呼び出し機能(SYSCALL())を追加
- NOSYSTEM()/NOSYSCALL()を追加
- -no-system/-no-syscallオプションを追加
- FWAIT()を追加
- WAITにマイクロ秒,1秒を追加
- NLUX alpha (2023/01/16版)
- NLLの修正
- Windows環境でエスケープシーケンスの文字がそのまま出力されるタイミングがある問題を修正
- 終了後にカーソル非表示のままになる問題を修正
- コマンド後にスペースを必須とする(FORMATのような変数がFOR文と判断されてしまうため.F.のような省略表記の場合はスペース不要)
- GPAINT()を追加(塗りつぶし)
- NLUX alpha (2023/01/13版)
- NLLの修正
- 動的メモリを解放せずプールするように修正
- FEVAL()を追加
- SCREEN()/GSCREEN()のモード指定をフラグに統合
- NLUX alpha (2023/01/12版)
- NLLの修正
- #によるベクトル値指定をポストフィックスでなく演算子に変更
- 括弧内の演算の文法不正でメモリリークがあった問題を修正
- NLUX alpha (2023/01/11版)
- NLLの修正
- NEW実行時にメモリ解放の不整合があった問題の修正
- GGETOFFSET()/GSETOFFSET()/GGETSCALE()/GSETSCALE()を追加
- NLUX alpha (2023/01/10版)
- NLLの修正
- malloc/free()を用いたメモリ管理を追加し,オブジェクトを動的に獲得するように変更(従来動作はNLL_MEMORY_STATICで指定可能)
- NLCCでビルドできていなかった問題の修正(INFINITY等のビルトインの対応(USE_MATHBUILTIN))
- NLUX alpha (2023/01/06版)
- NLLの修正
- 一部のターミナルでフレームバッファの表示が崩れる問題の修正(改行をエスケープシーケンスでなく\nで行う)
- Windows環境でキー入力が行えない問題の修正(getch()がcursesのgetch()と衝突していたので,_getch()に変更する)
- NLUX alpha (2023/01/05版)
- NLLの修正
- 変数の型を動的に変更可能に仕様変更(NLL_TYPECHANGE_ENABLE)(関数が引数を受け取る場合の配慮)し,従来の静的型の変数を?=演算子で定義可能にする
- グラフィック対応を追加
- グラフィック対応に合わせて,テキスト画面制御を大幅に改修
- curses対応
- Windowsでの入出力関連・ターミナル制御を整備
- 関数への引数渡しをGOSUB MAIN:(X)でなく GOSUB MAIN,X のように修正(旧書式も可能)
- 組込み定数値の一覧機能を追加
- 組込み定数を大幅に追加
- DUMPの引数を組込み定数値を使うように修正
- キー入力関連をグラフィックに合わせて統合
- \f,\aの処理を追加
- LINE()/BOX()を追加,SCROLL()にX方向を追加,GGETSCR()をGSCRSTAT()に変更
- ARGS/IFコマンドを追加
- 資源量をチューニング
- SPRINTF()/FPRINTF()を追加(書式指定表示)
- PRINTコマンドを表示のみに変更(代替としてFPRINTM()を新設)
- PUTS()をFPRINT()に変更
- 操作端末と入出力先を分離.入出力先を切替え可能にし,STDIN/STDOUTを追加
- V#3のようなベクトル表記を追加
- スタックのダンプ機能を追加(DUMP D_STACK),STACKNUM()を追加
- 値の変換関数を,複数の引数をまとめて変換するように改良(TRUE()/FALSE()/ITOA()/ATOI()/ITOF()/FTOI()/LENGTH()/RAND()/ASCII()/CHAR()/INT()/ABS()/SIGN()/PI()/RADIAN()/DEGREE()/SIN()/COS()/SQRT())
- 数学関数を拡充
- 他,細かい修正多数
- NLCCの修正
- nllineの修正
- Windowsでの入出力関連・ターミナル制御を整備
- curses対応
- nllibcの修正
- atexit()の実行を逆順に修正
- fileno()を追加
- sigreturn()の型をDebianに合わせて修正
- stdio.cの関数名を修正(標準ヘッダファイル上の関数との衝突回避)
- 全体の修正
- stack-protectorを無効化
- nlccを用いたFreeBSD-13でのビルドの対応(__NO_TLSが廃止されているため__RUNETYPE_INTERNALに変更)
- Debianでのビルドの対応
- NLUX alpha (2022/11/19版)
- nllibcの修正
- Linuxでsigaction()が正常に動作しない問題の修正(rt_sigactionの第4引数を追加する)
- Linux/x86_64でシグナルハンドラ呼び出しでダウンする問題の修正(SA_RESTORERとsigreturn()を追加する)
- FreeBSD/amd64,Linux/x86_64でシステムコールの第4引数を正常に渡せていない問題を修正
- Linux/x86でselect()が正常動作していなかった問題の修正(newselectにする)
- select()のシステムコール番号を見直し(newselectを利用する)
- NLLの修正
- 高速に出力されたときに出力抜けが発生する問題の修正(selectで出力可をチェックする)
- NLUX alpha (2022/11/15版)
- NLLの修正
- 日本語変数を可能にする(ただし非推奨)
- ARGS()/LOCAL()/RESTORE()を追加
- WAITで10000分の1秒単位での指定を可能にする
- NLUX alpha (2022/11/14版)
- NLLの修正
- ?, @ の演算子を追加
- スタック機能(PUSH/POP/FPUSH()/FPOP())を追加
- VALUE()/COND()/AT()を追加
- LOOP/FORで終了条件が未指定の場合に無限ループになるように変更
- DUMP COMMAND / DUMP FUNCTION でのコマンド一覧/関数一覧の出力を追加
- 戻り値の無いサブルーチン関数を単体で実行するとエラーとなっていた問題を修正
- NLUX alpha (2022/11/11版)
- NLLの修正
- -q指定時に起動時の自動実行が無効になっていた問題の修正
- EXITで即時終了していなかった問題の修正
- GOTO/GONEXT/LOOPEND/RETURNに付加的に式を指定できるように修正
- RUN 0 時に後続のコマンドが実行されるように修正
- EDIT 0 で最終行が編集対象になっていなかった問題を修正
- TRUE()/FALSE()関数を追加
- NLUX alpha (2022/11/09版)
- NLLの修正
- GONEXTで負の値を指定時に,前の行に戻る機能を追加
- 演算にポストインクリメント(I++),ポストデクリメント(I--)を追加
- 演算に<<=,>>=,+=,-=,*=,/=,%=,&=,^=,|=を追加
- END/EXITで終了コードを返すことを可能にする
- エラー時のエラーコードを見直し
- NLUX alpha (2022/11/06版)
- NLLの修正
- EVALを追加
- 文字の型を符号無しに変更
- 起動時のヘルプを追加(-hオプション)
- サンプルプログラムを追加
- NLUX alpha (2022/11/05版)
- NLLの修正
- nllibc利用の際に数学ライブラリを利用しないように修正(nllibcは数学ライブラリを持たないため)
- GONEXTで,行末に達した場合に次の行に繰り越すように修正
- GONEXTで,行未指定のときにGONEXT自身の位置からジャンプする機能を追加
- NLUX alpha (2022/11/04版)
- nllibcの修正
- NLLの修正
- 関数呼び出し中のブレーク動作を整備
- SKIP/SAVE/LOADを追加
- 標準入力を利用すると無限ループになる問題の修正
- NLUX alpha (2022/11/02版)
- nllibcの修正
- NLLの修正
- Windowsでの動作時に,2回目のCtrl+Cでプログラム終了してしまう問題を修正
- NLUX alpha (2022/11/01版)
- 全体の修正
- NLCCの修正
- 数値の末尾の型指定にulを追加
- いくつかの演算子の型の不正を修正(!,ポインタ演算,?:など)
- nllineの修正
- nllibcの修正
- システムコールを追加
(unlink/fchdir/chmod/chown/lseek/access/sync/fcntl/fsync/fchown/fchmod/
mkdir/rmdir/mmap/munmap/truncate/ftruncate/select/pselect/gettimeofday/settimeofday)
- MinGWでのWindows向けビルドに対応(定義を追加など)
- mmap()用定義(sys/mman.h),select()用定義(sys/select.h),モード関連定義(sys/stat.h),時刻関連定義(time.h,sys/time.h)を追加
- ソケット定義(sys/socket.h)を追加
- time()/sleep()/usleep()を追加
- ファイルストリーム系関数の受信バッファを追加
- fgets()が改行単位で読み込みされていなかったバグを修正
- strtol()のendptr未設定と0のときに正常に値をとれないバグを修正
- NLLの修正
- メモリ管理を追加(MEMORYコマンド)
- LOOP/LOOPENDを追加しFOR/NEXTの仕様を修正
- 値の初期化と終了時の資源解放チェックを追加
- ラベルの関数呼び出し機能を追加
- 文字列内に表示不可能文字も含めることを可能にする
- 文字列中での\x0Aのような指定を追加
- ポインタ変数,ポインタ演算,エイリアス変数を追加
- 数値のリスト(ベクトル数)の機能拡充
- メモリ管理,ファイル関連の関数を追加
- Windows向けクロスビルドに対応
- -eオプション追加(ワンライナー実行用)
- 定数変数を追加
- README拡充
- テストセットを追加
- その他,細かい修正と仕様変更
- NLUX alpha (2022/10/20版)
- NLCCの修正
- nllのコンパイルに合わせたバグ修正
- 浮動小数の定数の配慮を追加(ただし浮動小数演算は未サポートのため,整数値として扱う)
- 宣言のみの関数の配列内定義でダウンする問題の修正.(値を持たない関数の配慮を追加)
- 型チェックのバグを修正.(配列とポインタが型不一致となっていた)
- NLLの修正
- 浮動小数演算,数学関数の追加
- 配列,関数,端末制御,フレームバッファの追加
- サブルーチンへの引数渡し,戻り値返しを追加
- リスト値のサポート,複数の型の値をサポート
- 文字列のサポート
- 様々な数式をサポート
- 様々な機能を関数として追加
- 条件プレフィクス,数式の連結を追加を追加
- 字句解析と構文解析を行入力時に行い,実行時には解析結果を実行するように修正
- 各種の安定化(不正ポインタアクセス対応や解放洩れ対応など)
- 文法やコマンドの大幅な改良と更新
- テストセットを大幅に追加
- NLCCでのコンパイルとテストセットが通ることを確認
- その他,大幅な改良と修正
- NLUX alpha (2022/09/22版)
- NLUX alpha (2022/08/10版)
- 全体の修正
- ドキュメントを追加(README.txt)
- テスト時に clean がされていないため,再ビルドされていなかった問題を修正
- NLCCの修正
- 関数呼び出しのビルトインを追加(USE_BUILTIN_CALL: 通常の関数呼び出しを,ポインタ利用での関数呼び出しで行う)
- NLUX alpha (2022/07/22版)
- 全体の修正
- テスト時のスタティックリンクを廃止(標準のlibcが静的リンクされ,多数の実行ファイルサイズが大きくなりテストディレクトリが巨大サイズになっていた)
- make -j に対応(Makefile中での複数ターゲットの指定を廃止)
- NLCCの修正
- テンポラリレジスタに caller saved のレジスタを指定していたため,関数呼び出し時に保存されず値が破壊されていた問題を修正(ビットフィールドのビルトイン利用時に値が破壊され誤動作していた)
- if/for/while等の条件がlong値の場合に正常動作しない問題を修正(int値にしていたため)
- 各種演算のビルトインをlongに対応し整備
- ビルトインの強制利用オプションを追加(USE_BUILTIN)
- 符号拡張のビルトインでシフト演算を使わないように修正(シフト演算のビルトインで符号拡張が利用された場合に,無限再帰となるため)
- NLUX alpha (2022/07/10版)
- NLUX alpha (2022/07/09版)
- 全体の修正
- テストセットにnllibcのテスト用フレームワークを追加
- NLCCの修正
- va_arg(ap, char *)が正常な値を返さない問題を修正(va_arg()の値がintとして定義されていたため,64ビット環境でポインタ値に対して符号拡張が行われてしまっていた)
- va_arg()処理時の引数のロードの処理誤りを修正
- nllibcの修正
- fdopen()/strtol()/strtoul()を追加
- tolower()/toupper()の値が不正なバグを修正
- printf()フォーマットの桁指定に対応("%02x"など)
- printf()系の戻り値が不正な問題を修正
- fputs()/fwrite()の戻り値が不正な問題を修正
- fputc()が正常に動作していなかった問題を修正
- puts()の戻り値を見直し
- NLUX alpha (2022/05/14版)
- nllibcの修正
- 以下の関数を追加
- vprintf()/vfprintf()/vsprintf()
- fgetc()/fputc()
- bcmp()/bcopy()/bzero()
- isascii()
- NLUX alpha (2022/03/07版)
- nllibcの修正
- stdio.h系の出力関数の出力バッファのバグを修正
- 初期化関数のミスでバッファが毎回初期化されてしまいバッファがクリアされることで,出力もれが発生していた
- 出力バッファを利用せずに直接送信することで,出力順番が入れ替わることがあった
- exit()による終了時にバッファのフラッシュが行われていなかった
- 出力バッファをファイル構造体から分離
- atexit()を実装
- NLUX alpha (2022/03/06版)
- 全体の修正
- テストセットをnlccから分離し独立,ディレクトリ整理
- テストセットで/tmp上での実行をサポート(メモリファイルシステムの利用を想定)
- ターゲットアーキテクチャの指定を追加(ARCH)
- nlcc→nlcc1に変更
- NLCCの修正
- デフォルトアーキテクチャをアーキテクチャ定義に応じて切替える
- nllibcの修正
- feof()/ferror()/fread()/fwrite()を追加
- 他,細かい修正
- NLUX alpha (2021/12/21版)
- NLCCの修正
- 演算のビルトインでの再帰による無限ループを防ぐ修正
- NLUX alpha (2021/11/13版)
- 全体の修正
- 全体で組み合わせてビルドできるように,Makefileを大幅に修正・整備
(nllibc/nlline/nlshやシステム標準のヘッダファイル・ライブラリなどを組み合わせてビルド可能)
- 様々なパターンでのビルド用Makefileを追加
- Debian/CentOSでのビルドに対応
- NLCCの修正
- x86_64対応(FreeBSD/Debianで動作確認済み,セルフビルドが可能)
- AArch64を追加(ただし未テスト)
- nllibc/nlsh/nllineのビルドに対応
- もろもろいっぱい修正
- nllibcの修正
- x86_64のcrtでスタックポインタのアラインメントを追加
- システム付属の標準ヘッダファイルでビルドできるように対応
- Debian/CentOS環境でのビルド整備
- malloc()で速度が極端に遅くなる問題の対応(キャッシュ化)
- malloc()でmmap()に対応
- fopen()/fclose()によるファイルポインタ対応
- stdioの出力をバッファリング
- もろもろいっぱい修正
- NLUX alpha (2021/10/01版)
- FreeBSD/CentOS/Debian上でセルフコンパイルが可能になった
(各種標準ヘッダファイルをインクルードしてコンパイルが可能)
- 多アーキテクチャ対応のフレームワークを追加
- 多アーキテクチャ対応(ARM/MIPS/PowerPC/Thumb/MIPS16/OSECPU)
(ただし未テスト.OSECPUは実験レベルの対応)
- 多アーキテクチャ対応を想定した処理の共通化
- ビルトインを多数追加し,アーキテクチャ対応時の必要作業を可能な限り削減
- 命令未実装の場合に,ビルトインや別命令で可能な限り代替するように修正
- もろもろいっぱい修正
- NLUX alpha (2021/09/11版)
- FreeBSD上でセルフコンパイル(nlcc1自身でnlcc1を生成)が可能になったレベル
- FreeBSD(amd64)上でgcc→nlcc1→nlcc1(※1)→nlcc1(※2)のように生成し,
※1と※2が一致し,またテストプログラムがすべて動作することを確認
- もろもろいっぱい修正
- NLUX alpha (2021/09/05版)
- コンパイラドライバ開発に向けて,nlccをnlcc1に改名
- テストセットを追加し,テストを自動化
- x86アセンブリを出力し,多くのテストプログラムが正常動作したレベル
- もろもろいっぱい修正
- NLUX alpha (2021/08/09版)
- nlsh/nllibcと統合しnluxとする
- x86アセンブリをなんとなく出力してくれるレベル
(ループによる合計計算くらいは動いたレベル.でもまだ全然不十分)
- もろもろいっぱい修正
メールは kozos(アットマーク)kozos.jp まで