Egel은 간결하지만 놀라울 정도로 강력한 구문을 사용하여 열정적인 결합자 재작성을 기반으로 하는 형식화되지 않은 동시 기능적 스크립팅 언어입니다.
이 인터프리터는 Linux/MacOS/BSD에서 개발 중이며 유니코드 지원을 위해 icu4c, 포맷팅을 위해 fmt, 외부 함수 인터페이스로 ffi, 사전 백엔드로 GNU 라이트닝을 사용합니다.
인터프리터는 현재 C++ 컴파일러로 컴파일할 수 있으며 cmake를 사용하여 빌드합니다. 일반적으로 egel을 빌드하려면 루트 액세스 권한이 필요합니다.
운영 체제와 패키지 관리자가 C++ 라이브러리를 제공하는 방식은 대략 두 가지입니다.
운영 체제 배포자가 C++ 라이브러리를 컴파일하고 해체하는 오픈 소스 모델(다양한 Unix 및 BSD)입니다. 패키지 관리자를 사용하여 libicu, libffi, fmt 및 GNU Lightning을 설치하십시오.
경고: 예외적으로 Ubuntu/Debian은 GNU Lightning과 함께 제공되지 않습니다. 인터프리터를 컴파일하기 전에 해당 패키지를 컴파일하고 설치 해야 합니다.
C++ 라이브러리는 링크하기 취약하기 때문에 일반적으로 제공되지 않으며 일반적으로 이러한 라이브러리를 처음부터 컴파일하여 애플리케이션에 정적으로 링크하거나 배포하는 공급업체 기반 모델(MacOS 및 Windows)입니다. 공급업체에 대한 링크는 공급업체 디렉토리에 git 하위 모듈로 제공되며, 여기에서 직접 해당 라이브러리를 다운로드하고 컴파일해야 합니다. 어느 정도 도움이 될 별도의 README.md가 공급업체 디렉토리에 있습니다.
CMake 파일은 두 모델 모두에 제공됩니다. 사용하려는 파일을 선택하고 이름을 CMakeLists.txt
로 바꾸세요.
공급업체 모델을 기반으로 하는 정적 빌드 cmake 스크립트도 제공됩니다.
그 후 통역사는 표준 방식으로 cmake
사용하여 만들어집니다. Linux 시스템에서 다음 명령을 실행합니다.
mkdir build
cd build
cmake ..
make
참고: 이전 GCC의 경우 stdc++fs
규칙의 주석 처리를 제거해야 하는 경우가 있습니다.
그러면 egel
이라는 인터프리터와 build
디렉터리에 동적으로 로드할 수 있는 여러 Egel 개체 파일이 제공됩니다.
시스템 전체 설치의 경우 빌드 후 루트로 make install
실행합니다.
(MacOS dyld는 더 이상 /usr/local/lib를 찾지 않으므로 경로를 설정하십시오.)
일부 시스템에서는 EGEL_PATH
환경 변수를 설정해야 합니다. 이에 대한 자세한 내용은 매뉴얼 페이지를 참조하십시오.
그렇게 하고 싶지 않다면 간단한 작업을 위해 egel
이라는 인터프리터와 include
디렉터리의 서곡만 필요하다는 점을 참고하세요.
Cmake에서 생성된 makefile은 다음 명령을 사용하여 로컬 설치를 허용합니다.
make DESTDIR=~ install
이 경우 Egel 구성 요소는 ~/usr/local
디렉터리에 설치되며 특정 구문은 다를 수 있지만 쉘 리소스 파일에 다음 명령을 추가하여 해당 구성 요소를 참조할 수 있습니다.
export PATH=~/usr/local/bin:$PATH
export EGEL_PATH=.:~/usr/local/lib/egel
참조할 수 있는 매뉴얼 페이지가 있으며, 설치해야 하며, 인터넷에서 통역사에 대한 다음과 같은 짧은 소개를 읽어야 합니다.
내장된 연결기 목록은 여기를 참조하세요.
인터프리터는 명령줄 편집 기능을 제공하지 않으므로 alias egel="rlwrap egel"
으로 래핑할 수 있습니다.
인터프리터는 수명이 짧은 객체를 많이 할당합니다. 약간의 추가 속도를 원한다면 할당자를 전환하는 것이 좋습니다.
저는 Linux에서 LD_PRELOAD=`jemalloc-config --libdir`/libjemalloc.so.`jemalloc-config --revision
설정하여 jemalloc
사용합니다.