The Return of the Journal : pugs.blogs.com/ | pugscode.org | pugs.kwiki.org | paste: paste.lisp.org/new/perl6 or sial.org/pbot/perl6 Set by GammaRay on 31 December 2005. |
|||
00:16
lumimies_ joined
|
|||
stevan | audreyt: I think I have the `create vs. .CREATE($repr, ... ) thing figured out | 00:18 | |
audreyt: ping me when you are awake and have a moment | |||
00:40
oylenshpeegul left
01:06
frey_ joined
01:11
joepurl joined
01:26
xern joined
01:32
xern_ joined
|
|||
rent | is now known as _brentp | 01:33 | |
01:34
vel joined
01:37
xern__ joined
|
|||
svnbot6 | r8588 | stevan++ | docs/notes/piln_object_repr_types.pod - proposal for handling the different $repr types in the PIL^N runtime | 01:41 | |
stevan | audreyt: please review/sanity-check docs/notes/piln_object_repr_types.pod when you have time | ||
audreyt: I also think we should roll back the fix for the insane-larry model | 01:45 | ||
I think that is better addressed in the meta-model itself | |||
01:46
SamB joined
|
|||
stevan | i think that can be dealt with in the Eigenclass layer | 01:46 | |
(which is not in PIL^N at the moment) | |||
every class will have an eigenclass between itself and it's class (^Class), which will already handle the class methods, so it can just as easily handle the crazy Larry stuff there too | 01:49 | ||
in fact I think that is the ideal place for it since it keep the rest of the model sane too | 01:50 | ||
SamB | okay. | 02:01 | |
stevan | :) | 02:02 | |
SamB | so eigenclasses are the nuthouses in this model, the proverbial carpet under which all the nasty details are swept? | ||
stevan | SamB: not really actually | ||
Larry wants to not have Class objects, which is fine for the surface syntax | 02:03 | ||
and if you need to access the MOP (meta-object-protocol) then you use .meta | |||
the MOP manipulates the Class objects | 02:04 | ||
stevan waves his hands, "but you didnt see them cause they dont exist" | |||
but Larry want there to be a special kind of class thing, which is undef, but also can respond to various methods | 02:05 | ||
(which more often than not will be class methods) | |||
so this "class thing" has no real value (it is undef), but can (for instance) respond to .isa | 02:06 | ||
so ^Int.isa('Int') will work | |||
while ^Int.meta.isa('Int') will not | |||
because ^Int.meta is actually an instance of ^Class | 02:07 | ||
stevan waves hands again "you didn't see anything ..... " | |||
but all those ^Int class methods need to be stored somewhere | 02:09 | ||
this is where the eigenclasses come in | |||
in the model there are only instance methods | |||
there is no such thing as a class method | |||
eigenclasses are anon classes which are inserted between the instance and it's class | 02:10 | ||
this is how Ruby has the instance specific methods | 02:11 | ||
well if classes are just instances of ^Class, then you can apply the same principle here | |||
and your classes ^Object, etc, ... can have class methods | |||
(aka - instance specific methods on instances of ^Class) | 02:12 | ||
02:32
stennie joined
02:33
scook0 joined
02:35
gilby joined
|
|||
gilby | .leave | 02:39 | |
02:39
gilby left
02:41
stennie left
03:23
christo joined
03:35
hexmode joined
03:58
Cryptic_K joined
04:02
elmex_ joined
04:23
mjl69 joined,
christo joined
04:28
Amnesiac joined
04:32
rashakil joined
|
|||
meppl | guten morgen | 04:38 | |
04:49
peacock joined
05:05
phredmoyer joined
05:06
phredmoyer left
|
|||
stevan | good morning meppl | 05:09 | |
svnbot6 | r8589 | stevan++ | examples/piln/lazy_stream.pil | 05:33 | |
r8589 | stevan++ | - added a PIL^N examples directory | |||
r8589 | stevan++ | - example of a numeric range implemented as a lazy stream | |||
r8589 | stevan++ | it can handle 1 .. Inf too :) | |||
r8590 | stevan++ | examples/piln/bottom_up_mergesort.pil - copying the mergesort from ^List since audreyt is planning implementing a `sort in the host language | 05:44 | ||
05:52
justatheory joined
06:00
phredmoyer joined
06:08
azuroth joined
06:35
kanru joined
06:47
phredmoyer joined
06:50
iblechbot joined
06:51
phredmoyer joined
|
|||
gaal | morning | 07:21 | |
beppu | it's getting close to midnight here ;) (california) | 07:23 | |
gaal | $morning then. | 07:25 | |
07:30
lisppaste3 joined
|
|||
clkao | clkao:~/work/pugs clkao$ svk up -s | 07:42 | |
RA layer request failed: PROPFIND request failed on '/pugs': PROPFIND of '/pugs': 200 OK (svn.openfoundry.org) | |||
gaal | someone remember where Show instances are defined for Vals? | 08:05 | |
dduncan | beppu, its a bit after midnight here (BC) | 08:16 | |
scook0 | gaal: doesn't Val derive Show automatically? | 08:17 | |
beppu | perl6 world wide | 08:22 | |
dduncan | new commit done; enjoy | ||
svnbot6 | r8591 | Darren_Duncan++ | r1809@Darren-Duncans-Computer: darrenduncan | 2006-01-06 00:20:11 -0800 | 08:23 | |
r8591 | Darren_Duncan++ | /ext/Rosetta-Incubator : updated Language.pod to start the new section DATA TYPES AND VALUES, which will replace the old DATA TYPES OVERVIEW when done (tomorrow?) | |||
dduncan | I'm also incorporating some elements of perl 6 into Rosetta's internal language, or at least more general things that I learned about or had clarified in connection with perl 6 | 08:24 | |
08:32
hugues23 joined
08:41
G2 joined
08:47
kanru joined
08:48
Cryptic_K joined
|
|||
gaal | scook0: oh, silly me, I was trying to print an Eval Val in ghci, not Val | 08:49 | |
scook0 | ah | ||
09:39
larsen joined
09:53
joepurl joined,
r0nny joined
10:58
kane_ joined
11:16
kanru joined
11:47
marmic joined
12:01
alexe_home joined
12:08
joepurl_ joined
12:22
jrieks joined
12:42
cognominal joined
12:49
mjl69_ joined,
cm joined
13:03
elmex joined
13:08
chris2 joined
13:15
mjl69 joined
13:23
Limbic_Region joined
13:27
r0nny joined
13:31
r0nny joined
13:39
DaGo joined
|
|||
gaal | audreyt: ping | 13:51 | |
Limbic_Region | I think today is a $work day gaal | 13:55 | |
not that ever stops her | 13:56 | ||
gaal | dumpYaml doesn't even get a chance to see it got called on a hash. I don't understand why, but it thinks it is getting invoked on a list of pairs. | 13:57 | |
obra | It's a $work day and she just disappeared for a while | 13:58 | |
gaal | though if the hask is deep, on inner levels it does see a hash. | ||
anyone else here know Vars? | |||
luqui around maybe? iblech listening on? :) | |||
14:16
elmex_ joined
14:32
Qiang joined,
xinming joined
|
|||
audreyt | gaal: pong | 14:41 | |
gaal: | 14:42 | ||
\\n Any pre yaml safe (Any)\ | |||
gaal: you want to change proto in prim from (Any) to (rw!Any) so it passes the container not the value. | |||
next question :) | |||
gaal | whee! :) | 14:45 | |
okay, here goes. I was just playing around with serializing objects | |||
--- !perl/Foo and so on | |||
I can probably figure this out myself, but if you know the api setup needed for this you can save me time looking :) | 14:46 | ||
(it isn't enough to tag the node with something other than "hash") | |||
14:47
zuulvin_ joined,
pdcawley_ joined
|
|||
audreyt | I don't :) | 14:47 | |
gaal | okay, np. :) | 14:48 | |
hmmm, rw!Any didn't change what toYaml sees :( | 14:49 | ||
audreyt | once you figure it out I'll port it to YAML::Syck in the Jhubei.pm hackathon :) | ||
clkao | hey audreyt | ||
audreyt | try rw!Any|Junction|Pair | ||
hey clkao | |||
gaal | may be easier for me to send you a patch to YAML::Syck myself and port it to haskell ;-) | ||
clkao | looking forward to hackathon | 14:50 | |
gaal | hmm that's what .perl does, though I don't see why that should fix this problem | ||
pdcawley_ | YAML::Syck? | ||
gaal | pdcawley_: indeed. it's on CPAN | 14:51 | |
pdcawley_ | It's *always* on CPAN! *Everything* is on CPAN. | ||
gaal | pdcawley_: Syck is a fast YAML implementation in c used by ruby and other languges. | ||
written by Why, the ruby guy. | |||
pdcawley_ | Kewl. | 14:52 | |
pdcawley_ wishes he'd seen Why's OSCON thing... | |||
gaal | audreyt: no luck with the extended signature either :( | ||
there is a bit I don't understand though, which may be related to this: | 14:53 | ||
prettyVal says in the object case: | |||
hash <- fromVal v :: Eval VHash | |||
is this forcing the instance of fromVal? | |||
audreyt | yup | 14:54 | |
gaal | without the annotation, was there danger a different instance would run? | ||
which? | |||
audreyt | yeah, because the inferencer only sees hashRef below | ||
so anything in (HashClass a, Value a) would do | |||
so we need to tell resolve the ambiguity using type annotation | |||
can you check in your Prim.hs first? | 14:55 | ||
gaal | hmm. okay, so I don't think it is related to the current problem :( | ||
sure, one sec. | |||
done | 14:57 | ||
svnbot6 | r8592 | gaal++ | Pugs.Prim: try to give .yaml a better invocant hint | ||
audreyt | pulling | ||
14:58
hcarty joined
|
|||
audreyt | gaal: heh, fixed. | 15:01 | |
you are doing a fromVal from Val to Val | 15:02 | ||
that means "decomposing ref" | |||
so hash gets decomposed. | |||
gaal | oh :( | ||
audreyt++ # eyes of a hawk | |||
audreyt | ooh, ironpython 1.0 beta. | 15:03 | |
nice work. | |||
PerlJam | gaal: eyes of a hawk, heart of a lion, intelligence of a savant, etc. ? :-) | 15:06 | |
gaal | PerlJam: polymorphism. | 15:07 | |
audreyt | oh wow hash dumping Just Works | 15:08 | |
gaal | object dumping almost does, here. | ||
audreyt | committed... so you get to do the merge :) | ||
gaal | well, it lies by substituting a real tag with "!perl/Foo" => attrs | ||
:) | 15:09 | ||
this is great, I get to learn some ruby | |||
audreyt | that's great | ||
svnbot6 | r8593 | audreyt++ | * {1=>2}.yaml Just Works now... woot :-) | 15:10 | |
audreyt | I've just read thru PickAxe 1.5 times | ||
probably need to do some real project with it (and with ironpython/pypy) to grok both | |||
?eval {1=>2, 3=>4}.yaml | |||
evalbot_8592 | toYaml VList: [VRef <Pair>,VRef <Pair>] toYaml VRef: VRef <Pair> type=(mkType "Pair") toYaml VList: [VStr "1",VInt 2] toYaml VRef: VRef <Pair> type=(mkType "Pair") toYaml VList: [VStr "3",VInt 4] a hash: [(YamlStr "<ref>",YamlSeq [YamlStr "1",YamlStr "2"])] a hash: [(YamlStr "<ref>",YamlSeq [YamlStr "3",YamlStr "4"])] "--- \n- \n <ref>: \n - 1\n - 2\n- \n <ref>: \n - 3\n - 4\n" | ||
audreyt | heh, not finished recompiling yet | ||
gaal | urp, those are traces, does evalbot pick up stderr? | 15:12 | |
brb | |||
v | 15:17 | ||
15:17
Aankhen`` joined
|
|||
gaal | is it common in ruby to publish docs in pdf? | 15:18 | |
audreyt | I thought ri/rdoc is the way to read docs | ||
15:20
justatheory joined
|
|||
gaal | i dunno, the yaml-for-ruby page doesn't have online docs, but a chm/pdf download | 15:20 | |
heh, it indeed returns Str. good catch :) | 15:22 | ||
15:25
xinming joined,
elmex joined
15:30
lisppaste3 joined
|
|||
gaal | family dinner. bbl & | 15:35 | |
(possibly syck_emit_tag but still uncertain re: how it's used in the ruby ext) | 15:36 | ||
audreyt | #ruby-lang? :) | 15:37 | |
gaal | freenode? | 15:38 | |
I'm happy to ask, but.. later :) | |||
15:52
Aankh|Clone joined
16:06
phredmoyer joined
|
|||
stevan | audreyt: ping | 16:15 | |
audreyt | stevan: pong | 16:17 | |
your proposal makes sense and I'll make it happen tomorrow :) | |||
stevan does a happy dance | |||
audreyt | stevan++ | ||
stevan | audreyt++ | 16:18 | |
I might try to hack some of the basic roles this weekend too,.. like Ord, etc | |||
audreyt | also, do you think a RW role, a Plural role (with to_single), as well as a Single role (with to_plural) makes some sense? | ||
RW role would have infix:<=> | |||
stevan | probably yes | ||
audreyt | taken together that forms my version of context calculus | 16:19 | |
stevan | ok | ||
I wanted to try and spec out these types of things this weekend | |||
give the objects more "behaviors" | |||
audreyt | woot | ||
clkao | audreyt: www.nntp.perl.org/group/perl.perl6.compiler/1258 | 16:26 | |
great web nntp interface | 16:27 | ||
audreyt | you could've seen that in my blog anyway... | 16:28 | |
stevan | clkao: you can't read that? :P | ||
they are pretty complex semantics :) | 16:29 | ||
audreyt | rofl | 16:30 | |
qmole | next one is better | 16:32 | |
stevan | I don't understand the context,.. but I am certainly coerced into believing that it will work :) | 16:33 | |
qmole | heh | 16:34 | |
stevan provides his own rimshot | |||
audreyt looks up what "rimshot" means | 16:35 | ||
stevan | it punctuates a bad joke | 16:36 | |
audreyt | *nod* | ||
stevan | in Las Vegas style comedy acts | ||
hit the rim of the snare drum and then the cymbal | |||
Debolaz wonders why p6i hates him. | 16:37 | ||
audreyt | yeah, I know the concept, but not the word :) | ||
Juerd_ | clkao: I dunno why exactly, but even trying HARD for a week couldn't make me decode base64 without a computer :( | 16:41 | |
It's something I'd love to be able to | 16:42 | ||
clkao | don't. look out for snowcrash | 16:44 | |
audreyt | food, bbiab | 16:46 | |
Limbic_Region | anyone have a p5 implementation of the ackerman benchmark handy? | 16:48 | |
stevan thinks me might have left that in his other pants | 16:50 | ||
I think there is a p6 one in examples/ though, not sure if that helps at all | |||
Limbic_Region | well in p6 I would expect compiler tail-call optimizations to negate the need for manual intervention | 16:51 | |
but for a starting point it might help | |||
found 1 | 16:52 | ||
www.newlisp.org/benchmarks/ackermann.perl.txt | |||
16:56
iblechbot joined
17:01
bsb joined
|
|||
stevan | audreyt: I was also thinking that we might need a way to have "private" roles/classes which are not exposed to the user-land, but used in the object-space/PIL^N land,.. but this is still an unfinished thought | 17:25 | |
audreyt | stevan: we simply don't bind them to the final lexpad. | ||
stevan | that works :) | ||
audreyt | they are in objspace, but you can't reach them. | ||
17:25
vel__ joined
|
|||
audreyt | see Bootstrap.pil annotations :) | 17:25 | |
(my plan is to just bind things with :: and nothing else) | 17:26 | ||
stevan | ah | ||
very nice | |||
audreyt | oh, also, you want me to rollback lwall-hack and roll in eigen? | ||
what will ::Int's repr be? | |||
stevan | so the ^ stuff will be behind .meta? | ||
yes, please roll back the lwall stuff,.. and we can hack in eigen's later | 17:27 | ||
audreyt | yes. | ||
stevan | I want to keep them out of the picture for the moment | ||
audreyt | but what will ::Int's repr be? | ||
stevan | a num | ||
audreyt | the class itself uses a num repr? | ||
with a value in it? | |||
stevan | which we will pass into create_scalar() | 17:28 | |
audreyt | which value is this? | ||
I mean the object ::Int | |||
not objects of class ::Int | |||
stevan | yes | ||
oh | |||
^Class | |||
audreyt | right, so the idea is still the same, but not done as a special hack in runtime | ||
got it | |||
stevan thinks he is understanding correctly the question | |||
yup | |||
audreyt | cool, we are back to vehement agreement | 17:29 | |
stevan | :) | ||
audreyt | so do I rollback just the create_class hack | ||
or also the resigiling? | |||
I kinda like the resigiling. | |||
stevan | no we can keep the resigiling | ||
audreyt | yay. | ||
stevan | but lets do add all the :: stuff in a single file, to be loaded last in the process I think | 17:30 | |
unless of course we find we need it later on | |||
s/later/earlier/ | |||
stevan praises CAM::PDF for making Test::PDF possible and therefore his $work life easier | 17:31 | ||
audreyt | there's a Test::PDF? | 17:32 | |
stevan | yeah, I wrote it :) | ||
audreyt | stevan++ # wow. | ||
stevan | it's not complete | ||
but it does a "rough visual" comparison | 17:33 | ||
audreyt | but still, wow. | ||
I've pondered this when I was writing PDF::FromHTML | |||
stevan | I got sick of hand checking 100+ page PDF reports | ||
:) | |||
audreyt | dismissed it as ENOTOOLS | ||
stevan | CAM::PDF++ # makes it soooo simple | ||
ENOTOOLS? | |||
audreyt | i.e. there were no CAM::PDF back then. | 17:34 | |
stevan | ah | ||
yes, it makes aggressive refactoring of PDF generating code a much more pleasent experience | 17:35 | ||
audreyt | $job++ # keeping touch with the CPAN roots is a great way to keep me motivated on doing perl6 | 17:36 | |
elmex | elmex++ | 17:42 | |
perlbot | What kind of idiot karmas himself? Your kind of idiot! | ||
elmex | perlbot-- | ||
17:44
khisanth_ joined
17:49
lisppaste3 joined
|
|||
Aankh|Clone | perlbot karma perlbot | 17:54 | |
perlbot | Karma for perlbot: 5 | ||
ankhen` | is now known as Aankh|Clone | ||
18:22
talby joined
|
|||
talby | I don't know exactly what to call it, but if anyone is familar with Mozilla's xptcall functionality for allowing JavaScript to masquerade as C++, does anyone know if Parrot is expected to include features to allow dynamic wrapping of Parrot interpreter entry points to C? | 18:25 | |
broquaint | I would think not, talby. | 18:29 | |
What more do you need to expose when writing assembler? | 18:30 | ||
talby | I don't think I understand the question. | 18:31 | |
broquaint | Never mind. | ||
talby | would there be value in being able to pass a hunk of Parrot bytecode in place of a C callback function? | 18:32 | |
stevan | talby: you might have better luck asking on #parrot actually | ||
although leo is sometimes around here | |||
talby | thanks. | ||
audreyt | stevan: so. do I just remove the ::Scalar := ^Scalar.create_class etc? | 18:33 | |
stevan | yeah I think so,.. for now at least | ||
they are not really used anywhere at the moment | 18:34 | ||
18:34
talby left
|
|||
audreyt | so, ::Int's repr is an opaque | 18:40 | |
that creates interesting problems | |||
say I have ::Point | |||
which is an opaque itself with eigen under your scheme | 18:41 | ||
stevan | ok | ||
audreyt | what would ::Point store in its opaque? | ||
what are the keys? | |||
stevan | wait | 18:42 | |
I think ::Int's repr wont be an opaque | |||
it will be the create_scalar() repr | |||
it will just store the native num where an opaque would store a map of attr names | |||
audreyt | I mean ::Int the object | ||
not objects of type ::Int | 18:43 | ||
stevan | what does that matter to ::Point then? | ||
audreyt | what I'm wondering is | ||
what exactly does ::Int's opaque store? or ::Point's? | |||
I can't seem to think of anything. | |||
stevan | oh,.. sorry,.. I am thinking ^Int | ||
uhm,.. no they dont really store anything I guess | 18:44 | ||
maybe they are create_nil() | |||
audreyt | exactly my point. | ||
stevan | this will give us the class but undef | ||
audreyt | yes. | ||
stevan | and you just call .meta through them | ||
audreyt | because I implemented that in createClass in new runcore | ||
but I'm now rolling it back | |||
stevan | ok | ||
audreyt | in favor of your repr scheme | ||
but I need its counterpart in repr. | |||
stevan | well I think we can mix the two together | 18:45 | |
audreyt | yup | ||
stevan | but how would ::Int.new() work? | ||
or would that be ^Int.new() | |||
or ::Int.meta.new()? | |||
audreyt | ::Int.meta.new. | ||
er wait | |||
stevan | ok | ||
audreyt | ::Int.new can work | 18:46 | |
its eigen does a dispatch to meta | |||
stevan | :es | ||
yes | |||
audreyt | that makes perfect sense | ||
stevan | should class methods be stored in ::Int ? | ||
audreyt | there's no notion of clsmeth in s12. | 18:47 | |
stevan | meaning,.. is ::Int really just our eigen? | ||
audreyt | hm, ::Int has cls of itself | ||
stevan | yeah I know,..Larry is still very hand wavy on that | ||
audreyt | you mean like that? | ||
every class object is its own metclass? | |||
stevan | hmm | ||
if ::Int is the "class object", which is also undef, then ^Int would be it's metaclass | 18:48 | ||
but ^Int is just an instance of ^Class | |||
we need an eigenclass in there somewhere to handle proper class methods (regardless of what S12 says) | 18:49 | ||
audreyt | I'd like to think there is no class methods | ||
I mean, I don't think larry is handwavy | |||
I think he is set on deliberate nontraditional OO model | |||
stevan | so how owuld they be handled? | ||
audreyt | as they are in p5 | ||
how are clsmeth in p5 handles? | |||
s/handles/handled/ | |||
stevan | hmm | ||
audreyt | I think S12 outlines a type-ified p5 model | 18:50 | |
but the p5 spirit stays | |||
which is that there's no class methods | |||
(but there could be eigens) | |||
via gensym refs | |||
stevan | but how do I tell the diff between ::Int.stuff() and ::Int.new().stuff()? | ||
well if we don't have class methods, we really have no need for eigens | 18:51 | ||
audreyt | there is no diff if method stuff doesn't use attrs | ||
stevan | hmm | ||
audreyt | and if it does, then typechecker rejects the former. | ||
exactly like in p5 | |||
except safer | |||
stevan | so there is no way to explicty mark amethod | ||
audreyt | but operational semantic stays | ||
stevan | as only takeing a class invocant | ||
audreyt | right, I think that's larry's basic idea | ||
it's very prototypical. | |||
stevan | hmm | 18:52 | |
yes | |||
ok,.. that works | |||
who am I to argue with Larry :P | |||
audreyt | "insanity is not only a good idea it's the law" | ||
stevan | ok,... so forget eigenclasses,.. we only need them for adding singleton methods | ||
:) | 18:53 | ||
insanity++ | |||
class methods are overrated anyway | |||
so ::Int will have repr of nil, and ::Int.meta will be ^Int,.. which means we will have a nil instance of ^Int | 18:54 | ||
I like that | |||
it works | |||
so ::Int's cls is ^Int | |||
audreyt | yes. | ||
Odin-LAP | audreyt: Well, and so what? Good ideas don't need the force of law, and the force of law often doesn't suffice to press bad ideas upon people. So ... make good ideas become the law! | ||
audreyt | okay, I'm glad I conveyed insanity | ||
Odin-LAP: I agree... in fact I'm implementing it ;) | 18:55 | ||
stevan shuffles around the asylum in his pajamas mumbling something about the satelittes which are monitoring his brainwaves | 18:56 | ||
Odin-LAP | stevan: Oh, they're not monitoring your brainwaves. | ||
stevan thinks Odin-LAP is one of Them now | |||
Odin-LAP | Nonono. They're monitoring all of your body activity. | 18:57 | |
stevan wonders how Odin-LAP knows so much if he is not one of Them | 18:58 | ||
Odin-LAP | The brainwaves, really, are the least of their concern. They're much more interested in neurotransmitter activity, i.e. which specific transmitters are active where. | ||
stevan stands very still | 18:59 | ||
Odin-LAP | stevan: Oh, I never said I wasn't. But you don't know where my allegiance lies, do you? :) | ||
(The 'nonono' was referring to the idea that they were just monitoring brainwaves.) | |||
stevan | :) | 19:00 | |
he-Ma | is now known as stevan | ||
Odin-LAP | Oh dear. | ||
The-Man | Odin-LAP, paging Odin-LAP you are needed in the neurotransmitter monitoring room | ||
teva | is now known as The-Man | ||
audreyt | ... | 19:01 | |
Odin-LAP | audreyt: Speechless? | 19:02 | |
audreyt | no, sending morse code to Them | ||
Odin-LAP | S? | 19:03 | |
audreyt | yeah, it's an S expression in morse code! | ||
*rimshot* | 19:04 | ||
audreyt learns fast | |||
qmole | lol | ||
stevan | :D | 19:05 | |
audreyt | stevan: so, add it to the repr document if you've got a second... I'll revert the internals hack now and complete repr spec tomorrow | ||
stevan | ok | ||
19:05
ingy joined
|
|||
stevan | ingy!!!!! | 19:05 | |
ingy | stevan: hey man | ||
I should logoff and log back on more often | 19:06 | ||
how goes | |||
stevan | it goes | ||
how is .tw treating you | |||
ingy | loverly | 19:07 | |
I bought a scooter today | |||
www.atlas-kk.co.jp/bike/taiwan/cygn...31_big.jpg | |||
whiteg | Did you also buy a helmet | ||
? | |||
ingy | that's the actual color scheme | ||
hi whiteg! | 19:08 | ||
whiteg | ingy: :) | ||
ingy | no I don't actually get the scooter until Monday though | ||
and technically it belongs to gugod | |||
I'm buying for him ;) | 19:09 | ||
ingy does the happy scooter owner dance | 19:10 | ||
whiteg | ingy: you should also buy yourself one or two helmets. | 19:11 | |
stevan | cool | 19:12 | |
ingy | whiteg: I definitely will | 19:13 | |
and they will be cool ones | |||
whiteg | :) | ||
ingy | unlike gugod's | ||
whiteg | save one for me.:) | ||
ingy | pink? | ||
whiteg | ingy: well, I trust your taste. | 19:14 | |
ingy | you should | ||
it rocks | |||
stevan recommends painting flames on the side of ingy's helmet | |||
ingy | most of the time... | ||
stevan: sounds hot! ;) | 19:15 | ||
19:15
cognominal joined
|
|||
ingy | ok nighty night sixers | 19:15 | |
stevan | I would say to go Easy Rider style with the american flag, but maybe not in the current world political climate | ||
ingy | heh | 19:16 | |
19:23
Southen joined
19:31
cognominal joined
|
|||
svnbot6 | r8594 | stevan++ | docs/notes/piln_object_repr_types.pod - added docs about the `create_nil() repr type | 19:35 | |
19:49
oylenshpeegul joined
19:50
Southen_ joined
|
|||
gaal | hullough | 20:01 | |
20:03
justatheory joined
20:04
loftcity joined
20:07
dduncan joined
20:13
putter joined
20:18
xinming joined
20:29
oylenshpeegul left
20:41
hexmode joined
20:44
marmic joined
20:55
hcarty left
21:06
mncharity joined
|
|||
utte | is now known as mncharity | 21:06 | |
putter celebrates return of the journal | 21:07 | ||
stevan: ping | 21:08 | ||
hmm, colabti.de/irclogger has the sense of name changes backwards. foo changed to bar gets a "<mangled> - changed to foo" line. | 21:09 | ||
ingy: trademarks aside, how about a camel-nose helmet. ;) | 21:11 | ||
21:14
pdcawley_ joined
|
|||
stevan | putter!!!!!!!! | 21:15 | |
stevan celebrates the return of putter | |||
putter | stevan!!!! ;) | ||
audreyt | putter! | ||
putter | err, disturbing icon. maybe :) ? | ||
audreyt!!! :) | 21:16 | ||
delighted to see the new journal! | |||
hmm, so what does the near-term critical path look like nowadays? | 21:17 | ||
stevan | PIL^N | 21:18 | |
'sall 'bout dah Lambda Yo | |||
putter | :) | ||
stevan | hmmm, when last you were here, I think I hadn't begun the Perl6::ObjectSpace stuff | 21:19 | |
audreyt | putter: PILN, then PIL2 targetting it, then porting over parse tree stuff | ||
putter | so... time to bulk code massage Prim.hs into pil-mumble? | ||
audreyt | putter: yes, the builtin reprs and roles | 21:20 | |
we stash everything into prim | |||
putter | or better question, is there a near-term bitesized-tasks list? | ||
audreyt | that's gotta go | ||
bitesized... look at parrot's new pad stuff and revamp Emit.PIR | 21:21 | ||
that's more unicode-sized | |||
Debolaz | Aight, pkgsrc package for parrot 0.4.1 is more or less done. Only to wait for the release now. Also made a package that gets the source from the subversion repo when building. | ||
putter | stevan: re P6::OS, yes, neat! The old p5 backend rewrite quickly hit "I'm just making this up as I go along" on the oo type hierarchy. Awesome to see something real. | 21:22 | |
audreyt | also, p6doc stuff is definitely bitesized | ||
21:22
Southen joined
|
|||
stevan | putter: thanks :) | 21:23 | |
stevan wonders when the PIR/PGE/TGE hacking folks will realize that same thing ;) | 21:24 | ||
audreyt | heh... PGE is quite self contained and TGE is a well-proven minimal algorithm | ||
it's just it's not clear how to get here from there :) | 21:25 | ||
gaal | putter! hello :) | ||
stevan | audreyt: very true :) | ||
well we are nice people,.. we will share our stuff :) | |||
putter | hi gaal! | ||
audreyt | and PIR... makes a very good Tcl VM, which will become handy as the prims is getting populated quickly | ||
so things are looking good :) | |||
stevan | I think of PIR and PIL^N as being two different approaches to the same problem | 21:26 | |
although I may be off base there | |||
stevan has limited PIR experience | |||
audreyt | PIR doesn't nest, that's my #1 gripe | 21:27 | |
otoh, it does have goto, which we don't, so things balance out | |||
stevan | we have &redo := &?SUB which IMHO is just as good if not better | ||
stevan has yet to see a "Fixed Point considered harmful" paper | 21:28 | ||
putter looks at www.synchroedit.com/ - a web-based simultaneous editor | |||
re FPch :) | |||
ok, sooo... Pugs/Prim.hs gets shredded? with parts converted into p6, pil...mumble, and mumble.hs? | 21:31 | ||
21:34
elmex joined
|
|||
putter birthday coming up. getting old. christmass passed. no p6. sniff. friend's 2.5 yr-old growing up. is using truely miserable software. shudder. want to write better. no p6. weep. looking around for bottlenecks/critical path/pacing factors to poke at. ideas? | 21:35 | ||
stevan | audreyt: can you easily make "&infix:<+> := -> $lhs, $rhs { $lhs`add($rhs) };" parseable in PIL^N? | ||
putter contemplates "p6 now" slogan | |||
gaal | I hadn't gotten that far in TaPL yet, but why BTW do some languages require you to say "let rec" explicitly? performance? | ||
stevan | I dunno about ML (or whatever TaPL uses), but IIRC scheme's letrec is a form of let which allows things to be self referential | 21:37 | |
audreyt | stevan: done, committing | ||
stevan | audreyt++ | 21:38 | |
gaal | stevan: yes, so I suppose it introduces a fix. is that expensive? | ||
stevan | that will allow me to hack Ord, Eq, etc | ||
gaal: no idea,.. sorry | |||
although the paper I am looking at right now which is where I saw letrec in says that it is sideeffectual | |||
gaal wonders if there's something he can do with PIL^N? | 21:39 | ||
stevan | and does not seem to indicate that it is using a fix() | ||
gaal | s/with/for/ | ||
stevan | gaal: haskell side or PIL^N side? | ||
gaal | sunny side | ||
stevan recommends www.dreamsongs.com/NewFiles/WhyOfY.pdf (I think asavige posted this here a few days ago too) | 21:40 | ||
gaal | in p5 you need to do a silly trick to get a recursive (anonymous) closure | 21:41 | |
I read that | |||
21:41
cognominal joined
|
|||
gaal | you need to declare the container before assigning to it | 21:41 | |
I think that's just a tecnical thing, a side effect of the implementation | |||
putter | gaal: my fuzzy impression is there shouldnt be a performance hit for the mere binding discipline. only if it gets combined with an orthogonal choice to evaluate sequentially. my (very) fuzzy recollection is scheme's letrec has explicitly undefined clause evaluation order. | ||
svnbot6 | r8595 | audreyt++ | * allow <> in PILN identifiers. | 21:42 | |
gaal | brb | ||
stevan | &infix:<+> := -> $lhs, $rhs { $lhs`add($rhs) }; &infix:<+>`(3, 4); = 7 :) | 21:44 | |
gaal | re | 21:46 | |
openfoundry's being slow :( | 21:48 | ||
21:48
larsen_ joined
|
|||
putter | stevan: so what does your next few days look like? any well-defined bits you'd like to delegate? | 21:50 | |
stevan | putter: I am actually waiting on audreyt to finish refactoring some of the PILN object stuff | 21:51 | |
putter | ah :( | 21:52 | |
stevan | everything else is very fuzzy stuff right now | ||
sorry | |||
putter | ok, so piln gets refactored, then what happens? | 21:53 | |
stevan | I need to refactor the stuff written in PIL^N to work with that | ||
which will be fairly well defined when we get to that point | |||
which may be in the next few days,.. I am just not sure of audreyt's shedule | 21:54 | ||
putter | ok, so piln is refactored, the existing piln is updated to match, and then... | ||
stevan | well I am trying to figure out the role/class/type heirarchy for Perl6 and PILN/2 | 21:55 | |
I sent a mail to p6c a few days ago which is a start | 21:56 | ||
then Larry tore it up (which is exactly what I was hoping for) | |||
putter | hmm, ok, say the perfect spec came back, what would happen next? | 21:57 | |
:) | |||
stevan | implement it ;) | ||
putter | lol | ||
stevan | Larry wont write it though | ||
besides I think we need to allow for hand-waving and blurriness with the Perl 6 level | 21:58 | ||
and as long as the PIL level is solid and full featured | |||
we can support the needs of the Perl 6 layer | |||
putter | implementing it would mean... piln code? p6? ...? | ||
ahm ,,, | |||
stevan | piln mostly | ||
putter | err, ah... | ||
how solid and full featured is piln at present? | 21:59 | ||
stevan | If i understand audreyt's plan correctly, then Perl 6 will get compiled down to PIL2, which is really just *very very* desugared Perl 6 | 22:00 | |
audreyt waves and sleeps... will backlog in future | |||
stevan | :) | ||
audreyt | yes. PIL2 is just Perl6 with minimal internal nodes | ||
putter | night& | ||
hmmm... | |||
stevan | then PIL2 will use the classes/types/roles built in PILN to serve as the "runtime" | ||
PILN is as full featured as it really needs to be | 22:01 | ||
IMHO that is :) | |||
putter | :) | ||
stevan | it is lambda calc with string, number, bool, list and hash literals | ||
list and hash being immutable too | |||
putter | err, ok, what exactly is the relation of pil2 and piln? | ||
stevan | PIL2 will call the PILN objects | 22:02 | |
putter | p6->healthfoodstore->pil2->... | ||
obra | seen leo_ | 22:04 | |
jabbot | obra: leo_ was seen 6 days 2 hours 24 minutes 11 seconds ago | ||
obra | seen leo | ||
jabbot | obra: leo was seen 23 hours 34 minutes 4 seconds ago | ||
audreyt | PIL2 is compiled to PILN. | ||
as it can be (and will be) compiled to PIR. | |||
putter | ah | ||
audreyt | PILN is basically our reference VM. | ||
because the compiler needs an object space | 22:05 | ||
stevan | PILN is compiled to PIR? or PIL2 is compiled to PIR? | ||
putter feels guilty about keeping audreyt awake... | |||
audreyt | and currently all our backends have incompatible objspace semantics | ||
obra | ow. | ||
audreyt | none of which agree with S12 | ||
putter | k | ||
obra | parrot is coming up as the canonical source for Pod::Simple::Text on CPAN | ||
audreyt | obra: ow | ||
stevan: PILN can be compiled to PIR easily but perhaps not efficiently. | |||
but we can do that first and should od that first. | |||
stevan: at some point PIL2->PIR can enable better interop and optimization and whatnot. | 22:06 | ||
putter | hs|pilnvm<-(compile)-pil2<-(enzime)-p6 ? | ||
stevan | audreyt: but that will require a PIR objectspace right? | ||
audreyt | putter: something like that, yes, although piln can certainly be interpreted in p5. | ||
stevan: yes. | |||
stevan: or an isomorphism | |||
stevan | yes | ||
stevan hopes someone else will volunteer to write that one :P | 22:07 | ||
putter | ok... strawman question: so if there is a p6->pil2->piln compilation path... why isnt everything written in p6? ;) | 22:08 | |
audreyt | putter: everything above object bootstrap should be in p6. | 22:10 | |
putter: we are still working on obj bootstrap ;) | |||
putter | :) | ||
audreyt | the objspace for compiler is still incomplete | 22:11 | |
once it's complete, then sure, have fun with those p6 objs. | |||
putter | hmm... given that the p6 oo model seems a bit... fuzzy at present... could the compiler use a lower-level set of constructs, which then get assembled into the oo model dejure? | 22:13 | |
audreyt | we are degaussing it. | 22:14 | |
and it's no longer fuzzy now :) | |||
at least as of this week | |||
the class/role hierarchy needs more work | |||
but it's just work... not pending larry et allanymore | 22:15 | ||
s/all/al / | |||
putter | much of the object space doesnt seem(?) to depend on the exact details, and thus could be written when then lower levels were still in flux [putter sees next comments - ah] | ||
audreyt | the compiler must live in an objspace | 22:16 | |
no way around that | |||
and then snapshot the post-GC space | |||
save it as disk image | |||
and to run it is to call the &::('') entry object | 22:17 | ||
putter | so the only thing which gets written in piln is a bare minimum set of objects/methods to bootstrap the object system? and then the objects (and perhaps methods) get fleshed out by p6 code once bootstrapped? | ||
audreyt | exactly so. | ||
and the Haskell part is just the native representations and their methods. | |||
which is like ~200 lines | 22:18 | ||
and can be duped in p5 | |||
and then we get p6 running on p5. | |||
that's the plan so far. | |||
but it's 6am | |||
putter | ok... hmm... | ||
audreyt | I really really need to sleep. | ||
audreyt waves :)& | 22:19 | ||
putter | bad audreyt! but my many thanks. good night & | ||
putter pauses, remaining carefully quiet. (wispers) steven: ping | 22:20 | ||
stevan pongs quietly | |||
putter | lol | ||
gaal | you mean lo(very quietly) | 22:22 | |
audreyt | silly :) | ||
stevan | dammit putter you woke her up :P | ||
audreyt | I'll sleep once my rofl'ing stops :) | 22:23 | |
& | |||
gaal shops for a bedcage with effective stoppers against laughing hackers | 22:25 | ||
stevan carefully slips mufflers over audreyt's virtual ears | 22:26 | ||
putter | so it sounds like there is an exercise of taking the set of objects/methods still written in haskell, subtracting those needed (==currently used?) by the oo system bootstrap (and thus written in piln), and massaging the rest. Either into p6 where possible, or into... something... for true primitives. | ||
stevan | putter: yes, kinda | 22:27 | |
gaal | hmmm, there was a syntax trick in haskell to use a let expression just for the sake of a pattern match. anyone in GMT < +4 remember what it was? | 22:28 | |
stevan | the OO bootstrap is mostly complete, it just needs some polishing before it can work on the p6 level | ||
putter: have you seen the updated S12? | |||
gaal | I mean suppose I have a Just x | ||
I know for certain this can't be Maybe, so I want to let myself x | 22:29 | ||
s/Maybe/Nothing/ | |||
I know about fromJust; my case is a little different | |||
stevan | putter: it is worth reading since it is much less hand-wavey | 22:30 | |
gaal | in longhand I'd spell out case v of (Just x) -> my code; _ -> error " | ||
putter | Hmm, so take atan(). Currently its hs-atan | Prim.hs:p6-atan(). what's the new version? does piln have an atan? or an inline-hs(), with a hs-backend-specific p6 file? or...? | ||
gaal | but I *know* there's an evil trick to avoid that. | ||
golfing for the sake of readability, really! | 22:31 | ||
stevan | putter: should atan be a multi? | ||
stevan is fairly clueless on anything in the Math:: namespace | |||
putter | gaal: nothing comes to mind. hmmm. #haskell? | ||
gaal | good idea. | 22:32 | |
putter | stevan: I guess the question is really, does the piln vm end up with a very large "instruction set", including things which on some platforms one might prefer to write in p6, or | 22:34 | |
is it much narrower, but with backend-specific tunneling functions (inline/eval), accompanied by backend-specific p6 code. | 22:35 | ||
stevan | putter: well PIL^N has the ability to access methods on things which P6 will not have the ability to do | ||
the unboxed types basically | |||
the idea is to keep the PILN vm instruction set small | 22:36 | ||
only those bits we really need | |||
with enough abstraction to cover the unboxed types | |||
stevan is not sure he explaining this well | |||
putter | atan()? you do want access to unboxed types. but a vm with all the mathops wont be exactly small. | 22:37 | |
stevan | I am also thinking that nothingmuch's circular prelude idea will work well here | ||
putter | circular prelude? | ||
stevan | nothingmuch proposed that we define everything in p6, and then each backend/compiler/interpereter would implement the min bits it needed to to support the prelude | 22:38 | |
I think there is something about it in doc/notes | 22:39 | ||
what does atan do BTW? | |||
PerlJam | atan == arc tangent | ||
putter | arc-tangent? | ||
stevan prepares to ask what an arc-tangent is and decides to not bother :P | |||
if you can write it in p6, then you dont need to have access to the unboxed types | 22:40 | ||
PerlJam | stevan: Haven't you ever taken a math or geometry class? | ||
or trigonometry | |||
putter tests Wikipedia. neat. en.wikipedia.org/wiki/Arc_Tangent | |||
stevan | PerlJam: I went to Art School and was asleep/high/too-busy-drawing during High school math | 22:41 | |
PerlJam | stevan: gotcha. Glad we rescued you then :) | ||
stevan | LOL | ||
well putter, probably for efficiency sake things like this should be implemented in the host langauge (C for parrot, Haskell for Pugs, etc) | 22:42 | ||
which would become native methods on the PILN num type | 22:43 | ||
and we would just add the method to the boxed ::Num type in PIL^N so it can dispatch to the native num | 22:44 | ||
at least that is how I see it | |||
putter | one liner is its the inverse of tan(). x == arctan(tan(x)) for all arcmumble (sin, cos, etc) | ||
stevan | <she who must not be named> may disagree | ||
Juerd_ | GPRS use abroad: 0.274 MB, costing me 4.76 EUR | ||
Incredible. | |||
PerlJam | Juerd_: is that cheap or expensive? | 22:45 | |
Juerd_ | And in total, I spent 85 EUR on mobile phone stuff in Germany . | ||
22:45
scrottie joined
|
|||
Juerd_ | PerlJam: Incredibly expensive. | 22:45 | |
PerlJam: You know how tiny an MB is, and the value of a EUR :) | |||
scrottie waves hi to Juerd | |||
Juerd_ | Hey scrottie | ||
PerlJam | Actually, I don't have a handle on the value of a EUR | ||
Juerd_ | PerlJam: In .nl, I get 1 GB/month for EUR 30.00 | ||
stevan | putter: also you should look at this docs/notes/piln_object_repr_types.pod | 22:46 | |
Juerd_ | Outside .nl, an MB costs well over EUR 10 | ||
stevan | it will give you context to the boxed/unboxed stuff I am babbling about | ||
PerlJam | Juerd_: stay in .nl ;) | ||
putter | stevan: re circular, it would be nice if one could do that on a pure perl level. use Base; use BaseTweaks12; use SomeStuffOnHS; use OtherStuffOnHS; # now bootstrap done | ||
Juerd_ | It's over 325 times more expensive outside than inside .nl | 22:47 | |
stevan | putter: maybe, I dont have that wide a view of things at the moment | ||
Juerd_ | That's outrageous. | ||
But apparently, normal. | |||
22:50
Medvekom_ joined
|
|||
integral | 1 EUR is a cup of coffee | 22:50 | |
putter | stevan: is piln a subset of p6? or novel? | 22:51 | |
stevan | piln is the bastard love child of haskell, scheme and p6 | ||
putter | err, given that _everything_ is a subset of p6... err... "basic" p6? | ||
stevan | it is not valid p6 no | 22:52 | |
for instance,.. if you call a method on a primative object (num, str, code, list, etc), you use the ` infix operator | |||
but method dispatch to metamodel objects is with the . operator | 22:53 | ||
PerlJam | integral: thanks. | 22:54 | |
integral | although if you go by the exchange rate this means that UK coffee is very expensive ;-) | 22:55 | |
22:55
oylenshpeegul joined
|
|||
putter | hmm. if it got wrapped with an inline_piln <<'END'...END, it would be valid p6... topped with use PILN;... | 22:55 | |
stevan | putter: examples/piln is what piln looks like | ||
putter: possibly | |||
putter | and the compiler could then recognize it an do piln magic... | 22:57 | |
stevan | putter: yes, but it would not be portable unless we compile PILN to PIR/Perl5/whatever | ||
gaal | well, it's time for bed for me too. night folks | 22:58 | |
nice seeing you aroud, putter | |||
putter | 'night gaal & | ||
gaal | zzZ & | ||
putter | thanks :) | ||
stevan | putter: I am off to dinner, but I suggest looking over src/PIL/Native/Boostrap/*.pil as well | 23:02 | |
stevan goes to eat & | 23:03 | ||
putter | stevan: so I'm wondering if one could just have a StandardHsRuntime.p6 which just said use OOBotstrap; use CommonRuntime; use CommonTweak4; use HsPrims; and pugs --compile StandardHsRuntime.p6 -o pughs would give you a hs pugs? | ||
oh, and OOBootstrap.p6 said inline_piln <<... END. or whatever. if we had source filters (still no?), that could just be use PILN; ... | 23:04 | ||
the neat thing being one then has one big happy flexible ball of p6 bits, which can mixed and matched to do whatever. | 23:05 | ||
23:06
mjl69_ joined,
verve_ joined
|
|||
putter | oops, stevan went to eat. ah well. me too & | 23:07 | |
23:13
PJF joined
23:14
Medvekoma joined
23:15
mjl69__ joined
|
|||
bsb | On the exchange rate topic, can anyone tell me what an NIS is? | 23:16 | |
www.osdc.org.il/payment.html | |||
Israel New Shekels? | 23:17 | ||
PJF | bsb: Correct. New Israeli Sheqel, or שקל חדש for the unicode enabled. | 23:18 | |
bsb | That came out as "x"s and copyright symbols so I don't think I'm unicode enabled | 23:20 | |
oylenshpeegul | (cool...I didn't realize my IRC client was unicode enabled!) | ||
bsb | OSDC.il seems quite a bargain then | ||
putter | audreyt/stevan: so, two thoughts: when creating the object universe, it could be a nice, maintainable, and flexible approach to do overriding mixins of p6 code (files... modules?). this then works nicely with the concept that many p6 files with start with use Mumble; where mumble is some domain specific language. like piln. | 23:23 | |
as with the js backend and inline_js, the compiler then just recognizes the resulting (piln) nodes, and does the right thing. the boundaries between p6, pil2, piln, and backend-specific code, then get nicely fuzzy and flexible. | 23:25 | ||
random thought. a bag of micro languages might be a happier place to be than a stack of them. | 23:27 | ||
'night all & | |||
23:30
lisppaste3 joined
23:36
PJ1 joined
23:43
drbean joined
23:54
Cryptic_K joined
|
|||
J | is now known as PJ1 | 23:55 | |
23:56
bsb left
|