[ANN] Syck 0.41 -- 95% Support, Bytecode, Bugfixes

Discussion in 'Ruby' started by why the lucky stiff, Oct 14, 2003.

  1. friends, countrymen:

    Happy to announce Syck 0.41. Syck is the YAML toolkit, the undying
    force that backs Ruby 1.8's YAML support. This distribution provides
    support for YAML parsing in Python, PHP, and Ruby 1.6.x/1.7.x as well.

    This latest release is a world of improvement over the 0.35 release.
    Numerous bugfixes from users, improvements that bring the parser to
    approximately 95% of the YAML spec, and preliminary support for YAML
    bytecode parsing. In addition, Clark Evan's bytecode emitter is

    Please note that the Python extension is in some disarray as stream
    parsing and type handling are in the works still. Some of this code is still
    beta software and here's my disclaimer as far as that goes: I'm not
    going to say "Use at your own risk" because I don't want this library to
    be risky. If you trip on something, I'll share the liability by
    repairing things as quickly as I can. Your responsibility is to report
    the inadequacies. All the quicker we can those pieces out of beta.

    Release notes below.


    released: { name: Syck, version: 0.41 }
    for: [ Ruby, PHP, Python ]
    by: why the lucky stiff
    about: >

    Syck is a YAML parser, an extension for scripting
    languages, written in C.

    So what is YAML? YAML is a new language for data.
    Describe objects in plain text. Load the data into
    your scripting language as arrays, dictionaries,
    classes, or primitives.

    YAML: http://www.yaml.org/
    YAML Cookbook: http://yaml4r.sf.net/cookbook/
    YAML Type Repository: http://yaml.org/type/
    YAML Specification: http://yaml.org/spec/
    Syck: http://www.whytheluckystiff.net/syck/
    Syck Benchmarks: http://www.whytheluckystiff.net/arch/2003/03/19
    Tarball @ SourceForge: http://aleron.dl.sourceforge.net/sourceforge/yaml4r/syck-0.41.tar.gz

    status: >

    Syck is about 95% compliant with the YAML spec. Largely, small
    issues remain.

    The extensions are quite usable. Ruby, PHP and Python
    can load from a string containing YAML.

    Ruby has support for stream loading, type handling, YPath, Okay.
    This release includes an amount of Ruby code comprising the 0.60
    release of YAML.rb.

    benchmarks: >

    Syck is quite speedy, although not as swift as most language's
    native serialization.

    Syck runs at about:

    30-35% of the speed of Ruby's Marshal.
    35-90% of the speed of PHP's deserialize().
    600% of the speed of Python's Pickle.
    33-40% of the speed of Python's cPickle.

    (Based on various types of structured data.)

    installation: >

    Syck contains working extensions for the Ruby, PHP, and Python
    languages. Each requires compilation of the libsyck library,
    followed by compilation of the extension.

    To compile libsyck, first download libsyck.

    tar xzvf syck-0.41.tar.gz
    cd syck-0.41
    sudo make install

    To install the Ruby extension:

    cd ext/ruby
    ruby install.rb config
    ruby install.rb setup
    sudo ruby install.rb install

    To install the Python extension:

    cd ext/python
    python setup.py build
    sudo python setup.py install

    To install the PHP extension:

    sh make_module.sh
    sudo make install (if you weren't root during make_module.sh)
    php -q syck.php


    To load this document in Ruby: |

    ($:~)$ irb
    >> require 'yaml'

    => true
    >> YAML::load( File.open( 'syck-0.41.yml' ) )

    => {"status"=>"Syck is about 60% compliant ..."}

    To load this document in PHP: |

    ($:~)$ php -a
    Interactive mode enabled

    <? dl( 'syck.so' ); print_r( syck_load( implode( '', file( 'syck-0.41.yml' ) ) ) ); ?>

    .. php then outputs ..

    X-Powered-By: PHP/4.2.3
    Content-type: text/html

    [released] => Array
    [name] => Syck
    [version] => 0.41

    .. and so on ..

    To load this document in Python: |

    ($:~)$ python
    Python 2.1.3 (#1, Jul 11 2002, 17:52:24)
    [GCC 2.95.3 20010315 (release) [FreeBSD]] on freebsd4
    Type "copyright", "credits" or "license" for more information.
    >>> import syck
    >>> f = open( 'syck-0.41.yml' )
    >>> syck.load( f.read() )

    {'by': 'why the lucky stiff', ... }
    why the lucky stiff, Oct 14, 2003
    1. Advertisements

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. SPE - Stani's Python Editor

    ANN: SPE 0.7.5.c: Improved documentation & bugfixes

    SPE - Stani's Python Editor, Aug 25, 2005, in forum: Python
    SPE - Stani's Python Editor
    Aug 25, 2005
  2. Dmitry V. Sabanin

    [ANN] PrettyException 0.9.3: Bugfixes

    Dmitry V. Sabanin, Aug 24, 2004, in forum: Ruby
    Dmitry V. Sabanin
    Aug 24, 2004
  3. MenTaLguY
    Jun 1, 2007
  4. Sean Cribbs
    Sean Cribbs
    Apr 20, 2008
  5. Sean Cribbs
    Sean Cribbs
    Feb 15, 2009