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

Improve gno run #930

Open
moul opened this issue Jun 22, 2023 · 6 comments
Open

Improve gno run #930

moul opened this issue Jun 22, 2023 · 6 comments
Labels
good first issue Good for newcomers help wanted Extra attention is needed

Comments

@moul
Copy link
Member

moul commented Jun 22, 2023

The gno run command is presently in a pre-alpha phase and may not perform reliably due to its specific requirements for package and function naming.

Its primary objective is to facilitate a smooth transition for developers from Go by allowing them to start with a basic main function. Additionally, it aims to provide utility tools for those who are forking or reviewing a package.

To enhance its usability and commence documentation in guides, two primary enhancements are urgently needed:

  1. The inclusion of argument passing support akin to os.Args, enabling more dynamic results from a single main function based on various parameters.
  2. Increased flexibility in the package PKGPATH specification, making it easier to add a main function and execute gno run on a package without having to specify a file (related to issue Allow *_test.gno file to run pkg with _test as suffix #768).

Addresses #972

@moul moul added good first issue Good for newcomers help wanted Extra attention is needed labels Jun 22, 2023
@ajnavarro
Copy link
Contributor

ajnavarro commented Jun 26, 2023

Starting with the implementation of the first enhancement (os.Args).

@ajnavarro
Copy link
Contributor

I refactored the RunMain() method to accept a slice of arguments. Apart from that, I added the os package into the stdlibs gnovm folder.

stdlib is loaded when using VMKeeper but RunMain() is on the Machine struct, so it looks a bit strange that to make Args work, you need to use the VM through the VMKeeper.

I'm having some problems injecting the Args into a var inside a package, waiting for #859 which should make the process simpler.

If someone has some insights about how to move forward, I'd be willing to chat with you about it.

@moul
Copy link
Member Author

moul commented Jul 13, 2023

Do you already have a PR for your work? can you share, the link?

@ajnavarro
Copy link
Contributor

@moul I don't. Because I wasn't able to make it work, I just discarded the changes. I can recreate and add them to a draft PR.

@moul
Copy link
Member Author

moul commented Jul 17, 2023

Yes please, a draft PR may be useful to help you.

@ajnavarro
Copy link
Contributor

@moul This is what I was trying to do: #982

@moul moul added this to the 🌟 main.gno.land (wanted) milestone Sep 8, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
good first issue Good for newcomers help wanted Extra attention is needed
Projects
Status: Todo
Status: 🌟 Wanted for Launch
Development

No branches or pull requests

2 participants