Skip to content

Operators enum#49

Merged
bananu7 merged 10 commits intomasterfrom
operators-enum
Sep 23, 2018
Merged

Operators enum#49
bananu7 merged 10 commits intomasterfrom
operators-enum

Conversation

@bananu7
Copy link
Copy Markdown
Owner

@bananu7 bananu7 commented Sep 23, 2018

This is a rather important change from the refactoring standpoint, but sees almost no improvement from the user's PoV. In fact, the operators aren't available as functions anymore, which requires using special code if one wants to use them as such.

For the VM, however, this means eliminating a lot of vmThrowErrors, which were there because the arity of operators wasn't guaranteed at callsite. Right now the parser call information is properly preserved right until the call.

This also required moving all the operator code to Eval.Eval. While this made the module grow significantly, I don't think it's such a huge issue in the end. Operators now being core parts of the language really don't belong in the outer modules, and it was just that much easier to implement them there.

There are still a few things left to polish, namely fixing the comparison parser test, fixing names for internal op impl functions and some other small changes.

@bananu7
Copy link
Copy Markdown
Owner Author

bananu7 commented Sep 23, 2018

As for the issues closed, #5 and #40 obviously, #44, but also potentially #33, #42?

@bananu7 bananu7 merged commit f9901ca into master Sep 23, 2018
@bananu7 bananu7 deleted the operators-enum branch September 23, 2018 09:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant