Giter Site home page Giter Site logo

ramblurr / pietcreator Goto Github PK

View Code? Open in Web Editor NEW
69.0 12.0 22.0 1.05 MB

GUI for developing and debugging programs written in the Piet language

Home Page: http://binaryelysium.com/blog/2010/11/06/programming-as-modern-art.html

License: Other

C++ 18.24% Shell 0.12% C 79.66% CMake 0.91% HTML 1.07%

pietcreator's Introduction

Piet Creator

Build Status

Piet Creator is a cross platform GUI IDE for the Piet esoteric programming language. It includes a graphical editor, embedded interpreter, and integrated debugger.

"Piet is a programming language in which programs look like abstract paintings. The language is named after Piet Mondrian, who pioneered the field of geometric abstract art. " - David Morgan-Mar. [email protected] (Piet Author)

Piet Creator's primary author is Casey Link [email protected].

The interpreter backend is provided by npiet, a piet interpreter written in C by Erik Schoenfelder.

piet, the language: http://www.dangermouse.net/esoteric/piet.html npiet: http://www.bertnase.de/npiet/

Piet Creator is licensed under the GPL v3, and is written in C++ with Qt.

Piet the esoteric programming language was created by David Morgan-Mar [email protected], and is copyright by him.

Compiling / Running

Prerequisites for Linux/Mac OS X/Windows:

Piet Creator uses the cmake build system, which is supported on all major operating systems.

On Linux/Mac OS X

From the source directory: $ mkdir build $ cd build $ cmake ../ # This will attempt and find all the dependencies $ make $ ./pietcreator

On Windows (With VS 2008)

  • Create the build directory as shown above
  • Run the same cmake command "cmake ../" or "cmake path_to_sources"
  • Open the resulting .sln in Visual Studio
  • Execute the pietcreator.exe binary in Debug/

On Windows (With mingw)

pietcreator's People

Contributors

esoteric-programmer avatar ivoah avatar mfashby avatar ramblurr avatar rillig 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

Watchers

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

pietcreator's Issues

Won't compile with Qt 5

Title pretty much says it all. How hard would it be to update to the latest version of Qt?

Problems building, Linux.

Trying to build...

root@Nick:/home/nick/Compilers/PietCreator-master# mkdir build
root@Nick:/home/nick/Compilers/PietCreator-master# cd build
root@Nick:/home/nick/Compilers/PietCreator-master/build# cmake ../
-- The C compiler identification is GNU 4.9.2
-- The CXX compiler identification is GNU 4.9.2
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Looking for Q_WS_X11
-- Looking for Q_WS_X11 - found
-- Looking for Q_WS_WIN
-- Looking for Q_WS_WIN - not found
-- Looking for Q_WS_QWS
-- Looking for Q_WS_QWS - not found
-- Looking for Q_WS_MAC
-- Looking for Q_WS_MAC - not found
-- Found Qt4: /usr/bin/qmake (found version "4.8.6")
CMake Error at npiet/cmake/modules/FindGD.cmake:109 (MESSAGE):
Could not find GD library
Call Stack (most recent call first):
npiet/CMakeLists.txt:13 (find_package)

-- Configuring incomplete, errors occurred!
See also "/home/nick/Compilers/PietCreator-master/build/CMakeFiles/CMakeOutput.log".
See also "/home/nick/Compilers/PietCreator-master/build/CMakeFiles/CMakeError.log".

CMakeOutput.pdf
CMakeError.pdf

Any ideas?

Cheers,
Nick

Error running make on OSX

I installed all the required dependencies, and cmake ran fine, but when running make, it got to 95%, and gave this error:

Linking CXX executable pietcreator
Undefined symbols for architecture x86_64:
"_PrintGifError", referenced from:
_read_gif in libnpiet.a(npiet.c.o)
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
make[2]: *** [pietcreator] Error 1
make[1]: *** [CMakeFiles/pietcreator.dir/all] Error 2
make: *** [all] Error 2

No cells are coloured when attempting to draw

Replication:
New Image,
Select a color from the pallette,
Click and drag on the main pane to draw, and nothing happens!

I've compiled from source with QT version 4.8.7 on Ubuntu.

Difficulties building

I have been trying to build this program but have been running into the following error

