Skip to content

Termux support (aarch64) #455

@tokamak-git

Description

@tokamak-git

System Information

V doctor

V full version: V 0.4.8 ce8f621.5ec9bb5
OS: termux, 6.1.57-android14-11-29150220-abF956BXXS1AXI3, #1 SMP PREEMPT Mon Sep 30 01:24:54 UTC 2024            Processor: 8 cpus, 64bit, little endian                                                                          
getwd: /data/data/com.termux/files/home/projects/vls
vexe: /data/data/com.termux/files/home/projects/v/v
vexe mtime: 2024-10-18 10:18:13

vroot: OK, value: /data/data/com.termux/files/home/projects/v                                                    VMODULES: OK, value: /data/data/com.termux/files/home/.vmodules
VTMP: OK, value: /data/data/com.termux/files/usr/tmp/v_10342

Git version: git version 2.47.0
Git vroot status: weekly.2024.42-22-g5ec9bb54
.git/config present: true

CC version: clang version 19.1.2
thirdparty/tcc status: thirdparty-unknown-unknown de82a130

VLS info

Unable to build

Problem Description

Hey folks. I'm trying to run v on my phone so as to have a compact travel setup, primary focus is on exercism solving and scripting.
At the moment I'm able to build v and it runs.
When running v ls --install i get an error as there is no prebuilt variant available

v ls --install
> Finding prebuilt executables from GitHub release..
> Updating VLS repo...
> VLS was already updated to it's latest version.
v ls error: No executable found for this system. (100)

This is expected as the current build only supports x86, mac and windows, but no termux aarch64.

I tried to then build from source

Expected Output

Vls installed || vls built

Actual Output

and it gives me a lot of errors. Too many to print here. The following are just a few lines from a 17k dump

cmd/vls/main.v:74:30: error: cannot access private field `own_buffer` on `jsonrpc.NewWriterCon21:44:53 [35/31278]
   72 |     mut host := VlsHost{
   73 |         server: jrpc_server
   74 |         writer: jrpc_server.writer(own_buffer: true)
      |                                    ~~~~~~~~~~~~~~~~
   75 |         child: new_vls_process(...server_args)
   76 |         client: &net.TcpConn(unsafe { nil })
cmd/vls/main.v:97:3: error: cannot access private field `enabled` on `log.LogRecorder`
   95 |     debug_mode := cmd.flags.get_bool('debug') or { false }
   96 |     return &LogRecorder{
   97 |         enabled: debug_mode
      |         ~~~~~~~~~~~~~~~~~~~
   98 |     }
   99 | }
Failed building VLS

Steps to Reproduce

Install termux from the play store (fdroid version leads to my phone crashing in an endless loop, had to factory reset)
Install clang apt install clang
Clone and build v (I'm sure that part is known here)
Run v ls --install
OR
Clone vls
Run v run build.vsh clang

Last Recorded LSP Requests

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions