Commit Graph

9908 Commits (8337b08d0d9a45793f85ab8ca358fb491d786aa4)

Author SHA1 Message Date
Joe Groff ff2d480d98 cpu.x86.32: update for resumable signal handlers 2011-10-27 21:18:19 -07:00
Joe Groff d6eae2f42d vm: suppress signal-handler stack frame generation
This is a hack; see #295
2011-10-27 21:18:19 -07:00
Joe Groff 402e1155a5 vm: resumably handle signals from leaf procedures 2011-10-27 21:18:18 -07:00
Joe Groff 1386212d23 vm: dispatch signal handlers through subprimitive
We also need to save C ABI volatile registers before calling the signal handler in order to be able to reliably resume. Add signal-handler and leaf-signal-handler subprimitives to preserve volatile registers before invoking the signal handler C function.
2011-10-27 21:18:18 -07:00
Joe Groff 68518e741e cpu.x86.(32,64).bootstrap: get rid of PUSH malarky
In the function prologue, move the stack pointer once after the stack frame is set up instead of PUSHing the stack frame piece by piece.
2011-10-27 21:14:50 -07:00
Joe Groff b0b0905460 vm: add factorbug command to throw exception
Also rename "q" to "c" because it "c"ontinues, remove the useless "im" command, and rename the less useful "t" to "trim" so we can use "t" to mean "throw"
2011-10-27 21:14:49 -07:00
Joe Groff c06be95816 compiler: no spurious safepoint at start of loops 2011-10-27 21:14:48 -07:00
Joe Groff 41c36752fc compiler.cfg.tco: clean up commented-out old code 2011-10-27 21:14:47 -07:00
Joe Groff 6f75e84d93 compiler.cfg.tco: teach TCO about safepoints 2011-10-27 21:14:46 -07:00
Joe Groff e449fef4e3 compiler.cfg.builder: safepoint loops and epilogs 2011-10-27 21:14:46 -07:00
Joe Groff 0c022f2454 compiler: add ##safepoint IR insn 2011-10-27 21:14:46 -07:00
Joe Groff ae1a903c4e cpu.x86.assembler: add MOVABS instruction
MOVABS generates the one-byte opcode version of MOV eAX, [absolute] or MOV [absolute], eAX, which saves a byte per safepoint on x86-32.
2011-10-27 21:14:45 -07:00
Joe Groff 4be5eadb34 cpu.x86.bootstrap: add safepoint to jit-epilog 2011-10-27 21:14:45 -07:00
Joe Groff 98fa51f0e0 compiler: rt-safepoint and rel-safepoint words 2011-10-27 21:14:45 -07:00
Doug Coleman 7b6f27eda6 Add a lint check for swap .. swap that can be replaced by dip. Clean up the cases it finds. 2011-10-26 13:01:04 -07:00
Doug Coleman 80a1a68e0f Fix error reporting for load, reported by Recursed 2011-10-25 14:54:23 -07:00
Doug Coleman 4ebe5218c7 Update Windows for word renames, fix lint errors 2011-10-24 21:50:02 -07:00
Doug Coleman 51c033a1f6 Fix all failures in the linux64 build email 2011-10-24 19:33:09 -07:00
Doug Coleman 763d9a3f7d Missed yet more renames 2011-10-24 17:00:09 -07:00
Doug Coleman df64529fb5 Forget some classes after unit tests so that running "classes" test succeeds multiple times in a row 2011-10-24 16:59:46 -07:00
Doug Coleman d5dc5cfa2c Fix 32bit platform bootstrap 2011-10-24 16:24:01 -07:00
Doug Coleman 0d059e0f19 Found a few more places to use lookup-c-type 2011-10-24 15:58:40 -07:00
John Benediktsson 4246c0ad36 windows.directx: add platforms.txt. 2011-10-24 15:47:06 -07:00
Doug Coleman ff69e2f240 Rename c-type to lookup-c-type. Fixes #230. 2011-10-24 14:37:24 -07:00
Doug Coleman f9257959fd Rename class to class-of 2011-10-24 06:47:42 -05:00
Doug Coleman 26872ffe4d Rename vocab to lookup-vocab 2011-10-24 06:42:54 -05:00
Doug Coleman 2ecd513130 Factor out ``no-roots no-prefixes'' into its own word. Add load-root, load-from-root, vocabs-in-root and implement load in terms of load-from-root.
Add error checking for append-vocab-dir and (child-vocabs) in case someone tries to pass them the wrong parameters.
Rename: vocab-dir+ to append-vocab-dir
Document load-from-root and load-root
2011-10-23 19:59:01 -05:00
Doug Coleman 441a8b8926 Checked in some code on accident. 2011-10-21 15:34:44 -05:00
John Benediktsson 5a943b32c4 Remove stack effects from HELP: declarations. 2011-10-20 19:36:11 -07:00
John Benediktsson 3d1155130c core-foundation.timers: allow interval to be specified in the constructor. 2011-10-19 15:30:55 -07:00
John Benediktsson b1922274e3 smtp: removing unused test. 2011-10-19 13:39:26 -07:00
John Benediktsson f4a6e10818 More cleanup of unused stuff. 2011-10-19 11:01:16 -07:00
John Benediktsson d1f5fefab0 Cleanup some uses of global [ ] bind. 2011-10-19 11:01:16 -07:00
John Benediktsson 469f4314df calendar: removing unused (month-name) word. 2011-10-19 11:01:16 -07:00
John Benediktsson fb2aab3545 Remove unused words. Fixes #132. 2011-10-19 11:01:16 -07:00
Doug Coleman 3507a0cc4b Don't use exception handling for handle>file-size 2011-10-19 10:15:09 -07:00
John Benediktsson a625197ba5 ui.gadgets.editors: windows doesn't work like macosx. 2011-10-19 09:42:12 -07:00
Doug Coleman 55bb863704 Create attributes>> accessor in io.files.windows 2011-10-19 03:14:19 -07:00
Doug Coleman b58688f87d Add throw-win32-error, use it in (delete-file) 2011-10-19 02:51:36 -07:00
Doug Coleman 5608178389 When deleting a file, if it fails with "Access is denied" then set the file
attributes to normal and try again. Some files in the .git directory are set
to read-only, preventing the build machines from deleting old builds.
2011-10-19 02:28:45 -07:00
Doug Coleman 55790cc6e4 Check if streams are seekable in Windows 2011-10-19 01:16:53 -07:00
Doug Coleman 986ff071b4 Fix help-lint for editors, peg.ebnf 2011-10-19 00:57:20 -07:00
Doug Coleman df3cf77e59 Fix tools.annotations tests 2011-10-19 00:57:06 -07:00
Joe Groff e40453ebee io.streams.limited: missed INSTANCE: input-stream 2011-10-18 21:27:08 -07:00
John Benediktsson d1009d74f4 delegate: not sure why protocols can be defined with arrays, but... 2011-10-18 20:40:14 -07:00
John Benediktsson d750197a7e help.syntax: if you're gonna have HELP: stack effects, they might as well be correct... 2011-10-18 20:12:42 -07:00
John Benediktsson 2608214622 help.syntax: allow HELP: to have optional stack effect. 2011-10-18 19:14:53 -07:00
John Benediktsson 774d39a524 listener: don't crash if we forget the current vocab. Fixes #259. 2011-10-18 16:46:55 -07:00
John Benediktsson faf556f971 delegate: verify generics on protocol definition. Fixes #260. 2011-10-18 16:31:15 -07:00
Joe Groff 13b17fb84a io: input-stream and output-stream mixins 2011-10-18 16:25:09 -07:00
John Benediktsson 315767d6f3 editors: unify "edit" across vocabs and words, add edit words for docs, tests, platforms, authors, tags, and summary files. Fixes #177. 2011-10-18 16:11:24 -07:00
Joe Groff 300a0256c8 new vocab tools.annotations.assertions
Annotates unsafe words with assertions that their inputs and outputs are valid. Provide annotations for stream-read(-partial)-unsafe and (set-)nth-unsafe to start with.
2011-10-18 15:13:34 -07:00
Joe Groff c850722cbb tools.annotations: send watch to error-stream 2011-10-18 15:13:34 -07:00
Joe Groff b4d406cfa3 ui.tools.listener: set error stream 2011-10-18 15:13:33 -07:00
John Benediktsson b237df3a3b Remove unused stack effects from DEFER: declarations. 2011-10-18 14:42:17 -07:00
John Benediktsson 6e00eaa3f8 Fix stack effect to not print "(( -- ))", remove stray effect from smtp. 2011-10-18 13:25:47 -07:00
John Benediktsson 80e1c8e3f2 Eliminate duplicate syntax for stack effects "(" no longer drops and is identical to the old "((", which is now removed. 2011-10-18 13:19:39 -07:00
Joe Groff 9b2634fbd7 io.files.windows: fix can-seek? and length 2011-10-18 12:42:53 -07:00
John Benediktsson 8d15fb1021 ui.gadgets.editors: implement Ctrl-A/E/K to be more compatible. 2011-10-18 11:38:08 -07:00
John Benediktsson cf54ce8e42 math.functions: when gcd is inlined, "gcd nip" is almost as good as "gcd*". 2011-10-18 10:30:39 -07:00
Doug Coleman 5c694767cd Report which file doesn't get deleted on Windows. 2011-10-18 00:59:57 -07:00
Doug Coleman 24a6895436 io.sockets.windows - Add a using, output count to fix compile error. Not bad for having no Windows box. 2011-10-17 23:28:22 -07:00
John Benediktsson 9f4eeb55f9 Revert "Optimize byte-reverse macro in alien.endian -- it was shifting each byte to the 0th bit place, bitand-ing it with HEX: ff, then shifting it to its final destination -- now we immediately shift to the proper location and bitand with the proper bitmask."
This reverts commit c701a39e89.
2011-10-17 21:39:57 -07:00
Joe Groff 90e1002349 io.sockets: rename (receive) to (receive-unsafe) 2011-10-17 21:23:37 -07:00
Joe Groff 9a812cc5c9 io.ports: lift common methods onto buffered-port 2011-10-17 21:23:37 -07:00
Joe Groff 0c74190a50 ui.tools.listener: remove redundant method 2011-10-17 21:23:37 -07:00
Joe Groff 67cccc63b3 formatting 2011-10-17 21:23:36 -07:00
Joe Groff 68621c4d79 io.sockets.windows: recv to byte-array via malloc
WSARecvFrom on Windows does its work asynchronously, so the buffer cannot be in the managed heap during the extent of the operation.
2011-10-17 21:23:36 -07:00
Joe Groff 8fc0be3c2f io.sockets: remove unix.ffi inserted by auto-use 2011-10-17 21:23:36 -07:00
Joe Groff 5d0ff43613 io.sockets: receive directly into byte array 2011-10-17 21:23:11 -07:00
Joe Groff 20e49c273f io.sockets: receive-unsafe and receive-into
Analogous to read-unsafe/read-into for streams (and thereby TCP sockets), provide receive-unsafe and receive-into words for datagram sockets that receive into a caller-supplied buffer.
2011-10-17 21:23:11 -07:00
Joe Groff dbda6cb40b compiler.tree.dead-code: fix test
It was using "read" in an optimization test, but since "read" is now inline, it wasn't getting the expected optimized quotation back.
2011-10-17 21:23:10 -07:00
Joe Groff f626e456dd specialized-arrays: fill in missing manifest bits 2011-10-17 21:23:10 -07:00
Joe Groff e426512534 more stream-seekable? and stream-length methods
- limited-streams and throw-on-eof-streams
- string-readers and byte-readers
2011-10-17 21:23:09 -07:00
Joe Groff e589f58163 delegate.protocols: clean up input-stream-protocol 2011-10-17 21:23:08 -07:00
Joe Groff 863ab575e3 io.ports: stream-seekable? and stream-length
io.files.windows, io.backend.unix: platform-specific backends for those methods
2011-10-17 21:23:08 -07:00
Joe Groff bd50acf424 unix.stat: bind to fstat 2011-10-17 21:23:07 -07:00
Joe Groff 09f55f82fa clean up forwarding stream-read-partial-unsafe
Now that "io" provides a method on object for stream-read-partial-unsafe that forwards to stream-read-unsafe, individual stream class that don't implement partial reads don't need to provide such a method themselves.
2011-10-17 21:23:06 -07:00
Joe Groff ae6d6ba951 specialized-arrays: direct-slice for byte-arrays
Implement nth-c-ptr and direct-like for byte-arrays so that direct-slice over a byte-array makes a uchar-array{ } over a part of the byte-array
2011-10-17 21:23:06 -07:00
Joe Groff c3c382e45c ui.tools.listener: fix stream-read-unsafe
It was returning the number of requested bytes even if eof was encountered.
2011-10-17 21:23:05 -07:00
Joe Groff 6f12322bda kill noncopying-reader mixin, stream-read generic
Now that all streams have been updated to implement the stream-read-unsafe protocol, take out the noncopying-reader shim. Turn stream-read and stream-read-partial into plain functions over the -unsafe generics.
2011-10-17 21:23:05 -07:00
Joe Groff a9ab3db167 ui.tools.listener: read-unsafe for interactor†
†there's a failing test with this patch that needs investigation:

===
resource:basis/ui/tools/listener/listener-tests.factor: 90

Unit Test: { [ t ] [ "promise" get 2 seconds ?promise-timeout text = ] }

wait-timeout
===
2011-10-17 21:23:04 -07:00
Joe Groff 7caed69d26 delegate.protocols: update input-stream-protocol
Add stream-read-unsafe and stream-read-partial-unsafe to input-stream-protocol.
2011-10-17 21:23:04 -07:00
Joe Groff 5c945595ee io.encodings.string: faster decode and encode
stream-contents is apparently way slow for decoders. Write decode out more directly as a read1/push loop so it's faster. encode isn't quite as bad, but we can still get a 25% speed improvement by writing to an appropriately sized byte-vector.
2011-10-17 21:23:02 -07:00
Joe Groff 055196d4b7 io.streams.(limited,throwing): read-unsafe methods 2011-10-17 21:23:00 -07:00
Joe Groff 01419b3e6b io.streams.null: read-unsafe methods 2011-10-17 21:23:00 -07:00
Joe Groff a3b15543e1 io.ports: implement read-unsafe operations 2011-10-17 21:22:59 -07:00
Joe Groff 7e9dbde99f io.buffers: factor out buffer-read-unsafe word
buffer-read-unsafe returns a length and a pointer into the buffer instead of a copy.
2011-10-17 21:22:59 -07:00
Joe Groff b79d7158be io.streams.memory: implement stream-read-unsafe
(The actual method is in alien.data due to bootstrap load order issues.)
2011-10-17 21:22:59 -07:00
Joe Groff d5f4b6f155 io.streams.sequence: change to provide read-unsafe
Change io.streams.sequence and its children io.streams.byte-array and io.streams.string to implement the -unsafe protocol and mixin noncopying-reader.
2011-10-17 21:22:59 -07:00
Joe Groff 5a072c57a6 bootstrap, io.streams.c: use new fread primitive
Change the fread primitive to fread-unsafe, matching the new primitive in the VM, and update the implementation of c-reader to implement stream-read-unsafe and stream-read in terms of fread-unsafe
2011-10-17 21:22:58 -07:00
John Benediktsson 38a54cb8df math.functions: improve stack effect names for gcd*. 2011-10-17 20:37:36 -07:00
John Benediktsson ac98269f53 math.functions: faster gcd means faster ratios. 2011-10-17 20:36:28 -07:00
Doug Coleman a2804ebf54 find-dlist-node was returning duplicated information -- node/f tells you enough, no need for another boolean return value 2011-10-17 18:58:14 -07:00
Doug Coleman f21fee3b73 Rename complete-effect to scan-effect 2011-10-17 10:25:27 -07:00
Doug Coleman db1d499a6f Fix typo in tools.deploy.windows.ico 2011-10-16 23:06:11 -07:00
John Benediktsson 81714b8dc3 More lint cleanups. 2011-10-16 19:33:16 -07:00
John Benediktsson 470e0be3e1 ui.tools.listener: call insert-newline directly. 2011-10-16 13:39:15 -07:00
John Benediktsson fb9612ef73 sequences.deep: find drop >boolean is any? 2011-10-16 13:15:05 -07:00
John Benediktsson c8732657b7 Cleanup more lint warnings. 2011-10-16 13:01:58 -07:00
John Benediktsson 6f1c44b46d Cleanup some lint warnings. 2011-10-15 19:19:44 -07:00
John Benediktsson ed72c670b9 bootstrap.image: disable auto-use. Fixes #263. 2011-10-15 10:34:34 -07:00
John Benediktsson 37deaec528 random: random integers is 90% faster. 2011-10-14 18:52:41 -07:00
John Benediktsson 7d31da68b8 debugger: remove double namespace using. 2011-10-14 15:45:31 -07:00
Joe Groff f39f97840a stack-checker: update tests
[ bi ] infer now hits the row polymorphism checker before it hits the unknown-macro-input checker because of the effect on keep. Change the test to more directly test that call fails with an unknown input.
2011-10-14 15:35:29 -07:00
John Benediktsson cc49bbfb27 math.bitwise: bits is clearer this way. 2011-10-14 13:54:08 -07:00
John Benediktsson 2b21f01918 Remove trim-whitespace in favor of [ blank? ] trim. 2011-10-14 13:22:28 -07:00
John Benediktsson d61de12011 Cleanup more lint warnings. 2011-10-14 12:31:46 -07:00
Doug Coleman 623ccb95e6 Remove some duplication in lists 2011-10-14 12:08:48 -07:00
John Benediktsson 378786599d Cleanup lint warnings. 2011-10-14 11:47:24 -07:00
Doug Coleman 933319f401 Cleanups found with lint tool 2011-10-14 10:15:13 -07:00
John Benediktsson 312704ae68 math.parser: cleanup uses of 16/8/2 >base/base>. 2011-10-14 10:09:12 -07:00
John Benediktsson 0965d9be41 webapps.help: remove frames. Fixes #242. 2011-10-13 22:09:30 -07:00
John Benediktsson f20e5df501 io.files.info.unix.linux: fix more M: stack effects. 2011-10-13 17:55:30 -07:00
John Benediktsson 2d8e7c77e8 io.files.info.unix.linux: fix M: stack effect. 2011-10-13 17:38:30 -07:00
John Benediktsson 6417f36397 namespaces: adding a "with-global" word to replace "global [ ] bind". 2011-10-13 17:21:59 -07:00
John Benediktsson 422f427a87 Fix M:: stack effects. 2011-10-13 16:44:30 -07:00
John Benediktsson 4558bf3414 Change method parsing to validate stack effects. Fixes #236. 2011-10-13 16:41:17 -07:00
John Benediktsson 1987deb359 Fix M: stack effects. 2011-10-13 16:41:17 -07:00
John Benediktsson 4baf14972f sequences: adding ?last for symmetry. 2011-10-13 13:04:24 -07:00
John Benediktsson 3207244c60 sequences: define ?first and ?second. 2011-10-13 12:53:46 -07:00
Doug Coleman fb178b19a3 Fix using list for http.server tests 2011-10-12 23:19:11 -07:00
John Benediktsson e7fb699832 http.server: ignore preceding whitespace before request lines. Fixes #252. 2011-10-12 20:21:16 -07:00
John Benediktsson 1769a63ca3 http.client: too aggressive with ?CRLF. 2011-10-12 20:14:21 -07:00
John Benediktsson 0075b6bc28 sequences: adding find-index. 2011-10-12 19:41:54 -07:00
John Benediktsson 9562dc2054 hash2: remove since it is now unused. 2011-10-12 15:18:04 -07:00
John Benediktsson 6dc8af83fd unicode.data: remove dependency on hash2. 2011-10-12 15:17:56 -07:00
John Benediktsson 46f8225f7a http: change client/server to support LF and CRLF delimited headers. 2011-10-12 12:51:49 -07:00
John Benediktsson 24232cb095 io.crlf: add a word that reads an optional CR. 2011-10-12 12:36:54 -07:00
John Benediktsson e7489ba16a unicode.breaks: >words is now 90+% faster. 2011-10-12 11:04:19 -07:00
Doug Coleman 7228c2df2c stream-element-type on output-ports was broken -- it looked for a stream>> slot but no such slot exists. add some unit tests 2011-10-12 01:05:01 -07:00
John Benediktsson 950f1e1c04 random: be> is faster (and they are random anyway)... 2011-10-11 22:31:21 -07:00
John Benediktsson afc07c0e05 io.binary: make le> and be> faster (20% and 75%, respectively).
Removed primitive byte-array>bignum and digit_stream_to_bignum from vm/.
2011-10-11 21:13:30 -07:00
Doug Coleman 757889167a Optimize byte-reverse macro in alien.endian -- it was shifting each byte to the 0th bit place, bitand-ing it with HEX: ff, then shifting it to its final destination -- now we immediately shift to the proper location and bitand with the proper bitmask. 2011-10-11 19:36:22 -07:00
Doug Coleman c74402dad9 Fix using list because I'm dumb for developing Windows changes from a Mac. 2011-10-11 13:33:44 -07:00
Doug Coleman 63fa01fd4f Proper double-quote and backslash escaping for windows command line arguments. Fixes #245. 2011-10-11 12:21:04 -07:00
Doug Coleman 871dfb9a3a On Windows, escape command line arguments with double quotes with a backslash: " -> \". Fixes #245. 2011-10-10 22:24:23 -07:00
Slava Pestov 84fda0bb05 alien.complex: fix docs 2011-10-10 22:12:50 -07:00
Slava Pestov ae286fb7ef callback-error: don't use -e until we fix issue #245 2011-10-10 21:25:50 -07:00
Slava Pestov df7ee85daf regexp.classes: remove dependency on mirrors vocab 2011-10-10 21:09:59 -07:00
Slava Pestov ea73b42578 bootstrap.compiler: now that C types are named by words, we don't have to load alien.complex on bootstrap 2011-10-10 21:09:58 -07:00
Joe Groff e200656ce4 tools.test.fuzz tests: missing using 2011-10-10 18:03:52 -07:00
Slava Pestov 7bc38641f9 compiler.tree.identities: the identity on mod was useless too, because we already have a rewrite rule which handles this case in compiler.tree.propagation 2011-10-10 12:34:21 -07:00
Joe Groff b5fc65707d new module tools.test.fuzz: quickcheck-style probabilistic testing, based on Andrew Pennebaker's factcheck vocab 2011-10-10 12:23:23 -07:00
Joe Groff 5a21742f74 tools.test: move fake-unit-test utility from test suite to module 2011-10-10 12:23:23 -07:00
Slava Pestov dc36fd712d compiler.cfg.representations: fix unit test, it depended on hashing order which changed recently 2011-10-10 12:15:41 -07:00
Slava Pestov 3a0ffceed9 compiler.tree.propagation.transforms: fix rem and mod custom inlining 2011-10-10 12:12:53 -07:00
Slava Pestov 7a4ab74703 compiler.codegen.gc-maps: fix tests 2011-10-10 12:07:09 -07:00
Slava Pestov 901ee2434c Fix custom-inlining for mod and rem, which was converting these calls to bitand in some cases, even if the input was not known to be an integer. Fixes #243 2011-10-09 13:51:35 -07:00
Slava Pestov b4588629ab Remove identities on / and rem, which were no-ops because integer-derived-ops would return an empty array 2011-10-09 13:51:03 -07:00