dart-archive / dev_compiler

DEPRECATED - Moved to main SDK
https://github.com/dart-lang/sdk/tree/master/pkg/dev_compiler
Other
133 stars 27 forks source link

Failed to run server mode in windows #466

Closed sh4869 closed 8 years ago

sh4869 commented 8 years ago

In my windows 10(64bit), dartdevc cannot run in server mode.

$ ls
main.dart 
$ dartdevc --server main.dart
Unhandled exception:
FileSystemException: Exists failed, path = '/C:\Users\Nobuhiro\Documents\Develop\Dartlang\devctest' (OS Error:The filename, directory name, or volume label syntax is incorrect.
, errno = 123)
#0      _Directory.existsSync (dart:io/directory_impl.dart:62)
#1      createStaticHandler (package:shelf_static/src/static_handler.dart:34)
#2      DevServer.start.<start_async_body> (package:dev_compiler/src/server/server.dart:268)
#3      _RootZone.runUnary (dart:async/zone.dart:1149)
#4      _Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:551)
#5      _Future._propagateToListeners (dart:async/future_impl.dart:637)
#6      _Future._completeWithValue (dart:async/future_impl.dart:424)
#7      _Future._asyncComplete.<anonymous closure> (dart:async/future_impl.dart:479)
#8      _microtaskLoop (dart:async/schedule_microtask.dart:41)
#9      _startMicrotaskLoop (dart:async/schedule_microtask.dart:50)
#10     _runPendingImmediateCallback (dart:isolate-patch/isolate_patch.dart:96)
#11     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:149)
jmesserly commented 8 years ago

Oh nice, did you have any luck on getting this to work?

sh4869 commented 8 years ago

Sorry, I missed.

jmesserly commented 8 years ago

Ah, okay. Thanks for filing. It's good to have a bug report so we remember to look into it. :)

I'm not sure what is going on, but from the stack trace (createStaticHandler) it might be an issue with the "shelf_static" package.

sh4869 commented 8 years ago

I think path should be 'C:\Users\Nobuhiro\Documents\Develop\Dartlang\devctest' but this getter return '/C:\Users\Nobuhiro\Documents\Develop\Dartlang\devctest' , so error occured.

sh4869 commented 8 years ago

I try to fix this problem in this commit, and this error doesn't occur.

