Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

KCL developing guide. #61

Closed
Peefy opened this issue May 30, 2022 · 4 comments
Closed

KCL developing guide. #61

Peefy opened this issue May 30, 2022 · 4 comments
Assignees
Labels
documentation Improvements or additions to documentation enhancement New feature or request help wanted Extra attention is needed long-term

Comments

@Peefy
Copy link
Contributor

Peefy commented May 30, 2022

Enhancement

The current KCL repository has initially established simple development documents, ISSUE and PR templates, etc. However, there is a lack of detailed developer manuals to help all developers develop better collaboratively, such as https://github.com/rust-lang/rustc-dev-guide in rustc.

To sum up, KCL needs a corresponding developer manual to describe the following things clearly:

  • How to participate in the design and discussion of KCL
  • How to practice on the basis of existing KCL code
  • How to write tests and verify development features
  • How to merge code into KCL code repository trunk
  • KCL architecture and compiler sub-module principle explanation
@Peefy Peefy added documentation Improvements or additions to documentation enhancement New feature or request labels May 30, 2022
@Peefy Peefy added this to the v0.4.3 Release milestone May 30, 2022
@Peefy
Copy link
Contributor Author

Peefy commented May 31, 2022

I have designed a TOC for the development guide, welcome to discuss.

# Summary

[About this guide]()

[Getting Started]()

---

## Building, Testing and Debugging `KCLVM`

### How to Build and Run `KCLVM`

#### Prerequisites

#### Build from Source Code

#### Working with Docker Image

#### Run `KCLVM`

### Testing `KCLVM`

#### Running Tests

#### Adding New Tests

#### Performance Testing

#### Fuzzing

### Debugging `KCLVM`

## Contributing to `KCLVM`

### Introduction

### Language Design and Discussion

#### KCL Enhancement Proposal (KEP)

### Language Implementation

#### How to Do a Bug Fix.

#### How to Process the Development of a Small Function

#### How to Complete the Development of an Important Function

### Development Tools

#### Using IDE

#### Using Git

#### Continuous Integration (CI)

#### Issues and Pull Requests

### A Typical Contribution

### Version Maintenance Policy

### Coding Conventions

### Notification Groups

### License

## Compiler Architecture

### Overview

### Syntax

#### Lexer

#### Parser

#### Abstract Syntax Tree (AST)

### Sematic

#### Type System

#### Scope

#### Resolver

### Code Generation

#### Control Flow Graph (CFG)

#### LLVM

#### WASM

### Runtime

#### Values

#### System Standard Libraries

### Error Handling

### Config

### Plugin

### Tools

#### Format Tool

#### Documentation Tool

#### Lint Tool

#### Query Tool

#### Validation Tool

### Language Server Protocol (LSP)

## Appendix A: Glossary

## Appendix B: Code Index

## Appendix C: Bibliography

@ldxdl
Copy link
Contributor

ldxdl commented Jun 1, 2022

Things to be considered:

  • Working with dev docker image
  • Conformance testing
  • Version maintenance policy
  • Performance check rules
  • Dev process. E.g.:
    • How to do a bug fix
    • How to process the development of a small function
    • How to complete the development of an important function
  • Focus on clarifying the requirements for testing and code specification at the very beginning

@Peefy
Copy link
Contributor Author

Peefy commented Jun 1, 2022

Considering separating the developer manual of KCLVM into a separate repo for easy maintenance, as well as providing multi-language versions.

@Peefy Peefy pinned this issue Jun 1, 2022
@Peefy Peefy modified the milestones: v0.4.3 Release, v0.4.4 Release Aug 25, 2022
@Peefy Peefy removed this from the v0.4.4 Release milestone Dec 4, 2022
@Peefy Peefy added the help wanted Extra attention is needed label Dec 15, 2022
@Peefy Peefy unpinned this issue Jun 19, 2023
@Peefy Peefy pinned this issue Jul 25, 2023
@Peefy Peefy unpinned this issue Nov 15, 2023
@Peefy
Copy link
Contributor Author

Peefy commented Apr 9, 2024

Closed by #1194

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation enhancement New feature or request help wanted Extra attention is needed long-term
Projects
None yet
Development

No branches or pull requests

7 participants