Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

seq: optimize append #280

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

Commits on Mar 12, 2024

  1. seq: optimize append

    There are two changes in this commit.
    
    The first change builds the list from a variadic append operation
    from right to left, which is the natural order for list construction.
    This speeds up the following program:
    
    ```
    (time
     (void
      (append* (for/list ([i 30000])
                 (if b '() '(1))))))
    ```
    
    from 5 seconds to 1 second.
    
    The second change avoids making an assertion when doing unsafe/append
    on two symbolic unions. This is fine because all calls to unsafe/append
    is already guarded via type casting to make them symbolic unions
    of rosette-contract?, so there is no need to add another guard.
    
    Thanks to @camoy for raising up the issue about the unnecessary assertions.
    sorawee committed Mar 12, 2024
    Configuration menu
    Copy the full SHA
    d905189 View commit details
    Browse the repository at this point in the history