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

comparison with "edit and continue" #18

Open
Trass3r opened this issue Feb 4, 2019 · 3 comments
Open

comparison with "edit and continue" #18

Trass3r opened this issue Feb 4, 2019 · 3 comments

Comments

@Trass3r
Copy link

Trass3r commented Feb 4, 2019

How does it compare to /ZI?
Implementation details, performance, limitations.
Would be good to add that to the readme.

@Trass3r
Copy link
Author

Trass3r commented Feb 4, 2019

About EnC limitations: https://blogs.msdn.microsoft.com/vcblog/2016/07/01/c-edit-and-continue-in-visual-studio-2015-update-3/

Requires /Gy + /INCREMENTAL and is incompatible with /OPT:* and custom compilers.

@crosire
Copy link
Owner

crosire commented Feb 4, 2019

Technically blink makes use of a lot of the information provided by /ZI. So there are silimarities. But this projected started back when EnC was still much more limited (it improved a lot in the last couple of years). I haven't compared in a while.
On the points you mentioned: blink doesn't need /Gm or /INCREMENTAL. It also works with optimizations enabled (although this could potentially cause some weird behavior because of inlining).
blink will attempt to use whatever compiler was used to compile the target application. If it fails to detect that it will instead fall back to executing the first cl.exe that is in PATH.

@Trass3r
Copy link
Author

Trass3r commented Feb 5, 2019

I guess it's still true that EnC uses extra padding to replace functions "in-place" in contrast to your approach of putting them in new memory and redirecting the old ones?

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

2 participants