Repository: kcl-lang/kcl (language: rust)

Issue:
[WIP] Feat : Support Call Kclvm Cli by C API
<!-- Thank you for contributing to KusionStack!

Note: 

1. With pull requests:

    - Open your pull request against "main"
    - Your pull request should have no more than two commits, if not you should squash them.
    - It should pass all tests in the available continuous integration systems such as GitHub Actions.
    - You should add/modify tests to cover your proposed code changes.
    - If your pull request contains a new feature, please document it on the README.

2. Please create an issue first to describe the problem.

    We recommend that link the issue with the PR in the following question.
    For more info, check https://kusionstack.io/docs/governance/contribute/
-->

#### 1. Does this PR affect any open issues?(Y/N) and add issue references (e.g. "fix #123", "re #123".):

- [ ] N
- [x] Y 
re #125 

#### 2. What is the scope of this PR (e.g. component or file name):

<!-- You can add the scope of this change here. 
-->
        KCLVM/kclvm/spec
        KCLVM/kclvm/src/lib.rs

#### 3. Provide a description of the PR(e.g. more details, effects, motivations or doc link):

<!-- You can choose a brief description here -->
- [ ] Affects user behaviors
- [ ] Contains syntax changes
- [ ] Contains variable changes
- [x] Contains experimental features
- [ ] Performance regression: Consumes more CPU
- [ ] Performance regression: Consumes more Memory
- [ ] Other

<!-- You can add more details here.
-->
    Support user to call kclvm_cli by c_api


#### 4. Are there any breaking changes?(Y/N) and describe the breaking changes(e.g. more details, motivations or doc link):

- [x] N
- [ ] Y 

<!-- You can add more details here.

-->

#### 5. Are there test cases for these changes?(Y/N) select and add more details, references or doc links:

<!-- You can choose a brief description here -->
- [x] Unit test
- [ ] Integration test
- [ ] Benchmark (add benchmark stats below)
- [ ] Manual test (add detailed scripts or steps below)
- [ ] Other

<!-- You can add more details here.
None
-->
KCLVM/kclvm/src/api_test.rs

#### 6. Release note

<!-- compatibility change, improvement, bugfix, and new feature need a release note -->

Please refer to [Release Notes Language Style Guide](https://kusionstack.io/docs/governance/release-policy/) to write a quality release note.

```release-note
None
```



Discussion / hints:
****CLA Assistant Lite bot**** All contributors have signed the CLA  ✍️ ✅
I have read the CLA Document and I hereby sign the CLA
## Pull Request Test Coverage Report for [Build 2744948016](https://coveralls.io/builds/51191024)

* **2** of **5523**   **(0.04%)**  changed or added relevant lines in **6** files are covered.
* No unchanged relevant lines lost coverage.
* Overall coverage decreased (**-7.6%**) to **51.731%**

---

|  Changes Missing Coverage | Covered Lines | Changed/Added Lines | % |
| :-----|--------------|--------|---: |
| [kclvm/spec/src/main.rs](https://coveralls.io/builds/51191024/source?filename=kclvm%2Fspec%2Fsrc%2Fmain.rs#L2) | 1 | 3 | 33.33%
| [kclvm/spec/src/service/util.rs](https://coveralls.io/builds/51191024/source?filename=kclvm%2Fspec%2Fsrc%2Fservice%2Futil.rs#L2) | 0 | 25 | 0.0%
| [kclvm/spec/src/service/service.rs](https://coveralls.io/builds/51191024/source?filename=kclvm%2Fspec%2Fsrc%2Fservice%2Fservice.rs#L10) | 0 | 109 | 0.0%
| [kclvm/spec/src/service/api.rs](https://coveralls.io/builds/51191024/source?filename=kclvm%2Fspec%2Fsrc%2Fservice%2Fapi.rs#L10) | 0 | 153 | 0.0%
| [kclvm/spec/src/model/gpyrpc.rs](https://coveralls.io/builds/51191024/source?filename=kclvm%2Fspec%2Fsrc%2Fmodel%2Fgpyrpc.rs#L28) | 0 | 5232 | 0.0%
<!-- | **Total:** | **2** | **5523** | **0.04%** | -->


|  Totals | [![Coverage Status](https://coveralls.io/builds/51191024/badge)](https://coveralls.io/builds/51191024) |
| :-- | --: |
| Change from base [Build 2743999583](https://coveralls.io/builds/51186839): |  -7.6% |
| Covered Lines: | 22244 |
| Relevant Lines: | 42999 |

---
##### 💛  - [Coveralls](https://coveralls.io)


Fix patch:
diff --git a/docs/dev_guide/2.quick_start.md b/docs/dev_guide/2.quick_start.md
index 9d30a2da7..b62d75739 100644
--- a/docs/dev_guide/2.quick_start.md
+++ b/docs/dev_guide/2.quick_start.md
@@ -42,7 +42,7 @@ Using a docker image is our recommended way, of course, you can also configure y
 #### macOS and OS X
 
 - `git`
-- `Rust 1.79+`
+- `Rust 1.83+`
 - `LLVM 12` (Optional, only for the LLVM backend and release)
 - `Python 3.7+` (Optional, only for integration tests)
 
@@ -63,7 +63,7 @@ export PATH=<your LLVM 12 install location>/bin:$PATH
 #### Linux
 
 - `git`
-- `Rust 1.79+`
+- `Rust 1.83+`
 - `LLVM 12` (Optional, only for the LLVM backend and release)
 - `Python3 Building Dependencies` (Optional, only for integration tests)
 
@@ -106,7 +106,7 @@ ln -sf /usr/bin/wasm-ld-12 /usr/bin/wasm-ld
 #### Windows
 
 - `git`
-- `Rust 1.79+`
+- `Rust 1.83+`
 - `LLVM 12` (Optional, only for the LLVM backend and release)
 - `Python 3.7+` (Only for integration tests)
 


Test patch:
diff --git a/.github/workflows/build-test-alpine-linux-musl-arm64.yml b/.github/workflows/alpine_linux_musl_test.yml
similarity index 97%
rename from .github/workflows/build-test-alpine-linux-musl-arm64.yml
rename to .github/workflows/alpine_linux_musl_test.yml
index 18410bf25..e78d1ba71 100644
--- a/.github/workflows/build-test-alpine-linux-musl-arm64.yml
+++ b/.github/workflows/alpine_linux_musl_test.yml
@@ -1,4 +1,4 @@
-name: Build and Test Musl
+name: Build and Test on Alpine Linux Musl
 on:
   pull_request:
     branches:
@@ -55,4 +55,4 @@ jobs:
         with:
           name: kcl-${{ env.VERSION }}-linux-musl
           if-no-files-found: error
-          path: _build/kclvm-${{ env.VERSION }}-linux-amd64.tar.gz
\ No newline at end of file
+          path: _build/kclvm-${{ env.VERSION }}-linux-amd64.tar.gz
diff --git a/.github/workflows/build-test-ubuntu-arm64.yml b/.github/workflows/build-test-ubuntu-arm64.yml
deleted file mode 100644
index f2c761c8e..000000000
--- a/.github/workflows/build-test-ubuntu-arm64.yml
+++ /dev/null
@@ -1,49 +0,0 @@
-name: Build and Test on Linux ARCH64
-on:
-  pull_request:
-    branches:
-     - main
-  push:
-    branches:
-     - main
-jobs:
-  build-and-test-arm64:
-    name: Build and Test on Linux ARM64
-    runs-on: ubuntu-latest
-    steps:
-      - name: Check out code
-        uses: actions/checkout@v3
-        with:
-          submodules: "true"
-
-      - name: Set up QEMU
-        uses: docker/setup-qemu-action@v2
-        with:
-          platforms: linux/amd64,linux/arm64
-
-      - name: Set up Docker Buildx
-        uses: docker/setup-buildx-action@v2
-
-      - name: Pull custom ARM64 Docker image
-        run: |
-          docker pull --platform linux/arm64 ghcr.io/kcl-lang/kcl-builder-arm64
-
-      - name: Build in Docker
-        run: |
-          docker run --rm --platform linux/arm64 \
-            -v ${{ github.workspace }}:/workspace -w /workspace \
-            ghcr.io/kcl-lang/kcl-builder-arm64 \
-            /bin/bash -c "export KCL_BUILD_GIT_SHA=$(git rev-parse HEAD) && git config --global --add safe.directory /workspace && git config --global user.name 'GitHub Action' && git config --global user.email 'action@github.com' && make && make release && _build/dist/linux/kclvm/bin/kclvm_cli version"
-
-      - name: Read VERSION file
-        id: read_version
-        run: |
-          VERSION=$(cat VERSION)
-          echo "VERSION=v${VERSION}" >> $GITHUB_ENV
-
-      - name: Upload Artifact
-        uses: actions/upload-artifact@v4
-        with:
-          name: kcl-${{ env.VERSION }}-linux-arm64
-          if-no-files-found: error
-          path: _build/kclvm-${{ env.VERSION }}-linux-arm64.tar.gz
diff --git a/.github/workflows/build-test-centos7-amd64.yaml b/.github/workflows/centos7_test.yaml
similarity index 100%
rename from .github/workflows/build-test-centos7-amd64.yaml
rename to .github/workflows/centos7_test.yaml
diff --git a/.github/workflows/test_compiler_base.yaml b/.github/workflows/compiler_base_test.yaml
similarity index 100%
rename from .github/workflows/test_compiler_base.yaml
rename to .github/workflows/compiler_base_test.yaml
diff --git a/.github/workflows/build-test-macos-arm64.yml b/.github/workflows/macos_arm_test.yaml
similarity index 100%
rename from .github/workflows/build-test-macos-arm64.yml
rename to .github/workflows/macos_arm_test.yaml
diff --git a/.github/workflows/macos_test.yaml b/.github/workflows/macos_test.yaml
index 489a89c56..65e334b31 100644
--- a/.github/workflows/macos_test.yaml
+++ b/.github/workflows/macos_test.yaml
@@ -1,4 +1,4 @@
-name: build-and-test-macos
+name: Build and Test on MacOS AMD64
 on:
   pull_request:
     branches:
diff --git a/.github/workflows/ubuntu_test_arm.yaml b/.github/workflows/ubuntu_arm_test.yaml
similarity index 97%
rename from .github/workflows/ubuntu_test_arm.yaml
rename to .github/workflows/ubuntu_arm_test.yaml
index 303534117..8960a1406 100644
--- a/.github/workflows/ubuntu_test_arm.yaml
+++ b/.github/workflows/ubuntu_arm_test.yaml
@@ -1,4 +1,4 @@
-name: build-and-test-ubuntu-arm
+name: Build and Test on Linux ARCH64
 on:
   push:
     branches:
@@ -32,7 +32,7 @@ jobs:
       - name: Install rust nightly toolchain
         uses: actions-rs/toolchain@v1
         with:
-          toolchain: 1.79
+          toolchain: 1.83
           override: true
           components: clippy, rustfmt
       - name: Code format check
diff --git a/.github/workflows/ubuntu_test.yaml b/.github/workflows/ubuntu_test.yaml
index 87e6cb462..60c55ba71 100644
--- a/.github/workflows/ubuntu_test.yaml
+++ b/.github/workflows/ubuntu_test.yaml
@@ -1,4 +1,4 @@
-name: build-and-test-ubuntu
+name: Build and Test on Linux AMD64
 on:
   pull_request:
     branches:
diff --git a/.github/workflows/wasm_test.yaml b/.github/workflows/wasm_test.yaml
index 48406adad..a25c84c9e 100644
--- a/.github/workflows/wasm_test.yaml
+++ b/.github/workflows/wasm_test.yaml
@@ -1,4 +1,4 @@
-name: build-and-test-wasm
+name: Build and Test on WASM WASI
 on:
   pull_request:
     branches:
diff --git a/.github/workflows/mingw_test.yaml b/.github/workflows/windows_mingw_test.yaml
similarity index 97%
rename from .github/workflows/mingw_test.yaml
rename to .github/workflows/windows_mingw_test.yaml
index 3cc37d8ef..0bdcdcbc0 100644
--- a/.github/workflows/mingw_test.yaml
+++ b/.github/workflows/windows_mingw_test.yaml
@@ -1,4 +1,4 @@
-name: build-and-test-windows-mingw
+name: Build and Test on Windows Mingw
 on:
   pull_request:
     branches:
diff --git a/.github/workflows/windows_test.yaml b/.github/workflows/windows_test.yaml
index d19a60dc3..f82a48147 100644
--- a/.github/workflows/windows_test.yaml
+++ b/.github/workflows/windows_test.yaml
@@ -1,4 +1,4 @@
-name: build-and-test-windows
+name: Build and Test on Windows
 on:
   pull_request:
     branches: