Coder Social home page Coder Social logo

Comments (11)

airballking avatar airballking commented on July 17, 2024

Thanks, @gaya- I'll look into it, tonight.

from roslisp.

airballking avatar airballking commented on July 17, 2024

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.

airballking avatar airballking commented on July 17, 2024

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) and uiop (some utilities)
  • split-string is part of uiop

from roslisp.

airballking avatar airballking commented on July 17, 2024

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.

gaya- avatar gaya- commented on July 17, 2024

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.

bbrieber avatar bbrieber commented on July 17, 2024

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.

airballking avatar airballking commented on July 17, 2024

@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.

gaya- avatar gaya- commented on July 17, 2024

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.

airballking avatar airballking commented on July 17, 2024

@gaya- Sure! I think a couple of days are no problem at all.

from roslisp.

gaya- avatar gaya- commented on July 17, 2024

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.

airballking avatar airballking commented on July 17, 2024

Done. @Gaya thanks for testing!

from roslisp.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.