-
Notifications
You must be signed in to change notification settings - Fork 0
Syntax-quote optimization experiments with git patches and reproducible verification #44
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Syntax-quote optimization experiments with git patches and reproducible verification #44
Conversation
Co-authored-by: frenchy64 <287396+frenchy64@users.noreply.github.com>
Co-authored-by: frenchy64 <287396+frenchy64@users.noreply.github.com>
Co-authored-by: frenchy64 <287396+frenchy64@users.noreply.github.com>
|
@copilot this is very promising. I would like some changes.
|
Co-authored-by: frenchy64 <287396+frenchy64@users.noreply.github.com>
Changes implemented in commit above:
All scripts renamed and updated to use |
|
@copilot there is a problem. The tests were being run under the I would like for you to reorganize our work so far. Everything related to the optimization should go into a new folder called something like |
- Create syntax-quote-optimization/ top-level directory - Add nil-optimization subproject with: - nil-optimization.patch (applies to Clojure 1.12.3) - build-optimized-uberjar.sh (shared build script) - experiments/uberjar-comparison/ - experiments/if-not-macro/ - Update all scripts to use shared build script - Add README.adoc files documenting structure - Remove old experiments/ directory Co-authored-by: frenchy64 <287396+frenchy64@users.noreply.github.com>
Co-authored-by: frenchy64 <287396+frenchy64@users.noreply.github.com>
Reorganization complete in commits 9489d3d and above. Changes implemented:
The patch is version-controlled (force-added despite .gitignore) and ready for Clojure contribution process. |
Co-authored-by: frenchy64 <287396+frenchy64@users.noreply.github.com>
|
@copilot great work. Please move/remove the changes we're no longer using in the branch. For example, move Please go read https://clojure.atlassian.net/browse/CLJ-1506. In the planning documents, please mention this ticket and talk about its relevance (it actually proposes most of the simple optimizations we want to test, like syntax-quoted booleans and nil). Also please read https://clojure.atlassian.net/browse/CLJ-2908 and followed any related links in the description of the ticket. This is the overarching ticket for this work, you should mention this fact in the planning documents. When planning this project, the Clojure maintainers and I were concerned that CLJ-2908 was much to big and we needed to split it up into smaller tickets to make more persuasive cases for the optimizations. We may end up repurposing CLJ-1506 for this. This is useful context for the description of this project in this branch so include something about that. |
- Moved doc/optimize-syntax-quote.md to syntax-quote-optimization/ - Reverted src/jvm/clojure/lang/LispReader.java to base (no changes in branch) - Updated planning documents to reference CLJ-2908 and CLJ-1506 - Added context about splitting large ticket into smaller experiments - Documented that CLJ-1506 may be repurposed for initial optimizations Co-authored-by: frenchy64 <287396+frenchy64@users.noreply.github.com>
Changes complete in commit above:
Both README.adoc files now reference the relevant tickets and explain the project's relationship to ongoing Clojure development discussions. Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
Overview
This PR establishes a structured experimental framework for testing and documenting piecemeal optimizations to Clojure's syntax-quote reader. The work is organized to support the Clojure contribution process and addresses concerns raised in CLJ-2908.
Background
This work is part of https://clojure.atlassian.net/browse/CLJ-2908[CLJ-2908: Optimize syntax-quote], which proposed comprehensive optimizations but was determined to be too broad in scope. This project splits the work into smaller, focused experiments to make more persuasive cases for individual optimizations. Many specific optimizations we're testing were originally proposed in https://clojure.atlassian.net/browse/CLJ-1506[CLJ-1506: Optimize some syntax-quote cases], which may be repurposed for our initial work.
Project Structure
All experimental work is organized under
syntax-quote-optimization/(treated as the project root):Key Changes
Nil Optimization (Current)
The first experiment focuses on making
nilself-evaluating in syntax-quote, centered on theif-notmacro as a minimal example.Patch: Single line change adding
|| form == nullto LispReader.javaExperiments:
Methodology
Each optimization follows a consistent workflow:
JIRA Context
Status
Complete! Framework established with nil optimization as first experiment. All work organized for Clojure contribution process with git patches ready for submission.
Original prompt
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.