Skip to content
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

Port the Paris DOM bindings generator to Rust #240

Closed
brson opened this issue Jan 5, 2013 · 4 comments
Closed

Port the Paris DOM bindings generator to Rust #240

brson opened this issue Jan 5, 2013 · 4 comments
Assignees

Comments

@brson
Copy link
Contributor

brson commented Jan 5, 2013

Gecko uses a very advanced system for generating DOM bindings from WebIDL, developed through years of experience. It is apparently very good, so we should adopt it for servo as well.

Start by just exploring what's necessary to start emitting Rust code, then figure out how it is going to impact the definition of our DOM.

https://jstenback.wordpress.com/2012/04/11/new-dom-bindings/

@jdm
Copy link
Member

jdm commented Jan 5, 2013

FWIW, I've been investigating this. The current codegen is very Gecko/xpconnect-specific, including outputting opaque blobs of C++ at points. Boris agrees with me that the most productive avenue is to start the codegen from scratch for Rust and look at what kind of code can end up being shared between the two backends.

@bzbarsky
Copy link
Contributor

bzbarsky commented Jan 5, 2013

Right. A lot of the work involved in the Gecko codegen is getting the C++ types just right, making sure things are allocated/deallocated/refcounted/whatever correctly, forward-declaration, #includes, namespaces, etc. All of that would look somewhat different for Rust. Furthermore, some things (like the implementation of overload resolution) rely on C++ method overloading; not sure what that looks like in Rust.

We can obviously reuse the WebIDL parser and data model and the existing JIT integration setup, and should.

@ghost ghost assigned jdm Jan 15, 2013
@jdm
Copy link
Member

jdm commented Jan 15, 2013

I am actively working on this right now.

@jdm
Copy link
Member

jdm commented Aug 27, 2013

No real point keeping this open.

@jdm jdm closed this as completed Aug 27, 2013
ChrisParis pushed a commit to ChrisParis/servo that referenced this issue Sep 7, 2014
Add a test for the absence of a named getter on select elements.
glennw pushed a commit to glennw/servo that referenced this issue Jan 16, 2017
Change debug printlns to logs.

Addresses servo#10012.

r? @glennw
jdm pushed a commit to jdm/servo that referenced this issue Mar 6, 2021
Introduce a NewWindowProxy API.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.svg" height="40" alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/rust-mozjs/240)
<!-- Reviewable:end -->
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

No branches or pull requests

3 participants