johnson 1.1.1 → 1.1.2

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.
@@ -1,3 +1,7 @@
1
+ === 1.1.2 / 2009-07-29
2
+
3
+ * Cleaned up building / packaging. Gem installs work again!
4
+
1
5
  === 1.1.1 / 2009-06-27
2
6
 
3
7
  * Stress GC during tests by setting JOHNSON_GC env var. [Mike Dalessio]
@@ -4,8 +4,6 @@ Manifest.txt
4
4
  README.rdoc
5
5
  Rakefile
6
6
  bin/johnson
7
- docs/MINGW32.mk
8
- docs/cross-compile.txt
9
7
  ext/spidermonkey/context.c
10
8
  ext/spidermonkey/context.h
11
9
  ext/spidermonkey/conversions.c
@@ -64,8 +62,6 @@ lib/johnson/visitors/enumerating_visitor.rb
64
62
  lib/johnson/visitors/sexp_visitor.rb
65
63
  lib/johnson/visitors/visitor.rb
66
64
  lib/rails/init.rb
67
- lib/tasks/parsing.rake
68
- lib/tasks/vendor.rake
69
65
  test/helper.rb
70
66
  test/johnson/browser_test.rb
71
67
  test/johnson/conversions/array_test.rb
data/Rakefile CHANGED
@@ -1,10 +1,14 @@
1
1
  require "rubygems"
2
+
3
+ gem "hoe", ">= 2.3"
2
4
  require "hoe"
5
+
6
+ gem "rake-compiler", ">= 0.6.0"
3
7
  require "rake/extensiontask"
4
8
 
5
- Hoe.plugin :debugging, :git
9
+ Hoe.plugin :debugging, :doofus, :git
6
10
 
7
- HOE = Hoe.spec "johnson" do
11
+ Hoe.spec "johnson" do
8
12
  developer "John Barnette", "jbarnette@rubyforge.org"
9
13
  developer "Aaron Patterson", "aaron.patterson@gmail.com"
10
14
  developer "Yehuda Katz", "wycats@gmail.com"
@@ -15,26 +19,65 @@ HOE = Hoe.spec "johnson" do
15
19
  self.readme_file = "README.rdoc"
16
20
  self.test_globs = %w(test/**/*_test.rb)
17
21
 
18
- clean_globs << "lib/johnson/spidermonkey.bundle"
19
- clean_globs << "tmp"
20
- clean_globs << "vendor/spidermonkey/**/*.OBJ"
21
- clean_globs << "ext/**/*.{o,so,bundle,a,log}"
22
+ self.spec_extras = { :extensions => %w(ext/spidermonkey/extconf.rb) }
23
+
24
+ extra_dev_deps << ["rake-compiler", ">= 0.6.0"]
22
25
 
23
- # FIX: this crap needs to die
24
- extra_deps << "rake"
25
- extra_dev_deps << "rake-compiler"
26
- self.spec_extras = { :extensions => %w(Rakefile) }
26
+ clean_globs << "ext/**/Makefile"
27
+ clean_globs << "ext/**/*.{o,so,bundle,a,log}"
28
+ clean_globs << "ext/spidermonkey/immutable_node.c"
29
+ clean_globs << "lib/johnson/spidermonkey.bundle"
30
+ clean_globs << "tmp"
31
+ clean_globs << "vendor/spidermonkey/**/*.OBJ"
32
+
33
+ Rake::ExtensionTask.new "spidermonkey", spec do |ext|
34
+ ext.lib_dir = "lib/johnson"
35
+ end
27
36
  end
28
37
 
29
- Rake::ExtensionTask.new "spidermonkey", HOE.spec do |ext|
30
- ext.lib_dir = "lib/johnson"
38
+ task :clean do
39
+ Dir.chdir "vendor/spidermonkey" do
40
+ sh "make clean -f Makefile.ref" unless Dir["**/libjs.a"].empty?
41
+ end
31
42
  end
32
43
 
33
44
  task :test => :compile
34
45
 
35
- Dir["lib/tasks/*.rake"].each { |f| load f }
46
+ require "erb"
47
+
48
+ GENERATED_NODE = "ext/spidermonkey/immutable_node.c"
49
+
50
+ task :package => GENERATED_NODE
51
+ task :check_manifest => GENERATED_NODE
36
52
 
37
- # HACK: If Rake is running as part of the gem install, clear out the
38
- # default task and make the extensions compile instead.
53
+ def jsops
54
+ ops = []
55
+ File.open("vendor/spidermonkey/jsopcode.tbl", "rb") { |f|
56
+ f.each_line do |line|
57
+ if line =~ /^OPDEF\((\w+),/
58
+ ops << $1
59
+ end
60
+ end
61
+ }
62
+ ops
63
+ end
64
+
65
+ def tokens
66
+ toks = []
67
+ File.open("vendor/spidermonkey/jsscan.h", "rb") { |f|
68
+ f.each_line do |line|
69
+ line.scan(/TOK_\w+/).each do |token|
70
+ next if token == "TOK_ERROR"
71
+ toks << token
72
+ end
73
+ end
74
+ }
75
+ toks.uniq
76
+ end
77
+
78
+ file GENERATED_NODE => "ext/spidermonkey/immutable_node.c.erb" do |t|
79
+ template = ERB.new(File.open(t.prerequisites.first, "rb") { |x| x.read })
80
+ File.open(GENERATED_NODE, "wb") { |f| f.write template.result(binding) }
81
+ end
39
82
 
40
- Rake::Task[:default].prerequisites.replace %w(compile) if ENV["RUBYARCHDIR"]
83
+ file "ext/spidermonkey/extconf.rb" => GENERATED_NODE
@@ -18,9 +18,12 @@ $CFLAGS << cflags.collect { |f| " -#{f}" }.join(" ")
18
18
  spidermonkey_dir = File.expand_path File.dirname(__FILE__) +
19
19
  "/../../vendor/spidermonkey"
20
20
 
21
+ Dir.chdir spidermonkey_dir do
22
+ system "make -f Makefile.ref" if Dir["**/libjs.a"].empty?
23
+ end
24
+
21
25
  libjs = Dir[spidermonkey_dir + "/**/libjs.a"].first
22
- abort "libjs.a isn't built!" unless libjs
23
- $LOCAL_LIBS<< libjs
26
+ $LOCAL_LIBS << libjs
24
27
 
25
28
  dir_config "johnson/spidermonkey"
26
29
 
@@ -1,3 +1,3 @@
1
1
  module Johnson #:nodoc:
2
- VERSION = "1.1.1"
2
+ VERSION = "1.1.2"
3
3
  end
@@ -1,10 +1,6 @@
1
1
  require "rubygems"
2
2
  require "test/unit"
3
3
 
4
- %w(../lib ../ext/spidermonkey).each do |path|
5
- $LOAD_PATH.unshift(File.expand_path(File.join(File.dirname(__FILE__), path)))
6
- end
7
-
8
4
  require "johnson"
9
5
 
10
6
  module Johnson
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: johnson
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Barnette
@@ -12,19 +12,9 @@ autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
14
 
15
- date: 2009-06-27 00:00:00 -07:00
15
+ date: 2009-07-29 00:00:00 -07:00
16
16
  default_executable:
17
17
  dependencies:
18
- - !ruby/object:Gem::Dependency
19
- name: rake
20
- type: :runtime
21
- version_requirement:
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: "0"
27
- version:
28
18
  - !ruby/object:Gem::Dependency
29
19
  name: rake-compiler
30
20
  type: :development
@@ -33,7 +23,7 @@ dependencies:
33
23
  requirements:
34
24
  - - ">="
35
25
  - !ruby/object:Gem::Version
36
- version: "0"
26
+ version: 0.6.0
37
27
  version:
38
28
  - !ruby/object:Gem::Dependency
39
29
  name: hoe
@@ -43,7 +33,7 @@ dependencies:
43
33
  requirements:
44
34
  - - ">="
45
35
  - !ruby/object:Gem::Version
46
- version: 2.3.1
36
+ version: 2.3.2
47
37
  version:
48
38
  description: |-
49
39
  Johnson wraps JavaScript in a loving Ruby embrace. It embeds the
@@ -56,10 +46,9 @@ email:
56
46
  executables:
57
47
  - johnson
58
48
  extensions:
59
- - Rakefile
49
+ - ext/spidermonkey/extconf.rb
60
50
  extra_rdoc_files:
61
51
  - Manifest.txt
62
- - docs/cross-compile.txt
63
52
  - CHANGELOG.rdoc
64
53
  - README.rdoc
65
54
  files:
@@ -69,8 +58,6 @@ files:
69
58
  - README.rdoc
70
59
  - Rakefile
71
60
  - bin/johnson
72
- - docs/MINGW32.mk
73
- - docs/cross-compile.txt
74
61
  - ext/spidermonkey/context.c
75
62
  - ext/spidermonkey/context.h
76
63
  - ext/spidermonkey/conversions.c
@@ -129,8 +116,6 @@ files:
129
116
  - lib/johnson/visitors/sexp_visitor.rb
130
117
  - lib/johnson/visitors/visitor.rb
131
118
  - lib/rails/init.rb
132
- - lib/tasks/parsing.rake
133
- - lib/tasks/vendor.rake
134
119
  - test/helper.rb
135
120
  - test/johnson/browser_test.rb
136
121
  - test/johnson/conversions/array_test.rb
@@ -456,7 +441,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
456
441
  requirements: []
457
442
 
458
443
  rubyforge_project: johnson
459
- rubygems_version: 1.3.4
444
+ rubygems_version: 1.3.5
460
445
  signing_key:
461
446
  specification_version: 3
462
447
  summary: Johnson wraps JavaScript in a loving Ruby embrace
@@ -1,124 +0,0 @@
1
- # -*- Mode: makefile -*-
2
- #
3
- #
4
- # Based on patch submitted to mozilla.dev.tech.js-engine by 'Andy':
5
- # http://groups.google.com/group/mozilla.dev.tech.js-engine/browse_thread/thread/16972946bf7df82e
6
- #
7
- #
8
- # ***** BEGIN LICENSE BLOCK *****
9
- # Version: MPL 1.1/GPL 2.0/LGPL 2.1
10
- #
11
- # The contents of this file are subject to the Mozilla Public License Version
12
- # 1.1 (the "License"); you may not use this file except in compliance with
13
- # the License. You may obtain a copy of the License at
14
- # http://www.mozilla.org/MPL/
15
- #
16
- # Software distributed under the License is distributed on an "AS IS" basis,
17
- # WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
18
- # for the specific language governing rights and limitations under the
19
- # License.
20
- #
21
- # The Original Code is Mozilla Communicator client code, released
22
- # March 31, 1998.
23
- #
24
- # The Initial Developer of the Original Code is
25
- # Netscape Communications Corporation.
26
- # Portions created by the Initial Developer are Copyright (C) 1998
27
- # the Initial Developer. All Rights Reserved.
28
- #
29
- # Contributor(s):
30
- #
31
- # Alternatively, the contents of this file may be used under the terms of
32
- # either the GNU General Public License Version 2 or later (the "GPL"), or
33
- # the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
34
- # in which case the provisions of the GPL or the LGPL are applicable instead
35
- # of those above. If you wish to allow use of your version of this file only
36
- # under the terms of either the GPL or the LGPL, and not to allow others to
37
- # use your version of this file under the terms of the MPL, indicate your
38
- # decision by deleting the provisions above and replace them with the notice
39
- # and other provisions required by the GPL or the LGPL. If you do not delete
40
- # the provisions above, a recipient may use your version of this file under
41
- # the terms of any one of the MPL, the GPL or the LGPL.
42
- #
43
- # ***** END LICENSE BLOCK *****
44
-
45
- #
46
- # Config for all versions of Mingw (copy and modified from Linux)
47
- #
48
-
49
- AR = i586-mingw32msvc-ar
50
- CC = i586-mingw32msvc-gcc
51
- LD = i586-mingw32msvc-ld
52
- CCC = i586-mingw32msvc-g++
53
-
54
- CFLAGS += -Wall -Wno-format
55
- #OS_CFLAGS = -DXP_UNIX -DSVR4 -DSYSV -D_BSD_SOURCE -DPOSIX_SOURCE -DHAVE_LOCALTIME_R -DEXPORT_JS_API
56
- OS_CFLAGS = -D_X86_=1 -DXP_WIN -DXP_WIN32 -DWIN32 -D_WINDOWS -D_WIN32 $(WIN_CFLAGS) -DEXPORT_JS_API
57
- JSDLL_CFLAGS = -DEXPORT_JS_API # not work, dunno why?
58
- SO_SUFFIX = dll
59
- # libgcc.a:__divdi3 kernel32:DebugBreak,GetSystemTimeAsFileTime
60
- # winmm:timeBeginPeriod,timeEndPeriod
61
- WINLIBS = -lmsvcrt -lm -lkernel32 -lwinmm /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/libgcc.a
62
- #LDFLAGS += $(WINLIBS) # dont work. rewrite by Makefile.ref
63
- OTHER_LIBS += $(WINLIBS)
64
-
65
- RANLIB = echo
66
- MKSHLIB = $(LD) -shared $(XMKSHLIBOPTS)
67
-
68
- # These don't work :(
69
- LIBRARY = $(OBJDIR)/js32.lib
70
- SHARED_LIBRARY = $(OBJDIR)/js32.dll
71
- PROGRAM = $(OBJDIR)/js.exe
72
-
73
- #.c.o:
74
- # $(CC) -c -MD $*.d $(CFLAGS) $<
75
-
76
- CPU_ARCH = $(shell uname -m)
77
- # don't filter in x86-64 architecture
78
- ifneq (x86_64,$(CPU_ARCH))
79
- ifeq (86,$(findstring 86,$(CPU_ARCH)))
80
- CPU_ARCH = x86
81
- OS_CFLAGS+= -DX86_LINUX
82
-
83
- ifeq (gcc, $(CC))
84
- # if using gcc on x86, check version for opt bug
85
- # (http://bugzilla.mozilla.org/show_bug.cgi?id=24892)
86
- GCC_VERSION := $(shell gcc -v 2>&1 | grep version | awk '{ print $$3 }')
87
- GCC_LIST:=$(sort 2.91.66 $(GCC_VERSION) )
88
-
89
- ifeq (2.91.66, $(firstword $(GCC_LIST)))
90
- CFLAGS+= -DGCC_OPT_BUG
91
- endif
92
- endif
93
- endif
94
- endif
95
-
96
- GFX_ARCH = x
97
-
98
- OS_LIBS = -lm -lc
99
-
100
- ASFLAGS += -x assembler-with-cpp
101
-
102
-
103
- ifeq ($(CPU_ARCH),alpha)
104
-
105
- # Ask the C compiler on alpha linux to let us work with denormalized
106
- # double values, which are required by the ECMA spec.
107
-
108
- OS_CFLAGS += -mieee
109
- endif
110
-
111
- # Use the editline library to provide line-editing support.
112
- #JS_EDITLINE = 1 // not support by Mingw
113
-
114
- ifeq ($(CPU_ARCH),x86_64)
115
- # Use VA_COPY() standard macro on x86-64
116
- # FIXME: better use it everywhere
117
- OS_CFLAGS += -DHAVE_VA_COPY
118
- endif
119
-
120
- ifeq ($(CPU_ARCH),x86_64)
121
- # We need PIC code for shared libraries
122
- # FIXME: better patch rules.mk & fdlibm/Makefile*
123
- OS_CFLAGS += -DPIC -fPIC
124
- endif
@@ -1,38 +0,0 @@
1
-
2
- CROSS-COMPILING FOR WINDOWS
3
-
4
- Based on http://eigenclass.org/hiki.rb?cross+compiling+rcovrt
5
-
6
-
7
- *) Install the MinGW cross-compiler
8
-
9
- Debian: apt-get install mingw32 mingw32-binutils mingw32-runtime
10
-
11
- *) Download & extract a ruby distribution archive
12
-
13
- *) Double the backslashes in the ALT_SEPARATOR definition in Makefile.in
14
-
15
- *) Build & install it:
16
-
17
- env ac_cv_func_getpgrp_void=no \
18
- ac_cv_func_setpgrp_void=yes \
19
- rb_cv_negative_time_t=no \
20
- ac_cv_func_memcmp_working=yes \
21
- rb_cv_binary_elf=no \
22
- ./configure \
23
- --host=i586-mingw32msvc \
24
- --target=i386-mingw32 \
25
- --build=i686-linux \
26
- --prefix=~/ruby-mingw32
27
-
28
- make ruby
29
-
30
- make install
31
-
32
- *) Build the extension (rake will build spidermonkey for you)
33
-
34
- # Remove any native binaries that are already built
35
- rake clean
36
-
37
- rake build CROSS=MINGW32 CROSSLIB=~/ruby-mingw32/lib/ruby/1.8/i386-mingw32
38
-
@@ -1,37 +0,0 @@
1
- require "erb"
2
-
3
- GENERATED_NODE = "ext/spidermonkey/immutable_node.c"
4
- HOE.clean_globs << GENERATED_NODE
5
- task :check_manifest => GENERATED_NODE
6
-
7
- def jsops
8
- ops = []
9
- File.open("vendor/spidermonkey/jsopcode.tbl", "rb") { |f|
10
- f.each_line do |line|
11
- if line =~ /^OPDEF\((\w+),/
12
- ops << $1
13
- end
14
- end
15
- }
16
- ops
17
- end
18
-
19
- def tokens
20
- toks = []
21
- File.open("vendor/spidermonkey/jsscan.h", "rb") { |f|
22
- f.each_line do |line|
23
- line.scan(/TOK_\w+/).each do |token|
24
- next if token == "TOK_ERROR"
25
- toks << token
26
- end
27
- end
28
- }
29
- toks.uniq
30
- end
31
-
32
- file GENERATED_NODE => "ext/spidermonkey/immutable_node.c.erb" do |t|
33
- template = ERB.new(File.open(t.prerequisites.first, "rb") { |x| x.read })
34
- File.open(GENERATED_NODE, "wb") { |f| f.write template.result(binding) }
35
- end
36
-
37
- file "ext/spidermonkey/extconf.rb" => GENERATED_NODE
@@ -1,20 +0,0 @@
1
- namespace :vendor do
2
- namespace :spidermonkey do
3
- desc "Clean the vendored SpiderMonkey."
4
- task :clean do
5
- Dir.chdir "vendor/spidermonkey" do
6
- sh "make clean -f Makefile.ref" unless Dir["**/libjs.a"].empty?
7
- end
8
- end
9
-
10
- desc "Compile the vendored SpiderMonkey."
11
- task :compile do
12
- Dir.chdir "vendor/spidermonkey" do
13
- sh "make -f Makefile.ref" if Dir["**/libjs.a"].empty?
14
- end
15
- end
16
- end
17
- end
18
-
19
- task :clean => "vendor:spidermonkey:clean"
20
- file "ext/spidermonkey/extconf.rb" => "vendor:spidermonkey:compile"