-
Notifications
You must be signed in to change notification settings - Fork 1
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
Lparallel overhaul #16
Open
Ambrevar
wants to merge
50
commits into
master
Choose a base branch
from
lparalle-overhaul
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 34 commits
Commits
Show all changes
50 commits
Select commit
Hold shift + click to select a range
aa97b98
package: Fix typo in *debug-on-error* docstring.
Ambrevar 2503dd8
package: Add lpara nickname.
Ambrevar 00839a0
Replace Calispel with Lparallel.
Ambrevar 4e3132b
gitmodules: Remove Calispel.
Ambrevar 7450455
prompter.asd: Remove Calispel.
Ambrevar 558264e
tests: Move to Lparallel API.
Ambrevar c9c24b4
README: Add Roadmap section.
Ambrevar 42a019b
Fix performance issue.
Ambrevar e789105
Fix missing documentation for attribute-value and attributes-values.
Ambrevar 255a5f8
.github/workflows/tests: Enable ECL tests.
Ambrevar 6d92054
Fix ECL support.
Ambrevar 0a41ab5
tests: Remove spurious extra destroy.
Ambrevar 520d6f1
Nullify kernels on destroy.
Ambrevar c0c757b
tests: Clean up sources after use.
Ambrevar 333fc53
tests: Destroy prompter even on error.
Ambrevar 80563ca
tests: Increase timeout for slow ECL.
Ambrevar 1ca6cdb
tests: Fix error-handling test.
Ambrevar 97d6be2
tests: Add performance test.
Ambrevar ed91c92
Bufferize input.
Ambrevar 78d3a0d
Remove outdated comment.
Ambrevar c62bfb6
Re-allow interrupting prompters (with Lparallel this time).
Ambrevar dc5c776
Use define-generic wherever possible.
Ambrevar be0393d
Simplify initial-suggestions assignment.
Ambrevar b28d0ce
Use etypecase instead of manual type check.
Ambrevar 67b4cc6
Clarify comment on why we may need a new kernel for attributes.
Ambrevar 4c3346c
Bind processed suggestion properly.
Ambrevar 223132c
Clarify comment on `input-delay'.
Ambrevar ea2bba2
Fix result-channel type and docstring.
Ambrevar 2eeed30
Use return-from instead of manual block creation.
Ambrevar adda76e
Add random suffix to kernel name.
Ambrevar 9a6a254
Refactor `if' to `cond' in next-ready-p.
Ambrevar 9ced467
Move source prompter setting from `make' to `initialize-instance :aft…
Ambrevar ca652f9
Add `kernel' reader for `source'.
Ambrevar c2e586b
tests: Remove obsolete thread management.
Ambrevar f99056c
Fix some docstrings and comments.
Ambrevar f647217
Rename result-channel to `result' and add blocking accessor.
Ambrevar 4021fc0
Fix attributes-non-default docstring.
Ambrevar 3996087
Support extraneous elements in attributes.
Ambrevar d263b2d
Start computing attribute values immediately.
Ambrevar ab3866f
Use attribute-value in attribute-default.
Ambrevar b3a8b86
Add attribute-options and attributes-options.
Ambrevar b584c45
Fix kill right kernel in source' `destroy'.
Ambrevar 3c84707
Fix-wait for interrupted result future.
Ambrevar 1d89b9f
Export attribute-key and attributes-keys.
Ambrevar 19f2816
Fix ready-p documentation and remove writer.
Ambrevar cdef02f
Replace update-notifier with update-hook.
Ambrevar 870bd0d
gitmodules: Add nhooks.
Ambrevar 6dbee0d
Add funcall-with-delay.
Ambrevar 0023989
DRAFT: delayed-future.
Ambrevar 1f19271
CLEANUP
Ambrevar File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Submodule calispel
deleted from
e9f2f9
Submodule cl-jpl-util
deleted from
0311ed
Submodule jpl-queues
deleted from
b774d2
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -3,13 +3,15 @@ | |
|
||
(uiop:define-package :prompter | ||
(:use :common-lisp) | ||
(:import-from :nclasses #:define-class) | ||
(:import-from :nclasses #:define-class #:define-generic) | ||
(:import-from :serapeum #:export-always)) | ||
(in-package prompter) | ||
|
||
(eval-when (:compile-toplevel :load-toplevel :execute) | ||
(trivial-package-local-nicknames:add-package-local-nickname :alex :alexandria) | ||
(trivial-package-local-nicknames:add-package-local-nickname :sera :serapeum)) | ||
(trivial-package-local-nicknames:add-package-local-nickname :sera :serapeum) | ||
(trivial-package-local-nicknames:add-package-local-nickname :lpara :lparallel) | ||
(trivial-package-local-nicknames:add-package-local-nickname :lpara.queue :lparallel.queue)) | ||
|
||
(defmacro define-function (name args &body body) | ||
"Eval ARGS then define function over the resulting lambda list. | ||
|
@@ -21,6 +23,13 @@ All ARGS are declared as `ignorable'." | |
lambda-list-keywords))) | ||
,@body))) | ||
|
||
(defun slot-names (class-specifier) | ||
;; TODO: `slot-names' or `direct-slot-names'? | ||
#-ecl | ||
(mopu:slot-names class-specifier) | ||
#+ecl | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Actually, why? Seems like (defun class-slot-names (thing)
(let ((class (get-class thing)))
(if class
(mapcar 'mop:slot-definition-name
(mop:class-slots (finalize-class-if-necessary class)))
(progn
(warn "class for ~a not found)" thing)
nil)))) EDIT: highlightling. |
||
(mapcar #'c2mop:slot-definition-name (c2mop:class-slots (find-class class-specifier)))) | ||
|
||
(defun initargs (class-specifier) | ||
"Return CLASS-SPECIFIER initargs as symbols (not keywords)." | ||
(delete nil | ||
|
@@ -29,11 +38,7 @@ All ARGS are declared as `ignorable'." | |
(symbol-name | ||
(first (getf (mopu:slot-properties class-specifier slot) :initargs))) | ||
(symbol-package class-specifier))) | ||
;; TODO: `slot-names' or `direct-slot-names'? | ||
#-ecl | ||
(mopu:slot-names class-specifier) | ||
#+ecl | ||
(mapcar #'c2mop:slot-definition-name (c2mop:class-slots (find-class 'prompter)))))) | ||
(slot-names class-specifier)))) | ||
|
||
(defun exported-p (sym) | ||
(eq :external | ||
|
@@ -46,4 +51,4 @@ All ARGS are declared as `ignorable'." | |
(export-always '*debug-on-error*) | ||
(defvar *debug-on-error* nil | ||
"When non-nil, the Lisp debugger is invoked when a condition is raised. | ||
Otherwise all errors occuring in threads are demoted to warnings.") | ||
Otherwise all errors occurring in threads are demoted to warnings.") |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think that
slot-names
makes more sense since it includes slots in superclasses, which is exactly the way you did it :)