Whoa... that’s a lot of stuff. Presumably most of that stuff is only needed to build chrome, and dash only needs a small portion of that.
Third impression:
Gold is a new linker that links Chrome 5x faster than GNU ld.
Wow. Replacing the linker is clearly hard-core stuff.
Fourth impression:
*******************************************************************************
* WARNING: Can't download DumpRenderTree! This is required to test client apps.
* You need to do a one-time configuration step to access Google Storage.
* Please run this command and follow the instructions:
* third_party/gsutil/20110627/gsutil config
*
* NOTE: When prompted you can leave "project-id" blank. Just hit enter.
*******************************************************************************
OK, this is starting to **** me off. They need my Google identity in order to simply build a compiler? Grr.
Fifth impression:
Please navigate your browser to http://code.google.com/apis/console,
then click "Services" on the left side panel and ensure you have Storage
activated, then click "Storage" on the left side panel and find the "x-goog-project-id" on that page.
What is your project-id?
I don’t see a left side panel or “Services” anywhere on the page. Stuck for now. Will move onto other tasks and come back later.
I wonder how many people who are diss’ing Dart on Twitter and elsewhere have actually tried the language?
OK, so the next step is you push the only button on the screen ("Create project..."), and THEN you see a panel on the left with a Storage menu item. Then the option appears to be called “Google Cloud Storage”, as that is the only option with the word “Storage” in it.. Turning it on, you find out that:
You must sign up for billing before you will be able to create any buckets.
When prompted you can leave “project-id” blank. Just hit enter.
That works. The installation then completes with:
No default project ID entered. You will need to edit the default_project_id
value
in your boto config file before using "gsutil ls gs://" or "mb" commandswith
the default API version 2.
Boto config file "/home/rubys/.boto" created. If you need to use
a proxy to access the Internet please see the instructions in that file.
Since the next commands aren’t gsutil or mb, I’ll ignore that for now and press on:
$ ../tools/build.py --arch=ia32
make -j 1 BUILDTYPE=Debug_ia32 all
ACTION Generating
/home/rubys/dart/runtime/out/Debug_ia32/obj/gen/corelib_gen.cc file.
out/Debug_ia32/obj/gen/corelib_gen.cc
TOUCH out/Debug_ia32/obj.target/runtime/generate_corelib_cc_file.stamp
ACTION Generating
/home/rubys/dart/runtime/out/Debug_ia32/obj/gen/corelib_impl_gen.cc file.
out/Debug_ia32/obj/gen/corelib_impl_gen.cc
TOUCH out/Debug_ia32/obj.target/runtime/generate_corelib_impl_cc_file.stamp
CXX(target) out/Debug_ia32/obj.target/libdart_lib/gen/corelib_gen.o
In file included from /usr/include/features.h:388:0,
from /usr/include/inttypes.h:26,
from ../runtime/vm/globals.h:32,
from ../runtime/vm/assert.h:16,
from ../runtime/vm/allocation.h:8,
from ../runtime/vm/bootstrap.h:8,
from out/Debug_ia32/obj/gen/corelib_gen.cc:5:
/usr/include/gnu/stubs.h:7:27: fatal error: gnu/stubs-32.h: No such file or
directory
compilation terminated.
make: *** [out/Debug_ia32/obj.target/libdart_lib/gen/corelib_gen.o] Error 1
BUILD FAILED
That’s probably it for tonight. I’ll likely resume tomorrow.
I get further if I use ../tools/build.py --arch=x64. Current failure:
CXX(target) out/Debug_x64/obj.target/libdart/runtime/vm/dart_api_impl.o
cc1plus: warnings being treated as errors
../runtime/vm/dart_api_impl.cc: In function ‘void*
dart::Dart_CreateIsolate(void*, void*)’:
../runtime/vm/dart_api_impl.cc:38:71: error: declaration of ‘void*
dart::Dart_CreateIsolate(void*, void*)’ with C language linkage
../runtime/include/dart_api.h:185:26: error: conflicts with previous
declaration ‘void* Dart_CreateIsolate(const Dart_Snapshot*, void*)’
../runtime/vm/dart_api_impl.cc: In function ‘Dart_Result
dart::Dart_PostIntArray(Dart_Port, intptr_t, intptr_t*)’:
../runtime/vm/dart_api_impl.cc:1485:57: error: declaration of ‘Dart_Result
dart::Dart_PostIntArray(Dart_Port, intptr_t, intptr_t*)’ with C language
linkage
../runtime/include/dart_api.h:380:25: error: conflicts with previous
declaration ‘Dart_Result Dart_PostIntArray(Dart_Port, int, intptr_t*)’
make: *** [out/Debug_x64/obj.target/libdart/runtime/vm/dart_api_impl.o] Error
1
BUILD FAILED
I gather that I am not the first to see this error.
Starting over, trying again, this time on Ubuntu 11.10. All it takes is to comment out the exit 1 statement after the message about which versions of Ubuntu are currently supported. This time I get a different error:
CXX(target) out/Debug_x64/obj.target/libdart_vm/runtime/vm/parser.o
../runtime/vm/parser.cc: In member function ‘dart::CaseNode* dart::Parser::ParseCaseClause(dart::LocalVariable*, dart::SourceLabel*)’:
../runtime/vm/parser.cc:3666:12: error: variable ‘expr_pos’ set but not used [-Werror=unused-but-set-variable]
cc1plus: all warnings being treated as errors
Commenting out three lines (3666, 3675, 3689), allows me to proceed to the next error:
CXX(target) out/Debug_x64/obj.target/libjscre/runtime/third_party/jscre/pcre_compile.o
../runtime/third_party/jscre/pcre_compile.cpp: In function ‘bool dart::jscre::compileBranch(int, int*, unsigned char**, const UChar**, const UChar*, dart::jscre::ErrorCode*, int*, int*, dart::jscre::CompileData&)’:
../runtime/third_party/jscre/pcre_compile.cpp:569:18: error: variable ‘tempptr’ set but not used [-Werror=unused-but-set-variable]
cc1plus: all warnings being treated as errors
Again, commenting out lines 569 and 1567 lets me progress. This time, to the same error in the previous comment.
Next up: svn switch http://dart.googlecode.com/svn/branches/bleeding_edge/dart/runtime/, after undoing the previous changes. This results in a successful build:
I take it back. Your instructions differ in two material ways: you use gcc-4.4, and you install Java. Looking at your screen capture, Java was a part of the build, which initially was puzzling as it wasn’t a part of my sources:
An svn up later, and I had plenty of Java (why there would be any Java in Dart is another mystery to investigate). Meanwhile, a clean rebuild of trunk does compile everything now (even with gcc-4.5), including a closure_out/Compiler.jar.
The build then fails with:
make: *** No rule to make target
`compiler/java/com/google/dart/runner/TestRunner.java', needed by
`out/Debug_ia32/obj.target/geni/dartc/tests.jar'. Stop.
I seem to have a “d8” executable (which appears to be JS not Dart - example: string interpolation doesn’t work), and no dart executables.
Note: the installation of libc6-dev:i386 must be before and separate from the installation of build-essentials. They fail to install together, and attempts to install libc6-dev:i386 after build-essentials will cause build-essentials and a few other packages to be uninstalled.