diff --git a/.github/workflows/doc.yml b/.github/workflows/doc.yml index c10d1ee4..7765694a 100644 --- a/.github/workflows/doc.yml +++ b/.github/workflows/doc.yml @@ -21,7 +21,13 @@ jobs: run: npm install -g embedme - name: Verify README.md embedded code - run: npx embedme --verify README.md + run: embedme --verify README.md + + - name: Link Checker + id: lychee + uses: lycheeverse/lychee-action@v2 + with: + args: README.md doc_test: strategy: diff --git a/README.md b/README.md index a8941db5..60f53efd 100644 --- a/README.md +++ b/README.md @@ -401,11 +401,11 @@ TODO ## Development tools -* [pydump](chore/_xtool/pydump): It's the first program compiled by `llgo` (NOT `go`) in a production environment. It outputs symbol information (functions, variables, and constants) from a Python library in JSON format, preparing for the generation of corresponding packages in `llgo`. +* [pydump](_xtool/pydump): It's the first program compiled by `llgo` (NOT `go`) in a production environment. It outputs symbol information (functions, variables, and constants) from a Python library in JSON format, preparing for the generation of corresponding packages in `llgo`. * [pysigfetch](https://github.com/goplus/hdq/tree/main/chore/pysigfetch): It generates symbol information by extracting information from Python's documentation site. This tool is not part of the `llgo` project, but we depend on it. -* [llpyg](chore/llpyg): It is used to automatically convert Python libraries into Go packages that `llgo` can import. It depends on `pydump` and `pysigfetch` to accomplish the task. -* [llgen](chore/llgen): It is used to compile Go packages into LLVM IR files (*.ll). -* [ssadump](chore/ssadump): It is a Go SSA builder and interpreter. +* [llpyg](compiler/chore/llpyg): It is used to automatically convert Python libraries into Go packages that `llgo` can import. It depends on `pydump` and `pysigfetch` to accomplish the task. +* [llgen](compiler/chore/llgen): It is used to compile Go packages into LLVM IR files (*.ll). +* [ssadump](compiler/chore/ssadump): It is a Go SSA builder and interpreter. How do I generate these tools? diff --git a/compiler/cmd/llgo/llgo_test.go b/compiler/cmd/llgo/llgo_test.go index 9f82ce6d..1a97c726 100644 --- a/compiler/cmd/llgo/llgo_test.go +++ b/compiler/cmd/llgo/llgo_test.go @@ -213,7 +213,8 @@ func main() { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { var testErr error - for attempt := 0; attempt < 2; attempt++ { + const maxAttempts = 4 + for attempt := 1; attempt <= maxAttempts; attempt++ { testErr = func() error { // Create a new test directory for each test case tmpDir := setupTestProject(t) @@ -285,8 +286,8 @@ func main() { break } - if attempt == 0 { - t.Logf("Test failed on first attempt: %v. Retrying...", testErr) + if attempt < maxAttempts { + t.Logf("Test failed on attempt %v/%v: %v. Retrying...", testErr, attempt, maxAttempts) } }