fcshd 0.6.5 → 0.6.6
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.
- data/bin/fcshc +39 -21
- data/bin/fcshc-repl +8 -15
- data/bin/fcshd +4 -4
- data/lib/fcshd/transcript-item.rb +26 -10
- data/lib/fcshd/transcript-parser.rb +4 -9
- data/lib/fcshd/transcript.rb +2 -2
- data/lib/fcshd/version.rb +1 -1
- metadata +5 -5
data/bin/fcshc
CHANGED
@@ -124,10 +124,11 @@ EOF
|
|
124
124
|
parser.separator "TL;DR: $ fcshc src/my_app.mxml"
|
125
125
|
end.parse!
|
126
126
|
|
127
|
-
$run_compilation = true unless $run_compilation == false
|
128
127
|
$extra_arguments << "-debug" unless $production
|
129
128
|
|
130
129
|
for name in ARGV
|
130
|
+
$run_compilation = true
|
131
|
+
|
131
132
|
if not File.exists? name
|
132
133
|
die "no such file or directory: #{name}"
|
133
134
|
elsif File.directory? name
|
@@ -231,30 +232,47 @@ if $run_compilation
|
|
231
232
|
$compilation_command.concat($extra_arguments)
|
232
233
|
end
|
233
234
|
|
234
|
-
|
235
|
-
|
235
|
+
def run_command(command)
|
236
|
+
begin
|
237
|
+
host, port = "localhost", FCSHD::Server::PORT
|
238
|
+
socket = TCPSocket.new(host, port)
|
239
|
+
rescue Errno::ECONNREFUSED
|
240
|
+
die "could not connect to fcshd at #{host}:#{port}"
|
241
|
+
end
|
242
|
+
|
243
|
+
socket.puts command
|
236
244
|
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
245
|
+
compiler_output = ""
|
246
|
+
socket.each_line do |line|
|
247
|
+
case line
|
248
|
+
when /^fcshd: /
|
249
|
+
warn line.chomp
|
250
|
+
else
|
251
|
+
compiler_output << line
|
252
|
+
end
|
253
|
+
end
|
254
|
+
|
255
|
+
if $verbose
|
256
|
+
STDOUT.write compiler_output
|
257
|
+
end
|
258
|
+
|
259
|
+
compiler_output
|
242
260
|
end
|
243
261
|
|
244
|
-
|
245
|
-
|
262
|
+
run_command "restart" if $restart_compiler
|
263
|
+
|
264
|
+
if $run_compilation
|
265
|
+
command = $compilation_command.join(" ")
|
246
266
|
|
247
|
-
|
248
|
-
|
249
|
-
case line
|
250
|
-
when /^fcshd: /
|
251
|
-
warn line.chomp
|
267
|
+
if $dry_run
|
268
|
+
warn command if $verbose
|
252
269
|
else
|
253
|
-
compiler_output
|
270
|
+
compiler_output = run_command command
|
271
|
+
transcript = FCSHD::Transcript[compiler_output]
|
272
|
+
|
273
|
+
basedir = File.join(File.expand_path("."), "")
|
274
|
+
STDOUT.write transcript.to_s(basedir)
|
275
|
+
|
276
|
+
exit 1 if not transcript.succeeded?
|
254
277
|
end
|
255
278
|
end
|
256
|
-
|
257
|
-
transcript = FCSHD::Transcript[compiler_output]
|
258
|
-
basedir = File.join(File.expand_path("."), "")
|
259
|
-
STDOUT.write transcript.to_s(basedir)
|
260
|
-
exit 1 if not transcript.succeeded?
|
data/bin/fcshc-repl
CHANGED
@@ -33,18 +33,13 @@ end
|
|
33
33
|
|
34
34
|
program_template = <<EOF
|
35
35
|
package {
|
36
|
-
import stdio.
|
37
|
-
import stdio.process
|
38
|
-
import stdlib.inspect
|
39
|
-
import flash.utils.*
|
36
|
+
import stdio.Sprite
|
40
37
|
|
38
|
+
[SWF(width=0, height=0)]
|
41
39
|
public class dummy extends Sprite {
|
42
|
-
|
43
|
-
process.immortal = false
|
44
|
-
process.whiny = true
|
45
|
-
|
40
|
+
public function main(): void {
|
46
41
|
try {
|
47
|
-
process.warn(
|
42
|
+
process.warn(__CODE__)
|
48
43
|
} finally {
|
49
44
|
process.exit()
|
50
45
|
}
|
@@ -57,13 +52,11 @@ get_program = lambda do |code|
|
|
57
52
|
program_template.sub("__CODE__", code)
|
58
53
|
end
|
59
54
|
|
60
|
-
class MyInterrupt < StandardError; end
|
61
|
-
|
62
55
|
while line = Readline.readline("as3> ", true)
|
63
56
|
File.open("dummy.as", "w") { |file| file << get_program[line] }
|
64
|
-
output = `fcshc -
|
57
|
+
output = `fcshc -lstdio --no-rsls dummy.as`
|
65
58
|
puts output.gsub(/^dummy.as:\d+: /, "") unless output == ""
|
66
|
-
if $? == 0
|
67
|
-
system "run-stdio-swf dummy.swf"
|
68
|
-
end
|
59
|
+
system "run-swf dummy.swf" if $? == 0
|
69
60
|
end
|
61
|
+
|
62
|
+
puts
|
data/bin/fcshd
CHANGED
@@ -22,16 +22,16 @@ EOF
|
|
22
22
|
logger.log "fcshd #{FCSHD::VERSION}"
|
23
23
|
|
24
24
|
compiler = FCSHD::Compiler.new(logger)
|
25
|
-
compiler.start!
|
25
|
+
compiler.start!
|
26
26
|
|
27
27
|
Thread.abort_on_exception = true
|
28
28
|
|
29
29
|
begin
|
30
|
+
logger.log "listening to port #{FCSHD::Server::PORT}..."
|
30
31
|
FCSHD::Server.new(FCSHD::Server::PORT, compiler, logger).run!
|
31
|
-
logger.log "Now listening to port #{FCSHD_PORT}."
|
32
32
|
rescue Interrupt
|
33
33
|
logger.log ""
|
34
|
-
logger.log "
|
34
|
+
logger.log "exiting"
|
35
35
|
rescue Exception => error
|
36
|
-
logger.error "
|
36
|
+
logger.error "could not listen to port #{FCSHD::Server::PORT}: #{error}"
|
37
37
|
end
|
@@ -4,7 +4,7 @@ module FCSHD
|
|
4
4
|
class Transcript; end
|
5
5
|
class Transcript::Item < Struct.new(:location, :mxmlc_message)
|
6
6
|
def to_s(basedir)
|
7
|
-
problems.map { |problem| problem.to_s(basedir)
|
7
|
+
problems.map { |problem| problem.to_s(basedir) + "\n" }
|
8
8
|
end
|
9
9
|
|
10
10
|
def problems
|
@@ -57,6 +57,17 @@ EOF
|
|
57
57
|
when /^Incorrect number of arguments. Expected no more than (\d+)\.$/ then <<EOF
|
58
58
|
error: expected at most #$1 arguments
|
59
59
|
EOF
|
60
|
+
|
61
|
+
when /^Interface method (.+) in namespace (.+) not implemented by class (.+)\.$/ then <<EOF
|
62
|
+
error: #{quote $1} (from #{name $2}) not implemented
|
63
|
+
EOF
|
64
|
+
when /^Interface method (.+) in namespace (.+) not implemented by class (.+)\.$/ then <<EOF
|
65
|
+
error: #{quote $1} (from #{name $2}) not implemented
|
66
|
+
EOF
|
67
|
+
when /^Interface method (.+) in namespace (.+) is implemented with an incompatible signature in class (.+)\.$/ then <<EOF
|
68
|
+
error: #{quote $1} (from #{name $2}) implemented incorrectly
|
69
|
+
EOF
|
70
|
+
|
60
71
|
when
|
61
72
|
/^Access of possibly undefined property (.+) through a reference with static type (.+)\.$/,
|
62
73
|
/^Call to a possibly undefined method (.+) through a reference with static type (.+)\.$/,
|
@@ -64,7 +75,7 @@ EOF
|
|
64
75
|
then <<EOF
|
65
76
|
error: #{quote $1} undeclared in #{name $2}
|
66
77
|
EOF
|
67
|
-
when /^Attempted access of inaccessible property (.+) through a reference with static type (.+)\.$/ then <<EOF
|
78
|
+
when /^Attempted access of inaccessible (?:property|method) (.+) through a reference with static type (.+)\.$/ then <<EOF
|
68
79
|
error: #{quote $1} inaccessible in #{name $2}
|
69
80
|
EOF
|
70
81
|
when
|
@@ -120,18 +131,17 @@ EOF
|
|
120
131
|
when /^A conflict exists with definition (.+) in namespace internal\.$/ then <<EOF
|
121
132
|
error: #{quote $1} conflicts with an internal name
|
122
133
|
EOF
|
123
|
-
when
|
124
|
-
/^Warning: return value for function '(.+)' has no type declaration\.$/
|
125
|
-
then
|
134
|
+
when /^Warning: return value for function '(.+)' has no type declaration\.$/ then
|
126
135
|
<<EOF
|
127
136
|
error: #{quote($1) + " " unless $1 == "anonymous"}missing return type
|
128
137
|
EOF
|
129
|
-
when
|
130
|
-
/^Warning: parameter '(.+)' has no type declaration\.$/
|
131
|
-
then
|
132
|
-
<<EOF
|
138
|
+
when /^Warning: parameter '(.+)' has no type declaration\.$/ then <<EOF
|
133
139
|
error: #{quote($1)} missing type
|
134
140
|
EOF
|
141
|
+
|
142
|
+
when "Warning: This compilation unit did not have a factoryClass specified in Frame metadata to load the configured runtime shared libraries. To compile without runtime shared libraries either set the -static-link-runtime-shared-libraries option to true or remove the -runtime-shared-libraries option."
|
143
|
+
then []
|
144
|
+
|
135
145
|
when /^A file found in a source-path must have the same package structure '(.*)', as the definition's package, '(.*)'\.$/ then <<EOF
|
136
146
|
error: package should be #{quote $1}
|
137
147
|
EOF
|
@@ -146,9 +156,15 @@ error: modifying constant
|
|
146
156
|
EOF
|
147
157
|
when "Function does not have a body." then <<EOF
|
148
158
|
error: missing function body"
|
159
|
+
EOF
|
160
|
+
when "Return value must be undefined." then <<EOF
|
161
|
+
error: cannot return something here
|
162
|
+
EOF
|
163
|
+
when "Return type of a getter definition must not be void." then <<EOF
|
164
|
+
error: must return something
|
149
165
|
EOF
|
150
166
|
when "Return type of a setter definition must be unspecified or void." then <<EOF
|
151
|
-
error: setter must return
|
167
|
+
error: setter must not return anything"
|
152
168
|
EOF
|
153
169
|
when "Function does not return a value." then <<EOF
|
154
170
|
error: missing return statement"
|
@@ -28,21 +28,16 @@ module FCSHD
|
|
28
28
|
skip_indented_lines!
|
29
29
|
|
30
30
|
when /^Required RSLs:$/
|
31
|
-
# Does anybody care about this?
|
32
31
|
skip_indented_lines!
|
33
32
|
|
34
33
|
when /^(Recompile|Reason|Updated): /
|
35
34
|
when /^Loading configuration file /
|
36
35
|
when "Detected configuration changes. Recompile..."
|
37
36
|
|
37
|
+
when /^fcshd: /
|
38
|
+
result << line
|
38
39
|
else
|
39
|
-
#
|
40
|
-
if line.start_with? "fcshd: "
|
41
|
-
result << line
|
42
|
-
else
|
43
|
-
# XXX: What about when we support compc?
|
44
|
-
result << "mxmlc: #{line}"
|
45
|
-
end
|
40
|
+
result << "mxmlc: #{line}" # XXX: Could be `compc` too.
|
46
41
|
end
|
47
42
|
end
|
48
43
|
end
|
@@ -62,7 +57,7 @@ module FCSHD
|
|
62
57
|
end
|
63
58
|
|
64
59
|
def skip_problem_diagram!
|
65
|
-
lines.shift(4)
|
60
|
+
lines.shift(4) unless lines[0...4].grep(/^\s*\^\s*$/).empty?
|
66
61
|
end
|
67
62
|
|
68
63
|
def skip_indented_lines!
|
data/lib/fcshd/transcript.rb
CHANGED
data/lib/fcshd/version.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fcshd
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 11
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 6
|
9
|
-
-
|
10
|
-
version: 0.6.
|
9
|
+
- 6
|
10
|
+
version: 0.6.6
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Daniel Brockman
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-03-
|
18
|
+
date: 2012-03-21 00:00:00 Z
|
19
19
|
dependencies: []
|
20
20
|
|
21
21
|
description: |
|
@@ -84,7 +84,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
84
84
|
requirements: []
|
85
85
|
|
86
86
|
rubyforge_project:
|
87
|
-
rubygems_version: 1.8.
|
87
|
+
rubygems_version: 1.8.13
|
88
88
|
signing_key:
|
89
89
|
specification_version: 3
|
90
90
|
summary: Usable CLI for the Adobe Flex compiler shell (fcsh)
|