Merlin Builder
From Coder Merlin
Revision as of 15:13, 24 January 2021 by Chukwuemeka-tinashe (talk | contribs) (Created page with "== Overview == Merlin Builder is a tool available to {{MM}} that provides the required functionality to build a challenge for use by {{MMM}}. Any supported language may be us...")
Within these castle walls be forged Mavens of Computer Science ...
— Merlin, The Coder
Overview[edit]
Merlin Builder is a tool available to Merlin Mavens™ that provides the required functionality to build a challenge for use by Merlin Mission Manager . Any supported language may be used for the challenge (though the generator and verifier must be written in Swift).
The Merlin Mission Manager verifies challenges through a multi-step process. The following steps occur each and every time that a student executes merlin test:
- A generator generates a problem set. The problem set serves as input to the student's program by providing:
- Standard input (e.g. simulates a user's keyboard input)
- Command line arguments
- Text replacement within zero or more of the student's program files. This is referred to as excision because a portion of the student's program file is removed during this process.
- Expected standard output
- After the problem set is generated, the student's program is built using make.sh. The program will include any text replaced during the excision process.
- The student's (potentially modified) program is executed using run.sh and both standard output and standard input are spooled to a file
- A verifier compares the actual standard output with the expected standard output and determines whether or not the execution was successful
Usage[edit]
There are only three builder subcommands as the majority of the process involves coding of the generator.
- merlin builder init: Initializes the directory structure and must be the first command executed in an empty directory
- merlin builder prepare: Similar to the parallel merlin prepare copies the source files to serve as a starting point for the student
- merlin builder test: Similar to the parallel merlin test executes the generator and verifier