Opened 12 years ago

Last modified 10 years ago

#876 closed enhancement

csi segfaults immediately when running this code — at Initial Version

Reported by: Christian Kellermann Owned by:
Priority: minor Milestone:
Component: core tools Version: 4.7.x
Keywords: csi segfault master Cc:
Estimated difficulty:

Description

As found by uman on IRC the following works when compiled and crashes when interpreted:

(define (inc x) (+ x 1))

(define (product-rec f a next b)
  (if (> a b) 1
      (* (f a) (product-rec f (next a) next b))))

(define (fact n)
  (product-rec identity 1 inc n))

(define (estimate-pi n)
  (define (num-term k)
    (+ k (if (even? k) 2 1)))
  (define (denom-term k)
    (+ k (if (even? k) 1 2)))
  (* 4 (product-rec (lambda (k) (/ (num-term k) (denom-term k))) 1 inc n)))

(define (product-iter f a next b)
  (let loop ((accum 1) (x a))
    (if (> x b) accum
      (loop (* accum (f x)) (next x)))))

(print (estimate-pi 100000))

This crashes current master, on x64 linux, also 4.7.0 on 32bit x86 OpenBSD

Change History (0)

Note: See TracTickets for help on using tickets.