But different error occured. :(

λ dart .\bin\dartdevc.dart --server ..\main.dart
Serving index.html at http://localhost:8080/
Compiling dart:typed_data
Compiling dart:convert
Compiling dart:math
Compiling dart:core
Compiling dart:_internal
Compiling dart:collection
Compiling dart:async
Compiling dart:_js_embedded_names
Compiling dart:isolate
Compiling dart:_foreign_helper
Compiling dart:_isolate_helper
Compiling dart:_js_names
Compiling dart:_js_helper
Compiling dart:_interceptors
Compiling dart:_native_typed_data
Compiling dart:web_gl
Compiling dart:_metadata
Compiling dart:html_common
Compiling dart:indexed_db
Compiling dart:svg
Compiling dart:web_audio
Compiling dart:web_sql
Compiling dart:html
Compiling file:///C:/Users/Nobuhiro/Documents/Develop/Dartlang/main.dart
Unhandled exception:
FormatException: Scheme not starting with alphabetic character (at character 1)
..\..\..\..\..\C:\Users\Nobuhiro\Documents\Develop\Dartlang\main.dart
^

#0      Uri._fail (dart:core/uri.dart:593)
#1      Uri._makeScheme (dart:core/uri.dart:1316)
#2      Uri.parse (dart:core/uri.dart:501)
#3      Uri.resolve (dart:core/uri.dart:1710)
#4      SourceMapPrintingContext._makeRelativeUri (package:dev_compiler/src/codegen/js_printer.dart:127:26)
#5      SourceMapPrintingContext.enterNode (package:dev_compiler/src/codegen/js_printer.dart:102:13)
#6      Printer.visit (package:dev_compiler/src/js/printer.dart:203:13)
#7      Printer.blockOutWithoutBraces (package:dev_compiler/src/js/printer.dart:259:7)
#8      List.forEach (dart:core-patch/growable_array.dart:254)
#9      Printer.blockOut (package:dev_compiler/src/js/printer.dart:269:21)
#10     Printer.blockBody (package:dev_compiler/src/js/printer.dart:236:7)
#11     Printer.functionOut (package:dev_compiler/src/js/printer.dart:568:5)
#12     Printer.visitFun (package:dev_compiler/src/js/printer.dart:942:5)
#13     Fun.accept (package:dev_compiler/src/js/nodes.dart:1177:42)
#14     Printer.visit (package:dev_compiler/src/js/printer.dart:204:10)
#15     Printer.visitNestedExpression (package:dev_compiler/src/js/printer.dart:603:7)
#16     Printer.visitCommaSeparated (package:dev_compiler/src/js/printer.dart:216:7)
#17     Printer.visitCall (package:dev_compiler/src/js/printer.dart:719:5)
#18     Call.accept (package:dev_compiler/src/js/nodes.dart:894:42)
#19     Printer.visit (package:dev_compiler/src/js/printer.dart:204:10)
#20     Printer.visitNestedExpression (package:dev_compiler/src/js/printer.dart:603:7)
#21     Printer.visitExpressionStatement (package:dev_compiler/src/js/printer.dart:284:5)
#22     ExpressionStatement.accept (package:dev_compiler/src/js/nodes.dart:350:42)
#23     Printer.visit (package:dev_compiler/src/js/printer.dart:204:10)
#24     List.forEach (dart:core-patch/growable_array.dart:254)
#25     Printer.visitAll (package:dev_compiler/src/js/printer.dart:223:11)
#26     Printer.visitProgram (package:dev_compiler/src/js/printer.dart:230:5)
#27     Program.accept (package:dev_compiler/src/js/nodes.dart:316:42)
#28     writeJsLibrary (package:dev_compiler/src/codegen/js_printer.dart:39:10)
#29     JSGenerator.generateLibrary (package:dev_compiler/src/codegen/js_codegen.dart:3822:12)
#30     ServerCompiler._buildDartLibrary (package:dev_compiler/src/server/server.dart:177:21)
#31     ServerCompiler._buildSource (package:dev_compiler/src/server/server.dart:102:7)
#32     rebuild.<anonymous closure> (package:dev_compiler/src/server/dependency_graph.dart:495:16)
#33     visitInPostOrder.helper (package:dev_compiler/src/server/dependency_graph.dart:536:11)
#34     Iterable.forEach (dart:core/iterable.dart:218)
#35     visitInPostOrder.helper (package:dev_compiler/src/server/dependency_graph.dart:535:10)
#36     visitInPostOrder (package:dev_compiler/src/server/dependency_graph.dart:538:9)
#37     rebuild (package:dev_compiler/src/server/dependency_graph.dart:491:3)
#38     ServerCompiler.run (package:dev_compiler/src/server/server.dart:88:5)
#39     DevServer.start.<start_async_body> (package:dev_compiler/src/server/server.dart:289:14)
#40     _RootZone.runUnary (dart:async/zone.dart:1137)
#41     _Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:551)
#42     _Future._propagateToListeners (dart:async/future_impl.dart:637)
#43     _Future._completeWithValue (dart:async/future_impl.dart:424)
#44     _Future._asyncComplete.<anonymous closure> (dart:async/future_impl.dart:479)
#45     _microtaskLoop (dart:async/schedule_microtask.dart:41)
#46     _startMicrotaskLoop (dart:async/schedule_microtask.dart:50)
#47     _runPendingImmediateCallback (dart:isolate-patch/isolate_patch.dart:96)
#48     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:149)
sh4869 commented 8 years ago

Sorry, I tried to slove this problem, but I can't. :pensive:

vsmenon commented 8 years ago

Hmm, it looks like the problem is this line:

https://github.com/dart-lang/dev_compiler/blob/master/lib/src/codegen/js_printer.dart#L126

This:

if (src.path.startsWith('/')) {

should probably be:

if (src.path.isAbsolute) {
sh4869 commented 8 years ago

You mean

path.isAbsolute(src.path)

? I tried to replace this code, but error occured...

vsmenon commented 8 years ago

Right sorry. Same stack trace as before?

sh4869 commented 8 years ago

Yes. BTW, Please let me ask a question.
Should _makeRelativeUri function return like http://localhost:8080/main.dart?

sh4869 commented 8 years ago

src.path is Uri, so I replace this line:

https://github.com/dart-lang/dev_compiler/blob/master/lib/src/codegen/js_printer.dart#L127

return serverUri.resolve(path.relative(src.path, from: inputDir));

return serverUri.resolve(path.relative(path.fromUri(src.path), from: inputDir));

And running program, that error doesn't occured, but different problem occured.

$ dart .\dev_compiler\bin\dartdevc.dart --server .\main.dart
Serving index.html at http://localhost:8080/
Compiling dart:typed_data
Compiling dart:convert
Compiling dart:math
Compiling dart:core
Compiling dart:_internal
Compiling dart:collection
Compiling dart:async
Compiling dart:_js_embedded_names
Compiling dart:isolate
Compiling dart:_foreign_helper
Compiling dart:_isolate_helper
Compiling dart:_js_names
Compiling dart:_js_helper
Compiling dart:_interceptors
Compiling dart:_native_typed_data
Compiling dart:web_gl
Compiling dart:_metadata
Compiling dart:html_common
Compiling dart:indexed_db
Compiling dart:svg
Compiling dart:web_audio
Compiling dart:web_sql
Compiling file:///C:/Users/Nobuhiro/Documents/Develop/Dartlang/main.dart
Unhandled exception:
FileSystemException: Exists failed, path = 'C:\Users\Nobuhiro\AppData\Local\Temp\dev_compiler_out_c9d6b046-e219-11e5-8292-28d244f0c8d8\..\..\..\..\..\C:\Users\Nobuhiro\Documents\Develop\Dartlang' (OS Error: The filename, directory name, or volume label syntax is incorrect.
, errno = 123)
#0      _Directory.existsSync (dart:io/directory_impl.dart:62)
#1      FileSystem._ensureParentExists (package:dev_compiler/src/utils.dart:461:14)
#2      FileSystem.writeAsStringSync (package:dev_compiler/src/utils.dart:470:5)
#3      writeJsLibrary (package:dev_compiler/src/codegen/js_printer.dart:58:16)
#4      JSGenerator.generateLibrary (package:dev_compiler/src/codegen/js_codegen.dart:3822:12)
#5      ServerCompiler._buildDartLibrary (package:dev_compiler/src/server/server.dart:177:21)
#6      ServerCompiler._buildSource (package:dev_compiler/src/server/server.dart:102:7)
#7      rebuild.<anonymous closure> (package:dev_compiler/src/server/dependency_graph.dart:495:16)
#8      visitInPostOrder.helper (package:dev_compiler/src/server/dependency_graph.dart:536:11)
#9      Iterable.forEach (dart:core/iterable.dart:218)
#10     visitInPostOrder.helper (package:dev_compiler/src/server/dependency_graph.dart:535:10)
#11     visitInPostOrder (package:dev_compiler/src/server/dependency_graph.dart:538:9)
#12     rebuild (package:dev_compiler/src/server/dependency_graph.dart:491:3)
#13     ServerCompiler.run (package:dev_compiler/src/server/server.dart:88:5)
#14     DevServer.start.<start_async_body> (package:dev_compiler/src/server/server.dart:289:14)
#15     _RootZone.runUnary (dart:async/zone.dart:1137)
#16     _Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:551)
#17     _Future._propagateToListeners (dart:async/future_impl.dart:637)
#18     _Future._completeWithValue (dart:async/future_impl.dart:424)
#19     _Future._asyncComplete.<anonymous closure> (dart:async/future_impl.dart:479)
#20     _microtaskLoop (dart:async/schedule_microtask.dart:41)
#21     _startMicrotaskLoop (dart:async/schedule_microtask.dart:50)
#22     _runPendingImmediateCallback (dart:isolate-patch/isolate_patch.dart:96)
#23     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:149)
vsmenon commented 8 years ago

Hmm, you may be able to avoid this code path by suppressing source map generation: --no-source-maps

I'm also suspicious of this line: https://github.com/dart-lang/dev_compiler/blob/master/lib/src/compiler.dart#L436

Given the path in your exception, we seem to be deciding that inputBaseDir is c:\. That's not good.

It probably should be: C:\Users\Nobuhiro\Documents\Develop\Dartlang.

sh4869 commented 8 years ago

I used --no-source-maps option, and still this issue occured.

sh4869 commented 8 years ago

Server mode was deleted, so this issue should be closed.