| @@ -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 | |||
| @@ -0,0 +1 @@ | |||
| Subproject commit 7d8eabf47938ff4a056f94e8cbeb4a49ab9ea2d1 | |||
| @@ -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 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) | |||
| (defun get-args (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 "=") ". 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 ""))) | |||
| (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 ((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. | |||
| @@ -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) | |||
| @@ -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 ############### | |||
| @@ -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); | |||
| } | |||
| 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); | |||
| } | |||
| proc environment_binds_symbol(Lisp_Object* sym, Environment* env) -> bool { | |||
| return lookup_symbol_in_this_envt(sym, env) != nullptr; | |||
| } | |||
| inline proc lookup_symbol_in_this_envt(Lisp_Object* sym, Environment* env) -> Lisp_Object* { | |||
| return (Lisp_Object*)env->hm.get_object((void*)sym); | |||
| } | |||
| 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; | |||
| proc environment_binds_symbol(Lisp_Object* sym, Environment* env) -> bool { | |||
| return lookup_symbol_in_this_envt(sym, env) != nullptr; | |||
| } | |||
| 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; | |||
| 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; | |||
| } | |||
| for (int i = 0; i < env->parents.next_index; ++i) { | |||
| result = try_lookup_symbol(node, env->parents.data[i]); | |||
| 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; | |||
| } | |||
| auto nil_sym = Memory::get_or_create_lisp_object_symbol("nil"); | |||
| auto t_sym = Memory::get_or_create_lisp_object_symbol("t"); | |||
| for (int i = 0; i < env->parents.next_index; ++i) { | |||
| result = try_lookup_symbol(node, env->parents.data[i]); | |||
| if (node == nil_sym) { | |||
| return Memory::nil; | |||
| } | |||
| if (node == t_sym) { | |||
| return Memory::t; | |||
| } | |||
| if (result) | |||
| return result; | |||
| } | |||
| return nullptr; | |||
| } | |||
| auto nil_sym = Memory::get_symbol("nil"); | |||
| auto t_sym = Memory::get_symbol("t"); | |||
| inline proc push_environment(Environment* env) -> void { | |||
| using namespace Globals::Current_Execution; | |||
| append_to_array_list(&envi_stack, env); | |||
| } | |||
| if (node == nil_sym) { | |||
| return Memory::nil; | |||
| } | |||
| if (node == t_sym) { | |||
| return Memory::t; | |||
| } | |||
| inline proc pop_environment() -> void { | |||
| using namespace Globals::Current_Execution; | |||
| --envi_stack.next_index; | |||
| } | |||
| return nullptr; | |||
| } | |||
| inline proc get_root_environment() -> Environment* { | |||
| using namespace Globals::Current_Execution; | |||
| return envi_stack.data[0]; | |||
| } | |||
| inline proc push_environment(Environment* env) -> void { | |||
| using namespace Globals::Current_Execution; | |||
| envi_stack.append(env); | |||
| } | |||
| inline proc get_current_environment() -> Environment* { | |||
| using namespace Globals::Current_Execution; | |||
| return envi_stack.data[envi_stack.next_index-1]; | |||
| } | |||
| inline proc pop_environment() -> void { | |||
| using namespace Globals::Current_Execution; | |||
| --envi_stack.next_index; | |||
| } | |||
| proc lookup_symbol(Lisp_Object* node, Environment* env) -> Lisp_Object* { | |||
| // print(node); | |||
| // printf("\n"); | |||
| assert_type(node, Lisp_Object_Type::Symbol); | |||
| inline proc get_root_environment() -> Environment* { | |||
| using namespace Globals::Current_Execution; | |||
| return envi_stack.data[0]; | |||
| } | |||
| Lisp_Object* result = try_lookup_symbol(node, env); | |||
| inline proc get_current_environment() -> Environment* { | |||
| using namespace Globals::Current_Execution; | |||
| return envi_stack.data[envi_stack.next_index-1]; | |||
| } | |||
| if (result) | |||
| return result; | |||
| 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); | |||
| String* identifier = node->value.symbol.identifier; | |||
| create_symbol_undefined_error("The symbol '%s' is not defined.", &identifier->data); | |||
| print_environment(env); | |||
| return nullptr; | |||
| } | |||
| Lisp_Object* result = try_lookup_symbol(node, env); | |||
| if (result) | |||
| return result; | |||
| proc print_indent(int indent) -> void { | |||
| for (int i = 0; i < indent; ++i) { | |||
| printf(" "); | |||
| String* identifier = node->value.symbol; | |||
| print_environment(env); | |||
| printf("\n"); | |||
| create_symbol_undefined_error("The symbol '%s' is not defined.", &identifier->data); | |||
| return nullptr; | |||
| } | |||
| } | |||
| 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(""); | |||
| 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); | |||
| } | |||
| } | |||
| 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); | |||
| } | |||
| } | |||
| 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 { | |||
| 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_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(); | |||
| } | |||
| 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; | |||
| create_error(c_file_name, c_file_line, type, formatted_string); | |||
| 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; | |||
| 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; | |||
| 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; | |||
| proc Lisp_Object_Type_to_string(Lisp_Object_Type type) -> const char*; | |||
| proc visualize_lisp_machine() -> void; | |||
| proc generate_docs(String* path) -> void; | |||
| 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; | |||
| } | |||
| 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 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*); | |||
| 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*); | |||
| } | |||
| #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; | |||
| 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; | |||
| } | |||
| extern String* standard_in; | |||
| extern String* parser_file; | |||
| extern int parser_line; | |||
| extern int parser_col; | |||
| 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 +0,0 @@ | |||
| Subproject commit 94ad64f6bb3a91247e8266217a5a0ab3a93c5d11 | |||
| @@ -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') | |||
| return true; | |||
| } | |||
| for(int i = 0; input[i] == check[i]; i++) { | |||
| if (input[i] == '\0') | |||
| return true; | |||
| } | |||
| return false; | |||
| } | |||
| return false; | |||
| } | |||
| proc string_equal(String* str, const char check[]) -> bool { | |||
| return string_equal(Memory::get_c_str(str), check); | |||
| } | |||
| 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(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; | |||
| 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 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 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; | |||
| 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; | |||
| } | |||
| ++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]; | |||
| 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; | |||
| } | |||
| ++i; | |||
| ret[j++] = '\0'; | |||
| return ret; | |||
| } | |||
| ret[j++] = '\0'; | |||
| return ret; | |||
| } | |||
| proc unescape_string(char* in) -> bool { | |||
| if (!in) | |||
| return true; | |||
| proc unescape_string(char* in) -> int { | |||
| if (!in) return 0; | |||
| char *out = in, *p = in; | |||
| const char *int_err = nullptr; | |||
| 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 '\'': | |||
| case '\\': | |||
| 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; | |||
| } | |||
| 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); | |||
| } | |||
| } | |||
| } | |||
| /* Set the end of string. */ | |||
| *out = '\0'; | |||
| if (int_err) | |||
| return false; | |||
| return true; | |||
| } | |||
| /* Set the end of string. */ | |||
| *out = '\0'; | |||
| return (int)(out - in); | |||
| } | |||
| 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; | |||
| } | |||
| 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; | |||
| } | |||
| /* 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)); | |||
| /* 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); | |||
| /* 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); | |||
| fileContent[newLen] = '\0'; | |||
| if (ferror(fp) != 0) { | |||
| fputs("Error reading file", stderr); | |||
| } | |||
| } | |||
| closeFile: | |||
| fclose(fp); | |||
| } | |||
| closeFile: | |||
| fclose(fp); | |||
| } | |||
| return fileContent; | |||
| /* Don't forget to call free() later! */ | |||
| } | |||
| return fileContent; | |||
| /* Don't forget to call free() later! */ | |||
| } | |||
| proc read_expression() -> char* { | |||
| char* line = (char*)malloc(100); | |||
| proc read_expression() -> char* { | |||
| char* line = (char*)malloc(100); | |||
| if(line == nullptr) | |||
| return nullptr; | |||
| if(line == nullptr) | |||
| return nullptr; | |||
| char* linep = line; | |||
| size_t lenmax = 100, len = lenmax; | |||
| int c; | |||
| char* linep = line; | |||
| size_t lenmax = 100, len = lenmax; | |||
| int c; | |||
| int nesting = 0; | |||
| int nesting = 0; | |||
| while (true) { | |||
| c = fgetc(stdin); | |||
| if(c == EOF) | |||
| break; | |||
| while (true) { | |||
| c = fgetc(stdin); | |||
| if(c == EOF) | |||
| break; | |||
| if(--len == 0) { | |||
| len = lenmax; | |||
| char * linen = (char*)realloc(linep, lenmax *= 2); | |||
| 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)--; // we dont want the \n actually | |||
| *line = '\0'; | |||
| *line = (char)c; | |||
| if(*line == '(') | |||
| ++nesting; | |||
| else if(*line == ')') | |||
| --nesting; | |||
| else if(*line == '\n') | |||
| if (nesting == 0) | |||
| break; | |||
| line++; | |||
| return linep; | |||
| } | |||
| (*line)--; // we dont want the \n actually | |||
| *line = '\0'; | |||
| return linep; | |||
| } | |||
| proc read_line() -> char* { | |||
| char* line = (char*)malloc(100), * linep = line; | |||
| size_t lenmax = 100, len = lenmax; | |||
| int c; | |||
| proc read_line() -> char* { | |||
| char* line = (char*)malloc(100), * linep = line; | |||
| size_t lenmax = 100, len = lenmax; | |||
| int c; | |||
| int nesting = 0; | |||
| int nesting = 0; | |||
| if(line == nullptr) | |||
| return nullptr; | |||
| if(line == nullptr) | |||
| return nullptr; | |||
| for(;;) { | |||
| c = fgetc(stdin); | |||
| if(c == EOF) | |||
| break; | |||
| for(;;) { | |||
| c = fgetc(stdin); | |||
| if(c == EOF) | |||
| break; | |||
| if(--len == 0) { | |||
| len = lenmax; | |||
| char* linen = (char*)realloc(linep, lenmax *= 2); | |||
| 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)--; // we dont want the \n actually | |||
| *line = '\0'; | |||
| *line = (char)c; | |||
| if(*line == '(') | |||
| ++nesting; | |||
| else if(*line == ')') | |||
| --nesting; | |||
| else if(*line == '\n') | |||
| if (nesting == 0) | |||
| break; | |||
| line++; | |||
| 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; | |||
| 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; | |||
| 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; | |||
| } | |||
| 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); | |||
| } | |||
| 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); | |||
| while (currentChar != '\0') | |||
| { | |||
| currentCharIndex++; | |||
| currentChar = (char)pwchar[currentCharIndex]; | |||
| } | |||
| fputs("]", file); | |||
| } break; | |||
| case (Lisp_Object_Type::Function): { | |||
| if (node->userType) { | |||
| fprintf(file, "[%s]", Memory::get_c_str(node->userType->value.symbol.identifier)); | |||
| break; | |||
| 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); | |||
| } | |||
| 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.identifier; | |||
| 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); | |||
| 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; | |||
| filePathC += '\0'; | |||
| filePathC -= (sizeof(char) * charCount); | |||
| return filePathC; | |||
| } | |||
| 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); | |||
| 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); | |||
| } | |||
| 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); | |||
| fputs("]", file); | |||
| } break; | |||
| case (Lisp_Object_Type::Function): { | |||
| if (node->userType) { | |||
| fprintf(file, "[%s]", Memory::get_c_str(node->userType->value.symbol)); | |||
| 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 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); | |||
| } | |||
| 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); | |||
| } | |||
| if (Memory::get_type(head) != Lisp_Object_Type::Nil) { | |||
| fputs(" . ", file); | |||
| print(head, print_repr, file); | |||
| } | |||
| putc(')', file); | |||
| } break; | |||
| putc(')', file); | |||
| } break; | |||
| } | |||
| } | |||
| } | |||
| 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_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; | |||
| 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"); | |||
| 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); | |||
| 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; | |||
| fputs(" in: ", stdout); | |||
| print_call_stack(); | |||
| puts(console_normal); | |||
| } | |||
| } | |||
| @@ -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 append_to_positional_argument_list(Positional_Arguments* args, Lisp_Object* sym) -> void { | |||
| append_to_array_list(&args->symbols, sym); | |||
| } | |||
| 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 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; | |||
| } | |||
| Lisp_Object::~Lisp_Object() { | |||
| free(sourceCodeLocation); | |||
| sourceCodeLocation = 0; | |||
| 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::Symbol); | |||
| node->value.symbol.identifier = identifier; | |||
| node->value.symbol.hash = hash(identifier); | |||
| hm_set(global_symbol_table, get_c_str(identifier), node); | |||
| 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_new_lisp_object_keyword(String* keyword) -> Lisp_Object* { | |||
| 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::Keyword); | |||
| node->value.symbol.identifier = keyword; | |||
| node->value.symbol.hash = hash(keyword); | |||
| hm_set(global_keyword_table, get_c_str(keyword), node); | |||
| 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 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 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_or_create_lisp_object_symbol(const char* identifier) -> Lisp_Object* { | |||
| if (auto ret = hm_get_object(global_symbol_table, (char*)identifier)) | |||
| 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; | |||
| global_symbol_table.set_object(get_c_str(identifier), node); | |||
| return node; | |||
| } | |||
| 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; | |||
| } | |||
| return 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)); | |||
| proc parse_number(char* text, int* index_in_text) -> Lisp_Object* { | |||
| Lisp_Object* ret; | |||
| try ret = Memory::create_lisp_object(0.0); | |||
| // restore the original string | |||
| text[*index_in_text+atom_length] = before; | |||
| sscanf(text+*index_in_text, "%lf", &ret->value.number); | |||
| // update the index to point to the character after the atom | |||
| // ended | |||
| *index_in_text += atom_length; | |||
| parser_col += atom_length; | |||
| int atom_length = get_atom_text_length(text, index_in_text); | |||
| step_char(text, index_in_text, atom_length); | |||
| return ret; | |||
| } | |||
| 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); | |||
| 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'; | |||
| 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); | |||
| String* str_keyword; | |||
| Lisp_Object* ret; | |||
| try ret = Memory::get_or_create_lisp_object_keyword(str_keyword); | |||
| try str_keyword = Memory::create_string("", atom_length); | |||
| strcpy(&str_keyword->data, text+*index_in_text); | |||
| inject_scl(ret); | |||
| return ret; | |||
| } | |||
| if (keyword) { | |||
| try ret = Memory::get_keyword(str_keyword); | |||
| } else { | |||
| try ret = Memory::get_symbol(str_keyword); | |||
| } | |||
| 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); | |||
| 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*{ | |||
| 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,272 +218,181 @@ 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); | |||
| { | |||
| try ret = parse_number(text, index_in_text); | |||
| } | |||
| // strings | |||
| if (text[*index_in_text] == '"') | |||
| return parse_string(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 parse_symbol(text, index_in_text); | |||
| return ret; | |||
| } | |||
| 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; | |||
| 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 it is not quoted | |||
| ++(*index_in_text); | |||
| ++parser_col; | |||
| 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; | |||
| 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 head->value.pair.first = parse_expression(text, index_in_text); | |||
| } else { | |||
| try head->value.pair.first = parse_atom(text, index_in_text); | |||
| } | |||
| 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; | |||
| } | |||
| try first_elem = parse_expression(text, index_in_text); | |||
| try ret = Memory::create_lisp_object_pair(first_elem, Memory::nil); | |||
| head = ret; | |||
| 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); | |||
| eat_until_code(text, index_in_text); | |||
| while (text[*index_in_text] != ')') { | |||
| Lisp_Object* element; | |||
| 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); | |||
| 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; | |||
| } | |||
| 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; | |||
| 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 { | |||
| try head->value.pair.rest = Memory::create_lisp_object_pair(Memory::nil, Memory::nil); | |||
| head = head->value.pair.rest; | |||
| // 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 expression; | |||
| return ret; | |||
| } | |||
| proc parse_single_expression(char* text) -> Lisp_Object* { | |||
| parser_file = standard_in; | |||
| parser_line = 1; | |||
| parser_col = 1; | |||
| 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; | |||
| 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); | |||
| } | |||
| if (text[*index_in_text] == '(') { | |||
| try ret = parse_list(text, index_in_text); | |||
| } else { | |||
| try ret = parse_atom(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; | |||
| 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_or_bare_words(char* text, char* bare) -> Lisp_Object* { | |||
| 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* 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); | |||
| } | |||
| Lisp_Object* ret; | |||
| try ret = parse_expression(text, &index_in_text); | |||
| return ret; | |||
| } | |||
| 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) { | |||
| path = 0; | |||
| break; | |||
| } | |||
| path_size = path_size * 2; | |||
| path = (char*)malloc(path_size); | |||
| size_t size = (size_t)len + 1; | |||
| char *str = (char*)malloc(size); | |||
| if (!str) { | |||
| return -1; | |||
| } | |||
| else | |||
| break; | |||
| // _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; | |||
| } | |||
| if (!path) { | |||
| fprintf(stderr, "Failure: %ld\n", last_error); | |||
| return nullptr; | |||
| 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; | |||
| } | |||
| else { | |||
| // remove the exe name, so we are only left with the path | |||
| #endif | |||
| int index_in_path = -1; | |||
| int last_backslash = -1; | |||
| 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(); | |||
| char c; | |||
| while ((c = path[++index_in_path]) != '\0') { | |||
| if (c == '\\') | |||
| last_backslash = index_in_path; | |||
| if (0 == result) { | |||
| free(path); | |||
| path = 0; | |||
| break; | |||
| } | |||
| 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'; | |||
| if (!path) { | |||
| fprintf(stderr, "Failure: %ld\n", last_error); | |||
| return nullptr; | |||
| } | |||
| else { | |||
| // remove the exe name, so we are only left with the path | |||
| return path; | |||
| } | |||
| #else | |||
| ssize_t size = 512, i, n; | |||
| char *path, *temp; | |||
| int index_in_path = -1; | |||
| int last_backslash = -1; | |||
| while (1) { | |||
| size_t used; | |||
| char c; | |||
| while ((c = path[++index_in_path]) != '\0') { | |||
| if (c == '\\') | |||
| last_backslash = index_in_path; | |||
| } | |||
| path = (char*)malloc(size); | |||
| if (!path) { | |||
| errno = ENOMEM; | |||
| return NULL; | |||
| // we are assuming there are some backslashes | |||
| path[last_backslash+1] = '\0'; | |||
| return path; | |||
| } | |||
| #else | |||
| ssize_t size = 512, i, n; | |||
| char *path, *temp; | |||
| used = readlink("/proc/self/exe", path, size); | |||
| while (1) { | |||
| size_t used; | |||
| if (used == -1) { | |||
| const int saved_errno = errno; | |||
| free(path); | |||
| errno = saved_errno; | |||
| return NULL; | |||
| } else | |||
| if (used < 1) { | |||
| 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 = EIO; | |||
| 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; | |||
| } | |||
| if ((size_t)used >= size) { | |||
| free(path); | |||
| size = (size | 2047) + 2049; | |||
| continue; | |||
| size = (size_t)used; | |||
| break; | |||
| } | |||
| 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; | |||
| } | |||
| /* 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'; | |||
| /* 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; | |||
| // 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); | |||
| // 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) | |||
| // STRUCTS | |||
| 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, | |||
| }; | |||
| typedef uint64_t u64; | |||
| 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, | |||
| }; | |||
| enum struct Function_Type { | |||
| Lambda, | |||
| Special_Lambda, | |||
| Macro | |||
| }; | |||
| enum struct Log_Level { | |||
| None, | |||
| Critical, | |||
| Warning, | |||
| Info, | |||
| Debug, | |||
| }; | |||
| struct Continuation { | |||
| Lisp_Object_Array_List* call_stack; | |||
| Environment_Array_List* envi_stack; | |||
| }; | |||
| struct String { | |||
| int length; | |||
| char data; | |||
| }; | |||
| struct Source_Code_Location { | |||
| String* file; | |||
| int line; | |||
| int column; | |||
| }; | |||
| struct Symbol { | |||
| String* identifier; | |||
| u64 hash; | |||
| }; | |||
| struct Keyword { | |||
| String* identifier; | |||
| u64 hash; | |||
| }; | |||
| struct Pair { | |||
| Lisp_Object* first; | |||
| Lisp_Object* rest; | |||
| }; | |||
| struct Vector { | |||
| int length; | |||
| Lisp_Object* data; | |||
| }; | |||
| struct Positional_Arguments { | |||
| Lisp_Object_Array_List symbols; | |||
| }; | |||
| 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 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; | |||
| }; | |||
| 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; | |||
| }; | |||
| } | |||
| @@ -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; | |||
| } | |||