Syck 0.15 -- the road to YAML.rb 1.0 
Author Message
 Syck 0.15 -- the road to YAML.rb 1.0

Hi, ruby-talk.  I concur with the subject of this message in bringing
Syck 0.15 to you.  Syck is the new parser for YAML.rb.  Coded in C.
Running at 30% of Marshal's speed.

I'm still gluing the YAML.rb code and the Syck code together (which you
can see happening in this version), but expect a completed YAML.rb 0.60
this month with Syck parsing everything.

YAML.rb's first birthday is in June.  The goal is to hit 1.0 on the day.
See release notes below for more.

---
released: { name: Syck, version: 0.15 }
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.

links:
  YAML: http://www.*-*-*.com/
  YAML Cookbook: http://www.*-*-*.com/
  YAML Type Repository: http://www.*-*-*.com/
  YAML Specification: http://www.*-*-*.com/
  Syck: http://www.*-*-*.com/
  Syck Benchmarks: http://www.*-*-*.com/

  http://www.*-*-*.com/

status: >

  Syck is about 60% compliant with the YAML spec.  Most of
  the remaining issues deal with whitespace.  Syck also doesn't
  yet support any of the shortcut syntax optimizations from the
  specification.

  The extensions are quite usable, though.  Ruby, PHP and Python
  can load from a string containing YAML.  Ruby also has support
  for stream loading from any IO object.

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.
  15-50% 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.15.tar.gz
    cd syck-0.15
    ./configure
    make
    sudo make install

  To install the Ruby extension:

    cd ext/ruby/ext
    ruby extconf.rb
    make
    sudo make 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

examples: |

  To load this document in Ruby:

     ($:~)$ irb

     >> require 'syck'

     => true

     >> yp = YAML::Syck::Parser.new( {} )

     => #<YAML::Syck::Parser:0x8058530>

     >> yp.load( File.open( 'syck-0.15.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.15.yml' ) ) ) ); ?>

     .. php then outputs ..

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

     Array
     (
         [released] => Array
             (
                 [name] => Syck
                 [version] => 0.15
             )

     .. 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.15.yml' )
     >>> syck.load( f.read() )

     {'by': 'why the lucky stiff', ... }



Wed, 28 Sep 2005 05:16:18 GMT  
 
 [ 1 post ] 

 Relevant Pages 

1. Syck 0.15 -- YAML extension for Python

2. Syck 0.25 + YAML.rb -- Objects in plain-text

3. Syck 0.08 -- Next-generation of YAML.rb

4. Syck 0.35 + YAML.rb 0.60 -- the 1st stable release

5. syck/yaml fail unit test

6. Syck / Yaml example

7. Pymacs 0.15

8. Patches to IOWA 0.15.

9. ANNOUNCE: bigloo-lib 0.15 is released at SourceForge.

10. Pymacs 0.15

11. YAML.rb 0.49.1 -- Perfecting the parser, new merge indicator, base60

12. YAML.rb 0.47 -- stairsteppin to 0.50

 

 
Powered by phpBB® Forum Software