-
Notifications
You must be signed in to change notification settings - Fork 4
Implement Patch in C++ #12
Conversation
Signed-off-by: Nathan Sobo <[email protected]>
Signed-off-by: Nathan Sobo <[email protected]>
Signed-off-by: Nathan Sobo <[email protected]>
Signed-off-by: Damien Guard <[email protected]>
Signed-off-by: Max Brunsfeld <[email protected]>
When creating a brand new buffer by round-tripping the data through a base-64 encoded string, the existing approach wasn't accessing the data correctly and the serialization version check was failing comparing against what looked like garbage data. I tracked down this API which seems simpler and works with buffers that have been created from base-64-encoded strings. /cc @maxbrunsfeld
|
@maxbrunsfeld This should be good to merge as soon as we figure out these linker errors on Travis 😿. |
|
Trying to run the JS tests only to see if this is related to the configuration of the native tests. |
|
Okay, looks like it's the configuration of the test target on Linux. |
e1640ff to
7fd6357
Compare
|
I wonder if this has something to do with trying to link the tests executable against V8 since we include |
For some reason, building the tests in debug mode on Linux causes linker issues that I don't want to solve.
|
Building the tests without the |
By specifying the -Og compiler flag we get "debugger-friendly" optimizations. This removes references to symbols in nan.h that are only available in the Node binary and that can't be resolved when linking our tests executable.
|
Okay, I figured it out. I think when we compiled the Replacing |
|
Yeah, so In light of atom-archive/buffer-offset-index#2, we might want to just remove the v8 dependency from our 'core' Patch code, and only use it in |
|
There's a boost header-only library that implements optionals that I think is going to be standardized in C++17. |
Methods needed for the new DisplayLayer refactor
splice(start, deletedExtent, insertedExtent)spliceOld(start, deletedExtent, insertedExtent)getHunks()getHunkInOldRange(oldStart, oldEnd)getHunkInNewRange(newStart, newEnd)hunkForOldPosition(oldStart)hunkForNewPosition(oldStart)Other methods needed to for existing use cases
splice(start, deletedExtent, insertedExtent, deletedText, insertedText)composeinvertserializedeserialize