-
Notifications
You must be signed in to change notification settings - Fork 40
[interpreter] Implement basic reference types and multiple tables #2
Conversation
module: ( module <name>? <typedef>* <func>* <import>* <export>* <table>? <memory>? <global>* <elem>* <data>* <start>? ) | ||
<typedef>* <func>* <import>* <export>* <table>? <memory>? <global>* <elem>* <data>* <start>? ;; = | ||
( module <typedef>* <func>* <import>* <export>* <table>? <memory>? <global>* <elem>* <data>* <start>? ) | ||
module: ( module <name>? <typedef>* <func>* <import>* <export>* <table>* <memory>? <global>* <elem>* <data>* <start>? ) |
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.
Does elem_type
need to change in this file as well to support eqref
and anyref
in addition to anyfunc
?
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.
Also, val_type
I suppose (or rather, split it and change what param
, result
, local
, etc can handle to include refs)
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.
Oops, you're right. Fixed.
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.
Ok, well, modulo the one null type issue, everything lgtm; happy to discuss null type at April CG meeting.
First go at implementing the baseline proposal:
anyref
andeqref
(and internalnullref
) and respective subtypingref.null
,ref.isnull
,ref.eq
,get_table
,set_table
ref.null
andref N
literals in assertion languageOpcode allocation should be considered preliminary.