Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
go
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
go
Commits
6db99de6
Commit
6db99de6
authored
Jul 08, 2008
by
Rob Pike
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add bytestorune and stringtorune to sys.
SVN=126321
parent
5352306f
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
130 additions
and
88 deletions
+130
-88
src/cmd/gc/sys.go
src/cmd/gc/sys.go
+6
-0
src/cmd/gc/sysimport.c
src/cmd/gc/sysimport.c
+99
-88
src/runtime/rune.c
src/runtime/rune.c
+19
-0
src/runtime/runtime.h
src/runtime/runtime.h
+6
-0
No files found.
src/cmd/gc/sys.go
View file @
6db99de6
...
...
@@ -45,6 +45,8 @@ func mapassign1(hmap *map[any]any, key any, val any);
func
mapassign2
(
hmap
*
map
[
any
]
any
,
key
any
,
val
any
,
pres
bool
);
func
readfile
(
string
)
(
string
,
bool
);
// read file into string; boolean status
func
bytestorune
(
*
byte
,
int32
,
int32
)
(
int32
,
int32
);
// convert bytes to runes
func
stringtorune
(
string
,
int32
,
int32
)
(
int32
,
int32
);
// convert bytes to runes
func
exit
(
int32
);
...
...
@@ -94,6 +96,10 @@ export
// files
readfile
// runes and utf-8
bytestorune
stringtorune
// system calls
exit
;
src/cmd/gc/sysimport.c
View file @
6db99de6
...
...
@@ -3,10 +3,10 @@ char* sysimport =
"type sys._e002 {}
\n
"
"type sys.any 24
\n
"
"type sys._e003 *sys.any
\n
"
"type sys._o2
57 {_e255
sys._e003}
\n
"
"type sys._o2
62 {_e260
sys._e003}
\n
"
"type sys.uint32 6
\n
"
"type sys._i2
59 {_e256
sys.uint32}
\n
"
"type sys._e001 (sys._e002 sys._o2
57 sys._i259
)
\n
"
"type sys._i2
64 {_e261
sys.uint32}
\n
"
"type sys._e001 (sys._e002 sys._o2
62 sys._i264
)
\n
"
"var !sys.mal sys._e001
\n
"
"type sys._e005 {}
\n
"
"type sys._e006 {}
\n
"
...
...
@@ -16,181 +16,192 @@ char* sysimport =
"type sys._e009 {}
\n
"
"type sys._e010 {}
\n
"
"type sys.int32 5
\n
"
"type sys._i2
65 {_e264
sys.int32}
\n
"
"type sys._e008 (sys._e009 sys._e010 sys._i2
65
)
\n
"
"type sys._i2
70 {_e269
sys.int32}
\n
"
"type sys._e008 (sys._e009 sys._e010 sys._i2
70
)
\n
"
"var !sys.panicl sys._e008
\n
"
"type sys._e012 {}
\n
"
"type sys._e013 {}
\n
"
"type sys.bool 12
\n
"
"type sys._i27
0 {_e269
sys.bool}
\n
"
"type sys._e011 (sys._e012 sys._e013 sys._i27
0
)
\n
"
"type sys._i27
5 {_e274
sys.bool}
\n
"
"type sys._e011 (sys._e012 sys._e013 sys._i27
5
)
\n
"
"var !sys.printbool sys._e011
\n
"
"type sys._e015 {}
\n
"
"type sys._e016 {}
\n
"
"type sys.float64 10
\n
"
"type sys._i2
75 {_e274
sys.float64}
\n
"
"type sys._e014 (sys._e015 sys._e016 sys._i2
75
)
\n
"
"type sys._i2
80 {_e279
sys.float64}
\n
"
"type sys._e014 (sys._e015 sys._e016 sys._i2
80
)
\n
"
"var !sys.printfloat sys._e014
\n
"
"type sys._e018 {}
\n
"
"type sys._e019 {}
\n
"
"type sys.int64 7
\n
"
"type sys._i28
0 {_e279
sys.int64}
\n
"
"type sys._e017 (sys._e018 sys._e019 sys._i28
0
)
\n
"
"type sys._i28
5 {_e284
sys.int64}
\n
"
"type sys._e017 (sys._e018 sys._e019 sys._i28
5
)
\n
"
"var !sys.printint sys._e017
\n
"
"type sys._e021 {}
\n
"
"type sys._e022 {}
\n
"
"type sys._e023 25
\n
"
"type sys.string *sys._e023
\n
"
"type sys._i2
85 {_e284
sys.string}
\n
"
"type sys._e020 (sys._e021 sys._e022 sys._i2
85
)
\n
"
"type sys._i2
90 {_e289
sys.string}
\n
"
"type sys._e020 (sys._e021 sys._e022 sys._i2
90
)
\n
"
"var !sys.printstring sys._e020
\n
"
"type sys._e025 {}
\n
"
"type sys._e026 {}
\n
"
"type sys.uint8 2
\n
"
"type sys._e027 *sys.uint8
\n
"
"type sys._i29
0 {_e289
sys._e027}
\n
"
"type sys._e024 (sys._e025 sys._e026 sys._i29
0
)
\n
"
"type sys._i29
5 {_e294
sys._e027}
\n
"
"type sys._e024 (sys._e025 sys._e026 sys._i29
5
)
\n
"
"var !sys.printpointer sys._e024
\n
"
"type sys._e029 {}
\n
"
"type sys._o
297 {_e294
sys.string}
\n
"
"type sys._i
299 {_e295 sys.string _e296
sys.string}
\n
"
"type sys._e028 (sys._e029 sys._o
297 sys._i299
)
\n
"
"type sys._o
302 {_e299
sys.string}
\n
"
"type sys._i
304 {_e300 sys.string _e301
sys.string}
\n
"
"type sys._e028 (sys._e029 sys._o
302 sys._i304
)
\n
"
"var !sys.catstring sys._e028
\n
"
"type sys._e031 {}
\n
"
"type sys._o3
07 {_e304
sys.int32}
\n
"
"type sys._i3
09 {_e305 sys.string _e306
sys.string}
\n
"
"type sys._e030 (sys._e031 sys._o3
07 sys._i309
)
\n
"
"type sys._o3
12 {_e309
sys.int32}
\n
"
"type sys._i3
14 {_e310 sys.string _e311
sys.string}
\n
"
"type sys._e030 (sys._e031 sys._o3
12 sys._i314
)
\n
"
"var !sys.cmpstring sys._e030
\n
"
"type sys._e033 {}
\n
"
"type sys._o3
18 {_e314
sys.string}
\n
"
"type sys._i32
0 {_e315 sys.string _e316 sys.int32 _e317
sys.int32}
\n
"
"type sys._e032 (sys._e033 sys._o3
18 sys._i320
)
\n
"
"type sys._o3
23 {_e319
sys.string}
\n
"
"type sys._i32
5 {_e320 sys.string _e321 sys.int32 _e322
sys.int32}
\n
"
"type sys._e032 (sys._e033 sys._o3
23 sys._i325
)
\n
"
"var !sys.slicestring sys._e032
\n
"
"type sys._e035 {}
\n
"
"type sys._o3
29 {_e326
sys.uint8}
\n
"
"type sys._i33
1 {_e327 sys.string _e328
sys.int32}
\n
"
"type sys._e034 (sys._e035 sys._o3
29 sys._i331
)
\n
"
"type sys._o3
34 {_e331
sys.uint8}
\n
"
"type sys._i33
6 {_e332 sys.string _e333
sys.int32}
\n
"
"type sys._e034 (sys._e035 sys._o3
34 sys._i336
)
\n
"
"var !sys.indexstring sys._e034
\n
"
"type sys._e037 {}
\n
"
"type sys._o3
38 {_e336
sys.string}
\n
"
"type sys._i34
0 {_e337
sys.int64}
\n
"
"type sys._e036 (sys._e037 sys._o3
38 sys._i340
)
\n
"
"type sys._o3
43 {_e341
sys.string}
\n
"
"type sys._i34
5 {_e342
sys.int64}
\n
"
"type sys._e036 (sys._e037 sys._o3
43 sys._i345
)
\n
"
"var !sys.intstring sys._e036
\n
"
"type sys._e039 {}
\n
"
"type sys._o3
47 {_e344
sys.string}
\n
"
"type sys._o3
52 {_e349
sys.string}
\n
"
"type sys._e040 *sys.uint8
\n
"
"type sys._i3
49 {_e345 sys._e040 _e346
sys.int32}
\n
"
"type sys._e038 (sys._e039 sys._o3
47 sys._i349
)
\n
"
"type sys._i3
54 {_e350 sys._e040 _e351
sys.int32}
\n
"
"type sys._e038 (sys._e039 sys._o3
52 sys._i354
)
\n
"
"var !sys.byteastring sys._e038
\n
"
"type sys._e042 {}
\n
"
"type sys._e043 <>
\n
"
"type sys._o3
58 {_e354
sys._e043}
\n
"
"type sys._o3
63 {_e359
sys._e043}
\n
"
"type sys._e044 *sys.uint8
\n
"
"type sys._e045 *sys.uint8
\n
"
"type sys._s3
65
{}
\n
"
"type sys._e046 *sys._s3
65
\n
"
"type sys._i36
0 {_e355 sys._e044 _e356 sys._e045 _e357
sys._e046}
\n
"
"type sys._e041 (sys._e042 sys._o3
58 sys._i360
)
\n
"
"type sys._s3
70
{}
\n
"
"type sys._e046 *sys._s3
70
\n
"
"type sys._i36
5 {_e360 sys._e044 _e361 sys._e045 _e362
sys._e046}
\n
"
"type sys._e041 (sys._e042 sys._o3
63 sys._i365
)
\n
"
"var !sys.mkiface sys._e041
\n
"
"type sys._e048 {}
\n
"
"type sys._o3
69 {_e368
sys.int32}
\n
"
"type sys._o3
74 {_e373
sys.int32}
\n
"
"type sys._e049 {}
\n
"
"type sys._e047 (sys._e048 sys._o3
69
sys._e049)
\n
"
"type sys._e047 (sys._e048 sys._o3
74
sys._e049)
\n
"
"var !sys.argc sys._e047
\n
"
"type sys._e051 {}
\n
"
"type sys._o37
3 {_e372
sys.int32}
\n
"
"type sys._o37
8 {_e377
sys.int32}
\n
"
"type sys._e052 {}
\n
"
"type sys._e050 (sys._e051 sys._o37
3
sys._e052)
\n
"
"type sys._e050 (sys._e051 sys._o37
8
sys._e052)
\n
"
"var !sys.envc sys._e050
\n
"
"type sys._e054 {}
\n
"
"type sys._o3
78 {_e376
sys.string}
\n
"
"type sys._i38
0 {_e377
sys.int32}
\n
"
"type sys._e053 (sys._e054 sys._o3
78 sys._i380
)
\n
"
"type sys._o3
83 {_e381
sys.string}
\n
"
"type sys._i38
5 {_e382
sys.int32}
\n
"
"type sys._e053 (sys._e054 sys._o3
83 sys._i385
)
\n
"
"var !sys.argv sys._e053
\n
"
"type sys._e056 {}
\n
"
"type sys._o3
86 {_e384
sys.string}
\n
"
"type sys._i3
88 {_e385
sys.int32}
\n
"
"type sys._e055 (sys._e056 sys._o3
86 sys._i388
)
\n
"
"type sys._o3
91 {_e389
sys.string}
\n
"
"type sys._i3
93 {_e390
sys.int32}
\n
"
"type sys._e055 (sys._e056 sys._o3
91 sys._i393
)
\n
"
"var !sys.envv sys._e055
\n
"
"type sys._e058 {}
\n
"
"type sys._o
395 {_e392 sys.int32 _e393
sys.float64}
\n
"
"type sys._i
397 {_e394
sys.float64}
\n
"
"type sys._e057 (sys._e058 sys._o
395 sys._i397
)
\n
"
"type sys._o
400 {_e397 sys.int32 _e398
sys.float64}
\n
"
"type sys._i
402 {_e399
sys.float64}
\n
"
"type sys._e057 (sys._e058 sys._o
400 sys._i402
)
\n
"
"var !sys.frexp sys._e057
\n
"
"type sys._e060 {}
\n
"
"type sys._o40
4 {_e401
sys.float64}
\n
"
"type sys._i4
06 {_e402 sys.int32 _e403
sys.float64}
\n
"
"type sys._e059 (sys._e060 sys._o40
4 sys._i406
)
\n
"
"type sys._o40
9 {_e406
sys.float64}
\n
"
"type sys._i4
11 {_e407 sys.int32 _e408
sys.float64}
\n
"
"type sys._e059 (sys._e060 sys._o40
9 sys._i411
)
\n
"
"var !sys.ldexp sys._e059
\n
"
"type sys._e062 {}
\n
"
"type sys._o41
4 {_e411 sys.float64 _e412
sys.float64}
\n
"
"type sys._i4
16 {_e413
sys.float64}
\n
"
"type sys._e061 (sys._e062 sys._o41
4 sys._i416
)
\n
"
"type sys._o41
9 {_e416 sys.float64 _e417
sys.float64}
\n
"
"type sys._i4
21 {_e418
sys.float64}
\n
"
"type sys._e061 (sys._e062 sys._o41
9 sys._i421
)
\n
"
"var !sys.modf sys._e061
\n
"
"type sys._e064 {}
\n
"
"type sys._o42
3 {_e420
sys.bool}
\n
"
"type sys._i4
25 {_e421 sys.float64 _e422
sys.int32}
\n
"
"type sys._e063 (sys._e064 sys._o42
3 sys._i425
)
\n
"
"type sys._o42
8 {_e425
sys.bool}
\n
"
"type sys._i4
30 {_e426 sys.float64 _e427
sys.int32}
\n
"
"type sys._e063 (sys._e064 sys._o42
8 sys._i430
)
\n
"
"var !sys.isInf sys._e063
\n
"
"type sys._e066 {}
\n
"
"type sys._o43
2 {_e430
sys.bool}
\n
"
"type sys._i43
4 {_e431
sys.float64}
\n
"
"type sys._e065 (sys._e066 sys._o43
2 sys._i434
)
\n
"
"type sys._o43
7 {_e435
sys.bool}
\n
"
"type sys._i43
9 {_e436
sys.float64}
\n
"
"type sys._e065 (sys._e066 sys._o43
7 sys._i439
)
\n
"
"var !sys.isNaN sys._e065
\n
"
"type sys._e068 {}
\n
"
"type sys._o44
0 {_e438
sys.float64}
\n
"
"type sys._i44
2 {_e439
sys.int32}
\n
"
"type sys._e067 (sys._e068 sys._o44
0 sys._i442
)
\n
"
"type sys._o44
5 {_e443
sys.float64}
\n
"
"type sys._i44
7 {_e444
sys.int32}
\n
"
"type sys._e067 (sys._e068 sys._o44
5 sys._i447
)
\n
"
"var !sys.Inf sys._e067
\n
"
"type sys._e070 {}
\n
"
"type sys._o4
47 {_e446
sys.float64}
\n
"
"type sys._o4
52 {_e451
sys.float64}
\n
"
"type sys._e071 {}
\n
"
"type sys._e069 (sys._e070 sys._o4
47
sys._e071)
\n
"
"type sys._e069 (sys._e070 sys._o4
52
sys._e071)
\n
"
"var !sys.NaN sys._e069
\n
"
"type sys._e073 {}
\n
"
"type sys._e075 [sys.any] sys.any
\n
"
"type sys._e074 *sys._e075
\n
"
"type sys._o45
0
{hmap sys._e074}
\n
"
"type sys._i45
2
{keysize sys.uint32 valsize sys.uint32 keyalg sys.uint32 valalg sys.uint32 hint sys.uint32}
\n
"
"type sys._e072 (sys._e073 sys._o45
0 sys._i452
)
\n
"
"type sys._o45
5
{hmap sys._e074}
\n
"
"type sys._i45
7
{keysize sys.uint32 valsize sys.uint32 keyalg sys.uint32 valalg sys.uint32 hint sys.uint32}
\n
"
"type sys._e072 (sys._e073 sys._o45
5 sys._i457
)
\n
"
"var !sys.newmap sys._e072
\n
"
"type sys._e077 {}
\n
"
"type sys._o46
1
{val sys.any}
\n
"
"type sys._o46
6
{val sys.any}
\n
"
"type sys._e079 [sys.any] sys.any
\n
"
"type sys._e078 *sys._e079
\n
"
"type sys._i46
3
{hmap sys._e078 key sys.any}
\n
"
"type sys._e076 (sys._e077 sys._o46
1 sys._i463
)
\n
"
"type sys._i46
8
{hmap sys._e078 key sys.any}
\n
"
"type sys._e076 (sys._e077 sys._o46
6 sys._i468
)
\n
"
"var !sys.mapaccess1 sys._e076
\n
"
"type sys._e081 {}
\n
"
"type sys._o4
69
{val sys.any pres sys.bool}
\n
"
"type sys._o4
74
{val sys.any pres sys.bool}
\n
"
"type sys._e083 [sys.any] sys.any
\n
"
"type sys._e082 *sys._e083
\n
"
"type sys._i47
1
{hmap sys._e082 key sys.any}
\n
"
"type sys._e080 (sys._e081 sys._o4
69 sys._i471
)
\n
"
"type sys._i47
6
{hmap sys._e082 key sys.any}
\n
"
"type sys._e080 (sys._e081 sys._o4
74 sys._i476
)
\n
"
"var !sys.mapaccess2 sys._e080
\n
"
"type sys._e085 {}
\n
"
"type sys._e086 {}
\n
"
"type sys._e088 [sys.any] sys.any
\n
"
"type sys._e087 *sys._e088
\n
"
"type sys._i4
78
{hmap sys._e087 key sys.any val sys.any}
\n
"
"type sys._e084 (sys._e085 sys._e086 sys._i4
78
)
\n
"
"type sys._i4
83
{hmap sys._e087 key sys.any val sys.any}
\n
"
"type sys._e084 (sys._e085 sys._e086 sys._i4
83
)
\n
"
"var !sys.mapassign1 sys._e084
\n
"
"type sys._e090 {}
\n
"
"type sys._e091 {}
\n
"
"type sys._e093 [sys.any] sys.any
\n
"
"type sys._e092 *sys._e093
\n
"
"type sys._i48
4
{hmap sys._e092 key sys.any val sys.any pres sys.bool}
\n
"
"type sys._e089 (sys._e090 sys._e091 sys._i48
4
)
\n
"
"type sys._i48
9
{hmap sys._e092 key sys.any val sys.any pres sys.bool}
\n
"
"type sys._e089 (sys._e090 sys._e091 sys._i48
9
)
\n
"
"var !sys.mapassign2 sys._e089
\n
"
"type sys._e095 {}
\n
"
"type sys._o49
4 {_e491 sys.string _e492
sys.bool}
\n
"
"type sys._i
496 {_e493
sys.string}
\n
"
"type sys._e094 (sys._e095 sys._o49
4 sys._i496
)
\n
"
"type sys._o49
9 {_e496 sys.string _e497
sys.bool}
\n
"
"type sys._i
501 {_e498
sys.string}
\n
"
"type sys._e094 (sys._e095 sys._o49
9 sys._i501
)
\n
"
"var !sys.readfile sys._e094
\n
"
"type sys._e097 {}
\n
"
"type sys._e098 {}
\n
"
"type sys._i501 {_e500 sys.int32}
\n
"
"type sys._e096 (sys._e097 sys._e098 sys._i501)
\n
"
"var !sys.exit sys._e096
\n
"
"type sys._o510 {_e505 sys.int32 _e506 sys.int32}
\n
"
"type sys._e098 *sys.uint8
\n
"
"type sys._i512 {_e507 sys._e098 _e508 sys.int32 _e509 sys.int32}
\n
"
"type sys._e096 (sys._e097 sys._o510 sys._i512)
\n
"
"var !sys.bytestorune sys._e096
\n
"
"type sys._e100 {}
\n
"
"type sys._o523 {_e518 sys.int32 _e519 sys.int32}
\n
"
"type sys._i525 {_e520 sys.string _e521 sys.int32 _e522 sys.int32}
\n
"
"type sys._e099 (sys._e100 sys._o523 sys._i525)
\n
"
"var !sys.stringtorune sys._e099
\n
"
"type sys._e102 {}
\n
"
"type sys._e103 {}
\n
"
"type sys._i532 {_e531 sys.int32}
\n
"
"type sys._e101 (sys._e102 sys._e103 sys._i532)
\n
"
"var !sys.exit sys._e101
\n
"
"))
\n
"
;
src/runtime/rune.c
View file @
6db99de6
...
...
@@ -222,3 +222,22 @@ runetochar(byte *str, int32 rune) /* note: in original, arg2 was pointer */
str
[
3
]
=
Tx
|
(
c
&
Maskx
);
return
4
;
}
/*
* Wrappers for calling from go
*/
void
sys
·
bytestorune
(
byte
*
str
,
int32
off
,
int32
length
,
int32
outrune
,
int32
outcount
)
{
outcount
=
charntorune
(
&
outrune
,
str
+
off
,
length
);
FLUSH
(
&
outrune
);
FLUSH
(
&
outcount
);
}
void
sys
·
stringtorune
(
string
str
,
int32
off
,
int32
length
,
int32
outrune
,
int32
outcount
)
{
outcount
=
charntorune
(
&
outrune
,
str
->
str
+
off
,
length
);
FLUSH
(
&
outrune
);
FLUSH
(
&
outcount
);
}
src/runtime/runtime.h
View file @
6db99de6
...
...
@@ -142,4 +142,10 @@ void sys·intstring(int64, string);
void
sys
·
ifaces2i
(
Sigi
*
,
Sigs
*
,
Map
*
,
void
*
);
void
sys
·
ifacei2i
(
Sigi
*
,
Map
*
,
void
*
);
void
sys
·
ifacei2s
(
Sigs
*
,
Map
*
,
void
*
);
/*
* User go-called
*/
void
sys
·
readfile
(
string
,
string
,
bool
);
void
sys
·
bytestorune
(
byte
*
,
int32
,
int32
,
int32
,
int32
);
void
sys
·
stringtorune
(
string
,
int32
,
int32
,
int32
,
int32
);
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment