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

update to go1.21 #1598

Merged
merged 15 commits into from
Mar 4, 2024
Merged

update to go1.21 #1598

merged 15 commits into from
Mar 4, 2024

Commits on Nov 6, 2023

  1. feat: generate go1.21 files

    ldez committed Nov 6, 2023
    Configuration menu
    Copy the full SHA
    cb0b398 View commit details
    Browse the repository at this point in the history
  2. chore: update CI

    ldez committed Nov 6, 2023
    Configuration menu
    Copy the full SHA
    0a0fc91 View commit details
    Browse the repository at this point in the history

Commits on Feb 29, 2024

  1. feat: add support for generic symbols in standard library packages

    This is necessary to fully support go1.21 and beyond, which now
    provide some generic packages such as `cmp`, `maps` or `slices`
    in the standard library.
    
    The principle is to embed the generic symbols in source form (as
    strings) so they can be instantiated as required during interpretation.
    
    Extract() has been modified to skip the generic types, functions and
    constraint interfaces which can't be represented as reflect.Values.
    
    A new stdlib/generic package has been added to provide the corresponding
    source files as embedded strings.
    
    The `Use()` function has been changed to pre-parse generic symbols as
    doing lazy parsing was causing cyclic dependencies issues at compiling.
    This is something we may improve in the future.
    
    A unit test using `cmp` has been added.
    
    For now, there are still some issues with generic stdlib packages
    inter-dependencies, for example `slices` importing `cmp`, or when
    generic types or function signatures depends on pre-compiled types
    in the same package, which we will support shortly.
    mvertes committed Feb 29, 2024
    Configuration menu
    Copy the full SHA
    eb325b8 View commit details
    Browse the repository at this point in the history
  2. fixup

    mvertes committed Feb 29, 2024
    Configuration menu
    Copy the full SHA
    bc2b5ba View commit details
    Browse the repository at this point in the history
  3. fixup

    mvertes committed Feb 29, 2024
    Configuration menu
    Copy the full SHA
    7d9c940 View commit details
    Browse the repository at this point in the history
  4. fixup

    mvertes committed Feb 29, 2024
    Configuration menu
    Copy the full SHA
    bf8887a View commit details
    Browse the repository at this point in the history
  5. fixup

    mvertes committed Feb 29, 2024
    Configuration menu
    Copy the full SHA
    182879c View commit details
    Browse the repository at this point in the history
  6. fixup

    mvertes committed Feb 29, 2024
    Configuration menu
    Copy the full SHA
    79e26de View commit details
    Browse the repository at this point in the history
  7. fixup

    mvertes committed Feb 29, 2024
    Configuration menu
    Copy the full SHA
    848fbc0 View commit details
    Browse the repository at this point in the history
  8. fixes for go1.20

    mvertes committed Feb 29, 2024
    Configuration menu
    Copy the full SHA
    64298c1 View commit details
    Browse the repository at this point in the history
  9. fix previous

    mvertes committed Feb 29, 2024
    Configuration menu
    Copy the full SHA
    9497c24 View commit details
    Browse the repository at this point in the history

Commits on Mar 3, 2024

  1. update unsafe2 for go1.21, skip faky tests

    In go1.21, the reflect rtype definition has been move to internal/abi.
    We follow this change for maintainability, even if there is no layout
    change (the go1.20 unsafe2 is compatible with go1.21).
    
    We have isolated a few problematic tests which are failing sometimes
    in go1.21, but work in go1.20, and also in go1.22. Those tests are
    skipped if in go1.21. A preliminary investigation can not confirm that
    something is wrong in yaegi, and the problem disappears with go1.22.
    mvertes committed Mar 3, 2024
    Configuration menu
    Copy the full SHA
    9f1e4ea View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    8467518 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    592db63 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    9b1a09f View commit details
    Browse the repository at this point in the history