Tcl Source Code

Check-in [d7c3b38fe1]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Clarify which files are actually symlinks
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | ferrieux-nacl
Files: files | file ages | folders
SHA1: d7c3b38fe1c6b6087d54db83605aa1183fcb4de1
User & Date: alex 2011-04-03 23:56:27
Context
2011-04-04
07:03
Explain chrome options better check-in: e860adf254 user: alex tags: ferrieux-nacl
2011-04-03
23:56
Clarify which files are actually symlinks check-in: d7c3b38fe1 user: alex tags: ferrieux-nacl
23:35
New branch ferrieux-nacl : a port of Tcl to Google's Nacl (Native Client) check-in: c38762ae52 user: alex tags: ferrieux-nacl
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to nacl/README.

25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

44
45
46
47
48
49
50
51
52
53

54














 - cd inside it

 - run './nacl.genconf' (which is a ./configure command line with proper flags)

 - run 'patch -p0 < Makefile.patch' to fix the generated Makefile

 - run 'make'. This creates tcl.nmf and tcl.nexe.

 - launch the NaCl-provided python-based webserver, and make it see your nacl dir somewhere in its document tree: python httpd.py 5103

 - start 'chromedebug' (provided), and point Chrome to the index.html in nacl.

Overview of the porting method
------------------------------

Nacl  comes  with a  very  incomplete libc  and  set  of headers.  The
strategy,  then,  is to  simply  "plug"  missing  syscalls or  library
functions with either explicitly  failing stubs (returning -1 or NULL,

and setting  errno), and  to build a  big include  file (naclcompat.h)
with all the necessary type and macro definitions to compile.
 
Of course,  when one  of the  failing stubs is  called at  runtime, an
error is raised.  But one cannot hope much more, it's  a sandbox for a
reason.

This approach allows to compile Tcl for Nacl without changing a single
line of  the original source distribution;  all new things  are in the
nacl subdir.






















|








|


>
|
|






|
|
>

>
>
>
>
>
>
>
>
>
>
>
>
>
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69

 - cd inside it

 - run './nacl.genconf' (which is a ./configure command line with proper flags)

 - run 'patch -p0 < Makefile.patch' to fix the generated Makefile

 - run 'make'. This creates tcl.nmf and tcl.nexe (for x86-32)

 - launch the NaCl-provided python-based webserver, and make it see your nacl dir somewhere in its document tree: python httpd.py 5103

 - start 'chromedebug' (provided), and point Chrome to the index.html in nacl.

Overview of the porting method
------------------------------

Nacl  comes with  a  very incomplete  libc  and set  of headers.   The
strategy,  then,  is to  simply  "plug"  missing  syscalls or  library
functions with either explicitly  failing stubs (returning -1 or NULL,
and  setting errno)  or emulators,  and to  build a  big  include file
(naclcompat.h) with  all the necessary  type and macro  definitions to
compile.
 
Of course,  when one  of the  failing stubs is  called at  runtime, an
error is raised.  But one cannot hope much more, it's  a sandbox for a
reason.

This approach allows to compile Tcl for Nacl without changing a single
line of the original source distribution; all new things are in the
nacl subdir. Moreover, many files are just symlinks to ../unix. Here
they are, since fossil wrongly extracts them as files:

	configure -> ../unix/configure
	tclLoadDl.c -> ../unix/tclLoadDl.c
	tclUnixChan.c -> ../unix/tclUnixChan.c
	tclUnixCompat.c -> ../unix/tclUnixCompat.c
	tclUnixEvent.c -> ../unix/tclUnixEvent.c
	tclUnixFCmd.c -> ../unix/tclUnixFCmd.c
	tclUnixFile.c -> ../unix/tclUnixFile.c
	tclUnixInit.c -> ../unix/tclUnixInit.c
	tclUnixNotfy.c -> ../unix/tclUnixNotfy.c
	tclUnixPipe.c -> ../unix/tclUnixPipe.c
	tclUnixSock.c -> ../unix/tclUnixSock.c
	tclUnixThrd.c -> ../unix/tclUnixThrd.c
	tclUnixTime.c -> ../unix/tclUnixTime.c