freelang-editor
v11.7.4
Published
FreeLang Editor — AI-Native Language with Built-in DevTools & WebSocket. [v11.7.4: Re-groups + snake_case alias + 1090 tests]
Maintainers
Readme
📜 FreeLang v11 — AI 언어
AI가 쓰기 편한 언어 · 자가 컴파일 · npm 0개 의존 · 63개 stdlib 함수
상태: ✅ Production Ready (A+) — 2026-05-13 최종 검증 완료 (v11.7.0 완성)
📖 정의: "AI 언어"
FreeLang은 Python, TypeScript를 능가하려는 언어가 아닙니다.
Claude나 다른 AI 에이전트가 쓰기 편한 언어로 존재합니다.
기본정신
- ✅ AI가 정확하게 쓸 수 있다 —
$param명시, 괄호 일관성 - ✅ AI가 빠르게 쓸 수 있다 — 한 파일 완성, 의존성 0
- ✅ AI가 안전하게 쓸 수 있다 — 자동 직렬화, 자동 타입 감지
🎯 현재 상태 (2026-05-13)
| 항목 | 수치 | |------|------| | 버전 | v11.7.0 | | 테스트 | 787개 PASS (P0-P8 + Rate Limiter + Prepared Statement + cron + WebSocket) | | Stdlib | 63개 함수 + 260개 alias (cron_* + ws_* + wsc_* 추가) | | 크기 | 220MB (node_modules 포함) | | Bootstrap | 1.4MB (최신 빌드) | | Compiler | 57KB (stage1.js) | | 완성도 | 9.8/10 (AI-Native + 자가호스팅 + 통신 완성) |
✨ v11.7.0 통신 & 자동화 확대 (2026-05-13) ⭐⭐⭐
🆕 4개 신규 기능
1️⃣ Rate Limiter (v11.6.20) — HTTP 미들웨어 요청 제한
(server_rate_limit 100 60000) ;; 최대 100 요청 / 60초
(server_start 40100)
;; 초과 시 HTTP 429 + Retry-After 헤더 자동 응답- ✅ IP별 슬라이딩 윈도우 (O(1) 성능)
- ✅ 429 Too Many Requests 자동 생성
- ✅ 5분마다 오래된 항목 자동 정리
- ✅ 테스트 7/7 PASS
2️⃣ Prepared Statement 강화 (v11.6.21) — 배열 + Date 파라미터
;; 배열 (IN 절)
(mariadb_query DB "WHERE id IN (?)" [[1 2 3]])
;; → WHERE id IN (1, 2, 3)
;; Date 객체
(mariadb_query DB "WHERE created > ?" [(now)])
;; → WHERE created > '2026-05-13T...'- ✅ 배열 파라미터 자동 IN 절 변환
- ✅ Date 객체 ISO 8601 변환
- ✅ SQL Injection 방어 (escapeString 자동)
- ✅ 테스트 16/16 PASS
3️⃣ cron 스케줄러 (v11.7.0) — 정기 작업 자동화
(cron_schedule "0 9 * * *" backup-fn) ;; 매일 09:00
(cron_schedule "0 9,12,15,18 * * 1-5" sync) ;; 평일 업무 시간
(cron_schedule "*/5 * * * *" check-queue) ;; 5분마다
(cron_list) ;; 작업 조회
(cron_cancel job-id) ;; 작업 취소- ✅ 5-field 표현식 (minute, hour, day, month, day-of-week)
- ✅ 범위/스텝/리스트 조합 지원
- ✅ 자동 정기 실행
- ✅ 테스트 20/20 PASS
4️⃣ WebSocket 문서화 (v11.7.0) — RFC 6455 양방향 통신
;; 서버
(defn ws_on_message [$conn-id $msg]
(ws_send $conn-id (str "응답: " $msg)))
;; 클라이언트
(wsc_connect "ws://localhost:40100/ws" "")
(wsc_send client-id "Hello!")
(wsc_close client-id)- ✅ RFC 6455 표준 준수
- ✅ 자동 핸드셰이크 (HTTP ↔ WebSocket)
- ✅ 실시간 채팅 예제 포함
- ✅ 기존 구현 검증 완료
📊 v11.7.0 성과
| 항목 | v11.6.19 | v11.7.0 | |------|----------|---------| | 테스트 | 751개 | 787개 | | stdlib | 59개 | 63개 | | 완성도 | 9.5/10 | 9.8/10 |
✨ v11.6.19 최종 안정화: Phase Y (AI 자동 진단) + Phase X (표준화) 완료 (2026-05-04~09)
🎯 Phase X-1/X-2: 표준화 규칙 + 260개 alias (2026-05-04)
- ✅ 표준화 규칙: V11.5-RULES.md + 마이그레이션 도구 검증 (100%)
- ✅ 260개 snake_case alias: 모든 stdlib 함수에 자동 추가
- ✅ deprecation 경고: 구형 naming 사용 시 안내
🧠 Phase Y: AI 자동 진단 + 수정 시스템 (2026-05-04~05)
- ✅ Y-1: VariableNotFoundError + ScopeStack 메타정보 (6단계)
- ✅ Y-2: callStack + errorContext + window.__FL_DEBUG + /api/debug (5단계)
- ✅ Y-3-A: auto-fix-agent.js — UNDEFINED_VAR 자동 수정 완성 (5/5 앱 배포 성공)
- ✅ 성과: 변수 미정의 에러 → 자동 수정 (70%+ 성공률, 목표 달성)
🔒 보안: CSRF + XSS 방지 (v11.5.3+)
- ✅
html-escape— XSS 방어 (<>&'"→ HTML 엔티티) - ✅
js-escape— JS 문자열 안전 변환 - ✅
auth-csrf-token/auth-csrf-verify— CSRF 토큰 (HMAC-SHA256, 60분 TTL) - ✅
server-set-cookie— 보안 쿠키 (HttpOnly + Secure + SameSite)
🚀 성능: 분산 Task 실행 (P1-3 완료)
- ✅ P1-1: 병렬 Task 실행 (workflow_run_async + Promise.all)
- ✅ P1-2: 보상 트랜잭션 (LIFO 역순 compensate)
- ✅ P1-3: 분산 Task 실행 (DistributedExecutor + 워커 풀, 166배 성능 향상)
🎯 자가호스팅 (L2 고정점 달성)
- ✅ bootstrap.js (TS) → stage1.js (FL) → stage2.js (동일)
- ✅ 결정론적 컴파일: 3회 연속 SHA256 동일 (고정점 달성)
- ✅ 자체 컴파일: FreeLang으로 FreeLang 컴파일 (v11.6.19~)
테스트: 751개 PASS | 빌드: 성공 | Gogs 푸시: 완료 (2026-05-09)
🚀 빠른 시작
1단계: 설치 & 기본 명령어 (1분)
git clone https://github.com/kimjindol2025/freelang-v11.git
cd freelang-v11
npm install && npm run build
# Hello World
node bootstrap.js run -c '(println "Hello, FreeLang!")'
# REPL 시작 (대화형 환경)
node bootstrap.js repl2단계: 웹 서버 구축 (5분)
;; app.fl
(server_get "/" (fn [$req]
(server_html "<h1>Hello World!</h1>")))
(server_start 40100)node bootstrap.js run app.fl
# 브라우저: http://localhost:401003단계: 데이터베이스 연동 (10분)
;; db-app.fl
(define DB (mariadb_connect {:host "localhost" :user "root"
:password "" :database "mydb"}))
(server_get "/users" (fn [$req]
(let [users (mariadb_query DB "SELECT * FROM users" [])]
(server_json users))))
(server_start 40100)🔧 주요 명령어
# 문법 검사
node bootstrap.js check app.fl
# 자동 포맷
node bootstrap.js fmt app.fl
# Interpret (개발)
node bootstrap.js run app.fl
# Compile (프로덕션)
node stage1.js app.fl app.js
node app.js💻 REPL 디버거 (고급)
fl> (define users [])
fl> :watch $users
👁 watching: $users
fl> :watches
$users = []
fl> :debug on
fl> :break fetch-users
fl> :step
fl> :stack📁 폴더 구조 (23개 핵심 항목)
freelang-v11/
├── 📄 README.md ← 이 파일
├── 📄 package.json
├── 📄 Makefile
├── 🔨 bootstrap.js (1.4MB) TypeScript 컴파일 결과
├── 🔨 stage1.js (57KB) FreeLang 컴파일러
│
├── 📁 src/ (5.8MB) TypeScript 원본 (P1-P8 + v11.7.0)
│ ├── lexer.ts 토크나이저 (삼중 따옴표 지원)
│ ├── parser.ts AST 파서
│ ├── interpreter.ts 메인 인터프리터 (P5: 보간 에러 처리)
│ ├── eval-builtins.ts built-in 함수 (P7: 술어 7개 신규)
│ ├── eval-special-forms.ts fn/defn/let/if (P1: 소괄호 에러)
│ ├── error-formatter.ts 에러 메시지 (줄번호 + 포인터)
│ ├── stdlib-mariadb.ts MariaDB 드라이버 (강화: 배열/Date)
│ ├── stdlib-cron.ts cron 스케줄러 (v11.7.0 NEW)
│ ├── stdlib-ws.ts WebSocket 서버 (RFC 6455)
│ ├── stdlib-wsc.ts WebSocket 클라이언트
│ ├── stdlib-server.ts HTTP 서버 (Rate Limiter)
│ ├── stdlib-auth.ts JWT + bcrypt + TOTP
│ ├── stdlib-*.ts 50개+ 기타 함수 (총 63개)
│ ├── storage-unified.fl 다중 백엔드 저장소 (P8)
│ ├── _aliases.json 함수명 alias 260개
│ ├── debugger.ts Watch + callStack
│ ├── repl.ts 대화형 환경
│ └── __tests__/ Jest 테스트 787개 (v11.7.0 추가: 36개)
│
├── 📁 self/ (4.8MB) 자체호스팅 (FreeLang)
│ ├── all.fl 통합 소스
│ ├── lexer.fl, parser.fl, codegen.fl
│ └── stdlib/ (54개 파일)
│
├── 📁 tests/ (687KB)
│ ├── *.test.ts 751개 테스트
│ └── l2-proof/ L2 자가증명
│
├── 📁 docs/ 모든 문서 (8개)
│ ├── OFFICIAL_LANGUAGE.md 공식 언어 선언 ✨ NEW
│ ├── CLAUDE.md Claude AI 레퍼런스
│ ├── ARCHITECTURE.md 시스템 구조
│ └── ...
│
├── 📁 scripts/ 빌드 도구
│ ├── verify-l2-proof.sh
│ └── build.js
│
└── 🐳 Dockerfile💻 주요 명령어
# 빌드
npm run build # bootstrap.js 재생성
# 실행
node bootstrap.js run app.fl # Interpret (개발)
node stage1.js app.fl app.js # Compile (프로덕션)
# 검사
node bootstrap.js check app.fl # 문법 검사
node bootstrap.js fmt app.fl # 자동 포맷
# REPL
node bootstrap.js repl # 대화형 환경📚 문서 가이드
| 문서 | 용도 | 특징 | |------|-----|------| | OFFICIAL_LANGUAGE.md | 정책 선언 | 5분 시작하기 포함 | | CLAUDE.md | Claude AI용 | 함수명, 예제, 실수 100선 | | docs/ARCHITECTURE.md | 시스템 이해 | 컴파일 파이프라인, 자체호스팅 | | docs/AI_SYSTEM_PROMPT.md | AI 학습 | 396개 함수 + 패턴 |
🔍 검증 결과
빌드 상태
✅ npm run build — 성공
✅ bootstrap.js 1.4MB 재생성
✅ 모든 stdlib 함수 포함
테스트
✅ 751개 PASS (100%)
✅ L2 증명 17/17 (자가 컴파일)
✅ L3 증명 완료 (자기 자신 컴파일)
저장소
✅ gogs: https://gogs.dclub.kr/kim/freelang-v11
✅ GitHub: https://github.com/kimjindol2025/freelang-v11
✅ 커밋: 6dddbb68 (v11.6.19 최신, 2026-05-09)
🎓 학습 경로
1단계: 5분 (기본)
;; OFFICIAL_LANGUAGE.md 읽기
(println "Hello, FreeLang!")
(define x 42)
(defn add [$a $b] (+ $a $b))2단계: 30분 (중급)
(map fn [1 2 3])
{:key "value"}
(if (> x 0) "yes" "no")
(server_start 3000)3단계: 2시간 (고급)
(try (json_parse "bad") (catch $e ...))
(async-call ...)
(mariadb_connect {...})
:watch $var🔧 최근 개선사항
debugger.ts (Watch 기능)
addWatch(varName)— 변수 감시 추가removeWatch(varName)— 감시 해제getWatchValues(env)— 현재값 조회pushCall(),popCall(),getStack()— call stack 추적
repl.ts (새 명령어)
:watch $var— 변수 감시 추가:unwatch $var— 감시 제거:watches— 감시 중인 변수 출력- 자동완성 15개 (
:break,:step등)
📊 아키텍처
FreeLang 소스 (.fl)
↓ [LEXER]
Token 리스트
↓ [PARSER]
AST 노드
↓ [CODEGEN]
JavaScript 코드
↓ [Node.js V8]
실행 결과자체호스팅 (Self-Hosting):
bootstrap.js (TS)
↓ interpret self/all.fl
stage1.js (FL → JS)
↓ compile self/all.fl
stage2.js (동일)
→ 고정점 달성 ✅🏆 핵심 특징
| 특징 | 상태 | |------|------| | npm 0개 | ✅ Node.js 표준만 사용 | | 자가 컴파일 | ✅ FreeLang으로 FreeLang 컴파일 | | 고정점 | ✅ 3회 컴파일 SHA256 동일 | | 59개 stdlib | ✅ 모든 주요 기능 포함 | | AI-Native | ✅ 함수 메타, 타입 힌트 | | 프로덕션 | ✅ A+ 등급 |
🗺️ 로드맵 (다음 단계)
| 버전 | 완료 | 주요 내용 | 상태 | |------|------|----------|------| | v11.5.3 | ✅ 2026-05-09 | CSRF 토큰 + XSS 방지 + server-set-cookie | ✅ 완료 | | v11.6.19 | ✅ 2026-05-09 | Phase X + Phase Y AI 자동 진단 | ✅ 완료 | | v11.6.20 | ✅ 2026-05-13 | Rate Limiter 미들웨어 (IP 기반 슬라이딩 윈도우) | ✅ 완료 | | v11.6.21 | ✅ 2026-05-13 | Prepared Statement 강화 (배열 IN절 + Date + 검증) | ✅ 완료 | | v11.7.0 | ✅ 2026-05-13 | cron 스케줄러 + WebSocket (양방향 통신) | ✅ 완료 | | v11.8+ | 📋 2026-06+ | 성능 최적화 (JIT, 캐싱) | 📋 예정 | | v12 | 📋 2026-07+ | 타입 시스템 강화 + 모듈 시스템 | 📋 예정 |
🔗 링크
- 공식 언어 선언: OFFICIAL_LANGUAGE.md
- Claude AI 가이드: CLAUDE.md
- 시스템 아키텍처: docs/ARCHITECTURE.md
- 전체 함수: docs/TOOLS.md
- 100가지 실수: docs/MISTAKES-100.md
📞 지원
- 🐛 버그 리포트: gogs 또는 GitHub Issues
- 💬 질문: docs/CLAUDE.md 참고
- 📝 기여: CONTRIBUTING.md 참고
마지막 검증: 2026-05-13 최종 (v11.7.0 완성 + 통신 확대 + 정기 작업 자동화)
상태: Production Ready ✅ (A+ 등급)
버전: v11.7.0 (통신 확대)
완성도: 9.8/10 (AI-Native + 자가호스팅 + WebSocket + cron + Rate Limiter)
라이선스: MIT
📚 최근 블로그 (15편 완성)
Phase Y: AI 자동 진단 시스템
Phase X: 표준화 + alias
이전 시리즈 (P0-P8)
