■　LSI C-86 Ver 3.30c 試食版　リリースノート

　本リリースは LSI C-86 Ver 3.30 試食版のバグフィックスです。3.30 を公
開したのってもう 2 年も前になるんですね。これまで貴重なご意見、ご希望、
パグレポートをくださったみなさま、どうもありがとうございます。感謝して
います。

			*** 重要 ***

	マニュアルのみの販売、および当社による試食版の配布
	サービスは中止いたしました。ご了承ください。


　本パッケージは自由に配布できます。が、配布する人は配布先でのサポート
を責任を持っておこなってください。これはパソコン通信に限らず、雑誌など
の付録とする場合も同じです。本パッケージに関してはノーサポートですので、
エル・エス・アイ ジャパン(株)にサポートを要求する電話をかけてこないで
ください。read.me の「使用条件」の「6. サポート」をよくお読みください。

　このアーカイブには以下のファイルが含まれています。

    readme.1st              リリースノート(本書)
    read.me                 LSI C-86 Ver 3.30 試食版　使用の手引
    order                   LSI C-86 購入申込書
    bin\                    実行ファイル
        lcc.exe             コンパイラドライバ
        cpp.exe             プリプロセッサ
        cf.exe              パーサ
        cg86.exe            コードジェネレータ
        r86.exe             アセンブラ
        lld.exe             リンカ
        _lcc                コンフィギュレーションファイル
        prof.exe            プロファイラ
        ip86.exe            プロファイラ用のツール
        oar.exe             ライブラリアン
        make.exe            プログラムメインテナ
        makedef             デフォルトルールファイル
        merc.exe            アセンブラ出力にCを混ぜるツール
        libr.exe            ライブラリコンパイラドライバ
    include\                ヘッダファイル
        assert.h
        conio.h
        ctype.h
        direct.h
        dos.h
        errno.h
        farstr.h
        fcntl.h
        float.h
        io.h
        jctype.h
        jstring.h
        limits.h
        machine.h
        malloc.h
        math.h
        memory.h
        process.h
        search.h
        setjmp.h
        signal.h
        stdarg.h
        stddef.h
        stdefs.h
        stdio.h
        stdlib.h
        stdrom.h
        string.h
        time.h
        sys\
            stat.h
            timeb.h
            types.h
    lib\                    ライブラリファイル
        s\
            cdos.obj        初期設定ルーチン
            cpro.obj        プロファイラ用初期設定ルーチン
            expand.obj      ワイルドカードの処理を簡略化する
            noexpand.obj    ワイルドカードの処理をやめる
            tinymain.obj    クォートなどの処理をやめる
            knjlib.lib      日本語処理関数
            mathlib.lib     数学関数
            intlib.lib      整数のみのprintf/scanf
            doslib.lib      上記以外のライブラリ関数
    src\
        bin\                付属プログラムのソースコード
            cpp\            cpp のソース
                cpp.c
                makefile
            lcc\            lcc のソース
                lcc.c
                makefile
                version.c
            make\           make のソース
                make.c
                makefile
                mkdep.c
                mkdep.doc
                mkdep.exe
        lib\                スタートアップルーチンのソースコード
            cdos.p86
            expand.c
            noexpand.c
            shell.l
            tinymain.c
    man\                    オンラインマニュアル
        lsic86.man          ユーザーズマニュアル


　では、お楽しみください。
                                                          23-August-1993
                                                     LSI Japan Co., Ltd.
------------------------------------------------------------------------
●変更点

Ver 3.30c

★コンパイラの修正

    ●関数内でextern宣言をしたときに正しくコンパイルできない場合があっ
      たので修正しました。

    ●*(char far *)0x12345678 = 0; のように定数をfarポインタにキャスト
      したときに正しくコンパイルできませんでしたので修正しました。

    ●アセンブラr86: ジャンプ命令のオペランドが定数のときはエラーにし
      ます。これまでは誤ったFIXUPを生成していました。

    ●リンカlld: -Iオプションが正しく動作しませんでした。

★ライブラリの修正

    ●signal(), raise()でハンドラがSIG_IGNあるいはSIG_DFLのときには
      SIG_DFLに戻さないようにしました。

    ●scanf系関数が正しく動作しない場合がありましたので修正しました。

    ●share.exe等ネットワーク関連ソフトが常駐しているときにファイルの
      オープンが正しくできない場合がありましたので修正しました。

    ●getcwd(), getcurdir()は失敗しても0を返していました。

    ●80x87が存在するとき、tan()が正しくない値を返す場合がありました。

★オンラインマニュアルの修正

    ●オンラインマニュアルは1ページ66行でフォーマットしていますが、15,
      25, 41, 68ページが67行ありましたので1行ずつ空行を削除しました。
------------------------------------------------------------------------
Ver 3.30

★コンパイラの修正

    ●lcc のオプションを変更しました。変更点については lsic86.man の
      「コンパチビリティ」を参照してください。

    ●リンカ lld.exe をバンドルしました。

    ●プロファイラをバンドルしました。

★ライブラリの修正

    ●tinymain.obj が環境変数を64個までしか扱えなかったバグを修正しました。

    ●mktmp() が正しく動作しませんでした。

    ●fread(), fwrite() が 32K をこえるデータを転送できませんでした。

------------------------------------------------------------------------
Ver 3.20

　　●バージョン表示を 3.20 に統一しました．

★コンパイラの修正

　　●関数定義で同じ名前のパラメタを宣言していると、正しくないエラーメッ
　　　セージを出力していました

------------------------------------------------------------------------
Ver 3.2 beta5

★ライブラリの修正

　　●fseek が正しく動作しない場合がありましたので修正しました．3.2 beta1
　　　の時に修正したつもりだったのですが，遅くなったうえにバグをつぶしきっ
　　　ていませんでした

　　●浮動小数点数の割り算でオーバーフローやアンダーフローが発生すると暴
　　　走するバグを修正しました

　　●いきなり localtime, utime を呼び出すと TZ=... を無視するバグを修正
　　　しました

　　●longjmp(env, 0) としたときには longjmp(env, 1) と解釈するように修正
　　　しました

　　●realloc(NULL, size), realloc(p, 0) の動作を ANSI 規格に合わせました

------------------------------------------------------------------------
Ver 3.2 beta3

★コンパイラの修正

　　●PATH に存在しないディレクトリが設定されていると，コンパイルが途中で
　　　止まってしまうバグを修正しました

　　●const 付きの構造体／共用体の初期化ができかったバグを修正しました

　　●未使用ラベルを Warning にするように変更しました

　　●cpp のコメントのネストに関するバグを修正しました


★ライブラリの修正，追加

　　●ワイルドカード展開モジュールのバグを修正しました．*.* に拡張子のない
　　　ファイルがマッチしませんでした

　　●_dos_getvect, _dos_setvect を追加しました

　　●signal.h, errno.h の定数値を変更しました


------------------------------------------------------------------------
Ver 3.2 beta1

★コンパイラの修正

　　●-l オプションの機能を拡張しました．-ltinymain.obj とすると，-b で
　　　指定されたライブラリのディレクトリから tinymain.obj をリンクします．

　　●lcc を使って .asm をアセンブルする際，/mx オプションをつけるように
　　　修正しました．

　　●const/volatile をサポートしました．

　　●union の初期化をサポートしました．一番最初のメンバに対する初期化が
　　　可能です．

　　●関数へのポインタに直接 () をつけて関数呼び出しができるようにしました．

　　●その他のバグ修正等はファイル log をごらんください．



★ライブラリの修正，追加

　　●ヘッダファイルの構成を変更しました．

　　●ワイルドカード展開モジュールを変更しました．* ? の他に [...] という
　　　書き方も可能です．さらに *a* で「どこかに a を含むファイル」を選択
　　　することもできます．従来の展開用のモジュールは expand.obj として供給
　　　しています．

　　●スタートアップルーチンを修正しました．以前のものでは 80286+80287 では
　　　ハングアップする可能性がありました．

　　●以下の関数を追加しました

	ecvt		fcvt		gcvt		itoa
	ltoa		ultoa		swab		stackavail
	movedata	toascii		_toupper	_tolower
	iscsym		iscsymf		umask		chsize
	eof		fstat		mktemp		cprintf
	cscanf		rmtmp		tempnam		ftime
	matherr		_fpreset	_control87	_clear87
	_status87	_nullcheck

　　●以下の関数を変更しました

	abort	open	creat	signal

　　○abort は "Abnormal program termination" と stderr に表示して，終了
　　　コード 3 でプログラムを中断します．

　　○open/creat はパラメタの数を変更しました．ご注意ください．
	int open(char *path, int oflag [, int pmode]);
	int creat(char *path, int pmode);

　　○signal は SIGFPE と SIGINT（CTRL-C）をサポートしました．


------------------------------------------------------------------------
Ver 3.12 beta2

★コンパイラの修正

　　●オプション -wi を追加しました．これを指定すると，宣言されてない
　　　関数を引用しても警告を表示しません．また，宣言のない関数パラメタ
　　　も警告されません．つまり，

foo.c 10: Warning: function 'bar' undefined -- assumed to be int
foo.c 15: Warning: undefined parameter 'baz' -- assumed to be int

　　　の２つの警告が表示されなくなります．

　　●終了時にファイル link.i を消去するようにしました．

　　●オプション -ma を追加しました．今までは，つねに *.map ファイルを
　　　作成していましたが，このバージョンからは -ma または -gオプション
　　　を指定しない限り作成しません．

　　●-T, -B, -X, -I で，最後に \ を付ける必要がなくなりました．最後の
　　　文字が :, \, / のいずれでもなければ，自動的に \ が付加されます．

　　●パス名に / を含んだファイルを指定できるようになりました．今までは

		lcc foo.c /usr/kmori/mylib.obj

　　　のような指定をするとリンカが / を含むファイル名を受付けないため，
　　　正常に動作しませんでした．このバージョンではリンカにファイル名を
　　　渡す際に / を \ に変換するようにしたので，上の例もうまくいきます．

　　●その他，バグを修正しました．詳細はファイル log を参照して下さい．


★ライブラリの修正，追加

　　●次の関数を追加しました．

	_rotl             filelength        far_strlwr        _dos_gettime
	_rotr             fdopen            far_strupr        _dos_keep
	_lrotl            fsetbin           far_strrev        _dos_open
	_lrotr            fsettext          far_strset        _dos_read
	atexit            fgetchar          far_strnset       _dos_setblock
	memccpy           fputchar          getpid            _dos_setdate
	memicmp           fcloseall         _dos_allocmem     _dos_setdrive
	stpcpy            flushall          _dos_close        _dos_setfileattr
	strcmpi           jstrrev           _dos_creat        _dos_setftime
	stricmp           jstrstr           _dos_creatnew     _dos_settime
	strncmpi          far_memccpy       _dos_findfirst    _dos_write
	strnicmp          far_memicmp       _dos_findnext     dosexterr
	strdup            far_stpcpy        _dos_freemem      _harderr
	strlwr            far_strcmpi       _dos_getdate      _hardresume
	strupr            far_stricmp       _dos_getdiskfree  _hardretn
	strrev            far_strncmpi      _dos_getdrive     
	strset            far_strnicmp      _dos_getfileattr  
	strnset           far_strdup        _dos_getftime     

