Merge branch 'master' of https://gitlab.lrz.de/FelixBrendel/slime
@@ -20,3 +20,7 @@ todo.html
|
||||
/bin/slime
|
||||
*.report
|
||||
*.svg
|
||||
/tests/libslime/main
|
||||
/tests/fullslime/main
|
||||
*.o
|
||||
/bin/slime_d
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
stages:
|
||||
- build
|
||||
- test
|
||||
|
||||
build_my_stuff:
|
||||
stage: build
|
||||
variables:
|
||||
GIT_SUBMODULE_STRATEGY: recursive
|
||||
script:
|
||||
- echo hello
|
||||
- ./build.sh
|
||||
- echo finish
|
||||
image: prodromou87/llvm:70-1.69.0
|
||||
tags:
|
||||
- linux
|
||||
@@ -1,3 +1,3 @@
|
||||
[submodule "src/ftb"]
|
||||
path = src/ftb
|
||||
path = 3rd/ftb
|
||||
url = https://github.com/FelixBrendel/ftb
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
(import "alist.slime")
|
||||
(import "automata.slime")
|
||||
(import "interpolation.slime")
|
||||
(import "oo.slime")
|
||||
(import "math.slime")
|
||||
(import "sets.slime")
|
||||
|
||||
(generate-docs "../manual/built-in-docs.org")
|
||||
|
||||
@@ -43,7 +43,3 @@
|
||||
(point-lerp (lerper1 t)
|
||||
(lerper2 t) t))))
|
||||
)
|
||||
|
||||
|
||||
(define sl1 (interpolation::stepped-lerper 0 1 5))
|
||||
(define sl2 (interpolation::stepped-lerper 10 -10 20))
|
||||
|
||||
@@ -5,11 +5,11 @@
|
||||
`(set-type!
|
||||
(define
|
||||
;; The function definition
|
||||
(,(string->symbol (concat-strings "make-" (symbol->string name))) @members)
|
||||
(,(string->symbol (concat-strings "make-" (symbol->string name))) ,@members)
|
||||
;; The docstring
|
||||
,(concat-strings "This is the handle to an object of the class " (symbol->string name))
|
||||
;; the body
|
||||
@body
|
||||
,@body
|
||||
(let ,(zip members members)
|
||||
(set-type!
|
||||
(lambda args
|
||||
@@ -22,4 +22,4 @@
|
||||
:constructor)))
|
||||
|
||||
(define-syntax (-> obj meth . args)
|
||||
`(,obj ',meth @args))
|
||||
`(,obj ',meth ,@args))
|
||||
|
||||
@@ -7,6 +7,18 @@
|
||||
(define-syntax (pe expr)
|
||||
`(print ',expr "evaluates to" ,expr))
|
||||
|
||||
(define the-empty-stream ())
|
||||
|
||||
(define (stream-null? s) (if s t ()))
|
||||
|
||||
(define-syntax (delay expr)
|
||||
`(,lambda () ,expr))
|
||||
|
||||
(define (force promise)
|
||||
(promise))
|
||||
|
||||
(define-syntax (mac a) (list + 1 1))
|
||||
|
||||
(define-syntax (when condition . body)
|
||||
:doc "Special form for when multiple actions should be done if a
|
||||
condition is true.
|
||||
@@ -23,22 +35,22 @@ condition is true.
|
||||
{{{example_end}}}
|
||||
"
|
||||
(if (= (rest body) ())
|
||||
`(if ,condition @body nil)
|
||||
`(if ,condition (begin @body) nil)))
|
||||
`(if ,condition ,@body nil)
|
||||
`(if ,condition (begin ,@body) nil)))
|
||||
|
||||
(define-syntax (unless condition . body)
|
||||
:doc "Special form for when multiple actions should be done if a
|
||||
condition is false."
|
||||
(if (= (rest body) ())
|
||||
`(if ,condition nil @body)
|
||||
`(if ,condition nil (begin @body))))
|
||||
`(if ,condition nil ,@body)
|
||||
`(if ,condition nil (begin ,@body))))
|
||||
|
||||
(define-syntax (n-times times action)
|
||||
:doc "Executes action times times."
|
||||
(define (repeat times elem)
|
||||
(unless (> 1 times)
|
||||
(pair elem (repeat (- times 1) elem))))
|
||||
`(begin @(repeat times action)))
|
||||
`(begin ,@(repeat times action)))
|
||||
|
||||
(define-syntax (let bindings . body)
|
||||
(define (unzip lists)
|
||||
@@ -54,7 +66,7 @@ condition is false."
|
||||
|
||||
(define unzipped (unzip bindings))
|
||||
|
||||
`((,lambda ,(first unzipped) @body) @(first (rest unzipped))))
|
||||
`((,lambda ,(first unzipped) ,@body) ,@(first (rest unzipped))))
|
||||
|
||||
(define-syntax (cond . clauses)
|
||||
(define (rec clauses)
|
||||
@@ -66,7 +78,7 @@ condition is false."
|
||||
(error :syntax-error "There are additional clauses after the else clause!")
|
||||
(pair 'begin (rest (first clauses)))))
|
||||
`(if ,(first (first clauses))
|
||||
(begin @(rest (first clauses)))
|
||||
(begin ,@(rest (first clauses)))
|
||||
,(rec (rest clauses))))))
|
||||
(rec clauses))
|
||||
|
||||
@@ -81,13 +93,10 @@ condition is false."
|
||||
(error :syntax-error "There are additional clauses after the else clause!")
|
||||
(pair 'begin (rest (first clauses)))))
|
||||
`(if (member? ,var ',(first (first clauses)))
|
||||
(begin @(rest (first clauses)))
|
||||
(begin ,@(rest (first clauses)))
|
||||
,(rec (rest clauses))))))
|
||||
(rec clauses))
|
||||
|
||||
(define-syntax (define-special name-and-args . body)
|
||||
`(define ,(first name-and-args) (special-lambda ,(rest name-and-args) @body)))
|
||||
|
||||
(define-syntax (construct-list . body)
|
||||
:doc "
|
||||
{{{example_start}}}
|
||||
@@ -142,14 +151,14 @@ condition is false."
|
||||
(let ((name (first args))
|
||||
(lambda-list (rest args))
|
||||
(arg-names (get-arg-names (rest args))))
|
||||
`(define (,name @arg-names)
|
||||
(assert-types= @lambda-list)
|
||||
@body)))
|
||||
`(define (,name ,@arg-names)
|
||||
(assert-types= ,@lambda-list)
|
||||
,@body)))
|
||||
|
||||
|
||||
(define-syntax (define-module module-name (:imports ()) :exports . body)
|
||||
(let ((module-prefix (concat-strings (symbol->string module-name) "::")))
|
||||
(eval `(begin @(map (lambda (x) `(,import ,x)) imports) @body))
|
||||
(eval `(begin ,@(map (lambda (x) `(,import ,x)) imports) ,@body))
|
||||
(pair 'begin
|
||||
(map (lambda (orig-export-name)
|
||||
(let ((export-name (string->symbol
|
||||
@@ -182,8 +191,8 @@ condition is false."
|
||||
(let ((generic-map-name (string->symbol
|
||||
(concat-strings "generic-" (symbol->string fun-name) "-map"))))
|
||||
(unless (bound? generic-map-name)
|
||||
(define generic-map-name (create-hash-map)))
|
||||
(hm/set! generic-map-name types (eval `(,lambda ,names @body)))
|
||||
(define generic-map-name (hash-map)))
|
||||
(hm/set! generic-map-name types (eval `(,lambda ,names ,@body)))
|
||||
;; now check if the generic procedure already exists
|
||||
(if (bound? fun-name)
|
||||
(let ((exisiting-fun (eval fun-name)))
|
||||
@@ -368,17 +377,17 @@ by the key =from= and ends with the number defined in =to=."
|
||||
(when (< from to)
|
||||
(pair from (range :from (+ 1 from) :to to))))
|
||||
|
||||
(define (range-while (:from 0) to)
|
||||
(define (range-while (:from 0) :to)
|
||||
:doc "Returns a sequence of numbers starting with the number defined
|
||||
by the key 'from' and ends with the number defined in 'to'."
|
||||
(define result (list (copy from)))
|
||||
(define head result)
|
||||
(mutate from (increment from))
|
||||
(set! from (increment from))
|
||||
(while (< from to)
|
||||
(begin
|
||||
(mutate head (pair (first head) (pair (copy from) nil)))
|
||||
(define head (rest head))
|
||||
(mutate from (increment from))))
|
||||
(set! from (increment from))))
|
||||
result)
|
||||
|
||||
(define (map fun seq)
|
||||
@@ -471,7 +480,6 @@ added to a list, which in the end is returned."
|
||||
;; (vector-ref v2 0))))
|
||||
|
||||
|
||||
|
||||
;; (unless (bound? generic-+-map)
|
||||
;; (set! generic-+-map (create-hash-map)))
|
||||
;; (hm/set! generic-+-map '(:vector :vector) (lambda (v1 v2)
|
||||
|
||||
@@ -6,27 +6,33 @@
|
||||
|
||||
(define-syntax (pe expr) `(print ',expr "evaluates to" ,expr))
|
||||
|
||||
(define-syntax (when condition . body) :doc "Special form for when multiple actions should be done if a\ncondition is true.\n\n{{{example_start}}}\n(when (not ())\n (print "Hello ")\n (print "from ")\n (print "when!"))\n\n(when ()\n (print "Goodbye ")\n (print "World!"))\n{{{example_end}}}\n" (if (= (rest body) ()) `(if ,condition (unquote-splicing body) nil) `(if ,condition (begin (unquote-splicing body)) nil)))
|
||||
(define the-empty-stream ())
|
||||
|
||||
(define-syntax (unless condition . body) :doc "Special form for when multiple actions should be done if a\ncondition is false." (if (= (rest body) ()) `(if ,condition nil (unquote-splicing body)) `(if ,condition nil (begin (unquote-splicing body)))))
|
||||
(define (stream-null? s) (if s t ()))
|
||||
|
||||
(define-syntax (n-times times action) :doc "Executes action times times." (define (repeat times elem) (unless (> 1 times) (pair elem (repeat (- times 1) elem)))) `(begin (unquote-splicing (repeat times action))))
|
||||
(define-syntax (delay expr) `(,lambda () ,expr))
|
||||
|
||||
(define-syntax (let bindings . body) (define (unzip lists) (when lists (define (iter lists l1 l2) (define elem (first lists)) (if elem (iter (rest lists) (pair (first elem) l1) (pair (first (rest elem)) l2)) (list l1 l2)))) (iter lists () ())) (define unzipped (unzip bindings)) `((,lambda ,(first unzipped) (unquote-splicing body)) (unquote-splicing (first (rest unzipped)))))
|
||||
(define (force promise) (promise))
|
||||
|
||||
(define-syntax (cond . clauses) (define (rec clauses) (if (= nil clauses) nil (if (= (first (first clauses)) 'else) (begin (if (not (= (rest clauses) ())) (error :syntax-error "There are additional clauses after the else clause!") (pair 'begin (rest (first clauses))))) `(if ,(first (first clauses)) (begin (unquote-splicing (rest (first clauses)))) ,(rec (rest clauses)))))) (rec clauses))
|
||||
(define-syntax (when condition . body) :doc "Special form for when multiple actions should be done if a\ncondition is true.\n\n{{{example_start}}}\n(when (not ())\n (print "Hello ")\n (print "from ")\n (print "when!"))\n\n(when ()\n (print "Goodbye ")\n (print "World!"))\n{{{example_end}}}\n" (if (= (rest body) ()) `(if ,condition ,@body nil) `(if ,condition (begin ,@body) nil)))
|
||||
|
||||
(define-syntax (case var . clauses) (define (rec clauses) (if (= nil clauses) nil (if (= (first (first clauses)) 'else) (begin (if (not (= (rest clauses) ())) (error :syntax-error "There are additional clauses after the else clause!") (pair 'begin (rest (first clauses))))) `(if (member? ,var ',(first (first clauses))) (begin (unquote-splicing (rest (first clauses)))) ,(rec (rest clauses)))))) (rec clauses))
|
||||
(define-syntax (unless condition . body) :doc "Special form for when multiple actions should be done if a\ncondition is false." (if (= (rest body) ()) `(if ,condition nil ,@body) `(if ,condition nil (begin ,@body))))
|
||||
|
||||
(define-syntax (define-special name-and-args . body) `(define ,(first name-and-args) (special-lambda ,(rest name-and-args) (unquote-splicing body))))
|
||||
(define-syntax (n-times times action) :doc "Executes action times times." (define (repeat times elem) (unless (> 1 times) (pair elem (repeat (- times 1) elem)))) `(begin ,@(repeat times action)))
|
||||
|
||||
(define-syntax (let bindings . body) (define (unzip lists) (when lists (define (iter lists l1 l2) (define elem (first lists)) (if elem (iter (rest lists) (pair (first elem) l1) (pair (first (rest elem)) l2)) (list l1 l2)))) (iter lists () ())) (define unzipped (unzip bindings)) `((,lambda ,(first unzipped) ,@body) ,@(first (rest unzipped))))
|
||||
|
||||
(define-syntax (cond . clauses) (define (rec clauses) (if (= nil clauses) nil (if (= (first (first clauses)) 'else) (begin (if (not (= (rest clauses) ())) (error :syntax-error "There are additional clauses after the else clause!") (pair 'begin (rest (first clauses))))) `(if ,(first (first clauses)) (begin ,@(rest (first clauses))) ,(rec (rest clauses)))))) (rec clauses))
|
||||
|
||||
(define-syntax (case var . clauses) (define (rec clauses) (if (= nil clauses) nil (if (= (first (first clauses)) 'else) (begin (if (not (= (rest clauses) ())) (error :syntax-error "There are additional clauses after the else clause!") (pair 'begin (rest (first clauses))))) `(if (member? ,var ',(first (first clauses))) (begin ,@(rest (first clauses))) ,(rec (rest clauses)))))) (rec clauses))
|
||||
|
||||
(define-syntax (construct-list . body) :doc "\n{{{example_start}}}\n(construct-list\n i <- '(1 2 3 4 5)\n yield (* i i))\n{{{example_end}}}\n\n(construct-list\n i <- '(1 2 3 4)\n j <- '(A B)\n yield (pair i j))\n\n(construct-list\n i <- '(1 2 3 4 5 6 7 8)\n if (= 0 (% i 2))\n yield i)\n" (define (append-map f ll) (unless (= ll ()) (define val (f (first ll))) (if (= (first val) ()) (append-map f (rest ll)) (extend val (append-map f (rest ll)))))) (define (rec body) (cond ((= () body) ()) ((= () (rest body)) (first body)) ((= (first (rest body)) '<-) `(,append-map (lambda (,(first body)) (list ,(rec (rest (rest (rest body)))))) ,(first (rest (rest body))))) ((= (first body) 'if) `(when ,(first (rest body)) ,(rec (rest (rest body))))) ((= (first (rest body)) 'yield) (first (rest body))) (else (error :syntax-error "Not a do-able expression")))) (rec body))
|
||||
|
||||
(define-syntax (define-typed args . body) (define (get-arg-names args) (when args (pair (first args) (get-arg-names (rest (rest args)))))) (let ((name (first args)) (lambda-list (rest args)) (arg-names (get-arg-names (rest args)))) `(define (,name (unquote-splicing arg-names)) (assert-types= (unquote-splicing lambda-list)) (unquote-splicing body))))
|
||||
(define-syntax (define-typed args . body) (define (get-arg-names args) (when args (pair (first args) (get-arg-names (rest (rest args)))))) (let ((name (first args)) (lambda-list (rest args)) (arg-names (get-arg-names (rest args)))) `(define (,name ,@arg-names) (assert-types= ,@lambda-list) ,@body)))
|
||||
|
||||
(define-syntax (define-module module-name (:imports ()) :exports . body) (let ((module-prefix (concat-strings (symbol->string module-name) "::"))) (eval `(begin (unquote-splicing (map (lambda (x) `(,import ,x)) imports)) (unquote-splicing body))) (pair 'begin (map (lambda (orig-export-name) (let ((export-name (string->symbol (concat-strings module-prefix (symbol->string orig-export-name))))) `(define ,export-name ,(mytry (eval orig-export-name) (error :module-error "The module does not contain a key it tries to export"))))) exports))))
|
||||
(define-syntax (define-module module-name (:imports ()) :exports . body) (let ((module-prefix (concat-strings (symbol->string module-name) "::"))) (eval `(begin ,@(map (lambda (x) `(,import ,x)) imports) ,@body)) (pair 'begin (map (lambda (orig-export-name) (let ((export-name (string->symbol (concat-strings module-prefix (symbol->string orig-export-name))))) `(define ,export-name ,(mytry (eval orig-export-name) (error :module-error "The module does not contain a key it tries to export"))))) exports))))
|
||||
|
||||
(define-syntax (generic-extend args . body) (let ((fun-name (first args)) (params (rest args)) (types ()) (names ())) (define (process-params params) (when params (let ((_name (first params)) (_type (first (rest params)))) (assert (symbol? _name)) (assert (keyword? _type)) (set! types (append types _type)) (set! names (append names _name)) (process-params (rest (rest params)))))) (process-params params) (let ((generic-map-name (string->symbol (concat-strings "generic-" (symbol->string fun-name) "-map")))) (unless (bound? generic-map-name) (define generic-map-name (create-hash-map))) (hm/set! generic-map-name types (eval `(,lambda ,names (unquote-splicing body)))) (if (bound? fun-name) (let ((exisiting-fun (eval fun-name))) (unless (type=? exisiting-fun :generic-procedure) (unless (procedure? exisiting-fun) (error :macro-expand-error "can only generic-extend procedures.")) (define orig-proc exisiting-fun) (define fun-name (eval `(,lambda args (let ((fun (hm/get (map type args)))) (if (procedure? fun) (fun . args) (,orig-proc . args))))))))))))
|
||||
(define-syntax (generic-extend args . body) (let ((fun-name (first args)) (params (rest args)) (types ()) (names ())) (define (process-params params) (when params (let ((_name (first params)) (_type (first (rest params)))) (assert (symbol? _name)) (assert (keyword? _type)) (set! types (append types _type)) (set! names (append names _name)) (process-params (rest (rest params)))))) (process-params params) (let ((generic-map-name (string->symbol (concat-strings "generic-" (symbol->string fun-name) "-map")))) (unless (bound? generic-map-name) (define generic-map-name (hash-map))) (hm/set! generic-map-name types (eval `(,lambda ,names ,@body))) (if (bound? fun-name) (let ((exisiting-fun (eval fun-name))) (unless (type=? exisiting-fun :generic-procedure) (unless (procedure? exisiting-fun) (error :macro-expand-error "can only generic-extend procedures.")) (define orig-proc exisiting-fun) (define fun-name (eval `(,lambda args (let ((fun (hm/get (map type args)))) (if (procedure? fun) (fun . args) (,orig-proc . args))))))))))))
|
||||
|
||||
(define (null? x) :doc "Checks if the argument is =nil=." (= x ()))
|
||||
|
||||
@@ -82,7 +88,7 @@
|
||||
|
||||
(define (range (:from 0) :to) :doc "Returns a sequence of numbers starting with the number defined\nby the key =from= and ends with the number defined in =to=." (when (< from to) (pair from (range :from (+ 1 from) :to to))))
|
||||
|
||||
(define (range-while (:from 0) to) :doc "Returns a sequence of numbers starting with the number defined\nby the key 'from' and ends with the number defined in 'to'." (define result (list (copy from))) (define head result) (mutate from (increment from)) (while (< from to) (begin (mutate head (pair (first head) (pair (copy from) nil))) (define head (rest head)) (mutate from (increment from)))) result)
|
||||
(define (range-while (:from 0) :to) :doc "Returns a sequence of numbers starting with the number defined\nby the key 'from' and ends with the number defined in 'to'." (define result (list (copy from))) (define head result) (set! from (increment from)) (while (< from to) (begin (mutate head (pair (first head) (pair (copy from) nil))) (define head (rest head)) (set! from (increment from)))) result)
|
||||
|
||||
(define (map fun seq) :doc "Takes a function and a sequence as arguments and returns a new\nsequence which contains the results of using the first sequences\nelemens as argument to that function." (if (null? seq) seq (pair (fun (first seq)) (map fun (rest seq)))))
|
||||
|
||||
|
||||
@@ -1,670 +0,0 @@
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
-> Slime::eval_arguments d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 367
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
-> Slime::eval_arguments d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 367
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
-> Slime::eval_arguments d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 367
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
-> Slime::eval_arguments d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 367
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
-> Slime::eval_arguments d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 367
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
-> Slime::eval_arguments d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 367
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
-> Slime::eval_arguments d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 367
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
-> Slime::eval_arguments d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 367
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
-> Slime::eval_arguments d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 367
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
-> Slime::eval_arguments d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 367
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
-> Slime::eval_arguments d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 367
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
-> Slime::eval_arguments d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 367
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
-> Slime::eval_arguments d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 367
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
-> Slime::eval_arguments d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 367
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
-> Slime::eval_arguments d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 367
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
@@ -1,670 +0,0 @@
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
-> Slime::eval_arguments d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 367
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
-> Slime::eval_arguments d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 367
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
-> Slime::eval_arguments d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 367
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
-> Slime::eval_arguments d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 367
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
-> Slime::eval_arguments d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 367
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
-> Slime::eval_arguments d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 367
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
-> Slime::eval_arguments d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 367
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
-> Slime::eval_arguments d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 367
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
-> Slime::eval_arguments d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 367
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
-> Slime::eval_arguments d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 367
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
-> Slime::eval_arguments d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 367
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
-> Slime::eval_arguments d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 367
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
-> Slime::eval_arguments d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 367
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
-> Slime::eval_arguments d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 367
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
-> Slime::apply_arguments_to_function d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 240
|
||||
-> Slime::create_extended_environment_for_function_application d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 5
|
||||
-> Slime::eval_arguments d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 367
|
||||
<-
|
||||
<-
|
||||
-> Slime::eval_expr d:\code\gitlab\tallshipengine\external\slime\src\./eval.cpp 402
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
<-
|
||||
@@ -89,13 +89,13 @@
|
||||
;; :key2 value2,
|
||||
;; :key1 value1))
|
||||
|
||||
(assert (= (length (first p)) 6))
|
||||
(assert (= (ds::plist::get p :key1) 'value4))
|
||||
;; (assert (= (length (first p)) 6))
|
||||
;; (assert (= (ds::plist::get p :key1) 'value4))
|
||||
|
||||
(ds::plist::remove! p :key1)
|
||||
;; p == ((:key2 value2,
|
||||
;; :key1 value1))
|
||||
;; (ds::plist::remove! p :key1)
|
||||
;; ;; p == ((:key2 value2,
|
||||
;; ;; :key1 value1))
|
||||
|
||||
(assert (= (length (first p)) 4))
|
||||
(assert (= (ds::plist::get p :key1) 'value1))
|
||||
(assert (= (ds::plist::get p :key2) 'value2))
|
||||
;; (assert (= (length (first p)) 4))
|
||||
;; (assert (= (ds::plist::get p :key1) 'value1))
|
||||
;; (assert (= (ds::plist::get p :key2) 'value2))
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
|
||||
(define hm1 (create-hash-map))
|
||||
(define hm1 (hash-map))
|
||||
|
||||
(hm/set! hm1 1 "a")
|
||||
(hm/set! hm1 "a" (lambda (x) (+ x 1)))
|
||||
|
||||
(assert (= ((hm/get hm1 (hm/get hm1 1)) 2) 3))
|
||||
|
||||
(define hm2 (create-hash-map))
|
||||
(define hm2 (hash-map))
|
||||
(hm/set! hm2 'yes :yes)
|
||||
(hm/set! hm2 :yes 'yes)
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
(assert (= (hm/get hm2 (hm/get hm2 (hm/get hm2 'yes))) :yes))
|
||||
(assert (= (hm/get hm2 (hm/get hm2 (hm/get hm2 :yes))) 'yes))
|
||||
|
||||
(define hm3 (create-hash-map))
|
||||
(define hm3 (hash-map))
|
||||
(hm/set! hm3 + 'plus)
|
||||
(hm/set! hm3 - 'minus)
|
||||
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
(define a 1111)
|
||||
|
||||
(define (get-a-1) a)
|
||||
@@ -0,0 +1,7 @@
|
||||
(import "tests/import1.slime")
|
||||
|
||||
|
||||
(define (set-a-2 s)
|
||||
(set! a s))
|
||||
|
||||
(define (get-a-2) a)
|
||||
@@ -0,0 +1,20 @@
|
||||
(import "tests/import1.slime")
|
||||
|
||||
(assert (= a 1111))
|
||||
(assert (= (get-a-1) 1111))
|
||||
|
||||
|
||||
(import "tests/import2.slime")
|
||||
|
||||
|
||||
(assert (= a 1111))
|
||||
(assert (= (get-a-1) 1111))
|
||||
(assert (= (get-a-2) 1111))
|
||||
|
||||
(set-a-2 11)
|
||||
|
||||
(assert (= a 11))
|
||||
|
||||
(assert (= (get-a-1) 11))
|
||||
|
||||
(assert (= (get-a-2) 11))
|
||||
@@ -7,9 +7,19 @@ set exeName=slime.exe
|
||||
taskkill /F /IM %exeName% > NUL 2> NUL
|
||||
|
||||
echo ---------- Compiling ----------
|
||||
call ..\timecmd cl ../src/main.cpp /D_PROFILING /D_DEBUG /D_DONT_BREAK_ON_ERRORS /Zi /std:c++latest /Fe%exeName% /W3 /wd4003 /nologo /EHsc /link /NODEFAULTLIB:libucrt libucrtd.lib
|
||||
rem call ..\timecmd clang-cl ../src/main.cpp -o %exeName% /O2 /std:c++latest /W3 /Zi /EHsc
|
||||
call timecmd cl ^
|
||||
../src/main.cpp^
|
||||
/I../3rd/ ^
|
||||
/D_PROFILING /D_DEBUG ^
|
||||
/Zi /std:c++latest /Fe%exeName% /W3 /wd4003 /nologo /EHsc
|
||||
|
||||
rem call ..\timecmd cl ^
|
||||
rem ../src/main.cpp^
|
||||
rem /I../3rd/ ^
|
||||
rem /O2 /D_DONT_BREAK_ON_ERRORS ^
|
||||
rem /std:c++latest /Fe%exeName% /W3 /wd4003 /nologo /EHsc
|
||||
|
||||
rem call ..\timecmd clang-cl ../src/main.cpp -o %exeName% /O2 /std:c++latest /W3 /Zi /EHsc
|
||||
|
||||
if %errorlevel% == 0 (
|
||||
echo.
|
||||
|
||||
@@ -1,15 +1,51 @@
|
||||
TIMEFORMAT=%3lR
|
||||
TIMEFORMAT=%3lU
|
||||
SCRIPTPATH="$( cd "$(dirname "$0")" ; pwd -P )"
|
||||
pushd $SCRIPTPATH > /dev/null
|
||||
|
||||
# _DEBUG
|
||||
# time g++ -fpermissive src/main.cpp -g -o ./bin/slime --std=c++17 || exit 1
|
||||
time clang++ -D_DEBUG -D_PROFILING -D_DONT_BREAK_ON_ERRORS src/main.cpp -g -o ./bin/slime --std=c++17 || exit 1
|
||||
echo ""
|
||||
echo "----------------------"
|
||||
echo " compiling libslime "
|
||||
echo "----------------------"
|
||||
time clang++ --std=c++17 \
|
||||
src/libslime.cpp -c -o libslime.o \
|
||||
-I3rd/ || exit 1
|
||||
|
||||
echo ""
|
||||
echo "------------------------------"
|
||||
echo " compiling fullslime (debug) "
|
||||
echo "------------------------------"
|
||||
time clang++ -D_DEBUG -D_DONT_BREAK_ON_ERRORS \
|
||||
src/main.cpp -gfull -gdwarf -o ./bin/slime_d --std=c++17 \
|
||||
-I3rd/ || exit 1
|
||||
|
||||
echo ""
|
||||
echo "--------------------------------"
|
||||
echo " compiling fullslime (release) "
|
||||
echo "--------------------------------"
|
||||
time clang++ -D_DONT_BREAK_ON_ERRORS -O3 \
|
||||
src/main.cpp -g -o ./bin/slime --std=c++17 \
|
||||
-I3rd/ || exit 1
|
||||
|
||||
pushd ./bin > /dev/null
|
||||
time ./slime --run-tests
|
||||
|
||||
# echo ""
|
||||
# echo "----------------------"
|
||||
# echo " generating docs "
|
||||
# echo "----------------------"
|
||||
# time valgrind -q ./slime_d --generate-docs || exit 1
|
||||
|
||||
echo ""
|
||||
echo "----------------------"
|
||||
echo " running tests "
|
||||
echo "----------------------"
|
||||
time valgrind -q --track-origins=yes --leak-check=full --show-leak-kinds=all ./slime_d --run-tests || exit 1
|
||||
|
||||
echo ""
|
||||
echo "------------------------"
|
||||
echo " running benches "
|
||||
echo "------------------------"
|
||||
hyperfine -s color --warmup 5 "./slime --run-tests > /dev/null"
|
||||
|
||||
popd > /dev/null
|
||||
popd > /dev/null
|
||||
# popd > /dev/null
|
||||
unset TIMEFORMAT
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
-std=c++17
|
||||
-D_DEBUG
|
||||
-D_DONT_BREAK_ON_ERRORS
|
||||
-I3rd/
|
||||
-include=libslime.cpp
|
||||
@@ -0,0 +1,54 @@
|
||||
/**
|
||||
Usage of the create_error_macros:
|
||||
*/
|
||||
#define __create_error(keyword, ...) \
|
||||
create_error( \
|
||||
__FUNCTION__, __FILE__, __LINE__, \
|
||||
Memory::get_keyword(keyword), \
|
||||
__VA_ARGS__)
|
||||
|
||||
#define create_out_of_memory_error(...) \
|
||||
__create_error("out-of-memory", __VA_ARGS__)
|
||||
|
||||
#define create_generic_error(...) \
|
||||
__create_error("generic", __VA_ARGS__)
|
||||
|
||||
#define create_not_yet_implemented_error() \
|
||||
__create_error("not-yet-implemented", "This feature has not yet been implemented.")
|
||||
|
||||
#define create_parsing_error(...) \
|
||||
__create_error("parsing-error", __VA_ARGS__)
|
||||
|
||||
#define create_symbol_undefined_error(...) \
|
||||
__create_error("symbol-undefined", __VA_ARGS__)
|
||||
|
||||
#define create_type_missmatch_error(expected, actual) \
|
||||
__create_error("type-missmatch", \
|
||||
"Type missmatch: expected %s, got %s", \
|
||||
expected, actual)
|
||||
|
||||
#ifdef _DEBUG
|
||||
|
||||
#define assert_type(_node, _type) \
|
||||
do { \
|
||||
if (Memory::get_type(_node) != _type) { \
|
||||
create_type_missmatch_error( \
|
||||
Lisp_Object_Type_to_string(_type), \
|
||||
Lisp_Object_Type_to_string(Memory::get_type(_node))); \
|
||||
} \
|
||||
} while(0)
|
||||
|
||||
#define assert(condition) \
|
||||
do { \
|
||||
if (!(condition)) { \
|
||||
create_generic_error("Assertion-error."); \
|
||||
} \
|
||||
} while(0)
|
||||
|
||||
#else
|
||||
# define assert_arguments_length(expected, actual) do {} while (0)
|
||||
# define assert_arguments_length_less_equal(expected, actual) do {} while (0)
|
||||
# define assert_arguments_length_greater_equal(expected, actual) do {} while (0)
|
||||
# define assert_type(_node, _type) do {} while (0)
|
||||
# define assert(condition) do {} while (0)
|
||||
#endif
|
||||
@@ -0,0 +1,154 @@
|
||||
#define concat_( a, b) a##b
|
||||
#define label(prefix, lnum) concat_(prefix,lnum)
|
||||
|
||||
#define log_location() \
|
||||
do { \
|
||||
if (Globals::log_level == Log_Level::Debug) { \
|
||||
printf("in"); \
|
||||
int spacing = 30-(int)strlen(__FILE__); \
|
||||
if (spacing < 1) spacing = 1; \
|
||||
for (int i = 0; i < spacing;++i) \
|
||||
printf(" "); \
|
||||
printf("%s (%d) ", __FILE__, __LINE__); \
|
||||
printf("-> %s\n",__FUNCTION__); \
|
||||
} \
|
||||
} while(0)
|
||||
|
||||
#define if_error_log_location_and_return(val) \
|
||||
do { \
|
||||
if (Globals::error) { \
|
||||
log_location(); \
|
||||
return val; \
|
||||
} \
|
||||
} while(0)
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define try_or_else_return(val) \
|
||||
if (1) \
|
||||
goto label(body,__LINE__); \
|
||||
else \
|
||||
while (1) \
|
||||
if (1) { \
|
||||
if (Globals::error) { \
|
||||
log_location(); \
|
||||
return val; \
|
||||
} \
|
||||
break; \
|
||||
} \
|
||||
else label(body,__LINE__):
|
||||
;
|
||||
#else
|
||||
#define try_or_else_return(val)
|
||||
#endif
|
||||
|
||||
#define try_struct try_or_else_return({})
|
||||
#define try_void try_or_else_return()
|
||||
#define try try_or_else_return(0)
|
||||
|
||||
#define dont_break_on_errors fluid_let(Globals::breaking_on_errors, false)
|
||||
#define ignore_logging fluid_let(Globals::log_level, Log_Level::None)
|
||||
|
||||
#define fetch1(var) \
|
||||
Lisp_Object* var##_symbol = Memory::get_symbol(#var); \
|
||||
Lisp_Object* var = lookup_symbol(var##_symbol, get_current_environment()); \
|
||||
if (Globals::error) printf("in %s:%d\n", __FILE__, __LINE__)
|
||||
|
||||
#define fetch2(var1, var2) fetch1(var1); fetch1(var2)
|
||||
#define fetch3(var1, var2, var3) fetch2(var1, var2); fetch1(var3)
|
||||
#define fetch4(var1, var2, var3, var4) fetch3(var1, var2, var3); fetch1(var4)
|
||||
#define fetch5(var1, var2, var3, var4, var5) fetch4(var1, var2, var3, var4); fetch1(var5)
|
||||
#define fetch6(var1, var2, var3, var4, var5, var6) fetch5(var1, var2, var3, var4, var5); fetch1(var6)
|
||||
#define fetch7(var1, var2, var3, var4, var5, var6, var7) fetch6(var1, var2, var3, var4, var5, var6); fetch1(var7)
|
||||
#define fetch8(var1, var2, var3, var4, var5, var6, var7, var8) fetch7(var1, var2, var3, var4, var5, var6, var7); fetch1(var8)
|
||||
#define fetch9(var1, var2, var3, var4, var5, var6, var7, var8, var9) fetch8(var1, var2, var3, var4, var5, var6, var7, var8); fetch1(var9)
|
||||
#define fetch10(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10) fetch9(var1, var2, var3, var4, var5, var6, var7, var8, var9); fetch1(var10)
|
||||
#define fetch11(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11) fetch10(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10); fetch1(var11)
|
||||
#define fetch12(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12) fetch11(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11); fetch1(var12)
|
||||
#define fetch13(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13) fetch12(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12); fetch1(var13)
|
||||
#define fetch14(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13, var14) fetch13(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13); fetch1(var14)
|
||||
#define fetch15(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13, var14, var15) fetch14(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13, var14); fetch1(var15)
|
||||
#define fetch16(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13, var14, var15, var16) fetch15(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13, var14, var15); fetch1(var16)
|
||||
#define fetch17(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13, var14, var15, var16, var17) fetch16(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13, var14, var15, var16); fetch1(var17)
|
||||
#define fetch18(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13, var14, var15, var16, var17, var18) fetch17(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13, var14, var15, var16, var17); fetch1(var18)
|
||||
#define fetch19(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13, var14, var15, var16, var17, var18, var19) fetch18(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13, var14, var15, var16, var17, var18); fetch1(var19)
|
||||
#define fetch20(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13, var14, var15, var16, var17, var18, var19, var20) fetch19(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13, var14, var15, var16, var17, var18, var19); fetch1(var20)
|
||||
#define fetch21(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13, var14, var15, var16, var17, var18, var19, var20, var21) fetch20(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13, var14, var15, var16, var17, var18, var19, var20); fetch1(var21)
|
||||
#define fetch22(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13, var14, var15, var16, var17, var18, var19, var20, var21, var22) fetch21(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13, var14, var15, var16, var17, var18, var19, var20, var21); fetch1(var22)
|
||||
#define fetch23(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13, var14, var15, var16, var17, var18, var19, var20, var21, var22, var23) fetch22(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13, var14, var15, var16, var17, var18, var19, var20, var21, var22); fetch1(var23)
|
||||
#define fetch24(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13, var14, var15, var16, var17, var18, var19, var20, var21, var22, var23, var24) fetch23(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13, var14, var15, var16, var17, var18, var19, var20, var21, var22, var23); fetch1(var24)
|
||||
|
||||
#define GET_MACRO( \
|
||||
_1, _2, _3, _4, _5, _6, \
|
||||
_7, _8, _9, _10, _11, _12, \
|
||||
_13, _14, _15, _16, _17, _18, \
|
||||
_19, _20, _21, _22, _23, _24, \
|
||||
NAME, ...) NAME
|
||||
#ifdef _MSC_VER
|
||||
#define EXPAND( x ) x
|
||||
#define fetch(...) EXPAND( \
|
||||
GET_MACRO( \
|
||||
__VA_ARGS__, \
|
||||
fetch24, fetch23, fetch22, fetch21, fetch20, fetch19, \
|
||||
fetch18, fetch17, fetch16, fetch15, fetch14, fetch13, \
|
||||
fetch12, fetch11, fetch10, fetch9, fetch8, fetch7, \
|
||||
fetch6, fetch5, fetch4, fetch3, fetch2, fetch1 \
|
||||
)(__VA_ARGS__))
|
||||
#else
|
||||
#define fetch(...) \
|
||||
GET_MACRO( \
|
||||
__VA_ARGS__, \
|
||||
fetch24, fetch23, fetch22, fetch21, fetch20, fetch19, \
|
||||
fetch18, fetch17, fetch16, fetch15, fetch14, fetch13, \
|
||||
fetch12, fetch11, fetch10, fetch9, fetch8, fetch7, \
|
||||
fetch6, fetch5, fetch4, fetch3, fetch2, fetch1 \
|
||||
)(__VA_ARGS__)
|
||||
#endif
|
||||
|
||||
// NOTE(Felix): we have to copy the string because we need it to be
|
||||
// mutable for the parser to work, because the parser relys on being
|
||||
// able to temporaily put in markers in the code and also it will fill
|
||||
// out the source code location
|
||||
#define _define_helper(def, docs, special) \
|
||||
Parser::parser_file = file_name_built_ins; \
|
||||
Parser::parser_line = __LINE__; \
|
||||
Parser::parser_col = 0; \
|
||||
auto label(params,__LINE__) = Parser::parse_single_expression( \
|
||||
Memory::get_c_str(Memory::create_string(#def))); \
|
||||
if_error_log_location_and_return(nullptr); \
|
||||
assert_type(label(params,__LINE__), Lisp_Object_Type::Pair); \
|
||||
assert_type(label(params,__LINE__)->value.pair.first, Lisp_Object_Type::Symbol); \
|
||||
auto label(sym,__LINE__) = label(params,__LINE__)->value.pair.first; \
|
||||
auto label(sfun,__LINE__) = Memory::create_lisp_object_cfunction(special); \
|
||||
create_arguments_from_lambda_list_and_inject(label(params,__LINE__)->value.pair.rest, label(sfun,__LINE__)); \
|
||||
if_error_log_location_and_return(nullptr); \
|
||||
label(sfun,__LINE__)->docstring = Memory::create_string(docs); \
|
||||
define_symbol(label(sym,__LINE__), label(sfun,__LINE__)); \
|
||||
label(sfun,__LINE__)->value.cFunction->body = []() -> Lisp_Object*
|
||||
|
||||
#define define(def, docs) _define_helper(def, docs, false)
|
||||
#define define_special(def, docs) _define_helper(def, docs, true)
|
||||
#define in_caller_env fluid_let( \
|
||||
Globals::Current_Execution::envi_stack.next_index, \
|
||||
Globals::Current_Execution::envi_stack.next_index-1)
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* iterate over lisp vectors
|
||||
*/
|
||||
#define for_lisp_vector(v) \
|
||||
if (!v); else \
|
||||
if (int it_index = 0); else \
|
||||
for (auto it = v->value.vector.data; \
|
||||
it_index < v->value.vector.length; \
|
||||
it=v->value.vector.data+(++it_index))
|
||||
|
||||
/*
|
||||
* iterate over lisp lists
|
||||
*/
|
||||
#define for_lisp_list(l) \
|
||||
if (!l); else \
|
||||
if (int it_index = 0); else \
|
||||
for (Lisp_Object* head = l, *it; \
|
||||
Memory::get_type(head) == Lisp_Object_Type::Pair && (it = head->value.pair.first); \
|
||||
head = head->value.pair.rest, ++it_index)
|
||||
@@ -0,0 +1,237 @@
|
||||
#pragma once
|
||||
|
||||
// #include <functional>
|
||||
#include "ftb/arraylist.hpp"
|
||||
#include "ftb/hashmap.hpp"
|
||||
|
||||
namespace Slime {
|
||||
struct Lisp_Object;
|
||||
struct String;
|
||||
struct Environment;
|
||||
|
||||
enum struct Thread_Type {
|
||||
Main,
|
||||
GarbageCollection
|
||||
};
|
||||
|
||||
enum struct Lisp_Object_Type {
|
||||
Nil,
|
||||
T,
|
||||
Symbol,
|
||||
Keyword,
|
||||
Number,
|
||||
String,
|
||||
Pair,
|
||||
Vector,
|
||||
Continuation,
|
||||
Pointer,
|
||||
HashMap,
|
||||
// OwningPointer,
|
||||
Function,
|
||||
CFunction,
|
||||
};
|
||||
|
||||
enum class Lisp_Object_Flags
|
||||
{
|
||||
// bits 1 to 5 (including) will be reserved for the type
|
||||
Already_Garbage_Collected = 1 << 5,
|
||||
Under_Construction = 1 << 6,
|
||||
};
|
||||
|
||||
enum struct Function_Type {
|
||||
Lambda,
|
||||
Macro
|
||||
};
|
||||
|
||||
enum struct Log_Level {
|
||||
None,
|
||||
Critical,
|
||||
Warning,
|
||||
Info,
|
||||
Debug,
|
||||
};
|
||||
|
||||
struct Continuation {
|
||||
Array_List<Lisp_Object*> call_stack;
|
||||
Array_List<Environment*> envi_stack;
|
||||
};
|
||||
|
||||
struct String {
|
||||
int length;
|
||||
char data;
|
||||
};
|
||||
|
||||
struct Source_Code_Location {
|
||||
String* file;
|
||||
int line;
|
||||
int column;
|
||||
};
|
||||
|
||||
struct Pair {
|
||||
Lisp_Object* first;
|
||||
Lisp_Object* rest;
|
||||
};
|
||||
|
||||
struct Vector {
|
||||
int length;
|
||||
Lisp_Object* data;
|
||||
};
|
||||
|
||||
struct Positional_Arguments {
|
||||
Array_List<Lisp_Object*> symbols;
|
||||
};
|
||||
|
||||
struct Keyword_Arguments {
|
||||
// Array of Pointers to Lisp_Object<Keyword>
|
||||
Array_List<Lisp_Object*> keywords;
|
||||
// NOTE(Felix): values[i] will be nullptr if no defalut value was
|
||||
// declared for key identifiers[i]
|
||||
Array_List<Lisp_Object*> values;
|
||||
};
|
||||
|
||||
struct Arguments {
|
||||
Positional_Arguments positional;
|
||||
Keyword_Arguments keyword;
|
||||
// NOTE(Felix): rest_argument will be nullptr if no rest argument
|
||||
// is declared otherwise its a symbol
|
||||
Lisp_Object* rest;
|
||||
};
|
||||
|
||||
struct Environment {
|
||||
Array_List<Environment*> parents;
|
||||
Hash_Map<void*, Lisp_Object*> hm;
|
||||
|
||||
~Environment() {
|
||||
parents.~Array_List();
|
||||
hm.~Hash_Map();
|
||||
}
|
||||
};
|
||||
|
||||
struct Function {
|
||||
Function_Type type;
|
||||
Arguments args;
|
||||
Lisp_Object* body; // maybe implicit begin
|
||||
Environment* parent_environment; // we are doing closures now!!
|
||||
};
|
||||
|
||||
struct cFunction {
|
||||
Lisp_Object* (*body)();
|
||||
Arguments args;
|
||||
bool is_special_form;
|
||||
};
|
||||
|
||||
struct Lisp_Object {
|
||||
Source_Code_Location* sourceCodeLocation;
|
||||
u64 flags;
|
||||
Lisp_Object* userType; // keyword
|
||||
String* docstring;
|
||||
union value {
|
||||
String* symbol; // used for symbols and keywords
|
||||
double number;
|
||||
String* string;
|
||||
Pair pair;
|
||||
Vector vector;
|
||||
Function* function;
|
||||
cFunction* cFunction;
|
||||
void* pointer;
|
||||
Continuation* continuation;
|
||||
Hash_Map<Lisp_Object*, Lisp_Object*>* hashMap;
|
||||
~value() {}
|
||||
} value;
|
||||
~Lisp_Object();
|
||||
};
|
||||
|
||||
struct Error {
|
||||
Lisp_Object* position;
|
||||
// type has to be a keyword
|
||||
Lisp_Object* type;
|
||||
String* message;
|
||||
};
|
||||
|
||||
|
||||
const wchar_t* char_to_wchar(const char* c);
|
||||
char* read_entire_file(char* filename);
|
||||
void add_to_load_path(const char*);
|
||||
bool lisp_object_equal(Lisp_Object*,Lisp_Object*);
|
||||
Lisp_Object* built_in_load(String*);
|
||||
Lisp_Object* built_in_import(String*);
|
||||
void delete_error();
|
||||
void create_error(const char* c_func_name, const char* c_file_name, int c_file_line, Lisp_Object* type, const char* format, ...);
|
||||
void create_error(const char* c_func_name, const char* c_file_name, int c_file_line, Lisp_Object* type, String* message);
|
||||
void create_error(Lisp_Object* type, const char* message, const char* c_file_name, int c_file_line);
|
||||
Lisp_Object* eval_arguments(Lisp_Object*);
|
||||
Lisp_Object* eval_expr(Lisp_Object*);
|
||||
bool is_truthy (Lisp_Object*);
|
||||
int list_length(Lisp_Object*);
|
||||
void* load_built_ins_into_environment();
|
||||
void create_arguments_from_lambda_list_and_inject(Lisp_Object* formal_arguments, Lisp_Object* function);
|
||||
|
||||
Lisp_Object* lookup_symbol(Lisp_Object* symbol, Environment*);
|
||||
void define_symbol(Lisp_Object* symbol, Lisp_Object* value);
|
||||
void print(Lisp_Object* node, bool print_repr = false, FILE* file = stdout);
|
||||
void print_environment(Environment*);
|
||||
|
||||
bool run_all_tests();
|
||||
|
||||
inline Environment* get_root_environment();
|
||||
inline Environment* get_current_environment();
|
||||
inline void push_environment(Environment*);
|
||||
inline void pop_environment();
|
||||
|
||||
const char* Lisp_Object_Type_to_string(Lisp_Object_Type type);
|
||||
|
||||
void visualize_lisp_machine();
|
||||
void generate_docs(String* path);
|
||||
void log_error();
|
||||
|
||||
namespace Memory {
|
||||
Environment* create_built_ins_environment();
|
||||
Lisp_Object* create_lisp_object_cfunction(bool is_special);
|
||||
inline Lisp_Object_Type get_type(Lisp_Object* node);
|
||||
void init(int);
|
||||
char* get_c_str(String*);
|
||||
void free_everything();
|
||||
String* create_string(const char*);
|
||||
Lisp_Object* get_symbol(String* identifier);
|
||||
Lisp_Object* get_symbol(const char*);
|
||||
Lisp_Object* get_keyword(String* identifier);
|
||||
Lisp_Object* get_keyword(const char*);
|
||||
Lisp_Object* create_lisp_object(double);
|
||||
Lisp_Object* create_lisp_object(const char*);
|
||||
Lisp_Object* create_lisp_object_vector(Lisp_Object*);
|
||||
Lisp_Object* create_lisp_object_vector(Lisp_Object*, Lisp_Object*);
|
||||
Lisp_Object* create_lisp_object_vector(Lisp_Object*, Lisp_Object*, Lisp_Object*);
|
||||
Lisp_Object* create_lisp_object_vector(int, Lisp_Object*);
|
||||
inline Lisp_Object* create_list(Lisp_Object*);
|
||||
inline Lisp_Object* create_list(Lisp_Object*,Lisp_Object*);
|
||||
inline Lisp_Object* create_list(Lisp_Object*,Lisp_Object*,Lisp_Object*);
|
||||
inline Lisp_Object* create_list(Lisp_Object*,Lisp_Object*,Lisp_Object*,Lisp_Object*);
|
||||
inline Lisp_Object* create_list(Lisp_Object*,Lisp_Object*,Lisp_Object*,Lisp_Object*,Lisp_Object*);
|
||||
inline Lisp_Object* create_list(Lisp_Object*,Lisp_Object*,Lisp_Object*,Lisp_Object*,Lisp_Object*,Lisp_Object*);
|
||||
}
|
||||
|
||||
namespace Parser {
|
||||
// extern Environment* environment_for_macros;
|
||||
|
||||
extern String* standard_in;
|
||||
extern String* parser_file;
|
||||
extern int parser_line;
|
||||
extern int parser_col;
|
||||
|
||||
Lisp_Object* parse_single_expression(char* text);
|
||||
Lisp_Object* parse_single_expression(wchar_t* text);
|
||||
}
|
||||
|
||||
namespace Globals {
|
||||
extern char* bin_path;
|
||||
extern Log_Level log_level;
|
||||
extern Array_List<void*> load_path;
|
||||
namespace Current_Execution {
|
||||
extern Array_List<Lisp_Object*> call_stack;
|
||||
extern Array_List<Environment*> envi_stack;
|
||||
}
|
||||
|
||||
extern Error* error;
|
||||
extern bool breaking_on_errors;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,398 @@
|
||||
namespace Parser {
|
||||
String* standard_in;
|
||||
String* parser_file;
|
||||
int parser_line;
|
||||
int parser_col;
|
||||
|
||||
proc eat_comment_line(char* text, int* index_in_text) -> void {
|
||||
// safety check if we are actually starting a comment here
|
||||
if (text[*index_in_text] != ';')
|
||||
return;
|
||||
|
||||
// eat the comment line
|
||||
do {
|
||||
++(*index_in_text);
|
||||
++parser_col;
|
||||
} while (text[(*index_in_text)] != '\n' &&
|
||||
text[(*index_in_text)] != '\r' &&
|
||||
text[(*index_in_text)] != '\0');
|
||||
}
|
||||
|
||||
proc step_char(char* text, int* index_in_text, int steps = 1) {
|
||||
for (int i = 0; i < steps; ++i) {
|
||||
if (text[(*index_in_text)] == '\n') {
|
||||
++parser_line;
|
||||
parser_col = 0;
|
||||
}
|
||||
++parser_col;
|
||||
++(*index_in_text);
|
||||
}
|
||||
}
|
||||
|
||||
proc eat_whitespace(char* text, int* index_in_text) -> void {
|
||||
// skip whitespaces
|
||||
while (text[(*index_in_text)] == ' ' ||
|
||||
text[(*index_in_text)] == '\t' ||
|
||||
text[(*index_in_text)] == '\n' ||
|
||||
text[(*index_in_text)] == '\r')
|
||||
{
|
||||
step_char(text, index_in_text);
|
||||
}
|
||||
}
|
||||
|
||||
proc eat_until_code(char* text, int* index_in_text) -> void {
|
||||
profile_this();
|
||||
int position_before;
|
||||
do {
|
||||
position_before = *index_in_text;
|
||||
eat_comment_line(text, index_in_text);
|
||||
eat_whitespace(text, index_in_text);
|
||||
} while (position_before != *index_in_text);
|
||||
}
|
||||
|
||||
proc step_char_and_eat_until_code(char* text, int* index_in_text) {
|
||||
step_char(text, index_in_text);
|
||||
eat_until_code(text, index_in_text);
|
||||
}
|
||||
|
||||
proc parse_fancy_delimiter(char* text, int* index_in_text, char l_delimiter, char r_delimiter, Lisp_Object* first_elem) -> Lisp_Object* {
|
||||
profile_this();
|
||||
if (text[*index_in_text] != l_delimiter) {
|
||||
create_parsing_error("a fancy cannot be parsed here");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
Lisp_Object* ret;
|
||||
Lisp_Object* head;
|
||||
try ret = Memory::create_lisp_object_pair(first_elem, Memory::nil);
|
||||
head = ret;
|
||||
|
||||
step_char(text, index_in_text);
|
||||
|
||||
eat_until_code(text, index_in_text);
|
||||
while (text[*index_in_text] != r_delimiter) {
|
||||
Lisp_Object* element;
|
||||
try element = parse_expression(text, index_in_text);
|
||||
try head->value.pair.rest = Memory::create_lisp_object_pair(element, Memory::nil);
|
||||
head = head->value.pair.rest;
|
||||
eat_until_code(text, index_in_text);
|
||||
}
|
||||
|
||||
step_char(text, index_in_text);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
proc get_atom_text_length(char* text, int* index_in_text) -> int {
|
||||
int atom_length = 0;
|
||||
while (text[*index_in_text+atom_length] != ' ' &&
|
||||
text[*index_in_text+atom_length] != ')' &&
|
||||
text[*index_in_text+atom_length] != '(' &&
|
||||
text[*index_in_text+atom_length] != '[' &&
|
||||
text[*index_in_text+atom_length] != ']' &&
|
||||
text[*index_in_text+atom_length] != '{' &&
|
||||
text[*index_in_text+atom_length] != '}' &&
|
||||
text[*index_in_text+atom_length] != '\0' &&
|
||||
text[*index_in_text+atom_length] != '\n' &&
|
||||
text[*index_in_text+atom_length] != '\r' &&
|
||||
text[*index_in_text+atom_length] != '\t')
|
||||
{
|
||||
++atom_length;
|
||||
}
|
||||
return atom_length;
|
||||
}
|
||||
|
||||
proc parse_number(char* text, int* index_in_text) -> Lisp_Object* {
|
||||
Lisp_Object* ret;
|
||||
try ret = Memory::create_lisp_object(0.0);
|
||||
|
||||
sscanf(text+*index_in_text, "%lf", &ret->value.number);
|
||||
|
||||
int atom_length = get_atom_text_length(text, index_in_text);
|
||||
step_char(text, index_in_text, atom_length);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
proc parse_symbol_or_keyword(char* text, int* index_in_text) -> Lisp_Object* {
|
||||
bool keyword = false;
|
||||
if (text[*index_in_text] == ':') {
|
||||
keyword = true;
|
||||
step_char(text, index_in_text);
|
||||
}
|
||||
|
||||
int atom_length = get_atom_text_length(text, index_in_text);
|
||||
char orig = text[*index_in_text+atom_length];
|
||||
text[*index_in_text+atom_length] = '\0';
|
||||
|
||||
|
||||
String* str_keyword;
|
||||
Lisp_Object* ret;
|
||||
try str_keyword = Memory::create_string("", atom_length);
|
||||
strcpy(&str_keyword->data, text+*index_in_text);
|
||||
|
||||
if (keyword) {
|
||||
try ret = Memory::get_keyword(str_keyword);
|
||||
} else {
|
||||
try ret = Memory::get_symbol(str_keyword);
|
||||
}
|
||||
|
||||
|
||||
text[*index_in_text+atom_length] = orig;
|
||||
step_char(text, index_in_text, atom_length);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
proc parse_string(char* text, int* index_in_text) -> Lisp_Object* {
|
||||
// the first character is the '"'
|
||||
step_char(text, index_in_text);
|
||||
|
||||
// now we are at the first letter, if this is the closing '"' then
|
||||
// it's easy
|
||||
if (text[*index_in_text] == '"') {
|
||||
Lisp_Object* ret;
|
||||
try ret = Memory::create_lisp_object(Memory::create_string("", 0));
|
||||
// inject_scl(ret);
|
||||
|
||||
// plus one because we want to go after the quotes
|
||||
step_char(text, index_in_text);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
// okay so the first letter was not actually closing the string...
|
||||
int string_length = 0;
|
||||
bool escaping = false;
|
||||
while (escaping || text[*index_in_text+string_length] != '"') {
|
||||
if (escaping) {
|
||||
escaping = false;
|
||||
}
|
||||
else
|
||||
if (text[*index_in_text+string_length] == '\\')
|
||||
escaping = true;
|
||||
|
||||
++string_length;
|
||||
}
|
||||
|
||||
// we found the end of the string
|
||||
text[*index_in_text+string_length] = '\0';
|
||||
|
||||
// NOTE(Felix): Tactic: Through unescaping the string will
|
||||
// only get shorter, so we replace it inplace and later jump
|
||||
// to the original end of the string.
|
||||
int new_len;
|
||||
try new_len = unescape_string(text+(*index_in_text));
|
||||
|
||||
String* string = Memory::create_string("", new_len);
|
||||
|
||||
strcpy(&string->data, text+(*index_in_text));
|
||||
// printf("------ %s\n", &string->data);
|
||||
|
||||
text[*index_in_text+string_length] = '"';
|
||||
|
||||
// plus one because we want to go after the quotes
|
||||
step_char(text, index_in_text, string_length+1);
|
||||
|
||||
Lisp_Object* ret;
|
||||
try ret = Memory::create_lisp_object(string);
|
||||
|
||||
// inject_scl(ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
proc parse_atom(char* text, int* index_in_text) -> Lisp_Object* {
|
||||
profile_this();
|
||||
Lisp_Object* ret;
|
||||
// numbers
|
||||
if ((text[*index_in_text] <= 57 && // if number
|
||||
text[*index_in_text] >= 48)
|
||||
||
|
||||
((text[*index_in_text] == '+' || // or if sign and then number
|
||||
text[*index_in_text] == '-')
|
||||
&&
|
||||
(text[*index_in_text +1] <= 57 &&
|
||||
text[*index_in_text +1] >= 48))
|
||||
||
|
||||
((text[*index_in_text] == '.') // or if . and then number
|
||||
&&
|
||||
(text[*index_in_text +1] <= 57 &&
|
||||
text[*index_in_text +1] >= 48)))
|
||||
{
|
||||
try ret = parse_number(text, index_in_text);
|
||||
}
|
||||
|
||||
else if (text[*index_in_text] == '"')
|
||||
try ret = parse_string(text, index_in_text);
|
||||
else
|
||||
try ret = parse_symbol_or_keyword(text, index_in_text);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
|
||||
proc parse_list(char* text, int* index_in_text) -> Lisp_Object* {
|
||||
profile_this();
|
||||
if (text[*index_in_text] != '(') {
|
||||
create_parsing_error("a list cannot be parsed here");
|
||||
return nullptr;
|
||||
}
|
||||
step_char_and_eat_until_code(text, index_in_text);
|
||||
|
||||
if (text[*index_in_text] == ')') {
|
||||
step_char(text, index_in_text);
|
||||
return Memory::nil;
|
||||
}
|
||||
|
||||
Lisp_Object* first_elem;
|
||||
Lisp_Object* ret;
|
||||
Lisp_Object* head;
|
||||
|
||||
|
||||
try first_elem = parse_expression(text, index_in_text);
|
||||
try ret = Memory::create_lisp_object_pair(first_elem, Memory::nil);
|
||||
head = ret;
|
||||
|
||||
eat_until_code(text, index_in_text);
|
||||
while (text[*index_in_text] != ')') {
|
||||
Lisp_Object* element;
|
||||
|
||||
if (text[*index_in_text+0] == '.' &&
|
||||
text[*index_in_text+1] == ' ')
|
||||
{
|
||||
step_char(text, index_in_text, 2);
|
||||
try element = parse_expression(text, index_in_text);
|
||||
head->value.pair.rest = element;
|
||||
|
||||
eat_until_code(text, index_in_text);
|
||||
if (text[*index_in_text] != ')') {
|
||||
create_parsing_error("expected the list to end after the dotted end.");
|
||||
return nullptr;
|
||||
}
|
||||
step_char(text, index_in_text);
|
||||
return ret;
|
||||
}
|
||||
|
||||
try element = parse_expression(text, index_in_text);
|
||||
try head->value.pair.rest = Memory::create_lisp_object_pair(element, Memory::nil);
|
||||
head = head->value.pair.rest;
|
||||
eat_until_code(text, index_in_text);
|
||||
}
|
||||
step_char(text, index_in_text);
|
||||
return ret;
|
||||
}
|
||||
|
||||
proc maybe_expand_short_form(char* text, int* index_in_text) -> Lisp_Object* {
|
||||
profile_this();
|
||||
Lisp_Object* vector_sym = Memory::get_symbol("vector");
|
||||
Lisp_Object* hash_map_sym = Memory::get_symbol("hash-map");
|
||||
|
||||
Lisp_Object* quote_sym = Memory::get_symbol("quote");
|
||||
Lisp_Object* quasiquote_sym = Memory::get_symbol("quasiquote");
|
||||
Lisp_Object* unquote_sym = Memory::get_symbol("unquote");
|
||||
Lisp_Object* unquote_splicing_sym = Memory::get_symbol("unquote-splicing");
|
||||
|
||||
Lisp_Object* ret = nullptr;
|
||||
Lisp_Object* expr;
|
||||
|
||||
switch (text[*index_in_text]) {
|
||||
case '\'': {
|
||||
// quote
|
||||
step_char_and_eat_until_code(text, index_in_text);
|
||||
try expr = parse_expression(text, index_in_text);
|
||||
try ret = Memory::create_lisp_object_pair(expr, Memory::nil);
|
||||
try ret = Memory::create_lisp_object_pair(quote_sym, ret);
|
||||
} break;
|
||||
case '`': {
|
||||
// quasiquote
|
||||
step_char_and_eat_until_code(text, index_in_text);
|
||||
try expr = parse_expression(text, index_in_text);
|
||||
try ret = Memory::create_lisp_object_pair(expr, Memory::nil);
|
||||
try ret = Memory::create_lisp_object_pair(quasiquote_sym, ret);
|
||||
} break;
|
||||
case ',': {
|
||||
step_char_and_eat_until_code(text, index_in_text);
|
||||
if (text[*index_in_text] == '@') {
|
||||
// unquote-splicing
|
||||
step_char_and_eat_until_code(text, index_in_text);
|
||||
try expr = parse_expression(text, index_in_text);
|
||||
try ret = Memory::create_lisp_object_pair(expr, Memory::nil);
|
||||
try ret = Memory::create_lisp_object_pair(unquote_splicing_sym, ret);
|
||||
} else {
|
||||
// unquote
|
||||
try expr = parse_expression(text, index_in_text);
|
||||
try ret = Memory::create_lisp_object_pair(expr, Memory::nil);
|
||||
try ret = Memory::create_lisp_object_pair(unquote_sym, ret);
|
||||
}
|
||||
} break;
|
||||
case '[': {
|
||||
// vector
|
||||
try ret = parse_fancy_delimiter(text, index_in_text, '[', ']', vector_sym);
|
||||
} break;
|
||||
case '{': {
|
||||
// hashmap
|
||||
try ret = parse_fancy_delimiter(text, index_in_text, '{', '}', hash_map_sym);
|
||||
} break;
|
||||
default: break;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
proc parse_expression(char* text, int* index_in_text) -> Lisp_Object* {
|
||||
profile_this();
|
||||
Lisp_Object* ret;
|
||||
eat_until_code(text, index_in_text);
|
||||
try ret = maybe_expand_short_form(text, index_in_text);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
if (text[*index_in_text] == '(') {
|
||||
try ret = parse_list(text, index_in_text);
|
||||
} else {
|
||||
try ret = parse_atom(text, index_in_text);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
proc parse_single_expression(wchar_t* text) -> Lisp_Object* {
|
||||
char* res = wchar_to_char(text);
|
||||
defer {free(res);};
|
||||
return parse_single_expression(res);
|
||||
}
|
||||
|
||||
proc parse_single_expression(char* text) -> Lisp_Object* {
|
||||
parser_file = standard_in;
|
||||
parser_line = 1;
|
||||
parser_col = 1;
|
||||
|
||||
int index_in_text = 0;
|
||||
Lisp_Object* ret;
|
||||
try ret = parse_expression(text, &index_in_text);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
proc parse_program(String* file_name, char* text) -> Array_List<Lisp_Object*>* {
|
||||
profile_this();
|
||||
parser_file = file_name;
|
||||
parser_line = 1;
|
||||
parser_col = 0;
|
||||
|
||||
Array_List<Lisp_Object*>* program = new Array_List<Lisp_Object*>;
|
||||
|
||||
int index_in_text = 0;
|
||||
Lisp_Object* parsed;
|
||||
|
||||
eat_until_code(text, &index_in_text);
|
||||
while (text[index_in_text] != '\0') {
|
||||
try parsed = parse_expression(text, &index_in_text);
|
||||
program->append(parsed);
|
||||
eat_until_code(text, &index_in_text);
|
||||
}
|
||||
return program;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,42 +1,120 @@
|
||||
(require 'cl-lib)
|
||||
(require 'company)
|
||||
|
||||
;; "= . args"
|
||||
;; "> . args"
|
||||
;; ">= . args"
|
||||
;; "< . args"
|
||||
;; "<= . args"
|
||||
;; "+ . args"
|
||||
;; "- . args"
|
||||
;; "* . args"
|
||||
;; "/ . args"
|
||||
;; "** a b"
|
||||
;; "% a b"
|
||||
;; "get-random-between a b"
|
||||
;; "assert test"
|
||||
;; "define-syntax form (:doc \"\") . body"
|
||||
;; "define definee (:doc \"\") . body"
|
||||
;; "mutate target source"
|
||||
;; "vector-length v"
|
||||
;; "vector-ref vec idx"
|
||||
;; "vector-set! vec idx val"
|
||||
;; "set! sym val"
|
||||
;; "set-car! target source"
|
||||
;; "set-cdr! target source"
|
||||
;; "if test then_part else_part"
|
||||
;; "quote datum"
|
||||
;; "quasiquote expr"
|
||||
;; "and . args"
|
||||
;; "or . args"
|
||||
;; "not test"
|
||||
;; "lambda args . body"
|
||||
;; "apply fun args"
|
||||
;; "eval expr"
|
||||
;; "begin . args"
|
||||
;; "list . args"
|
||||
;; "pair car cdr"
|
||||
;; "first seq"
|
||||
;; "rest seq"
|
||||
;; "set-type! node new_type"
|
||||
;; "delete-type! n"
|
||||
;; "type n"
|
||||
;; "mem-reset"
|
||||
;; "info n"
|
||||
;; "show n"
|
||||
;; "addr-of var"
|
||||
;; "generate-docs file_name"
|
||||
;; "print (:sep \" \") (:end \"\\n\") . things"
|
||||
;; "read (:prompt \">\""
|
||||
;; "exit (:code 0)"
|
||||
;; "break"
|
||||
;; "memstat"
|
||||
;; "mytry try_part catch_part"
|
||||
;; "load file"
|
||||
;; "import f"
|
||||
;; "copy obj"
|
||||
;; "error type message"
|
||||
;; "symbol->keyword sym"
|
||||
;; "string->symbol str"
|
||||
;; "symbol->string sym"
|
||||
;; "concat-strings . strings"
|
||||
|
||||
(defconst slime-built-ins
|
||||
'("=" ">" ">=" "<" "<=" "+" "-" "*" "/" "**" "%"
|
||||
"assert" "define" "define-syntax" "mutate" "if"
|
||||
"quote" "quasiquote" "unquote" "unquote-splicing" "and" "or" "not" "while" "let"
|
||||
"lambda" "special-lambda" "eval" "begin" "list" "pair"
|
||||
"first" "rest" "set-type" "delete-type" "type" "info"
|
||||
"show" "addr-of" "generate-docs" "print" "read" "exit" "break" "memstat" "try"
|
||||
"load" "import" "copy" "error" "symbol->keyword" "string->symbol"
|
||||
'("=" ">" ">=" "<" "<=" "+" "-" "*" "/" "**" "%" "get-random-between"
|
||||
"assert" "define" "define-syntax" "mutate" "if" "vector-length"
|
||||
"vector-ref" "vector-set!" "set!" "set-car!" "set-cdr!"
|
||||
"quote" "quasiquote" "unquote" "unquote-splicing" "and" "or" "not" "let"
|
||||
"lambda" "apply" "eval" "begin" "list" "pair" "create-hash-map"
|
||||
"hash-map-get" "hash-map-set!" "hash-map-delete!" "vector"
|
||||
"first" "rest" "set-type!" "delete-type!" "type" "info" "mem-reset"
|
||||
"show" "addr-of" "generate-docs" "print" "read" "exit" "break" "memstat"
|
||||
"mytry" "load" "import" "copy" "error" "symbol->keyword" "string->symbol"
|
||||
"symbol->string" "concat-strings"))
|
||||
|
||||
(defun get-args (s)
|
||||
(cond
|
||||
((string= s "=") ". objects")
|
||||
((string= s ">") ". objects")
|
||||
((string= s ">=") ". objects")
|
||||
((string= s "<") ". objects")
|
||||
((string= s "<=") ". objects")
|
||||
((string= s "+") ". objects")
|
||||
((string= s "-") ". objects")
|
||||
((string= s "*") ". objects")
|
||||
((string= s "/") ". objects")
|
||||
((string= s "**") "a b")
|
||||
((string= s "%") "a b")
|
||||
((string= s "get-random-between") "a b")
|
||||
((string= s "assert") "test")
|
||||
((string= s "define") "definee (:doc \"\") . body")
|
||||
((string= s "define-syntax") "form (:doc \"\") . body")
|
||||
((string= s "mutate") "(mutate <expression> <expression>)")
|
||||
((string= s "if") "(if <test> <consequence> <alternative>)")
|
||||
(t '())))
|
||||
|
||||
(defun sample-meta (s)
|
||||
(message "%s%s%s%s"
|
||||
(propertize "(" 'face '(:foreground "orange"))
|
||||
(propertize s 'face '(:foreground "#859900"))
|
||||
(let ((args (get-args s)))
|
||||
(if args
|
||||
(concat " " args)
|
||||
""))
|
||||
(propertize ")" 'face '(:foreground "orange"))
|
||||
))
|
||||
|
||||
|
||||
|
||||
(defun my-slime-eldoc-function ()
|
||||
(let ((symbol (symbol-name (car (read (thing-at-point 'sexp))))))
|
||||
(if (member symbol slime-built-ins)
|
||||
(sample-meta symbol)
|
||||
(concat symbol " ?"))))
|
||||
|
||||
(defun sample-meta (s)
|
||||
(cond
|
||||
((string= s "=") "(= :rest <objects>)")
|
||||
((string= s ">") "(> :rest <numbers>)")
|
||||
((string= s ">=") "(>= :rest <numbers>)")
|
||||
((string= s "<") "(< :rest <numbers>)")
|
||||
((string= s "<=") "(<= :rest <numbers>)")
|
||||
((string= s "+") "(+ :rest <numbers>)")
|
||||
((string= s "-") "(- :rest <numbers>)")
|
||||
((string= s "*") "(* :rest <numbers>)")
|
||||
((string= s "/") "(/ :rest <numbers>)")
|
||||
((string= s "**") "(** <number> <exponent>)")
|
||||
((string= s "assert") "(assert <condition>)")
|
||||
((string= s "define") "(define <name-or-lambda-list> [doc-string] <expression-or-bodx>)")
|
||||
((string= s "define-syntax") "(define-syntax <name-and-lambda-list> [doc-string] <bodx>)")
|
||||
((string= s "mutate") "(mutate <expression> <expression>)")
|
||||
((string= s "if") "(if <test> <consequence> <alternative>)")
|
||||
(t "")))
|
||||
(let ((sexp-text (thing-at-point 'sexp)))
|
||||
(when sexp-text
|
||||
(let* ((sexp (read sexp-text))
|
||||
(symbol (if (listp sexp)
|
||||
(symbol-name (car sexp))
|
||||
(symbol-name sexp))))
|
||||
(when (member symbol slime-built-ins)
|
||||
(sample-meta symbol))))))
|
||||
|
||||
|
||||
(add-to-list 'auto-mode-alist '("\\.slime\\'" . slime-mode))
|
||||
@@ -124,12 +202,16 @@
|
||||
(setq-local electric-quote-string t))
|
||||
(setq imenu-case-fold-search nil)
|
||||
(add-function :before-until (local 'eldoc-documentation-function)
|
||||
#'elisp-eldoc-documentation-function)
|
||||
#'my-slime-eldoc-function)
|
||||
(add-hook 'xref-backend-functions #'elisp--xref-backend nil t)
|
||||
(setq-local project-vc-external-roots-function #'elisp-load-path-roots)
|
||||
(add-hook 'completion-at-point-functions #'elisp-completion-at-point nil 'local)
|
||||
(add-hook 'flymake-diagnostic-functions #'elisp-flymake-checkdoc nil t)
|
||||
(add-hook 'flymake-diagnostic-functions #'elisp-flymake-byte-compile nil t))
|
||||
(add-hook 'flymake-diagnostic-functions #'elisp-flymake-byte-compile nil t)
|
||||
(modify-syntax-entry ?\{ "(}")
|
||||
(modify-syntax-entry ?\} "){")
|
||||
(modify-syntax-entry ?\[ "(]")
|
||||
(modify-syntax-entry ?\] ")["))
|
||||
|
||||
|
||||
(defun company-simple-backend (command &optional arg &rest ignored)
|
||||
@@ -156,7 +238,7 @@
|
||||
|
||||
(add-hook 'slime-mode-hook
|
||||
(lambda ()
|
||||
;; (set (make-local-variable 'eldoc-documentation-function) 'my-slime-eldoc-function)
|
||||
(set (make-local-variable 'eldoc-documentation-function) 'my-slime-eldoc-function)
|
||||
(set (make-local-variable 'company-backends) '(company-sample-backend))))
|
||||
|
||||
(provide 'slime-mode)
|
||||
|
||||
@@ -945,11 +945,11 @@ embedded scripting language.
|
||||
# end:
|
||||
|
||||
#+author: Felix Brendel
|
||||
#+mail: felix.brendel@airmail.cc
|
||||
#+mail: felixbrendel@airmail.cc
|
||||
#+options: H:2 toc:nil
|
||||
|
||||
#+macro: slime_header (eval (concat "#+header: :cache yes :exports both" "\n" "#+attr_latex: :options keywordstyle=\\color{slimeKeyword}, commentstyle=\\color{slimeComment}, stringstyle=\\color{slimeString}"))
|
||||
#+macro: ditaa_header (eval (concat "#+header: :exports results :cmdline --no-separation --no-shadows"))
|
||||
#+macro: ditaa_header (eval (concat "#+header: :cache yes :exports results :cmdline --no-separation --no-shadows"))
|
||||
|
||||
#+latex_class:article
|
||||
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
* mallocs
|
||||
|
||||
|------------------------------------------+------------------------|
|
||||
| location | always freed |
|
||||
|------------------------------------------+------------------------|
|
||||
| [[file:3rd\ftb\arraylist.hpp::11]]: | yes |
|
||||
| [[file:.\3rd\ftb\bucket_allocator.hpp::17]]: | yes |
|
||||
| [[file:.\3rd\ftb\bucket_allocator.hpp::44]]: | yes |
|
||||
| [[file:.\3rd\ftb\bucket_allocator.hpp::46]]: | yes |
|
||||
| [[file:.\src\io.cpp::49]]: | yes |
|
||||
| [[file:.\src\io.cpp::164]]: | yes |
|
||||
| [[file:.\src\io.cpp::209]]: | yes |
|
||||
| [[file:.\src\io.cpp::285]]: | yes |
|
||||
| [[file:.\src\memory.cpp::158]]: | yes in free_everything |
|
||||
| [[file:.\src\platform.cpp::3]]: | yes |
|
||||
| [[file:.\src\platform.cpp::27]]: | yes |
|
||||
| [[file:.\src\platform.cpp::47]]: | yes |
|
||||
| [[file:.\src\platform.cpp::81]]: | yes |
|
||||
|------------------------------------------+------------------------|
|
||||
|
||||
* news
|
||||
|
||||
|----------------------------------+-------------------------------------------------------------------------------------|
|
||||
| location | always deleted |
|
||||
|----------------------------------+-------------------------------------------------------------------------------------|
|
||||
| [[file:.\src\eval.cpp::262]]: | ::new (&(result->positional.symbols)) Array_List<Lisp_Object*>; |
|
||||
| [[file:.\src\eval.cpp::263]]: | ::new (&(result->keyword.keywords)) Array_List<Lisp_Object*>; |
|
||||
| [[file:.\src\eval.cpp:264]]: | ::new (&(result->keyword.values)) Array_List<Lisp_Object*>; |
|
||||
| [[file:.\src\io.cpp:284]]: | // allocate a new block of memory size char (1 byte) instead of wide char (2 bytes) |
|
||||
| [[file:.\src\io.cpp:306]]: | wchar_t* wc = new wchar_t[cSize]; |
|
||||
| [[file:.\src\memory.cpp:336]]: | // node->value.lambdaWrapper = new Lambda_Wrapper(function); |
|
||||
| [[file:.\src\memory.cpp:383]]: | // inject a new array list; |
|
||||
| [[file:.\src\parse.cpp:195]]: | // better for keeping track of the encountered new lines and |
|
||||
| [[file:.\src\parse.cpp:196]]: | // characters since last new line so we can update the parser |
|
||||
| [[file:.\src\parse.cpp:208]]: | /* new col = (count chars since last \n) + 1 */ |
|
||||
|----------------------------------+-------------------------------------------------------------------------------------|
|
||||
@@ -1,149 +0,0 @@
|
||||
nconst,character,start,end
|
||||
nm0221046,Actor2,53000,237000
|
||||
nm0330687,Actor1,53000,237000
|
||||
nm0569501,Narrator,64000,237000
|
||||
nm0932891,Actor3,72000,237000
|
||||
nm3068638,Actor1 - Age 12,81000,237000
|
||||
nm2788212,Actor2 - Age 12,97000,237000
|
||||
nm1631269,Actor4,240000,424000
|
||||
nm0034309,Actor5,258000,424000
|
||||
nm1131557,Actor6,258000,424000
|
||||
nm0330687,Actor1,273000,424000
|
||||
nm0221046,Actor2,305000,424000
|
||||
nm0034309,Actor5,425000,558000
|
||||
nm0329622,Office Worker,427000,558000
|
||||
nm0330687,Actor1,427000,558000
|
||||
nm0932891,Actor3,427000,558000
|
||||
nm0381763,Actor7,433000,558000
|
||||
nm0803331,Usher,433000,558000
|
||||
nm0163988,Actor8,443000,558000
|
||||
nm0221046,Actor2,449000,558000
|
||||
nm0569501,Narrator,472000,558000
|
||||
nm0221046,Actor2,560000,647000
|
||||
nm0034309,Actor5,561000,647000
|
||||
nm0330687,Actor1,564000,647000
|
||||
nm0163988,Actor8,650000,813000
|
||||
nm0735538,Employee #1,650000,813000
|
||||
nm0330687,Actor1,652000,813000
|
||||
nm0006970,Actor9,654000,813000
|
||||
nm0803331,Usher,656000,813000
|
||||
nm0221046,Actor2,660000,813000
|
||||
nm0034309,Actor5,661000,813000
|
||||
nm0932891,Actor3,699000,813000
|
||||
nm0330687,Actor1,815000,1013000
|
||||
nm1131557,Actor6,815000,1013000
|
||||
nm0221046,Actor2,821000,1013000
|
||||
nm1631269,Actor4,865000,1013000
|
||||
nm0034309,Actor5,888000,1013000
|
||||
nm0034309,Actor5,1014000,1119000
|
||||
nm0330687,Actor1,1014000,1119000
|
||||
nm0221046,Actor2,1048000,1119000
|
||||
nm0330687,Actor1,1119000,1348000
|
||||
nm0034309,Actor5,1126000,1348000
|
||||
nm0221046,Actor2,1126000,1348000
|
||||
nm0006970,Actor9,1279000,1348000
|
||||
nm0330687,Actor1,1348000,1469000
|
||||
nm0221046,Actor2,1348000,1469000
|
||||
nm0034309,Actor5,1348000,1469000
|
||||
nm0221046/trivia,nt0447626,1377000,1469000
|
||||
nm0330687,Actor1,1470000,1619000
|
||||
nm0221046,Actor2,1471000,1619000
|
||||
nm1131557,Actor6,1547000,1619000
|
||||
nm0330687,Actor1,1622000,1839000
|
||||
nm0221046,Actor2,1627000,1839000
|
||||
nm2124215,Actor10,1752000,1839000
|
||||
nm0330687,Actor1,1839000,2006000
|
||||
nm0221046,Actor2,1839000,2006000
|
||||
nm0000148,Self,1910000,2006000
|
||||
nm0330687,Actor1,2008000,2066000
|
||||
nm0163988,Actor8,2019000,2066000
|
||||
nm1304328,New Secretary,2019000,2066000
|
||||
nm0034309,Actor5,2025000,2066000
|
||||
nm0221046,Actor2,2052000,2066000
|
||||
nm0034309,Actor5,2068000,2293000
|
||||
nm0221046,Actor2,2068000,2293000
|
||||
nm0330687,Actor1,2074000,2293000
|
||||
nm0221046,Actor2,2295000,2482000
|
||||
nm0330687,Actor1,2295000,2482000
|
||||
nm0569501,Narrator,2315000,2482000
|
||||
nm1131557,Actor6,2433000,2482000
|
||||
nm0034309,Actor5,2437000,2482000
|
||||
nm0330687,Actor1,2483000,2626000
|
||||
nm1631269,Actor4,2483000,2626000
|
||||
nm0330687/trivia,nt0127470,2539000,2626000
|
||||
nm0221046,Actor2,2557000,2626000
|
||||
nm0221046,Actor2,2630000,2853000
|
||||
nm0330687,Actor1,2630000,2853000
|
||||
nm1071303,Douche,2656000,2853000
|
||||
nm3300012,Girl on the Stairs,2835000,2853000
|
||||
nm0330687,Actor1,2853000,2984000
|
||||
nm0221046,Actor2,2861000,2984000
|
||||
nm0221046/trivia,nt0085270,2908000,2984000
|
||||
nm0221046,Actor2,2985000,3072000
|
||||
nm0330687,Actor1,2987000,3072000
|
||||
nm2622767,Actor11,3050000,3072000
|
||||
nm0330687,Actor1,3072000,3143000
|
||||
nm0221046,Actor2,3073000,3143000
|
||||
nm0221046,Actor2,3148000,3278000
|
||||
nm0330687,Actor1,3148000,3278000
|
||||
nm0897096,Actor12,3194000,3278000
|
||||
nm0533467,Actor13,3209000,3278000
|
||||
nm3505105,Actor14,3249000,3278000
|
||||
nm1304328,New Secretary,3279000,3406000
|
||||
nm0330687,Actor1,3282000,3406000
|
||||
nm0163988,Actor8,3289000,3406000
|
||||
nm0330687,Actor1,3410000,3625000
|
||||
nm0034309,Actor5,3413000,3625000
|
||||
nm0932891,Actor3,3414000,3625000
|
||||
nm0735538,Employee #1,3438000,3625000
|
||||
nm0006970,Actor9,3443000,3625000
|
||||
nm0381763,Actor7,3443000,3625000
|
||||
nm0281068,Actor15,3446000,3625000
|
||||
nm0221046,Actor2,3450000,3625000
|
||||
nm0715377,Bus Driver,3483000,3625000
|
||||
nm1036340,Actor16,3488000,3625000
|
||||
nm0330687,Actor1,3629000,3841000
|
||||
nm0034309,Actor5,3642000,3841000
|
||||
nm0221046,Actor2,3677000,3841000
|
||||
nm0006970,Actor9,3827000,3841000
|
||||
nm2306384,Minister,3827000,3841000
|
||||
nm3505110,Actor9's New Husband,3827000,3841000
|
||||
nm0221046,Actor2,3841000,3984000
|
||||
nm0006970,Actor9,3847000,3984000
|
||||
nm3505110,Actor9's New Husband,3847000,3984000
|
||||
nm0330687,Actor1,3851000,3984000
|
||||
nm3505106,Wedding Singer,3892000,3984000
|
||||
nm1131557,Actor6,3984000,4054000
|
||||
nm0034309,Actor5,3999000,4054000
|
||||
nm0163988,Actor8,4009000,4054000
|
||||
nm0330687,Actor1,4045000,4054000
|
||||
nm0330687,Actor1,4054000,4249000
|
||||
nm0569501,Narrator,4066000,4249000
|
||||
nm0221046,Actor2,4089000,4249000
|
||||
nm1656122,Partygoer,4134000,4249000
|
||||
nm1497668,Rooftop Guy #1,4168000,4249000
|
||||
nm3107009,Another Partygoer,4194000,4249000
|
||||
nm0330687,Actor1,4254000,4305000
|
||||
nm0330687,Actor1,4305000,4514000
|
||||
nm0034309,Actor5,4305000,4514000
|
||||
nm0381763,Actor7,4310000,4514000
|
||||
nm0281068,Actor10,4328000,4514000
|
||||
nm0803331,Usher,4328000,4514000
|
||||
nm0163988,Actor8,4334000,4514000
|
||||
nm0329622,Office Worker,4334000,4514000
|
||||
nm0330687/trivia,nt0127468,4362000,4514000
|
||||
nm0330687,Actor1,4516000,4740000
|
||||
nm1631269,Actor4,4520000,4740000
|
||||
nm1631269/trivia,nt0787786,4533000,4740000
|
||||
nm0221046,Actor2,4583000,4740000
|
||||
nm1071303,Douche,4593000,4740000
|
||||
nm0000163,Ben,4620000,4740000
|
||||
nm0001684,Elaine,4620000,4740000
|
||||
nm0330687,Actor1,4743000,4882000
|
||||
nm0330687/trivia,nt0920755,4751000,4882000
|
||||
nm0221046,Actor2,4851000,4882000
|
||||
nm0330687,Actor1,4885000,5228000
|
||||
nm0221046,Actor2,4907000,5228000
|
||||
nm0330687,Actor1,5230000,5426000
|
||||
nm0569501,Narrator,5240000,5426000
|
||||
nm1310368,Girl at interview,5263000,5426000
|
||||
|
@@ -1,27 +0,0 @@
|
||||
import plotly.figure_factory as ff
|
||||
|
||||
df = [
|
||||
{"Task": "call depth 4", "Start": 9321, "Finish": 9326},
|
||||
{"Task": "call depth 3", "Start": 9288, "Finish": 9311},
|
||||
{"Task": "call depth 2", "Start": 9126, "Finish": 9141},
|
||||
{"Task": "call depth 1", "Start": 9088, "Finish": 9099},
|
||||
{"Task": "call depth 0", "Start": 9076, "Finish": 9337},
|
||||
{"Task": "call depth 1", "Start": 9109, "Finish": 9179},
|
||||
{"Task": "call depth 1", "Start": 9194, "Finish": 9334},
|
||||
{"Task": "call depth 2", "Start": 9206, "Finish": 9231},
|
||||
{"Task": "call depth 2", "Start": 9237, "Finish": 9269},
|
||||
{"Task": "call depth 2", "Start": 9274, "Finish": 9331},
|
||||
{"Task": "call depth 3", "Start": 9255, "Finish": 9266},
|
||||
{"Task": "call depth 3", "Start": 9279, "Finish": 9284},
|
||||
{"Task": "call depth 4", "Start": 9299, "Finish": 9309},
|
||||
{"Task": "call depth 3", "Start": 9316, "Finish": 9329},
|
||||
]
|
||||
|
||||
fig = ff.create_gantt(df, group_tasks=True, bar_width=0.4, width=1700, height=720)
|
||||
|
||||
fig["data"][0].update(text="apply_arguments_to_function", hoverinfo="text+x+y")
|
||||
fig["data"][1].update(text="apply_arguments_to_function", hoverinfo="text+x+y")
|
||||
fig["data"][2].update(text="apply_arguments_to_function", hoverinfo="text+x+y")
|
||||
|
||||
|
||||
fig.show()
|
||||
@@ -0,0 +1,63 @@
|
||||
import json
|
||||
import csv
|
||||
import sys
|
||||
|
||||
class FancyFloat(float):
|
||||
def __repr__(self):
|
||||
return format(Decimal(self), "f")
|
||||
|
||||
class JsonRpcEncoder(json.JSONEncoder):
|
||||
def decimalize(self, val):
|
||||
if isinstance(val, dict):
|
||||
return {k:self.decimalize(v) for k,v in val.items()}
|
||||
|
||||
if isinstance(val, (list, tuple)):
|
||||
return type(val)(self.decimalize(v) for v in val)
|
||||
|
||||
if isinstance(val, float):
|
||||
return FancyFloat(val)
|
||||
|
||||
return val
|
||||
|
||||
def encode(self, val):
|
||||
return super().encode(self.decimalize(val))
|
||||
|
||||
if len(sys.argv) == 1:
|
||||
print("No file was provided")
|
||||
else:
|
||||
trace_events = []
|
||||
call_stack = []
|
||||
with open(sys.argv[1], "r") as in_file:
|
||||
csv_reader = csv.reader(in_file, delimiter=',')
|
||||
pf = 1
|
||||
first_line = True
|
||||
for line in csv_reader:
|
||||
if first_line:
|
||||
pf = float(line[0]) / 1000
|
||||
first_line = False
|
||||
continue
|
||||
if line[0] == "->":
|
||||
call_stack.append(line)
|
||||
elif line[0] == "<-":
|
||||
call = call_stack.pop()
|
||||
dict = {
|
||||
"pid": 1,
|
||||
"tid": 1,
|
||||
"ts" : float(call[1]),
|
||||
"dur": (float(line[1])-float(call[1])),
|
||||
"ph" : "X",
|
||||
"name": call[2],
|
||||
"args": {
|
||||
"file": f"({call[3]}:{call[4]})",
|
||||
}
|
||||
}
|
||||
if call[5]:
|
||||
dict["args"]["info1"] = call[5]
|
||||
if call[6]:
|
||||
dict["args"]["info2"] = call[6]
|
||||
trace_events.append(dict)
|
||||
else:
|
||||
print("invalid syntax")
|
||||
break
|
||||
with open("out.json", "w") as out_file:
|
||||
out_file.write(json.dumps({"traceEvents": trace_events}))
|
||||
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2018 Jamie Wong
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -0,0 +1,2 @@
|
||||
This is a self-contained release of https://github.com/jlfwong/speedscope.
|
||||
To use it, open index.html in Chrome or Firefox.
|
||||
|
After Width: | Height: | Size: 679 B |
|
After Width: | Height: | Size: 1.5 KiB |
@@ -0,0 +1,324 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/draft-06/schema#",
|
||||
"definitions": {
|
||||
"FileFormat.Profile": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/FileFormat.EventedProfile"
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/FileFormat.SampledProfile"
|
||||
}
|
||||
]
|
||||
},
|
||||
"FileFormat.File": {
|
||||
"title": "FileFormat.File",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"$schema": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"https://www.speedscope.app/file-format-schema.json"
|
||||
],
|
||||
"title": "$schema"
|
||||
},
|
||||
"shared": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"frames": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/FileFormat.Frame"
|
||||
},
|
||||
"title": "frames"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"frames"
|
||||
],
|
||||
"title": "shared"
|
||||
},
|
||||
"profiles": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/FileFormat.EventedProfile"
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/FileFormat.SampledProfile"
|
||||
}
|
||||
]
|
||||
},
|
||||
"title": "profiles"
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"title": "name"
|
||||
},
|
||||
"activeProfileIndex": {
|
||||
"type": "number",
|
||||
"title": "activeProfileIndex"
|
||||
},
|
||||
"exporter": {
|
||||
"type": "string",
|
||||
"title": "exporter"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"$schema",
|
||||
"profiles",
|
||||
"shared"
|
||||
]
|
||||
},
|
||||
"FileFormat.Frame": {
|
||||
"title": "FileFormat.Frame",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"title": "name"
|
||||
},
|
||||
"file": {
|
||||
"type": "string",
|
||||
"title": "file"
|
||||
},
|
||||
"line": {
|
||||
"type": "number",
|
||||
"title": "line"
|
||||
},
|
||||
"col": {
|
||||
"type": "number",
|
||||
"title": "col"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"name"
|
||||
]
|
||||
},
|
||||
"FileFormat.ProfileType": {
|
||||
"title": "FileFormat.ProfileType",
|
||||
"enum": [
|
||||
"evented",
|
||||
"sampled"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"FileFormat.IProfile": {
|
||||
"title": "FileFormat.IProfile",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"type": {
|
||||
"$ref": "#/definitions/FileFormat.ProfileType",
|
||||
"title": "type"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"type"
|
||||
]
|
||||
},
|
||||
"FileFormat.EventedProfile": {
|
||||
"title": "FileFormat.EventedProfile",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"type": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"evented"
|
||||
],
|
||||
"title": "type"
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"title": "name"
|
||||
},
|
||||
"unit": {
|
||||
"$ref": "#/definitions/FileFormat.ValueUnit",
|
||||
"title": "unit"
|
||||
},
|
||||
"startValue": {
|
||||
"type": "number",
|
||||
"title": "startValue"
|
||||
},
|
||||
"endValue": {
|
||||
"type": "number",
|
||||
"title": "endValue"
|
||||
},
|
||||
"events": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/OpenFrameEvent"
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/CloseFrameEvent"
|
||||
}
|
||||
]
|
||||
},
|
||||
"title": "events"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"endValue",
|
||||
"events",
|
||||
"name",
|
||||
"startValue",
|
||||
"type",
|
||||
"unit"
|
||||
]
|
||||
},
|
||||
"SampledStack": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "number"
|
||||
}
|
||||
},
|
||||
"FileFormat.SampledProfile": {
|
||||
"title": "FileFormat.SampledProfile",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"type": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"sampled"
|
||||
],
|
||||
"title": "type"
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"title": "name"
|
||||
},
|
||||
"unit": {
|
||||
"$ref": "#/definitions/FileFormat.ValueUnit",
|
||||
"title": "unit"
|
||||
},
|
||||
"startValue": {
|
||||
"type": "number",
|
||||
"title": "startValue"
|
||||
},
|
||||
"endValue": {
|
||||
"type": "number",
|
||||
"title": "endValue"
|
||||
},
|
||||
"samples": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "number"
|
||||
}
|
||||
},
|
||||
"title": "samples"
|
||||
},
|
||||
"weights": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "number"
|
||||
},
|
||||
"title": "weights"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"endValue",
|
||||
"name",
|
||||
"samples",
|
||||
"startValue",
|
||||
"type",
|
||||
"unit",
|
||||
"weights"
|
||||
]
|
||||
},
|
||||
"FileFormat.ValueUnit": {
|
||||
"title": "FileFormat.ValueUnit",
|
||||
"enum": [
|
||||
"bytes",
|
||||
"microseconds",
|
||||
"milliseconds",
|
||||
"nanoseconds",
|
||||
"none",
|
||||
"seconds"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"FileFormat.EventType": {
|
||||
"title": "FileFormat.EventType",
|
||||
"enum": [
|
||||
"C",
|
||||
"O"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"IEvent": {
|
||||
"title": "IEvent",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"type": {
|
||||
"$ref": "#/definitions/FileFormat.EventType",
|
||||
"title": "type"
|
||||
},
|
||||
"at": {
|
||||
"type": "number",
|
||||
"title": "at"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"at",
|
||||
"type"
|
||||
]
|
||||
},
|
||||
"OpenFrameEvent": {
|
||||
"title": "OpenFrameEvent",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"type": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"O"
|
||||
],
|
||||
"title": "type"
|
||||
},
|
||||
"frame": {
|
||||
"type": "number",
|
||||
"title": "frame"
|
||||
},
|
||||
"at": {
|
||||
"type": "number",
|
||||
"title": "at"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"at",
|
||||
"frame",
|
||||
"type"
|
||||
]
|
||||
},
|
||||
"CloseFrameEvent": {
|
||||
"title": "CloseFrameEvent",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"type": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"C"
|
||||
],
|
||||
"title": "type"
|
||||
},
|
||||
"frame": {
|
||||
"type": "number",
|
||||
"title": "frame"
|
||||
},
|
||||
"at": {
|
||||
"type": "number",
|
||||
"title": "at"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"at",
|
||||
"frame",
|
||||
"type"
|
||||
]
|
||||
}
|
||||
},
|
||||
"$ref": "#/definitions/FileFormat.File"
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>speedscope</title> <link href="https://fonts.googleapis.com/css?family=Source+Code+Pro" rel="stylesheet"> <script></script> <link rel="stylesheet" href="reset.7ae984ff.css"> <link rel="icon" type="image/png" sizes="32x32" href="favicon-32x32.c68a0a43.png"> <link rel="icon" type="image/png" sizes="16x16" href="favicon-16x16.d02bd490.png"> </head> <body> <script src="speedscope.f741b731.js"></script> </body> </html>
|
||||
@@ -0,0 +1,199 @@
|
||||
java;read;check_events_[k];hypercall_page_[k] 1
|
||||
java;start_thread;java_start;GCTaskThread::run;ScavengeRootsTask::do_it;ClassLoaderDataGraph::oops_do;ClassLoaderData::oops_do;PSScavengeKlassClosure::do_klass 1
|
||||
java;start_thread;java_start;GCTaskThread::run;StealTask::do_it;PSPromotionManager::drain_stacks_depth;oopDesc* PSPromotionManager::copy_to_survivor_space<false>;InstanceKlass::oop_push_contents 1
|
||||
java;start_thread;java_start;GCTaskThread::run;StealTask::do_it;ParallelTaskTerminator::offer_termination 5
|
||||
java;start_thread;java_start;GCTaskThread::run;StealTask::do_it;SpinPause 7
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/buffer/AbstractByteBufAllocator:.directBuffer_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j] 2
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/AbstractReferenceCountedByteBuf:.release_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];io/netty/buffer/PooledByteBuf:.internalNioBuffer_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/NativeThread:.current_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j]; 3
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];Java_sun_nio_ch_FileDispatcherImpl_write0 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;sys_write_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];fget_light_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];__srcu_read_lock_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];do_sync_write_[k];sock_aio_write_[k];do_sock_write.isra.10_[k];inet_sendmsg_[k];__tcp_push_pending_frames_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];do_sync_write_[k];sock_aio_write_[k];do_sock_write.isra.10_[k];inet_sendmsg_[k];tcp_sendmsg_[k] 2
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];do_sync_write_[k];sock_aio_write_[k];do_sock_write.isra.10_[k];inet_sendmsg_[k];tcp_sendmsg_[k];__tcp_push_pending_frames_[k];tcp_write_xmit_[k];ktime_get_real_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];do_sync_write_[k];sock_aio_write_[k];do_sock_write.isra.10_[k];inet_sendmsg_[k];tcp_sendmsg_[k];__tcp_push_pending_frames_[k];tcp_write_xmit_[k];skb_clone_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];do_sync_write_[k];sock_aio_write_[k];do_sock_write.isra.10_[k];inet_sendmsg_[k];tcp_sendmsg_[k];__tcp_push_pending_frames_[k];tcp_write_xmit_[k];tcp_set_skb_tso_segs_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];do_sync_write_[k];sock_aio_write_[k];do_sock_write.isra.10_[k];inet_sendmsg_[k];tcp_sendmsg_[k];__tcp_push_pending_frames_[k];tcp_write_xmit_[k];tcp_transmit_skb_[k] 2
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];do_sync_write_[k];sock_aio_write_[k];do_sock_write.isra.10_[k];inet_sendmsg_[k];tcp_sendmsg_[k];__tcp_push_pending_frames_[k];tcp_write_xmit_[k];tcp_transmit_skb_[k];ip_queue_xmit_[k];ip_local_out_[k];ip_output_[k];ip_finish_output_[k];dev_hard_start_xmit_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];do_sync_write_[k];sock_aio_write_[k];do_sock_write.isra.10_[k];inet_sendmsg_[k];tcp_sendmsg_[k];__tcp_push_pending_frames_[k];tcp_write_xmit_[k];tcp_transmit_skb_[k];ip_queue_xmit_[k];ip_local_out_[k];ip_output_[k];ip_finish_output_[k];dev_pick_tx_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];do_sync_write_[k];sock_aio_write_[k];do_sock_write.isra.10_[k];inet_sendmsg_[k];tcp_sendmsg_[k];__tcp_push_pending_frames_[k];tcp_write_xmit_[k];tcp_transmit_skb_[k];ip_queue_xmit_[k];ip_local_out_[k];ip_output_[k];ip_finish_output_[k];dev_queue_xmit_[k];dev_hard_start_xmit_[k];dev_queue_xmit_nit_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];do_sync_write_[k];sock_aio_write_[k];do_sock_write.isra.10_[k];inet_sendmsg_[k];tcp_sendmsg_[k];__tcp_push_pending_frames_[k];tcp_write_xmit_[k];tcp_transmit_skb_[k];ip_queue_xmit_[k];ip_local_out_[k];ip_output_[k];ip_finish_output_[k];dev_queue_xmit_[k];dev_hard_start_xmit_[k];loopback_xmit_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];do_sync_write_[k];sock_aio_write_[k];do_sock_write.isra.10_[k];inet_sendmsg_[k];tcp_sendmsg_[k];__tcp_push_pending_frames_[k];tcp_write_xmit_[k];tcp_transmit_skb_[k];ip_queue_xmit_[k];ip_local_out_[k];ip_output_[k];ip_finish_output_[k];dev_queue_xmit_[k];dev_hard_start_xmit_[k];loopback_xmit_[k];netif_rx_[k];netif_rx.part.82_[k];xen_restore_fl_direct_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];do_sync_write_[k];sock_aio_write_[k];do_sock_write.isra.10_[k];inet_sendmsg_[k];tcp_sendmsg_[k];__tcp_push_pending_frames_[k];tcp_write_xmit_[k];tcp_transmit_skb_[k];ip_queue_xmit_[k];ip_local_out_[k];ip_output_[k];ip_finish_output_[k];dev_queue_xmit_[k];dev_hard_start_xmit_[k];loopback_xmit_[k];netif_rx_[k];netif_rx.part.82_[k];xen_restore_fl_direct_end_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];do_sync_write_[k];sock_aio_write_[k];do_sock_write.isra.10_[k];inet_sendmsg_[k];tcp_sendmsg_[k];__tcp_push_pending_frames_[k];tcp_write_xmit_[k];tcp_transmit_skb_[k];ip_queue_xmit_[k];ip_local_out_[k];ip_output_[k];ip_finish_output_[k];dev_queue_xmit_[k];local_bh_enable_[k];do_softirq_[k];call_softirq_[k];__do_softirq_[k];net_rx_action_[k];dma_issue_pending_all_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];do_sync_write_[k];sock_aio_write_[k];do_sock_write.isra.10_[k];inet_sendmsg_[k];tcp_sendmsg_[k];__tcp_push_pending_frames_[k];tcp_write_xmit_[k];tcp_transmit_skb_[k];ip_queue_xmit_[k];ip_local_out_[k];ip_output_[k];ip_finish_output_[k];dev_queue_xmit_[k];local_bh_enable_[k];do_softirq_[k];call_softirq_[k];__do_softirq_[k];net_rx_action_[k];process_backlog_[k];__netif_receive_skb_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];do_sync_write_[k];sock_aio_write_[k];do_sock_write.isra.10_[k];inet_sendmsg_[k];tcp_sendmsg_[k];__tcp_push_pending_frames_[k];tcp_write_xmit_[k];tcp_transmit_skb_[k];ip_queue_xmit_[k];ip_local_out_[k];ip_output_[k];ip_finish_output_[k];dev_queue_xmit_[k];local_bh_enable_[k];do_softirq_[k];call_softirq_[k];__do_softirq_[k];net_rx_action_[k];process_backlog_[k];__netif_receive_skb_[k];ip_rcv_[k];ip_rcv_finish_[k];ip_local_deliver_[k];ip_local_deliver_finish_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];do_sync_write_[k];sock_aio_write_[k];do_sock_write.isra.10_[k];inet_sendmsg_[k];tcp_sendmsg_[k];__tcp_push_pending_frames_[k];tcp_write_xmit_[k];tcp_transmit_skb_[k];ip_queue_xmit_[k];ip_local_out_[k];ip_output_[k];ip_finish_output_[k];dev_queue_xmit_[k];local_bh_enable_[k];do_softirq_[k];call_softirq_[k];__do_softirq_[k];net_rx_action_[k];process_backlog_[k];__netif_receive_skb_[k];ip_rcv_[k];ip_rcv_finish_[k];ip_local_deliver_[k];ip_local_deliver_finish_[k];tcp_v4_rcv_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];do_sync_write_[k];sock_aio_write_[k];do_sock_write.isra.10_[k];inet_sendmsg_[k];tcp_sendmsg_[k];__tcp_push_pending_frames_[k];tcp_write_xmit_[k];tcp_transmit_skb_[k];ip_queue_xmit_[k];ip_local_out_[k];ip_output_[k];ip_finish_output_[k];dev_queue_xmit_[k];local_bh_enable_[k];do_softirq_[k];call_softirq_[k];__do_softirq_[k];net_rx_action_[k];process_backlog_[k];__netif_receive_skb_[k];ip_rcv_[k];ip_rcv_finish_[k];ip_local_deliver_[k];ip_local_deliver_finish_[k];tcp_v4_rcv_[k];__inet_lookup_established_[k] 3
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];do_sync_write_[k];sock_aio_write_[k];do_sock_write.isra.10_[k];inet_sendmsg_[k];tcp_sendmsg_[k];__tcp_push_pending_frames_[k];tcp_write_xmit_[k];tcp_transmit_skb_[k];ip_queue_xmit_[k];ip_local_out_[k];ip_output_[k];ip_finish_output_[k];dev_queue_xmit_[k];local_bh_enable_[k];do_softirq_[k];call_softirq_[k];__do_softirq_[k];net_rx_action_[k];process_backlog_[k];__netif_receive_skb_[k];ip_rcv_[k];ip_rcv_finish_[k];ip_local_deliver_[k];ip_local_deliver_finish_[k];tcp_v4_rcv_[k];tcp_v4_do_rcv_[k];tcp_event_data_recv_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];do_sync_write_[k];sock_aio_write_[k];do_sock_write.isra.10_[k];inet_sendmsg_[k];tcp_sendmsg_[k];__tcp_push_pending_frames_[k];tcp_write_xmit_[k];tcp_transmit_skb_[k];ip_queue_xmit_[k];ip_local_out_[k];ip_output_[k];ip_finish_output_[k];dev_queue_xmit_[k];local_bh_enable_[k];do_softirq_[k];call_softirq_[k];__do_softirq_[k];net_rx_action_[k];process_backlog_[k];__netif_receive_skb_[k];ip_rcv_[k];ip_rcv_finish_[k];ip_local_deliver_[k];ip_local_deliver_finish_[k];tcp_v4_rcv_[k];tcp_v4_do_rcv_[k];tcp_rcv_established_[k];sock_def_readable_[k];__wake_up_sync_key_[k];check_events_[k];hypercall_page_[k] 19
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];do_sync_write_[k];sock_aio_write_[k];do_sock_write.isra.10_[k];inet_sendmsg_[k];tcp_sendmsg_[k];__tcp_push_pending_frames_[k];tcp_write_xmit_[k];tcp_transmit_skb_[k];ip_queue_xmit_[k];ip_local_out_[k];ip_output_[k];ip_finish_output_[k];dev_queue_xmit_[k];local_bh_enable_[k];do_softirq_[k];call_softirq_[k];__do_softirq_[k];net_rx_action_[k];process_backlog_[k];__netif_receive_skb_[k];ip_rcv_[k];ip_rcv_finish_[k];ip_local_deliver_[k];ip_local_deliver_finish_[k];tcp_v4_rcv_[k];tcp_v4_do_rcv_[k];tcp_rcv_established_[k];tcp_ack_[k] 3
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];do_sync_write_[k];sock_aio_write_[k];do_sock_write.isra.10_[k];inet_sendmsg_[k];tcp_sendmsg_[k];__tcp_push_pending_frames_[k];tcp_write_xmit_[k];tcp_transmit_skb_[k];ip_queue_xmit_[k];ip_local_out_[k];ip_output_[k];ip_finish_output_[k];dev_queue_xmit_[k];local_bh_enable_[k];do_softirq_[k];call_softirq_[k];__do_softirq_[k];net_rx_action_[k];process_backlog_[k];__netif_receive_skb_[k];ip_rcv_[k];ip_rcv_finish_[k];ip_local_deliver_[k];ip_local_deliver_finish_[k];tcp_v4_rcv_[k];tcp_v4_do_rcv_[k];tcp_rcv_established_[k];tcp_ack_[k];tcp_clean_rtx_queue_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];do_sync_write_[k];sock_aio_write_[k];do_sock_write.isra.10_[k];inet_sendmsg_[k];tcp_sendmsg_[k];__tcp_push_pending_frames_[k];tcp_write_xmit_[k];tcp_transmit_skb_[k];ip_queue_xmit_[k];ip_local_out_[k];ip_output_[k];ip_finish_output_[k];dev_queue_xmit_[k];local_bh_enable_[k];do_softirq_[k];call_softirq_[k];__do_softirq_[k];net_rx_action_[k];process_backlog_[k];__netif_receive_skb_[k];ip_rcv_[k];ip_rcv_finish_[k];ip_local_deliver_[k];ip_local_deliver_finish_[k];tcp_v4_rcv_[k];tcp_v4_do_rcv_[k];tcp_rcv_established_[k];tcp_ack_[k];tcp_clean_rtx_queue_[k];bictcp_acked_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];do_sync_write_[k];sock_aio_write_[k];do_sock_write.isra.10_[k];inet_sendmsg_[k];tcp_sendmsg_[k];__tcp_push_pending_frames_[k];tcp_write_xmit_[k];tcp_transmit_skb_[k];ip_queue_xmit_[k];ip_local_out_[k];ip_output_[k];ip_finish_output_[k];dev_queue_xmit_[k];local_bh_enable_[k];do_softirq_[k];call_softirq_[k];__do_softirq_[k];net_rx_action_[k];process_backlog_[k];__netif_receive_skb_[k];ip_rcv_[k];ip_rcv_finish_[k];ip_local_deliver_[k];ip_local_deliver_finish_[k];tcp_v4_rcv_[k];tcp_v4_do_rcv_[k];tcp_rcv_established_[k];tcp_ack_[k];tcp_clean_rtx_queue_[k];ktime_get_real_[k];getnstimeofday_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];do_sync_write_[k];sock_aio_write_[k];do_sock_write.isra.10_[k];inet_sendmsg_[k];tcp_sendmsg_[k];__tcp_push_pending_frames_[k];tcp_write_xmit_[k];tcp_transmit_skb_[k];ip_queue_xmit_[k];ip_local_out_[k];ip_output_[k];ip_finish_output_[k];dev_queue_xmit_[k];local_bh_enable_[k];do_softirq_[k];call_softirq_[k];__do_softirq_[k];net_rx_action_[k];process_backlog_[k];__netif_receive_skb_[k];ip_rcv_[k];ip_rcv_finish_[k];ip_local_deliver_[k];ip_local_deliver_finish_[k];tcp_v4_rcv_[k];tcp_v4_do_rcv_[k];tcp_rcv_established_[k];tcp_ack_[k];tcp_clean_rtx_queue_[k];ktime_get_real_[k];getnstimeofday_[k];xen_clocksource_get_cycles_[k];xen_clocksource_read_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];do_sync_write_[k];sock_aio_write_[k];do_sock_write.isra.10_[k];inet_sendmsg_[k];tcp_sendmsg_[k];__tcp_push_pending_frames_[k];tcp_write_xmit_[k];tcp_transmit_skb_[k];ip_queue_xmit_[k];ip_local_out_[k];ip_output_[k];ip_finish_output_[k];dev_queue_xmit_[k];local_bh_enable_[k];do_softirq_[k];call_softirq_[k];__do_softirq_[k];net_rx_action_[k];process_backlog_[k];__netif_receive_skb_[k];ip_rcv_[k];ip_rcv_finish_[k];ip_local_deliver_[k];ip_local_deliver_finish_[k];tcp_v4_rcv_[k];tcp_v4_do_rcv_[k];tcp_rcv_established_[k];tcp_ack_[k];tcp_clean_rtx_queue_[k];tcp_rtt_estimator_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];do_sync_write_[k];sock_aio_write_[k];do_sock_write.isra.10_[k];inet_sendmsg_[k];tcp_sendmsg_[k];__tcp_push_pending_frames_[k];tcp_write_xmit_[k];tcp_transmit_skb_[k];ip_queue_xmit_[k];ip_local_out_[k];ip_output_[k];ip_finish_output_[k];dev_queue_xmit_[k];local_bh_enable_[k];do_softirq_[k];call_softirq_[k];__do_softirq_[k];net_rx_action_[k];process_backlog_[k];__netif_receive_skb_[k];ip_rcv_[k];ip_rcv_finish_[k];ip_local_deliver_[k];ip_local_deliver_finish_[k];tcp_v4_rcv_[k];tcp_v4_do_rcv_[k];tcp_rcv_established_[k];tcp_ack_[k];tcp_clean_rtx_queue_[k];tcp_valid_rtt_meas_[k];tcp_rtt_estimator_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];do_sync_write_[k];sock_aio_write_[k];do_sock_write.isra.10_[k];inet_sendmsg_[k];tcp_sendmsg_[k];__tcp_push_pending_frames_[k];tcp_write_xmit_[k];tcp_transmit_skb_[k];ip_queue_xmit_[k];ip_local_out_[k];ip_output_[k];ip_finish_output_[k];dev_queue_xmit_[k];local_bh_enable_[k];do_softirq_[k];call_softirq_[k];__do_softirq_[k];net_rx_action_[k];process_backlog_[k];__netif_receive_skb_[k];ip_rcv_[k];ip_rcv_finish_[k];ip_local_deliver_finish_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];do_sync_write_[k];sock_aio_write_[k];do_sock_write.isra.10_[k];inet_sendmsg_[k];tcp_sendmsg_[k];__tcp_push_pending_frames_[k];tcp_write_xmit_[k];tcp_transmit_skb_[k];ip_queue_xmit_[k];ip_local_out_[k];ip_output_[k];ip_finish_output_[k];dev_queue_xmit_[k];local_bh_enable_[k];do_softirq_[k];call_softirq_[k];rcu_bh_qs_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];do_sync_write_[k];sock_aio_write_[k];do_sock_write.isra.10_[k];inet_sendmsg_[k];tcp_sendmsg_[k];__tcp_push_pending_frames_[k];tcp_write_xmit_[k];tcp_transmit_skb_[k];ip_queue_xmit_[k];ip_local_out_[k];ip_output_[k];ip_finish_output_[k];dev_queue_xmit_[k];netif_skb_features_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];do_sync_write_[k];sock_aio_write_[k];do_sock_write.isra.10_[k];inet_sendmsg_[k];tcp_sendmsg_[k];__tcp_push_pending_frames_[k];tcp_write_xmit_[k];tcp_transmit_skb_[k];ip_queue_xmit_[k];ip_output_[k] 2
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];do_sync_write_[k];sock_aio_write_[k];do_sock_write.isra.10_[k];inet_sendmsg_[k];tcp_sendmsg_[k];__tcp_push_pending_frames_[k];tcp_write_xmit_[k];tcp_transmit_skb_[k];ktime_get_real_[k];getnstimeofday_[k];xen_clocksource_get_cycles_[k];pvclock_clocksource_read_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];do_sync_write_[k];sock_aio_write_[k];do_sock_write.isra.10_[k];inet_sendmsg_[k];tcp_sendmsg_[k];__tcp_push_pending_frames_[k];tcp_write_xmit_[k];tcp_transmit_skb_[k];ktime_get_real_[k];getnstimeofday_[k];xen_clocksource_get_cycles_[k];xen_clocksource_read_[k];pvclock_clocksource_read_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];do_sync_write_[k];sock_aio_write_[k];do_sock_write.isra.10_[k];inet_sendmsg_[k];tcp_sendmsg_[k];__tcp_push_pending_frames_[k];tcp_write_xmit_[k];tcp_transmit_skb_[k];ktime_get_real_[k];xen_clocksource_get_cycles_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];do_sync_write_[k];sock_aio_write_[k];do_sock_write.isra.10_[k];inet_sendmsg_[k];tcp_sendmsg_[k];__tcp_push_pending_frames_[k];tcp_write_xmit_[k];tcp_transmit_skb_[k];skb_dst_set_noref_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];do_sync_write_[k];sock_aio_write_[k];do_sock_write.isra.10_[k];inet_sendmsg_[k];tcp_sendmsg_[k];lock_sock_nested_[k];_raw_spin_lock_bh_[k];local_bh_disable_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];do_sync_write_[k];sock_aio_write_[k];do_sock_write.isra.10_[k];inet_sendmsg_[k];tcp_sendmsg_[k];sk_stream_alloc_skb_[k];__alloc_skb_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];do_sync_write_[k];sock_aio_write_[k];do_sock_write.isra.10_[k];inet_sendmsg_[k];tcp_sendmsg_[k];sk_stream_alloc_skb_[k];__alloc_skb_[k];__kmalloc_node_track_caller_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];do_sync_write_[k];sock_aio_write_[k];do_sock_write.isra.10_[k];inet_sendmsg_[k];tcp_sendmsg_[k];sk_stream_alloc_skb_[k];__alloc_skb_[k];__kmalloc_node_track_caller_[k];arch_local_irq_save_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];do_sync_write_[k];sock_aio_write_[k];do_sock_write.isra.10_[k];inet_sendmsg_[k];tcp_sendmsg_[k];sk_stream_alloc_skb_[k];__alloc_skb_[k];__phys_addr_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];do_sync_write_[k];sock_aio_write_[k];do_sock_write.isra.10_[k];inet_sendmsg_[k];tcp_sendmsg_[k];sk_stream_alloc_skb_[k];__alloc_skb_[k];get_slab_[k] 2
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];do_sync_write_[k];sock_aio_write_[k];do_sock_write.isra.10_[k];inet_sendmsg_[k];tcp_sendmsg_[k];sk_stream_alloc_skb_[k];__alloc_skb_[k];kmem_cache_alloc_node_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];do_sync_write_[k];sock_aio_write_[k];do_sock_write.isra.10_[k];inet_sendmsg_[k];tcp_sendmsg_[k];sk_stream_alloc_skb_[k];ksize_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];do_sync_write_[k];sock_aio_write_[k];do_sock_write.isra.10_[k];inet_sendmsg_[k];tcp_sendmsg_[k];tcp_send_mss_[k];tcp_current_mss_[k];ipv4_mtu_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];do_sync_write_[k];sock_aio_write_[k];do_sock_write.isra.10_[k];inet_sendmsg_[k];tcp_sendmsg_[k];tcp_send_mss_[k];tcp_current_mss_[k];tcp_established_options_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];do_sync_write_[k];sock_aio_write_[k];do_sock_write.isra.10_[k];inet_sendmsg_[k];tcp_sendmsg_[k];tcp_send_mss_[k];tcp_xmit_size_goal_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];do_sync_write_[k];sock_aio_write_[k];do_sock_write.isra.10_[k];inet_sendmsg_[k];tcp_sendmsg_[k];tcp_xmit_size_goal_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];fsnotify_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];fsnotify_[k];__srcu_read_lock_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];rw_verify_area_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];rw_verify_area_[k];apparmor_file_permission_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];rw_verify_area_[k];security_file_permission_[k];apparmor_file_permission_[k];common_file_perm_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/FileDispatcherImpl:.write0_[j];write;system_call_fastpath_[k];sys_write_[k];vfs_write_[k];sock_aio_write_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.write_[j];sun/nio/ch/SocketChannelImpl:.writerCleanup_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/buffer/PooledUnsafeDirectByteBuf:.readBytes_[j];sun/nio/ch/SocketChannelImpl:.writerCleanup_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/ChannelOutboundHandlerAdapter:.flush_[j];io/netty/channel/AbstractChannelHandlerContext:.flush_[j];io/netty/channel/DefaultChannelPipeline$HeadContext:.flush_[j];io/netty/channel/AbstractChannel$AbstractUnsafe:.flush0_[j];io/netty/channel/nio/AbstractNioByteChannel:.doWrite_[j];io/netty/util/Recycler:.recycle_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j];io/netty/channel/ChannelDuplexHandler:.flush_[j] 2
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j];org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/buffer/AbstractReferenceCountedByteBuf:.release_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];java/util/concurrent/ConcurrentHashMap:.get_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/mozilla/javascript/Context:.getWrapFactory_[j] 2
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j] 3
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/ScriptableObject:.getParentScope_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/WrapFactory:.wrapAsJavaObject_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/WrapFactory:.wrapAsJavaObject_[j];java/util/HashMap:.get_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/WrapFactory:.wrap_[j];java/util/HashMap:.get_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.getObjectProp_[j] 2
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.getObjectProp_[j];org/mozilla/javascript/ScriptableObject$RelinkedSlot:.getValue_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.getObjectProp_[j];vtable chunks_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.nameOrFunction_[j];org/mozilla/javascript/ScriptableObject$Slot:.getValue_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.name_[j];org/mozilla/javascript/IdScriptableObject:.get_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.getPropFunctionAndThis_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/IdScriptableObject:.findInstanceIdInfo_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/IdScriptableObject:.has_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/IdScriptableObject:.has_[j];org/mozilla/javascript/ScriptableObject:.getSlot_[j] 2
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/IdScriptableObject:.put_[j];org/mozilla/javascript/ScriptableObject:.getSlot_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/IdScriptableObject:.setAttributes_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/MemberBox:.invoke_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/NativeJavaMethod:.call_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/NativeJavaMethod:.call_[j];org/mozilla/javascript/WrapFactory:.wrap_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/NativeJavaMethod:.findFunction_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/NativeJavaObject:.get_[j] 2
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.createFunctionActivation_[j];org/mozilla/javascript/IdScriptableObject:.get_[j];org/mozilla/javascript/ScriptableObject:.getSlot_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.createFunctionActivation_[j];org/mozilla/javascript/IdScriptableObject:.put_[j];org/mozilla/javascript/ScriptableObject:.getSlot_[j];org/mozilla/javascript/ScriptableObject:.createSlot_[j] 2
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.createFunctionActivation_[j];org/mozilla/javascript/IdScriptableObject:.setAttributes_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.createFunctionActivation_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.getObjectProp_[j];org/mozilla/javascript/ScriptableObject$Slot:.getValue_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.getPropFunctionAndThis_[j];org/mozilla/javascript/NativeJavaObject:.get_[j];java/util/HashMap:.get_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.newObject_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.newObject_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];jint_disjoint_arraycopy_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.newObject_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/IdScriptableObject:.get_[j] 2
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.newObject_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/IdScriptableObject:.has_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.newObject_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.createFunctionActivation_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.newObject_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.createFunctionActivation_[j];org/mozilla/javascript/IdScriptableObject:.put_[j];org/mozilla/javascript/ScriptableObject:.getSlot_[j];org/mozilla/javascript/ScriptableObject:.createSlot_[j] 2
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.newObject_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.createFunctionActivation_[j];org/mozilla/javascript/IdScriptableObject:.setAttributes_[j] 2
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.newObject_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.getObjectProp_[j];org/mozilla/javascript/IdScriptableObject:.get_[j];org/mozilla/javascript/ScriptableObject:.getSlot_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.newObject_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.nameOrFunction_[j];org/mozilla/javascript/IdScriptableObject:.get_[j];org/mozilla/javascript/ScriptableObject$RelinkedSlot:.getValue_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.newObject_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.setObjectProp_[j];org/mozilla/javascript/IdScriptableObject:.findInstanceIdInfo_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.newObject_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.setObjectProp_[j];org/mozilla/javascript/IdScriptableObject:.put_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.newObject_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.setObjectProp_[j];org/mozilla/javascript/IdScriptableObject:.put_[j];org/mozilla/javascript/ScriptableObject:.getSlot_[j];org/mozilla/javascript/ScriptableObject:.createSlot_[j] 3
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.newObject_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.setObjectProp_[j];org/mozilla/javascript/ScriptableObject:.getSlot_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.newObject_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.setObjectProp_[j];vtable chunks_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.newObject_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/optimizer/OptRuntime:.call2_[j];org/mozilla/javascript/NativeFunction:.initScriptFunction_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.newObject_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/optimizer/OptRuntime:.call2_[j];org/mozilla/javascript/ScriptRuntime:.createFunctionActivation_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.newObject_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/optimizer/OptRuntime:.call2_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.createFunctionActivation_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.newObject_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/optimizer/OptRuntime:.call2_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.createFunctionActivation_[j];org/mozilla/javascript/IdScriptableObject:.get_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.newObject_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/optimizer/OptRuntime:.call2_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.setObjectProp_[j];org/mozilla/javascript/IdScriptableObject:.has_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.newObject_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/optimizer/OptRuntime:.call2_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.setObjectProp_[j];org/mozilla/javascript/IdScriptableObject:.put_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.newObject_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/optimizer/OptRuntime:.call2_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.setObjectProp_[j];org/mozilla/javascript/IdScriptableObject:.put_[j];org/mozilla/javascript/ScriptableObject:.getSlot_[j];org/mozilla/javascript/ScriptableObject:.createSlot_[j] 6
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.newObject_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/optimizer/OptRuntime:.call2_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptableObject:.getParentScope_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.setObjectProp_[j];org/mozilla/javascript/IdScriptableObject:.has_[j] 4
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.setObjectProp_[j];org/mozilla/javascript/IdScriptableObject:.has_[j];org/mozilla/javascript/ScriptableObject:.getSlot_[j] 5
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.setObjectProp_[j];org/mozilla/javascript/IdScriptableObject:.put_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.setObjectProp_[j];org/mozilla/javascript/IdScriptableObject:.put_[j];org/mozilla/javascript/ScriptableObject:.getSlot_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.setObjectProp_[j];org/mozilla/javascript/IdScriptableObject:.put_[j];org/mozilla/javascript/ScriptableObject:.getSlot_[j];org/mozilla/javascript/ScriptableObject:.createSlot_[j] 6
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptableObject:.getPrototype_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptableObject:.getParentScope_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/TopLevel:.getBuiltinPrototype_[j] 2
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/optimizer/OptRuntime:.call2_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/optimizer/OptRuntime:.call2_[j];org/mozilla/javascript/ScriptRuntime:.name_[j];org/mozilla/javascript/ScriptRuntime:.nameOrFunction_[j];vtable chunks_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/optimizer/OptRuntime:.call2_[j];org/mozilla/javascript/ScriptRuntime:.setObjectProp_[j];org/mozilla/javascript/IdScriptableObject:.has_[j];org/mozilla/javascript/ScriptableObject:.getSlot_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/optimizer/OptRuntime:.call2_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.createFunctionActivation_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/optimizer/OptRuntime:.call2_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.createFunctionActivation_[j];org/mozilla/javascript/IdScriptableObject:.setAttributes_[j] 2
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/optimizer/OptRuntime:.call2_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.createFunctionActivation_[j];org/mozilla/javascript/TopLevel:.getBuiltinPrototype_[j] 2
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/optimizer/OptRuntime:.call2_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.setObjectProp_[j];org/mozilla/javascript/IdScriptableObject:.put_[j];org/mozilla/javascript/ScriptableObject:.getSlot_[j];org/mozilla/javascript/ScriptableObject:.createSlot_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vhello_js_1:.call_[j];org/mozilla/javascript/ScriptRuntime:.indexFromString_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vhello_js_1:.call_[j];org/mozilla/javascript/ScriptRuntime:.setObjectElem_[j];org/mozilla/javascript/ScriptRuntime:.indexFromString_[j] 2
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vhello_js_1:.call_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j] 2
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vhello_js_1:.call_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/NativeJavaMethod:.call_[j];org/mozilla/javascript/MemberBox:.invoke_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vhello_js_1:.call_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/NativeJavaMethod:.call_[j];org/mozilla/javascript/MemberBox:.invoke_[j];io/netty/handler/codec/http/DefaultHttpHeaders:.set_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vhello_js_1:.call_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/NativeJavaMethod:.call_[j];org/mozilla/javascript/MemberBox:.invoke_[j];sun/reflect/DelegatingMethodAccessorImpl:.invoke_[j] 3
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vhello_js_1:.call_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/NativeJavaMethod:.call_[j];org/mozilla/javascript/MemberBox:.invoke_[j];sun/reflect/DelegatingMethodAccessorImpl:.invoke_[j];io/netty/channel/AbstractChannelHandlerContext:.write_[j];io/netty/channel/AbstractChannelHandlerContext:.write_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vhello_js_1:.call_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/NativeJavaMethod:.call_[j];org/mozilla/javascript/MemberBox:.invoke_[j];sun/reflect/DelegatingMethodAccessorImpl:.invoke_[j];io/netty/channel/AbstractChannelHandlerContext:.write_[j];io/netty/channel/AbstractChannelHandlerContext:.write_[j];org/vertx/java/core/http/impl/VertxHttpHandler:.write_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vhello_js_1:.call_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/NativeJavaMethod:.call_[j];org/mozilla/javascript/MemberBox:.invoke_[j];sun/reflect/DelegatingMethodAccessorImpl:.invoke_[j];io/netty/channel/AbstractChannelHandlerContext:.write_[j];io/netty/channel/AbstractChannelHandlerContext:.write_[j];org/vertx/java/core/http/impl/VertxHttpHandler:.write_[j];io/netty/channel/AbstractChannelHandlerContext:.write_[j];io/netty/handler/codec/MessageToMessageEncoder:.write_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vhello_js_1:.call_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/NativeJavaMethod:.call_[j];org/mozilla/javascript/MemberBox:.invoke_[j];sun/reflect/DelegatingMethodAccessorImpl:.invoke_[j];io/netty/channel/AbstractChannelHandlerContext:.write_[j];io/netty/channel/AbstractChannelHandlerContext:.write_[j];org/vertx/java/core/http/impl/VertxHttpHandler:.write_[j];io/netty/channel/AbstractChannelHandlerContext:.write_[j];io/netty/handler/codec/MessageToMessageEncoder:.write_[j];io/netty/buffer/AbstractByteBuf:.writeBytes_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vhello_js_1:.call_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/NativeJavaMethod:.call_[j];org/mozilla/javascript/MemberBox:.invoke_[j];sun/reflect/DelegatingMethodAccessorImpl:.invoke_[j];io/netty/channel/AbstractChannelHandlerContext:.write_[j];io/netty/channel/AbstractChannelHandlerContext:.write_[j];org/vertx/java/core/http/impl/VertxHttpHandler:.write_[j];io/netty/channel/AbstractChannelHandlerContext:.write_[j];io/netty/handler/codec/MessageToMessageEncoder:.write_[j];io/netty/handler/codec/http/HttpObjectEncoder:.encode_[j];io/netty/buffer/AbstractByteBuf:.writeBytes_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vhello_js_1:.call_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/NativeJavaMethod:.call_[j];org/mozilla/javascript/MemberBox:.invoke_[j];sun/reflect/DelegatingMethodAccessorImpl:.invoke_[j];io/netty/channel/AbstractChannelHandlerContext:.write_[j];io/netty/channel/AbstractChannelHandlerContext:.write_[j];org/vertx/java/core/http/impl/VertxHttpHandler:.write_[j];io/netty/channel/AbstractChannelHandlerContext:.write_[j];io/netty/handler/codec/MessageToMessageEncoder:.write_[j];io/netty/handler/codec/http/HttpObjectEncoder:.encode_[j];io/netty/buffer/AbstractByteBufAllocator:.directBuffer_[j] 2
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vhello_js_1:.call_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/NativeJavaMethod:.call_[j];org/mozilla/javascript/MemberBox:.invoke_[j];sun/reflect/DelegatingMethodAccessorImpl:.invoke_[j];io/netty/channel/AbstractChannelHandlerContext:.write_[j];io/netty/channel/AbstractChannelHandlerContext:.write_[j];org/vertx/java/core/http/impl/VertxHttpHandler:.write_[j];io/netty/channel/AbstractChannelHandlerContext:.write_[j];io/netty/handler/codec/MessageToMessageEncoder:.write_[j];io/netty/handler/codec/http/HttpObjectEncoder:.encode_[j];io/netty/buffer/AbstractByteBufAllocator:.directBuffer_[j];io/netty/util/concurrent/FastThreadLocal:.get_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vhello_js_1:.call_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/NativeJavaMethod:.call_[j];org/mozilla/javascript/MemberBox:.invoke_[j];sun/reflect/DelegatingMethodAccessorImpl:.invoke_[j];io/netty/channel/AbstractChannelHandlerContext:.write_[j];io/netty/channel/AbstractChannelHandlerContext:.write_[j];org/vertx/java/core/http/impl/VertxHttpHandler:.write_[j];io/netty/channel/AbstractChannelHandlerContext:.write_[j];io/netty/handler/codec/MessageToMessageEncoder:.write_[j];io/netty/handler/codec/http/HttpObjectEncoder:.encode_[j];java/util/ArrayList:.add_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vhello_js_1:.call_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/NativeJavaMethod:.call_[j];org/mozilla/javascript/MemberBox:.invoke_[j];sun/reflect/DelegatingMethodAccessorImpl:.invoke_[j];io/netty/channel/AbstractChannelHandlerContext:.write_[j];io/netty/channel/AbstractChannelHandlerContext:.write_[j];org/vertx/java/core/http/impl/VertxHttpHandler:.write_[j];io/netty/channel/AbstractChannelHandlerContext:.write_[j];io/netty/handler/codec/MessageToMessageEncoder:.write_[j];io/netty/util/internal/RecyclableArrayList:.newInstance_[j];io/netty/util/concurrent/FastThreadLocal:.get_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vhello_js_1:.call_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/NativeJavaMethod:.call_[j];org/mozilla/javascript/MemberBox:.invoke_[j];sun/reflect/DelegatingMethodAccessorImpl:.invoke_[j];io/netty/channel/AbstractChannelHandlerContext:.write_[j];io/netty/channel/AbstractChannelHandlerContext:.write_[j];org/vertx/java/core/http/impl/VertxHttpHandler:.write_[j];io/netty/channel/AbstractChannelHandlerContext:.write_[j];io/netty/handler/codec/MessageToMessageEncoder:.write_[j];java/util/ArrayList:.ensureExplicitCapacity_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vhello_js_1:.call_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/NativeJavaMethod:.call_[j];org/mozilla/javascript/MemberBox:.invoke_[j];sun/reflect/DelegatingMethodAccessorImpl:.invoke_[j];io/netty/channel/AbstractChannelHandlerContext:.write_[j];io/netty/channel/AbstractChannelHandlerContext:.write_[j];org/vertx/java/core/http/impl/VertxHttpHandler:.write_[j];io/netty/channel/AbstractChannelHandlerContext:.write_[j];io/netty/handler/codec/MessageToMessageEncoder:.write_[j];vtable chunks_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vhello_js_1:.call_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/NativeJavaMethod:.call_[j];org/mozilla/javascript/MemberBox:.invoke_[j];sun/reflect/DelegatingMethodAccessorImpl:.invoke_[j];io/netty/channel/AbstractChannelHandlerContext:.write_[j];org/vertx/java/core/http/impl/VertxHttpHandler:.write_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vhello_js_1:.call_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/NativeJavaMethod:.call_[j];org/mozilla/javascript/MemberBox:.invoke_[j];sun/reflect/DelegatingMethodAccessorImpl:.invoke_[j];io/netty/handler/codec/http/DefaultHttpHeaders:.add0_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vhello_js_1:.call_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/NativeJavaMethod:.call_[j];org/mozilla/javascript/MemberBox:.invoke_[j];sun/reflect/DelegatingMethodAccessorImpl:.invoke_[j];io/netty/handler/codec/http/DefaultHttpHeaders:.set_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vhello_js_1:.call_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/NativeJavaMethod:.call_[j];org/mozilla/javascript/MemberBox:.invoke_[j];sun/reflect/DelegatingMethodAccessorImpl:.invoke_[j];sun/nio/cs/UTF_8$Encoder:.<init>_[j];jbyte_disjoint_arraycopy_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];org/vertx/java/core/net/impl/VertxHandler:.channelRead_[j];org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vhello_js_1:.call_[j];org/mozilla/javascript/gen/file__home_bgregg_testtest_vert_x_2_1_4_sys_mods_io_vertx_lang_js_1_1_0_[j];org/mozilla/javascript/ScriptRuntime:.name_[j];org/mozilla/javascript/ScriptRuntime:.nameOrFunction_[j];org/mozilla/javascript/IdScriptableObject:.get_[j];org/mozilla/javascript/ScriptableObject$RelinkedSlot:.getValue_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/handler/codec/http/HttpObjectDecoder:.decode_[j];io/netty/buffer/AbstractByteBuf:.forEachByteAsc0_[j];io/netty/util/internal/AppendableCharSequence:.append_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/handler/codec/http/HttpObjectDecoder:.decode_[j];io/netty/handler/codec/http/HttpHeaders:.isTransferEncodingChunked_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/handler/codec/http/HttpObjectDecoder:.decode_[j];io/netty/handler/codec/http/HttpObjectDecoder:.findWhitespace_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/handler/codec/http/HttpObjectDecoder:.decode_[j];io/netty/handler/codec/http/HttpObjectDecoder:.readHeaders_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/handler/codec/http/HttpObjectDecoder:.decode_[j];io/netty/handler/codec/http/HttpObjectDecoder:.readHeaders_[j];io/netty/buffer/AbstractByteBuf:.forEachByteAsc0_[j] 2
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/handler/codec/http/HttpObjectDecoder:.decode_[j];io/netty/handler/codec/http/HttpObjectDecoder:.readHeaders_[j];io/netty/handler/codec/http/HttpHeaders:.hash_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/handler/codec/http/HttpObjectDecoder:.decode_[j];io/netty/handler/codec/http/HttpObjectDecoder:.readHeaders_[j];io/netty/handler/codec/http/HttpObjectDecoder:.splitHeader_[j] 5
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelRead_[j];io/netty/handler/codec/http/HttpObjectDecoder:.decode_[j];io/netty/handler/codec/http/HttpObjectDecoder:.readHeaders_[j];java/util/Arrays:.fill_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/socket/nio/NioSocketChannel:.doReadBytes_[j];sun/nio/ch/SocketChannelImpl:.read_[j];java/nio/channels/spi/AbstractInterruptibleChannel:.end_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/socket/nio/NioSocketChannel:.doReadBytes_[j];sun/nio/ch/SocketChannelImpl:.read_[j];sun/nio/ch/FileDispatcherImpl:.read0_[j];read 2
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/socket/nio/NioSocketChannel:.doReadBytes_[j];sun/nio/ch/SocketChannelImpl:.read_[j];sun/nio/ch/FileDispatcherImpl:.read0_[j];read;sys_read_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/socket/nio/NioSocketChannel:.doReadBytes_[j];sun/nio/ch/SocketChannelImpl:.read_[j];sun/nio/ch/FileDispatcherImpl:.read0_[j];read;system_call_fastpath_[k];sys_read_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/socket/nio/NioSocketChannel:.doReadBytes_[j];sun/nio/ch/SocketChannelImpl:.read_[j];sun/nio/ch/FileDispatcherImpl:.read0_[j];read;system_call_fastpath_[k];sys_read_[k];do_sync_read_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/socket/nio/NioSocketChannel:.doReadBytes_[j];sun/nio/ch/SocketChannelImpl:.read_[j];sun/nio/ch/FileDispatcherImpl:.read0_[j];read;system_call_fastpath_[k];sys_read_[k];vfs_read_[k];do_sync_read_[k];sock_aio_read_[k];sock_aio_read.part.13_[k];do_sock_read.isra.12_[k];inet_recvmsg_[k];__kfree_skb_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/socket/nio/NioSocketChannel:.doReadBytes_[j];sun/nio/ch/SocketChannelImpl:.read_[j];sun/nio/ch/FileDispatcherImpl:.read0_[j];read;system_call_fastpath_[k];sys_read_[k];vfs_read_[k];do_sync_read_[k];sock_aio_read_[k];sock_aio_read.part.13_[k];do_sock_read.isra.12_[k];inet_recvmsg_[k];tcp_rcv_space_adjust_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/socket/nio/NioSocketChannel:.doReadBytes_[j];sun/nio/ch/SocketChannelImpl:.read_[j];sun/nio/ch/FileDispatcherImpl:.read0_[j];read;system_call_fastpath_[k];sys_read_[k];vfs_read_[k];do_sync_read_[k];sock_aio_read_[k];sock_aio_read.part.13_[k];do_sock_read.isra.12_[k];inet_recvmsg_[k];tcp_recvmsg_[k];__kfree_skb_[k];skb_release_data_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/socket/nio/NioSocketChannel:.doReadBytes_[j];sun/nio/ch/SocketChannelImpl:.read_[j];sun/nio/ch/FileDispatcherImpl:.read0_[j];read;system_call_fastpath_[k];sys_read_[k];vfs_read_[k];do_sync_read_[k];sock_aio_read_[k];sock_aio_read.part.13_[k];do_sock_read.isra.12_[k];inet_recvmsg_[k];tcp_recvmsg_[k];__kfree_skb_[k];skb_release_head_state_[k];dst_release_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/socket/nio/NioSocketChannel:.doReadBytes_[j];sun/nio/ch/SocketChannelImpl:.read_[j];sun/nio/ch/FileDispatcherImpl:.read0_[j];read;system_call_fastpath_[k];sys_read_[k];vfs_read_[k];do_sync_read_[k];sock_aio_read_[k];sock_aio_read.part.13_[k];do_sock_read.isra.12_[k];inet_recvmsg_[k];tcp_recvmsg_[k];_raw_spin_lock_bh_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/socket/nio/NioSocketChannel:.doReadBytes_[j];sun/nio/ch/SocketChannelImpl:.read_[j];sun/nio/ch/FileDispatcherImpl:.read0_[j];read;system_call_fastpath_[k];sys_read_[k];vfs_read_[k];do_sync_read_[k];sock_aio_read_[k];sock_aio_read.part.13_[k];do_sock_read.isra.12_[k];inet_recvmsg_[k];tcp_recvmsg_[k];skb_copy_datagram_iovec_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/socket/nio/NioSocketChannel:.doReadBytes_[j];sun/nio/ch/SocketChannelImpl:.read_[j];sun/nio/ch/FileDispatcherImpl:.read0_[j];read;system_call_fastpath_[k];sys_read_[k];vfs_read_[k];do_sync_read_[k];sock_aio_read_[k];sock_aio_read.part.13_[k];do_sock_read.isra.12_[k];inet_recvmsg_[k];tcp_recvmsg_[k];skb_copy_datagram_iovec_[k];copy_user_enhanced_fast_string_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/socket/nio/NioSocketChannel:.doReadBytes_[j];sun/nio/ch/SocketChannelImpl:.read_[j];sun/nio/ch/FileDispatcherImpl:.read0_[j];read;system_call_fastpath_[k];sys_read_[k];vfs_read_[k];do_sync_read_[k];sock_aio_read_[k];sock_aio_read.part.13_[k];do_sock_read.isra.12_[k];inet_recvmsg_[k];tcp_recvmsg_[k];tcp_cleanup_rbuf_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/socket/nio/NioSocketChannel:.doReadBytes_[j];sun/nio/ch/SocketChannelImpl:.read_[j];sun/nio/ch/FileDispatcherImpl:.read0_[j];read;system_call_fastpath_[k];sys_read_[k];vfs_read_[k];do_sync_read_[k];sock_aio_read_[k];sock_aio_read.part.13_[k];do_sock_read.isra.12_[k];inet_recvmsg_[k];tcp_recvmsg_[k];tcp_cleanup_rbuf_[k];__tcp_select_window_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/channel/socket/nio/NioSocketChannel:.doReadBytes_[j];sun/nio/ch/SocketChannelImpl:.read_[j];sun/nio/ch/FileDispatcherImpl:.read0_[j];read;system_call_fastpath_[k];sys_read_[k];vfs_read_[k];rw_verify_area_[k] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read_[j];io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete_[j] 1
|
||||
java;start_thread;java_start;JavaThread::run;JavaThread::thread_main_inner;thread_entry;JavaCalls::call_virtual;JavaCalls::call_virtual;JavaCalls::call_helper;call_stub_[j];Interpreter_[j];Interpreter_[j];io/netty/channel/nio/NioEventLoop:.run_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeys_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized_[j];io/netty/channel/nio/NioEventLoop:.processSelectedKey_[j];io/netty/channel/socket/nio/NioSocketChannel:.doReadBytes_[j] 1
|
||||
java;start_thread;java_start;VMThread::run;VMThread::loop;VMThread::evaluate_operation;VM_Operation::evaluate;VM_ParallelGCFailedAllocation::doit;ParallelScavengeHeap::failed_mem_allocate;PSScavenge::invoke;PSScavenge::invoke_no_policy;PSIsAliveClosure::do_object_b 1
|
||||
java;start_thread;java_start;VMThread::run;VMThread::loop;VMThread::evaluate_operation;VM_Operation::evaluate;VM_ParallelGCFailedAllocation::doit;ParallelScavengeHeap::failed_mem_allocate;PSScavenge::invoke;PSScavenge::invoke_no_policy;StringTable::unlink_or_oops_do 2
|
||||
java;start_thread;java_start;VMThread::run;VMThread::loop;VMThread::evaluate_operation;VM_Operation::evaluate;VM_ParallelGCFailedAllocation::doit;ParallelScavengeHeap::failed_mem_allocate;PSScavenge::invoke;PSScavenge::invoke_no_policy;pthread_cond_signal@@GLIBC_2.3.2;system_call_fastpath_[k];sys_futex_[k];do_futex_[k];futex_wake_op_[k] 1
|
||||
java;write;check_events_[k];hypercall_page_[k] 3
|
||||
@@ -0,0 +1,3 @@
|
||||
speedscope@1.5.2
|
||||
Thu Oct 10 18:34:24 PDT 2019
|
||||
c3074b73436eddc789b96d0142c6ee56b34ff399
|
||||
@@ -0,0 +1 @@
|
||||
a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}table{border-collapse:collapse;border-spacing:0}html{overflow:hidden}body,html{height:100%}body{overflow:auto}
|
||||
@@ -1,88 +0,0 @@
|
||||
import pandas as pd
|
||||
import plotly.graph_objs as go
|
||||
|
||||
call_depths = [0]
|
||||
datas = []
|
||||
|
||||
def ensure_big_enough(list, idx, el):
|
||||
l = len(list)
|
||||
if (idx >= l):
|
||||
list.extend([el]*(idx-l+1))
|
||||
|
||||
def incr_call_depth(thread):
|
||||
ensure_big_enough(call_depths, thread, 0)
|
||||
call_depths[thread] += 1
|
||||
|
||||
def append_to_datas(thread, data):
|
||||
ensure_big_enough(datas, thread, [])
|
||||
datas[thread].append(data)
|
||||
|
||||
with open("../src/profiler_reports/04.10.2019-13.29.21-140737348403048-profiler.report", "r") as file:
|
||||
for line in file:
|
||||
infos = line.split()
|
||||
if infos[1] == "->":
|
||||
incr_call_depth(thread)
|
||||
append_to_datas(thread, {
|
||||
"task": f"[T{thread}] - {'{:03d}'.format(call_depths[thread])}",
|
||||
"start": int(infos[5]),
|
||||
"end": None
|
||||
})
|
||||
elif infos[1] == "<-":
|
||||
call_depths[thread] -= 1
|
||||
for set in datas[thread][::-1]:
|
||||
if set["end"] == None:
|
||||
set["end"] = int(infos[2])
|
||||
break
|
||||
else:
|
||||
print("couldn't find task that finished")
|
||||
break
|
||||
|
||||
else:
|
||||
print("neither -> nor <-")
|
||||
|
||||
|
||||
fig = go.Figure(
|
||||
layout = {
|
||||
'barmode': 'stack',
|
||||
"dragmode" : "pan",
|
||||
}
|
||||
)
|
||||
|
||||
flat_datas= [item for sublist in datas for item in sublist]
|
||||
# i = 1
|
||||
# df = flat_datas[:20]
|
||||
# for call in df:
|
||||
# name = call["task"]
|
||||
# start = call["start"]
|
||||
# end = call["end"]
|
||||
# duration = end,start
|
||||
# fig.add_bar(x=(i,duration),
|
||||
# y=(i,name),
|
||||
# base=(i,start),
|
||||
# orientation='h',
|
||||
# showlegend=False,
|
||||
# name=name,
|
||||
# hovertext=f"yes",
|
||||
# text=""
|
||||
# )
|
||||
# i += 1
|
||||
|
||||
df = pd.DataFrame(flat_datas[:20])
|
||||
df['duration'] = df['end'] - df['start']
|
||||
|
||||
for stackdepth, stackdepth_df in df.groupby('task'):
|
||||
params = {"x": stackdepth_df.duration,
|
||||
"y": stackdepth_df.task,
|
||||
"name": stackdepth,
|
||||
"base": stackdepth_df.start
|
||||
}
|
||||
print(params)
|
||||
fig.add_bar(**params,
|
||||
orientation='h',
|
||||
showlegend=False,
|
||||
hovertext=f"yes",
|
||||
text=""
|
||||
)
|
||||
|
||||
|
||||
fig.show(config={'scrollZoom': True})
|
||||
@@ -1,21 +0,0 @@
|
||||
#lang racket
|
||||
(require racket/gui mrlib/snip-canvas plot)
|
||||
|
||||
(define ((make-current-value-renderer fn) snip event x y)
|
||||
(define overlays
|
||||
(and x y (eq? (send event get-event-type) 'motion)
|
||||
(list (vrule x #:style 'long-dash)
|
||||
(point-label (vector x (fn x)) #:anchor 'auto))))
|
||||
(send snip set-overlay-renderers overlays))
|
||||
|
||||
(define (make-plot-snip width height)
|
||||
(define snip (plot-snip (function sin)
|
||||
#:x-min 0 #:x-max (* 2 pi) #:y-min -1.5 #:y-max 1.5
|
||||
#:width width #:height height))
|
||||
(send snip set-mouse-event-callback (make-current-value-renderer sin))
|
||||
snip)
|
||||
|
||||
(define toplevel (new frame% [label "Plot"] [width 500] [height 200]))
|
||||
(define canvas (new snip-canvas% [parent toplevel] [make-snip make-plot-snip]))
|
||||
(send toplevel show #t)
|
||||
|
||||
|
Before Width: | Height: | Size: 13 KiB |
@@ -1,173 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8-unix -*-
|
||||
|
||||
import datetime
|
||||
import gantt
|
||||
|
||||
# Change font default
|
||||
gantt.define_font_attributes(fill='black',
|
||||
stroke='black',
|
||||
stroke_width=0,
|
||||
font_family="Verdana")
|
||||
|
||||
# Add vacations for everyone
|
||||
gantt.add_vacations(datetime.date(2014, 12, 25))
|
||||
gantt.add_vacations(datetime.date(2015, 1, 1))
|
||||
gantt.add_vacations(datetime.date(2015, 1, 13))
|
||||
|
||||
# Create two resources
|
||||
rANO = gantt.Resource('ANO')
|
||||
rJLS = gantt.Resource('JLS')
|
||||
|
||||
# Add vacations for one lucky resource
|
||||
rANO.add_vacations(
|
||||
dfrom=datetime.date(2014, 12, 29),
|
||||
dto=datetime.date(2015, 1, 4)
|
||||
)
|
||||
rANO.add_vacations(
|
||||
dfrom=datetime.date(2015, 1, 6),
|
||||
dto=datetime.date(2015, 1, 8)
|
||||
)
|
||||
|
||||
# Test if this resource is avalaible for some dates
|
||||
print(rANO.is_available(datetime.date(2015, 1, 5)))
|
||||
print(rANO.is_available(datetime.date(2015, 1, 8)))
|
||||
print(rANO.is_available(datetime.date(2015, 1, 6)))
|
||||
print(rANO.is_available(datetime.date(2015, 1, 2)))
|
||||
print(rANO.is_available(datetime.date(2015, 1, 1)))
|
||||
|
||||
|
||||
# Create some tasks
|
||||
t1 = gantt.Task(name='tache1',
|
||||
start=datetime.date(2014, 12, 25),
|
||||
duration=4,
|
||||
percent_done=44,
|
||||
resources=[rANO],
|
||||
color="#FF8080")
|
||||
t2 = gantt.Task(name='tache2',
|
||||
start=datetime.date(2014, 12, 28),
|
||||
duration=6,
|
||||
resources=[rJLS])
|
||||
t7 = gantt.Task(name='tache7',
|
||||
start=datetime.date(2014, 12, 28),
|
||||
duration=5,
|
||||
percent_done=50)
|
||||
t3 = gantt.Task(name='tache3',
|
||||
start=datetime.date(2014, 12, 25),
|
||||
duration=4,
|
||||
depends_of=[t1, t7, t2],
|
||||
resources=[rJLS])
|
||||
t4 = gantt.Task(name='tache4',
|
||||
start=datetime.date(2015, 1, 1),
|
||||
duration=4,
|
||||
depends_of=t1,
|
||||
resources=[rJLS])
|
||||
t5 = gantt.Task(name='tache5',
|
||||
start=datetime.date(2014, 12, 23),
|
||||
duration=3)
|
||||
t6 = gantt.Task(name='tache6',
|
||||
start=datetime.date(2014, 12, 25),
|
||||
duration=4,
|
||||
depends_of=t7,
|
||||
resources=[rANO])
|
||||
t8 = gantt.Task(name='tache8',
|
||||
start=datetime.date(2014, 12, 25),
|
||||
duration=4,
|
||||
depends_of=t7,
|
||||
resources=[rANO, rJLS])
|
||||
|
||||
|
||||
# Create a project
|
||||
p1 = gantt.Project(name='Projet 1')
|
||||
|
||||
# Add tasks to this project
|
||||
p1.add_task(t1)
|
||||
p1.add_task(t7)
|
||||
p1.add_task(t2)
|
||||
p1.add_task(t3)
|
||||
p1.add_task(t5)
|
||||
p1.add_task(t8)
|
||||
|
||||
|
||||
|
||||
# Create another project
|
||||
p2 = gantt.Project(name='Projet 2', color='#FFFF40')
|
||||
|
||||
# Add tasks to this project
|
||||
p2.add_task(t2)
|
||||
p2.add_task(t4)
|
||||
|
||||
|
||||
# Create another project
|
||||
p = gantt.Project(name='Gantt')
|
||||
# wich contains the first two projects
|
||||
# and a single task
|
||||
p.add_task(p1)
|
||||
p.add_task(p2)
|
||||
p.add_task(t6)
|
||||
|
||||
|
||||
|
||||
# Test cases for milestones
|
||||
# Create another project
|
||||
ptcm = gantt.Project(name='Test case for milestones')
|
||||
|
||||
tcm11 = gantt.Task(name='tcm11',
|
||||
start=datetime.date(2014, 12, 25),
|
||||
duration=4)
|
||||
tcm12 = gantt.Task(name='tcm12',
|
||||
start=datetime.date(2014, 12, 26),
|
||||
duration=5)
|
||||
ms1 = gantt.Milestone(name=' ',
|
||||
depends_of=[tcm11, tcm12])
|
||||
tcm21 = gantt.Task(name='tcm21',
|
||||
start=datetime.date(2014, 12, 30),
|
||||
duration=4,
|
||||
depends_of=[ms1])
|
||||
tcm22 = gantt.Task(name='tcm22',
|
||||
start=datetime.date(2014, 12, 30),
|
||||
duration=6,
|
||||
depends_of=[ms1])
|
||||
ms2 = gantt.Milestone(name='MS2',
|
||||
depends_of=[ms1, tcm21, tcm22])
|
||||
tcm31 = gantt.Task(name='tcm31',
|
||||
start=datetime.date(2014, 12, 30),
|
||||
duration=6,
|
||||
depends_of=[ms2])
|
||||
ms3 = gantt.Milestone(name='MS3', depends_of=[ms1])
|
||||
|
||||
|
||||
ptcm.add_task(tcm11)
|
||||
ptcm.add_task(tcm12)
|
||||
ptcm.add_task(ms1)
|
||||
ptcm.add_task(tcm21)
|
||||
ptcm.add_task(tcm22)
|
||||
ptcm.add_task(ms2)
|
||||
ptcm.add_task(tcm31)
|
||||
ptcm.add_task(ms3)
|
||||
|
||||
|
||||
p.add_task(ptcm)
|
||||
|
||||
##########################$ MAKE DRAW ###############
|
||||
p.make_svg_for_tasks(filename='test_full.svg',
|
||||
today=datetime.date(2014, 12, 31),
|
||||
start=datetime.date(2014, 8, 22),
|
||||
end=datetime.date(2015, 1, 14))
|
||||
p.make_svg_for_tasks(filename='test_full2.svg',
|
||||
today=datetime.date(2014, 12, 31))
|
||||
p.make_svg_for_tasks(filename='test.svg',
|
||||
today=datetime.date(2014, 12, 31),
|
||||
start=datetime.date(2015, 1, 3),
|
||||
end=datetime.date(2015, 1, 6))
|
||||
p1.make_svg_for_tasks(filename='test_p1.svg',
|
||||
today=datetime.date(2014, 12, 31))
|
||||
p2.make_svg_for_tasks(filename='test_p2.svg',
|
||||
today=datetime.date(2014, 12, 31))
|
||||
p.make_svg_for_resources(filename='test_resources.svg',
|
||||
today=datetime.date(2014, 12, 31),
|
||||
resources=[rANO, rJLS])
|
||||
p.make_svg_for_tasks(filename='test_weekly.svg',
|
||||
today=datetime.date(2014, 12, 31),
|
||||
scale=gantt.DRAW_WITH_WEEKLY_SCALE)
|
||||
##########################$ /MAKE DRAW ###############
|
||||
|
Before Width: | Height: | Size: 58 KiB |
|
Before Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 5.5 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 21 KiB |
@@ -0,0 +1,54 @@
|
||||
/**
|
||||
Usage of the create_error_macros:
|
||||
*/
|
||||
#define __create_error(keyword, ...) \
|
||||
create_error( \
|
||||
__FUNCTION__, __FILE__, __LINE__, \
|
||||
Memory::get_keyword(keyword), \
|
||||
__VA_ARGS__)
|
||||
|
||||
#define create_out_of_memory_error(...) \
|
||||
__create_error("out-of-memory", __VA_ARGS__)
|
||||
|
||||
#define create_generic_error(...) \
|
||||
__create_error("generic", __VA_ARGS__)
|
||||
|
||||
#define create_not_yet_implemented_error() \
|
||||
__create_error("not-yet-implemented", "This feature has not yet been implemented.")
|
||||
|
||||
#define create_parsing_error(...) \
|
||||
__create_error("parsing-error", __VA_ARGS__)
|
||||
|
||||
#define create_symbol_undefined_error(...) \
|
||||
__create_error("symbol-undefined", __VA_ARGS__)
|
||||
|
||||
#define create_type_missmatch_error(expected, actual) \
|
||||
__create_error("type-missmatch", \
|
||||
"Type missmatch: expected %s, got %s", \
|
||||
expected, actual)
|
||||
|
||||
#ifdef _DEBUG
|
||||
|
||||
#define assert_type(_node, _type) \
|
||||
do { \
|
||||
if (Memory::get_type(_node) != _type) { \
|
||||
create_type_missmatch_error( \
|
||||
Lisp_Object_Type_to_string(_type), \
|
||||
Lisp_Object_Type_to_string(Memory::get_type(_node))); \
|
||||
} \
|
||||
} while(0)
|
||||
|
||||
#define assert(condition) \
|
||||
do { \
|
||||
if (!(condition)) { \
|
||||
create_generic_error("Assertion-error."); \
|
||||
} \
|
||||
} while(0)
|
||||
|
||||
#else
|
||||
# define assert_arguments_length(expected, actual) do {} while (0)
|
||||
# define assert_arguments_length_less_equal(expected, actual) do {} while (0)
|
||||
# define assert_arguments_length_greater_equal(expected, actual) do {} while (0)
|
||||
# define assert_type(_node, _type) do {} while (0)
|
||||
# define assert(condition) do {} while (0)
|
||||
#endif
|
||||
@@ -0,0 +1,153 @@
|
||||
#define concat_( a, b) a##b
|
||||
#define label(prefix, lnum) concat_(prefix,lnum)
|
||||
|
||||
#define log_location() \
|
||||
do { \
|
||||
if (Globals::log_level == Log_Level::Debug) { \
|
||||
printf("in"); \
|
||||
int spacing = 30-((int)strlen(__FILE__) + (int)log10(__LINE__));\
|
||||
if (spacing < 1) spacing = 1; \
|
||||
for (int i = 0; i < spacing;++i) \
|
||||
printf(" "); \
|
||||
printf("%s (%d) ", __FILE__, __LINE__); \
|
||||
printf("-> %s\n",__FUNCTION__); \
|
||||
} \
|
||||
} while(0)
|
||||
|
||||
#define if_error_log_location_and_return(val) \
|
||||
do { \
|
||||
if (Globals::error) { \
|
||||
log_location(); \
|
||||
return val; \
|
||||
} \
|
||||
} while(0)
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define try_or_else_return(val) \
|
||||
if (1) \
|
||||
goto label(body,__LINE__); \
|
||||
else \
|
||||
while (1) \
|
||||
if (1) { \
|
||||
if (Globals::error) { \
|
||||
log_location(); \
|
||||
return val; \
|
||||
} \
|
||||
break; \
|
||||
} \
|
||||
else label(body,__LINE__):
|
||||
;
|
||||
#else
|
||||
#define try_or_else_return(val)
|
||||
#endif
|
||||
|
||||
#define try_struct try_or_else_return({})
|
||||
#define try_void try_or_else_return()
|
||||
#define try try_or_else_return(0)
|
||||
|
||||
#define dont_break_on_errors fluid_let(Globals::breaking_on_errors, false)
|
||||
#define ignore_logging fluid_let(Globals::log_level, Log_Level::None)
|
||||
|
||||
#define fetch1(var) \
|
||||
Lisp_Object* var##_symbol = Memory::get_symbol(#var); \
|
||||
Lisp_Object* var = lookup_symbol(var##_symbol, get_current_environment()); \
|
||||
if_error_log_location_and_return(nullptr)
|
||||
|
||||
#define fetch2(var1, var2) fetch1(var1); fetch1(var2)
|
||||
#define fetch3(var1, var2, var3) fetch2(var1, var2); fetch1(var3)
|
||||
#define fetch4(var1, var2, var3, var4) fetch3(var1, var2, var3); fetch1(var4)
|
||||
#define fetch5(var1, var2, var3, var4, var5) fetch4(var1, var2, var3, var4); fetch1(var5)
|
||||
#define fetch6(var1, var2, var3, var4, var5, var6) fetch5(var1, var2, var3, var4, var5); fetch1(var6)
|
||||
#define fetch7(var1, var2, var3, var4, var5, var6, var7) fetch6(var1, var2, var3, var4, var5, var6); fetch1(var7)
|
||||
#define fetch8(var1, var2, var3, var4, var5, var6, var7, var8) fetch7(var1, var2, var3, var4, var5, var6, var7); fetch1(var8)
|
||||
#define fetch9(var1, var2, var3, var4, var5, var6, var7, var8, var9) fetch8(var1, var2, var3, var4, var5, var6, var7, var8); fetch1(var9)
|
||||
#define fetch10(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10) fetch9(var1, var2, var3, var4, var5, var6, var7, var8, var9); fetch1(var10)
|
||||
#define fetch11(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11) fetch10(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10); fetch1(var11)
|
||||
#define fetch12(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12) fetch11(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11); fetch1(var12)
|
||||
#define fetch13(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13) fetch12(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12); fetch1(var13)
|
||||
#define fetch14(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13, var14) fetch13(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13); fetch1(var14)
|
||||
#define fetch15(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13, var14, var15) fetch14(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13, var14); fetch1(var15)
|
||||
#define fetch16(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13, var14, var15, var16) fetch15(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13, var14, var15); fetch1(var16)
|
||||
#define fetch17(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13, var14, var15, var16, var17) fetch16(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13, var14, var15, var16); fetch1(var17)
|
||||
#define fetch18(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13, var14, var15, var16, var17, var18) fetch17(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13, var14, var15, var16, var17); fetch1(var18)
|
||||
#define fetch19(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13, var14, var15, var16, var17, var18, var19) fetch18(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13, var14, var15, var16, var17, var18); fetch1(var19)
|
||||
#define fetch20(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13, var14, var15, var16, var17, var18, var19, var20) fetch19(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13, var14, var15, var16, var17, var18, var19); fetch1(var20)
|
||||
#define fetch21(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13, var14, var15, var16, var17, var18, var19, var20, var21) fetch20(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13, var14, var15, var16, var17, var18, var19, var20); fetch1(var21)
|
||||
#define fetch22(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13, var14, var15, var16, var17, var18, var19, var20, var21, var22) fetch21(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13, var14, var15, var16, var17, var18, var19, var20, var21); fetch1(var22)
|
||||
#define fetch23(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13, var14, var15, var16, var17, var18, var19, var20, var21, var22, var23) fetch22(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13, var14, var15, var16, var17, var18, var19, var20, var21, var22); fetch1(var23)
|
||||
#define fetch24(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13, var14, var15, var16, var17, var18, var19, var20, var21, var22, var23, var24) fetch23(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13, var14, var15, var16, var17, var18, var19, var20, var21, var22, var23); fetch1(var24)
|
||||
|
||||
#define GET_MACRO( \
|
||||
_1, _2, _3, _4, _5, _6, \
|
||||
_7, _8, _9, _10, _11, _12, \
|
||||
_13, _14, _15, _16, _17, _18, \
|
||||
_19, _20, _21, _22, _23, _24, \
|
||||
NAME, ...) NAME
|
||||
#ifdef _MSC_VER
|
||||
#define EXPAND( x ) x
|
||||
#define fetch(...) EXPAND( \
|
||||
GET_MACRO( \
|
||||
__VA_ARGS__, \
|
||||
fetch24, fetch23, fetch22, fetch21, fetch20, fetch19, \
|
||||
fetch18, fetch17, fetch16, fetch15, fetch14, fetch13, \
|
||||
fetch12, fetch11, fetch10, fetch9, fetch8, fetch7, \
|
||||
fetch6, fetch5, fetch4, fetch3, fetch2, fetch1 \
|
||||
)(__VA_ARGS__))
|
||||
#else
|
||||
#define fetch(...) \
|
||||
GET_MACRO( \
|
||||
__VA_ARGS__, \
|
||||
fetch24, fetch23, fetch22, fetch21, fetch20, fetch19, \
|
||||
fetch18, fetch17, fetch16, fetch15, fetch14, fetch13, \
|
||||
fetch12, fetch11, fetch10, fetch9, fetch8, fetch7, \
|
||||
fetch6, fetch5, fetch4, fetch3, fetch2, fetch1 \
|
||||
)(__VA_ARGS__)
|
||||
#endif
|
||||
|
||||
// NOTE(Felix): we have to copy the string because we need it to be
|
||||
// mutable for the parser to work, because the parser relys on being
|
||||
// able to temporaily put in markers in the code and also it will fill
|
||||
// out the source code location
|
||||
#define _define_helper(def, docs, special) \
|
||||
Parser::parser_file = file_name_built_ins; \
|
||||
Parser::parser_line = __LINE__; \
|
||||
Parser::parser_col = 0; \
|
||||
auto label(params,__LINE__) = Parser::parse_single_expression( \
|
||||
Memory::get_c_str(Memory::create_string(#def))); \
|
||||
if_error_log_location_and_return(nullptr); \
|
||||
assert_type(label(params,__LINE__), Lisp_Object_Type::Pair); \
|
||||
assert_type(label(params,__LINE__)->value.pair.first, Lisp_Object_Type::Symbol); \
|
||||
auto label(sym,__LINE__) = label(params,__LINE__)->value.pair.first; \
|
||||
auto label(sfun,__LINE__) = Memory::create_lisp_object_cfunction(special); \
|
||||
create_arguments_from_lambda_list_and_inject(label(params,__LINE__)->value.pair.rest, label(sfun,__LINE__)); \
|
||||
if_error_log_location_and_return(nullptr); \
|
||||
label(sfun,__LINE__)->docstring = Memory::create_string(docs); \
|
||||
define_symbol(label(sym,__LINE__), label(sfun,__LINE__)); \
|
||||
label(sfun,__LINE__)->value.cFunction->body = []() -> Lisp_Object*
|
||||
|
||||
#define define(def, docs) _define_helper(def, docs, false)
|
||||
#define define_special(def, docs) _define_helper(def, docs, true)
|
||||
#define in_caller_env fluid_let( \
|
||||
Globals::Current_Execution::envi_stack.next_index, \
|
||||
Globals::Current_Execution::envi_stack.next_index-1)
|
||||
|
||||
|
||||
/*
|
||||
* iterate over lisp vectors
|
||||
*/
|
||||
#define for_lisp_vector(v) \
|
||||
if (!v); else \
|
||||
if (int it_index = 0); else \
|
||||
for (auto it = v->value.vector.data; \
|
||||
it_index < v->value.vector.length; \
|
||||
it=v->value.vector.data+(++it_index))
|
||||
|
||||
/*
|
||||
* iterate over lisp lists
|
||||
*/
|
||||
#define for_lisp_list(l) \
|
||||
if (!l); else \
|
||||
if (int it_index = 0); else \
|
||||
for (Lisp_Object* head = l, *it; \
|
||||
Memory::get_type(head) == Lisp_Object_Type::Pair && (it = head->value.pair.first); \
|
||||
head = head->value.pair.rest, ++it_index)
|
||||
@@ -1,4 +1,3 @@
|
||||
#define new(type) new type
|
||||
#define proc auto
|
||||
|
||||
#ifdef _DEBUG
|
||||
@@ -7,7 +6,6 @@
|
||||
# define if_debug if constexpr (false)
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# define debug_break() if_debug __debugbreak()
|
||||
# define if_windows if constexpr (true)
|
||||
@@ -18,262 +16,8 @@
|
||||
# define if_linux if constexpr (true)
|
||||
#endif
|
||||
|
||||
#define concat_( a, b) a##b
|
||||
#define label(prefix, lnum) concat_(prefix,lnum)
|
||||
|
||||
#define try_or_else_return(val) \
|
||||
if (1) \
|
||||
goto label(body,__LINE__); \
|
||||
else \
|
||||
while (1) \
|
||||
if (1) { \
|
||||
if (Globals::error) { \
|
||||
if (Globals::log_level == Log_Level::Debug) { \
|
||||
printf("in %s:%d\n", __FILE__, __LINE__); \
|
||||
} \
|
||||
return val; \
|
||||
} \
|
||||
break; \
|
||||
} \
|
||||
else label(body,__LINE__):
|
||||
;
|
||||
|
||||
#define try_struct try_or_else_return({})
|
||||
#define try_void try_or_else_return()
|
||||
#define try try_or_else_return(0)
|
||||
|
||||
#define dont_break_on_errors fluid_let(Globals::breaking_on_errors, false)
|
||||
#define ignore_logging fluid_let(Globals::log_level, Log_Level::None)
|
||||
|
||||
#define define_array_list(type, name) \
|
||||
\
|
||||
struct name##_Array_List { \
|
||||
type* data; \
|
||||
int length; \
|
||||
int next_index; \
|
||||
}; \
|
||||
\
|
||||
proc remove_index_from_array_list(name##_Array_List* arraylist, int index) -> void { \
|
||||
arraylist->data[index] = \
|
||||
arraylist->data[--(arraylist->next_index)]; \
|
||||
} \
|
||||
\
|
||||
proc append_to_array_list(name##_Array_List* arraylist, type element) -> void { \
|
||||
if (arraylist->next_index == arraylist->length) { \
|
||||
arraylist->length *= 2; \
|
||||
arraylist->data = \
|
||||
(type*)realloc(arraylist->data, arraylist->length * sizeof(type)); \
|
||||
} \
|
||||
arraylist->data[arraylist->next_index] = element; \
|
||||
arraylist->next_index++; \
|
||||
} \
|
||||
\
|
||||
proc _merge_array_lists(name##_Array_List* arr, int start, int mid, int end) -> void { \
|
||||
int start2 = mid + 1; \
|
||||
\
|
||||
/* If the direct merge is already sorted */ \
|
||||
if ((size_t)arr->data[mid] <= (size_t)arr->data[start2]) { \
|
||||
return; \
|
||||
} \
|
||||
\
|
||||
/* Two pointers to maintain start of both arrays to merge */ \
|
||||
while (start <= mid && start2 <= end) { \
|
||||
if ((size_t)arr->data[start] <= (size_t)arr->data[start2]) { \
|
||||
start++; \
|
||||
} \
|
||||
else { \
|
||||
type value = arr->data[start2]; \
|
||||
int index = start2; \
|
||||
\
|
||||
/* Shift all the elements between element 1; element 2, right by 1. */ \
|
||||
while (index != start) { \
|
||||
arr->data[index] = arr->data[index - 1]; \
|
||||
index--; \
|
||||
} \
|
||||
arr->data[start] = value; \
|
||||
\
|
||||
/* Update all the pointers */ \
|
||||
start++; \
|
||||
mid++; \
|
||||
start2++; \
|
||||
} \
|
||||
} \
|
||||
} \
|
||||
\
|
||||
proc sort_array_list(name##_Array_List* arraylist, int left=-1, int right=-1) -> void { \
|
||||
if (left == -1) { \
|
||||
sort_array_list(arraylist, 0, arraylist->next_index - 1); \
|
||||
return; \
|
||||
} else if (left == right) { \
|
||||
return; \
|
||||
} \
|
||||
\
|
||||
int middle = left + (right-left) / 2; \
|
||||
\
|
||||
sort_array_list(arraylist, left, middle); \
|
||||
sort_array_list(arraylist, middle+1, right); \
|
||||
\
|
||||
_merge_array_lists(arraylist, left, middle, right); \
|
||||
} \
|
||||
\
|
||||
proc sorted_array_list_find(name##_Array_List* arraylist, type elem, int left=-1, int right=-1) -> int { \
|
||||
if (left == -1) { \
|
||||
return sorted_array_list_find(arraylist, elem, 0, arraylist->next_index - 1); \
|
||||
} else if (left == right) { \
|
||||
if ((size_t)arraylist->data[left] == (size_t)elem) \
|
||||
return left; \
|
||||
return -1; \
|
||||
} else if (right < left) \
|
||||
return -1; \
|
||||
\
|
||||
int middle = left + (right-left) / 2; \
|
||||
\
|
||||
if ((size_t)arraylist->data[middle] < (size_t)elem) \
|
||||
return sorted_array_list_find(arraylist, elem, middle+1, right); \
|
||||
if ((size_t)arraylist->data[middle] > (size_t)elem) \
|
||||
return sorted_array_list_find(arraylist, elem, left, middle-1); \
|
||||
return middle; \
|
||||
} \
|
||||
\
|
||||
proc create_##name##_array_list(int initial_capacity = 16) -> name##_Array_List { \
|
||||
name##_Array_List ret; \
|
||||
ret.data = (type*)malloc(initial_capacity * sizeof(type)); \
|
||||
ret.next_index = 0; \
|
||||
ret.length = initial_capacity; \
|
||||
return ret; \
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* iterate over array lists
|
||||
*/
|
||||
#define for_array_list(l) \
|
||||
if (int it_index = 0); else \
|
||||
for (auto it = (l).data[0]; \
|
||||
it_index < (l).next_index; \
|
||||
it=(l).data[++it_index])
|
||||
|
||||
/*
|
||||
* iterate over lisp vectors
|
||||
*/
|
||||
#define for_lisp_vector(v) \
|
||||
if (!v); else \
|
||||
if (int it_index = 0); else \
|
||||
for (auto it = v->value.vector.data; \
|
||||
it_index < v->value.vector.length; \
|
||||
it=v->value.vector.data+(++it_index))
|
||||
|
||||
/*
|
||||
* iterate over lisp lists
|
||||
*/
|
||||
#define for_lisp_list(l) \
|
||||
if (!l); else \
|
||||
if (int it_index = 0); else \
|
||||
for (Lisp_Object* head = l, *it; \
|
||||
Memory::get_type(head) == Lisp_Object_Type::Pair && (it = head->value.pair.first); \
|
||||
head = head->value.pair.rest, ++it_index)
|
||||
|
||||
/**
|
||||
Usage of the create_error_macros:
|
||||
*/
|
||||
#define __create_error(keyword, ...) \
|
||||
create_error( \
|
||||
__FILE__, __LINE__, \
|
||||
Memory::get_or_create_lisp_object_keyword(keyword), \
|
||||
__VA_ARGS__)
|
||||
|
||||
#define create_out_of_memory_error(...) \
|
||||
__create_error("out-of-memory", __VA_ARGS__)
|
||||
|
||||
#define create_generic_error(...) \
|
||||
__create_error("generic", __VA_ARGS__)
|
||||
|
||||
#define create_not_yet_implemented_error() \
|
||||
__create_error("not-yet-implemented", "This feature has not yet been implemented.")
|
||||
|
||||
#define create_parsing_error(...) \
|
||||
__create_error("parsing-error", __VA_ARGS__)
|
||||
|
||||
#define create_symbol_undefined_error(...) \
|
||||
__create_error("symbol-undefined", __VA_ARGS__)
|
||||
|
||||
#define create_type_missmatch_error(expected, actual) \
|
||||
__create_error("type-missmatch", \
|
||||
"Type missmatch: expected %s, got %s", \
|
||||
expected, actual)
|
||||
|
||||
#define create_wrong_number_of_arguments_error(expected, actual) \
|
||||
__create_error("wrong-number-of-arguments", \
|
||||
"Wrong number of arguments: expected %d, got %d", \
|
||||
expected, actual)
|
||||
|
||||
#define create_too_many_arguments_error(expected, actual) \
|
||||
__create_error("wrong-number-of-arguments", \
|
||||
"Wrong number of arguments: expected less or equal to %d, got %d", \
|
||||
expected, actual)
|
||||
|
||||
#define create_too_few_arguments_error(expected, actual) \
|
||||
__create_error("wrong-number-of-arguments", \
|
||||
"Wrong number of arguments: expected greater or equal to %d, got %d", \
|
||||
expected, actual)
|
||||
|
||||
|
||||
#define assert_arguments_length(expected, actual) \
|
||||
do { \
|
||||
if (expected != actual) { \
|
||||
create_wrong_number_of_arguments_error(expected, actual); \
|
||||
} \
|
||||
} while(0)
|
||||
|
||||
#define assert_arguments_length_less_equal(expected, actual) \
|
||||
do { \
|
||||
if (expected < actual) { \
|
||||
create_too_many_arguments_error(expected, actual); \
|
||||
} \
|
||||
} while(0)
|
||||
|
||||
#define assert_arguments_length_greater_equal(expected, actual) \
|
||||
do { \
|
||||
if (expected > actual) { \
|
||||
create_too_few_arguments_error(expected, actual); \
|
||||
} \
|
||||
} while(0)
|
||||
|
||||
|
||||
#define assert_type(_node, _type) \
|
||||
do { \
|
||||
if (Memory::get_type(_node) != _type) { \
|
||||
create_type_missmatch_error( \
|
||||
Lisp_Object_Type_to_string(_type), \
|
||||
Lisp_Object_Type_to_string(Memory::get_type(_node))); \
|
||||
} \
|
||||
} while(0)
|
||||
|
||||
#define assert(condition) \
|
||||
do { \
|
||||
if (!(condition)) { \
|
||||
create_generic_error("Assertion-error."); \
|
||||
} \
|
||||
} while(0)
|
||||
|
||||
/*
|
||||
#define assert(cond) \
|
||||
if_debug { \
|
||||
if (!cond) { \
|
||||
if (log_level == Log_Level::Debug) { \
|
||||
printf("Assertion failed: %s %d", __FILE__, __LINE__); \
|
||||
} \
|
||||
debug_break(); \
|
||||
} \
|
||||
} else {} \
|
||||
*/
|
||||
|
||||
|
||||
#define console_normal "\x1B[0m"
|
||||
#define console_red "\x1B[31m"
|
||||
#define console_green "\x1B[32m"
|
||||
#define console_cyan "\x1B[36m"
|
||||
// #define console_normal ""
|
||||
// #define console_red ""
|
||||
// #define console_green ""
|
||||
// #define console_cyan ""
|
||||
|
||||
|
||||
@@ -1,157 +1,146 @@
|
||||
// proc generate_docs(String* path) -> void {
|
||||
// FILE *f = fopen(Memory::get_c_str(path), "w");
|
||||
// if (!f) {
|
||||
// create_generic_error("The file for writing the documentation (%s) "
|
||||
// "could not be opened for writing.", Memory::get_c_str(path));
|
||||
// return;
|
||||
// }
|
||||
// defer {
|
||||
// fclose(f);
|
||||
// };
|
||||
namespace Slime {
|
||||
proc generate_docs(String* path) -> void {
|
||||
FILE *f = fopen(Memory::get_c_str(path), "w");
|
||||
if (!f) {
|
||||
create_generic_error("The file for writing the documentation (%s) "
|
||||
"could not be opened for writing.", Memory::get_c_str(path));
|
||||
return;
|
||||
}
|
||||
defer {
|
||||
fclose(f);
|
||||
};
|
||||
|
||||
// Environment_Array_List visited = create_Environment_array_list();
|
||||
Array_List<Environment*> visited;
|
||||
|
||||
// // recursive inner funciton
|
||||
// std::function<void(Environment*, char* prefix)> print_this_env;
|
||||
// print_this_env = [&](Environment* env, char* prefix) -> void {
|
||||
// bool we_already_printed = false;
|
||||
// // TODO(Felix): Make a generic array_list_contains function
|
||||
// for_array_list(visited) {
|
||||
// if (it == env) {
|
||||
// we_already_printed = true;
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// if (!we_already_printed) {
|
||||
// printf("Working ion env::::");
|
||||
// print_environment(env);
|
||||
// printf("\n--------------------------------\n");
|
||||
// append_to_array_list(&visited, env);
|
||||
const auto print_this_env = [&](const auto& rec, Environment* env, char* prefix) -> void {
|
||||
bool we_already_printed = false;
|
||||
// TODO(Felix): Make a generic array_list_contains function
|
||||
for(auto it : visited) {
|
||||
if (it == env) {
|
||||
we_already_printed = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!we_already_printed) {
|
||||
// printf("Working on env::::");
|
||||
// print_environment(env);
|
||||
// printf("\n--------------------------------\n");
|
||||
visited.append(env);
|
||||
|
||||
// push_environment(env);
|
||||
// defer {
|
||||
// pop_environment();
|
||||
// };
|
||||
push_environment(env);
|
||||
defer {
|
||||
pop_environment();
|
||||
};
|
||||
|
||||
// for (int i = 0; i < env->next_index; ++i) {
|
||||
// fprintf(f, "\\hrule\n* =%s%s= \n"
|
||||
// // " :PROPERTIES:\n"
|
||||
// // " :UNNUMBERED: t\n"
|
||||
// // " :END:"
|
||||
// ,prefix, env->keys[i]);
|
||||
// /*
|
||||
// * sourcecodeLocation
|
||||
// */
|
||||
// if (env->values[i]->sourceCodeLocation) {
|
||||
// try_void fprintf(f, "\n - defined in :: =%s:%d:%d=",
|
||||
// Memory::get_c_str(env->values[i]->sourceCodeLocation->file),
|
||||
// env->values[i]->sourceCodeLocation->line,
|
||||
// env->values[i]->sourceCodeLocation->column);
|
||||
// }
|
||||
// /*
|
||||
// * type
|
||||
// */
|
||||
// Lisp_Object_Type type = Memory::get_type(env->values[i]);
|
||||
// Lisp_Object* LOtype;
|
||||
// try_void LOtype = eval_expr(Memory::create_list(
|
||||
// Memory::get_or_create_lisp_object_symbol("type"),
|
||||
// env->values[i]));
|
||||
for_hash_map(env->hm) {
|
||||
try_void fprintf(f,
|
||||
"#+latex: \\hrule\n"
|
||||
"#+html: <hr/>\n"
|
||||
"* =%s%s= \n"
|
||||
" :PROPERTIES:\n"
|
||||
" :UNNUMBERED: t\n"
|
||||
" :END:"
|
||||
,prefix, Memory::get_c_str(((Lisp_Object*)key)->value.symbol));
|
||||
/*
|
||||
* sourcecodeLocation
|
||||
*/
|
||||
if (value->sourceCodeLocation) {
|
||||
try_void fprintf(f, "\n - defined in :: =%s:%d:%d=",
|
||||
Memory::get_c_str(value->sourceCodeLocation->file),
|
||||
value->sourceCodeLocation->line,
|
||||
value->sourceCodeLocation->column);
|
||||
}
|
||||
/*
|
||||
* type
|
||||
*/
|
||||
Lisp_Object_Type type = Memory::get_type(value);
|
||||
Lisp_Object* LOtype;
|
||||
Lisp_Object* type_expr = Memory::create_list(Memory::get_symbol("type"), value);
|
||||
try_void LOtype = eval_expr(type_expr);
|
||||
|
||||
// fprintf(f, "\n - type :: =");
|
||||
// print(LOtype, true, f);
|
||||
// fprintf(f, "=");
|
||||
fprintf(f, "\n - type :: =");
|
||||
print(LOtype, true, f);
|
||||
fprintf(f, "=");
|
||||
|
||||
|
||||
// /*
|
||||
// * if printable value -> print it
|
||||
// */
|
||||
// switch (type) {
|
||||
// case(Lisp_Object_Type::Nil):
|
||||
// case(Lisp_Object_Type::T):
|
||||
// case(Lisp_Object_Type::Number):
|
||||
// case(Lisp_Object_Type::String):
|
||||
// case(Lisp_Object_Type::Pair):
|
||||
// case(Lisp_Object_Type::Symbol):
|
||||
// case(Lisp_Object_Type::Keyword): {
|
||||
// fprintf(f, "\n - value :: =");
|
||||
// print(env->values[i], true, f);
|
||||
// fprintf(f, "=");
|
||||
// } break;
|
||||
// default: break;
|
||||
// }
|
||||
// /*
|
||||
// * if function then print arguments
|
||||
// */
|
||||
// if (type == Lisp_Object_Type::Function) {
|
||||
// Lisp_Object* fun = env->values[i];
|
||||
// bool printed_at_least_some_args = false;
|
||||
// fprintf(f, "\n - arguments :: ");
|
||||
// if (fun->value.function.args.positional.symbols.next_index != 0) {
|
||||
// if (!printed_at_least_some_args)
|
||||
// fprintf(f, ":");
|
||||
// fprintf(f, "\n - postitional :: ");
|
||||
// try_void fprintf(f, "=%s=", Memory::get_c_str(fun->value.function.args.positional.symbols.data[0]->value.symbol.identifier));
|
||||
// for (int i = 1; i < fun->value.function.args.positional.symbols.next_index; ++i) {
|
||||
// fprintf(f, ", =%s=", Memory::get_c_str(fun->value.function.args.positional.symbols.data[i]->value.symbol.identifier));
|
||||
// }
|
||||
// }
|
||||
// if (fun->value.function.args.keyword.values.next_index != 0) {
|
||||
// if (!printed_at_least_some_args)
|
||||
// fprintf(f, ":");
|
||||
// fprintf(f, "\n - keyword :: ");
|
||||
// fprintf(f, "=%s=", Memory::get_c_str(fun->value.function.args.keyword.keywords.data[0]->value.symbol.identifier));
|
||||
// if (fun->value.function.args.keyword.values.data[0]) {
|
||||
// fprintf(f, " =(");
|
||||
// print(fun->value.function.args.keyword.values.data[0], true, f);
|
||||
// fprintf(f, ")=");
|
||||
// }
|
||||
// for (int i = 1; i < fun->value.function.args.keyword.values.next_index; ++i) {
|
||||
// fprintf(f, ", =%s=", Memory::get_c_str(fun->value.function.args.keyword.keywords.data[i]->value.symbol.identifier));
|
||||
// if (fun->value.function.args.keyword.values.data[i]) {
|
||||
// fprintf(f, " =(");
|
||||
// print(fun->value.function.args.keyword.values.data[i], true, f);
|
||||
// fprintf(f, ")=");
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// if (fun->value.function.args.rest) {
|
||||
// if (!printed_at_least_some_args)
|
||||
// fprintf(f, ":");
|
||||
// fprintf(f, "\n - rest :: =%s=", Memory::get_c_str(fun->value.function.args.rest->value.symbol.identifier));
|
||||
// }
|
||||
// // if no args at all
|
||||
// if (fun->value.function.args.positional.symbols.next_index == 0 &&
|
||||
// fun->value.function.args.keyword.values.next_index == 0 &&
|
||||
// !fun->value.function.args.rest)
|
||||
// {
|
||||
// fprintf(f, "none.");
|
||||
// }
|
||||
// }
|
||||
// fprintf(f, "\n - docu :: ");
|
||||
// if (env->values[i]->docstring)
|
||||
// fprintf(f, "\n #+BEGIN:\n%s\n #+END:\n",
|
||||
// Memory::get_c_str(env->values[i]->docstring));
|
||||
// else
|
||||
// fprintf(f, "none\n");
|
||||
/*
|
||||
* if printable value -> print it
|
||||
*/
|
||||
switch (type) {
|
||||
case(Lisp_Object_Type::Nil):
|
||||
case(Lisp_Object_Type::T):
|
||||
case(Lisp_Object_Type::Number):
|
||||
case(Lisp_Object_Type::String):
|
||||
case(Lisp_Object_Type::Pair):
|
||||
case(Lisp_Object_Type::Symbol):
|
||||
case(Lisp_Object_Type::Keyword): {
|
||||
fprintf(f, "\n - value :: =");
|
||||
print(value, true, f);
|
||||
fprintf(f, "=");
|
||||
} break;
|
||||
default: break;
|
||||
}
|
||||
/*
|
||||
* if function then print arguments
|
||||
*/
|
||||
if (type == Lisp_Object_Type::Function ||
|
||||
type == Lisp_Object_Type::CFunction)
|
||||
{
|
||||
Arguments* args =
|
||||
(type == Lisp_Object_Type::Function)
|
||||
? &value->value.function->args
|
||||
: &value->value.cFunction->args;
|
||||
fprintf(f, "\n - arguments :: ");
|
||||
// if no args at all
|
||||
if (args->positional.symbols.next_index == 0 &&
|
||||
args->keyword.values.next_index == 0 &&
|
||||
!args->rest)
|
||||
{
|
||||
fprintf(f, "none.");
|
||||
} else {
|
||||
if (args->positional.symbols.next_index != 0) {
|
||||
fprintf(f, "\n - postitional :: ");
|
||||
fprintf(f, "=%s=", Memory::get_c_str(args->positional.symbols.data[0]->value.symbol));
|
||||
for (int i = 1; i < args->positional.symbols.next_index; ++i) {
|
||||
fprintf(f, ", =%s=", Memory::get_c_str(args->positional.symbols.data[i]->value.symbol));
|
||||
}
|
||||
}
|
||||
if (args->keyword.values.next_index != 0) {
|
||||
fprintf(f, "\n - keyword :: ");
|
||||
fprintf(f, "=%s=", Memory::get_c_str(args->keyword.keywords.data[0]->value.symbol));
|
||||
if (args->keyword.values.data[0]) {
|
||||
fprintf(f, " =(");
|
||||
print(args->keyword.values.data[0], true, f);
|
||||
fprintf(f, ")=");
|
||||
}
|
||||
for (int i = 1; i < args->keyword.values.next_index; ++i) {
|
||||
fprintf(f, ", =%s=", Memory::get_c_str(args->keyword.keywords.data[i]->value.symbol));
|
||||
if (args->keyword.values.data[i]) {
|
||||
fprintf(f, " =(");
|
||||
print(args->keyword.values.data[i], true, f);
|
||||
fprintf(f, ")=");
|
||||
}
|
||||
}
|
||||
}
|
||||
if (args->rest) {
|
||||
fprintf(f, "\n - rest :: =%s=", Memory::get_c_str(args->rest->value.symbol));
|
||||
}
|
||||
}
|
||||
}
|
||||
fprintf(f, "\n - docu :: ");
|
||||
if (value->docstring)
|
||||
fprintf(f, "\n #+BEGIN:\n%s\n #+END:\n",
|
||||
Memory::get_c_str(value->docstring));
|
||||
else
|
||||
fprintf(f, "none\n");
|
||||
}
|
||||
}
|
||||
|
||||
// // if (Memory::get_type(env->values[i]) == Lisp_Object_Type::Function &&
|
||||
// // env->values[i]->userType &&
|
||||
// // (string_equal(env->values[i]->userType->value.symbol.identifier, "package") ||
|
||||
// // string_equal(env->values[i]->userType->value.symbol.identifier, "constructor")))
|
||||
// // {
|
||||
// // char new_prefix[200];
|
||||
// // strcpy(new_prefix, prefix);
|
||||
// // strcat(new_prefix, env->keys[i]);
|
||||
// // strcat(new_prefix, " ");
|
||||
// // print_this_env(env->values[i]->value.function.parent_environment, new_prefix);
|
||||
// // }
|
||||
// }
|
||||
// }
|
||||
for (int i = 0; i < env->parents.next_index; ++i) {
|
||||
try_void rec(rec, env->parents.data[i], prefix);
|
||||
}
|
||||
};
|
||||
|
||||
// for (int i = 0; i < env->parents.next_index; ++i) {
|
||||
// print_this_env(env->parents.data[i], prefix);
|
||||
// }
|
||||
// };
|
||||
|
||||
// print_this_env(get_current_environment(), (char*)"");
|
||||
// }
|
||||
print_this_env(print_this_env, get_current_environment(), (char*)"");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,119 +1,125 @@
|
||||
proc define_symbol(Lisp_Object* symbol, Lisp_Object* value) -> void {
|
||||
Environment* env = get_current_environment();
|
||||
hm_set(env->hm, symbol, value);
|
||||
}
|
||||
|
||||
inline proc lookup_symbol_in_this_envt(Lisp_Object* sym, Environment* env) -> Lisp_Object* {
|
||||
return (Lisp_Object*)hm_get_object(env->hm, sym);
|
||||
}
|
||||
|
||||
proc environment_binds_symbol(Lisp_Object* sym, Environment* env) -> bool {
|
||||
return lookup_symbol_in_this_envt(sym, env) != nullptr;
|
||||
}
|
||||
|
||||
proc find_binding_environment(Lisp_Object* sym, Environment* env) -> Environment* {
|
||||
if (environment_binds_symbol(sym, env))
|
||||
return env;
|
||||
for_array_list (env->parents) {
|
||||
if (Environment* ret = find_binding_environment(sym, it))
|
||||
return ret;
|
||||
namespace Slime {
|
||||
proc define_symbol(Lisp_Object* symbol, Lisp_Object* value) -> void {
|
||||
profile_with_comment(&symbol->value.symbol->data);
|
||||
Environment* env = get_current_environment();
|
||||
env->hm.set_object((void*)symbol, value);
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
proc try_lookup_symbol(Lisp_Object* node, Environment* env) -> Lisp_Object* {
|
||||
// first check current environment
|
||||
Lisp_Object* result;
|
||||
result = lookup_symbol_in_this_envt(node, env);
|
||||
if (result)
|
||||
return result;
|
||||
inline proc lookup_symbol_in_this_envt(Lisp_Object* sym, Environment* env) -> Lisp_Object* {
|
||||
return (Lisp_Object*)env->hm.get_object((void*)sym);
|
||||
}
|
||||
|
||||
for (int i = 0; i < env->parents.next_index; ++i) {
|
||||
result = try_lookup_symbol(node, env->parents.data[i]);
|
||||
proc environment_binds_symbol(Lisp_Object* sym, Environment* env) -> bool {
|
||||
return lookup_symbol_in_this_envt(sym, env) != nullptr;
|
||||
}
|
||||
|
||||
proc find_binding_environment(Lisp_Object* sym, Environment* env) -> Environment* {
|
||||
if (environment_binds_symbol(sym, env))
|
||||
return env;
|
||||
for (auto it : env->parents) {
|
||||
if (Environment* ret = find_binding_environment(sym, it))
|
||||
return ret;
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
proc try_lookup_symbol(Lisp_Object* node, Environment* env) -> Lisp_Object* {
|
||||
// first check current environment
|
||||
|
||||
Lisp_Object* result;
|
||||
result = lookup_symbol_in_this_envt(node, env);
|
||||
if (result)
|
||||
return result;
|
||||
|
||||
for (int i = 0; i < env->parents.next_index; ++i) {
|
||||
result = try_lookup_symbol(node, env->parents.data[i]);
|
||||
|
||||
if (result)
|
||||
return result;
|
||||
}
|
||||
|
||||
auto nil_sym = Memory::get_symbol("nil");
|
||||
auto t_sym = Memory::get_symbol("t");
|
||||
|
||||
if (node == nil_sym) {
|
||||
return Memory::nil;
|
||||
}
|
||||
if (node == t_sym) {
|
||||
return Memory::t;
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
inline proc push_environment(Environment* env) -> void {
|
||||
using namespace Globals::Current_Execution;
|
||||
envi_stack.append(env);
|
||||
}
|
||||
|
||||
inline proc pop_environment() -> void {
|
||||
using namespace Globals::Current_Execution;
|
||||
--envi_stack.next_index;
|
||||
}
|
||||
|
||||
inline proc get_root_environment() -> Environment* {
|
||||
using namespace Globals::Current_Execution;
|
||||
return envi_stack.data[0];
|
||||
}
|
||||
|
||||
inline proc get_current_environment() -> Environment* {
|
||||
using namespace Globals::Current_Execution;
|
||||
return envi_stack.data[envi_stack.next_index-1];
|
||||
}
|
||||
|
||||
proc lookup_symbol(Lisp_Object* node, Environment* env) -> Lisp_Object* {
|
||||
profile_with_comment(&node->value.symbol->data);
|
||||
// print(node);
|
||||
assert_type(node, Lisp_Object_Type::Symbol);
|
||||
|
||||
Lisp_Object* result = try_lookup_symbol(node, env);
|
||||
|
||||
if (result)
|
||||
return result;
|
||||
|
||||
String* identifier = node->value.symbol;
|
||||
print_environment(env);
|
||||
printf("\n");
|
||||
create_symbol_undefined_error("The symbol '%s' is not defined.", &identifier->data);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
auto nil_sym = Memory::get_or_create_lisp_object_symbol("nil");
|
||||
auto t_sym = Memory::get_or_create_lisp_object_symbol("t");
|
||||
|
||||
if (node == nil_sym) {
|
||||
return Memory::nil;
|
||||
}
|
||||
if (node == t_sym) {
|
||||
return Memory::t;
|
||||
proc print_environment_indent(Environment* env, int indent) -> void {
|
||||
proc print_indent = [](int indent) {
|
||||
for (int i = 0; i < indent; ++i) {
|
||||
printf(" ");
|
||||
}
|
||||
};
|
||||
|
||||
if(env == get_root_environment()) {
|
||||
print_indent(indent);
|
||||
printf("[built-ins]-Environment (%lld)\n", (long long)env);
|
||||
return;
|
||||
}
|
||||
|
||||
for_hash_map (env->hm) {
|
||||
print_indent(indent);
|
||||
printf("-> %s :: ", &(((Lisp_Object*)key)->value.symbol->data));
|
||||
print((Lisp_Object*)value);
|
||||
printf(" (0x%016llx)", (unsigned long long)value);
|
||||
puts("");
|
||||
}
|
||||
for (int i = 0; i < env->parents.next_index; ++i) {
|
||||
print_indent(indent);
|
||||
printf("parent (0x%016llx)", (long long)env->parents.data[i]);
|
||||
puts(":");
|
||||
print_environment_indent(env->parents.data[i], indent+4);
|
||||
}
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
inline proc push_environment(Environment* env) -> void {
|
||||
using namespace Globals::Current_Execution;
|
||||
append_to_array_list(&envi_stack, env);
|
||||
}
|
||||
|
||||
inline proc pop_environment() -> void {
|
||||
using namespace Globals::Current_Execution;
|
||||
--envi_stack.next_index;
|
||||
}
|
||||
|
||||
inline proc get_root_environment() -> Environment* {
|
||||
using namespace Globals::Current_Execution;
|
||||
return envi_stack.data[0];
|
||||
}
|
||||
|
||||
inline proc get_current_environment() -> Environment* {
|
||||
using namespace Globals::Current_Execution;
|
||||
return envi_stack.data[envi_stack.next_index-1];
|
||||
}
|
||||
|
||||
proc lookup_symbol(Lisp_Object* node, Environment* env) -> Lisp_Object* {
|
||||
// print(node);
|
||||
// printf("\n");
|
||||
assert_type(node, Lisp_Object_Type::Symbol);
|
||||
|
||||
Lisp_Object* result = try_lookup_symbol(node, env);
|
||||
|
||||
if (result)
|
||||
return result;
|
||||
|
||||
String* identifier = node->value.symbol.identifier;
|
||||
create_symbol_undefined_error("The symbol '%s' is not defined.", &identifier->data);
|
||||
print_environment(env);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
|
||||
proc print_indent(int indent) -> void {
|
||||
for (int i = 0; i < indent; ++i) {
|
||||
printf(" ");
|
||||
proc print_environment(Environment* env) -> void {
|
||||
printf("\n=== Environment === (0x%016llx)\n", (long long)env);
|
||||
print_environment_indent(env, 0);
|
||||
}
|
||||
}
|
||||
|
||||
proc print_environment_indent(Environment* env, int indent) -> void {
|
||||
// if(env == get_root_environment()) {
|
||||
// print_indent(indent);
|
||||
// printf("[built-ins]-Environment (%lld)\n", (long long)env);
|
||||
// return;
|
||||
// }
|
||||
|
||||
for_ptr_hash_map (env->hm) {
|
||||
print_indent(indent);
|
||||
printf("-> %s :: ", &(((Lisp_Object*)key)->value.symbol.identifier->data));
|
||||
print((Lisp_Object*)value);
|
||||
printf(" (0x%016llx)", (unsigned long long)value);
|
||||
puts("");
|
||||
}
|
||||
for (int i = 0; i < env->parents.next_index; ++i) {
|
||||
print_indent(indent);
|
||||
printf("parent (0x%016llx)", (long long)env->parents.data[i]);
|
||||
puts(":");
|
||||
print_environment_indent(env->parents.data[i], indent+4);
|
||||
}
|
||||
}
|
||||
|
||||
proc print_environment(Environment* env) -> void {
|
||||
printf("\n=== Environment === (0x%016llx)\n", (long long)env);
|
||||
print_environment_indent(env, 0);
|
||||
}
|
||||
|
||||
@@ -1,86 +1,57 @@
|
||||
proc delete_error() -> void {
|
||||
using Globals::error;
|
||||
namespace Slime {
|
||||
|
||||
proc delete_error() -> void {
|
||||
using Globals::error;
|
||||
|
||||
if (error) {
|
||||
free(error);
|
||||
error = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
proc create_error(const char* c_file_name, int c_file_line, Lisp_Object* type, String* message) -> void {
|
||||
proc create_error(const char* c_func_name,const char* c_file_name, int c_file_line, Lisp_Object* type, String* message) -> void {
|
||||
delete_error();
|
||||
if (Globals::breaking_on_errors) {
|
||||
debug_break();
|
||||
}
|
||||
|
||||
if (Globals::log_level > Log_Level::None) {
|
||||
printf("Error created in:\n %s:%d\n", c_file_name, c_file_line);
|
||||
printf(" -> %s\n", Memory::get_c_str(message));
|
||||
}
|
||||
|
||||
delete_error();
|
||||
if (Globals::breaking_on_errors) {
|
||||
debug_break();
|
||||
}
|
||||
// visualize_lisp_machine();
|
||||
|
||||
using Globals::error;
|
||||
|
||||
error = new(Error);
|
||||
error->type = type;
|
||||
error->message = message;
|
||||
}
|
||||
|
||||
|
||||
proc create_error(const char* c_file_name, int c_file_line, Lisp_Object* type, const char* format, ...) -> void {
|
||||
// HACK(Felix): the length of all error strings is 200!!!!!!!!!!
|
||||
using Globals::error;
|
||||
|
||||
int length = 200;
|
||||
String* formatted_string = Memory::create_string("", length);
|
||||
if (error) {
|
||||
error = new(Error);
|
||||
using Globals::error;
|
||||
error = (Error*)malloc(sizeof(Error)) ;
|
||||
error->type = type;
|
||||
error->message = message;
|
||||
|
||||
log_error();
|
||||
if (Globals::log_level > Log_Level::None) {
|
||||
// c error location
|
||||
printf("in");
|
||||
int spacing = 30-((int)strlen(c_file_name) + (int)log10(c_file_line));
|
||||
if (spacing < 1) spacing = 1;
|
||||
for (int i = 0; i < spacing; ++i)
|
||||
printf(" ");
|
||||
printf("%s (%d) ", c_file_name, c_file_line);
|
||||
printf("-> %s\n", c_func_name);
|
||||
}
|
||||
|
||||
// visualize_lisp_machine();
|
||||
}
|
||||
int written_length;
|
||||
va_list args;
|
||||
va_start(args, format);
|
||||
written_length = vsnprintf(&formatted_string->data, length, format, args);
|
||||
va_end(args);
|
||||
|
||||
formatted_string->length = written_length;
|
||||
proc create_error(const char* c_func_name, const char* c_file_name, int c_file_line, Lisp_Object* type, const char* format, ...) -> void {
|
||||
using Globals::error;
|
||||
|
||||
create_error(c_file_name, c_file_line, type, formatted_string);
|
||||
int length = 200;
|
||||
String* formatted_string = Memory::create_string("", length);
|
||||
if (error) {
|
||||
error = new(Error);
|
||||
error->type = type;
|
||||
}
|
||||
int written_length;
|
||||
va_list args;
|
||||
char* out_msg;
|
||||
va_start(args, format);
|
||||
written_length = vasprintf(&out_msg, format, args);
|
||||
va_end(args);
|
||||
|
||||
formatted_string->length = written_length;
|
||||
strcpy(&formatted_string->data, out_msg);
|
||||
free(out_msg);
|
||||
create_error(c_func_name, c_file_name, c_file_line, type, formatted_string);
|
||||
}
|
||||
}
|
||||
|
||||
// proc Error_Type_to_string(Error_Type type) -> const char* {
|
||||
// switch (type) {
|
||||
// case Error_Type::Assertion_Error: return "Assertion failed";
|
||||
// case Error_Type::File_Not_Found: return "File not found";
|
||||
// case Error_Type::Ill_Formed_Arguments: return "Evaluation-error: Ill formed arguments";
|
||||
// case Error_Type::Ill_Formed_Lambda_List: return "Evaluation-error: Ill formed lambda list";
|
||||
// case Error_Type::Ill_Formed_List: return "Evaluation-error: Ill formed list";
|
||||
// case Error_Type::Not_A_Function: return "Evaluation-error: Not a function";
|
||||
// case Error_Type::Not_Yet_Implemented: return "Evaluation-error: Not yet implemented";
|
||||
// case Error_Type::Symbol_Not_Defined: return "Evaluation-error: Symbol not defined";
|
||||
// case Error_Type::Syntax_Error: return "Syntax Error";
|
||||
// case Error_Type::Trailing_Garbage: return "Evaluation-error: Trailing garbage following expression";
|
||||
// case Error_Type::Type_Missmatch: return "Evaluation-error: Type Missmatch";
|
||||
// case Error_Type::Unbalanced_Parenthesis: return "Parsing-error: Unbalanced parenthesis";
|
||||
// case Error_Type::Unexpected_Eof: return "Parsing-error: Unexpected EOF";
|
||||
// case Error_Type::Unknown_Keyword_Argument: return "Evaluation-error: Unknown keyword argument";
|
||||
// case Error_Type::Wrong_Number_Of_Arguments: return "Evaluation-error: Wrong number of arguments";
|
||||
// case Error_Type::Out_Of_Memory: return "Runtime-error: Out of memory";
|
||||
// default: return "this error type doesn't have a desciption..";
|
||||
// }
|
||||
// }
|
||||
|
||||
// proc assert_type(Lisp_Object* node, Lisp_Object_Type type) -> void {
|
||||
// if (!node) {
|
||||
// create_generic_error(
|
||||
// "The node where the type should have"
|
||||
// "been checked was nullptr.");
|
||||
// return;
|
||||
// }
|
||||
|
||||
// if (node->type != type)
|
||||
// create_type_missmatch_error(
|
||||
// ""
|
||||
// );
|
||||
// }
|
||||
|
||||
@@ -1,118 +1,85 @@
|
||||
// proc assert_type(Lisp_Object*, Lisp_Object_Type) -> void;
|
||||
proc lisp_object_equal(Lisp_Object*,Lisp_Object*) -> bool;
|
||||
proc built_in_load(String*) -> Lisp_Object*;
|
||||
proc built_in_import(String*) -> Lisp_Object*;
|
||||
proc create_error(const char* c_file_name, int c_file_line, Lisp_Object* type, String* message) -> void;
|
||||
proc create_error(const char* c_file_name, int c_file_line, Lisp_Object* type, const char* format, ...) -> void;
|
||||
proc create_error(Lisp_Object* type, const char* message, const char* c_file_name, int c_file_line) -> void;
|
||||
proc eval_arguments(Lisp_Object*) -> Lisp_Object*;
|
||||
proc eval_expr(Lisp_Object*) -> Lisp_Object*;
|
||||
proc is_truthy (Lisp_Object*) -> bool;
|
||||
proc list_length(Lisp_Object*) -> int;
|
||||
proc load_built_ins_into_environment() -> void;
|
||||
proc create_arguments_from_lambda_list_and_inject(Lisp_Object* formal_arguments, Lisp_Object* function) -> void;
|
||||
namespace Slime {
|
||||
void add_to_load_path(const char*);
|
||||
bool lisp_object_equal(Lisp_Object*,Lisp_Object*);
|
||||
Lisp_Object* built_in_load(String*);
|
||||
Lisp_Object* built_in_import(String*);
|
||||
void delete_error();
|
||||
void create_error(const char* c_func_name, const char* c_file_name, int c_file_line, Lisp_Object* type, const char* format, ...);
|
||||
void create_error(const char* c_func_name, const char* c_file_name, int c_file_line, Lisp_Object* type, String* message);
|
||||
void create_error(Lisp_Object* type, const char* message, const char* c_file_name, int c_file_line);
|
||||
Lisp_Object* eval_arguments(Lisp_Object*);
|
||||
Lisp_Object* eval_expr(Lisp_Object*);
|
||||
bool is_truthy (Lisp_Object*);
|
||||
int list_length(Lisp_Object*);
|
||||
void* load_built_ins_into_environment();
|
||||
void create_arguments_from_lambda_list_and_inject(Lisp_Object* formal_arguments, Lisp_Object* function);
|
||||
|
||||
Lisp_Object* lookup_symbol(Lisp_Object* symbol, Environment*);
|
||||
void define_symbol(Lisp_Object* symbol, Lisp_Object* value);
|
||||
void print(Lisp_Object* node, bool print_repr = false, FILE* file = stdout);
|
||||
void print_environment(Environment*);
|
||||
|
||||
proc print_environment(Environment*) -> void;
|
||||
inline proc get_root_environment() -> Environment*;
|
||||
inline proc get_current_environment() -> Environment*;
|
||||
inline proc push_environment(Environment*) -> void;
|
||||
inline proc pop_environment() -> void;
|
||||
bool run_all_tests();
|
||||
|
||||
proc Lisp_Object_Type_to_string(Lisp_Object_Type type) -> const char*;
|
||||
inline Environment* get_root_environment();
|
||||
inline Environment* get_current_environment();
|
||||
inline void push_environment(Environment*);
|
||||
inline void pop_environment();
|
||||
|
||||
proc visualize_lisp_machine() -> void;
|
||||
proc generate_docs(String* path) -> void;
|
||||
const char* Lisp_Object_Type_to_string(Lisp_Object_Type type);
|
||||
|
||||
namespace Memory {
|
||||
proc create_built_ins_environment() -> Environment*;
|
||||
proc get_or_create_lisp_object_keyword(const char* identifier) -> Lisp_Object*;
|
||||
inline proc get_type(Lisp_Object* node) -> Lisp_Object_Type;
|
||||
}
|
||||
void visualize_lisp_machine();
|
||||
void generate_docs(String* path);
|
||||
void log_error();
|
||||
|
||||
namespace Parser {
|
||||
// extern Environment* environment_for_macros;
|
||||
|
||||
extern String* standard_in;
|
||||
extern String* parser_file;
|
||||
extern int parser_line;
|
||||
extern int parser_col;
|
||||
|
||||
proc parse_single_expression(char* text) -> Lisp_Object*;
|
||||
}
|
||||
|
||||
namespace Globals {
|
||||
char* bin_path = nullptr;
|
||||
Log_Level log_level = Log_Level::Debug;
|
||||
|
||||
namespace Current_Execution {
|
||||
Lisp_Object_Array_List call_stack = create_Lisp_Object_array_list();
|
||||
Environment_Array_List envi_stack = create_Environment_array_list();
|
||||
namespace Memory {
|
||||
Environment* create_built_ins_environment();
|
||||
Lisp_Object* create_lisp_object_cfunction(bool is_special);
|
||||
inline Lisp_Object_Type get_type(Lisp_Object* node);
|
||||
void init(int);
|
||||
char* get_c_str(String*);
|
||||
void free_everything();
|
||||
String* create_string(const char*);
|
||||
Lisp_Object* get_symbol(String* identifier);
|
||||
Lisp_Object* get_symbol(const char*);
|
||||
Lisp_Object* get_keyword(String* identifier);
|
||||
Lisp_Object* get_keyword(const char*);
|
||||
Lisp_Object* create_lisp_object(double);
|
||||
Lisp_Object* create_lisp_object(const char*);
|
||||
Lisp_Object* create_lisp_object_vector(Lisp_Object*);
|
||||
Lisp_Object* create_lisp_object_vector(Lisp_Object*, Lisp_Object*);
|
||||
Lisp_Object* create_lisp_object_vector(Lisp_Object*, Lisp_Object*, Lisp_Object*);
|
||||
Lisp_Object* create_lisp_object_vector(int, Lisp_Object*);
|
||||
inline Lisp_Object* create_list(Lisp_Object*);
|
||||
inline Lisp_Object* create_list(Lisp_Object*,Lisp_Object*);
|
||||
inline Lisp_Object* create_list(Lisp_Object*,Lisp_Object*,Lisp_Object*);
|
||||
inline Lisp_Object* create_list(Lisp_Object*,Lisp_Object*,Lisp_Object*,Lisp_Object*);
|
||||
inline Lisp_Object* create_list(Lisp_Object*,Lisp_Object*,Lisp_Object*,Lisp_Object*,Lisp_Object*);
|
||||
inline Lisp_Object* create_list(Lisp_Object*,Lisp_Object*,Lisp_Object*,Lisp_Object*,Lisp_Object*,Lisp_Object*);
|
||||
}
|
||||
|
||||
#ifdef _DONT_BREAK_ON_ERRORS
|
||||
bool breaking_on_errors = false;
|
||||
#else
|
||||
bool breaking_on_errors = true;
|
||||
#endif
|
||||
Error* error = nullptr;
|
||||
}
|
||||
namespace Parser {
|
||||
// extern Environment* environment_for_macros;
|
||||
|
||||
extern String* standard_in;
|
||||
extern String* parser_file;
|
||||
extern int parser_line;
|
||||
extern int parser_col;
|
||||
|
||||
inline bool hm_objects_match(char* a, char* b) {
|
||||
return strcmp(a, b) == 0;
|
||||
}
|
||||
|
||||
inline bool hm_objects_match(void* a, void* b) {
|
||||
return a == b;
|
||||
}
|
||||
|
||||
u32 hm_hash(void* ptr) {
|
||||
return ((unsigned long long)ptr * 2654435761) % 4294967296;
|
||||
}
|
||||
|
||||
u32 hm_hash(char* str) {
|
||||
u32 value = str[0] << 7;
|
||||
int i = 0;
|
||||
while (str[i]) {
|
||||
value = (10000003 * value) ^ str[i++];
|
||||
Lisp_Object* parse_expression(char* text, int* index_in_text);
|
||||
Lisp_Object* parse_single_expression(char* text);
|
||||
Lisp_Object* parse_single_expression(wchar_t* text);
|
||||
}
|
||||
return value ^ i;
|
||||
}
|
||||
|
||||
inline bool hm_objects_match(Lisp_Object* a, Lisp_Object* b) {
|
||||
return lisp_object_equal(a, b);
|
||||
}
|
||||
|
||||
u32 hm_hash(Lisp_Object* obj) {
|
||||
switch (Memory::get_type(obj)) {
|
||||
// hash from adress: if two objects of these types have
|
||||
// different addresses, they are different
|
||||
case Lisp_Object_Type::CFunction:
|
||||
case Lisp_Object_Type::Function:
|
||||
case Lisp_Object_Type::Symbol:
|
||||
case Lisp_Object_Type::Keyword:
|
||||
case Lisp_Object_Type::Continuation:
|
||||
case Lisp_Object_Type::Nil:
|
||||
case Lisp_Object_Type::T:
|
||||
return hm_hash((void*) obj);
|
||||
// hash from contents: even if objects are themselved
|
||||
// different, they cauld be equivalent:
|
||||
case Lisp_Object_Type::Pointer: return hm_hash((void*) obj->value.pointer);
|
||||
case Lisp_Object_Type::Number: return hm_hash((void*) (unsigned long long)obj->value.number); // HACK(Felix): yes
|
||||
case Lisp_Object_Type::String: return hm_hash((char*) &obj->value.string->data);
|
||||
case Lisp_Object_Type::Pair: {
|
||||
u32 hash = 1;
|
||||
for_lisp_list (obj) {
|
||||
hash <<= 1;
|
||||
hash += hm_hash(it);
|
||||
namespace Globals {
|
||||
extern char* bin_path;
|
||||
extern Log_Level log_level;
|
||||
extern Array_List<void*> load_path;
|
||||
namespace Current_Execution {
|
||||
extern Array_List<Lisp_Object*> call_stack;
|
||||
extern Array_List<Environment*> envi_stack;
|
||||
}
|
||||
return hash;
|
||||
} break;
|
||||
case Lisp_Object_Type::Vector:
|
||||
case Lisp_Object_Type::HashMap:
|
||||
default:
|
||||
create_not_yet_implemented_error();
|
||||
return 0;
|
||||
extern Error* error;
|
||||
extern bool breaking_on_errors;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
namespace GC {
|
||||
namespace Slime::GC {
|
||||
proc maybe_mark(Environment* env) -> void;
|
||||
|
||||
int current_mark;
|
||||
|
||||
Lisp_Object_Array_List marked_objects;
|
||||
String_Array_List marked_strings;
|
||||
Environment_Array_List marked_environments;
|
||||
Environment_Array_List protected_environments;
|
||||
Array_List<Lisp_Object*> marked_objects;
|
||||
Array_List<String*> marked_strings;
|
||||
Array_List<Environment*> marked_environments;
|
||||
Array_List<Environment*> protected_environments;
|
||||
|
||||
proc marked(Lisp_Object* node) -> bool {
|
||||
return false;
|
||||
@@ -21,11 +21,11 @@ namespace GC {
|
||||
return;
|
||||
|
||||
// mark object itself
|
||||
append_to_array_list(&marked_objects, node);
|
||||
marked_objects.append(node);
|
||||
|
||||
// mark docstring
|
||||
if (node->docstring)
|
||||
append_to_array_list(&marked_strings, node->docstring);
|
||||
marked_strings.append(node->docstring);
|
||||
|
||||
// mark type specific data
|
||||
switch (Memory::get_type(node)) {
|
||||
@@ -40,17 +40,18 @@ namespace GC {
|
||||
}
|
||||
} break;
|
||||
case Lisp_Object_Type::String: {
|
||||
append_to_array_list(&marked_strings, node->value.string);
|
||||
marked_strings.append(node->value.string);
|
||||
} break;
|
||||
case Lisp_Object_Type::Function: {
|
||||
// NOTE(Felix): We dont have to mark the symbols, keywords
|
||||
// for parameter names, as symbols and keywords are never
|
||||
// garbage collected
|
||||
maybe_mark(node->value.function.parent_environment);
|
||||
maybe_mark(node->value.function.body);
|
||||
maybe_mark(node->value.function->parent_environment);
|
||||
maybe_mark(node->value.function->body);
|
||||
// mark the default arguemnt values:
|
||||
for_array_list (node->value.function.args.keyword.values) {
|
||||
if (it) maybe_mark(it);
|
||||
for (auto it : node->value.function->args.keyword.values) {
|
||||
if (it)
|
||||
maybe_mark(it);
|
||||
}
|
||||
} break;
|
||||
default: break;
|
||||
@@ -62,10 +63,10 @@ namespace GC {
|
||||
if (marked(env))
|
||||
return;
|
||||
|
||||
append_to_array_list(&marked_environments, env);
|
||||
marked_environments.append(env);
|
||||
|
||||
for_array_list (env->parents) {
|
||||
maybe_mark(it);
|
||||
for (auto p : env->parents) {
|
||||
maybe_mark(p);
|
||||
}
|
||||
|
||||
// Lisp_Object* it = env->values[0];
|
||||
@@ -75,17 +76,15 @@ namespace GC {
|
||||
}
|
||||
|
||||
proc garbage_collect() -> void {
|
||||
profile_this;
|
||||
profile_this();
|
||||
++current_mark;
|
||||
|
||||
for_array_list (protected_environments) maybe_mark(it);
|
||||
for_array_list (Globals::Current_Execution::envi_stack) maybe_mark(it);
|
||||
for (auto it : protected_environments) maybe_mark(it);
|
||||
for (auto it : Globals::Current_Execution::envi_stack) maybe_mark(it);
|
||||
}
|
||||
|
||||
proc gc_init_and_go() -> void {
|
||||
current_mark = 0;
|
||||
marked_objects = create_Lisp_Object_array_list(1024);
|
||||
marked_environments = create_Environment_array_list(1024);
|
||||
|
||||
while (1) {
|
||||
garbage_collect();
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
namespace Slime::Globals {
|
||||
char* bin_path = nullptr;
|
||||
Log_Level log_level = Log_Level::Debug;
|
||||
|
||||
Array_List<void*> load_path;
|
||||
namespace Current_Execution {
|
||||
Array_List<Lisp_Object*> call_stack;
|
||||
Array_List<Environment*> envi_stack;
|
||||
}
|
||||
|
||||
Error* error = nullptr;
|
||||
#ifdef _DONT_BREAK_ON_ERRORS
|
||||
bool breaking_on_errors = false;
|
||||
#else
|
||||
bool breaking_on_errors = true;
|
||||
#endif
|
||||
}
|
||||
@@ -1,418 +1,462 @@
|
||||
proc string_equal(const char input[], const char check[]) -> bool {
|
||||
if (input == check) return true;
|
||||
namespace Slime {
|
||||
proc string_equal(const char input[], const char check[]) -> bool {
|
||||
if (input == check) return true;
|
||||
|
||||
for(int i = 0; input[i] == check[i]; i++) {
|
||||
if (input[i] == '\0')
|
||||
for(int i = 0; input[i] == check[i]; i++) {
|
||||
if (input[i] == '\0')
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
proc string_equal(String* str, const char check[]) -> bool {
|
||||
return string_equal(Memory::get_c_str(str), check);
|
||||
}
|
||||
|
||||
proc string_equal(const char check[], String* str) -> bool {
|
||||
return string_equal(Memory::get_c_str(str), check);
|
||||
}
|
||||
|
||||
proc string_equal(String* str1, String* str2) -> bool {
|
||||
if (str1 == str2)
|
||||
return true;
|
||||
|
||||
return string_equal(Memory::get_c_str(str1), Memory::get_c_str(str2));
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
proc string_equal(String* str, const char check[]) -> bool {
|
||||
return string_equal(Memory::get_c_str(str), check);
|
||||
}
|
||||
|
||||
proc string_equal(const char check[], String* str) -> bool {
|
||||
return string_equal(Memory::get_c_str(str), check);
|
||||
}
|
||||
|
||||
proc string_equal(String* str1, String* str2) -> bool {
|
||||
if (str1 == str2)
|
||||
return true;
|
||||
|
||||
return string_equal(Memory::get_c_str(str1), Memory::get_c_str(str2));
|
||||
}
|
||||
|
||||
proc get_nibble(char c) -> char {
|
||||
if (c >= 'A' && c <= 'F')
|
||||
return (c - 'A') + 10;
|
||||
else if (c >= 'a' && c <= 'f')
|
||||
return (c - 'a') + 10;
|
||||
return (c - '0');
|
||||
}
|
||||
|
||||
proc escape_string(char* in) -> char* {
|
||||
// TODO(Felix): add more escape sequences
|
||||
int i = 0, count = 0;
|
||||
while (in[i] != '\0') {
|
||||
switch (in[i]) {
|
||||
case '\\':
|
||||
case '\n':
|
||||
case '\t':
|
||||
++count;
|
||||
default: break;
|
||||
}
|
||||
++i;
|
||||
proc get_nibble(char c) -> char {
|
||||
if (c >= 'A' && c <= 'F')
|
||||
return (c - 'A') + 10;
|
||||
else if (c >= 'a' && c <= 'f')
|
||||
return (c - 'a') + 10;
|
||||
return (c - '0');
|
||||
}
|
||||
|
||||
char* ret = (char*)malloc((i+count+1)*sizeof(char));
|
||||
|
||||
// copy in
|
||||
i = 0;
|
||||
int j = 0;
|
||||
while (in[i] != '\0') {
|
||||
switch (in[i]) {
|
||||
case '\\': ret[j++] = '\\'; ret[j++] = '\\'; break;
|
||||
case '\n': ret[j++] = '\\'; ret[j++] = 'n'; break;
|
||||
case '\t': ret[j++] = '\\'; ret[j++] = 't'; break;
|
||||
default: ret[j++] = in[i];
|
||||
}
|
||||
++i;
|
||||
}
|
||||
ret[j++] = '\0';
|
||||
return ret;
|
||||
}
|
||||
|
||||
proc unescape_string(char* in) -> bool {
|
||||
if (!in)
|
||||
return true;
|
||||
|
||||
char *out = in, *p = in;
|
||||
const char *int_err = nullptr;
|
||||
|
||||
while (*p && !int_err) {
|
||||
if (*p != '\\') {
|
||||
/* normal case */
|
||||
*out++ = *p++;
|
||||
} else {
|
||||
/* escape sequence */
|
||||
switch (*++p) {
|
||||
case '0': *out++ = '\a'; ++p; break;
|
||||
case 'a': *out++ = '\a'; ++p; break;
|
||||
case 'b': *out++ = '\b'; ++p; break;
|
||||
case 'f': *out++ = '\f'; ++p; break;
|
||||
case 'n': *out++ = '\n'; ++p; break;
|
||||
case 'r': *out++ = '\r'; ++p; break;
|
||||
case 't': *out++ = '\t'; ++p; break;
|
||||
case 'v': *out++ = '\v'; ++p; break;
|
||||
case '"':
|
||||
case '\'':
|
||||
proc escape_string(char* in) -> char* {
|
||||
// TODO(Felix): add more escape sequences
|
||||
int i = 0, count = 0;
|
||||
while (in[i] != '\0') {
|
||||
switch (in[i]) {
|
||||
case '\\':
|
||||
case '\n':
|
||||
case '\t':
|
||||
++count;
|
||||
default: break;
|
||||
}
|
||||
++i;
|
||||
}
|
||||
|
||||
char* ret = (char*)malloc((i+count+1)*sizeof(char));
|
||||
|
||||
// copy in
|
||||
i = 0;
|
||||
int j = 0;
|
||||
while (in[i] != '\0') {
|
||||
switch (in[i]) {
|
||||
case '\\': ret[j++] = '\\'; ret[j++] = '\\'; break;
|
||||
case '\n': ret[j++] = '\\'; ret[j++] = 'n'; break;
|
||||
case '\t': ret[j++] = '\\'; ret[j++] = 't'; break;
|
||||
default: ret[j++] = in[i];
|
||||
}
|
||||
++i;
|
||||
}
|
||||
ret[j++] = '\0';
|
||||
return ret;
|
||||
}
|
||||
|
||||
proc unescape_string(char* in) -> int {
|
||||
if (!in) return 0;
|
||||
|
||||
char *out = in, *p = in;
|
||||
const char *int_err = nullptr;
|
||||
|
||||
while (*p && !int_err) {
|
||||
if (*p != '\\') {
|
||||
/* normal case */
|
||||
*out++ = *p++;
|
||||
case '?':
|
||||
break;
|
||||
case 'x':
|
||||
case 'X':
|
||||
if (!isxdigit(p[1]) || !isxdigit(p[2])) {
|
||||
} else {
|
||||
/* escape sequence */
|
||||
switch (*++p) {
|
||||
case '0': *out++ = '\a'; ++p; break;
|
||||
case 'a': *out++ = '\a'; ++p; break;
|
||||
case 'b': *out++ = '\b'; ++p; break;
|
||||
case 'f': *out++ = '\f'; ++p; break;
|
||||
case 'n': *out++ = '\n'; ++p; break;
|
||||
case 'r': *out++ = '\r'; ++p; break;
|
||||
case 't': *out++ = '\t'; ++p; break;
|
||||
case 'v': *out++ = '\v'; ++p; break;
|
||||
case '"':
|
||||
case '\'':
|
||||
case '\\':
|
||||
*out++ = *p++;
|
||||
case '?':
|
||||
break;
|
||||
case 'x':
|
||||
case 'X':
|
||||
if (!isxdigit(p[1]) || !isxdigit(p[2])) {
|
||||
create_parsing_error(
|
||||
"The string '%s' at %s:%d:%d could not be unescaped. "
|
||||
"(Invalid character on hexadecimal escape at char %d)",
|
||||
in, Parser::parser_file, Parser::parser_line, Parser::parser_col,
|
||||
(p+1)-in);
|
||||
} else {
|
||||
*out++ = (char)(get_nibble(p[1]) * 0x10 + get_nibble(p[2]));
|
||||
p += 3;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
create_parsing_error(
|
||||
"The string '%s' at %s:%d:%d could not be unescaped. "
|
||||
"(Invalid character on hexadecimal escape at char %d)",
|
||||
"(Unexpected '\\' with no escape sequence at char %d)",
|
||||
in, Parser::parser_file, Parser::parser_line, Parser::parser_col,
|
||||
(p+1)-in);
|
||||
} else {
|
||||
*out++ = (char)(get_nibble(p[1]) * 0x10 + get_nibble(p[2]));
|
||||
p += 3;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Set the end of string. */
|
||||
*out = '\0';
|
||||
return (int)(out - in);
|
||||
}
|
||||
|
||||
proc read_entire_file(char* filename) -> char* {
|
||||
profile_with_comment(filename);
|
||||
char *fileContent = nullptr;
|
||||
FILE *fp = fopen(filename, "r");
|
||||
if (fp) {
|
||||
/* Go to the end of the file. */
|
||||
if (fseek(fp, 0L, SEEK_END) == 0) {
|
||||
/* Get the size of the file. */
|
||||
long bufsize = ftell(fp) + 1;
|
||||
if (bufsize == 0) {
|
||||
fputs("Empty file", stderr);
|
||||
goto closeFile;
|
||||
}
|
||||
|
||||
/* Go back to the start of the file. */
|
||||
if (fseek(fp, 0L, SEEK_SET) != 0) {
|
||||
fputs("Error reading file", stderr);
|
||||
goto closeFile;
|
||||
}
|
||||
|
||||
/* Allocate our buffer to that size. */
|
||||
fileContent = (char*)calloc(bufsize, sizeof(char));
|
||||
|
||||
/* Read the entire file into memory. */
|
||||
size_t newLen = fread(fileContent, sizeof(char), bufsize, fp);
|
||||
|
||||
fileContent[newLen] = '\0';
|
||||
if (ferror(fp) != 0) {
|
||||
fputs("Error reading file", stderr);
|
||||
}
|
||||
}
|
||||
closeFile:
|
||||
fclose(fp);
|
||||
}
|
||||
|
||||
return fileContent;
|
||||
/* Don't forget to call free() later! */
|
||||
}
|
||||
|
||||
proc read_expression() -> char* {
|
||||
char* line = (char*)malloc(100);
|
||||
|
||||
if(line == nullptr)
|
||||
return nullptr;
|
||||
|
||||
char* linep = line;
|
||||
size_t lenmax = 100, len = lenmax;
|
||||
int c;
|
||||
|
||||
int nesting = 0;
|
||||
|
||||
while (true) {
|
||||
c = fgetc(stdin);
|
||||
if(c == EOF)
|
||||
break;
|
||||
default:
|
||||
create_parsing_error(
|
||||
"The string '%s' at %s:%d:%d could not be unescaped. "
|
||||
"(Unexpected '\\' with no escape sequence at char %d)",
|
||||
in, Parser::parser_file, Parser::parser_line, Parser::parser_col,
|
||||
(p+1)-in);
|
||||
|
||||
if(--len == 0) {
|
||||
len = lenmax;
|
||||
char * linen = (char*)realloc(linep, lenmax *= 2);
|
||||
|
||||
if(linen == nullptr) {
|
||||
free(linep);
|
||||
return nullptr;
|
||||
}
|
||||
line = linen + (line - linep);
|
||||
linep = linen;
|
||||
}
|
||||
|
||||
*line = (char)c;
|
||||
if(*line == '(')
|
||||
++nesting;
|
||||
else if(*line == ')')
|
||||
--nesting;
|
||||
else if(*line == '\n')
|
||||
if (nesting == 0)
|
||||
break;
|
||||
line++;
|
||||
}
|
||||
(*line)--; // we dont want the \n actually
|
||||
*line = '\0';
|
||||
|
||||
return linep;
|
||||
}
|
||||
|
||||
/* Set the end of string. */
|
||||
*out = '\0';
|
||||
if (int_err)
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
proc read_line() -> char* {
|
||||
char* line = (char*)malloc(100), * linep = line;
|
||||
size_t lenmax = 100, len = lenmax;
|
||||
int c;
|
||||
|
||||
proc read_entire_file(char* filename) -> char* {
|
||||
char *fileContent = nullptr;
|
||||
FILE *fp = fopen(filename, "r");
|
||||
if (fp) {
|
||||
/* Go to the end of the file. */
|
||||
if (fseek(fp, 0L, SEEK_END) == 0) {
|
||||
/* Get the size of the file. */
|
||||
long bufsize = ftell(fp) + 1;
|
||||
if (bufsize == 0) {
|
||||
fputs("Empty file", stderr);
|
||||
goto closeFile;
|
||||
}
|
||||
int nesting = 0;
|
||||
|
||||
/* Go back to the start of the file. */
|
||||
if (fseek(fp, 0L, SEEK_SET) != 0) {
|
||||
fputs("Error reading file", stderr);
|
||||
goto closeFile;
|
||||
}
|
||||
if(line == nullptr)
|
||||
return nullptr;
|
||||
|
||||
/* Allocate our buffer to that size. */
|
||||
fileContent = (char*)calloc(bufsize, sizeof(char));
|
||||
|
||||
/* Read the entire file into memory. */
|
||||
size_t newLen = fread(fileContent, sizeof(char), bufsize, fp);
|
||||
|
||||
fileContent[newLen] = '\0';
|
||||
if (ferror(fp) != 0) {
|
||||
fputs("Error reading file", stderr);
|
||||
}
|
||||
}
|
||||
closeFile:
|
||||
fclose(fp);
|
||||
}
|
||||
|
||||
return fileContent;
|
||||
/* Don't forget to call free() later! */
|
||||
}
|
||||
|
||||
proc read_expression() -> char* {
|
||||
char* line = (char*)malloc(100);
|
||||
|
||||
if(line == nullptr)
|
||||
return nullptr;
|
||||
|
||||
char* linep = line;
|
||||
size_t lenmax = 100, len = lenmax;
|
||||
int c;
|
||||
|
||||
int nesting = 0;
|
||||
|
||||
while (true) {
|
||||
c = fgetc(stdin);
|
||||
if(c == EOF)
|
||||
break;
|
||||
|
||||
if(--len == 0) {
|
||||
len = lenmax;
|
||||
char * linen = (char*)realloc(linep, lenmax *= 2);
|
||||
|
||||
if(linen == nullptr) {
|
||||
free(linep);
|
||||
return nullptr;
|
||||
}
|
||||
line = linen + (line - linep);
|
||||
linep = linen;
|
||||
}
|
||||
|
||||
*line = (char)c;
|
||||
if(*line == '(')
|
||||
++nesting;
|
||||
else if(*line == ')')
|
||||
--nesting;
|
||||
else if(*line == '\n')
|
||||
if (nesting == 0)
|
||||
for(;;) {
|
||||
c = fgetc(stdin);
|
||||
if(c == EOF)
|
||||
break;
|
||||
line++;
|
||||
}
|
||||
(*line)--; // we dont want the \n actually
|
||||
*line = '\0';
|
||||
|
||||
return linep;
|
||||
}
|
||||
if(--len == 0) {
|
||||
len = lenmax;
|
||||
char* linen = (char*)realloc(linep, lenmax *= 2);
|
||||
|
||||
proc read_line() -> char* {
|
||||
char* line = (char*)malloc(100), * linep = line;
|
||||
size_t lenmax = 100, len = lenmax;
|
||||
int c;
|
||||
|
||||
int nesting = 0;
|
||||
|
||||
if(line == nullptr)
|
||||
return nullptr;
|
||||
|
||||
for(;;) {
|
||||
c = fgetc(stdin);
|
||||
if(c == EOF)
|
||||
break;
|
||||
|
||||
if(--len == 0) {
|
||||
len = lenmax;
|
||||
char* linen = (char*)realloc(linep, lenmax *= 2);
|
||||
|
||||
if(linen == nullptr) {
|
||||
free(linep);
|
||||
return nullptr;
|
||||
if(linen == nullptr) {
|
||||
free(linep);
|
||||
return nullptr;
|
||||
}
|
||||
line = linen + (line - linep);
|
||||
linep = linen;
|
||||
}
|
||||
line = linen + (line - linep);
|
||||
linep = linen;
|
||||
}
|
||||
|
||||
*line = (char)c;
|
||||
if(*line == '(')
|
||||
++nesting;
|
||||
else if(*line == ')')
|
||||
--nesting;
|
||||
else if(*line == '\n')
|
||||
if (nesting == 0)
|
||||
break;
|
||||
line++;
|
||||
*line = (char)c;
|
||||
if(*line == '(')
|
||||
++nesting;
|
||||
else if(*line == ')')
|
||||
--nesting;
|
||||
else if(*line == '\n')
|
||||
if (nesting == 0)
|
||||
break;
|
||||
line++;
|
||||
}
|
||||
(*line)--; // we dont want the \n actually
|
||||
*line = '\0';
|
||||
|
||||
return linep;
|
||||
}
|
||||
(*line)--; // we dont want the \n actually
|
||||
*line = '\0';
|
||||
|
||||
return linep;
|
||||
}
|
||||
proc log_message(Log_Level type, const char* message) -> void {
|
||||
if (type > Globals::log_level)
|
||||
return;
|
||||
|
||||
proc log_message(Log_Level type, const char* message) -> void {
|
||||
if (type > Globals::log_level)
|
||||
return;
|
||||
|
||||
const char* prefix;
|
||||
switch (type) {
|
||||
case Log_Level::Critical: prefix = "CRITICAL"; break;
|
||||
case Log_Level::Warning: prefix = "WARNING"; break;
|
||||
case Log_Level::Info: prefix = "INFO"; break;
|
||||
case Log_Level::Debug: prefix = "DEBUG"; break;
|
||||
default: return;
|
||||
const char* prefix;
|
||||
switch (type) {
|
||||
case Log_Level::Critical: prefix = "CRITICAL"; break;
|
||||
case Log_Level::Warning: prefix = "WARNING"; break;
|
||||
case Log_Level::Info: prefix = "INFO"; break;
|
||||
case Log_Level::Debug: prefix = "DEBUG"; break;
|
||||
default: return;
|
||||
}
|
||||
printf("%s: %s\n",prefix, message);
|
||||
}
|
||||
printf("%s: %s\n",prefix, message);
|
||||
}
|
||||
|
||||
proc panic(char* message) -> void {
|
||||
log_message(Log_Level::Critical, message);
|
||||
exit(1);
|
||||
}
|
||||
char* wchar_to_char(const wchar_t* pwchar) {
|
||||
// get the number of characters in the string.
|
||||
int currentCharIndex = 0;
|
||||
char currentChar = (char)pwchar[currentCharIndex];
|
||||
|
||||
proc print(Lisp_Object* node, bool print_repr = false, FILE* file = stdout) -> void {
|
||||
|
||||
switch (Memory::get_type(node)) {
|
||||
case (Lisp_Object_Type::Nil): fputs("()", file); break;
|
||||
case (Lisp_Object_Type::T): fputs("t", file); break;
|
||||
case (Lisp_Object_Type::Number): {
|
||||
if (abs(node->value.number - (int)node->value.number) < 0.000001f)
|
||||
fprintf(file, "%d", (int)node->value.number);
|
||||
else
|
||||
fprintf(file, "%f", node->value.number);
|
||||
} break;
|
||||
case (Lisp_Object_Type::Keyword): fputs(":", file); // NOTE(Felix): intentionall fallthough
|
||||
case (Lisp_Object_Type::Symbol): fprintf(file, "%s", Memory::get_c_str(node->value.symbol.identifier)); break;
|
||||
case (Lisp_Object_Type::Continuation): fputs("[continuation]", file); break;
|
||||
case (Lisp_Object_Type::CFunction): fputs("[C-function]", file); break;
|
||||
case (Lisp_Object_Type::Pointer): fputs("[pointer]", file); break;
|
||||
case (Lisp_Object_Type::HashMap): fputs("[hashmap]", file); break;
|
||||
case (Lisp_Object_Type::String): {
|
||||
if (print_repr) {
|
||||
putc('\"', file);
|
||||
char* escaped = escape_string(Memory::get_c_str(node->value.string));
|
||||
fputs(escaped, file);
|
||||
putc('\"', file);
|
||||
free(escaped);
|
||||
while (currentChar != '\0')
|
||||
{
|
||||
currentCharIndex++;
|
||||
currentChar = (char)pwchar[currentCharIndex];
|
||||
}
|
||||
else
|
||||
fputs(Memory::get_c_str(node->value.string), file);
|
||||
} break;
|
||||
case (Lisp_Object_Type::Vector): {
|
||||
fputs("[", file);
|
||||
if (node->value.vector.length > 0)
|
||||
print(node->value.vector.data);
|
||||
for (int i = 1; i < node->value.vector.length; ++i) {
|
||||
fputs(" ", file);
|
||||
print(node->value.vector.data+i);
|
||||
|
||||
const int charCount = currentCharIndex + 1;
|
||||
|
||||
// allocate a new block of memory size char (1 byte) instead of wide char (2 bytes)
|
||||
char* filePathC = (char*)malloc(sizeof(char) * charCount);
|
||||
|
||||
for (int i = 0; i < charCount; i++)
|
||||
{
|
||||
// convert to char (1 byte)
|
||||
char character = (char)pwchar[i];
|
||||
|
||||
*filePathC = character;
|
||||
|
||||
filePathC += sizeof(char);
|
||||
|
||||
}
|
||||
fputs("]", file);
|
||||
} break;
|
||||
case (Lisp_Object_Type::Function): {
|
||||
if (node->userType) {
|
||||
fprintf(file, "[%s]", Memory::get_c_str(node->userType->value.symbol.identifier));
|
||||
break;
|
||||
}
|
||||
if (node->value.function.type == Function_Type::Lambda)
|
||||
fputs("[lambda]", file);
|
||||
else if (node->value.function.type == Function_Type::Special_Lambda)
|
||||
fputs("[special-lambda]", file);
|
||||
else if (node->value.function.type == Function_Type::Macro)
|
||||
fputs("[macro]", file);
|
||||
else
|
||||
assert(false);
|
||||
} break;
|
||||
case (Lisp_Object_Type::Pair): {
|
||||
Lisp_Object* head = node;
|
||||
filePathC += '\0';
|
||||
|
||||
// first check if it is a quotation form, in that case we want
|
||||
// to print it prettier
|
||||
if (Memory::get_type(head->value.pair.first) == Lisp_Object_Type::Symbol) {
|
||||
String* identifier = head->value.pair.first->value.symbol.identifier;
|
||||
filePathC -= (sizeof(char) * charCount);
|
||||
|
||||
return filePathC;
|
||||
}
|
||||
|
||||
auto symbol = head->value.pair.first;
|
||||
auto quote_sym = Memory::get_or_create_lisp_object_symbol("quote");
|
||||
auto unquote_sym = Memory::get_or_create_lisp_object_symbol("unquote");
|
||||
auto quasiquote_sym = Memory::get_or_create_lisp_object_symbol("quasiquote");
|
||||
if (symbol == quote_sym || symbol == unquote_sym)
|
||||
{
|
||||
putc(symbol == quote_sym
|
||||
? '\''
|
||||
: ',', file);
|
||||
const wchar_t* char_to_wchar(const char* c) {
|
||||
const size_t cSize = strlen(c)+1;
|
||||
wchar_t* wc = new wchar_t[cSize];
|
||||
mbstowcs (wc, c, cSize);
|
||||
|
||||
assert_type(head->value.pair.rest, Lisp_Object_Type::Pair);
|
||||
assert(head->value.pair.rest->value.pair.rest == Memory::nil);
|
||||
|
||||
print(head->value.pair.rest->value.pair.first, print_repr, file);
|
||||
return wc;
|
||||
}
|
||||
proc print(Lisp_Object* node, bool print_repr, FILE* file) -> void {
|
||||
switch (Memory::get_type(node)) {
|
||||
case (Lisp_Object_Type::Nil): fputs("()", file); break;
|
||||
case (Lisp_Object_Type::T): fputs("t", file); break;
|
||||
case (Lisp_Object_Type::Number): {
|
||||
if (abs(node->value.number - (int)node->value.number) < 0.000001f)
|
||||
fprintf(file, "%d", (int)node->value.number);
|
||||
else
|
||||
fprintf(file, "%f", node->value.number);
|
||||
} break;
|
||||
case (Lisp_Object_Type::Keyword): fputs(":", file); // NOTE(Felix): intentionall fallthough
|
||||
case (Lisp_Object_Type::Symbol): fprintf(file, "%s", Memory::get_c_str(node->value.symbol)); break;
|
||||
case (Lisp_Object_Type::Continuation): fputs("[continuation]", file); break;
|
||||
case (Lisp_Object_Type::CFunction): fputs("[C-function]", file); break;
|
||||
case (Lisp_Object_Type::Pointer): fputs("[pointer]", file); break;
|
||||
case (Lisp_Object_Type::HashMap): {
|
||||
for_hash_map (*(node->value.hashMap)) {
|
||||
fputs(" ", file);
|
||||
print(key, true, file);
|
||||
fputs(" -> ", file);
|
||||
print((Lisp_Object*)value, true, file);
|
||||
fputs("\n", file);
|
||||
}
|
||||
} break;
|
||||
case (Lisp_Object_Type::String): {
|
||||
if (print_repr) {
|
||||
putc('\"', file);
|
||||
char* escaped = escape_string(Memory::get_c_str(node->value.string));
|
||||
fputs(escaped, file);
|
||||
putc('\"', file);
|
||||
free(escaped);
|
||||
}
|
||||
else
|
||||
fputs(Memory::get_c_str(node->value.string), file);
|
||||
} break;
|
||||
case (Lisp_Object_Type::Vector): {
|
||||
fputs("[", file);
|
||||
if (node->value.vector.length > 0)
|
||||
print(node->value.vector.data, print_repr, file);
|
||||
for (int i = 1; i < node->value.vector.length; ++i) {
|
||||
fputs(" ", file);
|
||||
print(node->value.vector.data+i, print_repr, file);
|
||||
}
|
||||
fputs("]", file);
|
||||
} break;
|
||||
case (Lisp_Object_Type::Function): {
|
||||
if (node->userType) {
|
||||
fprintf(file, "[%s]", Memory::get_c_str(node->userType->value.symbol));
|
||||
break;
|
||||
}
|
||||
else if (symbol == quasiquote_sym) {
|
||||
putc('`', file);
|
||||
assert_type(head->value.pair.rest, Lisp_Object_Type::Pair);
|
||||
print(head->value.pair.rest->value.pair.first, print_repr, file);
|
||||
break;
|
||||
if (node->value.function->type == Function_Type::Lambda)
|
||||
fputs("[lambda]", file);
|
||||
// else if (node->value.function->type == Function_Type::Special_Lambda)
|
||||
// fputs("[special-lambda]", file);
|
||||
else if (node->value.function->type == Function_Type::Macro)
|
||||
fputs("[macro]", file);
|
||||
else
|
||||
assert(false);
|
||||
} break;
|
||||
case (Lisp_Object_Type::Pair): {
|
||||
Lisp_Object* head = node;
|
||||
|
||||
// first check if it is a quotation form, in that case we want
|
||||
// to print it prettier
|
||||
if (Memory::get_type(head->value.pair.first) == Lisp_Object_Type::Symbol) {
|
||||
String* identifier = head->value.pair.first->value.symbol;
|
||||
|
||||
|
||||
auto symbol = head->value.pair.first;
|
||||
auto quote_sym = Memory::get_symbol("quote");
|
||||
auto unquote_sym = Memory::get_symbol("unquote");
|
||||
auto quasiquote_sym = Memory::get_symbol("quasiquote");
|
||||
auto unquote_splicing_sym = Memory::get_symbol("unquote-splicing");
|
||||
if (symbol == quote_sym || symbol == unquote_sym || symbol == unquote_splicing_sym)
|
||||
{
|
||||
if (symbol == quote_sym)
|
||||
putc('\'', file);
|
||||
else if (symbol == unquote_sym)
|
||||
putc(',', file);
|
||||
else if (symbol == unquote_splicing_sym)
|
||||
fputs(",@", file);
|
||||
|
||||
assert_type(head->value.pair.rest, Lisp_Object_Type::Pair);
|
||||
assert(head->value.pair.rest->value.pair.rest == Memory::nil);
|
||||
|
||||
print(head->value.pair.rest->value.pair.first, print_repr, file);
|
||||
break;
|
||||
}
|
||||
else if (symbol == quasiquote_sym) {
|
||||
putc('`', file);
|
||||
assert_type(head->value.pair.rest, Lisp_Object_Type::Pair);
|
||||
print(head->value.pair.rest->value.pair.first, print_repr, file);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
putc('(', file);
|
||||
|
||||
// NOTE(Felix): We could do a while true here, however in case
|
||||
// we want to print a broken list (for logging the error) we
|
||||
// should do more checks.
|
||||
while (head) {
|
||||
print(head->value.pair.first, print_repr, file);
|
||||
head = head->value.pair.rest;
|
||||
if (!head)
|
||||
return;
|
||||
if (Memory::get_type(head) != Lisp_Object_Type::Pair)
|
||||
break;
|
||||
putc(' ', file);
|
||||
}
|
||||
|
||||
if (Memory::get_type(head) != Lisp_Object_Type::Nil) {
|
||||
fputs(" . ", file);
|
||||
print(head, print_repr, file);
|
||||
}
|
||||
|
||||
putc(')', file);
|
||||
} break;
|
||||
}
|
||||
}
|
||||
|
||||
putc('(', file);
|
||||
|
||||
// NOTE(Felix): We cuold do a while true here, however in case
|
||||
// we want to print a broken list (for logging the error) we
|
||||
// should do more checks.
|
||||
while (head) {
|
||||
print(head->value.pair.first, print_repr, file);
|
||||
head = head->value.pair.rest;
|
||||
if (!head)
|
||||
return;
|
||||
if (Memory::get_type(head) != Lisp_Object_Type::Pair)
|
||||
break;
|
||||
putc(' ', file);
|
||||
proc print_single_call(Lisp_Object* obj) -> void {
|
||||
printf(console_cyan);
|
||||
print(obj, true);
|
||||
printf(console_normal);
|
||||
printf("\n at ");
|
||||
if (obj->sourceCodeLocation) {
|
||||
printf("%s (line %d, position %d)",
|
||||
Memory::get_c_str(
|
||||
obj->sourceCodeLocation->file),
|
||||
obj->sourceCodeLocation->line,
|
||||
obj->sourceCodeLocation->column);
|
||||
} else {
|
||||
fputs("no source code location avaliable", stdout);
|
||||
}
|
||||
}
|
||||
|
||||
if (Memory::get_type(head) != Lisp_Object_Type::Nil) {
|
||||
fputs(" . ", file);
|
||||
print(head, print_repr, file);
|
||||
proc print_call_stack() -> void {
|
||||
using Globals::Current_Execution::call_stack;
|
||||
|
||||
printf("callstack [%d] (most recent call last):\n", call_stack.next_index);
|
||||
for (int i = 0; i < call_stack.next_index; ++i) {
|
||||
printf("%2d -> ", i);
|
||||
print_single_call(call_stack.data[i]);
|
||||
printf("\n");
|
||||
}
|
||||
}
|
||||
|
||||
putc(')', file);
|
||||
} break;
|
||||
proc log_error() -> void {
|
||||
fputs(console_red, stdout);
|
||||
fputs(Memory::get_c_str(Globals::error->message), stdout);
|
||||
puts(console_normal);
|
||||
|
||||
fputs(" in: ", stdout);
|
||||
print_call_stack();
|
||||
puts(console_normal);
|
||||
}
|
||||
}
|
||||
|
||||
proc print_single_call(Lisp_Object* obj) -> void {
|
||||
printf(console_cyan);
|
||||
print(obj, true);
|
||||
printf(console_normal);
|
||||
printf("\n at ");
|
||||
if (obj->sourceCodeLocation) {
|
||||
printf("%s (line %d, position %d)",
|
||||
Memory::get_c_str(
|
||||
obj->sourceCodeLocation->file),
|
||||
obj->sourceCodeLocation->line,
|
||||
obj->sourceCodeLocation->column);
|
||||
} else {
|
||||
fputs("no source code location avaliable", stdout);
|
||||
}
|
||||
}
|
||||
|
||||
proc print_call_stack() -> void {
|
||||
using Globals::Current_Execution::call_stack;
|
||||
|
||||
printf("callstack [%d] (most recent call last):\n", call_stack.next_index);
|
||||
for (int i = 0; i < call_stack.next_index; ++i) {
|
||||
printf("%2d -> ", i);
|
||||
print_single_call(call_stack.data[i]);
|
||||
printf("\n");
|
||||
}
|
||||
}
|
||||
|
||||
proc log_error() -> void {
|
||||
fputs(console_red, stdout);
|
||||
fputs(Memory::get_c_str(Globals::error->message), stdout);
|
||||
puts(console_normal);
|
||||
|
||||
fputs(" in: ", stdout);
|
||||
print_call_stack();
|
||||
puts(console_normal);
|
||||
|
||||
Globals::Current_Execution::call_stack.next_index = 0;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,121 @@
|
||||
#define _CRT_SECURE_NO_WARNINGS
|
||||
#define _CRT_SECURE_NO_DEPRECATE
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <stdio.h>
|
||||
#include <time.h>
|
||||
#include <string.h>
|
||||
#include <cmath>
|
||||
#include <ctype.h>
|
||||
#include <stdarg.h>
|
||||
#include <errno.h>
|
||||
#include <new>
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# include <direct.h>
|
||||
# include <windows.h>
|
||||
#else
|
||||
# include <unistd.h>
|
||||
# include <signal.h>
|
||||
#endif
|
||||
|
||||
/*
|
||||
Forward declare the hash functions for the hashmap (needed at least
|
||||
for clang++)
|
||||
*/
|
||||
namespace Slime {struct Lisp_Object;}
|
||||
bool hm_objects_match(char* a, char* b);
|
||||
bool hm_objects_match(void* a, void* b);
|
||||
bool hm_objects_match(Slime::Lisp_Object* a, Slime::Lisp_Object* b);
|
||||
unsigned int hm_hash(char* str);
|
||||
unsigned int hm_hash(void* ptr);
|
||||
unsigned int hm_hash(Slime::Lisp_Object* obj);
|
||||
#include "ftb/hashmap.hpp"
|
||||
#include "ftb/types.hpp"
|
||||
#include "ftb/arraylist.hpp"
|
||||
#include "ftb/bucket_allocator.hpp"
|
||||
#include "ftb/macros.hpp"
|
||||
#include "ftb/profiler.hpp"
|
||||
|
||||
# include "defines.cpp"
|
||||
# include "assert.hpp"
|
||||
# include "define_macros.hpp"
|
||||
# include "platform.cpp"
|
||||
# include "structs.cpp"
|
||||
# include "forward_decls.cpp"
|
||||
|
||||
|
||||
bool hm_objects_match(char* a, char* b) {
|
||||
return strcmp(a, b) == 0;
|
||||
}
|
||||
|
||||
bool hm_objects_match(void* a, void* b) {
|
||||
return a == b;
|
||||
}
|
||||
|
||||
bool hm_objects_match(Slime::Lisp_Object* a, Slime::Lisp_Object* b) {
|
||||
return Slime::lisp_object_equal(a, b);
|
||||
}
|
||||
|
||||
unsigned int hm_hash(char* str) {
|
||||
unsigned int value = str[0] << 7;
|
||||
int i = 0;
|
||||
while (str[i]) {
|
||||
value = (10000003 * value) ^ str[i++];
|
||||
}
|
||||
return value ^ i;
|
||||
}
|
||||
|
||||
unsigned int hm_hash(void* ptr) {
|
||||
return ((unsigned long long)ptr * 2654435761) % 4294967296;
|
||||
}
|
||||
|
||||
unsigned int hm_hash(Slime::Lisp_Object* obj) {
|
||||
using namespace Slime;
|
||||
switch (Memory::get_type(obj)) {
|
||||
// hash from adress: if two objects of these types have
|
||||
// different addresses, they are different
|
||||
case Lisp_Object_Type::CFunction:
|
||||
case Lisp_Object_Type::Function:
|
||||
case Lisp_Object_Type::Symbol:
|
||||
case Lisp_Object_Type::Keyword:
|
||||
case Lisp_Object_Type::Continuation:
|
||||
case Lisp_Object_Type::Nil:
|
||||
case Lisp_Object_Type::T:
|
||||
return hm_hash((void*) obj);
|
||||
// hash from contents: even if objects are themselved
|
||||
// different, they cauld be equivalent:
|
||||
case Lisp_Object_Type::Pointer: return hm_hash((void*) obj->value.pointer);
|
||||
case Lisp_Object_Type::Number: return hm_hash((void*) (unsigned long long)obj->value.number); // HACK(Felix): yes
|
||||
case Lisp_Object_Type::String: return hm_hash((char*) &obj->value.string->data);
|
||||
case Lisp_Object_Type::Pair: {
|
||||
u32 hash = 1;
|
||||
for_lisp_list (obj) {
|
||||
hash <<= 1;
|
||||
hash += hm_hash(it);
|
||||
}
|
||||
return hash;
|
||||
} break;
|
||||
case Lisp_Object_Type::Vector:
|
||||
case Lisp_Object_Type::HashMap:
|
||||
default:
|
||||
create_not_yet_implemented_error();
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
# include "globals.cpp"
|
||||
# include "memory.cpp"
|
||||
# include "gc.cpp"
|
||||
# include "lisp_object.cpp"
|
||||
# include "error.cpp"
|
||||
# include "io.cpp"
|
||||
# include "env.cpp"
|
||||
# include "parse.cpp"
|
||||
# include "eval.cpp"
|
||||
# include "visualization.cpp"
|
||||
# include "docgeneration.cpp"
|
||||
# include "built_ins.cpp"
|
||||
# include "testing.cpp"
|
||||
// # include "undefines.cpp"
|
||||
@@ -1,54 +1,55 @@
|
||||
proc create_source_code_location(String* file, int line, int col) -> Source_Code_Location* {
|
||||
if (!file)
|
||||
return nullptr;
|
||||
namespace Slime {
|
||||
proc create_source_code_location(String* file, int line, int col) -> Source_Code_Location* {
|
||||
if (!file)
|
||||
return nullptr;
|
||||
|
||||
Source_Code_Location* ret = new(Source_Code_Location);
|
||||
ret->file = file;
|
||||
ret->line = line;
|
||||
ret->column = col;
|
||||
return ret;
|
||||
}
|
||||
|
||||
proc Lisp_Object_Type_to_string(Lisp_Object_Type type) -> const char* {
|
||||
switch (type) {
|
||||
case(Lisp_Object_Type::Nil): return "nil";
|
||||
case(Lisp_Object_Type::T): return "t";
|
||||
case(Lisp_Object_Type::Number): return "number";
|
||||
case(Lisp_Object_Type::String): return "string";
|
||||
case(Lisp_Object_Type::Symbol): return "symbol";
|
||||
case(Lisp_Object_Type::Keyword): return "keyword";
|
||||
case(Lisp_Object_Type::Function): return "function";
|
||||
case(Lisp_Object_Type::CFunction): return "C-function";
|
||||
case(Lisp_Object_Type::Continuation): return "continuation";
|
||||
case(Lisp_Object_Type::Pair): return "pair";
|
||||
case(Lisp_Object_Type::Vector): return "vector";
|
||||
case(Lisp_Object_Type::Pointer): return "pointer";
|
||||
case(Lisp_Object_Type::HashMap): return "hashmap";
|
||||
Source_Code_Location* ret = (Source_Code_Location*)malloc(sizeof(Source_Code_Location));
|
||||
ret->file = file;
|
||||
ret->line = line;
|
||||
ret->column = col;
|
||||
return ret;
|
||||
}
|
||||
return "unknown";
|
||||
}
|
||||
|
||||
proc create_positional_argument_list(int initial_capacity) -> Positional_Arguments {
|
||||
Positional_Arguments ret;
|
||||
ret.symbols = create_Lisp_Object_array_list(initial_capacity);
|
||||
return ret;
|
||||
}
|
||||
proc Lisp_Object_Type_to_string(Lisp_Object_Type type) -> const char* {
|
||||
switch (type) {
|
||||
case(Lisp_Object_Type::Nil): return "nil";
|
||||
case(Lisp_Object_Type::T): return "t";
|
||||
case(Lisp_Object_Type::Number): return "number";
|
||||
case(Lisp_Object_Type::String): return "string";
|
||||
case(Lisp_Object_Type::Symbol): return "symbol";
|
||||
case(Lisp_Object_Type::Keyword): return "keyword";
|
||||
case(Lisp_Object_Type::Function): return "function";
|
||||
case(Lisp_Object_Type::CFunction): return "C-function";
|
||||
case(Lisp_Object_Type::Continuation): return "continuation";
|
||||
case(Lisp_Object_Type::Pair): return "pair";
|
||||
case(Lisp_Object_Type::Vector): return "vector";
|
||||
case(Lisp_Object_Type::Pointer): return "pointer";
|
||||
case(Lisp_Object_Type::HashMap): return "hashmap";
|
||||
}
|
||||
return "unknown";
|
||||
}
|
||||
|
||||
proc append_to_positional_argument_list(Positional_Arguments* args, Lisp_Object* sym) -> void {
|
||||
append_to_array_list(&args->symbols, sym);
|
||||
}
|
||||
Lisp_Object::~Lisp_Object() {
|
||||
free(sourceCodeLocation);
|
||||
sourceCodeLocation = 0;
|
||||
|
||||
proc create_keyword_argument_list(int initial_capacity) -> Keyword_Arguments {
|
||||
Keyword_Arguments ret;
|
||||
ret.keywords = create_Lisp_Object_array_list(initial_capacity);
|
||||
ret.values = create_Lisp_Object_array_list(initial_capacity);
|
||||
return ret;
|
||||
}
|
||||
|
||||
proc append_to_keyword_argument_list(Keyword_Arguments* args,
|
||||
Lisp_Object* keyword,
|
||||
Lisp_Object* default_value) -> void
|
||||
{
|
||||
append_to_array_list(&args->keywords, keyword);
|
||||
append_to_array_list(&args->values, default_value);
|
||||
switch (Memory::get_type(this)) {
|
||||
case Lisp_Object_Type::HashMap: {
|
||||
delete this->value.hashMap;
|
||||
} break;
|
||||
case Lisp_Object_Type::CFunction: {
|
||||
this->value.cFunction->args.positional.symbols.~Array_List();
|
||||
this->value.cFunction->args.keyword.keywords.~Array_List();
|
||||
this->value.cFunction->args.keyword.values.~Array_List();
|
||||
delete this->value.cFunction;
|
||||
} break;
|
||||
case Lisp_Object_Type::Function:{
|
||||
this->value.function->args.positional.symbols.~Array_List();
|
||||
this->value.function->args.keyword.keywords.~Array_List();
|
||||
this->value.function->args.keyword.values.~Array_List();
|
||||
delete this->value.function;
|
||||
} break;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,19 +1,33 @@
|
||||
#include "slime.h"
|
||||
#include "libslime.cpp"
|
||||
|
||||
int main(int argc, char* argv[]) {
|
||||
|
||||
#ifdef _MSC_VER
|
||||
// enable colored terminal output for windows
|
||||
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
|
||||
DWORD dwMode = 0;
|
||||
GetConsoleMode(hOut, &dwMode);
|
||||
dwMode |= ENABLE_VIRTUAL_TERMINAL_PROCESSING;
|
||||
SetConsoleMode(hOut, dwMode);
|
||||
#endif
|
||||
|
||||
if (argc > 1) {
|
||||
if (Slime::string_equal(argv[1], "--run-tests")) {
|
||||
int res = Slime::run_all_tests();
|
||||
// Slime::interprete_file((char*)"generate-docs.slime");
|
||||
return res ? 0 : 1;
|
||||
}
|
||||
|
||||
Slime::interprete_file(argv[1]);
|
||||
if (Slime::Globals::error) {
|
||||
Slime::log_error();
|
||||
return 1;
|
||||
} else if (Slime::string_equal(argv[1], "--generate-docs")) {
|
||||
Slime::Memory::init(4096 * 256* 100);
|
||||
if (Slime::Globals::error) return 1;
|
||||
Slime::built_in_load(Slime::Memory::create_string("generate-docs.slime"));
|
||||
Slime::Memory::free_everything();
|
||||
} else {
|
||||
Slime::interprete_file(argv[1]);
|
||||
}
|
||||
} else {
|
||||
Slime::interprete_stdin();
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (Slime::Globals::error) return 1;
|
||||
|
||||
}
|
||||
|
||||
@@ -1,26 +1,22 @@
|
||||
namespace Memory {
|
||||
namespace Slime::Memory {
|
||||
|
||||
// ------------------
|
||||
// global symbol / keyword table
|
||||
// ------------------
|
||||
String_Hash_Map* global_symbol_table;
|
||||
String_Hash_Map* global_keyword_table;
|
||||
Hash_Map<char*, Lisp_Object*> global_symbol_table;
|
||||
Hash_Map<char*, Lisp_Object*> global_keyword_table;
|
||||
|
||||
|
||||
Hash_Map<char*, Environment*> file_to_env_map;
|
||||
// ------------------
|
||||
// lisp_objects
|
||||
// ------------------
|
||||
int object_memory_size;
|
||||
Int_Array_List free_spots_in_object_memory;
|
||||
Lisp_Object* object_memory;
|
||||
int next_index_in_object_memory = 0;
|
||||
Bucket_Allocator<Lisp_Object> object_memory(1024, 8);
|
||||
|
||||
// ------------------
|
||||
// environments
|
||||
// ------------------
|
||||
int environment_memory_size;
|
||||
Environment_Array_List free_spots_in_environment_memory;
|
||||
Environment* environment_memory;
|
||||
int next_index_in_environment_memory = 0;
|
||||
Bucket_Allocator<Environment> environment_memory(1024, 8);
|
||||
|
||||
// ------------------
|
||||
// strings
|
||||
@@ -29,30 +25,35 @@ namespace Memory {
|
||||
// free_spots_in_string_memory is an arraylist of pointers into
|
||||
// the string_memory, where dead String objects live (which give
|
||||
// information about their size)
|
||||
Void_Ptr_Array_List free_spots_in_string_memory;
|
||||
Array_List<void*> free_spots_in_string_memory;
|
||||
String* string_memory;
|
||||
String* next_free_spot_in_string_memory;
|
||||
|
||||
// ------------------
|
||||
// immutables
|
||||
// ------------------
|
||||
Lisp_Object* nil = nullptr;
|
||||
Lisp_Object* t = nullptr;
|
||||
Lisp_Object* nil = nullptr;
|
||||
Lisp_Object* t = nullptr;
|
||||
Lisp_Object* _if = nullptr;
|
||||
Lisp_Object* _define = nullptr;
|
||||
Lisp_Object* _begin = nullptr;
|
||||
|
||||
|
||||
|
||||
proc print_status() {
|
||||
printf("Memory Status:\n"
|
||||
" - %f%% of the object_memory is used\n"
|
||||
" - %d of %d total Lisp_Objects are in use\n"
|
||||
" - %d holes in used memory (fragmentation)\n",
|
||||
(1.0*next_index_in_object_memory - free_spots_in_object_memory.next_index)/object_memory_size,
|
||||
next_index_in_object_memory - free_spots_in_object_memory.next_index, object_memory_size,
|
||||
free_spots_in_object_memory.next_index);
|
||||
// printf("Memory Status:\n"
|
||||
// " - %f%% of the object_memory is used\n"
|
||||
// " - %d of %d total Lisp_Objects are in use\n"
|
||||
// " - %d holes in used memory (fragmentation)\n",
|
||||
// (1.0*next_index_in_object_memory - free_spots_in_object_memory.next_index)/object_memory_size,
|
||||
// next_index_in_object_memory - free_spots_in_object_memory.next_index, object_memory_size,
|
||||
// free_spots_in_object_memory.next_index);
|
||||
|
||||
printf("Memory Status:\n"
|
||||
" - %f%% of the string_memory is used\n"
|
||||
" - %d holes in used memory (fragmentation)\n",
|
||||
(1.0*(size_t)next_free_spot_in_string_memory - (size_t)string_memory)/string_memory_size,
|
||||
free_spots_in_string_memory.next_index);
|
||||
// printf("Memory Status:\n"
|
||||
// " - %f%% of the string_memory is used\n"
|
||||
// " - %d holes in used memory (fragmentation)\n",
|
||||
// (1.0*(size_t)next_free_spot_in_string_memory - (size_t)string_memory)/string_memory_size,
|
||||
// free_spots_in_string_memory.next_index);
|
||||
}
|
||||
|
||||
inline proc get_c_str(String* str) -> char* {
|
||||
@@ -112,7 +113,7 @@ namespace Memory {
|
||||
}
|
||||
|
||||
proc delete_string(String* str) {
|
||||
append_to_array_list(&free_spots_in_string_memory, (void*)str);
|
||||
free_spots_in_string_memory.append((void*)str);
|
||||
}
|
||||
|
||||
proc duplicate_string(String* str) -> String* {
|
||||
@@ -123,41 +124,8 @@ namespace Memory {
|
||||
return create_string(str, (int)strlen(str));
|
||||
}
|
||||
|
||||
// proc create_string_formatted (const char* format, ...) -> String* {
|
||||
// // HACK(Felix): the length of all strings is 200!!!!!!!!!!
|
||||
// // HACK(Felix): the length of all strings is 200!!!!!!!!!!
|
||||
// int length = 200;
|
||||
// String* ret = create_string("", length);
|
||||
|
||||
// int written_length;
|
||||
// va_list args;
|
||||
// va_start(args, format);
|
||||
// written_length = vsnprintf(&ret->data, length, format, args);
|
||||
// va_end(args);
|
||||
|
||||
// ret->length = written_length;
|
||||
// return ret;
|
||||
// }
|
||||
|
||||
proc create_lisp_object() -> Lisp_Object* {
|
||||
int index;
|
||||
// if we have no free spots then append at the end
|
||||
if (free_spots_in_object_memory.next_index == 0) {
|
||||
// if we still have space
|
||||
if (object_memory_size == next_index_in_object_memory) {
|
||||
create_out_of_memory_error(
|
||||
"There is not enough space in the lisp object "
|
||||
"memory to allocate additional lisp objects. "
|
||||
"Maybe try increasing the Memory size when "
|
||||
"calling Memory::init()");
|
||||
return nullptr;
|
||||
}
|
||||
index = next_index_in_object_memory++;
|
||||
} else {
|
||||
// else fill a free spot, and remove the free spot
|
||||
index = free_spots_in_object_memory.data[free_spots_in_object_memory.next_index--];
|
||||
}
|
||||
Lisp_Object* object = object_memory+index;
|
||||
Lisp_Object* object = object_memory.allocate();
|
||||
object->flags = 0;
|
||||
object->sourceCodeLocation = nullptr;
|
||||
object->userType = nullptr;
|
||||
@@ -165,29 +133,49 @@ namespace Memory {
|
||||
return object;
|
||||
}
|
||||
|
||||
proc free_everything() {
|
||||
free(global_symbol_table);
|
||||
free(global_keyword_table);
|
||||
free(object_memory);
|
||||
free(environment_memory);
|
||||
proc free_everything() -> void {
|
||||
free(string_memory);
|
||||
object_memory.for_each([](Lisp_Object* lo){
|
||||
lo->~Lisp_Object();
|
||||
});
|
||||
environment_memory.for_each([](Environment* env){
|
||||
env->~Environment();
|
||||
});
|
||||
// free the exe dir:
|
||||
free(Globals::load_path.data[0]);
|
||||
}
|
||||
|
||||
proc init(int oms, int ems, int sms) {
|
||||
global_symbol_table = create_String_hashmap();
|
||||
global_keyword_table = create_String_hashmap();
|
||||
|
||||
object_memory_size = oms;
|
||||
environment_memory_size = ems;
|
||||
string_memory_size = sms;
|
||||
proc create_child_environment(Environment* parent) -> Environment* {
|
||||
|
||||
free_spots_in_object_memory = create_Int_array_list();
|
||||
free_spots_in_environment_memory = create_Environment_array_list();
|
||||
free_spots_in_string_memory = create_Void_Ptr_array_list();
|
||||
Environment* env = environment_memory.allocate();
|
||||
|
||||
object_memory = (Lisp_Object*)malloc(object_memory_size * sizeof(Lisp_Object));
|
||||
environment_memory = (Environment*)malloc(environment_memory_size * sizeof(Environment));
|
||||
string_memory = (String*)malloc(string_memory_size * sizeof(char));
|
||||
// inject a new array list;
|
||||
new(&env->parents) Array_List<Environment*>;
|
||||
|
||||
if (parent)
|
||||
env->parents.append(parent);
|
||||
|
||||
new(&env->hm) Hash_Map<void*, Lisp_Object*>;
|
||||
|
||||
return env;
|
||||
}
|
||||
|
||||
proc create_empty_environment() -> Environment* {
|
||||
Environment* ret;
|
||||
try ret = create_child_environment(nullptr);
|
||||
return ret;
|
||||
}
|
||||
|
||||
proc init(int sms) -> void {
|
||||
profile_this();
|
||||
char* exe_path = get_exe_dir();
|
||||
// don't free exe path because it will be used until end of time
|
||||
add_to_load_path(exe_path);
|
||||
add_to_load_path("../bin/");
|
||||
|
||||
string_memory_size = sms;
|
||||
string_memory = (String*)malloc(string_memory_size * sizeof(char));
|
||||
|
||||
next_free_spot_in_string_memory = string_memory;
|
||||
|
||||
@@ -202,30 +190,73 @@ namespace Memory {
|
||||
try_void Parser::standard_in = create_string("stdin");
|
||||
|
||||
Globals::Current_Execution::envi_stack.next_index = 0;
|
||||
push_environment(create_built_ins_environment());
|
||||
Environment* env;
|
||||
try_void env = create_built_ins_environment();
|
||||
push_environment(env);
|
||||
|
||||
Environment* user_env;
|
||||
try_void user_env = Memory::create_child_environment(env);
|
||||
push_environment(user_env);
|
||||
|
||||
try_void _if = lookup_symbol(get_symbol("if"), env);
|
||||
try_void _define = lookup_symbol(get_symbol("define"), env);
|
||||
try_void _begin = lookup_symbol(get_symbol("begin"), env);
|
||||
}
|
||||
|
||||
proc reset() -> void {
|
||||
free_spots_in_object_memory.next_index = 0;
|
||||
free_spots_in_environment_memory.next_index = 0;
|
||||
profile_this();
|
||||
|
||||
free_spots_in_string_memory.next_index = 0;
|
||||
|
||||
global_symbol_table = create_String_hashmap();
|
||||
global_keyword_table = create_String_hashmap();
|
||||
global_symbol_table.~Hash_Map();
|
||||
global_keyword_table.~Hash_Map();
|
||||
file_to_env_map.~Hash_Map();
|
||||
|
||||
new(&global_symbol_table) Hash_Map<char*, Lisp_Object*>;
|
||||
new(&global_keyword_table) Hash_Map<char*, Lisp_Object*>;
|
||||
new(&file_to_env_map) Hash_Map<char*, Lisp_Object*>;
|
||||
|
||||
try_void Parser::standard_in = create_string("stdin");
|
||||
|
||||
// because t and nil are always there we start the index at 2
|
||||
next_index_in_object_memory = 2;
|
||||
next_index_in_environment_memory = 0;
|
||||
object_memory.for_each([](Lisp_Object* lo){
|
||||
lo->~Lisp_Object();
|
||||
});
|
||||
environment_memory.for_each([](Environment* env){
|
||||
env->~Environment();
|
||||
});
|
||||
|
||||
object_memory.~Bucket_Allocator();
|
||||
environment_memory.~Bucket_Allocator();
|
||||
|
||||
new(&object_memory) Bucket_Allocator<Lisp_Object>(1024, 8);
|
||||
new(&environment_memory) Bucket_Allocator<Environment>(1024, 8);
|
||||
|
||||
next_free_spot_in_string_memory = string_memory;
|
||||
|
||||
|
||||
// init nil
|
||||
try_void nil = create_lisp_object();
|
||||
set_type(nil, Lisp_Object_Type::Nil);
|
||||
|
||||
// init t
|
||||
try_void t = create_lisp_object();
|
||||
set_type(t, Lisp_Object_Type::T);
|
||||
|
||||
Globals::Current_Execution::envi_stack.next_index = 0;
|
||||
push_environment(create_built_ins_environment());
|
||||
Environment* env;
|
||||
try_void env = create_built_ins_environment();
|
||||
push_environment(env);
|
||||
|
||||
Environment* user_env;
|
||||
try_void user_env = Memory::create_child_environment(env);
|
||||
push_environment(user_env);
|
||||
|
||||
try_void _if = lookup_symbol(get_symbol("if"), env);
|
||||
try_void _define = lookup_symbol(get_symbol("define"), env);
|
||||
try_void _begin = lookup_symbol(get_symbol("begin"), env);
|
||||
}
|
||||
|
||||
proc create_lisp_object_pointer(void* ptr) -> Lisp_Object* {
|
||||
proc create_lisp_object(void* ptr) -> Lisp_Object* {
|
||||
Lisp_Object* node;
|
||||
try node = create_lisp_object();
|
||||
set_type(node, Lisp_Object_Type::Pointer);
|
||||
@@ -237,11 +268,11 @@ namespace Memory {
|
||||
Lisp_Object* node;
|
||||
try node = create_lisp_object();
|
||||
set_type(node, Lisp_Object_Type::HashMap);
|
||||
node->value.hashMap = create_Lisp_Obj_hashmap();
|
||||
node->value.hashMap = new Hash_Map<Lisp_Object*, Lisp_Object*>;
|
||||
return node;
|
||||
}
|
||||
|
||||
proc create_lisp_object_number(double number) -> Lisp_Object* {
|
||||
proc create_lisp_object(double number) -> Lisp_Object* {
|
||||
Lisp_Object* node;
|
||||
try node = create_lisp_object();
|
||||
set_type(node, Lisp_Object_Type::Number);
|
||||
@@ -249,7 +280,7 @@ namespace Memory {
|
||||
return node;
|
||||
}
|
||||
|
||||
proc create_lisp_object_string(String* str) -> Lisp_Object* {
|
||||
proc create_lisp_object(String* str) -> Lisp_Object* {
|
||||
Lisp_Object* node;
|
||||
try node = create_lisp_object();
|
||||
set_type(node, Lisp_Object_Type::String);
|
||||
@@ -257,7 +288,7 @@ namespace Memory {
|
||||
return node;
|
||||
}
|
||||
|
||||
proc create_lisp_object_string(const char* str) -> Lisp_Object* {
|
||||
proc create_lisp_object(const char* str) -> Lisp_Object* {
|
||||
Lisp_Object* node;
|
||||
try node = create_lisp_object();
|
||||
set_type(node, Lisp_Object_Type::String);
|
||||
@@ -266,21 +297,12 @@ namespace Memory {
|
||||
}
|
||||
|
||||
proc allocate_vector(int size) -> Lisp_Object* {
|
||||
// NOTE(Felix): Vectors are now only allocated at the back of
|
||||
// the memory, we don't check the free list at all right now
|
||||
|
||||
if (object_memory_size - next_index_in_object_memory < size) {
|
||||
create_out_of_memory_error(
|
||||
"There is not enough space in the lisp object "
|
||||
"memory to allocate additional lisp objects. "
|
||||
"Maybe try increasing the Memory size when "
|
||||
"calling Memory::init()");
|
||||
Lisp_Object* ret = object_memory.allocate(size);
|
||||
if (!ret) {
|
||||
create_out_of_memory_error("The vector is too big to fit in a memory bucket.");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
int start = next_index_in_object_memory;
|
||||
next_index_in_object_memory += size;
|
||||
return object_memory+start;
|
||||
return ret;
|
||||
}
|
||||
|
||||
proc create_lisp_object_vector(int length, Lisp_Object* element_list) -> Lisp_Object* {
|
||||
@@ -305,57 +327,92 @@ namespace Memory {
|
||||
return node;
|
||||
}
|
||||
|
||||
proc create_new_lisp_object_symbol(String* identifier) -> Lisp_Object* {
|
||||
proc create_lisp_object_vector(Lisp_Object* e1) -> Lisp_Object* {
|
||||
Lisp_Object* node;
|
||||
try node = create_lisp_object();
|
||||
set_type(node, Lisp_Object_Type::Vector);
|
||||
|
||||
node->value.vector.length = 1;
|
||||
try node->value.vector.data = allocate_vector(1);
|
||||
|
||||
node->value.vector.data[0] = *e1;
|
||||
|
||||
return node;
|
||||
}
|
||||
|
||||
proc create_lisp_object_vector(Lisp_Object* e1, Lisp_Object* e2) -> Lisp_Object* {
|
||||
Lisp_Object* node;
|
||||
try node = create_lisp_object();
|
||||
set_type(node, Lisp_Object_Type::Vector);
|
||||
|
||||
node->value.vector.length = 2;
|
||||
try node->value.vector.data = allocate_vector(2);
|
||||
|
||||
node->value.vector.data[0] = *e1;
|
||||
node->value.vector.data[1] = *e2;
|
||||
|
||||
return node;
|
||||
}
|
||||
|
||||
proc create_lisp_object_vector(Lisp_Object* e1, Lisp_Object* e2, Lisp_Object* e3) -> Lisp_Object* {
|
||||
Lisp_Object* node;
|
||||
try node = create_lisp_object();
|
||||
set_type(node, Lisp_Object_Type::Vector);
|
||||
|
||||
node->value.vector.length = 3;
|
||||
try node->value.vector.data = allocate_vector(3);
|
||||
|
||||
node->value.vector.data[0] = *e1;
|
||||
node->value.vector.data[1] = *e2;
|
||||
node->value.vector.data[2] = *e3;
|
||||
|
||||
return node;
|
||||
}
|
||||
|
||||
|
||||
|
||||
proc get_symbol(String* identifier) -> Lisp_Object* {
|
||||
Lisp_Object* node = global_symbol_table.get_object(get_c_str(identifier));
|
||||
if (node)
|
||||
return (Lisp_Object*)node;
|
||||
|
||||
try node = create_lisp_object();
|
||||
set_type(node, Lisp_Object_Type::Symbol);
|
||||
node->value.symbol.identifier = identifier;
|
||||
node->value.symbol.hash = hash(identifier);
|
||||
hm_set(global_symbol_table, get_c_str(identifier), node);
|
||||
node->value.symbol = identifier;
|
||||
global_symbol_table.set_object(get_c_str(identifier), node);
|
||||
return node;
|
||||
}
|
||||
|
||||
proc create_new_lisp_object_keyword(String* keyword) -> Lisp_Object* {
|
||||
Lisp_Object* node;
|
||||
try node = create_lisp_object();
|
||||
set_type(node, Lisp_Object_Type::Keyword);
|
||||
node->value.symbol.identifier = keyword;
|
||||
node->value.symbol.hash = hash(keyword);
|
||||
hm_set(global_keyword_table, get_c_str(keyword), node);
|
||||
return node;
|
||||
}
|
||||
|
||||
proc get_or_create_lisp_object_symbol(String* identifier) -> Lisp_Object* {
|
||||
if (auto ret = hm_get_object(global_symbol_table, get_c_str(identifier)))
|
||||
return (Lisp_Object*)ret;
|
||||
else
|
||||
return create_new_lisp_object_symbol(identifier);
|
||||
}
|
||||
|
||||
proc get_or_create_lisp_object_symbol(const char* identifier) -> Lisp_Object* {
|
||||
if (auto ret = hm_get_object(global_symbol_table, (char*)identifier))
|
||||
proc get_symbol(const char* identifier) -> Lisp_Object* {
|
||||
if (auto ret = global_symbol_table.get_object((char*)identifier))
|
||||
return (Lisp_Object*)ret;
|
||||
else {
|
||||
String* str;
|
||||
try str = Memory::create_string(identifier);
|
||||
return create_new_lisp_object_symbol(str);
|
||||
return get_symbol(str);
|
||||
}
|
||||
}
|
||||
|
||||
proc get_or_create_lisp_object_keyword(String* keyword) -> Lisp_Object* {
|
||||
if (auto ret = hm_get_object(global_keyword_table, get_c_str(keyword)))
|
||||
return (Lisp_Object*)ret;
|
||||
else
|
||||
return create_new_lisp_object_keyword(keyword);
|
||||
proc get_keyword(String* keyword) -> Lisp_Object* {
|
||||
Lisp_Object* node = global_keyword_table.get_object(get_c_str(keyword));
|
||||
if (node)
|
||||
return (Lisp_Object*)node;
|
||||
|
||||
try node = create_lisp_object();
|
||||
set_type(node, Lisp_Object_Type::Keyword);
|
||||
node->value.symbol = keyword;
|
||||
global_keyword_table.set_object(get_c_str(keyword), node);
|
||||
return node;
|
||||
}
|
||||
|
||||
proc get_or_create_lisp_object_keyword(const char* keyword) -> Lisp_Object* {
|
||||
if (auto ret = hm_get_object(global_keyword_table, (char*)keyword))
|
||||
|
||||
proc get_keyword(const char* keyword) -> Lisp_Object* {
|
||||
if (auto ret = global_keyword_table.get_object((char*)keyword))
|
||||
return (Lisp_Object*)ret;
|
||||
else {
|
||||
String* str;
|
||||
try str = Memory::create_string(keyword);
|
||||
return create_new_lisp_object_keyword(str);
|
||||
return get_keyword(str);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -363,13 +420,20 @@ namespace Memory {
|
||||
Lisp_Object* node;
|
||||
try node = create_lisp_object();
|
||||
set_type(node, Lisp_Object_Type::CFunction);
|
||||
// node->value.lambdaWrapper = new Lambda_Wrapper(function);
|
||||
node->value.cFunction = new(cFunction);
|
||||
node->value.cFunction->args = {};
|
||||
node->value.cFunction = new cFunction;
|
||||
node->value.cFunction->is_special_form = is_special;
|
||||
return node;
|
||||
}
|
||||
|
||||
proc create_lisp_object_function(Function_Type ft) -> Lisp_Object* {
|
||||
Lisp_Object* func;
|
||||
try func = Memory::create_lisp_object();
|
||||
Memory::set_type(func, Lisp_Object_Type::Function);
|
||||
func->value.function = new Function;
|
||||
func->value.function->type = ft;
|
||||
return func;
|
||||
}
|
||||
|
||||
proc create_lisp_object_pair(Lisp_Object* first, Lisp_Object* rest) -> Lisp_Object* {
|
||||
Lisp_Object* node;
|
||||
try node = create_lisp_object();
|
||||
@@ -386,7 +450,9 @@ namespace Memory {
|
||||
// we don't copy singleton objects
|
||||
if (n == Memory::nil || n == Memory::t ||
|
||||
Memory::get_type(n) == Lisp_Object_Type::Symbol ||
|
||||
Memory::get_type(n) == Lisp_Object_Type::Keyword)
|
||||
Memory::get_type(n) == Lisp_Object_Type::Keyword ||
|
||||
Memory::get_type(n) == Lisp_Object_Type::Function ||
|
||||
Memory::get_type(n) == Lisp_Object_Type::CFunction)
|
||||
{
|
||||
return n;
|
||||
}
|
||||
@@ -394,6 +460,7 @@ namespace Memory {
|
||||
Lisp_Object* target;
|
||||
try target = create_lisp_object();
|
||||
*target = *n;
|
||||
|
||||
return target;
|
||||
}
|
||||
|
||||
@@ -403,46 +470,6 @@ namespace Memory {
|
||||
return copy_lisp_object(n);
|
||||
}
|
||||
|
||||
proc create_child_environment(Environment* parent) -> Environment* {
|
||||
|
||||
Environment* env;
|
||||
// if we have no free spots then append at the end
|
||||
if (free_spots_in_environment_memory.next_index == 0) {
|
||||
int index;
|
||||
// if we still have space
|
||||
if (environment_memory_size == next_index_in_environment_memory) {
|
||||
create_out_of_memory_error(
|
||||
"There is not enough space in the environment "
|
||||
"memory to allocate additional environments. "
|
||||
"Maybe try increasing the Memory size when "
|
||||
"calling Memory::init()");
|
||||
return nullptr;
|
||||
}
|
||||
index = next_index_in_environment_memory++;
|
||||
env = environment_memory+index;
|
||||
} else {
|
||||
// else fill a free spot, and remove the free spot
|
||||
env = free_spots_in_environment_memory.data[--free_spots_in_environment_memory.next_index];
|
||||
}
|
||||
|
||||
int start_capacity = 16;
|
||||
|
||||
env->parents = create_Environment_array_list();
|
||||
|
||||
if (parent)
|
||||
append_to_array_list(&env->parents, parent);
|
||||
|
||||
env->hm = create_Void_Ptr_hashmap();
|
||||
|
||||
return env;
|
||||
}
|
||||
|
||||
proc create_empty_environment() -> Environment* {
|
||||
Environment* ret;
|
||||
try ret = create_child_environment(nullptr);
|
||||
return ret;
|
||||
}
|
||||
|
||||
proc create_built_ins_environment() -> Environment* {
|
||||
Environment* ret;
|
||||
try ret = create_empty_environment();
|
||||
@@ -451,25 +478,12 @@ namespace Memory {
|
||||
pop_environment();
|
||||
};
|
||||
|
||||
load_built_ins_into_environment();
|
||||
|
||||
// save the current working directory
|
||||
//char* cwd = get_cwd();
|
||||
//defer {
|
||||
// change_cwd(cwd);
|
||||
// free(cwd);
|
||||
//};
|
||||
|
||||
//// get the direction of the exe
|
||||
//char* exe_path = get_exe_dir();
|
||||
//change_cwd(exe_path);
|
||||
//free(exe_path);
|
||||
|
||||
built_in_load(Memory::create_string("pre.slime"));
|
||||
|
||||
try load_built_ins_into_environment();
|
||||
try built_in_load(Memory::create_string("pre.slime"));
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
inline proc create_list(Lisp_Object* o1) -> Lisp_Object* {
|
||||
Lisp_Object* ret;
|
||||
try ret = create_lisp_object_pair(o1, nil);
|
||||
|
||||
@@ -1,42 +1,9 @@
|
||||
namespace Parser {
|
||||
namespace Slime::Parser {
|
||||
String* standard_in;
|
||||
String* parser_file;
|
||||
int parser_line;
|
||||
int parser_col;
|
||||
|
||||
proc maybe_expand_reader_macro() -> Lisp_Object* {
|
||||
// static Lisp_Object* quote_sym = Memory::get_or_create_lisp_object_symbol("quote");
|
||||
// static Lisp_Object* qquote_sym = Memory::get_or_create_lisp_object_symbol("quasiquote");
|
||||
// static Lisp_Object* unquote_sym = Memory::get_or_create_lisp_object_symbol("unquote");
|
||||
// static Lisp_Object* us_sym = Memory::get_or_create_lisp_object_symbol("unquote-splicing");
|
||||
|
||||
// if (text[*index_in_text] == '\'') {
|
||||
// *index_in_text++;
|
||||
// return quote_sym;
|
||||
// }
|
||||
// if (text[*index_in_text] == '`') {
|
||||
// *index_in_text++;
|
||||
// return qquote_sym;
|
||||
// }
|
||||
// if (text[*index_in_text] == ',') {
|
||||
// *index_in_text++;
|
||||
// return unquote_sym;
|
||||
// }
|
||||
// if (text[*index_in_text] == ',' && text[*index_in_text] == '@') {
|
||||
// *index_in_text += 2;
|
||||
// return us_sym;
|
||||
// }
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
proc inject_scl(Lisp_Object* lo) -> void {
|
||||
lo->sourceCodeLocation = new(Source_Code_Location);
|
||||
lo->sourceCodeLocation->file = parser_file;
|
||||
lo->sourceCodeLocation->line = parser_line;
|
||||
lo->sourceCodeLocation->column = parser_col;
|
||||
}
|
||||
|
||||
proc eat_comment_line(char* text, int* index_in_text) -> void {
|
||||
// safety check if we are actually starting a comment here
|
||||
if (text[*index_in_text] != ';')
|
||||
@@ -51,13 +18,8 @@ namespace Parser {
|
||||
text[(*index_in_text)] != '\0');
|
||||
}
|
||||
|
||||
proc eat_whitespace(char* text, int* index_in_text) -> void {
|
||||
// skip whitespaces
|
||||
while (text[(*index_in_text)] == ' ' ||
|
||||
text[(*index_in_text)] == '\t' ||
|
||||
text[(*index_in_text)] == '\n' ||
|
||||
text[(*index_in_text)] == '\r')
|
||||
{
|
||||
proc step_char(char* text, int* index_in_text, int steps = 1) {
|
||||
for (int i = 0; i < steps; ++i) {
|
||||
if (text[(*index_in_text)] == '\n') {
|
||||
++parser_line;
|
||||
parser_col = 0;
|
||||
@@ -65,10 +27,21 @@ namespace Parser {
|
||||
++parser_col;
|
||||
++(*index_in_text);
|
||||
}
|
||||
}
|
||||
|
||||
proc eat_whitespace(char* text, int* index_in_text) -> void {
|
||||
// skip whitespaces
|
||||
while (text[(*index_in_text)] == ' ' ||
|
||||
text[(*index_in_text)] == '\t' ||
|
||||
text[(*index_in_text)] == '\n' ||
|
||||
text[(*index_in_text)] == '\r')
|
||||
{
|
||||
step_char(text, index_in_text);
|
||||
}
|
||||
}
|
||||
|
||||
proc eat_until_code(char* text, int* index_in_text) -> void {
|
||||
profile_this();
|
||||
int position_before;
|
||||
do {
|
||||
position_before = *index_in_text;
|
||||
@@ -77,11 +50,48 @@ namespace Parser {
|
||||
} while (position_before != *index_in_text);
|
||||
}
|
||||
|
||||
proc read_atom(char* text, int* index_in_text) -> String* {
|
||||
proc step_char_and_eat_until_code(char* text, int* index_in_text) {
|
||||
step_char(text, index_in_text);
|
||||
eat_until_code(text, index_in_text);
|
||||
}
|
||||
|
||||
proc parse_fancy_delimiter(char* text, int* index_in_text, char l_delimiter, char r_delimiter, Lisp_Object* first_elem) -> Lisp_Object* {
|
||||
profile_this();
|
||||
if (text[*index_in_text] != l_delimiter) {
|
||||
create_parsing_error("a fancy cannot be parsed here");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
Lisp_Object* ret;
|
||||
Lisp_Object* head;
|
||||
try ret = Memory::create_lisp_object_pair(first_elem, Memory::nil);
|
||||
head = ret;
|
||||
|
||||
step_char(text, index_in_text);
|
||||
|
||||
eat_until_code(text, index_in_text);
|
||||
while (text[*index_in_text] != r_delimiter) {
|
||||
Lisp_Object* element;
|
||||
try element = parse_expression(text, index_in_text);
|
||||
try head->value.pair.rest = Memory::create_lisp_object_pair(element, Memory::nil);
|
||||
head = head->value.pair.rest;
|
||||
eat_until_code(text, index_in_text);
|
||||
}
|
||||
|
||||
step_char(text, index_in_text);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
proc get_atom_text_length(char* text, int* index_in_text) -> int {
|
||||
int atom_length = 0;
|
||||
while (text[*index_in_text+atom_length] != ' ' &&
|
||||
text[*index_in_text+atom_length] != ')' &&
|
||||
text[*index_in_text+atom_length] != '(' &&
|
||||
text[*index_in_text+atom_length] != '[' &&
|
||||
text[*index_in_text+atom_length] != ']' &&
|
||||
text[*index_in_text+atom_length] != '{' &&
|
||||
text[*index_in_text+atom_length] != '}' &&
|
||||
text[*index_in_text+atom_length] != '\0' &&
|
||||
text[*index_in_text+atom_length] != '\n' &&
|
||||
text[*index_in_text+atom_length] != '\r' &&
|
||||
@@ -89,80 +99,64 @@ namespace Parser {
|
||||
{
|
||||
++atom_length;
|
||||
}
|
||||
|
||||
// let's mark the end of the atom there quickly, so the string can
|
||||
// be copied from there easily and then put the char that was
|
||||
// before there back
|
||||
char before = text[*index_in_text+atom_length];
|
||||
text[*index_in_text+atom_length] = '\0';
|
||||
|
||||
// get the atom
|
||||
String* ret = Memory::create_string("", atom_length);
|
||||
// char* atom = (char*)malloc(atom_length*sizeof(char)+1); // plus null char
|
||||
strcpy(&ret->data, text+(*index_in_text));
|
||||
|
||||
// restore the original string
|
||||
text[*index_in_text+atom_length] = before;
|
||||
|
||||
// update the index to point to the character after the atom
|
||||
// ended
|
||||
*index_in_text += atom_length;
|
||||
parser_col += atom_length;
|
||||
|
||||
return ret;
|
||||
return atom_length;
|
||||
}
|
||||
|
||||
proc parse_number(char* text, int* index_in_text) -> Lisp_Object* {
|
||||
double number;
|
||||
// TODO(Felix): parse the number direcrly from the string and
|
||||
// dont create a String first
|
||||
String* str_number = read_atom(text, index_in_text);
|
||||
sscanf(Memory::get_c_str(str_number), "%lf", &number);
|
||||
Lisp_Object* ret;
|
||||
try ret = Memory::create_lisp_object_number(number);
|
||||
try ret = Memory::create_lisp_object(0.0);
|
||||
|
||||
sscanf(text+*index_in_text, "%lf", &ret->value.number);
|
||||
|
||||
int atom_length = get_atom_text_length(text, index_in_text);
|
||||
step_char(text, index_in_text, atom_length);
|
||||
|
||||
inject_scl(ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
proc parse_keyword(char* text, int* index_in_text) -> Lisp_Object* {
|
||||
// we are now on the colon
|
||||
++(*index_in_text);
|
||||
++parser_col;
|
||||
String* str_keyword = read_atom(text, index_in_text);
|
||||
Lisp_Object* ret;
|
||||
try ret = Memory::get_or_create_lisp_object_keyword(str_keyword);
|
||||
proc parse_symbol_or_keyword(char* text, int* index_in_text) -> Lisp_Object* {
|
||||
bool keyword = false;
|
||||
if (text[*index_in_text] == ':') {
|
||||
keyword = true;
|
||||
step_char(text, index_in_text);
|
||||
}
|
||||
|
||||
int atom_length = get_atom_text_length(text, index_in_text);
|
||||
char orig = text[*index_in_text+atom_length];
|
||||
text[*index_in_text+atom_length] = '\0';
|
||||
|
||||
|
||||
String* str_keyword;
|
||||
Lisp_Object* ret;
|
||||
try str_keyword = Memory::create_string("", atom_length);
|
||||
strcpy(&str_keyword->data, text+*index_in_text);
|
||||
|
||||
if (keyword) {
|
||||
try ret = Memory::get_keyword(str_keyword);
|
||||
} else {
|
||||
try ret = Memory::get_symbol(str_keyword);
|
||||
}
|
||||
|
||||
|
||||
text[*index_in_text+atom_length] = orig;
|
||||
step_char(text, index_in_text, atom_length);
|
||||
|
||||
inject_scl(ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
proc parse_symbol(char* text, int* index_in_text) -> Lisp_Object* {
|
||||
// we are now at the first char of the symbol
|
||||
String* str_symbol = read_atom(text, index_in_text);
|
||||
Lisp_Object* ret;
|
||||
try ret = Memory::get_or_create_lisp_object_symbol(str_symbol);
|
||||
|
||||
inject_scl(ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
proc parse_string(char* text, int* index_in_text) -> Lisp_Object*{
|
||||
proc parse_string(char* text, int* index_in_text) -> Lisp_Object* {
|
||||
// the first character is the '"'
|
||||
++(*index_in_text);
|
||||
++parser_col;
|
||||
step_char(text, index_in_text);
|
||||
|
||||
// now we are at the first letter, if this is the closing '"' then
|
||||
// it's easy
|
||||
if (text[*index_in_text] == '"') {
|
||||
Lisp_Object* ret;
|
||||
try ret = Memory::create_lisp_object_string(
|
||||
Memory::create_string("", 0));
|
||||
inject_scl(ret);
|
||||
try ret = Memory::create_lisp_object(Memory::create_string("", 0));
|
||||
// inject_scl(ret);
|
||||
|
||||
// plus one because we want to go after the quotes
|
||||
*index_in_text += 1;
|
||||
++parser_col;
|
||||
step_char(text, index_in_text);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@@ -170,10 +164,10 @@ namespace Parser {
|
||||
// okay so the first letter was not actually closing the string...
|
||||
int string_length = 0;
|
||||
bool escaping = false;
|
||||
while (!(text[*index_in_text+string_length] == '"' && !escaping))
|
||||
{
|
||||
if (escaping)
|
||||
while (escaping || text[*index_in_text+string_length] != '"') {
|
||||
if (escaping) {
|
||||
escaping = false;
|
||||
}
|
||||
else
|
||||
if (text[*index_in_text+string_length] == '\\')
|
||||
escaping = true;
|
||||
@@ -187,43 +181,29 @@ namespace Parser {
|
||||
// NOTE(Felix): Tactic: Through unescaping the string will
|
||||
// only get shorter, so we replace it inplace and later jump
|
||||
// to the original end of the string.
|
||||
try unescape_string(text+(*index_in_text));
|
||||
int new_len;
|
||||
try new_len = unescape_string(text+(*index_in_text));
|
||||
|
||||
String* string = Memory::create_string("", string_length);
|
||||
String* string = Memory::create_string("", new_len);
|
||||
|
||||
// TODO(Felix): manually copy to parse control sequences
|
||||
// correctly without the need to unescape the string, also
|
||||
// better for keeping track of the encountered new lines and
|
||||
// characters since last new line so we can update the parser
|
||||
// location more easily
|
||||
strcpy(&string->data, text+(*index_in_text));
|
||||
// printf("------ %s\n", &string->data);
|
||||
|
||||
text[*index_in_text+string_length] = '"';
|
||||
|
||||
// plus one because we want to go after the quotes
|
||||
*index_in_text += string_length +1;
|
||||
|
||||
// NOTE(Felix): this only has to be done until we manually
|
||||
// copy the string and we can do some bookeeping:
|
||||
/* recalculate the parser cursors position: */
|
||||
/* new col = (count chars since last \n) + 1 */
|
||||
for (int i = 0; i < string->length; ++i) {
|
||||
if (*((&string->data)+i) == '\n') {
|
||||
++parser_line;
|
||||
parser_col = 0;
|
||||
} else {
|
||||
++parser_col;
|
||||
}
|
||||
}
|
||||
step_char(text, index_in_text, string_length+1);
|
||||
|
||||
Lisp_Object* ret;
|
||||
try ret = Memory::create_lisp_object_string(string);
|
||||
try ret = Memory::create_lisp_object(string);
|
||||
|
||||
inject_scl(ret);
|
||||
// inject_scl(ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
proc parse_atom(char* text, int* index_in_text) -> Lisp_Object* {
|
||||
profile_this();
|
||||
Lisp_Object* ret;
|
||||
// numbers
|
||||
if ((text[*index_in_text] <= 57 && // if number
|
||||
text[*index_in_text] >= 48)
|
||||
@@ -238,135 +218,149 @@ namespace Parser {
|
||||
&&
|
||||
(text[*index_in_text +1] <= 57 &&
|
||||
text[*index_in_text +1] >= 48)))
|
||||
return parse_number(text, index_in_text);
|
||||
|
||||
// keywords
|
||||
if (text[*index_in_text] == ':')
|
||||
return parse_keyword(text, index_in_text);
|
||||
|
||||
// strings
|
||||
if (text[*index_in_text] == '"')
|
||||
return parse_string(text, index_in_text);
|
||||
|
||||
return parse_symbol(text, index_in_text);
|
||||
}
|
||||
|
||||
proc parse_expression(char* text, int* index_in_text) -> Lisp_Object* {
|
||||
|
||||
// if it is quoted
|
||||
// TODO(Felix): This looks totally broken..
|
||||
if (text[*index_in_text] == '\'' ||
|
||||
text[*index_in_text] == '`' ||
|
||||
text[*index_in_text] == '@' ||
|
||||
text[*index_in_text] == ',')
|
||||
{
|
||||
char quoteType = text[*index_in_text];
|
||||
++(*index_in_text);
|
||||
++parser_col;
|
||||
Lisp_Object* result;
|
||||
if (text[*index_in_text] == '(' ||
|
||||
text[*index_in_text] == '\'' ||
|
||||
text[*index_in_text] == '`' ||
|
||||
text[*index_in_text] == '@' ||
|
||||
text[*index_in_text] == ',')
|
||||
{
|
||||
try result = parse_expression(text, index_in_text);
|
||||
} else {
|
||||
try result = parse_atom(text, index_in_text);
|
||||
}
|
||||
|
||||
Lisp_Object* ret = nullptr;
|
||||
if (quoteType == '\'')
|
||||
try ret = Memory::create_list(Memory::get_or_create_lisp_object_symbol("quote"), result);
|
||||
else if (quoteType == '`')
|
||||
try ret = Memory::create_list(Memory::get_or_create_lisp_object_symbol("quasiquote"), result);
|
||||
else if (quoteType == ',')
|
||||
try ret = Memory::create_list(Memory::get_or_create_lisp_object_symbol("unquote"), result);
|
||||
else if (quoteType == '@') {
|
||||
try ret = Memory::create_list(Memory::get_or_create_lisp_object_symbol("unquote-splicing"), result);
|
||||
}
|
||||
|
||||
if (ret) inject_scl(ret);
|
||||
|
||||
return ret;
|
||||
try ret = parse_number(text, index_in_text);
|
||||
}
|
||||
|
||||
else if (text[*index_in_text] == '"')
|
||||
try ret = parse_string(text, index_in_text);
|
||||
else
|
||||
try ret = parse_symbol_or_keyword(text, index_in_text);
|
||||
|
||||
// if it is not quoted
|
||||
++(*index_in_text);
|
||||
++parser_col;
|
||||
return ret;
|
||||
}
|
||||
|
||||
eat_whitespace(text, index_in_text);
|
||||
|
||||
// if there was actually nothing in the list, we define here,
|
||||
// that that means nil
|
||||
if (text[(*index_in_text)] == ')') {
|
||||
++(*index_in_text);
|
||||
++parser_col;
|
||||
|
||||
proc parse_list(char* text, int* index_in_text) -> Lisp_Object* {
|
||||
profile_this();
|
||||
if (text[*index_in_text] != '(') {
|
||||
create_parsing_error("a list cannot be parsed here");
|
||||
return nullptr;
|
||||
}
|
||||
step_char_and_eat_until_code(text, index_in_text);
|
||||
|
||||
if (text[*index_in_text] == ')') {
|
||||
step_char(text, index_in_text);
|
||||
return Memory::nil;
|
||||
}
|
||||
|
||||
// okay there is something
|
||||
Lisp_Object* first_elem;
|
||||
Lisp_Object* ret;
|
||||
Lisp_Object* head;
|
||||
try head = Memory::create_lisp_object();
|
||||
Memory::set_type(head, Lisp_Object_Type::Pair);
|
||||
// head->value.pair = new(Pair);
|
||||
Lisp_Object* expression = head;
|
||||
|
||||
while (true) {
|
||||
inject_scl(head);
|
||||
if (text[*index_in_text] == '(' ||
|
||||
text[*index_in_text] == '\''||
|
||||
text[*index_in_text] == '`' ||
|
||||
text[*index_in_text] == '@' ||
|
||||
text[*index_in_text] == ',')
|
||||
|
||||
try first_elem = parse_expression(text, index_in_text);
|
||||
try ret = Memory::create_lisp_object_pair(first_elem, Memory::nil);
|
||||
head = ret;
|
||||
|
||||
eat_until_code(text, index_in_text);
|
||||
while (text[*index_in_text] != ')') {
|
||||
Lisp_Object* element;
|
||||
|
||||
if (text[*index_in_text+0] == '.' &&
|
||||
text[*index_in_text+1] == ' ')
|
||||
{
|
||||
try head->value.pair.first = parse_expression(text, index_in_text);
|
||||
} else {
|
||||
try head->value.pair.first = parse_atom(text, index_in_text);
|
||||
step_char(text, index_in_text, 2);
|
||||
try element = parse_expression(text, index_in_text);
|
||||
head->value.pair.rest = element;
|
||||
|
||||
eat_until_code(text, index_in_text);
|
||||
if (text[*index_in_text] != ')') {
|
||||
create_parsing_error("expected the list to end after the dotted end.");
|
||||
return nullptr;
|
||||
}
|
||||
step_char(text, index_in_text);
|
||||
return ret;
|
||||
}
|
||||
|
||||
try element = parse_expression(text, index_in_text);
|
||||
try head->value.pair.rest = Memory::create_lisp_object_pair(element, Memory::nil);
|
||||
head = head->value.pair.rest;
|
||||
eat_until_code(text, index_in_text);
|
||||
if (text[(*index_in_text)] == '\0') {
|
||||
create_parsing_error(
|
||||
"Unexpected EOF in %s:%d:%d",
|
||||
parser_file, parser_line, parser_col);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
|
||||
if (text[(*index_in_text)] == ')') {
|
||||
head->value.pair.rest = Memory::nil;
|
||||
++parser_col;
|
||||
++(*index_in_text);
|
||||
break;
|
||||
} else if (text[(*index_in_text) ] == '.' &&
|
||||
text[(*index_in_text)+1] == ' ')
|
||||
{
|
||||
++parser_col;
|
||||
++(*index_in_text);
|
||||
eat_until_code(text, index_in_text);
|
||||
|
||||
if (text[(*index_in_text)] == '(')
|
||||
head->value.pair.rest = parse_expression(text, index_in_text);
|
||||
else
|
||||
head->value.pair.rest = parse_atom(text, index_in_text);
|
||||
|
||||
eat_until_code(text, index_in_text);
|
||||
|
||||
if (text[(*index_in_text)] != ')')
|
||||
create_parsing_error(
|
||||
"Expected ')' after the element after the '.' in %s:%d:%d",
|
||||
create_source_code_location(parser_file, parser_line, parser_col));
|
||||
++parser_col;
|
||||
++(*index_in_text);
|
||||
break;
|
||||
} else {
|
||||
try head->value.pair.rest = Memory::create_lisp_object_pair(Memory::nil, Memory::nil);
|
||||
head = head->value.pair.rest;
|
||||
}
|
||||
}
|
||||
return expression;
|
||||
step_char(text, index_in_text);
|
||||
return ret;
|
||||
}
|
||||
|
||||
proc maybe_expand_short_form(char* text, int* index_in_text) -> Lisp_Object* {
|
||||
profile_this();
|
||||
Lisp_Object* vector_sym = Memory::get_symbol("vector");
|
||||
Lisp_Object* hash_map_sym = Memory::get_symbol("hash-map");
|
||||
|
||||
Lisp_Object* quote_sym = Memory::get_symbol("quote");
|
||||
Lisp_Object* quasiquote_sym = Memory::get_symbol("quasiquote");
|
||||
Lisp_Object* unquote_sym = Memory::get_symbol("unquote");
|
||||
Lisp_Object* unquote_splicing_sym = Memory::get_symbol("unquote-splicing");
|
||||
|
||||
Lisp_Object* ret = nullptr;
|
||||
Lisp_Object* expr;
|
||||
|
||||
switch (text[*index_in_text]) {
|
||||
case '\'': {
|
||||
// quote
|
||||
step_char_and_eat_until_code(text, index_in_text);
|
||||
try expr = parse_expression(text, index_in_text);
|
||||
try ret = Memory::create_lisp_object_pair(expr, Memory::nil);
|
||||
try ret = Memory::create_lisp_object_pair(quote_sym, ret);
|
||||
} break;
|
||||
case '`': {
|
||||
// quasiquote
|
||||
step_char_and_eat_until_code(text, index_in_text);
|
||||
try expr = parse_expression(text, index_in_text);
|
||||
try ret = Memory::create_lisp_object_pair(expr, Memory::nil);
|
||||
try ret = Memory::create_lisp_object_pair(quasiquote_sym, ret);
|
||||
} break;
|
||||
case ',': {
|
||||
step_char_and_eat_until_code(text, index_in_text);
|
||||
if (text[*index_in_text] == '@') {
|
||||
// unquote-splicing
|
||||
step_char_and_eat_until_code(text, index_in_text);
|
||||
try expr = parse_expression(text, index_in_text);
|
||||
try ret = Memory::create_lisp_object_pair(expr, Memory::nil);
|
||||
try ret = Memory::create_lisp_object_pair(unquote_splicing_sym, ret);
|
||||
} else {
|
||||
// unquote
|
||||
try expr = parse_expression(text, index_in_text);
|
||||
try ret = Memory::create_lisp_object_pair(expr, Memory::nil);
|
||||
try ret = Memory::create_lisp_object_pair(unquote_sym, ret);
|
||||
}
|
||||
} break;
|
||||
case '[': {
|
||||
// vector
|
||||
try ret = parse_fancy_delimiter(text, index_in_text, '[', ']', vector_sym);
|
||||
} break;
|
||||
case '{': {
|
||||
// hashmap
|
||||
try ret = parse_fancy_delimiter(text, index_in_text, '{', '}', hash_map_sym);
|
||||
} break;
|
||||
default: break;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
proc parse_expression(char* text, int* index_in_text) -> Lisp_Object* {
|
||||
profile_this();
|
||||
Lisp_Object* ret;
|
||||
eat_until_code(text, index_in_text);
|
||||
try ret = maybe_expand_short_form(text, index_in_text);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
if (text[*index_in_text] == '(') {
|
||||
try ret = parse_list(text, index_in_text);
|
||||
} else {
|
||||
try ret = parse_atom(text, index_in_text);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
proc parse_single_expression(wchar_t* text) -> Lisp_Object* {
|
||||
char* res = wchar_to_char(text);
|
||||
defer {free(res);};
|
||||
return parse_single_expression(res);
|
||||
}
|
||||
|
||||
proc parse_single_expression(char* text) -> Lisp_Object* {
|
||||
@@ -375,135 +369,30 @@ namespace Parser {
|
||||
parser_col = 1;
|
||||
|
||||
int index_in_text = 0;
|
||||
Lisp_Object* result;
|
||||
eat_until_code(text, &index_in_text);
|
||||
if (text[(index_in_text)] == '\0')
|
||||
return Memory::nil;
|
||||
if (text[index_in_text] == '(' ||
|
||||
text[index_in_text] == '\'' ||
|
||||
text[index_in_text] == '@' ||
|
||||
text[index_in_text] == '`' ||
|
||||
text[index_in_text] == ',')
|
||||
{
|
||||
try {
|
||||
result = parse_expression(text, &index_in_text);
|
||||
}
|
||||
}
|
||||
else
|
||||
try {
|
||||
result = parse_atom(text, &index_in_text);
|
||||
}
|
||||
eat_until_code(text, &index_in_text);
|
||||
if (text[(index_in_text)] == '\0')
|
||||
return result;
|
||||
|
||||
create_parsing_error("Trainling garbage after expression at %s:%d:%d",
|
||||
parser_file, parser_line, parser_col);
|
||||
return nullptr;
|
||||
Lisp_Object* ret;
|
||||
try ret = parse_expression(text, &index_in_text);
|
||||
return ret;
|
||||
}
|
||||
|
||||
proc parse_single_expression_or_bare_words(char* text, char* bare) -> Lisp_Object* {
|
||||
parser_file = standard_in;
|
||||
parser_line = 1;
|
||||
parser_col = 1;
|
||||
|
||||
int index_in_text = 0;
|
||||
Lisp_Object* result;
|
||||
eat_until_code(text, &index_in_text);
|
||||
if (text[(index_in_text)] == '\0')
|
||||
return Memory::nil;
|
||||
if (text[index_in_text] == '(' ||
|
||||
text[index_in_text] == '\'' ||
|
||||
text[index_in_text] == '@' ||
|
||||
text[index_in_text] == '`' ||
|
||||
text[index_in_text] == ',')
|
||||
{
|
||||
try {
|
||||
result = parse_expression(text, &index_in_text);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
else {
|
||||
// TODO(Felix): What is going on, why do we not have to
|
||||
// increase the index_in_text
|
||||
|
||||
int end_pos = index_in_text;
|
||||
while (text[end_pos] != '\n')
|
||||
++end_pos;
|
||||
|
||||
text[end_pos] = '\0';
|
||||
Lisp_Object* str;
|
||||
try str = Memory::create_lisp_object_string(
|
||||
Memory::create_string(text+index_in_text));
|
||||
text[end_pos] = '\n';
|
||||
|
||||
return Memory::create_list(Memory::get_or_create_lisp_object_symbol(bare), str);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
proc write_expanded_file(String* file_name, Lisp_Object_Array_List program) -> void {
|
||||
const char* ext = ".expanded";
|
||||
char* newName = (char*)calloc(10 + file_name->length, sizeof(char));
|
||||
strcpy(newName, Memory::get_c_str(file_name));
|
||||
strcat(newName, ext);
|
||||
|
||||
FILE *f = fopen(newName, "w");
|
||||
defer {
|
||||
fclose(f);
|
||||
free(newName);
|
||||
};
|
||||
|
||||
if (f == NULL) {
|
||||
printf("Error opening .expanded file for writing!\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
for (int i = 0; i < program.next_index; ++i) {
|
||||
// a macro will parse as nil for now, so we skip those
|
||||
if (program.data[i] == Memory::nil)
|
||||
continue;
|
||||
print(program.data[i], true, f);
|
||||
fprintf(f, "\n\n");
|
||||
}
|
||||
}
|
||||
|
||||
proc parse_program(String* file_name, char* text) -> Lisp_Object_Array_List {
|
||||
proc parse_program(String* file_name, char* text) -> Array_List<Lisp_Object*>* {
|
||||
profile_this();
|
||||
parser_file = file_name;
|
||||
parser_line = 1;
|
||||
parser_col = 0;
|
||||
|
||||
Lisp_Object_Array_List program = create_Lisp_Object_array_list();
|
||||
Array_List<Lisp_Object*>* program = new Array_List<Lisp_Object*>;
|
||||
|
||||
int index_in_text = 0;
|
||||
Lisp_Object* parsed;
|
||||
|
||||
eat_until_code(text, &index_in_text);
|
||||
while (text[index_in_text] != '\0') {
|
||||
switch (text[index_in_text]) {
|
||||
case '(': {
|
||||
Lisp_Object* parsed;
|
||||
try_struct {
|
||||
parsed = parse_expression(text, &index_in_text);
|
||||
}
|
||||
append_to_array_list(&program, parsed);
|
||||
} break;
|
||||
case ';':
|
||||
case ' ':
|
||||
case '\t':
|
||||
case '\n':
|
||||
case '\r': {
|
||||
eat_until_code(text, &index_in_text);
|
||||
} break;
|
||||
default:
|
||||
/* syntax error */
|
||||
create_parsing_error("Garbage in file scope at %s:%d:%d",
|
||||
parser_file, parser_line, parser_col);
|
||||
return {};
|
||||
}
|
||||
try parsed = parse_expression(text, &index_in_text);
|
||||
program->append(parsed);
|
||||
eat_until_code(text, &index_in_text);
|
||||
}
|
||||
|
||||
write_expanded_file(file_name, program);
|
||||
|
||||
return program;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,135 +1,170 @@
|
||||
inline proc get_cwd() -> char* {
|
||||
const int buf_size = 2048;
|
||||
char* res = (char*)malloc(buf_size * sizeof(char));
|
||||
namespace Slime {
|
||||
|
||||
inline proc get_cwd() -> char* {
|
||||
const int buf_size = 2048;
|
||||
char* res = (char*)malloc(buf_size * sizeof(char));
|
||||
|
||||
#ifdef _MSC_VER
|
||||
_getcwd(res, buf_size);
|
||||
_getcwd(res, buf_size);
|
||||
#else
|
||||
getcwd(res, buf_size);
|
||||
getcwd(res, buf_size);
|
||||
#endif
|
||||
|
||||
return res;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
inline proc change_cwd(char* dir) -> void {
|
||||
inline proc change_cwd(char* dir) -> void {
|
||||
#ifdef _MSC_VER
|
||||
_chdir(dir);
|
||||
_chdir(dir);
|
||||
#else
|
||||
chdir(dir);
|
||||
chdir(dir);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
proc get_exe_dir() -> char* {
|
||||
#ifdef _MSC_VER
|
||||
DWORD last_error;
|
||||
DWORD result;
|
||||
DWORD path_size = 1024;
|
||||
char* path = (char*)malloc(1024);
|
||||
|
||||
while (true) {
|
||||
memset(path, 0, path_size);
|
||||
result = GetModuleFileName(0, path, path_size - 1);
|
||||
last_error = GetLastError();
|
||||
|
||||
if (0 == result) {
|
||||
free(path);
|
||||
path = 0;
|
||||
break;
|
||||
int vasprintf(char **strp, const char *fmt, va_list ap) {
|
||||
// _vscprintf tells you how big the buffer needs to be
|
||||
int len = _vscprintf(fmt, ap);
|
||||
if (len == -1) {
|
||||
return -1;
|
||||
}
|
||||
else if (result == path_size - 1) {
|
||||
free(path);
|
||||
/* May need to also check for ERROR_SUCCESS here if XP/2K */
|
||||
if (ERROR_INSUFFICIENT_BUFFER != last_error) {
|
||||
size_t size = (size_t)len + 1;
|
||||
char *str = (char*)malloc(size);
|
||||
if (!str) {
|
||||
return -1;
|
||||
}
|
||||
// _vsprintf_s is the "secure" version of vsprintf
|
||||
int r = vsprintf_s(str, len + 1, fmt, ap);
|
||||
if (r == -1) {
|
||||
free(str);
|
||||
return -1;
|
||||
}
|
||||
*strp = str;
|
||||
return r;
|
||||
}
|
||||
|
||||
int asprintf(char **strp, const char *fmt, ...) {
|
||||
va_list ap;
|
||||
va_start(ap, fmt);
|
||||
int r = vasprintf(strp, fmt, ap);
|
||||
va_end(ap);
|
||||
return r;
|
||||
}
|
||||
#endif
|
||||
|
||||
proc get_exe_dir() -> char* {
|
||||
#ifdef _MSC_VER
|
||||
DWORD last_error;
|
||||
DWORD result;
|
||||
DWORD path_size = 1024;
|
||||
char* path = (char*)malloc(1024);
|
||||
|
||||
while (true) {
|
||||
memset(path, 0, path_size);
|
||||
result = GetModuleFileName(0, path, path_size - 1);
|
||||
last_error = GetLastError();
|
||||
|
||||
if (0 == result) {
|
||||
free(path);
|
||||
path = 0;
|
||||
break;
|
||||
}
|
||||
path_size = path_size * 2;
|
||||
path = (char*)malloc(path_size);
|
||||
}
|
||||
else
|
||||
break;
|
||||
}
|
||||
|
||||
if (!path) {
|
||||
fprintf(stderr, "Failure: %ld\n", last_error);
|
||||
return nullptr;
|
||||
}
|
||||
else {
|
||||
// remove the exe name, so we are only left with the path
|
||||
|
||||
int index_in_path = -1;
|
||||
int last_backslash = -1;
|
||||
|
||||
char c;
|
||||
while ((c = path[++index_in_path]) != '\0') {
|
||||
if (c == '\\')
|
||||
last_backslash = index_in_path;
|
||||
else if (result == path_size - 1) {
|
||||
free(path);
|
||||
/* May need to also check for ERROR_SUCCESS here if XP/2K */
|
||||
if (ERROR_INSUFFICIENT_BUFFER != last_error) {
|
||||
path = 0;
|
||||
break;
|
||||
}
|
||||
path_size = path_size * 2;
|
||||
path = (char*)malloc(path_size);
|
||||
}
|
||||
else
|
||||
break;
|
||||
}
|
||||
|
||||
// we are assuming there are some backslashes
|
||||
path[last_backslash+1] = '\0';
|
||||
|
||||
return path;
|
||||
}
|
||||
#else
|
||||
ssize_t size = 512, i, n;
|
||||
char *path, *temp;
|
||||
|
||||
while (1) {
|
||||
size_t used;
|
||||
|
||||
path = (char*)malloc(size);
|
||||
if (!path) {
|
||||
fprintf(stderr, "Failure: %ld\n", last_error);
|
||||
return nullptr;
|
||||
}
|
||||
else {
|
||||
// remove the exe name, so we are only left with the path
|
||||
|
||||
int index_in_path = -1;
|
||||
int last_backslash = -1;
|
||||
|
||||
char c;
|
||||
while ((c = path[++index_in_path]) != '\0') {
|
||||
if (c == '\\')
|
||||
last_backslash = index_in_path;
|
||||
}
|
||||
|
||||
// we are assuming there are some backslashes
|
||||
path[last_backslash+1] = '\0';
|
||||
|
||||
return path;
|
||||
}
|
||||
#else
|
||||
ssize_t size = 512, i, n;
|
||||
char *path, *temp;
|
||||
|
||||
while (1) {
|
||||
size_t used;
|
||||
|
||||
path = (char*)malloc(size);
|
||||
if (!path) {
|
||||
errno = ENOMEM;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
used = readlink("/proc/self/exe", path, size);
|
||||
|
||||
if (used == -1) {
|
||||
const int saved_errno = errno;
|
||||
free(path);
|
||||
errno = saved_errno;
|
||||
return NULL;
|
||||
} else
|
||||
if (used < 1) {
|
||||
free(path);
|
||||
errno = EIO;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if ((size_t)used >= size) {
|
||||
free(path);
|
||||
size = (size | 2047) + 2049;
|
||||
continue;
|
||||
}
|
||||
|
||||
size = (size_t)used;
|
||||
break;
|
||||
}
|
||||
|
||||
/* Find final slash. */
|
||||
n = 0;
|
||||
for (i = 0; i < size; i++)
|
||||
if (path[i] == '/')
|
||||
n = i;
|
||||
|
||||
/* Optimize allocated size,
|
||||
ensuring there is room for
|
||||
a final slash and a
|
||||
string-terminating '\0', */
|
||||
temp = path;
|
||||
path = (char*)realloc(temp, n + 2);
|
||||
if (!path) {
|
||||
free(temp);
|
||||
errno = ENOMEM;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
used = readlink("/proc/self/exe", path, size);
|
||||
/* and properly trim and terminate the path string. */
|
||||
path[n+0] = '/';
|
||||
path[n+1] = '\0';
|
||||
|
||||
if (used == -1) {
|
||||
const int saved_errno = errno;
|
||||
free(path);
|
||||
errno = saved_errno;
|
||||
return NULL;
|
||||
} else
|
||||
if (used < 1) {
|
||||
free(path);
|
||||
errno = EIO;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if ((size_t)used >= size) {
|
||||
free(path);
|
||||
size = (size | 2047) + 2049;
|
||||
continue;
|
||||
}
|
||||
|
||||
size = (size_t)used;
|
||||
break;
|
||||
}
|
||||
|
||||
/* Find final slash. */
|
||||
n = 0;
|
||||
for (i = 0; i < size; i++)
|
||||
if (path[i] == '/')
|
||||
n = i;
|
||||
|
||||
/* Optimize allocated size,
|
||||
ensuring there is room for
|
||||
a final slash and a
|
||||
string-terminating '\0', */
|
||||
temp = path;
|
||||
path = (char*)realloc(temp, n + 2);
|
||||
if (!path) {
|
||||
free(temp);
|
||||
errno = ENOMEM;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* and properly trim and terminate the path string. */
|
||||
path[n+0] = '/';
|
||||
path[n+1] = '\0';
|
||||
|
||||
return path;
|
||||
return path;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,49 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#define _CRT_SECURE_NO_WARNINGS
|
||||
#define _CRT_SECURE_NO_DEPRECATE
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <time.h>
|
||||
#include <string.h>
|
||||
#include <cmath>
|
||||
#include <ctype.h>
|
||||
#include <stdarg.h>
|
||||
#include <functional>
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# include <direct.h>
|
||||
# include <windows.h>
|
||||
|
||||
#else
|
||||
# include <unistd.h>
|
||||
# include <signal.h>
|
||||
#endif
|
||||
|
||||
#undef _CRT_SECURE_NO_DEPRECATE
|
||||
#undef _CRT_SECURE_NO_WARNINGS
|
||||
|
||||
#include "./ftb/macros.hpp"
|
||||
#include "./ftb/profiler.hpp"
|
||||
#include "./ftb/hashmap.hpp"
|
||||
|
||||
namespace Slime {
|
||||
# include "./defines.cpp"
|
||||
# include "./platform.cpp"
|
||||
# include "./structs.cpp"
|
||||
# include "./forward_decls.cpp"
|
||||
# include "./memory.cpp"
|
||||
# include "./gc.cpp"
|
||||
# include "./lisp_object.cpp"
|
||||
# include "./error.cpp"
|
||||
# include "./io.cpp"
|
||||
# include "./env.cpp"
|
||||
# include "./parse.cpp"
|
||||
# include "./eval.cpp"
|
||||
# include "./visualization.cpp"
|
||||
# include "./docgeneration.cpp"
|
||||
# include "./built_ins.cpp"
|
||||
# include "./testing.cpp"
|
||||
# include "./undefines.cpp"
|
||||
}
|
||||
@@ -1,165 +1,144 @@
|
||||
struct Lisp_Object;
|
||||
struct String;
|
||||
struct Environment;
|
||||
namespace Slime {
|
||||
struct Lisp_Object;
|
||||
struct String;
|
||||
struct Environment;
|
||||
|
||||
// ARRAY LISTS
|
||||
define_array_list(Lisp_Object*, Lisp_Object);
|
||||
define_array_list(Environment*, Environment);
|
||||
define_array_list(String*, String);
|
||||
define_array_list(int, Int);
|
||||
define_array_list(void*, Void_Ptr);
|
||||
enum struct Thread_Type {
|
||||
Main,
|
||||
GarbageCollection
|
||||
};
|
||||
|
||||
// HASH MAPS
|
||||
define_hash_map(char*, String);
|
||||
define_hash_map(Lisp_Object*, Lisp_Obj);
|
||||
define_hash_map(void*, Void_Ptr);
|
||||
#define for_str_hash_map(hm) __for_hm_generator(char*, hm)
|
||||
#define for_ptr_hash_map(hm) __for_hm_generator(void*, hm)
|
||||
#define for_lisp_obj_hash_map(hm) __for_hm_generator(Lisp_Object*, hm)
|
||||
enum struct Lisp_Object_Type {
|
||||
Nil,
|
||||
T,
|
||||
Symbol,
|
||||
Keyword,
|
||||
Number,
|
||||
String,
|
||||
Pair,
|
||||
Vector,
|
||||
Continuation,
|
||||
Pointer,
|
||||
HashMap,
|
||||
// OwningPointer,
|
||||
Function,
|
||||
CFunction,
|
||||
};
|
||||
|
||||
// STRUCTS
|
||||
enum struct Thread_Type {
|
||||
Main,
|
||||
GarbageCollection
|
||||
};
|
||||
enum class Lisp_Object_Flags
|
||||
{
|
||||
// bits 1 to 5 (including) will be reserved for the type
|
||||
Already_Garbage_Collected = 1 << 5,
|
||||
Under_Construction = 1 << 6,
|
||||
};
|
||||
|
||||
enum struct Function_Type {
|
||||
Lambda,
|
||||
Macro
|
||||
};
|
||||
|
||||
enum struct Lisp_Object_Type {
|
||||
Nil,
|
||||
T,
|
||||
Symbol,
|
||||
Keyword,
|
||||
Number,
|
||||
String,
|
||||
Pair,
|
||||
Vector,
|
||||
Continuation,
|
||||
Pointer,
|
||||
HashMap,
|
||||
// OwningPointer,
|
||||
Function,
|
||||
CFunction,
|
||||
};
|
||||
enum struct Log_Level {
|
||||
None,
|
||||
Critical,
|
||||
Warning,
|
||||
Info,
|
||||
Debug,
|
||||
};
|
||||
|
||||
typedef uint64_t u64;
|
||||
struct Continuation {
|
||||
Array_List<Lisp_Object*> call_stack;
|
||||
Array_List<Environment*> envi_stack;
|
||||
};
|
||||
|
||||
enum class Lisp_Object_Flags : u64
|
||||
{
|
||||
// bits 1 to 5 (including) will be reserved for the type
|
||||
Already_Garbage_Collected = 1 << 5,
|
||||
Under_Construction = 1 << 6,
|
||||
};
|
||||
struct String {
|
||||
int length;
|
||||
char data;
|
||||
};
|
||||
|
||||
enum struct Function_Type {
|
||||
Lambda,
|
||||
Special_Lambda,
|
||||
Macro
|
||||
};
|
||||
struct Source_Code_Location {
|
||||
String* file;
|
||||
int line;
|
||||
int column;
|
||||
};
|
||||
|
||||
enum struct Log_Level {
|
||||
None,
|
||||
Critical,
|
||||
Warning,
|
||||
Info,
|
||||
Debug,
|
||||
};
|
||||
struct Pair {
|
||||
Lisp_Object* first;
|
||||
Lisp_Object* rest;
|
||||
};
|
||||
|
||||
struct Continuation {
|
||||
Lisp_Object_Array_List* call_stack;
|
||||
Environment_Array_List* envi_stack;
|
||||
};
|
||||
struct Vector {
|
||||
int length;
|
||||
Lisp_Object* data;
|
||||
};
|
||||
|
||||
struct String {
|
||||
int length;
|
||||
char data;
|
||||
};
|
||||
struct Positional_Arguments {
|
||||
Array_List<Lisp_Object*> symbols;
|
||||
};
|
||||
|
||||
struct Source_Code_Location {
|
||||
String* file;
|
||||
int line;
|
||||
int column;
|
||||
};
|
||||
struct Keyword_Arguments {
|
||||
// Array of Pointers to Lisp_Object<Keyword>
|
||||
Array_List<Lisp_Object*> keywords;
|
||||
// NOTE(Felix): values[i] will be nullptr if no defalut value was
|
||||
// declared for key identifiers[i]
|
||||
Array_List<Lisp_Object*> values;
|
||||
};
|
||||
|
||||
struct Symbol {
|
||||
String* identifier;
|
||||
u64 hash;
|
||||
};
|
||||
struct Arguments {
|
||||
Positional_Arguments positional;
|
||||
Keyword_Arguments keyword;
|
||||
// NOTE(Felix): rest_argument will be nullptr if no rest argument
|
||||
// is declared otherwise its a symbol
|
||||
Lisp_Object* rest;
|
||||
};
|
||||
|
||||
struct Keyword {
|
||||
String* identifier;
|
||||
u64 hash;
|
||||
};
|
||||
struct Environment {
|
||||
Array_List<Environment*> parents;
|
||||
Hash_Map<void*, Lisp_Object*> hm;
|
||||
|
||||
struct Pair {
|
||||
Lisp_Object* first;
|
||||
Lisp_Object* rest;
|
||||
};
|
||||
~Environment() {
|
||||
parents.~Array_List();
|
||||
hm.~Hash_Map();
|
||||
}
|
||||
};
|
||||
|
||||
struct Vector {
|
||||
int length;
|
||||
Lisp_Object* data;
|
||||
};
|
||||
struct Function {
|
||||
Function_Type type;
|
||||
Arguments args;
|
||||
Lisp_Object* body; // maybe implicit begin
|
||||
Environment* parent_environment; // we are doing closures now!!
|
||||
};
|
||||
|
||||
struct Positional_Arguments {
|
||||
Lisp_Object_Array_List symbols;
|
||||
};
|
||||
struct cFunction {
|
||||
Lisp_Object* (*body)();
|
||||
Arguments args;
|
||||
bool is_special_form;
|
||||
};
|
||||
|
||||
struct Keyword_Arguments {
|
||||
// Array of Pointers to Lisp_Object<Keyword>
|
||||
Lisp_Object_Array_List keywords;
|
||||
// NOTE(Felix): values[i] will be nullptr if no defalut value was
|
||||
// declared for key identifiers[i]
|
||||
Lisp_Object_Array_List values;
|
||||
};
|
||||
struct Lisp_Object {
|
||||
Source_Code_Location* sourceCodeLocation;
|
||||
u64 flags;
|
||||
Lisp_Object* userType; // keyword
|
||||
String* docstring;
|
||||
union value {
|
||||
String* symbol; // used for symbols and keywords
|
||||
double number;
|
||||
String* string;
|
||||
Pair pair;
|
||||
Vector vector;
|
||||
Function* function;
|
||||
cFunction* cFunction;
|
||||
void* pointer;
|
||||
Continuation* continuation;
|
||||
Hash_Map<Lisp_Object*, Lisp_Object*>* hashMap;
|
||||
~value() {}
|
||||
} value;
|
||||
~Lisp_Object();
|
||||
};
|
||||
|
||||
struct Arguments {
|
||||
Positional_Arguments positional;
|
||||
Keyword_Arguments keyword;
|
||||
// NOTE(Felix): rest_argument will be nullptr if no rest argument
|
||||
// is declared otherwise its a symbol
|
||||
Lisp_Object* rest;
|
||||
};
|
||||
|
||||
struct Environment {
|
||||
Environment_Array_List parents;
|
||||
Void_Ptr_Hash_Map* hm;
|
||||
};
|
||||
|
||||
struct Function {
|
||||
Function_Type type;
|
||||
Arguments args;
|
||||
Lisp_Object* body; // maybe implicit begin
|
||||
Environment* parent_environment; // we are doing closures now!!
|
||||
};
|
||||
|
||||
struct cFunction {
|
||||
std::function<Lisp_Object* ()> body;
|
||||
Arguments args;
|
||||
bool is_special_form;
|
||||
};
|
||||
|
||||
struct Lisp_Object {
|
||||
Source_Code_Location* sourceCodeLocation;
|
||||
u64 flags;
|
||||
Lisp_Object* userType; // keyword
|
||||
String* docstring;
|
||||
union {
|
||||
Symbol symbol; // used for symbols and keywords
|
||||
double number;
|
||||
String* string;
|
||||
Pair pair;
|
||||
Vector vector;
|
||||
Function function;
|
||||
cFunction* cFunction;
|
||||
void* pointer;
|
||||
Continuation continuation;
|
||||
Lisp_Obj_Hash_Map* hashMap;
|
||||
} value;
|
||||
};
|
||||
|
||||
struct Error {
|
||||
Lisp_Object* position;
|
||||
// type has to be a keyword
|
||||
Lisp_Object* type;
|
||||
String* message;
|
||||
};
|
||||
struct Error {
|
||||
Lisp_Object* position;
|
||||
// type has to be a keyword
|
||||
Lisp_Object* type;
|
||||
String* message;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
echo ""
|
||||
echo "----------------------"
|
||||
echo " compiling libslime "
|
||||
echo "----------------------"
|
||||
echo ""
|
||||
|
||||
clang++ --std=c++17 \
|
||||
main.cpp -o main \
|
||||
-I../../3rd/ \
|
||||
-I../../src/ \
|
||||
-I../../include/ \
|
||||
@@ -0,0 +1,6 @@
|
||||
#include <libslime.cpp>
|
||||
|
||||
int main() {
|
||||
int res = Slime::run_all_tests();
|
||||
return res ? 0 : 1;
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
echo ""
|
||||
echo "----------------------"
|
||||
echo " compiling libslime "
|
||||
echo "----------------------"
|
||||
echo ""
|
||||
|
||||
clang++ --std=c++17 \
|
||||
../../src/libslime.cpp -c -o libslime.o \
|
||||
-I../../3rd/ \
|
||||
-I../../src/
|
||||
|
||||
echo ""
|
||||
echo "----------------------"
|
||||
echo " compiling main "
|
||||
echo "----------------------"
|
||||
echo ""
|
||||
|
||||
clang++ --std=c++17 \
|
||||
main.cpp -o main libslime.o \
|
||||
-I../../include/ \
|
||||
-I../../3rd/
|
||||
@@ -0,0 +1,6 @@
|
||||
#include <libslime.h>
|
||||
|
||||
int main() {
|
||||
int res = Slime::run_all_tests();
|
||||
return res ? 0 : 1;
|
||||
}
|
||||