]> granicus.if.org Git - re2c/commitdiff
Updated the main page.
authorUlya Trofimovich <skvadrik@gmail.com>
Wed, 16 Aug 2017 10:52:37 +0000 (11:52 +0100)
committerUlya Trofimovich <skvadrik@gmail.com>
Wed, 16 Aug 2017 10:52:37 +0000 (11:52 +0100)
src/index.rst
src/news/release_notes/1_0_1.rst

index 6ca08d7ee9db9aa9b0a62f3f8e64aedb49ffc03f..37cc7e43e2904df865685749cb4299a68d9ea759 100644 (file)
@@ -12,56 +12,72 @@ re2c
     News <news/news>
 
 
-re2c is a lexer generator for C/C++.
-Its key features are:
+re2c is a free and open-source lexer generator for C and C++.
+Its main goal is generating *fast* lexers: at least as fast as their reasonably optimized hand-coded counterparts.
+Instead of using traditional table-driven approach, re2c encodes the generated finite state automata directly in the form of conditional jumps and comparisons.
+The resulting programs are faster and often smaller than their table-driven analogues,
+and they are much easier to debug and understand.
+re2c applies quite a few optimizations in order to speed up and compress the generated code.
+Another distinctive feature is its flexible interface: instead of assuming a fixed program template,
+re2c lets the programmer write most of the interface code and adapt the generated lexer to any particular environment.
 
-*   Very fast lexers: the generated code is as good as a carefully tuned, hand-crafted C/C++ lexer.
-    This is because re2c generates minimalistic, hard-coded state machines
-    (as opposed to full-featured table-based lexers).
 
-*   Flexible API: one can `configure <manual/syntax/syntax.html#configurations>`_
-    or even `completely override <manual/features/generic_api/generic_api.html>`_
-    the way re2c generates code.
-    Programmers can adjust their lexer to a particular input model,
-    avoid unnecessary overhead (drop useless runtime checks, do in-place lexing, etc.),
-    and make all sorts of hacks.
-    The `examples <examples/examples.html>`_ cover many real-world cases and shed some light on the dark corners of the re2c API.
 
-*   Efficient `Unicode support <manual/features/encodings/encodings.html>`_
-    (code points are compiled into executable finite-state machines).
+Features
+--------
 
-*   `Warnings <manual/warnings/warnings.html>`_.
+*   `submatch extraction and parsing <manual/features/submatch/submatch.html>`_
+    based on the efficient `novel algorithm <2017_trofimovich_tagged_deterministic_finite_automata_with_lookahead.pdf>`_
 
-*   `Autogenerated tests <manual/features/skeleton/skeleton.html>`_ with very good coverage.
+*   `encoding support <manual/features/encodings/encodings.html>`_ for ASCII, UTF-8, UTF-16, UTF-32, UCS-2, EBCDIC
 
-*   `License <about/about.html>`_ (public domain).
+*   highly `configurable <manual/syntax/syntax.html#configurations>`_ interface
+    and `generic input API <manual/features/generic_api/generic_api.html>`_
 
+*   `self-validation <manual/features/skeleton/skeleton.html>`_
+    and static analysis in the form of `warnings <manual/warnings/warnings.html>`_
 
+*   ... and other `useful features <manual/features/features.html>`_
 
-Bugs & feedback
----------------
 
-Please send feedback to `re2c-devel <re2c-devel@lists.sourceforge.net>`_ and
-the `re2c-general <re2c-general@lists.sourceforge.net>`_ mailing lists
-(search `mail archives <https://sourceforge.net/p/re2c/mailman/>`_ for old threads),
-or `report a bug <https://github.com/skvadrik/re2c/issues>`_.
-
-Note that re2c is hosted on both `github <https://github.com/skvadrik/re2c>`_
-and `sourceforge <https://sourceforge.net/p/re2c>`_ for redundancy.
-Currently, github serves as the main repository, bugtracker, and hosting site for binaries.
-Sourceforge is used as a backup repository and for mail
-(so please don't send your bugreports or feedback to sourceforge).
 
 
 News & updates
 --------------
 
+* `Release 1.0.1 <news/release_notes/1_0_1.html>`_
+* `Release 1.0 <news/release_notes/1_0.html>`_
+* ... and `older news <news/news.html>`_
+
+
 .. |feed| image:: feed/feed/feed.png
     :target: feed/atom.xml
     :class:  feed
     :width:  2em
 
-Subscribe to receive the latest news and updates: |feed|
+`Subscribe <feed/atom.xml>`_ to receive the latest news and updates: |feed|
+
+
+
+Bugs & feedback
+---------------
+
+The best place to report a bug is `on github <https://github.com/skvadrik/re2c>`_
+or in `re2c-devel <re2c-devel@lists.sourceforge.net>`_ and `re2c-general <re2c-general@lists.sourceforge.net>`_ mailing lists.
+Note that re2c is hosted on both `github <https://github.com/skvadrik/re2c>`_
+and `sourceforge <https://sourceforge.net/p/re2c>`_:
+github serves as the main repository, bugtracker, and tarball hosting;
+sourceforge is used as a backup repository and for mail.
+
+
+
+Contribute
+----------
+
+Contributions can come in various forms: bug reports, patches, pull requests, discussion.
+A very easy and valuable contribution is adding your lexer to the main re2c test suite
+(this is also a good way to make sure that re2c updated will not break your code).
+All contributions are welcome!
 
 
 
@@ -79,21 +95,3 @@ This list is by no means complete.
 These are only the best-known and open source projects.
 
 
-
-Contribute
-----------
-
-Contributions come in various forms:
-
-* Tests: a very easy and valuable way of contributing is by adding your lexer to the re2c test suite.
-  Real-world tests are the best.
-  Feel free to strip out all non-re2c code if you must keep it secret.
-  In return, re2c will not break your code (re2c developers strive to never break existing tests).
-
-* Ideas: new features and new ways to use re2c.
-
-* Development: bugfixes, features, and ports to other languages.
-
-Everyone is welcome!
-
-
index 1df386561030e674a7784498b4088de3667c4b72..c3852935b3bf1db293bf44fcf43ca687bf436b49 100644 (file)
@@ -2,8 +2,10 @@
 Release 1.0.1
 =============
 
-This is a minor bug-fix release.
-It addresses the following issues:
+*by Ulya Trofimovich*
+
+This is a minor bug-fix release; see `release 1.0 <./1_0.html>`_ for details.
+This release addresses the following issues:
 
 .. include:: ../changelog/1_0_1_list.rst