Skip to content

Releases: rootCircle/cpast_mono

ccode_runner v0.3.4

15 Mar 11:40
51e0827
Compare
Choose a tag to compare

New Features

  • make 'utoipa' optional and add 'api' feature to ccode_runner; update LanguageName enum to conditionally derive ToSchema

Commit Statistics

  • 1 commit contributed to the release.
  • 1 commit was understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Make 'utoipa' optional and add 'api' feature to ccode_runner; update LanguageName enum to conditionally derive ToSchema (02cb1ce)

ccode_runner v0.3.3

15 Mar 11:24
3c24521
Compare
Choose a tag to compare

New Features

  • expose default codegen language type
    feat(cpast): --problem_url args in ai and test routes

    feat(cscrapper): new ProgramStore api new_from_language

    chore(cpast_api): updated schema to store language name in cache and use language from clex_llm instead of c++ as default

  • add sample programs and tests for multiple languages including Java, C, C++, Python, Ruby, JavaScript, and Rust

  • enhance new_from_custom_dest to support Java file naming rules and improve error handling

  • add new error types for invalid file names and empty temporary directories

  • expose from_text from_custom_dest api to public

  • code compilation to temp dir

Commit Statistics

  • 7 commits contributed to the release over the course of 1 calendar day.
  • 13 days passed between releases.
  • 6 commits were understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Expose default codegen language type (d1f3bcf)
    • Add sample programs and tests for multiple languages including Java, C, C++, Python, Ruby, JavaScript, and Rust (1f866fc)
    • Enhance new_from_custom_dest to support Java file naming rules and improve error handling (976089b)
    • Feat(java_classname): add utility to extract public class name from Java source text feat(ccode_runner): enhance source file naming for Java and random languages feat(cpast): add tests for Java public class extraction and code evaluation (35c6c11)
    • Add new error types for invalid file names and empty temporary directories (626c3ce)
    • Expose from_text from_custom_dest api to public (6a2a02c)
    • Code compilation to temp dir (3488984)

cpast-v0.9.2

01 Mar 14:16
325d8c1
Compare
Choose a tag to compare

Release Notes for v0.9.2 (2025-03-01)

clex_gen:

  • Changed default range values to i32_min and i32_max for ranges, and u32_min and u32_max for positive ranges.
  • Reduced mutations by segregating states, making the generate_testcase method functional, and removing the need for cloning in the case of cpast_cli, resulting in improved efficiency and performance.

cpast_cli:

  • Improved support for completions.
  • Introduced the --clipboard flag to copy clex output to the clipboard.
  • Enhanced the output of cpast ai.

General Improvements

  • Enhanced crate documentation for better clarity and usability.

Full Changelog: View on GitHub

cpast-v0.8.0

23 Feb 09:49
4b064ed
Compare
Choose a tag to compare

0.8.0 (2025-02-23)

Breaking

  • String modifier syntax now accepts three arguments, instead of two. New format: S[min,max,charset] (e.g., S[1,10,'cpast is awesome'])

clex_gen

  • Now, string modifier accepts escape characters as well like \n, \t, \r, \\, \', \", \0 \a, \b, \f and \v etc!
  • Breaking: Modified string modifier syntax to support minimum and maximum length constraints:
    • New format: S[min,max,charset] (e.g., S[10,10,@CH_UPPER@])
    • Old format: S[length,charset] is now deprecated
    • This change enables more precise string length control in pattern generation

clex_llm

  • Switched to Gemini2_0Flash model from Gemini1_0

cpast_cli

  • Support AI based clex generation using input format and constraints through cpast ai ....
    GEMINI_API_KEY="<gemini-api-key>" cpast ai --input-format="The first line contains an integer T (number of test cases). Each of the next T lines contains two integers N and M." --constraints="1 ≤ T ≤ 10\n1 ≤ N, M ≤ 10^5"

Full Changelog: cpast-v0.7.1...cpast-v0.8.0

cpast-v0.7.1

22 Feb 00:43
e50930b
Compare
Choose a tag to compare

Release Notes - Version 0.7.1 (2025-02-22)

Overview

Version 0.7.1 marks a significant step forward as cpast transition to a monorepo structure. Building upon the foundation of cpast_cli, I'm excited to introduce several new tools to enhance the user experience.

Breaking Changes

  • Removed the clipboard feature from cpast_cli. (builds might be broken for android[low priority])
  • Replaced the CPAST_DEBUG=1 environment variable with the --debug flag in cpast_cli.

Crates

Key Updates

Monorepo Migration

  • The codebase has been moved to a monorepo, making it easier to manage and allowing for smoother growth in the future.

New Tools

  • cpast_api: A Work In Progress (WIP) backend service, currently under development, to facilitate API interactions.
  • cscrapper: A tool for gathering competitive programming questions from CodeChef and Codeforces.
  • cpastord: A service that connects cpast features with Discord.
  • ccode_runner: A flexible engine for running and testing code snippets for various languages. Optimized for repeated runs, robustness, and speed.
  • clex_gen: The core of cpast, this tool generates random test cases using the Clex language. Renamed from clex to avoid potential naming conflicts.
  • clex_llm: An AI-powered tool leveraging Google Gemini to generate Clex expressions from natural language.

