Isabelle as Systems Platform: Managing Automated and Quasi-interactive Builds

Fabian Huch
2024-12-18
Abstract:Interactive theorem provers are complex systems that require sophisticated platform efforts - and hence systems programming environments - to manage effectively. The Isabelle platform exemplifies this with its Isabelle/Scala systems programming environment, which has proven to be very successful. In contrast, much of the project infrastructure has relied on external tooling in the past, despite shortcomings. For continuous integration, the previous system employed a Jenkins server, which did not adequately support user-submitted Isabelle builds and faced issues with reliability and performance. In this work, we present our design and implementation of a new Isabelle build manager that replaces the old continuous integration system, fully implemented within Isabelle/Scala. We illustrate how our implementation utilizes different modules of the environment, which supported all aspects of the build manager well.
Logic in Computer Science
What problem does this paper attempt to address?
This paper attempts to solve the problems encountered in the continuous integration (CI) and user - submitted build processes of the Isabelle project. Specifically, the old Jenkins CI system has the following deficiencies: 1. **Performance and Reliability Issues**: The Jenkins server has become extremely slow in responding to requests and is even unusable. In addition, it has problems of memory leakage and file handle leakage, causing build tasks to fail frequently. 2. **Resource Allocation Issues**: Each task can only run on one predefined host. As the demand for cluster builds increases, it becomes necessary to manage tasks on multiple hosts. 3. **Lack of Interactivity**: Users are unable to specify Isabelle build options, select sessions to be built, or set other parameters, which limits the flexibility of advanced users. 4. **Limitations of Single - Repository Testing**: Only changes in one repository can be tested at a time. This mode is insufficient when multiple components need to be adapted and tested simultaneously. To solve these problems, the author designed and implemented a new Isabelle build manager, which is fully implemented in the Isabelle/Scala environment. This new system aims to: - **Improve Performance and Reliability**: Ensure higher performance and stability by optimizing the use of internal modules. - **Support Multi - host Task Management**: Be able to manage and schedule tasks running on multiple hosts. - **Enhance User Interactivity**: Allow users to specify more build parameters and support more flexible task submission methods. - **Simplify Infrastructure**: Reduce dependence on external tools, making the entire build process more integrated and easier to maintain. Through these improvements, the new build manager not only improves the build efficiency, but also makes the development and maintenance of the Isabelle platform more convenient and reliable.