Meeting Minutes
===
###### tags: `Templates` `Meeting`
:::info
- **Location:** https://ucdenver.zoom.us/j/97994358165
- **Date:** November 17, 2022, 2:30 PM Mountain
- **Participants:**
- Amy Roberts (AR)
-
- **Meeting Goal(s)**
- Identify action items for data-description language (Kaitai!)
:::
## Summary
<!-- Please fill me in after the meeting -->
## Notes
<!-- Other important details discussed during the meeting can be entered here. -->
- made a OSF project so we can share protected links,
- Jim notes that Kaitai requires re-compilation for new data formats. An example where this would be needed would be ROOT files, which can have different byte layouts with custom data types
- Kaitai is quite complex, so making a compiler that re-creates all its features for e.g. AwkwardForth would be quite a large project
- Jim suggests:
- Modify the Kaitai C++ compiler code so that it also inserts the LayoutBuilder code so that it generates code for Awkward Array, which is useful from both C++ libraries and python.
- Who could work on this?
- [Manasvi Goyal](https://iris-hep.org/fellows/ManasviGoyal.html). How much funding do we need for one year, does that fit in her timescale, where does that funding come from? IRIS-HEP fellows are paid $3000 for three months?
- Andrea Zonca has time on this grant
- Jim has an alternative motive! EventIO is used in gamma astronomy and they want to use it in python ([ctapipe](https://github.com/cta-observatory/ctapipe))
- Amy would like to form a group of people other than CDMS we can use to test out our project
- Kacper's issue with Kaitai
- It's a fairly complicated language! Writing the description of data from scratch is difficult.
- The generated python code does the wrong thing (Amy and Jim would agree). Big chunks of data stored in a dictionary. yt needs python code!
- When writing the Kaitai YAML, you need to be thinking about how the compiler will work. Minor changes to the YAML will result in very different compiled code
- The python code isn't usable unless you use opaque types, at which point you lose the portability
- The Kaitai community is not very welcoming. This is a major issue that we shouldn't ignore!
- Jim felt that the C++ compiler is okay, if old-fashioned.
- Jim's thought is
- Add a new backend that generates C++ gets wrapped in a python extension module that runs compiled loops to walk over the data structure and produce an awkward array.
- Kacper: awkward-array is a much better target to integrate with as opposed to Kaitai's data structure
- [Example of how to use LayoutBuilder](https://github.com/impy-project/impy/issues/65#issue-1374710755)
Alternatives to Kaitai:
- [DFDL](https://www.ogf.org/ogf/doku.php/documents/documents)
- [Construct](https://construct.readthedocs.io/en/latest/intro.html)
- [Wuffs](https://github.com/google/wuffs)
- [ycombinator discussion](https://news.ycombinator.com/item?id=30715406)