Skip to content

Latest commit

Β 

History

History
284 lines (213 loc) Β· 8.15 KB

File metadata and controls

284 lines (213 loc) Β· 8.15 KB

EchoLisp Standards Index

Welcome to the EchoLisp development standards documentation. This index helps you navigate all the standards, protocols, and guidelines.

πŸ“š Documentation Overview

Core Standards (Start Here)

  1. STANDARDS_QUICK_REFERENCE.md ⭐ START HERE

    • Quick lookup for common patterns
    • File naming rules
    • Function naming conventions
    • Code style basics
    • Best for: Quick reference while coding
  2. DEVELOPMENT_STANDARDS.md πŸ“–

    • Comprehensive development standards
    • File naming conventions in detail
    • Code organization patterns
    • Documentation requirements
    • Best practices for Scheme/Lisp
    • Best for: Understanding the complete standards
  3. NAMING_PROTOCOLS.md 🏷️

    • Detailed file extension specifications
    • When to use each extension (.echo.scm, .echo.glisp, etc.)
    • Function and variable naming patterns
    • Directory structure guidelines
    • Migration patterns for existing files
    • Best for: Choosing the right file names and extensions
  4. CODING_PATTERNS.md πŸ’‘

    • Common implementation patterns
    • Data structure patterns
    • Functional programming patterns
    • Web development patterns
    • Error handling strategies
    • Testing patterns
    • Performance optimization
    • Best for: Learning how to implement common use cases

Supporting Documentation

  1. MIGRATION_GUIDE.md πŸ”„

    • How to transition existing files
    • Migration strategies
    • Batch migration scripts
    • Handling dependencies
    • Testing after migration
    • Best for: Converting existing code to new standards
  2. CONTRIBUTING.md 🀝

    • How to contribute to the repository
    • Repository initialization
    • Pull request guidelines
    • Development workflow
    • Best for: Contributing to the project
  3. README.md πŸ“

    • Project overview
    • Getting started
    • Official sources
    • Quick links
    • Best for: Understanding what EchoLisp is

Configuration

  1. .editorconfig βš™οΈ
    • Editor configuration
    • Indentation settings
    • File-specific formatting
    • Best for: Automatic code formatting

Examples

  1. examples/ πŸ’»
    • Working code examples
    • Demonstrates standards in practice
    • Four complete examples with different extensions
    • Best for: Learning by example

🎯 Quick Start Guides

For New Files

  1. Read STANDARDS_QUICK_REFERENCE.md
  2. Choose appropriate extension from NAMING_PROTOCOLS.md
  3. Copy structure from examples/
  4. Follow patterns from CODING_PATTERNS.md

For Existing Files

  1. Review MIGRATION_GUIDE.md
  2. Choose migration strategy
  3. Update file names with .echo. prefix
  4. Update imports and references
  5. Test thoroughly

For Contributors

  1. Read CONTRIBUTING.md
  2. Review DEVELOPMENT_STANDARDS.md
  3. Check examples/ for code style
  4. Submit pull request following guidelines

πŸ“‹ Common Use Cases

"I need to create a new Scheme file"

β†’ Use .echo.scm extension, see NAMING_PROTOCOLS.md

"I'm writing browser-specific code"

β†’ Use .echo.glisp extension, see examples/web-example.echo.glisp

"I need to implement common patterns"

β†’ See CODING_PATTERNS.md

"I'm migrating existing files"

β†’ Follow MIGRATION_GUIDE.md

"I need a quick reference"

β†’ Use STANDARDS_QUICK_REFERENCE.md

πŸ” Key Concepts

The .echo. Prefix

Rule: All EchoLisp source files MUST use .echo. prefix

βœ… module.echo.scm
βœ… utils.echo.glisp
βœ… helpers.echo.lsp

❌ module.scm
❌ utils.glisp
❌ helpers.lsp

See: NAMING_PROTOCOLS.md

Extension Guide

Extension Use Case Example
.echo.scm Standard Scheme calculator.echo.scm
.echo.glisp EchoLisp-specific web-api.echo.glisp
.echo.lisp Common Lisp style classes.echo.lisp
.echo.lsp Short utilities utils.echo.lsp
.echo.ls Minimal scripts init.echo.ls
.echo.s Core Scheme boot.echo.s

See: NAMING_PROTOCOLS.md

Function Naming

;; Predicates
empty-list?
is-valid?

;; Mutators
set-value!
update-state!

;; Converters
string->number
list->vector

;; Regular functions
calculate-sum
process-data

See: DEVELOPMENT_STANDARDS.md

Code Organization

;; ============================================
;; File: module.echo.scm
;; Purpose: Brief description
;; ============================================

;; Private helpers (prefix with % or -)
(define (%internal-helper x) ...)

;; Public API (with documentation)
;; function-name: arg1 arg2 -> result
(define (function-name arg1 arg2) ...)

See: DEVELOPMENT_STANDARDS.md

πŸ“Š Documentation Statistics

  • Total Documentation: ~60 pages
  • Code Examples: 4 working files
  • Patterns Documented: 30+
  • Standards Defined: Naming, coding, testing, documentation
  • Extensions Covered: 6 types (.scm, .glisp, .lisp, .lsp, .ls, .s)

πŸŽ“ Learning Path

Beginner

  1. STANDARDS_QUICK_REFERENCE.md
  2. examples/hello-world.echo.scm
  3. examples/calculator.echo.scm

Intermediate

  1. NAMING_PROTOCOLS.md
  2. CODING_PATTERNS.md
  3. examples/list-utils.echo.lsp

Advanced

  1. DEVELOPMENT_STANDARDS.md
  2. CODING_PATTERNS.md (advanced sections)
  3. examples/web-example.echo.glisp

Maintainer

  1. MIGRATION_GUIDE.md
  2. CONTRIBUTING.md
  3. All standards documents

πŸ”— Related Resources

Official EchoLisp Resources

Repository Resources

πŸ†˜ Getting Help

Documentation Issues

  • File unclear or incorrect? Open an issue
  • Missing information? Suggest improvements
  • Found a typo? Submit a PR

Code Questions

Standards Questions

βœ… Compliance Checklist

Use this checklist for new files:

  • File name uses .echo. prefix
  • Appropriate extension chosen
  • File header with documentation
  • Functions documented with examples
  • Code follows style guidelines
  • Tests created (if applicable)
  • Imports use correct file names
  • No hardcoded secrets or sensitive data

πŸš€ Next Steps

  1. Start Coding: Use the standards to create new files
  2. Migrate Files: Follow the migration guide for existing code
  3. Contribute: Submit improvements to the standards
  4. Spread the Word: Share these standards with other developers

πŸ“ Version History

  • v1.0.0 (2026-01-02) - Initial release
    • Complete standards documentation
    • Working examples
    • Migration guide
    • Quick reference

This index is maintained as part of the EchoLisp repository For questions or suggestions, open an issue on GitHub