[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
50/65: gnu: Add parenscript.
From: |
Pierre Neidhardt |
Subject: |
50/65: gnu: Add parenscript. |
Date: |
Fri, 19 Oct 2018 11:59:50 -0400 (EDT) |
ambrevar pushed a commit to branch master
in repository guix.
commit 4624d2e2b446d7b2ad663e6cd377314cefe0776d
Author: Pierre Neidhardt <address@hidden>
Date: Fri Oct 5 16:14:30 2018 +0200
gnu: Add parenscript.
* gnu/packages/lisp.scm (cl-parenscript, ecl-parenscript,
sbcl-parenscript): New variables.
---
gnu/packages/lisp.scm | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 60 insertions(+)
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index c83348d..1315edc 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -3068,3 +3068,63 @@ package.")
"The @command{cl-sqlite} package is an interface to the SQLite embedded
relational database engine.")
(license license:public-domain))))
+
+(define-public sbcl-parenscript
+ (let ((commit "061d8e286c81c3f45c84fb2b11ee7d83f590a8f8"))
+ (package
+ (name "sbcl-parenscript")
+ (version (git-version "2.6" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.common-lisp.net/parenscript/parenscript")
+ (commit commit)))
+ (file-name (git-file-name "parenscript" version))
+ (sha256
+ (base32
+ "1kbhgsjbikc73m5cwdp4d4fdafyqcr1b7b630qjrziql0nh6mi3k"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("cl-ppcre" ,sbcl-cl-ppcre)
+ ("anaphora" ,sbcl-anaphora)
+ ("named-readtables" ,sbcl-named-readtables)))
+ (home-page "https://common-lisp.net/project/parenscript/")
+ (synopsis "Translator from a subset of Common Lisp to JavaScript")
+ (description
+ "Parenscript is a translator from an extended subset of Common Lisp to
+JavaScript. Parenscript code can run almost identically on both the
+browser (as JavaScript) and server (as Common Lisp).
+
+Parenscript code is treated the same way as Common Lisp code, making the full
+power of Lisp macros available for JavaScript. This provides a web
+development environment that is unmatched in its ability to reduce code
+duplication and provide advanced meta-programming facilities to web
+developers.
+
+At the same time, Parenscript is different from almost all other \"language
+X\" to JavaScript translators in that it imposes almost no overhead:
+
address@hidden
address@hidden No run-time dependencies: Any piece of Parenscript code is
runnable
+as-is. There are no JavaScript files to include.
address@hidden Native types: Parenscript works entirely with native JavaScript
data
+types. There are no new types introduced, and object prototypes are not
+touched.
address@hidden Native calling convention: Any JavaScript code can be called
without the
+need for bindings. Likewise, Parenscript can be used to make efficient,
+self-contained JavaScript libraries.
address@hidden Readable code: Parenscript generates concise, formatted,
idiomatic
+JavaScript code. Identifier names are preserved. This enables seamless
+debugging in tools like Firebug.
address@hidden Efficiency: Parenscript introduces minimal overhead for advanced
Common
+Lisp features. The generated code is almost as fast as hand-written
+JavaScript.
address@hidden itemize\n")
+ (license license:bsd-3))))
+
+(define-public cl-parenscript
+ (sbcl-package->cl-source-package sbcl-parenscript))
+
+(define-public ecl-parenscript
+ (sbcl-package->ecl-package sbcl-parenscript))
- 32/65: gnu: Add prove-asdf., (continued)
- 32/65: gnu: Add prove-asdf., Pierre Neidhardt, 2018/10/19
- 35/65: gnu: Add parse-float., Pierre Neidhardt, 2018/10/19
- 27/65: gnu: Add anaphora., Pierre Neidhardt, 2018/10/19
- 28/65: gnu: Add lift., Pierre Neidhardt, 2018/10/19
- 18/65: gnu: Add nibbles., Pierre Neidhardt, 2018/10/19
- 26/65: gnu: Add lisp-unit., Pierre Neidhardt, 2018/10/19
- 37/65: gnu: Add ptester., Pierre Neidhardt, 2018/10/19
- 49/65: gnu: Add sbcl-cl-sqlite., Pierre Neidhardt, 2018/10/19
- 31/65: gnu: Add cl-ansi-text., Pierre Neidhardt, 2018/10/19
- 48/65: gnu: Add sbcl-cffi., Pierre Neidhardt, 2018/10/19
- 50/65: gnu: Add parenscript.,
Pierre Neidhardt <=
- 45/65: gnu: Add sbcl-cffi-toolchain., Pierre Neidhardt, 2018/10/19
- 36/65: gnu: Add simple-scanf., Pierre Neidhardt, 2018/10/19
- 65/65: gnu: Add lparallel., Pierre Neidhardt, 2018/10/19
- 43/65: gnu: Add queues.priority-cqueue., Pierre Neidhardt, 2018/10/19
- 38/65: gnu: Add puri., Pierre Neidhardt, 2018/10/19
- 44/65: gnu: Add sbcl-cffi-bootstrap., Pierre Neidhardt, 2018/10/19
- 59/65: gnu: Add sbcl-cl-cffi-gtk-cairo., Pierre Neidhardt, 2018/10/19
- 64/65: gnu: Add sbcl-cl-webkit., Pierre Neidhardt, 2018/10/19
- 46/65: gnu: Add sbcl-cffi-libffi., Pierre Neidhardt, 2018/10/19
- 55/65: gnu: Add sbcl-cl-cffi-gtk., Pierre Neidhardt, 2018/10/19