freenode/#abcl - IRC Chatlog
Search
16:19:46
etimmons
Actually, I'm rethinking my decision to not include Maven (and gcc) in the ABCL image.
16:20:11
etimmons
But the use of CFFI is common enough that having an image that "just works" in those cases is probably worth it.
16:20:23
etimmons
It seems many images have a "slim" variant that goes out of its way to make the image as small as possible.
16:20:45
etimmons
Maybe that's something worth adopting for people that really care about size/controlling exactly what goes into the deployed image.
16:20:55
alandipert
easye thanks for migrating that servlet example, i've been looking around for something like that
16:25:25
etimmons
Problem is that sliming can't (easily) be done when starting from a bigger image since new layers are just appended on to the older layers
16:26:40
etimmons
As a concrete example, python's non-slim images build off of buildpack-deps which includes gcc and many common headers.
16:28:00
etimmons
So I'm leaning toward making more user-friendly, "sloppy" images the default and if someone really wants a smaller image, we can just use the current Dockerfiles to build a slim variant
16:30:58
etimmons
In that world view it makes sense to also include Quicklisp, but annoyingly Quicklisp does not lend itself well to Dockerization (primarily no system-wide install option)
16:31:27
etimmons
So I might settle for including something like quicklisp-abcl in the other CL images to make installign it extra painless
16:33:18
easye
It needs a network http/https request which is available in ABCL via URL-PATHNAME working with CL:OPEN.
16:33:40
easye
I suppose for other implementations one could shell out via UIOP/RUN-PROGRAM to wget/curl.
16:34:39
easye
The code might not be super-complicated. But it would be somewhat wonky under certain corner cases, like Windows.
16:36:01
easye
As an alternative for Docker, one could just include <file:~/quicklisp/setup.lisp> in the image, and run that.
16:36:22
etimmons
IIRC, most Windows installs these days have a curl executable. It has some wonky corner cases, but nothing I can recall that would affect this
16:37:40
alandipert
when i was using docker for clojure we ended up making our own dockerfiles and stuff, but the variety of publicly documented approaches was valuable to learn what the options and tradeoffs are
16:38:52
alandipert
considering abcl distribution incurs the subtleties of potentially both quicklisp and maven, seems like documenting various approaches might be more useful to folks than necessarily picking/promoting one
16:39:46
alandipert
but i'm grateful for any momentum behind dockerizing abcl, so thanks for your efforts etimmons!
16:40:00
easye
I'm certainly guilty about not implementing the right restart magic for installing Maven. It would make things a lot easier for people.
16:40:20
easye
But every time I go to implement it "for real", I get distracted by some greater bug.
16:40:44
etimmons
Yeah, there's a ton of resources out there for Dockerfile options, they've been super helpful over the years
16:41:24
easye
Or at least "greater bug" for me. Not having easy access to CFFI probably mystifies a lot of people.
16:42:36
etimmons
My images that I'm starting from tend to all be slim for a variety of reasons, primarily because they're more customizable, less likely to get woefully out of date, and I have some situations where minimizing size is very nice
16:43:07
alandipert
etimmons i'm curious to know what you're using abcl for if you don't mind sharing. i hope to sneak it into work someday, personally
16:43:11
etimmons
But I think having a fat default, slim option, and documentation on how to fatten up an image in a variety of ways is probably a good tradeoff
16:44:07
alandipert
easye those of us coming from Java are probably more mystified by the presence of CFFI than of its omission x-)
16:45:00
alandipert
( to be fair JNA in particular receives deserved (imo) positive attention in certain circles)
16:45:34
easye
I actually think if you ignore the startup time, distributing an abcl-aio.jar with dynamic libs could be quite helpful in certain distribution scenarios.
16:45:39
etimmons
alandipert: I'll be 100% honest, I normally use ABCL to test that my code is portable. For most of my work, speed is the crucial factor so I typically end up with SBCL
16:48:52
etimmons
I'm a grad student. My primary product is execution frameworks for autonomous vehicles. Sometimes those get wrapped up in web services, but more frequently they're deployed standalone or as part of ROS (Robotic Operating System)
16:49:53
etimmons
Lately I've been doing a decent amount of mission planning for underwater vehicles and we're currently in the midst of a big push to put more reasoning in the vehicles themselves (on Raspberry Pi class computers)
16:52:14
etimmons
ROS-1 is definitely not real-time, but IIRC, ROS-2 is trying to add more real-time guarantees. ROS-2 is mostly used in industry these days while most academics I'm aware of are sticking with ROS-1 because it is vastly simpler
16:55:37
alandipert
is the JVM a player in the world of robotics? i have the perception that recent emphasis on jvm for server use has de-emphasized embedded/resource constrained applications
16:58:34
etimmons
I'm honestly not sure these days. A lot of stuff I used in courses years ago we're all Java based, but lately I've only really seen C++ and Python
16:59:08
etimmons
Probably doesn't help that my corner of the world has narrowed in on ROS which has C++, Python, and (SB)CL as first class languages