Skip to content

Commit

Permalink
Merge branch 'feature/improve-ar-3' into develop
Browse files Browse the repository at this point in the history
  • Loading branch information
kekyo committed Jan 6, 2025
2 parents c908a5e + bede0aa commit 93a0a96
Show file tree
Hide file tree
Showing 37 changed files with 1,817 additions and 1,423 deletions.
2 changes: 0 additions & 2 deletions README.ja.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,6 @@ CILソースコードの実質的なアセンブル処理は、chibildが行い
* chibiasは、パーサーによる構文チェックを行いますが、シンボルの妥当性など細かい検査を行いません。
* chibiasが出力するオブジェクトファイルは、実際には入力となるCILソースファイルをgzipで圧縮しただけです。
このことは、実際にオブジェクトファイルを `gzip -d` することで確かめることができます。
* 同様に、chibiarが出力するアーカイブファイルは、実際にはシンボルテーブルファイルを含めたzipファイルです。
全く同様に、`unzip` コマンドで確かめることができます。

このような、chibias, chibild, chibiarの奇妙な挙動は実装の制約によるものですが、
ツールチェイン使用者にとって見れば、POSIXで想定されるas,ld,arなどのツールチェインと対比させて使用方法を理解できるという強みがあります。
Expand Down
2 changes: 0 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,6 @@ and chibild performs the actual assembly process of the CIL source code.
* chibias performs syntax checking by the parser, but does not perform detailed checking such as symbol validity.
* The '*.o' file output by chibias is actually just a compression with gzip format of the input CIL source file.
This can be verified by actually `gzip -d` the object file.
* Similarly, the '*.a' file output by chibiar is actually a zip file format including the symbol table file.
Exactly the same can be verified with the `unzip` command.

The strange internal behavior of chibias, chibild and chibiar is due to implementation limitations.
For toolchain users, the advantage is that they can contrast their usage with
Expand Down
9 changes: 6 additions & 3 deletions chibiar/chibiar.core.Tests/ArchiverTestRunner.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading.Tasks;
using chibicc.toolchain.IO;
using chibicc.toolchain.Logging;
using DiffEngine;

Expand Down Expand Up @@ -46,10 +47,12 @@ public static async Task RunAsync(
var logPath = Path.Combine(basePath, "log.txt");
using var logfs = new FileStream(
logPath, FileMode.Create, FileAccess.ReadWrite, FileShare.None);
var logtw = new StreamWriter(
logfs, Encoding.UTF8);
var logtw = StreamUtilities.CreateTextWriter(
logfs);
var logger = new TextWriterLogger(
LogLevels.Debug, logtw);
"chibiar",
LogLevels.Debug,
logtw);

try
{
Expand Down
Loading

0 comments on commit 93a0a96

Please sign in to comment.