feature/add-tvm-opcodes-list
What is this PR?
Origin: https://github.com/everscale-org/bounties/issues/32 This PR contains a workflow code pipeline for the list of all TVM opcodes.
Changes
Including:
- A folder at src/arch/ that contains markdown generation logic, also can be rendered at the docs website
- CSV file: contain the aggregated information from instructions.csv, tvm.tex(or initial TVM paper), and Everscale Extended Instructions, with an additional column that represented tvm_assembler.
- GitHub workflow file that auto writes the .md after there are push changes to the CSV
Progress
The opcodes collecting job is done. Also fixed the missing description of some opcodes.
Problems:
- Still haven't tested the gas calculation of some new opcodes.
- Still haven't figured out the tvm_asm of some complex opcodes. We may need to discuss this more.
Question?
- What is the layout visual of the expanded column I should handle? I've implemented a single column
@everscale-org/docs :rocket: preview https://everscale-org.github.io/preview/PR-342/arch/opcodes/tvm_instructions
@ilyar Hello, I've added the collapsed column.
:rocket: update preview https://everscale-org.github.io/preview/PR-342/arch/opcodes/tvm_instructions
@gadillacer
- the page lacks general rules of how the gas is calculated.
- I see some empty lines in the generated table
- I see that the rightmost column is mostly empty. and for some opcodes, it duplicates the content from the
desccolumn. (screenshot attached)
To describe the general rules of gas calculation, you can get some insight from the original specification by Telegram: https://ton.org/tvm.pdf Appendix A, section 1:
Also it would be nice if you double-check if the implementation keeps these rules. If not, please outline the differences as well.
@ilyar seems like I misunderstood something from the beginning.
@qwadratic
- The data from the expanded column is just an example.
@ilyar I've updated a bit according to your requests. Check pls.
Hope you can provide me next step to do after that.