Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Make some BIFs and insn-support functions be non-Pausable; most notab…

…ly the BIF erlang:self/1, erlang:process_flag/2, and the insn support for remove_message. This reduces codegen overhead that Kilim causes.
  • Loading branch information...
commit c73a2f6aaf67756059acc65de79c5395c45c56b9 1 parent 59d0503
@krestenkrab krestenkrab authored
View
BIN  lib/kilim-0.6-krab.jar
Binary file not shown
View
2  src/main/java/erjang/EProc.java
@@ -300,7 +300,7 @@ public ELocalNode getLocalNode() {
* @return
* @throws Pausable
*/
- public EObject process_flag(EAtom flag, EObject value) throws Pausable {
+ public EObject process_flag(EAtom flag, EObject value) {
if (flag == am_trap_exit) {
EAtom old = this.trap_exit;
View
2  src/main/java/erjang/ERT.java
@@ -720,7 +720,7 @@ public static EObject loop_rec(EProc proc) {
}
/** remove current message, and reset message index */
- public static void remove_message(EProc proc) throws Pausable {
+ public static void remove_message(EProc proc) {
proc.mbox.remove(proc.midx);
proc.midx = 0;
}
View
6 src/main/java/erjang/m/erlang/ErlBif.java
@@ -196,7 +196,7 @@ static EObject apply(EProc proc, EObject one, EObject two, EObject three) throws
@BIF
@ErlFun(export = true)
- static public EPID self(EProc proc) throws Pausable {
+ static public EPID self(EProc proc) {
if (proc == null) {
System.out.println("Houston, we have a problem.");
}
@@ -1120,7 +1120,7 @@ public static EString atom_to_list(EObject atom) {
}
@BIF
- public static EObject process_flag(EProc proc, EObject a1, EObject a2) throws Pausable {
+ public static EObject process_flag(EProc proc, EObject a1, EObject a2) {
return proc.process_flag(a1.testAtom(), a2);
}
@@ -1249,7 +1249,7 @@ public static ETuple2 load_module(EProc proc, EObject mod, EObject bin) throws P
@BIF
@ErlFun(export = true)
- public static ETuple2 load_module(EProc proc, EAtom mod, EBinary bin) throws Pausable {
+ public static ETuple2 load_module(EProc proc, EAtom mod, EBinary bin) {
if (mod == null || bin == null)
throw ERT.badarg();
Please sign in to comment.
Something went wrong with that request. Please try again.