SkillAgentSearch skills...

QLogo

QLogo is a rewrite of the UCBLogo language and user interface written in C++ using Qt.

Install / Use

/learn @jasonsikes/QLogo
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

  • This is the README for QLogo and Psychi.

[[./qlogo_logo.png]]

** Copyright

Copyright (C) 2017-2026 Jason Sikes

Redistribution and use in source and binary forms, with or without modification, are permitted under the conditions specified in the license found in the LICENSE file in the project root.

** About

*** QLogo

QLogo is a compiler for the UCBLogo language written in C++ using Qt and LLVM. It mimics the UCBLogo interpreter developed by Brian Harvey, et al. at U.C. Berkeley.

You can find more information about the UCBLogo language using the UCBLogo Manual here:

http://people.eecs.berkeley.edu/~bh/usermanual

The QLogo compiler is incomplete. For an actual working UCBLogo interpreter see:

https://github.com/jrincayc/ucblogo-code

*** Psychi

Psychi is the graphical terminal window for QLogo. It provides a command line, a text editor, and a turtle graphics window.

** To build

At this time I am developing and testing QLogo on the following systems:

  • Linux (Fedora 43 using Qt 6.10 and LLVM 21), and
  • macOS (Tahoe on Silicon, using LLVM 21 and Qt 6.10 provided by MacPorts).

I am no longer testing on MS Windows as I no longer have a Windows machine.

*** To build in Linux

Make sure you have the required components installed. This would involve using your package manager.

To the best of my memory, you will need the following packages:

  • CMake
  • Make
  • C++ development packages
  • Qt6 development packages, at least 6.5. Qt6 is big; your distribution may make some of the components "optional". Make sure you have:
    • The Qt6 SQLite development package
    • The Qt6 SVG development package.
  • LLVM development packages, at least version 21.

After you have downloaded the QLogo source code, "cd" into the source directory and issue the following commands.

#+BEGIN_SRC shell cmake -S . -B build cd build make #+END_SRC

If everything is successful, you should find the built components in the build directory. It's not a good idea to move the items to another location; I don't even know if the "install" script works correctly.

The QLogo compiler and command-line program will be found at:

~QLogo/build/qlogo/qlogo~

and the graphical user interface with the turtle can be found at:

~QLogo/build/Psychi/Psychi~

** More about QLogo

QLogo aims to imitate, as much as I find reasonable, the UCBLogo programming language and user interface.

Development of QLogo is still ongoing. Following is my chart of commands. The commands that are not yet completed are marked "TODO".

