-
Notifications
You must be signed in to change notification settings - Fork 445
feat(stdlibs): add package strconv
#1464
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
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #1464 +/- ##
==========================================
+ Coverage 61.11% 63.47% +2.36%
==========================================
Files 565 552 -13
Lines 75396 86833 +11437
==========================================
+ Hits 46077 55117 +9040
- Misses 25950 28135 +2185
- Partials 3369 3581 +212
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
|
So, tests are currently failing. A bunch of tests I've fixed after realising that the underlying problem is with how we do comparisons when we have a bitshift with an untyped integer on the lhs: #1462 (comment) I suspect there may be more bugs involved. In any case, I attempted to make a separate branch from this which merged in the changes from #1426. Turns out, that the tests are completely passing with that code applied to Gno. So, I'll be continuing work on this once #1426 is merged. For the meantime, I'll update the OP to mark what remaining work is to be done to complete this PR so I can easily pick it up later. |
I did this as an experiment, it passes all the test after making a small adjustment on your code, |
|
This PR is now ready for review. I updated the OP with a summary of the changes involved. |
Sounds reasonable, let's do it. |
moul
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's a nice one!
Co-authored-by: Manfred Touron <94029+moul@users.noreply.github.com>
This PR adds the full
strconvpackage, implemented as pure Gno code. It removes the native functionsItoa(and others), and adds support for new functions such asFormatFloat.Summary of changes
strconvfrom Go stdlib: https://gist.github.com/thehowl/904b42b1ea53fef9b8a0486155c02b73 -- tldr:unicodestrconvtests succeed.unicode/utf8fallback(as we now half-support it) and useAppendString.store.go,store_test.go,nodes.go,tests/imports.go.gonative.goandmachine.gochanges improve some error messages.preprocess.gochanges fix a bug which can be seen in thefor20.gnotest. If aforloop is labeled, then a barebreak(ie. without a label to break to) would panic, as it wouldn't find any for loop without a label (infindBranchLabel). I added a regression test as well as a couple test showing the error message for when we misplace continue/break statements.strconv.Itoanow uses more gas than its existing native implementation. This is to be expected; we can consider moving it back to a native implementation if we deem it useful for performance, but I think it's good for us to work on having as much code implemented directly in gno before moving it back to Go for performance.