abs
abs copied to clipboard
Make fmt() function more like C's sprintf()
At least reduce the number of cases for Go's dreaded %!d(string=5) to appear when the user applies printf format tags, as shown in https://github.com/abs-lang/abs/issues/374#issuecomment-669694631
This PR now swings in the other direction: %s only works properly with strings. The easy fix, if %s really means "print the canonical representation of whatever it's pointing at", is to replace all %s with %v in evaluator.fmtFn() before calling fmt.Sprintf().
Alternatively, the fmt() portion of https://www.abs-lang.org/types/string could point at https://golang.org/pkg/fmt/#hdr-Printing instead of the current https://linux.die.net/man/3/sprintf, and existing examples be updated to use %v for this purpose instead of %s.
What do you think?