의도는 패치를 수용하는 데 있어서 극도로 관대해지는 것입니다. 커밋 권한을 얻으려면 첫 번째 풀 요청을 제출하거나 Arc Language Forum 에 문의하세요.
먼저 Racket (v7.7 이상)을 설치한 후 터미널에서 다음을 실행합니다.
$ raco pkg install sha
$ git clone http://github.com/arclanguage/anarki
$ cd anarki
다음을 사용하여 대화형 repl을 시작할 수 있습니다.
$ ./arc.sh
또는 다음을 사용하여 뉴스(및 담당자)를 시작하세요.
$ cd apps/news
$ ./run-news
일반적으로 Arc 또는 Lisp를 처음 사용하는 경우 Tutorial 이 좋은 출발점이 됩니다.
문제가 발생하면 확인하세요.
(help)
입력하여 Arc에 내장된 도움말 시스템 Anarki는 Hacker News 스타일 앱인 News 와 함께 번들로 제공됩니다.
뉴스를 실행하려면 먼저 (관리자의) 사용자 이름을 선택하세요.
$ cd anarki/apps/news
$ mkdir www
$ echo __username__ > www/admins
여러 명의 관리자를 가질 수 있습니다. www/admins
에 모두 공백으로 구분하여 추가하세요.
경고 : 이미 뉴스 사이트를 운영하고 있는 경우 이 포크로 마이그레이션하면 사이트 데이터가 엉망이 될 수 있습니다. 먼저 연락주시고, 마이그레이션 전 반드시 백업을 해두시기 바랍니다.
이제 서버를 불러오세요.
$ ./run-news
서버가 로드되는 동안 몇 가지 메시지와 함께 잠시 멈춘 후 arc>
프롬프트가 표시됩니다.
http://localhost:8080으로 이동합니다. 로그인 을 클릭하고 사용자 이름에 대한 계정을 만듭니다. 이제 관리자로 로그인되어 있어야 합니다.
( user break
이나 메시지 error writing
에 대해 걱정하지 마십시오.)
News 를 맞춤설정하려면 apps/news/news.arc
상단의 변수를 변경하세요. 서버가 실행되는 포트를 변경하려면 apps/news/run-news.arc
수정하세요.
프롬프트에 대한 대화형 변경 사항은 서버를 다시 시작할 필요 없이 즉시 서버에 반영됩니다. 따라서 apps/news/news.arc
를 변경하는 경우 repl에 (load "apps/news/news.arc")
입력하여 해당 내용을 로드할 수 있습니다. 어떤 이유로 서버를 중지하거나 서버가 종료되면 이전에 입력한 명령을 명령 기록에서 사용할 수 있습니다(적어도 Readline이 설치된 경우).
HTTPS를 통해 안전하게 뉴스를 제공할 수 있습니다. News 의 역방향 프록시로 SSL을 사용하여 Nginx를 실행하기 위한 구성 예는 anarki/extras/news.nginx.conf
에서 찾을 수 있습니다.
비밀번호 재설정 메일을 발송하려면 해당 메일을 보낼 이메일 계정을 설정해야 합니다.
$ echo "[email protected]" > www/app-email ; email
$ echo "smtp.example.com" >> www/app-email ; smtp server
$ echo "[email protected]" >> www/app-email ; user
$ echo "1234" >> www/app-email ; password
Anarki는 철저한 자동화된 테스트를 갖추고 있습니다.
# start in the anarki directory
$ ./arc.sh
arc> (load "tests.arc")
Anarki는 업스트림 릴리스와의 호환성을 유지하도록 명시적으로 제한되지 않으며, 관심을 갖는 사람에 따라 호환성 상태가 커밋에서 커밋으로 크게 바뀔 수 있습니다. 차이점 목록을 보려면 repl에 (incompatibilities)
입력하세요. 호환되지 않는 변경을 수행하는 경우 이 목록을 업데이트하세요.
누구나 Anarki를 변경할 수 있지만 테스트가 계속 통과되는지 확인하시기 바랍니다. 우리는 unit-test.arc 테스트 도구를 사용하므로 변경 사항을 커밋하기 전에 테스트도 실행하십시오.
$ ./arc.sh ('lib/unit-test.arc/unit-test.arc 필요) ("unit-test.arc/tests.arc" 로드) (테스트 및 오류 시 실패)
라켓 표현식은 ($ ...)
구문으로 평가할 수 있습니다. 예를 들어 (($ crypto-random-bytes) 16)
Racket 에서 crypto-random-bytes
함수를 가져와 호출합니다.
Racket 코드를 많이 작성하고 더 큰 프로젝트의 일부로 Anarki를 사용하려는 경우 raco pkg install anarki
사용하고 Anarki를 사용하여 Racket 모듈을 작성할 수 있습니다.
#lang anarki
(:provide function-for-use-in-racket)
(= racket-import ($.dynamic-require ...))
(load "relative/path.arc")
(def utility-for-use-in-racket (x)
(* x (racket-import x))
Anarki에는 비공개 모듈 범위가 없습니다. (:provide ...)
섹션은 Racket 에서 Anarki 기반 라이브러리를 쉽게 require
있도록 하기 위한 것입니다.
Anarki는 Racket 함수에 키워드 인수를 전달하는 데 몇 가지 문제가 있지만 이를 위해 Racket 의 keyword-apply
사용할 수 있습니다.