Closed cjihrig closed 1 year ago
Interesting, the type of those fields didn't change, but they are all prefixed by __int
. Is the metadata generated for Torque classes prefixed by the the metadata type instead of the field type? That's probably not a good idea, if a field type changes it wouldn't reflect on the metadata name, and we wouldn't have a way to check the type on llnode...
class_Symbol__name__Object
was removed as well, I'm guessing in this version. Still investigating.
So I renamed the String metadata back to their previous names in: https://chromium-review.googlesource.com/c/v8/v8/+/1847783. I also added the missing metadata for symbols. Will update the tests once this is merged to core.
If the above gets merged, no changes will be necessary on llnode for 7.7 (and then we can close this issue). I already have patches to fix 7.2, 7.4 and 7.6 (I haven't opened PRs with all of them yet because some are blocked by #303), so once the metadata lands upstream and is backported to core, we'll have llnode working on Node.js v12 :)
@cjihrig We discussed the issue of breaking changes in a recent diagnostics meeting. Is there a process around how these breaking changes are identified and flagged to llnode or do we just rely on the good will of folks like yourself?
There used to be a test in core that verified the existence of the metadata used by llnode. However, that test was removed in https://github.com/nodejs/node/commit/9a0aaa610706bfe7aeb2234b085cdcb912403c90. After that, I think @mmarchini had her own way of detecting the breaking changes. You'll definitely want some automated way to detect the breaking changes because they happen frequently with V8 updates.
Cheers @cjihrig - I'll close this and captured your recommendation here https://github.com/nodejs/llnode/issues/412
The V8 7.7 update requires the following adjustments to the postmortem debugging metadata constants:
v8dbg_class_ConsStringfirstString
v8dbg_class_ConsStringsecondString
v8dbg_class_SlicedStringoffsetSMI
v8dbg_class_ThinStringactualString
Refs: https://github.com/nodejs/node/pull/28918