Comments (11)
Thanks, @gaya- I'll look into it, tonight.
from roslisp.
I had a look at the code, but am not 100% sure (from reading) whether split-string is actually necessary functionality for us. Right now, I don't have roslisp_repl installed on my 14.04 system. I will experiment with this on my 12.04 system with printouts on Monday morning.
from roslisp.
I'm further digging into this. First observations:
load-manifest
is indeed calling(asdf:initialize-source-registry ...)
asdf3
is split into two packages which are released together:asdf/defsystem
(asdf itself) anduiop
(some utilities)split-string
is part ofuiop
from roslisp.
I attempted a first fix. You can find it here: airballking/roslisp@c980434
With this in place, load-manifest
still works for me under Ubuntu 12.04 with ROS Hydro. @gaya- could you please check whether it also works under Ubuntu 14.04 with ROS Indigo? Thank you.
from roslisp.
The fix looks good. I like your check for ASDF version. In some slime code I have seen a compile-time version of this checks (e.g. https://github.com/slime/slime/blob/master/contrib/swank-asdf.lisp#L56), which could be even more efficient.
On a more global scale, it looks like load-manifest
is one big mess. The most clean (and most time consuming...) solution would be, IMO, to rewrite load-manifest
(at least some functions of it) and the rest of roslisp that works with paths and code compilation / building in such a way that would have clean implementations for all the different versions of ASDF (maybe not ASDF 1, it is really old after all). Something like:
#+asdf1
(defun some-function ...)
#+asdf2
(defun some-function ...)
#+asdf3
(defun some-function ...)
The thing that bothers me the most is the way roslisp works with the ASDF source registry. It uses the interface from ASDF 1 (asdf:*central-registry*
) which was reimplemented much nicer in the newer versions. I haven't looked into this that closely though, so I might be wrong...
In addition to that, if there really is much code that actually isn't used at all on modern platforms with modern ROS versions, it would be nice to either completely get rid of it, or deprecate it, or label it with #+asdf1
or something similar.
@moesenle, you seem to be the only person who has a comprehensive knowledge about what's happening in load-manifest
. Could you, please, give us some input on this?
from roslisp.
I tested your fix and seems to work.
I was able to load cram packages in indigo.
I have not tested more complex stuff because I don't have my projects ported to indigo yet but it looks very promising...
from roslisp.
@bbrieber thanks for taking a look at this. If this fix makes roslisp usable with the new ASDF, I'd vote for sticking with the fix for the time being.
@gaya- I suggest we postpone cleaning up load-manifest
until after the ICRA submission deadline in autumn. What do you think?
from roslisp.
Agreed! Things turned out much simpler than I expected.
If I could just have another 24 hours to test it with more complex packages that include C++ code and a foreign function interface, that'd be great.
from roslisp.
@gaya- Sure! I think a couple of days are no problem at all.
from roslisp.
Ok, I tested it on more complex projects, works well. I do get linkage errors from CFFI on really complex rosbuild packages but I'm pretty certain it has nothing to do with roslisp. Let's merge the fix.
from roslisp.
Done. @Gaya thanks for testing!
from roslisp.
Related Issues (20)
- start-ros-node not taking $ROS_IP into account HOT 9
- Subscription and publication to same topic from one node crashes.
- Move from SBCL HOT 16
- Topic remapping not working HOT 1
- ros-time gives different timestamp than rosccp's ros::Time::now HOT 8
- Compiling Lisp code through catkin. HOT 1
- add_lisp_executable fails if bin dir is not deployed HOT 3
- Add a nicer structure for param namespaces
- Problem with installation on Mac OS El Capitan HOT 7
- When starting a new node ensure that no dashes are used in the name HOT 2
- MAKE-MESSAGE also accepting symbols for specifying message type HOT 4
- bug in loop-at-most-every HOT 5
- Warning in doc jobs HOT 17
- Error loading roslisp on newer SBCL versions HOT 3
- [noetic] Uses python on Buster when ROS_PYTHON_VERSION is 3 HOT 5
- Noetic Release? HOT 4
- Nodelets for zero-copy message passing between nodes
- rosilisp serialisation may not warn
- roslisp: avoid /bin/bash
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from roslisp.