Start 2010-05-11T05:03:18 ActivePerl-1200 CPAN-1.9402 LIB=C:\PlatSDK\Lib\AMD64;C:\PlatSDK\Lib\AMD64\atlmfc INCLUDE=C:\PlatSDK\Include;C:\PlatSDK\Include\crt;C:\PlatSDK\Include\crt\sys;C:\PlatSDK\Include\mfc;C:\PlatSDK\Include\atl PATH=C:/CPANFL~1.12/var/libs/bin;C:\PlatSDK\Bin\Win64\x86\AMD64;C:\PlatSDK\Bin;C:\PlatSDK\Bin\WinNT;C:\Perl64-5.12\site\bin;C:\Perl64-5.12\bin;C:\cygwin\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\system32\WINDOW~1\v1.0;C:\PROGRA~2\Perforce Going to read 'C:\cpanfly-5.12\var\cpan\Metadata' Database was generated on Mon, 10 May 2010 21:27:07 GMT Running make for K/KY/KYLED/ObjectivePerl/ObjectivePerl-0.04.tar.gz Fetching with LWP: http://cpan.nas.activestate.com/authors/id/K/KY/KYLED/ObjectivePerl/ObjectivePerl-0.04.tar.gz Fetching with LWP: http://cpan.nas.activestate.com/authors/id/K/KY/KYLED/ObjectivePerl/CHECKSUMS Checksum for C:\cpanfly-5.12\var\cpan\sources\authors\id\K\KY\KYLED\ObjectivePerl\ObjectivePerl-0.04.tar.gz ok ObjectivePerl-0.04/ ObjectivePerl-0.04/META.yml ObjectivePerl-0.04/t/ ObjectivePerl-0.04/t/1.t ObjectivePerl-0.04/Makefile.PL ObjectivePerl-0.04/ObjectivePerl/ ObjectivePerl-0.04/ObjectivePerl/Parser.pm ObjectivePerl-0.04/ObjectivePerl/Runtime.pm ObjectivePerl-0.04/ObjectivePerl/InstanceVariable.pm ObjectivePerl-0.04/ObjectivePerl/Object.pm ObjectivePerl-0.04/Changes ObjectivePerl-0.04/README ObjectivePerl-0.04/ObjectivePerl.pm ObjectivePerl-0.04/CHANGELOG ObjectivePerl-0.04/DISCLAIMER ObjectivePerl-0.04/MANIFEST CPAN.pm: Going to build K/KY/KYLED/ObjectivePerl/ObjectivePerl-0.04.tar.gz >>> C:\Perl64-5.12\bin\perl.exe Makefile.PL Checking if your kit is complete... Looks good Writing Makefile for ObjectivePerl >>> nmake Microsoft (R) Program Maintenance Utility Version 7.00.8882 Copyright (C) Microsoft Corp 1988-2000. All rights reserved. cp ObjectivePerl/InstanceVariable.pm blib\lib\ObjectivePerl\InstanceVariable.pm cp ObjectivePerl/Parser.pm blib\lib\ObjectivePerl\Parser.pm cp ObjectivePerl/Runtime.pm blib\lib\ObjectivePerl\Runtime.pm cp ObjectivePerl.pm blib\lib\ObjectivePerl.pm cp ObjectivePerl/Object.pm blib\lib\ObjectivePerl\Object.pm KYLED/ObjectivePerl/ObjectivePerl-0.04.tar.gz nmake -- OK Running make test >>> nmake test TEST_VERBOSE=1 Microsoft (R) Program Maintenance Utility Version 7.00.8882 Copyright (C) Microsoft Corp 1988-2000. All rights reserved. C:\Perl64-5.12\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(1, 'blib\lib', 'blib\arch')" t/*.t (in cleanup) Not a SCALAR reference at C:/Perl64-5.12/lib/Tie/Scalar.pm line 160. t/1.t .. 1..36 0005: # OBJP_DEBUG_START 0006: # Empty class definition: 0007: package TestClass; 0008: 0009: $::super = '_SUPER'; 0010: 0011: use strict; 0012: use vars qw(@ISA $super); 0013: use ObjectivePerl::Object; 0014: @ISA = qw(ObjectivePerl::Object); 0015: 0016: use ObjectivePerl::InstanceVariable; 0017: $::objp_ivs = { 0018: }; 0019: 1;package main; 0020: 0021: my $perlInstance = TestClass->new(); 0022: ok($perlInstance, "Perl instantiation of empty class"); 0023: ok(ref($perlInstance) eq "TestClass", "Perl instance is correct class"); 0024: 0025: # Class with parent class 0026: package TestClass2; 0027: 0028: $::super = '_SUPER'; 0029: 0030: use strict; 0031: use vars qw(@ISA $super); 0032: use ObjectivePerl::Object; 0033: @ISA = qw(TestClass ObjectivePerl::Object); 0034: 0035: use ObjectivePerl::InstanceVariable; 0036: $::objp_ivs = { 0037: }; 0038: 1;package main; 0039: 0040: 0041: $perlInstance = TestClass2->new(); 0042: ok($perlInstance, "Perl instantiation of empty subclass"); 0043: ok(ref ($perlInstance) eq "TestClass2", "Perl instance is correct subclass"); 0044: ok(UNIVERSAL::isa($perlInstance, "TestClass"), "Perl instance has correct parent class"); 0045: 0046: # Class with instance variables 0047: package InstanceClass; 0048: 0049: $::super = '_SUPER'; 0050: 0051: use strict; 0052: use vars qw(@ISA $super); 0053: use ObjectivePerl::Object; 0054: @ISA = qw(ObjectivePerl::Object); 0055: 0056: use ObjectivePerl::InstanceVariable; 0057: $::objp_ivs = { 0058: protected => [qw($i $j $k)], 0059: }; 0060: 0061: 1;package main; 0062: 0063: 0064: ok(1, "Parsed ivars without yacking"); 0065: $perlInstance = InstanceClass->new(); 0066: ok($perlInstance, "Perl instantiation of class with ivars"); 0067: 0068: # Class with method 0069: 0070: package InstanceClass2; 0071: 0072: $::super = '_SUPER'; 0073: 0074: use strict; 0075: use vars qw(@ISA $super); 0076: use ObjectivePerl::Object; 0077: @ISA = qw(ObjectivePerl::Object); 0078: 0079: use ObjectivePerl::InstanceVariable; 0080: $::objp_ivs = { 0081: }; 0082: sub class { 0083: my ($objp_self) = @_; 0084: my $self = $objp_self; 0085: 0086: 0087: return ref $self; 0088: } 0089: 1;package main; 0090: 0091: 0092: ok(1, "Parsed method without yacking"); 0093: $perlInstance = InstanceClass2->new(); 0094: ok($perlInstance, "Perl instantiation of class with method"); 0095: ok($perlInstance->class(), "Perl invocation of method"); 0096: ok($perlInstance->class() eq "InstanceClass2", "Perl invocation of method returned correct result"); 0097: 0098: # method and ivar 0099: 0100: package InstanceClass3; 0101: 0102: $::super = '_SUPER'; 0103: 0104: use strict; 0105: use vars qw(@ISA $super); 0106: use ObjectivePerl::Object; 0107: @ISA = qw(ObjectivePerl::Object); 0108: 0109: use ObjectivePerl::InstanceVariable; 0110: $::objp_ivs = { 0111: protected => [qw($i $j $k)], 0112: }; 0113: 0114: sub values { 0115: my ($objp_self) = @_; 0116: my $self = $objp_self; 0117: my $i; tie $i, "ObjectivePerl::InstanceVariable", $self, "i"; 0118: my $j; tie $j, "ObjectivePerl::InstanceVariable", $self, "j"; 0119: my $k; tie $k, "ObjectivePerl::InstanceVariable", $self, "k"; 0120: 0121: 0122: return [$i, $j, $k]; 0123: } 0124: 0125: sub setValues { 0126: my ($objp_self, $values) = @_; 0127: my $self = $objp_self; 0128: my $i; tie $i, "ObjectivePerl::InstanceVariable", $self, "i"; 0129: my $j; tie $j, "ObjectivePerl::InstanceVariable", $self, "j"; 0130: my $k; tie $k, "ObjectivePerl::InstanceVariable", $self, "k"; 0131: 0132: 0133: ($i, $j, $k) = @$values; 0134: } 0135: 1;package main; 0136: 0137: 0138: ok(1, "Parsed method and ivars without yacking"); 0139: $perlInstance = InstanceClass3->new(); 0140: ok($perlInstance, "Perl instantiation of class with method and ivars"); 0141: ok($perlInstance->setValues([10, 20, 30]), "Perl invocation of method to set values"); 0142: my $values = $perlInstance->values(); 0143: ok($values->[0] == 10 && $values->[1] == 20 && $values->[2] == 30, "Perl invocation of method returned correct result"); 0144: 0145: # inherited instance variables 0146: package InstanceClass4; 0147: 0148: $::super = '_SUPER'; 0149: 0150: use strict; 0151: use vars qw(@ISA $super); 0152: use ObjectivePerl::Object; 0153: @ISA = qw(ObjectivePerl::Object); 0154: 0155: use ObjectivePerl::InstanceVariable; 0156: $::objp_ivs = { 0157: protected => [qw($protected)], 0158: }; 0159: 0160: 1;package main; 0161: ; 0162: 0163: package Inheritor; 0164: 0165: $::super = '_SUPER'; 0166: 0167: use strict; 0168: use vars qw(@ISA $super); 0169: use ObjectivePerl::Object; 0170: @ISA = qw(InstanceClass4 ObjectivePerl::Object); 0171: 0172: use ObjectivePerl::InstanceVariable; 0173: $::objp_ivs = { 0174: }; 0175: sub protected { 0176: my ($objp_self) = @_; 0177: my $self = $objp_self; 0178: my $protected; tie $protected, "ObjectivePerl::InstanceVariable", $self, "protected"; 0179: 0180: 0181: return $protected; 0182: } 0183: sub setProtected { 0184: my ($objp_self, $value) = @_; 0185: my $self = $objp_self; 0186: my $protected; tie $protected, "ObjectivePerl::InstanceVariable", $self, "protected"; 0187: 0188: 0189: $protected = $value; 0190: } 0191: 1;package main; 0192: 0193: 0194: ok(1, "Parsed ivar visibilities without yacking"); 0195: $perlInstance = Inheritor->new(); 0196: ok($perlInstance, "Perl instantiation of class"); 0197: my $opInstance = ObjectivePerl::Runtime->ObjpMsgSend("Inheritor", "new", ); 0198: ok(1, "Parsed method invocation correctly without yacking"); 0199: ok($opInstance, "Method invocation worked fine"); 0200: ObjectivePerl::Runtime->ObjpMsgSend($opInstance, "setProtected", [ 0201: { key => "setProtected", value => "TEST" }, 0202: ]); 0203: ok(ObjectivePerl::Runtime->ObjpMsgSend($opInstance, "protected", ) eq "TEST", "Set and get using methods of inherited ivar worked fine"); 0204: 0205: # embedded methods: 0206: package Inheritor2; 0207: 0208: $::super = '_SUPER'; 0209: 0210: use strict; 0211: use vars qw(@ISA $super); 0212: use ObjectivePerl::Object; 0213: @ISA = qw(Inheritor ObjectivePerl::Object); 0214: 0215: use ObjectivePerl::InstanceVariable; 0216: $::objp_ivs = { 0217: protected => [qw($secondProtected)], 0218: }; 0219: 0220: sub setSecondProtected { 0221: my ($objp_self, $value) = @_; 0222: my $self = $objp_self; 0223: my $secondProtected; tie $secondProtected, "ObjectivePerl::InstanceVariable", $self, "secondProtected"; 0224: 0225: 0226: $secondProtected = $value; 0227: } 0228: sub secondProtected { 0229: my ($objp_self) = @_; 0230: my $self = $objp_self; 0231: my $secondProtected; tie $secondProtected, "ObjectivePerl::InstanceVariable", $self, "secondProtected"; 0232: 0233: 0234: return $secondProtected; 0235: } 0236: sub setProtected_andSecondProtected { 0237: my ($objp_self, $value, $secondValue) = @_; 0238: my $self = $objp_self; 0239: 0240: 0241: ObjectivePerl::Runtime->ObjpMsgSend($self, "setProtected", [ 0242: { key => "setProtected", value => $value }, 0243: ]); 0244: ObjectivePerl::Runtime->ObjpMsgSend($self, "setSecondProtected", [ 0245: { key => "setSecondProtected", value => $secondValue }, 0246: ]); 0247: } 0248: sub init { 0249: my ($objp_self) = @_; 0250: my $self = $objp_self; 0251: 0252: 0253: ObjectivePerl::Runtime->ObjpMsgSend($self, "setProtected", [ 0254: { key => "setProtected", value => "Protected" }, 0255: ]); 0256: ObjectivePerl::Runtime->ObjpMsgSend($self, "setSecondProtected", [ 0257: { key => "setSecondProtected", value => "Second protected" }, 0258: ]); 0259: return $self; 0260: } 0261: 1;package main; 0262: 0263: 0264: $opInstance = ObjectivePerl::Runtime->ObjpMsgSend(ObjectivePerl::Runtime->ObjpMsgSend("Inheritor2", "new", ), "init", ); 0265: ok($opInstance, "Instantiated sub-sub-class in obj-p"); 0266: ok(ObjectivePerl::Runtime->ObjpMsgSend($opInstance, "protected", ) || "" eq "Protected", "Initialised grandparent's protected value using parent's methods"); 0267: ok(ObjectivePerl::Runtime->ObjpMsgSend($opInstance, "secondProtected", ) || "" eq "Second protected", "Initialised parent's protected value using own methods"); 0268: ObjectivePerl::Runtime->ObjpMsgSend($opInstance, "setProtected", [ 0269: { key => "setProtected", value => "P" }, 0270: { key => "andSecondProtected", value => "2P" }, 0271: ]); 0272: ok(ObjectivePerl::Runtime->ObjpMsgSend($opInstance, "protected", ) || "" eq "P" && ObjectivePerl::Runtime->ObjpMsgSend($opInstance, "secondProtected", ) eq "2P", "Initialised both values using one method with multiple args"); 0273: 0274: package MethodSignatureTest; 0275: 0276: $::super = '_SUPER'; 0277: 0278: use strict; 0279: use vars qw(@ISA $super); 0280: use ObjectivePerl::Object; 0281: @ISA = qw(ObjectivePerl::Object); 0282: 0283: use ObjectivePerl::InstanceVariable; 0284: $::objp_ivs = { 0285: }; 0286: sub testSimpleSignature { 0287: my ($objp_self) = @_; 0288: my $self = $objp_self; 0289: 0290: 0291: return 1; 0292: } 0293: 0294: sub testSignatureWithArgument { 0295: my ($objp_self, $argument) = @_; 0296: my $self = $objp_self; 0297: 0298: 0299: return ($argument ne ""); 0300: } 0301: 0302: sub testSignatureWithMultipleArguments_ { 0303: my ($objp_self, $first, $second) = @_; 0304: my $self = $objp_self; 0305: 0306: 0307: return ($first ne "" && $second ne ""); 0308: } 0309: 0310: sub testOldStyleMethodWithArgumentAndArgument { 0311: my ($self, $first, $second) = @_; 0312: return ($first ne "" && $second ne ""); 0313: } 0314: 0315: sub testOldStyleMethodWithArgument_ { 0316: my ($self, $argument) = @_; 0317: return ($argument ne ""); 0318: } 0319: 0320: sub testMethodWithTwoUnderscores__ { 0321: my ($self, $first, $second) = @_; 0322: return ($first ne "" && $second ne ""); 0323: } 0324: 0325: 1;package main; 0326: 0327: 0328: ok(1, "Parsed mixed method definitions without yacking"); 0329: $opInstance = ObjectivePerl::Runtime->ObjpMsgSend("MethodSignatureTest", "new", ); 0330: ok($opInstance, "Instantiated method signature test object"); 0331: ok(ObjectivePerl::Runtime->ObjpMsgSend($opInstance, "testSimpleSignature", ), "Tested simple signature"); 0332: ok(ObjectivePerl::Runtime->ObjpMsgSend($opInstance, "testSignatureWithArgument", [ 0333: { key => "testSignatureWithArgument", value => "argument" }, 0334: ]), "Tested signature with one argument"); 0335: ok(ObjectivePerl::Runtime->ObjpMsgSend($opInstance, "testSignatureWithMultipleArguments", [ 0336: { key => "testSignatureWithMultipleArguments", value => "argument" }, 0337: { key => "_", value => "another" }, 0338: ]), "Tested signature with multiple arguments"); 0339: ok(ObjectivePerl::Runtime->ObjpMsgSend($opInstance, "testOldStyleMethodWithArgument", [ 0340: { key => "testOldStyleMethodWithArgument", value => "argument" }, 0341: { key => "andArgument", value => "another" }, 0342: ]), "Tested old-style signature with multiple arguments"); 0343: ok(ObjectivePerl::Runtime->ObjpMsgSend($opInstance, "testOldStyleMethodWithArgument", [ 0344: { key => "testOldStyleMethodWithArgument", value => "argument" }, 0345: ]), "Tested old-style signature with single argument and underscore"); 0346: ok(ObjectivePerl::Runtime->ObjpMsgSend($opInstance, "testMethodWithTwoUnderscores", [ 0347: { key => "testMethodWithTwoUnderscores", value => "argument" }, 0348: { key => "_", value => "argument" }, 0349: ]), "Tested old-style signature with two underscores"); 0350: 0351: #no ObjectivePerl; 0352: #ok(1, "no ObjectivePerl;"); 0353: #use ObjectivePerl CamelBones => 1; 0354: #ok(1, "CamelBones compatibility mode"); 0355: 0356: package CamelBonesTest; 0357: 0358: $::super = '_SUPER'; 0359: 0360: use strict; 0361: use vars qw(@ISA $super); 0362: use ObjectivePerl::Object; 0363: @ISA = qw(ObjectivePerl::Object); 0364: 0365: use ObjectivePerl::InstanceVariable; 0366: $::objp_ivs = { 0367: }; 0368: sub outletOfSomeKind { 0369: my ($objp_self, $sender) = @_; 0370: my $self = $objp_self; 0371: 0372: 0373: return $sender; 0374: } 0375: 1;package main; 0376: 0377: 0378: my $cbp = ObjectivePerl::Runtime->ObjpMsgSend(ObjectivePerl::Runtime->ObjpMsgSend("CamelBonesTest", "new", ), "init", ); 0379: 0380: ok($cbp, "CamelBones object instantiated"); 0381: ok(ObjectivePerl::Runtime->ObjpMsgSend($cbp, "outletOfSomeKind", [ 0382: { key => "outletOfSomeKind", value => "Hey sucka" }, 0383: ]) eq "Hey sucka", "Correctly parsed method with return type"); 0384: 0385: # test the comment filtering: 0386: # my $object = ObjectivePerl::Runtime->ObjpMsgSend("Inheritor2", "new", ) init]; 0387: ok(1); ok 1 ok 2 - Perl instantiation of empty class ok 3 - Perl instance is correct class ok 4 - Perl instantiation of empty subclass ok 5 - Perl instance is correct subclass ok 6 - Perl instance has correct parent class ok 7 - Parsed ivars without yacking ok 8 - Perl instantiation of class with ivars ok 9 - Parsed method without yacking ok 10 - Perl instantiation of class with method ok 11 - Perl invocation of method ok 12 - Perl invocation of method returned correct result ok 13 - Parsed method and ivars without yacking ok 14 - Perl instantiation of class with method and ivars ok 15 - Perl invocation of method to set values ok 16 - Perl invocation of method returned correct result ok 17 - Parsed ivar visibilities without yacking ok 18 - Perl instantiation of class ok 19 - Parsed method invocation correctly without yacking ok 20 - Method invocation worked fine ok 21 - Set and get using methods of inherited ivar worked fine ok 22 - Instantiated sub-sub-class in obj-p ok 23 - Initialised grandparent's protected value using parent's methods ok 24 - Initialised parent's protected value using own methods ok 25 - Initialised both values using one method with multiple args ok 26 - Parsed mixed method definitions without yacking ok 27 - Instantiated method signature test object ok 28 - Tested simple signature ok 29 - Tested signature with one argument ok 30 - Tested signature with multiple arguments ok 31 - Tested old-style signature with multiple arguments ok 32 - Tested old-style signature with single argument and underscore ok 33 - Tested old-style signature with two underscores ok 34 - CamelBones object instantiated ok 35 - Correctly parsed method with return type ok 36 ok All tests successful. Files=1, Tests=36, 0 wallclock secs ( 0.05 usr + 0.01 sys = 0.06 CPU) Result: PASS KYLED/ObjectivePerl/ObjectivePerl-0.04.tar.gz nmake test TEST_VERBOSE=1 -- OK Picked up abstract from Makefile Kyle Dawkins <kyle@centralparksoftware.com> Objective-C style syntax and runtime for perl >>> (cd C:\cpanfly-5.12\var\cpan\build\ObjectivePerl-0.04-6GzeAk && tar cvf - ObjectivePerl-0.04.ppd blib) | gzip -c >C:/cpanfly-5.12/var/REPO/K/KY/KYLED/ObjectivePerl/ObjectivePerl-0.04.tar.gz ObjectivePerl-0.04.ppd blib/ blib/lib/ blib/lib/ObjectivePerl/ blib/lib/ObjectivePerl/InstanceVariable.pm blib/lib/ObjectivePerl/Object.pm blib/lib/ObjectivePerl/Parser.pm blib/lib/ObjectivePerl/Runtime.pm blib/lib/ObjectivePerl.pm >>> mv C:\cpanfly-5.12\var\cpan\build\ObjectivePerl-0.04-6GzeAk/ObjectivePerl-0.04.ppd C:/cpanfly-5.12/var/REPO/K/KY/KYLED/ObjectivePerl Finished 2010-05-11T05:03:22