diff --git a/.gitignore b/.gitignore index df4fcc98..ca2e2f8b 100644 --- a/.gitignore +++ b/.gitignore @@ -17,4 +17,4 @@ libarchive-* test/ # V compiler directory -v-*/ +v/ diff --git a/.woodpecker/.build.yml b/.woodpecker/.build.yml index c81e10b6..66caa8c7 100644 --- a/.woodpecker/.build.yml +++ b/.woodpecker/.build.yml @@ -6,8 +6,6 @@ matrix: # These checks already get performed on the feature branches platform: ${PLATFORM} -depends_on: - - builder pipeline: # The default build isn't needed, as alpine switches to gcc for the compiler anyways diff --git a/.woodpecker/.builder.yml b/.woodpecker/.builder.yml deleted file mode 100644 index e94a8463..00000000 --- a/.woodpecker/.builder.yml +++ /dev/null @@ -1,18 +0,0 @@ -branches: dev -platform: linux/amd64 - -pipeline: - publish: - image: woodpeckerci/plugin-docker-buildx - secrets: [ docker_username, docker_password ] - settings: - repo: chewingbever/vlang - tag: latest - dockerfile: Dockerfile.builder - platforms: [ linux/arm/v7, linux/arm64/v8, linux/amd64 ] - when: - event: push - path: - - Makefile - - Dockerfile.builder - - patches/* diff --git a/.woodpecker/.docker.yml b/.woodpecker/.docker.yml index 9dfdf08d..6202fe6c 100644 --- a/.woodpecker/.docker.yml +++ b/.woodpecker/.docker.yml @@ -1,7 +1,6 @@ branches: [main, dev] platform: linux/amd64 depends_on: - - builder - build pipeline: diff --git a/Dockerfile.builder b/Dockerfile.builder deleted file mode 100644 index e88d0a6b..00000000 --- a/Dockerfile.builder +++ /dev/null @@ -1,36 +0,0 @@ -FROM alpine:3.12 - -ARG TARGETPLATFORM - -WORKDIR /opt/vlang - -ENV VVV /opt/vlang -ENV PATH /opt/vlang:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin -ENV VFLAGS -cc gcc -ENV V_PATH /opt/vlang/v - -RUN ln -s /opt/vlang/v /usr/bin/v && \ - apk --no-cache add \ - git make gcc curl openssl \ - musl-dev \ - openssl-libs-static openssl-dev \ - zlib-static bzip2-static xz-dev expat-static zstd-static lz4-static \ - sqlite-static sqlite-dev \ - libx11-dev glfw-dev freetype-dev \ - libarchive-static libarchive-dev \ - gc-dev \ - diffutils - -COPY patches ./patches -COPY Makefile ./ - -RUN make v && \ - mv v-*/* /opt/vlang && \ - v -version - -RUN if [ "$TARGETPLATFORM" = 'linux/amd64' ]; then \ - wget -O /usr/local/bin/mc https://dl.min.io/client/mc/release/linux-amd64/mc && \ - chmod +x /usr/local/bin/mc ; \ -fi - -CMD ["v"] diff --git a/Makefile b/Makefile index 7166c665..d7efc451 100644 --- a/Makefile +++ b/Makefile @@ -2,8 +2,7 @@ SRC_DIR := src SOURCES != find '$(SRC_DIR)' -iname '*.v' -V_RELEASE := weekly.2022.07 -V_PATH ?= v-$(V_RELEASE)/v +V_PATH ?= v/v V := $(V_PATH) -showcc -gc boehm all: vieter @@ -46,7 +45,6 @@ run-prod: prod watch: API_KEY=test DOWNLOAD_DIR=data/downloads REPO_DIR=data/repo PKG_DIR=data/pkgs LOG_LEVEL=DEBUG $(V) watch run vieter - # =====OTHER===== .PHONY: lint lint: @@ -63,11 +61,10 @@ vet: # Build & patch the V compiler .PHONY: v -v: v-$(V_RELEASE)/v -v-$(V_RELEASE)/v: - curl -Lo - 'https://github.com/vlang/v/archive/refs/tags/$(V_RELEASE).tar.gz' | tar xzf - - cd patches && sh patch.sh '../v-$(V_RELEASE)' - make -C 'v-$(V_RELEASE)' +v: v/v +v/v: + git clone --single-branch --branch patches https://git.rustybever.be/Chewing_Bever/vieter-v v + make -C v clean: - rm -rf 'data' 'vieter' 'dvieter' 'pvieter' 'vieter.c' 'v-$(V_RELEASE)' + rm -rf 'data' 'vieter' 'dvieter' 'pvieter' 'vieter.c' diff --git a/README.md b/README.md index fbfa259a..f269027d 100644 --- a/README.md +++ b/README.md @@ -16,11 +16,11 @@ that. ### Custom Compiler Currently, this program only works with a very slightly modified version of the -V standard library, and therefore the compiler. The changes that are made to -the standard V release can be found in the [patches](/patches) directory. You -can obtain this modified version of the compiler by running `make v`, which -will download, patch & build the compiler. Afterwards, all make commands that -require the V compiler will use this new binary. +V standard library, and therefore the compiler. The source code for this fork +can be found [here](https://git.rustybever.be/Chewing_Bever/vieter-v). You can +obtain this modified version of the compiler by running `make v`, which will +clone & build the compiler. Afterwards, all make commands that require the V +compiler will use this new binary. ## Features diff --git a/patches/parse_request_no_body.v b/patches/parse_request_no_body.v deleted file mode 100644 index c00a51c6..00000000 --- a/patches/parse_request_no_body.v +++ /dev/null @@ -1,23 +0,0 @@ -// Parse the header of a raw HTTP request into a Request object -pub fn parse_request_head(mut reader io.BufferedReader) ?Request { - // request line - mut line := reader.read_line() ? - method, target, version := parse_request_line(line) ? - - // headers - mut header := new_header() - line = reader.read_line() ? - for line != '' { - key, value := parse_header(line) ? - header.add_custom(key, value) ? - line = reader.read_line() ? - } - header.coerce(canonicalize: true) - - return Request{ - method: method - url: target.str() - header: header - version: version - } -} diff --git a/patches/patch.sh b/patches/patch.sh deleted file mode 100755 index 89f21760..00000000 --- a/patches/patch.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env sh -# This file patches the downloaded V version -# Should be run from within the directory it's in, as it uses relative paths to the files used for patching. -# $1 is the path to the downloaded V version - -# Add parse_request_no_body -cat parse_request_no_body.v >> "$1"/vlib/net/http/request.v - -# weekly.2022.07 fixes the write function being private -# Make sha256 functions public -sed -i \ - -e 's/\(fn (mut d Digest) checksum(\)/pub \1/' \ - "$1"/vlib/crypto/sha256/sha256.v diff --git a/src/web/web.v b/src/web/web.v index b1e8b92a..ad647f20 100644 --- a/src/web/web.v +++ b/src/web/web.v @@ -22,7 +22,7 @@ pub struct Result {} pub const ( methods_with_form = [http.Method.post, .put, .patch] headers_close = http.new_custom_header_from_map({ - 'Server': 'VWeb' + 'Server': 'VWeb' http.CommonHeader.connection.str(): 'close' }) or { panic('should never fail') }