Coder Social home page Coder Social logo

vitovan / calm Goto Github PK

View Code? Open in Web Editor NEW
100.0 4.0 3.0 44.77 MB

Calm down and draw something, in Lisp.

Home Page: https://vitovan.com/calm/

License: GNU General Public License v2.0

Common Lisp 66.70% Shell 8.62% Batchfile 0.20% C 12.47% NewLisp 0.19% NSIS 2.08% AppleScript 1.24% PowerShell 1.17% JavaScript 1.83% HTML 5.52%
cairo lisp sdl2 gui calm appimage macos-app windows-installer

calm's Introduction

calm's People

Contributors

eltociear avatar vitovan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

calm's Issues

Normalization of `calm` commands

I propose the following changes in CALM:

  1. Make all user-related calm command on Windows Bash-free

    Windows users don't deserve the torment of Bash, they should suffer CMD or Powershell.

    If this were done, the sh folder could be renamed to s (as script).

  2. Organise the current calm command into the following form:

  • calm s

    Running internal scripts, this should not be exposed to the end-user, but should not prevent anyone using them either. But they are meant to be changed at anytime.

  • calm publish

    Publish the current CALM project into a fancy distributable package, i.e. AppImage / macOS Application inside DMG / Windows Installer

  • calm share

    Share the current CALM project as an ZIP file, with the following 2 options

    • calm share with no more arguments

      Generate *.calm file, it is actually just an ZIP file packed with canvas.lisp and assets + src directory if they exist alongside with canvas.lisp.

      This file should be easily opened on any CALM installed machine, there should be file-type associations if the OS has that kind of support.

    • calm share --with-runtime

      This command will generate an ZIP file contains all the 3rd party dependencies and a pre-dumped CALM image (from the sample application, without loading the current canvas.lisp). A warning should be shown to the user to inform that to make this method working, Quicklisp or any other 3rd party dependencies should not be used.

Except calm s, all the other end-user commands could be provided with an interactive shell, i.e. ask questions like 'What's the name of your app?'

Quicklisp installation?

I see CALM recently got added to QuickLisp (in the october release).

While the calm CLI obviously wouldn't be added to the path (unless added programmatically via eg uiop calling shell commands), is the Quicklisp distribution otherwise usable? And if so can we add a note in the README so that people know it's an option?

Install failure on windows 10

OS: Windows 10

What I did:

  1. Overcame windows defender warning
  2. Extracting calm.zip and moved calm directory to C:\calm .
  3. Added Path
  4. Opening windows terminal and typed calm.exe
  5. Installation starts, and stops with an error
Error opening shared object "SDL2_image.dll":
The specified procedure could not be found.

I ensured the dll's are present

C:\calm\lib\SDL2.dll
C:\calm\lib\SDL2_image.dll
C:\calm\lib\SDL2_mixer.dll

Here is the "complete" powershell output

LIB_PATH=C:\calm\lib
LIB_ENV=C:\calm;C:\calm\lib
CALM_CMD=core
inherited CALM_APP_DIR=C:\Users\sgraetz\
inherited CALM_HOME=C:\calm\
SBCL_HOME=C:\calm\sbcl\lib\sbcl
PATH=C:\calm;C:\calm\lib
EXECUTING:  "C:\calm\sbcl\bin\sbcl" --noinform --no-sysinit --no-userinit --load entry.lisp
To load "calm":
  Load 1 ASDF system:
    calm
; Loading "calm"
.....................While evaluating the form starting at line 8, column 0
  of #P"C:/calm/entry.lisp":

debugger invoked on a CFFI:LOAD-FOREIGN-LIBRARY-ERROR in thread
#<THREAD "main thread" RUNNING {10044B8113}>:
  Unable to load foreign library (LIBSDL2-IMAGE).
  Error opening shared object "SDL2_image.dll":
 The specified procedure could not be found.

Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.

