Do you like live coding? If so, do you prefer to make your own environment, or use an existing one? If you make your own, do you prefer to use an off the shelf embeddable language like Lua or s7 scheme, or do you implement your own language?
This seems like a good board. Thank you for your time.
praxis was made so a Smalltalk/Lisp Machine style live environment can be enjoyed. The pure text based editing style is reminiscent of the Commodore 64 - summon code, freely change the editor behaviour, inject code - programming is the main interface into the world.
>>17923 Those are all the inline Io functions. IOINLINE needs to be set correctly in Common_inline.h. This depends on your platform and toolchain. The only platforms and toolchains supported are MSVC + Qt Creator/qmake on Win32, and qmake on Linux.
What platform are you on? What are your compile steps?
Could you post yours so we can compare? I'm using the qmake that came with the Qt library, How did you install your qmake? Its possible that your arch install of qmake doesn't have the make specs set correctly. As I mentioned above, the #define IOINLINE needs to be set correctly (happens in Common_inline.h), and this will only happen if certain other platform specific #defines are defined in the Makefile.
If you want the qmake provided when you install the Qt library, I suggest using the installer provided by the Qt project rather than the debian/pacman repository:
>>17962 The only difference between the makefiles that looks interesting is the fact that I'm compiling for 32 bit platform, and you are targetting 64 bit.
Try adding #message on line 120 in Common_inline.h to see if __linux__ is set. Add them to the rest of the blocks too to see which block gets used. On Linux, the definitions specified on lines 128-130 need to be used.
>>17965 I think that's normal. It looks like Io has a complex pre-processor mechanism for inline functions depending on whether its included from its "parent" C file or other C file. With your compiler, an edge case that was being ignored before is suddenly causing a problem.
On lines 129 and 130, try changing extern inline to static inline. If this doesn't work, I'll push a version where Io is omitted from praxis by default.
After some issues, I've compiled it and it works. Sort of. The program launches in two windows, one smaller screen which ostensibly looks like what it should, and a larger window which is all black. The mouse control all works, but I can't type anything. When I open the window, I can see the error message in the first picture, and when I press any key while the window is selected, it changes to the second message and doesn't seem to change after that.
After doing some testing, it seems like it's trying to read a bunch of files that are in the examples in the prods directory and assuming they're in the main directory. For example, as you can see in the first picture, it's not finding the inspect module, because it's stored in prods/[whatever example]. I copied inspect.lua into the main directory, and it came up with a similar error talking about a different file.
I'm not totally sure what I could do to change the directory in which it's looking for these files. Do you have any suggestions/a bugfix?
The idea is that your current folder is set to one of the prod directories, or your own folder. I suggest making a copy of one of the prod directories to provide you with a starting point. Set the current folder to that before running praxis.
I'm looking at baking some of the foundation functionality written in the startup Lua files into the executable so you can start the executable in an empty folder.
>>18894 Alright, now I'm running it from within one of the testing directories (ie, praxis/prods/LogoTest $ ../../praxis), which seems to fix the not finding the files thing, however, I still get all of those errors when pressing a key (all of the "onKeyDown" stuff, see image 2 in >>18560). Pic related is the new startup error.
>>17892 it built fine but errors out with this when trying to run:
Hello from the input thread.
X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 155 (GLX) Minor opcode of failed request: 3 (X_GLXCreateContext) Value in failed request: 0x0 Serial number of failed request: 53 Current serial number in output stream: 54