CLI Improvements

  • Verbose Output: The cpast_cli now supports a --debug flag for detailed output, replacing the CPAST_DEBUG environment variable (See issue #5).
  • Piping in generate: Improved piping capabilities within the cpast generate command.

Performance and Security

  • Enhanced Storage Performance: Optimized the file_store component of ccode_runner for improved efficiency.
  • Security Audit: Implemented a security audit workflow using cargo deny to scan dependencies for vulnerabilities, ensuring a more secure codebase.

Development and Infrastructure

  • Rust 2024 Upgrade: Updated the codebase to Rust 2024, enabling the use of the latest language features and improvements.
  • Refined Code Structure: Restructured cpast_cli into ccode_runner and clex_gen for better code organization and maintainability.
  • MSRV: Set the Minimum Supported Rust Version (MSRV) to 1.85.0.

General Improvements

  • Improved error propagation across the project.
  • Enhanced code quality, documentation, and performance.
  • Fixed various bugs, including race conditions and panics.
  • Updated dependencies to their latest versions.

For a full list of changes, check out the Full Changelog.

v0.6.0

28 Aug 20:01
f5924bd
Compare
Choose a tag to compare

Changes since v0.4.0

Clex

Introducing custom character types in String, breaking syntax!

Now, for custom character sets use @CH_ALL@, @CH_UPPER@ etc(as found in Clex Language Specs) or literal string like 'abc' it will generate either of abc!

We also dropped Character Type as it use was not profound! For using Character Type simply replace it with S[1,]

Critical Bug Fix:

[Critical High] Due to race condition, cpast test ... might leave a orphan child process in non --no-stop cases! This will eventually eat all your system memory and potentially crash it as well! This has been fixed as well!

Breaking Changes

  • Introduced improved error propagation, (don't exit before error) and improved error types
  • Modify public and private function signature to accommodate error propagation

Misc

  1. Introduce CPAST_DEBUG env, to reduce verbosity of Success Testcase message! It's now disabled by default! To enable use CPAST_DEBUG=1 cpast test ...

  2. Shell completion support! Generate using

    • zsh: cpast --completions=zsh | sudo tee /usr/local/share/zsh/site-functions/_cpast
    • fish: cpast --completions=fish > ~/.local/share/fish/generated_completions/cpast.fish
    • bash: cpast --completions=bash | sudo tee /etc/bash_completion.d/cpast.bash

Full Changelog: rootCircle/cpast@v0.4.0...v0.6.0

v0.4.0 stable

23 Apr 20:40
ea8b01f
Compare
Choose a tag to compare

Release Notes

announcement

start on work on llm based clex suggestion, check progess at cpast_llm.

lib

  1. Breaking changes
  2. AST is reformatted to support new specifications found at clex.specs.md
  3. Error Handling done neater
  4. Bugfix: Fix panic if length of string in StringModifier is negative
  5. Refactored clex_language
  6. Support for newline using String using S[1,'n'].

cli

  1. Colorized output for nicer bifurcations and beauty.

docs

  1. Documented AST and other component sematics
  2. FAQs to know more about the language. (Available in docs/)
  3. More examples

performance

  1. Runner is now faster than ever.
  2. Multithread test checking support, allowing user to test hundreds of thousands of seconds in seconds.

Full Changelog: rootCircle/cpast@v0.3.3...v0.4.0

v0.3.3 stable

19 Jan 17:40
cd3251f
Compare
Choose a tag to compare

v0.3.x stable release

CLI

  • Breaking CLI changes, introduction of two subcommands, test and generate. test for running and comparing two files and finding missing edge cases, while generate is just to generate the testcase and print it to
  • generate now supports copying testcases over clipboard using -c flag, using which you can use testcases in other platforms as well
  • test subcommand now supports an optional --no-stop flag, that can be used to never stop after only one failing testcase is found

Library Changes

  • Strong support for length based checks and charset(string modifiers). Sample usage cpast generate "S[10,'U']"
  • 'U' for uppercase, 'L' for lowercase, '0'..'9' for digit, 'N' for Alphanumeric, 'D' for All (including symbols), 'A' for alphabets only!
  • Introduction of support for character literal in cpast, currently being used for string modifier expressions only.
  • compile_and_test method now requires an boolean argument at last to accord to changes in CLI. This argument as addressed earlier too is to whether or not to stop after one failing testcase is found.
  • Minimum Value for Integer in capturing group now automatically conforms to 0, if negative.
  • Dependencies update
  • Fixed & Updated Docs

Ops

  • This release also address compilation issues of users using android, by using --no-default-features flag during compilation.
  • Dependencies update of clap to 4.4.18

Performance Fixes

  • remake implementation to reduce repeated compilation based on remake implementation in GNU make
  • Significant improvement in benchmark performance for test with files of compiled programming language.

Full Changelog: rootCircle/cpast@v0.2.9...v0.3.3

v0.2.9-alpha

11 Nov 18:13
d8c34df
Compare
Choose a tag to compare

First Release

07 Nov 18:37
4722b54
Compare
Choose a tag to compare
First Release Pre-release
Pre-release
v0.2.0-alpha

Added README file