Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
doc:ide-connections [2014/05/09 19:33] – created gkazhoyadoc:ide-connections [2015/04/27 19:05] (current) gkazhoya
Line 7: Line 7:
 == Emacs and SBCL and ASDF == == Emacs and SBCL and ASDF ==
  
-Emacs is completely written in Emacs Lisp (it is probably the most widely used piece of software written in Lisp). As it is, without any extensions, it is very well suitable for programming in Emacs Lisp, but not in Common Lisp, and there is no specific protocol to connect the ELisp of Emacs to CL of SBCL.+Emacs core (memory management etc.) is written in C++ and all the high-level features are in Emacs Lisp (it is probably the most widely used piece of software written in Lisp). As it is, without any extensions, it is very well suitable for programming in Emacs Lisp, but not in Common Lisp, and there is no specific protocol to connect the ELisp of Emacs to CL of SBCL.
  
 Emacs uses an initialization script written in ELisp (file extension ''.el'') to define how the software should look like, for setting up special key bindings etc. and, most importantly, which extra packages should be loaded for the particular user. Emacs uses an initialization script written in ELisp (file extension ''.el'') to define how the software should look like, for setting up special key bindings etc. and, most importantly, which extra packages should be loaded for the particular user.
Line 15: Line 15:
 == Emacs and ROS == == Emacs and ROS ==
  
-Second important Emacs extension is ''rosemacs.el'' which was developed in the ROS community to simplify the process of programming of ROS components. The most basic example usage of the extension would be starting roscore from inside Emacs (the default key binding is ''Ctrl-x Ctrl-r Ctrl-c''). Rosemacs communicates with the ROS ecosystem using OS process calls (i.e. starting a shell process from Emacs Lisp, e.g. starting the command line program ''roscore'' when the corresponding key combination is pressed) and has nothing to do with Common Lisp.+Second important Emacs extension is ''rosemacs.el'' which was developed in the ROS community to simplify the process of programming ROS packages. The most basic example usage of the extension would be starting roscore from inside Emacs (the default key binding is ''Ctrl-x Ctrl-r Ctrl-c''). Rosemacs communicates with the ROS ecosystem using OS process calls (i.e. starting a shell process from Emacs Lisp, e.g. starting the command line program ''roscore'' when the corresponding key combination is pressed). Rosemacs has nothing to do with Common Lisp.
  
 == Emacs and ROS and SBCL and ASDF == == Emacs and ROS and SBCL and ASDF ==
-And the third useful Emacs package is ''slime-ros.el'' which is an extension of Slime to utilize the useful features of ROS while programming in Common Lisp. The main feature is the ability of ROS to find the paths to the ROS packages on which a certain package is dependent. The CL build system doesn't really know where to search for the ASDF systems unless the paths are explicitly given to it (TODO: doublecheck), so rosemacs is used for finding those paths through the ROS infrastructure.+And the third useful Emacs library is ''slime-ros.el'' which is Slime plugin (in Emacs vocabulary plugins are called //contribs//) used to utilize handy features of ROS while developing ROS packages in Common Lisp. The main feature is the ability of ROS to find the paths to the ROS packages on which a particular ROS package is dependent. The CL build system searches for Lidp system definitions through the entries in the ASDF system registry (e.g., ''*central-registry* variable''), so Rosemacs is used for initializing the registry with paths of ROS packages. Those paths are retrieved using the ROS infrastructure such as ''rospack''.