visit-dav / visit

VisIt - Visualization and Data Analysis for Mesh-based Scientific Data
https://visit.llnl.gov
BSD 3-Clause "New" or "Revised" License
434 stars 112 forks source link

code generation appears to be broken for a few PyXXX source files #602

Open aowen87 opened 5 years ago

aowen87 commented 5 years ago

We apparently have some state objects (objects whose code mostly gets auto-generated) that require some manual touchup after the generation. I was stumped for 1+ hours on PyavtMeshMetaData.C due to this. The generated code wasn't compiling and I thought I had blown something. It was occuring in a branch just after a merge of trunk to my branch so that complicated the task of tracking down the problem even more. Eventually, I sent email to another developer and was told that PyavtMeshMetaData.C is one of the source files that cannot be fully generated.

-----------------------REDMINE MIGRATION----------------------- This ticket was migrated from Redmine. As such, not all information was able to be captured in the transition. Below is a complete record of the original redmine ticket.

Ticket number: 591 Status: Pending Project: VisIt Tracker: Bug Priority: Normal Subject: code generation appears to be broken for a few PyXXX source files Assigned to: Mark Miller Category: - Target version: - Author: Mark Miller Start: 02/07/2011 Due date: % Done: 0% Estimated time: Created: 02/07/2011 09:14 pm Updated: 09/22/2011 11:33 am Likelihood: 3 - Occasional Severity: 2 - Minor Irritation Found in version: 2.0.1 Impact: Expected Use: OS: All Support Group: Any Description: We apparently have some state objects (objects whose code mostly gets auto-generated) that require some manual touchup after the generation. I was stumped for 1+ hours on PyavtMeshMetaData.C due to this. The generated code wasn't compiling and I thought I had blown something. It was occuring in a branch just after a merge of trunk to my branch so that complicated the task of tracking down the problem even more. Eventually, I sent email to another developer and was told that PyavtMeshMetaData.C is one of the source files that cannot be fully generated.

Comments: Here are some python objects that I notice could not be regenerated completely last time I updated the generator:Perhaps they either need to have their .code files modified, or the generator modified to handle their special cases, or a combination of both:PyavtMeshMetaDataPyView2DAttributesPyView3DAttributesPyDatabaseCorrelationPyAnnotationAttributesPyExportDBAttributesPyFontAttributesI believe that a few of them haven't been autogenerated in so long that looking at the changes presented when attempting to autogenerate is confusing at best. Hard to tell what is due to changes in the generation itself, and what is due to special caseneeds of the object. Probably best to fix code generation issues.The NameScheme member of a couple of objects seemed to be cause of problems for PyavtMeshMetaData (and PyavtSubsetsMetaData in a branch Mark M. has) and so maybe there is something special about that class that code-generation tools are not aware of?We agreed that we should just fix code generation tools.

cyrush commented 4 years ago

@markcmiller86 this is a blast from the past, but isn't also an issue you resolved in the last few months?

markcmiller86 commented 4 years ago

I don't recall doing any coding work in this regard. I did suggest we have a way to signify in the .xml file if resulting generated files have manual edits (#4106) and @biagas made some progress along those lines but also ran into some wrinkles that I don't think we've ironed out as a team.

markcmiller86 commented 3 years ago

@visit-dav/visit-developers is this essentially resolved now?

biagas commented 3 years ago

There are still some state object that cannot have their Py objects automatically regenerated. They are documented in visitpy/CMakeLists.txt: https://github.com/visit-dav/visit/blob/54edcb54dd6dd8a6952ea18308d51d270d0287eb/src/visitpy/CMakeLists.txt#L59-L70 https://github.com/visit-dav/visit/blob/54edcb54dd6dd8a6952ea18308d51d270d0287eb/src/visitpy/CMakeLists.txt#L78-L82 https://github.com/visit-dav/visit/blob/54edcb54dd6dd8a6952ea18308d51d270d0287eb/src/visitpy/CMakeLists.txt#L110-L117 https://github.com/visit-dav/visit/blob/54edcb54dd6dd8a6952ea18308d51d270d0287eb/src/visitpy/CMakeLists.txt#L226-L240