[Lldb-commits] [PATCH] D142926: [lldb][RFC] Replace SB swig interfaces with API headers

Alex Langford via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Tue Feb 7 17:38:46 PST 2023


bulbazord updated this revision to Diff 495695.
bulbazord added a comment.
Herald added a reviewer: jdoerfert.
Herald added subscribers: Michael137, sstefan1.

First pass at a complete implementation. Actions taken:

- Added swig flags to ignore swig warnings indicating that swig is ignoring certain operator overloads (e.g. operator=)
- Broke SB${Class}.i files into SB${Class}Docstrings.i (containing the docstrings) and SB${Class}Extensions.i (containing additional python functionality)
- Deleted all SB${Class}.i files.
- Moved necessary typemaps into python-typemaps.swig.
- Audited all SB class headers and add preprocessor macros to ignore any functions and methods that were not implemented in the SB${Class}.i files.
  - This is just to make this change more "atomic" (i.e. not adding any new functionality)

I can imagine that folks will have some opinions about this patch. It is pretty large, contains a few
"warts" (some of the swig header guards aren't very pretty), and there are probably better ways to do some things.
I'd therefore like to start getting feedback on this patch now that it works on my machine.
I've run the test suite on my macOS machine which I'm sure won't run every single test in every single configuration that
get run on the bots so I expect there to be some amount of churn even if this is approved and lands.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D142926/new/

https://reviews.llvm.org/D142926

Files:
  lldb/bindings/CMakeLists.txt
  lldb/bindings/interface/SBAddress.i
  lldb/bindings/interface/SBAddressDocstrings.i
  lldb/bindings/interface/SBAddressExtensions.i
  lldb/bindings/interface/SBAttachInfo.i
  lldb/bindings/interface/SBAttachInfoDocstrings.i
  lldb/bindings/interface/SBBlock.i
  lldb/bindings/interface/SBBlockDocstrings.i
  lldb/bindings/interface/SBBlockExtensions.i
  lldb/bindings/interface/SBBreakpoint.i
  lldb/bindings/interface/SBBreakpointDocstrings.i
  lldb/bindings/interface/SBBreakpointExtensions.i
  lldb/bindings/interface/SBBreakpointLocation.i
  lldb/bindings/interface/SBBreakpointLocationDocstrings.i
  lldb/bindings/interface/SBBreakpointLocationExtensions.i
  lldb/bindings/interface/SBBreakpointName.i
  lldb/bindings/interface/SBBreakpointNameDocstrings.i
  lldb/bindings/interface/SBBreakpointNameExtensions.i
  lldb/bindings/interface/SBBroadcaster.i
  lldb/bindings/interface/SBBroadcasterDocstrings.i
  lldb/bindings/interface/SBCommandInterpreter.i
  lldb/bindings/interface/SBCommandInterpreterDocstrings.i
  lldb/bindings/interface/SBCommandInterpreterRunOptions.i
  lldb/bindings/interface/SBCommandInterpreterRunOptionsDocstrings.i
  lldb/bindings/interface/SBCommandReturnObject.i
  lldb/bindings/interface/SBCommandReturnObjectDocstrings.i
  lldb/bindings/interface/SBCommandReturnObjectExtensions.i
  lldb/bindings/interface/SBCommunication.i
  lldb/bindings/interface/SBCommunicationDocstrings.i
  lldb/bindings/interface/SBCompileUnit.i
  lldb/bindings/interface/SBCompileUnitDocstrings.i
  lldb/bindings/interface/SBCompileUnitExtensions.i
  lldb/bindings/interface/SBData.i
  lldb/bindings/interface/SBDataDocstrings.i
  lldb/bindings/interface/SBDataExtensions.i
  lldb/bindings/interface/SBDebugger.i
  lldb/bindings/interface/SBDebuggerDocstrings.i
  lldb/bindings/interface/SBDebuggerExtensions.i
  lldb/bindings/interface/SBDeclaration.i
  lldb/bindings/interface/SBDeclarationDocstrings.i
  lldb/bindings/interface/SBDeclarationExtensions.i
  lldb/bindings/interface/SBEnvironment.i
  lldb/bindings/interface/SBEnvironmentDocstrings.i
  lldb/bindings/interface/SBError.i
  lldb/bindings/interface/SBErrorDocstrings.i
  lldb/bindings/interface/SBErrorExtensions.i
  lldb/bindings/interface/SBEvent.i
  lldb/bindings/interface/SBEventDocstrings.i
  lldb/bindings/interface/SBExecutionContext.i
  lldb/bindings/interface/SBExecutionContextDocstrings.i
  lldb/bindings/interface/SBExecutionContextExtensions.i
  lldb/bindings/interface/SBExpressionOptions.i
  lldb/bindings/interface/SBExpressionOptionsDocstrings.i
  lldb/bindings/interface/SBFile.i
  lldb/bindings/interface/SBFileDocstrings.i
  lldb/bindings/interface/SBFileExtensions.i
  lldb/bindings/interface/SBFileSpec.i
  lldb/bindings/interface/SBFileSpecDocstrings.i
  lldb/bindings/interface/SBFileSpecExtensions.i
  lldb/bindings/interface/SBFileSpecList.i
  lldb/bindings/interface/SBFileSpecListDocstrings.i
  lldb/bindings/interface/SBFrame.i
  lldb/bindings/interface/SBFrameDocstrings.i
  lldb/bindings/interface/SBFrameExtensions.i
  lldb/bindings/interface/SBFunction.i
  lldb/bindings/interface/SBFunctionDocstrings.i
  lldb/bindings/interface/SBFunctionExtensions.i
  lldb/bindings/interface/SBHostOS.i
  lldb/bindings/interface/SBHostOSDocstrings.i
  lldb/bindings/interface/SBInstruction.i
  lldb/bindings/interface/SBInstructionDocstrings.i
  lldb/bindings/interface/SBInstructionExtensions.i
  lldb/bindings/interface/SBInstructionList.i
  lldb/bindings/interface/SBInstructionListDocstrings.i
  lldb/bindings/interface/SBInstructionListExtensions.i
  lldb/bindings/interface/SBLanguageRuntime.i
  lldb/bindings/interface/SBLanguageRuntimeDocstrings.i
  lldb/bindings/interface/SBLaunchInfo.i
  lldb/bindings/interface/SBLaunchInfoDocstrings.i
  lldb/bindings/interface/SBLineEntry.i
  lldb/bindings/interface/SBLineEntryDocstrings.i
  lldb/bindings/interface/SBLineEntryExtensions.i
  lldb/bindings/interface/SBListener.i
  lldb/bindings/interface/SBListenerDocstrings.i
  lldb/bindings/interface/SBMemoryRegionInfo.i
  lldb/bindings/interface/SBMemoryRegionInfoDocstrings.i
  lldb/bindings/interface/SBMemoryRegionInfoExtensions.i
  lldb/bindings/interface/SBMemoryRegionInfoList.i
  lldb/bindings/interface/SBMemoryRegionInfoListDocstrings.i
  lldb/bindings/interface/SBModule.i
  lldb/bindings/interface/SBModuleDocstrings.i
  lldb/bindings/interface/SBModuleExtensions.i
  lldb/bindings/interface/SBModuleSpec.i
  lldb/bindings/interface/SBModuleSpecDocstrings.i
  lldb/bindings/interface/SBModuleSpecExtensions.i
  lldb/bindings/interface/SBPlatform.i
  lldb/bindings/interface/SBPlatformDocstrings.i
  lldb/bindings/interface/SBProcess.i
  lldb/bindings/interface/SBProcessDocstrings.i
  lldb/bindings/interface/SBProcessExtensions.i
  lldb/bindings/interface/SBProcessInfo.i
  lldb/bindings/interface/SBProcessInfoDocstrings.i
  lldb/bindings/interface/SBQueue.i
  lldb/bindings/interface/SBQueueDocstrings.i
  lldb/bindings/interface/SBQueueItem.i
  lldb/bindings/interface/SBQueueItemDocstrings.i
  lldb/bindings/interface/SBReproducer.i
  lldb/bindings/interface/SBReproducerDocstrings.i
  lldb/bindings/interface/SBSection.i
  lldb/bindings/interface/SBSectionDocstrings.i
  lldb/bindings/interface/SBSectionExtensions.i
  lldb/bindings/interface/SBSourceManager.i
  lldb/bindings/interface/SBSourceManagerDocstrings.i
  lldb/bindings/interface/SBStream.i
  lldb/bindings/interface/SBStreamDocstrings.i
  lldb/bindings/interface/SBStreamExtensions.i
  lldb/bindings/interface/SBStringList.i
  lldb/bindings/interface/SBStringListDocstrings.i
  lldb/bindings/interface/SBStringListExtensions.i
  lldb/bindings/interface/SBStructuredData.i
  lldb/bindings/interface/SBStructuredDataDocstrings.i
  lldb/bindings/interface/SBSymbol.i
  lldb/bindings/interface/SBSymbolContext.i
  lldb/bindings/interface/SBSymbolContextDocstrings.i
  lldb/bindings/interface/SBSymbolContextExtensions.i
  lldb/bindings/interface/SBSymbolContextList.i
  lldb/bindings/interface/SBSymbolContextListDocstrings.i
  lldb/bindings/interface/SBSymbolContextListExtensions.i
  lldb/bindings/interface/SBSymbolDocstrings.i
  lldb/bindings/interface/SBSymbolExtensions.i
  lldb/bindings/interface/SBTarget.i
  lldb/bindings/interface/SBTargetDocstrings.i
  lldb/bindings/interface/SBTargetExtensions.i
  lldb/bindings/interface/SBThread.i
  lldb/bindings/interface/SBThreadCollection.i
  lldb/bindings/interface/SBThreadCollectionDocstrings.i
  lldb/bindings/interface/SBThreadDocstrings.i
  lldb/bindings/interface/SBThreadExtensions.i
  lldb/bindings/interface/SBThreadPlan.i
  lldb/bindings/interface/SBThreadPlanDocstrings.i
  lldb/bindings/interface/SBTrace.i
  lldb/bindings/interface/SBTraceCursor.i
  lldb/bindings/interface/SBTraceCursorDocstrings.i
  lldb/bindings/interface/SBTraceDocstrings.i
  lldb/bindings/interface/SBType.i
  lldb/bindings/interface/SBTypeCategory.i
  lldb/bindings/interface/SBTypeCategoryDocstrings.i
  lldb/bindings/interface/SBTypeCategoryExtensions.i
  lldb/bindings/interface/SBTypeDocstrings.i
  lldb/bindings/interface/SBTypeEnumMember.i
  lldb/bindings/interface/SBTypeEnumMemberDocstrings.i
  lldb/bindings/interface/SBTypeEnumMemberExtensions.i
  lldb/bindings/interface/SBTypeExtensions.i
  lldb/bindings/interface/SBTypeFilter.i
  lldb/bindings/interface/SBTypeFilterDocstrings.i
  lldb/bindings/interface/SBTypeFilterExtensions.i
  lldb/bindings/interface/SBTypeFormat.i
  lldb/bindings/interface/SBTypeFormatDocstrings.i
  lldb/bindings/interface/SBTypeFormatExtensions.i
  lldb/bindings/interface/SBTypeNameSpecifier.i
  lldb/bindings/interface/SBTypeNameSpecifierDocstrings.i
  lldb/bindings/interface/SBTypeNameSpecifierExtensions.i
  lldb/bindings/interface/SBTypeSummary.i
  lldb/bindings/interface/SBTypeSummaryDocstrings.i
  lldb/bindings/interface/SBTypeSummaryExtensions.i
  lldb/bindings/interface/SBTypeSynthetic.i
  lldb/bindings/interface/SBTypeSyntheticDocstrings.i
  lldb/bindings/interface/SBTypeSyntheticExtensions.i
  lldb/bindings/interface/SBUnixSignals.i
  lldb/bindings/interface/SBUnixSignalsDocstrings.i
  lldb/bindings/interface/SBUnixSignalsExtensions.i
  lldb/bindings/interface/SBValue.i
  lldb/bindings/interface/SBValueDocstrings.i
  lldb/bindings/interface/SBValueExtensions.i
  lldb/bindings/interface/SBValueList.i
  lldb/bindings/interface/SBValueListDocstrings.i
  lldb/bindings/interface/SBValueListExtensions.i
  lldb/bindings/interface/SBVariablesOptions.i
  lldb/bindings/interface/SBVariablesOptionsDocstrings.i
  lldb/bindings/interface/SBWatchpoint.i
  lldb/bindings/interface/SBWatchpointDocstrings.i
  lldb/bindings/interface/SBWatchpointExtensions.i
  lldb/bindings/interfaces.swig
  lldb/bindings/macros.swig
  lldb/bindings/python/python-typemaps.swig
  lldb/cmake/modules/LLDBFramework.cmake
  lldb/include/lldb/API/SBAddress.h
  lldb/include/lldb/API/SBAttachInfo.h
  lldb/include/lldb/API/SBBreakpoint.h
  lldb/include/lldb/API/SBBreakpointLocation.h
  lldb/include/lldb/API/SBBreakpointName.h
  lldb/include/lldb/API/SBBroadcaster.h
  lldb/include/lldb/API/SBCommandInterpreter.h
  lldb/include/lldb/API/SBCommandInterpreterRunOptions.h
  lldb/include/lldb/API/SBCommandReturnObject.h
  lldb/include/lldb/API/SBDebugger.h
  lldb/include/lldb/API/SBError.h
  lldb/include/lldb/API/SBEvent.h
  lldb/include/lldb/API/SBExecutionContext.h
  lldb/include/lldb/API/SBExpressionOptions.h
  lldb/include/lldb/API/SBFile.h
  lldb/include/lldb/API/SBFrame.h
  lldb/include/lldb/API/SBInstruction.h
  lldb/include/lldb/API/SBInstructionList.h
  lldb/include/lldb/API/SBLaunchInfo.h
  lldb/include/lldb/API/SBListener.h
  lldb/include/lldb/API/SBModule.h
  lldb/include/lldb/API/SBPlatform.h
  lldb/include/lldb/API/SBProcess.h
  lldb/include/lldb/API/SBQueue.h
  lldb/include/lldb/API/SBReproducer.h
  lldb/include/lldb/API/SBSourceManager.h
  lldb/include/lldb/API/SBStream.h
  lldb/include/lldb/API/SBStringList.h
  lldb/include/lldb/API/SBStructuredData.h
  lldb/include/lldb/API/SBSymbolContext.h
  lldb/include/lldb/API/SBTarget.h
  lldb/include/lldb/API/SBThread.h
  lldb/include/lldb/API/SBThreadPlan.h
  lldb/include/lldb/API/SBTrace.h
  lldb/include/lldb/API/SBType.h
  lldb/include/lldb/API/SBTypeCategory.h
  lldb/include/lldb/API/SBTypeSummary.h
  lldb/include/lldb/API/SBTypeSynthetic.h
  lldb/include/lldb/API/SBValue.h
  lldb/include/lldb/API/SBWatchpoint.h



More information about the lldb-commits mailing list