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

Compile errors with V 0.4.7 #40

Open
jorgeluismireles opened this issue Aug 29, 2024 · 1 comment
Open

Compile errors with V 0.4.7 #40

jorgeluismireles opened this issue Aug 29, 2024 · 1 comment

Comments

@jorgeluismireles
Copy link

Errors with current v:

~/vpkg$ v -version
V 0.4.7 01fd719
~/vpkg$ v -prod .
api/instance.v:28:1: error: const () groups will be an error after 2025-01-01 (`v fmt -w source.v` will fix that for you)
   26 | import os
   27 | 
   28 | const (
      | ~~~~~
   29 |     version = '0.7.1'
   30 |     global_modules_dir = os.home_dir() + '.vmodules'
api/instance.v:66:64: error: Option and Result types have been split, use `!Foo` to return errors
   64 | 
   65 |     match vpkg.command {
   66 |         'get'     { vpkg.get_packages(vpkg.unknown, true) or { return error("Failed to `get` packages")} }
      |                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   67 |         'help'    { vpkg.show_help() }
   68 |         'info'    { vpkg.show_package_information() }
api/instance.v:69:54: error: Option and Result types have been split, use `!Foo` to return errors
   67 |         'help'    { vpkg.show_help() }
   68 |         'info'    { vpkg.show_package_information() }
   69 |         'init'    { vpkg.create_manifest_file() or { return error("Failed to create manifest file (`init`)")} }
      |                                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   70 |         'link'    { vpkg.link(vpkg.dir) }
   71 |         'install' { vpkg.install_packages(vpkg.dir) or { return error("Failed to `install` packages")} }
api/instance.v:71:58: error: Option and Result types have been split, use `!Foo` to return errors
   69 |         'init'    { vpkg.create_manifest_file() or { return error("Failed to create manifest file (`init`)")} }
   70 |         'link'    { vpkg.link(vpkg.dir) }
   71 |         'install' { vpkg.install_packages(vpkg.dir) or { return error("Failed to `install` packages")} }
      |                                                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   72 |         'remove'  { vpkg.remove_packages(vpkg.unknown) }
   73 |         'migrate' { if vpkg.unknown[0] == 'manifest' { vpkg.migrate_manifest() or { return error("Failed to `migrate` manifest")} } else {vpkg.show_help()} }
api/instance.v:73:85: error: Option and Result types have been split, use `!Foo` to return errors
   71 |         'install' { vpkg.install_packages(vpkg.dir) or { return error("Failed to `install` packages")} }
   72 |         'remove'  { vpkg.remove_packages(vpkg.unknown) }
   73 |         'migrate' { if vpkg.unknown[0] == 'manifest' { vpkg.migrate_manifest() or { return error("Failed to `migrate` manifest")} } else {vpkg.show_help()} }
      |                                                                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   74 |         'update'  { vpkg.update_packages() }
   75 |         'unlink'  { vpkg.unlink(vpkg.dir) }
api/instance.v:78:55: error: Option and Result types have been split, use `!Foo` to return errors
   76 |         'version' { vpkg.show_version() }
   77 |         'test'    { vpkg.test_package() }
   78 |         'release' { vpkg.release_module_to_git() or { return error("Failed to `release` module")} }
      |                                                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   79 |         else      { vpkg.show_help() }
   80 |     }
api/lockfile.v:44:13: error: Option and Result types have been split, use `!Foo` to return errors
   42 |     if os.exists(lockfile_path) {
   43 |         contents := os.read_file(lockfile_path) or {
   44 |             return error('Cannot read ${dir}')
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   45 |         }
   46 |
api/lockfile.v:48:13: error: Option and Result types have been split, use `!Foo` to return errors
   46 | 
   47 |         decoded := json.decode(Lockfile, contents) or {
   48 |             return error('Unable to decode lockfile.')
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   49 |         }
   50 |
api/manifest.v:85:24: error: cannot use `!int` as type `?int` in return argument
   83 | 
   84 | fn (mut mw ManifestWriter) close() ?int {
   85 |     return mw.contents.write(('\n' + mw.closing).bytes())
      |                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   86 | }
   87 |
api/manifest.v:107:43: error: propagating a Result like an Option is deprecated, use `foo()!` instead of `foo()?`
  105 |         mw.contents.writeln(message)
  106 |     } else {
  107 |         mw.contents.write(message.bytes())?
      |                                           ^
  108 |     }
  109 | }
