[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Feature request: pretty print error message
From: |
Dmitry Bogatov |
Subject: |
Feature request: pretty print error message |
Date: |
Sun, 12 Oct 2014 01:09:32 +0400 |
User-agent: |
Mutt/1.5.22.1 (2013-10-16) |
Subj.
I believe Guile have two problems:
-- error messages rarely mention, where real problem is
-- they are also completely unreadable.
Maybe situation with second can be improved, using (ice-9 pretty-print)?
If I can plug it in, please tell me how, if I can't,
maybe someone could make it possible?
Offtopic: Is it any way to write macros to hell not break loose, if
I use it wrong?
Just encountered, just to illustrate my vision of problem.
ice-9/psyntax.scm:2549:53: In procedure #<procedure 25646c0 (val key m)>:
ice-9/psyntax.scm:2549:53: Syntax error:
/home/kaction/devel/guile-bash/lisp/system/ffi.scm:297:2: syntax-case: invalid
clause in form ((_ name (arg-clause ... -> ret)) (check-name (syntax name))
(with-syntax ((encoder (fmap pointer/encoder-name (syntax name))) (decoder
(fmap pointer/decoder-name (syntax name))) (clauses (syntax (arg-clause ...)))
((a/name ...) (s-map clause/name clauses)) ((a/type ...) (s-map clause/type
clauses)) ((d/name ...) (s-map clause/name (s-filter (lambda (x) (or
(clause/const? x) (clause/normal? x))) clauses))) ((d/arg ...) (s-map
clause/d/arg clauses)) (((prov/name . prov/type) ...) (s-map (lambda (x)
(s-cons (clause/name x) (clause/type x))) (s-filter clause/provide?
clauses))))) (syntax (begin (define encoder #f) (define decoder #f) (match ret
(($ ret-decoder ret-encoder ret-type ret-size) (set! encoder (lambda (fn)
(procedure->pointer ret-type (lambda (a/name ...) (ret-encoder (fn
((ffi-object-decoder a/type) a/name) ...))) (list a/type ...)))) (set! decoder
(lambda (ptr) (define raw-proc (pointer->procedure ret-type ptr (list a/type
...))) (lambda (d/name ...) (with-provided-memory ((prov/type prov/name) ...)
(define <ret> (ret-decoder (raw-proc d/arg ...))) (let ((provided ((list
prov/name ...)))) (if (null? provided) <ret> (cons <ret> provided)))))))))
(define-ffi-object name #:encoder encoder #:decoder decoder #:size (sizeof
(quote *))))))
--
Best regards, Dmitry Bogatov <address@hidden>,
Free Software supporter, esperantisto and netiquette guardian.
GPG: 54B7F00D
pgpWz9skMXytD.pgp
Description: PGP signature
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Feature request: pretty print error message,
Dmitry Bogatov <=