Skip to content

Commit

Permalink
refactor evl. tests. docs. code generator prototype. wip.
Browse files Browse the repository at this point in the history
basic condition handling

and/or with tests. rename evl/evl*

primitive generator experiment
more syntax checks/evl-error handling
compile script
import values macros from veq
generator utilities
promising generator macro

.

.

.

i.

.
  • Loading branch information
inconvergent committed Oct 29, 2024
1 parent 620e525 commit 54eea54
Show file tree
Hide file tree
Showing 26 changed files with 4,891 additions and 303 deletions.
17 changes: 17 additions & 0 deletions .github/workflows/dockerimage.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: Docker Image for Testing

on: [pull_request]

jobs:

build:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v1
- name: Build the Docker image
run: docker build . --file ./Dockerfile --tag tests:latest
- name: Run tests
run: docker run tests:latest

35 changes: 35 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# This image is only intended to run the tests

FROM ubuntu:24.04 AS base

RUN apt-get -qq update &&\
apt-get -qq install -y sbcl curl gcc git

WORKDIR /opt
RUN curl -s 'https://beta.quicklisp.org/quicklisp.lisp' > /opt/quicklisp.lisp
RUN sbcl --noinform --load /opt/quicklisp.lisp\
--eval '(quicklisp-quickstart:install :path "/opt/quicklisp")'\
--eval '(sb-ext:quit)'

RUN echo '(load "/opt/quicklisp/setup.lisp")' > /root/.sbclrc
RUN mkdir -p quicklisp
RUN mkdir -p /opt/data
RUN apt-get -qq remove curl -y &&\
apt-get -qq autoremove -y &&\
apt-get -qq autoclean -y

from base AS build

WORKDIR /opt
ADD src quicklisp/local-projects/evl/src
ADD test quicklisp/local-projects/evl/test
ADD evl.asd quicklisp/local-projects/evl
ADD run-tests.sh quicklisp/local-projects/evl/run-tests.sh
RUN mkdir -p ~/quicklisp/ && ln -s /opt/quicklisp/setup.lisp ~/quicklisp/setup.lisp

RUN git clone https://github.com/inconvergent/cl-veq.git quicklisp/local-projects/veq
RUN git clone https://github.com/inconvergent/lqn.git quicklisp/local-projects/lqn

WORKDIR /opt/quicklisp/local-projects/evl/

CMD ["bash", "./run-tests.sh"]
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
#'env))))
```

more examples in [ex/ex.lisp](ex/ex.lisp).
more examples in [/ex.lisp](/ex.lisp).

## Resources

Expand Down
9 changes: 9 additions & 0 deletions compile.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#!/bin/bash

set -e
touch ./evl.asd
time sbcl --quit \
--eval '(load "evl.asd")'\
--eval '(handler-case (time (ql:quickload :evl :verbose t))
(error (c) (print c) (sb-ext:quit :unix-status 2)))'\
>compile.sh.txt 2>&1
93 changes: 93 additions & 0 deletions compile.sh.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
This is SBCL 2.4.4, an implementation of ANSI Common Lisp.
More information about SBCL is available at <http://www.sbcl.org/>.

SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses. See the CREDITS and COPYING files in the
distribution for more information.
To load "evl":
Load 1 ASDF system:
evl
; Loading "evl"
; compiling file "/data/x/evl/src/packages.lisp" (written 29 OCT 2024 09:48:09 PM):
[package evl].....................................
[package evl/code]

; wrote /home/anders/.cache/common-lisp/sbcl-2.4.4-linux-x64/data/x/evl/src/packages-tmpGHU3ALSV.fasl
; compilation finished in 0:00:00.002
; compiling file "/data/x/evl/src/utils.lisp" (written 29 OCT 2024 09:48:09 PM):
.
; file: /data/x/evl/src/utils.lisp
; in: DEFUN MATCH-PREF
; (STRING= EVL::PREF EVL::S :END2 (LENGTH EVL::PREF))
;
; note: unable to
; optimize
; due to type uncertainty:
; The first argument is a STRING, not a SIMPLE-BASE-STRING.
; The second argument is a STRING, not a SIMPLE-BASE-STRING.
;
; note: unable to
; optimize
; due to type uncertainty:
; The first argument is a STRING, not a (SIMPLE-ARRAY CHARACTER (*)).
; The second argument is a STRING, not a (SIMPLE-ARRAY CHARACTER (*)).


; wrote /home/anders/.cache/common-lisp/sbcl-2.4.4-linux-x64/data/x/evl/src/utils-tmpAAURSO1.fasl
; compilation finished in 0:00:00.016
; compiling file "/data/x/evl/src/docs.lisp" (written 29 OCT 2024 09:48:09 PM):
.
; file: /data/x/evl/src/docs.lisp
; in: DEFVAR *DOCSTRING-MAP*
; (LIST)
;
; note: deleting unreachable code


; wrote /home/anders/.cache/common-lisp/sbcl-2.4.4-linux-x64/data/x/evl/src/docs-tmp5GEXGEG5.fasl
; compilation finished in 0:00:00.013
; compiling file "/data/x/evl/src/config.lisp" (written 29 OCT 2024 09:48:09 PM):

; wrote /home/anders/.cache/common-lisp/sbcl-2.4.4-linux-x64/data/x/evl/src/config-tmpAR3FSGEY.fasl
; compilation finished in 0:00:00.008
; compiling file "/data/x/evl/src/evl-gen.lisp" (written 29 OCT 2024 11:37:52 PM):
.

; wrote /home/anders/.cache/common-lisp/sbcl-2.4.4-linux-x64/data/x/evl/src/evl-gen-tmpJAIDFZTC.fasl
; compilation finished in 0:00:00.012
; compiling file "/data/x/evl/src/interp.lisp" (written 29 OCT 2024 09:48:09 PM):
...

; wrote /home/anders/.cache/common-lisp/sbcl-2.4.4-linux-x64/data/x/evl/src/interp-tmp8V3J6PE9.fasl
; compilation finished in 0:00:00.090
; compiling file "/data/x/evl/src/code-factory.lisp" (written 29 OCT 2024 09:48:09 PM):

; file: /data/x/evl/src/code-factory.lisp
; in: DEFUN GEN
; (COND
; ((AND (LISTP EVL/CODE::V) (> (LENGTH EVL/CODE::V) 1))
; `(VALUES ,@EVL/CODE::V))
; ((LISTP EVL/CODE::V) (CAR EVL/CODE::V)) (T EVL/CODE::V))
; --> IF THE
; ==>
; EVL/CODE::V
;
; note: deleting unreachable code


; wrote /home/anders/.cache/common-lisp/sbcl-2.4.4-linux-x64/data/x/evl/src/code-factory-tmp9V47YWQF.fasl
; compilation finished in 0:00:00.011
;
; compilation unit finished
; printed 4 notes

Evaluation took:
0.229 seconds of real time
0.230028 seconds of total run time (0.169029 user, 0.060999 system)
100.44% CPU
671 forms interpreted
1,081 lambdas converted
977,572,080 processor cycles
80,134,368 bytes consed

26 changes: 26 additions & 0 deletions docs/evl-code.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
## `evl/code:gen`
```
; EVL/CODE:GEN
; [symbol]
;
; GEN names a compiled function:
; Lambda-list: (SIGNS S)
; Derived type: (FUNCTION (T T) (VALUES T &OPTIONAL))
; Documentation:
; generate new expressions using these
; Source file: /data/x/evl/src/code-factory.lisp
```

## `evl/code:signatures`
```
:missing:
; EVL/CODE:SIGNATURES
; [symbol]
;
; SIGNATURES names a compiled function:
; Lambda-list: (EXPRS &AUX (HT (MAKE-HASH-TABLE TEST (FUNCTION EQUAL))))
; Derived type: (FUNCTION (T) (VALUES HASH-TABLE &OPTIONAL))
; Source file: /data/x/evl/src/code-factory.lisp
```

Loading

0 comments on commit 54eea54

Please sign in to comment.