Code Monkey home page Code Monkey logo

aporia's Introduction

Aporia

Note: As of 2018 Aporia is considered obsolete. Most of the Nim community has switched to VS Code instead. Feel free to use Aporia, but know that it may not be maintained anymore.

Aporia is an IDE for the Nim programming language. Aporia uses GTK as the default toolkit, and the gtksourceview for the text editor component.

Aporia on Windows 7

Aporia on Mac OS X

Installing

The method by which Aporia can be installed depends on your platform. The following installation instructions are valid as of version 0.4.1 of Aporia.

Windows

No windows binaries available right now I'm afraid. Sorry!

You can install Aporia via the Nimble package manager, take a look at the Linux/BSD installation instructions to see how this can be done. Keep in mind that you will need to also install Aporia's dependencies manually if you install Aporia this way. The dependencies are listed below under the #dependencies section.

Mac OS X

As of version 0.4.0 Aporia now offers very good Mac OS X support. The releases page contains a zipped archive to an Aporia app bundle, which you can download and begin using immediately!

For your convenience, here is the app bundle for Aporia v0.4.0: https://github.com/nim-lang/Aporia/releases/download/v0.4.0/Aporia_0.4.0_MacOSX.zip

Linux/BSD

Some Linux/BSD distributions may package Aporia so make sure to search for it using your favourite package manager. For example, AUR offers an aporia-git package.

In most cases, you will need to compile and install Aporia manually. The easiest way to do so is using Nimble. First, if you haven't already done so, install Nimble. The instructions for doing so can be found here.

Once Nimble is installed, you can install Aporia by executing the following in a terminal:

nimble install aporia

This will download the latest Aporia release, compile it and install it to ~/.nimble/pkgs/ and ~/.nimble/bin/aporia. You can then execute Aporia by executing ~/.nimble/bin/aporia from your terminal. You can add ~/.nimble/bin to your $PATH to make the execution easier.

If Aporia fails to start with an error similar to the following:

could not load: libgtk2.so

Then you will need to use your Linux/BSD distribution's package manager to install Aporia's dependencies. These include gtk2, gtksourceview (version 2, not 3), and pcre. More information about these can be found in the #dependencies section.

Compiling

To compile Aporia you need the latest version of the nim compiler, preferably the unstable release from github. Aporia sometimes relies on bug fixes which have not yet made it to a stable release.

To build Aporia execute nimble build in its directory. To build and install Aporia execute nimble install in its directory.

You can also quickly install it using nimble without the need to clone this repo yourself, just execute nimble install aporia@#head.

Note: You also need to install some dependencies for Aporia to run. The section below explains this in more detail.

Assuming that all dependencies are installed and you installed Nimble properly, you will be able to launch Aporia by executing aporia in the terminal.

Compiling from C sources

If you do not want to get the nim compiler you can still compile Aporia from the generated C sources, it's as simple as executing the build.sh script (or build.bat on Windows). You can then also use install.sh to install Aporia.

Dependencies

Aporia depends on the following libraries. You may already have those installed especially if you are on Linux.

  • GTK (version 2!)
  • GtkSourceView (any version compatible with GTK2)
  • PCRE

Windows

Warning: If you are on a 64bit version of Windows you must not compile Aporia using a 64 bit version of Nim. This is because there are no 64 bit GTK+ binaries available, see discussion here.

GTK+

If you already have GTK+ on your system, you don't need to do anything. Just make sure GTK+ is in your PATH.

If you don't have GTK+ installed then you need to install it. You can get the latest version from here. Make sure that the installer adds GTK+ to the PATH.

GtkSourceView

The GtkSourceView doesn't have an installer, however binaries are available from here (these are 32 bit only!). Just pick the latest version and download the archive then copy the files/folders in the archive into the 'bin' directory in gtk's directory (Most likely: C:\Program Files\GTK2-Runtime\bin).

libxml2-2

GtkSourceView depends on libxml2-2. This should be downloaded from here (these are 32 bit only!). And the contents of it should be copied the same 'bin' directory as GtkSourceView above. The zip you are looking for is usually called libxml2_2.X.X-1_win32.zip

pcre

The dll for this can be found in nim's repo, in the "dist" directory. Just copy it into aporia's directory or somewhere into your PATH.

Microsoft Visual C++ 2010 Redistributable Package (optional)

If you are experiencing a MSVC100.dll cannot be found then you may need to install the Microsoft Visual C++ 2010 Redistributable Package, this can be downloaded from here (win64)

Linux

Use your package manager to install the dependencies (gtk2, gtksourceview and PCRE).

Mac OS X

The easiest way to get Aporia running on Mac OS X is by installing its dependencies using Homebrew.

$ brew install gtk gtksourceview

To get a nice OS X theme you will also need the GTK Quartz engine. The best one to get is from TingPing/homebrew-gnome.

$ brew tap TingPing/gnome
$ brew install --HEAD gtk-quartz-engine

To use the Quartz engine you must also define the following environment variables.

export GTK_DATA_PREFIX=/usr/local
export GTK_EXE_PREFIX=/usr/local
export GTK2_RC_FILES=$(nimble path aporia | tail -n 1)/share/themes/Quartz/gtk-2.0/gtkrc

You can put those in your .bash_rc file or similar to make it system-wide.

For El Capitan Mac OSX

brew tap homebrew/dupes
brew install libiconv
cd /usr/local/lib/
sudo ln -s libgdk-quartz-2.0.dylib libgdk-x11-2.0.dylib
sudo ln -s libgtk-quartz-2.0.dylib libgtk-x11-2.0.dylib

Note: For this to work you must have Aporia installed via Nimble.

If running aporia now tells you about a missing dynamic library, dependencies might have changed and you could need to brew install another package (tell us this is broken by creating an issue and we will update the documentation).

Assuming that you have set everything up correctly, you should see an Aporia window that looks like this:

Aporia on Mac OS X

aporia's People

Contributors

araq avatar azurekitsune avatar dom96 avatar fowlmouth avatar gradha avatar honewatson avatar kamilchm avatar nanoant avatar nihathrael avatar philipwitte avatar pmunch avatar qwhex avatar simonkrauter 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  avatar

Watchers

 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

aporia's Issues

Feature Request: add commandline loading of files

Hi,

I propose an addition when aporia is started from the commandline, to specify loading a file.

Example:

"aporia misc.nim"

Would try to load the file misc.nim into Aporia, i.e. assign the last buffer in a tab to the
content of that file.

This works in Geany and Bluefish already and hopefully in Aporia too one day. :)

(When aporia supports this, perhaps even add a --help option to Aporia to list those
allowed commands or features from aporia on the commandline? But that's just a
suggestion, not part of this issue report.)

When compiled with --app:gui, hide consoles

On windows if I compile Aporia with --app:gui, and run it, I do not get a console (as expected), however, when I look up a definition or build the project, a blank console window will open up briefly until the operation is complete.

Mac OS: could not import: iconv_open

Hi!
I compiled source according to instructions.
After ./aporia I got error: could not import: iconv_open
After this I installed libiconv (1.14).
But I get the same error.
What I need else for running Aporia on Mac OS?

console output to Output is damn slow on Windows

This is not a bug, but it really hurts the usability on Windows. Compiling the same project inside Aporia vs compiling it from command line take twice the time or even more, because the capturing of the console output is so slow.

"Terminate running process" doesn't work under Linux

Output:
Terminating process... ID: 82
Traceback (most recent call last)
aporia.nim(2452) aporia
aporia.nim(1322) StopProcess_Activate
osproc.nim(864) terminate
os.nim(268) osError
Error: unhandled exception: No such process [EOS]

Steps to reproduce:

  1. Create a simple Gtk application, which shows a window
  2. Compile and run
  3. Select Tools -> Terminate running process

Tested on: Manjaro
Nimrod: 0.9.4

Under Windows it works.

Doesn't compile

Aporia: 253d55e
nimrod: 0.9.2 release
nimrod c aporia.nim

search.nim(215, 4) Hint: 1446 [Processing]
search.nim(232, 4) Hint: 1448 [Processing]
search.nim(211, 9) Error: internal error: expr(nkYieldStmt); unknown node kind
      yield (startMatch, endMatch)
           ^
No stack traceback available
No stack traceback available

The module declaration is an iterator and the yield arguments match.

Is this a nimrod issue? (Retrying with nimrod head @ 9c56633 ITMT)

Doesn't build or run under Windows

I attempted nimrod c aporia after fetching the current master/head, and it does not build - lots of warnings, then an error message.

C:\workspace\test\aporia>nimrod c aporia c:\nimrod\config\nimrod.cfg(36, 11) Hint: added path: 'C:\Users\Rasmus Schultz\.babel\libs\' [Path] Hint: used config file 'C:\nimrod\config\nimrod.cfg' [Conf] Hint: used config file 'c:\workspace\test\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] utils.nim(553, 11) Info: instantiation from here c:\nimrod\lib\pure\pegs.nim(873, 14) Warning: injected 'matches' might be affected by new scoping rules in 0.9.4 [User] 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(145, 14) Info: instantiation from here c:\nimrod\lib\pure\pegs.nim(873, 14) Warning: injected 'matches' might be affected by new scoping rules in 0.9.4 [User] processes.nim(162, 19) Info: instantiation from here c:\nimrod\lib\pure\pegs.nim(873, 14) Warning: injected 'matches' might be affected by new scoping rules in 0.9.4 [User] 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(343, 12) Warning: thread analysis incomplete due to unknown call 'close(p)' [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(185, 21) Info: instantiation from here c:\nimrod\lib\pure\streams.nim(123, 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)' [AnalysisLoophole] Hint: rst [Processing] Hint: rstast [Processing] c:\nimrod\lib\packages\docutils\rst.nim(853, 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(853, 31) Hint: 'dkAuthors' is declared but not used [XDeclaredButNotUsed] suggest.nim(66, 12) Warning: get_size is deprecated, get_width should be used [User] suggest.nim(277, 13) Hint: 'f' is declared but not used [XDeclaredButNotUsed] suggest.nim(412, 12) Hint: 'lang' is declared but not used [XDeclaredButNotUsed] aporia.nim(699, 13) Error: undeclared field: 'set_upper'

I then fetched the last tagged release 0.1.1.0, and while this did built, it does not run - when attempting to run from the shell, it silently exits without any message; when launched under a console, it outputs the following error message:

C:\workspace\test\aporia>aporia.exe could not load: libgtksourceview-2.0-0.dll

As directed in the README, I did install the GTK runtimes, and made sure it's in my path.

I'm running Nimrod version 0.9.2 (2013-05-20).

Curious to see what the IDE looks like - since there are a lot of environmental dependencies, pre-built Windows binaries might be a good idea, as (sadly) you will seldomly find two Windows environments with the exact same configuration...

Aporia crashes in "Replace All" when Find==Replace

I want to fix case inconsistency a nimrod file (N.nim on ParticleBench, btw). So, I'm using the 'Style Insensitive' search, and I want to run a replace all with the same name string in Find and Replace (for example, "PrintFrames"). Aporia consistently crashes when I try to do that. If I find for some string (ex: "PrintFrames") but ask it to replace to another different string (ex: "asdf") replace all works. Manually clicking on next and then replace for each ocurrence works.

Below the console output when I run aporia and trigger the bug:

Gtk-Message: (for origin information, set GTK_DEBUG): failed to retrieve property `GtkRange::activate-slider' of type `gboolean' from rc file value "((GString*) 0x91acab0)" of type `GString'

(aporia:3223): GLib-ERROR **: /build/buildd/glib2.0-2.38.1/./glib/gmem.c:175: failed to allocate 8192 bytes
Trace/breakpoint trap (core dumped)

"could not load: libgdk-win32-2.0-0.dll"

After building from source or installing via nimble, the following error appears when running:

could not load: libgdk-win32-2.0-0.dll

I've installed GTK and have the binary folder in my path, even when putting the dll in the Aporia directory, the error appears.

Am I doing something wrong? Any help would be greatly appreciated.

Output panel should be per-tab

The output panel (where process output is given in) should disappear upon closing the tab that it belongs too. Also the output panel should show up only on the tabs that own it.

Installing Using nimble install Fails

I just attempted to install Aporia via nimble and received the following error:

Hint: CustomStatusBar [Processing]
CustomStatusBar.nim(41, 24) Error: undeclared identifier: 'False'
FAILURE: Execution failed with exit code 1

This is all on a completely fresh nim/nimble install.

Also, the command shown on the readme no longer works. I needed to change aporia#head to aporia in order to get nimble to begin the installation (thus, the command which was run was nimble install aporia).

Definition retrieval failed on Windows 7

Running on devel: 11/13/2014 9e00d3aec2da69c23cdb5dba0e3f654e99ded379
Aporia: 10/15/2014 e5d144c

On Windows 7.

Tried using -d:release -d:useWinAnsi from bug #44

That didn't help. Tried nimble build, nimble install and also tried nim c aporia.nim

Also couldn't find the "dist" directory for pcre.dll.

"The dll for this can be found in Nimrod's repo, in the "dist" directory. Just copy it into aporia's directory or somewhere into your PATH."

I downloaded from http://gnuwin32.sourceforge.net/packages/pcre.htm and renamed pcre3.dll to pcre.dll.

it also appears to suggestions are not working. Could be the same problem.

Also on launch I'm getting this error 4 times.

(aporia.exe:15212): Gtk-CRITICAL **: gtk_accel_group_connect: assertion 'accel_k
ey > 0' failed

crash on win8

on my win8 installtion aporia crashes on startup with this stacktrace:
Traceback (most recent call last)
aporia.nim(1959) aporia
aporia.nim(1887) initControls
suggest.nim(394) createSuggestDialog
suggest.nim(321) TreeView_SelectChanged
SIGSEGV: Illegal storage access. (Attempt to read from nil?)

it used to work. I get this error now after I recompiled it with actual nimrod from git

Readme adjustments

Readme needs...

  • ... to talk about the PCRE dependency and how to get it.
  • ... to talk about the scenario where a user already has GTK+ on their system.
  • ... Win64 links

the editor doesn't works

Hi..I compile aporia for w7 x86 using nimrod, seems to be compiled ok but the editor is freeze, the windows works, I can select files,open it...but the editor is totally freeze and when I resize the screen the editor keep its size...

I suppose than it can be a GtkSourceView problem, I copied this file (as you say in the installation manual) but it doesn't works...

what is exactly pcre file?..can be an error with this file?...I copied this to the aporia directory but when I start aporia the first time shows than that files can't be found, that was the lonely error than the console shows me and was only the first time...

Open file specified in compilation output run

Compiling in Aporia shows a window with the output and a tab with an error list. Clicking on an item on the error list will jump the cursor to the specified line/column. However, if the file is not open the editor shows an unhelpful Could not find correct tab alert dialog rather than opening the related file.

Cannot Compile on Ubuntu 13.04 (64bit)

Hey all

Looked through the issues list, saw other people with the same problem on Mac and another platform (wasn't stated) but no answer on how to get around it.

Running Ubuntu 13.04 64bit, I've got Nimrod compiled from the git HEAD (0.9.3 I believe) and Aporia HEAD as well, and still no luck. The error I get is:

search.nim(211, 4) Error: internal error: expr(nkYieldStmt); unknown node kind
No stack traceback available

Any ideas on what the issue is? I tried moving back to some previous Tags and still had no luck :(

Cheers

Bug: Suspected ISO to UTF8 problem - Aporia does not handle non-UTF8 input properly, or so it seems, and fails to load the whole file.

Hello.

As stated on IRC, this problem arises when my source file contains non-UTF8 characters.

Aporia will then report an error such as this here on the terminal:

Gtk-CRITICAL **: gtk_text_buffer_emit_insert: assertion `g_utf8_validate (text, len, NULL)' failed

My file in question had something like this here as part of itself:

@default_colour = 'green' # gehört zwar nit dazu, aber zu reset.

Note the "ö" character, which is the german umlaut for "oe".

If that character is removed, the same file loads fine in Aporia.

This is not a important issue, but I regard it still as a bug in Aporia.

I propose to fix this in either (or all) of the following ways:

  • When the encoding is invalid, notify the user about it in Aporia.

gedit is doing something similar, it display a red bar on the top and
tells you that the encoding is not as expected. And then you can
force load it, or assume another encoding. Aporia could at least
flash a little red warning bar or something to indicate this problem
of a wrongful encoding. (Let's keep it simple - just a little warning
box text with red background and black font colours perhaps.
This should be very easy to do in GTK.)

  • Another way could be to automatically assume a certain Encoding
    like ISO-*-1 or similar, when such an invalid character is encountered.

For instance, the Unix utilty "file" reports this about the file in question:

file question_answer.rb

question_answer.rb: Ruby script, ISO-8859 text

By the way, perhaps Aporia could get a new menu option, something
like Encoding, or "-> Set Encoding (to: Unicode, ISO etc..)

This is what Geany is doing.
Bluefish too, in a way. At least the file is loaded.

In my opinion, perhaps the default way for Aporia should be to
try to load the given file, even if there are errors, because right
now it refuses to load the whole file even if there is an error.

Tabulation to spaces convertor

Most code editors has this for convenience (and vice versa). Some uses the standard rule for tabulation to spaces conversion (4 spaces per tabulation), while others like geany pops up a dialog asking how many spaces should be used for each tabulation. This would be a nice feature to add to Aporia ;)

Compiling Aporia on Windows

I have ran into a couple of issues compiling Aporia.

  1. When trying to compile, I get the error below. I corrected this error by commenting out 'tlsEmulation' in aporia.cfg.
C:\Users\alex\Downloads\Araq-Nimrod-cbc4cca (1)\Araq-Nimrod-cbc4cca>nimrod c "C:
\Users\alex\Downloads\nimrod-code-Aporia-3e8853b\nimrod-code-Aporia-3e8853b\apor
ia.nim" --skipCfg
Hint: used config file 'C:\Program Files\Nimrod\config\nimrod.cfg' [Conf]
C:\Users\alex\Downloads\nimrod-code-Aporia-3e8853b\nimrod-code-Aporia-3e8853b\ap
oria.cfg(5, 14) Error: invalid command line option: 'tlsEmulation'
  1. My second issue is:
C:\Users\alex\Downloads\nimrod-code-Aporia-3e8853b\nimrod-code-Aporia-3e8853b\ty
pes.nim(102, 29) Error: undeclared identifier: 'void'

I did not figure out how to fix this though.

Compiling doesn't work when..

Compiling won't work when you have multiple files open and you try to compile each individually. The output won't update anymore.

To reproduce this, open Aporia. Open two files. Try to compile the first one. Then go to the second file and try to do that.

Create debian executable

To make usage on Ubuntu/Debian easier, you could potentially provide a debian executable with releases.

can't compile on Mac OS X

Hi,
I use nimrod from git head and aporia sources from git head. When I try to compile on MacOS X I get this error:
Aporia/search.nim(211, 4) Error: internal error: expr(nkYieldStmt); unknown node kind

I can compile on linux and on windows. So this error is strange - I don't know if it is aporia or nimrod related.

can't build Aporia on OS X 10.9

nimrod and babel both cloned from Github and built on OS X 10.9 (Mavericks).

Cloned Aporia from Github and tried building by executing babel build, which fails with the following log:

Looking for gtk2 (>= 1.0)...
Dependency already satisfied.
Building aporia/aporia using c backend...
Hint: used config file '/Users/eep2ak/Nimrod/config/nimrod.cfg' [Conf]
Hint: used config file '/Users/eep2ak/funwithlangs/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: os [Processing]
Hint: strutils [Processing]
Hint: parseutils [Processing]
Hint: times [Processing]
Hint: posix [Processing]
Hint: osproc [Processing]
Hint: strtabs [Processing]
Hint: hashes [Processing]
Hint: streams [Processing]
Hint: sequtils [Processing]
lib/pure/osproc.nim(268, 13) Warning: 'startCmd' is deprecated [Deprecated]
lib/pure/osproc.nim(292, 19) Warning: 'startCmd' is deprecated [Deprecated]
lib/pure/osproc.nim(300, 14) Warning: 'startCmd' is deprecated [Deprecated]
lib/pure/osproc.nim(836, 10) Warning: 'startCmd' is deprecated [Deprecated]
Hint: pegs [Processing]
Hint: unicode [Processing]
Hint: parseopt [Processing]
lib/pure/parseopt.nim(54, 34) Warning: 'quoteIfContainsWhite' is deprecated [Deprecated]
aporia.nim(12, 29) Warning: 'parseopt' is deprecated [Deprecated]
Hint: asyncio [Processing]
Hint: sockets [Processing]
Hint: unsigned [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, 8) Hint: 'tid' is declared but not used [XDeclaredButNotUsed]
utils.nim(485, 10) Warning: 'quoteIfContainsWhite' is deprecated [Deprecated]
utils.nim(495, 14) Warning: 'quoteIfContainsWhite' is deprecated [Deprecated]
utils.nim(497, 12) Warning: 'quoteIfContainsWhite' is deprecated [Deprecated]
Hint: cfg [Processing]
Hint: parsecfg [Processing]
Hint: lexbase [Processing]
cfg.nim(55, 16) Warning: 'quoteIfContainsWhite' is deprecated [Deprecated]
cfg.nim(233, 6) Warning: 'nil' statement is deprecated; use an empty 'discard' statement instead [NilStmt]
cfg.nim(277, 6) Warning: 'nil' statement is deprecated; use an empty 'discard' statement instead [NilStmt]
cfg.nim(334, 6) Warning: 'nil' statement is deprecated; use an empty 'discard' statement instead [NilStmt]
Hint: search [Processing]
Hint: re [Processing]
Hint: pcre [Processing]
search.nim(60, 6) Hint: 'brackets' is declared but not used [XDeclaredButNotUsed]
search.nim(120, 6) Hint: 'matches' is declared but not used [XDeclaredButNotUsed]
Hint: suggest [Processing]
Hint: processes [Processing]
processes.nim(328, 58) Warning: 'poUseShell' is deprecated [Deprecated]
processes.nim(327, 28) Info: instantiation from here
processes.nim(327, 28) Info: instantiation from here
lib/pure/osproc.nim(620, 4) Error: internal error: analysis not implemented for: nkFinally
No stack traceback available
FAILURE: Execution failed with exit code 1

Notice the Error: internal error: analysis not implemented for: nkFinally. I inspected the code in osproc.nim and there doesn't appear to be any try clause to correspond with the finally.
I know absolutely no nimrod yet - my intention was to set up Aporia first before trying to learn it - so I'm not really interested in attempting to fix this issue.

[linux] Running an infinit loop crashes Aporia

Making a simple infinite loop and trying to stop it through 'Terminate current process' crashes the program. The loop is still running in the background and you have to kill it manually.

Loop example:

while True:
var i = 0

Other more elaborate loops also crash the program.

Won't compile in Windows 7

Not sure what to do about this:
aboutdialog.nim(22, 14) Error: ambiguous call; both set_position(window: PWindow, position: TWindowPosition) and set_position(a: PWindow, position: guint) match for: set_position

From compile:
Hint: used config file 'C:\Users\BruceAxtens\Documents\Nimrod\config\nimrod.cfg' [Conf]
Hint: used config file 'c:\users\bruceaxtens\downloads\nimrod-code-aporia-8edfdff\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]
c:\users\bruceaxtens\documents\nimrod\lib\pure\sockets.nim(271, 16) Hint: 'a' is declared but not used [XDeclaredButNotUsed]
c:\users\bruceaxtens\documents\nimrod\lib\pure\asyncio.nim(151, 16) Hint: 'a' is declared but not used [XDeclaredButNotUsed]
Hint: settings [Processing]
Hint: utils [Processing]
Hint: aboutdialog [Processing]
aboutdialog.nim(22, 14) Error: ambiguous call; both set_position(window: PWindow, position: TWindowPosition) and set_position(a: PWindow, position: guint) match for: set_position

Locked Files

When you open a file and later close the tab, the file remains locked under Windows.

Error: unhandled exception: value out of range: 55679 [EOutOfRange]

compiled nimrod source (11/16/13) on ubuntu 13.10
with gcc (Ubuntu/Linaro 4.8.1-10ubuntu8) 4.8.1 -> success
compile Aporia source -> success

/aporia
Traceback (most recent call last)
aporia.nim(2329) aporia
aporia.nim(2305) checkAlreadyRunning
sockets.nim(418) connect
sockets.nim(159) $
Error: unhandled exception: value out of range: 55679 [EOutOfRange]

read in forum, 55679 might be port.
then as root
netstat -antp | grep 55679 shows nothing
meaning it is open for aporia

Aporia stops working.

So I dicsovered the Nim language yesterday and thought to give it a shot today.
Aporia worked fine to test some small stuff, but when I started it back up I got this message:
SIGSEGV: Illegal storage access. (Try to compile with -d:useSysAssert -d:useGcAssert for details.)

However, I figured pretty fast what caused it.
To reproduce the bug:

  1. Start Aporia and type some simple code like echo("Hello")
  2. Compile and run (F5)
  3. Close Aporia without saving
  4. Start Aporia

What causes this to crash is found in ~/.config/Aporia/config.auto.ini
[session]
tabs = r"/tmp/aporia/a0.nim|13;"
lastSelectedTab = r"/tmp/aporia/a0.nim"

That temporary file is, well, temporary, and may not exist when Aporia starts.
Resetting "tabs" and "lastSelectedTab" makes Aporia work again.

This issue can be somewhat discomforting in case someone deletes a source file that was on a previous session, causing Aporia not to start.

Summary: Aporia crashes when one of the files on previous session don't exist anymore.

GC safety of handleRead in initSocket()

After e6d17 in asyncio.nim - made handleRead and other procs GC-safe - there's a type mismatch with initSocket()'s handleRead (it needs to be declared with the gcsafe and closure pragmas).

I tried adding the {.gcsafe, closure.} pragmas to the anonymous proc's, but then got this:

aporia.nim(2192, 8) Error: ':anonymous' is not GC-safe

I think it's because it's accessing the 'win' object?

It will still compile with

nimrod --threadanalysis:off c aporia.nim

but I thought it would be worth an FYI.

Thanks!

Weird opening of multiple tabs with same filename

When using the File->Open option, if the selected file is already open, the editor will just switch to the tab holding this file. However, if you quit the editor with the tab open, then run aporia filename the editor will not check previously opened tabs and open a second one. You can quit and rerun with the same command to generate as many cloned tabs as you want.

While the tabs are open the console keeps spewing the following messages:

(<unknown>:59891): Gtk-CRITICAL **: gboolean gtk_widget_event(GtkWidget *, GdkEvent *): assertion `WIDGET_REALIZED_FOR_EVENT (widget, event)' failed

(<unknown>:59891): Gdk-CRITICAL **: void gdk_window_invalidate_rect_full(GdkWindow *, const GdkRectangle *, gboolean, ClearBg): assertion `GDK_IS_WINDOW (window)' failed

Build failure: suggest.nim(15, 10) Error: cannot open 'rst'

Building Aporia using Nimrod bootstrapped from Git on Arch Linux, I get the following warnings and error:

/etc/nimrod.cfg(36, 11) Hint: added path: '/home/miki/.babel/libs/' [Path]
Hint: used config file '/etc/nimrod.cfg' [Conf]
Hint: used config file '/home/miki/pkg/vcs/aporia-git/src/Aporia-build/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: os [Processing]
Hint: strutils [Processing]
Hint: parseutils [Processing]
Hint: times [Processing]
Hint: posix [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
lib/nimrod/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
lib/nimrod/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
lib/nimrod/pure/streams.nim(179, 21) Info: instantiation from here
lib/nimrod/pure/streams.nim(117, 14) Info: instantiation from here
lib/nimrod/pure/streams.nim(76, 26) Warning: thread analysis incomplete due to unknown call 's.readDataImpl(s, buffer, bufLen)' [AnalysisLoophole]
suggest.nim(15, 10) Error: cannot open 'rst'

From searching around, I suspect that I get the error because Nimrod's install.sh doesn't actually install any files from ${NIMROD_GITROOT}/lib/packages/docutils, including rst.nim, to the system. I don't know about the warnings, as I'm still very new to Nimrod :-)

Can't run idetools support on mac

The Tools->Compile current file command works on mac (with the default $findExe(nimrod) c $#), but trying to jump to a definition or use suggestions sends the following output to the console:

Populating suggest.
Saving /tmp/aporia/suggest/aporia.nim
 idetools --path:/tmp/ --path:/Users/gradha/project/nimrod/Aporia --track:/tmp/aporia/suggest/aporia.nim,69,6 --suggest /tmp/aporia/suggest/aporia.nim
sh: idetools: command not found

[Warning] No items found for suggest

This suggests the idetools command is not using the same binary finding mechanism as the compile command and there is no other configuration option to specify directly the path to the nimrod binary for idetools support.

Also, better command result detection would be nice, because the user doesn't see anything wrong unless checking the console output. There is no UI level alert that something wrong went running the external command.

"SIGSEGV: Illegal storage access" running Aporia on OSX

Cloned latest Aporia from git, nim also running from latest Git.
Installed gtk+ via Homebrew (needed glib pango gtk+ gtksourceview)
On running Aporia, I get the following stacktrace.

Traceback (most recent call last)
aporia.nim(2454) aporia
aporia.nim(2386) initControls
aporia.nim(2125) initTAndBP
aporia.nim(2110) initBottomTabs
SIGSEGV: Illegal storage access.

nimble install no longer works?

Can't seem to install via nimble (babel) anymore:

C:\Nim>nimble install aporia#head
Local packages.json not found, download it from internet? [y/N]
y
Downloading package list from https://github.com/nim-lang/packages/raw/master/packages.json
Done.
aporia#head not found in local packages.json, check internet for updated packages? [y/N]
y
Downloading package list from https://github.com/nim-lang/packages/raw/master/packages.json
Done.
Traceback (most recent call last)
nimble.nim(836)          nimble
nimble.nim(811)          doAction
nimble.nim(615)          install
nimble.nim(617)          install
Error: unhandled exception: Package not found. [ENimble]

I also noticed it still says babel install in the README.

Won't compile in Windows 7 with 0.8.15

..\bin\nimrod c aporia.nim
Hint: used config file 'C:\MinGW\msys\1.0\home\BruceAxtens\Araq-Nimrod-8d90464\config\nimrod.cfg' [Conf]
Hint: used config file 'c:\mingw\msys\1.0\home\bruceaxtens\araq-nimrod-8d90464\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: settings [Processing]
Hint: utils [Processing]
Hint: aboutdialog [Processing]
Hint: cfg [Processing]
Hint: parsecfg [Processing]
Hint: lexbase [Processing]
Hint: search [Processing]
Hint: re [Processing]
Hint: pcre [Processing]
search.nim(35, 14) Hint: 'brackets' is declared but not used [XDeclaredButNotUsed]
search.nim(93, 13) Hint: 'matches' is declared but not used [XDeclaredButNotUsed]
Hint: suggest [Processing]
suggest.nim(54, 12) Warning: get_size is deprecated, get_width should be used [User]
Hint: processes [Processing]
processes.nim(296, 12) Info: instantiation from here
c:\mingw\msys\1.0\home\bruceaxtens\araq-nimrod-8d90464\lib\pure\streams.nim(41, 41) Warning: thread analysis incomplete due to unknown call 's.closeImpl(s)' [AnalysisLoophole]
processes.nim(306, 17) Info: instantiation from here
c:\mingw\msys\1.0\home\bruceaxtens\araq-nimrod-8d90464\lib\pure\streams.nim(50, 23) Warning: thread analysis incomplete due to unknown call 's.atEndImpl(s)' [AnalysisLoophole]
processes.nim(309, 21) Info: instantiation from here
c:\mingw\msys\1.0\home\bruceaxtens\araq-nimrod-8d90464\lib\pure\streams.nim(178, 21) Info: instantiation from here
c:\mingw\msys\1.0\home\bruceaxtens\araq-nimrod-8d90464\lib\pure\streams.nim(116, 14) Info: instantiation from here
c:\mingw\msys\1.0\home\bruceaxtens\araq-nimrod-8d90464\lib\pure\streams.nim(75, 26) Warning: thread analysis incomplete due to unknown call 's.readDataImpl(s, buffer, bufLen)' [AnalysisLoophole]
aporia.nim(794, 15) Error: ambiguous identifier: 'DELETE' -- use a qualifier

aporia crashes with suggest ..

in about 80% of the time when I enter a for loop with 0 .. aporia crahes when I press the second .

the suggest feature is on
platform linux 64 bit
latest aporia, compiled with latest nimrod

forgot to append the log
Traceback (most recent call last)
aporia.nim(2287) aporia
aporia.nim(582) SourceViewKeyRelease
suggest.nim(335) doSuggest
suggest.nim(280) populateSuggest
suggest.nim(199) asyncGetSuggest
osproc.nim(672) terminate
os.nim(205) OSError
Error: unhandled exception: Kein passender Prozess gefunden [EOS]

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.