* save-load-state : refactor into separate phase functions
- Split monolithic main() into 4 self-contained phase functions, each
managing its own context/sampler/batch lifecycle
- Each function tokenizes internally using its local ctx instance
- main() is now a clean orchestrator: init -> run phases -> assert results
- Proper resource cleanup on every exit path (return {} on error)
Assisted-by: llama.cpp:local pi
* save-load-state : use params.out_file instead of separate state_file
- Remove state_file parameter from all phase functions
- Each function accesses params.out_file directly
- Initialize params.out_file in main alongside params.prompt
Assisted-by: llama.cpp:local pi
* save-load-state : use smart pointers for ctx and smpl
- Replace raw llama_context* with llama_context_ptr
- Replace raw llama_sampler* with llama_sampler_ptr
- Remove all manual llama_free() and llama_sampler_free() calls
- Keep llama_batch as raw (managed manually with llama_batch_free)
Assisted-by: llama.cpp:local pi
* save-load-state : add local llama_batch_ptr RAII wrapper
- Add llama_batch_ptr struct holding llama_batch by value
- Calls llama_batch_free() in destructor
- Eliminates all manual llama_batch_free() calls
Assisted-by: llama.cpp:local pi
* save-load-state : replace printf/fprintf with logging macros
- Add log.h include
- Replace fprintf(stderr, ...) errors with LOG_ERR
- Replace fprintf(stderr, ...) info with LOG_TRC
- Replace printf output with LOG
Assisted-by: llama.cpp:local pi
* save-load-state : refactor tests to check results inline
Each follow-up phase now accepts an expected result and performs
the comparison internally instead of collecting results in main().
Assisted-by: llama.cpp:local pi
* save-load-state : improve test output readability
Add phase labels, remove redundant run prefixes, and show
PASS after each test.
Assisted-by: llama.cpp:local pi
* pi : add rule about git signing
* save-load-state : simplify llama_batch_ptr
Change get() to return a reference and remove operator*().
Use batch.get() throughout for consistency.
Assisted-by: llama.cpp:local pi
* save-load-state : extract generate_tokens helper
Factor out the repeated token generation loop into a shared
helper function used by all phases.
Assisted-by: llama.cpp:local pi
* save-load-state : update comments to use test terminology
Replace "Phase" with "Test" and list each test's steps
as bullet points.
Assisted-by: llama.cpp:local pi
* save-load-state : rename test functions
Rename to test_baseline, test_state_load, test_seq_cp_host,
test_seq_cp_device. Update comments and logs accordingly.
Assisted-by: llama.cpp:local pi
* pi : add rule to never git push without confirmation
Assisted-by: llama.cpp:local pi
* common : add model_only option to common_init_from_params
Add bool model_only parameter to skip context creation,
sampler init, and context-dependent setup.
Use in save-load-state to initialize only the model,
with each test creating its own context.
Assisted-by: llama.cpp:local pi
---------
Co-authored-by: ggerganov <ggerganov@users.noreply.github.com>
37 lines
1.6 KiB
Markdown
37 lines
1.6 KiB
Markdown
You are a coding agent. Here are some very important rules that you must follow:
|
|
|
|
General:
|
|
- By very precise and concise when writing code, comments, explanations, etc.
|
|
- PR and commit titles format: `<module> : <title>`. Lookup recents for examples
|
|
- Don't try to build or run the code unless you are explicitly asked to do so
|
|
- Use the `gh` CLI tool when querying PRs, issues, or other GitHub resources
|
|
|
|
Coding:
|
|
- When in doubt, always refer to the CONTRIBUTING.md file of the project
|
|
- When referencing issues or PRs in comments, use the format:
|
|
- C/C++ code: `// ref: <url>`
|
|
- Other (CMake, etc.): `# ref: <url>`
|
|
|
|
Pull requests (PRs):
|
|
- New branch names are prefixed with "gg/"
|
|
- Before opening a pull request, ask the user to confirm the description
|
|
- When creating a pull request, look for the repository's PR template and follow it
|
|
- For the AI usage disclosure section, write "YES. llama.cpp + pi"
|
|
- Always create the pull requests in draft mode
|
|
|
|
Commits:
|
|
- On every commit that you make, include a "Assisted-by: llama.cpp:local pi" tag
|
|
- Do not explicitly set the git author in commits - rely on the default git config
|
|
- Always use `--no-gpg-sign` when committing
|
|
- Never `git push` without explicit confirmation from the user
|
|
|
|
Resources (read on demand):
|
|
- [CONTRIBUTING.md](CONTRIBUTING.md)
|
|
- [Build documentation](docs/build.md)
|
|
- [Server usage documentation](tools/server/README.md)
|
|
- [Server development documentation](tools/server/README-dev.md)
|
|
- [PEG parser](docs/development/parsing.md)
|
|
- [Auto parser](docs/autoparser.md)
|
|
- [Jinja engine](common/jinja/README.md)
|
|
- [PR template](.github/pull_request_template.md)
|