Fri 27 Jan 2017 01:17:25 AM UTC, comment #14:
How long have you used Emacs for?
I have known it for 20 years and in my experience, it is well worth the time it takes to learn to program in Emacs Lisp. See my website for all of the weird and wonderful Emacs code that I have written over those 20 years.
Happy Hacking, fellow hacker! :-)
|
Thu 26 Jan 2017 03:11:36 PM UTC, comment #13:
I try to use Emacs for almost everything I do, but I am a novice-- more comfortable in the shell for now (within an Emacs buffer, of course).
I forgot that `yes' is indeed a command; good to use, since I agree with the installers defaults; re:
I've taken a look at your book, just now: Good choice of license; very intriguing topics; and I think the way LaTeX is used to typeset your code and other text makes the book much easier to read, too-- makes me want to brush up on LaTeX. Both J.T.W. and Lisp++ are very appealing to me, so I will definitely read this during my spare time. Thanks for the links!
I will hit up the mailing list if I need any help, or have any questions or feedback about your book, as well as J.T.W.
Just thought you should know that I have bookmarked your website, a very good resource for computing and research, in general.
Once again, Davin: Excellent work!
|
Thu 26 Jan 2017 06:44:14 AM UTC, comment #12:
How about my book... have you read it? The first part of it deals with J.T.W. and the second part of it deals with Lisp++,
a new programming language that I have developed to make it easier to program in C++.
Here is the front and back cover of the book:
and here is the book itself:
|
Thu 26 Jan 2017 06:34:48 AM UTC, comment #11:
How about this version:
|
Thu 26 Jan 2017 06:26:24 AM UTC, comment #10:
Are you using GNU Emacs as your editor for *.jtw code?
If not, then execute the following command from the folder java-training-wheels:
+verbatim
yes | bash configure
-verbatim
while logged in as your normal user account (NOT root)
+verbatim
http://davinpearson.com/binaries/both-sides6-20170126-142358.pdf
-verbatim
and
+verbatim
http://davinpearson.com/binaries/book6-20170126-141011.pdf
-verbatim
|
Wed 25 Jan 2017 02:40:08 AM UTC, comment #9:
Excellent work, Davin!
I just tested it-- can't wait to use this. I think you can officially close this bug, now.
Keep up the good work!
Ps
I'd like to send any future feedback I might have to a mailing list, if possible. Let me know if you need any help setting it up.
|
Wed 25 Jan 2017 01:20:44 AM UTC, comment #8:
Thanks for your bugfix re:
(setq dlisp-dir (format "%s/dlisp" (getenv "PWD")))
(setq load-path (cons dlisp-dir load-path))
The latest tarball (http://davinpearson.com/binaries/java-training-wheels.tar.gz) provides support for file inclusion.
You simply write:
include "foo.function"
in your J.T.W. file. It checks for infinite loops in the file inclusion process.
Sorry for taking so long to respond to you. I was hard at work debugging the J.T.W. system!
|
Tue 24 Jan 2017 03:36:36 PM UTC, comment #7:
Thanks for the update!
One minor bug when installing, though:
The first line of code from jtw-install-and-uninstall.el assumes that I already have the dlisp directory installed in my home directory, when I have yet to install jtw:
Since I know that the dlisp directory is in the same directory as your configure script from a freshly extracted tarball, I replaced the above line of code in jtw-install-and-uninstall.el with the following (i.e. I used the present-working-directory variable from the shell environment, $PWD, to help set dlisp-dir):
After this modification, your installer worked and gave me a working jtw system.
Could you add the previous 2 lines of code to your current jtw that you are working on?
|
Tue 24 Jan 2017 07:05:46 AM UTC, comment #6:
Try downloading the latest http://davinpearson.com/binaries/java-training-wheels.tar.gz
It contains numerous bug-fixes and should hopefully work on both GNU/Linux and Windows.
Currently file inclusion doesn't work and I will spend the remainder of this week working on this.
|
Fri 13 Jan 2017 03:03:42 AM UTC, comment #5:
Hello, Davin:
I'm glad I was able to help you improve your software! Funny thing about bugs, though: Squash one, and sometimes, another pops up in it's place. The last tarball I installed worked with only one trivial error; however, your latest tarball does not work on GNU/Linux and has a new non-trivial error for me (detailed below):
=== Thoughts ===
Bugs... such persistent digital creatures. Please don't fret, though! I'm not on a time limit to learn Java, so take your time with this one ;-)
I did notice that your system now echoes which program it is operating on (e.g. Welcome to jtw-build-class-db.el)-- which is a good thing-- when trying to compile `jtw' files, and if I was proficient with elisp I would provide further help on the matter; alas, sending a bug report is the best that I can do right now-- will learn it, eventually :-)
Forgive me if I am out-of-bounds, but I must ask: Are you developing jtw on Windows? If so, are you using Cygwin or MinGW? On the premise that you are using Windows (correct me if I'm wrong): I suggest that you should test your software on Windows (optional) and, more importantly, on GNU/Linux (required)-- just to ensure that your software works on both systems, since Cygwin and MinGW might not provide you an equivalent environment as GNU/Linux.
=== Debugging GNU programs on GNU ===
To reinforce the above, I'm quoting Stallman from his GNU Maintainers Guide-- specifically, chapter 8 (Platforms to Support):
> It is important to test the program personally on GNU or GNU/Linux,
> because these are the most important platforms for a GNU package. If
> you don't have access to one of these platforms, as a GNU maintainer you
> can get access to the general GNU login machine; see
> <http://www.gnu.org/software/README.accounts.html>.
In essence, debugging on MinGW or Cygwin in order to ensure that it works on GNU/Linux may not be enough. You might have to request the GNU hackers to provide you with a fencepost account, so that you can debug jtw on a GNU machine, hence ensuring that you can debug your program so that it works on GNU (the main platform that GNU programs should work on, anyway).
=== Version Control ===
I know I'm making a lot of suggestions, but this one has some merit, too. You should, if not already, consider version controlling your software. GNU Savannah allows you to use several different version control platforms for maintaining your software. I personally find it useful, even as a novice, because I can identify when which code was added to my programs or someone else's programs.
I find it more convenient than reading through a lengthy ChangeLog (although still important), because I can just click on a file in a repository and start tracking changes that were made to it. Right now, there is no code repository online for jtw. Sometimes new changes to a program can introduce new bugs (as is the case here), and a version control system could allow potential contributors to track the bug from a previous working version of a program, and hence correct it before the bug grows into a bigger problem (which could happen if a bug goes unnoticed for a long time).
=== Happy Hacking ===
I wanted to end this report on a good note. Please don't get upset that there are more bugs in your software. My software has bugs, too. The reason why I'm in a good mood, is because at least I have the freedom to study your software and learn more. If the program was nonfree, then I'd really be helpless and hence would be in a bad mood (thankfully, not the case). Please consider everything I mentioned above, though-- especially the part about debugging on GNU, which is very important for a GNU Maintainer.
So, last but not least... Good luck, and happy hacking!
|
Thu 12 Jan 2017 07:54:11 AM UTC, comment #4:
Hi Michael Pagan,
Thank you for your feedback regarding my Java Training Wheels system. Your feedback has helped me to improve the system.
I have just finished debugging my jtw to java converter.
As before, executing "make clean" causes the database of class properties/methods/functions/classVars to be built. The database is located in the following file: class-db.el
This is used by the jtw to java converter to produce diagnostic error messages suitable for the source file.
To activate my latest version of java-training-wheels.tar.gz, you need to visit davinpearson.com/binaries and click on java-training-wheels.tar.gz link.
|
Thu 05 Jan 2017 02:45:04 AM UTC, comment #3:
Thank you! It works like a charm, now. I am curious, though, why I get a `class-db.el' file when I issue make clean MyFirstProgram.run versus make MyFirstProgram.run? It says not to edit at the top of the file; is it important?
== As for the status of the bugs ==
- Bug 1-- SOLVED; however, there are some remnants of unnecessary code (I'll explain) which did not work in the last tarball I used (which is why in my patch I deleted them)
- Bug 2-- SOLVED
- Bug 3-- PENDING; J.T.W. shows the same output as before. It doesn't bother me, but it should be fixed when you make your next release in your software's Download Area on GNU Savannah. I only say this, because it might confuse new users of your software.
== Some remnant code was found ==
The remnant code I mentioned before is on Line 346 to 349 in your latest version of jtw-install-and-uninstall.el.
Changing the following from what you currently have,
To something like this...
... will still yield a working J.T.W.. Although I may not be an expert at elisp, I do understand the original inclusion of (forward-line 35), which is to go to the exact position where the PREFIX variable is defined, and then (insert[...]) would insert the new value; however, (replace-match[...]) already accomplishes the same mission as both forward-line and insert, except in a more efficient manner (i.e. you don't need to tell emacs exactly which line PREFIX is on, which could change in the future if you add more code to your Makefile) and in only a single line of code.
I use GNU Sed very frequently, so I thought a REGEX solution would be best (i.e. "PREFIX=.*"). What do you think about it?
== Creating a mailing list ==
I would follow Savannah's maintenance docs on this:
http://savannah.gnu.org/maintenance/MailingListCreation/
You have to hover your mouse over the Mailing Lists link on your project development page in order to get a drop-down menu that reveals the Configure: link, or you can click here. You can create a jtw-help mailing list for users like me; jtw-bugs (optional), if you want users to verify with you first if something is really a bug or not before they submit it to a bug tracker. I will post on your mailing list-- as soon as it's setup-- if I need any help or have any questions.
It's one of my new year's resolutions to learn Java, so thank you for the bugfixes and for creating GNU J.T.W.!
|
Thu 05 Jan 2017 01:04:37 AM UTC, comment #2:
As per the instructios in the tutorial, you need to execute the following Makefile targets:
make clean MyFirstProgram.run
What is the status of the three bugs that you found in my code?
Have they vanished?
|
Thu 05 Jan 2017 12:57:43 AM UTC, comment #1:
Thank you for your interest in my project.
I believe that I have fixed the three bugs that you mentioned in your submission to me. Try going to davinpearson.com/binaries
and downloading java-training-wheels.tar.gz
How do I go about creating a mailing list?
|
Tue 03 Jan 2017 02:43:37 AM UTC, original submission:
Greetings, fellow hacker:
First off, congratulations on getting J.T.W. accepted as a GNU project! I downloaded your software, because I wanted to learn Java in a comfortable manner. I encountered 3 bugs, however:
- PREFIX dir is not setup properly
- Once PREFIX dir is setup properly, however, I can not compile ~/jtw-tutorials/MyFirstProgram.jtw; perhaps you can enlighten me, ;-)
- Uninstalling via sudo make uninstall ends in an error, although successful
Bug 1
J.T.W. assumed that I was on Windows, when I'm actually using GNU/Linux. This is depicted by the following output:
Seeing that this is a GNU program, I decided to go the extra mile and patch this bug in java-training-wheels/install-stuff/jtw-install-and-uninstall.el. Without the patch, the PREFIX variable directory is setup on Windows by default, but not on GNU/Linux (usually the reverse is true). I've also added lexical scope binding so that the prefix variable is considered a buffer local variable. I added lexical scoping, because I experienced the following emacs error after installing J.T.W.:
After applying the patch and re-installing per the README.txt file, the error went away and I even received some extra feedback after the install that I did not see before (as noted below):
Attached is a patch file for this fix; when applying this patch, you must be inside your install-stuff directory.
Bug 2
This is the bug I would like to be fixed the most, so that I can compile .jtw files; however, I am not an expert at elisp (I barely managed to patch J.T.W.). The following output represents my attempt at compiling MyFirstProgram.jtw per the instructions of Tutorial 1:
I have no idea of what's really going on here, but the emacs debugger has flagged the routine, (cl-assertion-failed (read-ready str)), as the culprit. This is out of my league here, so I'm requesting assistance in correcting this bug.
Bug 3
This bug is very trivial in my eyes, and does not really affect the user. The uninstall script throws an Error 255 upon a successful uninstall, but I don't know why? This is what I see:
Last thing to note
There is no mailing list for J.T.W.; can you add one? That way, all correspondences between you and the users of J.T.W. can be made public and can further encourage a community to form around J.T.W. hence creating more support. Said support could decrease the amount of work you'll have to do in the long run as a GNU Maintainer, since you'll have a community as your team.
|