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
f80401de
Commit
f80401de
authored
Nov 05, 2013
by
Yukihiro "Matz" Matsumoto
Browse files
Options
Browse Files
Download
Plain Diff
resolved conflicts and updated to latest return value change of mrb_generate_code()
parents
e386760c
82c5b486
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
22 additions
and
9 deletions
+22
-9
include/mruby.h
include/mruby.h
+1
-0
mrbgems/mruby-bin-mirb/tools/mirb/mirb.c
mrbgems/mruby-bin-mirb/tools/mirb/mirb.c
+9
-3
mrbgems/mruby-bin-mruby/tools/mruby/mruby.c
mrbgems/mruby-bin-mruby/tools/mruby/mruby.c
+1
-1
src/load.c
src/load.c
+2
-2
src/parse.y
src/parse.y
+1
-1
src/vm.c
src/vm.c
+8
-2
No files found.
include/mruby.h
View file @
f80401de
...
...
@@ -261,6 +261,7 @@ void mrb_close(mrb_state*);
mrb_value
mrb_top_self
(
mrb_state
*
);
mrb_value
mrb_run
(
mrb_state
*
,
struct
RProc
*
,
mrb_value
);
mrb_value
mrb_context_run
(
mrb_state
*
,
struct
RProc
*
,
mrb_value
,
unsigned
int
);
void
mrb_p
(
mrb_state
*
,
mrb_value
);
mrb_int
mrb_obj_id
(
mrb_value
obj
);
...
...
mrbgems/mruby-bin-mirb/tools/mirb/mirb.c
View file @
f80401de
...
...
@@ -255,6 +255,8 @@ main(int argc, char **argv)
int
n
;
int
code_block_open
=
FALSE
;
int
ai
;
int
first_command
=
1
;
unsigned
int
nregs
;
/* new interpreter instance */
mrb
=
mrb_open
();
...
...
@@ -363,10 +365,13 @@ main(int argc, char **argv)
/* generate bytecode */
struct
RProc
*
proc
=
mrb_generate_code
(
mrb
,
parser
);
/* pass a proc for evaulation */
nregs
=
first_command
?
0
:
proc
->
body
.
irep
->
nregs
;
/* evaluate the bytecode */
result
=
mrb_run
(
mrb
,
/* pass a proc for evaulation */
proc
,
mrb_top_self
(
mrb
));
result
=
mrb_context_run
(
mrb
,
proc
,
mrb_top_self
(
mrb
),
nregs
);
/* did an exception occur? */
if
(
mrb
->
exc
)
{
p
(
mrb
,
mrb_obj_value
(
mrb
->
exc
),
0
);
...
...
@@ -386,6 +391,7 @@ main(int argc, char **argv)
}
mrb_parser_free
(
parser
);
cxt
->
lineno
++
;
first_command
=
0
;
}
mrbc_context_free
(
mrb
,
cxt
);
mrb_close
(
mrb
);
...
...
mrbgems/mruby-bin-mruby/tools/mruby/mruby.c
View file @
f80401de
...
...
@@ -203,7 +203,7 @@ main(int argc, char **argv)
fprintf
(
stderr
,
"failed to load mrb file: %s
\n
"
,
args
.
cmdline
);
}
else
if
(
!
args
.
check_syntax
)
{
mrb_
run
(
mrb
,
mrb_proc_new
(
mrb
,
mrb
->
irep
[
n
]),
mrb_top_self
(
mrb
)
);
mrb_
context_run
(
mrb
,
mrb_proc_new
(
mrb
,
mrb
->
irep
[
n
]),
mrb_top_self
(
mrb
),
0
);
n
=
0
;
if
(
mrb
->
exc
)
{
mrb_print_error
(
mrb
);
...
...
src/load.c
View file @
f80401de
...
...
@@ -510,7 +510,7 @@ mrb_load_irep(mrb_state *mrb, const uint8_t *bin)
irep_error
(
mrb
,
n
);
return
mrb_nil_value
();
}
return
mrb_
run
(
mrb
,
mrb_proc_new
(
mrb
,
mrb
->
irep
[
n
]),
mrb_top_self
(
mrb
)
);
return
mrb_
context_run
(
mrb
,
mrb_proc_new
(
mrb
,
mrb
->
irep
[
n
]),
mrb_top_self
(
mrb
),
0
);
}
#ifdef ENABLE_STDIO
...
...
@@ -760,6 +760,6 @@ mrb_load_irep_file(mrb_state *mrb, FILE* fp)
irep_error
(
mrb
,
n
);
return
mrb_nil_value
();
}
return
mrb_
run
(
mrb
,
mrb_proc_new
(
mrb
,
mrb
->
irep
[
n
]),
mrb_top_self
(
mrb
)
);
return
mrb_
context_run
(
mrb
,
mrb_proc_new
(
mrb
,
mrb
->
irep
[
n
]),
mrb_top_self
(
mrb
),
0
);
}
#endif
/* ENABLE_STDIO */
src/parse.y
View file @
f80401de
...
...
@@ -5387,7 +5387,7 @@ load_exec(mrb_state *mrb, parser_state *p, mrbc_context *c)
if (mrb->c->ci) {
mrb->c->ci->target_class = target;
}
v = mrb_
run(mrb, proc, mrb_top_self(mrb)
);
v = mrb_
context_run(mrb, proc, mrb_top_self(mrb), 0
);
if (mrb->exc) return mrb_nil_value();
return v;
}
...
...
src/vm.c
View file @
f80401de
...
...
@@ -547,7 +547,7 @@ void mrb_gv_val_set(mrb_state *mrb, mrb_sym sym, mrb_value val);
#define CALL_MAXARGS 127
mrb_value
mrb_
run
(
mrb_state
*
mrb
,
struct
RProc
*
proc
,
mrb_value
self
)
mrb_
context_run
(
mrb_state
*
mrb
,
struct
RProc
*
proc
,
mrb_value
self
,
unsigned
int
stack_keep
)
{
/* mrb_assert(mrb_proc_cfunc_p(proc)) */
mrb_irep
*
irep
=
proc
->
body
.
irep
;
...
...
@@ -595,7 +595,7 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self)
if
(
!
mrb
->
c
->
stack
)
{
stack_init
(
mrb
);
}
stack_extend
(
mrb
,
irep
->
nregs
,
mrb
->
c
->
ci
->
argc
+
2
);
/* argc + 2 (receiver and block) */
stack_extend
(
mrb
,
irep
->
nregs
,
stack_keep
);
mrb
->
c
->
ci
->
err
=
pc
;
mrb
->
c
->
ci
->
proc
=
proc
;
mrb
->
c
->
ci
->
nregs
=
irep
->
nregs
+
1
;
...
...
@@ -2145,6 +2145,12 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self)
END_DISPATCH
;
}
mrb_value
mrb_run
(
mrb_state
*
mrb
,
struct
RProc
*
proc
,
mrb_value
self
)
{
return
mrb_context_run
(
mrb
,
proc
,
self
,
mrb
->
c
->
ci
->
argc
+
2
);
/* argc + 2 (receiver and block) */
}
void
mrb_longjmp
(
mrb_state
*
mrb
)
{
...
...
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