daedalus-core 0.0.1 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +6 -14
- data/.gitignore +1 -0
- data/LICENSE +22 -19
- data/daedalus-core.gemspec +8 -2
- data/lib/daedalus.rb +17 -17
- data/lib/daedalus/version.rb +1 -1
- metadata +22 -18
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
metadata.gz: !binary |-
|
9
|
-
ZDI2OGRkNTIxZGI1ZmExOGNhOTVmYjY5NzRlZjM2ZDdmZTk0NjFkZTUyZWVi
|
10
|
-
ZjgyNmE3YjAzOTc0YzUwNzRmYjgwNzkwYTZiZmI3ZTYxNGJjYjBjOWM5YmEx
|
11
|
-
N2MxM2VlMTc1YTliMTViMTNkMGE2NzY1NDMzNjJlMTU2NTY1MjQ=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
MjdkYzU2NGQxNWQ4NDcxYjQzMjZmMWY2NTU2ZjI5ZDc4NDZiZWI0OWE1MDkx
|
14
|
-
NjNkZjgyMjkxNGIyY2FmNTcwYjk5NDA5MWM0ZGE4OTM2MmZjOTc5Mzk5MmZj
|
15
|
-
N2Q4OTc2NmFhYWU5YjViNDRhNmRjMTk1YzA0ODViZThiZjc1MTg=
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 5ceab94baa6293fd163c39bf26ff28cf1bee5817
|
4
|
+
data.tar.gz: 1332e7d94769834b5cc82b6841f556edfa772761
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 1a53464f28c9e26fc046877e22c434f616dbbfbe69b93630c7c8791348624b5278bc148b2e7c9b90811b6a976754b6672310624f798e740a88a3aab77a4eb5e7
|
7
|
+
data.tar.gz: 45b3fc6462344aeb054dcb19923451bed5f0f1bcbf95dfee7c8bafa2894c84f4a49223e5eabdee6612dc4dbf6d086bcffdbeaf9a6b85cc511b26766cd5dc806c
|
data/.gitignore
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
*.gem
|
data/LICENSE
CHANGED
@@ -1,22 +1,25 @@
|
|
1
|
-
Copyright (c) 2013 Brian Shirai
|
1
|
+
Copyright (c) 2013, Brian Shirai
|
2
|
+
All rights reserved.
|
2
3
|
|
3
|
-
|
4
|
-
|
5
|
-
files (the "Software"), to deal in the Software without
|
6
|
-
restriction, including without limitation the rights to use,
|
7
|
-
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
8
|
-
copies of the Software, and to permit persons to whom the
|
9
|
-
Software is furnished to do so, subject to the following
|
10
|
-
conditions:
|
4
|
+
Redistribution and use in source and binary forms, with or without
|
5
|
+
modification, are permitted provided that the following conditions are met:
|
11
6
|
|
12
|
-
|
13
|
-
|
7
|
+
1. Redistributions of source code must retain the above copyright notice, this
|
8
|
+
list of conditions and the following disclaimer.
|
9
|
+
2. Redistributions in binary form must reproduce the above copyright notice,
|
10
|
+
this list of conditions and the following disclaimer in the documentation
|
11
|
+
and/or other materials provided with the distribution.
|
12
|
+
3. Neither the name of the library nor the names of its contributors may be
|
13
|
+
used to endorse or promote products derived from this software without
|
14
|
+
specific prior written permission.
|
14
15
|
|
15
|
-
|
16
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
|
17
|
-
OF MERCHANTABILITY
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
16
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
17
|
+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
18
|
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
19
|
+
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY DIRECT,
|
20
|
+
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
21
|
+
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
22
|
+
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
|
23
|
+
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
24
|
+
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
25
|
+
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
data/daedalus-core.gemspec
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
-
require 'daedalus/version'
|
2
|
+
require './lib/daedalus/version'
|
3
3
|
|
4
4
|
Gem::Specification.new do |gem|
|
5
5
|
gem.name = "daedalus-core"
|
@@ -7,14 +7,20 @@ Gem::Specification.new do |gem|
|
|
7
7
|
gem.authors = ["Brian Shirai"]
|
8
8
|
gem.email = ["brixen@gmail.com"]
|
9
9
|
gem.homepage = "https://github.com/rubinius/daedalus-core"
|
10
|
+
gem.license = "BSD"
|
10
11
|
|
11
12
|
gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) unless File.extname(f) == ".bat" }.compact
|
12
13
|
gem.files = `git ls-files`.split("\n")
|
13
14
|
gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
14
15
|
gem.require_paths = ["lib"]
|
15
16
|
gem.summary = <<-EOS
|
16
|
-
Daedalus is a build system extracted from Rubinius.
|
17
|
+
Daedalus is a build system extracted from Rubinius. Almost no functionality has been implemented. This is very alpha.
|
17
18
|
EOS
|
19
|
+
gem.description = <<-EOD
|
20
|
+
Daedalus is a build system based on years of attempting to build Rubinus with a collection of Rake tasks. Rubinius is a complex system. It has dependencies on external C libraries (some of which are vendored), internal C/C++ libraries, Ruby C-extensions, and compiled Ruby code. The Rubinius bytecode compiler is written in Ruby, so we have to bootstrap compiling it.
|
21
|
+
|
22
|
+
Rake fails at this task because there is no way to manage multiple, independent dependency trees without subprocessing another Rake process. This results in unreasonable and unmanagable complexity.
|
23
|
+
EOD
|
18
24
|
gem.has_rdoc = true
|
19
25
|
gem.extra_rdoc_files = %w[ README.md LICENSE ]
|
20
26
|
gem.rubygems_version = %q{1.3.5}
|
data/lib/daedalus.rb
CHANGED
@@ -151,12 +151,12 @@ module Daedalus
|
|
151
151
|
@blueprint = blueprint
|
152
152
|
|
153
153
|
@mod_times = Hash.new do |h,k|
|
154
|
-
h[k] = (File.
|
154
|
+
h[k] = (File.exist?(k) ? File.mtime(k) : Time.at(0))
|
155
155
|
end
|
156
156
|
|
157
157
|
@sha1_mtimes = {}
|
158
158
|
@sha1s = Hash.new do |h,k|
|
159
|
-
if File.
|
159
|
+
if File.exist?(k)
|
160
160
|
@log.verbose "computing SHA1: #{k}"
|
161
161
|
@sha1_mtimes[k] = File.mtime(k)
|
162
162
|
h[k] = Digest::SHA1.file(k).hexdigest
|
@@ -274,7 +274,7 @@ module Daedalus
|
|
274
274
|
def initialize(path)
|
275
275
|
@path = path
|
276
276
|
|
277
|
-
if File.
|
277
|
+
if File.exist?(data_path)
|
278
278
|
begin
|
279
279
|
File.open data_path, "rb" do |f|
|
280
280
|
@data = Marshal.load(f.read)
|
@@ -383,12 +383,12 @@ module Daedalus
|
|
383
383
|
end
|
384
384
|
|
385
385
|
def out_of_date?(ctx)
|
386
|
-
unless File.
|
386
|
+
unless File.exist?(@path)
|
387
387
|
return true if @autogen_builder
|
388
388
|
raise Errno::ENOENT, "Missing #{@path}"
|
389
389
|
end
|
390
390
|
|
391
|
-
return true unless File.
|
391
|
+
return true unless File.exist?(object_path)
|
392
392
|
|
393
393
|
return true if ctx.mtime_only and ctx.mtime(@path) > ctx.mtime(object_path)
|
394
394
|
|
@@ -414,14 +414,14 @@ module Daedalus
|
|
414
414
|
end
|
415
415
|
|
416
416
|
def clean
|
417
|
-
File.unlink object_path if File.
|
418
|
-
File.unlink data_path if File.
|
417
|
+
File.unlink object_path if File.exist?(object_path)
|
418
|
+
File.unlink data_path if File.exist?(data_path)
|
419
419
|
|
420
420
|
Dir.rmdir artifacts_path if Dir.entries(artifacts_path).empty?
|
421
421
|
end
|
422
422
|
|
423
423
|
def describe(ctx)
|
424
|
-
if !File.
|
424
|
+
if !File.exist?(object_path)
|
425
425
|
puts "#{@path}: unbuilt"
|
426
426
|
else
|
427
427
|
if @data[:sha1] != sha1(ctx)
|
@@ -472,7 +472,7 @@ module Daedalus
|
|
472
472
|
|
473
473
|
@data_file = "#{@build_dir}.data"
|
474
474
|
|
475
|
-
if File.
|
475
|
+
if File.exist?(@data_file)
|
476
476
|
begin
|
477
477
|
File.open @data_file, "rb" do |f|
|
478
478
|
@data = Marshal.load(f.read)
|
@@ -508,7 +508,7 @@ module Daedalus
|
|
508
508
|
def have_objects
|
509
509
|
return true unless @objects
|
510
510
|
@objects.each do |o|
|
511
|
-
return false unless File.
|
511
|
+
return false unless File.exist?(o)
|
512
512
|
end
|
513
513
|
|
514
514
|
return true
|
@@ -587,9 +587,9 @@ module Daedalus
|
|
587
587
|
|
588
588
|
def out_of_date?(compiler)
|
589
589
|
Dir.chdir @base do
|
590
|
-
return true unless File.
|
590
|
+
return true unless File.exist? name
|
591
591
|
@sources.each do |s|
|
592
|
-
return true unless File.
|
592
|
+
return true unless File.exist? s.object_path
|
593
593
|
return true if File.mtime(s.object_path) > File.mtime(name)
|
594
594
|
end
|
595
595
|
@sources.any? { |s| s.out_of_date? compiler }
|
@@ -603,7 +603,7 @@ module Daedalus
|
|
603
603
|
def clean
|
604
604
|
Dir.chdir @base do
|
605
605
|
@sources.each { |s| s.clean }
|
606
|
-
File.delete name if File.
|
606
|
+
File.delete name if File.exist? name
|
607
607
|
end
|
608
608
|
end
|
609
609
|
end
|
@@ -666,7 +666,7 @@ module Daedalus
|
|
666
666
|
|
667
667
|
def depends_on(file, command)
|
668
668
|
# TODO: HACK, the agony, this should be implicit
|
669
|
-
unless File.
|
669
|
+
unless File.exist? File.join(@base, file)
|
670
670
|
raise "library group #{@base} depends on #{file}, please run #{command}"
|
671
671
|
end
|
672
672
|
end
|
@@ -744,7 +744,7 @@ module Daedalus
|
|
744
744
|
|
745
745
|
def consider(ctx, tasks)
|
746
746
|
@files.each { |x| x.consider(ctx, tasks) }
|
747
|
-
tasks.post << self unless tasks.empty? and File.
|
747
|
+
tasks.post << self unless tasks.empty? and File.exist?(@path)
|
748
748
|
end
|
749
749
|
|
750
750
|
def build(ctx)
|
@@ -757,8 +757,8 @@ module Daedalus
|
|
757
757
|
f.clean if f.respond_to? :clean
|
758
758
|
end
|
759
759
|
|
760
|
-
File.unlink @path if File.
|
761
|
-
File.unlink data_path if File.
|
760
|
+
File.unlink @path if File.exist?(@path)
|
761
|
+
File.unlink data_path if File.exist?(data_path)
|
762
762
|
Dir.rmdir artifacts_path if Dir.entries(artifacts_path).empty?
|
763
763
|
end
|
764
764
|
|
data/lib/daedalus/version.rb
CHANGED
metadata
CHANGED
@@ -1,44 +1,47 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: daedalus-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brian Shirai
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-12-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
type: :development
|
15
14
|
name: rake
|
16
|
-
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
17
16
|
requirements:
|
18
17
|
- - ~>
|
19
18
|
- !ruby/object:Gem::Version
|
20
19
|
version: '0.9'
|
20
|
+
type: :development
|
21
21
|
prerelease: false
|
22
|
-
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0.9'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
type: :development
|
29
28
|
name: rspec
|
30
|
-
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
31
30
|
requirements:
|
32
31
|
- - ~>
|
33
32
|
- !ruby/object:Gem::Version
|
34
33
|
version: '2.8'
|
34
|
+
type: :development
|
35
35
|
prerelease: false
|
36
|
-
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ~>
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '2.8'
|
41
|
-
description:
|
41
|
+
description: |
|
42
|
+
Daedalus is a build system based on years of attempting to build Rubinus with a collection of Rake tasks. Rubinius is a complex system. It has dependencies on external C libraries (some of which are vendored), internal C/C++ libraries, Ruby C-extensions, and compiled Ruby code. The Rubinius bytecode compiler is written in Ruby, so we have to bootstrap compiling it.
|
43
|
+
|
44
|
+
Rake fails at this task because there is no way to manage multiple, independent dependency trees without subprocessing another Rake process. This results in unreasonable and unmanagable complexity.
|
42
45
|
email:
|
43
46
|
- brixen@gmail.com
|
44
47
|
executables: []
|
@@ -47,6 +50,7 @@ extra_rdoc_files:
|
|
47
50
|
- README.md
|
48
51
|
- LICENSE
|
49
52
|
files:
|
53
|
+
- .gitignore
|
50
54
|
- LICENSE
|
51
55
|
- README.md
|
52
56
|
- daedalus-core.gemspec
|
@@ -54,7 +58,8 @@ files:
|
|
54
58
|
- lib/daedalus/dependency_grapher.rb
|
55
59
|
- lib/daedalus/version.rb
|
56
60
|
homepage: https://github.com/rubinius/daedalus-core
|
57
|
-
licenses:
|
61
|
+
licenses:
|
62
|
+
- BSD
|
58
63
|
metadata: {}
|
59
64
|
post_install_message:
|
60
65
|
rdoc_options:
|
@@ -67,20 +72,19 @@ require_paths:
|
|
67
72
|
- lib
|
68
73
|
required_ruby_version: !ruby/object:Gem::Requirement
|
69
74
|
requirements:
|
70
|
-
- -
|
75
|
+
- - '>='
|
71
76
|
- !ruby/object:Gem::Version
|
72
|
-
version:
|
73
|
-
MA==
|
77
|
+
version: '0'
|
74
78
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
75
79
|
requirements:
|
76
|
-
- -
|
80
|
+
- - '>='
|
77
81
|
- !ruby/object:Gem::Version
|
78
|
-
version:
|
79
|
-
MA==
|
82
|
+
version: '0'
|
80
83
|
requirements: []
|
81
84
|
rubyforge_project:
|
82
|
-
rubygems_version: 2.0.
|
85
|
+
rubygems_version: 2.0.7
|
83
86
|
signing_key:
|
84
87
|
specification_version: 4
|
85
|
-
summary: Daedalus is a build system extracted from Rubinius.
|
88
|
+
summary: Daedalus is a build system extracted from Rubinius. Almost no functionality
|
89
|
+
has been implemented. This is very alpha.
|
86
90
|
test_files: []
|