Changeset 14260 in project


Ignore:
Timestamp:
04/15/09 11:10:52 (11 years ago)
Author:
felix winkelmann
Message:

updates for chicken 4

Location:
wiki
Files:
1 deleted
8 edited

Legend:

Unmodified
Added
Removed
  • wiki/SRFI-conformance

    r9530 r14260  
    88; builtin : the SRFI is provided in the basic Chicken system.
    99; library : the SRFI  is provided with the basic Chicken system, but a {{(use ...)}} must be performed in order to access it.
    10 ; ''{{egg-name}}'' : the SRFI is provided in a separate egg, which can be downloaded via {{chicken-setup}}.
     10; ''{{egg-name}}'' : the SRFI is provided in a separate egg, which can be downloaded via {{chicken-install}}.
    1111; NA : the SRFI is not presently available for Chicken. (This doesn't necessarily mean that the SRFI ''can't'' be implemented, only that it hasn't been so far.)
    1212
  • wiki/bash completion

    r2859 r14260  
    66
    77Currently, only {{chicken-setup}} is supported. Hopefully csi and csc will follow.
     8
     9Chicken 4 is currently not supported.
    810
    911=== Use
  • wiki/chicken-for-ruby-programmers

    r14113 r14260  
    801801install an egg almost like you install a gem, as follows:
    802802
    803   $ chicken-setup runcmd
    804 
    805 This downloads and installs the egg with the name "runcmd".  This
     803  $ chicken-install matchable
     804
     805This downloads and installs the egg with the name "matchable".  This
    806806egg has no dependencies, but if it did it would have downloaded and
    807807installed them as well.
  • wiki/chicken-hackers-guide

    r9437 r14260  
    3232There are several versions that identify a particular chicken installation:
    3333
    34 * the "major version" (i.e. {{3}} in {{3.0.0}}) - this version identifies which set of eggs is available from [[http://www.call-with-current-continuation.org]] via {{chicken-setup}}.
     34* the "major version" (i.e. {{3}} in {{3.0.0}}) - this version identifies which set of eggs is available via {{chicken-install}}.
    3535* the subversion revision number - it is calculated via a script ({{svnrevision.sh}} durng the build.
    3636* the "binary compatibility version" - the egg-repository for an installation is specific to that (eggs are installed in {{PREFIX/lib/chicken/<binaryversion>/}}), changing this version means all eggs have to be re-installed and are not binary compatible to previous chicken versions.
  • wiki/deploying cocoa applications

    r1160 r14260  
    6262* Runtime libraries: {{libchicken.0.dylib}} {{libffi.4.dylib}}, usually located in {{/usr/lib}}, or wherever you have installed them.
    6363
    64 * Extensions: {{objc-class-proxies-bin.so}} {{objc-class-proxies.so}} {{objc-support.so}} {{cocoa.so}}, located in your repository-path (run {{chicken-setup -repository}} to find it).
     64* Extensions: {{objc-class-proxies-bin.so}} {{objc-class-proxies.so}} {{objc-support.so}} {{cocoa.so}}, located in your repository-path (run {{csi -p "(repository-path)"}} to find it).
    6565
    6666Now you application is complete - the whole Temperature Converter.app bundle can be moved to a machine that doesn't have CHICKEN or the objc egg installed.
  • wiki/deploying linux binaries

    r5360 r14260  
    3636* Required libraries, including the CHICKEN runtime system (run {{ldd <executable>}} to get a list of libraries you need)
    3737
    38 * The extensions required at run-time - just copy the {{.so}} files from your repository into the bundle (you obtain the repository path by running {{chicken-setup -repository}})
     38* The extensions required at run-time - just copy the {{.so}} files from your repository into the bundle (you obtain the repository path by running {{csi -p "(repository-path)"}})
    3939
    4040Finally wrap up the directory into a tarball and distribute
  • wiki/eggs tutorial

    r14110 r14260  
    1010
    1111A good way to start getting involved in the Chicken community is to contribute new eggs.
    12 Not only this will benefit other users, who will now be able to use your egg, it will also benefit you as you'll gain access to all the infrastructure for managing eggs (eg. you will be able to install your eggs using {{chicken-setup}}) and other users might start helping improve your eggs.
     12Not only this will benefit other users, who will now be able to use your egg, it will also benefit you as you'll gain access to all the infrastructure for managing eggs (eg. you will be able to install your eggs using {{chicken-install}}) and other users might start helping improve your eggs.
    1313
    1414We will assume your extension is called ''mpeg3'' (which is the name of an already existing [[mpeg3|egg]]).  Replace occurences of that string throughout this file with the actual name of your extension.
     
    1818=== Code layout
    1919
    20 You should write the code for your extension in the following files:
    21 
    22 * If your extension doesn't contain macros (and thus it doesn't need to be available at compile time), as is the case with most, write all your code in {{mpeg3.scm}}.  It should contain all the symbols in your extension that you want to compile and make available to user programs at run-time.
    23 * Otherwise:
    24 ** Write your macros and any code that needs to be available at compile time in {{mpeg3.scm}}.  You'll soon setup your egg in such a way that this file won't get compiled (but rather {{load}}ed during compilation of programs that use your extension).
    25 ** Write your function definitions and any code that should be available at run-time in {{mpeg3-base.scm}}.  This file will be compiled into {{mpeg3-base.so}}, which will be loaded at runtime.
    26 
    27 We strongly recommend that you add a {{(declare (export ...))}} declaration to your runtime file explicitly listing all the symbols that should be exported to programs using your egg.
    28 This not only avoids name clashes, but it also serves as some implicit sort of documentation as to what the public interface exported by the egg is (which should not, ever, replace your standard documentation!).
     20You should always use the module system for extensions to avoid creating name-conflicts
     21if one of your exported toplevel identifiers clashes with an already existing definition.
     22Modules also allow to export syntax definitions in a clean and easy-to-use way.
    2923
    3024=== Testing your extension
     
    6761=== The setup file
    6862
    69 In order for {{chicken-setup}} to install your extension, we recommend that you create a {{mpeg3.setup}} file with information about your egg.
    70 {{chicken-setup}} will load this file. {{chicken-setup}} adds some new procedures to the environment, which are documented in [[/man/3/chicken-setup#procedures-and-macros-available-in-setup-scripts|the chicken-setup section of the manual]].
     63In order for {{chicken-install}} to install your extension, we recommend that you create a {{mpeg3.setup}} file with information about your egg.
     64{{chicken-install}} will load this file. {{chicken-install}} adds some new procedures to the environment, which are documented in [[/man/4/Extensions#procedures-and-macros-available-in-setup-scripts|the "Extensions" section of the manual]].
    7165
    7266If your egg does not contain macros, your setup file should look similar to the following:
     
    7468<enscript highlight=scheme>
    7569; These two instructions will produce statically and dynamically linkable object files "mpeg3.o" and "mpeg3.so" respectively.
    76 (compile -s -O2 -d1 mpeg3.scm)
     70(compile -s -O2 -d1 mpeg3.scm -j mpeg3)
     71(compile -s mpeg.import.scm -O2 -d0)
    7772(compile -c -O2 -d1 mpeg3.scm -unit mpeg3)
    7873;
     
    8176  'mpeg3
    8277  ; Files to install for your extension:
    83   '("mpeg3.o" "mpeg3.so" "mpeg3.html")
     78  '("mpeg3.o" "mpeg3.so" "mpeg3.import.so")
    8479  ; Assoc list with properties for your extension:
    8580  '((version 1.2)
     
    8782    (documentation "mpeg3.html")))</enscript>
    8883
    89 Note that the first line will cause {{mpeg3.scm}} to be compiled into
    90 {{mpeg3.o}}, which is installed by {{install-extension}}.
    91 
    92 Note that the second line will cause {{mpeg3.scm}} to be compiled into
    93 {{mpeg3.so}}, which is installed by {{install-extension}}.
    94 
    95 If your extension includes syntax it should:
    96 
    97 # Compile {{mpeg3-base.scm}} (instead of {{mpeg3.scm}}), according to the semantics for those files.
    98 # List both {{mpeg3.scm}} (macros) and {{mpeg3-base.so}} in the list of files to install.
    99 # In the list of properties it should include {{(syntax)}} and {{(require-at-runtime mpeg3)}}.
     84The first line will cause {{mpeg3.scm}} to be compiled into
     85{{mpeg3.so}} (a shared library for dynamic loading), which is installed by {{install-extension}}.
     86The {{-j}} option will make sure that an ''import library'' is generated, that, after compilation,
     87provides module meta-information and exported syntax.
     88
     89The second line will compile the generated import library.
     90
     91The third line will cause {{mpeg3.scm}} to be compiled into
     92{{mpeg3.o}} (a static module for static linking), which is installed by {{install-extension}}.
    10093
    10194If your egg requires your code to be linked against a specific library or certain flags (eg. {{-l}}) to be passed to the C compiler, you should specify them here.
     
    119112
    120113 (files "mpeg3.scm" "mpeg3.html" "mpeg3.setup")
    121 
    122  ; The following should only be present if the egg's documentation should be
    123  ; generated from the wiki:
    124 
    125  (doc-from-wiki)
    126114
    127115 ; The following is used to add additional documents to the install,
     
    186174=== Tests
    187175
    188 [[/man/3/chicken-setup|chicken-setup]] can automatically run a test suite on a freshly installed egg, if the egg directory
     176[[/man/4/Extensions|chicken-install]] can automatically run a test suite on a freshly installed egg, if the egg directory
    189177contains a directory named {{tests}}, which should include a Scheme source file named {{run.scm}}.
    190 When {{chicken-setup}} is invoked with the {{-test}} option, then this file will be executed
     178When {{chicken-install}} is invoked with the {{-test}} option, then this file will be executed
    191179(with {{test}} being the current working directory). It is recommended to add a test suite
    192180to your extension, as it allows some sort of automated testing of installed extensions. '''If "run.scm" never calls "error" during the execution then the test is considered successful.'''
     
    216204To checkout this directory run the following command:
    217205
    218  svn checkout https://galinha.ucpel.tche.br/svn/chicken-eggs/release/3/mpeg3
     206 svn checkout https://galinha.ucpel.tche.br/svn/chicken-eggs/release/4/mpeg3
    219207
    220208=== Directory structure
  • wiki/periodic-tasks

    r14110 r14260  
    2323=== Automatic upload of eggs to call/cc.org
    2424
    25 The SVN repository of eggs is stored at [[galinha|http://chicken.wiki.br]].  The eggs files are periodically sent from [[http://chicken.wiki.br|galinha]] to the [[http://www.call-with-current-continuation.org|official eggs repository]] (used by [[/man/3/chicken-setup|chicken-setup]]).  You can see the log of the latest transfer of eggs at http://chicken.wiki.br/chicken-projects/post-commit.log
     25The SVN repository of eggs is stored at [[galinha|http://chicken.wiki.br]].  The eggs files are periodically sent from [[http://chicken.wiki.br|galinha]] to the [[http://www.call-with-current-continuation.org|official eggs repository]] (used by [[/man/4/Extensions|chicken-install]]).
    2626
    2727=== Dependencies graphs generation
Note: See TracChangeset for help on using the changeset viewer.