source: trunk/dports/devel/haskell-platform/Portfile @ 131199

Last change on this file since 131199 was 131199, checked in by cal@…, 4 years ago

haskell-platform: update to 2014.2.0.0, closes #44891, includes GHC 7.8.3 built with clang and newer bootstrap GHC, requires revbump of all haskell ports (to follow)

Obsoletes the hs-transformers and hs-xhtml ports, since these packages are installed by the GHC port now.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 24.4 KB
Line 
1# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
2# $Id: Portfile 131199 2015-01-06 19:48:29Z cal@macports.org $
3
4PortSystem      1.0
5
6name            haskell-platform
7
8if {$subport == $name} {
9    version         2014.2.0.0
10    categories      devel haskell
11    maintainers     cal openmaintainer
12    description     \
13        The Haskell Platform is the easiest way to get started with programming \
14        Haskell. It comes with all you need to get up and running. Think of it as \
15        \"Haskell: batteries included\".
16    long_description \
17        The Haskell Platform is a comprehensive, robust development environment for \
18        programming in Haskell. For new users the platform makes it trivial to get \
19        up and running with a full Haskell development environment. For experienced \
20        developers, the platform provides a comprehensive, standard base for \
21        commercial and open source Haskell development that maximises \
22        interoperability and stability of your code.
23
24    platforms       darwin
25    homepage        http://hackage.haskell.org/platform/
26    master_sites    ${homepage}
27    license         Permissive
28
29    depends_run     port:ghc
30
31    fetch {}
32    checksum {}
33    extract {}
34    configure {}
35    build {}
36    destroot {
37        xinstall -d ${destroot}${prefix}/share/doc/${name}
38        system "echo ${long_description} > ${destroot}${prefix}/share/doc/${name}/README.txt"
39    }
40
41    use_configure       no
42    universal_variant   no
43
44    livecheck.type      regex
45    livecheck.url       ${homepage}
46    livecheck.regex     "Current release: <a href=\"changelog.html\">(\\d+\\.\\d\\.\\d\\.\\d)</a>"
47}
48
49##
50# Helper proc containing the defaults for the haskell platform ports following
51# after this block. Modeled after the subport mechanism in base, it creates
52# a subport for each given port and executes Portfile code in the context of
53# the newly created subport.
54#
55# @param[in] pkgname     the name of the haskell package, case-sensitive
56# @param[in] pkgversion  the version to be packaged in haskell platform
57# @param[in] pkgrevision the current revision of the port in MacPorts
58# @param[in] block       a block of code to be executed in the subport, optional
59proc haskell_platform_port {pkgname pkgversion pkgrevision {block {}}} {
60    uplevel 1 "
61        subport hs-[string tolower ${pkgname}] {
62            PortGroup               haskellplatform 2.0
63            haskellplatform.setup   ${pkgname} ${pkgversion}
64            revision                ${pkgrevision}
65
66            # Make sure to check this for every port!
67            license                 BSD
68            maintainers             cal openmaintainer
69            platforms               darwin
70
71            pre-activate {
72                # deactivate hs-platform versions of these ports; they are outdated.
73                # deactivate hack added 2013-06-06
74                if {!\[catch {set installed \[lindex \[registry_active hs-platform-[string tolower ${pkgname}]] 0]}]} {
75                    registry_deactivate_composite hs-platform-[string tolower ${pkgname}] \"\" \[list ports_nodepcheck 1]
76                }
77            }
78
79            ${block}
80        }
81
82        if {\${subport} eq \${name}} {
83            depends_run-append  port:hs-[string tolower ${pkgname}]
84        }
85    "
86}
87
88##
89# Helper proc for tools and programs in the Haskell Platform. This behaves
90# exactly like \c haskell_platform_port, with the exception of passing "no" as
91# third argument to \c haskellplatform.setup of the haskellplatform PortGroup.
92#
93# @param[in] pkgname     the name of the haskell package, case-sensitive
94# @param[in] pkgversion  the version to be packaged in haskell platform
95# @param[in] pkgrevision the current revision of the port in MacPorts
96# @param[in] block       a block of code to be executed in the subport, optional
97proc haskell_platform_tool {pkgname pkgversion pkgrevision {block {}}} {
98    uplevel 1 "
99        subport hs-[string tolower ${pkgname}] {
100            PortGroup               haskellplatform 2.0
101            haskellplatform.setup   ${pkgname} ${pkgversion} no
102            revision                ${pkgrevision}
103
104            # Make sure to check this for every port!
105            license                 BSD
106            maintainers             cal openmaintainer
107            platforms               darwin
108
109            pre-activate {
110                # deactivate hs-platform versions of these ports; they are outdated.
111                # deactivate hack added 2013-06-06
112                if {!\[catch {set installed \[lindex \[registry_active hs-platform-[string tolower ${pkgname}]] 0]}]} {
113                    registry_deactivate_composite hs-platform-[string tolower ${pkgname}] \"\" \[list ports_nodepcheck 1]
114                }
115            }
116
117            ${block}
118        }
119
120        if {\${subport} eq \${name}} {
121            depends_run-append  port:hs-[string tolower ${pkgname}]
122        }
123    "
124}
125
126
127#################################
128# Additional Platform Libraries #
129#################################
130
131haskell_platform_port async 2.0.1.5 0 {
132    checksums               rmd160  0ec360bc373c4ca0b3c7617ec611f2414804e9cd \
133                            sha256  cd13ac558f4f63e567100805770648e89307a3210852b17038c9be4fcc3aa83c
134
135    depends_lib-append      port:hs-stm
136
137    description             Run IO operations asynchronously and wait for their results
138    long_description        \
139        This package provides a higher-level interface over threads, in which an \
140        Async a is a concurrent thread that will eventually deliver a value of type \
141        a. The package provides ways to create Async computations, wait for their \
142        results, and cancel them. \
143        Using Async is safer than using threads in two ways:\n\
144        - When waiting for a thread to return a result, if the thread dies with an \
145        exception then the caller must either re-throw the exception (wait) or \
146        handle it (waitCatch)\; the exception cannot be ignored.\n\
147        - The API makes it possible to build a tree of threads that are \
148        automatically killed when their parent dies (see withAsync).
149}
150
151haskell_platform_port attoparsec 0.10.4.0 3 {
152    checksums               rmd160  1fc9845e60fb0cddc9ffa8838c446b3046cd3522 \
153                            sha256  b6b84e0dbd1c3beec1dedea578ac2f4d62afbe66b383582b7b3349406866d346
154
155    depends_lib-append      port:hs-text
156
157    description             Fast combinator parsing for bytestrings and text
158    long_description        \
159        A fast parser combinator library, aimed particularly at dealing \
160        efficiently with network protocols and complicated text/binary file \
161        formats.
162}
163
164haskell_platform_port case-insensitive 1.1.0.3 0 {
165    checksums               rmd160  351ebf0ae84c4c580b910dbd3ed0828b309874c7 \
166                            sha256  7b255fe63155d53ab84b248ab5ba9306fd4bec47a6198e3275cf9cb41c4d263b
167
168    depends_lib-append      port:hs-hashable \
169                            port:hs-text
170
171    description             Case insensitive string comparison
172    long_description        \
173        The module Data.CaseInsensitive provides the CI type constructor which \
174        can be parameterised by a string-like type like: String, ByteString, \
175        Text, etc.. Comparisons of values of the resulting type will be \
176        insensitive to cases.
177}
178
179haskell_platform_port fgl 5.5.0.1 0 {
180    checksums               rmd160  c6c1f89db51d8d3ce6687dab13109c7f40c9c10c \
181                            sha256  aa61664ba38db3e54124b702b1ee92a72a569c981b759e48cfb567078b038763
182
183    depends_lib-append      port:hs-mtl
184
185    description             Martin Erwig's Functional Graph Library
186    long_description        ${description}
187}
188
189haskell_platform_port GLUT 2.5.1.1 0 {
190    checksums               rmd160  b6e4bad4109307a614c3ba93aa1f3f8857ae45dc \
191                            sha256  4a8177e154ead5a7bcc110f8fe408f9cf720783dde024ac1936cd95b659b2d59
192
193    depends_lib-append      port:hs-opengl
194
195    description             A binding for the OpenGL Utility Toolkit
196    long_description        \
197        A Haskell binding for the OpenGL Utility Toolkit, a window system \
198        independent toolkit for writing OpenGL programs.
199}
200
201haskell_platform_port GLURaw 1.4.0.1 0 {
202    checksums               rmd160  1fa7a906c6f99d9540b200de038a2a734e576cea \
203                            sha256  9655644beb54ff8fac68f2e0fd8a8e9a1e8409272e2e4c963ccce9bcd60e0ecc
204
205    depends_lib-append      port:hs-openglraw
206
207    description             A raw binding for the OpenGL graphics system
208    long_description        \
209        GLURaw is a raw Haskell binding for the GLU 1.3 OpenGL utility library. \
210        It is basically a 1:1 mapping of GLU's C API, intended as a basis for \
211        a nicer interface.
212}
213
214haskell_platform_port hashable 1.2.2.0 0 {
215    checksums               rmd160  33f9040f2afcb93d6475d8872aef4c164a4cff5e \
216                            sha256  033a90b0369af59bf922d0c2af8d73a18432b46b0a47607f436d38f873a88e21
217
218    depends_lib-append      port:hs-text
219
220    description             A class for types that can be converted to a hash value
221    long_description        \
222        This package defines a class, Hashable, for types that can be converted \
223        to a hash value. This class exists for the benefit of hashing-based \
224        data structures. The package provides instances for basic types and \
225        a way to combine hash values.
226}
227
228haskell_platform_port haskell-src 1.0.1.6 0 {
229    checksums               rmd160  649a0f9f116cb90f03411a9e8d53b17409c38134 \
230                            sha256  c7c556366025d9895d1110ecfa30a29e29d7d0a8cb447716fe601e4ff5da4cef
231
232    depends_lib-append      port:hs-syb
233
234    description             Support for manipulating Haskell source code
235    long_description        \
236        The haskell-src package provides support for manipulating Haskell \
237        source code. The package provides a lexer, parser and pretty-printer, \
238        and a definition of a Haskell abstract syntax tree (AST). Common uses \
239        of this package are to parse or generate Haskell 98 code.
240}
241
242haskell_platform_port html 1.0.1.2 5 {
243    checksums               rmd160  55d95a42c297c9c4b0b0c3bbd077a5ed59e48878 \
244                            sha256  0c35495ea33d65e69c69bc7441ec8e1af69fbb43433c2aa3406c0a13a3ab3061
245
246    description             HTML combinator library
247    long_description        \
248        This package contains a combinator library for constructing HTML documents.
249}
250
251haskell_platform_port HTTP 4000.2.10 0 {
252    checksums               rmd160  b1e3a1aec27c3e09fe1f93f93ab717cc4e576504 \
253                            sha256  efde6d9f2e8cd7b72068579f0a75449703c0fa7aee76dfc0f3af175295a127d1
254
255    depends_lib-append      port:hs-network \
256                            port:hs-mtl \
257                            port:hs-parsec
258
259    description             A library for client-side HTTP
260    long_description        \
261        The HTTP package supports client-side web programming in Haskell. It \
262        lets you set up HTTP connections, transmitting requests and processing \
263        the responses coming back, all from within the comforts of Haskell. \
264        It's dependent on the network package to operate, but other than that, \
265        the implementation is all written in Haskell.
266}
267
268haskell_platform_port HUnit 1.2.5.2 2 {
269    checksums               rmd160  f6ac9ac12c152609174ea80a3a0c694210c81594 \
270                            sha256  0af5ad34dba27de48b94ce6d5f7ee3aa6af6183bdc4a3967b811e28520369a41
271
272    description             A unit testing framework for Haskell
273    long_description        \
274        HUnit is a unit testing framework for Haskell, inspired by the JUnit \
275        tool for Java, see: http://www.junit.org.
276}
277
278haskell_platform_port mtl 2.1.3.1 0 {
279    checksums               rmd160  f6432fb7e64d66eff69f02ccca9fc30ac5dce502 \
280                            sha256  77af766957fb49361fe63446f272a698bddb13398669edc363022e5c2517f6f6
281
282    description             Monad classes, using functional dependencies
283    long_description        \
284        Monad classes using functional dependencies, with instances for various \
285        monad transformers, inspired by the paper Functional Programming with \
286        Overloading and Higher-Order Polymorphism, by Mark P Jones, in Advanced \
287        School of Functional Programming, 1995
288}
289
290haskell_platform_port network 2.4.2.3 0 {
291    checksums               rmd160  38f20be22e51a902a00416bad1e63480316e8348 \
292                            sha256  801b9c652dae626bf4a96175162b1290e7fe7ff20d802d62434d5ae1d363c16d
293
294    depends_lib-append      port:hs-parsec
295
296    description             Low-level networking interface
297    long_description        ${description}
298}
299
300haskell_platform_port OpenGL 2.9.2.0 0 {
301    checksums               rmd160  b238630bd16d37485c58835a643d965ac6c61ef2 \
302                            sha256  1758f6cacc9ea8f0d410fd0abc1a19f2a50dffdb62736d66d4e62b20619545e9
303
304    depends_lib-append      port:hs-gluraw \
305                            port:hs-openglraw \
306                            port:hs-text
307
308    description             A binding for the OpenGL graphics system
309    long_description        \
310        A Haskell binding for the OpenGL graphics system (GL, version 4.4) and \
311        its accompanying utility library (GLU, version 1.3).
312}
313
314haskell_platform_port OpenGLRaw 1.5.0.0 0 {
315    checksums               rmd160  6ede61cb59090ede7d3ec1df41311a8e14496080 \
316                            sha256  852aa5229722269d70daed3c04b95e9dc7b7013efd62ebc4f2873a81768b9a12
317
318    description             A raw binding for the OpenGL graphics system
319    long_description        \
320        OpenGLRaw is a raw Haskell binding for the OpenGL 3.2 graphics system \
321        and lots of OpenGL extensions. It is basically a 1:1 mapping of \
322        OpenGL's C API, intended as a basis for a nicer interface. OpenGLRaw \
323        offers access to all necessary functions, tokens and types plus \
324        a general facility for loading extension entries. The module hierarchy \
325        closely mirrors the naming structure of the OpenGL extensions, making \
326        it easy to find the right module to import. All API entries are loaded \
327        dynamically, so no special C header files are needed for building this \
328        package. If an API entry is not found at runtime, a userError is \
329        thrown.
330}
331
332haskell_platform_port parallel 3.2.0.4 0 {
333    checksums               rmd160  4bc31de0b3dd63ca8d24c967f32a2ee40f0a2d64 \
334                            sha256  8cdb637fc04e4dd62f9deb0fe3c191b8068526009960f297f54dc9cf5616146d
335
336    description             Parallel programming library
337    long_description        This package provides a library for parallel programming.
338}
339
340haskell_platform_port parsec 3.1.5 0 {
341    checksums               rmd160  4d27dffd266c38cc3266ea17b792e00f180b3968 \
342                            sha256  c572245d72bc3aff3491ce4f89215fcaa1e01c5e7b280d4c105a87db31793cb8
343
344    depends_lib-append      port:hs-mtl \
345                            port:hs-text
346
347    description             Monadic parser combinators
348    long_description        \
349        Parsec is designed from scratch as an industrial-strength parser \
350        library. It is simple, safe, well documented (on the package homepage), \
351        has extensive libraries and good error messages, and is also fast. It \
352        is defined as a monad transformer that can be stacked on arbitrary \
353        monads, and it is also parametric in the input stream type.
354}
355
356haskell_platform_port primitive 0.5.2.1 0 {
357    checksums               rmd160  b456047baa641acc897a871cc2212f9f3a2c576f \
358                            sha256  0e516b81c2ef2c96d47dc40561663cc2cbfece0f135948e77e9b53025ff1c3ee
359
360    description             Primitive memory-related operations
361    long_description        This package provides various primitive memory-related operations.
362}
363
364haskell_platform_port QuickCheck 2.6 2 {
365    checksums               rmd160  94bab2dcefdd7a6eddd5af7211db1babf39e0df8 \
366                            sha256  8001c00a1892714d914e5007ba72cdd428c1ea4c6b8418c6cb5e7809753d970d
367
368    depends_lib-append      port:hs-random
369
370    description             Automatic testing of Haskell programs
371    long_description        \
372        QuickCheck is a library for random testing of program properties. The \
373        programmer provides a specification of the program, in the form of \
374        properties which functions should satisfy, and QuickCheck then tests \
375        that the properties hold in a large number of randomly generated cases.
376}
377
378haskell_platform_port random 1.0.1.1 4 {
379    checksums               rmd160  a13a4d7fefd15611cf863f11caf212efede320c3 \
380                            sha256  df7c3b405de0ac27a2ee8fdc8dad87cb42e8eac01fef53861e43bc47c8111559
381         
382    description             random number library
383    long_description        \
384        This package provides a basic random number generation library, including \
385        the ability to split random number generators.
386}
387
388haskell_platform_port regex-base 0.93.2 4 {
389    checksums               rmd160  c009e193dd453666c7c3b585a25f3a8add7ec6b6 \
390                            sha256  20dc5713a16f3d5e2e6d056b4beb9cfdc4368cd09fd56f47414c847705243278
391
392    depends_lib-append      port:hs-mtl
393
394    description             Replaces/Enhances Text.Regex
395    long_description        Interface API for regex-posix,pcre,parsec,tdfa,dfa
396}
397
398haskell_platform_port regex-compat 0.95.1 4 {
399    checksums               rmd160  b2fe02ca3c4e9027b2d433c8a265b19a85c8bd17 \
400                            sha256  d57cb1a5a4d66753b18eaa37a1621246f660472243b001894f970037548d953b
401
402    depends_lib-append      port:hs-regex-base \
403                            port:hs-regex-posix
404
405    description             Replaces/Enhances Text.Regex
406    long_description        One module layer over regex-posix to replace Text.Regex
407}
408
409haskell_platform_port regex-posix 0.95.2 3 {
410    checksums               rmd160  7ee59eb760bb8c0c7fe17e17d90eb0623b9fd5bb \
411                            sha256  56019921cd4a4c9682b81ec614236fea816ba8ed8785a1640cd66d8b24fc703e
412
413    depends_lib-append      port:hs-regex-base
414
415    description             Replaces/Enhances Text.Regex
416    long_description        The posix regex backend for regex-base
417}
418
419haskell_platform_port split 0.2.2 2 {
420    checksums               rmd160  7d4fe221283836386807f0e73a90df1255061f6f \
421                            sha256  f9cf9e571357f227aed5be9a78f5bbf78ef55c99df2edf7fdc659acc1f904375
422
423    description             Combinator library for splitting lists.
424    long_description        \
425        A collection of various methods for splitting lists into parts, akin to \
426        the "split" function found in several mainstream languages.
427}
428
429haskell_platform_port stm 2.4.2 2 {
430    checksums               rmd160  7d49257f7e2de7cf18e02dc3ceeb4619d7980dd8 \
431                            sha256  c8ee3cd64c266133902619cfff2d04e5f66206f91dbce8dd1182037fbe4858db
432
433    description             Software Transactional Memory
434    long_description        A modular composable concurrency abstraction.
435}
436
437haskell_platform_port syb 0.4.1 0 {
438    checksums               rmd160  4ed2329f3c915adb91fb5b1f6b3735e219d1fdd6 \
439                            sha256  aa32cb3d9a0cbcfb24ac1c5d567886e8908dd017fd009ffd446bff86732670d2
440
441    description             Scrap Your Boilerplate
442    long_description        \
443        This package contains the generics system described in the Scrap Your \
444        Boilerplate papers (see \
445        http://www.cs.uu.nl/wiki/GenericProgramming/SYB). It defines the Data \
446        class of types permitting folding and unfolding of constructor \
447        applications, instances of this class for primitive types, and \
448        a variety of traversals.
449}
450
451haskell_platform_port text 1.1.0.0 0 {
452    checksums               rmd160  b57efc9cbf277cd914a9e148129e42ae861771b8 \
453                            sha256  80f1ada824f0e3886bb49dc7fd128707ca1a34e06bbf4419873b1677c4d7ba92
454
455    description             An efficient packed Unicode text type
456    long_description        \
457        An efficient packed, immutable Unicode text type (both strict and lazy), \
458        with a powerful loop fusion optimization framework.
459}
460
461haskell_platform_port unordered-containers 0.2.4.0 0 {
462    checksums               rmd160  0d62b6b8f95e65890e07934413cd1377ed1e85e5 \
463                            sha256  34eaeb0c96d84169aca7085cf21f89bedb4bdb4de2ac78358a087faeea93cdf4
464
465    depends_lib-append      port:hs-hashable
466
467    description             Efficient hashing-based container types
468    long_description        \
469        Efficient hashing-based container types. The containers have been \
470        optimized for performance critical use, both in terms of large data \
471        quantities and high speed.
472}
473
474haskell_platform_port vector 0.10.9.1 0 {
475    checksums               rmd160  885ba057a05219ae6a35170539c68996d2074668 \
476                            sha256  205656e9741aad406e427e988dbf1665bf5dbdf3e9d574e309c274be4e06bde5
477
478    depends_lib-append      port:hs-primitive
479
480    description             Efficient Arrays
481    long_description        \
482        An efficient implementation of Int-indexed arrays (both mutable and \
483        immutable), with a powerful loop optimisation framework.
484}
485
486haskell_platform_port zlib 0.5.4.1 3 {
487    checksums               rmd160  9ed49e79e239604958a9c385cca75747fafc2713 \
488                            sha256  cca365e4c52c90be41a5754943134da5ce6c60bb52fa00c128fd118e0505a550
489
490    depends_lib-append      port:zlib
491
492    description             Compression and decompression in the gzip and zlib formats
493    long_description        \
494        This package provides a pure interface for compressing and \
495        decompressing streams of data represented as lazy ByteStrings. It uses \
496        the zlib C library so it has high performance. It supports the \"zlib\", \
497        \"gzip\" and \"raw\" compression formats.
498}
499
500######################
501# Programs and Tools #
502######################
503
504haskell_platform_tool cabal-install 1.18.0.5 0 {
505    checksums               rmd160  f07279510e03678ad5e3720d9e01707681f874ea \
506                            sha256  477df8ef73916e8bc23c727280a1700939131a3e2809a057668c883b0b521782
507
508    depends_lib-append      port:hs-http \
509                            port:hs-mtl \
510                            port:hs-network \
511                            port:hs-random \
512                            port:hs-stm \
513                            port:hs-zlib
514
515    description             The command-line interface for Cabal and Hackage
516    long_description        \
517        The 'cabal' command-line program simplifies the process of managing Haskell \
518        software by automating the fetching, configuration, compilation and \
519        installation of Haskell libraries and programs.
520}
521
522haskell_platform_tool alex 3.1.3 0 {
523    checksums               rmd160  2325ccfc770264c517d2dfa38cece9376d4e252d \
524                            sha256  8d41a6e72a016155f00c846f7146ab4b27fe9640668a4b592d6a9b856f970a92
525
526    depends_lib-append      port:hs-quickcheck
527
528    description             A tool for generating lexical analysers in Haskell
529    long_description        \
530        Alex is a tool for generating lexical analysers in Haskell. It takes \
531        a description of tokens based on regular expressions and generates \
532        a Haskell module containing code for scanning text efficiently. It is \
533        similar to the tool lex or flex for C/C++.
534}
535
536haskell_platform_tool happy 1.19.4 0 {
537    checksums               rmd160  8ec09c4743d85ae493354e49df07f0ee423267cf \
538                            sha256  6be499f66c61f8c48cbbbcb70515eb8e62c2bfa08adcc8c9474e7ae343a6936d
539
540    depends_lib-append      port:hs-mtl
541    description             A parser generator for Haskell
542    long_description        \
543        Happy is a parser generator for Haskell. Given a grammar specification \
544        in BNF, Happy generates Haskell code to parse the grammar. Happy works \
545        in a similar way to the yacc tool for C.
546}
547
548haskell_platform_tool hscolour 1.20.3 0 {
549    checksums               rmd160  2d875ecdb910a5955a5ec049935a74c60edbc4cc \
550                            sha256  3adb816fba3ecdf9f1ee5fb23feb0611b0762f7e8c2a282c2def5cc2f5483d96
551
552    license                 GPL-2+
553
554    description             Colourise Haskell code
555    long_description        \
556        hscolour is a small Haskell script to colourise Haskell code. It \
557        currently has six output formats: ANSI terminal codes (optionally \
558        XTerm-256colour codes), HTML 3.2 with font tags, HTML 4.01 with CSS, \
559        HTML 4.01 with CSS and mouseover annotations, XHTML 1.0 with inline CSS \
560        styling, LaTeX, and mIRC chat codes.
561}
Note: See TracBrowser for help on using the repository browser.