cosmos72 / stmx

High performance Transactional Memory for Common Lisp
http://stmx.org/
241 stars 14 forks source link

Does not build today with SBCL from git - disassembler changes #13

Closed quicklisp closed 8 years ago

quicklisp commented 8 years ago

I get this build failure today:

; caught ERROR:
;   READ error during COMPILE-FILE: Symbol "DEFINE-ARG-TYPE" not found in the SB-DISASSEM package
cosmos72 commented 8 years ago

I asked for help on SBCL mailing list. The answer was:

[Douglas Katzman]:

Assuming you're building from source, the build feature ':sb-retain-assembler-macros' can be defined to keep all the instruction-defining macros. Defining new instructions was never really supported though

[Stas Boukarev]:

Any instruction definitions should be merged into SBCL.

So what STMX was doing was not really expected to work, and it will never work again (ponder). The only solution is to submit a patch to SBCL to teach it about the new Intel TSX CPU instructions used by STMX - that's what I am currently doing

cosmos72 commented 8 years ago

Update: the main issue is that (sb-disassem:define-instruction-format) and other disassembler internals are no longer accessible on SBCL >= 1.3.3.

I submitted a patch to SBCL mailing list to define the necessary Intel TSX CPU instructions directly inside SBCL.

In the meantime, (sb-vm::define-instruction) is still accessible, so I modified STMX in order to also work on SBCL >= 1.3.3 - the only downside until my patch to SBCL is accepted is that (disassemble) does not know about Intel TSX CPU instructions.