dennis@Juzo:~/Documents/piet/PietCreator/build$ cmake ../
-- Found GD: /usr/local/lib/libgd.so
-- Configuring done
-- Generating done
-- Build files have been written to: /home/dennis/Documents/piet/PietCreator/build
dennis@Juzo:~/Documents/piet/PietCreator/build$ make
[  2%] Building C object npiet/CMakeFiles/npiet.dir/npiet.c.o
/home/dennis/Documents/piet/PietCreator/npiet/npiet.c: In function ‘read_gif’:
/home/dennis/Documents/piet/PietCreator/npiet/npiet.c:1186:3: error: too few arguments to function ‘DGifOpenFileName’
   if (! (gif = DGifOpenFileName (fname))) {
   ^
In file included from /home/dennis/Documents/piet/PietCreator/npiet/npiet.c:1170:0:
/usr/local/include/gif_lib.h:179:14: note: declared here
 GifFileType *DGifOpenFileName(const char *GifFileName, int *Error);
              ^
/home/dennis/Documents/piet/PietCreator/npiet/npiet.c:1193:5: error: too few arguments to function ‘DGifCloseFile’
     DGifCloseFile (gif);
     ^
In file included from /home/dennis/Documents/piet/PietCreator/npiet/npiet.c:1170:0:
/usr/local/include/gif_lib.h:183:9: note: declared here
     int DGifCloseFile(GifFileType * GifFile, int *ErrorCode);
         ^
/home/dennis/Documents/piet/PietCreator/npiet/npiet.c:1200:5: error: too few arguments to function ‘DGifCloseFile’
     DGifCloseFile (gif);
     ^
In file included from /home/dennis/Documents/piet/PietCreator/npiet/npiet.c:1170:0:
/usr/local/include/gif_lib.h:183:9: note: declared here
     int DGifCloseFile(GifFileType * GifFile, int *ErrorCode);
         ^
/home/dennis/Documents/piet/PietCreator/npiet/npiet.c:1266:3: error: too few arguments to function ‘DGifCloseFile’
   DGifCloseFile (gif);
   ^
In file included from /home/dennis/Documents/piet/PietCreator/npiet/npiet.c:1170:0:
/usr/local/include/gif_lib.h:183:9: note: declared here
     int DGifCloseFile(GifFileType * GifFile, int *ErrorCode);
         ^
make[2]: *** [npiet/CMakeFiles/npiet.dir/npiet.c.o] Error 1
make[1]: *** [npiet/CMakeFiles/npiet.dir/all] Error 2
make: *** [all] Error 2

I suspect that maybe giflib is the wrong version (I installed 5.1.1 from http://sourceforge.net/projects/giflib/) Your readme does not specify which version is required to make this work. Any assistance is appreciated.

New functionality

Is there any way to convert a given string to the piet image or is it still to be added?

Issues with stopping program execution

I have incorporated the changes suggested @esoteric-programmer in #4 at my repo and started a port to Qt5 here. However, whether I compile the Qt4 (I have 4.8.6) or the Qt5 (5.5.0) version, I cannot seem to abort the execution of a program while in debugging mode.

Example output with qt4:

DP Right CC:  2 
DP Right CC:  2 
DP Right CC:  2 
abort! 

The program hangs at this point, with the Stop button depressed.

With qt5, the program crashes instead of hanging:

DP Right CC:  2
DP Right CC:  2
abort!
stop!
QSocketNotifier: Socket notifiers cannot be enabled or disabled from another thread
Segmentation fault (core dumped)

I haven't looked at the source code too extensively so far, any idea where the error lies?

compilation experience

I had some difficulties compiling this in windows, so I wanted to write a little history...

I'm using Windows10 (doubt it would be much different in WinXP)

First I went to QT, downloaded QT5, installed it, went to CMake, Downloaded it, installed it, registered the binary paths of QT and Cmake in the Windows PATH variable, downloaded visual studio express, installed that, downloaded this source code, went to the /npiet/ folder in command prompt and called "cmake ../"
Then I got an error: QT5 is wrong, please use some QT4.x. (first impression was, that it would be downward compatible, but apparently it's not). So I went to the QT Archive, downloaded QT4.8.6, installed that, added binary path to PATH, closed command prompt and reopen it to call again "cmake ../" . There it told me QT5 is prefered over QT4 when both are installed. Then I uninstalled QT5 and called cmake again, which finally got me the visual studio .sln project files. These I could actually compile without a problem into a executable, which I couldn't run. That was because I missed the visual studio c++ redistributional thingy, which was a wrong diagnose as I simply didn't use the Release-Channel in Visual studio. Building it in Release mode was finally successful. and I could run the application.

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.