api/manifest.v:125:105: error: propagating a Result like an Option is deprecated, use `foo()!` instead of `foo()?`
  123 |     if mw.contents.len == 0 { mw.init_write() }
  124 | 
  125 |     mw.contents.write((strings.repeat(` `, mw.spaces_count) + key_with_quotes + '${mw.colon} ').bytes())?
      |                                                                                                         ^
  126 | 
  127 |     message := '['
api/manifest.v:131:43: error: propagating a Result like an Option is deprecated, use `foo()!` instead of `foo()?`
  129 |         mw.contents.writeln(message)
  130 |     } else {
  131 |         mw.contents.write(message.bytes())?
      |                                           ^
  132 |     }
  133 |
api/manifest.v:142:87: error: propagating a Result like an Option is deprecated, use `foo()!` instead of `foo()?`
  140 | 
  141 |         if newline {
  142 |             mw.contents.write((strings.repeat(` `, mw.spaces_count*2) + text).bytes())?
      |                                                                                       ^
  143 |         } else {
  144 |             mw.contents.write(text.bytes())?
api/manifest.v:144:44: error: propagating a Result like an Option is deprecated, use `foo()!` instead of `foo()?`
  142 |             mw.contents.write((strings.repeat(` `, mw.spaces_count*2) + text).bytes())?
  143 |         } else {
  144 |             mw.contents.write(text.bytes())?
      |                                            ^
  145 |         }
  146 |     }
api/manifest.v:149:87: error: propagating a Result like an Option is deprecated, use `foo()!` instead of `foo()?`
  147 | 
  148 |     if newline {
  149 |         mw.contents.write(('\n' + strings.repeat(` `, mw.spaces_count) + ']').bytes())?
      |                                                                                       ^
  150 |     } else {
  151 |         mw.contents.write(']'.bytes())?
api/manifest.v:151:39: error: propagating a Result like an Option is deprecated, use `foo()!` instead of `foo()?`
  149 |         mw.contents.write(('\n' + strings.repeat(` `, mw.spaces_count) + ']').bytes())?
  150 |     } else {
  151 |         mw.contents.write(']'.bytes())?
      |                                       ^
  152 |     }
  153 | }
api/sources.v:54:44: error: type `net.http.Response` has no field named `text`.
5 possibilities: `body`, `header`, `http_version`, `status_code`, `status_msg`.
   52 |     }
   53 | 
   54 |     repo := json.decode(RegistryRepo, resp.text) or {
      |                                            ~~~~
   55 |         eprintln('Failed to read repo.json')
   56 |         return current_pkg
api/sources.v:54:18: error: json.decode: second argument needs to be a string
   52 |     }
   53 | 
   54 |     repo := json.decode(RegistryRepo, resp.text) or {
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   55 |         eprintln('Failed to read repo.json')
   56 |         return current_pkg
api/sources.v:90:42: error: type `net.http.Response` has no field named `text`.
5 possibilities: `body`, `header`, `http_version`, `status_code`, `status_msg`.
   88 |     }
   89 | 
   90 |     repo := json.decode(VpmPackage, resp.text) or {
      |                                          ~~~~
   91 |         eprintln('Failed to parse package information from VPM')
   92 |         return Package{}
api/sources.v:90:18: error: json.decode: second argument needs to be a string
   88 |     }
   89 | 
   90 |     repo := json.decode(VpmPackage, resp.text) or {
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   91 |         eprintln('Failed to parse package information from VPM')
   92 |         return Package{}
api/vmod.v:83:17: error: byte is deprecated, use u8 instead
   81 | }
   82 | 
   83 | fn is_newline(c byte) bool {
      |                 ~~~~
   84 |     return c == `\r` || c == `\n`
   85 | }
api/vmod.v:87:22: error: byte is deprecated, use u8 instead
   85 | }
   86 | 
   87 | fn is_name_alpha(chr byte) bool {
      |                      ~~~~
   88 |     return chr.is_letter() || chr == `_`
   89 | }
@nedpals
Copy link
Collaborator

nedpals commented Sep 12, 2024

Hi! vpkg is not maintained for a long while now. Feel free to submit a PR :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants