~ chicken-core (chicken-5) 009bd07ceaa1aa5dc96c2d04f22c697de744ebee


commit 009bd07ceaa1aa5dc96c2d04f22c697de744ebee
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Sun Apr 3 20:24:22 2016 +0200
Commit:     felix <felix@call-with-current-continuation.org>
CommitDate: Sun Nov 13 11:32:19 2016 +0100

    notes

diff --git a/NOTES b/NOTES
new file mode 100644
index 00000000..ea48c3f1
--- /dev/null
+++ b/NOTES
@@ -0,0 +1,164 @@
+NOTES (new install)
+~~~~~~~~~~~~~~~~
+
+* TODO Proposals
+** Encode install-prefix in cache-dir name
+** Check whether files are overwritten by egg on installation
+** Allow certain set of trusted programs to be called during install
+    - list in setup.defaults?
+
+* TODO Try more complex eggs
+    - bind (including dependencies)
+
+* TODO .egg files for all C5 eggs
+    - tag using X.Y.Z scheme.
+
+* TODO chicken-do: delete target file if build fails
+    - needs to fork subprocess.
+    - better would be to use temporary for output and then rename.
+        - but then would have to replace occurrence of target in command arguments.
+
+* TODO Remove custom location from setup.defaults
+
+* TODO Separation of d/l step possible?
+    - required to check downloaded content
+
+* TODO Static linking
+    - (chicken) "-static" option - when requiring extension, check if repo contains *.o(bj) file.
+        - mind cross-compilation: use target-repo in target mode (needs to passed to chicken).
+    - csc: drop -static, rename -static-libs to -static (doc) (and pass to chicken).
+    - pass information about used static eggs either in separate file or embedded as comment
+      in C file (first line)
+
+* TODO Rebase on upstream at some stage
+
+* Complete egg-info compilation
+** TODO What should the default optimization options be?
+    - also for compiled import libraries.
+    - respect DEBUGBUILD?
+
+* TODO Option for not fetching/installing dependencies
+    - proposed by wasamasa.
+    - does this make sense?
+
+* Implement minimal "chicken-install"
+** Basic functionality
+*** TODO Repository init (cross-aware)
+    - old-chicken-install.scm://+default-repository-files+/
+*** TODO print repository
+*** TODO Comment all toplevel procedures
+*** TODO Add usage information
+
+* TODO repository-path
+    - allow multiple locations?
+    - perhaps: CHICKEN_INSTALL_REPOSITORY (defaults to install-prefix) as
+      installation target.
+
+* Issues
+** Link-options are passed directly to csc
+    - is this right?
+
+* Suggestion by florz: sign eggs (or hashes) and decode using NaCl
+    - https://tweetnacl.cr.yp.to/software.html
+
+* Setup features
+** TODO Keep binaries + intermediate files ("-k")
+    - needed, since we normally build from cache?
+** TODO "-feature" + "-no-feature"
+** TODO Hack for OSX SIP?
+    - system / DYLD_ vars
+** TODO reinstall?
+** TODO Request by Jon Foerch: allow *.egg in specific subdirectory ("chicken")
+
+* TODO "build-dependencies" 
+    - toplevel deps that are needed during build, override "dependencies", if given.
+    - or is the intent differently? Ask moritz.
+
+* Download/build directories
+** TODO handle egg-files given on command-line
+    - and build in respective directory.
+
+* TODO "-test" implies all tests are run - is this right?
+
+* TODO If THE SYSTEM takes repo-tags as versions, then version-enforcement enforces a remote tag syntax
+
+* TODO Check what cmdline options to retain
+** Option for explicitly generating Windows/UNIX build/install scripts?
+    - i.e. selecting target platform.
+
+* Things to resolve
+** setup-info / egg-info files
+*** one for the whole egg (use "components" to find associated parts).
+*** TODO Fix "extension-information"
+    - drop it completely? we can't locate extensions, just eggs.
+*** TODO syntax-only extensions 
+    - i.e. matchable, miscmacros (is it?)
+*** TODO require-at-runtime?
+
+* TODO Fix loading/linking
+    - needs support by compiler.
+    - see also eval.scm:/##sys#process-require/
+
+* TODO Drop CHICKEN_PREFIX
+    - chicken-prefix and all of its uses.
+
+* Build/install scripts
+** TODO Use "-setup-mode" when invoking csc during build
+    - but that requires csc is run in source-dir.
+** must be fully sh(1) compatible
+    - http://people.fas.harvard.edu/~lib113/reference/unix/portable_scripting.html
+    - https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/cmd.mspx?mfr=true
+** TODO Test "chicken-do" and port to Windows
+    - ideally, use execvp/CreateProcess
+        - http://www.cplusplus.com/forum/windows/3398/ and
+          http://www.cplusplus.com/forum/beginner/1988/3/#msg14102
+** Consider making this powerful enough to build chicken
+    - needs support for object-files (C or Scheme) and building libraries.
+** TODO Handle case where program and extension in egg have same name
+    - e.g. "hyde" in hyde egg.
+    - can we ignore this? if source files have different names, just compiling exe/so directly should
+      work.
+
+* "dependencies" has 2 meanings, depending on nesting level in egg info
+
+* TODO Do we have to cleanup after building eggs?
+
+* "chicken-install -r" retrieves into cache - sufficient?
+
+* TODO Component dependencies need to be converted to filenames
+    - before generating build-commands.
+    - but specific for genfiles (source prop or name), exts, prgs.
+    - dependencies are currently disabled in chicken-do command-generation.
+
+* Tools
+** TODO chicken-status
+    - option to list cached eggs (+ version)
+    - filter egg-info and list components.
+
+* TODO Copyright headers
+    - chicken-do.c  egg-*.scm
+
+* TODO Documentation
+    - document CHICKEN_EGG_CACHE
+    - remove old and obsolete stuff  (dropped options, etc.)
+    - update manual
+    - chicken-do (manpage)
+    - update egg-tutorial on wiki
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+gg extension-information    ctags --language=scheme *.scm   SchemeIndent
+cm chicken-do && cp chicken-do bin
+cm chicken-install      cm install      chicken-status.scm
+chicken-config.h  chicken-do.c  config.mk  old-chicken-install.scm  rules.make
+git gui   git pull      win bin/csi    distribution/manifest    chicken-uninstall.scm
+/home/felix/.chicken-install.cache/  lib/chicken/8  ~/chicken/5  
+/home/felix/chicken/c5-eggs/
+../bin/chicken-install -defaults ../setup.defaults -n
+chicken-install.scm  setup-api.scm  setup-download.scm
+ egg-compile.scm  egg-environment.scm  egg-download.scm egg-information.scm
+win bin/csi
+cm chicken-install
+chicken-install -v -test  posix-groups
+chicken-status      chicken-uninstall -force
+win bin/csi  
+rm -fr /home/felix/.chicken-install.cache/*
Trap