Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
tools:cpm [2017-04-11 17:42] – [Installing the Curry Package Manager] mhtools:cpm [2017-10-21 11:35] mh
Line 4: Line 4:
  
 The Curry Package Manager (CPM) is a tool to distribute and The Curry Package Manager (CPM) is a tool to distribute and
-install Curry libraries and tools and manage version dependencies+install Curry libraries and applications and manage version dependencies
 between them. between them.
 These libraries are organized in packages. These libraries are organized in packages.
Line 19: Line 19:
 (w.r.t. its API and behavior) with a previous version of (w.r.t. its API and behavior) with a previous version of
 the same package. the same package.
 +
 +===== Available Packages =====
 +
 +There are more than [[http://www.informatik.uni-kiel.de/~mh/curry/cpm/ | sixty packages available]]
 +(including more than 400 modules).
 +There is a [[http://www.informatik.uni-kiel.de/~mh/curry/cpm/ | table of all packages]]
 +with more detailed information (e.g., API documentation).
 +These packages can immediately be downloaded or installed when CPM is installed (see below).
  
  
 ===== Installing the Curry Package Manager ===== ===== Installing the Curry Package Manager =====
  
-CPM is already part of recent distribution of the Curry systems +CPM is already part of recent distributions of the Curry systems 
-PAKCS (Version 1.14.or higher) and KiCS2 (Version 0.5.or higher).+[[http://www.informatik.uni-kiel.de/~pakcs/|PAKCS]] (Version 1.15.or higher) and 
 +[[http://www-ps.informatik.uni-kiel.de/kics2/|KiCS2]] (Version 0.6.or higher).
 If you have some older version of PAKCS or KiCS2, you can also If you have some older version of PAKCS or KiCS2, you can also
 install CPM from its public repository. install CPM from its public repository.
Line 38: Line 47:
     3> make     3> make
  
-If this was successful, the binary ''cpm'' has been generated in the+If this was successful, the binary ''cypm'' has been generated in the
 directory ''~/.cpm/bin''. This is also the directory where CPM installs binaries directory ''~/.cpm/bin''. This is also the directory where CPM installs binaries
-of tools distributed with packages. For convenient use, you should add the+of applications distributed as packages. For convenient use, you should add the
 directory ''~/.cpm/bin'' to your path. Alternatively, you can also put directory ''~/.cpm/bin'' to your path. Alternatively, you can also put
-the binary ''~/.cpm/bin/cpm'' somewhere in your path or create a symbolic+the binary ''~/.cpm/bin/cypm'' somewhere in your path or create a symbolic
 link from some path directory to this binary. link from some path directory to this binary.
  
Line 49: Line 58:
 Now you can clone a copy of the central package index repository by Now you can clone a copy of the central package index repository by
  
-    > cpm update+    > cypm update
  
 Afterwards, you can show a short list of all packages in this index by Afterwards, you can show a short list of all packages in this index by
  
-    > cpm list+    > cypm list
  
 The command The command
  
-    > cpm info PACKAGE+    > cypm info PACKAGE
  
 can be used to show more information about a package. can be used to show more information about a package.
Line 66: Line 75:
 Therefore, to initialize it and use other packages, you need Therefore, to initialize it and use other packages, you need
 a package description file in some project directory. a package description file in some project directory.
-All this can be created by the command ''cpm new'' and answering +All this can be created by the command ''cpm new'':
-some questions:+
  
-    > cpm new +    > cypm new myproject
-    Create a new package +
-    -------------------- +
-    What is the name of the new package? myproject +
-    What is the first version of the package? [0.0.1]  +
-    Who is the author of the package? Joe Curry <joe@curry.com> +
-    Please provide a short (one line) summary of what the package does: +
-    > This is just for testing. +
-    A new package in the directory 'myproject' has been created. +
-    Please go into this directory, add dependencies in 'package.json', +
-    and run 'cpm install' to install all dependencies.+
  
-As you will see, an initial package description file ''package.json'' +This command creates a new project directory ''myproject'' 
-and a subdirectory ''src'' has been created. If you need some other package +containing an initial package description file ''package.json'' 
-for your project, add it as a dependency in ''package.json''.+and a subdirectory ''src'' (together with other template files). 
 +If you need some other package for your project, 
 +add it as a dependency in ''package.json''.
 Then run Then run
  
-    > cpm install+    > cypm install
  
 to install all dependencies of the current package. to install all dependencies of the current package.
 Afterwards, start your interactive Curry environment by Afterwards, start your interactive Curry environment by
  
-    > cpm curry+    > cypm curry
  
 and you will be able to load the modules of the current package and you will be able to load the modules of the current package
Line 98: Line 98:
 so that you can directly load any program you have stored so that you can directly load any program you have stored
 in this directory. in this directory.
 +For instance, if the module ''Main.curry'' is stored in the
 +directory ''src'', you can load it into your Curry system
 +(e.g., KiCS2 or PAKCS) by
 +
 +    > cypm curry :load Main
  
 ===== Manual and Further Documentation ===== ===== Manual and Further Documentation =====
Line 113: Line 118:
 However, if you have developed some package that might be of However, if you have developed some package that might be of
 interest to other Curry users, please send the package interest to other Curry users, please send the package
-as a zip file, or just the package description file +as a tar or zip file to
-''package.json'' (if the package is already in a publicly +
-available git archive) to+
  
     packages (AT) curry-language.org     packages (AT) curry-language.org
/srv/dokuwiki/currywiki/data/pages/tools/cpm.txt · Last modified: 2020-03-14 18:06 by mh
Back to top
CC Attribution-Noncommercial-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0