Thanks much. This should keep me occupied and out of everyone's hair for a
while.
From: mrj...@gmail.com
Date: Fri, 10 Aug 2012 14:10:41 -0700
To: factor-talk@lists.sourceforge.net
Subject: Re: [Factor-talk] Any way of making sense of what's in the boot
image?
Write "my-arch make-image" in listener.
Then type Ctrl-W to walk it.
"Step" across my-arch
"Into" into make-image
Rinse, repeat. :)
On Fri, Aug 10, 2012 at 2:08 PM, Michael Clagett <mclag...@hotmail.com> wrote:
Quick question, if you're still on the horn. How do I trace into myarch
make-image from the Listener. If I hit enter it just executes. I'm sure there
must be any easy way to step into it, which I'm sure I can find by searching
the documentation. But perhaps you could save me five minutes.
From: mrj...@gmail.com
Date: Fri, 10 Aug 2012 14:01:58 -0700
To: factor-talk@lists.sourceforge.net
Subject: Re: [Factor-talk] Any way of making sense of what's in the boot
image?
Typically the architecture is a combination of os and arch:
IN: scratchpad my-arch . "unix-x86.64"
You can use the "my-arch" word to make an image for your architecture:
IN: scratchpad my-arch make-image
On Fri, Aug 10, 2012 at 1:56 PM, Michael Clagett <mclag...@hotmail.com> wrote:
Hi --
I've been trying to run the make-image word from the Listener and got as far as
this trace:
IN: scratchpad Command: restart
1: Note:
Added "bootstrap.image" vocabulary to search path
"x86.32" make-image
Loading resource:/core/bootstrap/stage1.factor
Bootstrap stage 1...
Loading vocab:bootstrap/primitives.factor
Creating primitives and basic runtime structures...
Loading vocab:bootstrap/syntax.factor
>From Traceback:
Data Stack:
[ ~quotation~ with-compilation-unit ]
"Bad architecture: x86.32"
Call Stack:
(U)
Quotation: [ set-namestack init-catchstack self quot>> call -> stop ]
(O)
Word: listener-thread
(O)
Word: listener
(O)
Word: (listener)
(U)
Quotation: [
[ ~quotation~ dip swap ~quotation~ dip ] dip swap
[ call datastack ] dip -> swap [ set-datastack ] dip
]
(U)
Quotation: [ call -> datastack ]
(O)
Word: make-image
(U)
Quotation: [
"Bootstrap stage 1..." print
flush "vocab:bootstrap/primitives.factor" run-file
-> load-help? off { "resource:core" } vocab-roots set [
~quotation~ % "math.integers" require
"math.floats" require "memory" require
"io.streams.c" require "vocabs.loader" require
"syntax" require "bootstrap.layouts" require
~quotation~ %
] [ ] make bootstrap-startup-quot set
]
(U)
Quotation: [
"Creating primitives and basic runtime structures..." print
flush H{ } clone sub-primitives set
"vocab:bootstrap/syntax.factor" parse-file architecture get
{ ~array~ ~array~ ~array~ ~array~ ~array~ ~array~ } ?at
[ "Bad architecture: " prepend throw ] unless
-> "vocab:cpu/" "/bootstrap.factor" surround
parse-file "vocab:bootstrap/layouts/layouts.factor"
parse-file "syntax" lookup-vocab vocab-words
bootstrap-syntax set H{ } clone dictionary set
H{ } clone root-cache set H{ } clone source-files set
H{ } clone update-map set H{ } clone implementors-map set
init-caches bootstrapping? on ( -- ) call-effect
( -- ) call-effect "accessors" create-vocab drop
num-types get f <array> builtins set [
( -- ) call-effect ~array~ ~quotation~ each
"fixnum" "math" create register-builtin
"bignum" "math" create register-builtin
"tuple" "kernel" create register-builtin
"float" "math" create register-builtin
"f" "syntax" lookup-word register-builtin
"array" "arrays" create register-builtin
"wrapper" "kernel" create register-builtin
"callstack" "kernel" create register-builtin
"string" "strings" create register-builtin
"quotation" "quotations" create register-builtin
"dll" "alien" create register-builtin
"alien" "alien" create register-builtin
"word" "words" create register-builtin
"byte-array" "byte-arrays" create register-builtin
"f" "syntax" lookup-word ~array~ define-builtin
"f" "syntax" create
~quotation~ "predicate" set-word-prop
"f?" "syntax" vocab-words delete-at
"t" "syntax" lookup-word define-singleton-class
"c-ptr" "alien" create ~quotation~ ~array~ make
define-union-class
"array-capacity" "sequences.private" create
"fixnum" "math" lookup-word
~quotation~ ~quotation~ make define-predicate-class
"array-capacity" "sequences.private" lookup-word
~195 more~
] with-compilation-unit
]
(O)
Method: M\ object throw
(U)
Quotation: [
OBJ-CURRENT-THREAD special-object error-thread set-global
current-continuation -> error-continuation set-global
[ original-error set-global ] [ rethrow ] bi
]
Anyone have any ideas?
From: mclag...@hotmail.com
To: factor-talk@lists.sourceforge.net
Date: Fri, 10 Aug 2012 17:50:12 +0000
Subject: Re: [Factor-talk] Any way of making sense of what's in the boot image?
Thanks for the reference. I assume that will be helpful once I get past
stepping through the bootstrapping code and am in the Listener environment.
From: mrj...@gmail.com
Date: Fri, 10 Aug 2012 10:40:28 -0700
To: factor-talk@lists.sourceforge.net
Subject: Re: [Factor-talk] Any way of making sense of what's in the boot
image?
You might also find it useful to try the "Walker" which allows you to step
through Factor code:
http://docs.factorcode.org/content/article-ui-walker.html
On Fri, Aug 10, 2012 at 10:29 AM, Michael Clagett <mclag...@hotmail.com> wrote:
Not a problem any more. WinDbg does the trick just fine. It was just Visual
Studio.
From: mclag...@hotmail.com
To: factor-talk@lists.sourceforge.net
Date: Fri, 10 Aug 2012 11:51:00 +0000
Subject: Re: [Factor-talk] Any way of making sense of what's in the boot image?
> > P.S. Incidentally, while I am on the subject, I find myself able to trace
> > through the VM startup code in Visual Studio with no problem at all, until I
> > get to the factor_vm::c_to_factor, which wraps a c-to-factor sub-primitive
> > inside of a callback stub and then invokes that function. On both a Windows
> > 7 platform and a Windows Server 2008 platform, my Visual Studio blows up
> > when the callback address loaded into EDX is called. Anybody ever
> > encountered this and any idea how to get around it?
>
> Factor code doesn't follow the C calling convention so it's unlikely
> that a debugger will be able to walk a stack with Factor frames. In
> recent versions of Factor you can trigger Factor's own low-level
> debugger with ^C, which will let you backtrace and step through Factor
> frames.
>
> -Joe
>
If I'm understanding this correctly, you are suggesting that if I'm in the
Factor development environment, I can drop into Factor's own low-level
debugger. But what do people do (you language maintainer, for example) when
you need to debug the startup code that builds an image that needs to be in
place for the development environment even to be launched? Am I correctly
understanding you, that I can't use a Windows debugger to step through the init
sequence, but don't have Factor's debugger available yet either? Or am I
missing something?
Any insights would be greatly appreciated.
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk