@hackage weekdaze0.0.0.1

A school-timetable problem-solver.

  • Installation

  • Dependencies (18)

  • Dependents (0)

  • Package Flags

      hdbc-mysql
       (off by default)

      Link with the package "HDBC-mysql" & consequently the native MySQL-interface (which will require a development package for mysqlclient), which the application can use to connect to a MySQL data-server.

      hdbc-odbc
       (off by default)

      Link with the package "HDBC-odbc", which the application can use to connect to a generic data-server.

      llvm
       (off by default)

      Whether the llvm compiler-backend has been installed and is required for code-generation.

      printdbqueries
       (off by default)

      Whether to print SQL-queries as the database is read. N.B.: only relevant when either of the flags 'HDBC-odbc' or 'HDBC-mysql' is True. N.B.: the output will be more readable when queryDBConcurrently is off.

      printdbrows
       (off by default)

      Whether to print the rows read from the database. N.B.: only relevant when either of the flags 'HDBC-odbc' or 'HDBC-mysql' is True. N.B.: the output will be more readable when queryDBConcurrently is off.

      querydbconcurrently
       (on by default)

      Whether database-queries should be issued concurrently.

      static
       (off by default)

      Link statically, perhaps for deployment in an environment where one doesn't have root access.

      threaded
       (on by default)

      Build for parallel runtime.

      unix
       (on by default)

      Link with package "unix" when available.

WeekDaze

Build Status Hackage License: GPL v3 Haskell

This is "WeekDaze", an application which searches for solutions to the school-timetable problem.

It can read problem-specifications either from a relational database or from an XML-file.

Installation

  • It can be built and installed using Cabal.
  • Configuration can be read by either from a local XML-file using the Haskell package hxt, or by establishing database-connectivity using one or more of the database-backend Haskell packages "HDBC-odbc" & "HDBC-mysql", & this affects how the product should be built.
  • In order to connect to an arbitrary type of RDBMS, HDBC-odbc should be installed, but when connecting specifically to MySQL, one can alternatively install HDBC-mysql (which is slower).
  • Before building these database-backend Haskell packages on GNU/Linux the following prerequisites must be observed:
    • HDBC-odbc: requires the development version of the package "unixODBC".
    • HDBC-mysql: requires either "libmariadb-devel" or the development version of the package "libmysqlclient". CAVEAT: HDBC-mysql-0.6.6.1 is rather picky about the versions of other Haskell packages.
  • Before using ODBC to establish database-connectivity:
    • An appropriate driver for the type of RDBMS, e.g. MyODBC-unixODBC for MySQL, must be installed.
    • A system-wide configuration-file "odbcinst.ini" must be created to define the above database-driver, & a configuration-file ".odbc.ini" must be created to define the available DSNs. These files are described for a various types of DBMS in odbcinst & for MySQL in MySQL Connector/ODBC (examples for the latter case are included in this package).
  • An initial MySQL-database can be constructed using the packaged SQL-files.

Documentation

The documentation is in "man/".

Examples

The directory "xml/" contains example-configurations and the directory "xhtml/" contains the corresponding solutions. The packaged SQL-files contain the same example-configurations.

License

For information on copying and distributing this package, see the file "LICENSE" in this directory.

Bug-reporting

Bug-reports should be emailed to weekdaze@functionalley.com.

Testing

The test-suite can be run using:

cabal configure --enable-tests;
cabal build;
cabal test --show-details=always;

Author

This application is written and maintained by Dr. Alistair Ward.