<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gf-core.git/src/compiler/GFServer.hs, branch master</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>https://git.adelon.net/gf-core.git/atom?h=master</id>
<link rel='self' href='https://git.adelon.net/gf-core.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.adelon.net/gf-core.git/'/>
<updated>2014-10-15T21:04:29+00:00</updated>
<entry>
<title>Rename modules GFI, GFC &amp; GFServer...</title>
<updated>2014-10-15T21:04:29+00:00</updated>
<author>
<name>hallgren</name>
<email>hallgren@chalmers.se</email>
</author>
<published>2014-10-15T21:04:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adelon.net/gf-core.git/commit/?id=b70dba87bab5dfc8039f0b9f69e0851f92324f8b'/>
<id>urn:sha1:b70dba87bab5dfc8039f0b9f69e0851f92324f8b</id>
<content type='text'>
... to GF.Interactive, GF.Compiler &amp; GF.Server, respectively.
</content>
</entry>
<entry>
<title>(1) Refactor concurrency, (2) write to .gfo.tmp then rename to .gfo</title>
<updated>2014-09-08T15:43:20+00:00</updated>
<author>
<name>hallgren</name>
<email>hallgren@chalmers.se</email>
</author>
<published>2014-09-08T15:43:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adelon.net/gf-core.git/commit/?id=4eb6b55e980fda9c4d260820f5a6d38dde3d0991'/>
<id>urn:sha1:4eb6b55e980fda9c4d260820f5a6d38dde3d0991</id>
<content type='text'>
(1) introduces the module GF.Infra.Concurreny with lifted concurrency
    operators (to reduce uses of liftIO) and some additional concurrency
    utilities, e.g. a function for sequential logging that is used in
    both GF.CompileInParallel and GFServer.
(2) avoids leaving broken .gfo files behind if compilation is aborted.
</content>
</entry>
<entry>
<title>src/server: refactoring to isolate dependencies on the cgi/fastcgi packages</title>
<updated>2014-09-02T12:27:47+00:00</updated>
<author>
<name>hallgren</name>
<email>hallgren@chalmers.se</email>
</author>
<published>2014-09-02T12:27:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adelon.net/gf-core.git/commit/?id=e0e6079c9141a0c2d7d2a6dda50496e237bfc8bb'/>
<id>urn:sha1:e0e6079c9141a0c2d7d2a6dda50496e237bfc8bb</id>
<content type='text'>
* Introducing the module CGI, re-exporting a subset of the cgi package. It
  might complete replace the cgi package in the future.
* Introducing the module CGIUtils, containing functions from FastCGIUtils that
  have nothing to do with fastcgi.

Some low level hackery with unsafePerformIO and global variables was left
in FastCGIUtils, but it is actually not used, neither for gf -server nor
exec/pgf-fcgi.hs.
</content>
</entry>
<entry>
<title>Add lifted directory operations in GF.System.Directory to eliminate the need for liftIO in various places</title>
<updated>2014-08-20T17:47:08+00:00</updated>
<author>
<name>hallgren</name>
<email>hallgren@chalmers.se</email>
</author>
<published>2014-08-20T17:47:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adelon.net/gf-core.git/commit/?id=21f429caf8c8cb4248457c16abaf0ad4f51c974a'/>
<id>urn:sha1:21f429caf8c8cb4248457c16abaf0ad4f51c974a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>gf -server: include list of loaded PGFs in version info</title>
<updated>2014-05-12T13:45:36+00:00</updated>
<author>
<name>hallgren</name>
<email>hallgren@chalmers.se</email>
</author>
<published>2014-05-12T13:45:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adelon.net/gf-core.git/commit/?id=7c9ff164bf89b6f39da5ad2c43f7772324e1c141'/>
<id>urn:sha1:7c9ff164bf89b6f39da5ad2c43f7772324e1c141</id>
<content type='text'>
</content>
</entry>
<entry>
<title>PGF web service: add unlexers and enable client side caching</title>
<updated>2014-04-09T17:51:25+00:00</updated>
<author>
<name>hallgren</name>
<email>hallgren@chalmers.se</email>
</author>
<published>2014-04-09T17:51:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adelon.net/gf-core.git/commit/?id=d1da0e06de1d50e5246ea362ea8f2949b6a2a950'/>
<id>urn:sha1:d1da0e06de1d50e5246ea362ea8f2949b6a2a950</id>
<content type='text'>
Most PGF web API commands that produce linearizations now accept an
unlexer parameter. Possible values are "text", "code" and "mixed".

The web service now include Date and Last-Modified headers in the HTTP,
responses. This means that browsers can treat responses as static content and
cache them, so it becomes less critical to cache parse results in the server.

Also did some cleanup in PGFService.hs, e.g. removed a couple of functions
that can now be imported from PGF.Lexing instead.
</content>
</entry>
<entry>
<title>gf -server: add a command to manually flush the PGF cache</title>
<updated>2014-03-19T16:15:05+00:00</updated>
<author>
<name>hallgren</name>
<email>hallgren@chalmers.se</email>
</author>
<published>2014-03-19T16:15:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adelon.net/gf-core.git/commit/?id=b061d59044b0cc689cf270617364ab36c8a0792f'/>
<id>urn:sha1:b061d59044b0cc689cf270617364ab36c8a0792f</id>
<content type='text'>
This can be used if the cloud service seems slow, but it would probably
be better to automatically expire unused PGFs from the cache after some time.
</content>
</entry>
<entry>
<title>GFServer.hs: avoid intertwined log messages from parallel requests</title>
<updated>2014-02-11T14:22:12+00:00</updated>
<author>
<name>hallgren</name>
<email>hallgren@chalmers.se</email>
</author>
<published>2014-02-11T14:22:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adelon.net/gf-core.git/commit/?id=23dc22cea49b7dde812882cff8e77b27e1b6382f'/>
<id>urn:sha1:23dc22cea49b7dde812882cff8e77b27e1b6382f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>gf -server: fix a redirection bug...</title>
<updated>2014-01-27T16:30:03+00:00</updated>
<author>
<name>hallgren</name>
<email>hallgren@chalmers.se</email>
</author>
<published>2014-01-27T16:30:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adelon.net/gf-core.git/commit/?id=88341987a812931435f373d32ac19f5d77585a31'/>
<id>urn:sha1:88341987a812931435f373d32ac19f5d77585a31</id>
<content type='text'>
...that was introduced with the recent changes to the handling of the
current working directory
</content>
</entry>
<entry>
<title>gf -server: allow multiple PGF service requests to be handled in parallel</title>
<updated>2014-01-24T13:49:02+00:00</updated>
<author>
<name>hallgren</name>
<email>hallgren@chalmers.se</email>
</author>
<published>2014-01-24T13:49:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adelon.net/gf-core.git/commit/?id=daa48610b5f9a6e28a4850722118d7acec7d89d1'/>
<id>urn:sha1:daa48610b5f9a6e28a4850722118d7acec7d89d1</id>
<content type='text'>
PGF service requests are stateless and can run in parallel, but some other
requests handled by the server are not and might even change the current
working directory temporarily, and this affects all threads, so it is
important that the PGF service requests access PGF files by absolute paths.
</content>
</entry>
</feed>
