summaryrefslogtreecommitdiff
path: root/sys/src/cmd/acid
AgeCommit message (Collapse)Author
2021-01-05acid: increase hash size (thanks jonas.amoson)Ori Bernstein
when loading large binaries such as netsurf, with many symbols, our hash table fills up with collisions and loading the symbol table gets very slow. Bumping it up drops the time to lstk() in acid on netsurf from 4 minutes to 8 seconds.
2017-06-12acid: provide hooks 'procattach' and 'dying'aiju
2017-06-12acid: always create proclist variableaiju
2017-06-12acid: add getfields() builtinaiju
2016-12-15acid: fix y.tab.h dependency for proc.$Ocinap_lenrek
2016-05-01acid: don't get fooled by spaces in convflt()cinap_lenrek
2014-09-22acid: fix sysr1() stack corruptioncinap_lenrek
the syscall stubs (for amd64) currently have a unconditional spill of the first (register) argument to the stack. sysr1 (and _nsec) are exceptional in that they do not take any arguments, so the stub is writing unconditionally to ther first argument slot on the stack. i could avoid emiting the spill in the syscall stubs for sysr1 but that would also break truss which assumes fixed instruction sequence from stub start to the syscall number. i'm not going to complicate the syscall stubs just for sysr1 (_nsec is not used in 9front), but just add a dummy argument to sysr1 definition that can receive the bogus argument spill.
2014-02-09acid: make 'a' and 'A' format to have the same size as mach->szaddrcinap_lenrek
to make it easier to write portable acid code, we introduce 'A' format in the same meaning as in db(1): A Print the value of dot in hexadecimal. Dot is unaffected. both 'a' (symbolic) and 'A' will both have 64 or 32 bit size depending on the mach, so pointer array indexing works the same.
2014-02-09acid: fix memory corruption due to gccinap_lenrek
we cannot call gc() in execute() because it will gc anonyous intermediate results which happens when we construct a list and the elements are calculated by calling a function thru ocall() which calls execute(). also, the _thiscmd symbol; which is used to keep a reference to a statement so it wont get garbage collected; does not work as yyparse() is recursive (include statements). we add execrec() function which *only* gets called from yyparse() when evaluating a statement. it will keep a stack on the _thiscmd symbol handling the yyparse() recursion. we also only call gc() in execrec() before calling execute(). so execute() will never gc() while evaluating a statement which prevents the intermediate results from getting collected.
2014-02-02acid: fix memory leak in fundefs (from 9atom)mischief
2014-02-01acid: use correct print flags and casts for shorts in fmtmischief
2013-09-20acid: handle buffer overflow with ridiculous long symbol names (thanks mischief)cinap_lenrek
go seems to accidently creates ridiculous long symbol names causing acid to crash.
2012-08-10acid: fix cvtitoa buffer overflowcinap_lenrek
2012-02-11acid: fix format string bugs and comment line counting (from eriks ↵cinap_lenrek
patch/acid-nits patch)
2011-07-22acid: don't assume mipsaiju
2011-07-22acid: fixed $terminal handlingaiju
2011-03-30Import sources from 2011-03-30 iso image - libTaru Karttunen
2011-03-30Import sources from 2011-03-30 iso imageTaru Karttunen