on master help sign in
Merge pull request #31 from replit/rr-disco-dingo
60bc56dRadon Rosborough
.gitignore+1
@@ -1,5 +1,6 @@
1plugins/
1plugins/
2prybar-*
2prybar-*
3+prybar_assets/sqlite/patch.so
3deps.lst
4deps.lst
4prybar.tar.gz
5prybar.tar.gz
5generated_*.go
6generated_*.go
Dockerfile+1−1
@@ -1,4 +1,4 @@
1−FROM ubuntu:bionic
1+FROM ubuntu:disco
2
2
3COPY scripts/docker-install.sh /tmp/docker-install.sh
3COPY scripts/docker-install.sh /tmp/docker-install.sh
4RUN /tmp/docker-install.sh
4RUN /tmp/docker-install.sh
Dockerfile.dev+1−1
@@ -1,4 +1,4 @@
1−FROM ubuntu:bionic
1+FROM ubuntu:disco
2
2
3COPY scripts/docker-install.sh /tmp/docker-install.sh
3COPY scripts/docker-install.sh /tmp/docker-install.sh
4RUN /tmp/docker-install.sh
4RUN /tmp/docker-install.sh
Makefile+1−1
@@ -26,7 +26,7 @@ test: ## Run integration tests
26
26
27.PHONY: clean
27.PHONY: clean
28clean: ## Remove build artifacts
28clean: ## Remove build artifacts
29− rm -f prybar-* languages/*/generated_*.go
29+ rm -f prybar-* languages/*/generated_*.go prybar_assets/sqlite/patch.so
30
30
31.PHONY: help
31.PHONY: help
32help: ## Show this message
32help: ## Show this message
languages/julia/main.go+1−1
@@ -3,7 +3,7 @@ package main
3// USING_CGO
3// USING_CGO
4
4
5/*
5/*
6−#cgo CFLAGS: -I/usr/include/julia
6+#cgo CFLAGS: -I/usr/local/include/julia
7#cgo LDFLAGS: -ljulia
7#cgo LDFLAGS: -ljulia
8#include "pry.h"
8#include "pry.h"
9*/
9*/
languages/sqlite/compile+8−5
@@ -1,6 +1,9 @@
1−#!/bin/bash
1+#!/usr/bin/env bash
2
2
3+set -e
4+set -o pipefail
5+
3−COMPILE_DIR=$(dirname "$0")
6+COMPILE_DIR="$(dirname "$0")"
4−DEST_DIR=$COMPILE_DIR/../../prybar_assets/sqlite
7+DEST_DIR="$COMPILE_DIR/../../prybar_assets/sqlite"
5−mkdir $DEST_DIR
8+mkdir -p "$DEST_DIR"
6−gcc -Wall -shared -fPIC -ldl -o $DEST_DIR/patch.so $COMPILE_DIR/patch/patch.c
9+gcc -Wall -shared -fPIC -ldl -o "$DEST_DIR/patch.so" "$COMPILE_DIR/patch/patch.c"
scripts/docker-install.sh+36−34
@@ -3,57 +3,59 @@
3set -e
3set -e
4set -o pipefail
4set -o pipefail
5
5
6−export DEBIAN_FRONTEND=noninteractive
6+cd /tmp
7−
8−apt-get update
9−apt-get install -y software-properties-common
10−add-apt-repository ppa:avsm/ppa
11−add-apt-repository ppa:kelleyk/emacs
12
7
13packages="
8packages="
14
9
15−bsdmainutils
10+# languages
16−build-essential
11+emacs-nox
17−emacs26
18−expect
19−golang
20−libffi-dev
21liblua5.1-dev
12liblua5.1-dev
22−libnspr4-dev
23−libreadline-dev
24−m4
25nodejs
13nodejs
26ocaml
14ocaml
27−opam
28python-dev
15python-dev
29python3-dev
16python3-dev
30−ruby2.5-dev
17+ruby-dev
31sqlite3
18sqlite3
32tcl-dev
19tcl-dev
20+
21+# build and test
22+bsdmainutils
23+build-essential
24+expect
25+golang
26+
27+# things we link against
28+libreadline-dev
29+
30+# needed for the version of libmozjs that we download
31+libffi-dev
32+libnspr4-dev
33+
34+# used during installation
33wget
35wget
34
36
35"
37"
36
38
39+export DEBIAN_FRONTEND=noninteractive
40+apt-get update
37−apt-get install -y $packages
41+apt-get install -y $(grep -v "^#" <<< "$packages")
38rm -rf /var/lib/apt/lists/*
42rm -rf /var/lib/apt/lists/*
39
43
44+# The version in the Disco repos is out of date (1.0 series) and does
45+# not expose the API we need.
46+wget -nv https://julialang-s3.julialang.org/bin/linux/x64/1.1/julia-1.1.1-linux-x86_64.tar.gz
47+tar -xf *.tar.gz
48+cp -R julia-*/bin/* /usr/local/bin/
49+cp -R julia-*/include/* /usr/local/include/
50+cp -R julia-*/lib/* /usr/local/lib/
51+cp -R julia-*/share/* /usr/local/share/
52+rm -rf julia-*
53+
54+# The version in the Disco repos is not compatible with cgo ("invalid
55+# flag in pkg-config --cflags: -include").
40wget -nv https://launchpadlibrarian.net/309343863/libmozjs185-1.0_1.8.5-1.0.0+dfsg-7_amd64.deb
56wget -nv https://launchpadlibrarian.net/309343863/libmozjs185-1.0_1.8.5-1.0.0+dfsg-7_amd64.deb
41wget -nv https://launchpadlibrarian.net/309343864/libmozjs185-dev_1.8.5-1.0.0+dfsg-7_amd64.deb
57wget -nv https://launchpadlibrarian.net/309343864/libmozjs185-dev_1.8.5-1.0.0+dfsg-7_amd64.deb
42−dpkg -i libmozjs185*.deb
58+dpkg -i *.deb
43−rm libmozjs185*.deb
59+rm *.deb
44−
45−wget https://julialang-s3.julialang.org/bin/linux/x64/1.1/julia-1.1.0-linux-x86_64.tar.gz
46−tar -xf julia-1.1.0-linux-x86_64.tar.gz
47−cp -R julia-1.1.0/bin/* /usr/bin/
48−cp -R julia-1.1.0/include/* /usr/include/
49−cp -R julia-1.1.0/lib/* /usr/lib/
50−cp -R julia-1.1.0/share/* /usr/share/
51−rm -rf julia-1.1.0*
52−
53−opam init -c ocaml-system -n --disable-sandboxing
54−cat <<"EOF" >> "$HOME/.bashrc"
55−export OPAMROOTISOK=1
56−eval "$(opam env)"
57−EOF
58
60
59rm /tmp/docker-install.sh
61rm /tmp/docker-install.sh
tests/julia/header.exp+1−1
@@ -3,7 +3,7 @@
3set timeout -1
3set timeout -1
4spawn ./prybar-julia -i
4spawn ./prybar-julia -i
5match_max 100000
5match_max 100000
6−expect -exact "Version 1.1.0 (2019-01-21)"
6+expect -exact "Version 1.1.1 (2019-05-16)"
7expect -exact "--> \[0m\[0m\r\[4C\r\[4C"
7expect -exact "--> \[0m\[0m\r\[4C\r\[4C"
8send -- ""
8send -- ""
9expect eof
9expect eof
tests/sqlite/header.exp+1−1
@@ -1,4 +1,4 @@
1#!/usr/bin/expect -f
1#!/usr/bin/expect -f
2
2
3spawn ./prybar-sqlite -i
3spawn ./prybar-sqlite -i
4−expect -gl "-- Loading resources from /tmp/sqlite-config*\r\nSQLite version 3.22.0*\r\nEnter \".help\" for usage hints.\r\n--> "
4+expect -gl "-- Loading resources from /tmp/sqlite-config*\r\nSQLite version 3.27.2*\r\nEnter \".help\" for usage hints.\r\n--> "