{"id":13466952,"url":"https://github.com/sharplispers/cormanlisp","last_synced_at":"2025-03-26T00:31:48.264Z","repository":{"id":25368272,"uuid":"28796243","full_name":"sharplispers/cormanlisp","owner":"sharplispers","description":"Corman Lisp","archived":false,"fork":false,"pushed_at":"2019-03-21T13:58:37.000Z","size":24053,"stargazers_count":570,"open_issues_count":19,"forks_count":78,"subscribers_count":71,"default_branch":"master","last_synced_at":"2024-10-29T20:34:02.274Z","etag":null,"topics":["common-lisp","ide"],"latest_commit_sha":null,"homepage":null,"language":"Common Lisp","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sharplispers.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.OpenSSL.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-01-05T03:44:29.000Z","updated_at":"2024-10-27T21:55:42.000Z","dependencies_parsed_at":"2022-08-24T04:31:22.574Z","dependency_job_id":null,"html_url":"https://github.com/sharplispers/cormanlisp","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sharplispers%2Fcormanlisp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sharplispers%2Fcormanlisp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sharplispers%2Fcormanlisp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sharplispers%2Fcormanlisp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sharplispers","download_url":"https://codeload.github.com/sharplispers/cormanlisp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245566099,"owners_count":20636391,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["common-lisp","ide"],"created_at":"2024-07-31T15:00:51.728Z","updated_at":"2025-03-26T00:31:43.248Z","avatar_url":"https://github.com/sharplispers.png","language":"Common Lisp","funding_links":[],"categories":["Common Lisp","Miscellaneous ##"],"sub_categories":[],"readme":"# Corman Lisp\n\nThis is the open-source source release of Corman Lisp. The canonical\nhome of this release is https://github.com/sharplispers/cormanlisp.\n\nFrom the [Corman Lisp 'Features' page](http://www.cormanlisp.com/features.html):\n\n\u003e Corman Lisp is a Common Lisp development environment for Microsoft Windows operating systems running on Intel platforms. Corman Lisp consists of a Common Lisp native code compiler for Intel processors, 80x86 assembler and disassembler, incremental linker and multi-window text editor. It requires a system running a Microsoft Windows operating system (such as Windows XP, Windows 2000, Windows ME or Windows NT). It is fully integrated with the Win32 API, and all the Windows API functions are readily available from Lisp.\n\n\u003e Corman Lisp incorporates state-of-the-art compiler technology to bring you a Common Lisp system unmatched on Windows platforms.\n\nCorman Lisp works on Windows XP SP3 and newer. It is also reported to [work on Linux via Wine](https://appdb.winehq.org/objectManager.php?sClass=application\u0026iId=4751).\n\n## Source release history\n\nIn June 2013, Zach Beane contacted Roger Corman about the future of\nCorman Lisp. Roger replied:\n\n\u003e Hi Zach,\n\n\u003e Thanks for your interest in Corman Lisp. I have been unable to\n\u003e commit any resources to developing Corman Lisp for the last couple\n\u003e of years. I would be willing to convert it to open source, and let\n\u003e others take it over, as I don't expect to be able to get back to\n\u003e it any time soon. [...]\n\n\u003e I see two primary issues at this point. First, the Corman Lisp\n\u003e kernel needs to be built with Visual Studio 2005, which is an old\n\u003e version of VS. At one point I built it with VS2008 and it built\n\u003e and ran, but some problem with the FFI caused applications saved,\n\u003e and the IDE, to have problems. This type of thing is fairly common\n\u003e as Microsoft makes subtle changes to the code generation of their\n\u003e C compiler, which in turn affects the Lisp kernel which has very\n\u003e tight rules about how it expects its code to look. I did a lot to\n\u003e reduce the kernel (move things from the kernel to Lisp code, which\n\u003e is then compiled safely), but did not fully resolve the VS 2008\n\u003e issues. Now there is VS 2010 and 2012, and I never tried building\n\u003e with either of those. In general I find each newer version of VS\n\u003e is worse for native C/C++ debugging, as .NET has become\n\u003e Microsoft's primary platform for new software.\n\n\u003e The other issue is running on 64-bit OS. Again, the FFI misbehaves\n\u003e when you have saved an application, or just doing a bunch of FFI\n\u003e stuff in an application. It is something to do with GC and the\n\u003e 64-bit support for running 32-bit applications (which is what CL\n\u003e is). It could be related to the same issue as I encountered with\n\u003e building under VS2008.\n\u003e\n\u003e Tracking down this problem is difficult.\n\u003e\n\u003e Regarding converting to a full 64-bit Lisp, this would be a much\n\u003e bigger effort. Corman Lisp gets such good performance by a large\n\u003e amount of hand-optimized x86 assembly code. This would all have to\n\u003e be rewritten/replaced in a 64-bit Lisp.\n\u003e\n\u003e When Corman Lisp was first developed in the late 90s, there was\n\u003e really no competition on Windows platforms. Franz only had a\n\u003e 16-bit Lisp they were selling, and not really taking the Windows\n\u003e market seriously. Mac Common Lisp was on 680x0 and later PowerPC\n\u003e but didn't get to Windows for a very long time, and LispWorks\n\u003e didn't support Windows until much later. Now I think most all of\n\u003e those have good implementations on Windows (though only MCL is\n\u003e free). I have used Allegro extensively for a large contract with\n\u003e SRI and I see the value of a mature cross-platform system like\n\u003e they have. It is however extremely expensive, and developing\n\u003e applications for distribution requires lots of negotiation and\n\u003e per-license payments to Franz. Corman Lisp still has some\n\u003e advantages, I think--it is really a good hackers Lisp, when you\n\u003e want to easily get down into the assembly level, or in the guts of\n\u003e the compiler, to do almost anything. You have the power of Lisp to\n\u003e do those things with macros and a nice high-level dynamic\n\u003e environment.\n\u003e\n\u003e I definitely want to see it live on, so am open to whatever\n\u003e enables that. I don't currently derive any significant income from\n\u003e it so that's not a concern for me.\n\nIn January 2015, Roger Corman agreed to release the Corman Lisp\nsources under the MIT license. He added:\n\n\u003e Going forward with the code, I would probably say that the first\n\u003e step is getting the kernel (Corman Lisp server) to compile using a\n\u003e new version of MS Visual Studio (such as VS2012 or VS2013)--it was\n\u003e last compiled with VS2005. I tried at one point to get it to build\n\u003e with VS2008 (and I think the project files are still there) but\n\u003e ran into some bugs and didn't resolve them.\n\u003e\n\u003e Getting the kernel to compile properly and the GC and FFI to work\n\u003e properly is tricky. The kernel is very sensitive to the generated\n\u003e code, and you pretty much have to disable all optimizations (since\n\u003e the GC depends on things like proper stack frames and the various\n\u003e code patterns when it is looking for references). The Makefiles\n\u003e and project files should have the settings set correctly (for\n\u003e VS2005) but newer compiler versions try to add new sophisticated\n\u003e optimizations, which then causes new issues.\n\u003e\n\u003e Turning off optimizations shouldn't really negatively affect\n\u003e performance, as most of the kernel code gets replaced by compiled\n\u003e Lisp code during the build process. Some functions don't, however\n\u003e (the kernel code generator, for instance) and these are probably\n\u003e the source of the compiled code sensitivity.\n\nRoger provided the source code for Corman Lisp to Zach, who updated\nthe license information and posted the code to github.\n\n**N.B.**\n\nThe problem which was reported by Roger was resolved. Current versions\nof Corman Lisp support modern, 64-bit versions of Windows.\n\n## Support\n\nThis source release of Corman Lisp is not officially supported,\ncommercially or otherwise. For discussion of this source release of\nCorman Lisp, see the unofficial [Corman Lisp mailing\nlist](https://groups.google.com/d/forum/cormanlisp).\n\n\n## License Information\n\nNearly all of the code is originally by Roger Corman. There are some\ncontributions from Vassili Bykov and Reini Urban. With their explicit\nconsent, their code is available under the MIT license:\n\n      Permission is hereby granted, free of charge, to any person obtaining\n      a copy of this software and associated documentation files (the\n      \"Software\"), to deal in the Software without restriction, including\n      without limitation the rights to use, copy, modify, merge, publish,\n      distribute, sublicense, and/or sell copies of the Software, and to\n      permit persons to whom the Software is furnished to do so, subject to\n      the following conditions:\n\n      The above copyright notice and this permission notice shall be\n      included in all copies or substantial portions of the Software.\n\n      THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n      EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n      MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n      NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n      LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n      OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n      WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nSome code is provided by Chris Double. It is available under the\nfollowing terms:\n\n      This software is provided 'as-is', without any express or implied\n      warranty. In no event will the author be held liable for any damages\n      arising from the use of this software.\n     \n      Permission is granted to anyone to use this software for any purpose,\n      including commercial applications, and to alter it and redistribute\n      it freely, subject to the following restrictions:\n     \n      1. The origin of this software must not be misrepresented; you must\n         not claim that you wrote the original software. If you use this\n         software in a product, an acknowledgment in the product documentation\n         would be appreciated but is not required.\n     \n      2. Altered source versions must be plainly marked as such, and must\n         not be misrepresented as being the original software.\n     \n      3. This notice may not be removed or altered from any source \n         distribution.\n     \nzlib is included under the following terms:\n\n      Copyright (C) 1995-2005 Jean-loup Gailly and Mark Adler\n\n      This software is provided 'as-is', without any express or implied\n      warranty.  In no event will the authors be held liable for any damages\n      arising from the use of this software.\n\n      Permission is granted to anyone to use this software for any purpose,\n      including commercial applications, and to alter it and redistribute it\n      freely, subject to the following restrictions:\n\n      1. The origin of this software must not be misrepresented; you must not\n         claim that you wrote the original software. If you use this software\n         in a product, an acknowledgment in the product documentation would be\n         appreciated but is not required.\n      2. Altered source versions must be plainly marked as such, and must not be\n         misrepresented as being the original software.\n      3. This notice may not be removed or altered from any source distribution.\n\n      Jean-loup Gailly        Mark Adler\n      jloup@gzip.org          madler@alumni.caltech.edu\n\n*diStorm* dissassembly engine is distributed under the following terms:\n\n    diStorm4\n    The ultimate disassembler library.\n    Copyright (c) 2003-2016, Gil Dabah\n    All rights reserved.\n\n    Redistribution and use in source and binary forms, with or without\n    modification, are permitted provided that the following conditions are met:\n    1. Redistributions of source code must retain the above copyright\n       notice, this list of conditions and the following disclaimer.\n    2. Redistributions in binary form must reproduce the above copyright\n       notice, this list of conditions and the following disclaimer in the\n       documentation and/or other materials provided with the distribution.\n    3. All advertising materials mentioning features or use of this software\n       must display the following acknowledgement:\n       This product includes software developed by Gil Dabah.\n    4. Neither the name of Gil Dabah nor the\n       names of its contributors may be used to endorse or promote products\n       derived from this software without specific prior written permission.\n\n    THIS SOFTWARE IS PROVIDED BY Gil Dabah ''AS IS'' AND ANY\n    EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n    DISCLAIMED. IN NO EVENT SHALL Gil Dabah BE LIABLE FOR ANY\n    DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n    (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n    LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n    ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n    SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\nCertain code in the Modules/ and Libraries/ subdirectories carries\ndifferent licensing terms. See the individual modules and libraries\nfor details.\n\nThe Common Lisp HyperSpec(TM) is Copyright 1996-2005, LispWorks\nLtd. All Rights Reserved.  It is included under specific [conditions\nof\nuse](http://www.lispworks.com/documentation/HyperSpec/Front/Help.htm#Legal). It\nis complete and unmodified.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsharplispers%2Fcormanlisp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsharplispers%2Fcormanlisp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsharplispers%2Fcormanlisp/lists"}