Opened 13 years ago

Closed 13 years ago

Last modified 12 years ago

#484 closed defect (fixed)

-scrutinize not properly expanding match macro.

Reported by: Alan Post Owned by:
Priority: major Milestone: 4.9.0
Component: compiler Version: 4.6.x
Keywords: Cc:
Estimated difficulty:

Description

I've encountered a problem using the match macro while having '-scrutinize' enabled.

I've attached a .scm file that uses the match egg testing four cases. Compiling this file with the following command:

csc -feature compiling-extension -setup-mode -s -scrutinize -j testegg -o testegg.so testegg.scm

Gives me the following error:

Error: (caddr) bad argument type: *

        Call history:

        <syntax>          (##core#let ((g670 ((make-bar "aisa" #f #t) "baz"))) (g670))
        <syntax>          ((make-bar "aisa" #f #t) "baz")
        <syntax>          (##core#let ((g672 (make-bar "aisa" #f #t))) (g672 "baz"))
        <syntax>          (make-bar "aisa" #f #t)
        <syntax>          (##core#begin (g672 "baz"))
        <syntax>          (g672 "baz")
        <syntax>          (##core#begin (g670))
        <syntax>          (g670)
        <syntax>          (newline)
        <syntax>          (##core#undefined)    <--

Error: shell command terminated with non-zero exit status 17920: /opt/chicken-master/bin/chicken testegg.scm -output-file testegg.c -dynamic -feature chicken-compile-shared -feature compiling-extension -setup-mode -scrutinize -emit-import-library testegg

This code compiles fine in the following conditions:

  • it runs fine in csi, this problem relates to the compiler.
  • it runs fine if you comment-out all but one case in match. The particular case doesn't matter, so long as there is only one of them.
  • it runs fine without the -scrutinizer command-line option.

I've confirmed this problem on experimental (df0bb192a6ac069e9d845d8445d96bf173e117fa: updated manifest) and 4.6.0. I'm running OpenBSD 4.8. C-Keen has confirmed this problem with Chicken 4.6.0.

Attachments (1)

testegg.scm (640 bytes) - added by Alan Post 13 years ago.
match example that bugs out -scrutinize

Download all attachments as: .zip

Change History (5)

Changed 13 years ago by Alan Post

Attachment: testegg.scm added

match example that bugs out -scrutinize

comment:1 Changed 13 years ago by Christian Kellermann

Against my hopes this is not fixed by the specialization branch as of commit 06d7fd21a4651b7850381061c8ad9dc8ea0f5835

comment:2 Changed 13 years ago by felix winkelmann

Resolution: fixed
Status: newclosed

I have (hopefully) fixed the problem in commit de033ae ("experimental"). It was caused by an incorrectly implemented type-comparison in scrutinizer.scm.

Thanks for reporting.

comment:3 Changed 13 years ago by felix winkelmann

Milestone: 4.7.04.8.0

Milestone 4.7.0 deleted

comment:4 Changed 12 years ago by felix winkelmann

Milestone: 4.8.04.9.0

Milestone 4.8.0 deleted

Note: See TracTickets for help on using tickets.