ความตั้งใจคือ การอนุญาตอย่างมาก ในการยอมรับแพตช์ สำหรับการยืนยันสิทธิ์ เพียงส่งคำขอดึงครั้งแรกของคุณหรือถามใน Arc Language Forum
ขั้นแรกให้ติดตั้ง Racket (v7.7 หรือใหม่กว่า) จากนั้นในเทอร์มินัล ให้รัน:
$ raco pkg install sha
$ git clone http://github.com/arclanguage/anarki
$ cd anarki
คุณสามารถเริ่มต้นการโต้ตอบแบบโต้ตอบด้วย:
$ ./arc.sh
หรือเริ่มข่าว (และตัวแทน) ด้วย:
$ cd apps/news
$ ./run-news
หากคุณยังใหม่กับ Arc หรือ Lisp โดยทั่วไป จุดเริ่มต้นที่ดีคือ Tutorial
หากคุณประสบปัญหาให้ตรวจสอบ
(help)
ที่ repl Anarki มาพร้อมกับ News ซึ่งเป็นแอปสไตล์ Hacker News
หากต้องการเรียกใช้ News ให้เลือกชื่อผู้ใช้ (ของผู้ดูแลระบบ) ของคุณก่อน
$ cd anarki/apps/news
$ mkdir www
$ echo __username__ > www/admins
คุณสามารถมีผู้ดูแลระบบได้หลายคน เพิ่มทั้งหมดไปที่ www/admins
คั่นด้วยช่องว่าง
คำเตือน : หากคุณใช้งานไซต์ News อยู่แล้ว การโยกย้ายไปยังทางแยกนี้อาจทำให้ข้อมูลไซต์ของคุณยุ่งเหยิง มาคุยกับเราก่อน และอย่าลืมสำรองข้อมูลก่อนการโยกย้าย
ตอนนี้เปิดเซิร์ฟเวอร์ขึ้นมา
$ ./run-news
จะมีการหยุดชั่วคราวในขณะที่เซิร์ฟเวอร์โหลด โดยมีข้อความบางส่วน จากนั้นคุณจะเห็นข้อความแจ้ง arc>
ไปที่ http://localhost:8080 คลิกที่ เข้าสู่ระบบ และสร้างบัญชีสำหรับชื่อผู้ใช้ของคุณ ตอนนี้คุณควรเข้าสู่ระบบในฐานะผู้ดูแลระบบ
(ไม่ต้องกังวลว่า user break
หรือ error writing
)
หากต้องการปรับแต่ง News ให้เปลี่ยนตัวแปรที่ด้านบนของ apps/news/news.arc
หากต้องการเปลี่ยนพอร์ตที่เซิร์ฟเวอร์ของคุณทำงาน ให้แก้ไข apps/news/run-news.arc
การเปลี่ยนแปลงโต้ตอบใดๆ ในพรอมต์จะมีผลทันทีในเซิร์ฟเวอร์ โดยไม่จำเป็นต้องรีสตาร์ท ดังนั้นหากคุณทำการเปลี่ยนแปลง apps/news/news.arc
คุณสามารถโหลดได้โดยพิมพ์ (load "apps/news/news.arc")
ใน repl หากคุณหยุดเซิร์ฟเวอร์หรือเซิร์ฟเวอร์หยุดทำงานด้วยเหตุผลบางประการ คำสั่งที่ป้อนไว้ก่อนหน้านี้จะพร้อมใช้งานในประวัติคำสั่ง (อย่างน้อยถ้าคุณได้ติดตั้ง Readline ไว้)
คุณอาจต้องการให้บริการ ข่าวสาร อย่างปลอดภัยผ่าน HTTPS ตัวอย่างการกำหนดค่าสำหรับการรัน Nginx ด้วย SSL เป็นพร็อกซีย้อนกลับสำหรับ News มีอยู่ใน 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 ไม่ได้ถูกจำกัดอย่างชัดเจนในการรักษาความเข้ากันได้กับรีลีสอัปสตรีม และสถานะความเข้ากันได้อาจผันผวนอย่างมากจากการคอมมิตที่จะคอมมิต ขึ้นอยู่กับว่าใครสนใจ หากต้องการดูรายการความแตกต่าง ให้พิมพ์ (incompatibilities)
ที่ repl. หากคุณทำการเปลี่ยนแปลงที่เข้ากันไม่ได้ โปรดอัปเดตรายการนี้
ใครก็ตามสามารถทำการเปลี่ยนแปลงกับ Anarki ได้ แต่โปรดตรวจสอบให้แน่ใจว่าการทดสอบยังคงผ่านการทดสอบต่อไป เนื่องจากเราใช้ชุดทดสอบ unit-test.arc โปรดทำการทดสอบก่อนที่จะทำการเปลี่ยนแปลงใดๆ:
$ ./arc.sh (ต้องการ 'lib/unit-test.arc/unit-test.arc) (โหลด "unit-test.arc/tests.arc") (ทดสอบและข้อผิดพลาดเมื่อล้มเหลว)
นิพจน์ แร็กเกต สามารถประเมินได้ด้วยไวยากรณ์ ($ ...)
ตัวอย่างเช่น (($ crypto-random-bytes) 16)
รับฟังก์ชัน crypto-random-bytes
จาก Racket และทำการเรียกมัน
หากคุณเขียนโค้ด 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 ...)
อยู่ที่นั่นเพื่อให้ง่ายต่อ require
ไลบรารี่ที่ใช้ Anarki จาก Racket
Anarki มีปัญหาบางอย่างในการส่ง อาร์กิวเมนต์คำหลัก ไปยังฟังก์ชัน Racket แต่สามารถใช้ keyword-apply
ของ Racket ได้