- Jul 04, 2018
-
-
Raymond Toy authored
Update tests to reflect the change in names.
-
Raymond Toy authored
The current bignum multiplier creates temp space to hold the absolute value of the bignums and then negates the result (in-place) at the end. Instead, use the algorithm from Hacker's Delight that pretends the numbers are unsigned, does the unsigned multiply and finally corrects the result. No extra memory is needed for this.
-
- Feb 18, 2018
-
-
Raymond Toy authored
Remove the symbol `C::%UNARY-FROUND` and just let the compiler package inherit it from the kernel package. * src/bootfiles/21c/boot-2018-02-1.lisp * Use this to bootstrap the change (by uninterning the symbol) * src/code/float.lisp * Just export %unary-fround * src/general-info/release-21d.md * Update * tests/issues.lisp * Add test for this issue
-
- Jan 29, 2018
-
-
Raymond Toy authored
* Print multiple splices correclty without the extra set of parenthesis around each splice. * Add test for this.
-
- Jan 28, 2018
-
-
Raymond Toy authored
The previous commit worked for search lists, but the program could be a string. Take care to convert pathnames to strings so that spawn is always called with a string.
-
- Jan 27, 2018
-
-
Raymond Toy authored
When invoking motifd, the program name is #p:'library:motifd". This is passed directly to spawn (a C routine), which only accepts strings. So, before calling spawn, convert the program path to a unix namestring. This allows the example from the bug to run without crashing.
-
- Dec 29, 2017
-
-
Raymond Toy authored
Make RANDOM compute the value the same way as the deftransform would do when the arg is a 32-bit integer. The deftransform is still currently disabled for random-xoroshiro, though.
-
Raymond Toy authored
Don't use the portable xoroshiro-gen on x86 and sparc!
-
Raymond Toy authored
-
- Dec 28, 2017
-
-
Raymond Toy authored
Add comment for %random-double-float to use xoroshiro-gen directly instead of random-chunk twice. A minor micro optimization.
-
Raymond Toy authored
The vop greatly speeds up the generator on sparc. The time to generate 10,000,000 single-floats (on a 1 GHz Ultrasparc 3i) is: mt19937: 1.32 sec xoroshiro: 1.03 sec So xoroshiro is 22% faster than mt19937.
-
Raymond Toy authored
-
- Dec 27, 2017
-
-
Raymond Toy authored
-
Raymond Toy authored
Set default value for state in VEC-INIT-XORO-STATE. If not given, initialize it to the correct array.
-
Raymond Toy authored
Break the constants in the jump function into 32-bit chunks so we operate on 32-bit integers instead of 64-bit integers. This is a minor optimization.
-
- Dec 21, 2017
-
-
Raymond Toy authored
* rand-xoroshiro.lisp: * Rename xoroshiro-jump to random-state-jump * Add documentation/comments. * tests/rng.lisp * Add tests for the RNG jump function.
-
- Dec 20, 2017
-
-
Raymond Toy authored
Not sure about inlining that; it makes random-chunk bigger and all callers of random-chunk bigger too. Nice speed win, however. A test of generating 50000000 single-float values shows xoroshiro128+ takes 0.58 sec vs 0.98 using MT19937 on my machine.
-
Raymond Toy authored
-
Raymond Toy authored
-
- Dec 19, 2017
-
-
Raymond Toy authored
The xoroshiro128+ algorithm is defined using uint64_t types, but we hack it to store the state as double-float's. This is a bit confusing, so add a printer to print the state as an array of two uint64_t's. Adjust init-xoro-state to allow initializing the state using an array of 2 64-bit ints.
-
Raymond Toy authored
Custom printer to print the state as array of integers instead of doubles. Makes it easier to see and match what the C code does.
-
Raymond Toy authored
* Fix typos in names so we can call the functions. * Add jump function to allow generating new distinct sequences. * Add simple function to print the state using integers instead of doubles. (Untested.)
-
- Dec 17, 2017
-
-
Raymond Toy authored
-
Raymond Toy authored
-
Raymond Toy authored
-
- Dec 16, 2017
-
-
Raymond Toy authored
Don't need an array for the cached value; (unsigned-byte 32) is a specialized structure slot, so no consing. Some random cleanups and comments.
-
- Dec 15, 2017
-
-
Raymond Toy authored
Make some things work on x86: * Can create a random state and initialize it to the desired state * xoroshiro-chunk produces the correct values for the first few calls
-
Raymond Toy authored
Not yet tested or integrated.
-
Raymond Toy authored
Not yet integrated but the basic vop and other methods do work and produce the same output as the reference C code (not included).
-
- Sep 30, 2017
-
-
Raymond Toy authored
This is basically the solution proposed by Elias Pipping with a few minor tweaks. - In `run-program`, don't merge `program` with the "path:" search-list. `spawn` will handle this. - In `spawn`, if the first call to execve fails, instead of trying "/bin/sh", use "/usr/bin/env" which will use the user's PATH if necessary to find the program.
-
- Sep 16, 2017
-
-
Raymond Toy authored
Adds docstrings for the exported process accessors: `process-pid`, `process-exit-code`, `process-core-dumped`, `process-pty`, `process-input`, `process-output`, `process-error`, `process-status-hook`, `process-plist`.
-
Raymond Toy authored
`wait3` is removed along with alien routine and the constants.
-
Raymond Toy authored
- process-alive-p should return T for continued processes - Simplify prog-status slightly by making the status code array start :signaled instead of nil. - Update prog_status with enum to specify the codes to make it clearer what they mean and to make it clearer that it matches the expectations in prog-status.
-
- Sep 09, 2017
-
-
Raymond Toy authored
The main problem is that we weren't calling wait3 with WCONTINUED so that we would be signaled when the process continues. And we also need to check that result of wait call was WCONTINUED> Replace the wait3 routine with a C routine (prog_status) so we don't have to deal with the OS-specific flags. This function basically returns what the lisp function wait3 did. Use this function in GET-PROCESSES-STATUS-CHANGES. - runprog.c: - Add prog_status - run-program.lisp: - Use prog_status instead of wait3 - issues.lisp: - Add basic test
-
- Jan 29, 2017
-
-
Raymond Toy authored
Include a list of the builtin modules supported by cmucl to the docstring.
-
- Dec 23, 2016
-
-
Raymond Toy authored
-
- Dec 08, 2016
-
-
Raymond Toy authored
"Cound" -> "Could"
-
Raymond Toy authored
The string containing #\Newline that is used to output the newline character worked on little-endian architectures because the low octet was first in memory. However on a big-endian sparc, a NUL character was output instead since the high octet is first in memory. So, create a explicit unsigned-byte 8 array containing exactly 1 octet that represents a newline character code. Tests pass on both sparc and x86/linux.
-
- Dec 07, 2016
-
-
Raymond Toy authored
unix:unix-times was only used for #+(and sparc svr4). The existing code already supported a different function when this condition was false, so use that, which uses getrusage instead. Don't need cross-x86-sparc-bootstrap.lisp anymore either.
-
- Dec 01, 2016
-
-
Raymond Toy authored
-