Skip to content

Static Library/Cleanup#29

Merged
lcarcaramo merged 12 commits intodevfrom
feat/static-library-cleanup
Mar 10, 2026
Merged

Static Library/Cleanup#29
lcarcaramo merged 12 commits intodevfrom
feat/static-library-cleanup

Conversation

@lcarcaramo
Copy link
Copy Markdown
Member

@lcarcaramo lcarcaramo commented Mar 9, 2026

💡 Issue Reference

Issue: fixes #24

💻 What does this address?

  • Build CBXP library distribution as a static library rather than a dynamic library. This makes makes it easier to call the C interface since all of the boilerplate for dealing with a dynamic library is not needed, and statically linking with CBXP means that CBXP does not need to be installed on each system a C/C++ application that uses CBXP is installed on since the static library is statically linked. And since CBXP is licensed under Apache 2.0, which is very permissive, only a copyright notice needs to be provided when statically linking.
  • Compile with -fstack-protector-strong. Compiling with this argument helps protect the stack form stack corruption.
  • Make sure cbxp_free() does not attempt to free NULL pointers.
  • Move cbxp_result_t to cbxp.h and delete cbxp_result.h.
  • Use std::memcpy() instead of std::strncpy() to copy CBXP result JSON to the C string buffer returned to the user and don't use 0 initialization when allocating the target C string buffer. Since we know the exact size of the string and that it is going to fill the entire buffer, there is no reason to use strncpy() and deal with it's nuances. It is also a waste of clock cycles to use zero initialization when allocating the target C string buffer since the entire buffer will be filled. To ensure the buffer is null terminated, just set the last bytes in the buffer to null since the buffer is allocated one byte longer than the source C++ string.
  • ASCBASCB is technically not a programming interface so support for that field has been removed from ascb.cpp.
  • Cleanup main.cpp.
  • Minor Jenkinsfile updates.
  • When creating the Shell/C/C++ PAX use -x pax to use the 'pax interchange format'. I believe this may result in slightly better compression along with a handful of other benefits.
  • Update copyright year in LICENSE file.

📋 Is there a test case?

All unit tests are passing.

⚠️ Note that static library cannot be used with xlc. I am not sure if xlc compiled code would work with a dynamic library distribution either based on the Binary Compatibility doc.

C Test:

#include <cbxp.h>
#include <stdbool.h>
#include <stdio.h>

int main() {
  // Call CBXP
  puts("Calling CBXP from C...");
  cbxp_result_t* cbxp_result = cbxp("psa", "", "", false);

  // Make sure call was successful
  if (cbxp_result->return_code != 0) {
    fprintf(stderr, "Error: CBXP return with RC=%d\n", cbxp_result->return_code);
  // Print Result JSON
  } else {
    puts(cbxp_result->result_json);
  }

  // Cleanup
  cbxp_free(cbxp_result, false);

  return 0;
}
# Compile
ibm-clang64 -c -fzos-le-char-mode=ascii -I./cbxp-0.0.3/include -o main.o main.c
# Link
ibm-clang++64 -fzos-le-char-mode=ascii -o main ./cbxp-0.0.3/lib/libcbxp.a main.o
# Run
./main

C++ Test:

#include <iostream>

#include <cbxp.h>

int main() {
  // Call CBXP
  std::cout << "Calling CBXP from C++..." << std::endl;
  cbxp_result_t * cbxp_result = cbxp("psa", "", "", false);

  // Make sure call was successful
  if (cbxp_result->return_code != 0) {
    std::cerr << "Error: CBXP returned with RC=" << cbxp_result->return_code << std::endl;
  // Print result JSON
  } else {
    std::cout << cbxp_result->result_json << std::endl;
  }

  // Cleanup
  cbxp_free(cbxp_result, false);

  return 0;
}
# Compile
ibm-clang++64 -c -fzos-le-char-mode=ascii -I./cbxp-0.0.3/include -o main.o main.cpp
# Link
ibm-clang++64 -fzos-le-char-mode=ascii -o main ./cbxp-0.0.3/lib/libcbxp.a main.o
# Run
./main

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>
Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>
Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>
Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>
Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>
Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>
Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>
@lcarcaramo lcarcaramo added this to the v0.0.3 milestone Mar 9, 2026
Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>
Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>
Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>
Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>
@ElijahSwiftIBM
Copy link
Copy Markdown
Collaborator

ElijahSwiftIBM commented Mar 10, 2026

Adding steps to build and extract the package to the PR conversation for those who may need them documented:

To build the pax run gmake package. The pax will get generated in the ./dist directory.

You need to extract the pax somewhere and point the include path accordingly.

You can extract the contents of the pax using pax -rf cbxp-0.0.3.pax.Z

$ tree
.
|-- cbxp-0.0.3
|   |-- LICENSE
|   |-- NOTICES
|   |-- bin
|   |   `-- cbxp
|   |-- include
|   |   `-- cbxp.h
|   `-- lib
|       `-- libcbxp.a
|-- cbxp-0.0.3-cp312-none-any.whl
|-- cbxp-0.0.3-cp313-none-any.whl
|-- cbxp-0.0.3.pax.Z
|-- cbxp-0.0.3.tar.gz
|-- main
|-- main.c
|-- main.cpp
`-- main.o

…ule.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>
Copy link
Copy Markdown
Collaborator

@ElijahSwiftIBM ElijahSwiftIBM left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good

@lcarcaramo lcarcaramo merged commit a04b3a7 into dev Mar 10, 2026
8 checks passed
@lcarcaramo lcarcaramo deleted the feat/static-library-cleanup branch March 10, 2026 18:19
lcarcaramo added a commit that referenced this pull request Mar 20, 2026
* Feature/includeparameter (#14)

* Add skeleton for inclusion list parameter

Extend interface/skeleton for include_list

* Input POinter

Attempt to add input pointer parameter for control blocks

* Definitions outside of if statements

* Attempt to map the intended inclusion list

* Try Virtual Function to keep Control Block in Explorer

* No longer have get return

* Attempt to add the meat of the function

-Add methods and members to control blocks to get name of control block, specific control blocks within it, and all control blocks within it
-add functions in control block explorer to parse inclusion "map" into actionable data

name fix

* Update psa.cpp

Update psa.cpp

* Update cvt.cpp

* Update asvt.cpp

* algorithm cleanup

* better cleanup

* Update control_block.cpp

* Update main.cpp

* Finish addressing merge issues and commit hooks

-Minor code updates that were lost in merge commit
-Bring new code up to standard for cppcheck
-Format new code with clang-format

* Update _cbxp.c

* Streamline Control Block Explorer Class

Update control_block_explorer.hpp

* Massive refactor

-Shave 2 step process down to one
-Change serialized json inclusion map to use a vector of strings still split by "dot" operators

* Error Handling Logic

* BIG UPDATE PR COMMENTS

-Switch pre-processing to one hash map function
-use try/catch with custom errors rather than passing return codes everywhere
-style and name changes
-Enforce more rigid parm structure on entry
-Fix some behavioral bugs and oversights in inclusion preprocessing
-General streamlining and refactoring of functions, methods, classes, etc.

* Another Big Refactor

-PR comments (mostly style, but streamlining of error code as well)
-Reworked base and derived classes to allow for includables to be defined to the base class and include_map to be defined to the base and derived classes

* Update ascb.cpp

* Update control_block.hpp

* .

* ..

* ...

* PR Comments

-ASCB pointer deref in ASVT
-Minor name changes
-Remove double wildcard error
-Add control_block_name_ private member and add initialization to constructor
-move include_map_ to protected and remove private using statement

* Update asvt.cpp

* Update asvt.cpp

* PR Comments

Mostly renaming things
streamlining some unnecessary text, parms and strings

* Update control_block.cpp

* Update main.cpp

* Last round of PR comments

string compare with ==
remove vestiges of old mechanisms for control block management
name changes
minor tweaks

* Update cvt.cpp

* Update cvt.cpp

* Update cvt.cpp

* Final comments

Update control_block_explorer.cpp

* comments

* Last Comments

* include changes

* Last round of comments

* debug

* Unit testing (#17)

* initial commit 1

* cleaned code before include test cases

* wrote test cases, need to check with team now

* added space after every function

* added .value

* shell script done

* made changes proposed by leonard 1

* PR changes requested by team

* added tests to check for ascb and asvt entries whether it be a string or dict

* added tests to check for ascb and asvt entries whether it be a string or dict one more place

* made minor tweaks

* added updates provided by leonard

* grouped failure test cases together

* grouped error test cases together

* removed extra lines

* style changes

* Feat/oss housekeeping2 (#18)

* Set explicit C/C++ standard and cleanup README.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Update contribution guidelines and functional tests.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Cleanup contribution guidelines and debug debug mode.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Cleanup.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Cleanup.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Fix sdist packaging and pyproject.toml metadata.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

---------

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Fix _C.pyi and removed unused import from cbxp.py.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* use a published link for DCO description (#10)

Signed-off-by: Chris Brooker <cbrooke@us.ibm.com>

* fixed some spelling and grammar mistakes (#14)

Signed-off-by: Emma S. <64806882+EmmasBox@users.noreply.github.com>

* Create separate /bin/cbxp executable and /lib/libcbxp.so library (#16)

* Create separate library and executable for CLI.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Cleanup and debug cmake

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Update version in pyproject.toml

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Change 'cbxp_result_t*' to 'const cbxp_result_t*'

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

---------

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Feat/assb control block (#17)

* Initial Alpha (#19)

* Feature/includeparameter (#14)

* Add skeleton for inclusion list parameter

Extend interface/skeleton for include_list

* Input POinter

Attempt to add input pointer parameter for control blocks

* Definitions outside of if statements

* Attempt to map the intended inclusion list

* Try Virtual Function to keep Control Block in Explorer

* No longer have get return

* Attempt to add the meat of the function

-Add methods and members to control blocks to get name of control block, specific control blocks within it, and all control blocks within it
-add functions in control block explorer to parse inclusion "map" into actionable data

name fix

* Update psa.cpp

Update psa.cpp

* Update cvt.cpp

* Update asvt.cpp

* algorithm cleanup

* better cleanup

* Update control_block.cpp

* Update main.cpp

* Finish addressing merge issues and commit hooks

-Minor code updates that were lost in merge commit
-Bring new code up to standard for cppcheck
-Format new code with clang-format

* Update _cbxp.c

* Streamline Control Block Explorer Class

Update control_block_explorer.hpp

* Massive refactor

-Shave 2 step process down to one
-Change serialized json inclusion map to use a vector of strings still split by "dot" operators

* Error Handling Logic

* BIG UPDATE PR COMMENTS

-Switch pre-processing to one hash map function
-use try/catch with custom errors rather than passing return codes everywhere
-style and name changes
-Enforce more rigid parm structure on entry
-Fix some behavioral bugs and oversights in inclusion preprocessing
-General streamlining and refactoring of functions, methods, classes, etc.

* Another Big Refactor

-PR comments (mostly style, but streamlining of error code as well)
-Reworked base and derived classes to allow for includables to be defined to the base class and include_map to be defined to the base and derived classes

* Update ascb.cpp

* Update control_block.hpp

* .

* ..

* ...

* PR Comments

-ASCB pointer deref in ASVT
-Minor name changes
-Remove double wildcard error
-Add control_block_name_ private member and add initialization to constructor
-move include_map_ to protected and remove private using statement

* Update asvt.cpp

* Update asvt.cpp

* PR Comments

Mostly renaming things
streamlining some unnecessary text, parms and strings

* Update control_block.cpp

* Update main.cpp

* Last round of PR comments

string compare with ==
remove vestiges of old mechanisms for control block management
name changes
minor tweaks

* Update cvt.cpp

* Update cvt.cpp

* Update cvt.cpp

* Final comments

Update control_block_explorer.cpp

* comments

* Last Comments

* include changes

* Last round of comments

* debug

* Unit testing (#17)

* initial commit 1

* cleaned code before include test cases

* wrote test cases, need to check with team now

* added space after every function

* added .value

* shell script done

* made changes proposed by leonard 1

* PR changes requested by team

* added tests to check for ascb and asvt entries whether it be a string or dict

* added tests to check for ascb and asvt entries whether it be a string or dict one more place

* made minor tweaks

* added updates provided by leonard

* grouped failure test cases together

* grouped error test cases together

* removed extra lines

* style changes

* Feat/oss housekeeping2 (#18)

* Set explicit C/C++ standard and cleanup README.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Update contribution guidelines and functional tests.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Cleanup contribution guidelines and debug debug mode.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Cleanup.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Cleanup.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Fix sdist packaging and pyproject.toml metadata.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

---------

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Fix _C.pyi and removed unused import from cbxp.py.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

---------

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>
Co-authored-by: Elijah Swift <Elijah.Swift@ibm.com>
Co-authored-by: Varun Chennamadhava <varunchennamadhava@ibm.com>

* test commit

Signed-off-by: varunchennamadhava <varunchennamadhava@gmail.com>

* error 1

Signed-off-by: varunchennamadhava <varunchennamadhava@gmail.com>

* error 2

Signed-off-by: varunchennamadhava <varunchennamadhava@gmail.com>

* fixed error

Signed-off-by: varunchennamadhava <varunchennamadhava@gmail.com>

* fixed error 1

Signed-off-by: varunchennamadhava <varunchennamadhava@gmail.com>

* assb include

Signed-off-by: varunchennamadhava <varunchennamadhava@gmail.com>

* assb all fields draft 1

Signed-off-by: varunchennamadhava <varunchennamadhava@gmail.com>

* Changed assbjbini and assbjbns to getString()

Signed-off-by: varunchennamadhava <varunchennamadhava@gmail.com>

* added test cases

Signed-off-by: varunchennamadhava <varunchennamadhava@gmail.com>

* made linting formatting changes

Signed-off-by: varunchennamadhava <varunchennamadhava@gmail.com>

* fixed an error with p_ascb_addr, made it const

Signed-off-by: varunchennamadhava <varunchennamadhava@gmail.com>

* fixed error with ascbasid

Signed-off-by: varunchennamadhava <varunchennamadhava@gmail.com>

* moved a function from private to public to private in control_block_field formatter and used that function to remove kruft

Signed-off-by: varunchennamadhava <varunchennamadhava@gmail.com>

* format and cleaning out 1 test case

Signed-off-by: varunchennamadhava <varunchennamadhava@gmail.com>

---------

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>
Signed-off-by: varunchennamadhava <varunchennamadhava@gmail.com>
Co-authored-by: Leonard Carcaramo <lcarcaramo@ibm.com>
Co-authored-by: Elijah Swift <Elijah.Swift@ibm.com>

* CI/CD Infrastructure (#19)

* Add Jenkinsfile, GitHub Actions workflows, and Ruff checks/formatting.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Debug clang-format workflow

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Fix symbolic link.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Use clang-format-20

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Try adding clang-format-19 to PATH.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Add temporary format error.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Fix temporary format error.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Fix syntax error.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Fix syntax error.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Update version number.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Debug shell install test.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Debug publish stage.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Ruff and cmake test target fixes.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Show full directory structure in CLI/library install test.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Add ruff pre-commit hook.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Update contribution guidelines.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Update pre-commit Hooks section in the contribution guidelines.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Fix typo.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Cleanup.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Minor cleanup.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

---------

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Feat/filter control blocks (#20)

* Initial Alpha (#19)

* Feature/includeparameter (#14)

* Add skeleton for inclusion list parameter

Extend interface/skeleton for include_list

* Input POinter

Attempt to add input pointer parameter for control blocks

* Definitions outside of if statements

* Attempt to map the intended inclusion list

* Try Virtual Function to keep Control Block in Explorer

* No longer have get return

* Attempt to add the meat of the function

-Add methods and members to control blocks to get name of control block, specific control blocks within it, and all control blocks within it
-add functions in control block explorer to parse inclusion "map" into actionable data

name fix

* Update psa.cpp

Update psa.cpp

* Update cvt.cpp

* Update asvt.cpp

* algorithm cleanup

* better cleanup

* Update control_block.cpp

* Update main.cpp

* Finish addressing merge issues and commit hooks

-Minor code updates that were lost in merge commit
-Bring new code up to standard for cppcheck
-Format new code with clang-format

* Update _cbxp.c

* Streamline Control Block Explorer Class

Update control_block_explorer.hpp

* Massive refactor

-Shave 2 step process down to one
-Change serialized json inclusion map to use a vector of strings still split by "dot" operators

* Error Handling Logic

* BIG UPDATE PR COMMENTS

-Switch pre-processing to one hash map function
-use try/catch with custom errors rather than passing return codes everywhere
-style and name changes
-Enforce more rigid parm structure on entry
-Fix some behavioral bugs and oversights in inclusion preprocessing
-General streamlining and refactoring of functions, methods, classes, etc.

* Another Big Refactor

-PR comments (mostly style, but streamlining of error code as well)
-Reworked base and derived classes to allow for includables to be defined to the base class and include_map to be defined to the base and derived classes

* Update ascb.cpp

* Update control_block.hpp

* .

* ..

* ...

* PR Comments

-ASCB pointer deref in ASVT
-Minor name changes
-Remove double wildcard error
-Add control_block_name_ private member and add initialization to constructor
-move include_map_ to protected and remove private using statement

* Update asvt.cpp

* Update asvt.cpp

* PR Comments

Mostly renaming things
streamlining some unnecessary text, parms and strings

* Update control_block.cpp

* Update main.cpp

* Last round of PR comments

string compare with ==
remove vestiges of old mechanisms for control block management
name changes
minor tweaks

* Update cvt.cpp

* Update cvt.cpp

* Update cvt.cpp

* Final comments

Update control_block_explorer.cpp

* comments

* Last Comments

* include changes

* Last round of comments

* debug

* Unit testing (#17)

* initial commit 1

* cleaned code before include test cases

* wrote test cases, need to check with team now

* added space after every function

* added .value

* shell script done

* made changes proposed by leonard 1

* PR changes requested by team

* added tests to check for ascb and asvt entries whether it be a string or dict

* added tests to check for ascb and asvt entries whether it be a string or dict one more place

* made minor tweaks

* added updates provided by leonard

* grouped failure test cases together

* grouped error test cases together

* removed extra lines

* style changes

* Feat/oss housekeeping2 (#18)

* Set explicit C/C++ standard and cleanup README.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Update contribution guidelines and functional tests.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Cleanup contribution guidelines and debug debug mode.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Cleanup.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Cleanup.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Fix sdist packaging and pyproject.toml metadata.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

---------

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Fix _C.pyi and removed unused import from cbxp.py.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

---------

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>
Co-authored-by: Elijah Swift <Elijah.Swift@ibm.com>
Co-authored-by: Varun Chennamadhava <varunchennamadhava@ibm.com>

* Squashed Commit

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* change to ensure filter check fails empty lists

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* More robust unit testing

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* trailing commas in python

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* PR Comments

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* Complete PR Comments

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* Fix an error in tests

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* Fix another error in tests

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* Streamline control block parameters

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* Streamline control block parameters part 2

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* Fix python tests

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* Fix python tests to ruff standards

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* round 3 PR comments

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* Explicit enum declarations

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* pre commit comments round 4

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* pre commit comments round 4.1

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* pre commit comments round 4.2

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* pre commit comments round 4.3

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* pre commit comments round 4.4

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* pre commit comments round 4.5

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* pre commit comments round 4.6

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* pre commit comments round 4.7

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* If statement format fix

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* upgrading debug logging strings

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* updated operation logging

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* Include debug statements

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* Fix string filter for int value bug

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* thread safe mechanism changes

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* thread safe mechanism changes 1.1

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* thread safe mechanism changes 1.2

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* thread safe mechanism changes 1.3

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* thread safe mechanism changes 1.4

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* thread safe mechanism changes 1.5

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* thread safe mechanism changes 1.6

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* thread safe mechanism changes 1.7

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* thread safe mechanism changes 2.0

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* thread safe mechanism changes 2.1

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* thread safe mechanism changes 2.2

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* thread safe mechanism changes 2.2

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* thread safe mechanism changes 2.3

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* thread safe mechanism changes 2.4

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* thread safe mechanism changes 2.5

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* thread safe mechanism changes 2.6

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* thread safe mechanism changes 2.7

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* thread safe mechanism changes 2.8

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* thread safe mechanism changes 2.9

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* thread safe mechanism changes 3.0

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* thread safe mechanism changes 3.1

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* thread safe mechanism changes 3.2

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

---------

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>
Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>
Co-authored-by: Leonard Carcaramo <lcarcaramo@ibm.com>
Co-authored-by: Varun Chennamadhava <varunchennamadhava@ibm.com>

* squashed commits for OUCB

Signed-off-by: varunchennamadhava <varunchennamadhava@gmail.com>

* test cases files modified

Signed-off-by: varunchennamadhava <varunchennamadhava@gmail.com>

* fixed some comments on PR made by Leonard

Signed-off-by: varunchennamadhava <varunchennamadhava@gmail.com>

* fixed some comments on PR made by Leonard 1

Signed-off-by: varunchennamadhava <varunchennamadhava@gmail.com>

* removed not needed prpgramming interfaces and added python test cases

Signed-off-by: varunchennamadhava <varunchennamadhava@gmail.com>

* make format run

Signed-off-by: varunchennamadhava <varunchennamadhava@gmail.com>

* PR Review comments on feb 26

Signed-off-by: varunchennamadhava <varunchennamadhava@gmail.com>

* issue with test.py testcase

Signed-off-by: varunchennamadhava <varunchennamadhava@gmail.com>

* worked on PR comments

Signed-off-by: varunchennamadhava <varunchennamadhava@gmail.com>

* make format ran

Signed-off-by: varunchennamadhava <varunchennamadhava@gmail.com>

* typo fix

Signed-off-by: varunchennamadhava <varunchennamadhava@gmail.com>

* remove null check and add empty string translation

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* add test cases

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* remove null fix

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* fixed python tests

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* fixed extraneous null issue

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* fixed extraneous null issue better

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* git comments and bug fixes

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* git comments and bug fixes 2

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* git comments and bug fixes 3

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* remove comment

Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>

* Static Library/Cleanup (#29)

* Static library changes/cleanup

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Cleanup

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Cleanup

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Debug shell unit tests.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Debug unit tests

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Cleanup Jenkinsfile

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Cleanup Jenkinsfile

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Use 'pax interchange format'

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Debug 'gmake package'

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* '-o saveext' not necessary when using '-x pax'

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Update copyright year.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Add back eyecatcher as exception to the programming interfaces only rule.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

---------

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* OpenXL 2.2/Python3.14 (#33)

* Initial Alpha (#19)

* Feature/includeparameter (#14)

* Add skeleton for inclusion list parameter

Extend interface/skeleton for include_list

* Input POinter

Attempt to add input pointer parameter for control blocks

* Definitions outside of if statements

* Attempt to map the intended inclusion list

* Try Virtual Function to keep Control Block in Explorer

* No longer have get return

* Attempt to add the meat of the function

-Add methods and members to control blocks to get name of control block, specific control blocks within it, and all control blocks within it
-add functions in control block explorer to parse inclusion "map" into actionable data

name fix

* Update psa.cpp

Update psa.cpp

* Update cvt.cpp

* Update asvt.cpp

* algorithm cleanup

* better cleanup

* Update control_block.cpp

* Update main.cpp

* Finish addressing merge issues and commit hooks

-Minor code updates that were lost in merge commit
-Bring new code up to standard for cppcheck
-Format new code with clang-format

* Update _cbxp.c

* Streamline Control Block Explorer Class

Update control_block_explorer.hpp

* Massive refactor

-Shave 2 step process down to one
-Change serialized json inclusion map to use a vector of strings still split by "dot" operators

* Error Handling Logic

* BIG UPDATE PR COMMENTS

-Switch pre-processing to one hash map function
-use try/catch with custom errors rather than passing return codes everywhere
-style and name changes
-Enforce more rigid parm structure on entry
-Fix some behavioral bugs and oversights in inclusion preprocessing
-General streamlining and refactoring of functions, methods, classes, etc.

* Another Big Refactor

-PR comments (mostly style, but streamlining of error code as well)
-Reworked base and derived classes to allow for includables to be defined to the base class and include_map to be defined to the base and derived classes

* Update ascb.cpp

* Update control_block.hpp

* .

* ..

* ...

* PR Comments

-ASCB pointer deref in ASVT
-Minor name changes
-Remove double wildcard error
-Add control_block_name_ private member and add initialization to constructor
-move include_map_ to protected and remove private using statement

* Update asvt.cpp

* Update asvt.cpp

* PR Comments

Mostly renaming things
streamlining some unnecessary text, parms and strings

* Update control_block.cpp

* Update main.cpp

* Last round of PR comments

string compare with ==
remove vestiges of old mechanisms for control block management
name changes
minor tweaks

* Update cvt.cpp

* Update cvt.cpp

* Update cvt.cpp

* Final comments

Update control_block_explorer.cpp

* comments

* Last Comments

* include changes

* Last round of comments

* debug

* Unit testing (#17)

* initial commit 1

* cleaned code before include test cases

* wrote test cases, need to check with team now

* added space after every function

* added .value

* shell script done

* made changes proposed by leonard 1

* PR changes requested by team

* added tests to check for ascb and asvt entries whether it be a string or dict

* added tests to check for ascb and asvt entries whether it be a string or dict one more place

* made minor tweaks

* added updates provided by leonard

* grouped failure test cases together

* grouped error test cases together

* removed extra lines

* style changes

* Feat/oss housekeeping2 (#18)

* Set explicit C/C++ standard and cleanup README.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Update contribution guidelines and functional tests.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Cleanup contribution guidelines and debug debug mode.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Cleanup.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Cleanup.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Fix sdist packaging and pyproject.toml metadata.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

---------

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Fix _C.pyi and removed unused import from cbxp.py.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

---------

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>
Co-authored-by: Elijah Swift <Elijah.Swift@ibm.com>
Co-authored-by: Varun Chennamadhava <varunchennamadhava@ibm.com>

* Python support/OpenXL 2.2 updates.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Updates for Python wheel naming convention changes in Python 3.14

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Fix Python wheel file name.

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Debug publish

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Update Varun's email

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

* Update Varun's email

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>

---------

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>
Co-authored-by: Elijah Swift <Elijah.Swift@ibm.com>
Co-authored-by: Varun Chennamadhava <varunchennamadhava@ibm.com>

---------

Signed-off-by: Leonard Carcaramo <lcarcaramo@ibm.com>
Signed-off-by: Chris Brooker <cbrooke@us.ibm.com>
Signed-off-by: Emma S. <64806882+EmmasBox@users.noreply.github.com>
Signed-off-by: varunchennamadhava <varunchennamadhava@gmail.com>
Signed-off-by: Elijah Swift <Elijah.Swift@IBM.com>
Co-authored-by: Elijah Swift <Elijah.Swift@ibm.com>
Co-authored-by: Varun Chennamadhava <varunchennamadhava@ibm.com>
Co-authored-by: Chris Brooker <cbrooke@us.ibm.com>
Co-authored-by: Emma S. <64806882+EmmasBox@users.noreply.github.com>
Co-authored-by: Varun R Chennamadhava <38167054+varunchennamadhava@users.noreply.github.com>
Co-authored-by: Elijah Swift <86801927+ElijahSwiftIBM@users.noreply.github.com>
Co-authored-by: varunchennamadhava <varunchennamadhava@gmail.com>
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

Successfully merging this pull request may close these issues.

2 participants