Open moul opened 1 year ago
Starting with the implementation of the first enhancement (os.Args).
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 https://github.com/gnolang/gno/pull/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.
Do you already have a PR for your work? can you share, the link?
@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.
Yes please, a draft PR may be useful to help you.
@moul This is what I was trying to do: https://github.com/gnolang/gno/pull/982
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:
os.Args
, enabling more dynamic results from a single main function based on various parameters.package PKGPATH
specification, making it easier to add a main function and executegno run
on a package without having to specify a file (related to issue #768).Addresses #972