Re: A problem with compilation to CPS

2017-02-23 Thread Andy Wingo
On Tue 20 Sep 2016 15:19, Tommi Höynälänmaa  
writes:

> I get the following error message when I try to compile a program to CPS:
> ---cut here---
> tohoyn@tohoyn-laptop:~/src/guile-2.1.4/work$
> ../guile-2.1.4/meta/uninstalled-env dash
> $ ../guile-2.1.4/meta/guild compile -t cps hello.scm

Indeed the CPS reader and writer weren't working right.  Fixed (in a
very non-fancy kind of way).

Andy



Re: GNU Guile 2.1.7 released (beta)

2017-02-23 Thread Andy Wingo
On Sat 18 Feb 2017 11:31, Andy Wingo  writes:

> At this point you might ask yourself when 2.2.0 is coming.  The answer
> is, very soon!  A followup mail will propose a timeline and a list of
> blocker bugs.  I would like to aim for final prerelease in another 4
> weeks and a final release a week after that.

Ahem :)

I think that the 2.1.x series is ready to go.  There are bugs which we
should fix of course.  Some of those bugs can be fixed within the stable
series; some we can't.  Of the bugs that we can't, some we can punt to
the next stable series, but some are _release blockers_ -- bugs that we
need to fix before 2.2.0.

Release blocker bugs principally concern ABI.  For example the foreign
objects facility which was applied to 2.0 and 2.2 and then rolled out
from 2.0 because maybe it's not an interface that we want to support in
the future -- well that is still part of 2.2 and if we released today we
would indeed have to support it.  It's that kind of question.

So!  Release blockers.

 * Foreign objects.  In or out?  Let's start a subthread.

 * The approach to macro-introduced top-level identifiers: OK or no?
   Again a subthread would be the thing.

 * GOOPS: are there incompatible changes that we think are bad?
   Subthread :)

There are a number of other bugs that are also important
(reproducibility, broken REPL server) that aren't strictly blockers in
the sense that we can release a 2.2.x that fixes them.  Those are
interesting but unless you want to schedule _your_ work/resources to get
them done, they are not blockers, as far as I undersand things.

I propose to release a 2.1.8 on 9 March.  At that point I would like to
have all release blockers resolved one way or the other.  Then we can
release a 2.2.0 whenever, provided that 2.1.8 release actually compiles
:)

Thoughts?

Cheers,

Andy



Re: GNU Guile 2.1.7 released (beta)

2017-02-23 Thread Andy Wingo
Hi :)

On Thu 23 Feb 2017 21:04, Mike Gran  writes:

> I know you're asking about how to wrap up 2.2, and here
> I am to suggest new features.  So rude. ;-)

Hehe :)  The suggestions are still welcome.  If they make 2.2.0, super!
If they make 2.2.1, also super :)

> * A string encoding that can handle raw bytes
>   to make Guile more Emacs friendly, as per many e-mails in this
>   thread.

I haven't digested the thread so I defer to you for the moment :)

> * Some helper funcs for debugging.  For example, I just found
>   out (after a decade) that Guile comes with its own pk.  Also,
>   a "break REPL here when condition is true" procedure would
>   be great.  I've sometimes rolled my own with ",break acos" and
>   adding (acos 0.0) for the location in question.

Yeah pk is nice  It is how I do a lot of my debugging.  Silly.

The "break when condition is true" thing is totally doable.

> * Fix GDB support.

I wasn't aware that it was broken but I don't doubt it :)

Cheers,

Andy



Break-when [was GNU Guile 2.1.7 released (beta)]

2017-02-23 Thread Matt Wette

> On Feb 23, 2017, at 12:04 PM, Mike Gran  wrote:
> 
> * Some helper funcs for debugging.  For example, I just found
>  out (after a decade) that Guile comes with its own pk.  Also,
>  a "break REPL here when condition is true" procedure would
>  be great.  I've sometimes rolled my own with ",break acos" and
>  adding (acos 0.0) for the location in question.
> 

I am playing with this.  Now reading through system/repl/* and system/vm/* to 
understand the debugger.

Try

(use-modules (system repl repl))
(use-modules (system repl debug))

(define-syntax-rule (trap-here-0)
  (start-repl
   #:debug (make-debug (stack->vector (make-stack #t)) 0 "trap!" #t)))

(define (foo)
  (let iter ((sum 0) (vals '(1 2 3 5 8 2)))
(trap-here-0)
(cond
 ((null? vals) sum)
 (else (iter (+ sum (car vals)) (cdr vals))

(foo)

I have added some debugger commands: 
,loc - show current location
,qq - really quit (calls primitive-exit)

scheme@(guile-user) [1]> ,loc
  (let iter ((sum 0) (vals '(1 2 3 5 8 2)))
*   (trap-here-0)
(cond
scheme@(guile-user) [1]> ,qq
mwette$