[xsmith-dev] xsmith-dev Digest, Vol 4, Issue 4

TUO ZHAO u1129777 at utah.edu
Tue Mar 24 13:59:59 MDT 2020


Hi Professor Eide,

William already helps me solved the problem and everything works great now.
I also turn off the `digest mode`, thanks for the reminder.

Best,
Jack
________________________________
From: xsmith-dev-bounces at flux.utah.edu <xsmith-dev-bounces at flux.utah.edu> on behalf of xsmith-dev-request at flux.utah.edu <xsmith-dev-request at flux.utah.edu>
Sent: Tuesday, March 24, 2020 12:00 PM
To: xsmith-dev at flux.utah.edu <xsmith-dev at flux.utah.edu>
Subject: xsmith-dev Digest, Vol 4, Issue 4

Send xsmith-dev mailing list submissions to
        xsmith-dev at flux.utah.edu

To subscribe or unsubscribe via the World Wide Web, visit
        http://www.flux.utah.edu/mailman/listinfo/xsmith-dev
or, via email, send a message with subject or body 'help' to
        xsmith-dev-request at flux.utah.edu

You can reach the person managing the list at
        xsmith-dev-owner at flux.utah.edu

When replying, please edit your Subject line so it is more specific
than "Re: Contents of xsmith-dev digest..."


Today's Topics:

   1. Re: [Error 004] After update Racket to the newest version
      (Eric Eide)
   2. Re: xsmith-dev Digest, Vol 4, Issue 2 (Eric Eide)
   3. Examples (Paulo Matos)


----------------------------------------------------------------------

Message: 1
Date: Mon, 23 Mar 2020 17:12:41 -0600
From: Eric Eide <eeide at cs.utah.edu>
To: Xsmith Dev Mailing List <xsmith-dev at flux.utah.edu>
Subject: Re: [xsmith-dev] [Error 004] After update Racket to the
        newest  version
Message-ID: <m1mu86vf6e.fsf_-_ at cs.utah.edu>
Content-Type: text/plain

TUO ZHAO <u1129777 at utah.edu> writes:

> Here is what I did:
> 1) `wget https://mirror.racket-lang.org/installers/7.6/racket-7.6-x86_64-linux.sh`
> 2) `chmod +x racket-7.6-x86_64-linux.sh`
> 3) `./racket-7.6-x86_64-linux.sh`, select all default settings, and for emulab I change the path to
> `./racket` which is the current directory I'm in
> 4) Then I added `racket/bin` to PATH so that I could call `racket`
> 5) Then I clone the latest XSmith: `git clone https://gitlab.flux.utah.edu/xsmith/xsmith.git`
> 6) `cd xsmith` and `make`
>
> After all those steps, I run the example and get error.  I attached more
> details output with this email, as well as the example I run (which I just
> copied from the XSmith doc
> (https://docs.racket-lang.org/xsmith/index.html#%28part._.Minimal_.Example%29).

The problem, likely, is another version mismatch :-(.

  * You are using the current version of Xsmith from git.
  * You are reading the documentation from the "public release" version of
    Xsmith.

Xsmith has changed enough since the last public release that the documenation
for the public-release version isn't right for the git version.

To find the documenation for the git version Xsmith, install Xsmith (your step
6) on your system.  Then go to a shell and type:

  raco docs

This should open a web browser window/tab.  Scroll down to find "Xsmith" and
click on it.

Once you do that, you'll see that the example program has changed!  Try running
that example program.  Does it work for you?

Thanks ---

Eric.

--
-------------------------------------------------------------------------------
Eric Eide <eeide at cs.utah.edu>  .         University of Utah School of Computing
http://www.cs.utah.edu/~eeide/ . +1 (801) 585-5512 voice, +1 (801) 581-5843 FAX


------------------------------

Message: 2
Date: Mon, 23 Mar 2020 17:15:53 -0600
From: Eric Eide <eeide at cs.utah.edu>
To: Xsmith Dev Mailing List <xsmith-dev at flux.utah.edu>
Subject: Re: [xsmith-dev] xsmith-dev Digest, Vol 4, Issue 2
Message-ID: <m1imiuvf12.fsf at cs.utah.edu>
Content-Type: text/plain

Also, FWIW, I would suggest not subscribing to the xsmith-dev mailing list in
"digest mode."

You will receive email answers a little more quickly --- and email threads will
make more sense --- if you subscribe in non-digest mode.

Happy hacking! ---

Eric.

--
-------------------------------------------------------------------------------
Eric Eide <eeide at cs.utah.edu>  .         University of Utah School of Computing
http://www.cs.utah.edu/~eeide/ . +1 (801) 585-5512 voice, +1 (801) 581-5843 FAX


------------------------------

Message: 3
Date: Tue, 24 Mar 2020 15:50:06 +0100
From: Paulo Matos <pmatos at linki.tools>
To: Xsmith Dev Mailing List <xsmith-dev at flux.utah.edu>
Subject: [xsmith-dev] Examples
Message-ID: <878sjp7qox.fsf at linki.tools>
Content-Type: text/plain

Hi,

I am playing with XSmith to try to create a simple fuzzer for a simple
scheme. Initially I thought I would go for r7rs but I can see it's not
as straightforward as I initially thought.

Of course, with the schemely example things were going to be much quick
but not only I cannot run the schemely example, I get:

$ raco make schemely.rkt
/home/pmatos/dev/xsmith/xsmith-examples/schemely/schemely.rkt:219.0: define-generic-type: expected identifier
  at: (type covariant)
  in: (define-generic-type list-type ((type covariant)))
  compilation context...:
   /home/pmatos/dev/xsmith/xsmith-examples/schemely/schemely.rkt
  context...:
   .../private/runtime-report.rkt:731:0: error/report
   .../private/runtime-report.rkt:28:0: call-current-failure-handler
   call-in-empty-metacontinuation-frame
   apply-transformer
   dispatch-transformer
   do-local-expand
   .../syntax/wrap-modbeg.rkt:46:4
   call-in-empty-metacontinuation-frame
   apply-transformer
   dispatch-transformer
   loop
   finish
   [repeats 37 more times]
   pass-1-and-2-loop
   module-begin-k
   expand-module

My example stands as:

----
#lang racket/base

(require xsmith
         racr
         xsmith/racr-convenience
         racket/pretty
         racket/random
         racket/list
         racket/class
         racket/string
         racket/port)

;; XSMITH-based fuzzer for R7RS - following Rattle's
;; support for R7RS

(define-spec-component r7rs-core)

(add-to-grammar
 r7rs-core

 [Expression #f ()
             #:prop may-be-generated #f]

 [Let Expression ([definitions : Definition * = 0 #;(random 3)]
                  [body : DefinitionContext])
      #:prop strict-child-order? #t]

 [LiteralBool Expression ([v = (even? (random 2))])]
 [LiteralNumber Expression (v) #:prop may-be-generated #f]
 [LiteralInt LiteralNumber ()]

 [Not Expression ([Expression])]

 [If Expression ([test : Expression] [then : Expression] [else : Expression])
     #:prop strict-child-order? #t]

 )

(add-prop r7rs-core fresh
          [LiteralInt (hash 'v (* (random 1000000)
                                  (if (equal? 0 (random 2)) -1 1)))])

;; helper for render-node-info
;(define (->se sym . children-refs)
;  (lambda (n)
;    `(,sym ,@(map (lambda (x) (render-node (ast-child x n)))
;                  children-refs))))
;
;(define (->se* sym children-ref)
;  (lambda (n)
;    `(,sym ,@(map (lambda (x) (render-node x))
;                  (ast-children (ast-child children-ref n))))))

(add-prop
 r7rs-core
 render-node-info

 [Let (lambda (n) `(let (,@(map (lambda (d) `(,(string->symbol (ast-child 'name d))
                                              ,(render-node (ast-child 'Expression d))))
                                (ast-children (ast-child 'definitions n))))
                     ,@(render-node (ast-child 'body n))))]

 [LiteralBool (lambda (n) (ast-child 'v n))]
 [LiteralNumber (lambda (n) (ast-child 'v n))])

;(add-prop
; r7rs-core
; render-hole-info
; [#f (lambda (h) (list 'HOLE (ast-node-type h)))])

;; Types
(define number (base-type 'number))
(define int (base-type 'int number))
(define bool (base-type 'bool))

(define (type-thunks-for-concretization)
  (list (lambda () int)
        (lambda () bool)))

(add-prop
 r7rs-core
 type-info

 [Let [(fresh-type-variable) (lambda (n t)
                               (hash 'body t
                                     'definitions (lambda (c) (fresh-type-variable))))]]

 [LiteralBool [bool (no-child-types)]]
 [LiteralInt [int (no-child-types)]]

 [If [(fresh-type-variable)
      (lambda (n t)
        (hash 'test bool 'then t 'else t))]])

(assemble-spec-components
 r7rs
 r7rs-core)

(define (r7rs-generate)
  (parameterize ([current-xsmith-type-constructor-thunks
                  (type-thunks-for-concretization)])
    (r7rs-generate-ast 'Expression)))

(define (r7rs-format-render forms)
  (with-output-to-string
    (lambda ()
      (define (pp x)
        (pretty-print x (current-output-port) 1))
      (for ([form forms])
        (pp form)))))

(module+ main
  (xsmith-command-line
   r7rs-generate
   #:format-render r7rs-format-render))

 ---

but I am getting:
render-node-info: Identifier not defined as a property. in: render-node-info

Can someone provide some hints on how to get this to work? I am not sure
I completely understand why this is happening. `add-prop` is supposed to
add a new property with the name `render-node-info`, so getting that
error is confusing me. Xsmith seems to expect the identifier
`render-node-info` to have been previously marked as a property or
something or the sort.

Kind regards,

Paulo Matos


End of xsmith-dev Digest, Vol 4, Issue 4
****************************************
-------------- next part --------------
An HTML attachment was scrubbed...
URL: </listarchives/xsmith-dev/attachments/20200324/09a33c8a/attachment.html>


More information about the xsmith-dev mailing list