cl-autowrap
milewski-ctfp-pdf
cl-autowrap | milewski-ctfp-pdf | |
---|---|---|
8 | 75 | |
208 | 10,758 | |
- | - | |
1.5 | 5.3 | |
15 days ago | 15 days ago | |
Python | TeX | |
BSD 2-clause "Simplified" License | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
cl-autowrap
-
Why Is Common Lisp Not the Most Popular Programming Language?
> Lack of access to the C libraries.
???
I recently started learning Common Lisp for fun (and fun it is!) and the ease of accessing C libraries was one of the things that surprised me in a positive way.
Using https://github.com/rpav/cl-autowrap one can simply write (c-include "file.h") and the API defined in "file.h" is accessible from Lisp. I can't think of a simpler way.
Even without cl-autowrap, FFI using https://cffi.common-lisp.dev/ seems simple enough.
-
An Idea for Piggybacking Python (language) ecosystem
I think the closest is cl-autowrap. I can imagine a higher level wrapper around it by which it can translate the python header file into the CL counterpart, although I'm not sure how much work the translation might entail. Also, because python and lisp semantics can differ considerably, the generated code might be trying to do weird things - again an issue of translation.
-
Why Functional Programming Should Be the Future of Software
Common lisp has a "pretty OK" story for calling C code whenever some speed is needed [0,1]. In my opinion, they suffer from some of the documentation/quick start problems that common lisp has, but they're otherwise usable.
Some of Naughty Dog's late 90's/early 2000's games (Jak and Daxter, Jak II) were written in a lisp called GOAL, Game Oriented Assembly Lisp [2]
[0] https://github.com/rpav/cl-autowrap
-
Common Lisp language extensions wish list?
The closest thing to what you request, that I'm aware of, is cl-autowrap (to use C code from Lisp) but it is not standard in any way. CFFI is the de facto standard for using C from Lisp across different implementations.
-
I have bolted together ECL and the Irrlicht game library
:claw tracks back to 2017 as a fork of cl-autowrap with cl-autowrap/pull/83 feature.
-
Common Lisp
If you're interested in FFI, then yeah CFFI is the standard. The other comments addressed speed, I also wanted to point out https://github.com/rpav/cl-autowrap which is built on top of CFFI and can help get a wrapper up and running faster. After using autowrap's c-include you can then use CFFI basically like normal or some useful autowrap/plus-c's helper functions -- e.g. in one project, I have an SDL_Event (https://wiki.libsdl.org/SDL_Event) and to access event.key.keysym.scancode I have a helper function that's just (plus-c:c-ref event sdl2-ffi:sdl-event :key :keysym :scancode). Last year I wanted to try out using FMOD, and even though it's closed source and has a (to me) "interesting" API things worked easily: https://gist.github.com/Jach/dc2ec7b9402d0ec5836a935384cacdc... More work would be needed to make a nice wrapper, type things more fully, etc. but depending on the C library you might find someone's already done that (or made a start) and made it available from quicklisp.
-
[Common Lisp] Best Libraries for Interfacing with UNIX-like Operating Systems?
In recent years there has also been cl-autowrap; caveats -
-
Alternative to ECL?
There is the cl-autowrap that can generate lisp packages from C header filesc- I am unsure if it sticks to ANSI C or goes beyond. It inturn depends on c2ffi for the first time around.
milewski-ctfp-pdf
-
reflect-cpp - Now with compile time extraction of field names from structs and enums using C++-20.
Category Theory for Programmers by Bartosz Milewski (https://github.com/hmemcpy/milewski-ctfp-pdf/releases)
-
Category Theory for Programming
Strangely similar name to the well-known 'Category Theory for Programmers'
https://github.com/hmemcpy/milewski-ctfp-pdf
-
Polynomial Functors: A Mathematical Theory of Interaction [pdf]
There's this, but the programmer doesn't have to be working:
https://bartoszmilewski.com/2014/10/28/category-theory-for-p...
- Monads vs Classes
- 今天看到的,是真的离谱。
-
Reading recomendations on Category Theory
Milewski's "Category Theory for Programmers".
- Ask HN: Math for Programmers?
- [Math] Category Theory for Programmers
-
Some math topics get mentioned a bunch in functional programming articles and forums. Which ones have ever actually helped you in writing your programs?
(3) category theory. I was never advised to read any, but found that bartosz's introduction really good. https://bartoszmilewski.com/2014/10/28/category-theory-for-programmers-the-preface/. Helps to rewire the brain.
-
what is the relation of a class in programming and category theory?
It's also possible to model programming languages using category theory, but I know less about that. If you're interested in following this up, then Benjamin Pierce has what I'm told is a good introduction to category theory for computer scientists, and Bartosz Milweski has an online book (it might be available in hard copy as well, I'm not sure) called Category Theory for Programmers. I believe simple programming languages like the simply typed lambda calculus end up being modelled as Cartesian closed categories.
What are some alternatives?
c2ffi - Clang-based FFI wrapper generator
semantic-source - Parsing, analyzing, and comparing source code across many languages
cffi - The Common Foreign Function Interface
web-dev-golang-anti-textbook - Learn how to write webapps without a framework in Go.
chibi-scheme - Official chibi-scheme repository
paip-lisp - Lisp code for the textbook "Paradigms of Artificial Intelligence Programming"
cl-rashell - Resilient replicant Shell Programming Library for Common Lisp
practicing-ruby-manuscripts - Collection of source manuscripts for publicly released Practicing Ruby articles
mal - mal - Make a Lisp
owasp-masvs - The OWASP MASVS (Mobile Application Security Verification Standard) is the industry standard for mobile app security.
claw - Common Lisp autowrapping facility for C and C++ libraries
Yup - Dead simple Object schema validation