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

List of all TVM opcodes #32

Open
cryshado opened this issue Apr 7, 2023 · 29 comments
Open

List of all TVM opcodes #32

cryshado opened this issue Apr 7, 2023 · 29 comments

Comments

@cryshado
Copy link
Contributor

cryshado commented Apr 7, 2023

Brief Introduction

This proposal aims to collect all TVM opcodes, including new ones from Everscale implementation, and generate a comprehensive CSV table with descriptions. The script for code generation in a markdown table will automate the process of updating the TVM opcode reference, saving time and effort. The resulting CSV table and markdown table will be useful for developers working on TVM projects, enabling them to quickly and easily reference all TVM opcodes and their descriptions, and the pull request to the documentation with the codegen pipeline will improve the overall quality of the TVM documentation, making it more user-friendly.

Useful Materials

Goals

TVM Opcodes Table with Everscale Implementation:

  • Collect all TVM opcodes with descriptions in a CSV table
  • Add all new TVM opcodes from Everscale implementation
  • Develop a script for code generation in a markdown table
  • Open a new pull request to docs with codegen pipeline

The CSV table must contain the following fields:

param description
name basic name
alias possible synonyms to the name
opcode hexadecimal representation with arguments
category category of a specific operation
tvm_asm representation in tvm assembler with parameters
fift_asm representation in fift assembler with parameters
stack stack effects
gas gas consumption
tlb TL-B scheme for a specific operation and its parameters
desc basic description

(the table can be expanded with other columns)

What's the result

CSV table with all initial and Everscale implementation TVM opcodes. Pull request to docs
with codegen pipeline, that can perform markdown table with all TVM opcodes from CSV table.

Reward (from @everscale-org)

300 USDT in EVER base reward
50 USDT in EVER extra reward if the task is completed in less than 7 days

@cryshado
Copy link
Contributor Author

cryshado commented Apr 7, 2023

@BorisI @elasticLove1 this proposal needs your attention, thank you

@Dhruv245
Copy link

Dhruv245 commented Apr 18, 2023

Hi, I would love to apply for this. I will complete the bounty in 2-3 hours. I am thinking of a bounty of $500

@cryshado
Copy link
Contributor Author

Hi, I would love to apply for this. I will complete the bounty in 2-3 hours. I am thinking of a bounty of $500

Sorry, we are not sure of your qualifications based on your past posts. We're very sorry, but we can't assign you

@ilyar
Copy link
Contributor

ilyar commented Apr 22, 2023

🎱

@cryshado
Copy link
Contributor Author

🎱

@qwadratic
Copy link

🎱 (which means that i support this bounty)

@ghost
Copy link

ghost commented Apr 23, 2023

Ready to take this task

@cryshado cryshado assigned ghost Apr 23, 2023
@cryshado
Copy link
Contributor Author

@kokkekpek Good luck! Remember to occasionally update us on your current progress by writing here

@Dhruv245

This comment was marked as duplicate.

@ghost
Copy link

ghost commented Apr 24, 2023

@kokkekpek Good luck! Remember to occasionally update us on your current progress by writing here

Have no time to do this

@cryshado
Copy link
Contributor Author

@kokkekpek Good luck! Remember to occasionally update us on your current progress by writing here

Have no time to do this

Ok, no problem, I'll take you off the assignment. We'd love to see you in future :)

@brymut
Copy link

brymut commented Apr 25, 2023

Hi @cryshado, I'm interested in making an attempt at this, I have a working understanding on blockchains and building projects in the web3 space & I've familiarized myself on what you're looking for based on this issue spec. As a web developer, I currently have 5 years experience in web design & development and have been working as a freelance web developer, working in various programming languages (Typescript/Python) and in various frameworks and libraries (React/Angularjs/Django). Over the past 2 years I have also been contributing towards various blockchain related opensource projects. Recently in particular:

Hope this is satisfactory.

@ilyar
Copy link
Contributor

ilyar commented Apr 27, 2023

@brymut Good luck! Remember to occasionally update us on your current progress by writing here

@brymut
Copy link

brymut commented May 3, 2023

Quick update @ilyar , I have a created a WIP in progress PR here: everscale-org/docs#326. Will update this comment by tomorrow with a full description of what I've been able to do, what I have left and what I need help with. Thanks.

@cryshado
Copy link
Contributor Author

cryshado commented May 4, 2023

@brymut excellent! But please see https://github.com/tonlabs/ever-vm to specify stack effects, gas consumption for new opcodes, and also see https://github.com/tonlabs/ever-assembler to specify TVM ASM representation.

@ilyar
Copy link
Contributor

ilyar commented May 7, 2023

@brymut How are things? Please update us on your status and plans, as we haven't heard from you in a while.

@ilyar
Copy link
Contributor

ilyar commented May 20, 2023

@zerefwth
Copy link

zerefwth commented May 23, 2023

@ilyar Willing to take on this task.

@zerefwth
Copy link

@cryshado @ilyar Hello, can you guys suggest how I can run the gas tests inside ever-vm repo? It will help a lot.

@ilyar
Copy link
Contributor

ilyar commented May 27, 2023

@gadillacer Currently, there is no straightforward way to do this. I will try to clarify and inform you later. In the meantime, you can use gas consumption values from the existing list in the related project (https://docs.ton.org/learn/tvm-instructions/instructions). Leave instructions blank if they are not available there. Hopefully, we will be able to fill them based on the information we obtain later.

@elasticLove1
Copy link

You can use ever-sdk (it has executor(VM is a part of executor)as a dependency) https://docs.everos.dev/ever-sdk/guides/work_with_contracts/estimate_fees @gadillacer

@ilyar
Copy link
Contributor

ilyar commented May 30, 2023

@gadillacer How are things? Please update us on your status and plans, as we haven't heard from you in a while.

@zerefwth
Copy link

Hello @ilyar, I'm still on my way to figuring out how stacks worked.

By the way, I've just created a PR.
Will update it with more information soon! Thanks

@zerefwth
Copy link

zerefwth commented Jun 1, 2023

Got my PR's description updated.
You can take a look at it now @ilyar @cryshado @elasticLove1

@ilyar
Copy link
Contributor

ilyar commented Jun 2, 2023

@gadillacer everscale-org/docs#342 (review)

@ilyar
Copy link
Contributor

ilyar commented Jun 5, 2023

Period for bounty extended upto 2023/05/19-2023/06/19
https://dorahacks.io/daobounty/302

@zerefwth
Copy link

@ilyar Hi there!
I'm interested in picking up this issue again, which I had been unassigned three weeks ago. It seems like finding a suitable candidate for this task has been challenging for you guys.

To better understand the difficulty level, I have five questions that I hope you can answer. By doing so, it will not only assist me in completing the task, but it will also provide valuable insights for future candidates.

  1. Can you provide more exact details about the additional column representing (gas effects? or additional information?)
  2. Regarding the "Main network & Gosh" categorization in the markdown file, could you please clarify what it entails or how it should be implemented?
  3. Is there a specific reason for using NPM instead of Python? Could you explain the desired final flow for this task? Is my current PR's Github Action okay?
  4. Could you explain how the gas check should be performed in the "ever-vm"?
  5. The task involving TVM assembler check-in codes seems quite challenging. Have you attempted it, or would you like me to ask for help in the "ever-assembler" repository?

Lastly, it would be helpful to know the expected or desired complete outcome for this task. Could you please provide more information about it?

Looking forward to your response!

@ilyar
Copy link
Contributor

ilyar commented Jun 28, 2023

@gadillacer see Reference in everscale-org/docs#255

@ilyar
Copy link
Contributor

ilyar commented Jun 28, 2023

@gadillacer

Is there a specific reason for using NPM instead of Python? Could you explain the desired final flow for this task? Is my current PR's Github Action okay?

Firstly, it is possible, and the main goal is to complicate the current stack and not complicate the build process

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants