Opracowany przez | Projekt GNU |
---|---|
Pierwsza wersja | 1997 |
Ostatnia wersja |
2.2.7 (7 marca 2020 r) 3.0.5 (7 stycznia 2021 r) |
Kaucja | git.savannah.gnu.org/cgit/guile.git |
Napisane w | VS |
Berło | Ncurses |
System operacyjny | GNU / Linux , BSD ( d ) i Microsoft Windows |
Środowisko | GNU , GNU / Linux |
Rodzaj | Język programowania |
Licencja | GNU LGPL |
Dokumentacja | www.gnu.org/software/guile/manual |
Stronie internetowej | (en) Oficjalna strona |
Guile ( GNU Ubiquitous Intelligent Language for Extensions ) jest interpretatorem języka programowania Scheme opracowanego w ramach Projektu GNU, aby służyć jako oficjalny język rozszerzeń systemu operacyjnego GNU .
W 1994 roku Richard Stallman przedstawił swoje pomysły na zaprojektowanie języka rozszerzeń dla Projektu GNU. Jednym z głównych pomysłów było to, że użytkownicy powinni mieć wybór języka programowania. Głównym rozważanym językiem był wariant Schematu, ale inne języki mogły być obsługiwane przez tłumaczy.
Tom Lord od razu przystąpił do pracy nad projektem. W 1995 roku udostępniono dwie pierwsze działające wersje. Firma Cygnus Support dodała wiele funkcji i wyjęła własne wersje Cygnus Guile r0.3 i R0.4. Pierwsza oficjalna wersja Projektu GNU ukazała się w 1997 roku.
Projekt jest w szczególności utrzymywany przez Andy'ego Wingo .
Guile może być używany jako klasyczny interpreter schematu. Ale został zaprojektowany od początku do być zintegrowane jako język rozszerzenia w programach napisanych w języku C .
Guile obsługuje wiele rozszerzeń języka Scheme , a także różne moduły systemowe, programowanie sieciowe i wielowątkowość .
Działa jako interpreter lub jako kompilator schematu kodu bajtowego na maszynie wirtualnej .
Guile 2.0 kompiluje kod schematu do kodu bajtowego , który jest następnie interpretowany przez maszynę wirtualną. Daje to zauważalną poprawę wydajności w porównaniu ze starszymi wersjami Guile.
Kod źródłowy jest domyślnie automatycznie kompilowany po znalezieniu, bez ręcznej interwencji. Jednak polecenie kompilacji guile-tools zapewnia interfejs wiersza poleceń oraz procedury schematu do zarządzania kompilatorem.
Oprócz Scheme, kompilator zawiera interfejs dla języków ECMAScript i Emacs Lisp .
Nowa REPL (in) jest dostępna od wersji 2.0 z funkcjami upraszczającymi tego typu interaktywne programowanie. REPL jest również wyposażony w możliwości debugowania .
Wersja | Data wydania | Główne zmiany |
---|---|---|
2.0.3 | 22 października 2011 |
|
2.0.2 | 2 lipca 2011 |
|
2.0.1 | 27 kwietnia 2011 |
|
2.0.0 | 16 lutego 2011 |
Guile jest oficjalnym językiem rozszerzenia Projektu GNU. Tom Tromey, opiekun projektu GNU Debugger , ogłosił jednak swoje wycofanie się z GDB 8 października 2010, preferując Python jako jedyny język rozszerzeń.
Używanie Guile w aplikacji umożliwia programistom pisanie wtyczek i pozwala użytkownikom mieć aplikację, która lepiej odpowiada ich potrzebom.
W rzeczywistości Guile można zintegrować z oprogramowaniem stron trzecich w postaci biblioteki oprogramowania, której interfejs zapewnia im funkcje języka Scheme i powiązanych modułów. Guile jest zatem używany jako język rozszerzający w wielu aplikacjach, w tym Gimp , Anubis , GnuCash , LilyPond , MDK , Robots , Serveez , TeXmacs czy Scwm
Hakerzy z projektu GNU Guile pracują również od 2010 roku nad całkowitą migracją z GNU Emacs do Guile, Emacs Lisp jest obecnie wdrażany przez Guile.
Guile-Ncurses to implementacja Ncurses umożliwiająca tworzenie tekstowych interfejsów w języku Scheme / Guile. Daje interpreterowi Scheme GNU Guile możliwość interakcji przy wprowadzaniu znaków w trybie tekstowym środowiska , niezależnie od terminala . Jest to pakiet bazowych bibliotek Ncurses . Ten projekt, którego pierwsza stabilna wersja pochodzi z 2010 roku, jest nadal utrzymywany przez tzw. Mike'a Grana, jego twórcę.
Istnieje wiele projektów peryferyjnych niezależnych od Projektu GNU, ale poświęconych GNU Guile w formie modułów , między innymi: