Re: [Factor-talk] Talk about Factor

2015-01-29 Thread Michael Clagett
Hi Andrea --

I too need to give a talk on Factor here in the Philadelphia area in a couple 
of months.  I am not the "old hand" that you are looking for, but it occurred 
to me that it might be valuable for us to collaborate.  While we definitely 
would want to get some of the more seasoned Factorers to help validate anything 
that we put together, it occurred to me that we might be able to put our 
relative newbie-ness to good advantage in that we can focus on what a beginner  
would need to know.

Despite the fact that I've been interested in Factor for a number of years, I 
haven't actually done that much programming with it, as I have been immersed in 
my own Forth-derived platform.  But I always look at things like a presentation 
as an opportunity to go up the learning curve in a relatively focused way.

If you would be interested in collaborating, drop me a message at 
mclag...@hotmail.com. 

Sent from my iPhone

> On Jan 29, 2015, at 12:20 PM, "Andrea Ferretti"  
> wrote:
> 
> Hi,
> 
> I will be giving an introductory talk about Factor at the LambdaCon in
> Bologna (Italy)
> 
> http://www.lambdacon.org/
> 
> Of course, I a not a Factor expert in any way, but I will make it
> clear and try to show the potentialities of Factor. I was thinking of
> following more or less parts of my tutorial
> 
> http://andreaferretti.github.io/factor-tutorial/
> 
> with some variations - a nice one would be the implementation of K-means here
> 
> https://github.com/andreaferretti/kmeans/blob/master/factor/kmeans/kmeans.factor
> 
> that I find quite neat :-)
> 
> I was also planning to let people download Factor and follow
> interactively, which should be quite possible since Factor is rather
> succinct.
> 
> I would like to gather some advice from more experienced factorers:
> what topics to choose? Do you have any experience in presenting Factor
> to a general audience? Any things that may appeal and capture the
> audience attention?
> 
> --
> Dive into the World of Parallel Programming. The Go Parallel Website,
> sponsored by Intel and developed in partnership with Slashdot Media, is your
> hub for all things parallel software development, from weekly thought
> leadership blogs to news, videos, case studies, tutorials and more. Take a
> look and join the conversation now. http://goparallel.sourceforge.net/
> ___
> Factor-talk mailing list
> Factor-talk@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/factor-talk

--
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/
___
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk


[Factor-talk] Pattern matching and Algebraic Data Types

2014-10-19 Thread Michael Clagett
Hi --

Getting back into Factor after a year-plus hiatus.  I  am about to familiarize 
myself with whatever facilities exist for working with Algebraic Data Types and 
pattern matching in the vein of what Languages like Haskell and ML provide.

Any suggestions of what to look at would be greatly appreciated.  

Thanks.

Mike

Sent from my iPad
--
Comprehensive Server Monitoring with Site24x7.
Monitor 10 servers for $9/Month.
Get alerted through email, SMS, voice calls or mobile push notifications.
Take corrective actions from your mobile device.
http://p.sf.net/sfu/Zoho
___
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk


Re: [Factor-talk] Test Driven Development

2013-05-26 Thread Michael Clagett
Yes, it's true that the term TDD originated with Kent Beck and the Extreme 
Programming crowd and that the narrower, more precise meaning that you are 
favoring is what was intended by these folks.  

But test-first is not the only mechanism available to making testing central to 
development, and it is this centrality that I take to be what Test-Driven is 
all about.  So in this broader meaning, which granted is not necessarily what 
the XP folks had in mind, the ability to and the intention to test drives the 
entire design and development process.  It is a natural extension of at least 
part of what the XP folks were promoting, but with a nod to some of the 
constraining realities of a typical modern development environment, where a 
test-first mentality is often not shared by all the participants who would need 
to embrace it for it to be practiced effectively by a wider development group.

Use of design techniques such as dependency inversion, single responsibility, 
and the other SOLID principles all help build code that is extremely testable 
whether you happen to do it before or after coding and a testing mindset drives 
the entire development process.  So take your pick whether you wish to embrace 
a narrower or wider meaning of the term.  But they do both exist.

Sent from my iPad

On May 26, 2013, at 11:31 AM, "William Tanksley, Jr"  
wrote:

> Michael Clagett  wrote:
>> I agree with Alexander, that this is a term that has come to represent a
>> number of different things to different people.
> 
> I don't think that's a good answer. Yes, some people have used Test
> Driven Development to refer to their own personal process that happens
> to use tests; but TDD was originally developed as a component of
> Extreme Programming, and as such there is a clear definition. TDD is
> the subset of XP that can be practiced by a solo programmer.
> 
> Before I discuss this, there's an important question: are there any
> test frameworks for J?
> 
>> Some folks write the tests first before they even write the code being
>> tested, leveraging this idea of a test as a spec using that spec to guide
>> the development of their code.
> 
> That's part of TDD -- without test-first, the development isn't driven
> by the tests, and there's no point in using the name. The most
> essential part of TDD is that you should NOT write a single line of
> code that isn't required in order to make a _failing_ test pass. So in
> order to add a new feature, you start by writing a test that you
> expect to fail -- but you expect to be able to make pass easily. Run
> the test and make sure it fails! Don't skip that step -- better
> programmers than you have been fooled by their own code. Then write
> just enough code to make it pass, and rerun your tests to confirm that
> they do pass. Repeat as needed.
> 
> That's the essential skeleton of TDD. There's some judgement involved,
> and guidance to help you decide where to start; there are also
> automated test runners to help you run your test suite more frequently
> (as yours tests get bigger it gets harder to run them with EVERY
> little change). Those put meat on the bones.
> 
> -Wm
> 
> --
> Try New Relic Now & We'll Send You this Cool Shirt
> New Relic is the only SaaS-based application performance monitoring service 
> that delivers powerful full stack analytics. Optimize and monitor your
> browser, app, & servers with just a few lines of code. Try New Relic
> and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may
> ___
> Factor-talk mailing list
> Factor-talk@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/factor-talk

--
Try New Relic Now & We'll Send You this Cool Shirt
New Relic is the only SaaS-based application performance monitoring service 
that delivers powerful full stack analytics. Optimize and monitor your
browser, app, & servers with just a few lines of code. Try New Relic
and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may
___
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk


Re: [Factor-talk] Test Driven Development

2013-05-26 Thread Michael Clagett
I agree with Alexander, that this is a term that has come to represent a number 
of different things to different people.   One core idea is that you attempt to 
capture in some set of assertions what the correct expected outcome is of a 
particular unit of code, given a particular set of test inputs.   The test 
inputs and expected outputs become a kind of spec for the code unit that 
defines the view of it from the outside, and leaves internal implementation 
details completely unspecified.  This enables you to change the internal 
implementation of that code unit in any way you wish, so long as your changes 
continue to produce the expected outputs and continue to pass your test 
assertions.   This approach can be used in a number of ways:

* you can refactor your code to give it a more a better structure and more 
desirable qualities, as long it continues to conform to the test specification
* you can substitute one or more pieces of the implementation with something 
more useful for a particular task at hand (for example, a fake database access 
component that hard-codes a particular database query result and returns it to 
the caller without actually having to be connected to a database at all, 
thereby executing more quickly and in a more isolated environment, yet still 
producing the results needed by the code under test)
* in a similar fashion you can substitute implementation components with ones 
that add some sort of useful instrumentation to the real components
* more generally, if you structure your code relationships and dependencies in 
such a way that you pass in (or "inject") into the "depender" a separate unit 
of code that fulfills a dependency, then you can substitute that 
dependency-fulfilling code with any of a number of substitutes that accomplish 
some of the goals mentioned above.   This technique is sometimes known as 
"inversion of control", where a piece of code turns to something from the 
outside to tell it what it is depending on, instead of building that control 
information into the code itself.
* etc., etc., lots of useful techniques have been built upon these concepts

The idea is to make tests that provide inputs to the code under test and that 
test test expected outcomes as lightweight and fast as possible so that they 
can be run without cost on a regular basis.  Then as you modify tested code or 
other code that might have side effects affecting the tested code, you can 
automate the execution of your tests and have them tell you when you have 
broken something that used to function correctly.

Some folks write the tests first before they even write the code being tested, 
leveraging this idea of a test as a spec using that spec to guide the 
development of their code.   Others code first and write tests afterwards, as a 
longer-term guarantee that whatever subsequent changes are made to the code (or 
other code that can affect it) those changes have not in any way invalidated 
the correct functioning of the code that the test covers.People talk about 
percentage of code coverage as a gross measure of how strongly your code is 
protected by such guarantees.   It is not always practical or possible given 
other constraints to take the time to achieve 100% code coverage (and there are 
likely portions of your code that won't benefit from tests as much as others 
and for which it is probably a waste of effort to do so).   

Date: Sun, 26 May 2013 14:34:56 +0200
From: ddo...@gmail.com
To: factor-talk@lists.sourceforge.net
Subject: Re: [Factor-talk] Test Driven Development

uhhm, i might not be *the* right person to answer this but:

test driven development (TDD) is a pretty open field in pretty much
anything. it mostly boils down to testing that when you give a function

some input you get the proper output.

methodology wise there's pretty much no certain paradigm to follow, or
rather they range from writing full coverage tests before actual code and
testing whole ranges of types vs not writing any tests at all.


what i just thought up as a neat methodology would be not writing tests
at all unless you encounter a bug and then try to locate the bug through
testing and fix it.

for clearer advice you might want to state your question more specifically.




On Sun, May 26, 2013 at 2:14 PM, graham telfer  wrote:

Hi,



Test driven development completely baffles me.  Any advice on this topic and 
how to make effective use of Factor's tools?





--

Try New Relic Now & We'll Send You this Cool Shirt

New Relic is the only SaaS-based application performance monitoring service

that delivers powerful full stack analytics. Optimize and monitor your

browser, app, & servers with just a few lines of code. Try New Relic

and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may

___

Factor-talk mailing list

Factor-talk@lists.sourceforge

Re: [Factor-talk] embedding factor

2012-11-30 Thread Michael Clagett
Also interested in this.


Sent from my iPhone

On Nov 30, 2012, at 3:25 PM, "Naveen Garg"  wrote:

> Hey guys, 
> I am playing around with factor again, and getting some useful work done.
> I am trying to use factor embedded...
> Unfortunately, the function "init_factor_from_args" that is mentioned in the 
> documentation is no longer in the source...
> There is a new function: start_standalone_factor in master.hpp.
> Has anyone used it successfully to embed factor ? 
> Thanks,
> Naveen
> --
> Keep yourself connected to Go Parallel: 
> TUNE You got it built. Now make it sing. Tune shows you how.
> http://goparallel.sourceforge.net
> ___
> Factor-talk mailing list
> Factor-talk@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/factor-talk
--
Keep yourself connected to Go Parallel: 
TUNE You got it built. Now make it sing. Tune shows you how.
http://goparallel.sourceforge.net___
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk
--
Keep yourself connected to Go Parallel: 
TUNE You got it built. Now make it sing. Tune shows you how.
http://goparallel.sourceforge.net___
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk


Re: [Factor-talk] Quick Question For Chris Double

2012-09-22 Thread Michael Clagett
unity likes to
foster, I am contemplating (not promising, mind you, but definitely seriously
considering) putting together a series of introductory discussions for the
Factor user to some of the more powerful concepts I encountered in the Clean
book.  I would probably do this
by a series of concept tutorials that work through a handful of the half dozen
or so serious examples that are in part 2 of the Clean book and demonstrate how
you would code them in Factor (much along the lines of Chris’s blog that got me
started on all of this).

Of course my underlying agenda is
to answer some of this for myself and to learn Factor well enough to be able to
pull such an exercise off.So I would
expect anything coming from me to get better as it goes along.  Now I could try 
to do all this myself, but
given what a busy guy I am, chances are that if I did, this would remain 
largely the stuff
of pipe dreams.  So anyone else wishing
to engage in such an effort would be most appreciated and welcomed and would
help make this idea actually come to fruition. 
Also, I’m sure there’s stuff out there that I don’t know about that is
more geared to the newcomer than some of the things I’ve been looking at, so no
need to reinvent the wheel .  

Given these caveats, here’s an
introductory list of topics (in no particular order) I would propose to cover.  
 Any feedback on suitability and valuable
additions/deletions would be greatly appreciated:

Defining by combination in Factor and
effective use of Higher Order FunctionsPartial parameterization and
Currying

Effective use of Pattern matching

Effective alternation (if/else,
switch, etc.)

Iteration in Factor

Induction and Recursion

Lists, Tuples, Records and Arrays
in Factor

Effective use of named stack
parameters and local variables

Overloading – effective use of
Factor’s Generics

List and array comprehensions and
lazy sequences in Factor

Creating and using effective algebraic
data structures

 

This is more or less the set of
concepts needed to slog your way through some of the more extended Clean
examples, so I’m assuming they are available in one form or another in Factor
as well.  Even if there is a good
treatment of all these concepts available already in one place or another, it 
still
might be valuable to have them all pulled together and applied in an integrated
way to a series of coherent examples.  And I've found in the past that it can 
be valuable having the efforts of a group coordinated by a single editor, who 
helps achieve consistency and coherence.  Of
course if any of this does materialize, we’ll have to find a place to put it (I 
don’t
think you want me posting tutorials here). 
But I’ll cross that bridge when it actually becomes an issue.  Talk is cheap 
after all.

Sorry about the long post.  It seemed potentially worthwhile, however.


 From: mclag...@hotmail.com
To: factor-talk@lists.sourceforge.net
Date: Tue, 4 Sep 2012 21:43:27 +
Subject: Re: [Factor-talk] Quick Question For Chris Double




Damn you, Chris Double!  Now you have me reading the Functional Programming in 
Clean book.  Please, don't ever answer any of my questions so helpfully again.

> From: chris.dou...@double.co.nz
> Date: Sat, 25 Aug 2012 01:39:41 +1200
> To: factor-talk@lists.sourceforge.net
> Subject: Re: [Factor-talk] Quick Question For Chris Double
> 
> On Fri, Aug 24, 2012 at 11:29 PM, Michael Clagett  
> wrote:
> > Back in December of 2006 in one of your articles on Parser Combinators you 
> > reference
> > a Chapter 5 on Parser Combinators from some larger work.  This is a nice
> > article and it leads to wonder what the source is that it is taken from and
> > whether the surrounding chapters are any good and worth reading as well.
> 
> I that that was this chapter:
> 
> <http://www.bluishcoder.co.nz/II.05.ParserCombinators.pdf>
> 
> It was from Part II of a book on the Clean programming language.
> Unfortunately it seems to no longer be available according to:
> 
> <http://wiki.clean.cs.ru.nl/Functional_Programming_in_Clean>
> 
> Luckily it's rare for things to disappear completely from the net:
> 
> <http://www.mmnt.net/db/0/0/ftp.cs.kun.nl/pub/CSI/SoftwEng.FunctLang/papers/cleanbook>
> 
> The case studies are a good read.
> 
> Chris.
> -- 
> http://www.bluishcoder.co.nz
> 
> --
> 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
> 

Re: [Factor-talk] Quick Question For Chris Double

2012-09-04 Thread Michael Clagett
Damn you, Chris Double!  Now you have me reading the Functional Programming in 
Clean book.  Please, don't ever answer any of my questions so helpfully again.

> From: chris.dou...@double.co.nz
> Date: Sat, 25 Aug 2012 01:39:41 +1200
> To: factor-talk@lists.sourceforge.net
> Subject: Re: [Factor-talk] Quick Question For Chris Double
> 
> On Fri, Aug 24, 2012 at 11:29 PM, Michael Clagett  
> wrote:
> > Back in December of 2006 in one of your articles on Parser Combinators you 
> > reference
> > a Chapter 5 on Parser Combinators from some larger work.  This is a nice
> > article and it leads to wonder what the source is that it is taken from and
> > whether the surrounding chapters are any good and worth reading as well.
> 
> I that that was this chapter:
> 
> <http://www.bluishcoder.co.nz/II.05.ParserCombinators.pdf>
> 
> It was from Part II of a book on the Clean programming language.
> Unfortunately it seems to no longer be available according to:
> 
> <http://wiki.clean.cs.ru.nl/Functional_Programming_in_Clean>
> 
> Luckily it's rare for things to disappear completely from the net:
> 
> <http://www.mmnt.net/db/0/0/ftp.cs.kun.nl/pub/CSI/SoftwEng.FunctLang/papers/cleanbook>
> 
> The case studies are a good read.
> 
> Chris.
> -- 
> http://www.bluishcoder.co.nz
> 
> --
> 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


Re: [Factor-talk] Comments on 'Your First Program

2012-08-31 Thread Michael Clagett

Okay, never mind.   Not being a Mac guy, I must not understand it well enough.  
 But on my wife's and daughter's MacBook Pros I usually find that Command + 
some key is roughly equivalent to Ctrl + the same key on the PC.  Never noticed 
that there was also a Ctrl key.  Sorry for the noise.
 > Date: Fri, 31 Aug 2012 18:29:35 -0700
> From: arc...@gmail.com
> To: factor-talk@lists.sourceforge.net
> Subject: Re: [Factor-talk] Comments on 'Your First Program
> 
> On Fri, Aug 31, 2012 at 6:25 PM, Michael Clagett  wrote:
> > I just meant that it's not called control, it's called command.  So you
> > could probably get by with something like Ctrl(Cmd)-C.  Or Cmd(Ctrl)-C, if
> > you favor Macs.  Or you could stick with the C-c and just explain somewhere
> > at the top that on a PC that means Control and on a Mac it means Command.
> > Not a big deal, just thought you might want to make it completely clear to
> > everyone.
> 
> Ctrl and Cmd are different keys.
> 
> -Joe
> 
> --
> 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


Re: [Factor-talk] Comments on 'Your First Program

2012-08-31 Thread Michael Clagett

I just meant that it's not called control, it's called command.  So you could 
probably get by with something like Ctrl(Cmd)-C.  Or Cmd(Ctrl)-C, if you favor 
Macs.  Or you could stick with the C-c and just explain somewhere at the top 
that on a PC that means Control and on a Mac it means Command.  Not a big deal, 
just thought you might want to make it completely clear to everyone. 
 > Date: Fri, 31 Aug 2012 17:39:49 -0700
> From: arc...@gmail.com
> To: factor-talk@lists.sourceforge.net
> Subject: Re: [Factor-talk] Comments on 'Your First Program
> 
> On Fri, Aug 31, 2012 at 5:19 PM, Michael Clagett  wrote:
> > Just thought I would mention that there is no Ctrl key on the Mac, so this
> > change might not be so good for the Mac folks.
> 
> Yes, there is. (Unless you mean the original Mac 128k and 512k, which
> Factor does not yet support.)
> 
> -Joe
> 
> --
> 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


Re: [Factor-talk] Comments on 'Your First Program

2012-08-31 Thread Michael Clagett
Just thought I would mention that there is no Ctrl key on the Mac, so this 
change might not be so good for the Mac folks.

Sent from my iPhone

On Aug 31, 2012, at 6:47 PM, "John Benediktsson"  wrote:

> Hi Mike,
> 
> Great input, thanks!  A few questions -
>  
> 'Writing some logic in your first program'
> After it says 'Place this definition at the end of your source file.' I 
> suggest adding: 'Note that a space is significant in Factor.'
> 
> What exactly are you trying to communicate with this -- that we require 
> spaces to tokenize?  Multiple spaces are treated the same as a single space, 
> indentation doesn't matter (although tabs are disallowed as blank characters).
>  
> Where it says: 'Enter dup in the listener's input area, and press C+h.'
> This didn't work, so I wondered what C+h actually meant. I have never seen 
> Ctrl and Alt shortened to C and A before.  It turned out that I had to 
> highlight dup, so I suggest replace the sentence by:
> 
> 'Enter dup in the listener's input area, highlight it, then press Ctrl+h.'
> 
> You can also position your cursor on or immediately after the word you want 
> to "Ctrl+h".
>  
> Best,
> John.
> 
> --
> 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


Re: [Factor-talk] Quick Question For Chris Double

2012-08-24 Thread Michael Clagett
Thanks much.  In this age of erroneous credit reports, that "never 
disappearing" aspect of the web is definitely a double-edged sword.

Sent from my iPhone

On Aug 24, 2012, at 9:41 AM, "Chris Double"  wrote:

> On Fri, Aug 24, 2012 at 11:29 PM, Michael Clagett  
> wrote:
>> Back in December of 2006 in one of your articles on Parser Combinators you 
>> reference
>> a Chapter 5 on Parser Combinators from some larger work.  This is a nice
>> article and it leads to wonder what the source is that it is taken from and
>> whether the surrounding chapters are any good and worth reading as well.
> 
> I that that was this chapter:
> 
> <http://www.bluishcoder.co.nz/II.05.ParserCombinators.pdf>
> 
> It was from Part II of a book on the Clean programming language.
> Unfortunately it seems to no longer be available according to:
> 
> <http://wiki.clean.cs.ru.nl/Functional_Programming_in_Clean>
> 
> Luckily it's rare for things to disappear completely from the net:
> 
> <http://www.mmnt.net/db/0/0/ftp.cs.kun.nl/pub/CSI/SoftwEng.FunctLang/papers/cleanbook>
> 
> The case studies are a good read.
> 
> Chris.
> -- 
> http://www.bluishcoder.co.nz
> 
> --
> 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


[Factor-talk] Quick Question For Chris Double

2012-08-24 Thread Michael Clagett

Chris -- I'm spending some time going back through various key bloggers' 
contributions and am working through some of yours at the moment.  Back in 
December of 2006 in one of your articles on Parser Combinators you reference a 
Chapter 5 on Parser Combinators from some larger work.  This is a nice article 
and it leads to wonder what the source is that it is taken from and whether the 
surrounding chapters are any good and worth reading as well. Your thoughts? 
Mike--
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


Re: [Factor-talk] Is there a Factor.js ?

2012-08-23 Thread Michael Clagett
Yes.  In fact that is how I'm intending to target the CLR and JVM in my own 
environment -- whether I successfully implement the ability to use Factor (the 
language) inside my platform or not.   I was envisioning something like a 
combination of direct byte code generation (either MSIL or JVM byte code) 
together with whatever programmatic facilities are necessary for fixing up 
metadata tokens, invoking the respective jit compilers and the like.  This 
could just as easily be done from the existing Factor environment as any custom 
environment I manage to construct and in a perfect world Factor code created in 
either environment would compile and execute in the other just fine.

You Factor guru types might be scratching your heads and wondering why on earth 
I would want to reproduce the factor booting mechanism in my own environment 
and build it on top of my own foundations instead of just using what Slava has 
already put so much work into.  The answer is that while I'm not sure that this 
will be necessary (i might be able to get away with the DLL-ized version of 
Factor itself; I'm in major research mode about it as we speak), I suspect I 
may need to roll my own in order to integrate at as deep a level as I need with 
other language facilities I already have in place.

That's as much as I'm going to say about it, because I don't want to commandeer 
the FactorCode.org airwaves to talk about my stuff.  But whatever I end up 
doing, I do expect to give back to the community in the way of documentation of 
what I learn along the way.

Sent from my iPhone

On Aug 23, 2012, at 1:42 PM, "Joe Groff"  wrote:

> On Thu, Aug 23, 2012 at 11:46 AM, Michael Clagett  
> wrote:
>> That, I would guess, is a result of its being implemented in C#.  But what
>> you lose at that point is the ability for the language to be used outside of
>> the CLR and the extreme portability of something like Factor.  What I'm
>> envisioning is something closer to Microsoft's C++, which now has built-in
>> support for generating MSIL, while still remaining completely viable on a
>> native code platform.  Such a capability for Factor (with the ability to
>> generate JVM byte code as well) would allow Factor to act as a DSL layer
>> above real-world code bases that organizations are always going to be using
>> for a significant portion of their development.
> 
> The JVM and CLR both have native code interfaces a Factor bridge could
> take advantage of. I think that would be a more realistic avenue
> toward interfacing with those platforms than rearchitecting Factor to
> target the JVM or CLR directly.
> 
> -Joe
> 
> --
> 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


Re: [Factor-talk] Is there a Factor.js ?

2012-08-23 Thread Michael Clagett
That, I would guess, is a result of its being implemented in C#.  But what you 
lose at that point is the ability for the language to be used outside of the 
CLR and the extreme portability of something like Factor.  What I'm envisioning 
is something closer to Microsoft's C++, which now has built-in support for 
generating MSIL, while still remaining completely viable on a native code 
platform.  Such a capability for Factor (with the ability to generate JVM byte 
code as well) would allow Factor to act as a DSL layer above real-world code 
bases that organizations are always going to be using for a significant portion 
of their development.

Sent from my iPhone

On Aug 23, 2012, at 10:51 AM, "Naveen Garg"  wrote:

> > smooth integration with non-Factor runtimes like the JVM or the CLR
> Have a look at cat which runs on the CLR: 
> http://www.cat-language.com/intro.html  .
> 
> 
> 
> --
> 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


Re: [Factor-talk] Is there a Factor.js ?

2012-08-23 Thread Michael Clagett

John -- Couldn't resist chiming in here.  Of course Factor is portable, open 
source, and reliable.  These are three of its strongest attributes.  But the 
DLL version of it nothwithstanding, it is such an attractive language from a 
language standpoint that it leads one to want to have it where one is already 
working -- not just as an alternative.   Thus the genesis of my (admittedly 
expansive) vision of integrating it into the environment I am building.   
Chances are I'll die before that ever comes to anything.  But a more general 
benefit to the wider community would be eventually to have Factor integrated 
into some of the development environments that folks are already using on a 
day-in, day-out.   That probably means a reasonably smooth integration with 
non-Factor runtimes like the JVM or the CLR and the code and libraries that sit 
on top of them, as well as programming environments like Eclipse and 
VisualStudio. Now I understand how wild-eyed and "future" this is.  The 
language after all is a labor of love from a dedicated community that just 
happens to have a lot of good taste, but finite resources.  And it hasn't even 
reached 1.0 maturity yet, so there's much to be done before such a wider vision 
materializes.  So please do not misunderstand; this is not in any way a 
complaint or criticism -- nor even a request, because, you know, that's just 
not realistic.  It is, however, a hope.  That some day this fabulous language 
can be brought into mainstream environments where it's power can be put to 
really widespread use.  Granted, I'm an enterprise development manager by trade 
during the day, so maybe this is just my bias.  But wishing and hoping costs 
nothing. Best,
 MikeFrom: mrj...@gmail.com
Date: Wed, 22 Aug 2012 21:04:00 -0700
To: factor-talk@lists.sourceforge.net
Subject: Re: [Factor-talk] Is there a Factor.js ?

There is a "Factor Playground" implemented in Javascript:
http://personal.inet.fi/koti/egaga/jsfactor/playground.html


It does not work with Factor's extensive library, however.
Its not worth getting into a philosophical discussion about Javascript, but I 
would note that Factor is portable (linux, mac, windows), open source (bsd 
license), and reliable (extensive library and test suites).


Best,John.

On Wed, Aug 22, 2012 at 7:44 PM, H.C. Chen  wrote:


I tried to find "factor.js" for a while, nothing found so far.
What in my mind is the Processing programming language established on 
JavaScript.

Include "Processing.js" into your .html turns it into processing aware.


< script src="processing-1.3.6.js" >< /script > 
Refer to http://processingjs.org/  




We have Forth.js too. It run under Windows DOS box JScript interpreter. Like 
this: cscript.exe jeforth.js 



OKTo work in a shell is very useful.
The reason I like anything.JS is the portability, open source, and reliable.

--

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


Re: [Factor-talk] Any way of making sense of what's in the boot image?

2012-08-17 Thread Michael Clagett

Thank you Alex.  Seeing the polymorphic inline caching reference makes me 
realize that I really need to go back and reread Slava's (et. al) various blogs 
that have been produced through the years.  I read them all once, but that was 
a couple years ago -- not knowing what I know now.   This should help me not 
revisit ground in this forum that has already been documented elsewhere.   A 
bit more patience, everybody please, while I work out an effective (and 
self-sufficient) internals exploration strategy.
 > From: ajvond...@csupomona.edu
> To: factor-talk@lists.sourceforge.net
> Date: Fri, 17 Aug 2012 08:46:46 -0700
> Subject: Re: [Factor-talk] Any way of making sense of what's in the boot 
> image?
> 
> pic-tail-reg = polymorphic inline cache tail call register
> 
> ds-reg = data stack register
> 
> rs-reg = retain stack register
> 
> nv-reg: might help to see 
> https://github.com/slavapestov/factor/blob/master/basis/cpu/x86/bootstrap.factor#L14
> 
> link-reg: only place it seems to be used is 
> https://github.com/slavapestov/factor/blob/master/basis/cpu/x86/bootstrap.factor#L49
> 
> shift-arg, div-arg, mod-arg: seem to be used in x86 bootstrapping for holding 
> arithmetic arguments; e.g., 
> https://github.com/slavapestov/factor/blob/master/basis/cpu/x86/bootstrap.factor#L561
> 
> That's as much as I can gather from a glance,
> --Alex Vondrak
> 
> 
> From: Michael Clagett [mclag...@hotmail.com]
> Sent: Friday, August 17, 2012 7:08 AM
> To: Factor-Talk
> Subject: Re: [Factor-talk] Any way of making sense of what's in the boot 
> image?
> 
> A few more:
> 
> // ?
> : shift-arg ( -- reg ) ECX ;
> 
> // ?
> : div-arg ( -- reg ) EAX ;
> 
> // ?
> : mod-arg ( -- reg ) EDX ;
> 
> 
> 
> From: mclag...@hotmail.com
> To: factor-talk@lists.sourceforge.net
> Date: Fri, 17 Aug 2012 14:03:30 +
> Subject: Re: [Factor-talk] Any way of making sense of what's in the boot 
> image?
> 
> // ?
> : pic-tail-reg ( -- reg ) EDX ;
> 
> // stack pointer
> : stack-reg ( -- reg ) ESP ;
> 
> // stack frame pointer
> : frame-reg ( -- reg ) EBP ;
> 
> // virtual machine object base
> : vm-reg ( -- reg ) EBX ;
> 
> : ctx-reg ( -- reg ) EBP ;
> 
> // non-volatile registers  -- these would be registers needing to be 
> preserved (and that callers can count on being preserved)?
> : nv-regs ( -- seq ) { ESI EDI EBX } ;
> 
> // volatile registers -- these would be registers one is free to use (and 
> that callers cannot count on being preserved)?
> : volatile-regs ( -- seq ) { EAX ECX EDX } ;
> 
> // ?
> : nv-reg ( -- reg ) ESI ;
> 
> // ?
> : ds-reg ( -- reg ) ESI ;
> 
> // ?
> : rs-reg ( -- reg ) EDI ;
> 
> // ?
> : link-reg ( -- reg ) EBX ;
> 
> Would anybody be able to validate assumptions articulated above and fill in 
> missing pieces.  This is good foundational knowledge to operate in general 
> with.
> 
> 
> From: mclag...@hotmail.com
> Date: Thu, 16 Aug 2012 13:15:48 -0400
> To: factor-talk@lists.sourceforge.net
> Subject: Re: [Factor-talk] Any way of making sense of what's in the boot 
> image?
> 
> Great, thanks.
> 
> Sent from my iPhone
> 
> On Aug 16, 2012, at 1:11 PM, "John Benediktsson" 
> mailto:mrj...@gmail.com>> wrote:
> 
> 
> So then, John, does that mean that in the [ 4 slot { array} declare ], that 
> I'm getting the slot named "array" which is at offset 4 (and then declaring 
> that to be an array, so as to disable some of the type safety checks)?
> 
> Yes, the hashtable code is written at a bit lower level and thus maybe a 
> little harder to read than one might normally write in Factor since it is one 
> of the building blocks that everything is built upon.  It is also possible 
> that some of the compiler optimizations that have been written in the last 
> couple of years make some of those declarations unnecessary, although I'd 
> have to look into it more to know for sure.
> 
> Also, due to the bootstrapping mechanism, some of the higher level language 
> constructs like locals and fry quotations are not available yet.  That is 
> something we hope to fix at some future point.
> 
> Here it says slot takes two incoming values:  an obj and a non-negative 
> fixnum, which is the nth slot.   In the hashtable slot-specs you list below 
> there are only three slots listed, but it does say that the slot named 
> "array" is at offset 4.   Is it this offset number that is being specified by 
> the "m" parameter?  And thus is 

Re: [Factor-talk] Any way of making sense of what's in the boot image?

2012-08-17 Thread Michael Clagett

A few more: // ?: shift-arg ( -- reg ) ECX ;
// ?: div-arg ( -- reg ) EAX ;
// ?: mod-arg ( -- reg ) EDX ;
 From: mclag...@hotmail.com
To: factor-talk@lists.sourceforge.net
Date: Fri, 17 Aug 2012 14:03:30 +
Subject: Re: [Factor-talk] Any way of making sense of what's in the boot image?





// ?
: pic-tail-reg ( -- reg ) EDX ;


// stack pointer
: stack-reg ( -- reg ) ESP ;


// stack frame pointer
: frame-reg ( -- reg ) EBP ;


// virtual machine object base
: vm-reg ( -- reg ) EBX ;


: ctx-reg ( -- reg ) EBP ;


// non-volatile registers  -- these would be registers needing to be preserved 
(and that callers can count on being preserved)?
: nv-regs ( -- seq ) { ESI EDI EBX } ;


// volatile registers -- these would be registers one is free to use (and that 
callers cannot count on being preserved)?
: volatile-regs ( -- seq ) { EAX ECX EDX } ;


// ?
: nv-reg ( -- reg ) ESI ;


// ?
: ds-reg ( -- reg ) ESI ;


// ?
: rs-reg ( -- reg ) EDI ;


// ?
: link-reg ( -- reg ) EBX ;
 
Would anybody be able to validate assumptions articulated above and fill in 
missing pieces.  This is good foundational knowledge to operate in general with.
 
From: mclag...@hotmail.com
Date: Thu, 16 Aug 2012 13:15:48 -0400
To: factor-talk@lists.sourceforge.net
Subject: Re: [Factor-talk] Any way of making sense of what's in the boot
image?

Great, thanks.

Sent from my iPhone
On Aug 16, 2012, at 1:11 PM, "John Benediktsson"  wrote:

 So then, John, does that mean that in the [ 4 slot { array} declare ], that 
I'm getting the slot named "array" which is at offset 4 (and then declaring 
that to be an array, so as to disable some of the type safety checks)?   


Yes, the hashtable code is written at a bit lower level and thus maybe a little 
harder to read than one might normally write in Factor since it is one of the 
building blocks that everything is built upon.  It is also possible that some 
of the compiler optimizations that have been written in the last couple of 
years make some of those declarations unnecessary, although I'd have to look 
into it more to know for sure.


Also, due to the bootstrapping mechanism, some of the higher level language 
constructs like locals and fry quotations are not available yet.  That is 
something we hope to fix at some future point.

 Here it says slot takes two incoming values:  an obj and a non-negative 
fixnum, which is the nth slot.   In the hashtable slot-specs you list below 
there are only three slots listed, but it does say that the slot named "array" 
is at offset 4.   Is it this offset number that is being specified by the "m" 
parameter?  And thus is the array I am seeing in my original description the 
contents of the "array" slot of the hashtable that was originally on the stack? 
  That makes sense to me.   And the fact that the array is 128 slots long 
(allowing flattened representation of 64 key-value pairs) just means that the 
underlying array in the hashtable has 64 buckets.  Is this a correct 
interpretation.  If it is, it makes sense that the actual 26 values stored in 
the hash table would be dispersed throught the 64 buckets, because this is what 
a hashtable does.


Yes, exactly!  The "slot-spec" tuple provides a generic description of what is 
to be found in this case at offset 4.  

Best,

John.
--
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/lis

Re: [Factor-talk] Any way of making sense of what's in the boot image?

2012-08-17 Thread Michael Clagett

: pic-tail-reg ( -- reg ) EDX ;
//stack pointer // ?: stack-reg ( -- reg ) ESP ;
// stack frame pointer: frame-reg ( -- reg ) EBP ;
// virtual machine object base: vm-reg ( -- reg ) EBX ;
: ctx-reg ( -- reg ) EBP ;
// non-volatile registers  -- these would be registers needing to be preserved 
(and that callers can count on being preserved)?: nv-regs ( -- seq ) { ESI EDI 
EBX } ;
// volatile registers -- these would be registers one is free to use (and that 
callers cannot count on being preserved)?: volatile-regs ( -- seq ) { EAX ECX 
EDX } ;
// ?: nv-reg ( -- reg ) ESI ;
// ?: ds-reg ( -- reg ) ESI ;
// ?: rs-reg ( -- reg ) EDI ;
// ?: link-reg ( -- reg ) EBX ; Would anybody be able to validate 
assumptions articulated above and fill in missing pieces.  This is good 
foundational knowledge to operate in general with.
 From: mclag...@hotmail.com
Date: Thu, 16 Aug 2012 13:15:48 -0400
To: factor-talk@lists.sourceforge.net
Subject: Re: [Factor-talk] Any way of making sense of what's in the boot
image?

Great, thanks.

Sent from my iPhone
On Aug 16, 2012, at 1:11 PM, "John Benediktsson"  wrote:

 So then, John, does that mean that in the [ 4 slot { array} declare ], that 
I'm getting the slot named "array" which is at offset 4 (and then declaring 
that to be an array, so as to disable some of the type safety checks)?   


Yes, the hashtable code is written at a bit lower level and thus maybe a little 
harder to read than one might normally write in Factor since it is one of the 
building blocks that everything is built upon.  It is also possible that some 
of the compiler optimizations that have been written in the last couple of 
years make some of those declarations unnecessary, although I'd have to look 
into it more to know for sure.


Also, due to the bootstrapping mechanism, some of the higher level language 
constructs like locals and fry quotations are not available yet.  That is 
something we hope to fix at some future point.

 Here it says slot takes two incoming values:  an obj and a non-negative 
fixnum, which is the nth slot.   In the hashtable slot-specs you list below 
there are only three slots listed, but it does say that the slot named "array" 
is at offset 4.   Is it this offset number that is being specified by the "m" 
parameter?  And thus is the array I am seeing in my original description the 
contents of the "array" slot of the hashtable that was originally on the stack? 
  That makes sense to me.   And the fact that the array is 128 slots long 
(allowing flattened representation of 64 key-value pairs) just means that the 
underlying array in the hashtable has 64 buckets.  Is this a correct 
interpretation.  If it is, it makes sense that the actual 26 values stored in 
the hash table would be dispersed throught the 64 buckets, because this is what 
a hashtable does.


Yes, exactly!  The "slot-spec" tuple provides a generic description of what is 
to be found in this case at offset 4.  

Best,

John.
--
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 endpo

Re: [Factor-talk] Any way of making sense of what's in the boot image?

2012-08-16 Thread Michael Clagett
Great, thanks.

Sent from my iPhone

On Aug 16, 2012, at 1:11 PM, "John Benediktsson"  wrote:

>  
> So then, John, does that mean that in the [ 4 slot { array} declare ], that 
> I'm getting the slot named "array" which is at offset 4 (and then declaring 
> that to be an array, so as to disable some of the type safety checks)?   
> 
> Yes, the hashtable code is written at a bit lower level and thus maybe a 
> little harder to read than one might normally write in Factor since it is one 
> of the building blocks that everything is built upon.  It is also possible 
> that some of the compiler optimizations that have been written in the last 
> couple of years make some of those declarations unnecessary, although I'd 
> have to look into it more to know for sure.
> 
> Also, due to the bootstrapping mechanism, some of the higher level language 
> constructs like locals and fry quotations are not available yet.  That is 
> something we hope to fix at some future point.
>  
> Here it says slot takes two incoming values:  an obj and a non-negative 
> fixnum, which is the nth slot.   In the hashtable slot-specs you list below 
> there are only three slots listed, but it does say that the slot named 
> "array" is at offset 4.   Is it this offset number that is being specified by 
> the "m" parameter?  And thus is the array I am seeing in my original 
> description the contents of the "array" slot of the hashtable that was 
> originally on the stack?   That makes sense to me.   And the fact that the 
> array is 128 slots long (allowing flattened representation of 64 key-value 
> pairs) just means that the underlying array in the hashtable has 64 buckets.  
> Is this a correct interpretation.  If it is, it makes sense that the actual 
> 26 values stored in the hash table would be dispersed throught the 64 
> buckets, because this is what a hashtable does.
> 
> Yes, exactly!  The "slot-spec" tuple provides a generic description of what 
> is to be found in this case at offset 4.  
> 
> 
> Best,
> John.
> --
> 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


Re: [Factor-talk] Any way of making sense of what's in the boot image?

2012-08-16 Thread Michael Clagett

So then, John, does that mean that in the [ 4 slot { array} declare ], that I'm 
getting the slot named "array" which is at offset 4 (and then declaring that to 
be an array, so as to disable some of the type safety checks)? slot ( obj m 
-- value )
Vocabulary
slots.privateInputs and outputs
obj   an object
m a non-negative fixnum
value an object Word description
Reads the object stored at the nth slot of obj.
Here it says slot takes two incoming values:  an obj and a non-negative fixnum, 
which is the nth slot.   In the hashtable slot-specs you list below there are 
only three slots listed, but it does say that the slot named "array" is at 
offset 4.   Is it this offset number that is being specified by the "m" 
parameter?  And thus is the array I am seeing in my original description the 
contents of the "array" slot of the hashtable that was originally on the stack? 
  That makes sense to me.   And the fact that the array is 128 slots long 
(allowing flattened representation of 64 key-value pairs) just means that the 
underlying array in the hashtable has 64 buckets.  Is this a correct 
interpretation.  If it is, it makes sense that the actual 26 values stored in 
the hash table would be dispersed throught the 64 buckets, because this is what 
a hashtable does. So am I understanding this correctly?   By the way, the words 
you pointed me to are exceedingly useful, thank you very much.  I hate to be so 
needy, but this is foundational stuff that will help me immensely with my task 
(which should produce documentation goodies for the entire community).
 From: mrj...@gmail.com
Date: Thu, 16 Aug 2012 08:10:31 -0700
To: factor-talk@lists.sourceforge.net
Subject: Re: [Factor-talk] Any way of making sense of what's in the boot
image?

In the listener, if you run this code:
IN: scratchpad clearIN: scratchpad "value" "key" associate
Then step over to [ set-at ] keep


If at this point you just keep stepping "into" things, you should do a deep 
dive into all the parts, including the 4 slot { array } declare which should 
give you something like { ~tombstone~ ~tombstone~ ~tombstone~ ~tombstone~ } (an 
array full of "tombstone" elements which indicate no key or value is present).  
A hashtable with deleted elements will have "~empty~".  A hashtable with 
key/value will have { "key" "value" } at some point in the array.  The array is 
flattened key/value pairs, so a 4 bucket hashtable will have an 8 element array 
storing key/value side-by-side starting at the even indices.


I'm not sure what the 26-slot hash table is that you are looking at, so I put a 
clear in the code above to make sure your data stack is empty before walking.  
It is also possible that you are tracing some code which is traversing the 
namespaces (a vector of hashtables containing symbolic variables used in parts 
of the code, with names like the ones you mention).


A hashtable has 3 slots (the 0 slot is a numeric value), see:
```IN: scratchpad \ hashtable "slots" word-prop .{T{ slot-spec

{ name "count" }{ offset 2 }{ class array-capacity }
{ initial 0 }}T{ slot-spec{ name "deleted" }

{ offset 3 }{ class array-capacity }{ initial 0 }}  
  T{ slot-spec{ name "array" }{ offset 4 }

{ class array }{ initial { } }}}```
You might also like to try "describe", and poke around at the various word 
properties (see "props" below):


```IN: scratchpad \ hashtable describeIN: hashtables SYMBOL: hashtablehashcode  
251442479911733628name  "hashtable"vocabulary"hashtables"

def   [ \ hashtable ]props H{ { "help-parent" "hashtables" } { 
"slots" ~array~ } { ...pic-def   fpic-tail-def  fsub-primitive f

```

On Thu, Aug 16, 2012 at 6:01 AM, Michael Clagett  wrote:






Hi --
 
Okay.  I'm going to ask for my first lifeline. :)  I'm tracing through some 
arcane stuff indeed.  Everything is going along swimmingly.  I get to the word 
"new-key@", which at its start wants to execute [ array>> 2dup hash@ 0 f 
(new-key@) ] with the "keep" combinator.  All good so far.  "array>>" resolves 
to [ 4 slot { array } declare ], which I believe should mean "get the 4th slot 
of the object on top of stack and declare to Factor that you know for sure it 
is an array".  The object on the top of the stack, according to the Inspector, 
is a 26-slot hash table that includes such keys as "architecture", "auto-use?", 
"bootstrap-syntax", "bootsrapping?", etc.


 
Now comes the part that baffles me.  When I get to executing "slot" (whether I 
try to step past it o

Re: [Factor-talk] Any way of making sense of what's in the boot image?

2012-08-16 Thread Michael Clagett

Wow.  Great, John!   Thanks.  This should keep me at bay for a good while.
 From: mrj...@gmail.com
Date: Thu, 16 Aug 2012 08:10:31 -0700
To: factor-talk@lists.sourceforge.net
Subject: Re: [Factor-talk] Any way of making sense of what's in the boot
image?

In the listener, if you run this code:
IN: scratchpad clearIN: scratchpad "value" "key" associate
Then step over to [ set-at ] keep


If at this point you just keep stepping "into" things, you should do a deep 
dive into all the parts, including the 4 slot { array } declare which should 
give you something like { ~tombstone~ ~tombstone~ ~tombstone~ ~tombstone~ } (an 
array full of "tombstone" elements which indicate no key or value is present).  
A hashtable with deleted elements will have "~empty~".  A hashtable with 
key/value will have { "key" "value" } at some point in the array.  The array is 
flattened key/value pairs, so a 4 bucket hashtable will have an 8 element array 
storing key/value side-by-side starting at the even indices.


I'm not sure what the 26-slot hash table is that you are looking at, so I put a 
clear in the code above to make sure your data stack is empty before walking.  
It is also possible that you are tracing some code which is traversing the 
namespaces (a vector of hashtables containing symbolic variables used in parts 
of the code, with names like the ones you mention).


A hashtable has 3 slots (the 0 slot is a numeric value), see:
```IN: scratchpad \ hashtable "slots" word-prop .{T{ slot-spec

{ name "count" }{ offset 2 }{ class array-capacity }
{ initial 0 }}T{ slot-spec{ name "deleted" }

{ offset 3 }{ class array-capacity }{ initial 0 }}  
  T{ slot-spec{ name "array" }{ offset 4 }

{ class array }{ initial { } }}}```
You might also like to try "describe", and poke around at the various word 
properties (see "props" below):


```IN: scratchpad \ hashtable describeIN: hashtables SYMBOL: hashtablehashcode  
251442479911733628name  "hashtable"vocabulary"hashtables"

def   [ \ hashtable ]props     H{ { "help-parent" "hashtables" } { 
"slots" ~array~ } { ...pic-def   fpic-tail-def  fsub-primitive f

```

On Thu, Aug 16, 2012 at 6:01 AM, Michael Clagett  wrote:






Hi --
 
Okay.  I'm going to ask for my first lifeline. :)  I'm tracing through some 
arcane stuff indeed.  Everything is going along swimmingly.  I get to the word 
"new-key@", which at its start wants to execute [ array>> 2dup hash@ 0 f 
(new-key@) ] with the "keep" combinator.  All good so far.  "array>>" resolves 
to [ 4 slot { array } declare ], which I believe should mean "get the 4th slot 
of the object on top of stack and declare to Factor that you know for sure it 
is an array".  The object on the top of the stack, according to the Inspector, 
is a 26-slot hash table that includes such keys as "architecture", "auto-use?", 
"bootstrap-syntax", "bootsrapping?", etc.


 
Now comes the part that baffles me.  When I get to executing "slot" (whether I 
try to step past it or descend into it), the Walker simply moves me all the way 
to the end of the qotation (past "declare") and I see the hash-table and index 
from the top of the data stack replaced with a 128-element array that has the 
26 key-value pairs from the former hash table spread out through the array 
interspersed by tombstone objects; each of these key-value pairs that appear 
occupy two adjacent array slots.  But I'm completely mystified as to how the 
contents of the hash-table got mapped to the array slots they now occupy (there 
doesn't seem to be any rhyme or reason).  And I have little insight into the 
code that accomplished this.  Moreover I apparently can't see the 4th slot of 
the original object in the Inspector, as it only shows me three slots on the 
data stack trace, but organizes them alphabetically when I double-click to open 
the Inspector window.


 
Don't know if any of this was intelligble.  But maybe one of you compiler guys 
can give me a clue as to how I can understand this.  I'm having to reverse 
engineer my understanding of all of this, so a break in the logical chain 
presents difficulties.


Sorry for the long post.
 
Regards,
 
Mike
 
> Date: Wed, 15 Aug 2012 08:30:10 -0700
> From: doug.cole...@gmail.com


> To: factor-talk@lists.sourceforge.net
> Subject: Re: [Factor-talk] Any way of making sense of what's in the boot  
> image?


> 
> 1) Factor loads a ~/.factor-rc file every time it starts. You can put
> things there:
> 
> USE: too

Re: [Factor-talk] Any way of making sense of what's in the boot image?

2012-08-16 Thread Michael Clagett

Something just occurred to me about the message below.  Could it be that this 
array is some sort of underlying layout of the hash table and that the slots of 
the target array that hash table contents are mapped to are the underlying 
buckets that the hash function maps to?   If this were the case, it still 
leaves as a mystery why this gets returned from asking for slot # 4 of the hash 
table.   Maybe I'll go look in the cpp code for the underlying implementation 
of hash table and this will all reveal itself.
 From: mclag...@hotmail.com
To: factor-talk@lists.sourceforge.net
Date: Thu, 16 Aug 2012 13:01:45 +
Subject: Re: [Factor-talk] Any way of making sense of what's in the boot image?





Hi --
 
Okay.  I'm going to ask for my first lifeline. :)  I'm tracing through some 
arcane stuff indeed.  Everything is going along swimmingly.  I get to the word 
"new-key@", which at its start wants to execute [ array>> 2dup hash@ 0 f 
(new-key@) ] with the "keep" combinator.  All good so far.  "array>>" resolves 
to [ 4 slot { array } declare ], which I believe should mean "get the 4th slot 
of the object on top of stack and declare to Factor that you know for sure it 
is an array".  The object on the top of the stack, according to the Inspector, 
is a 26-slot hash table that includes such keys as "architecture", "auto-use?", 
"bootstrap-syntax", "bootsrapping?", etc.
 
Now comes the part that baffles me.  When I get to executing "slot" (whether I 
try to step past it or descend into it), the Walker simply moves me all the way 
to the end of the qotation (past "declare") and I see the hash-table and index 
from the top of the data stack replaced with a 128-element array that has the 
26 key-value pairs from the former hash table spread out through the array 
interspersed by tombstone objects; each of these key-value pairs that appear 
occupy two adjacent array slots.  But I'm completely mystified as to how the 
contents of the hash-table got mapped to the array slots they now occupy (there 
doesn't seem to be any rhyme or reason).  And I have little insight into the 
code that accomplished this.  Moreover I apparently can't see the 4th slot of 
the original object in the Inspector, as it only shows me three slots on the 
data stack trace, but organizes them alphabetically when I double-click to open 
the Inspector window.
 
Don't know if any of this was intelligble.  But maybe one of you compiler guys 
can give me a clue as to how I can understand this.  I'm having to reverse 
engineer my understanding of all of this, so a break in the logical chain 
presents difficulties.
Sorry for the long post.
 
Regards,
 
Mike
 
> Date: Wed, 15 Aug 2012 08:30:10 -0700
> From: doug.cole...@gmail.com
> To: factor-talk@lists.sourceforge.net
> Subject: Re: [Factor-talk] Any way of making sense of what's in the boot  
> image?
> 
> 1) Factor loads a ~/.factor-rc file every time it starts. You can put
> things there:
> 
> USE: tools.scaffold
> scaffold-factor-rc
> 
> Click it, edit it and add:
> 
> USING: prettyprint.config namespaces ;
> 16 number-base set-global
> 
> 
> 
> 2) Alternately, there's a boot rc file that gets loaded after bootstrap:
> 
> USE: tools.scaffold
> scaffold-factor-boot-rc
> 
> Click it, edit it and add:
> 
> USING: prettyprint.config namespaces ;
> 16 number-base set-global
> 
> To load it without bootstrapping, call 'run-bootstrap-init' and then
> 'save' your image.
> 
> 
> Doug
> 
> 
> On Wed, Aug 15, 2012 at 8:22 AM, Michael Clagett  wrote:
> > Thanks.  I knew it had to be something like that.  And if I want it to be
> > the default every time I load the Listener, I'm sure there must be a way to
> > set that up?
> >
> > Sent from my iPhone
> >
> > On Aug 15, 2012, at 11:01 AM, "John Benediktsson"  wrote:
> >
> > If you want all numbers to print in hex, the easiest way is:
> >
> > ```
> > IN: scratchpad 16 number-base set-global
> > ```
> >
> >
> > On Wed, Aug 15, 2012 at 4:04 AM, Michael Clagett 
> > wrote:
> >>
> >> Quick question.   Any way of having the data and retain stack panes of the
> >> Walker display values in hex?
> >>
> >> > Date: Mon, 13 Aug 2012 12:21:52 -0400
> >> > From: arc...@gmail.com
> >> > To: factor-talk@lists.sourceforge.net
> >> > Subject: Re: [Factor-talk] Any way of making sense of what's in the boot
> >> > image?
> >> >
> >> > On Mon, Aug 13, 2012 at 11:52 AM, Michael Clagett 
> >> > wrote:
> >> > > Here'

Re: [Factor-talk] Any way of making sense of what's in the boot image?

2012-08-16 Thread Michael Clagett

Hi -- Okay.  I'm going to ask for my first lifeline. :)  I'm tracing through 
some arcane stuff indeed.  Everything is going along swimmingly.  I get to the 
word "new-key@", which at its start wants to execute [ array>> 2dup hash@ 0 f 
(new-key@) ] with the "keep" combinator.  All good so far.  "array>>" resolves 
to [ 4 slot { array } declare ], which I believe should mean "get the 4th slot 
of the object on top of stack and declare to Factor that you know for sure it 
is an array".  The object on the top of the stack, according to the Inspector, 
is a 26-slot hash table that includes such keys as "architecture", "auto-use?", 
"bootstrap-syntax", "bootsrapping?", etc. Now comes the part that baffles me.  
When I get to executing "slot" (whether I try to step past it or descend into 
it), the Walker simply moves me all the way to the end of the qotation (past 
"declare") and I see the hash-table and index from the top of the data stack 
replaced with a 128-element array that has the 26 key-value pairs from the 
former hash table spread out through the array interspersed by tombstone 
objects; each of these key-value pairs that appear occupy two adjacent array 
slots.  But I'm completely mystified as to how the contents of the hash-table 
got mapped to the array slots they now occupy (there doesn't seem to be any 
rhyme or reason).  And I have little insight into the code that accomplished 
this.  Moreover I apparently can't see the 4th slot of the original object in 
the Inspector, as it only shows me three slots on the data stack trace, but 
organizes them alphabetically when I double-click to open the Inspector window. 
Don't know if any of this was intelligble.  But maybe one of you compiler guys 
can give me a clue as to how I can understand this.  I'm having to reverse 
engineer my understanding of all of this, so a break in the logical chain 
presents difficulties.Sorry for the long post. Regards, Mike
 > Date: Wed, 15 Aug 2012 08:30:10 -0700
> From: doug.cole...@gmail.com
> To: factor-talk@lists.sourceforge.net
> Subject: Re: [Factor-talk] Any way of making sense of what's in the boot  
> image?
> 
> 1) Factor loads a ~/.factor-rc file every time it starts. You can put
> things there:
> 
> USE: tools.scaffold
> scaffold-factor-rc
> 
> Click it, edit it and add:
> 
> USING: prettyprint.config namespaces ;
> 16 number-base set-global
> 
> 
> 
> 2) Alternately, there's a boot rc file that gets loaded after bootstrap:
> 
> USE: tools.scaffold
> scaffold-factor-boot-rc
> 
> Click it, edit it and add:
> 
> USING: prettyprint.config namespaces ;
> 16 number-base set-global
> 
> To load it without bootstrapping, call 'run-bootstrap-init' and then
> 'save' your image.
> 
> 
> Doug
> 
> 
> On Wed, Aug 15, 2012 at 8:22 AM, Michael Clagett  wrote:
> > Thanks.  I knew it had to be something like that.  And if I want it to be
> > the default every time I load the Listener, I'm sure there must be a way to
> > set that up?
> >
> > Sent from my iPhone
> >
> > On Aug 15, 2012, at 11:01 AM, "John Benediktsson"  wrote:
> >
> > If you want all numbers to print in hex, the easiest way is:
> >
> > ```
> > IN: scratchpad 16 number-base set-global
> > ```
> >
> >
> > On Wed, Aug 15, 2012 at 4:04 AM, Michael Clagett 
> > wrote:
> >>
> >> Quick question.   Any way of having the data and retain stack panes of the
> >> Walker display values in hex?
> >>
> >> > Date: Mon, 13 Aug 2012 12:21:52 -0400
> >> > From: arc...@gmail.com
> >> > To: factor-talk@lists.sourceforge.net
> >> > Subject: Re: [Factor-talk] Any way of making sense of what's in the boot
> >> > image?
> >> >
> >> > On Mon, Aug 13, 2012 at 11:52 AM, Michael Clagett 
> >> > wrote:
> >> > > Here's an obscure question that is of interest to me in my current
> >> > > quest,
> >> > > but probably not to anyone else. So if there is a better forum for me
> >> > > to
> >> > > ask such things, I would love to be instructed; until I hear
> >> > > otherwise,
> >> > > however, I will continue to use this list.
> >> > >
> >> > > Is there any place where I can penetrate the meaning of the following
> >> > > constants:
> >> > >
> >> > > CONSTANT: rt-dlsym 0
> >> > > CONSTANT: rt-entry-point 1
> >> > > CONSTANT: rt-entry-

Re: [Factor-talk] Any way of making sense of what's in the boot image?

2012-08-15 Thread Michael Clagett
Beautiful.  Thanks.

Sent from my iPhone

On Aug 15, 2012, at 11:30 AM, "Doug Coleman"  wrote:

> 1) Factor loads a ~/.factor-rc file every time it starts. You can put
> things there:
> 
> USE: tools.scaffold
> scaffold-factor-rc
> 
> Click it, edit it and add:
> 
> USING: prettyprint.config namespaces ;
> 16 number-base set-global
> 
> 
> 
> 2) Alternately, there's a boot rc file that gets loaded after bootstrap:
> 
> USE: tools.scaffold
> scaffold-factor-boot-rc
> 
> Click it, edit it and add:
> 
> USING: prettyprint.config namespaces ;
> 16 number-base set-global
> 
> To load it without bootstrapping, call 'run-bootstrap-init' and then
> 'save' your image.
> 
> 
> Doug
> 
> 
> On Wed, Aug 15, 2012 at 8:22 AM, Michael Clagett  wrote:
>> Thanks.  I knew it had to be something like that.  And if I want it to be
>> the default every time I load the Listener, I'm sure there must be a way to
>> set that up?
>> 
>> Sent from my iPhone
>> 
>> On Aug 15, 2012, at 11:01 AM, "John Benediktsson"  wrote:
>> 
>> If you want all numbers to print in hex, the easiest way is:
>> 
>> ```
>> IN: scratchpad 16 number-base set-global
>> ```
>> 
>> 
>> On Wed, Aug 15, 2012 at 4:04 AM, Michael Clagett 
>> wrote:
>>> 
>>> Quick question.   Any way of having the data and retain stack panes of the
>>> Walker display values in hex?
>>> 
>>>> Date: Mon, 13 Aug 2012 12:21:52 -0400
>>>> From: arc...@gmail.com
>>>> To: factor-talk@lists.sourceforge.net
>>>> Subject: Re: [Factor-talk] Any way of making sense of what's in the boot
>>>> image?
>>>> 
>>>> On Mon, Aug 13, 2012 at 11:52 AM, Michael Clagett 
>>>> wrote:
>>>>> Here's an obscure question that is of interest to me in my current
>>>>> quest,
>>>>> but probably not to anyone else. So if there is a better forum for me
>>>>> to
>>>>> ask such things, I would love to be instructed; until I hear
>>>>> otherwise,
>>>>> however, I will continue to use this list.
>>>>> 
>>>>> Is there any place where I can penetrate the meaning of the following
>>>>> constants:
>>>>> 
>>>>> CONSTANT: rt-dlsym 0
>>>>> CONSTANT: rt-entry-point 1
>>>>> CONSTANT: rt-entry-point-pic 2
>>>>> CONSTANT: rt-entry-point-pic-tail 3
>>>>> CONSTANT: rt-here 4
>>>>> CONSTANT: rt-this 5
>>>>> CONSTANT: rt-literal 6
>>>>> CONSTANT: rt-untagged 7
>>>>> CONSTANT: rt-megamorphic-cache-hits 8
>>>>> CONSTANT: rt-vm 9
>>>>> CONSTANT: rt-cards-offset 10
>>>>> CONSTANT: rt-decks-offset 11
>>>>> CONSTANT: rt-exception-handler 12
>>>>> CONSTANT: rt-dlsym-toc 13
>>>>> CONSTANT: rt-inline-cache-miss 14
>>>>> CONSTANT: rt-safepoint 15
>>>>> 
>>>>> So far I've only encountered rt-here and I've only seen it encoded
>>>>> into a
>>>>> relocation entry and not really used anywhere yet. But this strikes me
>>>>> as
>>>>> the kind of thing it would be useful to know as I am slogging through
>>>>> this
>>>>> stuff.
>>>>> 
>>>>> Not a hugely pressing question, as I'm sure I'll muddle through it.
>>>>> But if
>>>>> anyone has a moment to illuminate, it would be nice.
>>>> 
>>>> Those are relocation record types. When the compiler generates code
>>>> for a word, it also needs to generate relocation entries every time it
>>>> references another word in a jump or call statement, much like a
>>>> native C compiler needs to do for symbols in other modules.
>>>> The VM uses these relocation entries to update the operands of jump
>>>> and call instructions when code is written to the code heap, when the
>>>> code heap is compacted, or if code is moved in memory for any reason.
>>>> The different rt-* constants are used to describe what kind of object
>>>> a relocation refers to, such as a foreign function in a DLL (dlsym), a
>>>> word entry point (entry-point-*), the current address (here), etc.
>>>> 
>>>> -Joe
>>>> 
>>>> 
>>>> --

Re: [Factor-talk] Any way of making sense of what's in the boot image?

2012-08-15 Thread Michael Clagett
Thanks.  I knew it had to be something like that.  And if I want it to be the 
default every time I load the Listener, I'm sure there must be a way to set 
that up?

Sent from my iPhone

On Aug 15, 2012, at 11:01 AM, "John Benediktsson"  wrote:

> If you want all numbers to print in hex, the easiest way is:
> 
> ```
> IN: scratchpad 16 number-base set-global
> ```
> 
> 
> On Wed, Aug 15, 2012 at 4:04 AM, Michael Clagett  wrote:
> Quick question.   Any way of having the data and retain stack panes of the 
> Walker display values in hex?
>  
> > Date: Mon, 13 Aug 2012 12:21:52 -0400
> > From: arc...@gmail.com
> > To: factor-talk@lists.sourceforge.net
> > Subject: Re: [Factor-talk] Any way of making sense of what's in the boot
> > image?
> > 
> > On Mon, Aug 13, 2012 at 11:52 AM, Michael Clagett  
> > wrote:
> > > Here's an obscure question that is of interest to me in my current quest,
> > > but probably not to anyone else.  So if there is a better forum for me to
> > > ask such things, I would love to be instructed; until I hear otherwise,
> > > however, I will continue to use this list.
> > >
> > > Is there any place where I can penetrate the meaning of the following
> > > constants:
> > >
> > > CONSTANT: rt-dlsym 0
> > > CONSTANT: rt-entry-point 1
> > > CONSTANT: rt-entry-point-pic 2
> > > CONSTANT: rt-entry-point-pic-tail 3
> > > CONSTANT: rt-here 4
> > > CONSTANT: rt-this 5
> > > CONSTANT: rt-literal 6
> > > CONSTANT: rt-untagged 7
> > > CONSTANT: rt-megamorphic-cache-hits 8
> > > CONSTANT: rt-vm 9
> > > CONSTANT: rt-cards-offset 10
> > > CONSTANT: rt-decks-offset 11
> > > CONSTANT: rt-exception-handler 12
> > > CONSTANT: rt-dlsym-toc 13
> > > CONSTANT: rt-inline-cache-miss 14
> > > CONSTANT: rt-safepoint 15
> > >
> > > So far I've only encountered rt-here and I've only seen it encoded into a
> > > relocation entry and not really used anywhere yet. But this strikes me as
> > > the kind of thing it would be useful to know as I am slogging through this
> > > stuff.
> > >
> > > Not a hugely pressing question, as I'm sure I'll muddle through it. But if
> > > anyone has a moment to illuminate, it would be nice.
> > 
> > Those are relocation record types. When the compiler generates code
> > for a word, it also needs to generate relocation entries every time it
> > references another word in a jump or call statement, much like a
> > native C compiler needs to do for symbols in other modules.
> > The VM uses these relocation entries to update the operands of jump
> > and call instructions when code is written to the code heap, when the
> > code heap is compacted, or if code is moved in memory for any reason.
> > The different rt-* constants are used to describe what kind of object
> > a relocation refers to, such as a foreign function in a DLL (dlsym), a
> > word entry point (entry-point-*), the current address (here), etc.
> > 
> > -Joe
> > 
> > --
> > 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 sec

Re: [Factor-talk] Any way of making sense of what's in the boot image?

2012-08-15 Thread Michael Clagett

Quick question.   Any way of having the data and retain stack panes of the 
Walker display values in hex?
 > Date: Mon, 13 Aug 2012 12:21:52 -0400
> From: arc...@gmail.com
> To: factor-talk@lists.sourceforge.net
> Subject: Re: [Factor-talk] Any way of making sense of what's in the boot  
> image?
> 
> On Mon, Aug 13, 2012 at 11:52 AM, Michael Clagett  
> wrote:
> > Here's an obscure question that is of interest to me in my current quest,
> > but probably not to anyone else.  So if there is a better forum for me to
> > ask such things, I would love to be instructed; until I hear otherwise,
> > however, I will continue to use this list.
> >
> > Is there any place where I can penetrate the meaning of the following
> > constants:
> >
> > CONSTANT: rt-dlsym 0
> > CONSTANT: rt-entry-point 1
> > CONSTANT: rt-entry-point-pic 2
> > CONSTANT: rt-entry-point-pic-tail 3
> > CONSTANT: rt-here 4
> > CONSTANT: rt-this 5
> > CONSTANT: rt-literal 6
> > CONSTANT: rt-untagged 7
> > CONSTANT: rt-megamorphic-cache-hits 8
> > CONSTANT: rt-vm 9
> > CONSTANT: rt-cards-offset 10
> > CONSTANT: rt-decks-offset 11
> > CONSTANT: rt-exception-handler 12
> > CONSTANT: rt-dlsym-toc 13
> > CONSTANT: rt-inline-cache-miss 14
> > CONSTANT: rt-safepoint 15
> >
> > So far I've only encountered rt-here and I've only seen it encoded into a
> > relocation entry and not really used anywhere yet.  But this strikes me as
> > the kind of thing it would be useful to know as I am slogging through this
> > stuff.
> >
> > Not a hugely pressing question, as I'm sure I'll muddle through it.  But if
> > anyone has a moment to illuminate, it would be nice.
> 
> Those are relocation record types. When the compiler generates code
> for a word, it also needs to generate relocation entries every time it
> references another word in a jump or call statement, much like a
> native C compiler needs to do for symbols in other modules.
> The VM uses these relocation entries to update the operands of jump
> and call instructions when code is written to the code heap, when the
> code heap is compacted, or if code is moved in memory for any reason.
> The different rt-* constants are used to describe what kind of object
> a relocation refers to, such as a foreign function in a DLL (dlsym), a
> word entry point (entry-point-*), the current address (here), etc.
> 
> -Joe
> 
> --
> 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


Re: [Factor-talk] Any way of making sense of what's in the boot image?

2012-08-14 Thread Michael Clagett

Roger, that.   I will definitely do it.  In fact, I think you will be 
pleasantly surprised.
 From: mrj...@gmail.com
Date: Tue, 14 Aug 2012 17:35:39 -0700
To: factor-talk@lists.sourceforge.net
Subject: Re: [Factor-talk] Any way of making sense of what's in the boot
image?

Any documentation that you write as part of your investigation would be welcome 
contributions.

On Tue, Aug 14, 2012 at 5:27 PM, Michael Clagett  wrote:






One constructive criticism type comment, if you'll permit me.   While what I 
say directly below is absolutely true, it's true on a micro level.  At the 
broader level, the heavy use of (sometimes lengthy) quotations to feed 
workhorse words like "define-sub-primitive" make understanding what's going on 
quite difficult.  Although I realize the bootstrapping mechanism is not a 
general area of interest to many, I think something on the order of about 25 
well-placed comments prefacing some of the more extensive quotations would help 
improve readability tremendously, just in case someone needs to understand the 
internals of this mechanism.


 
Just a thought, offered in a spirit of complete good will and overall general 
awe at the care and discipline that has gone into this work. 
 
From: mclag...@hotmail.com


To: factor-talk@lists.sourceforge.net
Subject: RE: [Factor-talk] Any way of making sense of what's in the boot image?
Date: Tue, 14 Aug 2012 05:28:45 +







Been looking at some of the x86 assembler code.  Damn!  All I can say is that I 
wish to hell I had had Factor when I wrote my own.   Quite a bit different 
approach, but the clarity and succinctness is tantalizing.
 


From: mclag...@hotmail.com
To: factor-talk@lists.sourceforge.net

Date: Mon, 13 Aug 2012 16:46:38 +

Subject: Re: [Factor-talk] Any way of making sense of what's in the boot image?





Thank you, Joe, for the quick response.  It was actually the information in the 
"such as" clause of your last sentence that I was looking for.  I don't mean 
for you to take the time out to document the meaning of these different 
constants, but if it is documented somewhere other than in the creators' heads, 
I would love to be directed to it.   Not a big deal, because I'm sure that when 
I get to seeing them used in the boot-image initialization code, all will 
become clear.  Still, it might help me better understand what's being done at 
the make-image level to know.  


> Date: Mon, 13 Aug 2012 12:21:52 -0400
> From: arc...@gmail.com
> To: factor-talk@lists.sourceforge.net


> Subject: Re: [Factor-talk] Any way of making sense of what's in the boot  
> image?
> 
> On Mon, Aug 13, 2012 at 11:52 AM, Michael Clagett  
> wrote:


> > Here's an obscure question that is of interest to me in my current quest,
> > but probably not to anyone else.  So if there is a better forum for me to
> > ask such things, I would love to be instructed; until I hear otherwise,


> > however, I will continue to use this list.
> >
> > Is there any place where I can penetrate the meaning of the following
> > constants:
> >
> > CONSTANT: rt-dlsym 0


> > CONSTANT: rt-entry-point 1
> > CONSTANT: rt-entry-point-pic 2
> > CONSTANT: rt-entry-point-pic-tail 3
> > CONSTANT: rt-here 4
> > CONSTANT: rt-this 5
> > CONSTANT: rt-literal 6


> > CONSTANT: rt-untagged 7
> > CONSTANT: rt-megamorphic-cache-hits 8
> > CONSTANT: rt-vm 9
> > CONSTANT: rt-cards-offset 10
> > CONSTANT: rt-decks-offset 11
> > CONSTANT: rt-exception-handler 12


> > CONSTANT: rt-dlsym-toc 13
> > CONSTANT: rt-inline-cache-miss 14
> > CONSTANT: rt-safepoint 15
> >
> > So far I've only encountered rt-here and I've only seen it encoded into a


> > relocation entry and not really used anywhere yet.  But this strikes me as
> > the kind of thing it would be useful to know as I am slogging through this
> > stuff.
> >
> > Not a hugely pressing question, as I'm sure I'll muddle through it.  But if


> > anyone has a moment to illuminate, it would be nice.
> 
> Those are relocation record types. When the compiler generates code
> for a word, it also needs to generate relocation entries every time it


> references another word in a jump or call statement, much like a
> native C compiler needs to do for symbols in other modules.
> The VM uses these relocation entries to update the operands of jump
> and call instructions when code is written to the code heap, when the


> code heap is compacted, or if code is moved in memory for any reason.
> The different rt-* constants are used to describe what kind of object
> a relocation refers to, such as a foreign function in a DLL (dlsym), a


> word entry point (entry-point-*), t

Re: [Factor-talk] Any way of making sense of what's in the boot image?

2012-08-14 Thread Michael Clagett

One constructive criticism type comment, if you'll permit me.   While what I 
say directly below is absolutely true, it's true on a micro level.  At the 
broader level, the heavy use of (sometimes lengthy) quotations to feed 
workhorse words like "define-sub-primitive" make understanding what's going on 
quite difficult.  Although I realize the bootstrapping mechanism is not a 
general area of interest to many, I think something on the order of about 25 
well-placed comments prefacing some of the more extensive quotations would help 
improve readability tremendously, just in case someone needs to understand the 
internals of this mechanism. Just a thought, offered in a spirit of complete 
good will and overall general awe at the care and discipline that has gone into 
this work. 
 From: mclag...@hotmail.com
To: factor-talk@lists.sourceforge.net
Subject: RE: [Factor-talk] Any way of making sense of what's in the boot image?
Date: Tue, 14 Aug 2012 05:28:45 +





Been looking at some of the x86 assembler code.  Damn!  All I can say is that I 
wish to hell I had had Factor when I wrote my own.   Quite a bit different 
approach, but the clarity and succinctness is tantalizing.
 
From: mclag...@hotmail.com
To: factor-talk@lists.sourceforge.net
Date: Mon, 13 Aug 2012 16:46:38 +
Subject: Re: [Factor-talk] Any way of making sense of what's in the boot image?





Thank you, Joe, for the quick response.  It was actually the information in the 
"such as" clause of your last sentence that I was looking for.  I don't mean 
for you to take the time out to document the meaning of these different 
constants, but if it is documented somewhere other than in the creators' heads, 
I would love to be directed to it.   Not a big deal, because I'm sure that when 
I get to seeing them used in the boot-image initialization code, all will 
become clear.  Still, it might help me better understand what's being done at 
the make-image level to know.  
> Date: Mon, 13 Aug 2012 12:21:52 -0400
> From: arc...@gmail.com
> To: factor-talk@lists.sourceforge.net
> Subject: Re: [Factor-talk] Any way of making sense of what's in the boot  
> image?
> 
> On Mon, Aug 13, 2012 at 11:52 AM, Michael Clagett  
> wrote:
> > Here's an obscure question that is of interest to me in my current quest,
> > but probably not to anyone else.  So if there is a better forum for me to
> > ask such things, I would love to be instructed; until I hear otherwise,
> > however, I will continue to use this list.
> >
> > Is there any place where I can penetrate the meaning of the following
> > constants:
> >
> > CONSTANT: rt-dlsym 0
> > CONSTANT: rt-entry-point 1
> > CONSTANT: rt-entry-point-pic 2
> > CONSTANT: rt-entry-point-pic-tail 3
> > CONSTANT: rt-here 4
> > CONSTANT: rt-this 5
> > CONSTANT: rt-literal 6
> > CONSTANT: rt-untagged 7
> > CONSTANT: rt-megamorphic-cache-hits 8
> > CONSTANT: rt-vm 9
> > CONSTANT: rt-cards-offset 10
> > CONSTANT: rt-decks-offset 11
> > CONSTANT: rt-exception-handler 12
> > CONSTANT: rt-dlsym-toc 13
> > CONSTANT: rt-inline-cache-miss 14
> > CONSTANT: rt-safepoint 15
> >
> > So far I've only encountered rt-here and I've only seen it encoded into a
> > relocation entry and not really used anywhere yet.  But this strikes me as
> > the kind of thing it would be useful to know as I am slogging through this
> > stuff.
> >
> > Not a hugely pressing question, as I'm sure I'll muddle through it.  But if
> > anyone has a moment to illuminate, it would be nice.
> 
> Those are relocation record types. When the compiler generates code
> for a word, it also needs to generate relocation entries every time it
> references another word in a jump or call statement, much like a
> native C compiler needs to do for symbols in other modules.
> The VM uses these relocation entries to update the operands of jump
> and call instructions when code is written to the code heap, when the
> code heap is compacted, or if code is moved in memory for any reason.
> The different rt-* constants are used to describe what kind of object
> a relocation refers to, such as a foreign function in a DLL (dlsym), a
> word entry point (entry-point-*), the current address (here), etc.
> 
> -Joe
> 
> --
> 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/501222

Re: [Factor-talk] Any way of making sense of what's in the boot image?

2012-08-13 Thread Michael Clagett

Been looking at some of the x86 assembler code.  Damn!  All I can say is that I 
wish to hell I had had Factor when I wrote my own.   Quite a bit different 
approach, but the clarity and succinctness is tantalizing.
 From: mclag...@hotmail.com
To: factor-talk@lists.sourceforge.net
Date: Mon, 13 Aug 2012 16:46:38 +
Subject: Re: [Factor-talk] Any way of making sense of what's in the boot image?





Thank you, Joe, for the quick response.  It was actually the information in the 
"such as" clause of your last sentence that I was looking for.  I don't mean 
for you to take the time out to document the meaning of these different 
constants, but if it is documented somewhere other than in the creators' heads, 
I would love to be directed to it.   Not a big deal, because I'm sure that when 
I get to seeing them used in the boot-image initialization code, all will 
become clear.  Still, it might help me better understand what's being done at 
the make-image level to know.  
> Date: Mon, 13 Aug 2012 12:21:52 -0400
> From: arc...@gmail.com
> To: factor-talk@lists.sourceforge.net
> Subject: Re: [Factor-talk] Any way of making sense of what's in the boot      
> image?
> 
> On Mon, Aug 13, 2012 at 11:52 AM, Michael Clagett  
> wrote:
> > Here's an obscure question that is of interest to me in my current quest,
> > but probably not to anyone else.  So if there is a better forum for me to
> > ask such things, I would love to be instructed; until I hear otherwise,
> > however, I will continue to use this list.
> >
> > Is there any place where I can penetrate the meaning of the following
> > constants:
> >
> > CONSTANT: rt-dlsym 0
> > CONSTANT: rt-entry-point 1
> > CONSTANT: rt-entry-point-pic 2
> > CONSTANT: rt-entry-point-pic-tail 3
> > CONSTANT: rt-here 4
> > CONSTANT: rt-this 5
> > CONSTANT: rt-literal 6
> > CONSTANT: rt-untagged 7
> > CONSTANT: rt-megamorphic-cache-hits 8
> > CONSTANT: rt-vm 9
> > CONSTANT: rt-cards-offset 10
> > CONSTANT: rt-decks-offset 11
> > CONSTANT: rt-exception-handler 12
> > CONSTANT: rt-dlsym-toc 13
> > CONSTANT: rt-inline-cache-miss 14
> > CONSTANT: rt-safepoint 15
> >
> > So far I've only encountered rt-here and I've only seen it encoded into a
> > relocation entry and not really used anywhere yet.  But this strikes me as
> > the kind of thing it would be useful to know as I am slogging through this
> > stuff.
> >
> > Not a hugely pressing question, as I'm sure I'll muddle through it.  But if
> > anyone has a moment to illuminate, it would be nice.
> 
> Those are relocation record types. When the compiler generates code
> for a word, it also needs to generate relocation entries every time it
> references another word in a jump or call statement, much like a
> native C compiler needs to do for symbols in other modules.
> The VM uses these relocation entries to update the operands of jump
> and call instructions when code is written to the code heap, when the
> code heap is compacted, or if code is moved in memory for any reason.
> The different rt-* constants are used to describe what kind of object
> a relocation refers to, such as a foreign function in a DLL (dlsym), a
> word entry point (entry-point-*), the current address (here), etc.
> 
> -Joe
> 
> --
> 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 secu

Re: [Factor-talk] Any way of making sense of what's in the boot image?

2012-08-13 Thread Michael Clagett

(So you had better be nice to me; I don't mess around.)
 > Date: Mon, 13 Aug 2012 09:50:04 -0700
> From: doug.cole...@gmail.com
> To: factor-talk@lists.sourceforge.net
> Subject: Re: [Factor-talk] Any way of making sense of what's in the boot  
> image?
> 
> Is this you?
> 
> http://www.clarkprosecutor.org/html/death/US/clagett651.htm
> 
> On Mon, Aug 13, 2012 at 9:46 AM, Michael Clagett  wrote:
> > Thank you, Joe, for the quick response.  It was actually the information in
> > the "such as" clause of your last sentence that I was looking for.  I don't
> > mean for you to take the time out to document the meaning of these different
> > constants, but if it is documented somewhere other than in the creators'
> > heads, I would love to be directed to it.   Not a big deal, because I'm sure
> > that when I get to seeing them used in the boot-image initialization code,
> > all will become clear.  Still, it might help me better understand what's
> > being done at the make-image level to know.
> >> Date: Mon, 13 Aug 2012 12:21:52 -0400
> >
> >> From: arc...@gmail.com
> >> To: factor-talk@lists.sourceforge.net
> >> Subject: Re: [Factor-talk] Any way of making sense of what's in the boot
> >> image?
> >>
> >> On Mon, Aug 13, 2012 at 11:52 AM, Michael Clagett 
> >> wrote:
> >> > Here's an obscure question that is of interest to me in my current
> >> > quest,
> >> > but probably not to anyone else. So if there is a better forum for me to
> >> > ask such things, I would love to be instructed; until I hear otherwise,
> >> > however, I will continue to use this list.
> >> >
> >> > Is there any place where I can penetrate the meaning of the following
> >> > constants:
> >> >
> >> > CONSTANT: rt-dlsym 0
> >> > CONSTANT: rt-entry-point 1
> >> > CONSTANT: rt-entry-point-pic 2
> >> > CONSTANT: rt-entry-point-pic-tail 3
> >> > CONSTANT: rt-here 4
> >> > CONSTANT: rt-this 5
> >> > CONSTANT: rt-literal 6
> >> > CONSTANT: rt-untagged 7
> >> > CONSTANT: rt-megamorphic-cache-hits 8
> >> > CONSTANT: rt-vm 9
> >> > CONSTANT: rt-cards-offset 10
> >> > CONSTANT: rt-decks-offset 11
> >> > CONSTANT: rt-exception-handler 12
> >> > CONSTANT: rt-dlsym-toc 13
> >> > CONSTANT: rt-inline-cache-miss 14
> >> > CONSTANT: rt-safepoint 15
> >> >
> >> > So far I've only encountered rt-here and I've only seen it encoded into
> >> > a
> >> > relocation entry and not really used anywhere yet. But this strikes me
> >> > as
> >> > the kind of thing it would be useful to know as I am slogging through
> >> > this
> >> > stuff.
> >> >
> >> > Not a hugely pressing question, as I'm sure I'll muddle through it. But
> >> > if
> >> > anyone has a moment to illuminate, it would be nice.
> >>
> >> Those are relocation record types. When the compiler generates code
> >> for a word, it also needs to generate relocation entries every time it
> >> references another word in a jump or call statement, much like a
> >> native C compiler needs to do for symbols in other modules.
> >> The VM uses these relocation entries to update the operands of jump
> >> and call instructions when code is written to the code heap, when the
> >> code heap is compacted, or if code is moved in memory for any reason.
> >> The different rt-* constants are used to describe what kind of object
> >> a relocation refers to, such as a foreign function in a DLL (dlsym), a
> >> word entry point (entry-point-*), the current address (here), etc.
> >>
> >> -Joe
> >>
> >>
> >> --
> >> 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
> >
> > --

Re: [Factor-talk] Any way of making sense of what's in the boot image?

2012-08-13 Thread Michael Clagett

yes.  I've come back to haunt y'all.
 > Date: Mon, 13 Aug 2012 09:50:04 -0700
> From: doug.cole...@gmail.com
> To: factor-talk@lists.sourceforge.net
> Subject: Re: [Factor-talk] Any way of making sense of what's in the boot  
> image?
> 
> Is this you?
> 
> http://www.clarkprosecutor.org/html/death/US/clagett651.htm
> 
> On Mon, Aug 13, 2012 at 9:46 AM, Michael Clagett  wrote:
> > Thank you, Joe, for the quick response.  It was actually the information in
> > the "such as" clause of your last sentence that I was looking for.  I don't
> > mean for you to take the time out to document the meaning of these different
> > constants, but if it is documented somewhere other than in the creators'
> > heads, I would love to be directed to it.   Not a big deal, because I'm sure
> > that when I get to seeing them used in the boot-image initialization code,
> > all will become clear.  Still, it might help me better understand what's
> > being done at the make-image level to know.
> >> Date: Mon, 13 Aug 2012 12:21:52 -0400
> >
> >> From: arc...@gmail.com
> >> To: factor-talk@lists.sourceforge.net
> >> Subject: Re: [Factor-talk] Any way of making sense of what's in the boot
> >> image?
> >>
> >> On Mon, Aug 13, 2012 at 11:52 AM, Michael Clagett 
> >> wrote:
> >> > Here's an obscure question that is of interest to me in my current
> >> > quest,
> >> > but probably not to anyone else. So if there is a better forum for me to
> >> > ask such things, I would love to be instructed; until I hear otherwise,
> >> > however, I will continue to use this list.
> >> >
> >> > Is there any place where I can penetrate the meaning of the following
> >> > constants:
> >> >
> >> > CONSTANT: rt-dlsym 0
> >> > CONSTANT: rt-entry-point 1
> >> > CONSTANT: rt-entry-point-pic 2
> >> > CONSTANT: rt-entry-point-pic-tail 3
> >> > CONSTANT: rt-here 4
> >> > CONSTANT: rt-this 5
> >> > CONSTANT: rt-literal 6
> >> > CONSTANT: rt-untagged 7
> >> > CONSTANT: rt-megamorphic-cache-hits 8
> >> > CONSTANT: rt-vm 9
> >> > CONSTANT: rt-cards-offset 10
> >> > CONSTANT: rt-decks-offset 11
> >> > CONSTANT: rt-exception-handler 12
> >> > CONSTANT: rt-dlsym-toc 13
> >> > CONSTANT: rt-inline-cache-miss 14
> >> > CONSTANT: rt-safepoint 15
> >> >
> >> > So far I've only encountered rt-here and I've only seen it encoded into
> >> > a
> >> > relocation entry and not really used anywhere yet. But this strikes me
> >> > as
> >> > the kind of thing it would be useful to know as I am slogging through
> >> > this
> >> > stuff.
> >> >
> >> > Not a hugely pressing question, as I'm sure I'll muddle through it. But
> >> > if
> >> > anyone has a moment to illuminate, it would be nice.
> >>
> >> Those are relocation record types. When the compiler generates code
> >> for a word, it also needs to generate relocation entries every time it
> >> references another word in a jump or call statement, much like a
> >> native C compiler needs to do for symbols in other modules.
> >> The VM uses these relocation entries to update the operands of jump
> >> and call instructions when code is written to the code heap, when the
> >> code heap is compacted, or if code is moved in memory for any reason.
> >> The different rt-* constants are used to describe what kind of object
> >> a relocation refers to, such as a foreign function in a DLL (dlsym), a
> >> word entry point (entry-point-*), the current address (here), etc.
> >>
> >> -Joe
> >>
> >>
> >> --
> >> 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
> >
> > --

Re: [Factor-talk] Any way of making sense of what's in the boot image?

2012-08-13 Thread Michael Clagett

Thank you, Joe, for the quick response.  It was actually the information in the 
"such as" clause of your last sentence that I was looking for.  I don't mean 
for you to take the time out to document the meaning of these different 
constants, but if it is documented somewhere other than in the creators' heads, 
I would love to be directed to it.   Not a big deal, because I'm sure that when 
I get to seeing them used in the boot-image initialization code, all will 
become clear.  Still, it might help me better understand what's being done at 
the make-image level to know.  > Date: Mon, 13 Aug 2012 12:21:52 -0400
> From: arc...@gmail.com
> To: factor-talk@lists.sourceforge.net
> Subject: Re: [Factor-talk] Any way of making sense of what's in the boot  
> image?
> 
> On Mon, Aug 13, 2012 at 11:52 AM, Michael Clagett  
> wrote:
> > Here's an obscure question that is of interest to me in my current quest,
> > but probably not to anyone else.  So if there is a better forum for me to
> > ask such things, I would love to be instructed; until I hear otherwise,
> > however, I will continue to use this list.
> >
> > Is there any place where I can penetrate the meaning of the following
> > constants:
> >
> > CONSTANT: rt-dlsym 0
> > CONSTANT: rt-entry-point 1
> > CONSTANT: rt-entry-point-pic 2
> > CONSTANT: rt-entry-point-pic-tail 3
> > CONSTANT: rt-here 4
> > CONSTANT: rt-this 5
> > CONSTANT: rt-literal 6
> > CONSTANT: rt-untagged 7
> > CONSTANT: rt-megamorphic-cache-hits 8
> > CONSTANT: rt-vm 9
> > CONSTANT: rt-cards-offset 10
> > CONSTANT: rt-decks-offset 11
> > CONSTANT: rt-exception-handler 12
> > CONSTANT: rt-dlsym-toc 13
> > CONSTANT: rt-inline-cache-miss 14
> > CONSTANT: rt-safepoint 15
> >
> > So far I've only encountered rt-here and I've only seen it encoded into a
> > relocation entry and not really used anywhere yet.  But this strikes me as
> > the kind of thing it would be useful to know as I am slogging through this
> > stuff.
> >
> > Not a hugely pressing question, as I'm sure I'll muddle through it.  But if
> > anyone has a moment to illuminate, it would be nice.
> 
> Those are relocation record types. When the compiler generates code
> for a word, it also needs to generate relocation entries every time it
> references another word in a jump or call statement, much like a
> native C compiler needs to do for symbols in other modules.
> The VM uses these relocation entries to update the operands of jump
> and call instructions when code is written to the code heap, when the
> code heap is compacted, or if code is moved in memory for any reason.
> The different rt-* constants are used to describe what kind of object
> a relocation refers to, such as a foreign function in a DLL (dlsym), a
> word entry point (entry-point-*), the current address (here), etc.
> 
> -Joe
> 
> --
> 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


Re: [Factor-talk] Any way of making sense of what's in the boot image?

2012-08-13 Thread Michael Clagett

Here's an obscure question that is of interest to me in my current quest, but 
probably not to anyone else.  So if there is a better forum for me to ask such 
things, I would love to be instructed; until I hear otherwise, however, I will 
continue to use this list.   Is there any place where I can penetrate the 
meaning of the following constants: CONSTANT: rt-dlsym 0CONSTANT: 
rt-entry-point 1CONSTANT: rt-entry-point-pic 2CONSTANT: rt-entry-point-pic-tail 
3CONSTANT: rt-here 4CONSTANT: rt-this 5CONSTANT: rt-literal 6CONSTANT: 
rt-untagged 7CONSTANT: rt-megamorphic-cache-hits 8CONSTANT: rt-vm 9CONSTANT: 
rt-cards-offset 10CONSTANT: rt-decks-offset 11CONSTANT: rt-exception-handler 
12CONSTANT: rt-dlsym-toc 13CONSTANT: rt-inline-cache-miss 14CONSTANT: 
rt-safepoint 15 So far I've only encountered rt-here and I've only seen it 
encoded into a relocation entry and not really used anywhere yet.  But this 
strikes me as the kind of thing it would be useful to know as I am slogging 
through this stuff. Not a hugely pressing question, as I'm sure I'll muddle 
through it.  But if anyone has a moment to illuminate, it would be nice. 
Thanks. Mike
 > Date: Thu, 9 Aug 2012 06:26:54 -0700
> From: arc...@gmail.com
> To: factor-talk@lists.sourceforge.net
> Subject: Re: [Factor-talk] Any way of making sense of what's in the boot  
> image?
> 
> On Wed, Aug 8, 2012 at 9:56 PM, Michael Clagett  wrote:
> > Hi Joe --
> >
> > Thank you so much for your guidance.  I'm assuming that it is the
> > basis\bootstrap\image\image.factor and the core\bootstrap\primitives.factor,
> > stage1.factor and syntax.factor that you are referring to?
> >
> > One question just to help me get oriented before I go into heavy
> > head-twisting mode.  I notice that all these files have significant numbers
> > of pre-existing vocabularies that they use.  If this is what is used to
> > generate the early stage1 bootstrapping stuff, then am I correct to assume
> > that this is done from some version of factor where all this stuff has built
> > already from scratch (that would be the implication, if all these files are
> > able to use those vocabularies)?  Or is there some other mechanism at work
> > here that I should know about, and if so, is it written up anywhere that you
> > know about.
> >
> > I have just read Slava's January 2010 post on the bootstrapping mechanism,
> > so I understand the mechanism a bit better now, but am still thinking there
> > has to be some Factor system somewhere that was built without a bootstrap
> > image in order to have the vocabularies available that are used to generate
> > the bootstrapping.  Is there anything anywhere documenting that aspect of
> > the picture.  The reason I ask is that I would like to get a sense of how
> > extensive that core fundamental set of vocabularies is that is needed to
> > process the primitives and stage1 factor files.
> >
> > Here's the USING statement for primitives.factor:
> >
> > USING: alien alien.strings arrays byte-arrays generic hashtables
> > hashtables.private io io.encodings.ascii kernel math
> > math.private math.order namespaces make parser sequences strings
> > vectors words quotations assocs layouts classes classes.private
> > classes.builtin classes.singleton classes.tuple
> > classes.tuple.private kernel.private vocabs vocabs.loader
> > source-files definitions slots classes.union
> > classes.intersection classes.predicate compiler.units
> > bootstrap.image.private io.files accessors combinators ;
> > IN: bootstrap.primitives
> >
> > It's got a lot of stuff there.  Is a lot of this built in the C++ code that
> > constitutes the VM?  Or is some fundamental processing capability put into
> > place that allows the processing of factor files to build these
> > vocabularies?  And if so, is the factor source used also included in the
> > downloaded platform?  Or was this a special primordial code base that was
> > used once and never really needed again?
> 
> Although core/bootstrap/primitives.factor is in core/, it's not
> actually loaded as-is into the boot image; it's really a script
> designed to run as part of `make-image` in the host image. All of
> those modules are loaded and run in the host image. While there of
> course had to have been a primordial Factor that could boot itself, I
> think it would be too different now to resemble current Factor.
> Factor's bootstrapping loop evolved somewhat organically.
> 
> You can tell whether a word is a C++ primitive by `see`ing it in the
> listener. Primitive words show up as `PRIMITIVE:` when prettyprinted.
> 
> At a high level, `make-i

Re: [Factor-talk] Any way of making sense of what's in the boot image?

2012-08-10 Thread Michael Clagett

Doug, thank you for your help, but I'm afraid I didn't understand everything in 
your response.  Not sure of the context of your instructions.   Not sure, for 
example, what you mean by ./factor (is this something I'm supposed to type 
somewhere?), what you mean by in the repl: die (not sure what the "repl" is -- 
or what "die" means for that matter), and then what you mean by the "shell".  
Other than that I understood you completely :) .
 > Date: Fri, 10 Aug 2012 14:57:51 -0700
> From: doug.cole...@gmail.com
> To: factor-talk@lists.sourceforge.net
> Subject: Re: [Factor-talk] Any way of making sense of what's in the boot  
> image?
> 
> You can do this:
> 
> ./factor
> in the repl: die
> then in the shell:
> words
> 
> It dumps a list of word addresses in Factor.
> 
> This works for words, but not quotations.
> 
> Hope this helps.
> 
> Doug
> 
> On Fri, Aug 10, 2012 at 2:55 PM, Michael Clagett  wrote:
> > One more question before I disappear.  I've been tracing through the
> > bootstrapping code with WinDbg and am currently in
> > factor_vm::compile_all_words where a loop is about to compile 4894 words.
> > These are accessible as words, which in turn can server up their definitions
> > (via word->def).  These are quotations, which, like words, display in the
> > debugger inspector as a fairly simple structure with a "value" and
> > "parent_slot".   I'm wondering if by some small chance there is some way to
> > navigate back to the symbolic name for any words that one comes across in
> > this fashion.  Certainly one could get away with compiling simply with the
> > type and value and never need the symbolic name, which I suspect is what is
> > being done.  So I don't have high hopes, but it certainly doesn't hurt to
> > ask.
> >
> > 
> > From: mclag...@hotmail.com
> > To: factor-talk@lists.sourceforge.net
> > Date: Fri, 10 Aug 2012 21:16:40 +
> >
> > Subject: Re: [Factor-talk] Any way of making sense of what's in the boot
> > image?
> >
> > For anyone else who might happen onto the problem I had, the solution ended
> > up being that my architecture was named "windows-x86.32", not "x86.32".
> >
> >
> > 
> > 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 
> > 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 
> > 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:

Re: [Factor-talk] Any way of making sense of what's in the boot image?

2012-08-10 Thread Michael Clagett

One more question before I disappear.  I've been tracing through the 
bootstrapping code with WinDbg and am currently in factor_vm::compile_all_words 
where a loop is about to compile 4894 words.  These are accessible as words, 
which in turn can server up their definitions (via word->def).  These are 
quotations, which, like words, display in the debugger inspector as a fairly 
simple structure with a "value" and "parent_slot".   I'm wondering if by some 
small chance there is some way to navigate back to the symbolic name for any 
words that one comes across in this fashion.  Certainly one could get away with 
compiling simply with the type and value and never need the symbolic name, 
which I suspect is what is being done.  So I don't have high hopes, but it 
certainly doesn't hurt to ask.
 From: mclag...@hotmail.com
To: factor-talk@lists.sourceforge.net
Date: Fri, 10 Aug 2012 21:16:40 +
Subject: Re: [Factor-talk] Any way of making sense of what's in the boot image?





For anyone else who might happen onto the problem I had, the solution ended up 
being that my architecture was named "windows-x86.32", not "x86.32".
 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  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  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  builtins set [
( -- ) call-effect ~array~ ~quotation~ each




"fixnum" "math" create register-builtin
"bignum" "math" create register-builtin
"tuple&q

Re: [Factor-talk] Any way of making sense of what's in the boot image?

2012-08-10 Thread Michael Clagett

For anyone else who might happen onto the problem I had, the solution ended up 
being that my architecture was named "windows-x86.32", not "x86.32".
 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  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  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  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?"

Re: [Factor-talk] Any way of making sense of what's in the boot image?

2012-08-10 Thread Michael Clagett

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  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  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  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" &q

Re: [Factor-talk] Any way of making sense of what's in the boot image?

2012-08-10 Thread Michael Clagett

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  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  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-th

Re: [Factor-talk] Any way of making sense of what's in the boot image?

2012-08-10 Thread Michael Clagett

Beautiful.  Worked like a charm.   Thanks.
 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  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  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 +
Subject

Re: [Factor-talk] Any way of making sense of what's in the boot image?

2012-08-10 Thread Michael Clagett

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  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 +
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





Re: [Factor-talk] Any way of making sense of what's in the boot image?

2012-08-10 Thread Michael Clagett

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  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 +
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


Re: [Factor-talk] Any way of making sense of what's in the boot image?

2012-08-10 Thread Michael Clagett

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 +
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


Re: [Factor-talk] Any way of making sense of what's in the boot image?

2012-08-10 Thread Michael Clagett


> > 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


Re: [Factor-talk] Any way of making sense of what's in the boot image?

2012-08-09 Thread Michael Clagett

Quick question about parse-file.Is the quotation that is returned on the 
stack as a result of this word a parse tree, as discussed in the 
documentation's article on parsing?  This would be a parse tree as in "Tokens 
are appended to the parse tree, the top level of which is a quotation returned 
by the original parser invocation.", right?  There could also potentially be 
nested elements in the tree contributed by other parse words encountered in the 
course of satisfying the original parser invocation.   Am I understanding this 
correctly? Thanks. --
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


Re: [Factor-talk] Any way of making sense of what's in the boot image?

2012-08-09 Thread Michael Clagett

Much appreciated, thanks.  I had actually already discovered some significant 
portion of what you explain below, which is why I'm going to hold off on the 
baby-step questions so that I can save the limited Joe Groff bandwidth that the 
universe is going to provide me for more meaty important stuff.
 > Date: Thu, 9 Aug 2012 06:26:54 -0700
> From: arc...@gmail.com
> To: factor-talk@lists.sourceforge.net
> Subject: Re: [Factor-talk] Any way of making sense of what's in the boot  
> image?
> 
> On Wed, Aug 8, 2012 at 9:56 PM, Michael Clagett  wrote:
> > Hi Joe --
> >
> > Thank you so much for your guidance.  I'm assuming that it is the
> > basis\bootstrap\image\image.factor and the core\bootstrap\primitives.factor,
> > stage1.factor and syntax.factor that you are referring to?
> >
> > One question just to help me get oriented before I go into heavy
> > head-twisting mode.  I notice that all these files have significant numbers
> > of pre-existing vocabularies that they use.  If this is what is used to
> > generate the early stage1 bootstrapping stuff, then am I correct to assume
> > that this is done from some version of factor where all this stuff has built
> > already from scratch (that would be the implication, if all these files are
> > able to use those vocabularies)?  Or is there some other mechanism at work
> > here that I should know about, and if so, is it written up anywhere that you
> > know about.
> >
> > I have just read Slava's January 2010 post on the bootstrapping mechanism,
> > so I understand the mechanism a bit better now, but am still thinking there
> > has to be some Factor system somewhere that was built without a bootstrap
> > image in order to have the vocabularies available that are used to generate
> > the bootstrapping.  Is there anything anywhere documenting that aspect of
> > the picture.  The reason I ask is that I would like to get a sense of how
> > extensive that core fundamental set of vocabularies is that is needed to
> > process the primitives and stage1 factor files.
> >
> > Here's the USING statement for primitives.factor:
> >
> > USING: alien alien.strings arrays byte-arrays generic hashtables
> > hashtables.private io io.encodings.ascii kernel math
> > math.private math.order namespaces make parser sequences strings
> > vectors words quotations assocs layouts classes classes.private
> > classes.builtin classes.singleton classes.tuple
> > classes.tuple.private kernel.private vocabs vocabs.loader
> > source-files definitions slots classes.union
> > classes.intersection classes.predicate compiler.units
> > bootstrap.image.private io.files accessors combinators ;
> > IN: bootstrap.primitives
> >
> > It's got a lot of stuff there.  Is a lot of this built in the C++ code that
> > constitutes the VM?  Or is some fundamental processing capability put into
> > place that allows the processing of factor files to build these
> > vocabularies?  And if so, is the factor source used also included in the
> > downloaded platform?  Or was this a special primordial code base that was
> > used once and never really needed again?
> 
> Although core/bootstrap/primitives.factor is in core/, it's not
> actually loaded as-is into the boot image; it's really a script
> designed to run as part of `make-image` in the host image. All of
> those modules are loaded and run in the host image. While there of
> course had to have been a primordial Factor that could boot itself, I
> think it would be too different now to resemble current Factor.
> Factor's bootstrapping loop evolved somewhat organically.
> 
> You can tell whether a word is a C++ primitive by `see`ing it in the
> listener. Primitive words show up as `PRIMITIVE:` when prettyprinted.
> 
> At a high level, `make-image` has two stages: First, it executes
> `core/bootstrap/stage1.factor`, which runs 'bootstrap/syntax.factor`
> to transfer the basic syntax from the host image to the boot image,
> `bootstrap/primitives.factor` to set up primitive words corresponding
> to VM primitives, and a CPU-specific `basis/cpu/*/bootstrap.factor`
> script to assemble "sub-primitives" which are blobs of assembly
> language code composed by the VM's compiler. It also composes a
> startup quotation to begin the second stage of bootstrap when the boot
> image is started. Second, after the bootstrapping elements have been
> loaded, it serializes the data structures loaded by the bootstrap
> scripts into a boot image. Again, it does this without help from the
> VM, though it does borrow some knowledge of layouts from the compiler
> and 

Re: [Factor-talk] Any way of making sense of what's in the boot image?

2012-08-09 Thread Michael Clagett

Thank you, Joe, once again for your help.  I have settled into a nice rythym of 
virtually tracing through the code by looking at the source (both vm and factor 
files), augmented by the Help system in the listener.  That should keep me busy 
and out of your hair for a couple months (or couple years? :( ).  Let me hold 
off on asking any more questions until I've had a chance to absorb some of 
this. Maybe one little question.   Am I correct in suspecting that there is a 
high-level Factor word I can execute on demand and trace through the exectution 
of via the Factor debugger to get a more dynamic picture of how this all 
unfolds?  Would it be make-image?  Can you just call that directly or is it 
only called in the context of a sequence of operations that have already set 
other things up?
 > Date: Wed, 8 Aug 2012 21:12:23 -0700
> From: arc...@gmail.com
> To: factor-talk@lists.sourceforge.net
> Subject: Re: [Factor-talk] Any way of making sense of what's in the boot  
> image?
> 
> On Wed, Aug 8, 2012 at 8:23 PM, Joe Groff  wrote:
> >
> > The code in the bootstrap.image module outputs the bootstrap image as
> > a binary blob. You can get a sense for the format of the bootstrap
> > image and its contents by looking at that module.
> 
> To clarify, by "output as a binary blob" I mean the code in
> bootstrap.image doesn't have any special help from the VM—it just
> generates a byte array whose contents resemble a Factor image and
> outputs that to a file. It could be transliterated to another language
> and still generate a valid boot image.
> 
> -Joe
> 
> --
> 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


Re: [Factor-talk] Any way of making sense of what's in the boot image?

2012-08-08 Thread Michael Clagett

Hi Joe -- Thank you so much for your guidance.  I'm assuming that it is the 
basis\bootstrap\image\image.factor and the core\bootstrap\primitives.factor, 
stage1.factor and syntax.factor that you are referring to? One question just to 
help me get oriented before I go into heavy head-twisting mode.  I notice that 
all these files have significant numbers of pre-existing vocabularies that they 
use.  If this is what is used to generate the early stage1 bootstrapping stuff, 
then am I correct to assume that this is done from some version of factor where 
all this stuff has built already from scratch (that would be the implication, 
if all these files are able to use those vocabularies)?  Or is there some other 
mechanism at work here that I should know about, and if so, is it written up 
anywhere that you know about. I have just read Slava's January 2010 post on the 
bootstrapping mechanism, so I understand the mechanism a bit better now, but am 
still thinking there has to be some Factor system somewhere that was built 
without a bootstrap image in order to have the vocabularies available that are 
used to generate the bootstrapping.  Is there anything anywhere documenting 
that aspect of the picture.  The reason I ask is that I would like to get a 
sense of how extensive that core fundamental set of vocabularies is that is 
needed to process the primitives and stage1 factor files.   Here's the USING 
statement for primitives.factor: USING: alien alien.strings arrays byte-arrays 
generic hashtables
hashtables.private io io.encodings.ascii kernel math
math.private math.order namespaces make parser sequences strings
vectors words quotations assocs layouts classes classes.private
classes.builtin classes.singleton classes.tuple
classes.tuple.private kernel.private vocabs vocabs.loader
source-files definitions slots classes.union
classes.intersection classes.predicate compiler.units
bootstrap.image.private io.files accessors combinators ;
IN: bootstrap.primitives It's got a lot of stuff there.  Is a lot of this built 
in the C++ code that constitutes the VM?  Or is some fundamental processing 
capability put into place that allows the processing of factor files to build 
these vocabularies?  And if so, is the factor source used also included in the 
downloaded platform?  Or was this a special primordial code base that was used 
once and never really needed again? Any clarification you can provide (or 
better yet, any sources you can point me to that I can go and do the work to 
gain an understanding of this) would be greatly, greatly appreciated. I 
envision creating my own "Inside the Factor VM" and possibly "inside the Factor 
Compiler" writeup once I have accomplished what I am after.  So hopefully I can 
give back a little after traveling up these respective learning curves. Thanks 
much. Mike  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? Thanks.> Date: Wed, 8 Aug 
2012 20:23:04 -0700
> From: arc...@gmail.com
> To: factor-talk@lists.sourceforge.net
> Subject: Re: [Factor-talk] Any way of making sense of what's in the boot      
> image?
> 
> On Wed, Aug 8, 2012 at 3:24 PM, Michael Clagett  wrote:
> > Hi --
> >
> > I've been tracing through the initial vm initialization code trying to get a
> > picture of how Factor bootstraps itself.  Does anyone know if there is a way
> > to resolve code in the initial boot image that is being jit-compiled by
> > factor_vm::prepare_boot_image to a set of symbolic names that can give a
> > hint as to what functionality is included there?  I'm trying to get a sense
> > of the minimal functional set included here that allows higher-level initial
> > code to be compiled.  The comment on prepare_boot-image says "/* Compile
> > code in boot image so that we can execute the startup quotation */".  It
> > would be nice to know what this code includes.  My guess is that the answer
> > is "no, there is no way" and that one just has to be in possession of
> > whatever code generated it (and there's nothing to say that this was even a
> > Factor system that did this in the first place; could have easily been some
> > C++ code that just knew what bits to emit).
> >
> > But it never hurts to ask...
> >
> > Presumably if I proceed past this to a point where actual Factor code is
> > being parsed and compiled, I

[Factor-talk] Any way of making sense of what's in the boot image?

2012-08-08 Thread Michael Clagett

Hi -- I've been tracing through the initial vm initialization code trying to 
get a picture of how Factor bootstraps itself.  Does anyone know if there is a 
way to resolve code in the initial boot image that is being jit-compiled by 
factor_vm::prepare_boot_image to a set of symbolic names that can give a hint 
as to what functionality is included there?  I'm trying to get a sense of the 
minimal functional set included here that allows higher-level initial code to 
be compiled.  The comment on prepare_boot-image says "/* Compile code in boot 
image so that we can execute the startup quotation */".  It would be nice to 
know what this code includes.  My guess is that the answer is "no, there is no 
way" and that one just has to be in possession of whatever code generated it 
(and there's nothing to say that this was even a Factor system that did this in 
the first place; could have easily been some C++ code that just knew what bits 
to emit).   But it never hurts to ask... Presumably if I proceed past this to a 
point where actual Factor code is being parsed and compiled, I'll be able to 
get a feel for what primitives are already being depended on?  Or maybe not.  
Maybe it's just a "big bang" where earlier word definitions can depend on later 
word definitions having been initialized before they start their execution.  Is 
mine a hopeless effort?  Would be nice to know before I suck up too much time 
with it. Thanks for any guidance anyone can provide. Regards, Mike  
 --
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


Re: [Factor-talk] Shared libraries considered harmful

2011-11-22 Thread Michael Clagett

Well, I've looked into this quite a bit for my own platform that I'm developing 
(which, as I've mentioned to you before, I have the desire -- if not yet 
exactly the confidence -- of building an implementation of Factor the language 
on top of).   At least I've looked extensively into the CLR.   There are a 
number of possibilities, ranging from hosting the CLR through native interfaces 
and interacting with the Managed environment through this all the way to 
intercepting the JIT compiler calls and injecting code there (again through 
native interfaces).  ANd there are a number of stops in between.
 
I will of course be adding this functionality first to my own environment, but 
am very happy to share any knowledge and or code that I acquire along the way.  
Perhaps, if anyone's interested, we might start such a project from the Factor 
end.

 



Date: Mon, 21 Nov 2011 18:16:11 -0800
From: arc...@gmail.com
To: factor-talk@lists.sourceforge.net
Subject: Re: [Factor-talk] Shared libraries considered harmful

On Mon, Nov 21, 2011 at 5:09 PM, Michael Clagett  wrote:




As for integration, I can see from your description of Factor's host 
integration that we may indeed have different notions about this.  Compared to 
Lisp or Scheme I'm sure that Factor comes out ahead, no doubt about it.  When I 
speak about integration, however, I am talking about integration with 
mainstream computing runtimes -- like .NET's Common Language Runtime or J2EE -- 
an integration that would make it possible to use Factor fluidly and easily 
alongside such languages as Java and C#


That makes sense, Michael. Interop with mainstream managed platforms would be 
great, but the interfaces for doing so are somewhat daunting. JNI is a 
nightmare. I've heard rumors that CLR objects can interop through COM 
interfaces, which we could potentially use through Factor's COM bridge, but 
documentation is scarce—is the ABI used between native and CLR code by C++/CLI 
documented anywhere? At any rate, the lack of finalizers or other automatic 
resource management on the Factor side would still make managing references to 
Java or C# objects inconvenient. It's definitely something worth exploring 
deeper, though.


-Joe 
-- 
All the data continuously generated in your IT infrastructure contains a 
definitive record of customers, application performance, security threats, 
fraudulent activity, and more. Splunk takes this data and makes sense of it. IT 
sense. And common sense. http://p.sf.net/sfu/splunk-novd2d
___ Factor-talk mailing list 
Factor-talk@lists.sourceforge.net 
https://lists.sourceforge.net/lists/listinfo/factor-talk
   --
All the data continuously generated in your IT infrastructure 
contains a definitive record of customers, application performance, 
security threats, fraudulent activity, and more. Splunk takes this 
data and makes sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-novd2d___
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk


Re: [Factor-talk] Shared libraries considered harmful

2011-11-21 Thread Michael Clagett

Hi --
 
Sorry for such a delayed response to this.   First of all, I want to make it 
absolutley clear that I was not criticizing Factor in the message below.  I was 
simply noting that the flip side of any language being as expressive and 
extensible as is Factor is the increased opportunity it brings to 
miscommunicate -- or not communicate at all, is really what I mean -- except 
perhaps to the machine you are trying to instruct.  It's the old adage "Any 
fool can write programs that a computer can understand; it takes a talented 
developer to write programs that a human being can understand."  With power 
comes license is the only point I was trying to make -- not a criticism, just a 
statement of reality.  And as you note in your response, at this stage of 
Factor's development and with the limited resources available to create 
infrastructure that would help promote coding standards and lower the barrier 
to entry, there's not a whole lot that can be done about this issue.  So once 
more, not a criticism -- more a lament.
 
As for integration, I can see from your description of Factor's host 
integration that we may indeed have different notions about this.  Compared to 
Lisp or Scheme I'm sure that Factor comes out ahead, no doubt about it.  When I 
speak about integration, however, I am talking about integration with 
mainstream computing runtimes -- like .NET's Common Language Runtime or J2EE -- 
an integration that would make it possible to use Factor fluidly and easily 
alongside such languages as Java and C#, which it is never going to replace, 
but could augment very nicely.  In some sense this is probably unfair of me, as 
it is clear that Factor is coming out of a functional language tradition that 
isn't particularly integrated into mainstream enterprise computing environments 
either.   It just seems to me that as a language Factor has so much promise and 
has the capability of being so expressive and so direct and natural in its 
translation of concepts that I find myself wishing I had it to use with my team 
and their work in enterprise development.  Clearly I'm talking about stuff that 
could certainly be developed, but just hasn't been yet -- perhaps because I'm 
the only one who sees a need for it at this point.  
 
In my message below I really was countering the sentiment by the original 
poster, who was longing for Factor to be the machine -- OS and everything else. 
  I was countering with an idea in the opposite direction of having Factor be 
as easily consumable inside of a C# program as, say, inline assembly is inside 
of a C++ program or Java scriptlets are inside of a server-side JSP page.  The 
idea being that I want to use the prepackaged resources of an OS or a runtime 
library.  I don't want to build my web infrastructure in Factor when some high 
percentage of the programmers out there are working in C# or Java. It's just 
not practical.  But maybe this isn't a use case that the language creators 
intended to address.
 
Hope this clarifies.
 
Mike
 



Date: Thu, 17 Nov 2011 09:03:53 -0800
From: arc...@gmail.com
To: factor-talk@lists.sourceforge.net
Subject: Re: [Factor-talk] Shared libraries considered harmful

On Thu, Nov 17, 2011 at 6:36 AM, Michael Clagett  wrote:




That brings a cost, however, as I've seen up to this point.  It distributes 
responsibility for documenting behavior across a community that like most 
communiteis is uneven in its fulfillment of responsibility.  The greater the 
dependency on "just read the code to figure out what's going on", the greater 
the barrier to entry to newcomers.  I have talked to more than one such person 
who has come to take a look and turned away for this very reason.  The power 
and flexibility is tremendous, no question.  But power and flexibility aren't 
always the only thing you need.


This is definitely a problem, and a similar problem afflicts most languages 
that rely heavily on metaprogramming, such as Lisps and even C++. The common 
substrate is too thin, and different users' code looks too different to easily 
read or interoperate with. Factor at least benefits from having a relatively 
small community and a well-centralized code base, so when we do promote idioms 
and libraries to the core language it's easier for us to propagate those 
benefits across all the bundled code. That said, being a small community, we 
also lack the free hands to keep the documentation polished and accessible to 
newcomers a lot of the time.
 


 But wouldn't it be nice to have a platform that offers the power and 
flexibility of Factor that also plays nicely with OSes and other runtime 
environments?



I think Factor goes much further than most languages of its kind in integrating 
with the host platform. Unlike Smalltalks, the canonical source code isn't 
hidden in the image, and you can use your own te

Re: [Factor-talk] Shared libraries considered harmful

2011-11-17 Thread Michael Clagett

A couple thoughts --
 
First of all, as far as I can tell Factor is one big shared library; so much of 
even the core language is implemented in library code that this is truer for 
Factor than it is for many languages one encounters.
 
That brings a cost, however, as I've seen up to this point.  It distributes 
responsibility for documenting behavior across a community that like most 
communiteis is uneven in its fulfillment of responsibility.  The greater the 
dependency on "just read the code to figure out what's going on", the greater 
the barrier to entry to newcomers.  I have talked to more than one such person 
who has come to take a look and turned away for this very reason.  The power 
and flexibility is tremendous, no question.  But power and flexibility aren't 
always the only thing you need.
 
As a development manager managing a group of about eight individuals, I have to 
say that one of the benefits of operating systems and runtimes like .NET and 
Java is the shared vocabulary they give a team to develop working practices and 
patterns.  The value of this obviously varies from situation to situation, but 
the greater difficulty that Factor and other flexible and extendible 
vocabulary-based development platforms can bring with them in terms of 
achieving standards and discipline is a concern that to me is very real and 
potentially limits the scope of their adoption.  Maybe it was never intended 
that Factor become a mainstream language suitable for use in primarily 
team-based environments and perhaps I am applying a standard to it that is not 
appropriate.  But wouldn't it be nice to have a platform that offers the power 
and flexibility of Factor that also plays nicely with OSes and other runtime 
environments?
 
Curious what others think about this.
 



Date: Thu, 17 Nov 2011 06:45:00 -0500
From: leonardne...@gmail.com
To: factor-talk@lists.sourceforge.net
Subject: [Factor-talk] Shared libraries considered harmful

Does anybody ever dream about returning to the early days of Forth, where "the 
vocabulary" is "the system"?

http://www.colorforth.com/POL.htm

Does anybody ever dream about software that shares functionality with 
"procedure calls", rather than with OLE, SOAP, or .so files?

http://blogs.oracle.com/rvs/entry/what_does_dynamic_linking_and

Is it even necessary to package code into "programs"?

Perhaps "namespaces" provide more flexibility than "programs"?

Does anyone dream about the Factor vocabulary becoming so rich than a "modern" 
"OS" is unnecessary?

Cheers,
Leonard



-- 
All the data continuously generated in your IT infrastructure contains a 
definitive record of customers, application performance, security threats, 
fraudulent activity, and more. Splunk takes this data and makes sense of it. IT 
sense. And common sense. http://p.sf.net/sfu/splunk-novd2d
___ Factor-talk mailing list 
Factor-talk@lists.sourceforge.net 
https://lists.sourceforge.net/lists/listinfo/factor-talk
   --
All the data continuously generated in your IT infrastructure 
contains a definitive record of customers, application performance, 
security threats, fraudulent activity, and more. Splunk takes this 
data and makes sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-novd2d___
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk


[Factor-talk] Using combinators as a substitute for loops

2011-10-09 Thread Michael Clagett

Hi ---
 
Finally getting around to developing my first serious Factor code and I have a 
quick question.  I'm a Forth programmer (although of late it has been mostly my 
own bastardized version of Forth).  I'm thinking of one immediate use of 
Combinators as a way of eliminating some of the unsightly procedural code that 
lives in the kind of Forth function I would write inside of, say, a Begin While 
Repeat loop. 
 
But if what I would have wanted to do with my loop is loop through every item 
in a collection of some sort until some condition was true and at that point 
exit the loop early, is there a way to do this using Combinators?  Are there 
versions of the primary ones that will operate on the target sequence only 
until a condition is reached?  I will of course peruse the documentation, but I 
thought I would just ask in case someone could steer me there more quickly (and 
in case some other newbie has the same question).
 
Thanks much.
 
Mike
 
  --
All of the data generated in your IT infrastructure is seriously valuable.
Why? It contains a definitive record of application performance, security
threats, fraudulent activity, and more. Splunk takes this data and makes
sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-d2dcopy2___
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk


[Factor-talk] Work done already on graph processing

2011-10-07 Thread Michael Clagett

Hi --

Just want to know what libraries might already be out there with graph 
processing stuff in them.  Don't want to reinvent the wheel.

Thanks.

Mike
  --
All of the data generated in your IT infrastructure is seriously valuable.
Why? It contains a definitive record of application performance, security
threats, fraudulent activity, and more. Splunk takes this data and makes
sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-d2dcopy2___
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk


Re: [Factor-talk] Brute Force & Ignorance!

2011-09-30 Thread Michael Clagett

Wow!  Patrick, thank you very much.  This will be extremely helpful to me, 
since the internet-less two hours on the train back and forth to work everyday 
is a significant piece of the time I have available to absorb Factor.
 

> Date: Fri, 30 Sep 2011 00:58:12 -0400
> From: patr...@spellingbeewinnars.org
> To: factor-talk@lists.sourceforge.net
> Subject: [Factor-talk] Brute Force & Ignorance!
> 
> Here is all the .factor files that ship with the source as a PDF:
> http://spellingbeewinnars.org/all_Factor_Source.pdf
> It's 4019 pages
> 
> Here is just the .factor core source:
> http://spellingbeewinnars.org/all_Core_Code.pdf
> It's 427 pages
> 
> Here is all of the IRC logs as a PDF:
> http://spellingbeewinnars.org/all_Irc.pdf
> It's 1275 pages
> 
> Here is all the emails to the mailing list:
> http://spellingbeewinnars.org/all_Mailing_List.pdf
> It's 1990 pages
> 
> Here is Volume 1 of the words documentation:
> http://spellingbeewinnars.org/words_Volume1.pdf
> It's 6959 pages
> 
> Volume 2 of words:
> http://spellingbeewinnars.org/words_Volume2.pdf
> It's 9945 pages
> 
> Volume 3:
> http://spellingbeewinnars.org/words_Volume3.pdf
> It's 7115 pages
> 
> Here is all the vocabulary documentation as a PDF
> http://spellingbeewinnars.org/all_Vocab.pdf
> It's 2826 pages
> 
> All the articles:
> http://spellingbeewinnars.org/all_Articles.pdf
> 783 pages
> 
> All the authors:
> http://spellingbeewinnars.org/all_Authors.pdf
> 82 pages
> 
> All the tags
> http://spellingbeewinnars.org/all_Tags.pdf
> 38 pages
> 
> Hopefully this will provide a quick, offline way to look for previously 
> discussed topics, idioms, libraries used and such-Patrick
> 
> 
> 
> 
> 
> 
> --
> All of the data generated in your IT infrastructure is seriously valuable.
> Why? It contains a definitive record of application performance, security
> threats, fraudulent activity, and more. Splunk takes this data and makes
> sense of it. IT sense. And common sense.
> http://p.sf.net/sfu/splunk-d2dcopy2
> ___
> Factor-talk mailing list
> Factor-talk@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/factor-talk
  --
All of the data generated in your IT infrastructure is seriously valuable.
Why? It contains a definitive record of application performance, security
threats, fraudulent activity, and more. Splunk takes this data and makes
sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-d2dcopy2___
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk


Re: [Factor-talk] Cheat sheet?

2011-09-21 Thread Michael Clagett

I want to make sure you are aware of these:

 First Program ( "first-program" help ) 
https://github.com/mrjbq7/re-factor/raw/master/docs/first-program.pdf


 Cookbook ( "cookbook" help ) 
https://github.com/mrjbq7/re-factor/raw/master/docs/cookbook.pdf


 Language ( "handbook-language-reference" help ) 
https://github.com/mrjbq7/re-factor/raw/master/docs/handbook.pdf


 System ( "handbook-system-reference" help ) 
https://github.com/mrjbq7/re-factor/raw/master/docs/system.pdf


 Tools ( "handbook-tools-reference" help ) 
https://github.com/mrjbq7/re-factor/raw/master/docs/tools.pdf


John Benediktson (sp?, sorry) was kind enough to generate these recently from 
the docs.


Date: Wed, 21 Sep 2011 18:25:29 +0100
From: withnom...@gmail.com
To: factor-talk@lists.sourceforge.net
Subject: Re: [Factor-talk] Cheat sheet?

Oh id love one, especially since im not a frequent factor coder; would make it 
easier to do write more code in factor. 

On Fri, Sep 16, 2011 at 12:19 PM, Patrick Mc(avery 
 wrote:

I really miss not having a cheat sheet for factor, it's a great way to

get a compete but high level view of a language.



Does anyone know if there is one kicking around?



If not I will try to make one tonight, perhaps the list can help me fix

errors and omissions after.



-Patrick





--

BlackBerry® DevCon Americas, Oct. 18-20, San Francisco, CA

http://p.sf.net/sfu/rim-devcon-copy2

___

Factor-talk mailing list

Factor-talk@lists.sourceforge.net

https://lists.sourceforge.net/lists/listinfo/factor-talk




--
All the data continuously generated in your IT infrastructure contains a
definitive record of customers, application performance, security
threats, fraudulent activity and more. Splunk takes this data and makes
sense of it. Business sense. IT sense. Common sense.
http://p.sf.net/sfu/splunk-d2dcopy1
___
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk
  --
All the data continuously generated in your IT infrastructure contains a
definitive record of customers, application performance, security
threats, fraudulent activity and more. Splunk takes this data and makes
sense of it. Business sense. IT sense. Common sense.
http://p.sf.net/sfu/splunk-d2dcopy1___
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk


Re: [Factor-talk] Mixed up about deployment

2011-09-09 Thread Michael Clagett

One quick clarification, if you would be so kind.  Isn't it true that even 
after the image file is loaded there is still an interpreter present (as with 
Forth) that can permit subsequent interpretation of new stuff even if 
everything in the image file has already been compiled?

> Date: Fri, 9 Sep 2011 10:10:15 -0700
> From: sl...@factorcode.org
> To: factor-talk@lists.sourceforge.net
> Subject: Re: [Factor-talk] Mixed up about deployment
> 
> Hi Patrick,
> 
> On Fri, Sep 9, 2011 at 5:22 AM, Patrick Mc(avery
>  wrote:
> > With factor, what is happening during deployment? Is there an
> > interpreter built into it's own executable like py2exe? :
> > http://www.py2exe.org/
> 
> When you run the Factor VM binary named 'factor', it loads an image
> file named 'factor.image'. Similarly, when you use the deploy tool to
> deploy your app, it creates an image file named 'myapp.image', and
> copies the VM binary to a new binary named 'myapp'.
> 
> > I don't know much about smalltalk, are there any downfalls to this
> > approach? does it mean heavier memory use at runtime? is there more
> > redundancy between files compared to files being sent to a separate
> > interpreter at runtime like Lua? Disk spaces is almost irrelevant now
> > but it would still be good to know. If several instances of the same
> > program were running at the same time would there be memory waste vs the
> > other approaches?
> 
> A good way of thinking about the image is that it is a cache for
> parsed and compiled code that just happens to be serializable to disk.
> While Factor does use more memory than Lua for various reasons, it is
> not anything inherent in the image model. Lua has the same data
> structures in memory after you load a source file -- syntax trees,
> bytecode, and JITted code. It just doesn't offer a way of saving them
> to disk, so you "deploy" by giving your users the source code and an
> interpreter, instead of an image file and a VM.
> 
> Cheers,
> 
> Slava
> 
> --
> Why Cloud-Based Security and Archiving Make Sense
> Osterman Research conducted this study that outlines how and why cloud
> computing security and archiving is rapidly being adopted across the IT 
> space for its ease of implementation, lower cost, and increased 
> reliability. Learn more. http://www.accelacomm.com/jaw/sfnl/114/51425301/
> ___
> Factor-talk mailing list
> Factor-talk@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/factor-talk
  --
Why Cloud-Based Security and Archiving Make Sense
Osterman Research conducted this study that outlines how and why cloud
computing security and archiving is rapidly being adopted across the IT 
space for its ease of implementation, lower cost, and increased 
reliability. Learn more. http://www.accelacomm.com/jaw/sfnl/114/51425301/___
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk


Re: [Factor-talk] TryRuby, etc.

2011-08-24 Thread Michael Clagett

Yes I guess it is.  Probably better to use on-line documentation for more 
up-to-date info.  Still, I found this a pretty useful read on the train.  Much 
of what's here, though, is in the Reference section of the on-line docs.

> Date: Wed, 24 Aug 2011 13:03:11 -0700
> From: sl...@factorcode.org
> To: factor-talk@lists.sourceforge.net
> Subject: Re: [Factor-talk] TryRuby, etc.
> 
> I can't load that link right now, but IIRC this is just the old Factor
> 0.72 docs in PDF format.
> 
> On Wed, Aug 24, 2011 at 1:00 PM, Andrew Pennebaker
>  wrote:
> > "Note that this handbook is not a tutorial..."
> > --Forward to the Factor Developer's Handbook
> >
> > It's still a valuable resource. Thanks.
> > Cheers,
> > Andrew Pennebaker
> > www.yellosoft.us
> >
> >
> > On Tue, Aug 23, 2011 at 11:15 PM, Michael Clagett 
> > wrote:
> >>
> >> Hi Andrew --
> >>
> >> Not a video tutorial, but I found this useful:
> >> http://www.bluishcoder.co.nz/handbook.pdf
> >>
> >> Regards,
> >>
> >> Mike
> >>
> >> 
> >> From: andrew.penneba...@gmail.com
> >> Date: Tue, 23 Aug 2011 20:25:58 -0400
> >> To: factor-talk@lists.sourceforge.net
> >> Subject: [Factor-talk] TryRuby, etc.
> >>
> >> Has anyone made an interactive online tutorial for Factor comparable to
> >> TryRuby?
> >>
> >> Cheers,
> >> Andrew Pennebaker
> >> www.yellosoft.us
> >>
> >> --
> >> EMC VNX: the world's simplest storage, starting under $10K The only unified
> >> storage solution that offers unified management Up to 160% more powerful
> >> than alternatives and 25% more efficient. Guaranteed.
> >> http://p.sf.net/sfu/emc-vnx-dev2dev
> >> ___ Factor-talk mailing list
> >> Factor-talk@lists.sourceforge.net
> >> https://lists.sourceforge.net/lists/listinfo/factor-talk
> >>
> >> --
> >> EMC VNX: the world's simplest storage, starting under $10K
> >> The only unified storage solution that offers unified management
> >> Up to 160% more powerful than alternatives and 25% more efficient.
> >> Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev
> >> ___
> >> Factor-talk mailing list
> >> Factor-talk@lists.sourceforge.net
> >> https://lists.sourceforge.net/lists/listinfo/factor-talk
> >>
> >
> >
> > --
> > EMC VNX: the world's simplest storage, starting under $10K
> > The only unified storage solution that offers unified management
> > Up to 160% more powerful than alternatives and 25% more efficient.
> > Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev
> > ___
> > Factor-talk mailing list
> > Factor-talk@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/factor-talk
> >
> >
> 
> --
> EMC VNX: the world's simplest storage, starting under $10K
> The only unified storage solution that offers unified management 
> Up to 160% more powerful than alternatives and 25% more efficient. 
> Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev
> ___
> Factor-talk mailing list
> Factor-talk@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/factor-talk
  --
EMC VNX: the world's simplest storage, starting under $10K
The only unified storage solution that offers unified management 
Up to 160% more powerful than alternatives and 25% more efficient. 
Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev___
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk


Re: [Factor-talk] TryRuby, etc.

2011-08-23 Thread Michael Clagett

Sorry.  Misunderstood what you were asking.
 



From: mclag...@hotmail.com
To: factor-talk@lists.sourceforge.net
Date: Wed, 24 Aug 2011 03:15:58 +
Subject: Re: [Factor-talk] TryRuby, etc.





Hi Andrew --
 
Not a video tutorial, but I found this useful:  
http://www.bluishcoder.co.nz/handbook.pdf
 
Regards,
 
Mike
 



From: andrew.penneba...@gmail.com
Date: Tue, 23 Aug 2011 20:25:58 -0400
To: factor-talk@lists.sourceforge.net
Subject: [Factor-talk] TryRuby, etc.

Has anyone made an interactive online tutorial for Factor comparable to TryRuby?

Cheers, 


Andrew Pennebaker
www.yellosoft.us
-- 
EMC VNX: the world's simplest storage, starting under $10K The only unified 
storage solution that offers unified management Up to 160% more powerful than 
alternatives and 25% more efficient. Guaranteed. 
http://p.sf.net/sfu/emc-vnx-dev2dev
___ Factor-talk mailing list 
Factor-talk@lists.sourceforge.net 
https://lists.sourceforge.net/lists/listinfo/factor-talk
-- 
EMC VNX: the world's simplest storage, starting under $10K The only unified 
storage solution that offers unified management Up to 160% more powerful than 
alternatives and 25% more efficient. Guaranteed. 
http://p.sf.net/sfu/emc-vnx-dev2dev
___ Factor-talk mailing list 
Factor-talk@lists.sourceforge.net 
https://lists.sourceforge.net/lists/listinfo/factor-talk
   --
EMC VNX: the world's simplest storage, starting under $10K
The only unified storage solution that offers unified management 
Up to 160% more powerful than alternatives and 25% more efficient. 
Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev___
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk


Re: [Factor-talk] TryRuby, etc.

2011-08-23 Thread Michael Clagett

Hi Andrew --
 
Not a video tutorial, but I found this useful:  
http://www.bluishcoder.co.nz/handbook.pdf
 
Regards,
 
Mike
 



From: andrew.penneba...@gmail.com
Date: Tue, 23 Aug 2011 20:25:58 -0400
To: factor-talk@lists.sourceforge.net
Subject: [Factor-talk] TryRuby, etc.

Has anyone made an interactive online tutorial for Factor comparable to TryRuby?

Cheers,


Andrew Pennebaker
www.yellosoft.us
-- 
EMC VNX: the world's simplest storage, starting under $10K The only unified 
storage solution that offers unified management Up to 160% more powerful than 
alternatives and 25% more efficient. Guaranteed. 
http://p.sf.net/sfu/emc-vnx-dev2dev
___ Factor-talk mailing list 
Factor-talk@lists.sourceforge.net 
https://lists.sourceforge.net/lists/listinfo/factor-talk
   --
EMC VNX: the world's simplest storage, starting under $10K
The only unified storage solution that offers unified management 
Up to 160% more powerful than alternatives and 25% more efficient. 
Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev___
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk


Re: [Factor-talk] Can anyone point me to a library for manipulating Windows

2011-01-02 Thread Michael Clagett


Thanks, Joe.
From: arc...@gmail.com
Date: Sun, 2 Jan 2011 21:38:34 +0530
To: factor-talk@lists.sourceforge.net
Subject: Re: [Factor-talk] Can anyone point me to a library for manipulating
Windows



On Jan 2, 2011, at 8:35 PM, Michael Clagett wrote:I'm hunting for a library 
that can be used to help me do quick and dirty Windows/GDI programming with 
Factor.  Has anyone created such an animal yet?  Thanks.

If you want really quick and dirty, there are raw FFI bindings to a 
decent-sized chunk of the Win32 API in windows.kernel32, windows.user32, 
windows.gdi32, etc., though you'll have to fill in missing bindings for things 
that Factor's cross-platform UI doesn't directly use. I don't believe anybody's 
developed a higher-level binding.
-Joe

--
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and, 
should the need arise, upgrade to a full multi-node Oracle RAC database 
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
___
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk
  --
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and, 
should the need arise, upgrade to a full multi-node Oracle RAC database 
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl___
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk


[Factor-talk] Can anyone point me to a library for manipulating Windows

2011-01-02 Thread Michael Clagett

I'm hunting for a library that can be used to help me do quick and dirty 
Windows/GDI programming with Factor.  Has anyone created such an animal yet?  
Thanks.
  --
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and, 
should the need arise, upgrade to a full multi-node Oracle RAC database 
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl___
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk


Re: [Factor-talk] aspects and querying factor code

2010-12-29 Thread Michael Clagett

I haven't used AspectJ, but Attributes in .NET can be used for the same purpose 
and I have done that.  I don't know how the Attribute syntax compares with 
Aspect J, but I have found it to be very clean and you may want to look at it 
as food for thought in what you are trying to do.  I don't want to pollute 
Factor-Talk with unrelated content, so if you want to take this offline for a 
while until you can bring it back to Factor, please feel free to ping me at 
mclag...@hotmail.com. 

> Date: Wed, 29 Dec 2010 17:25:45 +0200
> From: k_lu...@gbrener.org.il
> To: factor-talk@lists.sourceforge.net
> Subject: [Factor-talk] aspects and querying factor code
> 
> Hi guys, does anyone know where I can find jamesnvc 's aspects vocabulary?
> I think it really fits in with factor. james used annotate to implement 
> it, don't know if it was finished.
> 
> Thanks, Kobi
> 
> PS:
> why is it of interest? I recently read about aop: (but haven't tried yet)
> In addition to querying, it can be used to implement contracts cleanly 
> (maybe with predicates), and keep the supporting code away from the 
> actual logic (thereby keeping factor's elegant code, even in real world 
> apps). Atleast that's the promise.
> i'd like to experiment with this, and see what further customizations 
> are possible.
> 
> if you have experience (for example with AspectJ from java, or others), 
> please share.
> 
> 
> --
> Learn how Oracle Real Application Clusters (RAC) One Node allows customers
> to consolidate database storage, standardize their database environment, and, 
> should the need arise, upgrade to a full multi-node Oracle RAC database 
> without downtime or disruption
> http://p.sf.net/sfu/oracle-sfdevnl
> ___
> Factor-talk mailing list
> Factor-talk@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/factor-talk
  --
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and, 
should the need arise, upgrade to a full multi-node Oracle RAC database 
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl___
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk


Re: [Factor-talk] Integrating Browser functionality into Listener: John Benediktsson's Syntax Highlighting

2010-11-15 Thread Michael Clagett

Shaping --

If you do embark on the effort you propose below, I  would be happy to work on 
it with you (although I would think you would want to find at least one old 
hand to participate as well).  What you describe is very close to what I intend 
for my own factor-like environment that I described to you previously and so 
I'm going to be doing a lot of the same design work anyway.

Sounds like a good project to sink one's teeth into for really going up the 
factor learning curve.

Regards,

Mike

> From: shap...@charter.net
> To: factor-talk@lists.sourceforge.net
> Date: Sun, 14 Nov 2010 21:15:10 -0600
> Subject: [Factor-talk] Integrating Browser functionality into Listener: John  
> Benediktsson's Syntax Highlighting
> 
> Hi John/all.
> 
> I still have some Git exercises and maintenance to do tonight, but I tripped
> over this http://planet.factorcode.org/ and want to see where it might lead.
> 
> The syntax highlighting is interesting to me.  I'm wondering whether we can
> change the Listener GUI into a color vocab browser that focuses more on code
> and less on the navigation links and doc and examples, as in the current
> Browser. There is a place for those too, obviously, but I'm trying to change
> the emphasis a little to make development faster and to reduce the amount of
> typing of words into the Listener.
> 
> One possibility:  Split the Listener vertically, placing the usual Listener
> command line progression on, say, the right side, and another pane on the
> left. The idea is that, when you need to know what a word means, because you
> are trying to use it, or are wondering whether you even have the right word
> or concept in mind, you can type it into the Listener, and instead of doing
> 
> \ some-word see
> 
> you could instead dynamically search for the word's definition by either
> clicking on the word or just hovering over it.  I'm thinking that if you
> access and display the word's definition on hover-over, instead of on
> click-on, you could rapidly scan colored formatted word definitions in the
> left pane.  You could have, say, a line of words entered into the Listener,
> scan over them left to right (or whichever way) with your mouse, looking at
> their color definitions flash through the pane on the left.  When you hit a
> word that is especially interesting/confusing, you click on it to lock that
> definition into the left pain.  You can now wander up to the definition in
> the left pane with your mouse and continue the process of scanning over its
> words, drilling down toward primitives, until you are convinced you
> understand enough to complete the expression at hand.  Every time you want
> to drill, stop scanning with your mouse and click on the interesting word to
> popup yet another pane below the one you were in when you clicked on the
> interesting word. Or, you could stack your definition windows on top of each
> other, as you drill, and provide a context menu "back" command, or just use
> some forward/backward arrows in the GUI to go back and then go forward
> again, just as you would in the HTML help Browser.  So why do this?
> 
> If you are in a coding app and not a browsing app, you could not only scan
> and study as you drill, you can also scan and edit the command line you are
> building.  Maybe Ctrl-click on a word to append it to the end of the
> Listener's command line.  (Maybe the other way:  Ctrl-click for doc and
> click for appending.)
> 
> I want to get around faster, and to assemble correct Factor expressions, the
> first time.  I don't want to see an example for a word before I see the code
> for the word.  The reason for this is subtle but important:  I want to
> understand the words increasingly quickly when I read them and their
> definitions, and not by remembering necessarily several favorite examples,
> which memories I will acquire anyway if I can use the word successfully in
> my own word definitions a few times.  Having a bad time reading words
> creates a drive to improve the words, especially because you are now reading
> definitions more often than examples (which I think I would want to put in a
> nearby pane or in an examples tab in the same pane).  I don't want to use
> English explanations and examples as crutches for reading Factor fluently.
> I want to write better words and patterns of them.  Being required to read
> definitions first may be a healthy source of pressure in that direction. 
>  
> I'm also thinking that the stack-effect data could be more binding than it
> currently is.  I noticed while compiling some new words that the compiler
> will infer a stack-effect, and tell you when you've written it incorrectly.
> This looks almost binding.  So my suggestion/question is:  Can we use the
> stack effects to check at least the superficial (type- and count-based)
> correctness of a forth expression, as it is assembled on a Listener command
> line?
> 
> Also, concerning literals and stack objects, when you mouse-scan those, you

Re: [Factor-talk] Git: Repository ->Verfiy Database warnings on freshly cloned and pulled repo

2010-11-15 Thread Michael Clagett

Shaping --

If you switch to some other forum to troubleshoot your git issues, could you 
please post a message here telling us where it is.  I am following this 
discussion (and would like to continue to do so) to save myself some pain and 
aggravation when I go through the same process.

Thanks.

Mike

From: shap...@charter.net
To: factor-talk@lists.sourceforge.net
Date: Mon, 15 Nov 2010 05:38:40 -0600
Subject: Re: [Factor-talk] Git: Repository ->Verfiy Database warnings   on  
freshly cloned and pulled repo



I imagine that someone has seen the problem before and already knows the issue. 
Has anyone tried  to verify a fresh clone and seen this problem?  I suppose it 
doesn't matter much, if the problem still exists for all of us, and hasn't 
caused any problems.  Then, again, I  may be the only one doing the verify;  
it's convenient from the GUI.  I think most of us are using the Git  Bash.  
Shaping From: John Benediktsson [mailto:mrj...@gmail.com] 
Sent: 2010-November-15, 05:10
To: factor-talk@lists.sourceforge.net
Subject: Re: [Factor-talk] Git: Repository ->Verfiy Database warnings on 
freshly cloned and pulled repo  Can someone explain this?  How serious a 
problem is this?  Does it indicate
corruption in my local repo?
Would it be possible to keep out-of-topic questions out of this list (this one 
should be posted on a git users mailing-list since it has nothing to do with 
Factor)? They seem to arrive faster than I am able to mark them as "ignored". I 
have to agree.  Generally I'm in favor of helping out where possible, but the 
discussion here is overwhelming and not about Factor. If you want some 
iterative help like this, perhaps IRC or other sources would be better? Don't 
misunderstand - your Factor ideas are very welcome and encouraged. Thanks,John.
--
Centralized Desktop Delivery: Dell and VMware Reference Architecture
Simplifying enterprise desktop deployment and management using
Dell EqualLogic storage and VMware View: A highly scalable, end-to-end
client virtualization framework. Read more!
http://p.sf.net/sfu/dell-eql-dev2dev
___
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk
  --
Centralized Desktop Delivery: Dell and VMware Reference Architecture
Simplifying enterprise desktop deployment and management using
Dell EqualLogic storage and VMware View: A highly scalable, end-to-end
client virtualization framework. Read more!
http://p.sf.net/sfu/dell-eql-dev2dev___
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk


Re: [Factor-talk] Building Factor in Visual Studio

2010-10-10 Thread Michael Clagett

Never mind.  I was reminded of the Visual Studio command prompt and am just 
building with the NMakefile from there.  Seems to be working ok.  Sorry for the 
noise.

From: mclag...@hotmail.com
To: factor-talk@lists.sourceforge.net
Date: Sun, 10 Oct 2010 18:04:06 +
Subject: [Factor-talk] Building Factor in Visual Studio








Just trying to get a fix on this.  Have people been building Factor from within 
Visual Studio on WIndows XT 32-bit?  If so, any guidance?  (Trying to see if I 
can avoid the cgywin download thing).  

--
Beautiful is writing same markup. Internet Explorer 9 supports
standards for HTML5, CSS3, SVG 1.1,  ECMAScript5, and DOM L2 & L3.
Spend less time writing and  rewriting code and more time creating great
experiences on the web. Be a part of the beta today.
http://p.sf.net/sfu/beautyoftheweb
___
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk
  --
Beautiful is writing same markup. Internet Explorer 9 supports
standards for HTML5, CSS3, SVG 1.1,  ECMAScript5, and DOM L2 & L3.
Spend less time writing and  rewriting code and more time creating great
experiences on the web. Be a part of the beta today.
http://p.sf.net/sfu/beautyoftheweb___
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk


[Factor-talk] Building Factor in Visual Studio

2010-10-10 Thread Michael Clagett

Just trying to get a fix on this.  Have people been building Factor from within 
Visual Studio on WIndows XT 32-bit?  If so, any guidance?  (Trying to see if I 
can avoid the cgywin download thing).  --
Beautiful is writing same markup. Internet Explorer 9 supports
standards for HTML5, CSS3, SVG 1.1,  ECMAScript5, and DOM L2 & L3.
Spend less time writing and  rewriting code and more time creating great
experiences on the web. Be a part of the beta today.
http://p.sf.net/sfu/beautyoftheweb___
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk