summaryrefslogtreecommitdiff
path: root/scheme
AgeCommit message (Collapse)Author
2016-01-25Fixes a potential endless loop.Dan Leslie
2016-01-19Fuzzy matching for Chicken AutoDoc and CompletionsDan Leslie
Because Chicken allows symbols to be imported with prefixes, and because 'apropos' does not provide any utility to match with the loaded prefixes, it is difficult to acquire information about prefixed symbols. This solution hacks around the issue by providing naive fuzzy-matching. If no match for a symbol can be found then the first character is dropped and matching is attempted again; the process is repeated until matches are found or the entire symbol is consumed. Also removes the (now redundant and slow) geiser-chicken-prefix-delimiters.
2015-12-31Performance ImprovementsDan Leslie
No longer rely on Apropos for matching. Apropos would perform a slow substring or regex search at every call; as well as rebuilding the entire list of available symbols. Now the list of symb
2015-12-14Fixing guile 2.2 compatibilityJose Antonio Ortega Ruiz
2015-12-14Support for guile-2.2Jose Antonio Ortega Ruiz
Using cond-expand to provide support for the new world of guile 2.2
2015-12-05Minor cleanupDan Leslie
Exposes geiser-load-paths, makes add-to-load-path and find-file 'unsafe'. Those needn't be memoized and would be strange if they are. This should finish fixing jaor/geiser#114
2015-12-05Minor changes to help with debugging completionsDan Leslie
2015-12-05No longer show arguments as strings.Dan Leslie
That was annoying.
2015-12-05Right-most character of arguments was being cutDan Leslie
2015-12-05Allows redefinition of modulesDan Leslie
If one were to re-evaluate a buffer with a module in it there would be problems because it would appear as a nested request. Solution: - Check if a module definition is a fore-most request, and if so, evaluate at top level
2015-12-05Fixes for Literals, Errors and ModulesDan Leslie
If literals were present chicken wouldn't provide any autodocumentation due to an error. Module evaluation was failing due to poor input. Chicken's Error output was failing to parse - Filter out all non-symbols from the autodoc set - Properly escape module names - Add "Error" to the set of accepted error prefixes
2015-10-03Stopped over-aggressive memoizationDan Leslie
It doesn't make sense to memoize the following: geiser-start-server geiser-macroexpand
2015-10-03Minor improvementsDan Leslie
Removed the unnecessary csi reference Added a flag to force build an so
2015-10-03Turn off debug logDan Leslie
2015-10-03Adds memoizationDan Leslie
Clears memo when anything other than a safe geiser call is made. Removes the last calls to regex within the thing
2015-10-03Converts toplevel methods to prefixed methodsDan Leslie
This seems to improve speed; in a large environment I witnessed a regular 100ms increase in speed for autodoc.
2015-10-03Refactored to reduce the reliance on regex.Dan Leslie
Improves speed by an order of magnitude.
2015-09-13Sorted and line-split crunch symbols.Dan Leslie
2015-09-11Added missing macrosDan Leslie
2015-09-11Adds recognition of the 'crunch' R5RS subsetDan Leslie
Crunch is a subset of R5RS that the crunch egg can heavily optimize via c++ compilation. This change allows geiser to report to chicken programmers whether the function is found within that subset, easing development. Details on the crunch egg can be found at: http://wiki.call-cc.org/eggref/4/crunch
2015-09-10Speeding up debugger check (addresses #64)Jose Antonio Ortega Ruiz
Soooo, the long delay experienced when evaluating long string lists in Guile had nothing to do with the time took by emacs to read the response from the scheme process; that process is always a breeze, no matter or its format or number of newlines. The delay was provoked by an innocent looking function that scans the received string (which includes a prompt at the end as an EOT marker) to check whether Guile (or any other scheme) has just entered the debugger (that's done inside `geiser-con--connection-update-debugging`). For some reason, `string-match` on that kind of string using Guile's regexp for a debug prompt takes forever. Instead of trying to optimize the regular expression, i've just applied it to the *second* line of the received string, which is the one that contains the response's prompt.
2015-09-08Ensuring switch-to-geiser asks for an implementationJose Antonio Ortega Ruiz
Should fix issue #85
2015-09-03guile: pretty printing evaluation results (#64)Jose Antonio Ortega Ruiz
We use the same trick as chicken for guile, and pretty-print the evaluation results before writing them. The trick wasn't working at all until i specified a value for the undocumented keyword parameter `#:max-expr-width`, which makes me think i might be missing something.
2015-08-31Merge remote-tracking branch 'dleslie/faster-output-handling'Jose Antonio Ortega Ruiz
2015-08-29The issue arose with numerics, as well.Dan Leslie
This change should fix it for most any input.
2015-08-29Fixes an issue where symbol->string was failingDan Leslie
In some instances apropos-information-list returns a string and not a list of symbols; this is the case for Chicken's builtins, like C_plus. IE, the following would fail: (geiser-autodoc #f '(+)) This fixes jaor/geiser#72
2015-08-28Use pretty-print instead of write with ChickenDan Leslie
Emacs chokes on buffers with very long lines. Use of pretty-print instead of write causes most incidents of long lines to be avoided by use of better formatting. This fixes jaor/geiser#64 for Chicken, and appears to greatly speed up completions in the general case for Chicken.
2015-05-17Various improvementsDan Leslie
- Can now optionally compile Geiser components for enormous speed improvements; enabled by default - Apropos was returning many duplicates, which was causing slowdowns; duplicates are now filtered - Now check for #<unspecified> results and return something - Fixed a typo in a comment - Fixed a typo in calling string-length
2015-02-09Documentation updates and nits for FreijaJose Antonio Ortega Ruiz
Preparing the release of 0.7, which will feature support for Chicken thanks to Dan and Freija!
2015-02-09Initial Chicken supportDan Leslie
2014-12-31Racket: displaying graphics in structured objectsJose Antonio Ortega Ruiz
By hooking the pretty-printer, as discovered by Greg in issue #49. To attain nirvana, we would still need (display (list graph)) to work...
2014-12-29Racket: show images with print, write and displayJose Antonio Ortega Ruiz
Up to now, we were only displaying images when printed as values by the REPL, but not when image values were explicitly print-ed, write-d or display-ed. This patch solves that problem by installing (semi) appropriate port-{print,write,display}-handler. This is still and incomplete solution in that those handlers (as well as the already installed current-print-handler) don't recurse over a value's structure and won't produce images embedded in other data structures, as discussed in issue #49.
2014-01-18Racket: no more re-enter notifications (issue #25)Jose Antonio Ortega Ruiz
2014-01-18Racket: fix for recompilation of typed/racket modulesJose Antonio Ortega Ruiz
When using our current-load/used-compiled function, we were compiling the syntax of a module using compile, which seems to not honour With luck, this should address bug #14 for real.
2014-01-09Racket: fix for evaluations inside typed/racket modulesJose Antonio Ortega Ruiz
When evaluating (re)definitions in a typed module, it's necessary that the form evaluated is wrapped with #%top-interaction, so that typed racket's redefinition of that macro enters into play and the system records the type information of the new value. Many thanks to Sam Tobin-Hochstadt for the tip, and for his encouraging words.
2014-01-09Racket: duplicate version check removedJose Antonio Ortega Ruiz
We used to check for a good racket version during its start-up, but these days we already have an independent version check before that.
2013-09-13Guile: augmenting %load-compiled-path tooJose Antonio Ortega Ruiz
We add the paths in geiser-guile-load-path also to %load-compiled-path, and new directories added to the load path via geiser-add-to-load-path are added to both %load-path and %load-compiled-path. Here's hope Ludovic will like all these additions!
2013-07-02Debug code removedJose Antonio Ortega Ruiz
2013-06-27Racket: not loading errortrace by defaultJose Antonio Ortega Ruiz
The new submodules and errortrace interact badly, for what i've seen. In particular, even with the submodule[+*] loading correctly, its namespace doesn't have all identifiers bound, and new ones seem to appear in the bindings lists (things like a.1 or b.2, when a and b are the actual identifiers defined inside the module). Since moreover someone mentioned in the devel ML that errortrace is in general terms buggy, i guess we can leave without it for the time being.
2013-06-11racket: ,cd accepting also non-quoted pathsJose Antonio Ortega Ruiz
just because we can
2013-06-11racket: struggling with submodulesJose Antonio Ortega Ruiz
Submodule (re)loading is not without pecularities. In particular, module[*+] submodules are not visited the first time one enters its parent, but once you load them once, they're revisited every time we load the parent afterwards--racket's native enter! exhibits the same behaviour, so i'm guessing we'll have to live with that. There is however a glitch in that submodules can only be reloaded then by loading the parent, so we need to confirm that this is expected behaviour and, if it is, automating the parent's load when the submodule's is requested. On the other hand, entering a module[*+] is not working in Geiser yet, and it does in plain racket, so this one is our fault. Working on it.
2013-06-10racket: new ,geiser-load command in REPLJose Antonio Ortega Ruiz
... and used also internally for C-c C-k, although it doesn't yet work as well as i wanted when it comes to load modules. The reason is probably in geiser/enter, where we don't record modification times per submodule but per path, which is not correct in the presence of submodules.
2013-06-10NitsJose Antonio Ortega Ruiz
2013-06-09racket: C-u C-c C-z on a submodule enters itJose Antonio Ortega Ruiz
2013-06-09racket: handling correctly submodules in load handler during ,enterJose Antonio Ortega Ruiz
That is, complying to the submodule loading protocol (cf. racket's own enter!).
2013-06-08racket: ,gcd -> ,pwdJose Antonio Ortega Ruiz
And we display it (the current path, settable via ,cd) as a string. This was, i'm sure, a secret command nobody is using!
2013-06-08racket: ,enter submodulesJose Antonio Ortega Ruiz
It is now possible to ,enter racket submodules. This is only the first part of the story, because evalations should take place in the submodule, not in its top level module, as it happens now.
2013-06-04Guile: Fix subr argument name retrieval for Guile >= 2.0.9.Ludovic Courtès
2013-04-15Racket: ensuring the first C-c C-d C-i worksJose Antonio Ortega Ruiz
... by the obvious device of waiting for the thread building the index to finish.
2013-04-15Racket: fixing help when REPL is in a moduleJose Antonio Ortega Ruiz
The evaluation of the help form must happen in a good enough namespace.