Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
refactor(kclvm-runner): merge main and refacor kclvm-runner.
1. Encapsulated method "emit_code" into "lock_ll_file_and_gen_dylib" to reduce repetitive code in kclvm-runner/KclvmAssembler.gen_dylibs(). 2. In order to support reuse and simplify the structure of Method "gen_dylibs()", encapsulates some operations of cleaning file paths. 3. Due to issue #79, some test cases are temporarily commented out 2. In order to support reuse and simplify the structure of Method "gen_dylibs()", encapsulates some operations of cleaning file paths. 3. Due to issue #79, some test cases are temporarily commented out fix #67 refactor(kclvm-runner): decouping assembler and llvm. 1. Decoupling the assembler and llvm. 2. The assembling LLVM IR into a dynamic link library is encapsulated into "LlvmLibAssembler" separately. 3. Add trait "LibAssembler" to describe the interface "KclvmLibAssembler" should have. If other intermediate code is added in the future, the corresponding assembler must implement this trait. 4. Struct "LlvmLibAssembler" is provided in "KclvmLibAssembler". "KclvmLibAssembler" is an enum that implements trait "LibAssembler". "KclvmLibAssembler" is responsible for the compilation of a single kcl file in one thread. , 5. "KclvmAssembler" is responsible for the concurrent compilation of multiple kcl files. 6. "KclvmAssembler" will call the method in "KclvmLibAssembler" to generate a dynamic link library for a single kcl file in each thread of concurrent compilation. fix #67
- Loading branch information