Comments (1)
Changed 15 months ago by bhaskara
I see the problem but don't understand your solution. Can you give an example of the specific paths that would be used?
Changed 15 months ago by kruset
Fasls for ROS package /opt/ros/electric/stacks/common_msgs/geometry_msgs would go into ~/.ros/roslisp/opt/ros/electric/stacks/common_msgs/geometry_msgs
/opt/ros/diamondback/stacks/common_msgs/geometry_msgs would go into ~/.ros/roslisp/opt/ros/diamondback/stacks/common_msgs/geometry_msgs
/home/username/work/ros/sandbox/common_msgs/geometry_msgs would go into ~/.ros/roslisp/home/username/work/ros/sandbox/common_msgs/geometry_msgs
Changed 15 months ago by kruset
Hm, actually this still does not quite help. When switching between electric and diamondback the fasls at
~/.ros/roslisp/home/username/work/ros/sandbox/common_msgs/geometry_msgs
could still conflict. So it would be even better to combine ROS_ROOT and path/to/file. That still leaves ambiguity for manually switching sbcl versions, so if we can also encode sbcl version, even better. Like: ~/.ros/roslisp/geometry_msgs/opt/ros/electric/sbcl-1.0.50/home/username/work/ros/sandbox/common_msgs/geometry_msgs The path could be somewhat reduced without too much risk by replacing "/opt/ros/electric" with just "electric" and starting at ~ for local files.
e.g. ~/.ros/roslisp/geometry_msgs/electric/sbcl-1.0.50/work/ros/sandbox/common_msgs/geometry_msgs
better ideas?
Changed 15 months ago by moesenle
Actually, I don't see that as an issue. Using the same package with different ROS distros at the same time is always a bad idea and you can run into all different kinds of inconsistencies not only with roslisp. Normally, I think users have one checkout per distro and not one checkout for all distros.
I think we shouldn't complicate this too much and try to find the minimal working solution. Just using $ROS_HOME/roslisp/ is fine and the corresponding patch should be pretty straight forward. Also, encoding the sbcl version shouldn't really be necessary since we catch the 'incompatible fasl' error and trigger recompilation in that case anyway.
To summarize, the only case where I see problems are lisp packages that lie in /opt/ros, mostly messages. When the user uses multiple distros at the same time, we either need to have the fasls at distinct locations or make sure that they are recompiled whenever the distro is switched. Currently, we (I guess) sort of implement the latter case. This might lead to lot's of unnecessary compilations and depending on asdf might even cause problems when the file dates don't indicate that recompilation is necessary. That means we actually want the former case implemented.
I will have a look at the source code and see if I can provide a quick patch as soon as I find some time.
Changed 11 months ago by kruset
Given similar issues with rosjava, I suggested a solution of either making rosinstall set a different ROS_HOME for each distro/rosinstall location, or a new ros env variable for binaries that rosinstall would set, leaving ROS_HOME fixed for non-conflicting data.
from roslisp.
Related Issues (20)
- rosilisp serialisation may not warn
- roslisp: avoid /bin/bash
- 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
- Broken on Trusty (because of ASDF 3) HOT 11
- 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
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.