emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/geiser-kawa ad862b1 090/119: Update README.org, TODO.org


From: Philip Kaludercic
Subject: [nongnu] elpa/geiser-kawa ad862b1 090/119: Update README.org, TODO.org
Date: Sun, 1 Aug 2021 18:30:44 -0400 (EDT)

branch: elpa/geiser-kawa
commit ad862b11e18d67ac62905a3847b0e94306ee6003
Author: spellcard199 <spellcard199@protonmail.com>
Commit: spellcard199 <spellcard199@protonmail.com>

    Update README.org, TODO.org
---
 README.org |  2 ++
 TODO.org   | 33 +++++++++++++++++++++++++++++----
 2 files changed, 31 insertions(+), 4 deletions(-)

diff --git a/README.org b/README.org
index ad13a7e..932f5a2 100644
--- a/README.org
+++ b/README.org
@@ -69,6 +69,8 @@ Double quotes around parameters: the reason why the arguments 
are enclosed in do
 
 Parameter names: parameter names are retrieved using the =gnu.bytecode= 
package (included in Kawa) for reading local variables in Java methods' 
bytecode. Since parameters are not always present in bytecode as local 
variables, especially for java, when not available the parameter name defaults 
to =argN=, where =N= is a number.
 
+[[https://gitlab.com/kashell/Kawa/-/blob/master/gnu/kawa/lispexpr/LangObjType.java][LangObjType
 objects]]: these are special objects that may behave like procedures. When 
these are called as procedures, a constructor java method is called. This 
method does not have the same name as the symbol you insert in Kawa, so I 
decided that it was a good idea to show the method name as part of the 
displayed module, preceded by a colon. I don't know if it's a good idea, but it 
would be easy to chang [...]
+
 ** About completion for java's fields, methods and packages
 :PROPERTIES:
 :CUSTOM_ID:       7ca3650a-2658-42f0-8274-96f194768e11
diff --git a/TODO.org b/TODO.org
index 8cd53b0..9446d2c 100644
--- a/TODO.org
+++ b/TODO.org
@@ -3,8 +3,7 @@
 Since =geiser-kawa= limits itself to ask =kawa-devutil= for data and then wrap 
it in geiser's protocol, most of the bugs are actually in =kawa-devutil=.
 
 - Completion for Java is often broken
-- Autodoc when using colon notation on Java methods doesn't show all the 
alternatives
-- Evaluation should not capture Java's output by default, only Kawa's: I wrote 
it this way because at the time I was convinced it was a feature, but then I 
realized it's bad design
+- Autodoc when using colon notation on Java methods doesn't show all the 
alternatives (I can't find again examples of where it happened though)
 - Fix kawa-devutil issues
 
 ** Add elisp tests, find bugs, fix them
@@ -23,8 +22,6 @@ Write tests for these:
 
 ** Write melpa recipe and put on melpa
 
-There are still obvious bugs that need to be fixed before the quality of the 
package becomes sufficient for melpa.
-
 I tried to make a melpa recipe and it seems to work. Here are the instructions 
to reproduce it.
 
 #+BEGIN_SRC shell
@@ -62,3 +59,31 @@ Test that it works:
 2. =geiser-kawa-java-find-pc--cache=
 3. =geiser-kawa-java-find-pc-refresh-cache=
 3. =geiser-kawa-java-find-pc (&optional classloader-list)=
+
+** Add mechanism to inject kawa-geiser into running remote REPL
+
+It may be useful in cases where the user wants to have =Kawa= but not 
=kawa-geiser= as an actual dependency for her/his project, while still being 
able to use geiser-kawa. For example, for live inspection of a running java 
application.
+
+Is it possible to do it in a fileless way on the targe machine? Kawa does load 
classes without files. Learn how Kawa does it and if it's possible to:
+1. Create a new ClassLoader in the Kawa remote repl
+2. For each .class file in the =kawa-geiser= fat jar:
+     1. Encode .class file to base64 string
+     2. Send base64 string via the geiser connection
+     3. Decode base64
+     4. Add to ClassLoader
+3. Import and use =geiser= in the scheme environment directly from our 
ClassLoader
+
+** Consider if it's a good idea to write functions to download and uncompress 
kawa manual from ftp://ftp.gnu.org/pub/gnu/kawa/kawa-latest.zip
+
+Message could be something like: do you want to download and extract a copy of 
the manual from unsecure connection ... (file integrity will be checked with 
sha265 however)?
+
+Current sha256sum for ftp://ftp.gnu.org/pub/gnu/kawa/kawa-3.1.1.zip: 
dab1f41da968191fc68be856f133e3d02ce65d2dbd577a27e0490f18ca00fa22
+
+#+BEGIN_SRC emacs-lisp
+(defun sha256-of-file(file-path)
+  (secure-hash
+   'sha256
+   (with-temp-buffer
+     (insert-file-contents file-path)
+     (buffer-substring-no-properties (point-min) (point-max)))))
+#+END_SRC



reply via email to

[Prev in Thread] Current Thread [Next in Thread]