freenode/#clasp - IRC Chatlog
Search
6:31:08
drmeister
I'll add the instruction addresses and comments and switch the values to hexadecimal tomorrow.
6:33:50
Shinmera
Might be useful to be able to get the disassembly in the form of LLVM IR as well, though.
6:36:32
drmeister
Currently DISASSEMBLE disassembles to llvm-ir and you have to use that function above (llvm-sys:disassemble-instructions ...) to disassemble to assembly.
6:36:59
drmeister
I haven't figured out how to get the number of bytes in a function - only the pointer to the start.
6:37:11
Shinmera
Hm. Is an implementation allowed to add optional or keyword arguments to a function that is specified without?
6:39:39
Shinmera
Aaaand I don't have time to search the clhs for the relevant section right now. Gotta run to an appointment. Later!
6:39:54
drmeister
Normally - I would think not. But DISASSEMBLE is more of a utility. I'll ask in #lisp tomorrow what people think - if not I'll just write another DISASSEMBLE*
11:46:10
Bike
i think having extra keywords is okay. we already do for, for example, compile-file and make-hash-table
12:15:04
Shinmera
simply says "An implementation can have extensions, provided they do not alter the behavior of conforming code and provided they are not explicitly prohibited by this standard."
12:15:25
specbot
Documentation of Extensions: http://www.lispworks.com/reference/HyperSpec/Body/01_eac.htm
13:18:00
Bike
think i got aref with GEP working. time gain is negligible, but if it's about aliasing that wouldn't show up in my test.
14:18:18
drmeister
I posted a question to the llvm-dev mailing list about getting the size of a generated function.
14:20:38
drmeister
How would you like DISASSEMBLE to work? By default I think generating machine code would hold the least surprise.
14:21:46
drmeister
I could add a :type (:ir | :machine) argument and a :lines argument until I figure out how to get the length of a generated function.
14:22:14
drmeister
So (disassemble 'foo :type :ir) --> llvm-ir (I know how many lines of that I have).
14:24:01
drmeister
So maybe (defun disassemble (fn &key (lines 16) (start-line 0) (type :machine) ...)