Skip to content
This repository
  • 62 commits
  • 42 files changed
  • 7 contributors
Sep 02, 2009
Thomas Schilling Huge cleanup. This megapatch does quite a lot of things:
 1. Move all the Cabal-specific stuff into the new module Scion.Cabal

 2. Make components an abstract type (or "object") with operations
    for initialising it and extracting dynflags and targets.  This
    makes things a bit easier to understand and more orthorgonal.

 3. A Cabal project is now automatically re-configured automatically
    when needed.  This also removed some logic from the Emacs
    front-end--always a good thing to make the front-end dumber.

 4. Clean up some cruft, like some useless commands or dead code.

 5. Fix a bug in the Emacs front-end where the $HOME/.cabal
    directory got confused with an actual .cabal file.
Sep 03, 2009
Thomas Schilling Delete module Scion.Configure. 8c84f02
Thomas Schilling Move license file into docs directory. bbe5526
Sep 07, 2009
Add build option to loadComponent 8435f47
Thomas Schilling Add some JSON decoding error messages. b6b7f47
Sep 08, 2009
eclipsefp allow output to be generated, expose preprocess d270695
Sep 13, 2009
Thomas Schilling Implement reading the PackageDB and the Names defined in it.
This is a prerequisite for automatically adding imports.  The `NameDB`
currently only maps names to the modules they are exported from.  In
the future we probably want types as well and possibly also source
location (where available) and where to find its documentation.

Generating this database is quite slow and memory hungry because it
indirectly causes GHC to load all the interfaces.  Generating is
therefore done offline and we just read the DB from a binary file.

For example, for my package DB consisting of 136 modules it requires
350 MB (185 MB resident) to generate the DB consisting of about 32K
names.  The Binary instance uses dictionaries to reduce the file size
which in my case is 2 MB.  Reading it back into memory takes about 16
MB (8.5 MB resident) and takes about half a second.

It would probably be worthwhile to investigate whether we can lazily
read this database.  (I think Hoogle does something like that.)
Thomas Schilling Fix warning. 398bedf
Sep 14, 2009
Thomas Schilling Clean up and document `S.Inspect.PackageDB`.
Most of the new lines are comments, the rest are utility functions.
Sep 15, 2009
incorporated nominolo's devel branch 594de80
remove commented out code from JP's previous version 25ec333
Sep 19, 2009
JP Moresmau outline method (topLevelNames with type and location) ca288e3
Sep 24, 2009
JP Moresmau Outline types moved to own module, hierarchy of Data types constructo…
…rs and fields
Sep 25, 2009
JP Moresmau outline dumps unqualified names, and we need the type of the parent f6f8b67
Oct 09, 2009
JP Moresmau backgroundTypecheckArbitrary initial version 54fbbc3
Oct 10, 2009
JP Moresmau recover on GHC exception during arbitrary check 1c553e5
Oct 16, 2009
Insert some 'canonicalizePath's, since otherwise scion refuses to bac…
…kgroundTypecheck if 'fname' is only equal to our other directories after symlink resolving.
Oct 20, 2009
Thomas Schilling Clean up formatting in `S.Cabal`. 5632276
Thomas Schilling Fix formatting in `S.Inspect`. 831958c
Thomas Schilling Fix formatting in `S.Types.Notes`. 2abbe9d
Thomas Schilling Fix formatting in `S.Types.Outline`. 344e22d
Thomas Schilling Add version constraints in .cabal file. 0cb65f3
Thomas Schilling Fix formatting in `S.Session`. c610b14
Thomas Schilling Remove impossible case. 9b8a874
Thomas Schilling Start support for storing a local NameDB. b334f6d
Thomas Schilling Clean up formatting in `S.Server.Commands`. 86caf1d
Thomas Schilling Add some documentation in `S.Cabal`. 1e89290
Thomas Schilling Add a bit of documentation in `S.Inspect`. 5dfcbbb
Thomas Schilling Merge remote branch 'Functorsalad/master' into devel.
	lib/Scion/Session.hs (imports only)
