Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mruby
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
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Libraries
mruby
Commits
1bff6a8f
Commit
1bff6a8f
authored
Jun 01, 2012
by
Paolo Bosetti
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
git://github.com/mruby/mruby
into XCode
parents
8fafbe7e
b2d0f22d
Changes
7
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
125 additions
and
184 deletions
+125
-184
include/mruby/khash.h
include/mruby/khash.h
+2
-3
mrblib/kernel.rb
mrblib/kernel.rb
+0
-35
src/codegen.c
src/codegen.c
+1
-1
src/kernel.c
src/kernel.c
+4
-37
src/parse.y
src/parse.y
+7
-1
src/string.c
src/string.c
+110
-106
src/symbol.c
src/symbol.c
+1
-1
No files found.
include/mruby/khash.h
View file @
1bff6a8f
...
...
@@ -190,10 +190,9 @@ static const uint8_t __m[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80};
#define kh_size(h) ((h)->size)
#define kh_n_buckets(h) ((h)->n_buckets)
//#define kh_int_hash_func(mrb,key) (uint32_t)(key)
#define kh_int_hash_func(mrb,key) (uint32_t)((key)^((key)<<2)^((key)>>2))
#define kh_int_hash_func(mrb,key) (khint_t)((key)^((key)<<2)^((key)>>2))
#define kh_int_hash_equal(mrb,a, b) (a == b)
#define kh_int64_hash_func(mrb,key) (
uint32
_t)((key)>>33^(key)^(key)<<11)
#define kh_int64_hash_func(mrb,key) (
khint
_t)((key)>>33^(key)^(key)<<11)
#define kh_int64_hash_equal(mrb,a, b) (a == b)
static
inline
khint_t
__ac_X31_hash_string
(
const
char
*
s
)
{
...
...
mrblib/kernel.rb
View file @
1bff6a8f
...
...
@@ -56,39 +56,4 @@ module Kernel
yield
end
end
##
# Invoke the method with the name +symbol+ on
# the receiver and pass +args+ and the given
# block.
#
# ISO 15.3.1.3.44
#def send(symbol, *args, &block)
### *** TODO *** ###
#end
##
# Print arguments
#
# ISO 15.3.1.2.10
def
print
(
*
args
)
args
.
each
do
|
x
|
if
x
.
nil?
__printstr__
"nil"
else
__printstr__
x
.
to_s
end
end
end
##
# Print arguments with newline
#
# ISO 15.3.1.2.11
def
puts
(
*
args
)
args
.
each
do
|
x
|
__printstr__
x
.
to_s
__printstr__
"
\n
"
end
end
end
src/codegen.c
View file @
1bff6a8f
...
...
@@ -532,7 +532,7 @@ scope_body(codegen_scope *s, node *tree)
}
else
{
codegen
(
scope
,
tree
->
cdr
,
VAL
);
genop
(
scope
,
MKOP_AB
(
OP_RETURN
,
cursp
()
,
OP_R_NORMAL
));
genop
(
scope
,
MKOP_AB
(
OP_RETURN
,
scope
->
sp
,
OP_R_NORMAL
));
}
scope_finish
(
scope
,
idx
);
...
...
src/kernel.c
View file @
1bff6a8f
...
...
@@ -240,18 +240,6 @@ mrb_obj_id_m(mrb_state *mrb, mrb_value self)
return
mrb_fixnum_value
(
mrb_obj_id
(
self
));
}
mrb_value
send_internal
(
int
argc
,
mrb_value
*
argv
,
mrb_value
recv
,
enum
call_type
ctype
)
{
return
mrb_nil_value
();
/* dummy */
}
mrb_value
mrb_f_send
(
int
argc
,
mrb_value
*
argv
,
mrb_value
recv
)
{
return
send_internal
(
argc
,
argv
,
recv
,
CALL_FCALL
);
}
/* 15.3.1.3.4 */
/* 15.3.1.3.44 */
/*
...
...
@@ -272,34 +260,15 @@ mrb_f_send(int argc, mrb_value *argv, mrb_value recv)
* k.send :hello, "gentle", "readers" #=> "Hello gentle readers"
*/
static
mrb_value
mrb_f_send
_m
(
mrb_state
*
mrb
,
mrb_value
self
)
mrb_f_send
(
mrb_state
*
mrb
,
mrb_value
self
)
{
mrb_value
name
,
block
,
*
argv
;
int
argc
;
mrb_get_args
(
mrb
,
"
&o*"
,
&
block
,
&
name
,
&
argv
,
&
argc
);
mrb_get_args
(
mrb
,
"
o*&"
,
&
name
,
&
argv
,
&
argc
,
&
block
);
return
mrb_funcall_with_block
(
mrb
,
self
,
mrb_string_value_ptr
(
mrb
,
name
),
argc
,
argv
,
block
);
}
/* 15.3.1.2.1 */
/* 15.3.1.3.5 */
/*
* call-seq:
* spawn([env,] command... [,options]) -> pid
* Process.spawn([env,] command... [,options]) -> pid
*
* spawn executes specified command and return its pid.
*/
static
mrb_value
mrb_f_spawn_m
(
mrb_state
*
mrb
,
mrb_value
self
)
{
mrb_value
*
argv
;
int
argc
;
mrb_get_args
(
mrb
,
"*"
,
&
argv
,
&
argc
);
return
(
mrb_f_send
(
argc
,
argv
,
self
));
}
static
mrb_value
mrb_f_block_given_p
(
void
)
{
...
...
@@ -1400,7 +1369,6 @@ mrb_init_kernel(mrb_state *mrb)
struct
RClass
*
krn
;
krn
=
mrb
->
kernel_module
=
mrb_define_module
(
mrb
,
"Kernel"
);
mrb_define_class_method
(
mrb
,
krn
,
"'"
,
mrb_f_spawn_m
,
ARGS_ANY
());
/* 15.3.1.2.1 */
mrb_define_class_method
(
mrb
,
krn
,
"block_given?"
,
mrb_f_block_given_p_m
,
ARGS_NONE
());
/* 15.3.1.2.2 */
mrb_define_class_method
(
mrb
,
krn
,
"eval"
,
mrb_f_eval_m
,
ARGS_ANY
());
/* 15.3.1.2.3 */
mrb_define_class_method
(
mrb
,
krn
,
"global_variables"
,
mrb_f_global_variables
,
ARGS_NONE
());
/* 15.3.1.2.4 */
...
...
@@ -1418,8 +1386,7 @@ mrb_init_kernel(mrb_state *mrb)
mrb_define_method
(
mrb
,
krn
,
"!="
,
mrb_obj_not_equal_m
,
ARGS_REQ
(
1
));
mrb_define_method
(
mrb
,
krn
,
"==="
,
mrb_equal_m
,
ARGS_REQ
(
1
));
/* 15.3.1.3.2 */
mrb_define_method
(
mrb
,
krn
,
"__id__"
,
mrb_obj_id_m
,
ARGS_NONE
());
/* 15.3.1.3.3 */
mrb_define_method
(
mrb
,
krn
,
"__send__"
,
mrb_f_send_m
,
ARGS_ANY
());
/* 15.3.1.3.4 */
mrb_define_method
(
mrb
,
krn
,
"'"
,
mrb_f_spawn_m
,
ARGS_ANY
());
/* 15.3.1.3.5 *//* "spawn"->"'" */
mrb_define_method
(
mrb
,
krn
,
"__send__"
,
mrb_f_send
,
ARGS_ANY
());
/* 15.3.1.3.4 */
mrb_define_method
(
mrb
,
krn
,
"block_given?"
,
mrb_f_block_given_p_m
,
ARGS_NONE
());
/* 15.3.1.3.6 */
mrb_define_method
(
mrb
,
krn
,
"class"
,
mrb_obj_class_m
,
ARGS_NONE
());
/* 15.3.1.3.7 */
mrb_define_method
(
mrb
,
krn
,
"clone"
,
mrb_obj_clone
,
ARGS_NONE
());
/* 15.3.1.3.8 */
...
...
@@ -1454,7 +1421,7 @@ mrb_init_kernel(mrb_state *mrb)
mrb_define_method
(
mrb
,
krn
,
"remove_instance_variable"
,
mrb_obj_remove_instance_variable
,
ARGS_REQ
(
1
));
/* 15.3.1.3.41 */
mrb_define_method
(
mrb
,
krn
,
"require"
,
mrb_f_require
,
ARGS_REQ
(
1
));
/* 15.3.1.3.42 */
mrb_define_method
(
mrb
,
krn
,
"respond_to?"
,
obj_respond_to
,
ARGS_ANY
());
/* 15.3.1.3.43 */
mrb_define_method
(
mrb
,
krn
,
"send"
,
mrb_f_send
_m
,
ARGS_ANY
());
/* 15.3.1.3.44 */
mrb_define_method
(
mrb
,
krn
,
"send"
,
mrb_f_send
,
ARGS_ANY
());
/* 15.3.1.3.44 */
mrb_define_method
(
mrb
,
krn
,
"singleton_methods"
,
mrb_obj_singleton_methods_m
,
ARGS_ANY
());
/* 15.3.1.3.45 */
mrb_define_method
(
mrb
,
krn
,
"to_s"
,
mrb_any_to_s
,
ARGS_NONE
());
/* 15.3.1.3.46 */
...
...
src/parse.y
View file @
1bff6a8f
...
...
@@ -5163,7 +5163,13 @@ parser_dump(mrb_state *mrb, node *tree, int offset)
if (n2->car) {
dump_prefix(offset+2);
printf("rest:\n");
parser_dump(mrb, n2->car, offset+3);
if (n2->car == (node*)-1) {
dump_prefix(offset+2);
printf("(empty)\n");
}
else {
parser_dump(mrb, n2->car, offset+3);
}
}
n2 = n2->cdr;
if (n2) {
...
...
src/string.c
View file @
1bff6a8f
This diff is collapsed.
Click to expand it.
src/symbol.c
View file @
1bff6a8f
...
...
@@ -17,7 +17,7 @@
#include <stdio.h>
/* ------------------------------------------------------ */
KHASH_
MAP_INIT_INT
(
s2n
,
const
char
*
);
KHASH_
INIT
(
s2n
,
mrb_sym
,
const
char
*
,
1
,
kh_int_hash_func
,
kh_int_hash_equal
)
KHASH_MAP_INIT_STR
(
n2s
,
mrb_sym
);
/* ------------------------------------------------------ */
mrb_sym
...
...
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