MediaWiki API result

This is the HTML representation of the JSON format. HTML is good for debugging, but is unsuitable for application use.

Specify the format parameter to change the output format. To see the non-HTML representation of the JSON format, set format=json.

See the complete documentation, or the API help for more information.

{
    "batchcomplete": "",
    "continue": {
        "gapcontinue": "ST_Publications",
        "continue": "gapcontinue||"
    },
    "warnings": {
        "main": {
            "*": "Subscribe to the mediawiki-api-announce mailing list at <https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce> for notice of API deprecations and breaking changes."
        },
        "revisions": {
            "*": "Because \"rvslots\" was not specified, a legacy format has been used for the output. This format is deprecated, and in the future the new format will always be used."
        }
    },
    "query": {
        "pages": {
            "89": {
                "pageid": 89,
                "ns": 0,
                "title": "Release history",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "__NOTOC__\n=== October 2, 2018 ===\n\nClean 3.0 is released.\n\n[http://ftp.cs.ru.nl/Clean/Clean30/windows Clean 3.0 for Windows]\n\n[http://ftp.cs.ru.nl/Clean/Clean30/linux Clean 3.0 for Linux]\n\n[http://ftp.cs.ru.nl/Clean/Clean30/macosx Clean 3.0 for MacOS X]\n\n=== December 23, 2011 ===\n\nClean 2.4 is released.\n\n[http://ftp.cs.ru.nl/Clean/Clean24/windows Clean 2.4 for Windows]\n\n[http://ftp.cs.ru.nl/Clean/Clean24/linux Clean 2.4 for Linux]\n\n[http://ftp.cs.ru.nl/Clean/Clean24/macosx Clean 2.4 for MacOS X]\n\n=== December 22, 2010 ===\n\nClean 2.3 is released.\n\n[http://ftp.cs.ru.nl/Clean/Clean23/windows Clean 2.3 for Windows]\n\n[http://ftp.cs.ru.nl/Clean/Clean23/linux Clean 2.3 for Linux]\n\n=== December 19, 2006 ===\nClean 2.2 is released.\nThe following versions are still available:\n\n* [http://clean.cs.ru.nl/download/Clean22/windows/Clean2.2.zip Clean 2.2 32-bit Intel for Windows]\n* [http://clean.cs.ru.nl/download/Clean22/windows/Clean2.2_64.zip Clean 2.2 64-bit Intel for Windows]\n* [http://clean.cs.ru.nl/download/Clean22/linux/Clean2.2.tar.gz Clean 2.2 32-bit Intel for Linux]\n* [http://clean.cs.ru.nl/download/Clean22/linux/Clean2.2_64.tar.gz Clean 2.2 64-bit Intel for Linux]\n* [http://clean.cs.ru.nl/download/Clean22/macintosh/Clean2.2.zip Clean 2.2 32-bit PowerPC for Mac]\n* [http://clean.cs.ru.nl/download/Clean22/source/Clean2.2Sources.zip Complete sources for Windows and Mac]\n* [http://clean.cs.ru.nl/download/Clean22/source/Clean2.2Sources.tgz Complete sources for Linux]\n* [http://clean.cs.ru.nl/download/Clean22/linux/Clean2.2_boot.tar.gz Bootstrap sources from ABC files for Linux]\n\n=== July 14, 2005 ===\nLethevert has created a [http://www.geocities.jp/lethevert/softwares/clean/localized Japanese version of the Clean system]. We have included a link to his project with his kind permission.\n=== May 31, 2005 ===\n[[Download Clean|Clean 2.1.1]] is released for Windows, MacOS X, Linux, and Solaris. This release contains bug fixes and new features, to wit:\n* Libraries for Windows: GAST, GECs, Hilde, Parser\n* Foreign exports\n* Improved redirected standard input/output\n* Let in comprehensions\n* Code generator optimisations\n=== October 31, 2003 ===\nClean 2.1.0 is released for Windows, MacOS X, Linux, and Solaris. Major new features are: abstract synonym types, boxed records, stack overflow checks without overhead, code optimizations, optimizing linkers for Linux and Solaris, MacOS X support for Object I/O 1.2. and IDE (Carbon), direct code generation on Solaris, version for Linux that bootstraps from ABC files, major improvements in the dynamics implementation on Windows.\n=== December 12, 2002 ===\nClean 2.0.2 is released for PC, PowerMac, Linux, and Solaris. It includes experimental support for generic programming, improved support for dynamics (polymorphic types included), strict lists and many bug fixes.\n=== July 4, 2002 ===\nClean 2.0.1 is released for PC, PowerMac, Linux, and Solaris. It includes a proof tool dedicated to Clean programs (Sparkle), dynamic typing and linking, and many new language features.\n=== December 21, 2001 ===\nClean 2.0 is released for the Windows platform. It includes a proof tool dedicated to Clean programs (Sparkle), dynamic typing and linking, and many new language features. \n=== September 13, 2000 ===\nClean 1.3.3 and ObjectIO 1.1.1 are released for the Windows and Macintosh platforms. The ObjectIO 1.2 library for windows is split in three parts: ObjectIO 1.2.1, TCP library 1.2.1 and game library 1.2.1.\n\nTwo new libraries are released: ExtendedArith 1.0 and StdLib 1.0. All these libraries can be downloaded here. \n=== April 13, 2000 ===\nThe new Clean Integrated Development Environment, The Clean IDE version 2.0, is released for the Windows platform. [[Download|To download it, click here]. It includes a new editor, project manager, search facilities, and many, many faclilities to make life easier for the Clean programmer. \n\nThe system is entirely written in Clean itself on top of the Object IO library.\nSo, this new IDE is a nice example that you can write serious applications is Clean. \n=== April 4, 2000 ===\nMike Wiering has made a new Tile Editor. The tiles are used for making sprites, animations and background layers for the 2D Clean games as supported by the game library. When you have made the drawings (or changed the exiting ones of the example games), Clean code can be generated such that the drawings can be controlled in the program. \n=== February 16, 2000 ===\nGreat and huge Object IO library for programming graphical user interfaces on a high level of abstraction. Includes all you need to make a professional looking windows application, lightweight processes, support for printing, bitmap handling, a game library, the latest TCP library and much more. The library comes with many examples, including three nice platform games. \n=== February 15, 2000 ===\nNew library module made by Marco Kesseler added. It contains functions for JPEG and Huffman decoding.\n=== November 17, 1999 ===\nDirectory 1.0 for Window, Unix and Mac(PPC) released.\nModule to access and manipulate directories \n=== October 4, 1999 ===\nClean 1.3.1 for Linux with glibc2 (Intel, RedHat 6.0) released. \n=== July 30, 1999 ===\nUpdate of the pseudorandom number generator MersenneTwister 1.0.1 released\nBugs fixed \n=== July 28, 1999 ===\nKrist\u00f3f Harmat and P\u00e9ter Tandi (both E\u00f6tv\u00f6s Lor\u00e1nd University, Budapest, Hungary) release ServiceCombinators for Mac (PPC)\nTool for interoperation between Clean applications and CGI applications (written in any language) residing on web servers using HTTP. \n=== July 12, 1999 ===\nBal\u00e1zs Csizmazia(E\u00f6tv\u00f6s Lor\u00e1nd University, Budapest, Hungary) releases Clean/IIOP(CORBA) interface tool 0.3 for Linux \n=== July 9, 1999 ===\nRelease of the pseudorandom number generator MersenneTwister 1.0 \n=== July 8, 1999 ===\nNew draft version of part I of the book \"Functional Programming in Clean\" available. \n=== July 1, 1999 ===\nUpdated version released: Clean 1.3.2 for Windows (95, 98 and NT) and Mac (PPC and 68k)\nsome compiler bugs were removed\npossiblity to include linking information into icl files added printing facility added to I/O Interface\n\nUpdated version released: Object I/O 1.1 for Windows and Mac printing facility added\n\nRelease of TCP 1.1 for Windows and Mac (PPC) \n=== June 23, 1999 ===\nUpdated version of the numerical library released: CLAS 0.7\n\nIntroduces slicing (accessing subarrays), a solver for least square problems, Cholesky decomposition and some bugs fixes. \n=== June 21, 1999 ===\nRelease of WrapDebug 1.0 (Windows, Unix, Mac)\nThis package lets you print arbitrary expressions for debugging purposes. \n=== May 3, 1999 ===\nRelease of ArgEnv 1.0.1 (Windows, Unix only) \n=== March 5, 1999 ===\nBugs fixed version of ObjectIO 1.0.1 (Mac only)\n\nBug (which only occured in the mac version) concerning MouseStateFilter in MouseFunction fixed. \n=== March 4, 1999 ===\nUpdated version of the numerical library released: CLAS 0.6\n\nIntroduces partial pivoting for the LU factorization, some bugs fixed, some functions improved in efficiency. \n=== February 24, 1999 ===\nUpdated version released: Clean 1.3.2 for Solaris\n\nMinor bug fixed. \n=== February 11, 1999 ===\nNew tool to call functions written in C from Clean 1.3: htoclean 1.0 \n=== January 20, 1999 ===\nUpdated versions released:\n\nClean 1.3.1 for Windows 95/98/NT\nClean 1.3.1 for PowerMac\n\nThe new features are:\n\nCleanIDE:\n* Printing added\n* fixed bug for asian systems (Windows)\n* fixed copy clipboard bug (Windows) \n\nProfiling tools: Printing added\n\nIOInterface 0.8: fixed bug for Asian systems(Windows) \n=== January 11, 1999 ===\n\nUpdated versions released:\n\nClean 1.3.1 for Solaris\nClean 1.3.1 for Linux ELF and MkLinux\n\nThe most important new features are:\n\nThe CleanIDE is now available for these platforms.\n\nLinux versions:\n* Faster compilation, because the code-generator generates object files instead of assembly files.\n* Fixed slow garbage collection bug in Clean 1.3 for Linux.\n* Added some garbage collection options. \n\n=== January 8, 1999 ===\nLibrary for basic numerical linear algebra operations CLAS version 0.5 pre-released.\nRefurbished web-pages launched. \n\n=== July 20, 1998 ===\nThe first joint beta release of the Object IO library 1.0.1 for Macintosh and Windows is now available.\n\n=== May 22, 1998 ===\nA new version (Clean 1.3) is now released for Windows95/NT, Mac, Linux and Solaris at the same time. The new features comprise: time profiler (PowerMac and Windows), space profiler (PowerMac), stack-trace generation, direct record and array updates, destructive updates using uniqueness type information, concise import of algebraic types, clean-up of StdEnv (e.g. file I/O), compiler handles all newline conventions (Mac, DOS, Unix), bitmap support. \n=== March 17, 1998 ===\nThe Clean www-pages have been restructured. \n=== January 16, 1998 ===\nThe CLEAN mailing lists for announcements and discussions are now archived via www. \n=== November 3, 1997 ===\nThe first release of the new Object I/O library (previously named the 1.0 I/O library) is now available (for Macintosh only, we are working on the PC version). Its most important new features are:\n* Easy composition of objects\n* Interactive process creation\n* Message passing of arbitrary data and function types\n* Local state that can be added at any graphical user interface element\n* Clipboard handling of text \n\nThe old 0.8 I/O library is still available. \n=== August 21, 1997 ===\nAt the Universidad de Uberlandia in Brasil Alcimar Soares and Ana Abrao made some pretty good notes on the use of CLEAN (and it's underlying principles) including example programs (and a good sense of humour). The notes contain several chapters with examples. The entrance page is Functional Programming in CLEAN. (Pages have been removed.) Check it out.  \n=== June 20, 1997 ===\nCLEAN version 1.2.4 is now also available for the Macintosh (68k/PowerPC) versions. This version also includes a few fixes for the PowerPC version and some improvements of the CLEAN Integrated Development Environment. \n=== June 18, 1997 ===\nThe Windows version of CLEAN now runs both on Windows NT 4.0 as well as on Windows '95. A few changes and fixes have been made (CLEANversion 1.2.4). \n=== May 1997 ===\nThe Windows95 version 1.2.3 is now available from our site.\n\nCLEAN1.2.3 for the Mac and PowerMac (native) is also available. There are a few changes from version 1.2. \n=== January 1997 ===\nCLEAN1.2 for the Mac and PowerMac (native) is now available from our site.\n\nThe system comes in three flavours:\n* CLEAN12.68k.sea.hqx: CLEAN 1.2 for 68k Macs.\n* CLEAN12.ppc.sea.hqx: CLEAN 1.2 for PowerMacs.\n* CLEAN12.both.sea.hqx: CLEAN 1.2 for 68k and PowerMacs.\n\nThe 68k version runs on 68k Macs and PowerMacs (emulated) and generates 68k code. The PPC version runs on PowerMacs (native) and can generate 68k code and PPC code.\n\nAn interesting aspect of the Mac/PowerPC version is that the CLEAN program development system is written in CLEAN itself.\n\nWith the exception of the slight syntax changes for existential types, all changes are extensions or new facilities such that a CLEAN1.1 program will usually run without any change in CLEAN1.2.\n\nA draft version of Concurrent CLEAN Language Report (version 1.2) is available.\n\nThe Windows95 version is nearing completion. We are in the phase of internally testing (and debugging) it with various applications.\n=== September 1996 ===\nThere are some new versions for you to download.\n\nFor OS/2 a version of CLEAN 1.1 is now available. This version no longer needs emx.\n\nSince it seems that most users of linux are now using the ELF distribution we have now produced two versions: the old a.out and the ELF one.\n\nFor the Sun versions there are new bug fix releases:\n* CLEAN 1.1.2 for Solaris (SunOS 5.x): bug fix release with the following fixes:\n# code generator now generates correct assembly for div and mod with large integer constants\n# removed debug trap from io library (no more \"get_exposed_area: it happened!\" messages)\n# fixed linking procedure, clm should now work with Solaris 5.5 on SparcStation4\n# fixed installation procedure, crt object modules are now copied to the clean/lib directory\n* CLEAN 1.1.2 for SunOS 4.x: a bug fix release with the following bug fixes:\n# code generator now generates correct assembly for div and mod with large integer constants\n# removed debug trap from io library (no more \"get_exposed_area: it happened!\" messages)\n\n=== August 1996 ===\nCLEAN1.1 releases for the Mac/68k, Sun/SunOS, Sun/Solaris and PC/Linux are now available.\nReleases for PowerMac, Linux/ELF and PC/OS2 are in preparation.\nReleases for PC/Windows95 and PC/WindowsNT are being developed. \n=== March 1996 ===\nCLEAN1.1 for the Macintosh is now available. Releases for other platforms will follow in the weeks to come.\n\nThere are some important changes from version 1.0 to 1.1. You can easily convert your 1.0 programs.\n\nThe first 5 (draft) chapters of the \"programming in CLEAN\" book are now available. It is recommended to use them instead of the old two introductory chapters.\n\nThe latest version of the draft CLEAN 1.1 Reference Manual is available now in a variety of formats.  \n=== February 1996 ===\nWe have added a new www page with references to manuals and books on CLEAN. We are working on a new book on CLEAN with lots of case studies showing you how to write real applications. The book discusses the CLEAN 1.1 system (on the net soon) and a CLEAN 0.8 I/O lib (which is already available on all platforms). Some draft versions of some chapters are avaialable now.\n=== October 1995 ===\nCLEAN 1.0 (version 1.0.2) is now also available for the Sun4 (Solaris). Both for the Solaris version as well as for the SunOS version one can choose to use an IO-lib based on the Open-Look toolkit or based on the X-View toolkit.  \n=== September 1995 ===\nCLEAN 1.0 (version 1.0.2) is now available for the following platforms: Macintosh (Motorola), PC (OS/2), PC (Linux) and Sun4 (SunOS). A native version for the PowerMac and Sun Solaris is under test and they will be released very soon.\n\nIn version 1.0.2 some bugs in the previous release have been removed. We recommend to update your old CLEAN system with this new release. \n\n=== June 1995 ===\nAnnouncement: CLEAN 1.0 (version 1.0.0) now available for Macintosh and PC(OS/2)\n\nPlatforms and availability:\n\nThe new system is now available on the Mac (Motorola) and on the PC (OS/2). We still have to do some small tests for the versions on the Sun (Sparc/SunOS and Sparc/Solaris). These systems will be released soon. A native version for the PowerMac (generating native code) is near completion and will follow later. A version for PC(Linux) with a converted third party version of the 0.8 I/O lib will also be made.\n\nPostscript versions of the documentation have now also been made available:\n* the Concurrent CLEAN 1.0 Language Report.\n* a quick introduction in functional programming using CLEAN 1.0( Chapter 1, Chapter 2, Appendix (syntax description and StdEnv + 0.8 I/O lib definition modules))\n\n* For information about the changes in the language compared to CLEAN 0.8 see the other CLEAN pages and/or the May 1995 update below.  \n=== May 1995 ===\nAnnouncement: CLEAN1.0 for Macintosh available\n\nWe have released a new version of CLEAN, version 1.0.0.\n\nPlatforms and availability:\nThe new system is currently only available on the Mac (Motorola). We still have to do some small tests for the versions on the Sun and OS/2. These systems will be released soon. A native version for the PowerMac (generating native code) is near completion and will follow later.\n\nCompared with the previous version of CLEANwe have added a lot of new features. Some are special, others are similar to those commonly found in other modern lazy functional languages (such as Miranda, ML, Haskell and Gofer). People familiar with these languages will have no difficulty to program in CLEAN and we hope that they enjoy the compilation speed and quality of the produced code.\n\nThe most important changes in the language are:\n* CLEAN has been changed from an intermediate language to a functional programming language with a syntax in the style of Miranda, Haskell and the like;\n* various small syntactic sugar is added (infix operators, a case construct, local function definitions, lambda-abstractions, list comprehensions, lay-out rule, etcetera);\n* overloaded functions, type classes and type constructor classes can be defined;\n* records and arrays are added as predefined data structure with handy operations (such as an update operator for arrays and records, array comprehensions etc.);\n* the uniqueness typing is refined (now polymorphic and inferred);\n* a more refined control of strictness is possible (partially strict data structures can be defined for any type, in particular for recursive types, there is a strict let construct);\n* existentially quantified types can be defined.\n\nConverting CLEAN0.8 programs to CLEAN1.0:\nThere is a CLEAN program which can convert old programs into the new CLEANnotation.\n\nI/O library:\nWe have converted the old CLEAN0.8 I/O library to the new syntax with help of the conversion program. This library will be available on all system such that you can port interactive CLEAN programs to other platforms without modification of code.\n\nWe are also preparing a new library, the CLEAN Standard I/O library as described in the new language report. It will also be put on the net later, people who want to experiment with it can contact us. We have this new lib only for the Mac and it will take some time before it will be on other systems as well.\n\nThe new I/O library has the following advantages over the old one:\n* the I/O library is improved (with respect to orthogonality, modularity, extendibility, portability);\n* the I/O library is extended allowing to define interactive processes running interleaved inside one application which can communicate via files, shared data and message passing;\n* one can define interactive processes which (in the near future) can run distributed on workstations connected via a network.\n=== December 1994 ===\nThe new CLEAN version is not yet there. A version including overloading (an extension we did not plan originally to be included in this version) is being tested on the Mac's on our corridor.\n\nWe have made a time schedule for tidying up, for small parts that were not done yet and for testing on mac, pc and sun. This makes that we are quite confident in announcing that the new release will be there before April, 1, 1995. Maybe, a pre-release on the Mac only will be possible at an earlier stage."
                    }
                ]
            },
            "178": {
                "pageid": 178,
                "ns": 0,
                "title": "SAPL",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "{|style=\"width:100%; border:none\"\n|style=\"width:70%; vertical-align: top; padding-right: 40px;\"|\n\n[[File:sapl-logo.png|left|text-top|300px|SAPL]]\n\n<span style=\"font-size:130%\">'''Note:''' ''The SAPL compiler infrastructure project is no longer in development. The content on these pages is provided as a historical reference only. The SAPL language and the SAPL to JavaScript compiler is integrated with the Clean compiler and still in development / maintaned, but the GHC to SAPL compiler is not maintained any more, because of the lack of resources to keep up with the changes of the SAPL language and the GHC compiler.''</span>\n\n\nSAPL is a purely functional, intermediate language and related infrastructure for supporting cross-compilation of lazy functional languages to different target platforms. It currently supports [[Clean]] and [http://www.haskell.org/ghc/\u200e Haskell/GHC] as source languages and provides JavaScript as target platform, however a [http://www.dartlang.org\u200e DART] and Java target is under development. SAPL is extensively used in the [[ITasks]] project, furthermore various GHC based projects are experimenting with SAPL.\n\n== Overview ==\n\nSAPL infrastructure consists of a few main parts built around the [[SAPL Language]].\n\n==== Source filters ====\n\nSource filters convert the source language to the SAPL language. Currently we have source filters for Clean and Haskell/GHC. For Clean, the filter is integrated into the compiler. As for Haskell/GHC, a separate compiler is provided based on the original one.\nDetailed instructions for their usages can be found at [[SAPL/Clean]] and [[SAPL/GHC]], respectively.\n\n==== SAPL linker ==== \n\nSAPL has hierarchical module support based on directory layout. Prior to the target compilation a linking\nstep is required to collect and combine, based on arbitrary root expressions, the necessary functions recursively from the separate modules into one SAPL file which will be the input of the target compilers.\n\nAs the SAPL language is designed for easy parsing, linking is very fast and straightforward compared to the linking\nof the target languages (e.g. JavaScript) and helps with minimizing the size of the output code.\n\n==== Flavours ====\n\nA flavour is a kind of configuration file used by the target compilers. It provides information about how to compile the built-in functions of a given source language to a given target language. It must be in sync with the source filter and source language dependent part of the run-time system. Flavours are provided for all the combinations of source and target languages.\n\n==== Target compilers ==== \n\nA target compiler transforms SAPL code into a given target language. The compilation must be aided by a flavour for the correct compilation of the built-in functions. The SAPL library supports the development of target languages by providing a lexer and parser for the SAPL language along with language transformation functions (e.g. Topological ordering of let definitions), and other support functions (e.g. strictness propagation, type inference etc). Currently JavaScript is the only target language supported, however DART and Java targets are under development.\n\n==== Target run-time ====\n\nRun-time functions are necessary to execute the target code. Some of these are independent of the source language and cope with e.g. lazy evaluation, while some are dependent of the source language and must be in sync with the source filter and the supporting flavour. Some language features must be supported by the run-time system, for the current state of/features supported by the run-times please consult with the appropriate page:\n\n* [[Clean/JavaScript]] \n* [[Haskell/GHC/JavaScript]]\n\n== Tutorial (Clean) ==\n\nThe SAPL compiler and linker is fully integrated into the upcoming version of the Clean compiler. \nUntil that becomes available, please contact me for instructions by dlacko@gmail.com.\n\n== Tutorial (GHC) ==\n\nAs for GHC a carefully adjusted environment must be used for the SAPL compilation (e.g. 32bit compiler must be used, \nfor more explanation please consult to [[Sapl/GHC]]). We use [http://www.vagrantup.com Vagrant] to provide this environment by virtualisation.\nHowever, you don't need any knowledge on Vagrant, all you have to do is to install [http://www.vagrantup.com/downloads.html Vagrant] in one simple step (you also need to install a low level virtualizer e.g. [https://www.virtualbox.org/ VirtualBox] and some SSH client if you do not have one installed), check out the following SVN URL\n\nhttps://svn.cs.ru.nl/repos/clean-sapl/trunk/platforms/GHC/vagrant\n\nand in directory where you checked out type\n\n  $ vagrant up \nfollowed by\n\n  $ vagrant ssh\nand you find yourself using a shell where all the SAPL components are available precompiled. The current directory outside the virtual machine can be accessed at the directory <tt>/vagrant</tt>.\nNow, create a <tt>hello.hs</tt> with the well knows \"Hello, World!\" example:\n\n  $ mkdir hello\n  $ cd hello\n  $ cat > hello.hs\n    main = putStrLn \"Hello, World!\"^D\nFirst step, compile it to SAPL:\n  $ ghcsapl hello.hs\nIt creates a <tt>Main.sapl</tt>, as SAPL file names are the names of the modules rather than the original file names.\n\nIf you are brave enough, have a look at the generated SAPL source code. It consists of three simple lines only,\nwith references to functions located in other modules, e.g. <tt>System.IO</tt>. For proper compilation you need to collect the\nnecessary functions from these modules. Precompiled SAPL files can be found in <tt>~/sapl/packages</tt>, \nthe base system modules are in <tt>core/base</tt> and <tt>core/ghc-prim</tt> within that. Use the <tt>sl</tt> command for linking:\n\n  $ sl -I ~/sapl/packages/core/base -I ~/sapl/packages/core/ghc-prim -i Main.sapl -e Main.main hello.sapl\nThis command produces a <tt>hello.sapl</tt> file which is already self-contained.\nFinally the\n  $ sapl2js -f ghc hello.sapl\nproduces JavaScript output of approximately 1300 bytes as <tt>hello.js</tt>. Please note the usage of the \"ghc\" flavour.\nI recommend one optimal step, the utilization of [https://developers.google.com/closure/compiler/ closure compiler] to reduce code size and execution time:\n  $ java -jar ~/sapl/tools/closure-compiler.jar --js_output_file hello_opt.js hello.js\nFor the execution check out the necessary run-time from the following URLs:\n\n* https://svn.cs.ru.nl/repos/clean-sapl/trunk/platforms/GHC/run-time\n* https://svn.cs.ru.nl/repos/clean-sapl/trunk/platforms/Common/run-time\n\nIt contains a template HTML file named <tt>client.html</tt> for the execution of a function placed in a file <tt>main.js</tt>.\nSo all you need is to copy all the files of the run-time and either <tt>hello.js</tt> or <tt>hello_opt.js</tt> (renamed to <tt>main.js</tt>)\ninto one common directory.\n\nFor more elaborated projects I also recommend to create a <tt>Makefile</tt>. For this simplistic case it could be like this:\n\n<pre>\nSL=sl --include-dir=~/sapl/packages/core/base \\\n      --include-dir=~/sapl/packages/core/ghc-prim\nS2JS=sapl2js -f ghc\nGHCSAPL=ghcsapl -O2\nCC=java -jar ~/sapl/tools/closure-compiler.jar   \n\nall: create hello_opt.js\n\t\nhello_opt.js:\n    $(GHCSAPL) --make hello.hs\n    $(SL) -i Main.sapl -e Main.main hello.sapl\n    $(SAPL2JS) hello.sapl\n    $(CC) --js_output_file hello_opt.js hello.js\n</pre>\n\n== Publications ==\n\nThere are two publications that are closely related to the current form of SAPL, however, both of them are slightly outdated. The SAPL language described in the first paper is already modified several times for various reasons, but the compilation scheme is still basically the same. As for the second paper, most of the shortcomings listed there are solved after the publication (some of them by adjusting the SAPL language itself) and currently the transformation scheme support all of the Haskell/GHC language features. The third paper describes the original SAPL language the first time.\n\n# L\u00e1szl\u00f3 Domoszlai and E. Bruel and J.M. Jansen. Implementing a non-strict purely functional language in JavaScript. ''Acta Univ. Sapientiae. Informatica'', 3(1):76-98, 2011\n# L\u00e1szl\u00f3 Domoszlai and Rinus Plasmeijer. Compiling Haskell to JavaScript through Clean's core. ''Annales Univ. Sci.'', 36:117--142, 2012. Selected papers of 9th Joint Conference on Mathematics and Computer Science, MaCS 2012, February 9-12, 2012, Si\u00f3fok, Hungary\n# J.M. Jansen and P. Koopman, and R. Plasmeijer. Efficient interpretation by transforming data types and patterns to functions. ''Selected Papers of the 7th Symposium on Trends in Functional Programming, TFP'06'', volume 7, pages 73-90, Nottingham, UK, 2006.\n\n== Contact ==\n\nIf you have any question related to any part of the SAPL infrastructure, please do not hesitate to contact to L\u00e1szl\u00f3 Domoszlai by dlacko@gmail.com.\n\n|style=\"width:30%; vertical-align: top; padding-right: 20px;\"|\n\n== News ==\n\n* '''January 2 2014''': The first draft version of the SAPL wiki is added\n\n|}"
                    }
                ]
            }
        }
    }
}