Code Monkey home page Code Monkey logo

hoogle's Introduction

Hoogle Hackage version Stackage version Build status

Hoogle is a Haskell API search engine, which allows you to search many standard Haskell libraries by either function name, or by approximate type signature. The online version can be found at https://hoogle.haskell.org/ and searches Stackage.

Hoogle Use

Hoogle can be used in several ways:

Searches

Searching

Here are some example searches:

  • map searches as text, finding map, concatMap, mapM
  • con map searches for the text "map" and "con" finding concatMap, but not map
  • a -> a searches by type, finding id :: a -> a
  • a searches for the text "a"
  • :: a searches for the type "a"
  • id :: a -> a searches for the text "id" and the type "a -> a"

Scope

By default, searches look at the Haskell Platform and Haskell keywords. However, all Stackage packages are available to search. As some examples:

  • mode +cmdargs searches only the "cmdargs" package
  • file -base searches the Haskell Platform, excluding the "base" package
  • mode +platform +cmdargs searches both the Haskell Platform and the "cmdargs" package
  • count +missingh searches only the "MissingH" package - all packages are written in lower-case

With the set of packages you are searching, you can also restrict the set of modules searched:

  • file -System excludes results from modules such as System.IO, System.FilePath.Windows and Distribution.System
  • fold +Data.Map finds results in the Data.Map module

Integration

Command Line Version

To invoke Hoogle type:

$ hoogle "[a] -> [b]"

Note the quotes, otherwise you will redirect the output to the file [b].

To ensure you have data files for the Hackage modules, you will first need to type:

$ hoogle generate

Which will download and build Hoogle databases.

Command Line UI

There is a terminal/curses based UI available through cabal install bhoogle.

Chrome Integration

As a keyword search: With a keyword search you can type h map directly into the location bar to perform a Hoogle search. Go to the Hoogle website in Chrome, right-click in the Hoogle search field and select "Add as a search engine...". Give it a keyword such as "h".

Firefox Integration

From the search bar: Go to the Hoogle website in Firefox and click on the symbol at the right of the URL bar, and select the "Add Search Engine" option. Click the hoogle logo at the bottom of the completion dropdown when searching to perform a Hoogle search.

As a keyword search: With a keyword search you can type h map directly into the location bar to perform a Hoogle search. Go to the Hoogle website in Firefox, right-click in the Hoogle search field and select "Add a Keyword for this Search...". Given it a keyword such as "h".

Others

The Source Code

$ git clone https://github.com/ndmitchell/hoogle.git

Contributions are most welcome. Hoogle is written in Haskell 98 + Heirarchical Modules, I do not wish to change this. Other than that, I'm pretty flexible about most aspects of Hoogle. The issue tracker has many outstanding tasks, but please contact me if you have thoughts on doing something major to Hoogle, so I can give some advice.

Background

Hoogle work is licensed under the BSD-3-Clause license.

Theoretical Foundations

A lot of related work was done by Rittri [1] and Runciman [2] in the late 80's. Since then Di Cosmo [3] has produced a book on type isomorphisms. Unfortunately the implementations that accompanied the earlier works were for functional languages that have since become less popular.

  1. Mikael Rittri, Using Types as Search Keys in Function Libraries. Proceedings of the fourth international conference on Functional Programming languages and Computer Architecture: 174-183, June 1989.
  2. Colin Runciman and Ian Toyn, Retrieving reusable software components by polymorphic type. Journal of Functional Programming 1 (2): 191-211, April 1991.
  3. Roberto Di Cosmo, Isomorphisms of types: from lambda-calculus to information retrieval and language design. Birkhauser, 1995. ISBN-0-8176-3763-X

I have given several presentations on type searching all available from my home page.

Project Structure

The folders in the repository, and their meaning are:

cbits - C implementation of the text search used by hoogle

docs - documention on hoogle

html - resources for hoogle's web front-end (html, css, javascript, images, etc.)

misc - scripts, logos, sample data, etc.

src - haskell source code

Similar Tools

I was unaware of any similar tools before starting development, and no other tool has really influenced this tool (except the first on this list). Some related tools are:

  • Google, the leader in online search
  • Hayoo, similar to Hoogle, but with less focus on type search
  • Krugle, search code, but no Haskell :(
  • Cloogle, for the Clean language

Acknowledgements

All code is all © Neil Mitchell, 2004-present. The initial version was done over my summer holiday, and further work was done during my PhD. During Summer 2008 I was funded to full-time on Hoogle by Google Summer of Code with the haskell.org mentoring organisation. Since then I have been working on Hoogle in my spare time. Various people have given lots of useful ideas, including my PhD supervisor Colin Runciman, and various members of the Plasma group. In addition, the following people have also contributed code or significant debugging work:

  • Thomas "Bob" Davie
  • Don Stewart
  • Thomas Jager
  • Gaal Yahas
  • Mike Dodds
  • Niklas Broberg
  • Esa Ilari Vuokko
  • Udo Stenzel
  • Henk-Jan van Tuyl
  • Gwern Branwen
  • Tillmann Rendel
  • David Waern
  • Ganesh Sittampalam
  • Duncan Coutts
  • Peter Collingbourne
  • Andrea Vezzosi
  • Ian Lynagh
  • Alfredo Di Napoli

In previous versions, all the data was taken from Zvon's Haskell Guide. Thanks to their open and friendly policy of allowing the data to be reused, this project became possible. More recent versions use the Hierarchical Libraries as distributed with GHC, and databases generated by Haddock.

Interesting links

hoogle's People

Contributors

23skidoo avatar alien11689 avatar cipherwraith avatar cocreature avatar dwijnand avatar expipiplus1 avatar fendor avatar gaverhae avatar gcrispino avatar hdgarrood avatar iammrinal0 avatar jchia avatar joncoens avatar kenta2 avatar lennart avatar louislebrault avatar luntain avatar matt-noonan avatar mbbx6spp avatar mdorman avatar meck avatar mhitza avatar ndmitchell avatar obfusk avatar profpatsch avatar psiska avatar rjsonnenberg avatar snoyberg avatar taktoa avatar wz1000 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

hoogle's Issues

Hoogle combine eats all my memory

I used the combine bash script to combine all .hoo files into one, but it doesn't complete because hoogle combine on those 3000 files loads them all strictly into memory, and 8GB is not enough for it.

Is it necessary for combine to load them all into memory or could we do it with lower/constant memory usage?

This would be cool to finally get to a point where hoogle can index all of Hackage, or at least all of my locally installed packages.

(I also think that it should be made clear somewhere in the docs that this doesn't work yet.)

Use hackage dependency count to rank "of a kind" matches

If you search for "Map" right now in the current Hoogle (the one in this github repository), Data.Map from containers will be many places down on the list, because there are many exact matches for the Map type and module, and Hoogle lists these exact matches alphabetically.

What I think should happen is that we use Hackage's dependency data to give each hit a ranking based on how widely used the package it's in is. That is, we count the number of packages in Hackage that depend on every other package, and this number is used to sort like-kinded matches.

With this scheme, "Map" will find Data.Map from containers before anything else, simply because containers is used more heavily than all the other packages containing Map as a typename or module name.

hoogle Error with "hoogle data all"

Hi,

with a freshly installed haskell-platform 2013.2.0.0 and a hoogle 4.2.28 I got for

"hoogle data all"

the error:

hoogle: Error when running Shake build system:

  • all.hoo
  • reactive-glut.hoo
  • reactive-glut.txt
    downloads/hoogle/reactive-glut/0.1.6/doc/html/reactive-glut.txt: hGetContents: invalid argument (invalid byte sequence)

Regards,
Ulrich

Hoogle tarball fails cabal test

hoogle-4.2.19 fails the "cabal test" phase with the following error:

Running 1 test suites...
Test suite hoogle-test: RUNNING...
hoogle-test: datadir/testdata.txt: openFile: does not exist (No such file or directory)
Test suite hoogle-test: FAIL
Test suite logged to: dist/test/hoogle-4.2.19-hoogle-test.log
0 of 1 test suites (0 of 1 test cases) passed.

A complete build log is available at http://hydra.cryp.to/build/8829/nixlog/2/raw.

Can hoogle builds its database from anything different from hackage.haskell.org?

Hi Neil,

we would like to run our own private hoogle in production, indexing data from our own hackage server (which, comprehensibly has uploaded our own private source projects).

Said that, skimming through hoogle code, it seems to me that "hackage.haskell.org" is hardcoded in various places (e.g. src/Hoogle/Language/Haskell.hs and src/Recipe/All.hs), but to achieve what I'm asking should be possible somehow to pass the url via command line (in the same fashion we can pass the port number in hoogle server, just to give a tangible example).
Am I making sense? If yes, where do you think we should start to achieve that? src/CmdLine/Type.hs seems a good place to start, isn't it?

Thanks!
Alfredo

non-exhaustive patterns error on combine

After a "hoogle data all" I run into the following error:

Combining 4892 databases
hoogle: src/Hoogle/Store/All.hs:(116-19)-(123,40): Non exhaustive patterns in case

Using hoogle 4.2.32

hoogle data should be incremental

At the moment if you download a fresh set of data files, everything will regenerate. I should instead use oracles to depend on the Haddock and Cabal versions of a package, then only upgrade them if they change.

Nullary Constructors not shown

$ hoogle BufferMode
System.IO data BufferMode
GHC.IO.Handle data BufferMode
... (LineBuffering::BufferMode does not show up.
     Nor is it listed in hoogle -i BufferMode)

LineBuffering::BufferMode does not show up; nor is it listed in hoogle -i BufferMode.

$ hoogle LineBuffering
System.IO LineBuffering :: BufferMode
GHC.IO.Handle LineBuffering :: BufferMode

more detailed information from the JSON API

While making a custom template for a more Dash-like web UI for Hoogle I noticed the data provided by the JSON API is fairly aggregated. Most notably the name of things (e.g. fold, hoogle, ...) and the kind of things (function, package, ...) are not available separately but mixed together into 'self'

It would be nice if all the data were available before aggregation (I'm assuming name and e.g. 'package' are actually stored separately.) While it's not terribly difficult to reverse engineer the name and the kind from the single field it seems somewhat wrong, an API should provide data in a form that does not require parsing and guessing on caller side IMO.

Building with threaded

I run hoogle data -l -j4.

I get: hoogle: setNumCapabilities: not supported in the non-threaded RTS.

Maybe we should build with -threaded.

data all runs out of memory

Just repeating the memory issue I mentioned on reddit.

$ hoogle data all
Creating dph-seq.hoo... 
Killed

It seems to me like hoogle runs out of memory with data all. Please feel free to close this immediately if it's a known issue!

Hash sections of links are broken in different browsers

I am on Mac OS 10.7.5. This behavior seems odd, so let me know if any extra information would be useful.

Firefox 31 and Chrome 36

Searching for a function with symbol characters results in a link with a hash portion that seems to be corrupted, and doesn't jump to the right part of the page.

Example

Search for (.) and click on the first result. The URL bar displays http://hackage.haskell.org/package/base-4.7.0.1/docs/Prelude.html#v:-46-, which does not jump to the appropriate section.

Safari 6

The hash sections of links seem to never work and be removed in redirects.

Example

Search for map and click on the first result. The URL bar doesn't have a hash section in the URL after the redirects.

Hoogle not finding function when I loosen type constraints

If I perform (with Hoogle v4.2.34) the following search on the command prompt, then I get results :

> hoogle +Data.ByteString.Lazy.Char8 ":: ByteString -> Maybe (Int,ByteString)" | grep readInt
Data.ByteString.Char8 readInt :: ByteString -> Maybe (Int, ByteString)
Data.ByteString.Lazy.Char8 readInt :: ByteString -> Maybe (Int, ByteString)

However if I loosen the typeconstraint to be just :: ByteString then nothing is returned.

> hoogle +Data.ByteString.Lazy.Char8 ":: ByteString" | grep readInt

Is this happening because hoogle is limiting the results returned, and if so is there a way that I can remove this limit? Thanks

Too many open files with large number of databases

I ran hoogle data all and then wanted to combine it all to the default database.

✓ misaki shana % hoogle combine *.hoo                                                  % [P ~/.cabal/share/i386-linux-ghc-7.6.3/hoogle-4.2.26/databases ] [J 0 ] [L 28 ] 
Combining 4275 databases
hoogle: elm-yesod.hoo: openFile: resource exhausted (Too many open files)
✗ 1 misaki shana % hoogle --version                                                    % [P ~/.cabal/share/i386-linux-ghc-7.6.3/hoogle-4.2.26/databases ] [J 0 ] [L 29 ] 
Hoogle v4.2.26, (C) Neil Mitchell 2004-2012
http://haskell.org/hoogle

Offline boostrap support

Hi from the Debian Haskell Packaging group!

In Debian, we'd like to ship Hoogle in such a way that it doesn't use online resources: the package should ship with enough data such that it's possible to generate the local databases "offline" (from bootstrap + local packages).

This used to work via some local hacks (see http://anonscm.debian.org/cgi-bin/darcsweb.cgi?r=pkg-haskell/haskell-hoogle;a=headblob;f=/files_hoogle/update-hoogle) until recently, but (if I read the changes correctly) issue #47 changed the way it looks for local data.

Fixing our script is doable, but I'm worried that things might break again, and silently (like this time; we only found that newer hoogle downloads data from the internet by accident), so I'm wondering what are your thoughts about improving hoogle's bootstrap mode?

A couple of potential improvements that come to mind:

  • adding a flag "--no-download" which would make Hoogle abort if it can't find the required files
  • documenting the list of files needed for bootstrap; the local install document doesn't say anything about this

Thanks in advance for your feedback!

Could not find some databases

Hello,

I can't generate dabase:

$ hoogle data
Could not find some databases: default
Searching in:
  .
  /home/$USER/.cabal/share/hoogle-4.2.23/databases

There are no available databases, generate them with: hoogle data
$ ls ~/.cabal/share/hoogle-4.2.23
resources

I am using Fedora 18 Linux x86_64, ghc-7.4.1 (system package) and recently I tried to install ghc-7.6.3 with 2013.2 platform from source to /usr/local which failed so I removed it as well as ~/.ghc and ~/.cabal. System version of Cabal library is 1.14.0 and I have locally installed Cabal library 1.18.1.1.

It may be possible that I am in some inconsistent state, but I have no clue how to solve it from this error message.

Function coloring should happen in the input field

Currently the search term is repeated below the input field so it can be colored properly when showing a type search. I should use contenteditable=true so I can style the input and then the field itself can show the color.

Database directory on Linux

By default hoogle data generates its databases in /usr/share/hoogle-<version>/databases (on a global install). I think /var/lib/hoogle would be a better location on Linux platforms. Can you add a configure flag to choose the default database location. Thanks.

Subsequent runs of 'hoogle data' fail without -r option

"gzip --decompress --force .." </> takeFileName out <.> "tar.gz" deletes original .tar.gz file so subsequent runs of 'hoogle data' without -r option will fail on this step.
I see two options here: either skip ungzipping if .tar is present and .tar.gz is not, or keep .tar.gz.

Index language extensions

Searching for OverloadedStrings gives no results. It should point you at the right section in the manual.

Use Shake for generating the databases

I should use Shake, so I get more features, robust incremental rebuilds etc. Notes:

  • For the dependencies, I should have a cache of package -> ([String], [Package]) being the packages it depends on, and a list of items (type, instance, etc) that are required for the dependencies. Then I should recreate an in-memory database for each set of dependencies, and do the recursive tying inside each rule.
  • For downloads, I should have stamp files, and --redownload deletes the stamps forcing fresh downloads.

Don't assume http, generate protocol-relative URIs

Currently, both hoogle and hackage are available via https. One issue is that when I use the https version of hoogle to search for something, it returns results from the http version of hackage. This can be fixed very easily; instead of producing URIs of the form

http://hackage.haskell.org/packages/archive/base/latest/doc/html/Prelude.html#v:map

it should produce a "protocol-relative URI":

//hackage.haskell.org/packages/archive/base/latest/doc/html/Prelude.html#v:map

build failed with QuickCheck 2.7

src/Test/General.hs:2:32:
Ambiguous occurrence ‘===’
It could refer to either ‘Test.General.===’,
defined at src/Test/General.hs:23:3
or ‘Test.QuickCheck.===’,
imported from ‘Test.QuickCheck’ at src/Test/General.hs:6:1-22
(and originally defined in ‘Test.QuickCheck.Property’)
cabal: Error: some packages failed to install:

README.md and README.txt

There are two README files in git. How about consolidating them
and including README.md in the dist instead?

Conflicting exports with GHC HEAD

Trying to compile Hoogle with GHC HEAD for testing. I patched anything that it depended on but didn't work with HEAD locally (primitive, aeson (and vector)) only to fail on the following:

✓ misaki shana % cabal install
Resolving dependencies...
Configuring hoogle-4.2.20...
Building hoogle-4.2.20...
Preprocessing library hoogle-4.2.20...
[ 1 of 46] Compiling Paths_hoogle     ( dist/build/autogen/Paths_hoogle.hs, dist/build/Paths_hoogle.o )
[ 2 of 46] Compiling Data.TypeMap     ( src/Data/TypeMap.hs, dist/build/Data/TypeMap.o )
[ 3 of 46] Compiling Data.Heap        ( src/Data/Heap.hs, dist/build/Data/Heap.o )
[ 4 of 46] Compiling Hoogle.Score.Type ( src/Hoogle/Score/Type.hs, dist/build/Hoogle/Score/Type.o )
[ 5 of 46] Compiling Hoogle.Score.Scoring ( src/Hoogle/Score/Scoring.hs, dist/build/Hoogle/Score/Scoring.o )
[ 6 of 46] Compiling Hoogle.Score.All ( src/Hoogle/Score/All.hs, dist/build/Hoogle/Score/All.o )
[ 7 of 46] Compiling General.Base     ( src/General/Base.hs, dist/build/General/Base.o )

src/General/Base.hs:5:42:
    Conflicting exports for ‛isLeft’:
       ‛module X’ exports ‛X.isLeft’
         imported from ‛Data.Either’ at src/General/Base.hs:12:1-23
       ‛module General.Base’ exports ‛General.Base.isLeft’
         defined at src/General/Base.hs:64:1

src/General/Base.hs:5:42:
    Conflicting exports for ‛isRight’:
       ‛module X’ exports ‛X.isRight’
         imported from ‛Data.Either’ at src/General/Base.hs:12:1-23
       ‛module General.Base’ exports ‛General.Base.isRight’
         defined at src/General/Base.hs:65:1
Failed to install hoogle-4.2.20
cabal: Error: some packages failed to install:
hoogle-4.2.20 failed during the building phase. The exception was:
ExitFailure 1
✗ 1 misaki shana % ghc --version
The Glorious Glasgow Haskell Compilation System, version 7.7.20130826

Hoogle test suite fails in container environment

builds in NixOS are run in a virtualized container environment without network access to ensure that builds are reproducible. Unfortunately, this means that Hoogle's test suite fails in our builds:

running tests
Running 1 test suites...
Test suite hoogle-test: RUNNING...
WARNING: Could not find command line program wget.
curl: (6) Couldn't resolve host 'www.haskell.org'
hoogle: Failed to download: http://www.haskell.org/haskellwiki/Keywords
hoogle-test: Command: dist/build/hoogle/hoogle data
Failed with: ExitFailure 1
Test suite hoogle-test: FAIL
Test suite logged to: dist/test/hoogle-4.2.26-hoogle-test.log
0 of 1 test suites (0 of 1 test cases) passed.

To fix the build, I've disabled the test suite entirely.

Now, I reckon there are probably tests in that suite which don't need Internet access? Is there any way to still run those tests?

Unicode rendering is incorrect

If I search for Eq a => [a] -> a -> Bool on my private Hoogle server, I get this result at the top:

(�) :: Eq ± => [±] -> ± -> Bool
base-unicode-symbols Data.List.Unicode

It looks like unicode characters are not being rendered properly?

Failed to generate database with `hoogle data`

# hoogle.tar downloads/hoogle.tar
gzip: data stream error
gzip: downloads/hoogle.tar.gz: uncompress failed
hoogle: Error when running Shake build system:
* default.hoo
* platform.hoo
* mtl.hoo
* mtl.txt
* OracleQ (HoogleVersion "mtl")
* downloads/hoogle.index
* downloads/hoogle.tar
Development.Shake.command, system command failed
Command: gzip --decompress --stdout --force downloads/hoogle.tar.gz > downloads/hoogle.tar
Exit code: 1
Stderr:
gzip: data stream error
gzip: downloads/hoogle.tar.gz: uncompress failed

and ghc version is:

The Glorious Glasgow Haskell Compilation System, version 7.6.3

I use OSX 10.9.2 and shake version is:

* shake
    Synopsis: Build system library, like Make, but more accurate dependencies.
    Default available version: 0.11.4
    Installed versions: 0.11.4
    Homepage: https://github.com/ndmitchell/shake
    License:  BSD3

hoogle version:

Hoogle v4.2.30, (C) Neil Mitchell 2004-2012
http://haskell.org/hoogl

but i do not know why gzip: downloads/hoogle.tar.gz: uncompress failed ?

hoogle data can't fetch data

Below is when I ran hoogle data in command line

~ hoogle data
--2013-08-09 20:23:36-- http://code.galois.com/darcs/haskell-platform/haskell-platform.cabal
Resolving code.galois.com... 66.193.37.216
Connecting to code.galois.com|66.193.37.216|:80... failed: Connection refused.
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0curl: (7) couldn't connect to host
hoogle: Failed to download http://code.galois.com/darcs/haskell-platform/haskell-platform.cabal

Also I pinged 66.193.37.216, no package received.

PS: no problem with my internet connection

default.hoo missing

The last couple of times I installed Hoogle 4.2.26 and ran 'hoogle data all' the default.hoo was missing from the database. All individual packages are there, and building it myself with 'hoogle combine' works out fine, but it renders Hoogle non-operable out of the box.

doing --d wrong?

Puzzled by hoogle:

hoogle dump .hoogle/hoogle.hoo returns:
.. ("flag_ignoreallexports",ctor Flag) ..

hoogle --d=~/.hoogle/haddock.hoo Flag_IgnoreAllExports
No results found

hoogle --d=~/.hoogle/haddock.hoo "haddock :: [String] -> IO ()"
No results found

Hoogle v4.2.34

Exact matches

Hi Neil,

I couldn't find anything, so I thought I'd ask: Is there any way to perform an exact search with Hoogle? For example, searching for map does not return mapM? We have some use cases where such functionality would be convenient.

Thanks,
Michael

Hoogle should use cabal's repository

I configured cabal to use my dorm's hackage mirror (yeah, we have that in my dorm...), but Hoogle statically uses hackage.haskell.org. It would be nice if it used whatever server cabal is configured to use, via remote-repo: $repo in ~/.cabal/config

Please ship original (non-minified) jquery sources

This creates a problem for the Debian packaging, as the minified sources are not considered the "preferred form of modification". We workaround it by shipping ourselves the original sources, but it would be better if the upstream archive already contains it.

hoogle data not running properly

after i ran hoogle data , i got warning

WARNING: timestamping does nothing in combination with -O. See the manual
for details.

then failed, i can view this file from web browser with vpn , maybe it's not hoogle issue, but my proxy issue ? if so , is there a way to download that file manuly generate data ?

Insecure downloading of data

Hoogle downloads data from the Internet to build its databases. Currently, it does so in such a way that an attacker capable of performing a MITM attack can use it to access sensitive data, elevate privileges or cause denial of service.

See here, here and here for details about the attacks.

hoogle server don't unescape path.

Situation.

  1. Document path contain space, less than, or the like.
  2. Hoogle was booted by command "hoogle server --local" .
  3. Search by hoogle on local server.
  4. Click item the link.

Result.
Server report "File not found".
Hoogle server looking for path that has not been unescaped.

For example, I search "Just".

http://localhost/file//c:/Program%20Files/Haskell%20Platform/2014.2.0.0/doc/html/libraries/base-4.7.0.1/Prelude.html#v:Just

%20 was not unescaped.

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.