Parrot 1.8.0 Zygodactyly Released!

2009-11-18 Thread Bernhard Schmalhofer
On behalf of the Parrot team, I'm proud to announce Parrot 1.8.0 
Zygodactyly.

Parrot, http://parrot.org/, is a virtual machine aimed at running
all dynamic languages.

Parrot 1.8.0 is available on Parrot's FTP site
ftp://ftp.parrot.org/pub/parrot/releases/devel/1.8.0/, or follow the
download instructions at http://parrot.org/download.

Parrot 1.8.0 News:

- Functionality
 + The FileHandle PMC now exposes the exit code of child process that 
was run as pipe.
 + Experimental support for overriding VTABLE invoke in PIR objects was 
added.

 + The method 'type' was added to the PackfileAnnotations PMC.
 + The internals of the parrot calling conventions, PCC, were reworked.
   All call paths now use a CallSignature object for passing arguments 
and return values.
 + The new API-function  'Parrot_ext_call' was added for calling into 
C-land.

 + The fixed-size allocator was improved.
 + The files installed by 'make install-dev' are now covered by 'make 
install' as well.

 + The experimental ops 'fetch' and 'vivify' were added.
 + The -I option to the command 'parrot' now prepends items to the 
search path.
 + The Context struct was substituted with auto attributes 
(context_auto_attrs branch).
 + Use the osname determined in auto::arch in subsequent configuration 
steps (convert_OSNAME branch).
 + Eliminated dependence on Perl 5 '%Config' in auto::format 
(auto_format_no_Config branch).

 + MultiSub PMCs now stringify to the name of their first candidate,
   instead of the number of candidates.
 + The platform detection at the start of the configuration process was 
improved.
 + The 'lineof' method on CodeString objects now precomputes line 
number information

   to be more efficient on variable-width encoded strings.
 + P6object now supports .WHO and .WHERE methods on protoobjects.
- Compilers
 + A shiny new self-hosting implementation of NQP has been added in 
ext/nqp-rx.

   - New NQP available as nqp-rx.pbc or parrot-nqp fakecutable.
   - NQP includes direct support for grammars and regexes, including 
protoregexes.

   - NQP has a new PAST-based regex engine (intended to replace PGE).
   - Regexes may contain code assertions, parameters, lexical 
declarations, and more.

   - Double-quoted strings now interpolate scalar variables and closures.
   - Subroutine declarations are now lexical by default.
 + PCT
   - PAST::Block now supports an 'nsentry' attribute.
   - PAST::Var allows 'contextual' scope.
   - Attribute bindings now return the bound value.
- Platforms
 + Fixes for the port of Parrot to RTEMS were applied. Yay, first port 
to a real time OS!

 + On NetBSD, shared libs are now used.
- Performance
 + Use the the fixed-sized allocator in the Context and the 
CallSignature PMC.

 + Many small speed improvements.
- New deprecations
 + MT19937, the Mersenne twisted pseudorandom number generator, is now 
hosted on github and

   will be removed from the Parrot core. (eligible in 2.1)
 + The 'Parrot_call_*' functions for invoking a sub/method object from 
C are

   deprecated. They are replaced by 'Parrot_ext_call'. (eligible in 2.1)
 + All bitwise VTABLE functions are deprecated. (eligible in 2.1)
 + All bitwise ops will become dynops. (eligible in 2.1)
- Realized deprecations
 + The slice VTABLE entry was removed.
 + The last traces of the 'malloc' garbage collector were removed.
 + Parrot_pcc_constants() was renamed to Parrot_pcc_get_constants().
 + The deprecated functions from the Embedding/Extension interface were 
removed.

 + The library YAML/Parser/Syck.pir was removed.
 + The VTABLE function instantiate_str() was removed.
 + Building of parrot_nqp was removed.
- Tests
 + The test coverage of the time-related ops was much improved.
 + New testing functions in Test::More: lives_ok() and dies_ok().
 + The Perl 5 based test scripts t/op/bitwist.t, t/op/comp.t, 
t/op/inf_nan.t,
   t/op/literal.t, t/op/number.t, t/op/sprintf2.t, and t/op/00ff-dos.t 
were converted to PIR.

 + The test scripts t/op/annotate.t and t/op/time.t have begun
   to be translated from Perl 5 to PIR.
 + In some tests the dependency on %Config from Perl 5 was eliminated.
- Documentation
 + The meaning of 'p' means in NCI function call signatures was clarified.
- Tools
 + The stub for a new language, as created by mk_language_shell.pl,
   now relies on the PIR-based tools, which are replacing the Perl 
5-based tools.

 + The library Configure.pir was added.
 + The library distutils.pir was added.
- Miscellaneous
 + The mailing list parrot-users and a corresponding google group was 
created,

   http://groups.google.com/group/parrot-users.
 + Many bugfixes, code cleanups, and coding standard fixes.


Many thanks to all our contributors for making this possible, and our 
sponsors
for supporting this project.  Our next scheduled release is December 
15th 2009.


Enjoy!

--

Bernhard Schmalhofer


Parrot 0.6.4

2008-07-15 Thread Bernhard Schmalhofer

Hi,

on behalf of the Parrot team, I'm proud to announce the release of 
Parrot 0.6.4

St. Vincent Amazon.

Parrot 0.6.4 is available via CPAN, or follow the download
instructions at http://parrotcode.org/source.html.  For those who would 
like to develop on

Parrot, or help develop Parrot itself, we recommend using Subversion on
the source code repository to get the latest and best Parrot code.

Parrot 0.6.4 News:
- Documentation
 + removed a lot of old information from the FAQ
 + improved function level documentation
- Configuration
 + removed the configuration item 'has_gnu_m4'
 + refactored ICU-detection
- Languages
 + ChitChat
   - improved the Smalltalk implementation
 + Pipp
   - renamed Plumhead to Pipp
   - support for a lot of builtin functions.
   - Pipp now uses PHP specific data types.
   - converted from PCT with TGE to PCT with NQP actions
   - improvements in the PCT variant by using optok parsing
   - start of object support
 + pir
   - simple assignments work
 + json
   - added a PCT-based implementation of JSON parsing
 + lolcode
   - improved handling of symbols
   - added support for block handling
   - added support for globals
 + Lua
   - more tests
 + Rakudo
   - updated Range implementation
   - added enums
   - added generic type declarations (::T)
   - added runtime mixing of roles with 'does' and 'but'
   - added generic type declarations
   - fixed handling of implicit lexicals ($_, $!, and $/)
   - fixed implicit method calls on $_
   - improved complex math builtins, added Complex
   - moved many builtins to class Any
   - declaration of lists of variables now work
   - improved test infrastructure
   - 910 additional passing spec tests since last release
   - more convergence with STD.pm grammar
   - added named 0-ary parsing and ops
- Compilers
 + PCT:
   - allowed subroutine and method names to be a PAST tree that 
produces the name

   - Improved lexical handling
- Tools
 + pbc_disassemble renamed from disassemble
- Implementation
 + allowed .macro_const in PIR
 + added the flag :lexid(...) for subroutines
 + made multiple dispatch work for sub types
 + fixed garbage collection bug related to the metadata attached to a 
PMC_EXT structure

 + added a warning when using deprecated opcodes
 + simplified the stacks implementation
 + fixed C++ build
 + improved closure and lexical support
 + improved IMCC register allocator
 + added cache for all runtime-constant strings, reducing memory usage
- Miscellaneous
 + improved OpenGL/GLU/GLUT bindings
 + added a standard profile for Perl::Critic coding standard testing
 + added support for smoke testing with Smolder
 + enabled use of Test::Harness 3.0 if available, but don't require it 
for 'make test'

 + added the executable 'parrot_config' to query Parrot configuration


Many thanks to all our contributors for making this possible, and our 
sponsors
for supporting this project.  Our next scheduled release is August 19th 
2008.


Enjoy!




Parrot 0.6.0 PP is released.

2008-03-18 Thread Bernhard Schmalhofer


On behalf of the Parrot team, I'm proud to announce Parrot 0.6.0
PP.
Parrot (http://parrotcode.org/) is a virtual machine aimed
at running dynamic languages.
This release is a milestone release featuring the
revamping of Parrot Magic Cookies.

Parrot 0.6.0 can be obtained via CPAN (soon), or follow the
download instructions at http://parrotcode.org/source.html.
For those who would like to develop on Parrot, or help develop
Parrot itself, we recommend using Subversion or SVK on the
source code repository to get the latest and best Parrot code.

Parrot 0.6.0 News:
- Specification
 + launched pdd18_security.pod
 + updated pdd17_pmc.pod
 + launching draft of pdd28_character_sets.pod
- Documentation
 + cleanup of IMCC documentation
- Configuration
 + add step auto::gettext
 + add step auto::crypto
- Compilers
 + PCT:
   . Fix '-e' option
   . Phase out P6Regex in favor of Perl6Regex
 + IMCC:
   '.local Array my_arr' is illegal now
- Languages
 + C99: reimplementation with PCT
 + lolcode:
   . various updates
   . add support for functions with params
   . add math functions
 + Rakudo:
   . support for 'say'
   . first cut at smart matching
   . indirect method calls
   . support for Pairs
   . added methods 'grep' and 'first'
   . implement auto{increment,decrement}
   . initial implementation of 'perl6doc'
 + Lua:
   . various updates
   . add base64 library
 + Cardinal: basic support for functions with parameters
 + Pheme: various updates
 + Ecmascript: various updates
 + Tcl: now targeting tcl 8.5.1, no more expected failures in test suite.
   (No, this doesn't mean everything's implemented. =-)
 + Eclectus: various updates
 + WMLScript: various updates
- Implementation
 + PDD17 (PMCs)
 + Add library YAML::Dumper
 + Add the MD2, MD4, MD5, RIPEMD160, SHA  SHA1 PMC, as a wrapper
around libcrypto
- Miscellaneous
 + various bugfixes, code cleanups and coding standard fixes
 + consting
 + remove external Perl 5 modules from the Parrot distribution


Thanks to all our contributors for making this possible, and our
sponsors for supporting this project.

Enjoy!
 Bernhard Schmalhofer


Should the op 'pin' create a C-string ?

2004-11-10 Thread Bernhard Schmalhofer
Hi,

I am trying to pass a string, containing YAML, from Parrot to the shared
library 'libsyck'.

'libsyck' provides two functions:

  void syck_parser_str( SyckParser *, char *, long, SyckIoStrRead );  (
v_ptip )
  SYMID syck_parse( SyckParser * );   ( i_p
)

'syck_parser_str' tells libsyck about the string to be parsed.
'syck_parse' does the parsing.
This means that the string buffer has to stay around, until the parsing is
done.

Currently, when calling 'syck_parser_str', the string buffer is copied into
newly allocated system memory. In order to avoid memory leaks, this
allocated system memory is freed immediately after 'syck_parser_str'. Not
surprisingly, bad things are happening when 'syck_parse' is called later.

From strings.pod I gather that the op 'pin' is meant to make strings fit for
passing strings to external libraries. For me it would be convenient, if
'pin' would put a trailing '\0' at the end of the used string buffer. Also a
pinned string shouldn't have to be copied into newly allocated memory.

Is that the right way to go?  
  
  
   

-- 
/* [EMAIL PROTECTED] */

Geschenkt: 3 Monate GMX ProMail + 3 Top-Spielfilme auf DVD
++ Jetzt kostenlos testen http://www.gmx.net/de/go/mail ++