Hi, Folks--
I have just discovered Nimrod, and ... haven't done anything with it yet, but my initial reaction is, Wow! Anyway, though I can edit Nimrod code in my usual editor Vim, I thought I would try out Aporia. But when I try to compile it, I get an error saying that the RST library is not found. And indeed, I can find rst.nim in the source code, but not in the installation directory under /usr/lib.
I am using the nimrod-git and aporia packages from the Arch Linux AUR, and the build function looks like this:
build() { cd "$srcdir" msg "Connecting to GIT server...." if [ -d $_gitname ] ; then cd $_gitname && git pull origin msg "The local files are updated." else git clone $_gitroot $_gitname fi msg "GIT checkout done or server timeout" msg "Starting make..." rm -rf "$srcdir/$_gitname-build" git clone "$srcdir/$_gitname" "$srcdir/$_gitname-build" cd "$srcdir/$_gitname-build" cd build unzip "csources.zip" cd .. chmod +x build.sh ./build.sh ./bin/nimrod c -d:release -d:useGnuReadline koch.nim ./koch boot -d:release export PATH=$PATH:../bin/nimrod cd compiler ../bin/nimrod c -d:release c2nim/c2nim.nim ../bin/nimrod c -d:release pas2nim/pas2nim.nim cd .. cd lib ../bin/nimrod c --app:lib -d:createNimRtl -d:release nimrtl.nim }
So, I imagine there is something in the compiler command line that determines whether rst.nim gets installed or not. Can someone tell me the minimal change needed to get it installed? Thanks!
Hello and welcome mcstclair!
I have pushed some changes to the nimrod and aporia repo which should hopefully fix this problem. Simply try reinstalling both from the AUR and it will hopefully work.
Regards, Dom.
Thanks, Dom! However, 'rst.nim' is still not getting installed. Are you sure it's the Nimrod code and not the Arch build script? I see you are the maintainer of the 'nimrod' package in the AUR, so presumably you know how that stuff works. Tell you what, though. When I get home tonight I will compare the PKGBUILDs for 'nimrod' and 'nimrod-git,' and see if I can get anything out of that.
By the way, it appears that Readline support is also not working. Weird, because I see '-d:gnuReadline' in the PKGBUILD. Maybe it's not in the right place? I will also see if I can figure out the problem with that.
Good thing Aporia questions are being made now, I followed Dom's advice and got new git builds from both Nimrod and Apora and I've successfully compiled them now, this time without the rst error =)
Only thing is, now aporia compiled .exe says it can't load libgtksourceview-2.0-0.dll =(
Is it because i'm in win64 trying to use the 32-bits dll version? (just for notice, the win64 version of gtksourceview didn't came with a dll, so I had to go and try with the win32 one)
@mcstclair: strange, I will look into it hopefully tomorrow. If you're really eager to get Aporia and Nimrod running you could do it the old fashioned way and clone the Nimrod and Aporia repos yourself (no need to install Nimrod, just add the bin/ dir to your path).
@SirKronos: I did some testing on Windows and there is some DLL hell going on :(. However, you should get a 32-bit dll of gtksourceview and try it. Make sure you build nimrod using the build.bat file not the build64.bat file, you should also make sure your C compiler produces 32-bit binaries.
C:\Aporia>nimrod c aporia.nim c:\nimrod\config\nimrod.cfg(36, 11) Hint: added path: 'C:\Users\Kronos\.babel\libs\' [Path] Hint: used config file 'C:\Nimrod\config\nimrod.cfg' [Conf] Hint: used config file 'c:\aporia\aporia.nimrod.cfg' [Conf] Hint: system [Processing] Hint: aporia [Processing] Hint: glib2 [Processing] Hint: gtk2 [Processing] Hint: atk [Processing] Hint: pango [Processing] Hint: gdk2pixbuf [Processing] Hint: gdk2 [Processing] Hint: gtksourceview [Processing] Hint: dialogs [Processing] Hint: windows [Processing] Hint: shellapi [Processing] Hint: os [Processing] Hint: strutils [Processing] Hint: parseutils [Processing] Hint: times [Processing] Hint: winlean [Processing] Hint: osproc [Processing] Hint: strtabs [Processing] Hint: hashes [Processing] Hint: streams [Processing] Hint: pegs [Processing] Hint: unicode [Processing] Hint: parseopt [Processing] Hint: asyncio [Processing] Hint: sockets [Processing] Hint: encodings [Processing] Hint: tables [Processing] Hint: math [Processing] Hint: algorithm [Processing] Hint: settings [Processing] Hint: utils [Processing] Hint: aboutdialog [Processing] Hint: customstatusbar [Processing] customstatusbar.nim(92, 11) Hint: 'tid' is declared but not used [XDeclaredButNotUsed] Hint: cfg [Processing] Hint: parsecfg [Processing] Hint: lexbase [Processing] Hint: search [Processing] Hint: re [Processing] Hint: pcre [Processing] search.nim(60, 14) Hint: 'brackets' is declared but not used [XDeclaredButNotUsed] search.nim(120, 13) Hint: 'matches' is declared but not used [XDeclaredButNotUsed] Hint: suggest [Processing] Hint: processes [Processing] processes.nim(339, 12) Info: instantiation from here c:\nimrod\lib\pure\streams.nim(42, 41) Warning: thread analysis incomplete due to unknown call 's.closeImpl(s)' [AnalysisLoophole] processes.nim(349, 17) Info: instantiation from here c:\nimrod\lib\pure\streams.nim(51, 23) Warning: thread analysis incomplete due to unknown call 's.atEndImpl(s)' [AnalysisLoophole] processes.nim(352, 21) Info: instantiation from here c:\nimrod\lib\pure\streams.nim(179, 21) Info: instantiation from here c:\nimrod\lib\pure\streams.nim(117, 14) Info: instantiation from here c:\nimrod\lib\pure\streams.nim(76, 26) Warning: thread analysis incomplete due to unknown call 's.readDataImpl(s, buffer, bufLen)' [Analysis Loophole] Hint: rst [Processing] Hint: rstast [Processing] c:\nimrod\lib\packages\docutils\rst.nim(852, 20) Hint: 'dkAuthor' is declared but not used [XDeclaredButNotUsed] c:\nimrod\lib\packages\docutils\rst.nim(1362, 6) Hint: 'rst.$(t: TToken): string' is declared but not used [XDeclaredButNotUsed] c:\nimrod\lib\packages\docutils\rst.nim(852, 31) Hint: 'dkAuthors' is declared but not used [XDeclaredButNotUsed] suggest.nim(60, 12) Warning: get_size is deprecated, get_width should be used [User] suggest.nim(269, 13) Hint: 'f' is declared but not used [XDeclaredButNotUsed] suggest.nim(404, 12) Hint: 'lang' is declared but not used [XDeclaredButNotUsed] aporia.nim(1015, 26) Hint: 'startOldLineOffset' is declared but not used [XDeclaredButNotUsed] aporia.nim(1131, 27) Hint: 'cfgFile' is declared but not used [XDeclaredButNotUsed] aporia.nim(1537, 10) Hint: 'cmpB' is declared but not used [XDeclaredButNotUsed] aporia.nim(1753, 14) Hint: 'RedoItem' is declared but not used [XDeclaredButNotUsed] aporia.nim(1748, 14) Hint: 'SaveItem' is declared but not used [XDeclaredButNotUsed] aporia.nim(1751, 14) Hint: 'UndoItem' is declared but not used [XDeclaredButNotUsed] aporia.nim(1746, 14) Hint: 'OpenItem' is declared but not used [XDeclaredButNotUsed] aporia.nim(1743, 17) Hint: 'NewFileItem' is declared but not used [XDeclaredButNotUsed] aporia.nim(186, 16) Hint: 'aporia.saveAllTabs()' is declared but not used [XDeclaredButNotUsed] gcc.exe -c -w -IC:\Nimrod\lib -o c:\aporia\nimcache\aporia.o c:\aporia\nimcache\aporia.c gcc.exe -o c:\aporia\aporia.exe c:\aporia\nimcache\rstast.o c:\aporia\nimcache\rst.o c:\aporia\nimcache\processes.o c:\aporia\nimcache\suggest.o c:\aporia\nimcache\pcre.o c:\aporia\nimcache\re.o c:\aporia\nimcache\search.o c:\aporia\nimcache\lexbase.o c:\aporia\nimcache\parsecfg.o c:\aporia\nimcache\cfg.o c:\aporia\nimcache\customstatusbar.o c:\aporia\nimcache\aboutdialog.o c:\aporia\nimcache\utils.o c:\aporia\nimcache\settings.o c:\aporia\nimcache\algorithm.o c:\aporia\nimcache\math.o c:\aporia\nimcache\tables.o c:\aporia\nimcache\encodings.o c:\aporia\nimcache\sockets.o c:\aporia\nimcache\asyncio.o c:\aporia\nimcache\parseopt.o c:\aporia\nimcache\unicode.o c:\aporia\nimcache\pegs.o c:\aporia\nimcache\streams.o c:\aporia\nimcache\hashes.o c:\aporia\nimcache\strtabs.o c:\aporia\nimcache\osproc.o c:\aporia\nimcache\winlean.o c:\aporia\nimcache\times.o c:\aporia\nimcache\parseutils.o c:\aporia\nimcache\strutils.o c:\aporia\nimcache\os.o c:\aporia\nimcache\shellapi.o c:\aporia\nimcache\windows.o c:\aporia\nimcache\dialogs.o c:\aporia\nimcache\gtksourceview.o c:\aporia\nimcache\gdk2.o c:\aporia\nimcache\gdk2pixbuf.o c:\aporia\nimcache\pango.o c:\aporia\nimcache\atk.o c:\aporia\nimcache\gtk2.o c:\aporia\nimcache\glib2.o c:\aporia\nimcache\system.o c:\aporia\nimcache\aporia.o Hint: operation successful (83292 lines compiled; 5.852 sec total; 79.809MB) [SuccessX] C:\Aporia>aporia could not load: libgtksourceview-2.0-0.dll
Ah, I've put all dll redundancy I could (libgtksourceview is in the aporia folder, nimrod/dist folder and system32 folder). All to make sure the error above wouldn't show up (which wasn't the case).
Hope this helps in anything.
What if the DLL is already at GTK2-Runtime/bin? =(
I'll try reinstalling and recompiling everything, but I don't put my hope on this.
Ok, this time it worked! =D
Now, I have another problem: Nothing works in Aporia!! =P
I'm kidding. I mean, the buttons are working, I can open files, but it doesn't receive any keyboard input, I try to type, select a place to write in the text, even the find bar doesn't receive any input. Ah, and the close button (the red 'x') didn't worked, I had to crash the program (using the raw preferences option which gave a traceback stack about not having a .cfg file) to exit it =P
Well, at least it executed this time.
I'm in the same boat as SirKronos, but he never told us how he get it working ;) But if there's major usability issues on Windows even if I can get it to find libgtksourceview then maybe I should look for other options.
Anybody using Sublime Text 2? Or even vim?
This thread was the only hit I got for searching for "aporia readline," so I apologize if it is off topic.
I'm just playing around with nimrod at the moment. When I try to work my way through Tutorial I, The first program, I have:
# This is a comment
echo("What's your name? ")
var name: string = readLine(stdin)
echo("Hi, ", name, "!")
When I compile and run this from the command line, it works as expected.
When I compile and run this from aporia, it doesn't show "What's your name? ", and it hangs (the Executing bar shows activity but nothing else happens). If I attempt to type my name in the Output window, nothing happens. To exit, I just terminate the process.
If I change the program to:
# This is a comment
echo("What's your name? ")
then it works as expected in aporia.
Is there a known problem with aporia and the "readLine" command?
I am running 32-bit on Windows 7 on a 64-bit machine.
I was able to get the 32 bit version working on my 32 bit windows machine with no problems. I then had some issues with my win64 machine at home, but not the keyboard issue. I wound up recompiling nimrod as 32 bit, and reloaded all of the dependencies per the Aporia site, and it still didn't work. I had forgot to copy pcre.dll into the Aporia directory or put it somewhere and update my path. Now it works, and I have no issues as are being described. It was also confused since either GIMP for windows or Inkscape had put a path to GTK+ in my path variable already. Hope this helps.
Rob