freenode/#clasp - IRC Chatlog
Search
14:24:36
kpoeck
Drmeister why did you change in load.cc the outputs for :verbose and :print to BFORMAT_T (initially eval::funcall(cl::_sym_format ....)
14:27:45
kpoeck
Can I change that back to eval::funcall, so that some ansi-tests that capture output from load work again?
14:31:12
drmeister
Ok, so I changed from my old, weird _lisp->print(...) to BFORMAT_T because BFORMAT_T prints properly to the standard output.
14:32:21
kpoeck
to eval::funcall(cl::_sym_format, _lisp->_true(), SimpleBaseString_O::make("~&;;; Loading ~s~%"), lsource);
14:33:26
drmeister
Right - but that may have trouble or at least look weird in the interpreter or aclasp - because format isn't fully installed at that point.
14:34:18
drmeister
The interpreter provides a seriously crippled version of format and only bclasp contains the proper version implemented in Common Lisp.
14:36:56
kpoeck
In compile-file there is describe-form using only write-string and terpri, is that bootstrap safe?
14:37:17
drmeister
What I mean to say is "yes", we can change it to eval::funcall(cl::_sym_format,...) to make it work properly.
14:37:43
drmeister
I'm just messing more with the interpreter and aclasp and it would be nice to have load print stuff properly in there as well.
14:39:51
kpoeck
Is there something like if (format-already-works) eval::funcalll .... else bformat();?
14:39:54
drmeister
If you can do it with write-string and terpri - then do that. If it has a problem - it's easier to back port a solution to the interpreter
14:41:54
drmeister
It writes out to *standard-output* - isn't that all that matters for load printing messages for :verbose and :print?
14:42:40
kpoeck
well and that (with-output-to-string (*standard-output*)(load ...)) captures the output
14:43:35
drmeister
Ah - so the output from BFORMAT_T doesn't get captured by (with-output-to-string (*standard-output*) ...) - that's not good.
14:47:32
drmeister
Ah - I see - that's the central problem. I use BFORMAT_T and BFORMAT a lot in the C++ code because I wanted something like format that worked right from the beginning - but it's not working right.
14:52:01
kpoeck
ok is #define BFORMAT_T(fmt) core::core__bformat(_lisp->_true(),(fmt).str(),_Nil<core::T_O>());