Thomas Schilling Fix haddock comment formatting. 32f7aad
Nov 02, 2009
Thomas Schilling Fix #36. Forgot to adapt to protocol change. e139661
Thomas Schilling Use -DSCION_DEBUG instead of -DDEBUG in testing mode.
hslogger defines a DEBUG constructor which leads to compilation errors
if -DDEBUG is defined.
Dec 02, 2009
Thomas Schilling Tweak Makefile. Now allows out-of tree dist directory.
This is useful if you keep the sources in a place that might be shared
across several different machines.  E.g., the sources might be stored
on a remote (and backed-up) filesystem, but the compiled files should
be stored locally and need not require backup.
Thomas Schilling Suppress warnings in server/Main. 637cf7b
Thomas Schilling Start some library documentation. Horribly incomplete. f16123c
Dec 13, 2009
Robin Green Make it build against GHC 6.12.1 a73a0c4
Dec 22, 2009
Thomas Schilling Make GHC 6.12.1 build fixes backwards compatible. d9194d5
Marc Weber Remove .vim files. They'll be released independently. See README.mark…
Dec 26, 2009
Thomas Schilling Add rebuild target. Used by testall script. 157005f
Jan 08, 2010
Thomas Schilling Emacs: Use different text property for file name in error tree. 72ae690
Mar 01, 2010
Martin Krauskopf scion_quickfixes_always_open option
Do not close quickfix window automatically when the option is set.
Martin Krauskopf Prevent deprecation warning during initialization
- popen2 is not used anyway
Apr 13, 2010
Thomas Schilling Export Scion.Types.Outline from .cabal. a8d5251
Apr 23, 2010
Thomas Schilling Use customised DIST dir when installing. 3bfca8c
Thomas Schilling Fix warning. 6ae573e
Thomas Schilling Use `collectPatBinders` instead of custom implementation. 5afe6b1
Thomas Schilling Remove redundant import. 42c0ebb
Thomas Schilling Update ghc-syb dependencies and bump version number. f755763
Jun 17, 2010
Thomas Schilling MEGA-COMMIT: Start support for two-tier architecture.
To avoid various problems with the GHC API, we now use a
multi-process architecture in Scion.  The Scion client still
connects to only one Scion server, but this server now acts as a
proxy and forwards each request to a number of Scion workers.
The proxy and the server communicate via stdin/sdtout using a
binary protocol, so this should be quite efficient.

This avoids the following problems:

  - Memory bloat: GHC currently never shrinks a heap, so memory
    intensive processes (like indexing the package database)
    would cause high memory usage of the current session.  GHC
    API caches also tend to never get cleared, causing a similar
  - Static flags: Some flags (e.g., -prof) can only be set once
    per *process*.  It is now simpler to just start a new process
    with the new flags.  Similarly, the package DB can only
    safely be read once (at the beginning of the session).  If a
    dependency was missing, the user can now install it and it's
    easy to restart the Scion worker.

  - All these above problems could have been solved by requiring
    the Scion client to use and manage multiple Scion servers.
    By doing it in Scion, we hopefully avoid unnecessary code

  - During development of Scion we now mostly only need to
    recompile and restart the worker, not the proxy.  This could
    make it easier to work on Scion itself.

I'm not quite sure yet how the final client interface should look
like.  For now there's only one worker, but the path to using
multiple workers is now much clearer.
Thomas Schilling Migrate some commands to new server; move their implementation into l…
Thomas Schilling Re-add 'cmdLoad' and clean up message parsing while we're at it. 84b63a2
Jun 18, 2010
Thomas Schilling Move over a few more commands. 29474b8
Thomas Schilling Avoid "Missing 'main' function" error. 1a6d4bf
Thomas Schilling Re-add kackground typechecking command. 7e6389b
Jun 22, 2010
Thomas Schilling Fix warning. 2ec9b4a
Aug 23, 2010
Thomas Schilling Adjust emacs client code and re-add a few missing commands. 80a4eb3
Sep 15, 2010
Thomas Schilling Makefile tweaks. f614bfb
Thomas Schilling Disable unused-do-bind warnings (at least for now). ec90955
Thomas Schilling Docs and spelling. 6a3e613
Thomas Schilling Merge branch 'devel' of into devel
Removes all vim stuff.  Vim-stuff should now live in a separate repo.

Sep 16, 2010
Thomas Schilling Add haddock target to Makefile. 5e40929
Thomas Schilling Explain choice of GHC DynFlags defaults. 0bc84e2