Evaluate Ollama models on JADE (Jade Software language) code-generation tasks, then compile/load-check the generated schema using JADE tooling running inside a Parallels VM.
pip install jade is not the JADE programming language toolchain. It is an unrelated astronomy package.
- macOS host path:
/Users/maxaitel/Documents/school-projects/jade-ai-training/jade-ai - Parallels VM name:
Windows 11 - Hosted Ollama:
http://100.116.25.114:11434 - JADE binaries in VM:
C:\Jade2025\bin\ - JADE system DB in VM:
C:\Jade2025\system - JADE ini in VM:
C:\Jade2025\system\jade.ini
Linux/macOS:
./scripts/setup_venv.shWindows PowerShell:
.\scripts\setup_venv.ps1Manual:
python3 -m venv --clear .venv
. .venv/bin/activate
python -m pip install --upgrade pip- Reads tasks from JSONL.
- Calls Ollama via CLI or HTTP API.
- Extracts generated code and writes to each task
output_pathwhen--apply-generatedis enabled. - Runs compile/load command per task (local shell or Parallels VM).
- Logs one JSON record per model/task with compile + model outputs.
COMPILE_CMD/--compile-cmd supports placeholders per task:
{task_output_path}: relative task output file (for exampleeval/generated/hard/DomainModel.scm){generated_target_file}: absolute host path of generated file (empty if not applied){project_path}: absolute host project path
This is how we run real JADE loader checks against each generated file.
--compile-mode parallelsruns compile command throughprlctl exec.- Default mapping for project path:
/Users/<name>/...->C:\Mac\Home\.../Volumes/...->C:\Mac\Volumes\...
- Override with
--parallels-project-pathif your VM path is different.
This command was validated in VM:
C:\Jade2025\bin\jadloadb.exe path=C:\Jade2025\system ini=C:\Jade2025\system\jade.ini schemaFile={task_output_path} showProgress=false
make eval-jade-parallels \
MODELS="qwen3.5:122b" \
TASKS="eval/tasks.jade.jsonl" \
PROJECT="/Users/maxaitel/Documents/school-projects/jade-ai-training/jade-ai" \
COMPILE_CMD='C:\Jade2025\bin\jadloadb.exe path=C:\Jade2025\system ini=C:\Jade2025\system\jade.ini schemaFile={task_output_path} showProgress=false' \
OLLAMA_HOST="http://100.116.25.114:11434" \
OLLAMA_MODE="http" \
PARALLELS_VM="Windows 11" \
APPLY=1Add KEEP=1 to keep generated files.
python3 eval/run_jade_eval.py \
--models qwen3.5:122b \
--tasks-file eval/tasks.jade.hard.jsonl \
--project-path /Users/maxaitel/Documents/school-projects/jade-ai-training/jade-ai \
--compile-mode parallels \
--parallels-vm "Windows 11" \
--compile-cmd 'C:\Jade2025\bin\jadloadb.exe path=C:\Jade2025\system ini=C:\Jade2025\system\jade.ini schemaFile={task_output_path} showProgress=false' \
--ollama-host http://100.116.25.114:11434 \
--ollama-mode http \
--apply-generated \
--keep-generatedHard task file: eval/tasks.jade.hard.jsonl
Control task file: eval/tasks.jade.compile_control.jsonl
control_valid_schemauseseval/controls/valid_reportwriter.scm(known valid JADE schema file).control_invalid_schemauseseval/controls/invalid_schema.scm(intentionally invalid).
Run:
python3 eval/run_jade_eval.py \
--models qwen3.5:122b \
--tasks-file eval/tasks.jade.compile_control.jsonl \
--project-path /Users/maxaitel/Documents/school-projects/jade-ai-training/jade-ai \
--compile-mode parallels \
--parallels-vm "Windows 11" \
--compile-cmd 'C:\Jade2025\bin\jadloadb.exe path=C:\Jade2025\system ini=C:\Jade2025\system\jade.ini schemaFile={task_output_path} showProgress=false' \
--skip-ollamaExpected result:
control_valid_schema:compile_ok=truecontrol_invalid_schema:compile_ok=false
Validated log:
logs/eval-20260303-002512.jsonllogs/eval-20260303-003236.jsonl(same control rerun after README updates)
To verify parser/loader behavior against real public JADE code, we downloaded schema files from
github.com/jadesoftwarenz into eval/online_samples/ and ran compile-only checks.
Task file:
eval/tasks.online_compile.jsonl
Run:
python3 eval/run_jade_eval.py \
--models qwen3.5:122b \
--tasks-file eval/tasks.online_compile.jsonl \
--project-path /Users/maxaitel/Documents/school-projects/jade-ai-training/jade-ai \
--compile-mode parallels \
--parallels-vm "Windows 11" \
--compile-cmd 'C:\Jade2025\bin\jadloadb.exe path=C:\Jade2025\system ini=C:\Jade2025\system\jade.ini schemaFile={task_output_path} showProgress=false' \
--skip-ollamaValidated log:
logs/eval-20260303-010628.jsonl
Observed result:
- 4 files compiled successfully.
- 1 file failed with
Compile Error 6020 - Unknown schemabecause it referencesWebServiceUtilitiesSchema::...(missing dependency in the current DB load context).
Sources used:
- https://github.com/jadesoftwarenz/JADE-WP-Asynchronous-Method-Calls/blob/master/AsynchMethodExample.scm
- https://github.com/jadesoftwarenz/JADE-WP-XML/blob/master/XMLWhitePaper.scm
- https://github.com/jadesoftwarenz/JADE-Google-Analytics/blob/master/GoogleAnalytics/GoogleAnalytics.scm
- https://github.com/jadesoftwarenz/JADE-Banking-Schema/blob/master/BankingSchema/BankingModelSchema.scm
- https://github.com/jadesoftwarenz/JADE-WP-SOAP-Web-Service-Security/blob/master/CalculatorServices.scm
Task file:
eval/tasks.online_harness_validation.jsonl
Run:
python3 eval/run_jade_eval.py \
--models qwen3.5:122b \
--tasks-file eval/tasks.online_harness_validation.jsonl \
--project-path /Users/maxaitel/Documents/school-projects/jade-ai-training/jade-ai \
--compile-mode parallels \
--parallels-vm "Windows 11" \
--compile-cmd 'C:\Jade2025\bin\jadloadb.exe path=C:\Jade2025\system ini=C:\Jade2025\system\jade.ini schemaFile={task_output_path} showProgress=false' \
--skip-ollamaValidated log:
logs/eval-20260303-010714.jsonl
Observed result:
online_valid_xmlwhitepaper: pass (compile_ok=true, exit0)online_broken_xmlwhitepaper: fail (compile_ok=false, exit255)- Broken file error:
Compile Error 7841 - Expecting: schema definitionat line 1.
Task file:
eval/tasks.real_compile_existing.jsonl
This run reuses generated files and skips model inference to avoid waiting:
python3 eval/run_jade_eval.py \
--models qwen3.5:122b \
--tasks-file eval/tasks.real_compile_existing.jsonl \
--project-path /Users/maxaitel/Documents/school-projects/jade-ai-training/jade-ai \
--compile-mode parallels \
--parallels-vm "Windows 11" \
--compile-cmd 'C:\Jade2025\bin\jadloadb.exe path=C:\Jade2025\system ini=C:\Jade2025\system\jade.ini schemaFile={task_output_path} showProgress=false' \
--skip-ollamaValidated log:
logs/eval-20260303-010129.jsonl
Observed result:
- 0/4 compile pass on existing qwen outputs (all failed with schema-definition parse errors).
From logs/eval-20260303-000609.jsonl:
class Customer {
id: Integer
firstName: String
lastName: String
fullName(): String {
return firstName + " " + lastName
}
}class Order
property subtotal: Decimal
property taxRate: Decimal
method total(): Decimal
return subtotal + (subtotal * taxRate)
end classeval/tasks.jade.hard.jsonleval/tasks.jade.compile_control.jsonleval/controls/invalid_schema.scmeval/controls/valid_reportwriter.scm
Logs are written to logs/eval-<timestamp>.jsonl and include:
- model/task IDs
- rendered compile command
- compile status (
compile_ok,compile_exit_code, timeout, duration) - compile stdout/stderr tails
- model status/output tails
- generation apply metadata
- If compile fails immediately with
INI file not found, ensureini=C:\Jade2025\system\jade.iniis present inCOMPILE_CMD. - If Parallels path mapping is wrong, pass
--parallels-project-pathexplicitly. - If local
ollamaCLI is not installed, force--ollama-mode http. - If model calls hang, inspect hosted server with:
curl -s http://100.116.25.114:11434/api/ps