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

CLOS release #338

Merged
merged 39 commits into from
Nov 27, 2018
Merged

CLOS release #338

merged 39 commits into from
Nov 27, 2018

Conversation

vlad-km
Copy link
Member

@vlad-km vlad-km commented Nov 25, 2018

For review and discusses.

  • The directory src\clos contains source code files
  • The directory src\clos\closette contains the original code CLOSETTE for comparison
  • The file tests\clos.lisp contains test cases
  • For more information see release-note.md
  • Added file repl-web\drepl.lisp. This is a demo version REPL using CLOS
  • Known bugs and problems are described in b&p.md

Thanks.

@vlad-km
Copy link
Member Author

vlad-km commented Nov 25, 2018

Hm. The CCL compiler doesn't even notice.

#<THREAD "main thread" RUNNING {1002D76AB3}>: Lock on package COMMON-LISP violated when defining (SETF SLOT-VALUE) as a function while in package JSCL.

1. Problem with return value from  (setf (slot-value ..) val)
2. Remove function (defun (setf slot-value) ...) to methods.lisp. CCL
ignore this, but SBCL raise ERROR
1. moved from std-object.lisp
2. dumb impl, only for local used, but not standard function
Remove problem with SLOT-VALUE
std-object compilation mode :both
- SBCL raise error
- CCL ignore it
@vlad-km
Copy link
Member Author

vlad-km commented Nov 25, 2018

@davazp, what do we do ?
ClozureCL compiles without problems.

@davazp
Copy link
Member

davazp commented Nov 25, 2018

Thanks for this! I'll have a look to the PR tomorrow.

In the meantime, looking only at your description I'd suggest few things:

The directory src\clos contains source code files
The directory src\clos\closette contains the original code CLOSETTE for comparison

Could you make one commit with the original closette code, and then make your changes on top of them? I don't see a reason to have src/clos/closette/ for reference, the code would already be in the git history. And it would be easier to see diffs by comparing commits to the original closette commit. We could add a git tag to it as well if needed.

Added file repl-web\drepl.lisp. This is a demo version REPL using CLOS

CLOS is available in the ordinary repl as well right? If so, I'd probably remove drepl. We can probably write a better example and move it to a examples/ directory, to separate it from the implementatio ncode.

@vlad-km
Copy link
Member Author

vlad-km commented Nov 26, 2018

Could you make one commit with the original closette code, and then make your changes on top of them?

Understand. I submitted a develop version for discussion. Sorry.

Could be.

But it will take time. I can not estimate now.

For discuss: Im think that in the directory clos there should be two files (minimum):

  • closette.lisp - base code (utils / object / generic / method). Compilation mode:both
  • bootable.lisp - standard classes bootstrap / macro / standard methods. Compilation mode - :target

Git tags don't interest me. This is not a project style.

I'd probably remove drepl.

Remove, please. I do not mind. This is just an not best example :)

@vlad-km
Copy link
Member Author

vlad-km commented Nov 26, 2018

@davazp

Cit from last travis listing:

debugger invoked on a SB-EXT:PACKAGE-LOCKED-ERROR in thread
#<THREAD "main thread" RUNNING {1002D76AB3}>:
Lock on package COMMON-LISP violated when interning (SETF SLOT-VALUE) while
in package JSCL.
See also:
The SBCL Manual, Node "Package Locks"
The ANSI Standard, Section 11.1.2.1.2

Can we fix this somehow? What compilation modes can set? ClozureCL compiles this code without problems. SBCL is probably a great compiler, but I will never know this. Syntactically, I are not close with him.

Maybe use DEFSETF and !DEFGENERIC/!DEFMETNOD?

What suggestions?

@vlad-km
Copy link
Member Author

vlad-km commented Nov 26, 2018

No bad.

build standard mop hierarhy
elapsed time:0.078 sec.
compile standard clos methods!
elapsed time:0.063 sec.
loading toplevel.lisp!
Finished. The execution took 0.53 seconds.
All the tests (1158) passed successfully.

defsetf :)

@davazp
Copy link
Member

davazp commented Nov 27, 2018

Great job! Thank you very much, I'll make the suggested modifications myself and merge it :-)

@davazp davazp merged commit 49945e3 into jscl-project:master Nov 27, 2018
@davazp
Copy link
Member

davazp commented Nov 27, 2018

The pull request is now merged!

I tagged and release version 0.7.0
https://github.com/jscl-project/jscl/releases/tag/v0.7.0

and the new build is available in the website
https://jscl-project.github.io/

Again, thanks for this @vlad-km!

@fstamour
Copy link

Wow, amazing work!

@vlad-km
Copy link
Member Author

vlad-km commented Nov 28, 2018

@davazp

Thanks!

@vlad-km vlad-km deleted the vkm-mop-release branch May 13, 2021 11:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants