[svn:parrot] r46191 - trunk/runtime/parrot/library

fperrad at svn.parrot.org fperrad at svn.parrot.org
Fri Apr 30 07:33:15 UTC 2010


Author: fperrad
Date: Fri Apr 30 07:33:14 2010
New Revision: 46191
URL: https://trac.parrot.org/parrot/changeset/46191

Log:
[distutils] make tarball without copy in filesystem

Modified:
   trunk/runtime/parrot/library/distutils.pir

Modified: trunk/runtime/parrot/library/distutils.pir
==============================================================================
--- trunk/runtime/parrot/library/distutils.pir	Fri Apr 30 07:27:54 2010	(r46190)
+++ trunk/runtime/parrot/library/distutils.pir	Fri Apr 30 07:33:14 2010	(r46191)
@@ -3030,18 +3030,18 @@
     archive_file = get_tarname('.tar.gz', kv :flat :named)
     $I0 = newer(archive_file, $P0)
     if $I0 goto L1
-    .local string prefix
-    prefix = get_tarname('', kv :flat :named)
-    copy_sdist(prefix, $P0)
     .local pmc archive
     archive = new ['Archive';'TAR']
-    $P1 = iter $P0
+    $P1 = archive.'add_files'($P0 :flat)
+    .local string dir
+    dir = get_tarname('', kv :flat :named)
   L2:
     unless $P1 goto L3
-    $S1 = shift $P1
-    $S0 = prefix . '/'
-    $S0 .= $S1
-    archive.'add_files'($S0)
+    $P2 = shift $P1
+    $S0 = $P2.'full_path'()
+    $S0 = '/' . $S0
+    $S0 = dir . $S0
+    $P2.'rename'($S0)
     goto L2
   L3:
     $P0 = loadlib 'gziphandle'
@@ -3049,7 +3049,6 @@
     $P0.'open'(archive_file, 'wb')
     archive.'write'($P0)
     $P0.'close'()
-    rmtree(prefix)
   L1:
 .end
 
@@ -3061,21 +3060,6 @@
     unlink('MANIFEST', 1 :named('verbose'))
 .end
 
-.sub 'copy_sdist' :anon
-    .param string dirname
-    .param pmc files
-    mkdir(dirname)
-    $S1 = dirname . "/"
-    $P0 = iter files
-  L1:
-    unless $P0 goto L2
-    $S0 = shift $P0
-    $S2 = $S1 . $S0
-    install($S0, $S2)
-    goto L1
-  L2:
-.end
-
 .sub 'get_tarname' :anon
     .param string ext
     .param pmc kv :slurpy :named
@@ -3126,6 +3110,21 @@
     unlink('MANIFEST', 1 :named('verbose'))
 .end
 
+.sub 'copy_sdist' :anon
+    .param string dirname
+    .param pmc files
+    mkdir(dirname)
+    $S1 = dirname . "/"
+    $P0 = iter files
+  L1:
+    unless $P0 goto L2
+    $S0 = shift $P0
+    $S2 = $S1 . $S0
+    install($S0, $S2)
+    goto L1
+  L2:
+.end
+
 =head3 Step sdist_rpm
 
 =cut


More information about the parrot-commits mailing list