| Dimension | Shared | Only in A | Only in B | Overlap |
|---|---|---|---|---|
| Sections | 0 | 6 | 7 | 0% |
| Commands | 0 | 0 | 0 | — |
| Section tags | 2 | 0 | 3 | 40% |
What each file covers
Sections
0 shared · 6 only in A · 7 only in B- − Performance Rules for Fasten
- − Targets
- − Benchmarking
- − Memory
- − Optimization
- − Monitoring
- + Code Style Rules for Fasten
- + Zig Code Style
- + Documentation
- + Error Handling
- + Memory Management
- + Testing
- + Performance
Commands
neither file has anySection tags
2 shared · 0 only in A · 3 only in B- + test
- + code-style
- + docs
- performance
- do-not
Line diff
v1truv1us/fasten · .cursor/rules/performance.mdc
@@ −3 @@
3globs:
4alwaysApply: true
5---
6# Performance Rules for Fasten
7
8## Targets
9- Small: <100ms, <10MB; Medium: <500ms, <50MB; Large: <2s, <200MB; XL: <10s, <500MB.
10- Lexer: >1MB/s; Parser: >500KB/s; Optimizer: >2MB/s; Codegen: >5MB/s.
11- Cold start <50ms; base memory <5MB.
12
13## Benchmarking
14- Use provided benchmark framework; warmup, multiple iterations, throughput checks.
15- Assert performance targets in tests; fail on regression >10%.
16
17## Memory
18- Use ArenaAllocator for temp data; Pool for frequent allocations.
19- Profile memory; zero tolerance for leaks; peak usage <2x input size.
20
21## Optimization
22- Minimize allocations in hot paths; use stack allocation when possible.
23- Profile before optimizing; document all optimizations.
24- Use efficient data structures (interning, compact AST).
25
26## Monitoring
27- Collect and log metrics (time, memory, compression ratio).
28- Alert on slow bundling, high memory, poor compression.
29- Run performance and memory tests in CI.
30
v1truv1us/fasten · .cursor/rules/code_style.mdc
@@ +3 @@
3globs:
4alwaysApply: true
5---
6# Code Style Rules for Fasten
7
8## Zig Code Style
9- Organize files: std imports, local imports, constants, types, public/private functions, tests.
10- Naming: camelCase for functions, snake_case for variables/fields, PascalCase for types/enums, SCREAMING_SNAKE_CASE for constants.
11- Indent with 4 spaces, no tabs. Max line length: 100 chars.
12- One space around binary ops, after commas/semicolons; no trailing whitespace.
13- Braces on same line; always use braces for control structures.
14
15## Documentation
16- Document all public functions with triple-slash comments (///), including params, returns, errors.
17- Use inline comments for complex/non-obvious code.
18
19## Error Handling
20- Use specific error enums per module; descriptive error names.
21- Use `try` for propagation; `catch` only for meaningful handling.
22- Include file, line, column in error messages.
23
24## Memory Management
25- Pass allocators explicitly; use ArenaAllocator for temp data.
26- Use `defer` for cleanup; always free resources.
27
28## Testing
29- Group related tests; descriptive names; test both success and error cases.
30- Use realistic and edge-case data.
31
32## Performance
33- Minimize allocations in hot paths; reuse buffers; avoid unnecessary copying.
34- Tokenization: <1ms/KB; Parsing: <5ms/KB; Memory: <2x input size.
35
@@ −3 +3 @@
33 globs:
44 alwaysApply: true
55 ---
6−# Performance Rules for Fasten
6+# Code Style Rules for Fasten
77
8−## Targets
9−- Small: <100ms, <10MB; Medium: <500ms, <50MB; Large: <2s, <200MB; XL: <10s, <500MB.
10−- Lexer: >1MB/s; Parser: >500KB/s; Optimizer: >2MB/s; Codegen: >5MB/s.
11−- Cold start <50ms; base memory <5MB.
8+## Zig Code Style
9+- Organize files: std imports, local imports, constants, types, public/private functions, tests.
10+- Naming: camelCase for functions, snake_case for variables/fields, PascalCase for types/enums, SCREAMING_SNAKE_CASE for constants.
11+- Indent with 4 spaces, no tabs. Max line length: 100 chars.
12+- One space around binary ops, after commas/semicolons; no trailing whitespace.
13+- Braces on same line; always use braces for control structures.
1214
13−## Benchmarking
14−- Use provided benchmark framework; warmup, multiple iterations, throughput checks.
15−- Assert performance targets in tests; fail on regression >10%.
15+## Documentation
16+- Document all public functions with triple-slash comments (///), including params, returns, errors.
17+- Use inline comments for complex/non-obvious code.
1618
17−## Memory
18−- Use ArenaAllocator for temp data; Pool for frequent allocations.
19−- Profile memory; zero tolerance for leaks; peak usage <2x input size.
19+## Error Handling
20+- Use specific error enums per module; descriptive error names.
21+- Use `try` for propagation; `catch` only for meaningful handling.
22+- Include file, line, column in error messages.
2023
21−## Optimization
22−- Minimize allocations in hot paths; use stack allocation when possible.
23−- Profile before optimizing; document all optimizations.
24−- Use efficient data structures (interning, compact AST).
24+## Memory Management
25+- Pass allocators explicitly; use ArenaAllocator for temp data.
26+- Use `defer` for cleanup; always free resources.
2527
26−## Monitoring
27−- Collect and log metrics (time, memory, compression ratio).
28−- Alert on slow bundling, high memory, poor compression.
29−- Run performance and memory tests in CI.
28+## Testing
29+- Group related tests; descriptive names; test both success and error cases.
30+- Use realistic and edge-case data.
31+
32+## Performance
33+- Minimize allocations in hot paths; reuse buffers; avoid unnecessary copying.
34+- Tokenization: <1ms/KB; Parsing: <5ms/KB; Memory: <2x input size.
3035