|--------------------+----------------+---------------+------------------------+---------------------------+----------------------| | CONTROL STRUCTURES | GRAPHICS | ARITHMETIC | COMMUNICATION | DATA STRUCTURE PRIMITIVES | WORKSPACE MANAGEMENT | | | /COMPLETE/ | /COMPLETE/ | | /COMPLETE/ | | |--------------------+----------------+---------------+------------------------+---------------------------+----------------------| | RUN | FORWARD | SUM | PRINT | WORD | TO | | TODO TIME | FD | DIFFERENCE | PR | LIST | .MACRO | | TODO MARK | BACK | MINUS | TYPE | SENTENCE | TODO DEFINE | | RUNRESULT | BK | - | SHOW | SE | TODO .DEFMACRO | | BYE | LEFT | PRODUCT | TODO READLIST | FPUT | TODO TEXT | | REPEAT | LT | QUOTIENT | TODO RL | LPUT | TODO FULLTEXT | | FOREVER | RIGHT | REMAINDER | TODO READWORD | ARRAY | TODO COPYDEF | | REPCOUNT | RT | MODULO | TODO RW | LISTTOARRAY | MAKE | | IF | SETPOS | INT | TODO READRAWLINE | ARRAYTOLIST | LOCAL | | IFELSE | SETXY | ROUND | TODO READCHAR | FIRST | TODO THING | | TEST | SETX | SQRT | TODO READCHARS | LIBRARY FIRSTS | TODO GLOBAL | | IFTRUE | SETY | POWER | TODO RCS | LAST | TODO PPROP | | IFT | SETHEADING | EXP | TODO FILEDIALOG | BUTFIRST | TODO GPROP | | IFFALSE | SETH | LOG10 | TODO COPYRIGHT | BF | TODO REMPROP | | IFF | HOME | LN | TODO SHELL | LIBRARY BUTFIRSTS | TODO PLIST | | STOP | ARC | SIN | TODO SETPREFIX | LIBRARY BFS | TODO PROCEDUREP | | OUTPUT | POS | RADSIN | TODO PREFIX | BUTLAST | TODO PROCEDURE? | | OP | HEADING | COS | TODO OPENREAD | BL | TODO MACROP | | .MAYBEOUTPUT | TOWARDS | RADCOS | TODO OPENWRITE | ITEM | TODO MACRO? | | CATCH | SCRUNCH | ARCTAN | TODO OPENAPPEND | SETITEM | TODO PRIMITIVEP | | THROW | SHOWTURTLE | RADARCTAN | TODO OPENUPDATE | .SETFIRST | TODO PRIMITIVE? | | ERROR | ST | LESSP | TODO CLOSE | .SETBF | TODO DEFINEDP | | PAUSE | HIDETURTLE | LESS? | TODO ALLOPEN | .SETITEM | TODO DEFINED? | | CONTINUE | HT | GREATERP | TODO CLOSEALL | WORDP | TODO NAMEP | | CO | CLEAN | GREATER? | TODO ERASEFILE | WORD? | TODO NAME? | | TAG | CLEARSCREEN | LESSEQUALP | TODO ERF | LISTP | TODO PLISTP | | GOTO | CS | LESSEQUAL? | TODO DRIBBLE | LIST? | TODO PLIST? | | TODO APPLY | WRAP | GREATEREQUALP | TODO NODRIBBLE | ARRAYP | TODO CONTENTS | | TODO ? | WINDOW | GREATEREQUAL? | TODO SETREAD | ARRAY? | TODO BURIED | | | FENCE | RANDOM | TODO SETWRITE | EMPTYP | TODO TRACED | | | BOUNDS | RERANDOM | TODO READER | EMPTY? | TODO STEPPED | | | SETBOUNDS | FORM | TODO WRITER | EQUALP | TODO PROCEDURES | | | FILLED | BITAND | TODO SETREADPOS | EQUAL? | TODO PRIMITIVES | | | LABEL | BITOR | TODO SETWRITEPOS | NOTEQUALP | TODO NAMES | | | SETLABELHEIGHT | BITXOR | TODO READPOS | NOTEQUAL? | TODO PLISTS | | | TEXTSCREEN | BITNOT | TODO WRITEPOS | BEFOREP | TODO ARITY | | | TS | ASHIFT | TODO EOFP | BEFORE? | TODO NODES | | | FULLSCREEN | LSHIFT | TODO EOF? | .EQ | TODO PRINTOUT | | | FS | AND | TODO KEYP | MEMBERP | TODO PO | | | SPLITSCREEN | OR | TODO KEY? | MEMBER? | TODO POT | | | SS | NOT | TODO CLEARTEXT | SUBSTRINGP | TODO ERASE | | | SETSCRUNCH | + | TODO CT | SUBSTRING? | TODO ER | | | SHOWNP | * | TODO SETCURSOR | NUMBERP | TODO ERALL | | | SHOWN? | / | TODO CURSOR | NUMBER? | TODO ERPS | | | SCREENMODE | < | TODO SETTEXTCOLOR | VBARREDP | TODO ERNS | | | TURTLEMODE | > | TODO SETTC | VBARRED? | TODO ERPLS | | | LABELSIZE | = | TODO INCREASEFONT | COUNT | TODO BURY | | | NO MATRIX | <= | TODO DECREASEFONT | ASCII | TODO UNBURY | | | PENDOWN | >= | TODO SETTEXTSIZE | RAWASCII | TODO BURIEDP | | | PD | <> | TODO TEXTSIZE | CHAR | TODO BURIED? | | | PENUP | | TODO SETTEXTFONT | MEMBER | TODO TRACE | | | PU | | TODO FONT | LOWERCASE | TODO UNTRACE | | | PENPAINT | | TODO ALLFONTS |

View on GitHub
GitHub Stars55
CategoryDevelopment
Updated1d ago
Forks11

Languages

C++

Security Score

85/100

Audited on Apr 8, 2026

No findings