FAQ: Difference between revisions

631 bytes added ,  11 April 2016
Add note on how to load package at startup and how to load all packages
(→‎What features are unique to Octave?: Add broadcasting information)
(Add note on how to load package at startup and how to load all packages)
Line 354: Line 354:
Yes, but development is done primarily with GCC, so you may hit some incompatibilities. Octave is intended to be portable to any standard conforming compiler. If you have difficulties that you think are bugs, please report them to the http://bugs.octave.org bug tracker, or ask for help on the [mailto:help@octave.org mailing list].
Yes, but development is done primarily with GCC, so you may hit some incompatibilities. Octave is intended to be portable to any standard conforming compiler. If you have difficulties that you think are bugs, please report them to the http://bugs.octave.org bug tracker, or ask for help on the [mailto:help@octave.org mailing list].


== How do I install ''all'' Octave packages? ==
== How do install or load all Octave packages? ==
Do not do it! Really, there is no reason to do this. Octave Forge has many packages for different needs but it's unlikely that you need all of them. The common misconception is that the more packages one installs, the more complete and powerful its octave installation will be. However, in the same way one would ''never'' install all perl modules, ruby gems or python packages (because it simply makes no sense), one should not install all octave packages. This isn't desirable and it's not even possible.


Packages should be installed and loaded selectively. Note that some packages are meant to shadow core functions changing the way Octave works, and different packages can have different implementations of a function with the same name, leading to unpredictable results. Others are just broken or crappy and will break your system. What's worse, some of the packages are even loaded automatically at startup so you may be screwing your octave installation without even realizing it.
Do not do it!  Really, there is no reason to do this.  Octave has many
packages for different needs and is unlikely that you need all of
them.  You either have a small set of required packages, in which case
you know them by name; or you want them all "just because", in which case
you don't really need them.
 
The common misconception is that the more packages one has installed
and loaded, the more complete and powerful its Octave installation will be.
However, in the same way one would never install all perl modules,
ruby gems, python packages, and C++ libraries (because it simply makes
no sense), one should not install all Octave packages.
 
Packages should be installed and loaded selectively. Note that some
packages are meant to shadow core functions changing the way Octave works,
and that different packages can have different functions with the same name
leading to unpredictable results.
 
If you really really really want to do load all packages, you can with
the following:
 
## WARNING: loading all packages is probably not the solution you are looking for.
cellfun (@(x) pkg ("load", x.name), pkg ("list"));
 
 
== How do I automatically load a package at Octave startup? ==
 
When Octave starts, it runs {{Path|~/.octaverc}}.  If you want Octave to
automatically load a package, simply add a {{codeline|pkg load pkg-name}}
command to it.  If the files does not exist, create it.
 
If you do this, remember that other people may not have Octave configured
to load packages at startup.  Therefore, if you write code for others,
remember that your programs still need to load the packages they require.


=Coding=
=Coding=