flat assembler
Message board for the users of flat assembler.
Index
> Linux > my HeavyThing general purpose x86_64 linux library Goto page 1, 2, 3, 4 Next |
Author |
|
redsock 01 Feb 2015, 21:47
I am pleased to announce the public release of my GPL library.
https://2ton.com.au/HeavyThing/ Unfortunately, the library tarball is too large to attach directly to this post. Lots of topics/functionality covered that I have not personally seen anywhere else, too many to list here. I have included several example programs in addition to my showcase pieces that make use of the library extensively. Among them, an SSH2 "talk" server, a TLS1.2-capable web performance benchmarking tool, and a full-featured webserver that includes assembly language function hooks to facilitate "rapid web application server" development. To my knowledge, this is the single-largest GPL release of x86_64 assembler. As you might imagine, it also represents many thousands of hours of work and is a result of my 27 years experience as a commercial software developer. I truly hope it provides value to our community. While the library is designed for x86_64 linux, there are a great many functions that do not rely on the underlying kernel of course, so I hope that the library will be useful to other x86_64 programmers outside the scope of just linux as well. Cheers to everyone here on the board! P.S. I have chosen to enable very strong encryption parameters for my webserver (which is running rwasa, a part of my library). Due to my choices here, old versions of Firefox will not negotiate a connection. |
|||
01 Feb 2015, 21:47 |
|
HaHaAnonymous 02 Feb 2015, 19:04
[ Post removed by author. ]
Last edited by HaHaAnonymous on 28 Feb 2015, 17:59; edited 1 time in total |
|||
02 Feb 2015, 19:04 |
|
tthsqe 06 Feb 2015, 07:11
Do you have implementations of the pthread functions (mutex, conditional variables, ...)?
|
|||
06 Feb 2015, 07:11 |
|
redsock 06 Feb 2015, 18:34
tthsqe wrote: Do you have implementations of the pthread functions (mutex, conditional variables, ...)? |
|||
06 Feb 2015, 18:34 |
|
system error 08 Feb 2015, 18:07
Great work redsock.
|
|||
08 Feb 2015, 18:07 |
|
system error 08 Feb 2015, 18:31
tuimatrix demo.
an exception (segmentation fault) at this line; Code: mov r8,rsi add rsi,rdx mov rax,qword[rsi] it says invalid reference to 0x0000000000000002. |
|||
08 Feb 2015, 18:31 |
|
redsock 08 Feb 2015, 19:09
Hmm runs okay for me, any chance you could fire it up with gdb and give me the stacktrace as well?
|
|||
08 Feb 2015, 19:09 |
|
tthsqe 09 Feb 2015, 06:20
Would you like some help with some more math functions? i looked an the power function and it looks too complkicated...
|
|||
09 Feb 2015, 06:20 |
|
redsock 09 Feb 2015, 19:23
tthsqe wrote: Would you like some help with some more math functions? i looked an the power function and it looks too complkicated... |
|||
09 Feb 2015, 19:23 |
|
system error 10 Feb 2015, 10:18
redsock wrote: Hmm runs okay for me, any chance you could fire it up with gdb and give me the stacktrace as well? sorry my friend. i dont talk gdb or anything related. I use Evan's Debugger (EDB) exclusively. It reports something like this; qword ptr [0000000000000002h] = 0ffffffffffffffffh The addressing error could suggest a slight portability issue because i tested it on a 64-bit laptop. Maybe u should too. |
|||
10 Feb 2015, 10:18 |
|
redsock 10 Feb 2015, 21:51
system error wrote: tuimatrix demo. The latest version should do the deed without complaint/segfault: https://2ton.com.au/HeavyThing/ Cheers for that Edit: updated URL so it points to the page with the latest, noticed a few downloads of the older version from this post. Last edited by redsock on 17 Feb 2015, 01:11; edited 1 time in total |
|||
10 Feb 2015, 21:51 |
|
l_inc 10 Feb 2015, 23:51
redsock
Although I don't feel like a potential user of the library, it seems to be well-written and includes nice design decisions such as common named settings and on-demand compilation of features. There are some things that I'd do differently, but what really dispirits me are little pieces of negligence in the code such as this: Quote: mov eax, dword [r8*4+.tables+3072] Lots of unnamed numeric constants and explicit type casting (instead of defining multiple .tableX as dword labels and named constants of kind .sizeof.tableX and .countof.tableX) a priori indicate sloppy coding style for me, which in this case dissonates with both library design and implementation. _________________ Faith is a superposition of knowledge and fallacy |
|||
10 Feb 2015, 23:51 |
|
redsock 11 Feb 2015, 02:38
l_inc wrote:
Someday when I am sufficiently bored I will do an editorial pass over all of it and make such code sections easier to read and follow. Any and all feedback is very much appreciated, especially constructive criticism like yours. Cheers |
|||
11 Feb 2015, 02:38 |
|
tthsqe 11 Feb 2015, 08:34
Hello there,
This seems to be quite a library. I like how things are weighted down the big integers part. I wrote the mandelbrot explorer for the official fasm examples, so I can appreciate your work here. I got to testing your pow function (to should really say that it operates on packed doubles) against a 'typical implementation' (https://github.com/tthsqe12/src-tt/blob/master/fasm/misc_text_hot.asm#L56) I ran it a few million times on (1.1,1.2)^(2.3,2.4) Code: pow: 296 cycles/call @ 3120 bytes math_powdd: 254 cycles/call @ 134 bytes however the math_powdd only does one operation at a time, so yours wins the throughput contest. If you avx'ed it up and added some fmadds you could get 4 ops per call and probably get the call time time to the 250 cycles/call mark. |
|||
11 Feb 2015, 08:34 |
|
redsock 11 Feb 2015, 08:50
tthsqe wrote: Hello there, |
|||
11 Feb 2015, 08:50 |
|
redsock 17 Feb 2015, 01:49
revolution, after my initial release a couple of weeks ago, got quite a bit of feedback regarding my choice to use 4096 bit Diffie-Hellman parameters, and as I result, I have wound-back the choices for my site, so you should be able to get to it now, haha.
Let me know if it works at all with no JS enabled. As for the rest, wow, a little bit of social media and a ton of feedback goes a long way. Been a very busy couple of weeks for me, very happy with the latest release, and so far my clients are also delighted with it. Cheers everyone |
|||
17 Feb 2015, 01:49 |
|
revolution 17 Feb 2015, 02:53
The basic website loads and displays. But I didn't click on anything or download anything because it appears to be only for Linux and I've never had any success running Linux on any of my computers.
I notice the webpage gives no explanation as to what it actually does. There are many details about how to download it, compile it, etc. but no description to say what one is supposed to use it for. Is it some sort of system monitor? Or a web server? Or a command shell? An assembler? I couldn't figure out from the "Feature Highlights" what its primary function or purpose is. I probably just missed something obvious but even a simple single paragraph description would be immensely useful "HeavyThing is ...". |
|||
17 Feb 2015, 02:53 |
|
redsock 17 Feb 2015, 05:12
revolution wrote: I notice the webpage gives no explanation as to what it actually does. ... I probably just missed something obvious but even a simple single paragraph description would be immensely useful "HeavyThing is ...". I should point out however that my lovely lady says you raise a very valid point. I shall consider adding an introductory paragraph about what it really is. Thanks for your input and consideration. Cheers |
|||
17 Feb 2015, 05:12 |
|
system error 17 Feb 2015, 07:10
revolution wrote: The basic website loads and displays. But I didn't click on anything or download anything because it appears to be only for Linux and I've never had any success running Linux on any of my computers. I think the main highlight is algorithms. |
|||
17 Feb 2015, 07:10 |
|
Goto page 1, 2, 3, 4 Next < Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2024, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.