Commit Graph

22929 Commits (2f0efb62e87c8e1f45d967ee2986b51ccc12c7b7)

Author SHA1 Message Date
Joe Groff 2f0efb62e8 vm: don't send foreign samples to outer space 2011-11-08 14:00:33 -08:00
John Benediktsson 48205fcb63 deques: adding ?peek-front and ?peek-back. 2011-11-08 13:20:56 -08:00
Joe Groff 70dcd875ff io.backend: start signal thread after io-backend
The c-io-backend can't handle input-ports and raises an error during bootstrap.
2011-11-08 11:54:54 -08:00
Joe Groff fca09f21ed vm: don't pass this to safepoint constructor
It's bad juju and MSVC calls us out on it.
2011-11-08 11:06:00 -08:00
Joe Groff afa0ed1f6e unix.process: take raise from unix.ffi
And fix introduced ambiguity between unix.ffi:kill and unix.process:kill
2011-11-08 10:42:51 -08:00
Joe Groff 37494b301b new module unix.signals: app-level signal handlers
example:

IN: scratchpad USING: unix.ffi unix.signals ;
Loading resource:basis/unix/signals/signals.factor
IN: scratchpad [ V{ "Me not that kind of orc!" "Me busy, leave me alone!" "Work work" "Zug zug" } pop print flush ] SIGINFO add-signal-handler
IN: scratchpad load: 0.60  cmd: factor 41541 running 0.28u 0.16s
Zug zug
load: 0.71  cmd: factor 41541 running 0.28u 0.16s
Work work
load: 0.71  cmd: factor 41541 running 0.28u 0.16s
Me busy, leave me alone!
load: 0.73  cmd: factor 41541 running 0.28u 0.16s
Me not that kind of orc!
2011-11-08 10:21:49 -08:00
Joe Groff 7a7b19a8fd vm: more commentary on lock_console() stuff 2011-11-08 08:52:52 -08:00
Joe Groff ec85bf7acc io.backend.unix: startup hook for signal-pipe 2011-11-08 08:42:48 -08:00
Joe Groff 7df1c228bd vm: don't mask SIGTTIN from stdin_loop
Fixes #360
2011-11-08 08:42:48 -08:00
Joe Groff b3598c2384 io.backend.unix: init-signal-pipe function
Currently just reads off signal numbers and drops them.
2011-11-08 08:42:48 -08:00
Joe Groff 75f9904c40 vm: interrupt stdin_loop when entering fep
The stdin_loop thread will keep trying to consume input unless we stop it by sending it a signal. Use SIGUSR2 to stop the read syscall and a mutex to hold up the loop while the fep is active.
2011-11-08 08:42:48 -08:00
Joe Groff 0c132cf861 vm: write signals to pipe immediately
The whole point is to wake up the mx without waiting for the next safepoint derp
2011-11-08 08:42:47 -08:00
Joe Groff 2db8dd3f80 vm: move bignum.cpp includes to master.hpp
That way they get PCHed
2011-11-08 08:42:47 -08:00
Joe Groff 06bb122b6e vm: enqueue signals for FEP signals too
Although SIGINT still can't interrupt the current Factor thread in a sane way, this will at least wake up the run loop when waiting for input and fix #348 when implemented at the application level.
2011-11-08 08:42:47 -08:00
Joe Groff 0db777edbb GNUmakefile: use PCH so compiler goes faster
Also add more accurate dependencies on headers so "make" works right when headers change
2011-11-08 08:42:46 -08:00
Joe Groff ceeb9f36d8 vm: write async signals to pipe for multiplexer
also factor out safepoint logic into its own file
2011-11-08 08:42:46 -08:00
Joe Groff 1583b94bf9 io.launcher.windows: update tests for prompt 2011-11-08 00:09:25 -08:00
Joe Groff 9c055136a7 vm: switch atomic::add to atomic::fetch_add
Win32 only provides fetch-and-add, not add-and-fetch, and we don't really care. Rename the functions so the order of operations is clear.
2011-11-07 17:58:53 -08:00
Joe Groff c79ef17deb lists: make lmap behave row-polymorphically
Fix contributed by @bremac. Fixes #355.
2011-11-07 10:37:35 -08:00
Doug Coleman cb66728b26 compiler.cfg: Change low-level IR constructors from ##foo to <##foo> 2011-11-06 23:02:46 -08:00
Doug Coleman 1a2be52f25 compiler.tree: Renamed high-level IR node constructors to <#foo> from #foo. Moving towards making classes/word names not conflict. 2011-11-06 23:02:45 -08:00
Joe Groff 04a3c88227 vm: readable feps for more types 2011-11-06 20:26:52 -08:00
Joe Groff dadc8a3baa vm: print type names instead of numbers in fep 2011-11-06 20:26:51 -08:00
Doug Coleman 5877dc3640 lint: Add a word to find redundant word props like 'inline [flushable|foldable]' 2011-11-06 19:33:07 -08:00
Doug Coleman dde0599353 math.functions: flushable and foldable don't do anything on inline words because flushable and foldable work on call sites (#call nodes), and inlined words are inlined into another word's call site; they don't generate their own #call node. 2011-11-06 19:25:53 -08:00
Doug Coleman 1539682597 compiler.tree.dead-code: Rewrite /mod to /i or mod in the dead-code pass in the high level optimizer. Fixes #279. 2011-11-06 19:23:26 -08:00
Joe Groff 830a7f7100 tools.deploy.backend: fix vocab manifest parse
We were absent-mindedly passing the VOCABS: line off as a vocab name itself. vocabs.loader doesn't put up with that anymore.
2011-11-06 18:57:12 -08:00
Doug Coleman be9f8a99f0 Rename lookup to lookup-word. 2011-11-06 16:00:00 -08:00
Doug Coleman 90692a7c10 webapps.help: Load the navbar from a Factor word instead of hardcoding it into the template so that the glossary link works. 2011-11-06 12:16:46 -08:00
Doug Coleman d580d8fc01 html.components: For the t:html tag, only wrap strings in unescaped so that other objects can render. 2011-11-06 12:15:00 -08:00
Doug Coleman fcd639f52e webapps.help: Change webapps.help search from post to get. Fixes #343. 2011-11-05 00:07:16 -07:00
Doug Coleman 1f9dccb223 help.html: fix glossary link. 2011-11-05 00:05:58 -07:00
Doug Coleman 16e1dee457 Make edit-vocab work on an unloaded vocabulary. 2011-11-04 23:33:18 -07:00
Joe Groff c78b4d7f60 cpu.x86.*.bootstrap: save flags in signal-handlers 2011-11-04 11:56:01 -07:00
Joe Groff db1a47ffc1 cpu.x86.bootstrap: cell -> bootstrap-cell 2011-11-04 11:54:40 -07:00
Joe Groff a944e41e79 cpu.x86.assembler: PUSHF, POPF instructions 2011-11-04 11:23:11 -07:00
Joe Groff d4f24f44c3 cpu.x86.64.bootstrap: save all the regs on signal
Appears to fix another sporadic crash from mason on x86-64. There's no reason to cut corners here, really.
2011-11-04 10:01:56 -07:00
Doug Coleman a3ceb95060 Fix bootstrap. Add missing using on io.serial.linux. Fixes #351. 2011-11-04 06:08:02 -07:00
Joe Groff 88dbe09c4c unix.ffi: add signal constants 2011-11-04 00:24:18 -07:00
Joe Groff 50e0342f2b switch back to gcc from clang since it goes faster 2011-11-04 00:09:30 -07:00
Joe Groff a28192859a cpu.x86.bootstrap: don't safepoint in a safepoint
Safepointing in the signal-handler primitive causes a crash if the safepoint is guarded and the signal being handled was raised by a safepoint. Put our own RET in the subprimitive to bail out before the standard epilog gets written out. This tentatively appears to fix #349.
2011-11-03 20:19:38 -07:00
Joe Groff 721228965f makefile: add macosx-x86-fat target 2011-11-03 20:19:37 -07:00
Doug Coleman 8c9c655a43 Move io.serial.unix to io.serial.linux, add platforms files. Move termios into io.serial.linux.ffi vocab. 2011-11-03 16:26:34 -07:00
Joe Groff 30ccc2ebf6 mason.release.branch: fix test 2011-11-03 15:40:24 -07:00
Joe Groff 82bdb6a65a stack-checker.known-words: add ffi-signal-handlers 2011-11-03 15:20:42 -07:00
Joe Groff 1155da01c9 cpu.x86.32.bootstrap: typo 2011-11-03 13:07:13 -07:00
Joe Groff 149330c98e use gcc-4.2 on OS X 10.5, or clang on Xcode 4 2011-11-03 12:18:07 -07:00
Doug Coleman 584f773a0b Update emacs for editors protocol. 2011-11-03 12:04:02 -07:00
Joe Groff 7ac94bd09f vm: always generate safepoints in jit
Even if there's no stack frame we still need to safepoint before leaving the function. Fixes #332.
2011-11-03 11:57:43 -07:00
Joe Groff eb55863292 vm: restore sigaltstack setup on unix
#ifdef __OpenBSD__ is different from #ifndef __OpenBSD
2011-11-03 11:57:43 -07:00