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

FFI Rework #558

Merged
merged 134 commits into from
Mar 5, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
134 commits
Select commit Hold shift + click to select a range
89472c6
ports/* remove legacy platform port code
jmercouris Jan 14, 2020
258415c
delete pyqt-webengine
jmercouris Jan 14, 2020
353c19e
next.asd: add cl-gobject-introspection to dependencies
jmercouris Jan 14, 2020
ca449ae
delete port.lisp: not useful when using FFI
jmercouris Jan 14, 2020
c141dea
Move: patch-x.lisp -> patches/patch-x.lisp
jmercouris Jan 14, 2020
ca282d6
start/remote.lisp: disable start up d-bus RPC
jmercouris Jan 14, 2020
18d01a2
global.lisp, interface.lisp, keymap.lisp: strip dbus scaffolding/endp…
jmercouris Jan 16, 2020
e5abf29
interprocess-communication.lisp: delete d-bus helper functions
jmercouris Jan 17, 2020
6ab5875
Rename: remote-interface -> interface
jmercouris Jan 17, 2020
e83dba7
interprocess-communication.lisp: first usage of IPC
jmercouris Jan 17, 2020
7d6e041
interprocess-communication.lisp: comment %rpc-send functions
jmercouris Jan 20, 2020
d409e98
Rename: rpc-window-make->ipc-window-make
jmercouris Jan 20, 2020
79732a7
interprocess-communication: subclass window as gtk-window
jmercouris Jan 21, 2020
5c7d7ce
interface.lisp/interprocess-communication.lisp: ipc-window-make
jmercouris Jan 22, 2020
116b20d
rpc-window-active -> ipc-window-active
jmercouris Jan 22, 2020
3051085
delete rpc-window-exists: unused
jmercouris Jan 22, 2020
8190ae6
rpc-window-set-minibuffer-height-> ipc-window-set-minibuffer-height
jmercouris Jan 22, 2020
2f72bec
interproccess-communication.lisp: remove deprecated method
jmercouris Jan 23, 2020
e5dc3de
interprocess-communication.lisp: utilize initialize-instance :after
jmercouris Jan 24, 2020
5c968b3
interprocess-communication.lisp: instantiation of window
jmercouris Jan 24, 2020
56df423
interprocess-communication.lisp: successfully make first window
jmercouris Jan 28, 2020
4825b3b
interprocess-communication.lisp: set temporary signal to quit when GTK
jmercouris Jan 28, 2020
f969019
interprocess-communication.lisp: add placeholder bufferview
jmercouris Jan 28, 2020
eb88ad8
interprocess-communication: set-up gdk, webkit2
jmercouris Jan 30, 2020
86ffb09
keymap.lisp: indentation + remove some TODOs
jmercouris Jan 30, 2020
bec73e4
next.asd: add trivial-main-thread
jmercouris Feb 4, 2020
20bec07
next: strip cl-gobject-introspection, move to CFFI
jmercouris Feb 10, 2020
afa5496
interprocess-communication.lisp: cl-cffi-gtk basic window creation
jmercouris Feb 11, 2020
388d4b5
Rename/reprogram rpc-buffer-make -> ipc-buffer-make
jmercouris Feb 11, 2020
f045872
interprocess-communication.lisp: add box view slot to window
jmercouris Feb 11, 2020
fd75e35
interprocess-communication.lisp: add box layout to window
jmercouris Feb 12, 2020
cb51174
interface.lisp: indentation of documentation strings
jmercouris Feb 12, 2020
2239136
interprocess-communication.lisp: ipc-window-set-minibuffer-height
jmercouris Feb 12, 2020
bd7c413
interprocess-communicaiton.lisp: temporary local URL/exit GTK callback
jmercouris Feb 13, 2020
d56bf40
Implement ipc-buffer-load, rpc -> ipc
jmercouris Feb 13, 2020
3f51cad
rpc-buffer-evaluate-javascript -> ipc-buffer-evaluate-javascript
jmercouris Feb 13, 2020
81b5aa6
interprocess-communication.lisp: ipc-window-set-active-buffer
jmercouris Feb 13, 2020
35e664b
interprocess-communication.lisp: show new active buffer
jmercouris Feb 13, 2020
ed47f7a
interface.lisp: remove unneeded javascript callback slots/function
jmercouris Feb 14, 2020
98f0f53
interprocess-communication.lisp: implement buffer/minibuffer js
jmercouris Feb 14, 2020
14ae4d0
keymap.lisp: change \" comments to use ' instead
jmercouris Feb 14, 2020
ed22c48
interprocess-communication.lisp: capture key strokes
jmercouris Feb 15, 2020
3b07582
keymap.lisp: fix spelling in comment
jmercouris Feb 15, 2020
1de6acf
interprocess-communication.lisp/keymap.lisp: work directly with windo…
jmercouris Feb 15, 2020
729dec9
interprocess-communication.lisp: create list of modifiers
jmercouris Feb 15, 2020
ae60772
interprocess-communication.lisp: convert char to string for key string
jmercouris Feb 17, 2020
6e52c0b
interprocess-communication.lisp: process-event->process-key-press-event
jmercouris Feb 17, 2020
f5db33b
keymap.lisp: simplify push-input-event
jmercouris Feb 17, 2020
9982a87
interprocess-communication.lisp: process-key-press-event -> method
jmercouris Feb 17, 2020
9efa72c
interprocess-communication.lisp: add handling for some special charac…
jmercouris Feb 17, 2020
43c9d64
README.org: remove blink download
jmercouris Feb 17, 2020
66e39ea
sources.org: update foreign dependencies
jmercouris Feb 17, 2020
58a0f8a
MANUAL.org: remove d-bus mentions
jmercouris Feb 17, 2020
cdee457
documents/README.org: update developer README to remove d-bus
jmercouris Feb 17, 2020
2ae60a8
element-hint.lisp: license removal
jmercouris Feb 17, 2020
5a2ca6b
interprocess-communication.lisp: use minibuffer container
jmercouris Feb 18, 2020
a2a480c
delete: debian/roswell/gitlab
jmercouris Feb 18, 2020
c9d094a
delete assets: indiegogo/patreon
jmercouris Feb 18, 2020
aee4c61
next.asd: remove port compatibility layers
jmercouris Feb 18, 2020
99d3637
delete source/ports: remove unneeded files
jmercouris Feb 18, 2020
a3db158
interprocess-communication.lisp: ipc-buffer-delete
jmercouris Feb 18, 2020
ab21d4c
buffer.lisp, session.lisp: rpc-buffer-delete -> ipc-buffer-delete
jmercouris Feb 18, 2020
f175039
interprocess-communication.lisp: implement window-delete
jmercouris Feb 19, 2020
0b1f824
interprocess-communication.lisp: implement kill-interface
jmercouris Feb 19, 2020
299c1f0
interprocess-communication.lisp: update comment
jmercouris Feb 19, 2020
83a3c62
interface.lisp: delete functions did-commit, did-finish-navigation
jmercouris Feb 19, 2020
e198860
interprocess-communication.lisp: implement did-commit/did-finish navi…
jmercouris Feb 19, 2020
7d1e972
interprocess-communication.lisp: remove loading of about:blank
jmercouris Feb 19, 2020
48c0aa9
interprocess-communication.lisp: update targets in minibuffer
jmercouris Feb 19, 2020
f0d40f3
interprocess-communication.lisp: do not send #\Nul characters
jmercouris Feb 19, 2020
22e2b12
interprocess-communication.lisp: handle deletion of windows
jmercouris Feb 19, 2020
1213489
interprocess-communication.lisp: handle super on macOS
jmercouris Feb 19, 2020
f2c9109
interprocess-communication.lisp: manually push/pop modifiers
jmercouris Feb 20, 2020
524a1db
delete ipc-buffer-set: opt to use methods instead
jmercouris Feb 20, 2020
da5aa65
interprocess-communication.lisp: change rpc->ipc for proxy, add stubs
jmercouris Feb 20, 2020
de64feb
start.lisp: remove erroneous non-interactive flag
jmercouris Feb 21, 2020
c1b3fc8
INSTALL: update current install options
jmercouris Feb 21, 2020
7d67578
Makefile: update for removal of ports
jmercouris Feb 21, 2020
10bc048
search-buffer.lisp: remove deprecated commands
jmercouris Feb 21, 2020
2de274d
bookmark.lisp: delete deprecated command
jmercouris Feb 21, 2020
b7ac4a2
window.lisp: delete deprecated command
jmercouris Feb 21, 2020
c28cbba
source: delete deprecated commands and bindings
jmercouris Feb 21, 2020
b47eb8b
interface.lisp: remove platform port related slots in interface class
jmercouris Feb 21, 2020
61931a2
keymap.lisp: return true on funcall bound/minibuffer input
jmercouris Feb 21, 2020
4eb9af9
interprocess-communication.lisp: add stub for decide-policy
jmercouris Feb 21, 2020
22fe6bb
interprocess-communication.lisp: pass modifiers to
jmercouris Feb 21, 2020
31c9413
interprocess-communication.lisp: fix handling of arrow keys
jmercouris Feb 21, 2020
7473b87
interprocess-communication.lisp: more consistently name signal handlers
jmercouris Feb 21, 2020
bdc2d40
delete ports/gtkwebkit
jmercouris Feb 21, 2020
6b6dfab
Kill interface when destroying last window.
Ambrevar Feb 22, 2020
970ff4d
source/interprocess-communication.lisp:
jmercouris Feb 24, 2020
1ab6ab1
vi-mode: Disable obsolete rpc-generate-input-event.
Ambrevar Feb 22, 2020
4d15d25
Fix (setf proxy) and ipc-buffer-set-proxy calls.
Ambrevar Feb 22, 2020
eaf76ee
Instantiate window/buffer/interface classes from *-class* parameters.
Ambrevar Feb 22, 2020
c9225b2
interprocess-communication.lisp: remove TODOs
jmercouris Feb 24, 2020
0db161c
Enable cookie storage.
Ambrevar Feb 22, 2020
2d7dff6
Add TODO notes in keymap.lisp.
Ambrevar Feb 22, 2020
189eb2b
Fix cookie storage.
Ambrevar Feb 23, 2020
6c41cb1
Silence warning about unused key-chord argument in printable-p.
Ambrevar Feb 23, 2020
1c5e570
mode: Fix ':list' type warning.
Ambrevar Feb 23, 2020
92ca1f9
file-manager-mode: Silence warning about unimplemented new-buffer-p o…
jmercouris Feb 24, 2020
8b59671
Implement initial proxy support.
Ambrevar Feb 23, 2020
7895db0
interprocess-communication.lisp: cl-webkit2 -> webkit package nickname
jmercouris Feb 24, 2020
ca43885
interprocess-communication.lisp: simplify proxy-uri check
jmercouris Feb 24, 2020
54c04f7
interprocess-communication.lisp: implement process-decide-policy stub
jmercouris Feb 24, 2020
d619ee0
interface.lisp: simplify request-resource
jmercouris Feb 25, 2020
12e1fa5
interprocess-communication.lisp: use symbols interned in keyword
jmercouris Feb 25, 2020
274dd73
file-manager-mode.lisp: add support for darwin
jmercouris Feb 25, 2020
efed629
interface.lisp: remove method that funcalls method
jmercouris Feb 25, 2020
f019fb5
interprocess-communication.lisp: decide-policy capture mouse state
jmercouris Feb 26, 2020
e70ebf3
interface.lisp, utility.lisp: add provisions for standard-out and
jmercouris Feb 26, 2020
06e3701
interprocess-communication.lisp: grab URL for decide policy
jmercouris Feb 26, 2020
f72c0f1
Merge branch 'master' into ffi
jmercouris Feb 26, 2020
f88bcbd
next.asd: temporarily remove certificate-whitelist-mode
jmercouris Feb 26, 2020
0cda227
interprocess-communication.lisp: attempt to get webkit-navication-action
jmercouris Feb 27, 2020
270dd1a
interprocess-communication.lisp: working process-decide-policy implem…
jmercouris Feb 27, 2020
4abbaa8
interprocess-communication.lisp: create translate-modifier-list method
jmercouris Feb 27, 2020
b004a24
interprocess-communication.lisp: pass ignore hosts in set proxy
jmercouris Feb 27, 2020
b865907
interprocess-communication.lisp: remove ipc-buffer-get-proxy
jmercouris Feb 27, 2020
f685abc
Refactor: *interface* -> browser, interface -> browser
jmercouris Feb 28, 2020
fb6b16c
window.lisp: add commands to fullscreen/unfullscreen window
jmercouris Feb 28, 2020
6bae69c
renamed: source/interprocess-communication.lisp -> source/interproces…
jmercouris Feb 28, 2020
102fadf
renamed: source/interface.lisp -> source/browser.lisp
jmercouris Mar 3, 2020
dfd7971
browser.lisp: add note to reimplement certificate whitelist mode
jmercouris Mar 3, 2020
4dcc783
README.org: added lisp specific dependency on cl-webkit
jmercouris Mar 3, 2020
f803c3a
character->string: Use match to remove repetitions.
Ambrevar Mar 3, 2020
4a09c93
blocker-mode: Fix by reintroducing resource-query-function.
Ambrevar Mar 3, 2020
cd60f43
process-decide-policy: Use match to declutter code.
Ambrevar Mar 3, 2020
9c92c64
libraries/ring/ring: Fix copy type.
Ambrevar Mar 3, 2020
9525878
buffer.lisp: swap rendering of URL and title
jmercouris Mar 4, 2020
b8d7498
Fix GTK initialization.
Ambrevar Mar 4, 2020
d0a4161
interprocess-communication-gtk.lisp: make initilization work on macOS
jmercouris Mar 4, 2020
99b36ee
command.lisp: save source code of SEXP for command inspect
jmercouris Mar 4, 2020
227fc6b
browser.lisp: fix call to ipc-window-make missing *browser* object
jmercouris Mar 4, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 0 additions & 31 deletions .gitlab-ci.yml

This file was deleted.

17 changes: 7 additions & 10 deletions INSTALL
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
Usage:

make next Create the Lisp core.
make install-next Install the Lisp core.
make next Create Next.
make install-next Install Next.

make gtk-webkit Create the GTK-WebKit port.
make install-gtk-webkit Install the GTK-WebKit port.

make all Create the Lisp core and the GTK-WebKit port.
make install Install the Lisp core and the GTK-WebKit port.
make all Create Next.
make install Install Next.

Set DESTDIR to change the target destinatation. It should be
an absolute path.
Expand All @@ -19,7 +16,7 @@ dependencies will be fetched with Quicklisp into the
QUICKLISP_DIR directory.

Otherwise, the dependencies will have to be locally installed
on your system. You might have to accomodate the LISP_FLAGS
to, say, use your local install of Quicklisp. For instance:
on your system. You may have to accomodate the LISP_FLAGS
to, use your local install of Quicklisp. For example:

make next NEXT_INTERNAL_QUICKLISP=false LISP_FLAGS=
make next NEXT_INTERNAL_QUICKLISP=false LISP_FLAGS=
41 changes: 7 additions & 34 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ APPLICATIONSDIR = /Applications
help:
@cat INSTALL

lisp_files := next.asd source/*.lisp source/ports/*.lisp
lisp_files := next.asd source/*.lisp

.PHONY: clean-fasls
clean-fasls:
Expand All @@ -40,47 +40,29 @@ next: $(lisp_files) clean-fasls quicklisp-update
--eval '(ql:quickload :prove-asdf)' \
--load next.asd \
--eval '(asdf:make :next)' \
--eval '(uiop:quit)' || (printf "\n%s\n%s\n" "Compilation failed." "Make sure the 'xclip' binary and the 'sqlite' and 'libfixposix' development files are available on your system." && exit 1)


.PHONY: debian
# Install Debian 10 dependencies.
debian:
apt install -y sbcl libwebkit2gtk-4.0-dev default-dbus-session-bus glib-networking sqlite gsettings-desktop-schemas libfixposix-dev libgstreamer1.0-0 gir1.2-gst-plugins-base-1.0 xclip

--eval '(uiop:quit)' || (printf "\n%s\n%s\n" "Compilation failed." "Make sure the 'xclip' binary and the 'sqlite' files are available on your system." && exit 1)

.PHONY: app-bundle
app-bundle: next
app-bundle:
mkdir -p ./Next.app/Contents/MacOS
mkdir -p ./Next.app/Contents/Resources
mv ./next ./Next.app/Contents/MacOS
cp -r ./ports/pyqt-webengine/* ./Next.app/Contents/MacOS
mv ./Next.app/Contents/MacOS/next-pyqt-webengine.py ./Next.app/Contents/MacOS/next-pyqt-webengine
chmod +x ./Next.app/Contents/MacOS/next-pyqt-webengine
cp ./assets/Info.plist ./Next.app/Contents
cp ./assets/next.icns ./Next.app/Contents/Resources

.PHONY: install-app-bundle
install-app-bundle:
cp -r Next.app $(DESTDIR)/Applications

.PHONY: gtk-webkit
gtk-webkit:
$(MAKE) -C ports/gtk-webkit || (printf "\n%s\n%s\n" "Compilation failed." "Make sure 'webkitgtk >=2.22' development files are available on your system." && exit 1)

.PHONY: all
all:
ifeq ($(UNAME), Linux)
all: next gtk-webkit
all: next
endif
ifeq ($(UNAME), Darwin)
all: app-bundle
all: next app-bundle
endif

.PHONY: install-gtk-webkit
install-gtk-webkit: gtk-webkit
$(MAKE) -C ports/gtk-webkit install DESTDIR=$(DESTDIR) PREFIX=$(PREFIX)

## We use a temporary "version" file to generate the final next.desktop with the
## right version number. Since "version" is a file target, third-party
## packaging systems can choose to generate "version" in advance before calling
Expand All @@ -96,7 +78,6 @@ version:
--eval '(with-open-file (stream "version" :direction :output :if-exists :supersede) (format stream "~a" (asdf/component:component-version (asdf:find-system :next))))' \
--eval '(uiop:quit)'


.PHONY: install-assets
install-assets: version
mkdir -p "$(DESTDIR)$(DATADIR)/applications/"
Expand All @@ -117,16 +98,12 @@ install-next: next
install:
install:
ifeq ($(UNAME), Linux)
install: install-next install-gtk-webkit install-assets
install: install-next install-assets
endif
ifeq ($(UNAME), Darwin)
install: install-app-bundle
endif

.PHONY: clean-port
clean-port:
rm -rf build

QUICKLISP_URL = https://beta.quicklisp.org/quicklisp.lisp
DOWNLOAD_AGENT = curl
DOWNLOAD_AGENT_FLAGS = --output
Expand Down Expand Up @@ -177,14 +154,10 @@ test: $(lisp_files)
--eval '(ql:quickload :next)' \
--eval '(uiop:quit)'

# Usage: make VERSION=1.x.y release
release:
./build-scripts/release.sh $(VERSION)

.PHONY: clean-deps
clean-deps:
rm -rf quicklisp.lisp
rm -rf $(QUICKLISP_DIR)

.PHONY: clean
clean: clean-fasls clean-port clean-deps
clean: clean-fasls clean-deps
9 changes: 0 additions & 9 deletions README.org
Original file line number Diff line number Diff line change
Expand Up @@ -60,15 +60,6 @@ systems provide packages for Next:

To perform an installation from source, please see the [[https://github.com/atlas-engineer/next/tree/master/documents][developer readme]].

If you want to use the Qt Webengine/Blink platform port, you currently
have to build it from source.

- Download a Qt Webengine archive [[https://next.atlas.engineer/static/release/next-pyqt-webengine.tar.gz][here]]. Once you have extracted it,
run the =next-pyqt-webengine= binary.
- Download a GNU/Linux Debian binary of the Lisp core [[https://gitlab.com/atlas-engineer/next/pipelines?scope=all&page=1][on our CI system
here]] (you have to download the build artifacts), and run it with
=./next=.

** Quickstart keys

- ~C-l~: Load URL in tab
Expand Down
Binary file removed assets/indiegogo-logo-small.png
Binary file not shown.
Binary file removed assets/patreon-25x.png
Binary file not shown.
17 changes: 0 additions & 17 deletions build-scripts/next.ros

This file was deleted.

38 changes: 0 additions & 38 deletions build-scripts/release.sh

This file was deleted.

20 changes: 0 additions & 20 deletions debian/README.org

This file was deleted.

9 changes: 0 additions & 9 deletions debian/changelog

This file was deleted.

1 change: 0 additions & 1 deletion debian/compat

This file was deleted.

28 changes: 0 additions & 28 deletions debian/control

This file was deleted.

1 change: 0 additions & 1 deletion debian/copyright

This file was deleted.

22 changes: 0 additions & 22 deletions debian/rules

This file was deleted.

8 changes: 4 additions & 4 deletions documents/CHANGELOG.org
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ MAJOR.MINOR.PATCH, we increment the:
** DONE 1.4.0
- CLOS-style configuration.
This simplifies setting the default slots of the various classes (=buffer=,
=window=, =remote-interface=, =minibuffer=, etc.). In particular, the
=window=, =interface=, =minibuffer=, etc.). In particular, the
user-specialized (or extension-specialized) classes can in turn be composed to
form a new specialized classes.

Expand Down Expand Up @@ -176,12 +176,12 @@ See the manual for examples.
#+end_src

+ Bookmark can have search engines.
~remote-interface~ search engines and bookmark search engines are
~interface~ search engines and bookmark search engines are
automatically merged.

+ Bookmarks can be stored and restored in a customizable format.

See the ~bookmarks-store-function~ and ~bookmarks-restore-function~ in ~remote-interface~.
See the ~bookmarks-store-function~ and ~bookmarks-restore-function~ in ~interface~.

- Password manager. (Thanks to Solomon Bloch.)

Expand Down Expand Up @@ -232,7 +232,7 @@ See the manual for examples.
- Downcase command name in =execute-command=.

- Move the ~search-engines~ slot from the ~window~ class to the
~remote-interface~ class.
~interface~ class.

- Rename ~new-buffer~, ~new-window~ and ~make-visible-new-buffer~ to
~make-buffer~, ~make-window~ and ~make-buffer-focus~.
Expand Down
Loading