restarts (invokable by number or by possibly-abbreviated name):
  0: [RETRY                        ] Try loading the foreign library again.
  1: [USE-VALUE                    ] Use another library instead.
  2: [TRY-RECOMPILING              ] Recompile library and try loading it again
  3: [RETRY                        ] Retry
                                     loading FASL for #<CL-SOURCE-FILE "sdl2-image" "library">.
  4: [ACCEPT                       ] Continue, treating
                                     loading FASL for #<CL-SOURCE-FILE "sdl2-image" "library">
                                     as having been successful.
  5:                                 Retry ASDF operation.
  6: [CLEAR-CONFIGURATION-AND-RETRY] Retry ASDF operation after resetting the
                                     configuration.
  7:                                 Retry ASDF operation.
  8:                                 Retry ASDF operation after resetting the
                                     configuration.
  9: [ABORT                        ] Give up on "calm"
 10: [REGISTER-LOCAL-PROJECTS      ] Register local projects and try again.
 11: [RETRY                        ] Retry EVAL of current toplevel form.
 12: [CONTINUE                     ] Ignore error and continue loading file "C:\\calm\\entry.lisp".
 13:                                 Abort loading file "C:\\calm\\entry.lisp".
 14:                                 Ignore runtime option --load "entry.lisp".
 15:                                 Skip rest of --eval and --load options.
 16:                                 Skip to toplevel READ/EVAL/PRINT loop.
 17: [EXIT                         ] Exit SBCL (calling #'EXIT, killing the process).

(CFFI::FL-ERROR "Unable to load foreign library (~A).~%  ~A" LIBSDL2-IMAGE "Error opening shared object \"SDL2_image.dll\":
 The specified procedure could not be found.")
   source: (ERROR 'LOAD-FOREIGN-LIBRARY-ERROR :FORMAT-CONTROL CONTROL
                  :FORMAT-ARGUMENTS ARGUMENTS)
0]

the zip version of CALM would require 1000+ steps to bypass apple's security measure

cannot be opened because the developer cannot be verified.
cannot be opened because the developer cannot be verified.
cannot be opened because the developer cannot be verified.
cannot be opened because the developer cannot be verified.
cannot be opened because the developer cannot be verified.
cannot be opened because the developer cannot be verified.
cannot be opened because the developer cannot be verified.
cannot be opened because the developer cannot be verified.
cannot be opened because the developer cannot be verified.
cannot be opened because the developer cannot be verified.
cannot be opened because the developer cannot be verified.
cannot be opened because the developer cannot be verified.
cannot be opened because the developer cannot be verified.

Maybe an app bundle could reduce 1000 to 1.

CALM sometimes refuses to start

The reason is not yet clear, maybe it's caused by the upgrade of Quicklisp or SBCL.

It has been solved by the following approach:

rm /Applications/Calm.app/Contents/MacOS/calm.core
rm -rf ~/.cache/common-lisp/sbcl-2.3.*

We could write this in the document, or provide some mechanism to prevent this?

Can't have white-space in the path of CALM

~/Downloads/calm-dmg/Calm - CALM/Calm.app/Contents/MacOS $ ./calm
CALM_CMD=show
APP_DIR=/Users/vito/Downloads/calm-dmg/Calm - CALM/Calm.app/Contents/MacOS/
CALM_DIR=/Users/vito/Downloads/calm-dmg/Calm - CALM/Calm.app/Contents/MacOS/
SBCL_HOME=/Users/vito/Downloads/calm-dmg/Calm - CALM/Calm.app/Contents/MacOS/sbcl/lib/sbcl
LIB_PATH=/Users/vito/Downloads/calm-dmg/Calm - CALM/Calm.app/Contents/MacOS/lib
EXECUTING: DYLD_FALLBACK_LIBRARY_PATH="/Users/vito/Downloads/calm-dmg/Calm - CALM/Calm.app/Contents/MacOS/lib" /Users/vito/Downloads/calm-dmg/Calm - CALM/Calm.app/Contents/MacOS/sbcl/bin/sbcl --no-sysinit --no-userinit --load entry.lisp
sh: /Users/vito/Downloads/calm-dmg/Calm: No such file or directory

Propose a new command `calm alive`

To support the Visual Studio extension Alive

I still can't find any other suitable editor for Lisp newcomers.

Lem is too hard to install, Emacs is too intimidating.

Rephrase the description of CALM

The current description of CALM is:

Canvas Aided Lisp Magic: Create canvas-based applications with Lisp and distribute them on Linux, macOS, Windows, and the web.

Another version is:

A Lisp development environment that enables you to build and distribute canvas based applications as Linux AppImage, macOS Application Bundle, Windows Installer and Web Application.

Which one do you prefer?

@eltociear

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.