flat assembler
Message board for the users of flat assembler.

Index > Projects and Ideas > Online context help in Fresh IDE

Author
Thread Post new topic Reply to topic
JohnFound



Joined: 16 Jun 2003
Posts: 3499
Location: Bulgaria
JohnFound 22 Feb 2014, 19:43
Because recently I am working mainly in Linux and unfortunately there is no good common context help system, I decided to make for Fresh IDE a web search feature.

I tested to use google in "I'm feeling lucky" mode:
Code:
http://www.google.com/search?q=KEYWORD_HERE&btnI=1&gbv=1    


It works surprisingly well for Windows API functions, redirecting to MSDN. But unfortunately, it works not so good for other assembly requests.

I tried to add "assembly" to the keyword:
Code:
http://www.google.com/search?q=KEYWORD_HERE+assembly&btnI=1&gbv=1    

But still the search is not effective enough. For most instructions, Google offers pages with GAS syntax (and from random sites for every instruction). The Linux system calls end on some source code (for example sys_clone: https://lists.openvz.org/pipermail/criu/2013-January/006603.html)

Any ideas what can be done in order to make such help more useful?

_________________
Tox ID: 48C0321ADDB2FE5F644BB5E3D58B0D58C35E5BCBC81D7CD333633FEDF1047914A534256478D9
Post 22 Feb 2014, 19:43
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
sleepsleep



Joined: 05 Oct 2006
Posts: 12930
Location: ˛                             ⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣Posts: 0010456
sleepsleep 22 Feb 2014, 20:12
Add site:www.linuxapiweb.com
Then the search will limited to that particular site.
Post 22 Feb 2014, 20:12
View user's profile Send private message Reply with quote
JohnFound



Joined: 16 Jun 2003
Posts: 3499
Location: Bulgaria
JohnFound 22 Feb 2014, 21:10
sleepsleep wrote:
Add site:www.linuxapiweb.com
Then the search will limited to that particular site.


Well, this is possible, but not very convenient. This way, the user have to manually choose what site to search for every help request...

_________________
Tox ID: 48C0321ADDB2FE5F644BB5E3D58B0D58C35E5BCBC81D7CD333633FEDF1047914A534256478D9
Post 22 Feb 2014, 21:10
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
gens



Joined: 18 Feb 2013
Posts: 161
gens 23 Feb 2014, 00:49
for syscalls they are mostly all the same as libc calls
threading being the one that i think of first being different (kernel provides futexes and clone for it)
libc's have manpages (most distros under dev packages)
a list and numbers are in kernel source in /usr/src/`uname -r`/arch/x86/syscalls/
(sources you need to compile drivers and such, so they easy to get)

most progress i made was when internet died for a day and i wanted to code Smile
internets does'nt give much of this kind of data, at least not for amd64 that i wanted to use
Post 23 Feb 2014, 00:49
View user's profile Send private message Reply with quote
JohnFound



Joined: 16 Jun 2003
Posts: 3499
Location: Bulgaria
JohnFound 23 Feb 2014, 09:24
Quote:
most progress i made was when internet died for a day and i wanted to code Smile


Very true! But Fresh IDE still needs good enough help system in Linux. In Windows, combining Win32.hlp and some .chm files works fine, but in Linux there is no such tools. The web browser is the only viewer able to provide help information.
Post 23 Feb 2014, 09:24
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
gens



Joined: 18 Feb 2013
Posts: 161
gens 23 Feb 2014, 15:00
JohnFound wrote:
In Windows, combining Win32.hlp and some .chm files works fine, but in Linux there is no such tools. The web browser is the only viewer able to provide help information.


idk how familiar you are with linux
there are man pages, that exist for various command line utilities (and for all libc calls)
then there is "info" that was made by GNU people to replace man (didn't work, but still)

for the kernel API... other then man pages for libc, there is "info libc"
only thing to add is the kernel calling convention

idk, il have to check the kernel documentation if there is more


for teh internets you can try adding "POSIX" or libc

as i said, libc and the kernel API have much in common
ofc there is no malloc from the kernel nor math functions, that might confuse people
direct assembly examples idk (theres some with fasm:))
Post 23 Feb 2014, 15:00
View user's profile Send private message Reply with quote
JohnFound



Joined: 16 Jun 2003
Posts: 3499
Location: Bulgaria
JohnFound 23 Feb 2014, 15:36
man pages are too outdated technology. It is 2014 outside.

libc documentation is totally useless for assembly programming, because libc system calls are actually wrappers of the real system calls, with different arguments and return values.

Although, there are several assembly-centric documents about system calls, but most of them are low quality.

Except lscr project. It has very good system calls documentation, but it is development kit (I mean it is offline and the goals of the project are not to provide context help). Anyway, today I published the help pages from lscr on the Fresh IDE site for online use: http://fresh.flatassembler.net/lscr/
Post 23 Feb 2014, 15:36
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
JohnFound



Joined: 16 Jun 2003
Posts: 3499
Location: Bulgaria
JohnFound 24 Feb 2014, 11:59
What I have been done?

1. Support for .html help files. Fresh scans the file and searches for <a id="keyword"> tags and if the keyword matches it loads the browser on this anchor.

2. Support for ".idx" files - it is simple text file where every line contains KEYWORD=URL pair. The .idx file can be manually or automatically generated.
FreshIDE scans the ".idxfile and If the keyword matches then the browser opens on this URL.

3. The Google search is optional and is only fall-back if the keyword has not be found in any of the offline help files.

After these changes, the context help works pretty adequate in Linux and should works well (but not tested) in Windows.

Any other ideas?
Post 24 Feb 2014, 11:59
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  


< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Copyright © 1999-2024, Tomasz Grysztar. Also on GitHub, YouTube.

Website powered by rwasa.